@voiceflow/utils-designer 1.17.4 → 1.18.1

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.
@@ -0,0 +1,18 @@
1
+ import type { Diagram } from '@voiceflow/dtos';
2
+ export declare const getUniqueDiagramCopyName: (originalName: string, existingNames: string[]) => string;
3
+ type DiagramPayload = Omit<Diagram, '_id' | 'creatorID' | 'versionID' | 'diagramID'>;
4
+ export declare const componentDiagramPayloadFactory: ({ diagramName, startNodeName, startNodeCoords, }: {
5
+ diagramName: string;
6
+ startNodeName?: string | undefined;
7
+ startNodeCoords?: [number, number] | undefined;
8
+ }) => DiagramPayload;
9
+ export declare const topicDiagramPayloadFactory: ({ diagramName, triggerNodeName, triggerNodeCoords, }: {
10
+ diagramName: string;
11
+ triggerNodeName?: string | undefined;
12
+ triggerNodeCoords?: [number, number] | undefined;
13
+ }) => DiagramPayload;
14
+ export declare const templateDiagramPayloadFactory: ({ name }?: {
15
+ name?: string | undefined;
16
+ }) => DiagramPayload;
17
+ export {};
18
+ //# sourceMappingURL=diagram.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagram.util.d.ts","sourceRoot":"","sources":["../../src/diagram.util.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAe,MAAM,iBAAiB,CAAC;AAK5D,eAAO,MAAM,wBAAwB,iBAAkB,MAAM,iBAAiB,MAAM,EAAE,WAUrF,CAAC;AAQF,KAAK,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC,CAAC;AAiBrF,eAAO,MAAM,8BAA8B;iBAK5B,MAAM;;;oBAQjB,CAAC;AAEL,eAAO,MAAM,0BAA0B;iBAKxB,MAAM;;;oBAcpB,CAAC;AAEF,eAAO,MAAM,6BAA6B;;oBACgD,CAAC"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.templateDiagramPayloadFactory = exports.topicDiagramPayloadFactory = exports.componentDiagramPayloadFactory = exports.getUniqueDiagramCopyName = void 0;
4
+ const common_1 = require("@voiceflow/common");
5
+ const dtos_1 = require("@voiceflow/dtos");
6
+ const node_util_1 = require("./node.util");
7
+ const getUniqueDiagramCopyName = (originalName, existingNames) => {
8
+ let uniqueName = existingNames.includes(originalName) ? `${originalName} (COPY)` : originalName;
9
+ let index = 1;
10
+ while (existingNames.includes(uniqueName)) {
11
+ uniqueName = `${originalName} (COPY ${index})`;
12
+ index++;
13
+ }
14
+ return uniqueName;
15
+ };
16
+ exports.getUniqueDiagramCopyName = getUniqueDiagramCopyName;
17
+ const diagramPayloadFactory = ({ name, type, nodes, }) => ({
18
+ name,
19
+ type,
20
+ zoom: 100,
21
+ nodes: Object.fromEntries(nodes.map((node) => [node.nodeID, node])),
22
+ offsetX: 0,
23
+ offsetY: 0,
24
+ modified: common_1.Utils.time.getCurrentTimestamp(),
25
+ variables: [],
26
+ });
27
+ const componentDiagramPayloadFactory = ({ diagramName, startNodeName = 'Continue', startNodeCoords = dtos_1.START_NODE_POSITION, }) => diagramPayloadFactory({
28
+ name: diagramName,
29
+ type: dtos_1.DiagramType.COMPONENT,
30
+ nodes: [(0, node_util_1.startNodeFactory)({ coords: startNodeCoords, data: { name: startNodeName } })],
31
+ });
32
+ exports.componentDiagramPayloadFactory = componentDiagramPayloadFactory;
33
+ const topicDiagramPayloadFactory = ({ diagramName, triggerNodeName, triggerNodeCoords = dtos_1.START_NODE_POSITION, }) => {
34
+ const triggerNodeID = common_1.Utils.id.objectID();
35
+ return diagramPayloadFactory({
36
+ name: diagramName,
37
+ type: dtos_1.DiagramType.TOPIC,
38
+ nodes: [
39
+ (0, node_util_1.blockNodeFactory)({ data: { name: triggerNodeName, steps: [triggerNodeID] }, coords: triggerNodeCoords }),
40
+ (0, node_util_1.triggerNodeFactory)({ nodeID: triggerNodeID }),
41
+ ],
42
+ });
43
+ };
44
+ exports.topicDiagramPayloadFactory = topicDiagramPayloadFactory;
45
+ const templateDiagramPayloadFactory = ({ name = 'Template Diagram' } = {}) => diagramPayloadFactory({ name, type: dtos_1.DiagramType.TEMPLATE, nodes: [(0, node_util_1.startNodeFactory)()] });
46
+ exports.templateDiagramPayloadFactory = templateDiagramPayloadFactory;
@@ -1,9 +1,12 @@
1
+ export * from './diagram.util';
1
2
  export * from './entity.util';
2
3
  export * from './flow.util';
3
4
  export * from './folder.util';
4
5
  export * from './function.util';
5
6
  export * from './intent.util';
6
7
  export * from './markup.util';
8
+ export * from './node.util';
9
+ export * from './node-port.util';
7
10
  export * from './request.util';
8
11
  export * from './validator/validator.interface';
