n8n 1.115.2 → 1.116.1

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.
Files changed (221) hide show
  1. package/dist/active-workflow-manager.js +5 -3
  2. package/dist/active-workflow-manager.js.map +1 -1
  3. package/dist/build.tsbuildinfo +1 -1
  4. package/dist/chat/chat-execution-manager.js +1 -1
  5. package/dist/chat/chat-execution-manager.js.map +1 -1
  6. package/dist/commands/import/credentials.js.map +1 -1
  7. package/dist/constants.d.ts +1 -1
  8. package/dist/constants.js +2 -2
  9. package/dist/constants.js.map +1 -1
  10. package/dist/controllers/ai.controller.js +3 -3
  11. package/dist/controllers/ai.controller.js.map +1 -1
  12. package/dist/controllers/dynamic-node-parameters.controller.js +29 -7
  13. package/dist/controllers/dynamic-node-parameters.controller.js.map +1 -1
  14. package/dist/controllers/posthog.controller.d.ts +17 -0
  15. package/dist/controllers/posthog.controller.js +131 -0
  16. package/dist/controllers/posthog.controller.js.map +1 -0
  17. package/dist/controllers/users.controller.d.ts +2 -2
  18. package/dist/credentials/credentials.service.js.map +1 -1
  19. package/dist/credentials-helper.js.map +1 -1
  20. package/dist/environments.ee/source-control/source-control-import.service.ee.d.ts +10 -4
  21. package/dist/environments.ee/source-control/source-control-import.service.ee.js +69 -9
  22. package/dist/environments.ee/source-control/source-control-import.service.ee.js.map +1 -1
  23. package/dist/environments.ee/source-control/source-control-status.service.ee.d.ts +10 -1
  24. package/dist/environments.ee/source-control/source-control-status.service.ee.js +112 -2
  25. package/dist/environments.ee/source-control/source-control-status.service.ee.js.map +1 -1
  26. package/dist/environments.ee/source-control/source-control.controller.ee.d.ts +10 -0
  27. package/dist/environments.ee/source-control/source-control.service.ee.d.ts +5 -0
  28. package/dist/environments.ee/source-control/types/exportable-project.d.ts +5 -2
  29. package/dist/environments.ee/source-control/types/resource-owner.d.ts +4 -2
  30. package/dist/environments.ee/variables/variables.service.ee.js +3 -1
  31. package/dist/environments.ee/variables/variables.service.ee.js.map +1 -1
  32. package/dist/events/relays/telemetry.event-relay.d.ts +1 -1
  33. package/dist/events/relays/telemetry.event-relay.js +2 -1
  34. package/dist/events/relays/telemetry.event-relay.js.map +1 -1
  35. package/dist/interfaces.d.ts +1 -0
  36. package/dist/modules/chat-hub/chat-hub.controller.d.ts +17 -0
  37. package/dist/modules/chat-hub/chat-hub.controller.js +106 -0
  38. package/dist/modules/chat-hub/chat-hub.controller.js.map +1 -0
  39. package/dist/modules/chat-hub/chat-hub.module.d.ts +8 -0
  40. package/dist/modules/chat-hub/chat-hub.module.js +78 -0
  41. package/dist/modules/chat-hub/chat-hub.module.js.map +1 -0
  42. package/dist/modules/chat-hub/chat-hub.service.d.ts +34 -0
  43. package/dist/modules/chat-hub/chat-hub.service.js +549 -0
  44. package/dist/modules/chat-hub/chat-hub.service.js.map +1 -0
  45. package/dist/modules/chat-hub/chat-hub.settings.controller.d.ts +16 -0
  46. package/dist/modules/chat-hub/chat-hub.settings.controller.js +66 -0
  47. package/dist/modules/chat-hub/chat-hub.settings.controller.js.map +1 -0
  48. package/dist/modules/chat-hub/chat-hub.settings.service.d.ts +7 -0
  49. package/dist/modules/chat-hub/chat-hub.settings.service.js +36 -0
  50. package/dist/modules/chat-hub/chat-hub.settings.service.js.map +1 -0
  51. package/dist/modules/chat-hub/chat-hub.types.d.ts +17 -0
  52. package/dist/modules/chat-hub/chat-hub.types.js +3 -0
  53. package/dist/modules/chat-hub/chat-hub.types.js.map +1 -0
  54. package/dist/modules/chat-hub/dto/chat-message-request.dto.d.ts +9 -0
  55. package/dist/modules/chat-hub/dto/chat-message-request.dto.js +12 -0
  56. package/dist/modules/chat-hub/dto/chat-message-request.dto.js.map +1 -0
  57. package/dist/modules/chat-hub/dto/chat-models-request.dto.d.ts +7 -0
  58. package/dist/modules/chat-hub/dto/chat-models-request.dto.js +9 -0
  59. package/dist/modules/chat-hub/dto/chat-models-request.dto.js.map +1 -0
  60. package/dist/modules/chat-hub/dto/update-chat-settings.dto.d.ts +8 -0
  61. package/dist/modules/chat-hub/dto/update-chat-settings.dto.js +11 -0
  62. package/dist/modules/chat-hub/dto/update-chat-settings.dto.js.map +1 -0
  63. package/dist/modules/data-table/data-table-aggregate.controller.d.ts +14 -0
  64. package/dist/modules/data-table/{data-store-aggregate.controller.js → data-table-aggregate.controller.js} +21 -21
  65. package/dist/modules/data-table/{data-store-aggregate.controller.js.map → data-table-aggregate.controller.js.map} +1 -1
  66. package/dist/modules/data-table/{data-store-aggregate.service.d.ts → data-table-aggregate.service.d.ts} +6 -6
  67. package/dist/modules/data-table/{data-store-aggregate.service.js → data-table-aggregate.service.js} +11 -11
  68. package/dist/modules/data-table/{data-store-aggregate.service.js.map → data-table-aggregate.service.js.map} +1 -1
  69. package/dist/modules/data-table/{data-store-column.repository.d.ts → data-table-column.repository.d.ts} +7 -7
  70. package/dist/modules/data-table/{data-store-column.repository.js → data-table-column.repository.js} +23 -23
  71. package/dist/modules/data-table/data-table-column.repository.js.map +1 -0
  72. package/dist/modules/data-table/data-table-ddl.service.d.ts +10 -0
  73. package/dist/modules/data-table/data-table-ddl.service.js +56 -0
  74. package/dist/modules/data-table/data-table-ddl.service.js.map +1 -0
  75. package/dist/modules/data-table/data-table-proxy.service.d.ts +20 -0
  76. package/dist/modules/data-table/{data-store-proxy.service.js → data-table-proxy.service.js} +34 -34
  77. package/dist/modules/data-table/{data-store-proxy.service.js.map → data-table-proxy.service.js.map} +1 -1
  78. package/dist/modules/data-table/data-table-rows.repository.d.ts +31 -0
  79. package/dist/modules/data-table/{data-store-rows.repository.js → data-table-rows.repository.js} +39 -68
  80. package/dist/modules/data-table/data-table-rows.repository.js.map +1 -0
  81. package/dist/modules/data-table/{data-store-size-validator.service.d.ts → data-table-size-validator.service.d.ts} +4 -2
  82. package/dist/modules/data-table/{data-store-size-validator.service.js → data-table-size-validator.service.js} +20 -11
  83. package/dist/modules/data-table/data-table-size-validator.service.js.map +1 -0
  84. package/dist/modules/data-table/data-table.controller.d.ts +55 -0
  85. package/dist/modules/data-table/{data-store.controller.js → data-table.controller.js} +119 -119
  86. package/dist/modules/data-table/{data-store.controller.js.map → data-table.controller.js.map} +1 -1
  87. package/dist/modules/data-table/data-table.module.d.ts +2 -2
  88. package/dist/modules/data-table/data-table.module.js +18 -18
  89. package/dist/modules/data-table/data-table.module.js.map +1 -1
  90. package/dist/modules/data-table/data-table.repository.d.ts +34 -0
  91. package/dist/modules/data-table/{data-store.repository.js → data-table.repository.js} +44 -44
  92. package/dist/modules/data-table/data-table.repository.js.map +1 -0
  93. package/dist/modules/data-table/data-table.service.d.ts +62 -0
  94. package/dist/modules/data-table/data-table.service.js +331 -0
  95. package/dist/modules/data-table/data-table.service.js.map +1 -0
  96. package/dist/modules/data-table/{data-store.types.d.ts → data-table.types.d.ts} +1 -1
  97. package/dist/modules/data-table/{data-store.types.js → data-table.types.js} +1 -1
  98. package/dist/modules/data-table/data-table.types.js.map +1 -0
  99. package/dist/modules/data-table/errors/data-table-column-name-conflict.error.d.ts +4 -0
  100. package/dist/modules/data-table/errors/data-table-column-name-conflict.error.js +13 -0
  101. package/dist/modules/data-table/errors/{data-store-column-name-conflict.error.js.map → data-table-column-name-conflict.error.js.map} +1 -1
  102. package/dist/modules/data-table/errors/data-table-column-not-found.error.d.ts +4 -0
  103. package/dist/modules/data-table/errors/data-table-column-not-found.error.js +13 -0
  104. package/dist/modules/data-table/errors/{data-store-column-not-found.error.js.map → data-table-column-not-found.error.js.map} +1 -1
  105. package/dist/modules/data-table/errors/{data-store-name-conflict.error.d.ts → data-table-name-conflict.error.d.ts} +1 -1
  106. package/dist/modules/data-table/errors/data-table-name-conflict.error.js +13 -0
  107. package/dist/modules/data-table/errors/{data-store-name-conflict.error.js.map → data-table-name-conflict.error.js.map} +1 -1
  108. package/dist/modules/data-table/errors/data-table-not-found.error.d.ts +4 -0
  109. package/dist/modules/data-table/errors/data-table-not-found.error.js +13 -0
  110. package/dist/modules/data-table/errors/data-table-not-found.error.js.map +1 -0
  111. package/dist/modules/data-table/errors/{data-store-system-column-name-conflict.error.d.ts → data-table-system-column-name-conflict.error.d.ts} +1 -1
  112. package/dist/modules/data-table/errors/{data-store-system-column-name-conflict.error.js → data-table-system-column-name-conflict.error.js} +4 -4
  113. package/dist/modules/data-table/errors/{data-store-system-column-name-conflict.error.js.map → data-table-system-column-name-conflict.error.js.map} +1 -1
  114. package/dist/modules/data-table/errors/{data-store-validation.error.d.ts → data-table-validation.error.d.ts} +1 -1
  115. package/dist/modules/data-table/errors/data-table-validation.error.js +13 -0
  116. package/dist/modules/data-table/errors/{data-store-validation.error.js.map → data-table-validation.error.js.map} +1 -1
  117. package/dist/modules/data-table/utils/sql-utils.d.ts +11 -16
  118. package/dist/modules/data-table/utils/sql-utils.js +53 -45
  119. package/dist/modules/data-table/utils/sql-utils.js.map +1 -1
  120. package/dist/modules/insights/database/entities/insights-by-period.js.map +1 -1
  121. package/dist/modules/insights/database/entities/insights-raw.js.map +1 -1
  122. package/dist/modules/insights/database/repositories/insights-by-period-query.helper.d.ts +6 -0
  123. package/dist/modules/insights/database/repositories/insights-by-period-query.helper.js +76 -0
  124. package/dist/modules/insights/database/repositories/insights-by-period-query.helper.js.map +1 -0
  125. package/dist/modules/insights/database/repositories/insights-by-period.repository.d.ts +1 -3
  126. package/dist/modules/insights/database/repositories/insights-by-period.repository.js +8 -58
  127. package/dist/modules/insights/database/repositories/insights-by-period.repository.js.map +1 -1
  128. package/dist/modules/insights/insights.controller.js +3 -1
  129. package/dist/modules/insights/insights.controller.js.map +1 -1
  130. package/dist/modules/insights/insights.service.js +1 -1
  131. package/dist/modules/insights/insights.service.js.map +1 -1
  132. package/dist/modules/mcp/dto/update-workflow-availability.dto.d.ts +8 -0
  133. package/dist/modules/mcp/dto/update-workflow-availability.dto.js +11 -0
  134. package/dist/modules/mcp/dto/update-workflow-availability.dto.js.map +1 -0
  135. package/dist/modules/mcp/mcp.controller.js +1 -1
  136. package/dist/modules/mcp/mcp.settings.controller.d.ts +12 -1
  137. package/dist/modules/mcp/mcp.settings.controller.js +55 -4
  138. package/dist/modules/mcp/mcp.settings.controller.js.map +1 -1
  139. package/dist/modules/mcp/tools/get-workflow-details.tool.js +1 -1
  140. package/dist/modules/mcp/tools/get-workflow-details.tool.js.map +1 -1
  141. package/dist/public-api/v1/handlers/variables/variables.handler.d.ts +1 -2
  142. package/dist/public-api/v1/handlers/variables/variables.handler.js +7 -1
  143. package/dist/public-api/v1/handlers/variables/variables.handler.js.map +1 -1
  144. package/dist/public-api/v1/handlers/workflows/workflows.service.js.map +1 -1
  145. package/dist/public-api/v1/openapi.yml +44 -5
  146. package/dist/requests.d.ts +8 -1
  147. package/dist/scaling/job-processor.d.ts +1 -1
  148. package/dist/scaling/job-processor.js +4 -1
  149. package/dist/scaling/job-processor.js.map +1 -1
  150. package/dist/server.js +1 -0
  151. package/dist/server.js.map +1 -1
  152. package/dist/services/credentials-tester.service.d.ts +1 -1
  153. package/dist/services/credentials-tester.service.js +11 -4
  154. package/dist/services/credentials-tester.service.js.map +1 -1
  155. package/dist/services/dynamic-node-parameters.service.js +1 -1
  156. package/dist/services/frontend.service.js +1 -0
  157. package/dist/services/frontend.service.js.map +1 -1
  158. package/dist/services/import.service.d.ts +3 -1
  159. package/dist/services/import.service.js +8 -2
  160. package/dist/services/import.service.js.map +1 -1
  161. package/dist/services/project.service.ee.js +4 -4
  162. package/dist/services/project.service.ee.js.map +1 -1
  163. package/dist/services/public-api-key.service.js.map +1 -1
  164. package/dist/task-runners/task-broker/task-broker-ws-server.js +1 -1
  165. package/dist/task-runners/task-broker/task-broker-ws-server.js.map +1 -1
  166. package/dist/telemetry/index.d.ts +2 -0
  167. package/dist/telemetry/index.js +11 -2
  168. package/dist/telemetry/index.js.map +1 -1
  169. package/dist/utils/compression.util.js +2 -1
  170. package/dist/utils/compression.util.js.map +1 -1
  171. package/dist/wait-tracker.js +2 -1
  172. package/dist/wait-tracker.js.map +1 -1
  173. package/dist/webhooks/live-webhooks.d.ts +1 -1
  174. package/dist/webhooks/live-webhooks.js +7 -3
  175. package/dist/webhooks/live-webhooks.js.map +1 -1
  176. package/dist/webhooks/test-webhooks.d.ts +2 -2
  177. package/dist/webhooks/test-webhooks.js +8 -5
  178. package/dist/webhooks/test-webhooks.js.map +1 -1
  179. package/dist/webhooks/waiting-webhooks.d.ts +1 -1
  180. package/dist/webhooks/waiting-webhooks.js +5 -3
  181. package/dist/webhooks/waiting-webhooks.js.map +1 -1
  182. package/dist/webhooks/webhook-helpers.js +4 -2
  183. package/dist/webhooks/webhook-helpers.js.map +1 -1
  184. package/dist/workflow-execute-additional-data.d.ts +7 -1
  185. package/dist/workflow-execute-additional-data.js +2 -2
  186. package/dist/workflow-execute-additional-data.js.map +1 -1
  187. package/dist/workflow-helpers.d.ts +3 -2
  188. package/dist/workflow-helpers.js +27 -5
  189. package/dist/workflow-helpers.js.map +1 -1
  190. package/dist/workflow-runner.js +5 -1
  191. package/dist/workflow-runner.js.map +1 -1
  192. package/dist/workflows/workflow-execution.service.d.ts +2 -1
  193. package/dist/workflows/workflow-execution.service.js +7 -2
  194. package/dist/workflows/workflow-execution.service.js.map +1 -1
  195. package/dist/workflows/workflow-finder.service.d.ts +1 -1
  196. package/dist/workflows/workflow.service.ee.js.map +1 -1
  197. package/dist/workflows/workflows.controller.d.ts +4 -4
  198. package/dist/workflows/workflows.controller.js.map +1 -1
  199. package/package.json +17 -17
  200. package/dist/modules/data-table/data-store-aggregate.controller.d.ts +0 -14
  201. package/dist/modules/data-table/data-store-column.repository.js.map +0 -1
  202. package/dist/modules/data-table/data-store-proxy.service.d.ts +0 -20
  203. package/dist/modules/data-table/data-store-rows.repository.d.ts +0 -40
  204. package/dist/modules/data-table/data-store-rows.repository.js.map +0 -1
  205. package/dist/modules/data-table/data-store-size-validator.service.js.map +0 -1
  206. package/dist/modules/data-table/data-store.controller.d.ts +0 -60
  207. package/dist/modules/data-table/data-store.repository.d.ts +0 -34
  208. package/dist/modules/data-table/data-store.repository.js.map +0 -1
  209. package/dist/modules/data-table/data-store.service.d.ts +0 -64
  210. package/dist/modules/data-table/data-store.service.js +0 -323
  211. package/dist/modules/data-table/data-store.service.js.map +0 -1
  212. package/dist/modules/data-table/data-store.types.js.map +0 -1
  213. package/dist/modules/data-table/errors/data-store-column-name-conflict.error.d.ts +0 -4
  214. package/dist/modules/data-table/errors/data-store-column-name-conflict.error.js +0 -13
  215. package/dist/modules/data-table/errors/data-store-column-not-found.error.d.ts +0 -4
  216. package/dist/modules/data-table/errors/data-store-column-not-found.error.js +0 -13
  217. package/dist/modules/data-table/errors/data-store-name-conflict.error.js +0 -13
  218. package/dist/modules/data-table/errors/data-store-not-found.error.d.ts +0 -4
  219. package/dist/modules/data-table/errors/data-store-not-found.error.js +0 -13
  220. package/dist/modules/data-table/errors/data-store-not-found.error.js.map +0 -1
  221. package/dist/modules/data-table/errors/data-store-validation.error.js +0 -13
