@n8n/workflow-sdk 0.26.0 → 0.27.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 (114) hide show
  1. package/dist/ast-interpreter/index.d.ts +1 -1
  2. package/dist/ast-interpreter/index.js +2 -1
  3. package/dist/ast-interpreter/index.js.map +1 -1
  4. package/dist/build.tsbuildinfo +1 -1
  5. package/dist/cli/index.js +19 -9
  6. package/dist/cli/index.js.map +1 -1
  7. package/dist/cli/node-definition-dirs.d.ts +6 -0
  8. package/dist/cli/node-definition-dirs.js +63 -0
  9. package/dist/cli/node-definition-dirs.js.map +1 -0
  10. package/dist/cli/validate.d.ts +5 -0
  11. package/dist/cli/validate.js +203 -0
  12. package/dist/cli/validate.js.map +1 -0
  13. package/dist/codegen/code-generator.js +4 -1
  14. package/dist/codegen/code-generator.js.map +1 -1
  15. package/dist/index.d.ts +2 -1
  16. package/dist/index.js +10 -2
  17. package/dist/index.js.map +1 -1
  18. package/dist/lint/ast-walk.d.ts +7 -0
  19. package/dist/lint/ast-walk.js +43 -0
  20. package/dist/lint/ast-walk.js.map +1 -0
  21. package/dist/lint/code-node/extract-snippets.d.ts +13 -0
  22. package/dist/lint/code-node/extract-snippets.js +110 -0
  23. package/dist/lint/code-node/extract-snippets.js.map +1 -0
  24. package/dist/lint/code-node/js.d.ts +8 -0
  25. package/dist/lint/code-node/js.js +219 -0
  26. package/dist/lint/code-node/js.js.map +1 -0
  27. package/dist/lint/code-node/python.d.ts +5 -0
  28. package/dist/lint/code-node/python.js +25 -0
  29. package/dist/lint/code-node/python.js.map +1 -0
  30. package/dist/lint/index.d.ts +8 -0
  31. package/dist/lint/index.js +25 -0
  32. package/dist/lint/index.js.map +1 -0
  33. package/dist/lint/lint-workflow-source.d.ts +2 -0
  34. package/dist/lint/lint-workflow-source.js +47 -0
  35. package/dist/lint/lint-workflow-source.js.map +1 -0
  36. package/dist/lint/sdk/workflow-sdk-lint.d.ts +12 -0
  37. package/dist/lint/sdk/workflow-sdk-lint.js +271 -0
  38. package/dist/lint/sdk/workflow-sdk-lint.js.map +1 -0
  39. package/dist/lint/types.d.ts +15 -0
  40. package/dist/lint/types.js +7 -0
  41. package/dist/lint/types.js.map +1 -0
  42. package/dist/mock-data/context.d.ts +5 -2
  43. package/dist/mock-data/context.js +109 -6
  44. package/dist/mock-data/context.js.map +1 -1
  45. package/dist/mock-data/index.d.ts +2 -1
  46. package/dist/mock-data/index.js +4 -1
  47. package/dist/mock-data/index.js.map +1 -1
  48. package/dist/mock-data/parse.js +11 -2
  49. package/dist/mock-data/parse.js.map +1 -1
  50. package/dist/mock-data/prompt.js +9 -1
  51. package/dist/mock-data/prompt.js.map +1 -1
  52. package/dist/mock-data/types.d.ts +12 -0
  53. package/dist/mock-data/validate.d.ts +10 -0
  54. package/dist/mock-data/validate.js +77 -0
  55. package/dist/mock-data/validate.js.map +1 -0
  56. package/dist/prompts/sdk-reference/sdk-language.js +10 -5
  57. package/dist/prompts/sdk-reference/sdk-language.js.map +1 -1
  58. package/dist/types/base.d.ts +9 -1
  59. package/dist/validation/index.d.ts +7 -34
  60. package/dist/validation/index.js +22 -698
  61. package/dist/validation/index.js.map +1 -1
  62. package/dist/validation/informational-validation-codes.d.ts +1 -0
  63. package/dist/validation/informational-validation-codes.js +7 -0
  64. package/dist/validation/informational-validation-codes.js.map +1 -0
  65. package/dist/validation/issue-severity.d.ts +6 -0
  66. package/dist/validation/issue-severity.js +24 -0
  67. package/dist/validation/issue-severity.js.map +1 -0
  68. package/dist/validation/{resolve-schema.d.ts → node-parameter-schema/resolve-schema.d.ts} +1 -1
  69. package/dist/validation/{resolve-schema.js → node-parameter-schema/resolve-schema.js} +1 -1
  70. package/dist/validation/node-parameter-schema/resolve-schema.js.map +1 -0
  71. package/dist/validation/{schema-helpers.d.ts → node-parameter-schema/schema-helpers.d.ts} +1 -1
  72. package/dist/validation/{schema-helpers.js → node-parameter-schema/schema-helpers.js} +1 -1
  73. package/dist/validation/node-parameter-schema/schema-helpers.js.map +1 -0
  74. package/dist/validation/{schema-validator.js → node-parameter-schema/schema-validator.js} +1 -1
  75. package/dist/validation/node-parameter-schema/schema-validator.js.map +1 -0
  76. package/dist/validation/{test-schema-setup.js → node-parameter-schema/test-schema-setup.js} +3 -3
  77. package/dist/validation/node-parameter-schema/test-schema-setup.js.map +1 -0
  78. package/dist/validation/{input-resolver.js → node-port-resolvers/resolve-main-input-count.js} +1 -1
  79. package/dist/validation/node-port-resolvers/resolve-main-input-count.js.map +1 -0
  80. package/dist/validation/{output-resolver.js → node-port-resolvers/resolve-main-output-count.js} +1 -1
  81. package/dist/validation/node-port-resolvers/resolve-main-output-count.js.map +1 -0
  82. package/dist/validation/validate-workflow-builder.d.ts +44 -0
  83. package/dist/validation/validate-workflow-builder.js +132 -0
  84. package/dist/validation/validate-workflow-builder.js.map +1 -0
  85. package/dist/validation/validate-workflow.d.ts +36 -0
  86. package/dist/validation/validate-workflow.js +723 -0
  87. package/dist/validation/validate-workflow.js.map +1 -0
  88. package/dist/validation.d.ts +2 -2
  89. package/dist/validation.js +6 -2
  90. package/dist/validation.js.map +1 -1
  91. package/dist/workflow-builder/plugins/serializers/json-serializer.js +11 -6
  92. package/dist/workflow-builder/plugins/serializers/json-serializer.js.map +1 -1
  93. package/dist/workflow-builder/plugins/types.d.ts +6 -7
  94. package/dist/workflow-builder/plugins/types.js.map +1 -1
  95. package/dist/workflow-builder/plugins/validators/disconnected-node-validator.js +1 -1
  96. package/dist/workflow-builder/plugins/validators/disconnected-node-validator.js.map +1 -1
  97. package/dist/workflow-builder/plugins/validators/missing-trigger-validator.js +1 -1
  98. package/dist/workflow-builder/plugins/validators/missing-trigger-validator.js.map +1 -1
  99. package/dist/workflow-builder/workflow-import.d.ts +2 -6
  100. package/dist/workflow-builder/workflow-import.js +5 -2
  101. package/dist/workflow-builder/workflow-import.js.map +1 -1
  102. package/dist/workflow-builder.js +7 -9
  103. package/dist/workflow-builder.js.map +1 -1
  104. package/package.json +11 -6
  105. package/dist/validation/input-resolver.js.map +0 -1
  106. package/dist/validation/output-resolver.js.map +0 -1
  107. package/dist/validation/resolve-schema.js.map +0 -1
  108. package/dist/validation/schema-helpers.js.map +0 -1
  109. package/dist/validation/schema-validator.js.map +0 -1
  110. package/dist/validation/test-schema-setup.js.map +0 -1
  111. /package/dist/validation/{schema-validator.d.ts → node-parameter-schema/schema-validator.d.ts} +0 -0
  112. /package/dist/validation/{test-schema-setup.d.ts → node-parameter-schema/test-schema-setup.d.ts} +0 -0
  113. /package/dist/validation/{input-resolver.d.ts → node-port-resolvers/resolve-main-input-count.d.ts} +0 -0
  114. /package/dist/validation/{output-resolver.d.ts → node-port-resolvers/resolve-main-output-count.d.ts} +0 -0
