UNPKG

@payforpress/payforpress-node-sdk

Version:

Official Node.js Server SDK for PayForPress API - An onboarding, paywall and payment solution for online media

164 lines (163 loc) 4.57 kB
export interface PayForPressConfig { apiKey: string; baseUrl?: string; } export interface Error { success: boolean; message: string; } export interface User { email: string; phone?: string; id: string; metadata?: Record<string, any>; } export interface UserUpdate { email?: string; phone?: string; name?: string; metadata?: Record<string, any>; } export interface UserResponse { success: boolean; user: User; message?: string; } export interface SearchParams { skip?: number; limit?: number; value?: string; field?: string; operator?: '==' | '!=' | '>' | '<' | '>=' | '<=' | '~' | '!~'; order?: 'asc' | 'desc'; } export interface Article { id: string; url: string; title?: string; author_name?: string; price?: number; high_value?: boolean; org?: string; created_at?: string; updated_at?: string; } export interface ArticleResponse { success: boolean; article: Article; message?: string; } export interface ArticlesResponse { success: boolean; articles: Article[]; message?: string; } export interface ArticleFilters { skip?: number; limit?: number; search?: string; sort?: 'created_at' | 'updated_at' | 'title' | 'price'; order?: 'asc' | 'desc'; } export interface AppearanceSchema { primaryColor?: string; theme?: 'dark' | 'light' | 'system'; large?: boolean; borderRadius?: number; margin?: number; horizontalAlignment?: 'left' | 'center' | 'right'; verticalAlignment?: 'top' | 'center' | 'bottom'; inject?: boolean; injectSelector?: string; injectStyle?: string; prepend?: boolean; injectDelay?: number; backgroundColor?: string; paywallMode?: boolean; deleteSelector?: string; } export interface GraphNode { variable: 'time' | 'device' | 'url' | 'referrer' | 'country' | 'browser' | 'loggedIn' | 'firstTimeSessions' | 'recurringLoadOfArticle' | 'visitedUrls' | 'highValue' | 'elementPresent' | 'alreadyPayforPress' | 'mobileConnection' | 'isp' | 'proxy' | 'hosting' | 'continent'; matchingType: '=' | 'startsWith' | 'endsWith' | 'contains' | 'notContains' | '!=' | 'in' | 'notIn' | '>' | '<' | '>=' | '<=' | 'between' | 'notBetween' | 'selectorMatches' | 'selectorNotMatches' | 'regex'; value: string | number | boolean | string[] | { hourStart: number; minuteStart: number; hourEnd: number; minuteEnd: number; }; true: 'showPayForPress' | 'hidePayForPress' | 'excludeUser' | 'default' | 'addCondition'; false: 'showPayForPress' | 'hidePayForPress' | 'excludeUser' | 'default' | 'addCondition'; trueNode?: GraphNode; falseNode?: GraphNode; } export interface TargetingVariable { key: string; keep?: boolean; type?: 'string' | 'number' | 'boolean' | 'array'; value: any; id?: string; } export interface TargetingSchema { showForAll?: boolean; defaultShow?: boolean; variables?: TargetingVariable[]; graph?: GraphNode[]; } export interface OrganizationDetails { allowBuyArticle?: boolean; allowHighValueArticlesInPass?: boolean; allowHighValueArticlesInSubscription?: boolean; allowMonthlyPass?: boolean; allowSubscription?: boolean; allowTimePass?: boolean; blockAds?: boolean; discountAfterOne?: number; icon?: string; keepOriginalNavBar?: boolean; logoUrl?: string; monthlyPassPrice?: number; onboardingStep?: string; postPayment?: boolean; priceForHighValueArticles?: number; pricePerArticle?: number; removeSelectors?: string; subscriptionPrice?: number; timePassLength?: string; timePassPrice?: number; } export interface SettingsResponse { details: OrganizationDetails; } export interface Payment { id: string; amountCents: number; article?: string; buyer: string; expires_at: string; renews: boolean; transaction_date: string; type: 'article' | 'pass' | 'subscription'; } export interface PaymentResponse { success: boolean; purchase: Payment; } export interface PaymentsResponse { success: boolean; purchases: Payment[]; } export interface PaymentCreateParams { user_id: string; purchase_type: 'article' | 'pass' | 'subscription'; amountCents: number; currency?: 'eur'; expires_at: string; } export interface PaymentSearchParams { user_id?: string; type?: 'article' | 'pass' | 'subscription'; before?: string; after?: string; limit?: number; skip?: number; }