@n8n/workflow-sdk 0.13.0 → 0.14.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 (81) hide show
  1. package/dist/build.tsbuildinfo +1 -1
  2. package/dist/expression/index.js +0 -11
  3. package/dist/expression/index.js.map +1 -1
  4. package/dist/generate-types/generate-types.d.ts +1 -1
  5. package/dist/generate-types/generate-types.js +50 -21
  6. package/dist/generate-types/generate-types.js.map +1 -1
  7. package/dist/generate-types/generate-zod-schemas.d.ts +1 -5
  8. package/dist/generate-types/generate-zod-schemas.js +154 -207
  9. package/dist/generate-types/generate-zod-schemas.js.map +1 -1
  10. package/dist/index.d.ts +2 -3
  11. package/dist/index.js +2 -3
  12. package/dist/index.js.map +1 -1
  13. package/dist/prompts/best-practices/guides/chatbot.js +2 -2
  14. package/dist/prompts/node-guidance/index.d.ts +0 -1
  15. package/dist/prompts/node-guidance/index.js +0 -1
  16. package/dist/prompts/node-guidance/index.js.map +1 -1
  17. package/dist/prompts/node-guidance/parameter-guides/set-node.js +14 -15
  18. package/dist/prompts/node-guidance/parameter-guides/set-node.js.map +1 -1
  19. package/dist/prompts/node-selection/ai-nodes.d.ts +2 -2
  20. package/dist/prompts/node-selection/ai-nodes.js +10 -10
  21. package/dist/prompts/node-selection/ai-nodes.js.map +1 -1
  22. package/dist/prompts/node-selection/connection-parameters.d.ts +1 -1
  23. package/dist/prompts/node-selection/connection-parameters.js +2 -2
  24. package/dist/prompts/sdk-reference/additional-functions.d.ts +1 -1
  25. package/dist/prompts/sdk-reference/additional-functions.js +2 -2
  26. package/dist/prompts/sdk-reference/expressions.d.ts +1 -1
  27. package/dist/prompts/sdk-reference/expressions.js +1 -1
  28. package/dist/prompts/sdk-reference/workflow-patterns-detailed.d.ts +1 -1
  29. package/dist/prompts/sdk-reference/workflow-patterns-detailed.js +9 -7
  30. package/dist/prompts/sdk-reference/workflow-patterns-detailed.js.map +1 -1
  31. package/dist/prompts/sdk-reference/workflow-patterns.d.ts +1 -1
  32. package/dist/prompts/sdk-reference/workflow-patterns.js +13 -11
  33. package/dist/prompts/sdk-reference/workflow-patterns.js.map +1 -1
  34. package/dist/prompts/sdk-reference/workflow-rules.d.ts +1 -1
  35. package/dist/prompts/sdk-reference/workflow-rules.js +11 -1
  36. package/dist/prompts/sdk-reference/workflow-rules.js.map +1 -1
  37. package/dist/types/base.d.ts +6 -8
  38. package/dist/types/base.js.map +1 -1
  39. package/dist/validation/index.d.ts +1 -1
  40. package/dist/validation/index.js +24 -1
  41. package/dist/validation/index.js.map +1 -1
  42. package/dist/validation/schema-helpers.d.ts +87 -9
  43. package/dist/validation/schema-helpers.js +18 -4
  44. package/dist/validation/schema-helpers.js.map +1 -1
  45. package/dist/validation.d.ts +1 -0
  46. package/dist/validation.js +3 -1
  47. package/dist/validation.js.map +1 -1
  48. package/dist/workflow-builder/layout-utils.d.ts +1 -2
  49. package/dist/workflow-builder/layout-utils.js +21 -58
  50. package/dist/workflow-builder/layout-utils.js.map +1 -1
  51. package/dist/workflow-builder/node-builders/node-builder.d.ts +2 -2
  52. package/dist/workflow-builder/node-builders/node-builder.js +34 -16
  53. package/dist/workflow-builder/node-builders/node-builder.js.map +1 -1
  54. package/dist/workflow-builder/pin-data-utils.js +2 -3
  55. package/dist/workflow-builder/pin-data-utils.js.map +1 -1
  56. package/dist/workflow-builder/plugins/composite-handlers/branch-handler-utils.js +23 -2
  57. package/dist/workflow-builder/plugins/composite-handlers/branch-handler-utils.js.map +1 -1
  58. package/dist/workflow-builder/plugins/serializers/json-serializer.js +7 -1
  59. package/dist/workflow-builder/plugins/serializers/json-serializer.js.map +1 -1
  60. package/dist/workflow-builder/plugins/validators/merge-node-validator.js +1 -1
  61. package/dist/workflow-builder/plugins/validators/merge-node-validator.js.map +1 -1
  62. package/dist/workflow-builder/string-utils.d.ts +2 -0
  63. package/dist/workflow-builder/string-utils.js +12 -0
  64. package/dist/workflow-builder/string-utils.js.map +1 -1
  65. package/dist/workflow-builder/validation-helpers.js +5 -6
  66. package/dist/workflow-builder/validation-helpers.js.map +1 -1
  67. package/dist/workflow-builder.js +14 -0
  68. package/dist/workflow-builder.js.map +1 -1
  69. package/package.json +6 -12
  70. package/dist/prompts/node-guidance/node-tips/index.d.ts +0 -3
  71. package/dist/prompts/node-guidance/node-tips/index.js +0 -8
  72. package/dist/prompts/node-guidance/node-tips/index.js.map +0 -1
  73. package/dist/prompts/node-guidance/node-tips/structured-output-parser.d.ts +0 -2
  74. package/dist/prompts/node-guidance/node-tips/structured-output-parser.js +0 -35
  75. package/dist/prompts/node-guidance/node-tips/structured-output-parser.js.map +0 -1
  76. package/dist/prompts/node-guidance/node-tips/types.d.ts +0 -7
  77. package/dist/prompts/node-guidance/node-tips/types.js +0 -3
  78. package/dist/prompts/node-guidance/node-tips/types.js.map +0 -1
  79. package/dist/prompts/node-guidance/node-tips/webhook.d.ts +0 -2
  80. package/dist/prompts/node-guidance/node-tips/webhook.js +0 -38
  81. package/dist/prompts/node-guidance/node-tips/webhook.js.map +0 -1
