@linkedctl/cli
Advanced tools
| import type { AnalyticsDate, PostAnalytics } from "@linkedctl/core"; | ||
| /** | ||
| * Print warnings to stderr for any unavailable or excluded metrics. | ||
| */ | ||
| export declare function warnUnavailableMetrics(analytics: PostAnalytics): void; | ||
| /** | ||
| * Build table rows for TOTAL aggregation: one row per successful metric. | ||
| */ | ||
| export declare function buildTotalRows(analytics: PostAnalytics): { | ||
| metric: string; | ||
| count: number; | ||
| }[]; | ||
| /** | ||
| * Build table rows for DAILY aggregation: one row per date with metric columns. | ||
| */ | ||
| export declare function buildDailyRows(analytics: PostAnalytics): Record<string, unknown>[]; | ||
| /** | ||
| * Parse a YYYY-MM-DD string into an AnalyticsDate. | ||
| */ | ||
| export declare function parseDate(value: string): AnalyticsDate; | ||
| /** | ||
| * Format an AnalyticsDate as YYYY-MM-DD. | ||
| */ | ||
| export declare function formatDate(date: AnalyticsDate): string; | ||
| /** | ||
| * Add one day to an AnalyticsDate, handling month/year boundaries. | ||
| * Used to convert an inclusive --to date to the API's exclusive end date. | ||
| */ | ||
| export declare function addDay(date: AnalyticsDate): AnalyticsDate; | ||
| /** | ||
| * Enhance a ConfigError for analytics scope requirements. | ||
| * | ||
| * When the error is about missing `r_member_postAnalytics`, throws a new | ||
| * ConfigError with additional guidance about product exclusivity and | ||
| * a suggested dedicated analytics profile name. | ||
| */ | ||
| export declare function enhanceAnalyticsScopeError(error: unknown, profile: string | undefined): void; | ||
| //# sourceMappingURL=helpers.d.ts.map |
| {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/commands/stats/helpers.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAgB,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAalF;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI,CAYrE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,aAAa,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAS5F;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAsBlF;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAkBtD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAEtD;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,aAAa,CAOzD;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAW5F"} |
| // SPDX-License-Identifier: AGPL-3.0-only | ||
| // Copyright (C) 2026 Oleksii PELYKH | ||
| import { ConfigError } from "@linkedctl/core"; | ||
| /** | ||
| * Human-readable labels for each metric key. | ||
| */ | ||
| const METRIC_LABELS = { | ||
| impressions: "Impressions", | ||
| membersReached: "Members reached", | ||
| reactions: "Reactions", | ||
| comments: "Comments", | ||
| reshares: "Reshares", | ||
| }; | ||
| /** | ||
| * Print warnings to stderr for any unavailable or excluded metrics. | ||
| */ | ||
| export function warnUnavailableMetrics(analytics) { | ||
| const warnings = []; | ||
| for (const [key, result] of Object.entries(analytics)) { | ||
| if (result.status === "unavailable") { | ||
| warnings.push(`${METRIC_LABELS[key]}: ${result.reason}`); | ||
| } | ||
| else if (result.status === "excluded") { | ||
| warnings.push(`${METRIC_LABELS[key]}: ${result.reason}`); | ||
| } | ||
| } | ||
| if (warnings.length > 0) { | ||
| console.error(`warning: Some metrics are unavailable:\n${warnings.map((w) => ` - ${w}`).join("\n")}`); | ||
| } | ||
| } | ||
| /** | ||
| * Build table rows for TOTAL aggregation: one row per successful metric. | ||
| */ | ||
| export function buildTotalRows(analytics) { | ||
| const rows = []; | ||
| for (const [key, result] of Object.entries(analytics)) { | ||
| if (result.status === "success") { | ||
| const total = result.dataPoints.reduce((sum, dp) => sum + dp.count, 0); | ||
| rows.push({ metric: METRIC_LABELS[key], count: total }); | ||
| } | ||
| } | ||
| return rows; | ||
| } | ||
| /** | ||
| * Build table rows for DAILY aggregation: one row per date with metric columns. | ||
| */ | ||
| export function buildDailyRows(analytics) { | ||
| const dateMap = new Map(); | ||
| for (const [key, result] of Object.entries(analytics)) { | ||
| if (result.status !== "success") | ||
| continue; | ||
| for (const dp of result.dataPoints) { | ||
| if (dp.dateRange?.start === undefined) | ||
| continue; | ||
| const dateStr = formatDate(dp.dateRange.start); | ||
| let row = dateMap.get(dateStr); | ||
| if (row === undefined) { | ||
| row = { date: dateStr }; | ||
| dateMap.set(dateStr, row); | ||
| } | ||
| row[METRIC_LABELS[key]] = dp.count; | ||
| } | ||
| } | ||
| const sortedDates = [...dateMap.keys()].sort(); | ||
| return sortedDates.flatMap((date) => { | ||
| const row = dateMap.get(date); | ||
| return row !== undefined ? [row] : []; | ||
| }); | ||
| } | ||
| /** | ||
| * Parse a YYYY-MM-DD string into an AnalyticsDate. | ||
| */ | ||
| export function parseDate(value) { | ||
| const match = /^(\d{4})-(\d{2})-(\d{2})$/.exec(value); | ||
| if (match === null) { | ||
| throw new Error(`Invalid date format: "${value}". Expected YYYY-MM-DD.`); | ||
| } | ||
| const [, yearStr, monthStr, dayStr] = match; | ||
| if (yearStr === undefined || monthStr === undefined || dayStr === undefined) { | ||
| throw new Error(`Invalid date format: "${value}". Expected YYYY-MM-DD.`); | ||
| } | ||
| const year = parseInt(yearStr, 10); | ||
| const month = parseInt(monthStr, 10); | ||
| const day = parseInt(dayStr, 10); | ||
| if (month < 1 || month > 12 || day < 1 || day > 31) { | ||
| throw new Error(`Invalid date: "${value}". Month must be 1-12, day must be 1-31.`); | ||
| } | ||
| return { year, month, day }; | ||
| } | ||
| /** | ||
| * Format an AnalyticsDate as YYYY-MM-DD. | ||
| */ | ||
| export function formatDate(date) { | ||
| return `${String(date.year)}-${String(date.month).padStart(2, "0")}-${String(date.day).padStart(2, "0")}`; | ||
| } | ||
| /** | ||
| * Add one day to an AnalyticsDate, handling month/year boundaries. | ||
| * Used to convert an inclusive --to date to the API's exclusive end date. | ||
| */ | ||
| export function addDay(date) { | ||
| const d = new Date(date.year, date.month - 1, date.day + 1); | ||
| return { | ||
| year: d.getFullYear(), | ||
| month: d.getMonth() + 1, | ||
| day: d.getDate(), | ||
| }; | ||
| } | ||
| /** | ||
| * Enhance a ConfigError for analytics scope requirements. | ||
| * | ||
| * When the error is about missing `r_member_postAnalytics`, throws a new | ||
| * ConfigError with additional guidance about product exclusivity and | ||
| * a suggested dedicated analytics profile name. | ||
| */ | ||
| export function enhanceAnalyticsScopeError(error, profile) { | ||
| if (!(error instanceof ConfigError)) | ||
| return; | ||
| if (!error.message.includes("r_member_postAnalytics")) | ||
| return; | ||
| const profileName = profile !== undefined ? `${profile}-analytics` : "analytics"; | ||
| throw new ConfigError(error.message + | ||
| ` LinkedIn's Community Management API requires a dedicated Developer App` + | ||
| ` that cannot share scopes with other products.` + | ||
| ` Consider a dedicated analytics profile: linkedctl auth setup --product community-management --profile ${profileName}`); | ||
| } | ||
| //# sourceMappingURL=helpers.js.map |
| {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/commands/stats/helpers.ts"],"names":[],"mappings":"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"} |
| import { Command } from "commander"; | ||
| export declare function statsCommand(): Command; | ||
| //# sourceMappingURL=index.d.ts.map |
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/stats/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,YAAY,IAAI,OAAO,CAsBtC"} |
| // SPDX-License-Identifier: AGPL-3.0-only | ||
| // Copyright (C) 2026 Oleksii PELYKH | ||
| import { Command } from "commander"; | ||
| import { orgCommand } from "./org.js"; | ||
| import { postCommand } from "./post.js"; | ||
| import { meCommand } from "./me.js"; | ||
| export function statsCommand() { | ||
| const cmd = new Command("stats"); | ||
| cmd.description("View analytics and statistics"); | ||
| cmd.addHelpText("after", ` | ||
| Examples: | ||
| linkedctl stats post urn:li:share:123 | ||
| linkedctl stats post urn:li:share:123 --org 12345 | ||
| linkedctl stats me | ||
| linkedctl stats me --from 2024-05-01 --to 2024-05-31 | ||
| linkedctl stats org 12345 | ||
| linkedctl stats org 12345 --from 2025-01-01 --to 2025-06-01 | ||
| linkedctl stats org 12345 --from 2025-01-01 --to 2025-02-01 --granularity day`); | ||
| cmd.addCommand(postCommand()); | ||
| cmd.addCommand(meCommand()); | ||
| cmd.addCommand(orgCommand()); | ||
| return cmd; | ||
| } | ||
| //# sourceMappingURL=index.js.map |
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/stats/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAEpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,MAAM,UAAU,YAAY;IAC1B,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,GAAG,CAAC,WAAW,CAAC,+BAA+B,CAAC,CAAC;IAEjD,GAAG,CAAC,WAAW,CACb,OAAO,EACP;;;;;;;;gFAQ4E,CAC7E,CAAC;IAEF,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9B,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC;IAC5B,GAAG,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;IAE7B,OAAO,GAAG,CAAC;AACb,CAAC"} |
| import { Command } from "commander"; | ||
| export declare function meCommand(): Command; | ||
| //# sourceMappingURL=me.d.ts.map |
| {"version":3,"file":"me.d.ts","sourceRoot":"","sources":["../../../src/commands/stats/me.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAa5C,wBAAgB,SAAS,IAAI,OAAO,CAuEnC"} |
| // SPDX-License-Identifier: AGPL-3.0-only | ||
| // Copyright (C) 2026 Oleksii PELYKH | ||
| import { Command, Option } from "commander"; | ||
| import { resolveConfig, LinkedInClient, getMemberAnalytics, LinkedInApiError } from "@linkedctl/core"; | ||
| import { resolveFormat, formatOutput } from "../../output/index.js"; | ||
| import { warnUnavailableMetrics, buildTotalRows, buildDailyRows, parseDate, addDay, enhanceAnalyticsScopeError, } from "./helpers.js"; | ||
| export function meCommand() { | ||
| const cmd = new Command("me"); | ||
| cmd.description("Get aggregated analytics across all your posts"); | ||
| cmd.option("--from <date>", "start date for daily breakdown (YYYY-MM-DD, inclusive)"); | ||
| cmd.option("--to <date>", "end date for daily breakdown (YYYY-MM-DD, inclusive)"); | ||
| cmd.addOption(new Option("--format <format>", "output format (json or table)").choices(["json", "table"])); | ||
| cmd.action(async (opts, actionCmd) => { | ||
| const globals = actionCmd.optsWithGlobals(); | ||
| const from = opts["from"]; | ||
| const to = opts["to"]; | ||
| if ((from === undefined) !== (to === undefined)) { | ||
| throw new Error("--from and --to must be used together"); | ||
| } | ||
| try { | ||
| const { config } = await resolveConfig({ | ||
| profile: globals.profile, | ||
| requiredScopes: ["r_member_postAnalytics"], | ||
| }); | ||
| const accessToken = config.oauth?.accessToken ?? ""; | ||
| const apiVersion = config.apiVersion ?? ""; | ||
| const client = new LinkedInClient({ accessToken, apiVersion }); | ||
| const hasDateRange = from !== undefined && to !== undefined; | ||
| const analytics = await getMemberAnalytics(client, hasDateRange | ||
| ? { | ||
| aggregation: "DAILY", | ||
| dateRange: { | ||
| start: parseDate(from), | ||
| end: addDay(parseDate(to)), | ||
| }, | ||
| } | ||
| : undefined); | ||
| warnUnavailableMetrics(analytics); | ||
| const format = resolveFormat(opts["format"], process.stdout, globals.json === true); | ||
| if (format === "json") { | ||
| console.log(formatOutput(analytics, format)); | ||
| } | ||
| else if (hasDateRange) { | ||
| const rows = buildDailyRows(analytics); | ||
| if (rows.length === 0) { | ||
| console.log("No data available for the specified date range."); | ||
| return; | ||
| } | ||
| console.log(formatOutput(rows, format)); | ||
| } | ||
| else { | ||
| const rows = buildTotalRows(analytics); | ||
| if (rows.length === 0) { | ||
| console.log("No metrics available."); | ||
| return; | ||
| } | ||
| console.log(formatOutput(rows, format)); | ||
| } | ||
| } | ||
| catch (error) { | ||
| enhanceAnalyticsScopeError(error, globals.profile); | ||
| if (error instanceof LinkedInApiError) { | ||
| throw new Error(`Failed to get member analytics: ${error.message}`); | ||
| } | ||
| throw error; | ||
| } | ||
| }); | ||
| return cmd; | ||
| } | ||
| //# sourceMappingURL=me.js.map |
| {"version":3,"file":"me.js","sourceRoot":"","sources":["../../../src/commands/stats/me.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAEpC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEtG,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,SAAS,EACT,MAAM,EACN,0BAA0B,GAC3B,MAAM,cAAc,CAAC;AAEtB,MAAM,UAAU,SAAS;IACvB,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,GAAG,CAAC,WAAW,CAAC,gDAAgD,CAAC,CAAC;IAClE,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,wDAAwD,CAAC,CAAC;IACtF,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,sDAAsD,CAAC,CAAC;IAClF,GAAG,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,mBAAmB,EAAE,+BAA+B,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAE3G,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAA6B,EAAE,SAAkB,EAAE,EAAE;QACrE,MAAM,OAAO,GAAG,SAAS,CAAC,eAAe,EAAgE,CAAC;QAE1G,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAuB,CAAC;QAChD,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAuB,CAAC;QAE5C,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC;gBACrC,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,cAAc,EAAE,CAAC,wBAAwB,CAAC;aAC3C,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,EAAE,WAAW,IAAI,EAAE,CAAC;YACpD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC;YAE/D,MAAM,YAAY,GAAG,IAAI,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS,CAAC;YAC5D,MAAM,SAAS,GAAG,MAAM,kBAAkB,CACxC,MAAM,EACN,YAAY;gBACV,CAAC,CAAC;oBACE,WAAW,EAAE,OAAO;oBACpB,SAAS,EAAE;wBACT,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC;wBACtB,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;qBAC3B;iBACF;gBACH,CAAC,CAAC,SAAS,CACd,CAAC;YAEF,sBAAsB,CAAC,SAAS,CAAC,CAAC;YAElC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,CAA6B,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;YAEhH,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;YAC/C,CAAC;iBAAM,IAAI,YAAY,EAAE,CAAC;gBACxB,MAAM,IAAI,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;gBACvC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACtB,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;oBAC/D,OAAO;gBACT,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;gBACvC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACtB,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;oBACrC,OAAO;gBACT,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,0BAA0B,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACnD,IAAI,KAAK,YAAY,gBAAgB,EAAE,CAAC;gBACtC,MAAM,IAAI,KAAK,CAAC,mCAAmC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACtE,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC"} |
| import { Command } from "commander"; | ||
| export declare function orgCommand(): Command; | ||
| //# sourceMappingURL=org.d.ts.map |
| {"version":3,"file":"org.d.ts","sourceRoot":"","sources":["../../../src/commands/stats/org.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AA0B5C,wBAAgB,UAAU,IAAI,OAAO,CAmEpC"} |
| // SPDX-License-Identifier: AGPL-3.0-only | ||
| // Copyright (C) 2026 Oleksii PELYKH | ||
| import { Command, Option } from "commander"; | ||
| import { resolveConfig, LinkedInClient, getOrgStats, LinkedInApiError } from "@linkedctl/core"; | ||
| import { resolveFormat, formatOutput } from "../../output/index.js"; | ||
| function formatDate(ms) { | ||
| return new Date(ms).toISOString().slice(0, 10); | ||
| } | ||
| function formatStatsRow(el) { | ||
| const s = el.totalShareStatistics; | ||
| const row = {}; | ||
| if (el.timeRange !== undefined) { | ||
| row["period"] = `${formatDate(el.timeRange.start)} - ${formatDate(el.timeRange.end)}`; | ||
| } | ||
| row["impressions"] = s.impressionCount; | ||
| row["uniqueImpressions"] = s.uniqueImpressionsCount; | ||
| row["clicks"] = s.clickCount; | ||
| row["likes"] = s.likeCount; | ||
| row["comments"] = s.commentCount; | ||
| row["shares"] = s.shareCount; | ||
| row["engagement"] = s.engagement; | ||
| return row; | ||
| } | ||
| export function orgCommand() { | ||
| const cmd = new Command("org"); | ||
| cmd.description("Get organization share statistics"); | ||
| cmd.argument("<id>", "organization ID (numeric, e.g. 12345)"); | ||
| cmd.option("--from <date>", "start date for time-bound stats (ISO 8601, e.g. 2025-01-01)"); | ||
| cmd.option("--to <date>", "end date for time-bound stats (ISO 8601, e.g. 2025-06-01)"); | ||
| cmd.addOption(new Option("--granularity <granularity>", "time granularity for bucketed results") | ||
| .choices(["day", "month"]) | ||
| .default("month")); | ||
| cmd.addOption(new Option("--format <format>", "output format (json or table)").choices(["json", "table"])); | ||
| cmd.action(async (id, opts, actionCmd) => { | ||
| const globals = actionCmd.optsWithGlobals(); | ||
| const from = opts["from"]; | ||
| const to = opts["to"]; | ||
| const granularity = opts["granularity"]; | ||
| if ((from === undefined) !== (to === undefined)) { | ||
| throw new Error("Both --from and --to must be specified together."); | ||
| } | ||
| if (from === undefined && to === undefined && granularity !== "month") { | ||
| throw new Error("--granularity requires --from and --to."); | ||
| } | ||
| const { config } = await resolveConfig({ | ||
| profile: globals.profile, | ||
| requiredScopes: ["rw_organization_admin"], | ||
| }); | ||
| const accessToken = config.oauth?.accessToken ?? ""; | ||
| const apiVersion = config.apiVersion ?? ""; | ||
| const client = new LinkedInClient({ accessToken, apiVersion }); | ||
| try { | ||
| const organizationUrn = `urn:li:organization:${id}`; | ||
| const options = { organizationUrn }; | ||
| if (from !== undefined && to !== undefined) { | ||
| options.timeGranularity = granularity.toUpperCase(); | ||
| options.timeRange = { | ||
| start: new Date(from).getTime(), | ||
| end: new Date(to).getTime(), | ||
| }; | ||
| } | ||
| const response = await getOrgStats(client, options); | ||
| const format = resolveFormat(opts["format"], process.stdout, globals.json === true); | ||
| if (format === "json") { | ||
| console.log(formatOutput(response, format)); | ||
| } | ||
| else { | ||
| const rows = response.elements.map(formatStatsRow); | ||
| const data = rows.length === 1 ? rows[0] : rows; | ||
| console.log(formatOutput(data, format)); | ||
| } | ||
| } | ||
| catch (error) { | ||
| if (error instanceof LinkedInApiError) { | ||
| throw new Error(`Failed to get organization statistics: ${error.message}`); | ||
| } | ||
| throw error; | ||
| } | ||
| }); | ||
| return cmd; | ||
| } | ||
| //# sourceMappingURL=org.js.map |
| {"version":3,"file":"org.js","sourceRoot":"","sources":["../../../src/commands/stats/org.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAEpC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAG/F,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAEpE,SAAS,UAAU,CAAC,EAAU;IAC5B,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,cAAc,CAAC,EAAmB;IACzC,MAAM,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC;IAClC,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,IAAI,EAAE,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAC/B,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;IACxF,CAAC;IACD,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC;IACvC,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,sBAAsB,CAAC;IACpD,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;IAC7B,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;IAC3B,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC;IACjC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;IAC7B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;IACjC,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/B,GAAG,CAAC,WAAW,CAAC,mCAAmC,CAAC,CAAC;IACrD,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,uCAAuC,CAAC,CAAC;IAC9D,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,6DAA6D,CAAC,CAAC;IAC3F,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,2DAA2D,CAAC,CAAC;IACvF,GAAG,CAAC,SAAS,CACX,IAAI,MAAM,CAAC,6BAA6B,EAAE,uCAAuC,CAAC;SAC/E,OAAO,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SACzB,OAAO,CAAC,OAAO,CAAC,CACpB,CAAC;IACF,GAAG,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,mBAAmB,EAAE,+BAA+B,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAE3G,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,IAA6B,EAAE,SAAkB,EAAE,EAAE;QACjF,MAAM,OAAO,GAAG,SAAS,CAAC,eAAe,EAAgE,CAAC;QAE1G,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAuB,CAAC;QAChD,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAuB,CAAC;QAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAW,CAAC;QAElD,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,IAAI,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;YACtE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC;YACrC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,cAAc,EAAE,CAAC,uBAAuB,CAAC;SAC1C,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,EAAE,WAAW,IAAI,EAAE,CAAC;QACpD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC;QAE/D,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,uBAAuB,EAAE,EAAE,CAAC;YACpD,MAAM,OAAO,GAAsC,EAAE,eAAe,EAAE,CAAC;YAEvE,IAAI,IAAI,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;gBAC3C,OAAO,CAAC,eAAe,GAAG,WAAW,CAAC,WAAW,EAA6B,CAAC;gBAC/E,OAAO,CAAC,SAAS,GAAG;oBAClB,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE;oBAC/B,GAAG,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE;iBAC5B,CAAC;YACJ,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAEpD,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,CAA6B,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;YAChH,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBACnD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAChD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,gBAAgB,EAAE,CAAC;gBACtC,MAAM,IAAI,KAAK,CAAC,0CAA0C,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7E,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC"} |
| import { Command } from "commander"; | ||
| export declare function postCommand(): Command; | ||
| //# sourceMappingURL=post.d.ts.map |
| {"version":3,"file":"post.d.ts","sourceRoot":"","sources":["../../../src/commands/stats/post.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAM5C,wBAAgB,WAAW,IAAI,OAAO,CAmBrC"} |
| // SPDX-License-Identifier: AGPL-3.0-only | ||
| // Copyright (C) 2026 Oleksii PELYKH | ||
| import { Command, Option } from "commander"; | ||
| import { resolveConfig, LinkedInClient, getPostAnalytics, getOrgStats, LinkedInApiError } from "@linkedctl/core"; | ||
| import { resolveFormat, formatOutput } from "../../output/index.js"; | ||
| import { warnUnavailableMetrics, buildTotalRows, enhanceAnalyticsScopeError } from "./helpers.js"; | ||
| export function postCommand() { | ||
| const cmd = new Command("post"); | ||
| cmd.description("Get analytics for a LinkedIn post"); | ||
| cmd.argument("<urn>", "post URN (e.g. urn:li:share:123 or urn:li:ugcPost:123)"); | ||
| cmd.option("--org <id>", "organization ID for org share statistics (numeric, e.g. 12345)"); | ||
| cmd.addOption(new Option("--format <format>", "output format (json or table)").choices(["json", "table"])); | ||
| cmd.action(async (urn, opts, actionCmd) => { | ||
| const globals = actionCmd.optsWithGlobals(); | ||
| const orgId = opts["org"]; | ||
| if (orgId !== undefined) { | ||
| await handleOrgPostStats(urn, orgId, opts, globals); | ||
| } | ||
| else { | ||
| await handleMemberPostStats(urn, opts, globals); | ||
| } | ||
| }); | ||
| return cmd; | ||
| } | ||
| async function handleMemberPostStats(urn, opts, globals) { | ||
| try { | ||
| const { config } = await resolveConfig({ | ||
| profile: globals.profile, | ||
| requiredScopes: ["r_member_postAnalytics"], | ||
| }); | ||
| const accessToken = config.oauth?.accessToken ?? ""; | ||
| const apiVersion = config.apiVersion ?? ""; | ||
| const client = new LinkedInClient({ accessToken, apiVersion }); | ||
| const analytics = await getPostAnalytics(client, { postUrn: urn }); | ||
| warnUnavailableMetrics(analytics); | ||
| const format = resolveFormat(opts["format"], process.stdout, globals.json === true); | ||
| if (format === "json") { | ||
| console.log(formatOutput(analytics, format)); | ||
| } | ||
| else { | ||
| const rows = buildTotalRows(analytics); | ||
| if (rows.length === 0) { | ||
| console.log("No metrics available."); | ||
| return; | ||
| } | ||
| console.log(formatOutput(rows, format)); | ||
| } | ||
| } | ||
| catch (error) { | ||
| enhanceAnalyticsScopeError(error, globals.profile); | ||
| if (error instanceof LinkedInApiError) { | ||
| throw new Error(`Failed to get post analytics: ${error.message}`); | ||
| } | ||
| throw error; | ||
| } | ||
| } | ||
| async function handleOrgPostStats(urn, orgId, opts, globals) { | ||
| const { config } = await resolveConfig({ | ||
| profile: globals.profile, | ||
| requiredScopes: ["rw_organization_admin"], | ||
| }); | ||
| const accessToken = config.oauth?.accessToken ?? ""; | ||
| const apiVersion = config.apiVersion ?? ""; | ||
| const client = new LinkedInClient({ accessToken, apiVersion }); | ||
| try { | ||
| const organizationUrn = `urn:li:organization:${orgId}`; | ||
| const response = await getOrgStats(client, { | ||
| organizationUrn, | ||
| shares: [urn], | ||
| }); | ||
| const format = resolveFormat(opts["format"], process.stdout, globals.json === true); | ||
| if (format === "json") { | ||
| console.log(formatOutput(response, format)); | ||
| } | ||
| else { | ||
| const el = response.elements[0]; | ||
| if (el === undefined) { | ||
| console.log("No statistics found for this post."); | ||
| return; | ||
| } | ||
| const s = el.totalShareStatistics; | ||
| console.log(formatOutput({ | ||
| post: el.share ?? urn, | ||
| impressions: s.impressionCount, | ||
| uniqueImpressions: s.uniqueImpressionsCount, | ||
| clicks: s.clickCount, | ||
| likes: s.likeCount, | ||
| comments: s.commentCount, | ||
| shares: s.shareCount, | ||
| engagement: s.engagement, | ||
| }, format)); | ||
| } | ||
| } | ||
| catch (error) { | ||
| if (error instanceof LinkedInApiError) { | ||
| throw new Error(`Failed to get post statistics: ${error.message}`); | ||
| } | ||
| throw error; | ||
| } | ||
| } | ||
| //# sourceMappingURL=post.js.map |
| {"version":3,"file":"post.js","sourceRoot":"","sources":["../../../src/commands/stats/post.ts"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/setup.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,wBAAgB,YAAY,IAAI,OAAO,CAiItC"} | ||
| {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/setup.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAa5C,wBAAgB,YAAY,IAAI,OAAO,CAqHtC"} |
@@ -8,4 +8,4 @@ // SPDX-License-Identifier: AGPL-3.0-only | ||
| import { createInterface } from "node:readline/promises"; | ||
| import { Command } from "commander"; | ||
| import { saveOAuthClientCredentials, saveOAuthScope, saveOAuthPkce, saveApiVersion, DEFAULT_API_VERSION, } from "@linkedctl/core"; | ||
| import { Command, Option } from "commander"; | ||
| import { saveOAuthClientCredentials, saveOAuthScope, saveOAuthPkce, saveApiVersion, DEFAULT_API_VERSION, PRODUCT_NAMES, resolveProductScopes, } from "@linkedctl/core"; | ||
| import { DEFAULT_REDIRECT_PORT } from "./login.js"; | ||
@@ -16,3 +16,4 @@ export function setupCommand() { | ||
| cmd.addHelpText("after", "\nLinkedIn Developer Portal: https://www.linkedin.com/developers/apps"); | ||
| cmd.action(async () => { | ||
| cmd.addOption(new Option("--product <product>", "pre-select a LinkedIn product (skips interactive product selection)").choices(PRODUCT_NAMES)); | ||
| cmd.action(async (opts) => { | ||
| const program = cmd.parent?.parent; | ||
@@ -52,3 +53,3 @@ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment | ||
| process.stderr.write('5. Under "Products", request access to the products you need\n'); | ||
| process.stderr.write(" (e.g. Share on LinkedIn, Sign In with LinkedIn using OpenID Connect)\n"); | ||
| process.stderr.write(" (e.g. Share on LinkedIn, Sign In with LinkedIn using OpenID Connect, Community Management API)\n"); | ||
| process.stderr.write("6. Copy the Client ID and Client Secret below\n"); | ||
@@ -69,27 +70,16 @@ process.stderr.write("\n"); | ||
| await saveOAuthClientCredentials({ clientId: clientId.trim(), clientSecret: clientSecret.trim() }, writeOpts); | ||
| process.stderr.write("\n"); | ||
| process.stderr.write("Which LinkedIn products have you enabled for this app?\n"); | ||
| process.stderr.write("\n"); | ||
| const scopes = []; | ||
| const signIn = await rl.question("Sign In with LinkedIn using OpenID Connect? [y/N] "); | ||
| if (signIn.trim().toLowerCase() === "y" || signIn.trim().toLowerCase() === "yes") { | ||
| scopes.push("openid", "profile", "email"); | ||
| } | ||
| const share = await rl.question("Share on LinkedIn? [y/N] "); | ||
| if (share.trim().toLowerCase() === "y" || share.trim().toLowerCase() === "yes") { | ||
| scopes.push("w_member_social"); | ||
| // Posting requires the author's person URN, which is only available via | ||
| // the /v2/userinfo endpoint. That endpoint needs openid scopes, so we | ||
| // force-enable them when Share on LinkedIn is selected. | ||
| if (!scopes.includes("openid")) { | ||
| scopes.push("openid", "profile", "email"); | ||
| process.stderr.write(' → Also enabling "Sign In with LinkedIn" scopes (required to resolve author identity for posts)\n'); | ||
| let scope; | ||
| if (opts.product !== undefined) { | ||
| // Non-interactive: resolve scopes from the product preset | ||
| const productScope = resolveProductScopes(opts.product); | ||
| if (productScope === undefined) { | ||
| throw new Error(`Unknown product: ${opts.product}. Valid products: ${PRODUCT_NAMES.join(", ")}`); | ||
| } | ||
| scope = productScope; | ||
| process.stderr.write(`\nProduct "${opts.product}" selected — scopes: ${scope}\n`); | ||
| } | ||
| if (scopes.length === 0) { | ||
| throw new Error("At least one LinkedIn product must be enabled for OAuth to work. " + | ||
| 'Enable products under the "Products" tab of your app at https://www.linkedin.com/developers/apps ' + | ||
| "and then re-run this setup."); | ||
| else { | ||
| // Interactive product selection | ||
| scope = await interactiveProductSelection(rl); | ||
| } | ||
| const scope = [...new Set(scopes)].join(" "); | ||
| await saveOAuthScope(scope, writeOpts); | ||
@@ -124,2 +114,48 @@ process.stderr.write("\n"); | ||
| } | ||
| /** | ||
| * Walk the user through interactive product selection. | ||
| * | ||
| * Asks about each LinkedIn product and collects the corresponding scopes. | ||
| * Warns when mutually exclusive products are selected together. | ||
| */ | ||
| async function interactiveProductSelection(rl) { | ||
| process.stderr.write("\n"); | ||
| process.stderr.write("Which LinkedIn products have you enabled for this app?\n"); | ||
| process.stderr.write("\n"); | ||
| const scopes = []; | ||
| let hasCommunityManagement = false; | ||
| const signIn = await rl.question("Sign In with LinkedIn using OpenID Connect? [y/N] "); | ||
| if (signIn.trim().toLowerCase() === "y" || signIn.trim().toLowerCase() === "yes") { | ||
| scopes.push("openid", "profile", "email"); | ||
| } | ||
| const share = await rl.question("Share on LinkedIn? [y/N] "); | ||
| if (share.trim().toLowerCase() === "y" || share.trim().toLowerCase() === "yes") { | ||
| scopes.push("w_member_social"); | ||
| // Posting requires the author's person URN, which is only available via | ||
| // the /v2/userinfo endpoint. That endpoint needs openid scopes, so we | ||
| // force-enable them when Share on LinkedIn is selected. | ||
| if (!scopes.includes("openid")) { | ||
| scopes.push("openid", "profile", "email"); | ||
| process.stderr.write(' → Also enabling "Sign In with LinkedIn" scopes (required to resolve author identity for posts)\n'); | ||
| } | ||
| } | ||
| const communityManagement = await rl.question("Community Management API? [y/N] "); | ||
| if (communityManagement.trim().toLowerCase() === "y" || communityManagement.trim().toLowerCase() === "yes") { | ||
| scopes.push("r_member_postAnalytics"); | ||
| hasCommunityManagement = true; | ||
| } | ||
| if (scopes.length === 0) { | ||
| throw new Error("At least one LinkedIn product must be enabled for OAuth to work. " + | ||
| 'Enable products under the "Products" tab of your app at https://www.linkedin.com/developers/apps ' + | ||
| "and then re-run this setup."); | ||
| } | ||
| // Warn about product exclusivity | ||
| if (hasCommunityManagement && scopes.includes("w_member_social")) { | ||
| process.stderr.write("\n"); | ||
| process.stderr.write(" ⚠ Warning: Community Management API must be the sole product on a LinkedIn Developer App.\n"); | ||
| process.stderr.write(" Using it alongside Share on LinkedIn requires separate apps and separate profiles.\n"); | ||
| process.stderr.write(' Consider running "linkedctl auth setup --profile analytics" for a dedicated profile.\n'); | ||
| } | ||
| return [...new Set(scopes)].join(" "); | ||
| } | ||
| //# sourceMappingURL=setup.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/commands/auth/setup.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/commands/auth/setup.ts"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/profile/list.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAwE5C,wBAAgB,WAAW,IAAI,OAAO,CAqCrC"} | ||
| {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/profile/list.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AA4E5C,wBAAgB,WAAW,IAAI,OAAO,CAuCrC"} |
@@ -39,8 +39,9 @@ // SPDX-License-Identifier: AGPL-3.0-only | ||
| const { config } = validateConfig(raw); | ||
| const scope = config.oauth?.scope; | ||
| if (config.oauth?.accessToken === undefined || config.oauth.accessToken === "") { | ||
| return { name, status: "not configured" }; | ||
| return { name, status: "not configured", scope }; | ||
| } | ||
| const expiry = getTokenExpiry(config.oauth.accessToken); | ||
| if (expiry === undefined) { | ||
| return { name, status: "authenticated" }; | ||
| return { name, status: "authenticated", scope }; | ||
| } | ||
@@ -51,2 +52,3 @@ if (expiry.isExpired) { | ||
| status: "expired", | ||
| scope, | ||
| expiresAt: expiry.expiresAt.toISOString(), | ||
@@ -59,2 +61,3 @@ expires: formatTimeDelta(expiry.expiresAt), | ||
| status: "authenticated", | ||
| scope, | ||
| expiresAt: expiry.expiresAt.toISOString(), | ||
@@ -89,3 +92,5 @@ expires: formatTimeDelta(expiry.expiresAt), | ||
| const format = resolveFormat(opts["format"], process.stdout, globalJson); | ||
| const data = format === "json" ? profiles : profiles.map((p) => ({ name: p.name, status: p.status, expires: p.expires })); | ||
| const data = format === "json" | ||
| ? profiles | ||
| : profiles.map((p) => ({ name: p.name, status: p.status, scope: p.scope ?? "-", expires: p.expires })); | ||
| console.log(formatOutput(data, format)); | ||
@@ -92,0 +97,0 @@ }); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/profile/list.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/profile/list.ts"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CA0CvD"} | ||
| {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CA2CvD"} |
+2
-0
@@ -12,2 +12,3 @@ // SPDX-License-Identifier: AGPL-3.0-only | ||
| import { reactionCommand } from "./commands/reaction/index.js"; | ||
| import { statsCommand } from "./commands/stats/index.js"; | ||
| import { whoamiCommand } from "./commands/whoami.js"; | ||
@@ -43,2 +44,3 @@ /** | ||
| program.addCommand(reactionCommand()); | ||
| program.addCommand(statsCommand()); | ||
| program.addCommand(whoamiCommand()); | ||
@@ -45,0 +47,0 @@ program.exitOverride(); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAEpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC5C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IACzC,OAAO,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAC;IAChD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAClC,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,iCAAiC,CAAC,CAAC;IACtE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,kDAAkD,CAAC,CAAC;IAC7E,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,+BAA+B,CAAC,CAAC;IAC/D,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;IAErD,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,WAAoB,EAAE,EAAE;QACjD,MAAM,IAAI,GAAG,WAAW,CAAC,eAAe,EAAuB,CAAC;QAChE,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;YACzB,OAAO,CAAC,IAAI,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;IACrC,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;IACnC,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;IACjC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;IACrC,OAAO,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC;IACtC,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC;IAEpC,OAAO,CAAC,YAAY,EAAE,CAAC;IAEvB,OAAO,CAAC,WAAW,CACjB,OAAO,EACP,qCAAqC;QACnC,iBAAiB;QACjB,iBAAiB;QACjB,oDAAoD;QACpD,oDAAoD,CACvD,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC"} | ||
| {"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAEpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC5C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IACzC,OAAO,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAC;IAChD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAClC,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,iCAAiC,CAAC,CAAC;IACtE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,kDAAkD,CAAC,CAAC;IAC7E,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,+BAA+B,CAAC,CAAC;IAC/D,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;IAErD,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,WAAoB,EAAE,EAAE;QACjD,MAAM,IAAI,GAAG,WAAW,CAAC,eAAe,EAAuB,CAAC;QAChE,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;YACzB,OAAO,CAAC,IAAI,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;IACrC,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;IACnC,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;IACjC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;IACrC,OAAO,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC;IACtC,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;IACnC,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC;IAEpC,OAAO,CAAC,YAAY,EAAE,CAAC;IAEvB,OAAO,CAAC,WAAW,CACjB,OAAO,EACP,qCAAqC;QACnC,iBAAiB;QACjB,iBAAiB;QACjB,oDAAoD;QACpD,oDAAoD,CACvD,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC"} |
+2
-2
| { | ||
| "name": "@linkedctl/cli", | ||
| "version": "0.4.0", | ||
| "version": "0.5.0", | ||
| "description": "CLI for LinkedIn API integration", | ||
@@ -44,3 +44,3 @@ "type": "module", | ||
| "commander": "^14.0.3", | ||
| "@linkedctl/core": "^0.4.0" | ||
| "@linkedctl/core": "^0.5.0" | ||
| }, | ||
@@ -47,0 +47,0 @@ "devDependencies": { |
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
1254601
3.17%224
9.8%3181
18.03%+ Added
- Removed
Updated