@haiiro/docuflow 0.0.22 → 0.0.24

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.22",
119752
+ version: "0.0.24",
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: {
@@ -119532,6 +119532,12 @@ var proveAndLinkBitrixPortal = async (request) => {
119532
119532
  return { ...portal, bitrixUserId: grant.bitrixUserId };
119533
119533
  };
119534
119534
 
119535
+ // src/server/crm-url.ts
119536
+ var getCrmUrl = () => {
119537
+ const value = process.env.CRM_PUBLIC_URL?.trim();
119538
+ return value !== void 0 && /^https?:\/\//.test(value) ? value.replace(/\/$/, "") : void 0;
119539
+ };
119540
+
119535
119541
  // src/server/bitrix-page.ts
119536
119542
  var BX24_SDK_URL = "https://api.bitrix24.com/api/v1/";
119537
119543
  var renderBitrixPage = ({
@@ -119615,13 +119621,15 @@ var handler = async (event) => {
119615
119621
  query: event.queryStringParameters
119616
119622
  })
119617
119623
  );
119624
+ const companyUrl = getCrmUrl();
119625
+ const uninstallEventUrl = companyUrl !== void 0 ? `${companyUrl}/s/bitrix/event` : new u2().resolveUrl("/s/bitrix/event");
119618
119626
  await callBitrix({
119619
119627
  restEndpoint: portal.restEndpoint,
119620
119628
  accessToken: portal.accessToken,
119621
119629
  method: "event.bind",
119622
119630
  params: {
119623
119631
  event: "ONAPPUNINSTALL",
119624
- handler: new u2().resolveUrl("/s/bitrix/event")
119632
+ handler: uninstallEventUrl
119625
119633
  }
119626
119634
  }).catch(() => void 0);
119627
119635
  return htmlResponse(
@@ -5,6 +5,7 @@ import { RestApiClient } from 'twenty-client-sdk/rest';
5
5
  import { BitrixError, callBitrix, isBitrixConfigured } from 'src/shared/bitrix/bitrix-client';
6
6
  import { parseBitrixRequest } from 'src/shared/bitrix/bitrix.util';
7
7
  import { proveAndLinkBitrixPortal } from 'src/server/bitrix-portal';
8
+ import { getCrmUrl } from 'src/server/crm-url';
8
9
  import { renderBitrixPage } from 'src/server/bitrix-page';
9
10
  import { htmlResponse, withRouteErrors } from 'src/server/http-response';
10
11
  import { BITRIX_INSTALL_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER } from 'src/universal-identifiers';
@@ -31,13 +32,21 @@ const handler = async (event: RoutePayload) => {
31
32
  }),
32
33
  );
33
34
 
35
+ // The company's own address: with several companies on one Twenty server
36
+ // only it leads to this company (the server address does not)
37
+ const companyUrl = getCrmUrl();
38
+ const uninstallEventUrl =
39
+ companyUrl !== undefined
40
+ ? `${companyUrl}/s/bitrix/event`
41
+ : new RestApiClient().resolveUrl('/s/bitrix/event');
42
+
34
43
  await callBitrix({
35
44
  restEndpoint: portal.restEndpoint,
36
45
  accessToken: portal.accessToken,
37
46
  method: 'event.bind',
38
47
  params: {
39
48
  event: 'ONAPPUNINSTALL',
40
- handler: new RestApiClient().resolveUrl('/s/bitrix/event'),
49
+ handler: uninstallEventUrl,
41
50
  },
42
51
  }).catch(() => undefined);
43
52
 
@@ -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.22",
59964
+ version: "0.0.24",
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: {
@@ -1744,6 +1744,12 @@ var CORE_WORKFLOW_VERSION_BY_ID_QUERY = `query CoreWorkflowVersionById($coreWork
1744
1744
  }
1745
1745
  }`;
1746
1746
 
1747
+ // src/server/crm-url.ts
1748
+ var getCrmUrl = () => {
1749
+ const value = process.env.CRM_PUBLIC_URL?.trim();
1750
+ return value !== void 0 && /^https?:\/\//.test(value) ? value.replace(/\/$/, "") : void 0;
1751
+ };
1752
+
1747
1753
  // node_modules/twenty-sdk/dist/logic-function/isDefined-Dtu5EYqP-CMNeFg4z.mjs
1748
1754
  var import_guards = __toESM(require_build(), 1);
1749
1755
  var n = (n4) => !(0, import_guards.isUndefined)(n4) && !(0, import_guards.isNull)(n4);
@@ -119689,7 +119695,7 @@ var handler = async (event, context) => {
119689
119695
  switch (body.action) {
119690
119696
  case "list": {
119691
119697
  const [processes, canAppEdit] = await Promise.all([listDocflowProcesses("person"), canAppEditProcesses()]);
119692
- return { processes, canAppEdit };
119698
+ return { processes, canAppEdit, crmUrl: getCrmUrl() ?? null };
119693
119699
  }
119694
119700
  case "others":
119695
119701
  return { processes: await listOtherProcesses() };
@@ -5,6 +5,7 @@ import {
5
5
  } from 'twenty-sdk/logic-function';
6
6
 
7
7
  import { CoreGraphqlError } from 'src/shared/api/core-graphql.util';
8
+ import { getCrmUrl } from 'src/server/crm-url';
8
9
  import { jsonResponse, readJsonBody, withRouteErrors } from 'src/server/http-response';
9
10
  import {
10
11
  canAppEditProcesses,
@@ -25,6 +26,7 @@ const readIds = (value: unknown): string[] =>
25
26
  // person, so the "Workflows" permission decides who sees them.
26
27
  // { action: 'list' } docflow processes with their versions, and
27
28
  // whether the app may change them (canAppEdit)
29
+ // and the company's address (crmUrl)
28
30
  // { action: 'others' } the workspace's other processes
29
31
  // { action: 'add' | 'remove', workflowIds }
30
32
  const handler = async (event: RoutePayload, context: LogicFunctionExecutionContext) => {
@@ -39,7 +41,7 @@ const handler = async (event: RoutePayload, context: LogicFunctionExecutionConte
39
41
  case 'list': {
40
42
  const [processes, canAppEdit] = await Promise.all([listDocflowProcesses('person'), canAppEditProcesses()]);
41
43
 
42
- return { processes, canAppEdit };
44
+ return { processes, canAppEdit, crmUrl: getCrmUrl() ?? null };
43
45
  }
44
46
  case 'others':
45
47
  return { processes: await listOtherProcesses() };