n8n-nodes-base 2.31.2 → 2.31.3

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 (50) hide show
  1. package/dist/cjs/build.tsbuildinfo +1 -1
  2. package/dist/credentials/common/aws/utils.d.ts.map +1 -1
  3. package/dist/credentials/common/aws/utils.js +6 -3
  4. package/dist/credentials/common/aws/utils.js.map +1 -1
  5. package/dist/node-definitions/.nodes-hash +1 -1
  6. package/dist/node-definitions/nodes/n8n-nodes-base/googleAnalytics/v2/resource_report/operation_get.ts +2 -2
  7. package/dist/node-definitions/nodes/n8n-nodes-base/microsoftOutlook/v2/resource_event/operation_create.ts +2 -2
  8. package/dist/node-definitions/nodes/n8n-nodes-base/snowflake/v1.schema.js +1 -0
  9. package/dist/node-definitions/nodes/n8n-nodes-base/snowflake/v1.ts +13 -1
  10. package/dist/nodes/EditImage/EditImage.node.d.ts.map +1 -1
  11. package/dist/nodes/EditImage/EditImage.node.js +9 -1
  12. package/dist/nodes/EditImage/EditImage.node.js.map +1 -1
  13. package/dist/nodes/EmailSend/utils.d.ts +2 -0
  14. package/dist/nodes/EmailSend/utils.d.ts.map +1 -0
  15. package/dist/nodes/EmailSend/utils.js +16 -0
  16. package/dist/nodes/EmailSend/utils.js.map +1 -0
  17. package/dist/nodes/EmailSend/v1/EmailSendV1.node.d.ts.map +1 -1
  18. package/dist/nodes/EmailSend/v1/EmailSendV1.node.js +12 -8
  19. package/dist/nodes/EmailSend/v1/EmailSendV1.node.js.map +1 -1
  20. package/dist/nodes/EmailSend/v2/send.operation.d.ts.map +1 -1
  21. package/dist/nodes/EmailSend/v2/send.operation.js +14 -8
  22. package/dist/nodes/EmailSend/v2/send.operation.js.map +1 -1
  23. package/dist/nodes/EmailSend/v2/sendAndWait.operation.d.ts.map +1 -1
  24. package/dist/nodes/EmailSend/v2/sendAndWait.operation.js +3 -2
  25. package/dist/nodes/EmailSend/v2/sendAndWait.operation.js.map +1 -1
  26. package/dist/nodes/EmailSend/v2/utils.d.ts.map +1 -1
  27. package/dist/nodes/EmailSend/v2/utils.js +4 -1
  28. package/dist/nodes/EmailSend/v2/utils.js.map +1 -1
  29. package/dist/nodes/Git/GenericFunctions.d.ts +17 -0
  30. package/dist/nodes/Git/GenericFunctions.d.ts.map +1 -1
  31. package/dist/nodes/Git/GenericFunctions.js +89 -8
  32. package/dist/nodes/Git/GenericFunctions.js.map +1 -1
  33. package/dist/nodes/Git/Git.node.d.ts.map +1 -1
  34. package/dist/nodes/Git/Git.node.js +32 -30
  35. package/dist/nodes/Git/Git.node.js.map +1 -1
  36. package/dist/nodes/Postgres/PostgresTrigger.functions.d.ts +1 -0
  37. package/dist/nodes/Postgres/PostgresTrigger.functions.d.ts.map +1 -1
  38. package/dist/nodes/Postgres/PostgresTrigger.functions.js +35 -30
  39. package/dist/nodes/Postgres/PostgresTrigger.functions.js.map +1 -1
  40. package/dist/nodes/Postgres/PostgresTrigger.node.d.ts.map +1 -1
  41. package/dist/nodes/Postgres/PostgresTrigger.node.js +24 -12
  42. package/dist/nodes/Postgres/PostgresTrigger.node.js.map +1 -1
  43. package/dist/nodes/Snowflake/GenericFunctions.d.ts +1 -1
  44. package/dist/nodes/Snowflake/GenericFunctions.d.ts.map +1 -1
  45. package/dist/nodes/Snowflake/GenericFunctions.js.map +1 -1
  46. package/dist/nodes/Snowflake/Snowflake.node.d.ts.map +1 -1
  47. package/dist/nodes/Snowflake/Snowflake.node.js +40 -2
  48. package/dist/nodes/Snowflake/Snowflake.node.js.map +1 -1
  49. package/dist/types/nodes.json +3 -3
  50. package/package.json +11 -11
@@ -7,6 +7,23 @@ import type { ConfigListSummary } from 'simple-git';
7
7
  * @throws {NodeOperationError} If the reference contains unsafe characters or patterns
8
8
  */
9
9
  export declare function validateGitReference(reference: string, node: INode): void;
