upload-post 2.13.0 → 2.14.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.
- package/README.md +118 -9
- package/index.d.ts +376 -18
- package/index.js +381 -16
- package/package.json +2 -2
package/index.d.ts
CHANGED
|
@@ -138,12 +138,23 @@ declare module 'upload-post' {
|
|
|
138
138
|
tiktokCoverTimestamp?: number;
|
|
139
139
|
/** AI-generated content flag */
|
|
140
140
|
tiktokIsAigc?: boolean;
|
|
141
|
-
/**
|
|
141
|
+
/**
|
|
142
|
+
* Post mode. `MEDIA_UPLOAD` is the same draft as {@link TikTokVideoOptions.tiktokUploadToDraft}.
|
|
143
|
+
* Alias: `postMode` / `post_mode`.
|
|
144
|
+
*/
|
|
142
145
|
tiktokPostMode?: TikTokPostMode;
|
|
146
|
+
/** Alias of {@link TikTokVideoOptions.tiktokPostMode}. */
|
|
147
|
+
postMode?: TikTokPostMode;
|
|
148
|
+
/** Alias of {@link TikTokVideoOptions.tiktokPostMode}. */
|
|
149
|
+
post_mode?: TikTokPostMode;
|
|
143
150
|
/** Branded content toggle */
|
|
144
151
|
brandContentToggle?: boolean;
|
|
145
152
|
/** Brand organic toggle */
|
|
146
153
|
brandOrganicToggle?: boolean;
|
|
154
|
+
/** Only show the video in ads */
|
|
155
|
+
tiktokIsAdsOnly?: boolean;
|
|
156
|
+
/** TikTok One invite link. Requires branded content. */
|
|
157
|
+
tiktokTtoInviteLink?: string;
|
|
147
158
|
|
|
148
159
|
// ---- Music, location, cover and draft ----
|
|
149
160
|
// Available on connections that declare the matching capability (`music`,
|
|
@@ -171,8 +182,18 @@ declare module 'upload-post' {
|
|
|
171
182
|
tiktokCoverImageUrl?: string;
|
|
172
183
|
/** AI-generated content disclosure */
|
|
173
184
|
tiktokIsAiGenerated?: boolean;
|
|
174
|
-
/**
|
|
185
|
+
/**
|
|
186
|
+
* Publish to drafts. Same draft as `tiktokPostMode: 'MEDIA_UPLOAD'` /
|
|
187
|
+
* `postMode: 'MEDIA_UPLOAD'`. Aliases: `uploadToDraft`, `tiktok_upload_to_draft`,
|
|
188
|
+
* `upload_to_draft`. When true TikTok ignores the rest of the post settings.
|
|
189
|
+
*/
|
|
175
190
|
tiktokUploadToDraft?: boolean;
|
|
191
|
+
/** Alias of {@link TikTokVideoOptions.tiktokUploadToDraft}. */
|
|
192
|
+
uploadToDraft?: boolean;
|
|
193
|
+
/** Alias of {@link TikTokVideoOptions.tiktokUploadToDraft}. */
|
|
194
|
+
tiktok_upload_to_draft?: boolean;
|
|
195
|
+
/** Alias of {@link TikTokVideoOptions.tiktokUploadToDraft}. */
|
|
196
|
+
upload_to_draft?: boolean;
|
|
176
197
|
}
|
|
177
198
|
|
|
178
199
|
export interface TikTokPhotoOptions {
|
|
@@ -190,20 +211,27 @@ declare module 'upload-post' {
|
|
|
190
211
|
* ones.
|
|
191
212
|
*/
|
|
192
213
|
tiktokPrivacyLevel?: TikTokPrivacyLevel;
|
|
193
|
-
/**
|
|
194
|
-
|
|
214
|
+
/**
|
|
215
|
+
* Post mode. `MEDIA_UPLOAD` is the same draft as {@link TikTokPhotoOptions.tiktokUploadToDraft}.
|
|
216
|
+
* Alias: `postMode` / `post_mode`.
|
|
217
|
+
*/
|
|
218
|
+
tiktokPostMode?: TikTokPostMode;
|
|
219
|
+
/** Alias of {@link TikTokPhotoOptions.tiktokPostMode}. */
|
|
220
|
+
postMode?: TikTokPostMode;
|
|
221
|
+
/** Alias of {@link TikTokPhotoOptions.tiktokPostMode}. */
|
|
222
|
+
post_mode?: TikTokPostMode;
|
|
195
223
|
/** Branded content toggle */
|
|
196
224
|
brandContentToggle?: boolean;
|
|
197
225
|
/** Brand organic toggle */
|
|
198
226
|
brandOrganicToggle?: boolean;
|
|
199
227
|
|
|
200
|
-
// ---- Music, location
|
|
201
|
-
// Photo posts accept the track id, the location pair
|
|
202
|
-
// not the volume/trim
|
|
203
|
-
// Available on connections that declare the matching capability
|
|
204
|
-
// `location`) — see `capabilities` on the TikTok account
|
|
205
|
-
// listUsers(). Without it the field is ignored, the post still
|
|
206
|
-
// the response includes a per-field `warnings` entry.
|
|
228
|
+
// ---- Music, location, AI disclosure and draft ----
|
|
229
|
+
// Photo posts accept the track id, the location pair, the AI disclosure and
|
|
230
|
+
// the draft switch — not the volume/trim or cover-image fields, which are
|
|
231
|
+
// video-only. Available on connections that declare the matching capability
|
|
232
|
+
// (`music`, `location`, `draft`) — see `capabilities` on the TikTok account
|
|
233
|
+
// returned by listUsers(). Without it the field is ignored, the post still
|
|
234
|
+
// publishes, and the response includes a per-field `warnings` entry.
|
|
207
235
|
|
|
208
236
|
/** Commercial Music Library track id (see getTiktokTrendingMusic) */
|
|
209
237
|
tiktokMusicId?: string;
|
|
@@ -213,6 +241,18 @@ declare module 'upload-post' {
|
|
|
213
241
|
tiktokLocationName?: string;
|
|
214
242
|
/** AI-generated content disclosure */
|
|
215
243
|
tiktokIsAiGenerated?: boolean;
|
|
244
|
+
/**
|
|
245
|
+
* Publish to drafts. Same draft as `tiktokPostMode: 'MEDIA_UPLOAD'` /
|
|
246
|
+
* `postMode: 'MEDIA_UPLOAD'`. Aliases: `uploadToDraft`, `tiktok_upload_to_draft`,
|
|
247
|
+
* `upload_to_draft`.
|
|
248
|
+
*/
|
|
249
|
+
tiktokUploadToDraft?: boolean;
|
|
250
|
+
/** Alias of {@link TikTokPhotoOptions.tiktokUploadToDraft}. */
|
|
251
|
+
uploadToDraft?: boolean;
|
|
252
|
+
/** Alias of {@link TikTokPhotoOptions.tiktokUploadToDraft}. */
|
|
253
|
+
tiktok_upload_to_draft?: boolean;
|
|
254
|
+
/** Alias of {@link TikTokPhotoOptions.tiktokUploadToDraft}. */
|
|
255
|
+
upload_to_draft?: boolean;
|
|
216
256
|
}
|
|
217
257
|
|
|
218
258
|
// ==================== Instagram Options ====================
|
|
@@ -245,6 +285,8 @@ declare module 'upload-post' {
|
|
|
245
285
|
instagramUserTags?: string;
|
|
246
286
|
/** Location ID */
|
|
247
287
|
instagramLocationId?: string;
|
|
288
|
+
/** Alt text: string (applied to every item) or list of strings, ≤1000 chars each */
|
|
289
|
+
instagramAltText?: string | string[];
|
|
248
290
|
}
|
|
249
291
|
|
|
250
292
|
// ==================== YouTube Options ====================
|
|
@@ -280,6 +322,10 @@ declare module 'upload-post' {
|
|
|
280
322
|
youtubeHasPaidProductPlacement?: boolean;
|
|
281
323
|
/** Recording date (ISO 8601) */
|
|
282
324
|
youtubeRecordingDate?: string;
|
|
325
|
+
/** Notify subscribers. Default true; send false to suppress the notification */
|
|
326
|
+
youtubeNotifySubscribers?: boolean;
|
|
327
|
+
/** RFC3339 time. Uploads the video as private until this instant (Studio: Scheduled) */
|
|
328
|
+
youtubePublishAt?: string;
|
|
283
329
|
/** Playlist ID(s) to add the uploaded video to — one ID, an array, or a comma-separated list */
|
|
284
330
|
youtubePlaylistId?: string | string[];
|
|
285
331
|
/** Subtitle/caption files to upload. Each entry needs a language code and either a file path or URL. */
|
|
@@ -302,6 +348,36 @@ declare module 'upload-post' {
|
|
|
302
348
|
linkedinVisibility?: LinkedInVisibility;
|
|
303
349
|
/** Page ID for organization posts */
|
|
304
350
|
targetLinkedinPageId?: string;
|
|
351
|
+
/** Alt text per image (string, JSON list, or repeated). Default = title */
|
|
352
|
+
linkedinAltText?: string | string[];
|
|
353
|
+
/** Disable reshare by others */
|
|
354
|
+
linkedinDisableReshare?: boolean;
|
|
355
|
+
/** Override the scraped link-share title (< 400 chars) */
|
|
356
|
+
linkedinLinkTitle?: string;
|
|
357
|
+
/** Override the scraped link-share description (< 4086 chars) */
|
|
358
|
+
linkedinLinkDescription?: string;
|
|
359
|
+
/** Alt text for the link-share thumbnail */
|
|
360
|
+
linkedinThumbnailAltText?: string;
|
|
361
|
+
/** Organic Page targeting: geo locations (CSV, JSON list, URN or numeric id) */
|
|
362
|
+
linkedinTargetGeoLocations?: string | string[];
|
|
363
|
+
linkedinTargetIndustries?: string | string[];
|
|
364
|
+
linkedinTargetSeniorities?: string | string[];
|
|
365
|
+
linkedinTargetJobFunctions?: string | string[];
|
|
366
|
+
linkedinTargetStaffCountRanges?: string | string[];
|
|
367
|
+
linkedinTargetInterfaceLocales?: string | string[];
|
|
368
|
+
linkedinTargetDegrees?: string | string[];
|
|
369
|
+
linkedinTargetFieldsOfStudy?: string | string[];
|
|
370
|
+
linkedinTargetOrganizations?: string | string[];
|
|
371
|
+
/** Raw LinkedIn targetEntities facets JSON */
|
|
372
|
+
linkedinTargetEntities?: Record<string, unknown> | string;
|
|
373
|
+
/** Reject the post if LinkedIn reports audience < 300 */
|
|
374
|
+
linkedinTargetCheckAudience?: boolean;
|
|
375
|
+
/** English SRT captions: local path, stream, or file */
|
|
376
|
+
linkedinSubtitles?: string | Buffer | NodeJS.ReadableStream;
|
|
377
|
+
/** Public URL of an English SRT file */
|
|
378
|
+
linkedinSubtitlesUrl?: string;
|
|
379
|
+
/** Inline English SRT text */
|
|
380
|
+
linkedinSubtitlesText?: string;
|
|
305
381
|
}
|
|
306
382
|
|
|
307
383
|
// ==================== Facebook Options ====================
|
|
@@ -315,11 +391,35 @@ declare module 'upload-post' {
|
|
|
315
391
|
facebookMediaType?: FacebookMediaType;
|
|
316
392
|
/** Thumbnail URL for normal page videos (only when facebookMediaType is 'VIDEO') */
|
|
317
393
|
thumbnailUrl?: string;
|
|
394
|
+
/** Facebook Place ID */
|
|
395
|
+
facebookPlaceId?: string;
|
|
396
|
+
/** Geographic/age/language targeting */
|
|
397
|
+
facebookTargeting?: Record<string, unknown> | string;
|
|
398
|
+
/** Feed targeting */
|
|
399
|
+
facebookFeedTargeting?: Record<string, unknown> | string;
|
|
400
|
+
/** AI-generated disclosure on Reels */
|
|
401
|
+
facebookIsAiGenerated?: boolean;
|
|
402
|
+
/** Unpublished type for page video: DRAFT, INLINE_CREATED, ADS_POST, PUBLISHED. Do not send SCHEDULED — use scheduledDate. */
|
|
403
|
+
facebookUnpublishedContentType?: 'DRAFT' | 'INLINE_CREATED' | 'ADS_POST' | 'PUBLISHED' | string;
|
|
404
|
+
/** Hide the video from the Page story */
|
|
405
|
+
facebookNoStory?: boolean;
|
|
406
|
+
/** Secret/unpublished video */
|
|
407
|
+
facebookSecret?: boolean;
|
|
408
|
+
/** Page IDs to invite as Reel collaborators (max 10 / 24h) */
|
|
409
|
+
facebookCollaborators?: string | string[];
|
|
318
410
|
}
|
|
319
411
|
|
|
320
412
|
export interface FacebookPhotoOptions {
|
|
321
413
|
/** Facebook Page ID */
|
|
322
414
|
facebookPageId?: string;
|
|
415
|
+
/** Alt text per photo */
|
|
416
|
+
facebookAltText?: string | string[];
|
|
417
|
+
/** Facebook Place ID */
|
|
418
|
+
facebookPlaceId?: string;
|
|
419
|
+
/** Geographic/age/language targeting */
|
|
420
|
+
facebookTargeting?: Record<string, unknown> | string;
|
|
421
|
+
/** Feed targeting */
|
|
422
|
+
facebookFeedTargeting?: Record<string, unknown> | string;
|
|
323
423
|
}
|
|
324
424
|
|
|
325
425
|
export interface FacebookTextOptions {
|
|
@@ -327,6 +427,18 @@ declare module 'upload-post' {
|
|
|
327
427
|
facebookPageId?: string;
|
|
328
428
|
/** URL to attach as link preview */
|
|
329
429
|
facebookLinkUrl?: string;
|
|
430
|
+
/** Facebook Place ID */
|
|
431
|
+
facebookPlaceId?: string;
|
|
432
|
+
/** Geographic/age/language targeting */
|
|
433
|
+
facebookTargeting?: Record<string, unknown> | string;
|
|
434
|
+
/** Feed targeting */
|
|
435
|
+
facebookFeedTargeting?: Record<string, unknown> | string;
|
|
436
|
+
/** Link-post CTA, e.g. { type: 'LEARN_MORE', link: 'https://…' } */
|
|
437
|
+
facebookCallToAction?: Record<string, unknown> | string;
|
|
438
|
+
/** Link carousel (2–5 objects with `link`) */
|
|
439
|
+
facebookChildAttachments?: Array<Record<string, unknown>> | string;
|
|
440
|
+
/** Show the multi-share end card (requires child attachments) */
|
|
441
|
+
facebookMultiShareEndCard?: boolean;
|
|
330
442
|
}
|
|
331
443
|
|
|
332
444
|
// ==================== Pinterest Options ====================
|
|
@@ -342,8 +454,12 @@ declare module 'upload-post' {
|
|
|
342
454
|
pinterestCoverImageContentType?: string;
|
|
343
455
|
/** Base64-encoded cover image data */
|
|
344
456
|
pinterestCoverImageData?: string;
|
|
345
|
-
/** Key frame time in
|
|
457
|
+
/** Key frame time in seconds (values larger than the video duration are treated as milliseconds) */
|
|
346
458
|
pinterestCoverImageKeyFrameTime?: number;
|
|
459
|
+
/** Board section ID */
|
|
460
|
+
pinterestBoardSectionId?: string;
|
|
461
|
+
/** AI disclosures: AI_MODIFIED and/or SYNTHETIC_PERFORMER */
|
|
462
|
+
pinterestAiDisclosures?: string | string[];
|
|
347
463
|
}
|
|
348
464
|
|
|
349
465
|
export interface PinterestPhotoOptions {
|
|
@@ -353,6 +469,18 @@ declare module 'upload-post' {
|
|
|
353
469
|
pinterestAltText?: string;
|
|
354
470
|
/** Destination link */
|
|
355
471
|
pinterestLink?: string;
|
|
472
|
+
/** Board section ID */
|
|
473
|
+
pinterestBoardSectionId?: string;
|
|
474
|
+
/** AI disclosures: AI_MODIFIED and/or SYNTHETIC_PERFORMER */
|
|
475
|
+
pinterestAiDisclosures?: string | string[];
|
|
476
|
+
/** Per-slide titles on a 2–5 photo carousel */
|
|
477
|
+
pinterestCarouselTitles?: string | string[];
|
|
478
|
+
/** Per-slide descriptions on a 2–5 photo carousel */
|
|
479
|
+
pinterestCarouselDescriptions?: string | string[];
|
|
480
|
+
/** Per-slide links on a 2–5 photo carousel */
|
|
481
|
+
pinterestCarouselLinks?: string | string[];
|
|
482
|
+
/** 0-based cover index on a carousel */
|
|
483
|
+
pinterestCarouselIndex?: number;
|
|
356
484
|
}
|
|
357
485
|
|
|
358
486
|
// ==================== X (Twitter) Options ====================
|
|
@@ -374,6 +502,8 @@ declare module 'upload-post' {
|
|
|
374
502
|
xDirectMessageDeepLink?: string;
|
|
375
503
|
/** Post long text as single post */
|
|
376
504
|
xLongTextAsPost?: boolean;
|
|
505
|
+
/** Paid partnership label on the first post */
|
|
506
|
+
xPaidPartnership?: boolean;
|
|
377
507
|
/** ID of the tweet to reply to (alias of the generic replyToId). */
|
|
378
508
|
xReplyToId?: string;
|
|
379
509
|
}
|
|
@@ -385,12 +515,22 @@ declare module 'upload-post' {
|
|
|
385
515
|
xPlaceId?: string;
|
|
386
516
|
/** Comma-separated image layout for thread (e.g. "4,4" or "2,3,1"). Each value 1-4, total must equal image count. */
|
|
387
517
|
xThreadImageLayout?: string;
|
|
518
|
+
/** Alt text (≤1000 chars). String for video; string, list or `x_alt_text[]` for photos */
|
|
519
|
+
xAltText?: string | string[];
|
|
520
|
+
/** Public URL of a .srt file (≤1 MB) */
|
|
521
|
+
xSubtitlesUrl?: string;
|
|
522
|
+
/** Inline SRT text, or a URL if the value starts with http(s) */
|
|
523
|
+
xSubtitles?: string;
|
|
524
|
+
/** 2-letter language code (default EN) */
|
|
525
|
+
xSubtitlesLanguage?: string;
|
|
526
|
+
/** Subtitle track name shown on X (≤150 chars) */
|
|
527
|
+
xSubtitlesName?: string;
|
|
388
528
|
}
|
|
389
529
|
|
|
390
530
|
export interface XTextOptions extends XBaseOptions {
|
|
391
531
|
/** URL to attach */
|
|
392
532
|
xPostUrl?: string;
|
|
393
|
-
/** Tweet ID to quote */
|
|
533
|
+
/** Tweet ID to quote. Quote posts require an X API Enterprise plan. */
|
|
394
534
|
xQuoteTweetId?: string;
|
|
395
535
|
/** Poll options (2-4 options) */
|
|
396
536
|
xPollOptions?: string | string[];
|
|
@@ -400,6 +540,16 @@ declare module 'upload-post' {
|
|
|
400
540
|
xPollReplySettings?: XReplySettings;
|
|
401
541
|
/** Card URI for Twitter Cards */
|
|
402
542
|
xCardUri?: string;
|
|
543
|
+
/** X Article title (≤100 chars, Premium) */
|
|
544
|
+
xArticleTitle?: string;
|
|
545
|
+
/** X Article body (plain text / light Markdown) */
|
|
546
|
+
xArticleBody?: string;
|
|
547
|
+
/** DraftJS content_state JSON */
|
|
548
|
+
xArticleContentState?: Record<string, unknown> | string;
|
|
549
|
+
/** Create the Article as a draft only */
|
|
550
|
+
xArticleDraft?: boolean;
|
|
551
|
+
/** Article cover: local file, public URL, or X media_id */
|
|
552
|
+
xArticleCoverMedia?: string | Buffer | NodeJS.ReadableStream;
|
|
403
553
|
}
|
|
404
554
|
|
|
405
555
|
// ==================== Threads Options ====================
|
|
@@ -407,19 +557,182 @@ declare module 'upload-post' {
|
|
|
407
557
|
export interface ThreadsOptions {
|
|
408
558
|
/** Post long text as single post (vs thread) */
|
|
409
559
|
threadsLongTextAsPost?: boolean;
|
|
410
|
-
/** Comma-separated list of how many media items per Threads post (e.g. "5,5"). Each value 1-
|
|
560
|
+
/** Comma-separated list of how many media items per Threads post (e.g. "5,5"). Each value 1-20, total must equal file count. */
|
|
411
561
|
threadsThreadMediaLayout?: string;
|
|
412
562
|
/** Topic tag for the Threads post */
|
|
413
563
|
threadsTopicTag?: string;
|
|
564
|
+
/** Who can reply: everyone, accounts_you_follow, mentioned_only, parent_post_author_only, followers_only */
|
|
565
|
+
threadsReplyControl?: 'everyone' | 'accounts_you_follow' | 'mentioned_only' | 'parent_post_author_only' | 'followers_only' | 'followers' | string;
|
|
566
|
+
/** Alt text per image/video (≤1000 chars) */
|
|
567
|
+
threadsAltText?: string | string[];
|
|
568
|
+
/** Publish as a reply to this Threads post id */
|
|
569
|
+
threadsReplyToId?: string;
|
|
570
|
+
/** Quote this Threads post id */
|
|
571
|
+
threadsQuotePostId?: string;
|
|
572
|
+
/** Force a link preview (text posts) */
|
|
573
|
+
threadsLinkAttachment?: string;
|
|
574
|
+
/** Poll options, 2–4 strings of 1–25 chars (text posts) */
|
|
575
|
+
threadsPollOptions?: string | string[];
|
|
576
|
+
/** Publish a text container without the second threads_publish call */
|
|
577
|
+
threadsAutoPublishText?: boolean;
|
|
414
578
|
}
|
|
415
579
|
|
|
416
580
|
// ==================== Reddit Options ====================
|
|
417
581
|
|
|
582
|
+
/**
|
|
583
|
+
* Reddit is currently unavailable. Uploads, OAuth and comments return HTTP 503
|
|
584
|
+
* with `error_code=reddit_unavailable`. Fields are still accepted and forwarded.
|
|
585
|
+
*/
|
|
418
586
|
export interface RedditOptions {
|
|
419
587
|
/** Subreddit name (without r/) */
|
|
420
588
|
redditSubreddit?: string;
|
|
421
589
|
/** Flair template ID */
|
|
422
590
|
redditFlairId?: string;
|
|
591
|
+
redditNsfw?: boolean;
|
|
592
|
+
redditSpoiler?: boolean;
|
|
593
|
+
redditResubmit?: boolean;
|
|
594
|
+
redditSendReplies?: boolean;
|
|
595
|
+
/** Custom text for editable flairs */
|
|
596
|
+
redditFlairText?: string;
|
|
597
|
+
/** Per-image captions (JSON array or `||`-separated) */
|
|
598
|
+
redditGalleryCaptions?: string | string[];
|
|
599
|
+
/** Per-image outbound URLs (JSON array or `||`-separated) */
|
|
600
|
+
redditGalleryUrls?: string | string[];
|
|
601
|
+
}
|
|
602
|
+
|
|
603
|
+
// ==================== Bluesky Options ====================
|
|
604
|
+
|
|
605
|
+
export interface BlueskyOptions {
|
|
606
|
+
/** Alt text per image/video (string, JSON array or `||`-separated) */
|
|
607
|
+
blueskyAltText?: string | string[];
|
|
608
|
+
/** Up to 3 BCP-47 language codes, comma-separated */
|
|
609
|
+
blueskyLangs?: string | string[];
|
|
610
|
+
/** Content labels: porn, sexual, nudity, graphic-media */
|
|
611
|
+
blueskyLabels?: string | string[];
|
|
612
|
+
/** Publish up to 20 images as a gallery (default: first 4) */
|
|
613
|
+
blueskyGallery?: boolean;
|
|
614
|
+
/** Who can reply: everyone, nobody, mention, following, followers, list:<at://uri> */
|
|
615
|
+
blueskyThreadgate?: string;
|
|
616
|
+
/** Alias of blueskyThreadgate */
|
|
617
|
+
blueskyReplySettings?: string;
|
|
618
|
+
/** `disable_quotes` or `true` to block quotes */
|
|
619
|
+
blueskyPostgate?: string | boolean;
|
|
620
|
+
/** Alias of blueskyPostgate */
|
|
621
|
+
blueskyQuoteSettings?: string | boolean;
|
|
622
|
+
/** Quote a post (bsky.app URL or at:// URI) */
|
|
623
|
+
blueskyQuoteUri?: string;
|
|
624
|
+
blueskyQuoteId?: string;
|
|
625
|
+
blueskyQuoteUrl?: string;
|
|
626
|
+
}
|
|
627
|
+
|
|
628
|
+
export interface DiscordOptions {
|
|
629
|
+
discordThreadId?: string;
|
|
630
|
+
discordThreadName?: string;
|
|
631
|
+
discordAppliedTags?: string | string[];
|
|
632
|
+
discordEmbeds?: Array<Record<string, unknown>> | string;
|
|
633
|
+
discordUsername?: string;
|
|
634
|
+
discordAvatarUrl?: string;
|
|
635
|
+
discordAllowedMentions?: Record<string, unknown> | string;
|
|
636
|
+
discordAltText?: string | string[];
|
|
637
|
+
discordFlags?: number;
|
|
638
|
+
discordTts?: boolean;
|
|
639
|
+
discordPoll?: Record<string, unknown> | string;
|
|
640
|
+
discordMaxFileMb?: number;
|
|
641
|
+
}
|
|
642
|
+
|
|
643
|
+
export interface TelegramOptions {
|
|
644
|
+
telegramParseMode?: 'MarkdownV2' | 'HTML' | string;
|
|
645
|
+
telegramMessageThreadId?: number | string;
|
|
646
|
+
telegramDisableNotification?: boolean;
|
|
647
|
+
telegramProtectContent?: boolean;
|
|
648
|
+
telegramHasSpoiler?: boolean;
|
|
649
|
+
telegramLinkPreview?: boolean;
|
|
650
|
+
telegramReplyMarkup?: Record<string, unknown> | string;
|
|
651
|
+
telegramCaptionOverflow?: 'truncate' | 'split';
|
|
652
|
+
telegramAsDocument?: boolean;
|
|
653
|
+
telegramMediaUrls?: string | string[];
|
|
654
|
+
}
|
|
655
|
+
|
|
656
|
+
export interface MastodonOptions {
|
|
657
|
+
mastodonVisibility?: 'public' | 'unlisted' | 'private' | 'direct';
|
|
658
|
+
mastodonSensitive?: boolean;
|
|
659
|
+
mastodonSpoilerText?: string;
|
|
660
|
+
mastodonLanguage?: string;
|
|
661
|
+
mastodonAltText?: string | string[];
|
|
662
|
+
mastodonPollOptions?: string | string[];
|
|
663
|
+
mastodonPollExpiresIn?: number;
|
|
664
|
+
mastodonPollMultiple?: boolean;
|
|
665
|
+
mastodonScheduledAt?: string;
|
|
666
|
+
}
|
|
667
|
+
|
|
668
|
+
export interface WordpressOptions {
|
|
669
|
+
wordpressStatus?: 'publish' | 'draft' | 'pending' | 'future';
|
|
670
|
+
wordpressDate?: string;
|
|
671
|
+
wordpressCategories?: string | string[];
|
|
672
|
+
wordpressTags?: string | string[];
|
|
673
|
+
wordpressExcerpt?: string;
|
|
674
|
+
wordpressSlug?: string;
|
|
675
|
+
wordpressAltText?: string;
|
|
676
|
+
wordpressMediaCaption?: string;
|
|
677
|
+
wordpressBlockFormat?: boolean;
|
|
678
|
+
}
|
|
679
|
+
|
|
680
|
+
export interface LemmyOptions {
|
|
681
|
+
lemmyUrl?: string;
|
|
682
|
+
lemmyCommunity?: string;
|
|
683
|
+
lemmyNsfw?: boolean;
|
|
684
|
+
lemmyLanguageId?: number | string;
|
|
685
|
+
lemmyAltText?: string;
|
|
686
|
+
}
|
|
687
|
+
|
|
688
|
+
export interface SlackOptions {
|
|
689
|
+
slackMarkdown?: boolean;
|
|
690
|
+
slackBlocks?: Array<Record<string, unknown>> | string;
|
|
691
|
+
slackMrkdwn?: boolean;
|
|
692
|
+
slackAltText?: string;
|
|
693
|
+
slackFirstCommentMode?: 'separate' | 'inline';
|
|
694
|
+
}
|
|
695
|
+
|
|
696
|
+
export interface NostrOptions {
|
|
697
|
+
nostrKind?: 1 | 20 | 22 | 34235 | 30023 | number;
|
|
698
|
+
nostrLongForm?: boolean;
|
|
699
|
+
}
|
|
700
|
+
|
|
701
|
+
export interface DevtoOptions {
|
|
702
|
+
devtoTags?: string | string[];
|
|
703
|
+
devtoCanonicalUrl?: string;
|
|
704
|
+
devtoDescription?: string;
|
|
705
|
+
devtoMainImage?: string;
|
|
706
|
+
devtoSeries?: string;
|
|
707
|
+
devtoPublished?: boolean;
|
|
708
|
+
}
|
|
709
|
+
|
|
710
|
+
export interface HashnodeOptions {
|
|
711
|
+
hashnodeTags?: string | string[];
|
|
712
|
+
hashnodeOriginalArticleUrl?: string;
|
|
713
|
+
hashnodeSubtitle?: string;
|
|
714
|
+
hashnodeCoverImageUrl?: string;
|
|
715
|
+
hashnodeDraft?: boolean;
|
|
716
|
+
hashnodeBody?: string;
|
|
717
|
+
/** Alias of hashnodeBody */
|
|
718
|
+
content?: string;
|
|
719
|
+
}
|
|
720
|
+
|
|
721
|
+
export interface WhopOptions {
|
|
722
|
+
whopBody?: string;
|
|
723
|
+
whopPinned?: boolean;
|
|
724
|
+
whopIsMention?: boolean;
|
|
725
|
+
whopPaywallAmount?: number;
|
|
726
|
+
whopPaywallCurrency?: string;
|
|
727
|
+
whopAttachmentIds?: string | string[];
|
|
728
|
+
}
|
|
729
|
+
|
|
730
|
+
export interface ListmonkOptions {
|
|
731
|
+
listmonkContentType?: 'richtext' | 'markdown' | 'html' | 'plain';
|
|
732
|
+
listmonkSendAt?: string;
|
|
733
|
+
listmonkLists?: string | string[];
|
|
734
|
+
listmonkTemplateId?: string | number;
|
|
735
|
+
listmonkMediaIds?: string | string[];
|
|
423
736
|
}
|
|
424
737
|
|
|
425
738
|
// ==================== Combined Upload Options ====================
|
|
@@ -472,6 +785,14 @@ declare module 'upload-post' {
|
|
|
472
785
|
gbpOfferRedeemUrl?: string;
|
|
473
786
|
/** Offer terms and conditions */
|
|
474
787
|
gbpOfferTerms?: string;
|
|
788
|
+
/** BCP-47 language code. Default "en" */
|
|
789
|
+
gbpLanguageCode?: string;
|
|
790
|
+
/** Alias of gbpOfferCoupon */
|
|
791
|
+
gbpCouponCode?: string;
|
|
792
|
+
/** Alias of gbpOfferRedeemUrl */
|
|
793
|
+
gbpRedeemUrl?: string;
|
|
794
|
+
/** Alias of gbpOfferTerms */
|
|
795
|
+
gbpTerms?: string;
|
|
475
796
|
}
|
|
476
797
|
|
|
477
798
|
export interface UploadVideoOptions extends CommonUploadOptions,
|
|
@@ -484,7 +805,12 @@ declare module 'upload-post' {
|
|
|
484
805
|
XMediaOptions,
|
|
485
806
|
ThreadsOptions,
|
|
486
807
|
RedditOptions,
|
|
487
|
-
GoogleBusinessOptions
|
|
808
|
+
GoogleBusinessOptions,
|
|
809
|
+
BlueskyOptions,
|
|
810
|
+
DiscordOptions,
|
|
811
|
+
TelegramOptions,
|
|
812
|
+
MastodonOptions,
|
|
813
|
+
WordpressOptions {
|
|
488
814
|
/** Target platforms */
|
|
489
815
|
platforms: VideoPlatform[];
|
|
490
816
|
}
|
|
@@ -498,7 +824,13 @@ declare module 'upload-post' {
|
|
|
498
824
|
XMediaOptions,
|
|
499
825
|
ThreadsOptions,
|
|
500
826
|
RedditOptions,
|
|
501
|
-
GoogleBusinessOptions
|
|
827
|
+
GoogleBusinessOptions,
|
|
828
|
+
BlueskyOptions,
|
|
829
|
+
DiscordOptions,
|
|
830
|
+
TelegramOptions,
|
|
831
|
+
MastodonOptions,
|
|
832
|
+
LemmyOptions,
|
|
833
|
+
WordpressOptions {
|
|
502
834
|
/** Target platforms */
|
|
503
835
|
platforms: PhotoPlatform[];
|
|
504
836
|
}
|
|
@@ -519,7 +851,19 @@ declare module 'upload-post' {
|
|
|
519
851
|
ThreadsOptions,
|
|
520
852
|
RedditOptions,
|
|
521
853
|
LinkPreviewOptions,
|
|
522
|
-
GoogleBusinessOptions
|
|
854
|
+
GoogleBusinessOptions,
|
|
855
|
+
BlueskyOptions,
|
|
856
|
+
DiscordOptions,
|
|
857
|
+
TelegramOptions,
|
|
858
|
+
SlackOptions,
|
|
859
|
+
MastodonOptions,
|
|
860
|
+
NostrOptions,
|
|
861
|
+
LemmyOptions,
|
|
862
|
+
DevtoOptions,
|
|
863
|
+
HashnodeOptions,
|
|
864
|
+
WordpressOptions,
|
|
865
|
+
WhopOptions,
|
|
866
|
+
ListmonkOptions {
|
|
523
867
|
/** Target platforms */
|
|
524
868
|
platforms: TextPlatform[];
|
|
525
869
|
}
|
|
@@ -535,6 +879,9 @@ declare module 'upload-post' {
|
|
|
535
879
|
linkedinVisibility?: LinkedInVisibility;
|
|
536
880
|
/** Page ID for organization posts */
|
|
537
881
|
targetLinkedinPageId?: string;
|
|
882
|
+
linkedinAltText?: string | string[];
|
|
883
|
+
linkedinDisableReshare?: boolean;
|
|
884
|
+
linkedinTargetCheckAudience?: boolean;
|
|
538
885
|
/** ISO date for scheduling */
|
|
539
886
|
scheduledDate?: string;
|
|
540
887
|
/** Timezone for scheduled date */
|
|
@@ -1059,7 +1406,18 @@ declare module 'upload-post' {
|
|
|
1059
1406
|
* @param jobId - Scheduled job ID
|
|
1060
1407
|
* @param options - Edit options
|
|
1061
1408
|
*/
|
|
1062
|
-
editScheduled(jobId: string, options: {
|
|
1409
|
+
editScheduled(jobId: string, options: {
|
|
1410
|
+
scheduledDate?: string;
|
|
1411
|
+
timezone?: string;
|
|
1412
|
+
/** New title for every platform */
|
|
1413
|
+
title?: string;
|
|
1414
|
+
/** New caption/description for every platform */
|
|
1415
|
+
caption?: string;
|
|
1416
|
+
/** Alias of caption */
|
|
1417
|
+
description?: string;
|
|
1418
|
+
/** Per-platform text; only the platforms listed are touched */
|
|
1419
|
+
platformContent?: Record<string, { title?: string; caption?: string }>;
|
|
1420
|
+
}): Promise<{ success: boolean }>;
|
|
1063
1421
|
|
|
1064
1422
|
// User Management
|
|
1065
1423
|
/**
|