@scenario-labs/sdk 1.2.0 → 2.1.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 (308) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/api-promise.d.mts +1 -0
  3. package/api-promise.d.mts.map +1 -1
  4. package/api-promise.d.ts +1 -0
  5. package/api-promise.d.ts.map +1 -1
  6. package/api-promise.mjs +1 -0
  7. package/api-promise.mjs.map +1 -1
  8. package/client.d.mts.map +1 -1
  9. package/client.d.ts.map +1 -1
  10. package/client.js +51 -38
  11. package/client.js.map +1 -1
  12. package/client.mjs +51 -39
  13. package/client.mjs.map +1 -1
  14. package/core/api-promise.d.mts.map +1 -1
  15. package/core/api-promise.d.ts.map +1 -1
  16. package/core/api-promise.js +7 -7
  17. package/core/api-promise.js.map +1 -1
  18. package/core/api-promise.mjs +7 -7
  19. package/core/api-promise.mjs.map +1 -1
  20. package/core/error.js +6 -0
  21. package/core/error.js.map +1 -1
  22. package/core/error.mjs +6 -0
  23. package/core/error.mjs.map +1 -1
  24. package/core/pagination.d.mts.map +1 -1
  25. package/core/pagination.d.ts.map +1 -1
  26. package/core/pagination.js +24 -6
  27. package/core/pagination.js.map +1 -1
  28. package/core/pagination.mjs +24 -6
  29. package/core/pagination.mjs.map +1 -1
  30. package/core/resource.d.mts.map +1 -1
  31. package/core/resource.d.ts.map +1 -1
  32. package/core/resource.js +1 -0
  33. package/core/resource.js.map +1 -1
  34. package/core/resource.mjs +1 -0
  35. package/core/resource.mjs.map +1 -1
  36. package/core/uploads.d.mts.map +1 -1
  37. package/core/uploads.d.ts.map +1 -1
  38. package/core/uploads.mjs.map +1 -1
  39. package/error.d.mts +1 -0
  40. package/error.d.mts.map +1 -1
  41. package/error.d.ts +1 -0
  42. package/error.d.ts.map +1 -1
  43. package/error.mjs +1 -0
  44. package/error.mjs.map +1 -1
  45. package/index.d.mts +1 -0
  46. package/index.d.mts.map +1 -1
  47. package/index.d.ts +1 -0
  48. package/index.d.ts.map +1 -1
  49. package/index.js +3 -1
  50. package/index.js.map +1 -1
  51. package/index.mjs +1 -0
  52. package/index.mjs.map +1 -1
  53. package/internal/detect-platform.js +1 -1
  54. package/internal/detect-platform.js.map +1 -1
  55. package/internal/detect-platform.mjs +1 -1
  56. package/internal/detect-platform.mjs.map +1 -1
  57. package/internal/headers.mjs.map +1 -1
  58. package/internal/parse.d.mts.map +1 -1
  59. package/internal/parse.d.ts.map +1 -1
  60. package/internal/parse.mjs.map +1 -1
  61. package/internal/qs/formats.d.mts.map +1 -1
  62. package/internal/qs/formats.d.ts.map +1 -1
  63. package/internal/qs/index.d.mts +2 -2
  64. package/internal/qs/index.d.mts.map +1 -1
  65. package/internal/qs/index.d.ts +2 -2
  66. package/internal/qs/index.d.ts.map +1 -1
  67. package/internal/qs/index.mjs.map +1 -1
  68. package/internal/qs/stringify.d.mts.map +1 -1
  69. package/internal/qs/stringify.d.ts.map +1 -1
  70. package/internal/qs/stringify.js +1 -1
  71. package/internal/qs/stringify.js.map +1 -1
  72. package/internal/qs/stringify.mjs +1 -1
  73. package/internal/qs/stringify.mjs.map +1 -1
  74. package/internal/qs/utils.d.mts.map +1 -1
  75. package/internal/qs/utils.d.ts.map +1 -1
  76. package/internal/qs/utils.mjs.map +1 -1
  77. package/internal/request-options.d.mts.map +1 -1
  78. package/internal/request-options.d.ts.map +1 -1
  79. package/internal/shims.d.mts +6 -0
  80. package/internal/shims.d.mts.map +1 -1
  81. package/internal/shims.d.ts +6 -0
  82. package/internal/shims.d.ts.map +1 -1
  83. package/internal/to-file.d.mts.map +1 -1
  84. package/internal/to-file.d.ts.map +1 -1
  85. package/internal/to-file.js +2 -2
  86. package/internal/to-file.js.map +1 -1
  87. package/internal/to-file.mjs +2 -2
  88. package/internal/to-file.mjs.map +1 -1
  89. package/internal/tslib.js +0 -18
  90. package/internal/tslib.mjs +1 -17
  91. package/internal/types.d.mts +10 -10
  92. package/internal/types.d.mts.map +1 -1
  93. package/internal/types.d.ts +10 -10
  94. package/internal/types.d.ts.map +1 -1
  95. package/internal/uploads.d.mts.map +1 -1
  96. package/internal/uploads.d.ts.map +1 -1
  97. package/internal/uploads.mjs.map +1 -1
  98. package/internal/utils/base64.mjs.map +1 -1
  99. package/internal/utils/log.d.mts.map +1 -1
  100. package/internal/utils/log.d.ts.map +1 -1
  101. package/internal/utils/log.js +2 -0
  102. package/internal/utils/log.js.map +1 -1
  103. package/internal/utils/log.mjs +2 -0
  104. package/internal/utils/log.mjs.map +1 -1
  105. package/internal/utils/path.mjs.map +1 -1
  106. package/internal/utils/query.mjs.map +1 -1
  107. package/internal/utils/values.mjs.map +1 -1
  108. package/internal/utils.d.mts.map +1 -1
  109. package/internal/utils.d.ts.map +1 -1
  110. package/internal/utils.mjs.map +1 -1
  111. package/lib/asset.d.mts.map +1 -1
  112. package/lib/asset.d.ts.map +1 -1
  113. package/lib/asset.mjs.map +1 -1
  114. package/lib/generate.d.mts.map +1 -1
  115. package/lib/generate.d.ts.map +1 -1
  116. package/lib/generate.mjs.map +1 -1
  117. package/lib/job.d.mts.map +1 -1
  118. package/lib/job.d.ts.map +1 -1
  119. package/lib/job.js +3 -3
  120. package/lib/job.js.map +1 -1
  121. package/lib/job.mjs +3 -3
  122. package/lib/job.mjs.map +1 -1
  123. package/lib/models.d.mts.map +1 -1
  124. package/lib/models.d.ts.map +1 -1
  125. package/lib/models.js +1 -4
  126. package/lib/models.js.map +1 -1
  127. package/lib/models.mjs +1 -4
  128. package/lib/models.mjs.map +1 -1
  129. package/lib/scenario.d.mts.map +1 -1
  130. package/lib/scenario.d.ts.map +1 -1
  131. package/lib/scenario.js +6 -9
  132. package/lib/scenario.js.map +1 -1
  133. package/lib/scenario.mjs +6 -9
  134. package/lib/scenario.mjs.map +1 -1
  135. package/lib/upload.d.mts.map +1 -1
  136. package/lib/upload.d.ts.map +1 -1
  137. package/lib/upload.js +6 -6
  138. package/lib/upload.js.map +1 -1
  139. package/lib/upload.mjs +6 -6
  140. package/lib/upload.mjs.map +1 -1
  141. package/lib/workflow.d.mts.map +1 -1
  142. package/lib/workflow.d.ts.map +1 -1
  143. package/lib/workflow.mjs.map +1 -1
  144. package/lib/workflow_converter.d.mts +185 -0
  145. package/lib/workflow_converter.d.mts.map +1 -0
  146. package/lib/workflow_converter.d.ts +185 -0
  147. package/lib/workflow_converter.d.ts.map +1 -0
  148. package/lib/workflow_converter.js +1102 -0
  149. package/lib/workflow_converter.js.map +1 -0
  150. package/lib/workflow_converter.mjs +1099 -0
  151. package/lib/workflow_converter.mjs.map +1 -0
  152. package/package.json +1 -1
  153. package/pagination.d.mts +1 -0
  154. package/pagination.d.mts.map +1 -1
  155. package/pagination.d.ts +1 -0
  156. package/pagination.d.ts.map +1 -1
  157. package/pagination.mjs +1 -0
  158. package/pagination.mjs.map +1 -1
  159. package/resource.d.mts +1 -0
  160. package/resource.d.mts.map +1 -1
  161. package/resource.d.ts +1 -0
  162. package/resource.d.ts.map +1 -1
  163. package/resource.mjs +1 -0
  164. package/resource.mjs.map +1 -1
  165. package/resources/assets/assets.d.mts +12 -0
  166. package/resources/assets/assets.d.mts.map +1 -1
  167. package/resources/assets/assets.d.ts +12 -0
  168. package/resources/assets/assets.d.ts.map +1 -1
  169. package/resources/assets/assets.js +1 -4
  170. package/resources/assets/assets.js.map +1 -1
  171. package/resources/assets/assets.mjs +1 -4
  172. package/resources/assets/assets.mjs.map +1 -1
  173. package/resources/assets/download.d.mts.map +1 -1
  174. package/resources/assets/download.d.ts.map +1 -1
  175. package/resources/assets/download.mjs.map +1 -1
  176. package/resources/assets/index.d.mts.map +1 -1
  177. package/resources/assets/index.d.ts.map +1 -1
  178. package/resources/assets/index.mjs.map +1 -1
  179. package/resources/assets.d.mts.map +1 -1
  180. package/resources/assets.d.ts.map +1 -1
  181. package/resources/assets.mjs.map +1 -1
  182. package/resources/collections/assets.d.mts.map +1 -1
  183. package/resources/collections/assets.d.ts.map +1 -1
  184. package/resources/collections/assets.mjs.map +1 -1
  185. package/resources/collections/collections.d.mts.map +1 -1
  186. package/resources/collections/collections.d.ts.map +1 -1
  187. package/resources/collections/collections.js +2 -5
  188. package/resources/collections/collections.js.map +1 -1
  189. package/resources/collections/collections.mjs +2 -5
  190. package/resources/collections/collections.mjs.map +1 -1
  191. package/resources/collections/index.d.mts.map +1 -1
  192. package/resources/collections/index.d.ts.map +1 -1
  193. package/resources/collections/index.mjs.map +1 -1
  194. package/resources/collections/models.d.mts.map +1 -1
  195. package/resources/collections/models.d.ts.map +1 -1
  196. package/resources/collections/models.mjs.map +1 -1
  197. package/resources/collections.d.mts.map +1 -1
  198. package/resources/collections.d.ts.map +1 -1
  199. package/resources/collections.mjs.map +1 -1
  200. package/resources/generate.d.mts +96 -0
  201. package/resources/generate.d.mts.map +1 -1
  202. package/resources/generate.d.ts +96 -0
  203. package/resources/generate.d.ts.map +1 -1
  204. package/resources/generate.mjs.map +1 -1
  205. package/resources/index.d.mts.map +1 -1
  206. package/resources/index.d.ts.map +1 -1
  207. package/resources/index.mjs.map +1 -1
  208. package/resources/jobs.d.mts +36 -0
  209. package/resources/jobs.d.mts.map +1 -1
  210. package/resources/jobs.d.ts +36 -0
  211. package/resources/jobs.d.ts.map +1 -1
  212. package/resources/jobs.mjs.map +1 -1
  213. package/resources/models/description.d.mts.map +1 -1
  214. package/resources/models/description.d.ts.map +1 -1
  215. package/resources/models/description.mjs.map +1 -1
  216. package/resources/models/examples.d.mts +24 -0
  217. package/resources/models/examples.d.mts.map +1 -1
  218. package/resources/models/examples.d.ts +24 -0
  219. package/resources/models/examples.d.ts.map +1 -1
  220. package/resources/models/examples.mjs.map +1 -1
  221. package/resources/models/index.d.mts.map +1 -1
  222. package/resources/models/index.d.ts.map +1 -1
  223. package/resources/models/index.mjs.map +1 -1
  224. package/resources/models/models.d.mts +42 -0
  225. package/resources/models/models.d.mts.map +1 -1
  226. package/resources/models/models.d.ts +42 -0
  227. package/resources/models/models.d.ts.map +1 -1
  228. package/resources/models/models.js +4 -7
  229. package/resources/models/models.js.map +1 -1
  230. package/resources/models/models.mjs +4 -7
  231. package/resources/models/models.mjs.map +1 -1
  232. package/resources/models/train.d.mts +24 -0
  233. package/resources/models/train.d.mts.map +1 -1
  234. package/resources/models/train.d.ts +24 -0
  235. package/resources/models/train.d.ts.map +1 -1
  236. package/resources/models/train.mjs.map +1 -1
  237. package/resources/models/training-images.d.mts.map +1 -1
  238. package/resources/models/training-images.d.ts.map +1 -1
  239. package/resources/models/training-images.mjs.map +1 -1
  240. package/resources/models.d.mts.map +1 -1
  241. package/resources/models.d.ts.map +1 -1
  242. package/resources/models.mjs.map +1 -1
  243. package/resources/oscu.d.mts.map +1 -1
  244. package/resources/oscu.d.ts.map +1 -1
  245. package/resources/oscu.mjs.map +1 -1
  246. package/resources/pricing/index.d.mts.map +1 -1
  247. package/resources/pricing/index.d.ts.map +1 -1
  248. package/resources/pricing/index.mjs.map +1 -1
  249. package/resources/pricing/oscu.d.mts.map +1 -1
  250. package/resources/pricing/oscu.d.ts.map +1 -1
  251. package/resources/pricing/oscu.mjs.map +1 -1
  252. package/resources/pricing/pricing.d.mts.map +1 -1
  253. package/resources/pricing/pricing.d.ts.map +1 -1
  254. package/resources/pricing/pricing.js +1 -4
  255. package/resources/pricing/pricing.js.map +1 -1
  256. package/resources/pricing/pricing.mjs +1 -4
  257. package/resources/pricing/pricing.mjs.map +1 -1
  258. package/resources/pricing.d.mts.map +1 -1
  259. package/resources/pricing.d.ts.map +1 -1
  260. package/resources/pricing.mjs.map +1 -1
  261. package/resources/search.d.mts.map +1 -1
  262. package/resources/search.d.ts.map +1 -1
  263. package/resources/search.mjs.map +1 -1
  264. package/resources/tags.d.mts.map +1 -1
  265. package/resources/tags.d.ts.map +1 -1
  266. package/resources/tags.mjs.map +1 -1
  267. package/resources/uploads.d.mts.map +1 -1
  268. package/resources/uploads.d.ts.map +1 -1
  269. package/resources/uploads.mjs.map +1 -1
  270. package/resources/usages.d.mts +23 -0
  271. package/resources/usages.d.mts.map +1 -1
  272. package/resources/usages.d.ts +23 -0
  273. package/resources/usages.d.ts.map +1 -1
  274. package/resources/usages.mjs.map +1 -1
  275. package/resources/workflows.d.mts +132 -0
  276. package/resources/workflows.d.mts.map +1 -1
  277. package/resources/workflows.d.ts +132 -0
  278. package/resources/workflows.d.ts.map +1 -1
  279. package/resources/workflows.js +4 -7
  280. package/resources/workflows.js.map +1 -1
  281. package/resources/workflows.mjs +4 -7
  282. package/resources/workflows.mjs.map +1 -1
  283. package/resources.d.mts.map +1 -1
  284. package/resources.d.ts.map +1 -1
  285. package/resources.mjs.map +1 -1
  286. package/src/index.ts +14 -0
  287. package/src/internal/types.ts +6 -8
  288. package/src/internal/utils/log.ts +2 -0
  289. package/src/lib/workflow_converter.ts +1402 -0
  290. package/src/resources/assets/assets.ts +14 -0
  291. package/src/resources/generate.ts +112 -0
  292. package/src/resources/jobs.ts +42 -0
  293. package/src/resources/models/examples.ts +28 -0
  294. package/src/resources/models/models.ts +49 -0
  295. package/src/resources/models/train.ts +28 -0
  296. package/src/resources/usages.ts +26 -0
  297. package/src/resources/workflows.ts +154 -0
  298. package/src/version.ts +1 -1
  299. package/uploads.d.mts +1 -0
  300. package/uploads.d.mts.map +1 -1
  301. package/uploads.d.ts +1 -0
  302. package/uploads.d.ts.map +1 -1
  303. package/uploads.mjs +1 -0
  304. package/uploads.mjs.map +1 -1
  305. package/version.d.mts +1 -1
  306. package/version.d.ts +1 -1
  307. package/version.js +1 -1
  308. package/version.mjs +1 -1
