nubank.ts
Version:
Nubank api module for node.js
69 lines (68 loc) • 3.04 kB
TypeScript
/// <reference types="node" />
import { AxiosInstance } from 'axios';
import INubankQueryObject from './interfaces/INubankQuery';
import Discovery from './utils/discovery';
import IFeedItems from './interfaces/IFeedItems';
import ITransferInDetails from './interfaces/ITransferInDetails';
import IGraphQLResponse from './interfaces/IGraphQLRequest';
import { ITransferOutRequestSuccess } from './interfaces/ITransferOut';
import IPixAddedContact, { IContact, IContactAccountList } from './interfaces/IContacts';
import INuAccountID, { IPixAlias } from './interfaces/IAccount';
import IPaymentRequest from './interfaces/IPaymentRequest';
interface INubankTS {
user: string;
password: string;
certificate: Buffer;
client: AxiosInstance;
}
interface IAccountOwner {
name: string;
id: string;
savingsAccount: {
id: string;
dict: {
keys: [
{
id: string;
value: string;
}
];
};
};
}
interface ITransferAuthProof {
certificatePendingValidationUrl?: string;
verifyPinProof?: string;
location?: string;
}
export default class NubankTS implements INubankTS {
user: string;
password: string;
token: string;
certificate: Buffer;
client: AxiosInstance;
discovery: Discovery;
me: IAccountOwner;
savingsAccountUrl: string;
accountServer: number;
constructor(user: string, password: string, certificate: Buffer);
loadMe(): Promise<void>;
getBearerToken(): Promise<string>;
graphQLRequest<T>(query: INubankQueryObject, bearerToken?: string): Promise<IGraphQLResponse<T>>;
NubankPostRequest(url: string, body: unknown): Promise<import("axios").AxiosResponse<any, any>>;
accountBalance(): Promise<IGraphQLResponse<number>>;
getAccountId(): Promise<IGraphQLResponse<INuAccountID>>;
addPixContact(pixKey: string): Promise<IGraphQLResponse<IPixAddedContact>>;
checkFeed(limit: number): Promise<IGraphQLResponse<unknown>>;
feedItems(cursor?: string): Promise<IGraphQLResponse<IFeedItems>>;
generatePixQr(amount: number, transactionId: string, message: string, pixAlias?: string): Promise<IGraphQLResponse<IPaymentRequest>>;
getContactAccounts(contactID: string): Promise<IGraphQLResponse<IContactAccountList>>;
getContacts(): Promise<IGraphQLResponse<IContact[]>>;
getPhoneRechargeDetails(phoneRechargeRequestId: string): Promise<IGraphQLResponse<unknown>>;
getPixAliases(): Promise<IGraphQLResponse<IPixAlias[]>>;
getTransferInDetails(id: string): Promise<IGraphQLResponse<ITransferInDetails>>;
rawTransferOut(bankAccountId: string, amount: number, bearerToken: string): Promise<IGraphQLResponse<ITransferOutRequestSuccess>>;
transferOutInit(bankAccountId: string, amount: number): Promise<ITransferAuthProof>;
transferOutPix(account: string, value: number, cardPassword: string): Promise<import("./interfaces/IGraphQLRequest").IRequestError | ITransferOutRequestSuccess>;
}
export {};