magento2-api-wrapper
Version:
Minimal Magento 2 API library. Both node and browser compatible
63 lines (62 loc) • 1.83 kB
TypeScript
/// <reference types="node" />
export type OAuthOptions = {
consumer: OAuthKey;
version?: string;
realm?: string;
signatureMethod?: string;
hashMethods?: {
[name: string]: OAuthHashFn;
};
nonceLength?: number;
};
type OAuthRequest = Pick<Request, "method" | "url"> & Partial<Pick<Request, "headers" | "body">>;
type OAuthKey = {
key: string;
secret: string;
};
type OAuthHashFn = (key: string, content: string) => Promise<string>;
type OAuthData = {
oauth_consumer_key: string;
oauth_nonce: string;
oauth_signature_method: string;
oauth_timestamp: string;
oauth_token: string;
oauth_version: string;
};
/**
* A OAuth 1.0a implementation, planned for Magento 2 usage.
*
* @see https://oauth.net/core/1.0a/
*/
export declare class OAuth {
consumer: OAuthKey;
version: string;
realm?: string;
signatureMethod: string;
hashMethods: {
[name: string]: OAuthHashFn;
};
nonceLength: number;
constructor(opts: OAuthOptions);
/**
* Returns signed Authorization header value
*/
authorize(request: OAuthRequest, token: OAuthKey): Promise<string>;
/**
* Signs Request and adds Authorize header
*/
authRequest(request: Request, token: OAuthKey): Promise<string>;
getSignatureBaseString(request: OAuthRequest, oauthData: OAuthData): Promise<string>;
/**
* Collects request params used for signing in a entries array format
*/
collectRequestParams(request: Omit<OAuthRequest, "method">): Promise<string[][]>;
/**
* Constructs url for signing according to RFC section 9.1.2 Construct Request URL
*/
constructRequestUrl(request: Pick<Request, "url">): string;
hashKey(token: OAuthKey): string;
nonce(): string;
timestamp(): string;
}
export {};