UNPKG

n8n-nodes-late

Version:

n8n community node for LATE API - Schedule and manage social media posts across Twitter/X, Instagram, Facebook, LinkedIn, TikTok, YouTube, and Threads

350 lines 11.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.buildAccountIdField = buildAccountIdField; exports.buildProfileIdField = buildProfileIdField; exports.buildTempTokenField = buildTempTokenField; exports.buildUserProfileFields = buildUserProfileFields; exports.buildOrganizationFields = buildOrganizationFields; exports.buildAccountTypeField = buildAccountTypeField; exports.buildSelectorField = buildSelectorField; exports.buildMediaFilesField = buildMediaFilesField; /** * Common field builders for reuse across different resources */ /** * Builds a generic ID field for account operations */ function buildAccountIdField(resource, operations, displayName = "Account ID", description = "The unique identifier of the account") { return { displayName, name: "accountId", type: "string", default: "", displayOptions: { show: { resource: [resource], operation: operations, }, }, description, required: true, }; } /** * Builds a profile ID field */ function buildProfileIdField(resource, operations, required = true) { return { displayName: "Profile ID", name: "profileId", type: "string", default: "", displayOptions: { show: { resource: [resource], operation: operations, }, }, description: "The unique identifier of the profile", required, }; } /** * Builds a temp token field for OAuth operations */ function buildTempTokenField(resource, operations) { return { displayName: "Temp Token", name: "tempToken", type: "string", default: "", displayOptions: { show: { resource: [resource], operation: operations, }, }, description: "Temporary OAuth token obtained from the authentication flow", required: true, }; } /** * Builds user profile fields for OAuth operations */ function buildUserProfileFields(resource, operations, platform) { const platformName = platform.charAt(0).toUpperCase() + platform.slice(1); return [ { displayName: "User Profile ID", name: "userProfileId", type: "string", default: "", displayOptions: { show: { resource: [resource], operation: operations, }, }, description: `${platformName} user ID`, placeholder: "123456789", }, { displayName: "User Profile Name", name: "userProfileName", type: "string", default: "", displayOptions: { show: { resource: [resource], operation: operations, }, }, description: `${platformName} user display name`, placeholder: "John Doe", }, { displayName: "User Profile Email", name: "userProfileEmail", type: "string", default: "", displayOptions: { show: { resource: [resource], operation: operations, }, }, description: `${platformName} user email address`, placeholder: "john@example.com", }, { displayName: "User Profile Picture", name: "userProfilePicture", type: "string", default: "", displayOptions: { show: { resource: [resource], operation: operations, }, }, description: "URL to the user's profile picture", placeholder: `https://graph.${platform}.com/123456789/picture`, }, { displayName: "User Profile Access Token", name: "userProfileAccessToken", type: "string", default: "", displayOptions: { show: { resource: [resource], operation: operations, }, }, description: `${platformName} user access token`, placeholder: "EAABwzLix...", }, ]; } /** * Builds organization fields for LinkedIn */ function buildOrganizationFields(resource, operations, accountTypeField = "accountType") { return [ { displayName: "Organization ID", name: "organizationId", type: "string", default: "", displayOptions: { show: { resource: [resource], operation: operations, [accountTypeField]: ["organization"], }, }, description: "LinkedIn organization ID", placeholder: "123456", }, { displayName: "Organization URN", name: "organizationUrn", type: "string", default: "", displayOptions: { show: { resource: [resource], operation: operations, [accountTypeField]: ["organization"], }, }, description: "LinkedIn organization URN", placeholder: "urn:li:organization:123456", }, { displayName: "Organization Name", name: "organizationName", type: "string", default: "", displayOptions: { show: { resource: [resource], operation: operations, [accountTypeField]: ["organization"], }, }, description: "Organization display name", placeholder: "Company Name", }, { displayName: "Organization Logo URL", name: "organizationLogoUrl", type: "string", default: "", displayOptions: { show: { resource: [resource], operation: operations, [accountTypeField]: ["organization"], }, }, description: "URL to the organization's logo", placeholder: "https://media.licdn.com/dms/image/...", }, { displayName: "Organization Description", name: "organizationDescription", type: "string", default: "", displayOptions: { show: { resource: [resource], operation: operations, [accountTypeField]: ["organization"], }, }, description: "Organization description", placeholder: "Company description...", }, ]; } /** * Builds account type selector for LinkedIn */ function buildAccountTypeField(resource, operations) { return { displayName: "Account Type", name: "accountType", type: "options", options: [ { name: "Personal", value: "personal" }, { name: "Organization", value: "organization" }, ], default: "personal", displayOptions: { show: { resource: [resource], operation: operations, }, }, description: "Type of LinkedIn account", }; } /** * Builds a generic selector field for pages/organizations */ function buildSelectorField(resource, operations, fieldName, displayName, description, placeholder, required = false) { return { displayName, name: fieldName, type: "string", default: "", displayOptions: { show: { resource: [resource], operation: operations, }, }, description, placeholder, required, }; } /** * Builds media upload files field */ function buildMediaFilesField(resource, operations) { return { displayName: "Files", name: "files", type: "fixedCollection", default: { items: [] }, typeOptions: { multipleValues: true, sortable: true, }, displayOptions: { show: { resource: [resource], operation: operations, }, }, description: "Files to upload for use in posts. Supports images (JPEG, PNG, WebP, GIF) and videos (MP4, MOV, AVI, WebM) up to 5GB. For large files (>4MB), use the @vercel/blob client-upload method described in the documentation.", required: true, options: [ { name: "items", displayName: "Files", values: [ { displayName: "Filename", name: "filename", type: "string", default: "", description: "Name of the file including extension", placeholder: "image.jpg", required: true, }, { displayName: "File Data", name: "data", type: "string", default: "", description: "Base64 encoded file data or binary data", placeholder: "data:image/jpeg;base64,/9j/4AAQSkZJRgABA...", required: true, }, { displayName: "MIME Type", name: "mimeType", type: "options", options: [ { name: "JPEG Image", value: "image/jpeg" }, { name: "PNG Image", value: "image/png" }, { name: "WebP Image", value: "image/webp" }, { name: "GIF Image", value: "image/gif" }, { name: "MP4 Video", value: "video/mp4" }, { name: "MOV Video", value: "video/quicktime" }, { name: "AVI Video", value: "video/x-msvideo" }, { name: "WebM Video", value: "video/webm" }, { name: "PDF Document", value: "application/pdf" }, { name: "Other", value: "application/octet-stream" }, ], default: "image/jpeg", description: "MIME type of the file", required: true, }, { displayName: "File Size (bytes)", name: "fileSize", type: "number", default: 0, description: "Size of the file in bytes (optional, for validation)", placeholder: "1048576", }, ], }, ], }; } //# sourceMappingURL=commonFields.js.map