n8n-workflow 2.34.2 → 2.35.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 (77) hide show
  1. package/dist/cjs/build.tsbuildinfo +1 -1
  2. package/dist/cjs/errors/index.d.ts +1 -0
  3. package/dist/cjs/errors/index.d.ts.map +1 -1
  4. package/dist/cjs/errors/index.js +3 -1
  5. package/dist/cjs/errors/index.js.map +1 -1
  6. package/dist/cjs/errors/node-version-not-found.error.d.ts +15 -0
  7. package/dist/cjs/errors/node-version-not-found.error.d.ts.map +1 -0
  8. package/dist/cjs/errors/node-version-not-found.error.js +27 -0
  9. package/dist/cjs/errors/node-version-not-found.error.js.map +1 -0
  10. package/dist/cjs/expression.d.ts +1 -1
  11. package/dist/cjs/expression.js +2 -2
  12. package/dist/cjs/expression.js.map +1 -1
  13. package/dist/cjs/from-ai-parse-utils.d.ts.map +1 -1
  14. package/dist/cjs/from-ai-parse-utils.js +5 -2
  15. package/dist/cjs/from-ai-parse-utils.js.map +1 -1
  16. package/dist/cjs/index.d.ts +2 -0
  17. package/dist/cjs/index.d.ts.map +1 -1
  18. package/dist/cjs/index.js +9 -1
  19. package/dist/cjs/index.js.map +1 -1
  20. package/dist/cjs/interfaces.d.ts +24 -3
  21. package/dist/cjs/interfaces.d.ts.map +1 -1
  22. package/dist/cjs/interfaces.js +8 -1
  23. package/dist/cjs/interfaces.js.map +1 -1
  24. package/dist/cjs/redaction-channels.d.ts +16 -1
  25. package/dist/cjs/redaction-channels.d.ts.map +1 -1
  26. package/dist/cjs/redaction-channels.js +24 -0
  27. package/dist/cjs/redaction-channels.js.map +1 -1
  28. package/dist/cjs/trigger-credential-gate.d.ts +29 -0
  29. package/dist/cjs/trigger-credential-gate.d.ts.map +1 -0
  30. package/dist/cjs/trigger-credential-gate.js +25 -0
  31. package/dist/cjs/trigger-credential-gate.js.map +1 -0
  32. package/dist/cjs/versioned-node-type.d.ts.map +1 -1
  33. package/dist/cjs/versioned-node-type.js +6 -5
  34. package/dist/cjs/versioned-node-type.js.map +1 -1
  35. package/dist/cjs/webhook-description-fields.d.ts +77 -0
  36. package/dist/cjs/webhook-description-fields.d.ts.map +1 -0
  37. package/dist/cjs/webhook-description-fields.js +133 -0
  38. package/dist/cjs/webhook-description-fields.js.map +1 -0
  39. package/dist/esm/errors/index.d.ts +1 -0
  40. package/dist/esm/errors/index.d.ts.map +1 -1
  41. package/dist/esm/errors/index.js +1 -0
  42. package/dist/esm/errors/index.js.map +1 -1
  43. package/dist/esm/errors/node-version-not-found.error.d.ts +15 -0
  44. package/dist/esm/errors/node-version-not-found.error.d.ts.map +1 -0
  45. package/dist/esm/errors/node-version-not-found.error.js +23 -0
  46. package/dist/esm/errors/node-version-not-found.error.js.map +1 -0
  47. package/dist/esm/expression.d.ts +1 -1
  48. package/dist/esm/expression.js +2 -2
  49. package/dist/esm/expression.js.map +1 -1
  50. package/dist/esm/from-ai-parse-utils.d.ts.map +1 -1
  51. package/dist/esm/from-ai-parse-utils.js +5 -2
  52. package/dist/esm/from-ai-parse-utils.js.map +1 -1
  53. package/dist/esm/index.d.ts +2 -0
  54. package/dist/esm/index.d.ts.map +1 -1
  55. package/dist/esm/index.js +2 -0
  56. package/dist/esm/index.js.map +1 -1
  57. package/dist/esm/interfaces.d.ts +24 -3
  58. package/dist/esm/interfaces.d.ts.map +1 -1
  59. package/dist/esm/interfaces.js +7 -0
  60. package/dist/esm/interfaces.js.map +1 -1
  61. package/dist/esm/redaction-channels.d.ts +16 -1
  62. package/dist/esm/redaction-channels.d.ts.map +1 -1
  63. package/dist/esm/redaction-channels.js +22 -0
  64. package/dist/esm/redaction-channels.js.map +1 -1
  65. package/dist/esm/trigger-credential-gate.d.ts +29 -0
  66. package/dist/esm/trigger-credential-gate.d.ts.map +1 -0
  67. package/dist/esm/trigger-credential-gate.js +21 -0
  68. package/dist/esm/trigger-credential-gate.js.map +1 -0
  69. package/dist/esm/typecheck.tsbuildinfo +1 -1
  70. package/dist/esm/versioned-node-type.d.ts.map +1 -1
  71. package/dist/esm/versioned-node-type.js +6 -5
  72. package/dist/esm/versioned-node-type.js.map +1 -1
  73. package/dist/esm/webhook-description-fields.d.ts +77 -0
  74. package/dist/esm/webhook-description-fields.d.ts.map +1 -0
  75. package/dist/esm/webhook-description-fields.js +125 -0
  76. package/dist/esm/webhook-description-fields.js.map +1 -0
  77. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"versioned-node-type.d.ts","sourceRoot":"","sources":["../../src/versioned-node-type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE5F,qBAAa,iBAAkB,YAAW,kBAAkB;IAC3D,cAAc,EAAE,MAAM,CAAC;IAEvB,YAAY,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;IAEjD,WAAW,EAAE,wBAAwB,CAAC;IAEtC,YACC,YAAY,EAAE,kBAAkB,CAAC,cAAc,CAAC,EAChD,WAAW,EAAE,wBAAwB,EAKrC;IAED,gBAAgB,WAEf;IAED,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAMvC;CACD"}
