@haiiro/docuflow 0.0.18 → 0.0.20

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.
@@ -119749,7 +119749,7 @@ var getCrmUrl = () => {
119749
119749
  // package.json
119750
119750
  var package_default = {
119751
119751
  name: "@haiiro/docuflow",
119752
- version: "0.0.18",
119752
+ version: "0.0.20",
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: {
@@ -59496,7 +59496,15 @@ var getTask = async (runAs, taskId) => readRestRecord(
59496
59496
 
59497
59497
  // src/shared/log.util.ts
59498
59498
  var PREFIX = "[docflow]";
59499
+ var describeError = (error) => {
59500
+ if (error instanceof Error) {
59501
+ const { status, body } = error;
59502
+ return { name: error.name, message: error.message, status, body };
59503
+ }
59504
+ return error;
59505
+ };
59499
59506
  var logDocflow = (event, details) => console.info(PREFIX, event, details ?? "");
59507
+ var logDocflowError = (event, error, details) => console.error(PREFIX, event, describeError(error), details ?? "");
59500
59508
 
59501
59509
  // src/universal-identifiers.ts
59502
59510
  var DOCUMENT_FILE_UNIVERSAL_IDENTIFIER = "cadc1706-80e7-41dd-91dd-9c7324961abb";
@@ -59569,6 +59577,16 @@ var captureFile = async (capture) => {
59569
59577
  return "CREATED";
59570
59578
  };
59571
59579
 
59580
+ // src/server/event-errors.ts
59581
+ var withEventErrors = (name, handler2) => async (...args) => {
59582
+ try {
59583
+ return await handler2(...args);
59584
+ } catch (error) {
59585
+ logDocflowError(`${name}: failed`, error);
59586
+ throw error;
59587
+ }
59588
+ };
59589
+
59572
59590
  // src/logic-functions/capture-file.logic-function.ts
59573
59591
  var isFileCapture = (payload) => typeof payload.attachmentId === "string" && typeof payload.fileId === "string" && typeof payload.label === "string" && typeof payload.sourceObjectName === "string" && typeof payload.sourceRecordId === "string";
59574
59592
  var handler = async (payload) => {
@@ -59587,7 +59605,7 @@ var capture_file_logic_function_default = defineLogicFunction({
59587
59605
  name: "docflow-capture-file",
59588
59606
  description: "\u041A\u043E\u043F\u0438\u0440\u0443\u0435\u0442 \u0432\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0439 \u0444\u0430\u0439\u043B \u0432 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u044B \u0441 \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u043E\u043C",
59589
59607
  timeoutSeconds: 120,
59590
- handler
59608
+ handler: withEventErrors("capture-file", handler)
59591
59609
  });
59592
59610
  export {
59593
59611
  capture_file_logic_function_default as default
@@ -1,6 +1,7 @@
1
1
  import { defineLogicFunction } from 'twenty-sdk/define';
2
2
 
3
3
  import { captureFile, type FileCapture } from 'src/server/document-capture';
4
+ import { withEventErrors } from 'src/server/event-errors';
4
5
  import { CAPTURE_FILE_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER } from 'src/universal-identifiers';
5
6
 
6
7
  const isFileCapture = (payload: Partial<FileCapture>): payload is FileCapture =>
@@ -28,5 +29,5 @@ export default defineLogicFunction({
28
29
  name: 'docflow-capture-file',
29
30
  description: 'Копирует вложенный файл в документы с источником',
30
31
  timeoutSeconds: 120,
31
- handler,
32
+ handler: withEventErrors('capture-file', handler),
32
33
  });
@@ -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.18",
59964
+ version: "0.0.20",
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: {
@@ -119664,7 +119664,25 @@ var handOutFormStep = async ({
119664
119664
 
119665
119665
  // src/shared/log.util.ts
119666
119666
  var PREFIX = "[docflow]";
119667
+ var describeError = (error) => {
119668
+ if (error instanceof Error) {
119669
+ const { status, body } = error;
119670
+ return { name: error.name, message: error.message, status, body };
119671
+ }
119672
+ return error;
119673
+ };
119667
119674
  var logDocflow = (event, details) => console.info(PREFIX, event, details ?? "");
119675
+ var logDocflowError = (event, error, details) => console.error(PREFIX, event, describeError(error), details ?? "");
119676
+
119677
+ // src/server/event-errors.ts
119678
+ var withEventErrors = (name, handler2) => async (...args) => {
119679
+ try {
119680
+ return await handler2(...args);
119681
+ } catch (error) {
119682
+ logDocflowError(`${name}: failed`, error);
119683
+ throw error;
119684
+ }
119685
+ };
119668
119686
 
119669
119687
  // src/universal-identifiers.ts
119670
119688
  var HAND_OUT_FORM_STEP_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER = "70021464-1ce0-4c94-81c7-ee6b4490034c";
@@ -119684,7 +119702,7 @@ var hand_out_form_step_logic_function_default = defineLogicFunction({
119684
119702
  name: "docflow-hand-out-form-step",
119685
119703
  description: "\u0421\u043E\u0437\u0434\u0430\u0451\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 CRM \u043F\u043E \u0448\u0430\u0433\u0443 \xAB\u0427\u0435\u043B\u043E\u0432\u0435\u0447\u0435\u0441\u043A\u0438\u0439 \u0432\u0432\u043E\u0434\xBB",
119686
119704
  timeoutSeconds: 30,
119687
- handler
119705
+ handler: withEventErrors("hand-out-form-step", handler)
119688
119706
  });
119689
119707
  export {
119690
119708
  hand_out_form_step_logic_function_default as default
@@ -2,6 +2,7 @@ import { defineLogicFunction } from 'twenty-sdk/define';
2
2
 
3
3
  import { handOutFormStep } from 'src/server/process-tasks';
4
4
  import { logDocflow } from 'src/shared/log.util';
5
+ import { withEventErrors } from 'src/server/event-errors';
5
6
  import { HAND_OUT_FORM_STEP_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER } from 'src/universal-identifiers';
6
7
 
7
8
  const handler = async (payload: {
@@ -31,5 +32,5 @@ export default defineLogicFunction({
31
32
  name: 'docflow-hand-out-form-step',
32
33
  description: 'Создаёт задачу CRM по шагу «Человеческий ввод»',
33
34
  timeoutSeconds: 30,
34
- handler,
35
+ handler: withEventErrors('hand-out-form-step', handler),
35
36
  });
@@ -59978,6 +59978,27 @@ var readFileItems = (value) => Array.isArray(value) ? value.flatMap((item) => {
59978
59978
  var getDocflowEngine = (value = process.env.DOCFLOW_ENGINE) => value === "FORK" ? "FORK" : "APP";
59979
59979
  var isAppEngine = (value) => getDocflowEngine(value) === "APP";
59980
59980
 
59981
+ // src/shared/log.util.ts
59982
+ var PREFIX = "[docflow]";
59983
+ var describeError = (error) => {
59984
+ if (error instanceof Error) {
59985
+ const { status, body } = error;
59986
+ return { name: error.name, message: error.message, status, body };
59987
+ }
59988
+ return error;
59989
+ };
59990
+ var logDocflowError = (event, error, details) => console.error(PREFIX, event, describeError(error), details ?? "");
59991
+
59992
+ // src/server/event-errors.ts
59993
+ var withEventErrors = (name, handler2) => async (...args) => {
59994
+ try {
59995
+ return await handler2(...args);
59996
+ } catch (error) {
59997
+ logDocflowError(`${name}: failed`, error);
59998
+ throw error;
59999
+ }
60000
+ };
60001
+
59981
60002
  // src/universal-identifiers.ts
59982
60003
  var ON_ATTACHMENT_CREATED_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER = "d2cc28ec-193b-4abb-9649-d119967361e7";
59983
60004
  var CAPTURE_FILE_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER = "f735d9e9-d46a-4527-98c8-c84c2b6dbb7b";
@@ -60019,7 +60040,7 @@ var on_attachment_created_logic_function_default = defineLogicFunction({
60019
60040
  name: "docflow-on-attachment-created",
60020
60041
  description: "\u0421\u0442\u0430\u0432\u0438\u0442 \u0432 \u043E\u0447\u0435\u0440\u0435\u0434\u044C \u0441\u0431\u043E\u0440 \u0432\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0445 \u0444\u0430\u0439\u043B\u043E\u0432 \u0432 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u044B",
60021
60042
  timeoutSeconds: 15,
60022
- handler,
60043
+ handler: withEventErrors("on-attachment-created", handler),
60023
60044
  databaseEventTriggerSettings: {
60024
60045
  eventName: "attachment.created",
60025
60046
  batchMode: true
@@ -7,6 +7,7 @@ import {
7
7
 
8
8
  import { getAttachmentTarget, readFileItems } from 'src/shared/documents/attachment-target.util';
9
9
  import { isAppEngine } from 'src/shared/engine';
10
+ import { withEventErrors } from 'src/server/event-errors';
10
11
  import {
11
12
  CAPTURE_FILE_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER,
12
13
  ON_ATTACHMENT_CREATED_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER,
@@ -59,7 +60,7 @@ export default defineLogicFunction({
59
60
  name: 'docflow-on-attachment-created',
60
61
  description: 'Ставит в очередь сбор вложенных файлов в документы',
61
62
  timeoutSeconds: 15,
62
- handler,
63
+ handler: withEventErrors('on-attachment-created', handler),
63
64
  databaseEventTriggerSettings: {
64
65
  eventName: 'attachment.created',
65
66
  batchMode: true,
@@ -59673,6 +59673,27 @@ var answerStepOfTask = async (task, values) => {
59673
59673
  }
59674
59674
  };
59675
59675
 
59676
+ // src/shared/log.util.ts
59677
+ var PREFIX = "[docflow]";
59678
+ var describeError = (error) => {
59679
+ if (error instanceof Error) {
59680
+ const { status, body } = error;
59681
+ return { name: error.name, message: error.message, status, body };
59682
+ }
59683
+ return error;
59684
+ };
59685
+ var logDocflowError = (event, error, details) => console.error(PREFIX, event, describeError(error), details ?? "");
59686
+
59687
+ // src/server/event-errors.ts
59688
+ var withEventErrors = (name, handler2) => async (...args) => {
59689
+ try {
59690
+ return await handler2(...args);
59691
+ } catch (error) {
59692
+ logDocflowError(`${name}: failed`, error);
59693
+ throw error;
59694
+ }
59695
+ };
59696
+
59676
59697
  // src/universal-identifiers.ts
59677
59698
  var ON_TASK_UPDATED_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER = "a7dd8969-189b-4fb7-b025-c7bf433832c3";
59678
59699
 
@@ -59708,7 +59729,7 @@ var on_task_updated_logic_function_default = defineLogicFunction({
59708
59729
  name: "docflow-on-task-updated",
59709
59730
  description: "\u041F\u0440\u043E\u0432\u0435\u0440\u044F\u0435\u0442 \u0437\u0430\u043A\u0440\u044B\u0442\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0438 \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0430\u0435\u0442 \u043F\u0440\u043E\u0446\u0435\u0441\u0441",
59710
59731
  timeoutSeconds: 30,
59711
- handler,
59732
+ handler: withEventErrors("on-task-updated", handler),
59712
59733
  databaseEventTriggerSettings: {
59713
59734
  eventName: "task.updated",
59714
59735
  updatedFields: ["status"]
@@ -13,6 +13,7 @@ import {
13
13
  } from 'src/shared/form/form-fields.util';
14
14
  import { type DocflowTaskRecord, updateTask } from 'src/server/records';
15
15
  import { answerStepOfTask } from 'src/server/task-completion';
16
+ import { withEventErrors } from 'src/server/event-errors';
16
17
  import { ON_TASK_UPDATED_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER } from 'src/universal-identifiers';
17
18
 
18
19
  // A task closed outside the docflow page (the board, the list, the API).
@@ -63,7 +64,7 @@ export default defineLogicFunction({
63
64
  name: 'docflow-on-task-updated',
64
65
  description: 'Проверяет закрытие задачи и продолжает процесс',
65
66
  timeoutSeconds: 30,
66
- handler,
67
+ handler: withEventErrors('on-task-updated', handler),
67
68
  databaseEventTriggerSettings: {
68
69
  eventName: 'task.updated',
69
70
  updatedFields: ['status'],
@@ -119323,7 +119323,15 @@ var isAppEngine = (value) => getDocflowEngine(value) === "APP";
119323
119323
 
119324
119324
  // src/shared/log.util.ts
119325
119325
  var PREFIX = "[docflow]";
119326
+ var describeError = (error) => {
119327
+ if (error instanceof Error) {
119328
+ const { status, body } = error;
119329
+ return { name: error.name, message: error.message, status, body };
119330
+ }
119331
+ return error;
119332
+ };
119326
119333
  var logDocflow = (event, details) => console.info(PREFIX, event, details ?? "");
119334
+ var logDocflowError = (event, error, details) => console.error(PREFIX, event, describeError(error), details ?? "");
119327
119335
 
119328
119336
  // src/shared/docflow.constants.ts
119329
119337
  var DOCFLOW_LAUNCH_PARAMETERS_KEY = "smbDocflowParameters";
@@ -119540,6 +119548,16 @@ var closeTasksOfAnsweredSteps = async (run) => {
119540
119548
  return closedCount;
119541
119549
  };
119542
119550
 
119551
+ // src/server/event-errors.ts
119552
+ var withEventErrors = (name, handler2) => async (...args) => {
119553
+ try {
119554
+ return await handler2(...args);
119555
+ } catch (error) {
119556
+ logDocflowError(`${name}: failed`, error);
119557
+ throw error;
119558
+ }
119559
+ };
119560
+
119543
119561
  // src/universal-identifiers.ts
119544
119562
  var ON_WORKFLOW_RUN_UPDATED_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER = "c90778dd-4b0f-4a8c-a769-aca0c09f0b5f";
119545
119563
  var HAND_OUT_FORM_STEP_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER = "70021464-1ce0-4c94-81c7-ee6b4490034c";
@@ -119550,6 +119568,11 @@ var handler = async (event) => {
119550
119568
  return { skipped: "FORK_ENGINE" };
119551
119569
  }
119552
119570
  const run = { ...event.properties.after, id: event.recordId };
119571
+ logDocflow("run updated: received", {
119572
+ workflowRunId: run.id,
119573
+ status: run.status,
119574
+ updatedFields: event.properties.updatedFields
119575
+ });
119553
119576
  if (run.status !== "RUNNING" || run.state === void 0 || run.state === null) {
119554
119577
  logDocflow("run updated: skipped", { workflowRunId: run.id, status: run.status, hasState: run.state != null });
119555
119578
  return { skipped: "NOT_RUNNING" };
@@ -119592,7 +119615,7 @@ var on_workflow_run_updated_logic_function_default = defineLogicFunction({
119592
119615
  name: "docflow-on-workflow-run-updated",
119593
119616
  description: "\u0412\u044B\u0434\u0430\u0451\u0442 \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u043E \u0448\u0430\u0433\u0430\u043C \u043F\u0440\u043E\u0446\u0435\u0441\u0441\u043E\u0432 \u0438 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0435\u0442 \u043E\u0442\u0432\u0435\u0447\u0435\u043D\u043D\u044B\u0435",
119594
119617
  timeoutSeconds: 30,
119595
- handler,
119618
+ handler: withEventErrors("on-workflow-run-updated", handler),
119596
119619
  databaseEventTriggerSettings: {
119597
119620
  eventName: "workflowRun.updated",
119598
119621
  updatedFields: ["state", "status"]
@@ -10,6 +10,7 @@ import { logDocflow } from 'src/shared/log.util';
10
10
  import { getFormStepTaskRequests } from 'src/shared/workflow/workflow-run.util';
11
11
  import { closeTasksOfAnsweredSteps } from 'src/server/process-tasks';
12
12
  import { type WorkflowRunRecord } from 'src/server/records';
13
+ import { withEventErrors } from 'src/server/event-errors';
13
14
  import {
14
15
  HAND_OUT_FORM_STEP_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER,
15
16
  ON_WORKFLOW_RUN_UPDATED_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER,
@@ -27,6 +28,12 @@ const handler = async (
27
28
 
28
29
  const run = { ...event.properties.after, id: event.recordId };
29
30
 
31
+ logDocflow('run updated: received', {
32
+ workflowRunId: run.id,
33
+ status: run.status,
34
+ updatedFields: (event.properties as { updatedFields?: unknown }).updatedFields,
35
+ });
36
+
30
37
  if (run.status !== 'RUNNING' || run.state === undefined || run.state === null) {
31
38
  logDocflow('run updated: skipped', { workflowRunId: run.id, status: run.status, hasState: run.state != null });
32
39
 
@@ -77,7 +84,7 @@ export default defineLogicFunction({
77
84
  name: 'docflow-on-workflow-run-updated',
78
85
  description: 'Выдаёт задачи по шагам процессов и закрывает отвеченные',
79
86
  timeoutSeconds: 30,
80
- handler,
87
+ handler: withEventErrors('on-workflow-run-updated', handler),
81
88
  databaseEventTriggerSettings: {
82
89
  eventName: 'workflowRun.updated',
83
90
  updatedFields: ['state', 'status'],