@@ -10,6 +10,16 @@ export interface OutputParserContext {
10
10
  schemaText?: string;
11
11
  schemaIsExample: boolean;
12
12
  }
13
+ export interface DataTableColumnInfo {
14
+ name: string;
15
+ type: string;
16
+ }
17
+ export interface DeclaredFieldContract {
18
+ keys: string[];
19
+ envelopeKey?: string;
20
+ exact: boolean;
21
+ source: 'declared-schema' | 'data-table-columns';
22
+ }
13
23
  export interface NodeSchemaContext {
14
24
  nodeName: string;
15
25
  nodeType: string;
@@ -18,6 +28,8 @@ export interface NodeSchemaContext {
18
28
  operation?: string;
19
29
  schema?: Record<string, unknown>;
20
30
  outputParser?: OutputParserContext;
31
+ dataTableColumns?: DataTableColumnInfo[];
32
+ declaredFields?: DeclaredFieldContract;
21
33
  }
22
34
  export interface PinDataGenerationInstructions {
23
35
  dataDescription: string;
@@ -0,0 +1,10 @@
1
+ import type { NodeSchemaContext, PinData } from './types';
2
+ export interface PinFieldViolation {
3
+ nodeName: string;
4
+ unknownKeys: string[];
5
+ missingKeys: string[];
6
+ declaredKeys: string[];
7
+ envelopeKey?: string;
8
+ }
9
+ export declare function collectPinFieldViolations(pinData: PinData, contexts: NodeSchemaContext[]): PinFieldViolation[];
10
+ export declare function buildFieldViolationRetryMessage(violations: PinFieldViolation[]): string;
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.collectPinFieldViolations = collectPinFieldViolations;
4
+ exports.buildFieldViolationRetryMessage = buildFieldViolationRetryMessage;
5
+ function collectPinFieldViolations(pinData, contexts) {
6
+ const violations = [];
7
+ for (const ctx of contexts) {
8
+ const contract = ctx.declaredFields;
9
+ if (!contract)
10
+ continue;
11
+ const items = pinData[ctx.nodeName];
12
+ if (!items || items.length === 0)
13
+ continue;
14
+ const declared = new Set(contract.keys);
15
+ const unknownKeys = new Set();
16
+ const missingKeySet = new Set();
17
+ for (const item of items) {
18
+ const json = item.json;
19
+ if (typeof json !== 'object' || json === null || Array.isArray(json)) {
20
+ if (contract.exact)
21
+ for (const key of contract.keys)
22
+ missingKeySet.add(key);
23
+ continue;
24
+ }
25
+ let fields = json;
26
+ if (contract.envelopeKey) {
27
+ const enveloped = fields[contract.envelopeKey];
28
+ if (typeof enveloped !== 'object' || enveloped === null || Array.isArray(enveloped)) {
29
+ continue;
30
+ }
31
+ fields = enveloped;
32
+ }
33
+ for (const key of Object.keys(fields)) {
34
+ if (!declared.has(key))
35
+ unknownKeys.add(key);
36
+ }
37
+ if (contract.exact) {
38
+ for (const key of contract.keys) {
39
+ if (!(key in fields))
40
+ missingKeySet.add(key);
41
+ }
42
+ }
43
+ }
44
+ const missingKeys = [...missingKeySet];
45
+ if (unknownKeys.size > 0 || missingKeys.length > 0) {
46
+ violations.push({
47
+ nodeName: ctx.nodeName,
48
+ unknownKeys: [...unknownKeys],
49
+ missingKeys,
50
+ declaredKeys: contract.keys,
51
+ envelopeKey: contract.envelopeKey,
52
+ });
53
+ }
54
+ }
55
+ return violations;
56
+ }
57
+ function buildFieldViolationRetryMessage(violations) {
58
+ const lines = [
59
+ 'Your previous response used field names that do not exist on the nodes below.',
60
+ 'Regenerate the COMPLETE JSON object (every node, same format), keeping all values scenario-consistent, but use EXACTLY the declared field names — do not rename, synonymize, or invent fields.',
61
+ 'Keep the SAME number of items per node as before — do not satisfy a correction by dropping items or returning an empty array unless the scenario itself requires zero items:',
62
+ '',
63
+ ];
64
+ for (const v of violations) {
65
+ const location = v.envelopeKey ? ` (inside the \`${v.envelopeKey}\` object)` : '';
66
+ lines.push(`- ${v.nodeName}${location}:`);
67
+ if (v.unknownKeys.length > 0) {
68
+ lines.push(` - remove/rename these unknown fields: ${v.unknownKeys.join(', ')}`);
69
+ }
70
+ if (v.missingKeys.length > 0) {
71
+ lines.push(` - every item must also carry: ${v.missingKeys.join(', ')}`);
72
+ }
73
+ lines.push(` - the ONLY valid field names are: ${v.declaredKeys.join(', ')}`);
74
+ }
75
+ return lines.join('\n');
76
+ }
77
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/mock-data/validate.ts"],"names":[],"mappings":"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"}
@@ -47,7 +47,7 @@ exports.NODE_GROUPS_REFERENCE = `## Node groups
47
47
 
48
48
  A node group is a named, visual grouping of nodes (a frame on the canvas). It is
49
49
  purely organisational — nothing about execution depends on it. Declare one with
50
- \`.group(name, members)\` on the workflow. Members are the node handles (the
50
+ \`.group(name, members, options?)\` on the workflow. Members are the node handles (the
51
51
  \`const\` from \`node(...)\`) — the same way connections reference nodes:
52
52
 
53
53
  \`\`\`typescript
@@ -56,13 +56,18 @@ const transform = node({ /* ... name: 'Transform' */ });
56
56
  export default workflow('id', 'My workflow')
57
57
  .add(fetch)
58
58
  .to(transform)
59
- .group('Ingestion', [fetch, transform]);
59
+ .group('Ingestion', [fetch, transform], {
60
+ description: 'Pulls the CRM contacts and normalizes them',
61
+ });
60
62
  \`\`\`
61
63
 
62
- When editing an existing workflow, **keep the \`.group(...)\` calls intact** unless
63
- the change is specifically about grouping.
64
+ \`description\` is optional and shown when the group is collapsed. Keep it to one
65
+ sentence anything past ${n8n_workflow_1.GROUP_DESCRIPTION_MAX_LENGTH} characters is cut off.
64
66
 
65
- an invalid group is rejected on save, so these following rules MUST be followed when
67
+ When editing an existing workflow, **keep the \`.group(...)\` calls and their descriptions
68
+ intact** unless the change is specifically about grouping.
69
+
70
+ An invalid group is rejected on save, so these following rules MUST be followed when
66
71
  creating or editing groups.
67
72
 
68
73
  Rules:
@@ -1 +1 @@
1
- {"version":3,"file":"sdk-language.js","sourceRoot":"","sources":["../../../src/prompts/sdk-reference/sdk-language.ts"],"names":[],"mappings":";;;AAIA,+CAAmD;AAEnD,2DAQ+B;AAE/B,MAAM,YAAY,GAAwD;IACzE,QAAQ,EAAE,kBAAkB;IAC5B,IAAI,EAAE,cAAc;IACpB,cAAc,EAAE,cAAc;IAC9B,UAAU,EAAE,YAAY;CACxB,CAAC;AAEF,MAAM,cAAc,GAAG,6BAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,SAAS,gBAAgB;IACxB,OAAO;QACN,GAAG,MAAM,CAAC,MAAM,CAAC,kCAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,YAAY,EAAE,CAAC;QACvE,gFAAgF;QAChF,mDAAmD;QACnD,EAAE;QACF,kFAAkF;QAClF,wDAAwD;KACxD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC;AAED,SAAS,iBAAiB;IACzB,OAAQ,MAAM,CAAC,IAAI,CAAC,YAAY,CAAsC;SACpE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACd,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;QAC7F,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,YAAY,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAChF,CAAC,CAAC;SACD,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC;AAED,SAAS,oBAAoB;IAC5B,OAAO,MAAM,CAAC,MAAM,CAAC,sCAAoB,CAAC;SACxC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,OAAO,EAAE,CAAC;SAChC,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC;AAED,SAAS,yBAAyB;IACjC,OAAO,yCAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACxC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CACvE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC;AAED,SAAS,2BAA2B;IACnC,OAAO,wCAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,qBAAqB,GAC1B,8CAA8C,wCAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;IAC9G,0BAA0B,0CAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;IAC3F,sHAAsH,CAAC;AAmB3G,QAAA,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;EAuBnC,gBAAgB,EAAE;CACnB,CAAC;AAGW,QAAA,sBAAsB,GAAG;;;;;;;;;EASpC,iBAAiB,EAAE;;EAEnB,qBAAqB;;EAErB,QAAA,qBAAqB;;;;EAIrB,oBAAoB,EAAE;;;;EAItB,2BAA2B,EAAE;;;;;;EAM7B,yBAAyB,EAAE;;;;;;;;;;;CAW5B,CAAC"}
1
+ {"version":3,"file":"sdk-language.js","sourceRoot":"","sources":["../../../src/prompts/sdk-reference/sdk-language.ts"],"names":[],"mappings":"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"}
@@ -285,6 +285,14 @@ export interface ToJSONOptions {
285
285
  existingGroupIdsByName?: Map<string, string>;
286
286
  }
287
287
  export type GroupMember = NodeInstance<string, string, unknown>;
288
+ export type GroupOptions = {
289
+ description?: string;
290
+ };
291
+ export type AuthoredNodeGroup = GroupOptions & {
292
+ id?: string;
293
+ name: string;
294
+ members: GroupMember[];
295
+ };
288
296
  export interface WorkflowBuilder {
289
297
  readonly id: string;
290
298
  readonly name: string;
@@ -303,7 +311,7 @@ export interface WorkflowBuilder {
303
311
  settings(settings: WorkflowSettings): WorkflowBuilder;
304
312
  connect(source: NodeInstance<string, string, unknown>, sourceOutput: number, target: NodeInstance<string, string, unknown>, targetInput: number): WorkflowBuilder;
305
313
  getNode(name: string): NodeInstance<string, string, unknown> | undefined;
306
- group(name: string, members: GroupMember[]): WorkflowBuilder;
314
+ group(name: string, members: GroupMember[], options?: GroupOptions): WorkflowBuilder;
307
315
  validate(options?: ValidationOptions): ValidationResult;
308
316
  toJSON(options?: ToJSONOptions): WorkflowJSON;
309
317
  toFormat<T>(format: string): T;
@@ -1,34 +1,7 @@
1
- import type { INodeTypes } from 'n8n-workflow';
2
- import type { WorkflowBuilder, WorkflowJSON } from '../types/base';
3
- export { getSchemaBaseDirs, setSchemaBaseDirs, validateNodeConfig, type SchemaValidationResult, } from './schema-validator';
4
- export type ValidationErrorCode = 'NO_NODES' | 'MISSING_TRIGGER' | 'DISCONNECTED_NODE' | 'MISSING_PARAMETER' | 'INVALID_CONNECTION' | 'CIRCULAR_REFERENCE' | 'INVALID_EXPRESSION' | 'AGENT_STATIC_PROMPT' | 'AGENT_NO_SYSTEM_MESSAGE' | 'HARDCODED_CREDENTIALS' | 'SET_CREDENTIAL_FIELD' | 'MERGE_SINGLE_INPUT' | 'TOOL_NO_PARAMETERS' | 'FROM_AI_IN_NON_TOOL' | 'MISSING_EXPRESSION_PREFIX' | 'INVALID_PARAMETER' | 'INVALID_INPUT_INDEX' | 'INVALID_OUTPUT_INDEX' | 'SUBNODE_NOT_CONNECTED' | 'SUBNODE_PARAMETER_MISMATCH' | 'UNSUPPORTED_SUBNODE_INPUT' | 'MISSING_REQUIRED_INPUT' | 'INVALID_OUTPUT_FOR_MODE' | 'SWITCH_NO_OUTPUT_CONNECTIONS' | 'SWITCH_FALLBACK_OUTPUT_DISABLED' | 'MAX_NODES_EXCEEDED' | 'INVALID_EXPRESSION_PATH' | 'PARTIAL_EXPRESSION_PATH' | 'INVALID_DATE_METHOD' | 'UNKNOWN_CONFIG_KEY';
5
- export declare class ValidationError {
6
- readonly code: ValidationErrorCode;
7
- readonly message: string;
8
- readonly nodeName?: string;
9
- readonly parameterName?: string;
10
- readonly violationLevel?: 'critical' | 'major' | 'minor';
11
- constructor(code: ValidationErrorCode, message: string, nodeName?: string, parameterName?: string, violationLevel?: 'critical' | 'major' | 'minor');
12
- }
13
- export declare class ValidationWarning {
14
- readonly code: ValidationErrorCode;
15
- readonly message: string;
16
- readonly nodeName?: string;
17
- readonly parameterPath?: string;
18
- readonly originalName?: string;
19
- readonly violationLevel?: 'critical' | 'major' | 'minor';
20
- constructor(code: ValidationErrorCode, message: string, nodeName?: string, parameterPath?: string, originalName?: string, violationLevel?: 'critical' | 'major' | 'minor');
21
- }
22
- export interface ValidationResult {
23
- valid: boolean;
24
- errors: ValidationError[];
25
- warnings: ValidationWarning[];
26
- }
27
- export interface ValidationOptions {
28
- strictMode?: boolean;
29
- allowDisconnectedNodes?: boolean;
30
- allowNoTrigger?: boolean;
31
- validateSchema?: boolean;
32
- nodeTypesProvider?: INodeTypes;
33
- }
34
- export declare function validateWorkflow(workflowOrJson: WorkflowBuilder | WorkflowJSON, options?: ValidationOptions): ValidationResult;
1
+ export { validateWorkflow, ValidationError, ValidationWarning, type ValidationResult, type ValidationOptions, type ValidationErrorCode, } from './validate-workflow';
2
+ export { getSchemaBaseDirs, setSchemaBaseDirs, validateNodeConfig, type SchemaValidationResult, } from './node-parameter-schema/schema-validator';
3
+ export { type IssueSeverity, isInformationalIssue, partitionValidationIssues, } from './issue-severity';
4
+ export { validateWorkflowBuilder, buildUncheckedNotes, type ValidateWorkflowBuilderOptions, type ValidateWorkflowBuilderResult, type CollectedValidationIssue, type ValidationIssueSource, } from './validate-workflow-builder';
5
+ export { matchesDisplayOptions, checkConditions, type DisplayOptions, type DisplayOptionsContext, } from './display-options';
6
+ export { resolveMainInputCount } from './node-port-resolvers/resolve-main-input-count';
7
+ export { resolveMainOutputCount } from './node-port-resolvers/resolve-main-output-count';