10
+ /**
11
+ * Validates a git tag name. Tags follow git's ref-format rules, which permit
12
+ * `+` (e.g. SemVer build metadata like `v1.2.3+build.1`), so the whitelist is
13
+ * a superset of `validateGitReference` while keeping the same safeguards.
14
+ * @param name - The tag name to validate
15
+ * @param node - The node instance for error throwing
16
+ * @throws {NodeOperationError} If the tag name contains unsafe characters or patterns
17
+ */
18
+ export declare function validateGitTag(name: string, node: INode): void;
19
+ export type GitRepositoryType = 'source' | 'target';
20
+ export interface ConfiguredRemoteRepositories {
21
+ sourceValidationTargets: string[];
22
+ targetValidationTargets: string[];
23
+ pushTarget: string | undefined;
24
+ }
25
+ export declare function getRepositoryTypeForRemoteConfigKey(key: string): GitRepositoryType | undefined;
26
+ export declare function getConfiguredRemoteRepositories(configValues: Record<string, Record<string, string | string[] | undefined>>, node: INode): ConfiguredRemoteRepositories;
10
27
  export declare function mapGitConfigList(config: ConfigListSummary): {
11
28
  "remote.origin.url": string | string[];
12
29
  "remote.origin.pushurl": string | string[];
@@ -1 +1 @@
1
- {"version":3,"file":"GenericFunctions.d.ts","sourceRoot":"","sources":["../../../nodes/Git/GenericFunctions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,CAgCzE;AAaD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB;;;;IA6BzD"}
1
+ {"version":3,"file":"GenericFunctions.d.ts","sourceRoot":"","sources":["../../../nodes/Git/GenericFunctions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AA4CpD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,CAGzE;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,CAE9D;AAQD,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEpD,MAAM,WAAW,4BAA4B;IAC5C,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED,wBAAgB,mCAAmC,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAQ9F;AAYD,wBAAgB,+BAA+B,CAC9C,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,EAC3E,IAAI,EAAE,KAAK,GACT,4BAA4B,CAmD9B;AASD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB;;;;IA6BzD"}
@@ -1,19 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateGitReference = validateGitReference;
4
+ exports.validateGitTag = validateGitTag;
5
+ exports.getRepositoryTypeForRemoteConfigKey = getRepositoryTypeForRemoteConfigKey;
6
+ exports.getConfiguredRemoteRepositories = getConfiguredRemoteRepositories;
4
7
  exports.mapGitConfigList = mapGitConfigList;
5
8
  const n8n_workflow_1 = require("n8n-workflow");
6
9
  /**
7
- * Validates a git reference to prevent command injection attacks
8
- * @param reference - The git reference to validate (e.g., branch name, HEAD, refs/heads/main)
9
- * @param node - The node instance for error throwing
10
- * @throws {NodeOperationError} If the reference contains unsafe characters or patterns
10
+ * Shared safeguards for git references: block argument injection, path
11
+ * traversal, and control characters. The caller supplies the allowed-character
12
+ * whitelist so tags (which permit `+`) can be validated less strictly than
13
+ * branch/ref names without weakening the injection protections.
11
14
  */
12
- function validateGitReference(reference, node) {
13
- // Allow only safe characters: alphanumeric, /, @, {, }, ., -, _, :
14
- const safeReferencePattern = /^[a-zA-Z0-9/@{}._:-]+$/;
15
+ function assertSafeGitReference(reference, node, safeReferencePattern, allowedCharsMessage) {
15
16
  if (!safeReferencePattern.test(reference)) {
16
- throw new n8n_workflow_1.NodeOperationError(node, 'Invalid reference format. Reference contains unsafe characters. Only alphanumeric characters and /@{}._:- are allowed');
17
+ throw new n8n_workflow_1.NodeOperationError(node, `Invalid reference format. Reference contains unsafe characters. Only alphanumeric characters and ${allowedCharsMessage} are allowed`);
17
18
  }
18
19
  // Prevent argument injection by blocking references starting with -
19
20
  if (reference.startsWith('-')) {
@@ -29,8 +30,88 @@ function validateGitReference(reference, node) {
29
30
  throw new n8n_workflow_1.NodeOperationError(node, 'Invalid reference format. Reference cannot contain control characters');
30
31
  }
31
32
  }
33
+ /**
34
+ * Validates a git reference to prevent command injection attacks
35
+ * @param reference - The git reference to validate (e.g., branch name, HEAD, refs/heads/main)
36
+ * @param node - The node instance for error throwing
37
+ * @throws {NodeOperationError} If the reference contains unsafe characters or patterns
38
+ */
39
+ function validateGitReference(reference, node) {
40
+ // Allow only safe characters: alphanumeric, /, @, {, }, ., -, _, :
41
+ assertSafeGitReference(reference, node, /^[a-zA-Z0-9/@{}._:-]+$/, '/@{}._:-');
42
+ }
43
+ /**
44
+ * Validates a git tag name. Tags follow git's ref-format rules, which permit
45
+ * `+` (e.g. SemVer build metadata like `v1.2.3+build.1`), so the whitelist is
46
+ * a superset of `validateGitReference` while keeping the same safeguards.
47
+ * @param name - The tag name to validate
48
+ * @param node - The node instance for error throwing
49
+ * @throws {NodeOperationError} If the tag name contains unsafe characters or patterns
50
+ */
51
+ function validateGitTag(name, node) {
52
+ assertSafeGitReference(name, node, /^[a-zA-Z0-9/@{}._:+-]+$/, '/@{}._:+-');
53
+ }
32
54
  const REMOTE_ORIGIN_URL_KEY = 'remote.origin.url';
33
55
  const REMOTE_ORIGIN_PUSH_URL_KEY = 'remote.origin.pushurl';
56
+ const REMOTE_CONFIG_KEY_PATTERN = /^remote\.(.+)\.(url|pushurl)$/i;
57
+ function getRepositoryTypeForRemoteConfigKey(key) {
58
+ const match = REMOTE_CONFIG_KEY_PATTERN.exec(key);
59
+ if (!match) {
60
+ return undefined;
61
+ }
62
+ return match[2].toLowerCase() === 'pushurl' ? 'target' : 'source';
63
+ }
64
+ function addRemoteValue(remoteValuesByName, remoteName, value) {
65
+ const existingValues = remoteValuesByName.get(remoteName) ?? [];
66
+ existingValues.push(value);
67
+ remoteValuesByName.set(remoteName, existingValues);
68
+ }
69
+ function getConfiguredRemoteRepositories(configValues, node) {
70
+ const sourceValidationTargets = [];
71
+ const targetValidationTargets = [];
72
+ const remoteOriginUrls = [];
73
+ const remoteOriginPushUrls = [];
74
+ const remoteUrlsByName = new Map();
75
+ const remotePushUrlsByName = new Map();
76
+ for (const values of Object.values(configValues)) {
77
+ for (const [key, value] of Object.entries(values)) {
78
+ const match = REMOTE_CONFIG_KEY_PATTERN.exec(key);
79
+ if (value === undefined || match === null) {
80
+ continue;
81
+ }
82
+ if (typeof value !== 'string') {
83
+ throw new n8n_workflow_1.NodeOperationError(node, 'Target repository is required');
84
+ }
85
+ const remoteName = match[1].toLowerCase();
86
+ const repositoryType = match[2].toLowerCase();
87
+ const normalizedKey = key.toLowerCase();
88
+ if (repositoryType === 'pushurl') {
89
+ addRemoteValue(remotePushUrlsByName, remoteName, value);
90
+ if (normalizedKey === REMOTE_ORIGIN_PUSH_URL_KEY) {
91
+ remoteOriginPushUrls.push(value);
92
+ }
93
+ }
94
+ else {
95
+ sourceValidationTargets.push(value);
96
+ addRemoteValue(remoteUrlsByName, remoteName, value);
97
+ }
98
+ if (normalizedKey === REMOTE_ORIGIN_URL_KEY) {
99
+ remoteOriginUrls.push(value);
100
+ }
101
+ }
102
+ }
103
+ const remoteNames = new Set([...remoteUrlsByName.keys(), ...remotePushUrlsByName.keys()]);
104
+ for (const remoteName of remoteNames) {
105
+ const remoteUrls = remoteUrlsByName.get(remoteName) ?? [];
106
+ const remotePushUrls = remotePushUrlsByName.get(remoteName);
107
+ targetValidationTargets.push.apply(targetValidationTargets, remotePushUrls ?? remoteUrls);
108
+ }
109
+ return {
110
+ sourceValidationTargets,
111
+ targetValidationTargets,
112
+ pushTarget: remoteOriginPushUrls[0] ?? remoteOriginUrls[0],
113
+ };
114
+ }
34
115
  function sanitizeUrl(url) {
35
116
  const urlObj = new URL(url);
36
117
  urlObj.username = '';
@@ -1 +1 @@
1
- {"version":3,"file":"GenericFunctions.js","sourceRoot":"","sources":["../../../nodes/Git/GenericFunctions.ts"],"names":[],"mappings":";;AAUA,oDAgCC;AAaD,4CA6BC;AAnFD,+CAAkD;AAGlD;;;;;GAKG;AACH,SAAgB,oBAAoB,CAAC,SAAiB,EAAE,IAAW;IAClE,mEAAmE;IACnE,MAAM,oBAAoB,GAAG,wBAAwB,CAAC;IAEtD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,iCAAkB,CAC3B,IAAI,EACJ,uHAAuH,CACvH,CAAC;IACH,CAAC;IAED,oEAAoE;IACpE,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,iCAAkB,CAC3B,IAAI,EACJ,gEAAgE,CAChE,CAAC;IACH,CAAC;IAED,kCAAkC;IAClC,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,iCAAkB,CAAC,IAAI,EAAE,yDAAyD,CAAC,CAAC;IAC/F,CAAC;IAED,8DAA8D;IAC9D,4CAA4C;IAC5C,IAAI,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,iCAAkB,CAC3B,IAAI,EACJ,uEAAuE,CACvE,CAAC;IACH,CAAC;AACF,CAAC;AAED,MAAM,qBAAqB,GAAG,mBAAmB,CAAC;AAElD,MAAM,0BAA0B,GAAG,uBAAuB,CAAC;AAE3D,SAAS,WAAW,CAAC,GAAW;IAC/B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC;IACrB,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC;IACrB,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;AAC1B,CAAC;AAED,SAAgB,gBAAgB,CAAC,MAAyB;IACzD,MAAM,IAAI,GAAG,EAAE,CAAC;IAChB,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACnD,IAAI,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC;QACrE,IAAI,eAAe,EAAE,CAAC;YACrB,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;gBACpC,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACP,eAAe,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC;YAChD,CAAC;QACF,CAAC;QAED,IAAI,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,0BAA0B,CAAC,CAAC;QAC9E,IAAI,mBAAmB,EAAE,CAAC;YACzB,IAAI,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBACxC,mBAAmB,GAAG,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACP,mBAAmB,GAAG,WAAW,CAAC,mBAAmB,CAAC,CAAC;YACxD,CAAC;QACF,CAAC;QAED,IAAI,CAAC,IAAI,CAAC;YACT,KAAK,EAAE,QAAQ;YACf,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC1B,CAAC,qBAAqB,CAAC,EAAE,eAAe;YACxC,CAAC,0BAA0B,CAAC,EAAE,mBAAmB;SACjD,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"GenericFunctions.js","sourceRoot":"","sources":["../../../nodes/Git/GenericFunctions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Git.node.d.ts","sourceRoot":"","sources":["../../../nodes/Git/Git.node.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,oBAAoB,EAEpB,MAAM,cAAc,CAAC;AA8BtB,qBAAa,GAAI,YAAW,SAAS;IACpC,WAAW,EAAE,oBAAoB,CA2L/B;IAEI,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;CA4sBvE"}
1
+ {"version":3,"file":"Git.node.d.ts","sourceRoot":"","sources":["../../../nodes/Git/Git.node.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,oBAAoB,EAEpB,MAAM,cAAc,CAAC;AAqCtB,qBAAa,GAAI,YAAW,SAAS;IACpC,WAAW,EAAE,oBAAoB,CA2L/B;IAEI,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;CAgtBvE"}
@@ -253,7 +253,17 @@ class Git {
253
253
  }
254
254
  };
255
255
  const hasUrlScheme = (repositoryPath) => /^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(repositoryPath);
256
- const isSshRepositoryPath = (repositoryPath) => /^(?:[^@\s]+@)?[^:\s]+:.+/.test(repositoryPath);
256
+ const isSshRepositoryPath = (repositoryPath) => {
257
+ const colonIndex = repositoryPath.indexOf(':');
258
+ if (colonIndex === -1) {
259
+ return false;
260
+ }
261
+ const remoteHost = repositoryPath.slice(0, colonIndex);
262
+ return (remoteHost.length > 0 &&
263
+ !remoteHost.includes('/') &&
264
+ !remoteHost.includes('\\') &&
265
+ /^(?:[^@\s]+@)?[^@\s]+$/.test(remoteHost));
266
+ };
257
267
  const assertLocalRepositoryPathAllowed = async (repositoryPath, repositoryType, baseDir) => {
258
268
  const absoluteLocalRepositoryPath = (0, path_1.isAbsolute)(repositoryPath)
259
269
  ? repositoryPath
@@ -292,30 +302,16 @@ class Git {
292
302
  await assertLocalRepositoryPathAllowed(trimmedRepository, repositoryType, baseDir);
293
303
  }
294
304
  };
295
- const getRemoteOriginTargetRepositories = (configValues) => {
296
- const remoteOriginUrls = [];
297
- const remoteOriginPushUrls = [];
298
- for (const values of Object.values(configValues)) {
299
- for (const key of ['remote.origin.url', 'remote.origin.pushurl']) {
300
- const value = values[key];
301
- if (value === undefined) {
302
- continue;
303
- }
304
- if (typeof value !== 'string') {
305
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Target repository is required');
306
- }
307
- if (key === 'remote.origin.pushurl') {
308
- remoteOriginPushUrls.push(value);
309
- }
310
- else {
311
- remoteOriginUrls.push(value);
312
- }
313
- }
305
+ const validateConfiguredRemoteRepositories = async (git, repositoryType, baseDir) => {
306
+ const config = await git.listConfig();
307
+ const remoteRepositories = (0, GenericFunctions_1.getConfiguredRemoteRepositories)(config.values, this.getNode());
308
+ const validationTargets = repositoryType === 'source'
309
+ ? remoteRepositories.sourceValidationTargets
310
+ : remoteRepositories.targetValidationTargets;
311
+ for (const repository of validationTargets) {
312
+ await assertRepositoryReferenceAllowed(repository, repositoryType, baseDir);
314
313
  }
315
- return {
316
- validationTargets: [...remoteOriginUrls, ...remoteOriginPushUrls],
317
- pushTarget: remoteOriginPushUrls[0] ?? remoteOriginUrls[0],
318
- };
314
+ return remoteRepositories;
319
315
  };
320
316
  const isFileNotFoundError = (error) => error instanceof Error && 'code' in error && error.code === 'ENOENT';
321
317
  const resolvePathAllowingMissingParents = async (path) => {
@@ -389,11 +385,13 @@ class Git {
389
385
  ...(!enableHooks && { unsafe: { allowUnsafeHooksPath: true } }),
390
386
  };
391
387
  const cleanEnv = Object.create(null);
388
+ const isWriteOperation = operation === 'push' || operation === 'pushTags';
392
389
  // Tell git not to ask for any information via the terminal like for
393
390
  // example the username. As nobody will be able to answer it would
394
391
  // n8n keep on waiting forever.
395
392
  cleanEnv['GIT_TERMINAL_PROMPT'] = '0';
396
- cleanEnv['GIT_ALLOW_PROTOCOL'] = 'file:git:http:https:ssh';
393
+ cleanEnv['GIT_ALLOW_PROTOCOL'] =
394
+ isWriteOperation && !enableHooks ? 'git:http:https:ssh' : 'file:git:http:https:ssh';
397
395
  const git = (0, simple_git_1.default)(gitOptions).env(cleanEnv);
398
396
  if (operation === 'add') {
399
397
  // ----------------------------------
@@ -427,6 +425,10 @@ class Git {
427
425
  if (!enableGitNodeAllConfigKeys && !descriptions_1.ALLOWED_CONFIG_KEYS.includes(key)) {
428
426
  throw new n8n_workflow_1.NodeOperationError(this.getNode(), `The provided git config key '${key}' is not allowed`);
429
427
  }
428
+ const repositoryType = (0, GenericFunctions_1.getRepositoryTypeForRemoteConfigKey)(key);
429
+ if (repositoryType) {
430
+ await assertRepositoryReferenceAllowed(value, repositoryType, resolvedRepositoryPath);
431
+ }
430
432
  if (options.mode === 'append') {
431
433
  append = true;
432
434
  }
@@ -521,6 +523,7 @@ class Git {
521
523
  // ----------------------------------
522
524
  // fetch
523
525
  // ----------------------------------
526
+ await validateConfiguredRemoteRepositories(git, 'source', resolvedRepositoryPath);
524
527
  await git.fetch();
525
528
  returnItems.push({
526
529
  json: {
@@ -557,6 +560,7 @@ class Git {
557
560
  // ----------------------------------
558
561
  // pull
559
562
  // ----------------------------------
563
+ await validateConfiguredRemoteRepositories(git, 'source', resolvedRepositoryPath);
560
564
  await git.pull();
561
565
  returnItems.push({
562
566
  json: {
@@ -589,11 +593,7 @@ class Git {
589
593
  }
590
594
  else {
591
595
  const authentication = this.getNodeParameter('authentication', 0);
592
- const config = await git.listConfig();
593
- const { validationTargets, pushTarget } = getRemoteOriginTargetRepositories(config.values);
594
- for (const targetRepository of validationTargets) {
595
- await assertRepositoryReferenceAllowed(targetRepository, 'target', resolvedRepositoryPath);
596
- }
596
+ const { pushTarget } = await validateConfiguredRemoteRepositories(git, 'target', resolvedRepositoryPath);
597
597
  if (authentication === 'gitPassword') {
598
598
  if (pushTarget === undefined) {
599
599
  throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Target repository is required');
@@ -618,6 +618,7 @@ class Git {
618
618
  // ----------------------------------
619
619
  // pushTags
620
620
  // ----------------------------------
621
+ await validateConfiguredRemoteRepositories(git, 'target', resolvedRepositoryPath);
621
622
  await git.pushTags();
622
623
  returnItems.push({
623
624
  json: {
@@ -745,6 +746,7 @@ class Git {
745
746
  // tag
746
747
  // ----------------------------------
747
748
  const name = this.getNodeParameter('name', itemIndex, '');
749
+ (0, GenericFunctions_1.validateGitTag)(name, this.getNode());
748
750
  await git.addTag(name);
749
751
  returnItems.push({
750
752
  json: {
@@ -1 +1 @@
1
- {"version":3,"file":"Git.node.js","sourceRoot":"","sources":["../../../nodes/Git/Git.node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Git.node.js","sourceRoot":"","sources":["../../../nodes/Git/Git.node.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { ITriggerFunctions, IDataObject, ILoadOptionsFunctions, INodeListSearchResult } from 'n8n-workflow';
2
2
  import type { PgpDatabase } from './v2/helpers/interfaces';
3
+ export declare function validatePostgresIdentifier(name: unknown, parameterName: string): asserts name is string;
3
4
  export declare function prepareNames(id: string, mode: string, additionalFields: IDataObject): {
4
5
  functionName: string;
5
6
  triggerName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"PostgresTrigger.functions.d.ts","sourceRoot":"","sources":["../../../nodes/Postgres/PostgresTrigger.functions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,iBAAiB,EACjB,WAAW,EACX,qBAAqB,EACrB,qBAAqB,EAErB,MAAM,cAAc,CAAC;AAItB,OAAO,KAAK,EAAE,WAAW,EAA2B,MAAM,yBAAyB,CAAC;AAEpF,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,WAAW;;;;EAsBnF;AAED,wBAAsB,iBAAiB,CACtC,IAAI,EAAE,iBAAiB,EACvB,EAAE,EAAE,WAAW,EACf,gBAAgB,EAAE,WAAW,EAC7B,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CA2Cf;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,iBAAiB,GAAG,qBAAqB,8DAO3E;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAQ9F;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAiB9F"}
1
+ {"version":3,"file":"PostgresTrigger.functions.d.ts","sourceRoot":"","sources":["../../../nodes/Postgres/PostgresTrigger.functions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,iBAAiB,EACjB,WAAW,EACX,qBAAqB,EACrB,qBAAqB,EAErB,MAAM,cAAc,CAAC;AAItB,OAAO,KAAK,EAAE,WAAW,EAA2B,MAAM,yBAAyB,CAAC;AAOpF,wBAAgB,0BAA0B,CACzC,IAAI,EAAE,OAAO,EACb,aAAa,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,IAAI,MAAM,CAOxB;AAUD,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,WAAW;;;;EAqBnF;AAED,wBAAsB,iBAAiB,CACtC,IAAI,EAAE,iBAAiB,EACvB,EAAE,EAAE,WAAW,EACf,gBAAgB,EAAE,WAAW,EAC7B,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CA4Bf;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,iBAAiB,GAAG,qBAAqB,8DAO3E;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAQ9F;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAiB9F"}
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validatePostgresIdentifier = validatePostgresIdentifier;
3
4
  exports.prepareNames = prepareNames;
4
5
  exports.pgTriggerFunction = pgTriggerFunction;
5
6
  exports.initDB = initDB;
@@ -7,20 +8,33 @@ exports.searchSchema = searchSchema;
7
8
  exports.searchTables = searchTables;
8
9
  const n8n_workflow_1 = require("n8n-workflow");
9
10
  const transport_1 = require("./transport");
11
+ const postgresIdentifierRegex = /^[a-zA-Z_][a-zA-Z0-9_]*$/;
12
+ const triggerEvents = ['INSERT', 'UPDATE', 'DELETE'];
13
+ function validatePostgresIdentifier(name, parameterName) {
14
+ if (typeof name !== 'string' || !postgresIdentifierRegex.test(name)) {
15
+ throw new n8n_workflow_1.UserError(`${parameterName} must start with a letter or underscore and contain only letters, digits, and underscores`, { level: 'warning' });
16
+ }
17
+ }
18
+ function getTriggerEvent(firesOn) {
19
+ if (triggerEvents.includes(firesOn)) {
20
+ return firesOn;
21
+ }
22
+ throw new n8n_workflow_1.UserError('Event must be Insert, Update, or Delete', { level: 'warning' });
23
+ }
10
24
  function prepareNames(id, mode, additionalFields) {
11
25
  let suffix = id.replace(/-/g, '_');
12
26
  if (mode === 'manual') {
13
27
  suffix = `${suffix}_manual`;
14
28
  }
15
- let functionName = additionalFields.functionName || `n8n_trigger_function_${suffix}()`;
16
- if (!(functionName.includes('(') && functionName.includes(')'))) {
17
- functionName = `${functionName}()`;
29
+ let functionName = additionalFields.functionName || `n8n_trigger_function_${suffix}`;
30
+ if (typeof functionName === 'string' && functionName.endsWith('()')) {
31
+ functionName = functionName.slice(0, -2);
18
32
  }
19
33
  const triggerName = additionalFields.triggerName || `n8n_trigger_${suffix}`;
20
34
  const channelName = additionalFields.channelName || `n8n_channel_${suffix}`;
21
- if (channelName.includes('-')) {
22
- throw new n8n_workflow_1.UserError('Channel name cannot contain hyphens (-)', { level: 'warning' });
23
- }
35
+ validatePostgresIdentifier(functionName, 'Function name');
36
+ validatePostgresIdentifier(triggerName, 'Trigger name');
37
+ validatePostgresIdentifier(channelName, 'Channel name');
24
38
  return { functionName, triggerName, channelName };
25
39
  }
26
40
  async function pgTriggerFunction(db, additionalFields, functionName, triggerName, channelName) {
@@ -28,33 +42,24 @@ async function pgTriggerFunction(db, additionalFields, functionName, triggerName
28
42
  const tableName = this.getNodeParameter('tableName', undefined, {
29
43
  extractValue: true,
30
44
  });
31
- const target = `${schema}."${tableName}"`;
32
- const firesOn = this.getNodeParameter('firesOn', 0);
33
- const functionReplace = "CREATE OR REPLACE FUNCTION $1:raw RETURNS trigger LANGUAGE 'plpgsql' COST 100 VOLATILE NOT LEAKPROOF AS $BODY$ begin perform pg_notify('$2:raw', row_to_json($3:raw)::text); return null; end; $BODY$;";
34
- const dropIfExist = 'DROP TRIGGER IF EXISTS $1:raw ON $2:raw';
35
- const functionExists = "CREATE FUNCTION $1:raw RETURNS trigger LANGUAGE 'plpgsql' COST 100 VOLATILE NOT LEAKPROOF AS $BODY$ begin perform pg_notify('$2:raw', row_to_json($3:raw)::text); return null; end; $BODY$";
36
- const trigger = 'CREATE TRIGGER $4:raw AFTER $3:raw ON $1:raw FOR EACH ROW EXECUTE FUNCTION $2:raw';
37
- const whichData = firesOn === 'DELETE' ? 'old' : 'new';
38
- if (channelName.includes('-')) {
39
- throw new n8n_workflow_1.UserError('Channel name cannot contain hyphens (-)', { level: 'warning' });
40
- }
45
+ const firesOn = getTriggerEvent(this.getNodeParameter('firesOn', 0));
46
+ const rowRecord = firesOn === 'DELETE' ? 'OLD' : 'NEW';
47
+ // Identifiers use :name (double-quote escaped); the channel is bound as a text
48
+ // value to pg_notify, and the event/row-record are validated keywords.
49
+ const functionBody = `$1:name() RETURNS trigger LANGUAGE 'plpgsql' COST 100 VOLATILE NOT LEAKPROOF AS $BODY$ begin perform pg_notify($2, row_to_json(${rowRecord})::text); return null; end; $BODY$`;
50
+ const functionReplace = `CREATE OR REPLACE FUNCTION ${functionBody};`;
51
+ const functionExists = `CREATE FUNCTION ${functionBody}`;
52
+ const dropIfExist = 'DROP TRIGGER IF EXISTS $1:name ON $2:name.$3:name';
53
+ const trigger = `CREATE TRIGGER $3:name AFTER ${firesOn} ON $1:name.$2:name FOR EACH ROW EXECUTE FUNCTION $4:name()`;
41
54
  const replaceIfExists = additionalFields.replaceIfExists ?? false;
42
- try {
43
- if (replaceIfExists || !(additionalFields.triggerName ?? additionalFields.functionName)) {
44
- await db.any(functionReplace, [functionName, channelName, whichData]);
45
- await db.any(dropIfExist, [triggerName, target, whichData]);
46
- }
47
- else {
48
- await db.any(functionExists, [functionName, channelName, whichData]);
49
- }
50
- await db.any(trigger, [target, functionName, firesOn, triggerName]);
55
+ if (replaceIfExists || !(additionalFields.triggerName ?? additionalFields.functionName)) {
56
+ await db.any(functionReplace, [functionName, channelName]);
57
+ await db.any(dropIfExist, [triggerName, schema, tableName]);
51
58
  }
52
- catch (error) {
53
- if (error.message.includes('near "-"')) {
54
- throw new n8n_workflow_1.UserError('Names cannot contain hyphens (-)', { level: 'warning' });
55
- }
56
- throw error;
59
+ else {
60
+ await db.any(functionExists, [functionName, channelName]);
57
61
  }
62
+ await db.any(trigger, [schema, tableName, triggerName, functionName]);
58
63
  }
59
64
  async function initDB() {
60
65
  const credentials = await this.getCredentials('postgres');
@@ -1 +1 @@
1
- {"version":3,"file":"PostgresTrigger.functions.js","sourceRoot":"","sources":["../../../nodes/Postgres/PostgresTrigger.functions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PostgresTrigger.functions.js","sourceRoot":"","sources":["../../../nodes/Postgres/PostgresTrigger.functions.ts"],"names":[],"mappings":";;AAiBA,gEAUC;AAUD,oCAqBC;AAED,8CAmCC;AAED,wBAOC;AAED,oCAQC;AAED,oCAiBC;AA9HD,+CAA2D;AAE3D,2CAAgD;AAGhD,MAAM,uBAAuB,GAAG,0BAA0B,CAAC;AAC3D,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC;AAI9D,SAAgB,0BAA0B,CACzC,IAAa,EACb,aAAqB;IAErB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,wBAAS,CAClB,GAAG,aAAa,2FAA2F,EAC3G,EAAE,KAAK,EAAE,SAAS,EAAE,CACpB,CAAC;IACH,CAAC;AACF,CAAC;AAED,SAAS,eAAe,CAAC,OAAe;IACvC,IAAI,aAAa,CAAC,QAAQ,CAAC,OAAuB,CAAC,EAAE,CAAC;QACrD,OAAO,OAAuB,CAAC;IAChC,CAAC;IAED,MAAM,IAAI,wBAAS,CAAC,yCAAyC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;AACtF,CAAC;AAED,SAAgB,YAAY,CAAC,EAAU,EAAE,IAAY,EAAE,gBAA6B;IACnF,IAAI,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAEnC,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC;IAC7B,CAAC;IAED,IAAI,YAAY,GAAI,gBAAgB,CAAC,YAAuB,IAAI,wBAAwB,MAAM,EAAE,CAAC;IAEjG,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACrE,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,WAAW,GAAI,gBAAgB,CAAC,WAAsB,IAAI,eAAe,MAAM,EAAE,CAAC;IACxF,MAAM,WAAW,GAAI,gBAAgB,CAAC,WAAsB,IAAI,eAAe,MAAM,EAAE,CAAC;IAExF,0BAA0B,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IAC1D,0BAA0B,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IACxD,0BAA0B,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAExD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;AACnD,CAAC;AAEM,KAAK,UAAU,iBAAiB,CAEtC,EAAe,EACf,gBAA6B,EAC7B,YAAoB,EACpB,WAAmB,EACnB,WAAmB;IAEnB,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAW,CAAC;IAC3F,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,SAAS,EAAE;QAC/D,YAAY,EAAE,IAAI;KAClB,CAAW,CAAC;IAEb,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAW,CAAC,CAAC;IAC/E,MAAM,SAAS,GAAG,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IAEvD,+EAA+E;IAC/E,uEAAuE;IACvE,MAAM,YAAY,GAAG,kIAAkI,SAAS,oCAAoC,CAAC;IACrM,MAAM,eAAe,GAAG,8BAA8B,YAAY,GAAG,CAAC;IACtE,MAAM,cAAc,GAAG,mBAAmB,YAAY,EAAE,CAAC;IAEzD,MAAM,WAAW,GAAG,mDAAmD,CAAC;IAExE,MAAM,OAAO,GAAG,gCAAgC,OAAO,6DAA6D,CAAC;IAErH,MAAM,eAAe,GAAG,gBAAgB,CAAC,eAAe,IAAI,KAAK,CAAC;IAElE,IAAI,eAAe,IAAI,CAAC,CAAC,gBAAgB,CAAC,WAAW,IAAI,gBAAgB,CAAC,YAAY,CAAC,EAAE,CAAC;QACzF,MAAM,EAAE,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;QAC3D,MAAM,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAC7D,CAAC;SAAM,CAAC;QACP,MAAM,EAAE,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;AACvE,CAAC;AAEM,KAAK,UAAU,MAAM;IAC3B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAA0B,UAAU,CAAC,CAAC;IACnF,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,EAAE,CAGlD,CAAC;IACF,OAAO,MAAM,6BAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;AACjE,CAAC;AAEM,KAAK,UAAU,YAAY;IACjC,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;IACvF,MAAM,OAAO,GAA4B,UAA4B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjF,IAAI,EAAE,CAAC,CAAC,WAAqB;QAC7B,KAAK,EAAE,CAAC,CAAC,WAAqB;KAC9B,CAAC,CAAC,CAAC;IACJ,OAAO,EAAE,OAAO,EAAE,CAAC;AACpB,CAAC;AAEM,KAAK,UAAU,YAAY;IACjC,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAgB,CAAC;IACjE,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,CAAC;QACJ,SAAS,GAAG,MAAM,EAAE,CAAC,GAAG,CACvB,0EAA0E,EAC1E,CAAC,MAAM,CAAC,KAAK,CAAC,CACd,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,+BAAgB,CAAC,KAAe,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,OAAO,GAA4B,SAA2B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChF,IAAI,EAAE,CAAC,CAAC,UAAoB;QAC5B,KAAK,EAAE,CAAC,CAAC,UAAoB;KAC7B,CAAC,CAAC,CAAC;IACJ,OAAO,EAAE,OAAO,EAAE,CAAC;AACpB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"PostgresTrigger.node.d.ts","sourceRoot":"","sources":["../../../nodes/Postgres/PostgresTrigger.node.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,SAAS,EACd,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EAErB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAGN,YAAY,EACZ,YAAY,EAEZ,MAAM,6BAA6B,CAAC;AAErC,qBAAa,eAAgB,YAAW,SAAS;IAChD,WAAW,EAAE,oBAAoB,CA8N/B;IAEF,OAAO;;;;;MAKL;IAEI,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAmHjE"}
1
+ {"version":3,"file":"PostgresTrigger.node.d.ts","sourceRoot":"","sources":["../../../nodes/Postgres/PostgresTrigger.node.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,SAAS,EACd,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EAErB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAGN,YAAY,EACZ,YAAY,EAGZ,MAAM,6BAA6B,CAAC;AAErC,qBAAa,eAAgB,YAAW,SAAS;IAChD,WAAW,EAAE,oBAAoB,CA8N/B;IAEF,OAAO;;;;;MAKL;IAEI,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAgIjE"}
@@ -231,6 +231,17 @@ class PostgresTrigger {
231
231
  async trigger() {
232
232
  const triggerMode = this.getNodeParameter('triggerMode', 0);
233
233
  const additionalFields = this.getNodeParameter('additionalFields', 0);
234
+ // Resolve and validate identifiers before opening a connection, so an
235
+ // invalid name fails fast without leaking a direct connection.
236
+ const pgNames = (0, PostgresTrigger_functions_1.prepareNames)(this.getNode().id, this.getMode(), additionalFields);
237
+ if (triggerMode === 'listenTrigger') {
238
+ pgNames.channelName = this.getNodeParameter('channelName', '');
239
+ (0, PostgresTrigger_functions_1.validatePostgresIdentifier)(pgNames.channelName, 'Channel name');
240
+ // Postgres folds unquoted LISTEN identifiers to lower case; since :name
241
+ // quotes the channel, lower-case it so an existing channel notified as
242
+ // e.g. `NOTIFY MyChannel` is still matched.
243
+ pgNames.channelName = pgNames.channelName.toLowerCase();
244
+ }
234
245
  // initialize and connect to database
235
246
  const { db } = await PostgresTrigger_functions_1.initDB.call(this);
236
247
  const connection = await db.connect({ direct: true });
@@ -244,16 +255,20 @@ class PostgresTrigger {
244
255
  }
245
256
  this.emit([this.helpers.returnJsonArray([data])]);
246
257
  };
247
- // create trigger, function and channel or use existing channel
248
- const pgNames = (0, PostgresTrigger_functions_1.prepareNames)(this.getNode().id, this.getMode(), additionalFields);
249
- if (triggerMode === 'createTrigger') {
250
- await PostgresTrigger_functions_1.pgTriggerFunction.call(this, db, additionalFields, pgNames.functionName, pgNames.triggerName, pgNames.channelName);
258
+ // Release the direct connection if setup fails, so an error while creating
259
+ // the trigger or issuing LISTEN doesn't leak it.
260
+ try {
261
+ // create trigger and function, or use the existing channel
262
+ if (triggerMode === 'createTrigger') {
263
+ await PostgresTrigger_functions_1.pgTriggerFunction.call(this, db, additionalFields, pgNames.functionName, pgNames.triggerName, pgNames.channelName);
264
+ }
265
+ // listen to channel
266
+ await connection.none('LISTEN $1:name', [pgNames.channelName]);
251
267
  }
252
- else {
253
- pgNames.channelName = this.getNodeParameter('channelName', '');
268
+ catch (error) {
269
+ await connection.done();
270
+ throw error;
254
271
  }
255
- // listen to channel
256
- await connection.none(`LISTEN ${pgNames.channelName}`);
257
272
  const cleanUpDb = async () => {
258
273
  try {
259
274
  try {
@@ -267,10 +282,7 @@ class PostgresTrigger {
267
282
  try {
268
283
  await connection.none('UNLISTEN $1:name', [pgNames.channelName]);
269
284
  if (triggerMode === 'createTrigger') {
270
- const functionName = pgNames.functionName.includes('(')
271
- ? pgNames.functionName.split('(')[0]
272
- : pgNames.functionName;
273
- await connection.any('DROP FUNCTION IF EXISTS $1:name CASCADE', [functionName]);
285
+ await connection.any('DROP FUNCTION IF EXISTS $1:name CASCADE', [pgNames.functionName]);
274
286
  const schema = this.getNodeParameter('schema', undefined, {
275
287
  extractValue: true,
276
288
  });