n8n-nodes-base 0.222.0 → 0.223.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 (116) hide show
  1. package/dist/build.tsbuildinfo +1 -1
  2. package/dist/credentials/GoogleApi.credentials.d.ts +2 -1
  3. package/dist/credentials/GoogleApi.credentials.js +85 -1
  4. package/dist/credentials/GoogleApi.credentials.js.map +1 -1
  5. package/dist/credentials/MySql.credentials.js +115 -0
  6. package/dist/credentials/MySql.credentials.js.map +1 -1
  7. package/dist/credentials/NocoDbApiToken.credentials.d.ts +2 -1
  8. package/dist/credentials/NocoDbApiToken.credentials.js +6 -0
  9. package/dist/credentials/NocoDbApiToken.credentials.js.map +1 -1
  10. package/dist/known/credentials.json +1 -0
  11. package/dist/methods/defined.json +1037 -0
  12. package/dist/methods/referenced.json +1007 -0
  13. package/dist/nodes/Code/Code.node.js +13 -12
  14. package/dist/nodes/Code/Code.node.js.map +1 -1
  15. package/dist/nodes/Code/Sandbox.d.ts +14 -14
  16. package/dist/nodes/Code/Sandbox.js +35 -75
  17. package/dist/nodes/Code/Sandbox.js.map +1 -1
  18. package/dist/nodes/Code/utils.js +1 -1
  19. package/dist/nodes/Code/utils.js.map +1 -1
  20. package/dist/nodes/FreshworksCrm/descriptions/ContactDescription.js +0 -9
  21. package/dist/nodes/FreshworksCrm/descriptions/ContactDescription.js.map +1 -1
  22. package/dist/nodes/Github/GithubTrigger.node.js +0 -5
  23. package/dist/nodes/Github/GithubTrigger.node.js.map +1 -1
  24. package/dist/nodes/Gitlab/Gitlab.node.js +34 -3
  25. package/dist/nodes/Gitlab/Gitlab.node.js.map +1 -1
  26. package/dist/nodes/Google/Sheet/v2/transport/index.js +3 -2
  27. package/dist/nodes/Google/Sheet/v2/transport/index.js.map +1 -1
  28. package/dist/nodes/HttpRequest/V1/HttpRequestV1.node.js +1 -1
  29. package/dist/nodes/HttpRequest/V1/HttpRequestV1.node.js.map +1 -1
  30. package/dist/nodes/HttpRequest/V2/HttpRequestV2.node.js +1 -1
  31. package/dist/nodes/HttpRequest/V2/HttpRequestV2.node.js.map +1 -1
  32. package/dist/nodes/HttpRequest/V3/HttpRequestV3.node.js +15 -4
  33. package/dist/nodes/HttpRequest/V3/HttpRequestV3.node.js.map +1 -1
  34. package/dist/nodes/If/If.node.js +2 -2
  35. package/dist/nodes/If/If.node.js.map +1 -1
  36. package/dist/nodes/MySql/MySql.node.d.ts +3 -13
  37. package/dist/nodes/MySql/MySql.node.js +9 -325
  38. package/dist/nodes/MySql/MySql.node.js.map +1 -1
  39. package/dist/nodes/MySql/v1/GenericFunctions.js.map +1 -0
  40. package/dist/nodes/MySql/v1/MySqlV1.node.d.ts +16 -0
  41. package/dist/nodes/MySql/v1/MySqlV1.node.js +351 -0
  42. package/dist/nodes/MySql/v1/MySqlV1.node.js.map +1 -0
  43. package/dist/nodes/MySql/v2/MySqlV2.node.d.ts +13 -0
  44. package/dist/nodes/MySql/v2/MySqlV2.node.js +20 -0
  45. package/dist/nodes/MySql/v2/MySqlV2.node.js.map +1 -0
  46. package/dist/nodes/MySql/v2/actions/common.descriptions.d.ts +6 -0
  47. package/dist/nodes/MySql/v2/actions/common.descriptions.js +341 -0
  48. package/dist/nodes/MySql/v2/actions/common.descriptions.js.map +1 -0
  49. package/dist/nodes/MySql/v2/actions/database/Database.resource.d.ts +9 -0
  50. package/dist/nodes/MySql/v2/actions/database/Database.resource.js +102 -0
  51. package/dist/nodes/MySql/v2/actions/database/Database.resource.js.map +1 -0
  52. package/dist/nodes/MySql/v2/actions/database/deleteTable.operation.d.ts +24 -0
  53. package/dist/nodes/MySql/v2/actions/database/deleteTable.operation.js +91 -0
  54. package/dist/nodes/MySql/v2/actions/database/deleteTable.operation.js.map +1 -0
  55. package/dist/nodes/MySql/v2/actions/database/executeQuery.operation.d.ts +24 -0
  56. package/dist/nodes/MySql/v2/actions/database/executeQuery.operation.js +64 -0
  57. package/dist/nodes/MySql/v2/actions/database/executeQuery.operation.js.map +1 -0
  58. package/dist/nodes/MySql/v2/actions/database/insert.operation.d.ts +24 -0
  59. package/dist/nodes/MySql/v2/actions/database/insert.operation.js +175 -0
  60. package/dist/nodes/MySql/v2/actions/database/insert.operation.js.map +1 -0
  61. package/dist/nodes/MySql/v2/actions/database/select.operation.d.ts +24 -0
  62. package/dist/nodes/MySql/v2/actions/database/select.operation.js +87 -0
  63. package/dist/nodes/MySql/v2/actions/database/select.operation.js.map +1 -0
  64. package/dist/nodes/MySql/v2/actions/database/update.operation.d.ts +24 -0
  65. package/dist/nodes/MySql/v2/actions/database/update.operation.js +160 -0
  66. package/dist/nodes/MySql/v2/actions/database/update.operation.js.map +1 -0
  67. package/dist/nodes/MySql/v2/actions/database/upsert.operation.d.ts +24 -0
  68. package/dist/nodes/MySql/v2/actions/database/upsert.operation.js +161 -0
  69. package/dist/nodes/MySql/v2/actions/database/upsert.operation.js.map +1 -0
  70. package/dist/nodes/MySql/v2/actions/node.type.d.ts +7 -0
  71. package/dist/nodes/MySql/v2/actions/node.type.js +3 -0
  72. package/dist/nodes/MySql/v2/actions/node.type.js.map +1 -0
  73. package/dist/nodes/MySql/v2/actions/router.d.ts +3 -0
  74. package/dist/nodes/MySql/v2/actions/router.js +70 -0
  75. package/dist/nodes/MySql/v2/actions/router.js.map +1 -0
  76. package/dist/nodes/MySql/v2/actions/versionDescription.d.ts +2 -0
  77. package/dist/nodes/MySql/v2/actions/versionDescription.js +65 -0
  78. package/dist/nodes/MySql/v2/actions/versionDescription.js.map +1 -0
  79. package/dist/nodes/MySql/v2/helpers/interfaces.d.ts +35 -0
  80. package/dist/nodes/MySql/v2/helpers/interfaces.js +14 -0
  81. package/dist/nodes/MySql/v2/helpers/interfaces.js.map +1 -0
  82. package/dist/nodes/MySql/v2/helpers/utils.d.ts +18 -0
  83. package/dist/nodes/MySql/v2/helpers/utils.js +288 -0
  84. package/dist/nodes/MySql/v2/helpers/utils.js.map +1 -0
  85. package/dist/nodes/MySql/v2/methods/credentialTest.d.ts +2 -0
  86. package/dist/nodes/MySql/v2/methods/credentialTest.js +35 -0
  87. package/dist/nodes/MySql/v2/methods/credentialTest.js.map +1 -0
  88. package/dist/nodes/MySql/v2/methods/index.d.ts +3 -0
  89. package/dist/nodes/MySql/v2/methods/index.js +30 -0
  90. package/dist/nodes/MySql/v2/methods/index.js.map +1 -0
  91. package/dist/nodes/MySql/v2/methods/listSearch.d.ts +2 -0
  92. package/dist/nodes/MySql/v2/methods/listSearch.js +38 -0
  93. package/dist/nodes/MySql/v2/methods/listSearch.js.map +1 -0
  94. package/dist/nodes/MySql/v2/methods/loadOptions.d.ts +4 -0
  95. package/dist/nodes/MySql/v2/methods/loadOptions.js +50 -0
  96. package/dist/nodes/MySql/v2/methods/loadOptions.js.map +1 -0
  97. package/dist/nodes/MySql/v2/transport/index.d.ts +4 -0
  98. package/dist/nodes/MySql/v2/transport/index.js +102 -0
  99. package/dist/nodes/MySql/v2/transport/index.js.map +1 -0
  100. package/dist/nodes/NocoDB/NocoDB.node.js +12 -2
  101. package/dist/nodes/NocoDB/NocoDB.node.js.map +1 -1
  102. package/dist/nodes/NocoDB/OperationDescription.js +44 -30
  103. package/dist/nodes/NocoDB/OperationDescription.js.map +1 -1
  104. package/dist/nodes/OpenAi/ChatDescription.js +39 -26
  105. package/dist/nodes/OpenAi/ChatDescription.js.map +1 -1
  106. package/dist/nodes/OpenAi/TextDescription.js +2 -2
  107. package/dist/nodes/OpenAi/TextDescription.js.map +1 -1
  108. package/dist/nodes/Paddle/PaymentDescription.js +1 -1
  109. package/dist/nodes/Paddle/PaymentDescription.js.map +1 -1
  110. package/dist/nodes/Wait/test/Wait.workflow.json +162 -0
  111. package/dist/types/credentials.json +3 -3
  112. package/dist/types/nodes.json +12 -11
  113. package/package.json +4 -4
  114. package/dist/nodes/MySql/GenericFunctions.js.map +0 -1
  115. /package/dist/nodes/MySql/{GenericFunctions.d.ts → v1/GenericFunctions.d.ts} +0 -0
  116. /package/dist/nodes/MySql/{GenericFunctions.js → v1/GenericFunctions.js} +0 -0
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.execute = exports.description = void 0;
4
+ const interfaces_1 = require("../../helpers/interfaces");
5
+ const utilities_1 = require("../../../../../utils/utilities");
6
+ const utils_1 = require("../../helpers/utils");
7
+ const common_descriptions_1 = require("../common.descriptions");
8
+ const properties = [
9
+ {
10
+ displayName: 'Data Mode',
11
+ name: 'dataMode',
12
+ type: 'options',
13
+ options: [
14
+ {
15
+ name: 'Auto-Map Input Data to Columns',
16
+ value: interfaces_1.DATA_MODE.AUTO_MAP,
17
+ description: 'Use when node input properties names exactly match the table column names',
18
+ },
19
+ {
20
+ name: 'Map Each Column Below',
21
+ value: interfaces_1.DATA_MODE.MANUAL,
22
+ description: 'Set the value for each destination column manually',
23
+ },
24
+ ],
25
+ default: interfaces_1.AUTO_MAP,
26
+ description: 'Whether to map node input properties and the table data automatically or manually',
27
+ },
28
+ {
29
+ displayName: `
30
+ In this mode, make sure incoming data fields are named the same as the columns in your table. If needed, use a 'Set' node before this node to change the field names.
31
+ `,
32
+ name: 'notice',
33
+ type: 'notice',
34
+ default: '',
35
+ displayOptions: {
36
+ show: {
37
+ dataMode: [interfaces_1.DATA_MODE.AUTO_MAP],
38
+ },
39
+ },
40
+ },
41
+ {
42
+ displayName: 'Column to Match On',
43
+ name: 'columnToMatchOn',
44
+ type: 'options',
45
+ required: true,
46
+ description: 'The column to compare when finding the rows to update. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code-examples/expressions/">expression</a>.',
47
+ typeOptions: {
48
+ loadOptionsMethod: 'getColumns',
49
+ loadOptionsDependsOn: ['schema.value', 'table.value'],
50
+ },
51
+ default: '',
52
+ hint: "Used to find the correct row to update. Doesn't get changed. Has to be unique.",
53
+ },
54
+ {
55
+ displayName: 'Value of Column to Match On',
56
+ name: 'valueToMatchOn',
57
+ type: 'string',
58
+ default: '',
59
+ description: 'Rows with a value in the specified "Column to Match On" that corresponds to the value in this field will be updated. New rows will be created for non-matching items.',
60
+ displayOptions: {
61
+ show: {
62
+ dataMode: [interfaces_1.DATA_MODE.MANUAL],
63
+ },
64
+ },
65
+ },
66
+ {
67
+ displayName: 'Values to Send',
68
+ name: 'valuesToSend',
69
+ placeholder: 'Add Value',
70
+ type: 'fixedCollection',
71
+ typeOptions: {
72
+ multipleValueButtonText: 'Add Value',
73
+ multipleValues: true,
74
+ },
75
+ displayOptions: {
76
+ show: {
77
+ dataMode: [interfaces_1.DATA_MODE.MANUAL],
78
+ },
79
+ },
80
+ default: {},
81
+ options: [
82
+ {
83
+ displayName: 'Values',
84
+ name: 'values',
85
+ values: [
86
+ {
87
+ displayName: 'Column',
88
+ name: 'column',
89
+ type: 'options',
90
+ description: 'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code-examples/expressions/">expression</a>',
91
+ typeOptions: {
92
+ loadOptionsMethod: 'getColumnsWithoutColumnToMatchOn',
93
+ loadOptionsDependsOn: ['schema.value', 'table.value'],
94
+ },
95
+ default: [],
96
+ },
97
+ {
98
+ displayName: 'Value',
99
+ name: 'value',
100
+ type: 'string',
101
+ default: '',
102
+ },
103
+ ],
104
+ },
105
+ ],
106
+ },
107
+ common_descriptions_1.optionsCollection,
108
+ ];
109
+ const displayOptions = {
110
+ show: {
111
+ resource: ['database'],
112
+ operation: ['upsert'],
113
+ },
114
+ hide: {
115
+ table: [''],
116
+ },
117
+ };
118
+ exports.description = (0, utilities_1.updateDisplayOptions)(displayOptions, properties);
119
+ async function execute(inputItems, runQueries, nodeOptions) {
120
+ let returnData = [];
121
+ const items = (0, utils_1.replaceEmptyStringsByNulls)(inputItems, nodeOptions.replaceEmptyStrings);
122
+ const queries = [];
123
+ for (let i = 0; i < items.length; i++) {
124
+ const table = this.getNodeParameter('table', i, undefined, {
125
+ extractValue: true,
126
+ });
127
+ const columnToMatchOn = this.getNodeParameter('columnToMatchOn', i);
128
+ const dataMode = this.getNodeParameter('dataMode', i);
129
+ let item = {};
130
+ if (dataMode === interfaces_1.DATA_MODE.AUTO_MAP) {
131
+ item = items[i].json;
132
+ }
133
+ if (dataMode === interfaces_1.DATA_MODE.MANUAL) {
134
+ const valuesToSend = this.getNodeParameter('valuesToSend', i, [])
135
+ .values;
136
+ item = valuesToSend.reduce((acc, { column, value }) => {
137
+ acc[column] = value;
138
+ return acc;
139
+ }, {});
140
+ item[columnToMatchOn] = this.getNodeParameter('valueToMatchOn', i);
141
+ }
142
+ const onConflict = 'ON DUPLICATE KEY UPDATE';
143
+ const columns = Object.keys(item);
144
+ const escapedColumns = columns.map((column) => `\`${column}\``).join(', ');
145
+ const placeholder = `${columns.map(() => '?').join(',')}`;
146
+ const insertQuery = `INSERT INTO \`${table}\`(${escapedColumns}) VALUES(${placeholder})`;
147
+ const values = Object.values(item);
148
+ const updateColumns = Object.keys(item).filter((column) => column !== columnToMatchOn);
149
+ const updates = [];
150
+ for (const column of updateColumns) {
151
+ updates.push(`\`${column}\` = ?`);
152
+ values.push(item[column]);
153
+ }
154
+ const query = `${insertQuery} ${onConflict} ${updates.join(', ')}`;
155
+ queries.push({ query, values });
156
+ }
157
+ returnData = await runQueries(queries);
158
+ return returnData;
159
+ }
160
+ exports.execute = execute;
161
+ //# sourceMappingURL=upsert.operation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upsert.operation.js","sourceRoot":"","sources":["../../../../../../nodes/MySql/v2/actions/database/upsert.operation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { AllEntities, Entity } from 'n8n-workflow';
2
+ type MySQLMap = {
3
+ database: 'deleteTable' | 'executeQuery' | 'insert' | 'select' | 'update' | 'upsert';
4
+ };
5
+ export type MySqlType = AllEntities<MySQLMap>;
6
+ export type MySQLDatabaseType = Entity<MySQLMap, 'database'>;
7
+ export {};
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=node.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.type.js","sourceRoot":"","sources":["../../../../../nodes/MySql/v2/actions/node.type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import type { INodeExecutionData } from 'n8n-workflow';
2
+ import type { IExecuteFunctions } from 'n8n-core';
3
+ export declare function router(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.router = void 0;
27
+ const n8n_workflow_1 = require("n8n-workflow");
28
+ const ssh2_1 = require("ssh2");
29
+ const database = __importStar(require("./database/Database.resource"));
30
+ const transport_1 = require("../transport");
31
+ const utils_1 = require("../helpers/utils");
32
+ async function router() {
33
+ let returnData = [];
34
+ const resource = this.getNodeParameter('resource', 0);
35
+ const operation = this.getNodeParameter('operation', 0);
36
+ const nodeOptions = this.getNodeParameter('options', 0);
37
+ const credentials = await this.getCredentials('mySql');
38
+ let sshClient = undefined;
39
+ if (credentials.sshTunnel) {
40
+ sshClient = new ssh2_1.Client();
41
+ }
42
+ const pool = await (0, transport_1.createPool)(credentials, nodeOptions, sshClient);
43
+ const runQueries = utils_1.configureQueryRunner.call(this, nodeOptions, pool);
44
+ const mysqlNodeData = {
45
+ resource,
46
+ operation,
47
+ };
48
+ try {
49
+ switch (mysqlNodeData.resource) {
50
+ case 'database':
51
+ const items = this.getInputData();
52
+ returnData = await database[mysqlNodeData.operation].execute.call(this, items, runQueries, nodeOptions);
53
+ break;
54
+ default:
55
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `The operation "${operation}" is not supported!`);
56
+ }
57
+ }
58
+ catch (error) {
59
+ throw error;
60
+ }
61
+ finally {
62
+ if (sshClient) {
63
+ sshClient.end();
64
+ }
65
+ await pool.end();
66
+ }
67
+ return this.prepareOutputData(returnData);
68
+ }
69
+ exports.router = router;
70
+ //# sourceMappingURL=router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../../../../nodes/MySql/v2/actions/router.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,+CAAkD;AAGlD,+BAA8B;AAK9B,uEAAyD;AAEzD,4CAA0C;AAC1C,4CAAwD;AAEjD,KAAK,UAAU,MAAM;IAC3B,IAAI,UAAU,GAAyB,EAAE,CAAC;IAE1C,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAY,UAAU,EAAE,CAAC,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAExD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAEvD,IAAI,SAAS,GAAuB,SAAS,CAAC;IAE9C,IAAI,WAAW,CAAC,SAAS,EAAE;QAC1B,SAAS,GAAG,IAAI,aAAM,EAAE,CAAC;KACzB;IACD,MAAM,IAAI,GAAG,MAAM,IAAA,sBAAU,EAAC,WAAW,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAEnE,MAAM,UAAU,GAAgB,4BAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;IAEnF,MAAM,aAAa,GAAG;QACrB,QAAQ;QACR,SAAS;KACI,CAAC;IAEf,IAAI;QACH,QAAQ,aAAa,CAAC,QAAQ,EAAE;YAC/B,KAAK,UAAU;gBACd,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;gBAElC,UAAU,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,CAChE,IAAI,EACJ,KAAK,EACL,UAAU,EACV,WAAW,CACX,CAAC;gBACF,MAAM;YACP;gBACC,MAAM,IAAI,iCAAkB,CAC3B,IAAI,CAAC,OAAO,EAAE,EACd,kBAAkB,SAAS,qBAAqB,CAChD,CAAC;SACH;KACD;IAAC,OAAO,KAAK,EAAE;QACf,MAAM,KAAK,CAAC;KACZ;YAAS;QACT,IAAI,SAAS,EAAE;YACd,SAAS,CAAC,GAAG,EAAE,CAAC;SAChB;QACD,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;KACjB;IAED,OAAO,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;AAC3C,CAAC;AAnDD,wBAmDC"}
@@ -0,0 +1,2 @@
1
+ import type { INodeTypeDescription } from 'n8n-workflow';
2
+ export declare const versionDescription: INodeTypeDescription;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.versionDescription = void 0;
27
+ const database = __importStar(require("./database/Database.resource"));
28
+ exports.versionDescription = {
29
+ displayName: 'MySQL',
30
+ name: 'mySql',
31
+ icon: 'file:mysql.svg',
32
+ group: ['input'],
33
+ version: 2,
34
+ subtitle: '={{ $parameter["operation"] }}',
35
+ description: 'Get, add and update data in MySQL',
36
+ defaults: {
37
+ name: 'MySQL',
38
+ },
39
+ inputs: ['main'],
40
+ outputs: ['main'],
41
+ credentials: [
42
+ {
43
+ name: 'mySql',
44
+ required: true,
45
+ testedBy: 'mysqlConnectionTest',
46
+ },
47
+ ],
48
+ properties: [
49
+ {
50
+ displayName: 'Resource',
51
+ name: 'resource',
52
+ type: 'hidden',
53
+ noDataExpression: true,
54
+ options: [
55
+ {
56
+ name: 'Database',
57
+ value: 'database',
58
+ },
59
+ ],
60
+ default: 'database',
61
+ },
62
+ ...database.description,
63
+ ],
64
+ };
65
+ //# sourceMappingURL=versionDescription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"versionDescription.js","sourceRoot":"","sources":["../../../../../nodes/MySql/v2/actions/versionDescription.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,uEAAyD;AAE5C,QAAA,kBAAkB,GAAyB;IACvD,WAAW,EAAE,OAAO;IACpB,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,gBAAgB;IACtB,KAAK,EAAE,CAAC,OAAO,CAAC;IAChB,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,gCAAgC;IAC1C,WAAW,EAAE,mCAAmC;IAChD,QAAQ,EAAE;QACT,IAAI,EAAE,OAAO;KACb;IACD,MAAM,EAAE,CAAC,MAAM,CAAC;IAChB,OAAO,EAAE,CAAC,MAAM,CAAC;IACjB,WAAW,EAAE;QACZ;YACC,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,qBAAqB;SAC/B;KACD;IACD,UAAU,EAAE;QACX;YACC,WAAW,EAAE,UAAU;YACvB,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,QAAQ;YACd,gBAAgB,EAAE,IAAI;YACtB,OAAO,EAAE;gBACR;oBACC,IAAI,EAAE,UAAU;oBAChB,KAAK,EAAE,UAAU;iBACjB;aACD;YACD,OAAO,EAAE,UAAU;SACnB;QACD,GAAG,QAAQ,CAAC,WAAW;KACvB;CACD,CAAC"}
@@ -0,0 +1,35 @@
1
+ import type mysql2 from 'mysql2/promise';
2
+ import type { IDataObject, INodeExecutionData } from 'n8n-workflow';
3
+ export type Mysql2Connection = mysql2.Connection;
4
+ export type Mysql2Pool = mysql2.Pool;
5
+ export type Mysql2OkPacket = mysql2.OkPacket;
6
+ export type QueryValues = Array<string | number | IDataObject>;
7
+ export type QueryWithValues = {
8
+ query: string;
9
+ values: QueryValues;
10
+ };
11
+ export type QueryRunner = (queries: QueryWithValues[]) => Promise<INodeExecutionData[]>;
12
+ export type WhereClause = {
13
+ column: string;
14
+ condition: string;
15
+ value: string | number;
16
+ };
17
+ export type SortRule = {
18
+ column: string;
19
+ direction: string;
20
+ };
21
+ export declare const AUTO_MAP = "autoMapInputData";
22
+ export declare const DATA_MODE: {
23
+ AUTO_MAP: string;
24
+ MANUAL: string;
25
+ };
26
+ export declare const SINGLE = "single";
27
+ declare const TRANSACTION = "transaction";
28
+ declare const INDEPENDENTLY = "independently";
29
+ export declare const BATCH_MODE: {
30
+ SINGLE: string;
31
+ TRANSACTION: string;
32
+ INDEPENDENTLY: string;
33
+ };
34
+ export type QueryMode = typeof SINGLE | typeof TRANSACTION | typeof INDEPENDENTLY;
35
+ export {};
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BATCH_MODE = exports.SINGLE = exports.DATA_MODE = exports.AUTO_MAP = void 0;
4
+ exports.AUTO_MAP = 'autoMapInputData';
5
+ const MANUAL = 'defineBelow';
6
+ exports.DATA_MODE = {
7
+ AUTO_MAP: exports.AUTO_MAP,
8
+ MANUAL,
9
+ };
10
+ exports.SINGLE = 'single';
11
+ const TRANSACTION = 'transaction';
12
+ const INDEPENDENTLY = 'independently';
13
+ exports.BATCH_MODE = { SINGLE: exports.SINGLE, TRANSACTION, INDEPENDENTLY };
14
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../../nodes/MySql/v2/helpers/interfaces.ts"],"names":[],"mappings":";;;AAea,QAAA,QAAQ,GAAG,kBAAkB,CAAC;AAC3C,MAAM,MAAM,GAAG,aAAa,CAAC;AAChB,QAAA,SAAS,GAAG;IACxB,QAAQ,EAAR,gBAAQ;IACR,MAAM;CACN,CAAC;AAEW,QAAA,MAAM,GAAG,QAAQ,CAAC;AAC/B,MAAM,WAAW,GAAG,aAAa,CAAC;AAClC,MAAM,aAAa,GAAG,eAAe,CAAC;AACzB,QAAA,UAAU,GAAG,EAAE,MAAM,EAAN,cAAM,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { IDataObject, IExecuteFunctions, INode, INodeExecutionData, IPairedItemData, NodeExecutionWithMetadata } from 'n8n-workflow';
2
+ import { NodeOperationError } from 'n8n-workflow';
3
+ import type { Mysql2Pool, QueryValues, QueryWithValues, SortRule, WhereClause } from './interfaces';
4
+ export declare function copyInputItems(items: INodeExecutionData[], properties: string[]): IDataObject[];
5
+ export declare const prepareQueryAndReplacements: (rawQuery: string, replacements?: QueryValues) => {
6
+ query: string;
7
+ values: QueryValues;
8
+ };
9
+ export declare function prepareErrorItem(item: IDataObject, error: IDataObject | NodeOperationError | Error, index: number): INodeExecutionData;
10
+ export declare function parseMySqlError(this: IExecuteFunctions, error: any, itemIndex?: number, queries?: string[]): NodeOperationError;
11
+ export declare function wrapData(data: IDataObject | IDataObject[]): INodeExecutionData[];
12
+ export declare function prepareOutput(response: IDataObject[], options: IDataObject, statements: string[], constructExecutionHelper: (inputData: INodeExecutionData[], options: {
13
+ itemData: IPairedItemData | IPairedItemData[];
14
+ }) => NodeExecutionWithMetadata[]): INodeExecutionData[];
15
+ export declare function configureQueryRunner(this: IExecuteFunctions, options: IDataObject, pool: Mysql2Pool): (queries: QueryWithValues[]) => Promise<INodeExecutionData[]>;
16
+ export declare function addWhereClauses(node: INode, itemIndex: number, query: string, clauses: WhereClause[], replacements: QueryValues, combineConditions?: string): [string, QueryValues];
17
+ export declare function addSortRules(query: string, rules: SortRule[], replacements: QueryValues): [string, QueryValues];
18
+ export declare function replaceEmptyStringsByNulls(items: INodeExecutionData[], replace?: boolean): INodeExecutionData[];