@@ -9,12 +9,12 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.DataStoreProxyService = void 0;
12
+ exports.DataTableProxyService = void 0;
13
13
  exports.isAllowedNode = isAllowedNode;
14
14
  const backend_common_1 = require("@n8n/backend-common");
15
15
  const di_1 = require("@n8n/di");
16
+ const data_table_service_1 = require("./data-table.service");
16
17
  const ownership_service_1 = require("../../services/ownership.service");
17
- const data_store_service_1 = require("./data-store.service");
18
18
  const ALLOWED_NODES = [
19
19
  'n8n-nodes-base.dataTable',
20
20
  'n8n-nodes-base.dataTableTool',
@@ -24,9 +24,9 @@ const ALLOWED_NODES = [
24
24
  function isAllowedNode(s) {
25
25
  return ALLOWED_NODES.includes(s);
26
26
  }
27
- let DataStoreProxyService = class DataStoreProxyService {
28
- constructor(dataStoreService, ownershipService, logger) {
29
- this.dataStoreService = dataStoreService;
27
+ let DataTableProxyService = class DataTableProxyService {
28
+ constructor(dataTableService, ownershipService, logger) {
29
+ this.dataTableService = dataTableService;
30
30
  this.ownershipService = ownershipService;
31
31
  this.logger = logger;
32
32
  this.logger = this.logger.scoped('data-table');
@@ -40,18 +40,18 @@ let DataStoreProxyService = class DataStoreProxyService {
40
40
  const homeProject = await this.ownershipService.getWorkflowProjectCached(workflow.id);
41
41
  return homeProject.id;
42
42
  }
43
- async getDataStoreAggregateProxy(workflow, node, projectId) {
43
+ async getDataTableAggregateProxy(workflow, node, projectId) {
44
44
  this.validateRequest(node);
45
45
  projectId = projectId ?? (await this.getProjectId(workflow));
46
46
  return this.makeAggregateOperations(projectId);
47
47
  }
48
- async getDataStoreProxy(workflow, node, dataStoreId, projectId) {
48
+ async getDataTableProxy(workflow, node, dataTableId, projectId) {
49
49
  this.validateRequest(node);
50
50
  projectId = projectId ?? (await this.getProjectId(workflow));
51
- return this.makeDataStoreOperations(projectId, dataStoreId);
51
+ return this.makeDataTableOperations(projectId, dataTableId);
52
52
  }
53
53
  makeAggregateOperations(projectId) {
54
- const dataStoreService = this.dataStoreService;
54
+ const dataTableService = this.dataTableService;
55
55
  return {
56
56
  getProjectId() {
57
57
  return projectId;
@@ -61,60 +61,60 @@ let DataStoreProxyService = class DataStoreProxyService {
61
61
  ...options,
62
62
  filter: { projectId, ...(options.filter ?? {}) },
63
63
  };
64
- return await dataStoreService.getManyAndCount(serviceOptions);
64
+ return await dataTableService.getManyAndCount(serviceOptions);
65
65
  },
66
- async createDataStore(options) {
67
- return await dataStoreService.createDataStore(projectId, options);
66
+ async createDataTable(options) {
67
+ return await dataTableService.createDataTable(projectId, options);
68
68
  },
69
- async deleteDataStoreAll() {
70
- return await dataStoreService.deleteDataStoreByProjectId(projectId);
69
+ async deleteDataTableAll() {
70
+ return await dataTableService.deleteDataTableByProjectId(projectId);
71
71
  },
72
72
  };
73
73
  }
74
- makeDataStoreOperations(projectId, dataStoreId) {
75
- const dataStoreService = this.dataStoreService;
74
+ makeDataTableOperations(projectId, dataTableId) {
75
+ const dataTableService = this.dataTableService;
76
76
  return {
77
- async updateDataStore(options) {
78
- return await dataStoreService.updateDataStore(dataStoreId, projectId, options);
77
+ async updateDataTable(options) {
78
+ return await dataTableService.updateDataTable(dataTableId, projectId, options);
79
79
  },
80
- async deleteDataStore() {
81
- return await dataStoreService.deleteDataStore(dataStoreId, projectId);
80
+ async deleteDataTable() {
81
+ return await dataTableService.deleteDataTable(dataTableId, projectId);
82
82
  },
83
83
  async getColumns() {
84
- return await dataStoreService.getColumns(dataStoreId, projectId);
84
+ return await dataTableService.getColumns(dataTableId, projectId);
85
85
  },
86
86
  async addColumn(options) {
87
- return await dataStoreService.addColumn(dataStoreId, projectId, options);
87
+ return await dataTableService.addColumn(dataTableId, projectId, options);
88
88
  },
89
89
  async moveColumn(columnId, options) {
90
- return await dataStoreService.moveColumn(dataStoreId, projectId, columnId, options);
90
+ return await dataTableService.moveColumn(dataTableId, projectId, columnId, options);
91
91
  },
92
92
  async deleteColumn(columnId) {
93
- return await dataStoreService.deleteColumn(dataStoreId, projectId, columnId);
93
+ return await dataTableService.deleteColumn(dataTableId, projectId, columnId);
94
94
  },
95
95
  async getManyRowsAndCount(options) {
96
- return await dataStoreService.getManyRowsAndCount(dataStoreId, projectId, options);
96
+ return await dataTableService.getManyRowsAndCount(dataTableId, projectId, options);
97
97
  },
98
98
  async insertRows(rows, returnType) {
99
- return await dataStoreService.insertRows(dataStoreId, projectId, rows, returnType);
99
+ return await dataTableService.insertRows(dataTableId, projectId, rows, returnType);
100
100
  },
101
101
  async updateRows(options) {
102
- return await dataStoreService.updateRows(dataStoreId, projectId, { filter: options.filter, data: options.data }, true, options.dryRun);
102
+ return await dataTableService.updateRows(dataTableId, projectId, { filter: options.filter, data: options.data }, true, options.dryRun);
103
103
  },
104
104
  async upsertRow(options) {
105
- return await dataStoreService.upsertRow(dataStoreId, projectId, options, true, options.dryRun);
105
+ return await dataTableService.upsertRow(dataTableId, projectId, options, true, options.dryRun);
106
106
  },
107
107
  async deleteRows(options) {
108
- return await dataStoreService.deleteRows(dataStoreId, projectId, { filter: options.filter }, true, options.dryRun);
108
+ return await dataTableService.deleteRows(dataTableId, projectId, { filter: options.filter }, true, options.dryRun);
109
109
  },
110
110
  };
111
111
  }
112
112
  };
113
- exports.DataStoreProxyService = DataStoreProxyService;
114
- exports.DataStoreProxyService = DataStoreProxyService = __decorate([
113
+ exports.DataTableProxyService = DataTableProxyService;
114
+ exports.DataTableProxyService = DataTableProxyService = __decorate([
115
115
  (0, di_1.Service)(),
116
- __metadata("design:paramtypes", [data_store_service_1.DataStoreService,
116
+ __metadata("design:paramtypes", [data_table_service_1.DataTableService,
117
117
  ownership_service_1.OwnershipService,
118
118
  backend_common_1.Logger])
119
- ], DataStoreProxyService);
120
- //# sourceMappingURL=data-store-proxy.service.js.map
119
+ ], DataTableProxyService);
120
+ //# sourceMappingURL=data-table-proxy.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-store-proxy.service.js","sourceRoot":"","sources":["../../../src/modules/data-table/data-store-proxy.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-table-proxy.service.js","sourceRoot":"","sources":["../../../src/modules/data-table/data-table-proxy.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAqCA,sCAEC;AAtCD,wDAA6C;AAC7C,gCAAkC;AAsBlC,6DAAwD;AAExD,oEAAgE;AAEhE,MAAM,aAAa,GAAG;IACrB,0BAA0B;IAC1B,8BAA8B;IAC9B,kCAAkC;IAClC,2BAA2B;CAClB,CAAC;AAIX,SAAgB,aAAa,CAAC,CAAS;IACtC,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAgB,CAAC,CAAC;AACjD,CAAC;AAGM,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IACjC,YACkB,gBAAkC,EAClC,gBAAkC,EAClC,MAAc;QAFd,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,WAAM,GAAN,MAAM,CAAQ;QAE/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAChD,CAAC;IAEO,eAAe,CAAC,IAAW;QAClC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACtE,CAAC;IACF,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,QAAkB;QAC5C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACtF,OAAO,WAAW,CAAC,EAAE,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,0BAA0B,CAC/B,QAAkB,EAClB,IAAW,EACX,SAAkB;QAElB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC3B,SAAS,GAAG,SAAS,IAAI,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE7D,OAAO,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,iBAAiB,CACtB,QAAkB,EAClB,IAAW,EACX,WAAmB,EACnB,SAAkB;QAElB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC3B,SAAS,GAAG,SAAS,IAAI,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE7D,OAAO,IAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC7D,CAAC;IAEO,uBAAuB,CAAC,SAAiB;QAChD,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC/C,OAAO;YACN,YAAY;gBACX,OAAO,SAAS,CAAC;YAClB,CAAC;YAED,KAAK,CAAC,eAAe,CAAC,UAAgC,EAAE;gBACvD,MAAM,cAAc,GAAyB;oBAC5C,GAAG,OAAO;oBACV,MAAM,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE;iBAChD,CAAC;gBACF,OAAO,MAAM,gBAAgB,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;YAC/D,CAAC;YAED,KAAK,CAAC,eAAe,CAAC,OAA+B;gBACpD,OAAO,MAAM,gBAAgB,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACnE,CAAC;YAED,KAAK,CAAC,kBAAkB;gBACvB,OAAO,MAAM,gBAAgB,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;YACrE,CAAC;SACD,CAAC;IACH,CAAC;IAEO,uBAAuB,CAC9B,SAAiB,EACjB,WAAmB;QAEnB,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAE/C,OAAO;YAEN,KAAK,CAAC,eAAe,CAAC,OAA+B;gBACpD,OAAO,MAAM,gBAAgB,CAAC,eAAe,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAChF,CAAC;YAED,KAAK,CAAC,eAAe;gBACpB,OAAO,MAAM,gBAAgB,CAAC,eAAe,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YACvE,CAAC;YAGD,KAAK,CAAC,UAAU;gBACf,OAAO,MAAM,gBAAgB,CAAC,UAAU,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YAClE,CAAC;YAED,KAAK,CAAC,SAAS,CAAC,OAAkC;gBACjD,OAAO,MAAM,gBAAgB,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAC1E,CAAC;YAED,KAAK,CAAC,UAAU,CAAC,QAAgB,EAAE,OAAmC;gBACrE,OAAO,MAAM,gBAAgB,CAAC,UAAU,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YACrF,CAAC;YAED,KAAK,CAAC,YAAY,CAAC,QAAgB;gBAClC,OAAO,MAAM,gBAAgB,CAAC,YAAY,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC9E,CAAC;YAGD,KAAK,CAAC,mBAAmB,CAAC,OAA0C;gBACnE,OAAO,MAAM,gBAAgB,CAAC,mBAAmB,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YACpF,CAAC;YAED,KAAK,CAAC,UAAU,CACf,IAAmB,EACnB,UAAa;gBAEb,OAAO,MAAM,gBAAgB,CAAC,UAAU,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;YACpF,CAAC;YAED,KAAK,CAAC,UAAU,CAAC,OAAkC;gBAClD,OAAO,MAAM,gBAAgB,CAAC,UAAU,CACvC,WAAW,EACX,SAAS,EACT,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAC9C,IAAI,EACJ,OAAO,CAAC,MAAM,CACd,CAAC;YACH,CAAC;YAED,KAAK,CAAC,SAAS,CAAC,OAAkC;gBACjD,OAAO,MAAM,gBAAgB,CAAC,SAAS,CACtC,WAAW,EACX,SAAS,EACT,OAAO,EACP,IAAI,EACJ,OAAO,CAAC,MAAM,CACd,CAAC;YACH,CAAC;YAED,KAAK,CAAC,UAAU,CAAC,OAAmC;gBACnD,OAAO,MAAM,gBAAgB,CAAC,UAAU,CACvC,WAAW,EACX,SAAS,EACT,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,EAC1B,IAAI,EACJ,OAAO,CAAC,MAAM,CACd,CAAC;YACH,CAAC;SACD,CAAC;IACH,CAAC;CACD,CAAA;AAhJY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,YAAO,GAAE;qCAG2B,qCAAgB;QAChB,oCAAgB;QAC1B,uBAAM;GAJpB,qBAAqB,CAgJjC"}
@@ -0,0 +1,31 @@
1
+ import { DataTableFilter, ListDataTableContentQueryDto } from '@n8n/api-types';
2
+ import { DataSource, EntityManager } from '@n8n/typeorm';
3
+ import { DataTableColumnJsType, DataTableRows, DataTableRowReturn, DataTableRowsReturn, DataTableInsertRowsReturnType, DataTableInsertRowsResult, DataTableRowReturnWithState } from 'n8n-workflow';
4
+ import { DataTableColumn } from './data-table-column.entity';
5
+ import { DataTableUserTableName } from './data-table.types';
6
+ export declare class DataTableRowsRepository {
7
+ private dataSource;
8
+ constructor(dataSource: DataSource);
9
+ insertRowsBulk(table: DataTableUserTableName, rows: DataTableRows, columns: DataTableColumn[], trx?: EntityManager): Promise<{
10
+ readonly success: true;
11
+ readonly insertedRows: number;
12
+ }>;
13
+ insertRows<T extends DataTableInsertRowsReturnType>(dataTableId: string, rows: DataTableRows, columns: DataTableColumn[], returnType: T, trx?: EntityManager): Promise<DataTableInsertRowsResult<T>>;
14
+ updateRows<T extends boolean | undefined>(dataTableId: string, data: Record<string, DataTableColumnJsType | null>, filter: DataTableFilter, columns: DataTableColumn[], returnData?: T, trx?: EntityManager): Promise<T extends true ? DataTableRowReturn[] : true>;
15
+ dryRunUpdateRows(dataTableId: string, data: Record<string, DataTableColumnJsType | null>, filter: DataTableFilter, columns: DataTableColumn[], trx?: EntityManager): Promise<DataTableRowReturnWithState[]>;
16
+ dryRunUpsertRow(dataTableId: string, data: Record<string, DataTableColumnJsType | null>, filter: DataTableFilter, columns: DataTableColumn[], trx?: EntityManager): Promise<DataTableRowReturnWithState[]>;
17
+ deleteRows(dataTableId: string, columns: DataTableColumn[], filter: DataTableFilter | undefined, returnData?: boolean, dryRun?: boolean, trx?: EntityManager): Promise<true | DataTableRowReturn[] | DataTableRowReturnWithState[]>;
18
+ private getAffectedRowsForUpdate;
19
+ private prepareUpdateData;
20
+ private toDryRunRows;
21
+ getManyAndCount(dataTableId: string, dto: ListDataTableContentQueryDto, trx?: EntityManager): Promise<{
22
+ count: number;
23
+ data: DataTableRowsReturn;
24
+ }>;
25
+ getManyByIds(dataTableId: string, ids: number[], columns: DataTableColumn[], trx?: EntityManager): Promise<DataTableRowsReturn>;
26
+ private getManyQuery;
27
+ private applyFilters;
28
+ private applySorting;
29
+ private applySortingByField;
30
+ private applyPagination;
31
+ }
@@ -9,13 +9,13 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.DataStoreRowsRepository = void 0;
12
+ exports.DataTableRowsRepository = void 0;
13
13
  const db_1 = require("@n8n/db");
14
14
  const di_1 = require("@n8n/di");
15
15
  const typeorm_1 = require("@n8n/typeorm");
16
16
  const n8n_workflow_1 = require("n8n-workflow");
17
17
  const sql_utils_1 = require("./utils/sql-utils");
18
- function getConditionAndParams(filter, index, dbType, tableReference, columns) {
18
+ function getConditionAndParams(filter, index, dbType, tableReference) {
19
19
  const paramName = `filter_${index}`;
20
20
  const columnRef = tableReference
21
21
  ? `${(0, sql_utils_1.quoteIdentifier)(tableReference, dbType)}.${(0, sql_utils_1.quoteIdentifier)(filter.columnName, dbType)}`
@@ -28,8 +28,7 @@ function getConditionAndParams(filter, index, dbType, tableReference, columns) {
28
28
  return [`${columnRef} IS NOT NULL`, {}];
29
29
  }
30
30
  }
31
- const columnInfo = columns?.find((col) => col.name === filter.columnName);
32
- const value = columnInfo ? (0, sql_utils_1.normalizeValue)(filter.value, columnInfo?.type, dbType) : filter.value;
31
+ const value = filter.value;
33
32
  const operators = {
34
33
  eq: '=',
35
34
  gt: '>',
@@ -84,7 +83,7 @@ function getConditionAndParams(filter, index, dbType, tableReference, columns) {
84
83
  }
85
84
  throw new Error(`Unsupported filter condition: ${filter.condition}`);
86
85
  }
87
- let DataStoreRowsRepository = class DataStoreRowsRepository {
86
+ let DataTableRowsRepository = class DataTableRowsRepository {
88
87
  constructor(dataSource) {
89
88
  this.dataSource = dataSource;
90
89
  }
@@ -115,7 +114,7 @@ let DataStoreRowsRepository = class DataStoreRowsRepository {
115
114
  for (let h = 0; h < columnNames.length; ++h) {
116
115
  const column = columns[h];
117
116
  const value = rows[j][column.name] ?? null;
118
- insertArray[h] = (0, sql_utils_1.normalizeValue)(value, column.type, dbType);
117
+ insertArray[h] = (0, sql_utils_1.normalizeValueForDatabase)(value, column.type, dbType);
119
118
  }
120
119
  completeRows[j - start] = insertArray;
121
120
  }
@@ -130,12 +129,12 @@ let DataStoreRowsRepository = class DataStoreRowsRepository {
130
129
  return { success: true, insertedRows };
131
130
  });
132
131
  }
133
- async insertRows(dataStoreId, rows, columns, returnType, trx) {
132
+ async insertRows(dataTableId, rows, columns, returnType, trx) {
134
133
  return await (0, db_1.withTransaction)(this.dataSource.manager, trx, async (em) => {
135
134
  const inserted = [];
136
135
  const dbType = this.dataSource.options.type;
137
136
  const useReturning = dbType === 'postgres' || dbType === 'mariadb';
138
- const table = (0, sql_utils_1.toTableName)(dataStoreId);
137
+ const table = (0, sql_utils_1.toTableName)(dataTableId);
139
138
  const escapedColumns = columns.map((c) => this.dataSource.driver.escape(c.name));
140
139
  const escapedSystemColumns = n8n_workflow_1.DATA_TABLE_SYSTEM_COLUMNS.map((x) => this.dataSource.driver.escape(x));
141
140
  const selectColumns = [...escapedSystemColumns, ...escapedColumns];
@@ -148,7 +147,7 @@ let DataStoreRowsRepository = class DataStoreRowsRepository {
148
147
  if (!(column.name in completeRow)) {
149
148
  completeRow[column.name] = null;
150
149
  }
151
- completeRow[column.name] = (0, sql_utils_1.normalizeValue)(completeRow[column.name], column.type, dbType);
150
+ completeRow[column.name] = (0, sql_utils_1.normalizeValueForDatabase)(completeRow[column.name], column.type, dbType);
152
151
  }
153
152
  const query = em.createQueryBuilder().insert().into(table).values(completeRow);
154
153
  if (useReturning) {
@@ -170,28 +169,28 @@ let DataStoreRowsRepository = class DataStoreRowsRepository {
170
169
  inserted.push(...ids.map((id) => ({ id })));
171
170
  continue;
172
171
  }
173
- const insertedRows = await this.getManyByIds(dataStoreId, ids, columns, em);
172
+ const insertedRows = await this.getManyByIds(dataTableId, ids, columns, em);
174
173
  inserted.push(...insertedRows);
175
174
  }
176
175
  return inserted;
177
176
  });
178
177
  }
179
- async updateRows(dataStoreId, data, filter, columns, returnData = false, trx) {
178
+ async updateRows(dataTableId, data, filter, columns, returnData = false, trx) {
180
179
  return await (0, db_1.withTransaction)(this.dataSource.manager, trx, async (em) => {
181
180
  const dbType = this.dataSource.options.type;
182
181
  const useReturning = dbType === 'postgres';
183
- const table = (0, sql_utils_1.toTableName)(dataStoreId);
182
+ const table = (0, sql_utils_1.toTableName)(dataTableId);
184
183
  const escapedColumns = columns.map((c) => this.dataSource.driver.escape(c.name));
185
184
  const escapedSystemColumns = n8n_workflow_1.DATA_TABLE_SYSTEM_COLUMNS.map((x) => this.dataSource.driver.escape(x));
186
185
  const selectColumns = [...escapedSystemColumns, ...escapedColumns];
187
186
  const setData = this.prepareUpdateData(data, columns, dbType);
188
187
  let affectedRows = [];
189
188
  if (!useReturning && returnData) {
190
- affectedRows = await this.getAffectedRowsForUpdate(dataStoreId, filter, columns, true, trx);
189
+ affectedRows = await this.getAffectedRowsForUpdate(dataTableId, filter, columns, true, trx);
191
190
  }
192
- setData.updatedAt = (0, sql_utils_1.normalizeValue)(new Date(), 'date', dbType);
191
+ setData.updatedAt = (0, sql_utils_1.normalizeValueForDatabase)(new Date(), 'date', dbType);
193
192
  const query = em.createQueryBuilder().update(table);
194
- this.applyFilters(query, filter, undefined, columns);
193
+ this.applyFilters(query, filter, undefined);
195
194
  query.set(setData);
196
195
  if (useReturning && returnData) {
197
196
  query.returning(selectColumns.join(','));
@@ -204,20 +203,20 @@ let DataStoreRowsRepository = class DataStoreRowsRepository {
204
203
  return (0, sql_utils_1.normalizeRows)((0, sql_utils_1.extractReturningData)(result.raw), columns);
205
204
  }
206
205
  const ids = affectedRows.map((row) => row.id);
207
- return await this.getManyByIds(dataStoreId, ids, columns, em);
206
+ return await this.getManyByIds(dataTableId, ids, columns, em);
208
207
  });
209
208
  }
210
- async dryRunUpdateRows(dataStoreId, data, filter, columns, trx) {
209
+ async dryRunUpdateRows(dataTableId, data, filter, columns, trx) {
211
210
  const dbType = this.dataSource.options.type;
212
- const beforeRows = await this.getAffectedRowsForUpdate(dataStoreId, filter, columns, false, trx);
211
+ const beforeRows = await this.getAffectedRowsForUpdate(dataTableId, filter, columns, false, trx);
213
212
  const columnUpdates = this.prepareUpdateData(data, columns, dbType);
214
213
  return beforeRows.flatMap((original) => {
215
214
  const updated = { ...original, ...columnUpdates, updatedAt: new Date() };
216
215
  return this.toDryRunRows(original, updated);
217
216
  });
218
217
  }
219
- async dryRunUpsertRow(dataStoreId, data, filter, columns, trx) {
220
- const updateResult = await this.dryRunUpdateRows(dataStoreId, data, filter, columns, trx);
218
+ async dryRunUpsertRow(dataTableId, data, filter, columns, trx) {
219
+ const updateResult = await this.dryRunUpdateRows(dataTableId, data, filter, columns, trx);
221
220
  if (updateResult.length > 0) {
222
221
  return updateResult;
223
222
  }
@@ -241,7 +240,7 @@ let DataStoreRowsRepository = class DataStoreRowsRepository {
241
240
  if (!shouldReturnData) {
242
241
  const query = em.createQueryBuilder().delete().from(table, 'dataTable');
243
242
  if (filter) {
244
- this.applyFilters(query, filter, undefined, columns);
243
+ this.applyFilters(query, filter, undefined);
245
244
  }
246
245
  await query.execute();
247
246
  return true;
@@ -250,7 +249,7 @@ let DataStoreRowsRepository = class DataStoreRowsRepository {
250
249
  if (!useReturning) {
251
250
  const selectQuery = em.createQueryBuilder().select('*').from(table, 'dataTable');
252
251
  if (filter) {
253
- this.applyFilters(selectQuery, filter, 'dataTable', columns);
252
+ this.applyFilters(selectQuery, filter, 'dataTable');
254
253
  }
255
254
  const rawRows = await selectQuery.getRawMany();
256
255
  affectedRows = (0, sql_utils_1.normalizeRows)(rawRows, columns);
@@ -266,7 +265,7 @@ let DataStoreRowsRepository = class DataStoreRowsRepository {
266
265
  deleteQuery.returning(selectColumns.join(','));
267
266
  }
268
267
  if (filter) {
269
- this.applyFilters(deleteQuery, filter, undefined, columns);
268
+ this.applyFilters(deleteQuery, filter, undefined);
270
269
  }
271
270
  const result = await deleteQuery.execute();
272
271
  if (useReturning) {
@@ -275,12 +274,12 @@ let DataStoreRowsRepository = class DataStoreRowsRepository {
275
274
  return affectedRows;
276
275
  });
277
276
  }
278
- async getAffectedRowsForUpdate(dataStoreId, filter, columns, idsOnly, trx) {
277
+ async getAffectedRowsForUpdate(dataTableId, filter, columns, idsOnly, trx) {
279
278
  return await (0, db_1.withTransaction)(this.dataSource.manager, trx, async (em) => {
280
- const table = (0, sql_utils_1.toTableName)(dataStoreId);
279
+ const table = (0, sql_utils_1.toTableName)(dataTableId);
281
280
  const selectColumns = idsOnly ? 'id' : '*';
282
281
  const selectQuery = em.createQueryBuilder().select(selectColumns).from(table, 'dataTable');
283
- this.applyFilters(selectQuery, filter, 'dataTable', columns);
282
+ this.applyFilters(selectQuery, filter, 'dataTable');
284
283
  const rawRows = await selectQuery.getRawMany();
285
284
  if (idsOnly) {
286
285
  return rawRows;
@@ -292,7 +291,7 @@ let DataStoreRowsRepository = class DataStoreRowsRepository {
292
291
  const setData = { ...data };
293
292
  for (const column of columns) {
294
293
  if (column.name in setData) {
295
- setData[column.name] = (0, sql_utils_1.normalizeValue)(setData[column.name], column.type, dbType);
294
+ setData[column.name] = (0, sql_utils_1.normalizeValueForDatabase)(setData[column.name], column.type, dbType);
296
295
  }
297
296
  }
298
297
  return setData;
@@ -321,37 +320,9 @@ let DataStoreRowsRepository = class DataStoreRowsRepository {
321
320
  { ...after, dryRunState: 'after' },
322
321
  ];
323
322
  }
324
- async createTableWithColumns(dataStoreId, columns, trx) {
325
- await (0, db_1.withTransaction)(this.dataSource.manager, trx, async (em) => {
326
- if (!em.queryRunner) {
327
- throw new n8n_workflow_1.UnexpectedError('QueryRunner is not available');
328
- }
329
- const dslColumns = [new db_1.DslColumn('id').int.autoGenerate2.primary, ...(0, sql_utils_1.toDslColumns)(columns)];
330
- const createTable = new db_1.CreateTable((0, sql_utils_1.toTableName)(dataStoreId), '', em.queryRunner).withColumns(...dslColumns).withTimestamps;
331
- await createTable.execute(em.queryRunner);
332
- });
333
- }
334
- async dropTable(dataStoreId, trx) {
335
- await (0, db_1.withTransaction)(this.dataSource.manager, trx, async (em) => {
336
- if (!em.queryRunner) {
337
- throw new n8n_workflow_1.UnexpectedError('QueryRunner is not available');
338
- }
339
- await em.queryRunner.dropTable((0, sql_utils_1.toTableName)(dataStoreId), true);
340
- });
341
- }
342
- async addColumn(dataStoreId, column, dbType, trx) {
343
- await (0, db_1.withTransaction)(this.dataSource.manager, trx, async (em) => {
344
- await em.query((0, sql_utils_1.addColumnQuery)((0, sql_utils_1.toTableName)(dataStoreId), column, dbType));
345
- });
346
- }
347
- async dropColumnFromTable(dataStoreId, columnName, dbType, trx) {
348
- await (0, db_1.withTransaction)(this.dataSource.manager, trx, async (em) => {
349
- await em.query((0, sql_utils_1.deleteColumnQuery)((0, sql_utils_1.toTableName)(dataStoreId), columnName, dbType));
350
- });
351
- }
352
- async getManyAndCount(dataStoreId, dto, columns, trx) {
323
+ async getManyAndCount(dataTableId, dto, trx) {
353
324
  return await (0, db_1.withTransaction)(this.dataSource.manager, trx, async (em) => {
354
- const [countQuery, query] = this.getManyQuery(dataStoreId, dto, em, columns);
325
+ const [countQuery, query] = this.getManyQuery(dataTableId, dto, em);
355
326
  const data = await query.select('*').getRawMany();
356
327
  const countResult = await countQuery.select('COUNT(*) as count').getRawOne();
357
328
  const count = typeof countResult?.count === 'number'
@@ -360,9 +331,9 @@ let DataStoreRowsRepository = class DataStoreRowsRepository {
360
331
  return { count: count ?? -1, data };
361
332
  }, false);
362
333
  }
363
- async getManyByIds(dataStoreId, ids, columns, trx) {
334
+ async getManyByIds(dataTableId, ids, columns, trx) {
364
335
  return await (0, db_1.withTransaction)(this.dataSource.manager, trx, async (em) => {
365
- const table = (0, sql_utils_1.toTableName)(dataStoreId);
336
+ const table = (0, sql_utils_1.toTableName)(dataTableId);
366
337
  const escapedColumns = columns.map((c) => this.dataSource.driver.escape(c.name));
367
338
  const escapedSystemColumns = n8n_workflow_1.DATA_TABLE_SYSTEM_COLUMNS.map((x) => this.dataSource.driver.escape(x));
368
339
  const selectColumns = [...escapedSystemColumns, ...escapedColumns];
@@ -378,23 +349,23 @@ let DataStoreRowsRepository = class DataStoreRowsRepository {
378
349
  return (0, sql_utils_1.normalizeRows)(rows, columns);
379
350
  }, false);
380
351
  }
381
- getManyQuery(dataStoreId, dto, em, columns) {
352
+ getManyQuery(dataTableId, dto, em) {
382
353
  const query = em.createQueryBuilder();
383
354
  const tableReference = 'dataTable';
384
- query.from((0, sql_utils_1.toTableName)(dataStoreId), tableReference);
355
+ query.from((0, sql_utils_1.toTableName)(dataTableId), tableReference);
385
356
  if (dto.filter) {
386
- this.applyFilters(query, dto.filter, tableReference, columns);
357
+ this.applyFilters(query, dto.filter, tableReference);
387
358
  }
388
359
  const countQuery = query.clone().select('COUNT(*)');
389
360
  this.applySorting(query, dto);
390
361
  this.applyPagination(query, dto);
391
362
  return [countQuery, query];
392
363
  }
393
- applyFilters(query, filter, tableReference, columns) {
364
+ applyFilters(query, filter, tableReference) {
394
365
  const filters = filter.filters ?? [];
395
366
  const filterType = filter.type ?? 'and';
396
367
  const dbType = this.dataSource.options.type;
397
- const conditionsAndParams = filters.map((filter, i) => getConditionAndParams(filter, i, dbType, tableReference, columns));
368
+ const conditionsAndParams = filters.map((filter, i) => getConditionAndParams(filter, i, dbType, tableReference));
398
369
  if (conditionsAndParams.length === 1) {
399
370
  const [condition, params] = conditionsAndParams[0];
400
371
  query.andWhere(condition, params);
@@ -428,9 +399,9 @@ let DataStoreRowsRepository = class DataStoreRowsRepository {
428
399
  query.take(dto.take);
429
400
  }
430
401
  };
431
- exports.DataStoreRowsRepository = DataStoreRowsRepository;
432
- exports.DataStoreRowsRepository = DataStoreRowsRepository = __decorate([
402
+ exports.DataTableRowsRepository = DataTableRowsRepository;
403
+ exports.DataTableRowsRepository = DataTableRowsRepository = __decorate([
433
404
  (0, di_1.Service)(),
434
405
  __metadata("design:paramtypes", [typeorm_1.DataSource])
435
- ], DataStoreRowsRepository);
436
- //# sourceMappingURL=data-store-rows.repository.js.map
406
+ ], DataTableRowsRepository);
407
+ //# sourceMappingURL=data-table-rows.repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-table-rows.repository.js","sourceRoot":"","sources":["../../../src/modules/data-table/data-table-rows.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,gCAA0C;AAC1C,gCAAkC;AAClC,0CASsB;AACtB,+CAWsB;AAItB,iDAS2B;AAiB3B,SAAS,qBAAqB,CAC7B,MAA0C,EAC1C,KAAa,EACb,MAAiC,EACjC,cAAuB;IAEvB,MAAM,SAAS,GAAG,UAAU,KAAK,EAAE,CAAC;IACpC,MAAM,SAAS,GAAG,cAAc;QAC/B,CAAC,CAAC,GAAG,IAAA,2BAAe,EAAC,cAAc,EAAE,MAAM,CAAC,IAAI,IAAA,2BAAe,EAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE;QAC5F,CAAC,CAAC,IAAA,2BAAe,EAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAE9C,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QAC3B,QAAQ,MAAM,CAAC,SAAS,EAAE,CAAC;YAC1B,KAAK,IAAI;gBACR,OAAO,CAAC,GAAG,SAAS,UAAU,EAAE,EAAE,CAAC,CAAC;YACrC,KAAK,KAAK;gBACT,OAAO,CAAC,GAAG,SAAS,cAAc,EAAE,EAAE,CAAC,CAAC;QAC1C,CAAC;IACF,CAAC;IAGD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAG3B,MAAM,SAAS,GAA2B;QACzC,EAAE,EAAE,GAAG;QACP,EAAE,EAAE,GAAG;QACP,GAAG,EAAE,IAAI;QACT,EAAE,EAAE,GAAG;QACP,GAAG,EAAE,IAAI;KACT,CAAC;IAEF,IAAI,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,SAAS,IAAI,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9F,CAAC;IAGD,IAAI,MAAM,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,SAAS,QAAQ,SAAS,OAAO,SAAS,WAAW,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,QAAQ,MAAM,CAAC,SAAS,EAAE,CAAC;QAE1B,KAAK,MAAM;YACV,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,MAAM,SAAS,GAAG,IAAA,mCAAuB,EAAC,KAAe,CAAC,CAAC;gBAC3D,OAAO,CAAC,GAAG,SAAS,UAAU,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;YACxE,CAAC;YAED,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3C,MAAM,YAAY,GAAG,IAAA,8BAAkB,EAAC,KAAe,CAAC,CAAC;gBACzD,OAAO;oBACN,GAAG,SAAS,iBAAiB,SAAS,gBAAgB;oBACtD,EAAE,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE;iBAC7B,CAAC;YACH,CAAC;YAGD,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;gBAC3B,MAAM,YAAY,GAAG,IAAA,8BAAkB,EAAC,KAAe,CAAC,CAAC;gBACzD,OAAO,CAAC,GAAG,SAAS,UAAU,SAAS,cAAc,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;YACvF,CAAC;YAGD,OAAO,CAAC,GAAG,SAAS,UAAU,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAGpE,KAAK,OAAO;YACX,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,MAAM,YAAY,GAAG,IAAA,8BAAkB,EAAC,KAAe,CAAC,CAAC;gBACzD,OAAO;oBACN,SAAS,SAAS,iBAAiB,SAAS,eAAe;oBAC3D,EAAE,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE;iBAC7B,CAAC;YACH,CAAC;YAED,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3C,MAAM,YAAY,GAAG,IAAA,8BAAkB,EAAC,KAAe,CAAC,CAAC;gBACzD,OAAO;oBACN,SAAS,SAAS,iBAAiB,SAAS,iBAAiB;oBAC7D,EAAE,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE;iBAC7B,CAAC;YACH,CAAC;YAED,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;gBAC3B,MAAM,YAAY,GAAG,IAAA,8BAAkB,EAAC,KAAe,CAAC,CAAC;gBACzD,OAAO,CAAC,GAAG,SAAS,WAAW,SAAS,cAAc,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;YACxF,CAAC;YAED,OAAO,CAAC,SAAS,SAAS,iBAAiB,SAAS,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACnF,CAAC;IAGD,MAAM,IAAI,KAAK,CAAC,iCAAiC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;AACtE,CAAC;AAGM,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IACnC,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAE9C,KAAK,CAAC,cAAc,CACnB,KAA6B,EAC7B,IAAmB,EACnB,OAA0B,EAC1B,GAAmB;QAEnB,OAAO,MAAM,IAAA,oBAAe,EAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;YACvE,IAAI,YAAY,GAAG,CAAC,CAAC;YAGrB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;oBACxB,MAAM,KAAK,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACvE,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;oBACtB,YAAY,EAAE,CAAC;gBAChB,CAAC;gBACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAW,CAAC;YACjD,CAAC;YAMD,MAAM,SAAS,GAAG,GAAG,CAAC;YACtB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;YACnF,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC;YAEtD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;YAE5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;gBAClC,MAAM,KAAK,GAAG,CAAC,GAAG,YAAY,CAAC;gBAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC;gBAEnE,IAAI,YAAY,IAAI,KAAK;oBAAE,MAAM;gBAEjC,MAAM,YAAY,GAAG,IAAI,KAAK,CAA0B,YAAY,GAAG,KAAK,CAAC,CAAC;gBAC9E,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,YAAY,EAAE,EAAE,CAAC,EAAE,CAAC;oBAC3C,MAAM,WAAW,GAA4B,EAAE,CAAC;oBAEhD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;wBAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;wBAE1B,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;wBAC3C,WAAW,CAAC,CAAC,CAAC,GAAG,IAAA,qCAAyB,EAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBACxE,CAAC;oBACD,YAAY,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,WAAW,CAAC;gBACvC,CAAC;gBAED,MAAM,KAAK,GAAG,EAAE;qBACd,kBAAkB,EAAE;qBACpB,MAAM,EAAE;qBACR,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC;qBACxB,MAAM,CAAC,YAAY,CAAC,CAAC;gBACvB,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;gBACtB,YAAY,IAAI,YAAY,CAAC,MAAM,CAAC;YACrC,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAW,CAAC;QACjD,CAAC,CAAC,CAAC;IACJ,CAAC;IASD,KAAK,CAAC,UAAU,CACf,WAAmB,EACnB,IAAmB,EACnB,OAA0B,EAC1B,UAAa,EACb,GAAmB;QAEnB,OAAO,MAAM,IAAA,oBAAe,EAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;YACvE,MAAM,QAAQ,GAA0C,EAAE,CAAC;YAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;YAC5C,MAAM,YAAY,GAAG,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,SAAS,CAAC;YAEnE,MAAM,KAAK,GAAG,IAAA,uBAAW,EAAC,WAAW,CAAC,CAAC;YACvC,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACjF,MAAM,oBAAoB,GAAG,wCAAyB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAChE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAChC,CAAC;YACF,MAAM,aAAa,GAAG,CAAC,GAAG,oBAAoB,EAAE,GAAG,cAAc,CAAC,CAAC;YAEnE,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;gBAC5B,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;YAC5D,CAAC;YAMD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBAExB,MAAM,WAAW,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;gBAC/B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;oBAC9B,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,WAAW,CAAC,EAAE,CAAC;wBACnC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACjC,CAAC;oBACD,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAA,qCAAyB,EACnD,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EACxB,MAAM,CAAC,IAAI,EACX,MAAM,CACN,CAAC;gBACH,CAAC;gBAED,MAAM,KAAK,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBAE/E,IAAI,YAAY,EAAE,CAAC;oBAClB,KAAK,CAAC,SAAS,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACxE,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;gBAErC,IAAI,YAAY,EAAE,CAAC;oBAClB,MAAM,QAAQ,GACb,UAAU,KAAK,KAAK;wBACnB,CAAC,CAAC,IAAA,yBAAa,EAAC,IAAA,gCAAoB,EAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;wBAC1D,CAAC,CAAC,IAAA,8BAAkB,EAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;oBACjE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBACxC,SAAS;gBACV,CAAC;gBAGD,MAAM,GAAG,GAAG,IAAA,8BAAkB,EAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBACnD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACtB,MAAM,IAAI,8BAAe,CAAC,mCAAmC,CAAC,CAAC;gBAChE,CAAC;gBAED,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;oBACzB,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC5C,SAAS;gBACV,CAAC;gBAED,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;gBAE5E,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;YAChC,CAAC;YAED,OAAO,QAAQ,CAAC;QACjB,CAAC,CAAC,CAAC;IACJ,CAAC;IAUD,KAAK,CAAC,UAAU,CACf,WAAmB,EACnB,IAAkD,EAClD,MAAuB,EACvB,OAA0B,EAC1B,aAAsB,KAAK,EAC3B,GAAmB;QAEnB,OAAO,MAAM,IAAA,oBAAe,EAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;YACvE,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;YAC5C,MAAM,YAAY,GAAG,MAAM,KAAK,UAAU,CAAC;YAE3C,MAAM,KAAK,GAAG,IAAA,uBAAW,EAAC,WAAW,CAAC,CAAC;YACvC,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACjF,MAAM,oBAAoB,GAAG,wCAAyB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAChE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAChC,CAAC;YACF,MAAM,aAAa,GAAG,CAAC,GAAG,oBAAoB,EAAE,GAAG,cAAc,CAAC,CAAC;YACnE,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAE9D,IAAI,YAAY,GAA0C,EAAE,CAAC;YAC7D,IAAI,CAAC,YAAY,IAAI,UAAU,EAAE,CAAC;gBAGjC,YAAY,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YAC7F,CAAC;YAED,OAAO,CAAC,SAAS,GAAG,IAAA,qCAAyB,EAAC,IAAI,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAE1E,MAAM,KAAK,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAEpD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;YAC5C,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAEnB,IAAI,YAAY,IAAI,UAAU,EAAE,CAAC;gBAChC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1C,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;YAErC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACjB,OAAO,IAAI,CAAC;YACb,CAAC;YAED,IAAI,YAAY,EAAE,CAAC;gBAClB,OAAO,IAAA,yBAAa,EAAC,IAAA,gCAAoB,EAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;YACjE,CAAC;YAED,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC9C,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,gBAAgB,CACrB,WAAmB,EACnB,IAAkD,EAClD,MAAuB,EACvB,OAA0B,EAC1B,GAAmB;QAEnB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;QAE5C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,wBAAwB,CACrD,WAAW,EACX,MAAM,EACN,OAAO,EACP,KAAK,EACL,GAAG,CACH,CAAC;QAEF,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAEpE,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YACtC,MAAM,OAAO,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,aAAa,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;YACzE,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CACpB,WAAmB,EACnB,IAAkD,EAClD,MAAuB,EACvB,OAA0B,EAC1B,GAAmB;QAEnB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QAE1F,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,YAAY,CAAC;QACrB,CAAC;QAGD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;QAC5C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACnE,MAAM,WAAW,GAAuB;YACvC,EAAE,EAAE,CAAC;YACL,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,GAAG;YACd,GAAG,YAAY;SACf,CAAC;QAEF,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC7C,CAAC;IAYD,KAAK,CAAC,UAAU,CACf,WAAmB,EACnB,OAA0B,EAC1B,MAAmC,EACnC,aAAsB,KAAK,EAC3B,SAAkB,KAAK,EACvB,GAAmB;QAEnB,OAAO,MAAM,IAAA,oBAAe,EAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;YACvE,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;YAC5C,MAAM,YAAY,GAAG,CAAC,MAAM,IAAI,MAAM,KAAK,UAAU,CAAC;YACtD,MAAM,gBAAgB,GAAG,UAAU,IAAI,MAAM,CAAC;YAC9C,MAAM,KAAK,GAAG,IAAA,uBAAW,EAAC,WAAW,CAAC,CAAC;YAEvC,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAEvB,MAAM,KAAK,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBACxE,IAAI,MAAM,EAAE,CAAC;oBACZ,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;gBAC7C,CAAC;gBACD,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;gBAEtB,OAAO,IAAI,CAAC;YACb,CAAC;YAED,IAAI,YAAY,GAAyB,EAAE,CAAC;YAE5C,IAAI,CAAC,YAAY,EAAE,CAAC;gBACnB,MAAM,WAAW,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBAEjF,IAAI,MAAM,EAAE,CAAC;oBACZ,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;gBACrD,CAAC;gBAED,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,UAAU,EAAyB,CAAC;gBACtE,YAAY,GAAG,IAAA,yBAAa,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAChD,CAAC;YAGD,IAAI,MAAM,EAAE,CAAC;gBACZ,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;YACpE,CAAC;YAED,MAAM,WAAW,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YAE9E,IAAI,YAAY,EAAE,CAAC;gBAClB,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBACjF,MAAM,oBAAoB,GAAG,wCAAyB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAChE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAChC,CAAC;gBACF,MAAM,aAAa,GAAG,CAAC,GAAG,oBAAoB,EAAE,GAAG,cAAc,CAAC,CAAC;gBACnE,WAAW,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAChD,CAAC;YAED,IAAI,MAAM,EAAE,CAAC;gBACZ,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;YACnD,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC;YAE3C,IAAI,YAAY,EAAE,CAAC;gBAClB,YAAY,GAAG,IAAA,yBAAa,EAAC,IAAA,gCAAoB,EAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;YACzE,CAAC;YAED,OAAO,YAAY,CAAC;QACrB,CAAC,CAAC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,wBAAwB,CACrC,WAAmB,EACnB,MAAuB,EACvB,OAA0B,EAC1B,OAAU,EACV,GAAmB;QAEnB,OAAO,MAAM,IAAA,oBAAe,EAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;YACvE,MAAM,KAAK,GAAG,IAAA,uBAAW,EAAC,WAAW,CAAC,CAAC;YACvC,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;YAC3C,MAAM,WAAW,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YAC3F,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YACpD,MAAM,OAAO,GAAwB,MAAM,WAAW,CAAC,UAAU,EAAE,CAAC;YAEpE,IAAI,OAAO,EAAE,CAAC;gBACb,OAAO,OAAO,CAAC;YAChB,CAAC;YAED,OAAO,IAAA,yBAAa,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACJ,CAAC;IAEO,iBAAiB,CACxB,IAAkD,EAClD,OAA0B,EAC1B,MAAiC;QAEjC,MAAM,OAAO,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;QAC5B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC9B,IAAI,MAAM,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC;gBAC5B,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAA,qCAAyB,EAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC7F,CAAC;QACF,CAAC;QACD,OAAO,OAAO,CAAC;IAChB,CAAC;IAEO,YAAY,CACnB,WAAsC,EACtC,UAAqC;QAErC,IAAI,WAAW,KAAK,IAAI,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,WAAW,IAAI,UAAU,EAAE,CAAC;YAC/B,OAAO;gBACN,EAAE,GAAG,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE;gBACzC,EAAE,GAAG,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE;aACvC,CAAC;QACH,CAAC;QAGD,MAAM,QAAQ,GAAG,CAAC,WAAW,IAAI,UAAU,CAAE,CAAC;QAC9C,MAAM,OAAO,GAAG;YACf,EAAE,EAAE,IAAI;YACR,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,IAAI;YACf,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;SACtE,CAAC;QAEF,MAAM,MAAM,GAAG,WAAW,IAAI,OAAO,CAAC;QACtC,MAAM,KAAK,GAAG,UAAU,IAAI,OAAO,CAAC;QAEpC,OAAO;YACN,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE;YACpC,EAAE,GAAG,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE;SAClC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CACpB,WAAmB,EACnB,GAAiC,EACjC,GAAmB;QAEnB,OAAO,MAAM,IAAA,oBAAe,EAC3B,IAAI,CAAC,UAAU,CAAC,OAAO,EACvB,GAAG,EACH,KAAK,EAAE,EAAE,EAAE,EAAE;YACZ,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;YACpE,MAAM,IAAI,GAAwB,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC;YACvE,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,SAAS,EAEtE,CAAC;YACL,MAAM,KAAK,GACV,OAAO,WAAW,EAAE,KAAK,KAAK,QAAQ;gBACrC,CAAC,CAAC,WAAW,CAAC,KAAK;gBACnB,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACpC,OAAO,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QACrC,CAAC,EACD,KAAK,CACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CACjB,WAAmB,EACnB,GAAa,EACb,OAA0B,EAC1B,GAAmB;QAEnB,OAAO,MAAM,IAAA,oBAAe,EAC3B,IAAI,CAAC,UAAU,CAAC,OAAO,EACvB,GAAG,EACH,KAAK,EAAE,EAAE,EAAE,EAAE;YACZ,MAAM,KAAK,GAAG,IAAA,uBAAW,EAAC,WAAW,CAAC,CAAC;YACvC,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACjF,MAAM,oBAAoB,GAAG,wCAAyB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAChE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAChC,CAAC;YACF,MAAM,aAAa,GAAG,CAAC,GAAG,oBAAoB,EAAE,GAAG,cAAc,CAAC,CAAC;YAEnE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,OAAO,EAAE,CAAC;YACX,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,EAAE;iBACnB,kBAAkB,EAAE;iBACpB,MAAM,CAAC,aAAa,CAAC;iBACrB,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC;iBACxB,KAAK,CAAC,EAAE,EAAE,EAAE,IAAA,YAAE,EAAC,GAAG,CAAC,EAAE,CAAC;iBACtB,UAAU,EAAyB,CAAC;YAEtC,OAAO,IAAA,yBAAa,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrC,CAAC,EACD,KAAK,CACL,CAAC;IACH,CAAC;IAEO,YAAY,CACnB,WAAmB,EACnB,GAAiC,EACjC,EAAiB;QAEjB,MAAM,KAAK,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC;QAEtC,MAAM,cAAc,GAAG,WAAW,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,IAAA,uBAAW,EAAC,WAAW,CAAC,EAAE,cAAc,CAAC,CAAC;QACrD,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAEjC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC;IAEO,YAAY,CACnB,KAA4E,EAC5E,MAAuB,EACvB,cAAuB;QAEvB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC;QAExC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;QAC5C,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CACrD,qBAAqB,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,CACxD,CAAC;QAEF,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAEtC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;YACnD,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACP,KAAK,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,mBAAmB,EAAE,CAAC;gBACvD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;oBACzB,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBAClC,CAAC;qBAAM,CAAC;oBACP,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBACnC,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAEO,YAAY,CAAC,KAAmB,EAAE,GAAiC;QAC1E,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO;QACR,CAAC;QAED,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC;QAClC,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IAEO,mBAAmB,CAAC,KAAmB,EAAE,KAAa,EAAE,SAAyB;QACxF,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;QAC5C,MAAM,WAAW,GAAG,GAAG,IAAA,2BAAe,EAAC,WAAW,EAAE,MAAM,CAAC,IAAI,IAAA,2BAAe,EAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;QAChG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACvC,CAAC;IAEO,eAAe,CAAC,KAAmB,EAAE,GAAiC;QAC7E,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;QAC1B,IAAI,GAAG,CAAC,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;CACD,CAAA;AArhBY,0DAAuB;kCAAvB,uBAAuB;IADnC,IAAA,YAAO,GAAE;qCAEuB,oBAAU;GAD9B,uBAAuB,CAqhBnC"}
@@ -1,11 +1,13 @@
1
1
  import { GlobalConfig } from '@n8n/config';
2
2
  import { DataTableSizeStatus, DataTablesSizeData } from 'n8n-workflow';
3
- export declare class DataStoreSizeValidator {
3
+ import { Telemetry } from '../../telemetry';
4
+ export declare class DataTableSizeValidator {
4
5
  private readonly globalConfig;
6
+ private readonly telemetry;
5
7
  private lastCheck;
6
8
  private cachedSizeData;
7
9
  private pendingCheck;
8
- constructor(globalConfig: GlobalConfig);
10
+ constructor(globalConfig: GlobalConfig, telemetry: Telemetry);
9
11
  private shouldRefresh;
10
12
  getCachedSizeData(fetchSizeDataFn: () => Promise<DataTablesSizeData>, now?: Date): Promise<DataTablesSizeData>;
11
13
  validateSize(fetchSizeFn: () => Promise<DataTablesSizeData>, now?: Date): Promise<void>;
@@ -9,13 +9,15 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.DataStoreSizeValidator = void 0;
12
+ exports.DataTableSizeValidator = void 0;
13
13
  const config_1 = require("@n8n/config");
14
14
  const di_1 = require("@n8n/di");
15
- const data_store_validation_error_1 = require("./errors/data-store-validation.error");
16
- let DataStoreSizeValidator = class DataStoreSizeValidator {
17
- constructor(globalConfig) {
15
+ const telemetry_1 = require("../../telemetry");
16
+ const data_table_validation_error_1 = require("./errors/data-table-validation.error");
17
+ let DataTableSizeValidator = class DataTableSizeValidator {
18
+ constructor(globalConfig, telemetry) {
18
19
  this.globalConfig = globalConfig;
20
+ this.telemetry = telemetry;
19
21
  this.pendingCheck = null;
20
22
  }
21
23
  shouldRefresh(now) {
@@ -47,14 +49,20 @@ let DataStoreSizeValidator = class DataStoreSizeValidator {
47
49
  async validateSize(fetchSizeFn, now = new Date()) {
48
50
  const size = await this.getCachedSizeData(fetchSizeFn, now);
49
51
  if (size.totalBytes >= this.globalConfig.dataTable.maxSize) {
50
- throw new data_store_validation_error_1.DataStoreValidationError(`Data store size limit exceeded: ${this.toMb(size.totalBytes)}MB used, limit is ${this.toMb(this.globalConfig.dataTable.maxSize)}MB`);
52
+ this.telemetry.track('User hit data table storage limit', {
53
+ total_bytes: size.totalBytes,
54
+ max_bytes: this.globalConfig.dataTable.maxSize,
55
+ });
56
+ throw new data_table_validation_error_1.DataTableValidationError(`Data table size limit exceeded: ${this.toMb(size.totalBytes)}MB used, limit is ${this.toMb(this.globalConfig.dataTable.maxSize)}MB`);
51
57
  }
52
58
  }
53
59
  sizeToState(sizeBytes) {
60
+ const warningThreshold = this.globalConfig.dataTable.warningThreshold ??
61
+ Math.floor(0.8 * this.globalConfig.dataTable.maxSize);
54
62
  if (sizeBytes >= this.globalConfig.dataTable.maxSize) {
55
63
  return 'error';
56
64
  }
57
- else if (sizeBytes >= this.globalConfig.dataTable.warningThreshold) {
65
+ else if (sizeBytes >= warningThreshold) {
58
66
  return 'warn';
59
67
  }
60
68
  return 'ok';
@@ -72,9 +80,10 @@ let DataStoreSizeValidator = class DataStoreSizeValidator {
72
80
  this.pendingCheck = null;
73
81
  }
74
82
  };
75
- exports.DataStoreSizeValidator = DataStoreSizeValidator;
76
- exports.DataStoreSizeValidator = DataStoreSizeValidator = __decorate([
83
+ exports.DataTableSizeValidator = DataTableSizeValidator;
84
+ exports.DataTableSizeValidator = DataTableSizeValidator = __decorate([
77
85
  (0, di_1.Service)(),
78
- __metadata("design:paramtypes", [config_1.GlobalConfig])
79
- ], DataStoreSizeValidator);
80
- //# sourceMappingURL=data-store-size-validator.service.js.map
86
+ __metadata("design:paramtypes", [config_1.GlobalConfig,
87
+ telemetry_1.Telemetry])
88
+ ], DataTableSizeValidator);
89
+ //# sourceMappingURL=data-table-size-validator.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-table-size-validator.service.js","sourceRoot":"","sources":["../../../src/modules/data-table/data-table-size-validator.service.ts"],"names":[],"mappings":"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"}