ugcinc 2.99.7 → 3.0.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.
@@ -129,7 +129,6 @@ function getAllNodes() {
129
129
  outputs: [
130
130
  {
131
131
  id: "text",
132
- title: "text",
133
132
  type: "text",
134
133
  required: true,
135
134
  },
@@ -144,8 +143,7 @@ function getAllNodes() {
144
143
  inputs: [],
145
144
  outputs: [
146
145
  {
147
- id: "social_audio",
148
- title: "social_audio",
146
+ id: "social-audio",
149
147
  type: "social_audio",
150
148
  required: true,
151
149
  },
@@ -161,7 +159,6 @@ function getAllNodes() {
161
159
  outputs: [
162
160
  {
163
161
  id: "account",
164
- title: "Account",
165
162
  type: "account",
166
163
  required: true,
167
164
  },
@@ -177,7 +174,6 @@ function getAllNodes() {
177
174
  outputs: [
178
175
  {
179
176
  id: "video",
180
- title: "video",
181
177
  type: "video",
182
178
  required: true,
183
179
  },
@@ -194,7 +190,6 @@ function getAllNodes() {
194
190
  outputs: [
195
191
  {
196
192
  id: "image",
197
- title: "image",
198
193
  type: "image",
199
194
  required: true,
200
195
  },
@@ -210,7 +205,6 @@ function getAllNodes() {
210
205
  outputs: [
211
206
  {
212
207
  id: "video",
213
- title: "video",
214
208
  type: "video",
215
209
  required: true,
216
210
  },
@@ -226,7 +220,6 @@ function getAllNodes() {
226
220
  outputs: [
227
221
  {
228
222
  id: "audio",
229
- title: "audio",
230
223
  type: "audio",
231
224
  required: true,
232
225
  },
@@ -234,7 +227,7 @@ function getAllNodes() {
234
227
  },
235
228
  // === Generator nodes ===
236
229
  {
237
- type: "image-editor",
230
+ type: "image-template",
238
231
  label: "Image Template",
239
232
  description: "Create templated images",
240
233
  category: "Generation",
@@ -242,7 +235,6 @@ function getAllNodes() {
242
235
  inputs: [
243
236
  {
244
237
  id: "background",
245
- title: "background",
246
238
  type: "image",
247
239
  required: true,
248
240
  },
@@ -250,14 +242,13 @@ function getAllNodes() {
250
242
  outputs: [
251
243
  {
252
244
  id: "output",
253
- title: "output",
254
245
  type: "image",
255
246
  required: true,
256
247
  },
257
248
  ],
258
249
  },
259
250
  {
260
- type: "video-editor",
251
+ type: "video-template",
261
252
  label: "Video Template",
262
253
  description: "Create templated videos",
263
254
  category: "Generation",
@@ -266,14 +257,13 @@ function getAllNodes() {
266
257
  outputs: [
267
258
  {
268
259
  id: "output",
269
- title: "output",
270
260
  type: "video",
271
261
  required: true,
272
262
  },
273
263
  ],
274
264
  },
275
265
  {
276
- type: "workflow",
266
+ type: "sub-agent",
277
267
  label: "Sub-Agent",
278
268
  description: "Embed other agents",
279
269
  category: "Generation",
@@ -292,7 +282,6 @@ function getAllNodes() {
292
282
  inputs: [
293
283
  {
294
284
  id: "prompt",
295
- title: "Prompt",
296
285
  type: "text",
297
286
  required: true,
298
287
  },
@@ -301,7 +290,6 @@ function getAllNodes() {
301
290
  outputs: [
302
291
  {
303
292
  id: "output",
304
- title: "Generated Image",
305
293
  type: "image",
306
294
  required: true,
307
295
  },
@@ -316,7 +304,6 @@ function getAllNodes() {
316
304
  inputs: [
317
305
  {
318
306
  id: "prompt",
319
- title: "Prompt",
320
307
  type: "text",
321
308
  required: true,
322
309
  },
@@ -325,7 +312,6 @@ function getAllNodes() {
325
312
  outputs: [
326
313
  {
327
314
  id: "output",
328
- title: "Generated Video",
329
315
  type: "video",
330
316
  required: true,
331
317
  },
@@ -343,7 +329,7 @@ function getAllNodes() {
343
329
  outputs: [],
344
330
  },
345
331
  {
346
- type: "llm",
332
+ type: "text-generation",
347
333
  label: "Text Generation",
348
334
  description: "Generate LLM output",
349
335
  category: "AI Generation",
@@ -385,31 +371,26 @@ function getAllNodes() {
385
371
  inputs: [
386
372
  {
387
373
  id: "video",
388
- title: "video",
389
374
  type: "video",
390
375
  required: true,
391
376
  },
392
377
  {
393
378
  id: "account",
394
- title: "account",
395
379
  type: "account",
396
380
  required: true,
397
381
  },
398
382
  {
399
383
  id: "caption",
400
- title: "caption",
401
384
  type: "text",
402
385
  required: false,
403
386
  },
404
387
  {
405
- id: "socialAudio",
406
- title: "social-audio",
388
+ id: "social-audio",
407
389
  type: "social_audio",
408
390
  required: false,
409
391
  },
410
392
  {
411
- id: "postDate",
412
- title: "post-date",
393
+ id: "post-date",
413
394
  type: "date",
414
395
  required: false,
415
396
  },
@@ -426,25 +407,21 @@ function getAllNodes() {
426
407
  inputs: [
427
408
  {
428
409
  id: "account",
429
- title: "account",
430
410
  type: "account",
431
411
  required: true,
432
412
  },
433
413
  {
434
414
  id: "caption",
435
- title: "caption",
436
415
  type: "text",
437
416
  required: false,
438
417
  },
439
418
  {
440
- id: "socialAudio",
441
- title: "social-audio",
419
+ id: "social-audio",
442
420
  type: "social_audio",
443
421
  required: false,
444
422
  },
445
423
  {
446
- id: "postDate",
447
- title: "post-date",
424
+ id: "post-date",
448
425
  type: "date",
449
426
  required: false,
450
427
  },
@@ -470,7 +447,6 @@ function getAllNodes() {
470
447
  inputs: [
471
448
  {
472
449
  id: "result",
473
- title: "Result",
474
450
  type: ["image", "video", "audio", "text"],
475
451
  required: true,
476
452
  },
@@ -487,7 +463,6 @@ function getAllNodes() {
487
463
  inputs: [
488
464
  {
489
465
  id: "video",
490
- title: "video",
491
466
  type: "video",
492
467
  required: true,
493
468
  },
@@ -495,7 +470,6 @@ function getAllNodes() {
495
470
  outputs: [
496
471
  {
497
472
  id: "output",
498
- title: "output",
499
473
  type: "video",
500
474
  required: true,
501
475
  },
package/dist/index.d.ts CHANGED
@@ -11,8 +11,10 @@ export { StatsClient } from './stats';
11
11
  export { OrganizationClient } from './org';
12
12
  export { RenderClient } from './render';
13
13
  export { AutomationsClient, getAllNodes, getNodeByType } from './automations';
14
+ export { portId, isValidPortId, portIdToTitle, normalizeToPortId, PortIdSchema } from './port-id';
15
+ export type { PortId } from './port-id';
14
16
  export { MediaClient } from './media';
15
17
  export { CommentsClient } from './comments';
16
18
  export type { RenderJobResponse, RenderJobStatus, SubmitImageRenderJobParams, SubmitVideoRenderJobParams, RenderVideoEditorConfig, } from './render';
17
19
  export type { ClientConfig, } from './base';
18
- export type { SuccessResponse, ErrorResponse, ApiResponse, Account, AccountStat, AccountTask, EditProfileInfo, Task, TaskType, Post, PostType, PostStatus, PostStat, ApiKey, EditorConfig, VideoEditorNodeConfig, VideoEditorChannel, VideoEditorSegment, VideoEditorVideoSegment, VideoEditorAudioSegment, VideoEditorImageSegment, VideoEditorTextSegment, TimeMode, SegmentTimelinePosition, ImageEditorNodeConfig, ImageEditorElement, ImageEditorNodeInput, ImageEditorNodeOutput, DimensionPresetKey, EditorChannel, TimeValue, BaseSegmentProps, VisualSegmentProps, EditorSegment, VideoSegment, AudioSegment, ImageSegment, TextSegment, StaticSegment, PositionAnchor, RelativePositionConfig, GetAccountsParams, GetAccountStatsParams, GetAccountStatusParams, UpdateAccountInfoParams, UpdateAccountSocialParams, GetTasksParams, GetPostsParams, CreateSlideshowParams, GetPostStatsParams, GetPostStatusParams, CreateVideoParams, RefreshStatsParams, RefreshStatsResponse, RefreshStatsError, DailyAggregatedStat, GetDailyAggregatedStatsParams, DailyPostStat, GetDailyPostStatsParams, TopAccount, GetTopAccountsParams, TopPost, GetTopPostsParams, MediaType, NodePort, NodeControlConfig, NodeTypeEnum, WorkflowNodeDefinition, WorkflowDefinition, CanvasState, TemplateNode, AutomationTemplate, AutomationRun, NodeRun, ExecutorNode, ExecutionEdge, OutputSchemaProperty, SelectionMode, ExhaustionBehavior, SelectionConfig, SelectionState, OutputMode, NodeOutputValues, OutputInput, OutputNodeConfig, ManualTriggerOutput, ManualTriggerNodeConfig, TriggerIterationMode, IterationExhaustionBehavior, TriggerCollectionConfig, DayOfWeek, RecurrenceNodeConfig, AccountNodeConfig, MediaNodeEnabledType, MediaNodeConfig, PostVideoNodeConfig, PostSlideshowInput, PostSlideshowNodeConfig, SaveToMediaInput, SaveToMediaNodeConfig, DeduplicateNodeConfig, VideoGenerationNodeConfig, PortType, LLMOutputField, LLMNodeConfig, UserMedia, SocialAudio, Media, GetMediaParams, UploadMediaParams, UploadMediaResponse, UpdateMediaTagParams, DeleteMediaParams, DeleteMediaResponse, CreateSocialAudioParams, CreateMediaFromUrlParams, ImportTextParams, ImportTextResponse, Comment, CommentStatus, CreateCommentParams, CreateCommentResponse, GetCommentsParams, } from './types';
20
+ export type { SuccessResponse, ErrorResponse, ApiResponse, Account, AccountStat, AccountTask, EditProfileInfo, Task, TaskType, Post, PostType, PostStatus, PostStat, ApiKey, EditorConfig, VideoEditorNodeConfig, VideoEditorChannel, VideoEditorSegment, VideoEditorVideoSegment, VideoEditorAudioSegment, VideoEditorImageSegment, VideoEditorTextSegment, TimeMode, SegmentTimelinePosition, ImageEditorNodeConfig, ImageEditorElement, ImageEditorNodeInput, ImageEditorNodeOutput, DimensionPresetKey, EditorChannel, TimeValue, BaseSegmentProps, VisualSegmentProps, EditorSegment, VideoSegment, AudioSegment, ImageSegment, TextSegment, StaticSegment, PositionAnchor, RelativePositionConfig, GetAccountsParams, GetAccountStatsParams, GetAccountStatusParams, UpdateAccountInfoParams, UpdateAccountSocialParams, GetTasksParams, GetPostsParams, CreateSlideshowParams, GetPostStatsParams, GetPostStatusParams, CreateVideoParams, RefreshStatsParams, RefreshStatsResponse, RefreshStatsError, DailyAggregatedStat, GetDailyAggregatedStatsParams, DailyPostStat, GetDailyPostStatsParams, TopAccount, GetTopAccountsParams, TopPost, GetTopPostsParams, MediaType, NodePort, NodeControlConfig, NodeTypeEnum, WorkflowNodeDefinition, WorkflowDefinition, CanvasState, TemplateNode, AutomationTemplate, AutomationRun, NodeRun, ExecutorNode, ExecutionEdge, OutputSchemaProperty, SelectionMode, ExhaustionBehavior, SelectionConfig, SelectionState, OutputMode, NodeOutputValues, OutputInput, OutputNodeConfig, ManualTriggerOutput, ManualTriggerNodeConfig, TriggerIterationMode, IterationExhaustionBehavior, TriggerCollectionConfig, DayOfWeek, RecurrenceNodeConfig, AccountNodeConfig, MediaNodeEnabledType, MediaNodeConfig, PostVideoNodeConfig, PostSlideshowInput, PostSlideshowNodeConfig, SaveToMediaInput, SaveToMediaNodeConfig, DeduplicateNodeConfig, VideoImportPlatform, VideoImportQuality, VideoImportNodeConfig, VideoGenerationNodeConfig, PortType, LLMOutputField, LLMNodeConfig, UserMedia, SocialAudio, Media, GetMediaParams, UploadMediaParams, UploadMediaResponse, UpdateMediaTagParams, DeleteMediaParams, DeleteMediaResponse, CreateSocialAudioParams, CreateMediaFromUrlParams, ImportTextParams, ImportTextResponse, Comment, CommentStatus, CreateCommentParams, CreateCommentResponse, GetCommentsParams, } from './types';
package/dist/index.js CHANGED
@@ -5,7 +5,7 @@
5
5
  * Official TypeScript/JavaScript client for the UGC Inc API
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.CommentsClient = exports.MediaClient = exports.getNodeByType = exports.getAllNodes = exports.AutomationsClient = exports.RenderClient = exports.OrganizationClient = exports.StatsClient = exports.PostsClient = exports.TasksClient = exports.AccountsClient = exports.UGCClient = void 0;
8
+ exports.CommentsClient = exports.MediaClient = exports.PortIdSchema = exports.normalizeToPortId = exports.portIdToTitle = exports.isValidPortId = exports.portId = exports.getNodeByType = exports.getAllNodes = exports.AutomationsClient = exports.RenderClient = exports.OrganizationClient = exports.StatsClient = exports.PostsClient = exports.TasksClient = exports.AccountsClient = exports.UGCClient = void 0;
9
9
  var client_1 = require("./client");
10
10
  Object.defineProperty(exports, "UGCClient", { enumerable: true, get: function () { return client_1.UGCClient; } });
11
11
  var accounts_1 = require("./accounts");
@@ -24,6 +24,12 @@ var automations_1 = require("./automations");
24
24
  Object.defineProperty(exports, "AutomationsClient", { enumerable: true, get: function () { return automations_1.AutomationsClient; } });
25
25
  Object.defineProperty(exports, "getAllNodes", { enumerable: true, get: function () { return automations_1.getAllNodes; } });
26
26
  Object.defineProperty(exports, "getNodeByType", { enumerable: true, get: function () { return automations_1.getNodeByType; } });
27
+ var port_id_1 = require("./port-id");
28
+ Object.defineProperty(exports, "portId", { enumerable: true, get: function () { return port_id_1.portId; } });
29
+ Object.defineProperty(exports, "isValidPortId", { enumerable: true, get: function () { return port_id_1.isValidPortId; } });
30
+ Object.defineProperty(exports, "portIdToTitle", { enumerable: true, get: function () { return port_id_1.portIdToTitle; } });
31
+ Object.defineProperty(exports, "normalizeToPortId", { enumerable: true, get: function () { return port_id_1.normalizeToPortId; } });
32
+ Object.defineProperty(exports, "PortIdSchema", { enumerable: true, get: function () { return port_id_1.PortIdSchema; } });
27
33
  var media_1 = require("./media");
28
34
  Object.defineProperty(exports, "MediaClient", { enumerable: true, get: function () { return media_1.MediaClient; } });
29
35
  var comments_1 = require("./comments");
@@ -0,0 +1,29 @@
1
+ import { z } from 'zod';
2
+ export declare const PortIdSchema: z.ZodString;
3
+ export type PortId = z.infer<typeof PortIdSchema>;
4
+ /**
5
+ * Create a validated PortId (throws at runtime if invalid)
6
+ */
7
+ export declare function portId(id: string): PortId;
8
+ /**
9
+ * Validate a string as a PortId without throwing
10
+ */
11
+ export declare function isValidPortId(id: string): id is PortId;
12
+ /**
13
+ * Convert port ID to display title (for UI)
14
+ *
15
+ * Examples:
16
+ * - "social_audio" → "Social Audio"
17
+ * - "post-date" → "Post Date"
18
+ * - "output" → "Output"
19
+ */
20
+ export declare function portIdToTitle(id: string): string;
21
+ /**
22
+ * Normalize user input to a valid port ID
23
+ *
24
+ * Examples:
25
+ * - "My Input Name" → "my_input_name"
26
+ * - "Image 1" → "image_1"
27
+ * - " Hello World " → "hello_world"
28
+ */
29
+ export declare function normalizeToPortId(input: string): PortId;
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PortIdSchema = void 0;
4
+ exports.portId = portId;
5
+ exports.isValidPortId = isValidPortId;
6
+ exports.portIdToTitle = portIdToTitle;
7
+ exports.normalizeToPortId = normalizeToPortId;
8
+ const zod_1 = require("zod");
9
+ /**
10
+ * Port ID Schema
11
+ *
12
+ * Port IDs must be:
13
+ * - Lowercase letters, numbers, underscores, and hyphens only
14
+ * - Must start with a letter
15
+ * - At least 1 character
16
+ *
17
+ * Examples: "output", "social_audio", "post-date", "image1"
18
+ */
19
+ const PORT_ID_REGEX = /^[a-z][a-z0-9_-]*$/;
20
+ exports.PortIdSchema = zod_1.z.string()
21
+ .min(1, 'Port ID must not be empty')
22
+ .regex(PORT_ID_REGEX, 'Port ID must be lowercase, start with a letter, and contain only letters, numbers, hyphens, or underscores');
23
+ /**
24
+ * Create a validated PortId (throws at runtime if invalid)
25
+ */
26
+ function portId(id) {
27
+ return exports.PortIdSchema.parse(id);
28
+ }
29
+ /**
30
+ * Validate a string as a PortId without throwing
31
+ */
32
+ function isValidPortId(id) {
33
+ return exports.PortIdSchema.safeParse(id).success;
34
+ }
35
+ /**
36
+ * Convert port ID to display title (for UI)
37
+ *
38
+ * Examples:
39
+ * - "social_audio" → "Social Audio"
40
+ * - "post-date" → "Post Date"
41
+ * - "output" → "Output"
42
+ */
43
+ function portIdToTitle(id) {
44
+ return id
45
+ .split(/[-_]/)
46
+ .map(word => word.charAt(0).toUpperCase() + word.slice(1))
47
+ .join(' ');
48
+ }
49
+ /**
50
+ * Normalize user input to a valid port ID
51
+ *
52
+ * Examples:
53
+ * - "My Input Name" → "my_input_name"
54
+ * - "Image 1" → "image_1"
55
+ * - " Hello World " → "hello_world"
56
+ */
57
+ function normalizeToPortId(input) {
58
+ let normalized = input
59
+ .toLowerCase()
60
+ .trim()
61
+ .replace(/\s+/g, '_') // spaces to underscores
62
+ .replace(/[^a-z0-9_-]/g, '') // remove invalid chars
63
+ .replace(/^[^a-z]+/, ''); // ensure starts with letter
64
+ // Fallback if everything was stripped
65
+ if (!normalized) {
66
+ normalized = 'port';
67
+ }
68
+ return exports.PortIdSchema.parse(normalized);
69
+ }
package/dist/types.d.ts CHANGED
@@ -790,7 +790,6 @@ export interface NodeOutputValues {
790
790
  }
791
791
  export interface NodePort {
792
792
  id: string;
793
- title: string;
794
793
  type: MediaType | MediaType[];
795
794
  required: boolean;
796
795
  }
@@ -825,7 +824,7 @@ export interface NodeControlConfig {
825
824
  */
826
825
  isInitializer?: boolean;
827
826
  }
828
- export type NodeTypeEnum = 'image' | 'video' | 'audio' | 'social-audio' | 'text' | 'media' | 'video-import' | 'image-editor' | 'video-editor' | 'image-generation' | 'video-generation' | 'custom-model' | 'llm' | 'output' | 'manual-trigger' | 'recurrence' | 'workflow' | 'account' | 'post-video' | 'post-slideshow' | 'save-to-media' | 'deduplicate';
827
+ export type NodeTypeEnum = 'image' | 'video' | 'audio' | 'social-audio' | 'text' | 'media' | 'video-import' | 'image-template' | 'video-template' | 'image-generation' | 'video-generation' | 'custom-model' | 'text-generation' | 'output' | 'manual-trigger' | 'recurrence' | 'sub-agent' | 'account' | 'post-video' | 'post-slideshow' | 'save-to-media' | 'deduplicate';
829
828
  export interface OutputSchemaProperty {
830
829
  type: 'string' | 'number' | 'boolean' | 'array' | 'object';
831
830
  items?: 'string' | 'number' | 'boolean';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ugcinc",
3
- "version": "2.99.7",
3
+ "version": "3.0.0",
4
4
  "description": "TypeScript/JavaScript client for the UGC Inc API",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -20,6 +20,9 @@
20
20
  ],
21
21
  "author": "UGC Inc",
22
22
  "license": "MIT",
23
+ "dependencies": {
24
+ "zod": "^3.23.0"
25
+ },
23
26
  "peerDependencies": {
24
27
  "ugcinc-render": "^1.6.1"
25
28
  },