ugcinc 4.1.59 → 4.1.61
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.
- package/dist/automations/nodes/create-dm.d.ts +20 -8
- package/dist/automations/nodes/create-dm.js +6 -1
- package/dist/automations/nodes/custom-model.d.ts +5 -0
- package/dist/automations/nodes/custom-model.js +54 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -1
- package/dist/render/compositions/IMessageDmComposition/types.d.ts +4 -4
- package/package.json +1 -1
|
@@ -1,17 +1,29 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ImageValue, TextValue, BooleanValue } from '../types';
|
|
2
2
|
import { type InputType, type OutputMode } from './types';
|
|
3
|
-
/** Create DM
|
|
4
|
-
export type CreateDmNodeInputs = Record<string, PortValue | PortValue[]>;
|
|
5
|
-
/** Create DM has a fixed 'output' port. */
|
|
6
|
-
export interface CreateDmNodeOutputs {
|
|
7
|
-
output: ImageValue;
|
|
8
|
-
}
|
|
9
|
-
export type DmPlatform = 'imessage' | 'instagram';
|
|
3
|
+
/** Create DM message structure */
|
|
10
4
|
export interface CreateDmMessage {
|
|
11
5
|
sender: 'user' | 'recipient';
|
|
12
6
|
text: string;
|
|
13
7
|
hasImage?: boolean;
|
|
14
8
|
}
|
|
9
|
+
/** Create DM inputs - optional based on inputType settings */
|
|
10
|
+
export interface CreateDmNodeInputs {
|
|
11
|
+
platform?: TextValue;
|
|
12
|
+
'light-mode'?: BooleanValue;
|
|
13
|
+
username?: TextValue;
|
|
14
|
+
time?: TextValue;
|
|
15
|
+
'profile-pic'?: ImageValue;
|
|
16
|
+
messages?: CreateDmMessage[];
|
|
17
|
+
'image-attachment'?: ImageValue;
|
|
18
|
+
'read-receipt-time'?: TextValue;
|
|
19
|
+
'unread-badge'?: TextValue;
|
|
20
|
+
'message-header-time'?: TextValue;
|
|
21
|
+
}
|
|
22
|
+
/** Create DM has a fixed 'output' port. */
|
|
23
|
+
export interface CreateDmNodeOutputs {
|
|
24
|
+
output: ImageValue;
|
|
25
|
+
}
|
|
26
|
+
export type DmPlatform = 'imessage' | 'instagram';
|
|
15
27
|
declare const definition: import("./types").NodeDefinition<"generator", {
|
|
16
28
|
platform: DmPlatform;
|
|
17
29
|
platformInputType: InputType;
|
|
@@ -63,7 +63,12 @@ const definition = (0, types_1.defineNode)({
|
|
|
63
63
|
inputs.push({ id: 'profile-pic', type: 'image', isArray: false, required: false });
|
|
64
64
|
}
|
|
65
65
|
if (config?.messagesInputType === 'variable') {
|
|
66
|
-
|
|
66
|
+
const messageSchema = [
|
|
67
|
+
{ name: 'sender', type: 'string', required: true },
|
|
68
|
+
{ name: 'text', type: 'string', required: true },
|
|
69
|
+
{ name: 'hasImage', type: 'boolean', required: false },
|
|
70
|
+
];
|
|
71
|
+
inputs.push({ id: 'messages', type: 'object', isArray: true, required: true, objectSchema: messageSchema });
|
|
67
72
|
}
|
|
68
73
|
if (config?.imageAttachmentInputType === 'variable') {
|
|
69
74
|
inputs.push({ id: 'image-attachment', type: 'image', isArray: false, required: false });
|
|
@@ -70,3 +70,8 @@ declare const _default: typeof definition & {
|
|
|
70
70
|
};
|
|
71
71
|
export default _default;
|
|
72
72
|
export type CustomModelNodeConfig = typeof definition.defaults;
|
|
73
|
+
/**
|
|
74
|
+
* Resolve a path like "images[0].url" from an unknown object.
|
|
75
|
+
* Used for extracting output URLs from fal.ai API responses.
|
|
76
|
+
*/
|
|
77
|
+
export declare function resolveUnknownPath(obj: unknown, path: string): unknown;
|
|
@@ -4,6 +4,7 @@ exports.mapOpenAPIType = mapOpenAPIType;
|
|
|
4
4
|
exports.parseOpenAPIInputs = parseOpenAPIInputs;
|
|
5
5
|
exports.parseOpenAPIOutputPath = parseOpenAPIOutputPath;
|
|
6
6
|
exports.getOutputTypeFromCategory = getOutputTypeFromCategory;
|
|
7
|
+
exports.resolveUnknownPath = resolveUnknownPath;
|
|
7
8
|
const types_1 = require("./types");
|
|
8
9
|
// =============================================================================
|
|
9
10
|
// OpenAPI Parsing Functions
|
|
@@ -232,3 +233,56 @@ const definition = (0, types_1.defineNode)({
|
|
|
232
233
|
},
|
|
233
234
|
});
|
|
234
235
|
exports.default = definition;
|
|
236
|
+
// =============================================================================
|
|
237
|
+
// Utility Functions for Custom Model Execution
|
|
238
|
+
// =============================================================================
|
|
239
|
+
/**
|
|
240
|
+
* Resolve a path like "images[0].url" from an unknown object.
|
|
241
|
+
* Used for extracting output URLs from fal.ai API responses.
|
|
242
|
+
*/
|
|
243
|
+
function resolveUnknownPath(obj, path) {
|
|
244
|
+
if (!path || path.trim() === '')
|
|
245
|
+
return obj;
|
|
246
|
+
const segments = [];
|
|
247
|
+
let current = '';
|
|
248
|
+
for (const char of path) {
|
|
249
|
+
if (char === '.') {
|
|
250
|
+
if (current)
|
|
251
|
+
segments.push(current);
|
|
252
|
+
current = '';
|
|
253
|
+
}
|
|
254
|
+
else if (char === '[') {
|
|
255
|
+
if (current)
|
|
256
|
+
segments.push(current);
|
|
257
|
+
current = '';
|
|
258
|
+
}
|
|
259
|
+
else if (char === ']') {
|
|
260
|
+
if (current)
|
|
261
|
+
segments.push(current);
|
|
262
|
+
current = '';
|
|
263
|
+
}
|
|
264
|
+
else {
|
|
265
|
+
current += char;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
if (current)
|
|
269
|
+
segments.push(current);
|
|
270
|
+
let result = obj;
|
|
271
|
+
for (const segment of segments) {
|
|
272
|
+
if (result === null || result === undefined)
|
|
273
|
+
return undefined;
|
|
274
|
+
if (typeof result !== 'object')
|
|
275
|
+
return undefined;
|
|
276
|
+
const index = parseInt(segment, 10);
|
|
277
|
+
if (!isNaN(index) && Array.isArray(result)) {
|
|
278
|
+
result = result[index];
|
|
279
|
+
}
|
|
280
|
+
else if (!Array.isArray(result)) {
|
|
281
|
+
result = result[segment];
|
|
282
|
+
}
|
|
283
|
+
else {
|
|
284
|
+
return undefined;
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
return result;
|
|
288
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -44,7 +44,7 @@ export type { CollectNodeConfig, CollectedValues, CollectInputValue } from './au
|
|
|
44
44
|
export type { ComposeWorkflowNodeConfig } from './automations/nodes/compose-workflow';
|
|
45
45
|
export type { CreateDmNodeConfig, CreateDmMessage, DmPlatform, } from './automations/nodes/create-dm';
|
|
46
46
|
export type { CustomModelNodeConfig, CustomModelOutputType, CustomModelInputParam, CustomModelParamType, OpenAPISchema, OpenAPIProperty, } from './automations/nodes/custom-model';
|
|
47
|
-
export { mapOpenAPIType, parseOpenAPIInputs, parseOpenAPIOutputPath, getOutputTypeFromCategory, } from './automations/nodes/custom-model';
|
|
47
|
+
export { mapOpenAPIType, parseOpenAPIInputs, parseOpenAPIOutputPath, getOutputTypeFromCategory, resolveUnknownPath, } from './automations/nodes/custom-model';
|
|
48
48
|
export type { DeduplicateNodeConfig } from './automations/nodes/deduplicate';
|
|
49
49
|
export type { DestructureNodeConfig, DestructureNodeInputs, DestructureNodeOutputs, DestructureSelection, IndexExpression, } from './automations/nodes/destructure';
|
|
50
50
|
export { indexExpressionToIndexes, resolvePath } from './automations/nodes/destructure';
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
8
|
exports.extractWorkflowConfig = exports.generateNodeName = exports.shuffleNodePreview = exports.getPreviewValue = exports.removePreviewForConnection = exports.updatePreviewMapForConnection = exports.computePreviewMap = exports.computeAllNodePreviews = exports.resolveNodePreview = exports.getWorkflowOutputSchema = exports.hasMissingTerminalError = exports.hasMissingTriggerError = exports.getPortErrorsForNode = exports.getErrorNodeIds = exports.validateWorkflow = exports.checkCrossContextViolation = exports.getForEachContext = exports.getConnectedSource = exports.cleanupStaleConnections = exports.removeNodeConnections = exports.removeConnection = exports.addConnection = exports.deriveConnections = exports.createNode = exports.getOutputSchema = exports.getNodeByType = exports.getAllNodes = exports.getInputPreviewValue = exports.computeAllNodePortsWithPreviews = exports.computeAllNodePorts = exports.computePortsWithPreviews = exports.computePortsForNode = exports.areTypesCompatible = exports.submitIMessageDmRenderJob = exports.submitInstagramDmRenderJob = exports.submitAutoCaptionRenderJob = exports.submitScreenshotAnimationRenderJob = exports.submitDeduplicationJob = exports.getRenderJobStatus = exports.submitVideoRenderJob = exports.submitImageRenderJob = exports.CommentsClient = exports.MediaClient = exports.AutomationsClient = exports.OrganizationClient = exports.StatsClient = exports.PostsClient = exports.TasksClient = exports.AccountsClient = exports.UGCClient = void 0;
|
|
9
|
-
exports.prepareVideoComposerInput = exports.LLMProviders = exports.IfLogicOperators = exports.resolvePath = exports.indexExpressionToIndexes = exports.getOutputTypeFromCategory = exports.parseOpenAPIOutputPath = exports.parseOpenAPIInputs = exports.mapOpenAPIType = exports.nodeConfigToCaptionStyle = exports.prepareImageComposerInput = exports.processTemplate = exports.extractTemplateVariables = exports.PortIdSchema = exports.normalizeToPortId = exports.portIdToTitle = exports.isValidPortId = exports.portId = exports.selectFromPool = exports.getModelDurations = exports.getModelAspectRatios = exports.ALL_VIDEO_MODELS = exports.isImageToVideoModel = exports.IMAGE_ASPECT_RATIOS = exports.ALL_IMAGE_MODELS = exports.isEditModel = exports.getNodeDefinition = exports.isPortType = exports.formatPortType = exports.isAsyncExecutor = exports.internalNodeTypes = exports.nodeDefinitions = void 0;
|
|
9
|
+
exports.prepareVideoComposerInput = exports.LLMProviders = exports.IfLogicOperators = exports.resolvePath = exports.indexExpressionToIndexes = exports.resolveUnknownPath = exports.getOutputTypeFromCategory = exports.parseOpenAPIOutputPath = exports.parseOpenAPIInputs = exports.mapOpenAPIType = exports.nodeConfigToCaptionStyle = exports.prepareImageComposerInput = exports.processTemplate = exports.extractTemplateVariables = exports.PortIdSchema = exports.normalizeToPortId = exports.portIdToTitle = exports.isValidPortId = exports.portId = exports.selectFromPool = exports.getModelDurations = exports.getModelAspectRatios = exports.ALL_VIDEO_MODELS = exports.isImageToVideoModel = exports.IMAGE_ASPECT_RATIOS = exports.ALL_IMAGE_MODELS = exports.isEditModel = exports.getNodeDefinition = exports.isPortType = exports.formatPortType = exports.isAsyncExecutor = exports.internalNodeTypes = exports.nodeDefinitions = void 0;
|
|
10
10
|
// =============================================================================
|
|
11
11
|
// Client Exports
|
|
12
12
|
// =============================================================================
|
|
@@ -129,6 +129,7 @@ Object.defineProperty(exports, "mapOpenAPIType", { enumerable: true, get: functi
|
|
|
129
129
|
Object.defineProperty(exports, "parseOpenAPIInputs", { enumerable: true, get: function () { return custom_model_1.parseOpenAPIInputs; } });
|
|
130
130
|
Object.defineProperty(exports, "parseOpenAPIOutputPath", { enumerable: true, get: function () { return custom_model_1.parseOpenAPIOutputPath; } });
|
|
131
131
|
Object.defineProperty(exports, "getOutputTypeFromCategory", { enumerable: true, get: function () { return custom_model_1.getOutputTypeFromCategory; } });
|
|
132
|
+
Object.defineProperty(exports, "resolveUnknownPath", { enumerable: true, get: function () { return custom_model_1.resolveUnknownPath; } });
|
|
132
133
|
var destructure_1 = require("./automations/nodes/destructure");
|
|
133
134
|
Object.defineProperty(exports, "indexExpressionToIndexes", { enumerable: true, get: function () { return destructure_1.indexExpressionToIndexes; } });
|
|
134
135
|
Object.defineProperty(exports, "resolvePath", { enumerable: true, get: function () { return destructure_1.resolvePath; } });
|
|
@@ -380,14 +380,14 @@ export declare const iMessageDmPropsSchema: z.ZodObject<{
|
|
|
380
380
|
groupWithPrevious: z.ZodOptional<z.ZodBoolean>;
|
|
381
381
|
}, "strip", z.ZodTypeAny, {
|
|
382
382
|
text: string;
|
|
383
|
-
id: string;
|
|
384
383
|
sender: "user" | "recipient";
|
|
384
|
+
id: string;
|
|
385
385
|
imageUrl?: string | undefined;
|
|
386
386
|
groupWithPrevious?: boolean | undefined;
|
|
387
387
|
}, {
|
|
388
388
|
text: string;
|
|
389
|
-
id: string;
|
|
390
389
|
sender: "user" | "recipient";
|
|
390
|
+
id: string;
|
|
391
391
|
imageUrl?: string | undefined;
|
|
392
392
|
groupWithPrevious?: boolean | undefined;
|
|
393
393
|
}>, "many">>;
|
|
@@ -399,8 +399,8 @@ export declare const iMessageDmPropsSchema: z.ZodObject<{
|
|
|
399
399
|
profilePicUrl?: string | undefined;
|
|
400
400
|
messages?: {
|
|
401
401
|
text: string;
|
|
402
|
-
id: string;
|
|
403
402
|
sender: "user" | "recipient";
|
|
403
|
+
id: string;
|
|
404
404
|
imageUrl?: string | undefined;
|
|
405
405
|
groupWithPrevious?: boolean | undefined;
|
|
406
406
|
}[] | undefined;
|
|
@@ -580,8 +580,8 @@ export declare const iMessageDmPropsSchema: z.ZodObject<{
|
|
|
580
580
|
profilePicUrl?: string | undefined;
|
|
581
581
|
messages?: {
|
|
582
582
|
text: string;
|
|
583
|
-
id: string;
|
|
584
583
|
sender: "user" | "recipient";
|
|
584
|
+
id: string;
|
|
585
585
|
imageUrl?: string | undefined;
|
|
586
586
|
groupWithPrevious?: boolean | undefined;
|
|
587
587
|
}[] | undefined;
|