9
12
  export * from './validator/validator.util';
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iCAAiC,CAAC;AAChD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iCAAiC,CAAC;AAChD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC"}
package/build/cjs/main.js CHANGED
@@ -14,12 +14,15 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./diagram.util"), exports);
17
18
  __exportStar(require("./entity.util"), exports);
18
19
  __exportStar(require("./flow.util"), exports);
19
20
  __exportStar(require("./folder.util"), exports);
20
21
  __exportStar(require("./function.util"), exports);
21
22
  __exportStar(require("./intent.util"), exports);
22
23
  __exportStar(require("./markup.util"), exports);
24
+ __exportStar(require("./node.util"), exports);
25
+ __exportStar(require("./node-port.util"), exports);
23
26
  __exportStar(require("./request.util"), exports);
24
27
  __exportStar(require("./validator/validator.interface"), exports);
25
28
  __exportStar(require("./validator/validator.util"), exports);
@@ -0,0 +1,54 @@
1
+ import type { BasePorts, NodePort, NodePortLinkData } from '@voiceflow/dtos';
2
+ export declare const nodePortFactory: <T extends import("@voiceflow/dtos").NodeSystemPortType | (string & {})>({ id, type, data, target, }: {
3
+ id?: string | undefined;
4
+ type: T;
5
+ data?: {
6
+ type?: "CURVED" | "STRAIGHT" | null | undefined;
7
+ color?: string | null | undefined;
8
+ points?: {
9
+ point: [number, number];
10
+ toTop?: boolean | null | undefined;
11
+ locked?: boolean | null | undefined;
12
+ reversed?: boolean | null | undefined;
13
+ allowedToTop?: boolean | null | undefined;
14
+ }[] | null | undefined;
15
+ caption?: {
16
+ value: string;
17
+ width: number;
18
+ height: number;
19
+ } | null | undefined;
20
+ } | undefined;
21
+ target: null;
22
+ }) => Omit<{
23
+ type: string;
24
+ id: string;
25
+ target: string | null;
26
+ data?: {
27
+ type?: "CURVED" | "STRAIGHT" | null | undefined;
28
+ color?: string | null | undefined;
29
+ points?: {
30
+ point: [number, number];
31
+ toTop?: boolean | null | undefined;
32
+ locked?: boolean | null | undefined;
33
+ reversed?: boolean | null | undefined;
34
+ allowedToTop?: boolean | null | undefined;
35
+ }[] | null | undefined;
36
+ caption?: {
37
+ value: string;
38
+ width: number;
39
+ height: number;
40
+ } | null | undefined;
41
+ } | null | undefined;
42
+ }, "type"> & {
43
+ type: import("@voiceflow/dtos").NodeSystemPortType | (string & {});
44
+ } & {
45
+ type: T;
46
+ };
47
+ interface NodePortsFactory {
48
+ <Ports extends BasePorts>(ports: Ports): Ports;
49
+ <Ports extends Partial<BasePorts>>(ports: Ports): Omit<BasePorts, keyof Ports> & Ports;
50
+ (): BasePorts;
51
+ }
52
+ export declare const nodePortsFactory: NodePortsFactory;
53
+ export {};
54
+ //# sourceMappingURL=node-port.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-port.util.d.ts","sourceRoot":"","sources":["../../src/node-port.util.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAE7E,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;YASlB,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;CAMZ,CAAC;AAEH,UAAU,gBAAgB;IACxB,CAAC,KAAK,SAAS,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC;IAE/C,CAAC,KAAK,SAAS,OAAO,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,KAAK,CAAC,GAAG,KAAK,CAAC;IAEvF,IAAI,SAAS,CAAC;CACf;AACD,eAAO,MAAM,gBAAgB,EAAE,gBAK7B,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.nodePortsFactory = exports.nodePortFactory = void 0;
4
+ const common_1 = require("@voiceflow/common");
5
+ const nodePortFactory = ({ id, type, data, target, }) => ({
6
+ id: id ?? common_1.Utils.id.objectID(),
7
+ type,
8
+ data,
9
+ target,
10
+ });
11
+ exports.nodePortFactory = nodePortFactory;
12
+ const nodePortsFactory = (ports = {}) => ({
13
+ byKey: {},
14
+ builtIn: {},
15
+ dynamic: [],
16
+ ...ports,
17
+ });
18
+ exports.nodePortsFactory = nodePortsFactory;
@@ -0,0 +1,257 @@
1
+ import type { BlockNode, DiagramNode, StartNode, TriggerNode } from '@voiceflow/dtos';
2
+ export declare const diagramNodeFactory: <Node_1 extends {
3
+ type: string;
4
+ data: Record<string, any>;
5
+ nodeID: string;
6
+ coords?: [number, number] | undefined;
7
+ }>(node: Omit<Node_1, "nodeID"> & {
8
+ nodeID?: string | undefined;
9
+ }) => Node_1;
10
+ type NodeFactoryOptions<Node extends DiagramNode> = Pick<Node, 'coords'> & {
11
+ data?: Partial<Node['data']>;
12
+ nodeID?: string;
13
+ };
14
+ export declare const startNodeFactory: ({ data, coords, ...rest }?: NodeFactoryOptions<StartNode>) => {
15
+ type: "start";
16
+ data: {
17
+ portsV2: {
18
+ byKey: Record<string, {
19
+ type: string;
20
+ id: string;
21
+ target: string | null;
22
+ data?: {
23
+ type?: "CURVED" | "STRAIGHT" | null | undefined;
24
+ color?: string | null | undefined;
25
+ points?: {
26
+ point: [number, number];
27
+ toTop?: boolean | null | undefined;
28
+ locked?: boolean | null | undefined;
29
+ reversed?: boolean | null | undefined;
30
+ allowedToTop?: boolean | null | undefined;
31
+ }[] | null | undefined;
32
+ caption?: {
33
+ value: string;
34
+ width: number;
35
+ height: number;
36
+ } | null | undefined;
37
+ } | null | undefined;
38
+ }>;
39
+ builtIn: Partial<Record<"fail" | "next" | "pause" | "no-reply" | "else" | "previous", {
40
+ type: string;
41
+ id: string;
42
+ target: string | null;
43
+ data?: {
44
+ type?: "CURVED" | "STRAIGHT" | null | undefined;
45
+ color?: string | null | undefined;
46
+ points?: {
47
+ point: [number, number];
48
+ toTop?: boolean | null | undefined;
49
+ locked?: boolean | null | undefined;
50
+ reversed?: boolean | null | undefined;
51
+ allowedToTop?: boolean | null | undefined;
52
+ }[] | null | undefined;
53
+ caption?: {
54
+ value: string;
55
+ width: number;
56
+ height: number;
57
+ } | null | undefined;
58
+ } | null | undefined;
59
+ }>>;
60
+ dynamic: {
61
+ type: string;
62
+ id: string;
63
+ target: string | null;
64
+ data?: {
65
+ type?: "CURVED" | "STRAIGHT" | null | undefined;
66
+ color?: string | null | undefined;
67
+ points?: {
68
+ point: [number, number];
69
+ toTop?: boolean | null | undefined;
70
+ locked?: boolean | null | undefined;
71
+ reversed?: boolean | null | undefined;
72
+ allowedToTop?: boolean | null | undefined;
73
+ }[] | null | undefined;
74
+ caption?: {
75
+ value: string;
76
+ width: number;
77
+ height: number;
78
+ } | null | undefined;
79
+ } | null | undefined;
80
+ }[];
81
+ };
82
+ name?: string | undefined;
83
+ label?: string | undefined;
84
+ color?: string | undefined;
85
+ steps?: string[] | undefined;
86
+ triggers?: {
87
+ type: "intent";
88
+ id: string;
89
+ resourceID: string | null;
90
+ settings: {
91
+ local: boolean;
92
+ };
93
+ mappings?: any;
94
+ }[] | undefined;
95
+ };
96
+ nodeID: string;
97
+ coords?: [number, number] | undefined;
98
+ };
99
+ export declare const blockNodeFactory: ({ data, ...rest }: NodeFactoryOptions<BlockNode>) => {
100
+ type: "block";
101
+ data: {
102
+ name: string;
103
+ color: string;
104
+ portsV2: {
105
+ byKey: Record<string, {
106
+ type: string;
107
+ id: string;
108
+ target: string | null;
109
+ data?: {
110
+ type?: "CURVED" | "STRAIGHT" | null | undefined;
111
+ color?: string | null | undefined;
112
+ points?: {
113
+ point: [number, number];
114
+ toTop?: boolean | null | undefined;
115
+ locked?: boolean | null | undefined;
116
+ reversed?: boolean | null | undefined;
117
+ allowedToTop?: boolean | null | undefined;
118
+ }[] | null | undefined;
119
+ caption?: {
120
+ value: string;
121
+ width: number;
122
+ height: number;
123
+ } | null | undefined;
124
+ } | null | undefined;
125
+ }>;
126
+ builtIn: Partial<Record<"fail" | "next" | "pause" | "no-reply" | "else" | "previous", {
127
+ type: string;
128
+ id: string;
129
+ target: string | null;
130
+ data?: {
131
+ type?: "CURVED" | "STRAIGHT" | null | undefined;
132
+ color?: string | null | undefined;
133
+ points?: {
134
+ point: [number, number];
135
+ toTop?: boolean | null | undefined;
136
+ locked?: boolean | null | undefined;
137
+ reversed?: boolean | null | undefined;
138
+ allowedToTop?: boolean | null | undefined;
139
+ }[] | null | undefined;
140
+ caption?: {
141
+ value: string;
142
+ width: number;
143
+ height: number;
144
+ } | null | undefined;
145
+ } | null | undefined;
146
+ }>>;
147
+ dynamic: {
148
+ type: string;
149
+ id: string;
150
+ target: string | null;
151
+ data?: {
152
+ type?: "CURVED" | "STRAIGHT" | null | undefined;
153
+ color?: string | null | undefined;
154
+ points?: {
155
+ point: [number, number];
156
+ toTop?: boolean | null | undefined;
157
+ locked?: boolean | null | undefined;
158
+ reversed?: boolean | null | undefined;
159
+ allowedToTop?: boolean | null | undefined;
160
+ }[] | null | undefined;
161
+ caption?: {
162
+ value: string;
163
+ width: number;
164
+ height: number;
165
+ } | null | undefined;
166
+ } | null | undefined;
167
+ }[];
168
+ };
169
+ steps: string[];
170
+ };
171
+ nodeID: string;
172
+ coords: [number, number];
173
+ };
174
+ export declare const triggerNodeFactory: ({ data, ...reset }?: NodeFactoryOptions<TriggerNode>) => {
175
+ type: "trigger";
176
+ data: {
177
+ items: {
178
+ type: "intent";
179
+ id: string;
180
+ resourceID: string | null;
181
+ settings: {
182
+ local: boolean;
183
+ };
184
+ mappings?: any;
185
+ }[];
186
+ portsV2: {
187
+ byKey: Record<string, {
188
+ type: string;
189
+ id: string;
190
+ target: string | null;
191
+ data?: {
192
+ type?: "CURVED" | "STRAIGHT" | null | undefined;
193
+ color?: string | null | undefined;
194
+ points?: {
195
+ point: [number, number];
196
+ toTop?: boolean | null | undefined;
197
+ locked?: boolean | null | undefined;
198
+ reversed?: boolean | null | undefined;
199
+ allowedToTop?: boolean | null | undefined;
200
+ }[] | null | undefined;
201
+ caption?: {
202
+ value: string;
203
+ width: number;
204
+ height: number;
205
+ } | null | undefined;
206
+ } | null | undefined;
207
+ }>;
208
+ builtIn: Partial<Record<"fail" | "next" | "pause" | "no-reply" | "else" | "previous", {
209
+ type: string;
210
+ id: string;
211
+ target: string | null;
212
+ data?: {
213
+ type?: "CURVED" | "STRAIGHT" | null | undefined;
214
+ color?: string | null | undefined;
215
+ points?: {
216
+ point: [number, number];
217
+ toTop?: boolean | null | undefined;
218
+ locked?: boolean | null | undefined;
219
+ reversed?: boolean | null | undefined;
220
+ allowedToTop?: boolean | null | undefined;
221
+ }[] | null | undefined;
222
+ caption?: {
223
+ value: string;
224
+ width: number;
225
+ height: number;
226
+ } | null | undefined;
227
+ } | null | undefined;
228
+ }>>;
229
+ dynamic: {
230
+ type: string;
231
+ id: string;
232
+ target: string | null;
233
+ data?: {
234
+ type?: "CURVED" | "STRAIGHT" | null | undefined;
235
+ color?: string | null | undefined;
236
+ points?: {
237
+ point: [number, number];
238
+ toTop?: boolean | null | undefined;
239
+ locked?: boolean | null | undefined;
240
+ reversed?: boolean | null | undefined;
241
+ allowedToTop?: boolean | null | undefined;
242
+ }[] | null | undefined;
243
+ caption?: {
244
+ value: string;
245
+ width: number;
246
+ height: number;
247
+ } | null | undefined;
248
+ } | null | undefined;
249
+ }[];
250
+ };
251
+ name?: string | undefined;
252
+ };
253
+ nodeID: string;
254
+ coords?: [number, number] | undefined;
255
+ };
256
+ export {};
257
+ //# sourceMappingURL=node.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.util.d.ts","sourceRoot":"","sources":["../../src/node.util.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAKtF,eAAO,MAAM,kBAAkB;;;;;;;YAInB,CAAC;AAEb,KAAK,kBAAkB,CAAC,IAAI,SAAS,WAAW,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG;IACzE,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,gBAAgB,+BAAqD,mBAAmB,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAe3G,CAAC;AAEL,eAAO,MAAM,gBAAgB,sBAAuB,mBAAmB,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAU7E,CAAC;AAEL,eAAO,MAAM,kBAAkB,wBAAwB,mBAAmB,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CASlF,CAAC"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.triggerNodeFactory = exports.blockNodeFactory = exports.startNodeFactory = exports.diagramNodeFactory = void 0;
4
+ const common_1 = require("@voiceflow/common");
5
+ const dtos_1 = require("@voiceflow/dtos");
6
+ const node_port_util_1 = require("./node-port.util");
7
+ const diagramNodeFactory = (node) => ({
8
+ ...node,
9
+ nodeID: node.nodeID ?? common_1.Utils.id.objectID(),
10
+ });
11
+ exports.diagramNodeFactory = diagramNodeFactory;
12
+ const startNodeFactory = ({ data, coords = dtos_1.START_NODE_POSITION, ...rest } = {}) => (0, exports.diagramNodeFactory)({
13
+ ...rest,
14
+ type: dtos_1.NodeType.START,
15
+ data: {
16
+ name: data?.name ?? 'Start',
17
+ color: data?.color ?? '#43494E',
18
+ triggers: data?.triggers ?? [],
19
+ portsV2: data?.portsV2 ??
20
+ (0, node_port_util_1.nodePortsFactory)({
21
+ builtIn: { [dtos_1.NodeSystemPortType.NEXT]: (0, node_port_util_1.nodePortFactory)({ type: dtos_1.NodeSystemPortType.NEXT, target: null }) },
22
+ }),
23
+ },
24
+ coords,
25
+ });
26
+ exports.startNodeFactory = startNodeFactory;
27
+ const blockNodeFactory = ({ data, ...rest }) => (0, exports.diagramNodeFactory)({
28
+ ...rest,
29
+ type: dtos_1.NodeType.BLOCK,
30
+ data: {
31
+ name: data?.name ?? '',
32
+ color: data?.color ?? '',
33
+ steps: data?.steps ?? [],
34
+ portsV2: data?.portsV2 ?? (0, node_port_util_1.nodePortsFactory)(),
35
+ },
36
+ });
37
+ exports.blockNodeFactory = blockNodeFactory;
38
+ const triggerNodeFactory = ({ data, ...reset } = {}) => (0, exports.diagramNodeFactory)({
39
+ ...reset,
40
+ type: dtos_1.NodeType.TRIGGER,
41
+ data: {
42
+ name: data?.name ?? '',
43
+ items: data?.items ?? [],
44
+ portsV2: data?.portsV2 ?? (0, node_port_util_1.nodePortsFactory)(),
45
+ },
46
+ });
47
+ exports.triggerNodeFactory = triggerNodeFactory;
@@ -0,0 +1,18 @@
1
+ import type { Diagram } from '@voiceflow/dtos';
2
+ export declare const getUniqueDiagramCopyName: (originalName: string, existingNames: string[]) => string;
3
+ type DiagramPayload = Omit<Diagram, '_id' | 'creatorID' | 'versionID' | 'diagramID'>;
4
+ export declare const componentDiagramPayloadFactory: ({ diagramName, startNodeName, startNodeCoords, }: {
5
+ diagramName: string;
6
+ startNodeName?: string | undefined;
7
+ startNodeCoords?: [number, number] | undefined;
8
+ }) => DiagramPayload;
9
+ export declare const topicDiagramPayloadFactory: ({ diagramName, triggerNodeName, triggerNodeCoords, }: {
10
+ diagramName: string;
11
+ triggerNodeName?: string | undefined;
12
+ triggerNodeCoords?: [number, number] | undefined;
13
+ }) => DiagramPayload;
14
+ export declare const templateDiagramPayloadFactory: ({ name }?: {
15
+ name?: string | undefined;
16
+ }) => DiagramPayload;
17
+ export {};
18
+ //# sourceMappingURL=diagram.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagram.util.d.ts","sourceRoot":"","sources":["../../src/diagram.util.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAe,MAAM,iBAAiB,CAAC;AAK5D,eAAO,MAAM,wBAAwB,iBAAkB,MAAM,iBAAiB,MAAM,EAAE,WAUrF,CAAC;AAQF,KAAK,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC,CAAC;AAiBrF,eAAO,MAAM,8BAA8B;iBAK5B,MAAM;;;oBAQjB,CAAC;AAEL,eAAO,MAAM,0BAA0B;iBAKxB,MAAM;;;oBAcpB,CAAC;AAEF,eAAO,MAAM,6BAA6B;;oBACgD,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { Utils } from '@voiceflow/common';
2
+ import { DiagramType, START_NODE_POSITION } from '@voiceflow/dtos';
3
+ import { blockNodeFactory, startNodeFactory, triggerNodeFactory } from './node.util.js';
4
+ export const getUniqueDiagramCopyName = (originalName, existingNames) => {
5
+ let uniqueName = existingNames.includes(originalName) ? `${originalName} (COPY)` : originalName;
6
+ let index = 1;
7
+ while (existingNames.includes(uniqueName)) {
8
+ uniqueName = `${originalName} (COPY ${index})`;
9
+ index++;
10
+ }
11
+ return uniqueName;
12
+ };
13
+ const diagramPayloadFactory = ({ name, type, nodes, }) => ({
14
+ name,
15
+ type,
16
+ zoom: 100,
17
+ nodes: Object.fromEntries(nodes.map((node) => [node.nodeID, node])),
18
+ offsetX: 0,
19
+ offsetY: 0,
20
+ modified: Utils.time.getCurrentTimestamp(),
21
+ variables: [],
22
+ });
23
+ export const componentDiagramPayloadFactory = ({ diagramName, startNodeName = 'Continue', startNodeCoords = START_NODE_POSITION, }) => diagramPayloadFactory({
24
+ name: diagramName,
25
+ type: DiagramType.COMPONENT,
26
+ nodes: [startNodeFactory({ coords: startNodeCoords, data: { name: startNodeName } })],
27
+ });
28
+ export const topicDiagramPayloadFactory = ({ diagramName, triggerNodeName, triggerNodeCoords = START_NODE_POSITION, }) => {
29
+ const triggerNodeID = Utils.id.objectID();
30
+ return diagramPayloadFactory({
31
+ name: diagramName,
32
+ type: DiagramType.TOPIC,
33
+ nodes: [
34
+ blockNodeFactory({ data: { name: triggerNodeName, steps: [triggerNodeID] }, coords: triggerNodeCoords }),
35
+ triggerNodeFactory({ nodeID: triggerNodeID }),
36
+ ],
37
+ });
38
+ };
39
+ export const templateDiagramPayloadFactory = ({ name = 'Template Diagram' } = {}) => diagramPayloadFactory({ name, type: DiagramType.TEMPLATE, nodes: [startNodeFactory()] });
@@ -1,9 +1,12 @@
1
+ export * from './diagram.util.js';
1
2
  export * from './entity.util.js';
