chirpie 1.2.2 → 1.2.4

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 (2) hide show
  1. package/dist/index.js +8 -8
  2. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -199,8 +199,8 @@ async function resolveMediaArgs(client, media, alt) {
199
199
  }
200
200
  return items;
201
201
  }
202
- var MEDIA_OPTION_HELP = "Image or video files on this machine, or public URLs. Files are uploaded first. Image caps: X, Bluesky, LinkedIn and Mastodon 4, Threads 1, Instagram, Facebook and Telegram 10. Video: X, Mastodon and Telegram only, one per post, never with images. Anything a platform cannot take is refused rather than dropped.";
203
- var ALT_OPTION_HELP = "Describe each item for people using a screen reader, in the same order as --media. Carried to X, Bluesky, LinkedIn, Mastodon, Instagram and Facebook.";
202
+ var MEDIA_OPTION_HELP = "Image or video files on this machine, or public URLs. Files are uploaded first. Image caps: X, Bluesky, LinkedIn and Mastodon 4, Telegram 10, and (coming soon) Threads 1, Instagram and Facebook 10. Video: X, Mastodon and Telegram only, one per post, never with images. Anything a platform cannot take is refused rather than dropped.";
203
+ var ALT_OPTION_HELP = "Describe each item for people using a screen reader, in the same order as --media. Carried to X, Bluesky, LinkedIn and Mastodon, and to Instagram and Facebook (coming soon).";
204
204
 
205
205
  // src/lib/accounts.ts
206
206
  import { readFileSync } from "fs";
@@ -424,8 +424,8 @@ async function resolveNamedAccounts(client, named, configurations) {
424
424
  }
425
425
 
426
426
  // src/lib/placement.ts
427
- var INSTAGRAM_PLACEMENT_HELP = 'Where the post goes on Instagram: feed (the default), story or reel. A story takes exactly one image or video, no caption (pass "" as the text) and no first comment. A reel takes exactly one video. Only pass this when the post is going to an Instagram account';
428
- var FACEBOOK_PLACEMENT_HELP = "Where the post goes on a Facebook Page: feed (the default) or story. A story takes exactly one image or video, no text and no first comment. Only pass this when the post is going to a Facebook Page";
427
+ var INSTAGRAM_PLACEMENT_HELP = 'Where the post goes on Instagram (coming soon): feed (the default), story or reel. A story takes exactly one image or video, no caption (pass "" as the text) and no first comment. A reel takes exactly one video. Only pass this when the post is going to an Instagram account';
428
+ var FACEBOOK_PLACEMENT_HELP = "Where the post goes on a Facebook Page (coming soon): feed (the default) or story. A story takes exactly one image or video, no text and no first comment. Only pass this when the post is going to a Facebook Page";
429
429
  var INSTAGRAM_PLACEMENTS = ["feed", "story", "reel"];
430
430
  var FACEBOOK_PLACEMENTS = ["feed", "story"];
