n8n-workflow 0.96.0 → 0.97.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.
@@ -963,10 +963,20 @@ export interface INodesGraph {
963
963
  node_types: string[];
964
964
  node_connections: IDataObject[];
965
965
  nodes: INodesGraphNode;
966
+ notes: INotesGraphNode;
966
967
  }
967
968
  export interface INodesGraphNode {
968
969
  [key: string]: INodeGraphItem;
969
970
  }
971
+ export interface INotesGraphNode {
972
+ [key: string]: INoteGraphItem;
973
+ }
974
+ export interface INoteGraphItem {
975
+ overlapping: boolean;
976
+ position: [number, number];
977
+ height: number;
978
+ width: number;
979
+ }
970
980
  export interface INodeGraphItem {
971
981
  type: string;
972
982
  resource?: string;
@@ -1,3 +1,4 @@
1
1
  import { INode, INodesGraphResult, IWorkflowBase, INodeTypes } from '.';
2
2
  export declare function getNodeTypeForName(workflow: IWorkflowBase, nodeName: string): INode | undefined;
3
+ export declare function isNumber(value: unknown): value is number;
3
4
  export declare function generateNodesGraph(workflow: IWorkflowBase, nodeTypes: INodeTypes): INodesGraphResult;
@@ -1,21 +1,60 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateNodesGraph = exports.getNodeTypeForName = void 0;
3
+ exports.generateNodesGraph = exports.isNumber = exports.getNodeTypeForName = void 0;
4
4
  const LoggerProxy_1 = require("./LoggerProxy");
5
+ const STICKY_NODE_TYPE = 'n8n-nodes-base.stickyNote';
5
6
  function getNodeTypeForName(workflow, nodeName) {
6
7
  return workflow.nodes.find((node) => node.name === nodeName);
7
8
  }
8
9
  exports.getNodeTypeForName = getNodeTypeForName;
10
+ function isNumber(value) {
11
+ return typeof value === 'number';
12
+ }
13
+ exports.isNumber = isNumber;
14
+ function getStickyDimensions(note, stickyType) {
15
+ const heightProperty = stickyType === null || stickyType === void 0 ? void 0 : stickyType.description.properties.find((property) => property.name === 'height');
16
+ const widthProperty = stickyType === null || stickyType === void 0 ? void 0 : stickyType.description.properties.find((property) => property.name === 'width');
17
+ const defaultHeight = heightProperty && isNumber(heightProperty === null || heightProperty === void 0 ? void 0 : heightProperty.default) ? heightProperty.default : 0;
18
+ const defaultWidth = widthProperty && isNumber(widthProperty === null || widthProperty === void 0 ? void 0 : widthProperty.default) ? widthProperty.default : 0;
19
+ const height = isNumber(note.parameters.height) ? note.parameters.height : defaultHeight;
20
+ const width = isNumber(note.parameters.width) ? note.parameters.width : defaultWidth;
21
+ return {
22
+ height,
23
+ width,
24
+ };
25
+ }
26
+ function areOverlapping(topLeft, bottomRight, targetPos) {
27
+ return (targetPos[0] > topLeft[0] &&
28
+ targetPos[1] > topLeft[1] &&
29
+ targetPos[0] < bottomRight[0] &&
30
+ targetPos[1] < bottomRight[1]);
31
+ }
9
32
  function generateNodesGraph(workflow, nodeTypes) {
10
33
  var _a;
11
34
  const nodesGraph = {
12
35
  node_types: [],
13
36
  node_connections: [],
14
37
  nodes: {},
38
+ notes: {},
15
39
  };
16
40
  const nodeNameAndIndex = {};
17
41
  try {
18
- workflow.nodes.forEach((node, index) => {
42
+ const notes = workflow.nodes.filter((node) => node.type === STICKY_NODE_TYPE);
43
+ const otherNodes = workflow.nodes.filter((node) => node.type !== STICKY_NODE_TYPE);
44
+ notes.forEach((stickyNote, index) => {
45
+ const stickyType = nodeTypes.getByNameAndVersion(STICKY_NODE_TYPE, stickyNote.typeVersion);
46
+ const { height, width } = getStickyDimensions(stickyNote, stickyType);
47
+ const topLeft = stickyNote.position;
48
+ const bottomRight = [topLeft[0] + width, topLeft[1] + height];
49
+ const overlapping = Boolean(otherNodes.find((node) => areOverlapping(topLeft, bottomRight, node.position)));
50
+ nodesGraph.notes[index] = {
51
+ overlapping,
52
+ position: topLeft,
53
+ height,
54
+ width,
55
+ };
56
+ });
57
+ otherNodes.forEach((node, index) => {
19
58
  var _a, _b, _c, _d, _e, _f;
20
59
  nodesGraph.node_types.push(node.type);
21
60
  const nodeItem = {
@@ -1 +1 @@
1
- {"version":3,"file":"TelemetryHelpers.js","sourceRoot":"","sources":["../../src/TelemetryHelpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TelemetryHelpers.js","sourceRoot":"","sources":["../../src/TelemetryHelpers.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-workflow",
3
- "version": "0.96.0",
3
+ "version": "0.97.0",
4
4
  "description": "Workflow base code of n8n",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "homepage": "https://n8n.io",