Sign In

@linkedctl/core

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@linkedctl/core - npm Package Compare versions

Comparing version
0.1.0
to
0.2.0
+11
dist/documents/documents-service.d.ts
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"}
+22
-0

@@ -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

@@ -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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"}

@@ -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"}

@@ -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"}
{
"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"
}
}