431
431
  function placementConfiguration(opts) {
@@ -455,7 +455,7 @@ var postCommand = new Command3("post").description("Create a post").argument("<t
455
455
  "-a, --account <id>",
456
456
  "Account ID. Repeat it to publish the same post to several accounts at once (up to 25)",
457
457
  collect
458
- ).option("-m, --media <files...>", MEDIA_OPTION_HELP).option("--first-comment <text>", "Post this as a comment under the post, as soon as it goes out. X, Threads, Instagram and Facebook only. It counts as one post against your monthly quota").option("--alt <text...>", ALT_OPTION_HELP).option("--instagram-placement <placement>", INSTAGRAM_PLACEMENT_HELP).option("--facebook-placement <placement>", FACEBOOK_PLACEMENT_HELP).option(
458
+ ).option("-m, --media <files...>", MEDIA_OPTION_HELP).option("--first-comment <text>", "Post this as a comment under the post, as soon as it goes out. X only, and Threads, Instagram and Facebook (coming soon). It counts as one post against your monthly quota").option("--alt <text...>", ALT_OPTION_HELP).option("--instagram-placement <placement>", INSTAGRAM_PLACEMENT_HELP).option("--facebook-placement <placement>", FACEBOOK_PLACEMENT_HELP).option(
459
459
  "--config <json-or-file>",
460
460
  'Per-account overrides as JSON, or a path to a JSON file holding them: { "<account id>": { "text": "...", "media_urls": ["..."], "first_comment": "...", "configuration": { "instagram": { "placement": "reel" } } } }. Every key must be an account named with --account, "first_comment": "" publishes that account without the first comment the call is sending, and "configuration" replaces the placement flags for that account and is where the options a placement carries go (collaborators, user_tags, cover, video_cover_timestamp_ms, share_to_feed, trial_reel on Instagram, link on a Facebook Page)'
461
461
  ).option("-s, --schedule <datetime>", "Schedule for later. An ISO 8601 timestamp carrying a timezone (2026-04-01T14:00:00Z or 2026-04-01T16:00:00+02:00), or a local time with no offset (2026-11-01T09:30) read in --timezone or the timezone saved on your account. Posts publish within ~5 minutes of the scheduled time.").option(
@@ -568,7 +568,7 @@ function parseAltSpec(spec) {
568
568
  alts: m[2].split(",").map((a) => a.trim())
569
569
  };
570
570
  }
571
- var threadCommand = new Command4("thread").description("Create a thread").argument("[posts...]", "Thread posts (each argument is one post). Omit when using --file.").option("--first-comment <text>", "Post this as a comment under the thread's last post, as soon as it goes out. X, Threads, Instagram and Facebook only. It counts as one post against your monthly quota").option(
571
+ var threadCommand = new Command4("thread").description("Create a thread").argument("[posts...]", "Thread posts (each argument is one post). Omit when using --file.").option("--first-comment <text>", "Post this as a comment under the thread's last post, as soon as it goes out. X only, and Threads, Instagram and Facebook (coming soon). It counts as one post against your monthly quota").option(
572
572
  "-a, --account <id>",
573
573
  "Account ID. Repeat it to publish the same thread to several accounts at once (up to 25)",
574
574
  collect
@@ -577,7 +577,7 @@ var threadCommand = new Command4("thread").description("Create a thread").argume
577
577
  'Per-post media as "INDEX:file1,file2" (repeatable). Files on this machine are uploaded first; public URLs are used as they are. Example: -m 0:./shot.png 2:https://b.png,https://c.png'
578
578
  ).option(
579
579
  "--alt <specs...>",
580
- 'Per-post alt text as "INDEX:first,second", lining up with --media. Carried to X, Bluesky, LinkedIn, Mastodon, Instagram and Facebook.'
580
+ 'Per-post alt text as "INDEX:first,second", lining up with --media. Carried to X, Bluesky, LinkedIn and Mastodon, and to Instagram and Facebook (coming soon).'
581
581
  ).option(
582
582
  "-f, --file <path>",
583
583
  "JSON file with a full thread payload: { posts: [{ text, media_urls? }, ...], schedule_at?: string }. It may also carry account_ids and account_configurations."
@@ -1015,7 +1015,7 @@ async function readSecretFromStdin(prompt) {
1015
1015
  stdin.on("data", onData);
1016
1016
  });
1017
1017
  }
1018
- var accountsCommand = new Command6("accounts").description("List connected social accounts (X, Bluesky, LinkedIn, Threads, Mastodon, Instagram, Facebook, and Telegram)").option("--json", "Output raw JSON").action(async (opts, cmd) => {
1018
+ var accountsCommand = new Command6("accounts").description("List connected social accounts (X, Bluesky, LinkedIn, Mastodon and Telegram; Threads, Instagram and Facebook coming soon)").option("--json", "Output raw JSON").action(async (opts, cmd) => {
1019
1019
  const client = getClient();
1020
1020
  try {
1021
1021
  const list = await client.listAccountsWithLimits();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chirpie",
3
- "version": "1.2.2",
3
+ "version": "1.2.4",
4
4
  "description": "Chirpie CLI: post to social media from the command line",
5
5
  "repository": {
6
6
  "type": "git",
@@ -44,7 +44,7 @@
44
44
  ],
45
45
  "license": "MIT",
46
46
  "dependencies": {
47
- "@chirpie/sdk": "^1.2.2",
47
+ "@chirpie/sdk": "^1.2.4",
48
48
  "commander": "^13"
49
49
  },
50
50
  "devDependencies": {