@@ -0,0 +1,185 @@
1
+ export type WorkflowEditorHandleInput = {
2
+ id: string;
3
+ label?: string;
4
+ name?: string;
5
+ type?: string | string[];
6
+ subHandles?: WorkflowEditorHandleInput[];
7
+ };
8
+ export type WorkflowEditorHandleOutput = {
9
+ id: string;
10
+ name?: string;
11
+ type?: string;
12
+ isArray?: boolean;
13
+ };
14
+ type NodeCommonData = {
15
+ isInput?: boolean;
16
+ isOutput?: boolean;
17
+ inputHandles?: WorkflowEditorHandleInput[];
18
+ outputHandles?: WorkflowEditorHandleOutput[];
19
+ };
20
+ export type WorkflowEditorNode = {
21
+ id: string;
22
+ type: 'model';
23
+ data: NodeCommonData & {
24
+ modelId?: string;
25
+ type?: string;
26
+ form?: Record<string, unknown>;
27
+ };
28
+ } | {
29
+ id: string;
30
+ type: 'llm';
31
+ data: NodeCommonData & {
32
+ modelId?: string;
33
+ form?: Record<string, unknown>;
34
+ };
35
+ } | {
36
+ id: string;
37
+ type: 'text';
38
+ data: NodeCommonData & {
39
+ value?: string;
40
+ };
41
+ } | {
42
+ id: string;
43
+ type: 'asset';
44
+ data: NodeCommonData & {
45
+ type?: string;
46
+ value?: string | string[];
47
+ isMultiple?: boolean;
48
+ isRequired?: boolean;
49
+ valueFirstFrame?: string;
50
+ valueLastFrame?: string;
51
+ };
52
+ } | {
53
+ id: string;
54
+ type: 'transformText';
55
+ data: NodeCommonData & {
56
+ value?: string;
57
+ };
58
+ } | {
59
+ id: string;
60
+ type: 'splitText';
61
+ data: NodeCommonData & {
62
+ splitDelimiter?: string;
63
+ };
64
+ } | {
65
+ id: string;
66
+ type: 'groupItems';
67
+ data: NodeCommonData & {
68
+ value?: string;
69
+ };
70
+ } | {
71
+ id: string;
72
+ type: 'sliceAssets';
73
+ data: NodeCommonData & {
74
+ from?: number | string;
75
+ count?: number | string;
76
+ };
77
+ } | {
78
+ id: string;
79
+ type: 'forEach';
80
+ data: NodeCommonData;
81
+ } | {
82
+ id: string;
83
+ type: 'forEachEnd';
84
+ data: NodeCommonData & {
85
+ parentNodeId?: string;
86
+ };
87
+ } | {
88
+ id: string;
89
+ type: 'ifElse';
90
+ data: NodeCommonData & {
91
+ conditionBlocks?: WorkflowEditorConditionBlock[];
92
+ };
93
+ } | {
94
+ id: string;
95
+ type: 'approval';
96
+ data: NodeCommonData & {
97
+ message?: string;
98
+ };
99
+ } | {
100
+ id: string;
101
+ type: string;
102
+ data: NodeCommonData;
103
+ };
104
+ export type WorkflowEditorEdge = {
105
+ source: string;
106
+ target: string;
107
+ sourceHandle?: string | null;
108
+ targetHandle?: string | null;
109
+ data?: {
110
+ isForEachEndEdge?: boolean;
111
+ } | undefined;
112
+ };
113
+ export type WorkflowEditorCondition = {
114
+ field: string | undefined;
115
+ operator: string;
116
+ value?: string | string[];
117
+ };
118
+ export type WorkflowEditorConditionBlock = {
119
+ conditions: WorkflowEditorCondition[];
120
+ logic: 'and' | 'or';
121
+ };
122
+ export type WorkflowEditorModelInput = {
123
+ name: string;
124
+ type: string;
125
+ inputs?: Array<{
126
+ name: string;
127
+ type: string;
128
+ }>;
129
+ };
130
+ export type WorkflowEditorModel = {
131
+ id?: string;
132
+ inputs?: WorkflowEditorModelInput[];
133
+ tags?: string[];
134
+ };
135
+ export type WorkflowEditorFlowInputRef = {
136
+ equal?: string | undefined;
137
+ node?: string | undefined;
138
+ conditional?: string[] | undefined;
139
+ name?: string | undefined;
140
+ };
141
+ export type WorkflowEditorFlowInput = {
142
+ name: string;
143
+ type: string;
144
+ ref?: WorkflowEditorFlowInputRef | undefined;
145
+ value?: string | number | string[] | boolean | undefined;
146
+ items?: WorkflowEditorFlowInput[][] | undefined;
147
+ };
148
+ export type WorkflowEditorFlowItem = {
149
+ id: string;
150
+ type: string;
151
+ modelId?: string | undefined;
152
+ inputs?: WorkflowEditorFlowInput[] | undefined;
153
+ logic?: {
154
+ transform?: string | undefined;
155
+ cases?: {
156
+ condition: string;
157
+ value: string;
158
+ }[] | undefined;
159
+ default?: string | undefined;
160
+ } | undefined;
161
+ logicType?: 'if-else' | undefined;
162
+ loopBodyNodeIds?: string[] | undefined;
163
+ includeOutputsInWorkflowJob?: true | undefined;
164
+ dependsOn?: string[] | undefined;
165
+ label?: string | undefined;
166
+ };
167
+ /**
168
+ * Converts a workflow editor state (nodes, edges, inputKeys) into a flow array
169
+ * ready to be passed to `client.workflows.update({ flow: ... })`.
170
+ *
171
+ * @example
172
+ * ```ts
173
+ * const flow = convertWorkflowEditorToFlow({ nodes, edges, inputKeys, getModel });
174
+ * await client.workflows.update(workflowId, { flow: flow as WorkflowUpdateParams.Flow[] });
175
+ * ```
176
+ */
177
+ export declare function convertWorkflowEditorToFlow(params: {
178
+ nodes: WorkflowEditorNode[];
179
+ edges: WorkflowEditorEdge[];
180
+ inputKeys: string[];
181
+ /** Optional model resolver — return the model object, 'unknown', or undefined. */
182
+ getModel?: (modelId: string) => WorkflowEditorModel | 'unknown' | undefined;
183
+ }): WorkflowEditorFlowItem[];
184
+ export {};
185
+ //# sourceMappingURL=workflow_converter.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow_converter.d.mts","sourceRoot":"","sources":["../src/lib/workflow_converter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,185 @@
1
+ export type WorkflowEditorHandleInput = {
2
+ id: string;
3
+ label?: string;
4
+ name?: string;
5
+ type?: string | string[];
6
+ subHandles?: WorkflowEditorHandleInput[];
7
+ };
8
+ export type WorkflowEditorHandleOutput = {
9
+ id: string;
10
+ name?: string;
11
+ type?: string;
12
+ isArray?: boolean;
13
+ };
14
+ type NodeCommonData = {
15
+ isInput?: boolean;
16
+ isOutput?: boolean;
17
+ inputHandles?: WorkflowEditorHandleInput[];
18
+ outputHandles?: WorkflowEditorHandleOutput[];
19
+ };
20
+ export type WorkflowEditorNode = {
21
+ id: string;
22
+ type: 'model';
23
+ data: NodeCommonData & {
24
+ modelId?: string;
25
+ type?: string;
26
+ form?: Record<string, unknown>;
27
+ };
28
+ } | {
29
+ id: string;
30
+ type: 'llm';
31
+ data: NodeCommonData & {
32
+ modelId?: string;
33
+ form?: Record<string, unknown>;
34
+ };
35
+ } | {
36
+ id: string;
37
+ type: 'text';
38
+ data: NodeCommonData & {
39
+ value?: string;
40
+ };
41
+ } | {
42
+ id: string;
43
+ type: 'asset';
44
+ data: NodeCommonData & {
45
+ type?: string;
46
+ value?: string | string[];
47
+ isMultiple?: boolean;
48
+ isRequired?: boolean;
49
+ valueFirstFrame?: string;
50
+ valueLastFrame?: string;
51
+ };
52
+ } | {
53
+ id: string;
54
+ type: 'transformText';
55
+ data: NodeCommonData & {
56
+ value?: string;
57
+ };
58
+ } | {
59
+ id: string;
60
+ type: 'splitText';
61
+ data: NodeCommonData & {
62
+ splitDelimiter?: string;
63
+ };
64
+ } | {
65
+ id: string;
66
+ type: 'groupItems';
67
+ data: NodeCommonData & {
68
+ value?: string;
69
+ };
70
+ } | {
71
+ id: string;
72
+ type: 'sliceAssets';
73
+ data: NodeCommonData & {
74
+ from?: number | string;
75
+ count?: number | string;
76
+ };
77
+ } | {
78
+ id: string;
79
+ type: 'forEach';
80
+ data: NodeCommonData;
81
+ } | {
82
+ id: string;
83
+ type: 'forEachEnd';
84
+ data: NodeCommonData & {
85
+ parentNodeId?: string;
86
+ };
87
+ } | {
88
+ id: string;
89
+ type: 'ifElse';
90
+ data: NodeCommonData & {
91
+ conditionBlocks?: WorkflowEditorConditionBlock[];
92
+ };
93
+ } | {
94
+ id: string;
95
+ type: 'approval';
96
+ data: NodeCommonData & {
97
+ message?: string;
98
+ };
99
+ } | {
100
+ id: string;
101
+ type: string;
102
+ data: NodeCommonData;
103
+ };
104
+ export type WorkflowEditorEdge = {
105
+ source: string;
106
+ target: string;
107
+ sourceHandle?: string | null;
108
+ targetHandle?: string | null;
109
+ data?: {
110
+ isForEachEndEdge?: boolean;
111
+ } | undefined;
112
+ };
113
+ export type WorkflowEditorCondition = {
114
+ field: string | undefined;
115
+ operator: string;
116
+ value?: string | string[];
117
+ };
118
+ export type WorkflowEditorConditionBlock = {
119
+ conditions: WorkflowEditorCondition[];
120
+ logic: 'and' | 'or';
121
+ };
122
+ export type WorkflowEditorModelInput = {
123
+ name: string;
124
+ type: string;
125
+ inputs?: Array<{
126
+ name: string;
127
+ type: string;
128
+ }>;
129
+ };
130
+ export type WorkflowEditorModel = {
131
+ id?: string;
132
+ inputs?: WorkflowEditorModelInput[];
133
+ tags?: string[];
134
+ };
135
+ export type WorkflowEditorFlowInputRef = {
136
+ equal?: string | undefined;
137
+ node?: string | undefined;
138
+ conditional?: string[] | undefined;
139
+ name?: string | undefined;
140
+ };
141
+ export type WorkflowEditorFlowInput = {
142
+ name: string;
143
+ type: string;
144
+ ref?: WorkflowEditorFlowInputRef | undefined;
145
+ value?: string | number | string[] | boolean | undefined;
146
+ items?: WorkflowEditorFlowInput[][] | undefined;
147
+ };
148
+ export type WorkflowEditorFlowItem = {
149
+ id: string;
150
+ type: string;
151
+ modelId?: string | undefined;
152
+ inputs?: WorkflowEditorFlowInput[] | undefined;
153
+ logic?: {
154
+ transform?: string | undefined;
155
+ cases?: {
156
+ condition: string;
157
+ value: string;
158
+ }[] | undefined;
159
+ default?: string | undefined;
160
+ } | undefined;
161
+ logicType?: 'if-else' | undefined;
162
+ loopBodyNodeIds?: string[] | undefined;
163
+ includeOutputsInWorkflowJob?: true | undefined;
164
+ dependsOn?: string[] | undefined;
165
+ label?: string | undefined;
166
+ };
167
+ /**
168
+ * Converts a workflow editor state (nodes, edges, inputKeys) into a flow array
169
+ * ready to be passed to `client.workflows.update({ flow: ... })`.
170
+ *
171
+ * @example
172
+ * ```ts
173
+ * const flow = convertWorkflowEditorToFlow({ nodes, edges, inputKeys, getModel });
174
+ * await client.workflows.update(workflowId, { flow: flow as WorkflowUpdateParams.Flow[] });
175
+ * ```
176
+ */
177
+ export declare function convertWorkflowEditorToFlow(params: {
178
+ nodes: WorkflowEditorNode[];
179
+ edges: WorkflowEditorEdge[];
180
+ inputKeys: string[];
181
+ /** Optional model resolver — return the model object, 'unknown', or undefined. */
182
+ getModel?: (modelId: string) => WorkflowEditorModel | 'unknown' | undefined;
183
+ }): WorkflowEditorFlowItem[];
184
+ export {};
185
+ //# sourceMappingURL=workflow_converter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow_converter.d.ts","sourceRoot":"","sources":["../src/lib/workflow_converter.ts"],"names":[],"mappings":"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"}