n8n 1.108.0 → 1.109.0

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 (149) hide show
  1. package/dist/build.tsbuildinfo +1 -1
  2. package/dist/commands/base-command.js +3 -2
  3. package/dist/commands/base-command.js.map +1 -1
  4. package/dist/commands/export/credentials.d.ts +2 -2
  5. package/dist/commands/export/workflow.d.ts +2 -2
  6. package/dist/commands/update/workflow.d.ts +2 -2
  7. package/dist/config/index.d.ts +0 -4
  8. package/dist/config/schema.d.ts +0 -24
  9. package/dist/config/schema.js +0 -24
  10. package/dist/config/schema.js.map +1 -1
  11. package/dist/controllers/module-settings.controller.d.ts +8 -0
  12. package/dist/controllers/module-settings.controller.js +34 -0
  13. package/dist/controllers/module-settings.controller.js.map +1 -0
  14. package/dist/deprecation/deprecation.service.js +5 -0
  15. package/dist/deprecation/deprecation.service.js.map +1 -1
  16. package/dist/events/relays/telemetry.event-relay.js +4 -4
  17. package/dist/events/relays/telemetry.event-relay.js.map +1 -1
  18. package/dist/execution-lifecycle/restore-binary-data-id.js +1 -1
  19. package/dist/execution-lifecycle/restore-binary-data-id.js.map +1 -1
  20. package/dist/execution-lifecycle/to-save-settings.js +6 -8
  21. package/dist/execution-lifecycle/to-save-settings.js.map +1 -1
  22. package/dist/ldap.ee/ldap.service.ee.js +20 -6
  23. package/dist/ldap.ee/ldap.service.ee.js.map +1 -1
  24. package/dist/load-nodes-and-credentials.js +0 -4
  25. package/dist/load-nodes-and-credentials.js.map +1 -1
  26. package/dist/modules/community-packages/community-node-types-utils.js.map +1 -0
  27. package/dist/{community-packages → modules/community-packages}/community-node-types.controller.d.ts +1 -1
  28. package/dist/{community-packages → modules/community-packages}/community-node-types.controller.js +1 -1
  29. package/dist/modules/community-packages/community-node-types.controller.js.map +1 -0
  30. package/dist/{community-packages → modules/community-packages}/community-node-types.service.d.ts +1 -1
  31. package/dist/{community-packages → modules/community-packages}/community-node-types.service.js +1 -1
  32. package/dist/modules/community-packages/community-node-types.service.js.map +1 -0
  33. package/dist/{commands/community-node.d.ts → modules/community-packages/community-node.command.d.ts} +4 -2
  34. package/dist/{commands/community-node.js → modules/community-packages/community-node.command.js} +6 -5
  35. package/dist/modules/community-packages/community-node.command.js.map +1 -0
  36. package/dist/modules/community-packages/community-packages.config.js.map +1 -0
  37. package/dist/{community-packages → modules/community-packages}/community-packages.controller.d.ts +5 -5
  38. package/dist/{community-packages → modules/community-packages}/community-packages.controller.js +7 -7
  39. package/dist/modules/community-packages/community-packages.controller.js.map +1 -0
  40. package/dist/modules/community-packages/community-packages.module.d.ts +10 -0
  41. package/dist/modules/community-packages/community-packages.module.js +79 -0
  42. package/dist/modules/community-packages/community-packages.module.js.map +1 -0
  43. package/dist/{community-packages → modules/community-packages}/community-packages.service.d.ts +5 -5
  44. package/dist/{community-packages → modules/community-packages}/community-packages.service.js +15 -15
  45. package/dist/modules/community-packages/community-packages.service.js.map +1 -0
  46. package/dist/modules/community-packages/community-packages.types.js.map +1 -0
  47. package/dist/modules/community-packages/installed-nodes.entity.d.ts +8 -0
  48. package/dist/modules/community-packages/installed-nodes.entity.js +38 -0
  49. package/dist/modules/community-packages/installed-nodes.entity.js.map +1 -0
  50. package/dist/modules/community-packages/installed-nodes.repository.d.ts +5 -0
  51. package/dist/modules/community-packages/installed-nodes.repository.js +26 -0
  52. package/dist/modules/community-packages/installed-nodes.repository.js.map +1 -0
  53. package/dist/modules/community-packages/installed-packages.entity.d.ts +9 -0
  54. package/dist/modules/community-packages/installed-packages.entity.js +42 -0
  55. package/dist/modules/community-packages/installed-packages.entity.js.map +1 -0
  56. package/dist/modules/community-packages/installed-packages.repository.d.ts +9 -0
  57. package/dist/modules/community-packages/installed-packages.repository.js +54 -0
  58. package/dist/modules/community-packages/installed-packages.repository.js.map +1 -0
  59. package/dist/modules/community-packages/npm-utils.js.map +1 -0
  60. package/dist/modules/community-packages/strapi-utils.js.map +1 -0
  61. package/dist/modules/data-store/data-store-column.repository.js +6 -2
  62. package/dist/modules/data-store/data-store-column.repository.js.map +1 -1
  63. package/dist/modules/data-store/data-store-proxy.service.d.ts +16 -0
  64. package/dist/modules/data-store/data-store-proxy.service.js +101 -0
  65. package/dist/modules/data-store/data-store-proxy.service.js.map +1 -0
  66. package/dist/modules/data-store/data-store-rows.repository.d.ts +18 -11
  67. package/dist/modules/data-store/data-store-rows.repository.js +109 -52
  68. package/dist/modules/data-store/data-store-rows.repository.js.map +1 -1
  69. package/dist/modules/data-store/data-store.controller.d.ts +6 -3
  70. package/dist/modules/data-store/data-store.controller.js +33 -5
  71. package/dist/modules/data-store/data-store.controller.js.map +1 -1
  72. package/dist/modules/data-store/data-store.repository.js +9 -12
  73. package/dist/modules/data-store/data-store.repository.js.map +1 -1
  74. package/dist/modules/data-store/data-store.service.d.ts +7 -3
  75. package/dist/modules/data-store/data-store.service.js +71 -43
  76. package/dist/modules/data-store/data-store.service.js.map +1 -1
  77. package/dist/modules/data-store/data-store.types.d.ts +1 -1
  78. package/dist/modules/data-store/utils/sql-utils.d.ts +10 -11
  79. package/dist/modules/data-store/utils/sql-utils.js +63 -69
  80. package/dist/modules/data-store/utils/sql-utils.js.map +1 -1
  81. package/dist/modules/insights/database/repositories/insights-by-period.repository.d.ts +2 -2
  82. package/dist/modules/insights/database/repositories/insights-by-period.repository.js +2 -2
  83. package/dist/modules/insights/database/repositories/insights-by-period.repository.js.map +1 -1
  84. package/dist/modules/insights/insights-collection.service.js +7 -1
  85. package/dist/modules/insights/insights-collection.service.js.map +1 -1
  86. package/dist/modules/insights/insights.service.d.ts +2 -2
  87. package/dist/scaling/scaling.service.js +3 -1
  88. package/dist/scaling/scaling.service.js.map +1 -1
  89. package/dist/security-audit/risk-reporters/instance-risk-reporter.js +1 -1
  90. package/dist/security-audit/risk-reporters/instance-risk-reporter.js.map +1 -1
  91. package/dist/security-audit/security-audit.repository.d.ts +1 -1
  92. package/dist/security-audit/security-audit.repository.js +2 -2
  93. package/dist/security-audit/security-audit.repository.js.map +1 -1
  94. package/dist/server.js +1 -6
  95. package/dist/server.js.map +1 -1
  96. package/dist/services/ai-workflow-builder.service.d.ts +3 -1
  97. package/dist/services/ai-workflow-builder.service.js +6 -3
  98. package/dist/services/ai-workflow-builder.service.js.map +1 -1
  99. package/dist/services/credentials-tester.service.d.ts +1 -0
  100. package/dist/services/credentials-tester.service.js +25 -2
  101. package/dist/services/credentials-tester.service.js.map +1 -1
  102. package/dist/services/frontend.service.js +6 -6
  103. package/dist/services/frontend.service.js.map +1 -1
  104. package/dist/sso.ee/oidc/oidc.service.ee.js +3 -0
  105. package/dist/sso.ee/oidc/oidc.service.ee.js.map +1 -1
  106. package/dist/sso.ee/oidc/routes/oidc.controller.ee.d.ts +2 -1
  107. package/dist/sso.ee/oidc/routes/oidc.controller.ee.js +1 -1
  108. package/dist/sso.ee/oidc/routes/oidc.controller.ee.js.map +1 -1
  109. package/dist/sso.ee/saml/saml.service.ee.js +3 -0
  110. package/dist/sso.ee/saml/saml.service.ee.js.map +1 -1
  111. package/dist/utils.d.ts +1 -0
  112. package/dist/utils.js +19 -1
  113. package/dist/utils.js.map +1 -1
  114. package/dist/webhooks/test-webhook-registrations.service.d.ts +1 -0
  115. package/dist/webhooks/test-webhook-registrations.service.js +3 -0
  116. package/dist/webhooks/test-webhook-registrations.service.js.map +1 -1
  117. package/dist/webhooks/test-webhooks.d.ts +3 -0
  118. package/dist/webhooks/test-webhooks.js +33 -18
  119. package/dist/webhooks/test-webhooks.js.map +1 -1
  120. package/dist/webhooks/webhook-request-handler.js +10 -17
  121. package/dist/webhooks/webhook-request-handler.js.map +1 -1
  122. package/dist/webhooks/webhook.service.d.ts +1 -1
  123. package/dist/webhooks/webhook.service.js +10 -5
  124. package/dist/webhooks/webhook.service.js.map +1 -1
  125. package/dist/workflow-execute-additional-data.js +10 -1
  126. package/dist/workflow-execute-additional-data.js.map +1 -1
  127. package/dist/workflow-runner.js +2 -1
  128. package/dist/workflow-runner.js.map +1 -1
  129. package/package.json +15 -15
  130. package/dist/commands/community-node.js.map +0 -1
  131. package/dist/community-packages/community-node-types-utils.js.map +0 -1
  132. package/dist/community-packages/community-node-types.controller.js.map +0 -1
  133. package/dist/community-packages/community-node-types.service.js.map +0 -1
  134. package/dist/community-packages/community-packages.config.js.map +0 -1
  135. package/dist/community-packages/community-packages.controller.js.map +0 -1
  136. package/dist/community-packages/community-packages.service.js.map +0 -1
  137. package/dist/community-packages/community-packages.types.js.map +0 -1
  138. package/dist/community-packages/npm-utils.js.map +0 -1
  139. package/dist/community-packages/strapi-utils.js.map +0 -1
  140. /package/dist/{community-packages → modules/community-packages}/community-node-types-utils.d.ts +0 -0
  141. /package/dist/{community-packages → modules/community-packages}/community-node-types-utils.js +0 -0
  142. /package/dist/{community-packages → modules/community-packages}/community-packages.config.d.ts +0 -0
  143. /package/dist/{community-packages → modules/community-packages}/community-packages.config.js +0 -0
  144. /package/dist/{community-packages → modules/community-packages}/community-packages.types.d.ts +0 -0
  145. /package/dist/{community-packages → modules/community-packages}/community-packages.types.js +0 -0
  146. /package/dist/{community-packages → modules/community-packages}/npm-utils.d.ts +0 -0
  147. /package/dist/{community-packages → modules/community-packages}/npm-utils.js +0 -0
  148. /package/dist/{community-packages → modules/community-packages}/strapi-utils.d.ts +0 -0
  149. /package/dist/{community-packages → modules/community-packages}/strapi-utils.js +0 -0
