@linkedctl/core
Advanced tools
| import type { LinkedInClient } from "../http/linkedin-client.js"; | ||
| import type { UploadDocumentOptions } from "./types.js"; | ||
| /** | ||
| * Upload a document to LinkedIn and return the document URN. | ||
| * | ||
| * Uses the two-step LinkedIn upload flow: | ||
| * 1. Initialize the upload to obtain an upload URL and document URN. | ||
| * 2. PUT the binary content to the upload URL. | ||
| */ | ||
| export declare function uploadDocument(client: LinkedInClient, options: UploadDocumentOptions): Promise<string>; | ||
| //# sourceMappingURL=documents-service.d.ts.map |
| {"version":3,"file":"documents-service.d.ts","sourceRoot":"","sources":["../../src/documents/documents-service.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAoC,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAE1F;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAa5G"} |
| // SPDX-License-Identifier: AGPL-3.0-only | ||
| // Copyright (C) 2026 Oleksii PELYKH | ||
| /** | ||
| * Upload a document to LinkedIn and return the document URN. | ||
| * | ||
| * Uses the two-step LinkedIn upload flow: | ||
| * 1. Initialize the upload to obtain an upload URL and document URN. | ||
| * 2. PUT the binary content to the upload URL. | ||
| */ | ||
| export async function uploadDocument(client, options) { | ||
| const initResponse = await client.action("/rest/documents?action=initializeUpload", { | ||
| initializeUploadRequest: { | ||
| owner: options.owner, | ||
| }, | ||
| }); | ||
| await client.upload(initResponse.value.uploadUrl, options.data); | ||
| return initResponse.value.document; | ||
| } | ||
| //# sourceMappingURL=documents-service.js.map |
| {"version":3,"file":"documents-service.js","sourceRoot":"","sources":["../../src/documents/documents-service.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAKpC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAsB,EAAE,OAA8B;IACzF,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,MAAM,CACtC,yCAAyC,EACzC;QACE,uBAAuB,EAAE;YACvB,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB;KACF,CACF,CAAC;IAEF,MAAM,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhE,OAAO,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC;AACrC,CAAC"} |
| /** | ||
| * Supported document file extensions for LinkedIn document upload. | ||
| */ | ||
| export declare const DOCUMENT_EXTENSIONS: readonly [".pdf", ".docx", ".pptx", ".doc", ".ppt"]; | ||
| /** | ||
| * Maximum document file size in bytes (100 MB). | ||
| */ | ||
| export declare const DOCUMENT_MAX_SIZE_BYTES: number; | ||
| /** | ||
| * Options for uploading a document to LinkedIn. | ||
| */ | ||
| export interface UploadDocumentOptions { | ||
| /** Author URN (e.g. `urn:li:person:abc123`). */ | ||
| owner: string; | ||
| /** Raw file content. */ | ||
| data: Uint8Array; | ||
| } | ||
| /** | ||
| * Response from the LinkedIn `initializeUpload` action for documents. | ||
| */ | ||
| export interface InitializeDocumentUploadResponse { | ||
| value: { | ||
| uploadUrl: string; | ||
| document: string; | ||
| }; | ||
| } | ||
| //# sourceMappingURL=types.d.ts.map |
| {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/documents/types.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,eAAO,MAAM,mBAAmB,qDAAsD,CAAC;AAEvF;;GAEG;AACH,eAAO,MAAM,uBAAuB,QAAoB,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,IAAI,EAAE,UAAU,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAC/C,KAAK,EAAE;QACL,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH"} |
| // SPDX-License-Identifier: AGPL-3.0-only | ||
| // Copyright (C) 2026 Oleksii PELYKH | ||
| /** | ||
| * Supported document file extensions for LinkedIn document upload. | ||
| */ | ||
| export const DOCUMENT_EXTENSIONS = [".pdf", ".docx", ".pptx", ".doc", ".ppt"]; | ||
| /** | ||
| * Maximum document file size in bytes (100 MB). | ||
| */ | ||
| export const DOCUMENT_MAX_SIZE_BYTES = 100 * 1024 * 1024; | ||
| //# sourceMappingURL=types.js.map |
| {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/documents/types.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAEpC;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAU,CAAC;AAEvF;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC"} |
| import type { LinkedInClient } from "../http/linkedin-client.js"; | ||
| /** | ||
| * Options for uploading an image to LinkedIn. | ||
| */ | ||
| export interface UploadImageOptions { | ||
| /** Owner URN (e.g. `urn:li:person:abc123`). */ | ||
| owner: string; | ||
| /** Raw image bytes. */ | ||
| data: Uint8Array; | ||
| /** MIME type of the image (e.g. `image/jpeg`). */ | ||
| contentType: string; | ||
| } | ||
| /** | ||
| * Upload an image to LinkedIn and return the image URN. | ||
| * | ||
| * Uses the LinkedIn Images API two-step flow: | ||
| * 1. Initialize the upload to get an upload URL and image URN | ||
| * 2. PUT the binary data to the upload URL | ||
| */ | ||
| export declare function uploadImage(client: LinkedInClient, options: UploadImageOptions): Promise<string>; | ||
| //# sourceMappingURL=media-service.d.ts.map |
| {"version":3,"file":"media-service.d.ts","sourceRoot":"","sources":["../../src/media/media-service.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,IAAI,EAAE,UAAU,CAAC;IACjB,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;CACrB;AASD;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAgBtG"} |
| // SPDX-License-Identifier: AGPL-3.0-only | ||
| // Copyright (C) 2026 Oleksii PELYKH | ||
| /** | ||
| * Upload an image to LinkedIn and return the image URN. | ||
| * | ||
| * Uses the LinkedIn Images API two-step flow: | ||
| * 1. Initialize the upload to get an upload URL and image URN | ||
| * 2. PUT the binary data to the upload URL | ||
| */ | ||
| export async function uploadImage(client, options) { | ||
| const initResponse = await client.request("/rest/images?action=initializeUpload", { | ||
| method: "POST", | ||
| headers: { "Content-Type": "application/json" }, | ||
| body: JSON.stringify({ | ||
| initializeUploadRequest: { | ||
| owner: options.owner, | ||
| }, | ||
| }), | ||
| }); | ||
| const { uploadUrl, image } = initResponse.value; | ||
| await client.upload(uploadUrl, options.data, options.contentType); | ||
| return image; | ||
| } | ||
| //# sourceMappingURL=media-service.js.map |
| {"version":3,"file":"media-service.js","sourceRoot":"","sources":["../../src/media/media-service.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAuBpC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAsB,EAAE,OAA2B;IACnF,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,OAAO,CAA2B,sCAAsC,EAAE;QAC1G,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,uBAAuB,EAAE;gBACvB,KAAK,EAAE,OAAO,CAAC,KAAK;aACrB;SACF,CAAC;KACH,CAAC,CAAC;IAEH,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC;IAEhD,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAElE,OAAO,KAAK,CAAC;AACf,CAAC"} |
| /** | ||
| * Supported image MIME types for LinkedIn image uploads. | ||
| */ | ||
| export declare const SUPPORTED_IMAGE_TYPES: ReadonlyMap<string, string>; | ||
| //# sourceMappingURL=types.d.ts.map |
| {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/media/types.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAK5D,CAAC"} |
| // SPDX-License-Identifier: AGPL-3.0-only | ||
| // Copyright (C) 2026 Oleksii PELYKH | ||
| /** | ||
| * Supported image MIME types for LinkedIn image uploads. | ||
| */ | ||
| export const SUPPORTED_IMAGE_TYPES = new Map([ | ||
| [".jpg", "image/jpeg"], | ||
| [".jpeg", "image/jpeg"], | ||
| [".png", "image/png"], | ||
| [".gif", "image/gif"], | ||
| ]); | ||
| //# sourceMappingURL=types.js.map |
| {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/media/types.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAEpC;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAgC,IAAI,GAAG,CAAC;IACxE,CAAC,MAAM,EAAE,YAAY,CAAC;IACtB,CAAC,OAAO,EAAE,YAAY,CAAC;IACvB,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,MAAM,EAAE,WAAW,CAAC;CACtB,CAAC,CAAC"} |
| /** | ||
| * Request payload for the LinkedIn video initializeUpload action. | ||
| */ | ||
| export interface InitializeVideoUploadRequest { | ||
| /** Owner URN (e.g. `urn:li:person:abc123`). */ | ||
| owner: string; | ||
| /** Total file size in bytes. */ | ||
| fileSizeBytes: number; | ||
| } | ||
| /** | ||
| * A single upload instruction returned by initializeUpload. | ||
| */ | ||
| export interface VideoUploadInstruction { | ||
| /** Presigned URL to upload the chunk to via PUT. */ | ||
| uploadUrl: string; | ||
| /** Byte offset of the first byte in this chunk (inclusive). */ | ||
| firstByte: number; | ||
| /** Byte offset of the last byte in this chunk (inclusive). */ | ||
| lastByte: number; | ||
| } | ||
| /** | ||
| * Response from the LinkedIn video initializeUpload action. | ||
| */ | ||
| export interface InitializeVideoUploadResponse { | ||
| value: { | ||
| /** Expiration timestamp for the upload URLs. */ | ||
| uploadUrlsExpireAt: number; | ||
| /** The video URN assigned to this upload. */ | ||
| video: string; | ||
| /** Ordered list of chunk upload instructions. */ | ||
| uploadInstructions: VideoUploadInstruction[]; | ||
| /** Token required for the finalizeUpload call. */ | ||
| uploadToken: string; | ||
| }; | ||
| } | ||
| /** | ||
| * Request payload for the LinkedIn video finalizeUpload action. | ||
| */ | ||
| export interface FinalizeVideoUploadRequest { | ||
| /** The video URN from initializeUpload. */ | ||
| video: string; | ||
| /** The upload token from initializeUpload. */ | ||
| uploadToken: string; | ||
| /** ETags collected from each chunk upload, in order. */ | ||
| uploadedPartIds: string[]; | ||
| } | ||
| /** | ||
| * Options for the high-level uploadVideo function. | ||
| */ | ||
| export interface UploadVideoOptions { | ||
| /** Owner URN (e.g. `urn:li:person:abc123`). */ | ||
| owner: string; | ||
| /** Raw video file data. */ | ||
| data: Buffer; | ||
| } | ||
| //# sourceMappingURL=types.d.ts.map |
| {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/video/types.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,SAAS,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,KAAK,EAAE;QACL,gDAAgD;QAChD,kBAAkB,EAAE,MAAM,CAAC;QAC3B,6CAA6C;QAC7C,KAAK,EAAE,MAAM,CAAC;QACd,iDAAiD;QACjD,kBAAkB,EAAE,sBAAsB,EAAE,CAAC;QAC7C,kDAAkD;QAClD,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd"} |
| // SPDX-License-Identifier: AGPL-3.0-only | ||
| // Copyright (C) 2026 Oleksii PELYKH | ||
| export {}; | ||
| //# sourceMappingURL=types.js.map |
| {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/video/types.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC"} |
| import type { LinkedInClient } from "../http/linkedin-client.js"; | ||
| import type { FinalizeVideoUploadRequest, InitializeVideoUploadRequest, InitializeVideoUploadResponse, UploadVideoOptions } from "./types.js"; | ||
| /** | ||
| * Initialize a video upload with LinkedIn. | ||
| * | ||
| * Returns the video URN, upload instructions (presigned URLs), and upload token. | ||
| */ | ||
| export declare function initializeVideoUpload(client: LinkedInClient, options: InitializeVideoUploadRequest): Promise<InitializeVideoUploadResponse>; | ||
| /** | ||
| * Upload a single binary chunk to a presigned upload URL. | ||
| * | ||
| * Returns the ETag header from the response. | ||
| */ | ||
| export declare function uploadVideoChunk(client: LinkedInClient, uploadUrl: string, chunk: Buffer): Promise<string>; | ||
| /** | ||
| * Finalize a video upload after all chunks have been uploaded. | ||
| */ | ||
| export declare function finalizeVideoUpload(client: LinkedInClient, options: FinalizeVideoUploadRequest): Promise<void>; | ||
| /** | ||
| * Upload a video to LinkedIn via the multipart flow: | ||
| * initialize → chunk upload → finalize. | ||
| * | ||
| * Splits the file into chunks matching the upload instructions, | ||
| * uploads each chunk, collects ETags, and finalizes. | ||
| * | ||
| * Returns the video URN. | ||
| */ | ||
| export declare function uploadVideo(client: LinkedInClient, options: UploadVideoOptions): Promise<string>; | ||
| //# sourceMappingURL=video-service.d.ts.map |
| {"version":3,"file":"video-service.d.ts","sourceRoot":"","sources":["../../src/video/video-service.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EACV,0BAA0B,EAC1B,4BAA4B,EAC5B,6BAA6B,EAC7B,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAEpB;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,6BAA6B,CAAC,CAWxC;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOhH;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAYpH;AAED;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAwBtG"} |
| // SPDX-License-Identifier: AGPL-3.0-only | ||
| // Copyright (C) 2026 Oleksii PELYKH | ||
| /** | ||
| * Initialize a video upload with LinkedIn. | ||
| * | ||
| * Returns the video URN, upload instructions (presigned URLs), and upload token. | ||
| */ | ||
| export async function initializeVideoUpload(client, options) { | ||
| return client.request("/rest/videos?action=initializeUpload", { | ||
| method: "POST", | ||
| headers: { "Content-Type": "application/json" }, | ||
| body: JSON.stringify({ | ||
| initializeUploadRequest: { | ||
| owner: options.owner, | ||
| fileSizeBytes: options.fileSizeBytes, | ||
| }, | ||
| }), | ||
| }); | ||
| } | ||
| /** | ||
| * Upload a single binary chunk to a presigned upload URL. | ||
| * | ||
| * Returns the ETag header from the response. | ||
| */ | ||
| export async function uploadVideoChunk(client, uploadUrl, chunk) { | ||
| const response = await client.uploadBinary(uploadUrl, chunk); | ||
| const etag = response.headers.get("etag"); | ||
| if (etag === null) { | ||
| throw new Error("Upload response missing ETag header"); | ||
| } | ||
| return etag; | ||
| } | ||
| /** | ||
| * Finalize a video upload after all chunks have been uploaded. | ||
| */ | ||
| export async function finalizeVideoUpload(client, options) { | ||
| await client.request("/rest/videos?action=finalizeUpload", { | ||
| method: "POST", | ||
| headers: { "Content-Type": "application/json" }, | ||
| body: JSON.stringify({ | ||
| finalizeUploadRequest: { | ||
| video: options.video, | ||
| uploadToken: options.uploadToken, | ||
| uploadedPartIds: options.uploadedPartIds, | ||
| }, | ||
| }), | ||
| }); | ||
| } | ||
| /** | ||
| * Upload a video to LinkedIn via the multipart flow: | ||
| * initialize → chunk upload → finalize. | ||
| * | ||
| * Splits the file into chunks matching the upload instructions, | ||
| * uploads each chunk, collects ETags, and finalizes. | ||
| * | ||
| * Returns the video URN. | ||
| */ | ||
| export async function uploadVideo(client, options) { | ||
| const { owner, data } = options; | ||
| const initResponse = await initializeVideoUpload(client, { | ||
| owner, | ||
| fileSizeBytes: data.byteLength, | ||
| }); | ||
| const { video, uploadInstructions, uploadToken } = initResponse.value; | ||
| const etags = []; | ||
| for (const instruction of uploadInstructions) { | ||
| const chunk = data.subarray(instruction.firstByte, instruction.lastByte + 1); | ||
| const etag = await uploadVideoChunk(client, instruction.uploadUrl, chunk); | ||
| etags.push(etag); | ||
| } | ||
| await finalizeVideoUpload(client, { | ||
| video, | ||
| uploadToken, | ||
| uploadedPartIds: etags, | ||
| }); | ||
| return video; | ||
| } | ||
| //# sourceMappingURL=video-service.js.map |
| {"version":3,"file":"video-service.js","sourceRoot":"","sources":["../../src/video/video-service.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAUpC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAsB,EACtB,OAAqC;IAErC,OAAO,MAAM,CAAC,OAAO,CAAgC,sCAAsC,EAAE;QAC3F,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,uBAAuB,EAAE;gBACvB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,aAAa,EAAE,OAAO,CAAC,aAAa;aACrC;SACF,CAAC;KACH,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAsB,EAAE,SAAiB,EAAE,KAAa;IAC7F,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAAsB,EAAE,OAAmC;IACnG,MAAM,MAAM,CAAC,OAAO,CAAY,oCAAoC,EAAE;QACpE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,qBAAqB,EAAE;gBACrB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,eAAe,EAAE,OAAO,CAAC,eAAe;aACzC;SACF,CAAC;KACH,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAsB,EAAE,OAA2B;IACnF,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAEhC,MAAM,YAAY,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE;QACvD,KAAK;QACL,aAAa,EAAE,IAAI,CAAC,UAAU;KAC/B,CAAC,CAAC;IAEH,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC;IAEtE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,WAAW,IAAI,kBAAkB,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QAC7E,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC1E,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IAED,MAAM,mBAAmB,CAAC,MAAM,EAAE;QAChC,KAAK;QACL,WAAW;QACX,eAAe,EAAE,KAAK;KACvB,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACf,CAAC"} |
@@ -28,2 +28,9 @@ export interface LinkedInClientOptions { | ||
| /** | ||
| * Invoke a REST.li action via POST and return the parsed JSON response. | ||
| * | ||
| * Used for endpoints like `/rest/documents?action=initializeUpload` that | ||
| * return a JSON body rather than a resource ID header. | ||
| */ | ||
| action<T>(path: string, body: unknown): Promise<T>; | ||
| /** | ||
| * Create a resource via POST and return the ID from the `x-restli-id` | ||
@@ -34,2 +41,17 @@ * response header (standard LinkedIn REST.li create pattern). | ||
| /** | ||
| * Upload binary data via PUT to an absolute URL. | ||
| * | ||
| * Used for LinkedIn media uploads where the upload URL is provided by | ||
| * the initialize-upload response and is already fully qualified. | ||
| */ | ||
| upload(url: string, data: Uint8Array, contentType?: string): Promise<void>; | ||
| /** | ||
| * Upload binary data via PUT to an absolute URL (e.g. a presigned upload URL). | ||
| * | ||
| * Sets the Authorization and User-Agent headers but skips REST.li | ||
| * protocol headers since upload endpoints are not REST.li resources. | ||
| * Returns the raw Response so callers can inspect headers (e.g. ETag). | ||
| */ | ||
| uploadBinary(url: string, data: Buffer): Promise<Response>; | ||
| /** | ||
| * Execute an HTTP request with retry logic and error handling. | ||
@@ -36,0 +58,0 @@ * Returns the raw successful Response. |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"linkedin-client.d.ts","sourceRoot":"","sources":["../../src/http/linkedin-client.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,qBAAqB;IACpC,2BAA2B;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,OAAO,EAAE,qBAAqB;IAQ1C;;;;;OAKG;IACG,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC;IAQ9D;;;OAGG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAa1D;;;OAGG;YACW,WAAW;IA+CzB,OAAO,CAAC,YAAY;IASpB,uFAAuF;IACvF,OAAO,CAAC,gBAAgB;YAOV,WAAW;IAazB,OAAO,CAAC,KAAK;CAGd"} | ||
| {"version":3,"file":"linkedin-client.d.ts","sourceRoot":"","sources":["../../src/http/linkedin-client.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,qBAAqB;IACpC,2BAA2B;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,OAAO,EAAE,qBAAqB;IAQ1C;;;;;OAKG;IACG,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC;IAQ9D;;;;;OAKG;IACG,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IASxD;;;OAGG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAa1D;;;;;OAKG;IACG,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,SAA6B,GAAG,OAAO,CAAC,IAAI,CAAC;IAQpG;;;;;;OAMG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAoBhE;;;OAGG;YACW,WAAW;IA+CzB,OAAO,CAAC,YAAY;IASpB,uFAAuF;IACvF,OAAO,CAAC,gBAAgB;YAOV,WAAW;IAazB,OAAO,CAAC,KAAK;CAGd"} |
@@ -36,2 +36,16 @@ // SPDX-License-Identifier: AGPL-3.0-only | ||
| /** | ||
| * Invoke a REST.li action via POST and return the parsed JSON response. | ||
| * | ||
| * Used for endpoints like `/rest/documents?action=initializeUpload` that | ||
| * return a JSON body rather than a resource ID header. | ||
| */ | ||
| async action(path, body) { | ||
| const response = await this.sendRequest(path, { | ||
| method: "POST", | ||
| headers: { "Content-Type": "application/json" }, | ||
| body: JSON.stringify(body), | ||
| }); | ||
| return (await response.json()); | ||
| } | ||
| /** | ||
| * Create a resource via POST and return the ID from the `x-restli-id` | ||
@@ -53,7 +67,43 @@ * response header (standard LinkedIn REST.li create pattern). | ||
| /** | ||
| * Upload binary data via PUT to an absolute URL. | ||
| * | ||
| * Used for LinkedIn media uploads where the upload URL is provided by | ||
| * the initialize-upload response and is already fully qualified. | ||
| */ | ||
| async upload(url, data, contentType = "application/octet-stream") { | ||
| await this.sendRequest(url, { | ||
| method: "PUT", | ||
| headers: { "Content-Type": contentType }, | ||
| body: data, | ||
| }); | ||
| } | ||
| /** | ||
| * Upload binary data via PUT to an absolute URL (e.g. a presigned upload URL). | ||
| * | ||
| * Sets the Authorization and User-Agent headers but skips REST.li | ||
| * protocol headers since upload endpoints are not REST.li resources. | ||
| * Returns the raw Response so callers can inspect headers (e.g. ETag). | ||
| */ | ||
| async uploadBinary(url, data) { | ||
| const headers = new Headers(); | ||
| headers.set("Authorization", `Bearer ${this.accessToken}`); | ||
| headers.set("User-Agent", this.userAgent); | ||
| headers.set("Content-Type", "application/octet-stream"); | ||
| const response = await fetch(url, { | ||
| method: "PUT", | ||
| headers, | ||
| body: data, | ||
| }); | ||
| if (!response.ok) { | ||
| const body = await this.tryReadBody(response); | ||
| throw new LinkedInApiError(`Upload failed (HTTP ${response.status})`, response.status, body); | ||
| } | ||
| return response; | ||
| } | ||
| /** | ||
| * Execute an HTTP request with retry logic and error handling. | ||
| * Returns the raw successful Response. | ||
| */ | ||
| async sendRequest(path, init) { | ||
| const url = `${this.baseUrl}${path}`; | ||
| async sendRequest(urlOrPath, init) { | ||
| const url = urlOrPath.startsWith("http") ? urlOrPath : `${this.baseUrl}${urlOrPath}`; | ||
| const headers = this.buildHeaders(init?.headers); | ||
@@ -60,0 +110,0 @@ let lastError; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"linkedin-client.js","sourceRoot":"","sources":["../../src/http/linkedin-client.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"linkedin-client.js","sourceRoot":"","sources":["../../src/http/linkedin-client.ts"],"names":[],"mappings":"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"} |
+11
-3
@@ -14,5 +14,13 @@ export { loadConfigFile, CONFIG_DIR, DEFAULT_API_VERSION, validateConfig, isValidProfileName, applyEnvOverlay, saveOAuthTokens, saveOAuthClientCredentials, saveOAuthScope, saveOAuthPkce, saveApiVersion, clearOAuthTokens, resolveConfig, ConfigError, } from "./config/index.js"; | ||
| export { getCurrentPersonUrn } from "./userinfo/userinfo-service.js"; | ||
| export { createTextPost } from "./posts/posts-service.js"; | ||
| export type { CreateTextPostOptions } from "./posts/posts-service.js"; | ||
| export type { PostVisibility } from "./posts/types.js"; | ||
| export { uploadImage } from "./media/media-service.js"; | ||
| export type { UploadImageOptions } from "./media/media-service.js"; | ||
| export { SUPPORTED_IMAGE_TYPES } from "./media/types.js"; | ||
| export { createTextPost, createPost } from "./posts/posts-service.js"; | ||
| export type { CreateTextPostOptions, CreatePostOptions } from "./posts/posts-service.js"; | ||
| export type { PostVisibility, PostContent, MediaContent, ArticleContent, MultiImageContent } from "./posts/types.js"; | ||
| export { initializeVideoUpload, uploadVideoChunk, finalizeVideoUpload, uploadVideo } from "./video/video-service.js"; | ||
| export type { InitializeVideoUploadRequest, InitializeVideoUploadResponse, VideoUploadInstruction, FinalizeVideoUploadRequest, UploadVideoOptions, } from "./video/types.js"; | ||
| export { uploadDocument } from "./documents/documents-service.js"; | ||
| export { DOCUMENT_EXTENSIONS, DOCUMENT_MAX_SIZE_BYTES } from "./documents/types.js"; | ||
| export type { UploadDocumentOptions, InitializeDocumentUploadResponse } from "./documents/types.js"; | ||
| //# sourceMappingURL=index.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,cAAc,EACd,UAAU,EACV,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,0BAA0B,EAC1B,cAAc,EACd,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,cAAc,EACd,UAAU,EACV,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,YAAY,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,EACnB,4BAA4B,GAC7B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,YAAY,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC9E,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,YAAY,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,YAAY,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACtE,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"} | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,cAAc,EACd,UAAU,EACV,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,0BAA0B,EAC1B,cAAc,EACd,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,cAAc,EACd,UAAU,EACV,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,YAAY,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,EACnB,4BAA4B,GAC7B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,YAAY,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC9E,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,YAAY,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,YAAY,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtE,YAAY,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACzF,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrH,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACrH,YAAY,EACV,4BAA4B,EAC5B,6BAA6B,EAC7B,sBAAsB,EACtB,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACpF,YAAY,EAAE,qBAAqB,EAAE,gCAAgC,EAAE,MAAM,sBAAsB,CAAC"} |
+6
-1
@@ -11,3 +11,8 @@ // SPDX-License-Identifier: AGPL-3.0-only | ||
| export { getCurrentPersonUrn } from "./userinfo/userinfo-service.js"; | ||
| export { createTextPost } from "./posts/posts-service.js"; | ||
| export { uploadImage } from "./media/media-service.js"; | ||
| export { SUPPORTED_IMAGE_TYPES } from "./media/types.js"; | ||
| export { createTextPost, createPost } from "./posts/posts-service.js"; | ||
| export { initializeVideoUpload, uploadVideoChunk, finalizeVideoUpload, uploadVideo } from "./video/video-service.js"; | ||
| export { uploadDocument } from "./documents/documents-service.js"; | ||
| export { DOCUMENT_EXTENSIONS, DOCUMENT_MAX_SIZE_BYTES } from "./documents/types.js"; | ||
| //# sourceMappingURL=index.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAEpC,OAAO,EACL,cAAc,EACd,UAAU,EACV,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,0BAA0B,EAC1B,cAAc,EACd,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAS3B,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,EACnB,4BAA4B,GAC7B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC"} | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAEpC,OAAO,EACL,cAAc,EACd,UAAU,EACV,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,0BAA0B,EAC1B,cAAc,EACd,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAS3B,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,EACnB,4BAA4B,GAC7B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGtE,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAQrH,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC"} |
| import type { LinkedInClient } from "../http/linkedin-client.js"; | ||
| import type { PostVisibility } from "./types.js"; | ||
| import type { PostContent, PostVisibility } from "./types.js"; | ||
| /** | ||
@@ -15,5 +15,22 @@ * Options for creating a text-only LinkedIn post. | ||
| /** | ||
| * Options for creating a LinkedIn post with optional media content. | ||
| */ | ||
| export interface CreatePostOptions { | ||
| /** Author URN (e.g. `urn:li:person:abc123`). */ | ||
| author: string; | ||
| /** The post text content. */ | ||
| text: string; | ||
| /** Post visibility. Defaults to `"PUBLIC"`. */ | ||
| visibility?: PostVisibility | undefined; | ||
| /** Optional media content attachment. */ | ||
| content?: PostContent | undefined; | ||
| } | ||
| /** | ||
| * Create a text-only post on LinkedIn and return the post URN. | ||
| */ | ||
| export declare function createTextPost(client: LinkedInClient, options: CreateTextPostOptions): Promise<string>; | ||
| /** | ||
| * Create a post on LinkedIn with optional media content and return the post URN. | ||
| */ | ||
| export declare function createPost(client: LinkedInClient, options: CreatePostOptions): Promise<string>; | ||
| //# sourceMappingURL=posts-service.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"posts-service.d.ts","sourceRoot":"","sources":["../../src/posts/posts-service.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,UAAU,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;CACzC;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAe5G"} | ||
| {"version":3,"file":"posts-service.d.ts","sourceRoot":"","sources":["../../src/posts/posts-service.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,UAAU,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,UAAU,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IACxC,yCAAyC;IACzC,OAAO,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;CACnC;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAE5G;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBpG"} |
@@ -7,2 +7,8 @@ // SPDX-License-Identifier: AGPL-3.0-only | ||
| export async function createTextPost(client, options) { | ||
| return createPost(client, options); | ||
| } | ||
| /** | ||
| * Create a post on LinkedIn with optional media content and return the post URN. | ||
| */ | ||
| export async function createPost(client, options) { | ||
| const body = { | ||
@@ -20,4 +26,7 @@ author: options.author, | ||
| }; | ||
| if (options.content !== undefined) { | ||
| body.content = options.content; | ||
| } | ||
| return client.create("/rest/posts", body); | ||
| } | ||
| //# sourceMappingURL=posts-service.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"posts-service.js","sourceRoot":"","sources":["../../src/posts/posts-service.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAiBpC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAsB,EAAE,OAA8B;IACzF,MAAM,IAAI,GAAG;QACX,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,UAAU,EAAE,OAAO,CAAC,IAAI;QACxB,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,QAAQ;QAC1C,YAAY,EAAE;YACZ,gBAAgB,EAAE,WAAW;YAC7B,cAAc,EAAE,EAAE;YAClB,8BAA8B,EAAE,EAAE;SACnC;QACD,cAAc,EAAE,WAAW;QAC3B,yBAAyB,EAAE,KAAK;KACjC,CAAC;IAEF,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;AAC5C,CAAC"} | ||
| {"version":3,"file":"posts-service.js","sourceRoot":"","sources":["../../src/posts/posts-service.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AA+BpC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAsB,EAAE,OAA8B;IACzF,OAAO,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAsB,EAAE,OAA0B;IACjF,MAAM,IAAI,GAA4B;QACpC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,UAAU,EAAE,OAAO,CAAC,IAAI;QACxB,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,QAAQ;QAC1C,YAAY,EAAE;YACZ,gBAAgB,EAAE,WAAW;YAC7B,cAAc,EAAE,EAAE;YAClB,8BAA8B,EAAE,EAAE;SACnC;QACD,cAAc,EAAE,WAAW;QAC3B,yBAAyB,EAAE,KAAK;KACjC,CAAC;IAEF,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACjC,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;AAC5C,CAAC"} |
@@ -5,2 +5,39 @@ /** | ||
| export type PostVisibility = "PUBLIC" | "CONNECTIONS"; | ||
| /** | ||
| * A single media attachment (image, video, or document). | ||
| */ | ||
| export interface MediaContent { | ||
| /** Media asset URN (e.g. `urn:li:image:...`, `urn:li:video:...`, `urn:li:document:...`). */ | ||
| id: string; | ||
| } | ||
| /** | ||
| * An article link attachment. | ||
| */ | ||
| export interface ArticleContent { | ||
| /** The article URL. */ | ||
| source: string; | ||
| /** Optional article title. */ | ||
| title?: string | undefined; | ||
| /** Optional article description. */ | ||
| description?: string | undefined; | ||
| } | ||
| /** | ||
| * A multi-image attachment. | ||
| */ | ||
| export interface MultiImageContent { | ||
| /** Array of image URNs (minimum 2). */ | ||
| images: Array<{ | ||
| id: string; | ||
| }>; | ||
| } | ||
| /** | ||
| * Content attachment for a LinkedIn post. | ||
| */ | ||
| export type PostContent = { | ||
| media: MediaContent; | ||
| } | { | ||
| article: ArticleContent; | ||
| } | { | ||
| multiImage: MultiImageContent; | ||
| }; | ||
| //# sourceMappingURL=types.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/posts/types.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,aAAa,CAAC"} | ||
| {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/posts/types.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,aAAa,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,4FAA4F;IAC5F,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,uCAAuC;IACvC,MAAM,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IAAE,KAAK,EAAE,YAAY,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,cAAc,CAAA;CAAE,GAAG;IAAE,UAAU,EAAE,iBAAiB,CAAA;CAAE,CAAC"} |
+3
-1
| { | ||
| "name": "@linkedctl/core", | ||
| "version": "0.1.0", | ||
| "version": "0.2.0", | ||
| "description": "Core library for LinkedIn API integration", | ||
@@ -45,2 +45,3 @@ "type": "module", | ||
| "eslint": "^9.39.2", | ||
| "typedoc": "^0.28.17", | ||
| "typescript": "^5.9.3", | ||
@@ -55,4 +56,5 @@ "vitest": "^4.0.18" | ||
| "lint": "eslint src/", | ||
| "docs": "typedoc", | ||
| "dev": "tsc --watch" | ||
| } | ||
| } |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
148367
21.65%99
32%1648
35.64%5
25%