@robinpath/pinterest
Advanced tools
| import type { ModuleAdapter } from "@robinpath/core"; | ||
| declare const PinterestModule: ModuleAdapter; | ||
| export default PinterestModule; | ||
| export { PinterestModule }; | ||
| export { PinterestFunctions, PinterestFunctionMetadata, PinterestModuleMetadata, PinterestCredentialTypes, } from "./pinterest.js"; | ||
| //# sourceMappingURL=index.d.ts.map |
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AASrD,QAAA,MAAM,eAAe,EAAE,aAQtB,CAAC;AAEF,eAAe,eAAe,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,CAAC;AAC3B,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,gBAAgB,CAAC"} |
| import { PinterestFunctions, PinterestFunctionMetadata, PinterestModuleMetadata, PinterestCredentialTypes, configurePinterest, } from "./pinterest.js"; | ||
| const PinterestModule = { | ||
| name: "pinterest", | ||
| functions: PinterestFunctions, | ||
| functionMetadata: PinterestFunctionMetadata, | ||
| moduleMetadata: PinterestModuleMetadata, | ||
| credentialTypes: PinterestCredentialTypes, | ||
| configure: configurePinterest, | ||
| global: false, | ||
| }; | ||
| export default PinterestModule; | ||
| export { PinterestModule }; | ||
| export { PinterestFunctions, PinterestFunctionMetadata, PinterestModuleMetadata, PinterestCredentialTypes, } from "./pinterest.js"; | ||
| //# sourceMappingURL=index.js.map |
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAExB,MAAM,eAAe,GAAkB;IACrC,IAAI,EAAE,WAAW;IACjB,SAAS,EAAE,kBAAkB;IAC7B,gBAAgB,EAAE,yBAAyB;IAC3C,cAAc,EAAE,uBAAuB;IACvC,eAAe,EAAE,wBAAwB;IACzC,SAAS,EAAE,kBAAkB;IAC7B,MAAM,EAAE,KAAK;CACd,CAAC;AAEF,eAAe,eAAe,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,CAAC;AAC3B,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,gBAAgB,CAAC"} |
| /** | ||
| * RobinPath Pinterest Module (Node port) | ||
| * | ||
| * Pinterest API v5 — boards and pins. Mirror of the canonical | ||
| * credential-vault adapter shape so the visual editor renders it | ||
| * identically to every other module. | ||
| * | ||
| * Authentication is OAuth 2.0 bearer. Pinterest access tokens are | ||
| * short-lived (~30 days); when `client_id`, `client_secret` and | ||
| * `refresh_token` are all present, the module transparently refreshes | ||
| * on 401 via `POST https://api.pinterest.com/v5/oauth/token` and writes | ||
| * the rotated pair back to the credential vault. If the credential is | ||
| * a bare `access_token` (no refresh pair), a 401 is surfaced to the | ||
| * caller instead of retried. | ||
| * | ||
| * Credential type declared by this module: | ||
| * - pinterest : { access_token, refresh_token?, client_id?, client_secret? } | ||
| */ | ||
| import type { BuiltinHandler, CredentialTypeSchema, FunctionMetadata, ModuleHost, ModuleMetadata } from "@robinpath/core"; | ||
| export declare function configurePinterest(h: ModuleHost): void; | ||
| export declare const PinterestFunctions: Record<string, BuiltinHandler>; | ||
| export declare const PinterestCredentialTypes: CredentialTypeSchema[]; | ||
| export declare const PinterestFunctionMetadata: Record<string, FunctionMetadata>; | ||
| export declare const PinterestModuleMetadata: ModuleMetadata; | ||
| //# sourceMappingURL=pinterest.d.ts.map |
| {"version":3,"file":"pinterest.d.ts","sourceRoot":"","sources":["../src/pinterest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,UAAU,EACV,cAAc,EAEf,MAAM,iBAAiB,CAAC;AAezB,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI,CAEtD;AAyUD,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAI7D,CAAC;AAIF,eAAO,MAAM,wBAAwB,EAAE,oBAAoB,EA4C1D,CAAC;AAqCF,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CA0GtE,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,cAoBrC,CAAC"} |
| /** | ||
| * RobinPath Pinterest Module (Node port) | ||
| * | ||
| * Pinterest API v5 — boards and pins. Mirror of the canonical | ||
| * credential-vault adapter shape so the visual editor renders it | ||
| * identically to every other module. | ||
| * | ||
| * Authentication is OAuth 2.0 bearer. Pinterest access tokens are | ||
| * short-lived (~30 days); when `client_id`, `client_secret` and | ||
| * `refresh_token` are all present, the module transparently refreshes | ||
| * on 401 via `POST https://api.pinterest.com/v5/oauth/token` and writes | ||
| * the rotated pair back to the credential vault. If the credential is | ||
| * a bare `access_token` (no refresh pair), a 401 is surfaced to the | ||
| * caller instead of retried. | ||
| * | ||
| * Credential type declared by this module: | ||
| * - pinterest : { access_token, refresh_token?, client_id?, client_secret? } | ||
| */ | ||
| // ── Module-local state (populated by configure hook) ──────────────────── | ||
| const state = {}; | ||
| function host() { | ||
| if (!state.host) { | ||
| throw new Error("Pinterest module not initialized. Pass the adapter to rp.installModule() so its configure() hook runs first."); | ||
| } | ||
| return state.host; | ||
| } | ||
| export function configurePinterest(h) { | ||
| state.host = h; | ||
| } | ||
| // ── Constants ────────────────────────────────────────────────────────── | ||
| const API_BASE = "https://api.pinterest.com/v5/"; | ||
| const TOKEN_URL = "https://api.pinterest.com/v5/oauth/token"; | ||
| const CREDENTIAL_TYPE = "pinterest"; | ||
| function errorReturn(error, code, extra = {}) { | ||
| return { error, code, ...extra }; | ||
| } | ||
| function isErr(x) { | ||
| return (typeof x === "object" && | ||
| x !== null && | ||
| "error" in x && | ||
| "code" in x); | ||
| } | ||
| async function readCredential(credentialSlug) { | ||
| if (!credentialSlug) { | ||
| return errorReturn("Credential slug is required.", "credential_not_found"); | ||
| } | ||
| let fields; | ||
| try { | ||
| fields = await host().credentials.get(credentialSlug); | ||
| } | ||
| catch (e) { | ||
| return errorReturn(e instanceof Error ? e.message : String(e), "credential_not_found"); | ||
| } | ||
| if (!fields) { | ||
| return errorReturn(`Credential '${credentialSlug}' not found.`, "credential_not_found"); | ||
| } | ||
| return fields; | ||
| } | ||
| function requireCredentialFields(slug, fields) { | ||
| const accessToken = String(fields.access_token ?? ""); | ||
| const refreshToken = String(fields.refresh_token ?? ""); | ||
| const clientId = String(fields.client_id ?? ""); | ||
| const clientSecret = String(fields.client_secret ?? ""); | ||
| if (!accessToken) { | ||
| return errorReturn("Credential has no `access_token` field.", "access_token_missing"); | ||
| } | ||
| return { slug, accessToken, refreshToken, clientId, clientSecret }; | ||
| } | ||
| function canRefresh(r) { | ||
| return r.refreshToken !== "" && r.clientId !== "" && r.clientSecret !== ""; | ||
| } | ||
| async function persistTokens(slug, fields, patch) { | ||
| try { | ||
| await host().credentials.set(slug, CREDENTIAL_TYPE, { ...fields, ...patch }); | ||
| } | ||
| catch { | ||
| // Best-effort vault rotation. | ||
| } | ||
| } | ||
| // ── OAuth token refresh ──────────────────────────────────────────────── | ||
| function basicAuthHeader(key, secret) { | ||
| const raw = `${key}:${secret}`; | ||
| if (typeof Buffer !== "undefined") { | ||
| return `Basic ${Buffer.from(raw, "utf8").toString("base64")}`; | ||
| } | ||
| return `Basic ${btoa(raw)}`; | ||
| } | ||
| async function refreshAccessToken(resolved, originalFields) { | ||
| const body = new URLSearchParams(); | ||
| body.set("grant_type", "refresh_token"); | ||
| body.set("refresh_token", resolved.refreshToken); | ||
| let response; | ||
| try { | ||
| response = await fetch(TOKEN_URL, { | ||
| method: "POST", | ||
| headers: { | ||
| Authorization: basicAuthHeader(resolved.clientId, resolved.clientSecret), | ||
| "Content-Type": "application/x-www-form-urlencoded", | ||
| Accept: "application/json", | ||
| }, | ||
| body: body.toString(), | ||
| }); | ||
| } | ||
| catch (e) { | ||
| return errorReturn(e instanceof Error ? e.message : String(e), "transport"); | ||
| } | ||
| const raw = await response.text(); | ||
| let decoded; | ||
| try { | ||
| decoded = raw ? JSON.parse(raw) : null; | ||
| } | ||
| catch { | ||
| decoded = { raw }; | ||
| } | ||
| if (response.status < 200 || response.status >= 300) { | ||
| return errorReturn("Pinterest refused the refresh token — re-authorize the connection.", "refresh_failed", { status: response.status, pinterest_error: decoded }); | ||
| } | ||
| const tok = (decoded ?? {}); | ||
| const newAccess = String(tok.access_token ?? ""); | ||
| // Pinterest may or may not rotate the refresh token — keep the new one if present. | ||
| const newRefresh = String(tok.refresh_token ?? resolved.refreshToken); | ||
| if (!newAccess) { | ||
| return errorReturn("Refresh response had no `access_token`.", "refresh_failed", { pinterest_error: decoded }); | ||
| } | ||
| await persistTokens(resolved.slug, originalFields, { | ||
| access_token: newAccess, | ||
| refresh_token: newRefresh, | ||
| }); | ||
| return { ...resolved, accessToken: newAccess, refreshToken: newRefresh }; | ||
| } | ||
| // ── HTTP helper with optional single-shot 401 refresh-and-retry ──────── | ||
| async function request(resolved, method, pathAndQuery, body) { | ||
| const url = API_BASE + pathAndQuery.replace(/^\/+/, ""); | ||
| const headers = { | ||
| Authorization: `Bearer ${resolved.accessToken}`, | ||
| Accept: "application/json", | ||
| }; | ||
| if (body !== undefined && body !== null) { | ||
| headers["Content-Type"] = "application/json"; | ||
| } | ||
| const init = { method, headers }; | ||
| if (body !== undefined && body !== null) | ||
| init.body = JSON.stringify(body); | ||
| let response; | ||
| try { | ||
| response = await fetch(url, init); | ||
| } | ||
| catch (e) { | ||
| return errorReturn(e instanceof Error ? e.message : String(e), "transport"); | ||
| } | ||
| const raw = await response.text(); | ||
| let decoded; | ||
| try { | ||
| decoded = raw ? JSON.parse(raw) : null; | ||
| } | ||
| catch { | ||
| decoded = { raw }; | ||
| } | ||
| return { status: response.status, decoded, raw }; | ||
| } | ||
| async function http(credentialSlug, method, pathAndQuery, body) { | ||
| const fields = await readCredential(credentialSlug); | ||
| if (isErr(fields)) | ||
| return fields; | ||
| let resolved = requireCredentialFields(credentialSlug, fields); | ||
| if (isErr(resolved)) | ||
| return resolved; | ||
| let originalFields = fields; | ||
| let response = await request(resolved, method, pathAndQuery, body); | ||
| if (isErr(response)) | ||
| return response; | ||
| if (response.status === 401 && canRefresh(resolved)) { | ||
| const refreshed = await refreshAccessToken(resolved, originalFields); | ||
| if (isErr(refreshed)) | ||
| return refreshed; | ||
| resolved = refreshed; | ||
| originalFields = { | ||
| ...originalFields, | ||
| access_token: refreshed.accessToken, | ||
| refresh_token: refreshed.refreshToken, | ||
| }; | ||
| response = await request(resolved, method, pathAndQuery, body); | ||
| if (isErr(response)) | ||
| return response; | ||
| } | ||
| if (response.status >= 200 && response.status < 300) { | ||
| return response.decoded ?? { ok: true }; | ||
| } | ||
| // Pinterest errors: { code, message } at the top level. | ||
| let message = `Pinterest returned HTTP ${response.status}.`; | ||
| const d = response.decoded; | ||
| if (d && typeof d === "object") { | ||
| const obj = d; | ||
| if (typeof obj.message === "string") | ||
| message = obj.message; | ||
| else if (typeof obj.error === "string") | ||
| message = obj.error; | ||
| else if (typeof obj.error_description === "string") { | ||
| message = obj.error_description; | ||
| } | ||
| } | ||
| let code = "pinterest_error"; | ||
| if (response.status === 429) | ||
| code = "rate_limited"; | ||
| else if (response.status === 404) | ||
| code = "not_found"; | ||
| else if (response.status === 403 || response.status === 401) | ||
| code = "unauthorized"; | ||
| return errorReturn(message, code, { | ||
| status: response.status, | ||
| pinterest_error: response.decoded, | ||
| }); | ||
| } | ||
| // ── Helpers ──────────────────────────────────────────────────────────── | ||
| function asString(v) { | ||
| if (v === undefined || v === null) | ||
| return ""; | ||
| return String(v); | ||
| } | ||
| function asOpts(v) { | ||
| return v && typeof v === "object" && !Array.isArray(v) | ||
| ? v | ||
| : {}; | ||
| } | ||
| function buildQuery(opts) { | ||
| const params = new URLSearchParams(); | ||
| for (const [k, v] of Object.entries(opts)) { | ||
| if (v === undefined || v === null || v === "") | ||
| continue; | ||
| if (Array.isArray(v)) { | ||
| params.set(k, v.map((x) => String(x)).join(",")); | ||
| } | ||
| else { | ||
| params.set(k, String(v)); | ||
| } | ||
| } | ||
| const qs = params.toString(); | ||
| return qs ? `?${qs}` : ""; | ||
| } | ||
| // ── Handlers: Pins ───────────────────────────────────────────────────── | ||
| const listPins = async (args) => { | ||
| const cred = asString(args[0]); | ||
| const opts = asOpts(args[1]); | ||
| return (await http(cred, "GET", `pins${buildQuery(opts)}`)); | ||
| }; | ||
| const createPin = async (args) => { | ||
| const cred = asString(args[0]); | ||
| const input = args[1]; | ||
| if (!input || typeof input !== "object") { | ||
| return errorReturn("`pin` payload is required (object).", "fields_missing"); | ||
| } | ||
| return (await http(cred, "POST", "pins", input)); | ||
| }; | ||
| // ── Handlers: Boards ─────────────────────────────────────────────────── | ||
| const listBoards = async (args) => { | ||
| const cred = asString(args[0]); | ||
| const opts = asOpts(args[1]); | ||
| return (await http(cred, "GET", `boards${buildQuery(opts)}`)); | ||
| }; | ||
| // ── Exports: functions map ───────────────────────────────────────────── | ||
| export const PinterestFunctions = { | ||
| listPins, | ||
| createPin, | ||
| listBoards, | ||
| }; | ||
| // ── Exports: credential types ────────────────────────────────────────── | ||
| export const PinterestCredentialTypes = [ | ||
| { | ||
| slug: CREDENTIAL_TYPE, | ||
| title: "Pinterest (OAuth 2.0)", | ||
| icon: "image", | ||
| fields: [ | ||
| { | ||
| name: "access_token", | ||
| title: "Access Token", | ||
| type: "password", | ||
| required: true, | ||
| placeholder: "pina_…", | ||
| description: "Short-lived OAuth bearer (~30 days). Mint via the Pinterest developer console at developers.pinterest.com/apps.", | ||
| }, | ||
| { | ||
| name: "refresh_token", | ||
| title: "Refresh Token", | ||
| type: "password", | ||
| required: false, | ||
| placeholder: "pinr_…", | ||
| description: "Optional. When present together with client_id and client_secret, the module auto-refreshes the access token on 401.", | ||
| }, | ||
| { | ||
| name: "client_id", | ||
| title: "App ID", | ||
| type: "text", | ||
| required: false, | ||
| placeholder: "1234567", | ||
| description: "Pinterest app id (a.k.a. client_id). Only needed if you want automatic refresh.", | ||
| }, | ||
| { | ||
| name: "client_secret", | ||
| title: "App Secret", | ||
| type: "password", | ||
| required: false, | ||
| placeholder: "•••••…", | ||
| description: "Paired secret for the app id above. Only needed if you want automatic refresh.", | ||
| }, | ||
| ], | ||
| }, | ||
| ]; | ||
| // ── Exports: metadata ────────────────────────────────────────────────── | ||
| const credentialParam = { | ||
| name: "credential", | ||
| title: "Credential", | ||
| description: "Slug of a saved `pinterest` credential.", | ||
| dataType: "string", | ||
| formInputType: "resource", | ||
| required: true, | ||
| allowExpression: true, | ||
| placeholder: "my_pinterest", | ||
| resource: { | ||
| type: "credential", | ||
| listFn: "credential.list", | ||
| modes: ["list", "expression"], | ||
| searchable: true, | ||
| filter: { type: CREDENTIAL_TYPE }, | ||
| }, | ||
| }; | ||
| const commonErrors = { | ||
| credential_not_found: "No credential with that slug exists in the vault.", | ||
| access_token_missing: "The credential exists but has no `access_token` field.", | ||
| refresh_failed: "Refresh token rejected — run the Pinterest OAuth consent flow again to mint a fresh pair.", | ||
| fields_missing: "Payload is required.", | ||
| transport: "Network failure calling api.pinterest.com.", | ||
| pinterest_error: "Pinterest returned an error — see `pinterest_error` for detail.", | ||
| rate_limited: "Pinterest rate limited the request.", | ||
| not_found: "Pin or board not found.", | ||
| unauthorized: "Pinterest rejected the token — re-authorize or supply client_id/client_secret/refresh_token for auto-refresh.", | ||
| }; | ||
| export const PinterestFunctionMetadata = { | ||
| listPins: { | ||
| title: "List pins", | ||
| summary: "List pins owned by the authenticated user", | ||
| description: "Calls `GET /pins`. Supports cursor pagination and optional scoping to a single board or ad account.", | ||
| group: "pins", | ||
| action: "query", | ||
| icon: "image", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["pinterest", "pins", "list"], | ||
| parameters: [ | ||
| credentialParam, | ||
| { | ||
| name: "options", | ||
| title: "Filters", | ||
| description: "Recognized keys:\n bookmark : pagination cursor from previous response\n page_size : 1–100 (default 25)\n board_id : scope to one board\n board_section_id: scope to one board section\n pin_filter : 'exclude_native' | 'exclude_repins' | ...\n include_protected_pins : bool\n pin_metrics : bool — include pin-level metrics\n ad_account_id : for business accounts", | ||
| dataType: "object", | ||
| formInputType: "json", | ||
| required: false, | ||
| allowExpression: true, | ||
| language: "json", | ||
| rows: 5, | ||
| advanced: true, | ||
| }, | ||
| ], | ||
| returnType: "object", | ||
| returnDescription: "{ items: [...], bookmark?: string }", | ||
| errors: commonErrors, | ||
| example: 'pinterest.listPins "my_pinterest" {page_size: 50}', | ||
| }, | ||
| createPin: { | ||
| title: "Create pin", | ||
| summary: "Create a new pin on a board", | ||
| description: "Calls `POST /pins`. Minimum required fields: `board_id` plus a `media_source` describing where the image or video comes from (image URL, base64, or upload).", | ||
| group: "pins", | ||
| action: "write", | ||
| icon: "plus", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: false, | ||
| since: "1.0.0", | ||
| tags: ["pinterest", "pin", "create"], | ||
| parameters: [ | ||
| credentialParam, | ||
| { | ||
| name: "pin", | ||
| title: "Pin payload", | ||
| description: "Key fields:\n board_id : required — target board\n board_section_id: optional — target section\n title : pin title\n description : pin description\n link : destination URL the pin points at\n alt_text : accessibility alt text\n media_source : required — e.g.\n { source_type: 'image_url', url: 'https://…' }\n { source_type: 'image_base64', content_type: 'image/jpeg', data: '<b64>' }\n { source_type: 'multiple_image_urls', items: [...] }\n note : private note\n parent_pin_id : for repins", | ||
| dataType: "object", | ||
| formInputType: "json", | ||
| required: true, | ||
| allowExpression: true, | ||
| language: "json", | ||
| rows: 10, | ||
| placeholder: '{\n "board_id": "1234567890",\n "title": "Sunset over the lake",\n "link": "https://example.com/sunset",\n "media_source": {\n "source_type": "image_url",\n "url": "https://example.com/sunset.jpg"\n }\n}', | ||
| }, | ||
| ], | ||
| returnType: "object", | ||
| returnDescription: "The created pin object with assigned `id`.", | ||
| errors: commonErrors, | ||
| example: 'pinterest.createPin "my_pinterest" {board_id: "…", media_source: {source_type: "image_url", url: "https://…"}}', | ||
| }, | ||
| listBoards: { | ||
| title: "List boards", | ||
| summary: "List boards owned by the authenticated user", | ||
| description: "Calls `GET /boards`. Supports cursor pagination.", | ||
| group: "boards", | ||
| action: "query", | ||
| icon: "layout", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["pinterest", "boards", "list"], | ||
| parameters: [ | ||
| credentialParam, | ||
| { | ||
| name: "options", | ||
| title: "Filters", | ||
| description: "Recognized keys:\n bookmark : pagination cursor\n page_size : 1–250 (default 25)\n privacy : 'PUBLIC' | 'PROTECTED' | 'SECRET' | 'ALL'\n ad_account_id : for business accounts", | ||
| dataType: "object", | ||
| formInputType: "json", | ||
| required: false, | ||
| allowExpression: true, | ||
| language: "json", | ||
| rows: 4, | ||
| advanced: true, | ||
| }, | ||
| ], | ||
| returnType: "object", | ||
| returnDescription: "{ items: [...], bookmark?: string }", | ||
| errors: commonErrors, | ||
| example: 'pinterest.listBoards "my_pinterest"', | ||
| }, | ||
| }; | ||
| export const PinterestModuleMetadata = { | ||
| slug: "pinterest", | ||
| title: "Pinterest", | ||
| summary: "List pins/boards and create new pins on Pinterest", | ||
| description: "Pinterest API v5 — pins and boards. OAuth 2.0 bearer auth with optional auto-refresh when client_id/client_secret/refresh_token are present. A bare access_token works for short-lived use.\n\nFor operations not covered here (board CRUD, analytics, catalogs, ads) drop to `http.*` with the same credential via `credential.field`.", | ||
| category: "social-media", | ||
| icon: "icon.svg", | ||
| color: "#E60023", | ||
| version: "0.2.0", | ||
| docsUrl: "https://docs.robinpath.com/modules/pinterest", | ||
| status: "stable", | ||
| requires: [], | ||
| minNodeVersion: "18.0.0", | ||
| credentialsType: CREDENTIAL_TYPE, | ||
| operationGroups: { | ||
| pins: { title: "Pins", description: "Pin CRUD.", order: 1 }, | ||
| boards: { title: "Boards", description: "Board enumeration.", order: 2 }, | ||
| }, | ||
| methods: Object.keys(PinterestFunctions), | ||
| }; | ||
| //# sourceMappingURL=pinterest.js.map |
| {"version":3,"file":"pinterest.js","sourceRoot":"","sources":["../src/pinterest.ts"],"names":[],"mappings":"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"} |
+18
-9
| { | ||
| "name": "@robinpath/pinterest", | ||
| "version": "0.1.2", | ||
| "version": "0.3.0", | ||
| "publishConfig": { | ||
@@ -23,12 +23,14 @@ "access": "public" | ||
| "peerDependencies": { | ||
| "@robinpath/core": ">=0.20.0" | ||
| "@robinpath/core": ">=0.40.0" | ||
| }, | ||
| "devDependencies": { | ||
| "@robinpath/core": "^0.30.1", | ||
| "@robinpath/core": "^0.40.0", | ||
| "typescript": "^5.6.0" | ||
| }, | ||
| "description": "Pinterest module for RobinPath.", | ||
| "description": "Pinterest API v5 — pins and boards. OAuth 2.0 bearer with optional auto-refresh via the encrypted credential vault.", | ||
| "keywords": [ | ||
| "pinterest", | ||
| "social media" | ||
| "social-media", | ||
| "pins", | ||
| "boards" | ||
| ], | ||
@@ -38,7 +40,14 @@ "license": "MIT", | ||
| "category": "social-media", | ||
| "type": "integration", | ||
| "auth": "api-key", | ||
| "functionCount": 17, | ||
| "baseUrl": "https://api.pinterest.com" | ||
| "type": "module", | ||
| "auth": "credential-vault", | ||
| "credentialType": "pinterest", | ||
| "functionCount": 3, | ||
| "baseUrl": "https://api.pinterest.com/v5", | ||
| "language": "nodejs", | ||
| "platforms": [ | ||
| "cloud", | ||
| "cli", | ||
| "desktop" | ||
| ] | ||
| } | ||
| } |
+1
-1
@@ -22,3 +22,3 @@ # @robinpath/pinterest | ||
| ```bash | ||
| npm install @robinpath/pinterest | ||
| robinpath add @robinpath/pinterest | ||
| ``` | ||
@@ -25,0 +25,0 @@ |
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.
Found 1 instance in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
Empty package
Supply chain riskPackage does not contain any code. It may be removed, is name squatting, or the result of a faulty package publish.
Found 1 instance in 1 package
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.
Found 1 instance in 1 package
39866
966.51%10
400%499
Infinity%2
100%3
50%