@@ -0,0 +1,9 @@
1
+ import { WithTimestamps } from '@n8n/db';
2
+ import type { InstalledNodes } from './installed-nodes.entity';
3
+ export declare class InstalledPackages extends WithTimestamps {
4
+ packageName: string;
5
+ installedVersion: string;
6
+ authorName?: string;
7
+ authorEmail?: string;
8
+ installedNodes: InstalledNodes[];
9
+ }
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.InstalledPackages = void 0;
13
+ const db_1 = require("@n8n/db");
14
+ const typeorm_1 = require("@n8n/typeorm");
15
+ let InstalledPackages = class InstalledPackages extends db_1.WithTimestamps {
16
+ };
17
+ exports.InstalledPackages = InstalledPackages;
18
+ __decorate([
19
+ (0, typeorm_1.PrimaryColumn)(),
20
+ __metadata("design:type", String)
21
+ ], InstalledPackages.prototype, "packageName", void 0);
22
+ __decorate([
23
+ (0, typeorm_1.Column)(),
24
+ __metadata("design:type", String)
25
+ ], InstalledPackages.prototype, "installedVersion", void 0);
26
+ __decorate([
27
+ (0, typeorm_1.Column)(),
28
+ __metadata("design:type", String)
29
+ ], InstalledPackages.prototype, "authorName", void 0);
30
+ __decorate([
31
+ (0, typeorm_1.Column)(),
32
+ __metadata("design:type", String)
33
+ ], InstalledPackages.prototype, "authorEmail", void 0);
34
+ __decorate([
35
+ (0, typeorm_1.OneToMany)('InstalledNodes', 'package'),
36
+ (0, typeorm_1.JoinColumn)({ referencedColumnName: 'package' }),
37
+ __metadata("design:type", Array)
38
+ ], InstalledPackages.prototype, "installedNodes", void 0);
39
+ exports.InstalledPackages = InstalledPackages = __decorate([
40
+ (0, typeorm_1.Entity)()
41
+ ], InstalledPackages);
42
+ //# sourceMappingURL=installed-packages.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"installed-packages.entity.js","sourceRoot":"","sources":["../../../src/modules/community-packages/installed-packages.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gCAAyC;AACzC,0CAAoF;AAK7E,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,mBAAc;CAgBpD,CAAA;AAhBY,8CAAiB;AAE7B;IADC,IAAA,uBAAa,GAAE;;sDACI;AAGpB;IADC,IAAA,gBAAM,GAAE;;2DACgB;AAGzB;IADC,IAAA,gBAAM,GAAE;;qDACW;AAGpB;IADC,IAAA,gBAAM,GAAE;;sDACY;AAIrB;IAFC,IAAA,mBAAS,EAAC,gBAAgB,EAAE,SAAS,CAAC;IACtC,IAAA,oBAAU,EAAC,EAAE,oBAAoB,EAAE,SAAS,EAAE,CAAC;;yDACf;4BAfrB,iBAAiB;IAD7B,IAAA,gBAAM,GAAE;GACI,iBAAiB,CAgB7B"}
@@ -0,0 +1,9 @@
1
+ import { DataSource, Repository } from '@n8n/typeorm';
2
+ import type { PackageDirectoryLoader } from 'n8n-core';
3
+ import { InstalledNodesRepository } from './installed-nodes.repository';
4
+ import { InstalledPackages } from './installed-packages.entity';
5
+ export declare class InstalledPackagesRepository extends Repository<InstalledPackages> {
6
+ private installedNodesRepository;
7
+ constructor(dataSource: DataSource, installedNodesRepository: InstalledNodesRepository);
8
+ saveInstalledPackageWithNodes(packageLoader: PackageDirectoryLoader): Promise<InstalledPackages>;
9
+ }
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.InstalledPackagesRepository = void 0;
13
+ const di_1 = require("@n8n/di");
14
+ const typeorm_1 = require("@n8n/typeorm");
15
+ const installed_nodes_repository_1 = require("./installed-nodes.repository");
16
+ const installed_packages_entity_1 = require("./installed-packages.entity");
17
+ let InstalledPackagesRepository = class InstalledPackagesRepository extends typeorm_1.Repository {
18
+ constructor(dataSource, installedNodesRepository) {
19
+ super(installed_packages_entity_1.InstalledPackages, dataSource.manager);
20
+ this.installedNodesRepository = installedNodesRepository;
21
+ }
22
+ async saveInstalledPackageWithNodes(packageLoader) {
23
+ const { packageJson, nodeTypes, loadedNodes } = packageLoader;
24
+ const { name: packageName, version: installedVersion, author } = packageJson;
25
+ let installedPackage;
26
+ await this.manager.transaction(async (manager) => {
27
+ installedPackage = await manager.save(this.create({
28
+ packageName,
29
+ installedVersion,
30
+ authorName: author?.name,
31
+ authorEmail: author?.email,
32
+ }));
33
+ installedPackage.installedNodes = [];
34
+ for (const loadedNode of loadedNodes) {
35
+ const installedNode = this.installedNodesRepository.create({
36
+ name: nodeTypes[loadedNode.name].type.description.displayName,
37
+ type: `${packageName}.${loadedNode.name}`,
38
+ latestVersion: loadedNode.version,
39
+ package: { packageName },
40
+ });
41
+ installedPackage.installedNodes.push(installedNode);
42
+ await manager.save(installedNode);
43
+ }
44
+ });
45
+ return installedPackage;
46
+ }
47
+ };
48
+ exports.InstalledPackagesRepository = InstalledPackagesRepository;
49
+ exports.InstalledPackagesRepository = InstalledPackagesRepository = __decorate([
50
+ (0, di_1.Service)(),
51
+ __metadata("design:paramtypes", [typeorm_1.DataSource,
52
+ installed_nodes_repository_1.InstalledNodesRepository])
53
+ ], InstalledPackagesRepository);
54
+ //# sourceMappingURL=installed-packages.repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"installed-packages.repository.js","sourceRoot":"","sources":["../../../src/modules/community-packages/installed-packages.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gCAAkC;AAClC,0CAAsD;AAGtD,6EAAwE;AACxE,2EAAgE;AAGzD,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,oBAA6B;IAC7E,YACC,UAAsB,EACd,wBAAkD;QAE1D,KAAK,CAAC,6CAAiB,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;QAFrC,6BAAwB,GAAxB,wBAAwB,CAA0B;IAG3D,CAAC;IAED,KAAK,CAAC,6BAA6B,CAAC,aAAqC;QACxE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,aAAa,CAAC;QAC9D,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC;QAE7E,IAAI,gBAAmC,CAAC;QAExC,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAChD,gBAAgB,GAAG,MAAM,OAAO,CAAC,IAAI,CACpC,IAAI,CAAC,MAAM,CAAC;gBACX,WAAW;gBACX,gBAAgB;gBAChB,UAAU,EAAE,MAAM,EAAE,IAAI;gBACxB,WAAW,EAAE,MAAM,EAAE,KAAK;aAC1B,CAAC,CACF,CAAC;YAEF,gBAAgB,CAAC,cAAc,GAAG,EAAE,CAAC;YAErC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;gBACtC,MAAM,aAAa,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC;oBAC1D,IAAI,EAAE,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW;oBAC7D,IAAI,EAAE,GAAG,WAAW,IAAI,UAAU,CAAC,IAAI,EAAE;oBACzC,aAAa,EAAE,UAAU,CAAC,OAAO;oBACjC,OAAO,EAAE,EAAE,WAAW,EAAE;iBACxB,CAAC,CAAC;gBAEH,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAEpD,MAAM,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACnC,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,OAAO,gBAAiB,CAAC;IAC1B,CAAC;CACD,CAAA;AA1CY,kEAA2B;sCAA3B,2BAA2B;IADvC,IAAA,YAAO,GAAE;qCAGI,oBAAU;QACY,qDAAwB;GAH/C,2BAA2B,CA0CvC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npm-utils.js","sourceRoot":"","sources":["../../../src/modules/community-packages/npm-utils.ts"],"names":[],"mappings":";;;;;AAKA,0CAqBC;AAED,0CAmBC;AA/CD,kDAA0B;AAC1B,+CAA+C;AAE/C,MAAM,eAAe,GAAG,KAAK,CAAC;AAEvB,KAAK,UAAU,eAAe,CACpC,WAAmB,EACnB,OAAe,EACf,WAAmB,EACnB,iBAAyB;IAEzB,MAAM,aAAa,GAAG,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;IAEnD,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;QACpF,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAC/B,GAAG,GAAG,IAAI,OAAO,EAAE,EACnB,aAAa,CACb,CAAC;QAEF,IAAI,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,KAAK,iBAAiB,EAAE,CAAC;YAC3D,MAAM,IAAI,8BAAe,CAAC,iEAAiE,CAAC,CAAC;QAC9F,CAAC;IACF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,8BAAe,CAAC,8BAA8B,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7E,CAAC;AACF,CAAC;AAEM,KAAK,UAAU,eAAe,CACpC,WAAmB,EACnB,OAAe,EACf,WAAmB;IAEnB,MAAM,aAAa,GAAG,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;IAEnD,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;QACpF,MAAM,eAAK,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,OAAO,EAAE,EAAE,aAAa,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,eAAK,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;YACjE,MAAM,IAAI,8BAAe,CAAC,gCAAgC,EAAE;gBAC3D,KAAK,EAAE,KAAK;aACZ,CAAC,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,8BAAe,CAAC,2CAA2C,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1F,CAAC;AACF,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strapi-utils.js","sourceRoot":"","sources":["../../../src/modules/community-packages/strapi-utils.ts"],"names":[],"mappings":";;;;;AA0BA,4CA8CC;AAxED,wDAA6C;AAC7C,gCAAoC;AACpC,kDAA0B;AAC1B,uCAAyC;AAuBlC,KAAK,UAAU,gBAAgB,CAAI,GAAW;IACpD,IAAI,UAAU,GAAQ,EAAE,CAAC;IACzB,IAAI,YAAY,GAAoB,EAAE,CAAC;IAEvC,MAAM,MAAM,GAAG;QACd,UAAU,EAAE;YACX,IAAI,EAAE,CAAC;YACP,QAAQ,EAAE,EAAE;SACZ;KACD,CAAC;IAEF,GAAG,CAAC;QACH,IAAI,QAAQ,CAAC;QACb,IAAI,CAAC;YACJ,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAkB,GAAG,EAAE;gBAChD,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,MAAM;aACN,CAAC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,cAAS,CAAC,GAAG,CAAC,wBAAa,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE;gBACzC,IAAI,EAAE,EAAE,MAAM,EAAE,gCAAgC,EAAE;aAClD,CAAC,CAAC;YACH,cAAS,CAAC,GAAG,CAAC,uBAAM,CAAC,CAAC,KAAK,CAC1B,yCAA0C,KAAe,CAAC,OAAO,EAAE,CACnE,CAAC;YACF,MAAM;QACP,CAAC;QAED,YAAY,GAAG,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEpE,IAAI,CAAC,YAAY,EAAE,MAAM;YAAE,MAAM;QAEjC,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAE7C,IAAI,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;YACtC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YAE3D,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACxB,MAAM;YACP,CAAC;QACF,CAAC;QAED,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC,QAAQ,YAAY,EAAE,MAAM,EAAE;IAE/B,OAAO,UAAU,CAAC;AACnB,CAAC"}
@@ -56,14 +56,18 @@ let DataStoreColumnRepository = class DataStoreColumnRepository extends typeorm_
56
56
  if (!queryRunner) {
57
57
  throw new n8n_workflow_1.UnexpectedError('QueryRunner is not available');
58
58
  }