1
+ {"version":3,"file":"versioned-node-type.d.ts","sourceRoot":"","sources":["../../src/versioned-node-type.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE5F,qBAAa,iBAAkB,YAAW,kBAAkB;IAC3D,cAAc,EAAE,MAAM,CAAC;IAEvB,YAAY,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;IAEjD,WAAW,EAAE,wBAAwB,CAAC;IAEtC,YACC,YAAY,EAAE,kBAAkB,CAAC,cAAc,CAAC,EAChD,WAAW,EAAE,wBAAwB,EAKrC;IAED,gBAAgB,WAEf;IAED,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAWvC;CACD"}
@@ -1,3 +1,4 @@
1
+ import { NodeVersionNotFoundError } from './errors';
1
2
  export class VersionedNodeType {
2
3
  currentVersion;
3
4
  nodeVersions;
@@ -11,12 +12,12 @@ export class VersionedNodeType {
11
12
  return Math.max(...Object.keys(this.nodeVersions).map(Number));
12
13
  }
13
14
  getNodeType(version) {
14
- if (version) {
15
- return this.nodeVersions[version];
16
- }
17
- else {
18
- return this.nodeVersions[this.currentVersion];
15
+ const resolvedVersion = version ? version : this.currentVersion;
16
+ const nodeType = this.nodeVersions[resolvedVersion];
17
+ if (nodeType === undefined) {
18
+ throw new NodeVersionNotFoundError(this.description.name, resolvedVersion, Object.keys(this.nodeVersions).map(Number));
19
19
  }
20
+ return nodeType;
20
21
  }
21
22
  }
22
23
  //# sourceMappingURL=versioned-node-type.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"versioned-node-type.js","sourceRoot":"","sources":["../../src/versioned-node-type.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,iBAAiB;IAC7B,cAAc,CAAS;IAEvB,YAAY,CAAqC;IAEjD,WAAW,CAA2B;IAEtC,YACC,YAAgD,EAChD,WAAqC;QAErC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,cAAc,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC5E,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IAChC,CAAC;IAED,gBAAgB;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,WAAW,CAAC,OAAgB;QAC3B,IAAI,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACP,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC/C,CAAC;IACF,CAAC;CACD"}
1
+ {"version":3,"file":"versioned-node-type.js","sourceRoot":"","sources":["../../src/versioned-node-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAGpD,MAAM,OAAO,iBAAiB;IAC7B,cAAc,CAAS;IAEvB,YAAY,CAAqC;IAEjD,WAAW,CAA2B;IAEtC,YACC,YAAgD,EAChD,WAAqC;QAErC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,cAAc,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC5E,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IAChC,CAAC;IAED,gBAAgB;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,WAAW,CAAC,OAAgB;QAC3B,MAAM,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;QAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;QACpD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,wBAAwB,CACjC,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,eAAe,EACf,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAC1C,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC;IACjB,CAAC;CACD"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Single-source declaration of webhook-description fields.
3
+ *
4
+ * A webhook description needs values derived from the node instance's
5
+ * parameters, historically encoded as expression templates such as
6
+ * `={{$parameter["path"]}}`. The editor still needs those strings (they are
7
+ * what survives the JSON serialization of node descriptions), but on the
8
+ * backend they force the expression engine (under `N8N_EXPRESSION_ENGINE=vm`,
9
+ * a V8 isolate) into every webhook request even when the user authored no
10
+ * expression.
11
+ *
12
+ * The helpers here generate the template string and a native resolver from one
13
+ * declaration, so the two cannot drift. Backend resolution sites call
14
+ * {@link resolveWebhookDescriptionField} first and only fall back to the engine
15
+ * when the user's parameters actually contain expressions.
16
+ */
17
+ import type { INode, INodeParameters, IWebhookDescription, NativeParameterResolvers, NodeParameterValueType } from './interfaces';
18
+ import { WEBHOOK_RESOLVERS } from './interfaces';
19
+ export type WebhookDescriptionField = NativeParameterResolvers[string];
20
+ /**
21
+ * A field that reads a node parameter, e.g. `fromParameter('httpMethod', 'GET')`
22
+ * → template `={{$parameter["httpMethod"] || "GET"}}` and a resolver applying
23
+ * the same truthiness fallback. Nested reads take a path array. Walking into a
24
+ * missing parent yields `undefined`, matching what the engine returns for the
25
+ * same reference.
26
+ */
27
+ export declare function fromParameter(path: string | string[], fallback?: string): WebhookDescriptionField;
28
+ /**
29
+ * A field computed by a function of the parameters: the template inlines the
30
+ * function's source and the resolver is the function itself, so both
31
+ * representations run the same code.
32
+ *
33
+ * The function MUST be self-contained: closing over an outer identifier (an
34
+ * import, a module constant) produces a template the expression sandbox cannot
35
+ * evaluate. The parity test in the Webhook node's description.test.ts catches
36
+ * this; add one for any node that declares `fromFunction` fields.
37
+ */
38
+ export declare function fromFunction<P extends INodeParameters>(fn: (parameters: P) => NodeParameterValueType | undefined): WebhookDescriptionField;
39
+ /**
40
+ * Spreads into an {@link IWebhookDescription}: the template string per field,
41
+ * plus the resolver map under the backend-only {@link WEBHOOK_RESOLVERS} key.
42
+ */
43
+ export declare function webhookDescriptionFields<K extends string>(fields: Record<K, WebhookDescriptionField>): Record<K, string> & {
44
+ [WEBHOOK_RESOLVERS]: NativeParameterResolvers;
45
+ };
46
+ export type NativeResolution = {
47
+ resolved: true;
48
+ value: NodeParameterValueType | undefined;
49
+ } | {
50
+ resolved: false;
51
+ };
52
+ /**
53
+ * Resolves a description field without the expression engine when the field
54
+ * declares a resolver, still carries the exact template that resolver was
55
+ * generated from (a description built by spreading another inherits resolvers
56
+ * for fields it overrides), and the node's parameters are static.
57
+ *
58
+ * Pass the workflow's own node (`workflow.nodes[name]`): its parameters
59
+ * include the defaults the `Workflow` constructor applies.
60
+ */
61
+ export declare function resolveWebhookDescriptionField(node: Pick<INode, 'parameters'>, description: IWebhookDescription, field: string): NativeResolution;
62
+ /**
63
+ * Whether every field of the description is engine-free for a static-parameter
64
+ * node: either a resolver is declared for it, or the value contains no
65
+ * expression template at any depth. A template added later without a resolver
66
+ * makes this false, so callers skipping isolate acquisition on the strength of
67
+ * this stay correct automatically.
68
+ */
69
+ export declare function webhookDescriptionIsNativelyResolvable(description: IWebhookDescription): boolean;
70
+ /**
71
+ * Whether a node's parameters can stand in for the `$parameter` proxy: beyond a
72
+ * plain property read, the proxy only resolves `=` values, unwraps
73
+ * resource-locator values and handles `&sibling` lookups — all of which require
74
+ * a dynamic value somewhere in the parameters.
75
+ */
76
+ export declare function nodeParametersAreStatic(node: Pick<INode, 'parameters'>): boolean;
77
+ //# sourceMappingURL=webhook-description-fields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook-description-fields.d.ts","sourceRoot":"","sources":["../../src/webhook-description-fields.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EACX,KAAK,EACL,eAAe,EACf,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,EACtB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGjD,MAAM,MAAM,uBAAuB,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;AAEvE;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,uBAAuB,CAkBjG;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,eAAe,EACrD,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC,KAAK,sBAAsB,GAAG,SAAS,GACvD,uBAAuB,CAKzB;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,MAAM,EACxD,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,uBAAuB,CAAC,GACxC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG;IAAE,CAAC,iBAAiB,CAAC,EAAE,wBAAwB,CAAA;CAAE,CAQvE;AAED,MAAM,MAAM,gBAAgB,GACzB;IAAE,QAAQ,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,sBAAsB,GAAG,SAAS,CAAA;CAAE,GAC7D;IAAE,QAAQ,EAAE,KAAK,CAAA;CAAE,CAAC;AAIvB;;;;;;;;GAQG;AACH,wBAAgB,8BAA8B,CAC7C,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,EAC/B,WAAW,EAAE,mBAAmB,EAChC,KAAK,EAAE,MAAM,GACX,gBAAgB,CAKlB;AAED;;;;;;GAMG;AACH,wBAAgB,sCAAsC,CAAC,WAAW,EAAE,mBAAmB,GAAG,OAAO,CAKhG;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,GAAG,OAAO,CAEhF"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Single-source declaration of webhook-description fields.
3
+ *
4
+ * A webhook description needs values derived from the node instance's
5
+ * parameters, historically encoded as expression templates such as
6
+ * `={{$parameter["path"]}}`. The editor still needs those strings (they are
7
+ * what survives the JSON serialization of node descriptions), but on the
8
+ * backend they force the expression engine (under `N8N_EXPRESSION_ENGINE=vm`,
9
+ * a V8 isolate) into every webhook request even when the user authored no
10
+ * expression.
11
+ *
12
+ * The helpers here generate the template string and a native resolver from one
13
+ * declaration, so the two cannot drift. Backend resolution sites call
14
+ * {@link resolveWebhookDescriptionField} first and only fall back to the engine
15
+ * when the user's parameters actually contain expressions.
16
+ */
17
+ import { WEBHOOK_RESOLVERS } from './interfaces';
18
+ import { isResourceLocatorValue } from './type-guards';
19
+ /**
20
+ * A field that reads a node parameter, e.g. `fromParameter('httpMethod', 'GET')`
21
+ * → template `={{$parameter["httpMethod"] || "GET"}}` and a resolver applying
22
+ * the same truthiness fallback. Nested reads take a path array. Walking into a
23
+ * missing parent yields `undefined`, matching what the engine returns for the
24
+ * same reference.
25
+ */
26
+ export function fromParameter(path, fallback) {
27
+ const segments = Array.isArray(path) ? path : [path];
28
+ const accessor = segments.map((segment) => `["${segment}"]`).join('');
29
+ const tail = fallback === undefined ? '' : ` || ${JSON.stringify(fallback)}`;
30
+ return {
31
+ template: `={{$parameter${accessor}${tail}}}`,
32
+ resolve: (parameters) => {
33
+ let current = parameters;
34
+ for (const key of segments) {
35
+ if (current === null || current === undefined)
36
+ return fallback;
37
+ current = current[key];
38
+ }
39
+ // `||` in the template is plain JS truthiness, not a nullish check.
40
+ if (fallback !== undefined && !current)
41
+ return fallback;
42
+ return current;
43
+ },
44
+ };
45
+ }
46
+ /**
47
+ * A field computed by a function of the parameters: the template inlines the
48
+ * function's source and the resolver is the function itself, so both
49
+ * representations run the same code.
50
+ *
51
+ * The function MUST be self-contained: closing over an outer identifier (an
52
+ * import, a module constant) produces a template the expression sandbox cannot
53
+ * evaluate. The parity test in the Webhook node's description.test.ts catches
54
+ * this; add one for any node that declares `fromFunction` fields.
55
+ */
56
+ export function fromFunction(fn) {
57
+ return {
58
+ template: `={{(${String(fn)})($parameter)}}`,
59
+ resolve: fn,
60
+ };
61
+ }
62
+ /**
63
+ * Spreads into an {@link IWebhookDescription}: the template string per field,
64
+ * plus the resolver map under the backend-only {@link WEBHOOK_RESOLVERS} key.
65
+ */
66
+ export function webhookDescriptionFields(fields) {
67
+ const templates = {};
68
+ const resolvers = {};
69
+ for (const [field, entry] of Object.entries(fields)) {
70
+ templates[field] = entry.template;
71
+ resolvers[field] = entry;
72
+ }
73
+ return { ...templates, [WEBHOOK_RESOLVERS]: resolvers };
74
+ }
75
+ const NOT_RESOLVED = { resolved: false };
76
+ /**
77
+ * Resolves a description field without the expression engine when the field
78
+ * declares a resolver, still carries the exact template that resolver was
79
+ * generated from (a description built by spreading another inherits resolvers
80
+ * for fields it overrides), and the node's parameters are static.
81
+ *
82
+ * Pass the workflow's own node (`workflow.nodes[name]`): its parameters
83
+ * include the defaults the `Workflow` constructor applies.
84
+ */
85
+ export function resolveWebhookDescriptionField(node, description, field) {
86
+ const entry = description[WEBHOOK_RESOLVERS]?.[field];
87
+ if (entry === undefined || description[field] !== entry.template)
88
+ return NOT_RESOLVED;
89
+ if (!nodeParametersAreStatic(node))
90
+ return NOT_RESOLVED;
91
+ return { resolved: true, value: entry.resolve(node.parameters) };
92
+ }
93
+ /**
94
+ * Whether every field of the description is engine-free for a static-parameter
95
+ * node: either a resolver is declared for it, or the value contains no
96
+ * expression template at any depth. A template added later without a resolver
97
+ * makes this false, so callers skipping isolate acquisition on the strength of
98
+ * this stay correct automatically.
99
+ */
100
+ export function webhookDescriptionIsNativelyResolvable(description) {
101
+ const resolvers = description[WEBHOOK_RESOLVERS];
102
+ return Object.entries(description).every(([field, value]) => resolvers?.[field]?.template === value || !containsDynamicValue(value));
103
+ }
104
+ /**
105
+ * Whether a node's parameters can stand in for the `$parameter` proxy: beyond a
106
+ * plain property read, the proxy only resolves `=` values, unwraps
107
+ * resource-locator values and handles `&sibling` lookups — all of which require
108
+ * a dynamic value somewhere in the parameters.
109
+ */
110
+ export function nodeParametersAreStatic(node) {
111
+ return !containsDynamicValue(node.parameters);
112
+ }
113
+ function containsDynamicValue(value) {
114
+ if (typeof value === 'string')
115
+ return value.startsWith('=');
116
+ if (Array.isArray(value))
117
+ return value.some(containsDynamicValue);
118
+ if (value !== null && typeof value === 'object') {
119
+ if (isResourceLocatorValue(value))
120
+ return true;
121
+ return Object.keys(value).some((key) => containsDynamicValue(Reflect.get(value, key)));
122
+ }
123
+ return false;
124
+ }
125
+ //# sourceMappingURL=webhook-description-fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook-description-fields.js","sourceRoot":"","sources":["../../src/webhook-description-fields.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-workflow",
3
- "version": "2.34.2",
3
+ "version": "2.35.0",
4
4
  "description": "Workflow base code of n8n",
5
5
  "types": "dist/esm/index.d.ts",
6
6
  "module": "dist/esm/index.js",
@@ -47,9 +47,9 @@
47
47
  "vitest": "^4.1.9",
48
48
  "vitest-mock-extended": "^3.1.0",
49
49
  "zod": "3.25.76",
50
- "@n8n/config": "2.32.0",
50
+ "@n8n/config": "2.33.0",
51
+ "@n8n/vitest-config": "1.20.0",
51
52
  "@n8n/playwright-janitor": "0.1.0",
52
- "@n8n/vitest-config": "1.19.0",
53
53
  "@n8n/typescript-config": "1.9.0"
54
54
  },
55
55
  "dependencies": {
@@ -76,9 +76,9 @@
76
76
  "xml2js": "0.6.2",
77
77
  "jsonrepair": "3.13.2",
78
78
  "@n8n/errors": "0.13.0",
79
- "@n8n/utils": "1.42.0",
79
+ "@n8n/utils": "1.43.0",
80
80
  "@n8n/tournament": "1.9.0",
81
- "@n8n/expression-runtime": "0.25.0"
81
+ "@n8n/expression-runtime": "0.26.0"
82
82
  },
83
83
  "peerDependencies": {
84
84
  "zod": "3.25.76"