@adkit/cli 1.13.33 → 1.13.34

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/cli.js +86 -1
  2. package/package.json +1 -1
package/dist/cli.js CHANGED
@@ -4818,6 +4818,56 @@ async function getLibraryAd(client, args, _flags) {
4818
4818
  if (!id) throw new CliError("MISSING_ARGUMENT", "Missing required argument: `<id>`", "Run: adkit library ads <ad-id>");
4819
4819
  return client.get(`/library/ads/${id}`);
4820
4820
  }
4821
+ var LIBRARY_BOARD_FIELDS = ["name", "description", "color"];
4822
+ async function createLibraryBoard(client, _args, flags) {
4823
+ validateFlags(flags, LIBRARY_BOARD_FIELDS, "library boards create");
4824
+ const name = requireFlag(flags, "name", "Run: adkit library boards create --name <name>");
4825
+ const body = { name };
4826
+ const description = readLibraryBoardTextFlag(flags, "description");
4827
+ const color = readLibraryBoardTextFlag(flags, "color");
4828
+ if (description !== void 0) body.description = description;
4829
+ if (color !== void 0) body.color = color;
4830
+ return client.post("/library/boards", body);
4831
+ }
4832
+ async function updateLibraryBoard(client, args, flags) {
4833
+ validateFlags(flags, [...LIBRARY_BOARD_FIELDS, "share-enabled"], "library boards update");
4834
+ const boardId = requireArg(args, 0, "board-id", "Run: adkit library boards update <board-id> --name <name>");
4835
+ const body = {};
4836
+ const name = readLibraryBoardTextFlag(flags, "name");
4837
+ const description = readLibraryBoardTextFlag(flags, "description");
4838
+ const color = readLibraryBoardTextFlag(flags, "color");
4839
+ const shareEnabled = readLibraryBoardShareEnabled(flags);
4840
+ if (name !== void 0) body.name = name;
4841
+ if (description !== void 0) body.description = description;
4842
+ if (color !== void 0) body.color = color;
4843
+ if (shareEnabled !== void 0) body.shareEnabled = shareEnabled;
4844
+ if (Object.keys(body).length === 0) throw new CliError("MISSING_FLAG", "Board update requires at least one field", "Use --name, --description, --color, or --share-enabled <true|false>");
4845
+ const encodedBoardId = encodeURIComponent(boardId);
4846
+ return client.patch(`/library/boards/${encodedBoardId}`, body);
4847
+ }
4848
+ async function addLibraryBoardAds(client, args, flags) {
4849
+ validateFlags(flags, [], "library boards add-ads");
4850
+ const boardId = requireArg(args, 0, "board-id", "Run: adkit library boards add-ads <board-id> <ad-id...>");
4851
+ const adIds = args.slice(1);
4852
+ if (adIds.length === 0) throw new CliError("MISSING_ARGUMENT", "Expected at least one ad ID after the board ID", "Run: adkit library boards add-ads <board-id> <ad-id...>");
4853
+ if (adIds.length > 20) throw new CliError("INVALID_VALUE", "A board add-ads command accepts at most 20 ad IDs", "Split the ads across multiple add-ads commands");
4854
+ const encodedBoardId = encodeURIComponent(boardId);
4855
+ return client.post(`/library/boards/${encodedBoardId}/ads`, { adIds });
4856
+ }
4857
+ function readLibraryBoardTextFlag(flags, key) {
4858
+ const value = flags[key];
4859
+ if (typeof value === "string") return value;
4860
+ if (!Array.isArray(value)) return void 0;
4861
+ if (value.length === 1) return value[0];
4862
+ throw new CliError("INVALID_VALUE", `--${key} can only be provided once for board commands`, `Use one --${key} value`);
4863
+ }
4864
+ function readLibraryBoardShareEnabled(flags) {
4865
+ const value = flags["share-enabled"];
4866
+ if (value === void 0) return void 0;
4867
+ if (value === true || value === "true") return true;
4868
+ if (value === "false") return false;
4869
+ throw new CliError("INVALID_VALUE", "--share-enabled must be true or false", "Use --share-enabled true or --share-enabled false");
4870
+ }
4821
4871
 
4822
4872
  // src/commands/studio.ts
4823
4873
  import { readFile as readFile2 } from "node:fs/promises";
@@ -8122,8 +8172,27 @@ Examples:
8122
8172
 
8123
8173
  advertisers Browse and inspect advertisers
8124
8174
  ads Browse and inspect ads
8175
+ boards Create, update, share, and fill inspiration boards
8125
8176
 
8126
8177
  Run \`adkit library <command> --help\` for details.`.trim(),
8178
+ "library boards": `adkit library boards \u2014 Manage inspiration boards
8179
+
8180
+ create Create a private board
8181
+ update <board-id> Update board details or sharing
8182
+ add-ads <board-id> <ad-id...> Add 1-20 library ads without duplicates
8183
+
8184
+ Flags (create/update):
8185
+ --name <text> Board name
8186
+ --description <text> Board description
8187
+ --color <value> Board color
8188
+ --share-enabled <true|false> Enable or disable the public link (update only)
8189
+ --project <id> Choose the project; otherwise use the active project
8190
+
8191
+ Examples:
8192
+ adkit library boards create --name "Offer-first banners"
8193
+ adkit library boards update 507f1f77bcf86cd799439011 --name "Client references"
8194
+ adkit library boards update 507f1f77bcf86cd799439011 --share-enabled true
8195
+ adkit library boards add-ads 507f1f77bcf86cd799439011 507f1f77bcf86cd799439012 507f1f77bcf86cd799439013`.trim(),
8127
8196
  studio: `adkit studio \u2014 Create and manage Studio ads
8128
8197
 
8129
8198
  ads Manage Studio ads
@@ -10406,7 +10475,23 @@ ${pageInfo}`);
10406
10475
  }
10407
10476
  return;
10408
10477
  }
10409
- throw new CliError("UNKNOWN_COMMAND", `Unknown library command: ${libraryTarget}`, "Available: advertisers, ads");
10478
+ if (libraryTarget === "boards") {
10479
+ const action = args[2];
10480
+ if (flags.help || !action) {
10481
+ showHelp("library boards", flags.help === "full");
10482
+ return;
10483
+ }
10484
+ const client = requireClient(flags);
10485
+ const commandArgs = args.slice(3);
10486
+ let data;
10487
+ if (action === "create") data = await createLibraryBoard(client, commandArgs, flags);
10488
+ else if (action === "update") data = await updateLibraryBoard(client, commandArgs, flags);
10489
+ else if (action === "add-ads") data = await addLibraryBoardAds(client, commandArgs, flags);
10490
+ else throw new CliError("UNKNOWN_COMMAND", `Unknown library boards action: ${action}`, "Available: create, update, add-ads");
10491
+ printResult(data, flags);
10492
+ return;
10493
+ }
10494
+ throw new CliError("UNKNOWN_COMMAND", `Unknown library command: ${libraryTarget}`, "Available: advertisers, ads, boards");
10410
10495
  }
10411
10496
  if (args[0] === "studio") {
10412
10497
  const studioTarget = args[1];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adkit/cli",
3
- "version": "1.13.33",
3
+ "version": "1.13.34",
4
4
  "description": "The Ads CLI for AI agents — manage Meta & Google ad campaigns, browse the ad library, and generate creatives from your terminal.",
5
5
  "keywords": [
6
6
  "ads cli",