59
- await this.dataStoreRowsRepository.ensureTableAndAddColumn(dataStoreId, column, queryRunner, em.connection.options.type);
59
+ await this.dataStoreRowsRepository.addColumn(dataStoreId, column, queryRunner, em.connection.options.type);
60
60
  return column;
61
61
  });
62
62
  }
63
63
  async deleteColumn(dataStoreId, column) {
64
64
  await this.manager.transaction(async (em) => {
65
65
  await em.remove(data_store_column_entity_1.DataStoreColumn, column);
66
- await this.dataStoreRowsRepository.dropColumnFromTable(dataStoreId, column.name, em, em.connection.options.type);
66
+ const queryRunner = em.queryRunner;
67
+ if (!queryRunner) {
68
+ throw new n8n_workflow_1.UnexpectedError('QueryRunner is not available');
69
+ }
70
+ await this.dataStoreRowsRepository.dropColumnFromTable(dataStoreId, column.name, queryRunner, em.connection.options.type);
67
71
  await this.shiftColumns(dataStoreId, column.index, -1, em);
68
72
  });
69
73
  }
@@ -1 +1 @@
1
- {"version":3,"file":"data-store-column.repository.js","sourceRoot":"","sources":["../../../src/modules/data-store/data-store-column.repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-store-column.repository.js","sourceRoot":"","sources":["../../../src/modules/data-store/data-store-column.repository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { Logger } from '@n8n/backend-common';
2
+ import { DataStoreProxyProvider, IDataStoreProjectAggregateService, IDataStoreProjectService, INode, Workflow } from 'n8n-workflow';
3
+ import { OwnershipService } from '../../services/ownership.service';
4
+ import { DataStoreService } from './data-store.service';
5
+ export declare class DataStoreProxyService implements DataStoreProxyProvider {
6
+ private readonly dataStoreService;
7
+ private readonly ownershipService;
8
+ private readonly logger;
9
+ constructor(dataStoreService: DataStoreService, ownershipService: OwnershipService, logger: Logger);
10
+ private validateRequest;
11
+ private getProjectId;
12
+ getDataStoreAggregateProxy(workflow: Workflow, node: INode): Promise<IDataStoreProjectAggregateService>;
13
+ getDataStoreProxy(workflow: Workflow, node: INode, dataStoreId: string): Promise<IDataStoreProjectService>;
14
+ private makeAggregateOperations;
15
+ private makeDataStoreOperations;
16
+ }
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.DataStoreProxyService = void 0;
13
+ const backend_common_1 = require("@n8n/backend-common");
14
+ const di_1 = require("@n8n/di");
15
+ const ownership_service_1 = require("../../services/ownership.service");
16
+ const data_store_service_1 = require("./data-store.service");
17
+ let DataStoreProxyService = class DataStoreProxyService {
18
+ constructor(dataStoreService, ownershipService, logger) {
19
+ this.dataStoreService = dataStoreService;
20
+ this.ownershipService = ownershipService;
21
+ this.logger = logger;
22
+ this.logger = this.logger.scoped('data-store');
23
+ }
24
+ validateRequest(node) {
25
+ if (node.type !== 'n8n-nodes-base.dataStore') {
26
+ throw new Error('This proxy is only available for data store nodes');
27
+ }
28
+ }
29
+ async getProjectId(workflow) {
30
+ const homeProject = await this.ownershipService.getWorkflowProjectCached(workflow.id);
31
+ return homeProject.id;
32
+ }
33
+ async getDataStoreAggregateProxy(workflow, node) {
34
+ this.validateRequest(node);
35
+ const projectId = await this.getProjectId(workflow);
36
+ return this.makeAggregateOperations(projectId);
37
+ }
38
+ async getDataStoreProxy(workflow, node, dataStoreId) {
39
+ this.validateRequest(node);
40
+ const projectId = await this.getProjectId(workflow);
41
+ return this.makeDataStoreOperations(projectId, dataStoreId);
42
+ }
43
+ makeAggregateOperations(projectId) {
44
+ const dataStoreService = this.dataStoreService;
45
+ return {
46
+ async getManyAndCount(options = {}) {
47
+ const serviceOptions = {
48
+ ...options,
49
+ filter: { projectId, ...(options.filter ?? {}) },
50
+ };
51
+ return await dataStoreService.getManyAndCount(serviceOptions);
52
+ },
53
+ async createDataStore(options) {
54
+ return await dataStoreService.createDataStore(projectId, options);
55
+ },
56
+ async deleteDataStoreAll() {
57
+ return await dataStoreService.deleteDataStoreByProjectId(projectId);
58
+ },
59
+ };
60
+ }
61
+ makeDataStoreOperations(projectId, dataStoreId) {
62
+ const dataStoreService = this.dataStoreService;
63
+ return {
64
+ async updateDataStore(options) {
65
+ return await dataStoreService.updateDataStore(dataStoreId, projectId, options);
66
+ },
67
+ async deleteDataStore() {
68
+ return await dataStoreService.deleteDataStore(dataStoreId, projectId);
69
+ },
70
+ async getColumns() {
71
+ return await dataStoreService.getColumns(dataStoreId, projectId);
72
+ },
73
+ async addColumn(options) {
74
+ return await dataStoreService.addColumn(dataStoreId, projectId, options);
75
+ },
76
+ async moveColumn(columnId, options) {
77
+ return await dataStoreService.moveColumn(dataStoreId, projectId, columnId, options);
78
+ },
79
+ async deleteColumn(columnId) {
80
+ return await dataStoreService.deleteColumn(dataStoreId, projectId, columnId);
81
+ },
82
+ async getManyRowsAndCount(options) {
83
+ return await dataStoreService.getManyRowsAndCount(dataStoreId, projectId, options);
84
+ },
85
+ async insertRows(rows) {
86
+ return await dataStoreService.insertRows(dataStoreId, projectId, rows);
87
+ },
88
+ async upsertRows(options) {
89
+ return await dataStoreService.upsertRows(dataStoreId, projectId, options);
90
+ },
91
+ };
92
+ }
93
+ };
94
+ exports.DataStoreProxyService = DataStoreProxyService;
95
+ exports.DataStoreProxyService = DataStoreProxyService = __decorate([
96
+ (0, di_1.Service)(),
97
+ __metadata("design:paramtypes", [data_store_service_1.DataStoreService,
98
+ ownership_service_1.OwnershipService,
99
+ backend_common_1.Logger])
100
+ ], DataStoreProxyService);
101
+ //# sourceMappingURL=data-store-proxy.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-store-proxy.service.js","sourceRoot":"","sources":["../../../src/modules/data-store/data-store-proxy.service.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,27 @@
1
- import type { ListDataStoreContentQueryDto, DataStoreUserTableName, DataStoreRows, UpsertDataStoreRowsDto } from '@n8n/api-types';
2
- import { DataSource, DataSourceOptions, EntityManager, QueryRunner } from '@n8n/typeorm';
1
+ import type { ListDataStoreContentQueryDto, UpsertDataStoreRowsDto } from '@n8n/api-types';
2
+ import { GlobalConfig } from '@n8n/config';
3
+ import { DataSource, DataSourceOptions, QueryRunner } from '@n8n/typeorm';
4
+ import { DataStoreColumnJsType, DataStoreRows, DataStoreRowWithId } from 'n8n-workflow';
3
5
  import { DataStoreColumn } from './data-store-column.entity';
6
+ import { DataStoreUserTableName } from './data-store.types';
4
7
  export declare class DataStoreRowsRepository {
5
8
  private dataSource;
6
- constructor(dataSource: DataSource);
7
- insertRows(tableName: DataStoreUserTableName, rows: DataStoreRows, columns: DataStoreColumn[]): Promise<boolean>;
8
- upsertRows(tableName: DataStoreUserTableName, dto: UpsertDataStoreRowsDto, columns: DataStoreColumn[]): Promise<boolean>;
9
- deleteRows(tableName: DataStoreUserTableName, ids: number[]): Promise<boolean>;
10
- createTableWithColumns(tableName: string, columns: DataStoreColumn[], queryRunner: QueryRunner): Promise<void>;
11
- ensureTableAndAddColumn(dataStoreId: string, column: DataStoreColumn, queryRunner: QueryRunner, dbType: DataSourceOptions['type']): Promise<void>;
12
- dropColumnFromTable(dataStoreId: string, columnName: string, em: EntityManager, dbType: DataSourceOptions['type']): Promise<void>;
13
- getManyAndCount(dataStoreId: DataStoreUserTableName, dto: ListDataStoreContentQueryDto): Promise<{
9
+ private readonly globalConfig;
10
+ constructor(dataSource: DataSource, globalConfig: GlobalConfig);
11
+ toTableName(dataStoreId: string): DataStoreUserTableName;
12
+ insertRows(dataStoreId: string, rows: DataStoreRows, columns: DataStoreColumn[], returnData?: boolean): Promise<DataStoreRowWithId[]>;
13
+ upsertRows(dataStoreId: string, dto: UpsertDataStoreRowsDto, columns: DataStoreColumn[]): Promise<boolean>;
14
+ updateRow(dataStoreId: string, setData: Record<string, DataStoreColumnJsType | null>, whereData: Record<string, DataStoreColumnJsType | null>, columns: DataStoreColumn[]): Promise<void>;
15
+ deleteRows(dataStoreId: string, ids: number[]): Promise<boolean>;
16
+ createTableWithColumns(dataStoreId: string, columns: DataStoreColumn[], queryRunner: QueryRunner): Promise<void>;
17
+ dropTable(dataStoreId: string, queryRunner: QueryRunner): Promise<void>;
18
+ addColumn(dataStoreId: string, column: DataStoreColumn, queryRunner: QueryRunner, dbType: DataSourceOptions['type']): Promise<void>;
19
+ dropColumnFromTable(dataStoreId: string, columnName: string, queryRunner: QueryRunner, dbType: DataSourceOptions['type']): Promise<void>;
20
+ getManyAndCount(dataStoreId: string, dto: ListDataStoreContentQueryDto): Promise<{
14
21
  count: number;
15
22
  data: DataStoreRows;
16
23
  }>;
17
- getRowIds(dataStoreId: DataStoreUserTableName, dto: ListDataStoreContentQueryDto): Promise<number[]>;
24
+ getRowIds(dataStoreId: string, dto: ListDataStoreContentQueryDto): Promise<number[]>;
18
25
  private getManyQuery;
19
26
  private applyFilters;
20
27
  private applySorting;
@@ -10,9 +10,11 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.DataStoreRowsRepository = void 0;
13
+ const config_1 = require("@n8n/config");
13
14
  const db_1 = require("@n8n/db");
14
15
  const di_1 = require("@n8n/di");
15
16
  const typeorm_1 = require("@n8n/typeorm");
17
+ const n8n_workflow_1 = require("n8n-workflow");
16
18
  const sql_utils_1 = require("./utils/sql-utils");
17
19
  function getConditionAndParams(filter, index, dbType) {
18
20
  const paramName = `filter_${index}`;
@@ -25,61 +27,121 @@ function getConditionAndParams(filter, index, dbType) {
25
27
  }
26
28
  }
27
29
  let DataStoreRowsRepository = class DataStoreRowsRepository {
28
- constructor(dataSource) {
30
+ constructor(dataSource, globalConfig) {
29
31
  this.dataSource = dataSource;
32
+ this.globalConfig = globalConfig;
30
33
  }
31
- async insertRows(tableName, rows, columns) {
32
- const dbType = this.dataSource.options.type;
33
- await this.dataSource.query.apply(this.dataSource, (0, sql_utils_1.buildInsertQuery)(tableName, rows, columns, dbType));
34
- return true;
34
+ toTableName(dataStoreId) {
35
+ const { tablePrefix } = this.globalConfig.database;
36
+ return `${tablePrefix}data_store_user_${dataStoreId}`;
35
37
  }
36
- async upsertRows(tableName, dto, columns) {
38
+ async insertRows(dataStoreId, rows, columns, returnData = false) {
39
+ const inserted = [];
37
40
  const dbType = this.dataSource.options.type;
38
- const { rows, matchFields } = dto;
39
- if (rows.length === 0) {
40
- return false;
41
+ const useReturning = dbType === 'postgres' || dbType === 'mariadb';
42
+ const table = this.toTableName(dataStoreId);
43
+ const columnNames = columns.map((c) => c.name);
44
+ const escapedColumns = columns.map((c) => this.dataSource.driver.escape(c.name));
45
+ const selectColumns = ['id', ...escapedColumns];
46
+ for (const row of rows) {
47
+ for (const column of columns) {
48
+ row[column.name] = (0, sql_utils_1.normalizeValue)(row[column.name], column.type, dbType);
49
+ }
50
+ const query = this.dataSource
51
+ .createQueryBuilder()
52
+ .insert()
53
+ .into(table, columnNames)
54
+ .values(row);
55
+ if (useReturning) {
56
+ query.returning(returnData ? selectColumns.join(',') : 'id');
57
+ }
58
+ const result = await query.execute();
59
+ if (useReturning) {
60
+ const returned = (0, sql_utils_1.extractReturningData)(result.raw);
61
+ inserted.push.apply(inserted, returned);
62
+ continue;
63
+ }
64
+ const rowIds = (0, sql_utils_1.extractInsertedIds)(result.raw, dbType);
65
+ if (rowIds.length === 0) {
66
+ throw new n8n_workflow_1.UnexpectedError("Couldn't find the inserted row ID");
67
+ }
68
+ if (!returnData) {
69
+ inserted.push(...rowIds.map((id) => ({ id })));
70
+ continue;
71
+ }
72
+ const insertedRow = await this.dataSource
73
+ .createQueryBuilder()
74
+ .select(selectColumns)
75
+ .from(table, 'dataStore')
76
+ .where({ id: (0, typeorm_1.In)(rowIds) })
77
+ .getRawOne();
78
+ if (!insertedRow) {
79
+ throw new n8n_workflow_1.UnexpectedError("Couldn't find the inserted row");
80
+ }
81
+ inserted.push(insertedRow);
41
82
  }
42
- const { rowsToInsert, rowsToUpdate } = await this.fetchAndSplitRowsByExistence(tableName, matchFields, rows);
83
+ return inserted;
84
+ }
85
+ async upsertRows(dataStoreId, dto, columns) {
86
+ const { rows, matchFields } = dto;
87
+ const { rowsToInsert, rowsToUpdate } = await this.fetchAndSplitRowsByExistence(dataStoreId, matchFields, rows);
43
88
  if (rowsToInsert.length > 0) {
44
- await this.insertRows(tableName, rowsToInsert, columns);
89
+ await this.insertRows(dataStoreId, rowsToInsert, columns);
45
90
  }
46
91
  if (rowsToUpdate.length > 0) {
47
92
  for (const row of rowsToUpdate) {
48
- const [query, parameters] = (0, sql_utils_1.buildUpdateQuery)(tableName, row, columns, matchFields, dbType);
49
- await this.dataSource.query(query, parameters);
93
+ const updateKeys = Object.keys(row).filter((key) => !matchFields.includes(key));
94
+ if (updateKeys.length === 0) {
95
+ return true;
96
+ }
97
+ const setData = Object.fromEntries(updateKeys.map((key) => [key, row[key]]));
98
+ const whereData = Object.fromEntries(matchFields.map((key) => [key, row[key]]));
99
+ await this.updateRow(dataStoreId, setData, whereData, columns);
50
100
  }
51
101
  }
52
102
  return true;
53
103
  }
54
- async deleteRows(tableName, ids) {
104
+ async updateRow(dataStoreId, setData, whereData, columns) {
105
+ const dbType = this.dataSource.options.type;
106
+ const columnTypeMap = (0, sql_utils_1.buildColumnTypeMap)(columns);
107
+ const queryBuilder = this.dataSource.createQueryBuilder().update(this.toTableName(dataStoreId));
108
+ const setValues = {};
109
+ for (const [key, value] of Object.entries(setData)) {
110
+ setValues[key] = (0, sql_utils_1.normalizeValue)(value, columnTypeMap[key], dbType);
111
+ }
112
+ queryBuilder.set(setValues);
113
+ const normalizedWhereData = {};
114
+ for (const [field, value] of Object.entries(whereData)) {
115
+ normalizedWhereData[field] = (0, sql_utils_1.normalizeValue)(value, columnTypeMap[field], dbType);
116
+ }
117
+ queryBuilder.where(normalizedWhereData);
118
+ await queryBuilder.execute();
119
+ }
120
+ async deleteRows(dataStoreId, ids) {
55
121
  if (ids.length === 0) {
56
122
  return true;
57
123
  }
58
124
  const dbType = this.dataSource.options.type;
59
- const quotedTableName = (0, sql_utils_1.quoteIdentifier)(tableName, dbType);
125
+ const quotedTableName = (0, sql_utils_1.quoteIdentifier)(this.toTableName(dataStoreId), dbType);
60
126
  const placeholders = ids.map((_, index) => (0, sql_utils_1.getPlaceholder)(index + 1, dbType)).join(', ');
61
127
  const query = `DELETE FROM ${quotedTableName} WHERE id IN (${placeholders})`;
62
128
  await this.dataSource.query(query, ids);
63
129
  return true;
64
130
  }
65
- async createTableWithColumns(tableName, columns, queryRunner) {
131
+ async createTableWithColumns(dataStoreId, columns, queryRunner) {
66
132
  const dslColumns = [new db_1.DslColumn('id').int.autoGenerate2.primary, ...(0, sql_utils_1.toDslColumns)(columns)];
67
- const createTable = new db_1.CreateTable(tableName, '', queryRunner);
133
+ const createTable = new db_1.CreateTable(this.toTableName(dataStoreId), '', queryRunner);
68
134
  createTable.withColumns.apply(createTable, dslColumns);
69
135
  await createTable.execute(queryRunner);
70
136
  }
71
- async ensureTableAndAddColumn(dataStoreId, column, queryRunner, dbType) {
72
- const tableName = (0, sql_utils_1.toTableName)(dataStoreId);
73
- const tableExists = await queryRunner.hasTable(tableName);
74
- if (!tableExists) {
75
- await this.createTableWithColumns(tableName, [column], queryRunner);
76
- }
77
- else {
78
- await queryRunner.manager.query((0, sql_utils_1.addColumnQuery)(tableName, column, dbType));
79
- }
137
+ async dropTable(dataStoreId, queryRunner) {
138
+ await queryRunner.dropTable(this.toTableName(dataStoreId), true);
139
+ }
140
+ async addColumn(dataStoreId, column, queryRunner, dbType) {
141
+ await queryRunner.query((0, sql_utils_1.addColumnQuery)(this.toTableName(dataStoreId), column, dbType));
80
142
  }
81
- async dropColumnFromTable(dataStoreId, columnName, em, dbType) {
82
- await em.query((0, sql_utils_1.deleteColumnQuery)((0, sql_utils_1.toTableName)(dataStoreId), columnName, dbType));
143
+ async dropColumnFromTable(dataStoreId, columnName, queryRunner, dbType) {
144
+ await queryRunner.query((0, sql_utils_1.deleteColumnQuery)(this.toTableName(dataStoreId), columnName, dbType));
83
145
  }
84
146
  async getManyAndCount(dataStoreId, dto) {
85
147
  const [countQuery, query] = this.getManyQuery(dataStoreId, dto);
@@ -93,9 +155,9 @@ let DataStoreRowsRepository = class DataStoreRowsRepository {
93
155
  const result = await query.select('dataStore.id').getRawMany();
94
156
  return result;
95
157
  }
96
- getManyQuery(dataStoreTableName, dto) {
158
+ getManyQuery(dataStoreId, dto) {
97
159
  const query = this.dataSource.createQueryBuilder();
98
- query.from(dataStoreTableName, 'dataStore');
160
+ query.from(this.toTableName(dataStoreId), 'dataStore');
99
161
  this.applyFilters(query, dto);
100
162
  const countQuery = query.clone().select('COUNT(*)');
101
163
  this.applySorting(query, dto);
@@ -132,33 +194,28 @@ let DataStoreRowsRepository = class DataStoreRowsRepository {
132
194
  query.skip(dto.skip);
133
195
  query.take(dto.take);
134
196
  }
135
- async fetchAndSplitRowsByExistence(tableName, matchFields, rows) {
136
- const dbType = this.dataSource.options.type;
137
- const whereClauses = [];
138
- const params = [];
139
- for (const row of rows) {
140
- const clause = matchFields
141
- .map((field) => {
142
- params.push(row[field]);
143
- return `${(0, sql_utils_1.quoteIdentifier)(field, dbType)} = ${(0, sql_utils_1.getPlaceholder)(params.length, dbType)}`;
144
- })
145
- .join(' AND ');
146
- whereClauses.push(`(${clause})`);
147
- }
148
- const quotedFields = matchFields.map((field) => (0, sql_utils_1.quoteIdentifier)(field, dbType)).join(', ');
149
- const quotedTableName = (0, sql_utils_1.quoteIdentifier)(tableName, dbType);
150
- const query = `
151
- SELECT ${quotedFields}
152
- FROM ${quotedTableName}
153
- WHERE ${whereClauses.join(' OR ')}
154
- `;
155
- const existing = await this.dataSource.query(query, params);
197
+ async fetchAndSplitRowsByExistence(dataStoreId, matchFields, rows) {
198
+ const queryBuilder = this.dataSource
199
+ .createQueryBuilder()
200
+ .select(matchFields)
201
+ .from(this.toTableName(dataStoreId), 'datastore');
202
+ rows.forEach((row, index) => {
203
+ const matchData = Object.fromEntries(matchFields.map((field) => [field, row[field]]));
204
+ if (index === 0) {
205
+ queryBuilder.where(matchData);
206
+ }
207
+ else {
208
+ queryBuilder.orWhere(matchData);
209
+ }
210
+ });
211
+ const existing = await queryBuilder.getRawMany();
156
212
  return (0, sql_utils_1.splitRowsByExistence)(existing, matchFields, rows);
157
213
  }
158
214
  };
159
215
  exports.DataStoreRowsRepository = DataStoreRowsRepository;
160
216
  exports.DataStoreRowsRepository = DataStoreRowsRepository = __decorate([
161
217
  (0, di_1.Service)(),
162
- __metadata("design:paramtypes", [typeorm_1.DataSource])
218
+ __metadata("design:paramtypes", [typeorm_1.DataSource,
219
+ config_1.GlobalConfig])
163
220
  ], DataStoreRowsRepository);
164
221
  //# sourceMappingURL=data-store-rows.repository.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-store-rows.repository.js","sourceRoot":"","sources":["../../../src/modules/data-store/data-store-rows.repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-store-rows.repository.js","sourceRoot":"","sources":["../../../src/modules/data-store/data-store-rows.repository.ts"],"names":[],"mappings":"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"}