2
3
  export * from './flow.util.js';
3
4
  export * from './folder.util.js';
4
5
  export * from './function.util.js';
5
6
  export * from './intent.util.js';
6
7
  export * from './markup.util.js';
8
+ export * from './node.util.js';
9
+ export * from './node-port.util.js';
7
10
  export * from './request.util.js';
8
11
  export * from './validator/validator.interface.js';
9
12
  export * from './validator/validator.util.js';
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iCAAiC,CAAC;AAChD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iCAAiC,CAAC;AAChD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC"}
package/build/esm/main.js CHANGED
@@ -1,9 +1,12 @@
1
+ export * from './diagram.util.js';
1
2
  export * from './entity.util.js';
2
3
  export * from './flow.util.js';
3
4
  export * from './folder.util.js';
4
5
  export * from './function.util.js';
5
6
  export * from './intent.util.js';
6
7
  export * from './markup.util.js';
8
+ export * from './node.util.js';
9
+ export * from './node-port.util.js';
7
10
  export * from './request.util.js';
8
11
  export * from './validator/validator.interface.js';
9
12
  export * from './validator/validator.util.js';
@@ -0,0 +1,54 @@
1
+ import type { BasePorts, NodePort, NodePortLinkData } from '@voiceflow/dtos';
2
+ export declare const nodePortFactory: <T extends import("@voiceflow/dtos").NodeSystemPortType | (string & {})>({ id, type, data, target, }: {
3
+ id?: string | undefined;
4
+ type: T;
5
+ data?: {
6
+ type?: "CURVED" | "STRAIGHT" | null | undefined;
7
+ color?: string | null | undefined;
8
+ points?: {
9
+ point: [number, number];
10
+ toTop?: boolean | null | undefined;
11
+ locked?: boolean | null | undefined;
12
+ reversed?: boolean | null | undefined;
13
+ allowedToTop?: boolean | null | undefined;
14
+ }[] | null | undefined;
15
+ caption?: {
16
+ value: string;
17
+ width: number;
18
+ height: number;
19
+ } | null | undefined;
20
+ } | undefined;
21
+ target: null;
22
+ }) => Omit<{
23
+ type: string;
24
+ id: string;
25
+ target: string | null;
26
+ data?: {
27
+ type?: "CURVED" | "STRAIGHT" | null | undefined;
28
+ color?: string | null | undefined;
29
+ points?: {
30
+ point: [number, number];
31
+ toTop?: boolean | null | undefined;
32
+ locked?: boolean | null | undefined;
33
+ reversed?: boolean | null | undefined;
34
+ allowedToTop?: boolean | null | undefined;
35
+ }[] | null | undefined;
36
+ caption?: {
37
+ value: string;
38
+ width: number;
39
+ height: number;
40
+ } | null | undefined;
41
+ } | null | undefined;
42
+ }, "type"> & {
43
+ type: import("@voiceflow/dtos").NodeSystemPortType | (string & {});
44
+ } & {
45
+ type: T;
46
+ };
47
+ interface NodePortsFactory {
48
+ <Ports extends BasePorts>(ports: Ports): Ports;
49
+ <Ports extends Partial<BasePorts>>(ports: Ports): Omit<BasePorts, keyof Ports> & Ports;
50
+ (): BasePorts;
51
+ }
52
+ export declare const nodePortsFactory: NodePortsFactory;
53
+ export {};
54
+ //# sourceMappingURL=node-port.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-port.util.d.ts","sourceRoot":"","sources":["../../src/node-port.util.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAE7E,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;YASlB,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;CAMZ,CAAC;AAEH,UAAU,gBAAgB;IACxB,CAAC,KAAK,SAAS,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC;IAE/C,CAAC,KAAK,SAAS,OAAO,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,KAAK,CAAC,GAAG,KAAK,CAAC;IAEvF,IAAI,SAAS,CAAC;CACf;AACD,eAAO,MAAM,gBAAgB,EAAE,gBAK7B,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { Utils } from '@voiceflow/common';
2
+ export const nodePortFactory = ({ id, type, data, target, }) => ({
3
+ id: id ?? Utils.id.objectID(),
4
+ type,
5
+ data,
6
+ target,
7
+ });
8
+ export const nodePortsFactory = (ports = {}) => ({
9
+ byKey: {},
10
+ builtIn: {},
11
+ dynamic: [],
12
+ ...ports,
13
+ });
@@ -0,0 +1,257 @@
1
+ import type { BlockNode, DiagramNode, StartNode, TriggerNode } from '@voiceflow/dtos';
2
+ export declare const diagramNodeFactory: <Node_1 extends {
3
+ type: string;
4
+ data: Record<string, any>;
5
+ nodeID: string;
6
+ coords?: [number, number] | undefined;
7
+ }>(node: Omit<Node_1, "nodeID"> & {
8
+ nodeID?: string | undefined;
9
+ }) => Node_1;
10
+ type NodeFactoryOptions<Node extends DiagramNode> = Pick<Node, 'coords'> & {
11
+ data?: Partial<Node['data']>;
12
+ nodeID?: string;
13
+ };
14
+ export declare const startNodeFactory: ({ data, coords, ...rest }?: NodeFactoryOptions<StartNode>) => {
15
+ type: "start";
16
+ data: {
17
+ portsV2: {
18
+ byKey: Record<string, {
19
+ type: string;
20
+ id: string;
21
+ target: string | null;
22
+ data?: {
23
+ type?: "CURVED" | "STRAIGHT" | null | undefined;
24
+ color?: string | null | undefined;
25
+ points?: {
26
+ point: [number, number];
27
+ toTop?: boolean | null | undefined;
28
+ locked?: boolean | null | undefined;
29
+ reversed?: boolean | null | undefined;
30
+ allowedToTop?: boolean | null | undefined;
31
+ }[] | null | undefined;
32
+ caption?: {
33
+ value: string;
34
+ width: number;
35
+ height: number;
36
+ } | null | undefined;
37
+ } | null | undefined;
38
+ }>;
39
+ builtIn: Partial<Record<"fail" | "next" | "pause" | "no-reply" | "else" | "previous", {
40
+ type: string;
41
+ id: string;
42
+ target: string | null;
43
+ data?: {
44
+ type?: "CURVED" | "STRAIGHT" | null | undefined;
45
+ color?: string | null | undefined;
46
+ points?: {
47
+ point: [number, number];
48
+ toTop?: boolean | null | undefined;
49
+ locked?: boolean | null | undefined;
50
+ reversed?: boolean | null | undefined;
51
+ allowedToTop?: boolean | null | undefined;
52
+ }[] | null | undefined;
53
+ caption?: {
54
+ value: string;
55
+ width: number;
56
+ height: number;
57
+ } | null | undefined;
58
+ } | null | undefined;
59
+ }>>;
60
+ dynamic: {
61
+ type: string;
62
+ id: string;
63
+ target: string | null;
64
+ data?: {
65
+ type?: "CURVED" | "STRAIGHT" | null | undefined;
66
+ color?: string | null | undefined;
67
+ points?: {
68
+ point: [number, number];
69
+ toTop?: boolean | null | undefined;
70
+ locked?: boolean | null | undefined;
71
+ reversed?: boolean | null | undefined;
72
+ allowedToTop?: boolean | null | undefined;
73
+ }[] | null | undefined;
74
+ caption?: {
75
+ value: string;
76
+ width: number;
77
+ height: number;
78
+ } | null | undefined;
79
+ } | null | undefined;
80
+ }[];
81
+ };
82
+ name?: string | undefined;
83
+ label?: string | undefined;
84
+ color?: string | undefined;
85
+ steps?: string[] | undefined;
86
+ triggers?: {
87
+ type: "intent";
88
+ id: string;
89
+ resourceID: string | null;
90
+ settings: {
91
+ local: boolean;
92
+ };
93
+ mappings?: any;
94
+ }[] | undefined;
95
+ };
96
+ nodeID: string;
97
+ coords?: [number, number] | undefined;
98
+ };
99
+ export declare const blockNodeFactory: ({ data, ...rest }: NodeFactoryOptions<BlockNode>) => {
100
+ type: "block";
101
+ data: {
102
+ name: string;
103
+ color: string;
104
+ portsV2: {
105
+ byKey: Record<string, {
106
+ type: string;
107
+ id: string;
108
+ target: string | null;
109
+ data?: {
110
+ type?: "CURVED" | "STRAIGHT" | null | undefined;
111
+ color?: string | null | undefined;
112
+ points?: {
113
+ point: [number, number];
114
+ toTop?: boolean | null | undefined;
115
+ locked?: boolean | null | undefined;
116
+ reversed?: boolean | null | undefined;
117
+ allowedToTop?: boolean | null | undefined;
118
+ }[] | null | undefined;
119
+ caption?: {
120
+ value: string;
121
+ width: number;
122
+ height: number;
123
+ } | null | undefined;
124
+ } | null | undefined;
125
+ }>;
126
+ builtIn: Partial<Record<"fail" | "next" | "pause" | "no-reply" | "else" | "previous", {
127
+ type: string;
128
+ id: string;
129
+ target: string | null;
130
+ data?: {
131
+ type?: "CURVED" | "STRAIGHT" | null | undefined;
132
+ color?: string | null | undefined;
133
+ points?: {
134
+ point: [number, number];
135
+ toTop?: boolean | null | undefined;
136
+ locked?: boolean | null | undefined;
137
+ reversed?: boolean | null | undefined;
138
+ allowedToTop?: boolean | null | undefined;
139
+ }[] | null | undefined;
140
+ caption?: {
141
+ value: string;
142
+ width: number;
143
+ height: number;
144
+ } | null | undefined;
145
+ } | null | undefined;
146
+ }>>;
147
+ dynamic: {
148
+ type: string;
149
+ id: string;
150
+ target: string | null;
151
+ data?: {
152
+ type?: "CURVED" | "STRAIGHT" | null | undefined;
153
+ color?: string | null | undefined;
154
+ points?: {
155
+ point: [number, number];
156
+ toTop?: boolean | null | undefined;
157
+ locked?: boolean | null | undefined;
158
+ reversed?: boolean | null | undefined;
159
+ allowedToTop?: boolean | null | undefined;
160
+ }[] | null | undefined;
161
+ caption?: {
162
+ value: string;
163
+ width: number;
164
+ height: number;
165
+ } | null | undefined;
166
+ } | null | undefined;
167
+ }[];
168
+ };
169
+ steps: string[];
170
+ };
171
+ nodeID: string;
172
+ coords: [number, number];
173
+ };
174
+ export declare const triggerNodeFactory: ({ data, ...reset }?: NodeFactoryOptions<TriggerNode>) => {
175
+ type: "trigger";
176
+ data: {
177
+ items: {
178
+ type: "intent";
179
+ id: string;
180
+ resourceID: string | null;
181
+ settings: {
182
+ local: boolean;
183
+ };
184
+ mappings?: any;
185
+ }[];
186
+ portsV2: {
187
+ byKey: Record<string, {
188
+ type: string;
189
+ id: string;
190
+ target: string | null;
191
+ data?: {
192
+ type?: "CURVED" | "STRAIGHT" | null | undefined;
193
+ color?: string | null | undefined;
194
+ points?: {
195
+ point: [number, number];
196
+ toTop?: boolean | null | undefined;
197
+ locked?: boolean | null | undefined;
198
+ reversed?: boolean | null | undefined;
199
+ allowedToTop?: boolean | null | undefined;
200
+ }[] | null | undefined;
201
+ caption?: {
202
+ value: string;
203
+ width: number;
204
+ height: number;
205
+ } | null | undefined;
206
+ } | null | undefined;
207
+ }>;
208
+ builtIn: Partial<Record<"fail" | "next" | "pause" | "no-reply" | "else" | "previous", {
209
+ type: string;
210
+ id: string;
211
+ target: string | null;
212
+ data?: {
213
+ type?: "CURVED" | "STRAIGHT" | null | undefined;
214
+ color?: string | null | undefined;
215
+ points?: {
216
+ point: [number, number];
217
+ toTop?: boolean | null | undefined;
218
+ locked?: boolean | null | undefined;
219
+ reversed?: boolean | null | undefined;
220
+ allowedToTop?: boolean | null | undefined;
221
+ }[] | null | undefined;
222
+ caption?: {
223
+ value: string;
224
+ width: number;
225
+ height: number;
226
+ } | null | undefined;
227
+ } | null | undefined;
228
+ }>>;
229
+ dynamic: {
230
+ type: string;
231
+ id: string;
232
+ target: string | null;
233
+ data?: {
234
+ type?: "CURVED" | "STRAIGHT" | null | undefined;
235
+ color?: string | null | undefined;
236
+ points?: {
237
+ point: [number, number];
238
+ toTop?: boolean | null | undefined;
239
+ locked?: boolean | null | undefined;
240
+ reversed?: boolean | null | undefined;
241
+ allowedToTop?: boolean | null | undefined;
242
+ }[] | null | undefined;
243
+ caption?: {
244
+ value: string;
245
+ width: number;
246
+ height: number;
247
+ } | null | undefined;
248
+ } | null | undefined;
249
+ }[];
250
+ };
251
+ name?: string | undefined;
252
+ };
253
+ nodeID: string;
254
+ coords?: [number, number] | undefined;
255
+ };
256
+ export {};
257
+ //# sourceMappingURL=node.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.util.d.ts","sourceRoot":"","sources":["../../src/node.util.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAKtF,eAAO,MAAM,kBAAkB;;;;;;;YAInB,CAAC;AAEb,KAAK,kBAAkB,CAAC,IAAI,SAAS,WAAW,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG;IACzE,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,gBAAgB,+BAAqD,mBAAmB,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAe3G,CAAC;AAEL,eAAO,MAAM,gBAAgB,sBAAuB,mBAAmB,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAU7E,CAAC;AAEL,eAAO,MAAM,kBAAkB,wBAAwB,mBAAmB,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CASlF,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { Utils } from '@voiceflow/common';
2
+ import { NodeSystemPortType, NodeType, START_NODE_POSITION } from '@voiceflow/dtos';
3
+ import { nodePortFactory, nodePortsFactory } from './node-port.util.js';
4
+ export const diagramNodeFactory = (node) => ({
5
+ ...node,
6
+ nodeID: node.nodeID ?? Utils.id.objectID(),
7
+ });
8
+ export const startNodeFactory = ({ data, coords = START_NODE_POSITION, ...rest } = {}) => diagramNodeFactory({
9
+ ...rest,
10
+ type: NodeType.START,
11
+ data: {
12
+ name: data?.name ?? 'Start',
13
+ color: data?.color ?? '#43494E',
14
+ triggers: data?.triggers ?? [],
15
+ portsV2: data?.portsV2 ??
16
+ nodePortsFactory({
17
+ builtIn: { [NodeSystemPortType.NEXT]: nodePortFactory({ type: NodeSystemPortType.NEXT, target: null }) },
18
+ }),
19
+ },
20
+ coords,
21
+ });
22
+ export const blockNodeFactory = ({ data, ...rest }) => diagramNodeFactory({
23
+ ...rest,
24
+ type: NodeType.BLOCK,
25
+ data: {
26
+ name: data?.name ?? '',
27
+ color: data?.color ?? '',
28
+ steps: data?.steps ?? [],
29
+ portsV2: data?.portsV2 ?? nodePortsFactory(),
30
+ },
31
+ });
32
+ export const triggerNodeFactory = ({ data, ...reset } = {}) => diagramNodeFactory({
33
+ ...reset,
34
+ type: NodeType.TRIGGER,
35
+ data: {
36
+ name: data?.name ?? '',
37
+ items: data?.items ?? [],
38
+ portsV2: data?.portsV2 ?? nodePortsFactory(),
39
+ },
40
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voiceflow/utils-designer",
3
- "version": "1.17.4",
3
+ "version": "1.18.1",
4
4
  "exports": {
5
5
  ".": {
6
6
  "types": "./build/cjs/main.d.ts",
@@ -31,7 +31,7 @@
31
31
  },
32
32
  "dependencies": {
33
33
  "@voiceflow/common": "8.2.8",
34
- "@voiceflow/dtos": "1.73.1",
34
+ "@voiceflow/dtos": "1.75.0",
35
35
  "bidirectional-adapter": "1.2.1",
36
36
  "ts-pattern": "5.0.5",
37
37
  "zod": "3.22.4"
@@ -42,5 +42,5 @@
42
42
  "volta": {
43
43
  "extends": "../../package.json"
44
44
  },
45
- "gitHead": "ba328bfa5d7a14af42158e4cc63c6fbce490158f"
45
+ "gitHead": "ae3b1ec477850b28c8f4c608cd959ec90bc0c48b"
46
46
  }