@@ -13,14 +13,6 @@ function parseExpression(expr) {
13
13
  function isExpression(value) {
14
14
  return typeof value === 'string' && value.startsWith('={{') && value.endsWith('}}');
15
15
  }
16
- function isPlaceholderLike(value) {
17
- return (typeof value === 'object' &&
18
- value !== null &&
19
- '__placeholder' in value &&
20
- value.__placeholder === true &&
21
- 'hint' in value &&
22
- typeof value.hint === 'string');
23
- }
24
16
  function isNewCredentialLike(value) {
25
17
  return (typeof value === 'object' &&
26
18
  value !== null &&
@@ -32,9 +24,6 @@ function isNewCredentialLike(value) {
32
24
  function expr(expression) {
33
25
  if (typeof expression !== 'string') {
34
26
  const value = expression;
35
- if (isPlaceholderLike(value)) {
36
- throw new Error(`expr(placeholder('${value.hint}')) is invalid. Use placeholder() directly as the value, not inside expr().`);
37
- }
38
27
  if (isNewCredentialLike(value)) {
39
28
  throw new Error(`expr(newCredential('${value.name}')) is invalid. Use newCredential() directly in the credentials config, not inside expr().`);
40
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/expression/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/expression/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  export interface ParameterBuilderHint {
2
- message: string;
2
+ propertyHint: string;
3
3
  placeholderSupported?: boolean;
4
4
  }
5
5
  export interface NodeProperty {
@@ -115,6 +115,12 @@ function generateAssignmentTypeDeclarations(exported) {
115
115
  ${prefix} AssignmentType = 'string' | 'number' | 'boolean' | 'array' | 'object' | 'binary';
116
116
  ${prefix} AssignmentCollectionValue = { assignments: Array<{ id: string; name: string; value: unknown; type: AssignmentType }> };`;
117
117
  }
118
+ function generateResourceMapperTypeDeclaration(exported) {
119
+ const prefix = exported ? 'export type' : 'type';
120
+ return `${prefix} ResourceMapperField = { id?: string; displayName?: string; required?: boolean; defaultMatch?: boolean; display?: boolean; type?: string; canBeUsedToMatch?: boolean; [key: string]: unknown };
121
+ ${prefix} ResourceMapperCommon = { matchingColumns?: string[]; cachedResultName?: string; [key: string]: unknown };
122
+ ${prefix} ResourceMapperValue = ResourceMapperCommon & { mappingMode: string; value?: null | Record<string, unknown>; schema?: ResourceMapperField[] };`;
123
+ }
118
124
  function isCustomApiCall(operation) {
119
125
  return operation === CUSTOM_API_CALL_KEY;
120
126
  }
@@ -463,6 +469,8 @@ function mapNestedPropertyTypeInner(prop, discriminatorContext) {
463
469
  return 'string[]';
464
470
  case 'resourceLocator':
465
471
  return generateResourceLocatorType(prop);
472
+ case 'resourceMapper':
473
+ return 'ResourceMapperValue | Expression<string>';
466
474
  case 'filter':
467
475
  return 'FilterValue';
468
476
  case 'assignmentCollection':
@@ -472,11 +480,9 @@ function mapNestedPropertyTypeInner(prop, discriminatorContext) {
472
480
  }
473
481
  }
474
482
  switch (prop.type) {
475
- case 'string':
476
- if (prop.builderHint?.placeholderSupported === false) {
477
- return 'string | Expression<string>';
478
- }
479
- return 'string | Expression<string> | PlaceholderValue';
483
+ case 'string': {
484
+ return 'string | Expression<string>';
485
+ }
480
486
  case 'number':
481
487
  return 'number | Expression<number>';
482
488
  case 'boolean':
@@ -519,6 +525,8 @@ function mapNestedPropertyTypeInner(prop, discriminatorContext) {
519
525
  return 'IDataObject | string | Expression<string>';
520
526
  case 'resourceLocator':
521
527
  return generateResourceLocatorType(prop);
528
+ case 'resourceMapper':
529
+ return 'ResourceMapperValue | Expression<string>';
522
530
  case 'filter':
523
531
  return 'FilterValue';
524
532
  case 'assignmentCollection':
@@ -577,12 +585,15 @@ function generateNestedPropertyJSDoc(prop, indent, discriminatorContext) {
577
585
  lines.push(`${indent} * @hint ${safeHint}`);
578
586
  }
579
587
  if (prop.builderHint) {
580
- const safeBuilderHint = prop.builderHint.message
588
+ const safeBuilderHint = prop.builderHint.propertyHint
581
589
  .replace(/\*\//g, '*\\/')
582
590
  .replace(/</g, '&lt;')
583
591
  .replace(/>/g, '&gt;');
584
592
  lines.push(`${indent} * @builderHint ${safeBuilderHint}`);
585
593
  }
594
+ if (prop.builderHint?.placeholderSupported === false) {
595
+ lines.push(`${indent} * @placeholderSupported false`);
596
+ }
586
597
  if (prop.modes) {
587
598
  for (const mode of prop.modes) {
588
599
  if (typeof mode.typeOptions?.searchListMethod === 'string') {
@@ -700,7 +711,7 @@ function generateFixedCollectionType(prop, discriminatorContext) {
700
711
  groupJsDocLines.push(`${INDENT.repeat(2)}/** ${desc}`);
701
712
  }
702
713
  if (group.builderHint) {
703
- const safeBuilderHint = group.builderHint.message
714
+ const safeBuilderHint = group.builderHint.propertyHint
704
715
  .replace(/\*\//g, '*\\/')
705
716
  .replace(/</g, '&lt;')
706
717
  .replace(/>/g, '&gt;');
@@ -911,10 +922,7 @@ function generateCollectionType(prop, discriminatorContext) {
911
922
  return `{\n${nestedProps.join(';\n')};\n${INDENT}}`;
912
923
  }
913
924
  function stripExpressionFromType(typeStr) {
914
- return typeStr
915
- .replace(/\s*\|\s*Expression<[^>]+>/g, '')
916
- .replace(/\s*\|\s*PlaceholderValue/g, '')
917
- .trim();
925
+ return typeStr.replace(/\s*\|\s*Expression<[^>]+>/g, '').trim();
918
926
  }
919
927
  function mapPropertyType(prop, discriminatorContext) {
920
928
  const result = mapPropertyTypeInner(prop, discriminatorContext);
@@ -940,6 +948,8 @@ function mapPropertyTypeInner(prop, discriminatorContext) {
940
948
  return 'string[]';
941
949
  case 'resourceLocator':
942
950
  return generateResourceLocatorType(prop);
951
+ case 'resourceMapper':
952
+ return 'ResourceMapperValue | Expression<string>';
943
953
  case 'filter':
944
954
  return 'FilterValue';
945
955
  case 'assignmentCollection':
@@ -949,11 +959,9 @@ function mapPropertyTypeInner(prop, discriminatorContext) {
949
959
  }
950
960
  }
951
961
  switch (prop.type) {
952
- case 'string':
953
- if (prop.builderHint?.placeholderSupported === false) {
954
- return 'string | Expression<string>';
955
- }
956
- return 'string | Expression<string> | PlaceholderValue';
962
+ case 'string': {
963
+ return 'string | Expression<string>';
964
+ }
957
965
  case 'number':
958
966
  return 'number | Expression<number>';
959
967
  case 'boolean':
@@ -996,6 +1004,8 @@ function mapPropertyTypeInner(prop, discriminatorContext) {
996
1004
  return 'IDataObject | string | Expression<string>';
997
1005
  case 'resourceLocator':
998
1006
  return generateResourceLocatorType(prop);
1007
+ case 'resourceMapper':
1008
+ return 'ResourceMapperValue | Expression<string>';
999
1009
  case 'filter':
1000
1010
  return 'FilterValue';
1001
1011
  case 'assignmentCollection':
@@ -1233,12 +1243,15 @@ function generatePropertyJSDoc(prop, discriminatorContext) {
1233
1243
  lines.push(` * @hint ${safeHint}`);
1234
1244
  }
1235
1245
  if (prop.builderHint) {
1236
- const safeBuilderHint = prop.builderHint.message
1246
+ const safeBuilderHint = prop.builderHint.propertyHint
1237
1247
  .replace(/\*\//g, '*\\/')
1238
1248
  .replace(/</g, '&lt;')
1239
1249
  .replace(/>/g, '&gt;');
1240
1250
  lines.push(` * @builderHint ${safeBuilderHint}`);
1241
1251
  }
1252
+ if (prop.builderHint?.placeholderSupported === false) {
1253
+ lines.push(' * @placeholderSupported false');
1254
+ }
1242
1255
  if (prop.modes) {
1243
1256
  for (const mode of prop.modes) {
1244
1257
  if (typeof mode.typeOptions?.searchListMethod === 'string') {
@@ -1484,7 +1497,8 @@ function generateSharedFile(node, version, _importDepth = 5) {
1484
1497
  const outputProps = filteredProperties.filter((p) => !DISPLAY_ONLY_PROPERTY_TYPES.has(p.type));
1485
1498
  const needsFilter = outputProps.some((p) => p.type === 'filter');
1486
1499
  const needsAssignment = outputProps.some((p) => p.type === 'assignmentCollection');
1487
- if (needsFilter || needsAssignment) {
1500
+ const needsResourceMapper = outputProps.some((p) => p.type === 'resourceMapper');
1501
+ if (needsFilter || needsAssignment || needsResourceMapper) {
1488
1502
  lines.push('// Helper types for special n8n fields');
1489
1503
  if (needsFilter) {
1490
1504
  lines.push(generateFilterTypeDeclaration(true));
@@ -1492,6 +1506,9 @@ function generateSharedFile(node, version, _importDepth = 5) {
1492
1506
  if (needsAssignment) {
1493
1507
  lines.push(generateAssignmentTypeDeclarations(true));
1494
1508
  }
1509
+ if (needsResourceMapper) {
1510
+ lines.push(generateResourceMapperTypeDeclaration(true));
1511
+ }
1495
1512
  lines.push('');
1496
1513
  }
1497
1514
  const credTypeName = node.credentials && node.credentials.length > 0
@@ -1560,7 +1577,8 @@ function generateDiscriminatorFile(node, version, combo, props, schema, _importD
1560
1577
  lines.push('');
1561
1578
  const needsFilter = props.some((p) => p.type === 'filter');
1562
1579
  const needsAssignment = props.some((p) => p.type === 'assignmentCollection');
1563
- if (needsFilter || needsAssignment) {
1580
+ const needsResourceMapper = props.some((p) => p.type === 'resourceMapper');
1581
+ if (needsFilter || needsAssignment || needsResourceMapper) {
1564
1582
  lines.push('// Helper types for special n8n fields');
1565
1583
  if (needsFilter) {
1566
1584
  lines.push(generateFilterTypeDeclaration(false));
@@ -1568,6 +1586,9 @@ function generateDiscriminatorFile(node, version, combo, props, schema, _importD
1568
1586
  if (needsAssignment) {
1569
1587
  lines.push(generateAssignmentTypeDeclarations(false));
1570
1588
  }
1589
+ if (needsResourceMapper) {
1590
+ lines.push(generateResourceMapperTypeDeclaration(false));
1591
+ }
1571
1592
  lines.push('');
1572
1593
  }
1573
1594
  if (node.credentials && node.credentials.length > 0) {
@@ -1829,7 +1850,8 @@ function generateSingleVersionTypeFile(node, specificVersion) {
1829
1850
  const outputProps = filteredProperties.filter((p) => !DISPLAY_ONLY_PROPERTY_TYPES.has(p.type));
1830
1851
  const needsFilter = outputProps.some((p) => p.type === 'filter');
1831
1852
  const needsAssignment = outputProps.some((p) => p.type === 'assignmentCollection');
1832
- if (needsFilter || needsAssignment) {
1853
+ const needsResourceMapper = outputProps.some((p) => p.type === 'resourceMapper');
1854
+ if (needsFilter || needsAssignment || needsResourceMapper) {
1833
1855
  lines.push('// Helper types for special n8n fields');
1834
1856
  if (needsFilter) {
1835
1857
  lines.push(generateFilterTypeDeclaration(false));
@@ -1837,6 +1859,9 @@ function generateSingleVersionTypeFile(node, specificVersion) {
1837
1859
  if (needsAssignment) {
1838
1860
  lines.push(generateAssignmentTypeDeclarations(false));
1839
1861
  }
1862
+ if (needsResourceMapper) {
1863
+ lines.push(generateResourceMapperTypeDeclaration(false));
1864
+ }
1840
1865
  lines.push('');
1841
1866
  }
1842
1867
  const unionResult = generateDiscriminatedUnionForEntry(filteredNode, nodeName, versionSuffix);
@@ -2000,7 +2025,8 @@ function generateNodeTypeFile(nodes) {
2000
2025
  const outputProps = nodeArray.flatMap((n) => n.properties.filter((p) => !DISPLAY_ONLY_PROPERTY_TYPES.has(p.type)));
2001
2026
  const needsFilter = outputProps.some((p) => p.type === 'filter');
2002
2027
  const needsAssignment = outputProps.some((p) => p.type === 'assignmentCollection');
2003
- if (needsFilter || needsAssignment) {
2028
+ const needsResourceMapper = outputProps.some((p) => p.type === 'resourceMapper');
2029
+ if (needsFilter || needsAssignment || needsResourceMapper) {
2004
2030
  lines.push('// Helper types for special n8n fields');
2005
2031
  if (needsFilter) {
2006
2032
  lines.push(generateFilterTypeDeclaration(false));
@@ -2008,6 +2034,9 @@ function generateNodeTypeFile(nodes) {
2008
2034
  if (needsAssignment) {
2009
2035
  lines.push(generateAssignmentTypeDeclarations(false));
2010
2036
  }
2037
+ if (needsResourceMapper) {
2038
+ lines.push(generateResourceMapperTypeDeclaration(false));
2039
+ }
2011
2040
  lines.push('');
2012
2041
  }
2013
2042
  const sortedNodes = [...nodeArray].sort((a, b) => {