@usesocial/cli 0.2.2 → 0.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @usesocial/cli
2
2
 
3
+ ## 0.2.4
4
+
5
+ ### Patch Changes
6
+
7
+ - [`ef4d221`](https://github.com/usesocial/monorepo/commit/ef4d221adc93f52a7afd3cbcfbc35d5d4d5b6131) Thanks [@CyrusNuevoDia](https://github.com/CyrusNuevoDia)! - Bundle the CLI environment helper so the npm tarball can run directly from Homebrew.
8
+
9
+ ## 0.2.3
10
+
11
+ ### Patch Changes
12
+
13
+ - [`962b0ad`](https://github.com/usesocial/monorepo/commit/962b0ad79bd764b27a24bf157115c721afb49017) Thanks [@CyrusNuevoDia](https://github.com/CyrusNuevoDia)! - Cache more non-DM X reads, including handle lookup, engagement graphs,
14
+ bookmarks, likes, mentions, timeline, lists, and list members.
15
+
16
+ - [`6a79019`](https://github.com/usesocial/monorepo/commit/6a79019a46e09e63148341ea8b8cf67aec1f4819) Thanks [@CyrusNuevoDia](https://github.com/CyrusNuevoDia)! - Mark `social x profile` as a cacheable read so repeated profile fetches can be
17
+ served from cache for zero credits and support `-H/--header` cache controls.
18
+
3
19
  ## 0.2.2
4
20
 
5
21
  ### Patch Changes
package/README.md CHANGED
@@ -45,7 +45,7 @@ A few of the things the command surface supports:
45
45
  | "Surface the ten connections worth reaching out to this week." | `linkedin connections`, `x tweets` |
46
46
  | "Pull everyone who reacted to my last LinkedIn post and flag the warm leads." | `linkedin reactions`, `linkedin profile` |
47
47
  | "Read this creator's recent posts and break down what makes them land." | `linkedin posts`, `x tweets` |
48
- | "Find what people are saying about AI agents this week and summarize the themes." | `linkedin search posts`, `x timeline` |
48
+ | "Find what people are saying about AI agents this week and summarize the themes." | `linkedin posts`, `x timeline` |
49
49
  | "Draft a reply to this thread and post it once I approve." | `linkedin comment`, `x post` |
50
50
 
51
51
  ## Commands
@@ -84,10 +84,10 @@ connected account.
84
84
  | `(bare)` | Show who is signed in and list connected accounts. | |
85
85
  | `login` | Device sign-in, scope selection, and billing. | |
86
86
  | `logout` | Revoke the session and clear the saved token. | |
87
- | `connect linkedin` | Connect a LinkedIn account through the browser. | ✎ write |
88
- | `connect x` | Connect an X account through OAuth. | ✎ write |
89
- | `reconnect linkedin <account>` | Re-auth an existing LinkedIn account. | ✎ write |
90
- | `reconnect x <account>` | Re-auth an existing X account. | ✎ write |
87
+ | `connect linkedin` | Open or print a LinkedIn connection URL. | ✎ write |
88
+ | `connect x` | Open or print an X OAuth URL. | ✎ write |
89
+ | `reconnect linkedin <account>` | Re-auth an existing LinkedIn account by opening or printing a connection URL. | ✎ write |
90
+ | `reconnect x <account>` | Re-auth an existing X account by opening or printing an OAuth URL. | ✎ write |
91
91
  | `disconnect linkedin <account>` | Disconnect a LinkedIn account. | ✎ write |
92
92
  | `disconnect x <account>` | Disconnect an X account. | ✎ write |
93
93
  | `usage` | Aggregate proxy usage and billing stats. | |
@@ -116,10 +116,6 @@ connected account.
116
116
  | `connections [target]` | List connections; omit the target for account-level connections. | |
117
117
  | `company <target>` | Fetch a company profile. | |
118
118
  | `jobs <target>` | List a company's job postings. | |
119
- | `search people <keywords>` | Search for people. | |
120
- | `search posts <keywords>` | Search for posts. | |
121
- | `search jobs <keywords>` | Search for jobs. | |
122
- | `search companies <keywords>` | Search for companies. | |
123
119
  | `messages` | List conversations. | |
124
120
  | `messages <target>` | Read a conversation by `chat_id:<id>`, `@handle`, `profile_id:<id>`, profile URL, or messaging-thread URL. | |
125
121
  | `message <target> <text>` | Send a message. | ✎ write |
@@ -160,9 +156,9 @@ connected account.
160
156
  then knows the commands.
161
157
 
162
158
  ```sh
163
- # Find hiring posts, fan out to reaction graphs, rank warm contacts.
164
- social linkedin search posts "AI infra hiring" --limit 25 > /tmp/hiring-posts.json
165
- jq -r '.items[].id' /tmp/hiring-posts.json \
159
+ # Review recent LinkedIn posts, fan out to reaction graphs, rank warm contacts.
160
+ social linkedin posts --limit 25 > /tmp/recent-posts.json
161
+ jq -r '.items[].id' /tmp/recent-posts.json \
166
162
  | xargs -I{} social linkedin reactions post_id:{} \
167
163
  | jq -s '[ .[] | .items[] ]
168
164
  | group_by(.actor.id // .reactor.id // .profile_id)
@@ -247,7 +243,6 @@ Built so your accounts outlive your prototype.
247
243
 
248
244
  ```sh
249
245
  # LinkedIn
250
- social linkedin search people "founder ai"
251
246
  social linkedin profile
252
247
 
253
248
  # X
package/dist/index.mjs CHANGED
@@ -5,7 +5,6 @@ import * as fs from "node:fs";
5
5
  import { createReadStream, mkdirSync, readFileSync, writeFileSync } from "node:fs";
6
6
  import { homedir } from "node:os";
7
7
  import { dirname, join, resolve } from "node:path";
8
- import { createEnv } from "@t3-oss/env-core";
9
8
  import { parseArgs, stripVTControlCharacters, styleText } from "node:util";
10
9
  import { setTimeout as setTimeout$1 } from "node:timers/promises";
11
10
  import { createHash } from "node:crypto";
@@ -1755,7 +1754,7 @@ var Doc = class {
1755
1754
  };
1756
1755
  //#endregion
1757
1756
  //#region ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/core/versions.js
1758
- const version$1 = {
1757
+ const version$2 = {
1759
1758
  major: 4,
1760
1759
  minor: 4,
1761
1760
  patch: 3
@@ -1767,7 +1766,7 @@ const $ZodType = /* @__PURE__ */ $constructor("$ZodType", (inst, def) => {
1767
1766
  inst ?? (inst = {});
1768
1767
  inst._zod.def = def;
1769
1768
  inst._zod.bag = inst._zod.bag || {};
1770
- inst._zod.version = version$1;
1769
+ inst._zod.version = version$2;
1771
1770
  const checks = [...inst._zod.def.checks ?? []];
1772
1771
  if (inst._zod.traits.has("$ZodCheck")) checks.unshift(inst);
1773
1772
  for (const ch of checks) for (const fn of ch._zod.onattach) fn(inst);
@@ -6280,6 +6279,87 @@ function createPageIterator(page, halt) {
6280
6279
  }
6281
6280
  const MARKUP_BPS = 5e3;
6282
6281
  //#endregion
6282
+ //#region ../../node_modules/.bun/@t3-oss+env-core@0.13.11+1cd18485b0404aca/node_modules/@t3-oss/env-core/dist/standard.js
6283
+ function ensureSynchronous(value, message) {
6284
+ if (value instanceof Promise) throw new Error(message);
6285
+ }
6286
+ function parseWithDictionary(dictionary, value) {
6287
+ const result = {};
6288
+ const issues = [];
6289
+ for (const key in dictionary) {
6290
+ const propResult = dictionary[key]["~standard"].validate(value[key]);
6291
+ ensureSynchronous(propResult, `Validation must be synchronous, but ${key} returned a Promise.`);
6292
+ if (propResult.issues) {
6293
+ issues.push(...propResult.issues.map((issue) => ({
6294
+ ...issue,
6295
+ message: issue.message,
6296
+ path: [key, ...issue.path ?? []]
6297
+ })));
6298
+ continue;
6299
+ }
6300
+ result[key] = propResult.value;
6301
+ }
6302
+ if (issues.length) return { issues };
6303
+ return { value: result };
6304
+ }
6305
+ //#endregion
6306
+ //#region ../../node_modules/.bun/@t3-oss+env-core@0.13.11+1cd18485b0404aca/node_modules/@t3-oss/env-core/dist/index.js
6307
+ /**
6308
+ * Create a new environment variable schema.
6309
+ */
6310
+ function createEnv(opts) {
6311
+ const runtimeEnv = opts.runtimeEnvStrict ?? opts.runtimeEnv ?? process.env;
6312
+ if (opts.emptyStringAsUndefined ?? false) {
6313
+ for (const [key, value] of Object.entries(runtimeEnv)) if (value === "") delete runtimeEnv[key];
6314
+ }
6315
+ if (!!opts.skipValidation) {
6316
+ if (opts.extends) for (const preset of opts.extends) preset.skipValidation = true;
6317
+ return runtimeEnv;
6318
+ }
6319
+ const _client = typeof opts.client === "object" ? opts.client : {};
6320
+ const _server = typeof opts.server === "object" ? opts.server : {};
6321
+ const _shared = typeof opts.shared === "object" ? opts.shared : {};
6322
+ const isServer = opts.isServer ?? (typeof window === "undefined" || "Deno" in window);
6323
+ const finalSchemaShape = isServer ? {
6324
+ ..._server,
6325
+ ..._shared,
6326
+ ..._client
6327
+ } : {
6328
+ ..._client,
6329
+ ..._shared
6330
+ };
6331
+ const parsed = (opts.createFinalSchema?.(finalSchemaShape, isServer))?.["~standard"].validate(runtimeEnv) ?? parseWithDictionary(finalSchemaShape, runtimeEnv);
6332
+ ensureSynchronous(parsed, "Validation must be synchronous");
6333
+ const onValidationError = opts.onValidationError ?? ((issues) => {
6334
+ console.error("❌ Invalid environment variables:", issues);
6335
+ throw new Error("Invalid environment variables");
6336
+ });
6337
+ const onInvalidAccess = opts.onInvalidAccess ?? (() => {
6338
+ throw new Error("❌ Attempted to access a server-side environment variable on the client");
6339
+ });
6340
+ if (parsed.issues) return onValidationError(parsed.issues);
6341
+ const isServerAccess = (prop) => {
6342
+ if (!opts.clientPrefix) return true;
6343
+ return !prop.startsWith(opts.clientPrefix) && !(prop in _shared);
6344
+ };
6345
+ const isValidServerAccess = (prop) => {
6346
+ return isServer || !isServerAccess(prop);
6347
+ };
6348
+ const ignoreProp = (prop) => {
6349
+ return prop === "__esModule" || prop === "$$typeof";
6350
+ };
6351
+ const extendedObj = (opts.extends ?? []).reduce((acc, curr) => {
6352
+ return Object.assign(acc, curr);
6353
+ }, {});
6354
+ const fullObj = Object.assign(extendedObj, parsed.value);
6355
+ return new Proxy(fullObj, { get(target, prop) {
6356
+ if (typeof prop !== "string") return void 0;
6357
+ if (ignoreProp(prop)) return void 0;
6358
+ if (!isValidServerAccess(prop)) return onInvalidAccess(prop);
6359
+ return Reflect.get(target, prop);
6360
+ } });
6361
+ }
6362
+ //#endregion
6283
6363
  //#region ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/classic/iso.js
6284
6364
  const ZodISODateTime = /* @__PURE__ */ $constructor("ZodISODateTime", (inst, def) => {
6285
6365
  $ZodISODateTime.init(inst, def);
@@ -11202,223 +11282,79 @@ function renderDescription(arg, required) {
11202
11282
  ].filter(Boolean).join(" ");
11203
11283
  }
11204
11284
  //#endregion
11205
- //#region ../../packages/x/src/pricing.ts
11206
- const { costBPSForCategory } = createPricing([
11285
+ //#region ../../packages/linkedin/src/pricing.ts
11286
+ const { costBPSForCategory: costBPSForCategory$1 } = createPricing([
11207
11287
  {
11208
11288
  "key": "posts_read",
11209
11289
  "label": "Posts: Read",
11210
- "description": "Charged per resource fetched.",
11211
- "unit": "resource",
11290
+ "description": "Read LinkedIn posts, comments, reactions, jobs, and other post-like result sets.",
11291
+ "unit": "per_resource",
11212
11292
  "unitPriceUSD": .005,
11213
11293
  "featureId": "post_read_resource"
11214
11294
  },
11215
11295
  {
11216
11296
  "key": "user_read",
11217
11297
  "label": "User: Read",
11218
- "description": "Charged per resource fetched.",
11219
- "unit": "resource",
11298
+ "description": "Read non-owned LinkedIn profiles, companies, people search, company search, requests, and other profile-like result sets.",
11299
+ "unit": "per_resource",
11220
11300
  "unitPriceUSD": .01,
11221
11301
  "featureId": "user_read_resource"
11222
11302
  },
11223
11303
  {
11224
11304
  "key": "dm_event_read",
11225
11305
  "label": "DM Event: Read",
11226
- "description": "Charged per resource fetched.",
11227
- "unit": "resource",
11306
+ "description": "Read LinkedIn chats, chat messages, and profile-to-chat lookups.",
11307
+ "unit": "per_resource",
11228
11308
  "unitPriceUSD": .01,
11229
11309
  "featureId": "dm_event_read_resource"
11230
11310
  },
11231
11311
  {
11232
11312
  "key": "post_create",
11233
11313
  "label": "Post: Create",
11234
- "description": "Creating posts. Charged per request.",
11235
- "unit": "request",
11314
+ "description": "Create a simple LinkedIn post without a detected URL.",
11315
+ "unit": "per_request",
11236
11316
  "unitPriceUSD": .015,
11237
11317
  "featureId": "content_create_request"
11238
11318
  },
11239
11319
  {
11240
11320
  "key": "content_create",
11241
11321
  "label": "Content: Create",
11242
- "description": "Summoned replies/quotes (replying to a post where you were mentioned). Charged per request.",
11243
- "unit": "request",
11322
+ "description": "Create LinkedIn comments or other lower-cost content writes.",
11323
+ "unit": "per_request",
11244
11324
  "unitPriceUSD": .01,
11245
11325
  "featureId": "content_create_request"
11246
11326
  },
11247
11327
  {
11248
11328
  "key": "content_create_with_url",
11249
11329
  "label": "Content: Create with URL",
11250
- "description": "Creating content with URL. Charged per request.",
11251
- "unit": "request",
11330
+ "description": "Create a LinkedIn post when URL presence is unknown or detected, priced conservatively.",
11331
+ "unit": "per_request",
11252
11332
  "unitPriceUSD": .2,
11253
11333
  "featureId": "content_create_with_url_request"
11254
11334
  },
11255
11335
  {
11256
11336
  "key": "dm_interaction_create",
11257
11337
  "label": "DM Interaction: Create",
11258
- "description": "Creating DM interactions. Charged per request.",
11259
- "unit": "request",
11338
+ "description": "Send, modify, delete, or mark LinkedIn chat messages and chat state.",
11339
+ "unit": "per_request",
11260
11340
  "unitPriceUSD": .015,
11261
11341
  "featureId": "dm_interaction_create_request"
11262
11342
  },
11263
11343
  {
11264
11344
  "key": "user_interaction_create",
11265
11345
  "label": "User Interaction: Create",
11266
- "description": "Creating user interactions. Charged per request.",
11267
- "unit": "request",
11346
+ "description": "Create LinkedIn reactions, connection requests, and relation-request state changes.",
11347
+ "unit": "per_request",
11268
11348
  "unitPriceUSD": .015,
11269
11349
  "featureId": "user_interaction_create_request"
11270
11350
  },
11271
- {
11272
- "key": "list_read",
11273
- "label": "List: Read",
11274
- "description": "Charged per resource fetched.",
11275
- "unit": "resource",
11276
- "unitPriceUSD": .005,
11277
- "featureId": "list_read_resource"
11278
- },
11279
- {
11280
- "key": "space_read",
11281
- "label": "Space: Read",
11282
- "description": "Charged per resource fetched.",
11283
- "unit": "resource",
11284
- "unitPriceUSD": .005,
11285
- "featureId": "space_read_resource"
11286
- },
11287
- {
11288
- "key": "community_read",
11289
- "label": "Community: Read",
11290
- "description": "Charged per resource fetched.",
11291
- "unit": "resource",
11292
- "unitPriceUSD": .005,
11293
- "featureId": "community_read_resource"
11294
- },
11295
- {
11296
- "key": "note_read",
11297
- "label": "Note: Read",
11298
- "description": "Charged per resource fetched.",
11299
- "unit": "resource",
11300
- "unitPriceUSD": .005,
11301
- "featureId": "note_read_resource"
11302
- },
11303
- {
11304
- "key": "following_read",
11305
- "label": "Following/Followers: Read",
11306
- "description": "Charged per resource fetched for both following and followers.",
11307
- "unit": "resource",
11308
- "unitPriceUSD": .01,
11309
- "featureId": "following_followers_read_resource"
11310
- },
11311
- {
11312
- "key": "media_read",
11313
- "label": "Media: Read",
11314
- "description": "Charged per resource fetched.",
11315
- "unit": "resource",
11316
- "unitPriceUSD": .005,
11317
- "featureId": "media_read_resource"
11318
- },
11319
- {
11320
- "key": "analytics_read",
11321
- "label": "Analytics: Read",
11322
- "description": "Charged per resource fetched.",
11323
- "unit": "resource",
11324
- "unitPriceUSD": .005,
11325
- "featureId": "analytics_read_resource"
11326
- },
11327
- {
11328
- "key": "trend_read",
11329
- "label": "Trend: Read",
11330
- "description": "Fetching trends. Charged per resource fetched.",
11331
- "unit": "resource",
11332
- "unitPriceUSD": .01,
11333
- "featureId": "trend_read_resource"
11334
- },
11335
11351
  {
11336
11352
  "key": "owned_read",
11337
11353
  "label": "Owned: Read",
11338
- "description": "Charged per resource fetched.",
11339
- "unit": "resource",
11354
+ "description": "Read the connected LinkedIn account's own profile or first-party relation data.",
11355
+ "unit": "per_resource",
11340
11356
  "unitPriceUSD": .001,
11341
11357
  "featureId": "owned_read_resource"
11342
- },
11343
- {
11344
- "key": "interaction_delete",
11345
- "label": "Interaction: Delete",
11346
- "description": "Deleting interactions. Charged per request.",
11347
- "unit": "request",
11348
- "unitPriceUSD": .01,
11349
- "featureId": "interaction_delete_request"
11350
- },
11351
- {
11352
- "key": "content_manage",
11353
- "label": "Content: Manage",
11354
- "description": "Managing content (deleting or hiding posts). Charged per request.",
11355
- "unit": "request",
11356
- "unitPriceUSD": .005,
11357
- "featureId": "content_manage_request"
11358
- },
11359
- {
11360
- "key": "list_create",
11361
- "label": "List: Create",
11362
- "description": "Creating lists. Charged per request.",
11363
- "unit": "request",
11364
- "unitPriceUSD": .01,
11365
- "featureId": "list_create_request"
11366
- },
11367
- {
11368
- "key": "list_manage",
11369
- "label": "List: Manage",
11370
- "description": "Managing lists (deleting or updating). Charged per request.",
11371
- "unit": "request",
11372
- "unitPriceUSD": .005,
11373
- "featureId": "list_manage_request"
11374
- },
11375
- {
11376
- "key": "bookmark",
11377
- "label": "Bookmark",
11378
- "description": "Creating bookmarks. Charged per request.",
11379
- "unit": "request",
11380
- "unitPriceUSD": .005,
11381
- "featureId": "bookmark_request"
11382
- },
11383
- {
11384
- "key": "media_metadata",
11385
- "label": "Media Metadata",
11386
- "description": "Creating/deleting media metadata. Charged per request.",
11387
- "unit": "request",
11388
- "unitPriceUSD": .005,
11389
- "featureId": "media_metadata_request"
11390
- },
11391
- {
11392
- "key": "privacy_update",
11393
- "label": "Privacy: Update",
11394
- "description": "Updating privacy settings. Charged per request.",
11395
- "unit": "request",
11396
- "unitPriceUSD": .01,
11397
- "featureId": "privacy_update_request"
11398
- },
11399
- {
11400
- "key": "mute_delete",
11401
- "label": "Mute: Delete",
11402
- "description": "Deleting mutes. Charged per request.",
11403
- "unit": "request",
11404
- "unitPriceUSD": .005,
11405
- "featureId": "mute_delete_request"
11406
- },
11407
- {
11408
- "key": "counts_recent",
11409
- "label": "Counts: Recent",
11410
- "description": "Fetching recent counts. Charged per request.",
11411
- "unit": "request",
11412
- "unitPriceUSD": .005,
11413
- "featureId": "counts_recent_request"
11414
- },
11415
- {
11416
- "key": "counts_all",
11417
- "label": "Counts: All",
11418
- "description": "Fetching all counts. Charged per request.",
11419
- "unit": "request",
11420
- "unitPriceUSD": .01,
11421
- "featureId": "counts_all_request"
11422
11358
  }
11423
11359
  ]);
11424
11360
  const LINKEDIN_OPERATIONS = [
@@ -13561,7 +13497,7 @@ const defineOperationCommand$1 = (op, deps) => {
13561
13497
  const DM_INTERACTION_BILLING_CATEGORY = "dm_interaction_create";
13562
13498
  const DM_INTERACTION_ENDPOINT_BILLING = {
13563
13499
  billingCategory: DM_INTERACTION_BILLING_CATEGORY,
13564
- costBPS: costBPSForCategory(DM_INTERACTION_BILLING_CATEGORY)
13500
+ costBPS: costBPSForCategory$1(DM_INTERACTION_BILLING_CATEGORY)
13565
13501
  };
13566
13502
  const isRecord$5 = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
13567
13503
  const groupDescriptions = {
@@ -14380,6 +14316,226 @@ createLinkedinCommands({
14380
14316
  resolveAccountId: unconfigured$1,
14381
14317
  resolveOwnLinkedinAccount: unconfigured$1
14382
14318
  });
14319
+ //#endregion
14320
+ //#region ../../packages/x/src/pricing.ts
14321
+ const { costBPSForCategory } = createPricing([
14322
+ {
14323
+ "key": "posts_read",
14324
+ "label": "Posts: Read",
14325
+ "description": "Charged per resource fetched.",
14326
+ "unit": "resource",
14327
+ "unitPriceUSD": .005,
14328
+ "featureId": "post_read_resource"
14329
+ },
14330
+ {
14331
+ "key": "user_read",
14332
+ "label": "User: Read",
14333
+ "description": "Charged per resource fetched.",
14334
+ "unit": "resource",
14335
+ "unitPriceUSD": .01,
14336
+ "featureId": "user_read_resource"
14337
+ },
14338
+ {
14339
+ "key": "dm_event_read",
14340
+ "label": "DM Event: Read",
14341
+ "description": "Charged per resource fetched.",
14342
+ "unit": "resource",
14343
+ "unitPriceUSD": .01,
14344
+ "featureId": "dm_event_read_resource"
14345
+ },
14346
+ {
14347
+ "key": "post_create",
14348
+ "label": "Post: Create",
14349
+ "description": "Creating posts. Charged per request.",
14350
+ "unit": "request",
14351
+ "unitPriceUSD": .015,
14352
+ "featureId": "content_create_request"
14353
+ },
14354
+ {
14355
+ "key": "content_create",
14356
+ "label": "Content: Create",
14357
+ "description": "Summoned replies/quotes (replying to a post where you were mentioned). Charged per request.",
14358
+ "unit": "request",
14359
+ "unitPriceUSD": .01,
14360
+ "featureId": "content_create_request"
14361
+ },
14362
+ {
14363
+ "key": "content_create_with_url",
14364
+ "label": "Content: Create with URL",
14365
+ "description": "Creating content with URL. Charged per request.",
14366
+ "unit": "request",
14367
+ "unitPriceUSD": .2,
14368
+ "featureId": "content_create_with_url_request"
14369
+ },
14370
+ {
14371
+ "key": "dm_interaction_create",
14372
+ "label": "DM Interaction: Create",
14373
+ "description": "Creating DM interactions. Charged per request.",
14374
+ "unit": "request",
14375
+ "unitPriceUSD": .015,
14376
+ "featureId": "dm_interaction_create_request"
14377
+ },
14378
+ {
14379
+ "key": "user_interaction_create",
14380
+ "label": "User Interaction: Create",
14381
+ "description": "Creating user interactions. Charged per request.",
14382
+ "unit": "request",
14383
+ "unitPriceUSD": .015,
14384
+ "featureId": "user_interaction_create_request"
14385
+ },
14386
+ {
14387
+ "key": "list_read",
14388
+ "label": "List: Read",
14389
+ "description": "Charged per resource fetched.",
14390
+ "unit": "resource",
14391
+ "unitPriceUSD": .005,
14392
+ "featureId": "list_read_resource"
14393
+ },
14394
+ {
14395
+ "key": "space_read",
14396
+ "label": "Space: Read",
14397
+ "description": "Charged per resource fetched.",
14398
+ "unit": "resource",
14399
+ "unitPriceUSD": .005,
14400
+ "featureId": "space_read_resource"
14401
+ },
14402
+ {
14403
+ "key": "community_read",
14404
+ "label": "Community: Read",
14405
+ "description": "Charged per resource fetched.",
14406
+ "unit": "resource",
14407
+ "unitPriceUSD": .005,
14408
+ "featureId": "community_read_resource"
14409
+ },
14410
+ {
14411
+ "key": "note_read",
14412
+ "label": "Note: Read",
14413
+ "description": "Charged per resource fetched.",
14414
+ "unit": "resource",
14415
+ "unitPriceUSD": .005,
14416
+ "featureId": "note_read_resource"
14417
+ },
14418
+ {
14419
+ "key": "following_read",
14420
+ "label": "Following/Followers: Read",
14421
+ "description": "Charged per resource fetched for both following and followers.",
14422
+ "unit": "resource",
14423
+ "unitPriceUSD": .01,
14424
+ "featureId": "following_followers_read_resource"
14425
+ },
14426
+ {
14427
+ "key": "media_read",
14428
+ "label": "Media: Read",
14429
+ "description": "Charged per resource fetched.",
14430
+ "unit": "resource",
14431
+ "unitPriceUSD": .005,
14432
+ "featureId": "media_read_resource"
14433
+ },
14434
+ {
14435
+ "key": "analytics_read",
14436
+ "label": "Analytics: Read",
14437
+ "description": "Charged per resource fetched.",
14438
+ "unit": "resource",
14439
+ "unitPriceUSD": .005,
14440
+ "featureId": "analytics_read_resource"
14441
+ },
14442
+ {
14443
+ "key": "trend_read",
14444
+ "label": "Trend: Read",
14445
+ "description": "Fetching trends. Charged per resource fetched.",
14446
+ "unit": "resource",
14447
+ "unitPriceUSD": .01,
14448
+ "featureId": "trend_read_resource"
14449
+ },
14450
+ {
14451
+ "key": "owned_read",
14452
+ "label": "Owned: Read",
14453
+ "description": "Charged per resource fetched.",
14454
+ "unit": "resource",
14455
+ "unitPriceUSD": .001,
14456
+ "featureId": "owned_read_resource"
14457
+ },
14458
+ {
14459
+ "key": "interaction_delete",
14460
+ "label": "Interaction: Delete",
14461
+ "description": "Deleting interactions. Charged per request.",
14462
+ "unit": "request",
14463
+ "unitPriceUSD": .01,
14464
+ "featureId": "interaction_delete_request"
14465
+ },
14466
+ {
14467
+ "key": "content_manage",
14468
+ "label": "Content: Manage",
14469
+ "description": "Managing content (deleting or hiding posts). Charged per request.",
14470
+ "unit": "request",
14471
+ "unitPriceUSD": .005,
14472
+ "featureId": "content_manage_request"
14473
+ },
14474
+ {
14475
+ "key": "list_create",
14476
+ "label": "List: Create",
14477
+ "description": "Creating lists. Charged per request.",
14478
+ "unit": "request",
14479
+ "unitPriceUSD": .01,
14480
+ "featureId": "list_create_request"
14481
+ },
14482
+ {
14483
+ "key": "list_manage",
14484
+ "label": "List: Manage",
14485
+ "description": "Managing lists (deleting or updating). Charged per request.",
14486
+ "unit": "request",
14487
+ "unitPriceUSD": .005,
14488
+ "featureId": "list_manage_request"
14489
+ },
14490
+ {
14491
+ "key": "bookmark",
14492
+ "label": "Bookmark",
14493
+ "description": "Creating bookmarks. Charged per request.",
14494
+ "unit": "request",
14495
+ "unitPriceUSD": .005,
14496
+ "featureId": "bookmark_request"
14497
+ },
14498
+ {
14499
+ "key": "media_metadata",
14500
+ "label": "Media Metadata",
14501
+ "description": "Creating/deleting media metadata. Charged per request.",
14502
+ "unit": "request",
14503
+ "unitPriceUSD": .005,
14504
+ "featureId": "media_metadata_request"
14505
+ },
14506
+ {
14507
+ "key": "privacy_update",
14508
+ "label": "Privacy: Update",
14509
+ "description": "Updating privacy settings. Charged per request.",
14510
+ "unit": "request",
14511
+ "unitPriceUSD": .01,
14512
+ "featureId": "privacy_update_request"
14513
+ },
14514
+ {
14515
+ "key": "mute_delete",
14516
+ "label": "Mute: Delete",
14517
+ "description": "Deleting mutes. Charged per request.",
14518
+ "unit": "request",
14519
+ "unitPriceUSD": .005,
14520
+ "featureId": "mute_delete_request"
14521
+ },
14522
+ {
14523
+ "key": "counts_recent",
14524
+ "label": "Counts: Recent",
14525
+ "description": "Fetching recent counts. Charged per request.",
14526
+ "unit": "request",
14527
+ "unitPriceUSD": .005,
14528
+ "featureId": "counts_recent_request"
14529
+ },
14530
+ {
14531
+ "key": "counts_all",
14532
+ "label": "Counts: All",
14533
+ "description": "Fetching all counts. Charged per request.",
14534
+ "unit": "request",
14535
+ "unitPriceUSD": .01,
14536
+ "featureId": "counts_all_request"
14537
+ }
14538
+ ]);
14383
14539
  const X_OPERATIONS = [
14384
14540
  {
14385
14541
  schemaBaseName: "TweetsDelete",
@@ -16120,12 +16276,23 @@ const X_OPERATIONS = [
16120
16276
  //#endregion
16121
16277
  //#region ../../packages/x/src/cache.ts
16122
16278
  const xCacheableEndpointPaths = [
16279
+ "GET /lists/:id/members",
16123
16280
  "GET /tweets",
16124
16281
  "GET /tweets/:id",
16282
+ "GET /tweets/:id/liking_users",
16283
+ "GET /tweets/:id/quote_tweets",
16284
+ "GET /tweets/:id/retweeted_by",
16125
16285
  "GET /tweets/search/recent",
16286
+ "GET /users/:id",
16287
+ "GET /users/:id/bookmarks",
16126
16288
  "GET /users/:id/followers",
16127
16289
  "GET /users/:id/following",
16290
+ "GET /users/:id/liked_tweets",
16291
+ "GET /users/:id/mentions",
16292
+ "GET /users/:id/owned_lists",
16293
+ "GET /users/:id/timelines/reverse_chronological",
16128
16294
  "GET /users/:id/tweets",
16295
+ "GET /users/by/username/:username",
16129
16296
  "GET /users/me"
16130
16297
  ];
16131
16298
  const schemas = {
@@ -20753,6 +20920,9 @@ const createInstance = (defaults) => {
20753
20920
  };
20754
20921
  const ky = createInstance();
20755
20922
  //#endregion
20923
+ //#region package.json
20924
+ var version$1 = "0.2.4";
20925
+ //#endregion
20756
20926
  //#region src/lib/env.ts
20757
20927
  const URLWithTrailingSlash = url().transform(ensureTrailingSlash);
20758
20928
  const env = createEnv({
@@ -20781,7 +20951,7 @@ const env = createEnv({
20781
20951
  }
20782
20952
  });
20783
20953
  const SERVICE_NAME = "social-cli";
20784
- const VERSION = "0.2.2";
20954
+ const VERSION = version$1;
20785
20955
  const apiURL = (path) => createAbsoluteURL(env.SOCIAL_API_URL, path);
20786
20956
  //#endregion
20787
20957
  //#region src/lib/bearer.ts
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "access": "public"
12
12
  },
13
13
  "private": false,
14
- "version": "0.2.2",
14
+ "version": "0.2.4",
15
15
  "type": "module",
16
16
  "engines": {
17
17
  "node": ">=22.5.0"