@basis-theory/basis-theory-js
Advanced tools
Comparing version 1.1.0 to 1.2.0
@@ -0,5 +1,5 @@ | ||
import { RequestOptions } from '../service'; | ||
import type { Application, ApplicationQuery, CreateApplicationModel } from './types'; | ||
import { RequestOptions } from '../service'; | ||
export declare const BasisTheoryApplications: { | ||
new (options: import("../service").BasisTheoryServiceOptions): { | ||
new (options: import("../service/types").BasisTheoryServiceOptions): { | ||
/** | ||
@@ -6,0 +6,0 @@ * @deprecated use {@link retrieveByKey} instead |
@@ -18,3 +18,3 @@ "use strict"; | ||
*/ | ||
async getApplicationByKey() { | ||
getApplicationByKey() { | ||
return this.retrieveByKey(); | ||
@@ -21,0 +21,0 @@ } |
import type { PaginatedQuery } from '../service'; | ||
export declare const APPLICATION_TYPES: readonly ["server_to_server", "public", "elements", "management"]; | ||
export declare type ApplicationType = typeof APPLICATION_TYPES[number]; | ||
export interface Application { | ||
declare const APPLICATION_TYPES: readonly ["server_to_server", "public", "elements", "management"]; | ||
declare type ApplicationType = typeof APPLICATION_TYPES[number]; | ||
interface Application { | ||
id: string; | ||
@@ -14,6 +14,7 @@ tenantId: string; | ||
} | ||
export declare type CreateApplicationModel = Pick<Application, 'name' | 'type'> & Partial<Pick<Application, 'permissions'>>; | ||
export declare type UpdateApplicationModel = Partial<Pick<Application, 'name' | 'permissions'>>; | ||
export interface ApplicationQuery extends PaginatedQuery { | ||
declare type CreateApplicationModel = Pick<Application, 'name' | 'type'> & Partial<Pick<Application, 'permissions'>>; | ||
declare type UpdateApplicationModel = Partial<Pick<Application, 'name' | 'permissions'>>; | ||
interface ApplicationQuery extends PaginatedQuery { | ||
id?: string | string[]; | ||
} | ||
export { APPLICATION_TYPES, ApplicationType, Application, CreateApplicationModel, UpdateApplicationModel, ApplicationQuery, }; |
@@ -1,5 +0,5 @@ | ||
import type { AtomicBank } from './types'; | ||
import type { BasisTheoryServiceOptions, PaginatedQuery, RequestOptions } from '../../service'; | ||
import type { Token } from '../../tokens'; | ||
import type { ReactRequest } from '../types'; | ||
import type { Token } from '../../tokens'; | ||
import type { AtomicBank } from './types'; | ||
export declare const BasisTheoryAtomicBanks: { | ||
@@ -6,0 +6,0 @@ new (options: BasisTheoryServiceOptions): { |
@@ -16,12 +16,16 @@ "use strict"; | ||
constructor(options) { | ||
options.transformRequest = [].concat(_common.transformAtomicRequestSnakeCase, options.transformRequest || []); | ||
options.transformResponse = [].concat(_common.transformAtomicResponseCamelCase, options.transformResponse || []); | ||
super(options); | ||
const _options = { ...options | ||
}; // eslint-disable-next-line unicorn/prefer-spread | ||
_options.transformRequest = [].concat(_common.transformAtomicRequestSnakeCase, options.transformRequest || []); // eslint-disable-next-line unicorn/prefer-spread | ||
_options.transformResponse = [].concat(_common.transformAtomicResponseCamelCase, options.transformResponse || []); | ||
super(_options); | ||
} | ||
async retrieveDecrypted(id, options) { | ||
retrieveDecrypted(id, options) { | ||
return this.client.get(`/${id}/decrypt`, (0, _common.createRequestConfig)(options)).then(_common.dataExtractor); | ||
} | ||
async react(id, request, options) { | ||
react(id, request, options) { | ||
return this.client.post(`/${id}/react`, request, (0, _common.createRequestConfig)(options, { | ||
@@ -33,3 +37,3 @@ transformRequest: _common.transformAtomicReactionRequestSnakeCase, | ||
async retrieveReaction(atomicBankId, reactionTokenId, options) { | ||
retrieveReaction(atomicBankId, reactionTokenId, options) { | ||
return this.client.get(`/${atomicBankId}/reaction/${reactionTokenId}`, (0, _common.createRequestConfig)(options, { | ||
@@ -36,0 +40,0 @@ transformResponse: _common.transformTokenResponseCamelCase |
import type { Atomic } from '../types'; | ||
export interface Bank { | ||
interface Bank { | ||
routingNumber: string; | ||
accountNumber: string; | ||
} | ||
export interface AtomicBank extends Atomic { | ||
interface AtomicBank extends Atomic { | ||
bank: Bank; | ||
} | ||
export declare type CreateAtomicBankModel = Pick<AtomicBank, 'bank' | 'metadata'>; | ||
declare type CreateAtomicBankModel = Pick<AtomicBank, 'bank' | 'metadata'>; | ||
export type { Bank, AtomicBank, CreateAtomicBankModel }; |
@@ -8,6 +8,6 @@ "use strict"; | ||
var _common = require("../common"); | ||
var _service = require("../service"); | ||
var _common = require("../common"); | ||
/** | ||
@@ -20,3 +20,3 @@ * @deprecated use {@link BasisTheoryAtomicBanks} and {@link BasisTheoryAtomicCards} instead | ||
*/ | ||
async storeCreditCard(model) { | ||
storeCreditCard(model) { | ||
return this.client.post('/cards', model).then(_common.dataExtractor); | ||
@@ -29,3 +29,3 @@ } | ||
async storeBank(model) { | ||
storeBank(model) { | ||
return this.client.post('/banks', model).then(_common.dataExtractor); | ||
@@ -32,0 +32,0 @@ } |
@@ -1,5 +0,5 @@ | ||
import type { AtomicCard } from './types'; | ||
import type { BasisTheoryServiceOptions, PaginatedQuery, RequestOptions } from '../../service'; | ||
import type { Token } from '../../tokens'; | ||
import type { ReactRequest } from '../types'; | ||
import type { Token } from '../../tokens'; | ||
import type { AtomicCard } from './types'; | ||
export declare const BasisTheoryAtomicCards: { | ||
@@ -6,0 +6,0 @@ new (options: BasisTheoryServiceOptions): { |
@@ -8,6 +8,6 @@ "use strict"; | ||
var _utils = require("./../../common/utils"); | ||
var _common = require("../../common"); | ||
var _utils = require("../../common/utils"); | ||
var _service = require("../../service"); | ||
@@ -19,12 +19,16 @@ | ||
constructor(options) { | ||
options.transformRequest = [].concat(_utils.transformAtomicRequestSnakeCase, options.transformRequest || []); | ||
options.transformResponse = [].concat(_utils.transformAtomicResponseCamelCase, options.transformResponse || []); | ||
super(options); | ||
const _options = { ...options | ||
}; // eslint-disable-next-line unicorn/prefer-spread | ||
_options.transformRequest = [].concat(_utils.transformAtomicRequestSnakeCase, options.transformRequest || []); // eslint-disable-next-line unicorn/prefer-spread | ||
_options.transformResponse = [].concat(_utils.transformAtomicResponseCamelCase, options.transformResponse || []); | ||
super(_options); | ||
} | ||
async retrieveDecrypted(id, options) { | ||
retrieveDecrypted(id, options) { | ||
return this.client.get(`/${id}/decrypt`, (0, _common.createRequestConfig)(options)).then(_common.dataExtractor); | ||
} | ||
async react(id, request, options) { | ||
react(id, request, options) { | ||
return this.client.post(`/${id}/react`, request, (0, _common.createRequestConfig)(options, { | ||
@@ -36,3 +40,3 @@ transformRequest: _common.transformAtomicReactionRequestSnakeCase, | ||
async retrieveReaction(atomicCardId, reactionTokenId, options) { | ||
retrieveReaction(atomicCardId, reactionTokenId, options) { | ||
return this.client.get(`/${atomicCardId}/reaction/${reactionTokenId}`, (0, _common.createRequestConfig)(options, { | ||
@@ -39,0 +43,0 @@ transformResponse: _common.transformTokenResponseCamelCase |
import type { Atomic } from '../types'; | ||
export interface AtomicCard extends Atomic { | ||
interface AtomicCard extends Atomic { | ||
card: Card; | ||
billingDetails?: BillingDetails; | ||
} | ||
export interface Card { | ||
interface Card { | ||
number: string; | ||
@@ -12,3 +12,3 @@ expirationMonth: number; | ||
} | ||
export interface BillingDetails { | ||
interface BillingDetails { | ||
name?: string; | ||
@@ -19,3 +19,3 @@ email?: string; | ||
} | ||
export interface Address { | ||
interface Address { | ||
line1?: string; | ||
@@ -28,2 +28,3 @@ line2?: string; | ||
} | ||
export declare type CreateAtomicCardModel = Pick<AtomicCard, 'card' | 'billingDetails' | 'metadata'>; | ||
declare type CreateAtomicCardModel = Pick<AtomicCard, 'card' | 'billingDetails' | 'metadata'>; | ||
export type { AtomicCard, Card, BillingDetails, Address, CreateAtomicCardModel, }; |
import type { TokenType } from '../tokens'; | ||
export interface Atomic { | ||
interface Atomic { | ||
id: string; | ||
tenantId: string; | ||
type: TokenType; | ||
fingerprint: string; | ||
metadata?: Record<string, string>; | ||
@@ -10,3 +11,3 @@ createdBy: string; | ||
} | ||
export interface ReactRequest { | ||
interface ReactRequest { | ||
reactorId: string; | ||
@@ -16,1 +17,2 @@ requestParameters?: Record<string, unknown>; | ||
} | ||
export type { Atomic, ReactRequest }; |
@@ -0,15 +1,14 @@ | ||
import { BasisTheoryApplications } from './applications'; | ||
import { BasisTheoryAtomic } from './atomic'; | ||
import type { BasisTheoryInitOptions } from './types'; | ||
import { BasisTheoryApplications } from './applications'; | ||
import { BasisTheoryTokens } from './tokens'; | ||
import { BasisTheoryAtomicBanks } from './atomic/banks'; | ||
import { BasisTheoryAtomicCards } from './atomic/cards'; | ||
import type { BasisTheoryElements } from './elements'; | ||
import { BasisTheoryEncryptionAdapters } from './encryption/BasisTheoryEncryptionAdapters'; | ||
import type { BasisTheoryElements } from './elements'; | ||
import { BasisTheoryTenants } from './tenants'; | ||
import { BasisTheoryLogs } from './logs'; | ||
import { BasisTheoryPermissions } from './permissions'; | ||
import { BasisTheoryReactorFormulas } from './reactor-formulas'; | ||
import { BasisTheoryReactors } from './reactors'; | ||
import { BasisTheoryAtomicBanks } from './atomic/banks'; | ||
import { BasisTheoryAtomicCards } from './atomic/cards'; | ||
import { BasisTheoryPermissions } from './permissions'; | ||
export declare const defaultInitOptions: Required<BasisTheoryInitOptions>; | ||
import { BasisTheoryTenants } from './tenants'; | ||
import { BasisTheoryTokens } from './tokens'; | ||
import type { BasisTheoryInitOptions } from './types'; | ||
export declare class BasisTheory { | ||
@@ -36,4 +35,2 @@ private _initStatus; | ||
get encryption(): BasisTheoryEncryptionAdapters; | ||
set elements(elements: BasisTheoryElements); | ||
get elements(): BasisTheoryElements; | ||
get applications(): BasisTheoryApplications; | ||
@@ -47,2 +44,4 @@ get tenants(): BasisTheoryTenants; | ||
get permissions(): BasisTheoryPermissions; | ||
get elements(): BasisTheoryElements; | ||
set elements(elements: BasisTheoryElements); | ||
} |
@@ -6,20 +6,22 @@ "use strict"; | ||
}); | ||
exports.BasisTheory = exports.defaultInitOptions = void 0; | ||
exports.BasisTheory = void 0; | ||
var _common = require("./common"); | ||
var _applications = require("./applications"); | ||
var _constants = require("./common/constants"); | ||
var _atomic = require("./atomic"); | ||
var _applications = require("./applications"); | ||
var _banks = require("./atomic/banks"); | ||
var _tokens = require("./tokens"); | ||
var _cards = require("./atomic/cards"); | ||
var _common = require("./common"); | ||
var _constants = require("./common/constants"); | ||
var _BasisTheoryEncryptionAdapters = require("./encryption/BasisTheoryEncryptionAdapters"); | ||
var _tenants = require("./tenants"); | ||
var _logs = require("./logs"); | ||
var _permissions = require("./permissions"); | ||
var _reactorFormulas = require("./reactor-formulas"); | ||
@@ -29,8 +31,6 @@ | ||
var _banks = require("./atomic/banks"); | ||
var _tenants = require("./tenants"); | ||
var _cards = require("./atomic/cards"); | ||
var _tokens = require("./tokens"); | ||
var _permissions = require("./permissions"); | ||
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } | ||
@@ -43,3 +43,2 @@ | ||
}; | ||
exports.defaultInitOptions = defaultInitOptions; | ||
@@ -99,4 +98,4 @@ class BasisTheory { | ||
baseUrl = baseUrlObject.toString().replace(/\/$/, ''); | ||
} catch (e) { | ||
baseUrl = baseUrlObject.toString().replace(/\/$/u, ''); | ||
} catch { | ||
throw new Error('Invalid format for the given API base url.'); | ||
@@ -152,5 +151,5 @@ } | ||
this._initStatus = 'done'; | ||
} catch (e) { | ||
} catch (error) { | ||
this._initStatus = 'error'; | ||
throw e; | ||
throw error; | ||
} | ||
@@ -166,3 +165,3 @@ | ||
elementsBaseUrl = new URL(this.initOptions.elementsBaseUrl); | ||
} catch (e) { | ||
} catch { | ||
throw new Error('Invalid format for the given Elements base url.'); | ||
@@ -172,6 +171,9 @@ } | ||
const elements = await (0, _common.loadElements)(); | ||
await elements.init(apiKey, elementsBaseUrl.toString().replace(/\/$/, '')); | ||
await elements.init(apiKey, elementsBaseUrl.toString().replace(/\/$/u, '')); | ||
this.elements = elements; | ||
} | ||
} // these should be set by the init call only. | ||
/* eslint-disable accessor-pairs */ | ||
get initOptions() { | ||
@@ -193,10 +195,2 @@ return (0, _common.assertInit)(this._initOptions); | ||
set elements(elements) { | ||
this._elements = elements; | ||
} | ||
get elements() { | ||
return (0, _common.assertInit)(this._elements); | ||
} | ||
get applications() { | ||
@@ -233,5 +227,15 @@ return (0, _common.assertInit)(this._applications); | ||
} | ||
/* eslint-enable accessor-pairs */ | ||
get elements() { | ||
return (0, _common.assertInit)(this._elements); | ||
} | ||
set elements(elements) { | ||
this._elements = elements; | ||
} | ||
} | ||
exports.BasisTheory = BasisTheory; |
import type { ClientsBasePathMap } from '../types'; | ||
export declare const API_KEY_HEADER = "X-API-KEY"; | ||
export declare const BT_TRACE_ID_HEADER = "bt-trace-id"; | ||
export declare const DEFAULT_BASE_URL: string; | ||
export declare const DEFAULT_ELEMENTS_BASE_URL: string; | ||
export declare const CLIENT_BASE_PATHS: ClientsBasePathMap; | ||
declare const API_KEY_HEADER = "X-API-KEY"; | ||
declare const BT_TRACE_ID_HEADER = "bt-trace-id"; | ||
declare const DEFAULT_BASE_URL: string; | ||
declare const DEFAULT_ELEMENTS_BASE_URL: string; | ||
declare const CLIENT_BASE_PATHS: ClientsBasePathMap; | ||
export { API_KEY_HEADER, BT_TRACE_ID_HEADER, DEFAULT_BASE_URL, DEFAULT_ELEMENTS_BASE_URL, CLIENT_BASE_PATHS, }; |
@@ -21,3 +21,2 @@ "use strict"; | ||
if (window.BasisTheoryElements) { | ||
// TODO print console message | ||
resolve(window.BasisTheoryElements); | ||
@@ -24,0 +23,0 @@ return; |
@@ -1,2 +0,3 @@ | ||
export declare const findScript: (url: string) => HTMLScriptElement | null; | ||
export declare const injectScript: (url: string) => HTMLScriptElement; | ||
declare const findScript: (url: string) => HTMLScriptElement | null; | ||
declare const injectScript: (url: string) => HTMLScriptElement; | ||
export { findScript, injectScript }; |
@@ -8,5 +8,3 @@ "use strict"; | ||
const findScript = url => { | ||
return document.querySelector(`script[src^="${url}"]`); | ||
}; | ||
const findScript = url => document.querySelector(`script[src^="${url}"]`); | ||
@@ -24,3 +22,3 @@ exports.findScript = findScript; | ||
parent.appendChild(script); | ||
parent.append(script); | ||
return script; | ||
@@ -27,0 +25,0 @@ }; |
import type { AxiosRequestConfig, AxiosResponse, AxiosTransformer } from 'axios'; | ||
import type { RequestOptions } from '../service'; | ||
export declare const assertInit: <T>(prop: T) => NonNullable<T>; | ||
export declare const transformRequestSnakeCase: AxiosTransformer; | ||
export declare const transformReactorRequestSnakeCase: AxiosTransformer; | ||
export declare const transformAtomicRequestSnakeCase: AxiosTransformer; | ||
export declare const transformTokenRequestSnakeCase: AxiosTransformer; | ||
export declare const transformAtomicReactionRequestSnakeCase: AxiosTransformer; | ||
export declare const transformTokenResponseCamelCase: AxiosTransformer; | ||
export declare const transformReactorResponseCamelCase: AxiosTransformer; | ||
export declare const transformResponseCamelCase: AxiosTransformer; | ||
export declare const transformAtomicResponseCamelCase: AxiosTransformer; | ||
export declare const dataExtractor: <T>(res: AxiosResponse<T>) => T; | ||
export declare const createRequestConfig: (options?: RequestOptions | undefined, transformers?: Pick<AxiosRequestConfig, "transformRequest" | "transformResponse"> | undefined) => AxiosRequestConfig | undefined; | ||
export declare const concatRequestTransformerWithDefault: (requestTransformer: AxiosTransformer | AxiosTransformer[]) => AxiosTransformer | AxiosTransformer[] | undefined; | ||
export declare const concatResponseTransformermWithDefault: (responseTransformer: AxiosTransformer | AxiosTransformer[]) => AxiosTransformer | AxiosTransformer[] | undefined; | ||
export declare const errorInterceptor: (error: any) => void; | ||
export declare function getQueryParams<Q>(query: Q): string; | ||
declare const assertInit: <T>(prop: T) => NonNullable<T>; | ||
declare const transformRequestSnakeCase: AxiosTransformer; | ||
declare const transformReactorRequestSnakeCase: AxiosTransformer; | ||
declare const transformAtomicRequestSnakeCase: AxiosTransformer; | ||
declare const transformTokenRequestSnakeCase: AxiosTransformer; | ||
declare const transformAtomicReactionRequestSnakeCase: AxiosTransformer; | ||
declare const transformTokenResponseCamelCase: AxiosTransformer; | ||
declare const transformReactorResponseCamelCase: AxiosTransformer; | ||
declare const transformResponseCamelCase: AxiosTransformer; | ||
declare const transformAtomicResponseCamelCase: AxiosTransformer; | ||
declare const dataExtractor: <T>(res: AxiosResponse<T>) => T; | ||
declare const concatRequestTransformerWithDefault: (requestTransformer: AxiosTransformer | AxiosTransformer[]) => AxiosTransformer | AxiosTransformer[] | undefined; | ||
declare const concatResponseTransformermWithDefault: (responseTransformer: AxiosTransformer | AxiosTransformer[]) => AxiosTransformer | AxiosTransformer[] | undefined; | ||
declare const createRequestConfig: (options?: RequestOptions | undefined, transformers?: Pick<AxiosRequestConfig, "transformRequest" | "transformResponse"> | undefined) => AxiosRequestConfig | undefined; | ||
declare const errorInterceptor: (error: any) => void; | ||
declare const getQueryParams: <Q>(query: Q) => string; | ||
export { assertInit, transformRequestSnakeCase, transformReactorRequestSnakeCase, transformAtomicRequestSnakeCase, transformTokenRequestSnakeCase, transformAtomicReactionRequestSnakeCase, transformTokenResponseCamelCase, transformReactorResponseCamelCase, transformResponseCamelCase, transformAtomicResponseCamelCase, dataExtractor, createRequestConfig, concatRequestTransformerWithDefault, concatResponseTransformermWithDefault, errorInterceptor, getQueryParams, }; |
@@ -6,4 +6,3 @@ "use strict"; | ||
}); | ||
exports.getQueryParams = getQueryParams; | ||
exports.errorInterceptor = exports.concatResponseTransformermWithDefault = exports.concatRequestTransformerWithDefault = exports.createRequestConfig = exports.dataExtractor = exports.transformAtomicResponseCamelCase = exports.transformResponseCamelCase = exports.transformReactorResponseCamelCase = exports.transformTokenResponseCamelCase = exports.transformAtomicReactionRequestSnakeCase = exports.transformTokenRequestSnakeCase = exports.transformAtomicRequestSnakeCase = exports.transformReactorRequestSnakeCase = exports.transformRequestSnakeCase = exports.assertInit = void 0; | ||
exports.getQueryParams = exports.errorInterceptor = exports.concatResponseTransformermWithDefault = exports.concatRequestTransformerWithDefault = exports.createRequestConfig = exports.dataExtractor = exports.transformAtomicResponseCamelCase = exports.transformResponseCamelCase = exports.transformReactorResponseCamelCase = exports.transformTokenResponseCamelCase = exports.transformAtomicReactionRequestSnakeCase = exports.transformTokenRequestSnakeCase = exports.transformAtomicRequestSnakeCase = exports.transformReactorRequestSnakeCase = exports.transformRequestSnakeCase = exports.assertInit = void 0; | ||
@@ -14,13 +13,14 @@ var _axios = _interopRequireDefault(require("axios")); | ||
var _snakeCase = require("snake-case"); | ||
var _snakecaseKeys = _interopRequireDefault(require("snakecase-keys")); | ||
var _snakeCase = require("snake-case"); | ||
var _BasisTheoryApiError = require("./BasisTheoryApiError"); | ||
var _constants = require("./constants"); | ||
var _BasisTheoryApiError = require("./BasisTheoryApiError"); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
const assertInit = prop => { | ||
// eslint-disable-next-line unicorn/no-null | ||
if (prop === null || prop === undefined) { | ||
@@ -36,3 +36,3 @@ throw new Error('BasisTheory has not yet been properly initialized.'); | ||
const transformRequestSnakeCase = data => { | ||
if (data === undefined) { | ||
if (typeof data === 'undefined') { | ||
return undefined; | ||
@@ -49,3 +49,3 @@ } | ||
const transformReactorRequestSnakeCase = reactor => { | ||
if (reactor === undefined) { | ||
if (typeof reactor === 'undefined') { | ||
return undefined; | ||
@@ -66,3 +66,3 @@ } | ||
const transformAtomicRequestSnakeCase = data => { | ||
if (data === undefined) { | ||
if (typeof data === 'undefined') { | ||
return undefined; | ||
@@ -83,3 +83,3 @@ } | ||
const transformTokenRequestSnakeCase = token => { | ||
if (token === undefined) { | ||
if (typeof token === 'undefined') { | ||
return undefined; | ||
@@ -103,3 +103,3 @@ } | ||
const transformAtomicReactionRequestSnakeCase = request => { | ||
if (request === undefined) { | ||
if (typeof request === 'undefined') { | ||
return undefined; | ||
@@ -111,3 +111,4 @@ } | ||
}), | ||
...(request.requestParameters !== undefined ? { | ||
...(request.requestParameters !== undefined ? // eslint-disable-next-line camelcase | ||
{ | ||
request_parameters: request.requestParameters | ||
@@ -124,3 +125,3 @@ } : {}), | ||
const transformTokenResponseCamelCase = token => { | ||
if (token === undefined) { | ||
if (typeof token === 'undefined') { | ||
return undefined; | ||
@@ -144,3 +145,3 @@ } | ||
const transformReactorResponseCamelCase = reactor => { | ||
if (reactor === undefined) { | ||
if (typeof reactor === 'undefined') { | ||
return undefined; | ||
@@ -161,3 +162,3 @@ } | ||
const transformResponseCamelCase = data => { | ||
if (data === undefined) { | ||
if (typeof data === 'undefined') { | ||
return undefined; | ||
@@ -174,3 +175,3 @@ } | ||
const transformAtomicResponseCamelCase = data => { | ||
if (data === undefined) { | ||
if (typeof data === 'undefined') { | ||
return undefined; | ||
@@ -194,2 +195,10 @@ } | ||
const concatRequestTransformerWithDefault = requestTransformer => [...[], ...[requestTransformer], ..._axios.default.defaults.transformRequest]; | ||
exports.concatRequestTransformerWithDefault = concatRequestTransformerWithDefault; | ||
const concatResponseTransformermWithDefault = responseTransformer => [..._axios.default.defaults.transformResponse, ...[responseTransformer]]; | ||
exports.concatResponseTransformermWithDefault = concatResponseTransformermWithDefault; | ||
const createRequestConfig = (options, transformers) => { | ||
@@ -199,11 +208,11 @@ if (!options) { | ||
return undefined; | ||
} else { | ||
return { ...(transformers.transformRequest !== undefined ? { | ||
transformRequest: concatRequestTransformerWithDefault(transformers.transformRequest) | ||
} : {}), | ||
...(transformers.transformResponse !== undefined ? { | ||
transformResponse: concatResponseTransformermWithDefault(transformers.transformResponse) | ||
} : {}) | ||
}; | ||
} | ||
return { ...(transformers.transformRequest !== undefined ? { | ||
transformRequest: concatRequestTransformerWithDefault(transformers.transformRequest) | ||
} : {}), | ||
...(transformers.transformResponse !== undefined ? { | ||
transformResponse: concatResponseTransformermWithDefault(transformers.transformResponse) | ||
} : {}) | ||
}; | ||
} | ||
@@ -232,18 +241,6 @@ | ||
}; | ||
}; | ||
exports.createRequestConfig = createRequestConfig; | ||
const concatRequestTransformerWithDefault = requestTransformer => { | ||
return [].concat(requestTransformer, _axios.default.defaults.transformRequest); | ||
}; | ||
exports.concatRequestTransformerWithDefault = concatRequestTransformerWithDefault; | ||
const concatResponseTransformermWithDefault = responseTransformer => { | ||
return _axios.default.defaults.transformResponse.concat(responseTransformer); | ||
}; // eslint-disable-next-line @typescript-eslint/no-explicit-any,@typescript-eslint/explicit-module-boundary-types | ||
exports.concatResponseTransformermWithDefault = concatResponseTransformermWithDefault; | ||
exports.createRequestConfig = createRequestConfig; | ||
@@ -260,10 +257,10 @@ const errorInterceptor = error => { | ||
function getQueryParams(query) { | ||
const getQueryParams = query => { | ||
const keys = Object.keys(query); | ||
if (keys.length > 0) { | ||
if (keys.length) { | ||
const params = new URLSearchParams(); | ||
const appendSafe = (key, value) => { | ||
const type = typeof value; | ||
const type = typeof value; // eslint-disable-next-line unicorn/no-null | ||
@@ -290,2 +287,4 @@ if (value === null || ['boolean', 'number', 'string'].includes(type)) { | ||
return ''; | ||
} | ||
}; | ||
exports.getQueryParams = getQueryParams; |
@@ -1,5 +0,6 @@ | ||
export interface BasisTheoryElements { | ||
interface BasisTheoryElements { | ||
} | ||
export interface BasisTheoryElementsInit extends BasisTheoryElements { | ||
interface BasisTheoryElementsInit extends BasisTheoryElements { | ||
init: (apiKey: string, elementsBaseUrl: string) => Promise<BasisTheoryElements>; | ||
} | ||
export type { BasisTheoryElements, BasisTheoryElementsInit }; |
@@ -1,5 +0,4 @@ | ||
import type { EncryptionAdapter } from './types'; | ||
import type { Providers } from '../types'; | ||
import type { KeyPair } from './types'; | ||
import { EncryptionOptions } from '../types'; | ||
import type { EncryptionAdapter, KeyPair } from './types'; | ||
export declare class BasisTheoryEncryption implements EncryptionAdapter { | ||
@@ -6,0 +5,0 @@ private readonly adapter; |
@@ -34,4 +34,5 @@ "use strict"; | ||
return this.adapter.init(encryptionOptions); | ||
} | ||
} // eslint-disable-next-line accessor-pairs | ||
get name() { | ||
@@ -41,11 +42,11 @@ return this.adapter.name; | ||
async generateKeys() { | ||
generateKeys() { | ||
return this.adapter.generateKeys(); | ||
} | ||
async encrypt(encryptionKey, plainTextData) { | ||
encrypt(encryptionKey, plainTextData) { | ||
return this.adapter.encrypt(encryptionKey, plainTextData); | ||
} | ||
async decrypt(decryptionKey, cipherTextData) { | ||
decrypt(decryptionKey, cipherTextData) { | ||
return this.adapter.decrypt(decryptionKey, cipherTextData); | ||
@@ -52,0 +53,0 @@ } |
@@ -8,6 +8,6 @@ "use strict"; | ||
var _common = require("../common"); | ||
var _BasisTheoryEncryption = require("./BasisTheoryEncryption"); | ||
var _common = require("../common"); | ||
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } | ||
@@ -26,8 +26,10 @@ | ||
} | ||
} | ||
} // eslint-disable-next-line accessor-pairs | ||
get browserEncryption() { | ||
return (0, _common.assertInit)(this._browserEncryption); | ||
} | ||
} // eslint-disable-next-line accessor-pairs | ||
get nodeEncryption() { | ||
@@ -34,0 +36,0 @@ return (0, _common.assertInit)(this._nodeEncryption); |
@@ -13,3 +13,3 @@ "use strict"; | ||
function init(browserEncryption) { | ||
const init = browserEncryption => { | ||
var _browserEncryption$op, _browserEncryption$op2, _browserEncryption$al; | ||
@@ -24,5 +24,5 @@ | ||
algorithm = (_browserEncryption$al = browserEncryption === null || browserEncryption === void 0 ? void 0 : browserEncryption.algorithm) !== null && _browserEncryption$al !== void 0 ? _browserEncryption$al : 'RSA'; | ||
} | ||
}; | ||
function convertBinaryToPem(binaryData, label) { | ||
const convertBinaryToPem = (binaryData, label) => { | ||
const base64Cert = (0, _utils.arrayBufferToBase64String)(binaryData); | ||
@@ -33,8 +33,3 @@ let pemCert = `-----BEGIN ${label} KEY-----\r\n`; | ||
while (nextIndex < base64Cert.length) { | ||
if (nextIndex + 64 <= base64Cert.length) { | ||
pemCert += `${base64Cert.substr(nextIndex, 64)}\r\n`; | ||
} else { | ||
pemCert += `${base64Cert.substr(nextIndex)}\r\n`; | ||
} | ||
pemCert += nextIndex + 64 <= base64Cert.length ? `${base64Cert.slice(nextIndex, nextIndex + 64)}\r\n` : `${base64Cert.slice(nextIndex)}\r\n`; | ||
nextIndex += 64; | ||
@@ -45,11 +40,11 @@ } | ||
return pemCert; | ||
} | ||
}; | ||
function convertPemToBinary(pem, label) { | ||
const convertPemToBinary = (pem, label) => { | ||
const lines = pem.split('\n'); | ||
let encoded = ''; | ||
for (let i = 0; i < lines.length; i++) { | ||
if (lines[i].trim().length > 0 && lines[i].indexOf(`-BEGIN ${label} KEY-`) < 0 && lines[i].indexOf(`-END ${label} KEY-`) < 0) { | ||
encoded = encoded + lines[i].trim(); | ||
for (const line of lines) { | ||
if (line.trim().length > 0 && !line.includes(`-BEGIN ${label} KEY-`) && !line.includes(`-END ${label} KEY-`)) { | ||
encoded = encoded + line.trim(); | ||
} | ||
@@ -59,5 +54,5 @@ } | ||
return (0, _utils.base64StringToArrayBuffer)(encoded); | ||
} | ||
}; | ||
async function generateRSAKeys() { | ||
const generateRSAKeys = async () => { | ||
const keyPair = await window.crypto.subtle.generateKey(signAlgorithm, true, ['encrypt', 'decrypt']); | ||
@@ -70,3 +65,3 @@ const exportedPublic = await window.crypto.subtle.exportKey('spki', keyPair.publicKey); | ||
}; | ||
} | ||
}; | ||
@@ -78,29 +73,25 @@ const generateKeyMap = { | ||
async function generateKeys() { | ||
return generateKeyMap[algorithm](); | ||
} | ||
const generateKeys = () => generateKeyMap[algorithm](); | ||
async function loadPublicKey(pem) { | ||
return await window.crypto.subtle.importKey('spki', convertPemToBinary(pem, 'PUBLIC'), signAlgorithm, true, ['encrypt']); | ||
} | ||
const loadPublicKey = pem => window.crypto.subtle.importKey('spki', convertPemToBinary(pem, 'PUBLIC'), signAlgorithm, true, ['encrypt']); | ||
async function loadPrivateKey(pem) { | ||
return window.crypto.subtle.importKey('pkcs8', convertPemToBinary(pem, 'PRIVATE'), signAlgorithm, true, ['decrypt']); | ||
} | ||
const loadPrivateKey = pem => window.crypto.subtle.importKey('pkcs8', convertPemToBinary(pem, 'PRIVATE'), signAlgorithm, true, ['decrypt']); | ||
async function encrypt(publicKey, data) { | ||
const encrypt = async (publicKey, data) => { | ||
const key = await loadPublicKey(publicKey); | ||
const encrypted = await window.crypto.subtle.encrypt({ | ||
name: signAlgorithm.name | ||
}, key, new TextEncoder().encode(data).buffer); | ||
}, key, // eslint-disable-next-line node/no-unsupported-features/node-builtins | ||
new TextEncoder().encode(data).buffer); | ||
return (0, _utils.arrayBufferToBase64String)(encrypted); | ||
} | ||
}; | ||
async function decrypt(privateKey, data) { | ||
const decrypt = async (privateKey, data) => { | ||
const key = await loadPrivateKey(privateKey); | ||
const decrypted = await window.crypto.subtle.decrypt({ | ||
name: signAlgorithm.name | ||
}, key, (0, _utils.base64StringToArrayBuffer)(data)); | ||
}, key, (0, _utils.base64StringToArrayBuffer)(data)); // eslint-disable-next-line node/no-unsupported-features/node-builtins | ||
return new TextDecoder().decode(decrypted); | ||
} | ||
}; | ||
@@ -107,0 +98,0 @@ const browserAdapter = { |
@@ -13,3 +13,3 @@ "use strict"; | ||
function init(nodeEncryption) { | ||
const init = nodeEncryption => { | ||
var _nodeEncryption$optio, _nodeEncryption$optio2, _nodeEncryption$algor; | ||
@@ -19,5 +19,5 @@ | ||
algorithm = (_nodeEncryption$algor = nodeEncryption === null || nodeEncryption === void 0 ? void 0 : nodeEncryption.algorithm) !== null && _nodeEncryption$algor !== void 0 ? _nodeEncryption$algor : 'RSA'; | ||
} | ||
}; | ||
function generateRSAKeys() { | ||
const generateRSAKeys = () => { | ||
const { | ||
@@ -41,3 +41,3 @@ publicKey, | ||
}); | ||
} | ||
}; | ||
@@ -49,7 +49,5 @@ const generateKeyMap = { | ||
async function generateKeys() { | ||
return generateKeyMap[algorithm](); | ||
} | ||
const generateKeys = () => generateKeyMap[algorithm](); | ||
async function encrypt(publicKey, data) { | ||
const encrypt = (publicKey, data) => { | ||
const encrypted = (0, _crypto.publicEncrypt)({ | ||
@@ -60,6 +58,6 @@ key: publicKey, | ||
}, Buffer.from(data)); | ||
return encrypted.toString('base64'); | ||
} | ||
return Promise.resolve(encrypted.toString('base64')); | ||
}; | ||
async function decrypt(privateKey, data) { | ||
const decrypt = (privateKey, data) => { | ||
const decrypted = (0, _crypto.privateDecrypt)({ | ||
@@ -70,4 +68,4 @@ key: privateKey, | ||
}, Buffer.from(data, 'base64')); | ||
return decrypted.toString(); | ||
} | ||
return Promise.resolve(decrypted.toString()); | ||
}; | ||
@@ -74,0 +72,0 @@ const nodeAdapter = { |
@@ -1,2 +0,3 @@ | ||
export declare function arrayBufferToBase64String(arrayBuffer: ArrayBuffer): string; | ||
export declare function base64StringToArrayBuffer(b64str: string): ArrayBuffer; | ||
declare const arrayBufferToBase64String: (arrayBuffer: ArrayBuffer) => string; | ||
declare const base64StringToArrayBuffer: (b64str: string) => ArrayBuffer; | ||
export { arrayBufferToBase64String, base64StringToArrayBuffer }; |
@@ -6,10 +6,9 @@ "use strict"; | ||
}); | ||
exports.base64StringToArrayBuffer = exports.arrayBufferToBase64String = void 0; | ||
const arrayBufferToBase64String = arrayBuffer => window.btoa(String.fromCharCode(...new Uint8Array(arrayBuffer))); | ||
exports.arrayBufferToBase64String = arrayBufferToBase64String; | ||
exports.base64StringToArrayBuffer = base64StringToArrayBuffer; | ||
function arrayBufferToBase64String(arrayBuffer) { | ||
return window.btoa(String.fromCharCode(...new Uint8Array(arrayBuffer))); | ||
} | ||
function base64StringToArrayBuffer(b64str) { | ||
const base64StringToArrayBuffer = b64str => { | ||
const binary = window.atob(b64str); | ||
@@ -24,2 +23,4 @@ const len = binary.length; | ||
return bytes.buffer; | ||
} | ||
}; | ||
exports.base64StringToArrayBuffer = base64StringToArrayBuffer; |
import { EncryptionOptions } from '../types'; | ||
export interface KeyPair { | ||
interface KeyPair { | ||
publicKey: string; | ||
privateKey: string; | ||
} | ||
export interface EncryptionAdapter { | ||
interface EncryptionAdapter { | ||
name: string; | ||
@@ -13,1 +13,2 @@ generateKeys(): Promise<KeyPair | string | unknown>; | ||
} | ||
export { KeyPair, EncryptionAdapter }; |
import type { Log, LogQuery } from './types'; | ||
export declare const BasisTheoryLogs: { | ||
new (options: import("../service").BasisTheoryServiceOptions): { | ||
new (options: import("../service/types").BasisTheoryServiceOptions): { | ||
readonly client: import("axios").AxiosInstance; | ||
@@ -5,0 +5,0 @@ }; |
import type { PaginatedQuery } from '../service'; | ||
export interface Log { | ||
interface Log { | ||
tenantId: string; | ||
@@ -11,3 +11,3 @@ applicationId: string; | ||
} | ||
export interface LogQuery extends PaginatedQuery { | ||
interface LogQuery extends PaginatedQuery { | ||
entityType?: string; | ||
@@ -18,1 +18,2 @@ entityId?: string; | ||
} | ||
export type { Log, LogQuery }; |
{ | ||
"name": "@basis-theory/basis-theory-js", | ||
"version": "1.1.0", | ||
"version": "1.2.0", | ||
"repository": "https://github.com/Basis-Theory/basis-theory-js", | ||
@@ -18,3 +18,3 @@ "license": "Apache-2.0", | ||
"dependencies": { | ||
"axios": "^0.21.1", | ||
"axios": "^0.21.2", | ||
"camelcase-keys": "^6.2.2", | ||
@@ -21,0 +21,0 @@ "snake-case": "^3.0.4", |
@@ -13,3 +13,3 @@ "use strict"; | ||
class BasisTheoryPermissions extends _service.BasisTheoryService { | ||
async list(options) { | ||
list(options) { | ||
return this.client.get('/', (0, _common.createRequestConfig)(options)).then(_common.dataExtractor); | ||
@@ -16,0 +16,0 @@ } |
import type { ApplicationType } from '../applications'; | ||
export declare const PERMISSION_TYPES: readonly ["tenant:read", "tenant:update", "tenant:delete", "application:read", "application:create", "application:update", "application:create", "reactor:read", "reactor:create", "reactor:update", "reactor:delete", "log:read", "token:read", "token:create", "token:delete", "token:decrypt", "card:read", "card:create", "card:update", "card:delete", "bank:read", "bank:create", "bank:update", "bank:delete", "bank:decrypt"]; | ||
export declare type PermissionType = typeof PERMISSION_TYPES[number]; | ||
export interface Permission { | ||
declare const PERMISSION_TYPES: readonly ["tenant:read", "tenant:update", "tenant:delete", "application:read", "application:create", "application:update", "application:create", "reactor:read", "reactor:create", "reactor:update", "reactor:delete", "log:read", "token:read", "token:create", "token:delete", "token:decrypt", "card:read", "card:create", "card:update", "card:delete", "bank:read", "bank:create", "bank:update", "bank:delete", "bank:decrypt"]; | ||
declare type PermissionType = typeof PERMISSION_TYPES[number]; | ||
interface Permission { | ||
type: PermissionType; | ||
@@ -9,1 +9,3 @@ description: string; | ||
} | ||
export { PERMISSION_TYPES }; | ||
export type { PermissionType, Permission }; |
import type { ReactorFormula, ReactorFormulaQuery } from './types'; | ||
export declare const BasisTheoryReactorFormulas: { | ||
new (options: import("../service").BasisTheoryServiceOptions): { | ||
new (options: import("../service/types").BasisTheoryServiceOptions): { | ||
readonly client: import("axios").AxiosInstance; | ||
@@ -5,0 +5,0 @@ }; |
import type { PaginatedQuery } from '../service'; | ||
import type { TokenType } from '../tokens'; | ||
export declare type FormulaType = 'official' | 'private'; | ||
export declare type DataType = 'string' | 'boolean' | 'number'; | ||
export interface ReactorFormula { | ||
declare type FormulaType = 'official' | 'private'; | ||
declare type DataType = 'string' | 'boolean' | 'number'; | ||
interface ReactorFormula { | ||
id: string; | ||
@@ -18,3 +18,3 @@ name: string; | ||
} | ||
export interface ReactorFormulaConfig { | ||
interface ReactorFormulaConfig { | ||
name: string; | ||
@@ -24,3 +24,3 @@ description?: string; | ||
} | ||
export interface ReactorFormulaRequestParam { | ||
interface ReactorFormulaRequestParam { | ||
name: string; | ||
@@ -31,6 +31,7 @@ description?: string; | ||
} | ||
export declare type CreateReactorFormulaModel = Omit<ReactorFormula, 'id' | 'createdAt' | 'modifiedAt'>; | ||
export interface ReactorFormulaQuery extends PaginatedQuery { | ||
declare type CreateReactorFormulaModel = Omit<ReactorFormula, 'id' | 'createdAt' | 'modifiedAt'>; | ||
interface ReactorFormulaQuery extends PaginatedQuery { | ||
name?: string; | ||
sourceTokenType?: TokenType; | ||
} | ||
export type { FormulaType, DataType, ReactorFormula, ReactorFormulaConfig, ReactorFormulaRequestParam, CreateReactorFormulaModel, ReactorFormulaQuery, }; |
@@ -8,2 +8,4 @@ "use strict"; | ||
var _utils = require("../common/utils"); | ||
var _service = require("../service"); | ||
@@ -13,9 +15,11 @@ | ||
var _utils = require("./../common/utils"); | ||
const BasisTheoryReactors = new _CrudBuilder.CrudBuilder(class BasisTheoryReactors extends _service.BasisTheoryService { | ||
constructor(options) { | ||
options.transformRequest = [].concat(_utils.transformReactorRequestSnakeCase, options.transformRequest || []); | ||
options.transformResponse = [].concat(_utils.transformReactorResponseCamelCase, options.transformResponse || []); | ||
super(options); | ||
const _options = { ...options | ||
}; // eslint-disable-next-line unicorn/prefer-spread | ||
_options.transformRequest = [].concat(_utils.transformReactorRequestSnakeCase, options.transformRequest || []); // eslint-disable-next-line unicorn/prefer-spread | ||
_options.transformResponse = [].concat(_utils.transformReactorResponseCamelCase, options.transformResponse || []); | ||
super(_options); | ||
} | ||
@@ -22,0 +26,0 @@ |
@@ -0,5 +1,5 @@ | ||
import type { ReactorFormula } from '../reactor-formulas/types'; | ||
import type { PaginatedQuery } from '../service'; | ||
import type { TokenType } from '../tokens/types'; | ||
import type { ReactorFormula } from './../reactor-formulas/types'; | ||
export interface Reactor { | ||
interface Reactor { | ||
id: string; | ||
@@ -13,7 +13,7 @@ tenantId: string; | ||
} | ||
export declare type CreateReactorModel = Pick<Reactor, 'name' | 'configuration'> & { | ||
declare type CreateReactorModel = Pick<Reactor, 'name' | 'configuration'> & { | ||
formula: Pick<ReactorFormula, 'id'>; | ||
}; | ||
export declare type UpdateReactorModel = Pick<Reactor, 'name' | 'configuration'>; | ||
export interface ReactorQuery extends PaginatedQuery { | ||
declare type UpdateReactorModel = Pick<Reactor, 'name' | 'configuration'>; | ||
interface ReactorQuery extends PaginatedQuery { | ||
id?: string | string[]; | ||
@@ -23,1 +23,2 @@ name?: string; | ||
} | ||
export type { Reactor, CreateReactorModel, UpdateReactorModel, ReactorQuery }; |
@@ -22,3 +22,5 @@ "use strict"; | ||
apiKey, | ||
baseURL | ||
baseURL, | ||
transformRequest, | ||
transformResponse | ||
} = options; | ||
@@ -30,4 +32,8 @@ this.client = _axios.default.create({ | ||
}, | ||
transformRequest: [].concat(options.transformRequest || _common.transformRequestSnakeCase, _axios.default.defaults.transformRequest), | ||
transformResponse: _axios.default.defaults.transformResponse.concat(options.transformResponse || _common.transformResponseCamelCase) | ||
/* eslint-disable unicorn/prefer-spread */ | ||
transformRequest: [].concat(transformRequest || _common.transformRequestSnakeCase, _axios.default.defaults.transformRequest), | ||
transformResponse: _axios.default.defaults.transformResponse.concat(transformResponse || _common.transformResponseCamelCase) | ||
/* eslint-enable unicorn/prefer-spread */ | ||
}); | ||
@@ -34,0 +40,0 @@ this.client.interceptors.response.use(undefined, _common.errorInterceptor); |
import { BasisTheoryService } from './BasisTheoryService'; | ||
import type { RequestOptions } from './types'; | ||
import type { PaginatedList, PaginatedQuery } from './types'; | ||
import type { RequestOptions, PaginatedList, PaginatedQuery } from './types'; | ||
declare type BasisTheoryServiceConstructor<T extends BasisTheoryService = BasisTheoryService> = new (...params: any[]) => T; | ||
export declare type ICreate<T, C> = { | ||
declare type ICreate<T, C> = { | ||
create(model: C, options?: RequestOptions): Promise<T>; | ||
}; | ||
export declare type IRetrieve<T> = { | ||
declare type IRetrieve<T> = { | ||
retrieve(id: string, options?: RequestOptions): Promise<T>; | ||
}; | ||
export declare type IUpdate<T, U> = { | ||
declare type IUpdate<T, U> = { | ||
update(id: string, model: U, options?: RequestOptions): Promise<T>; | ||
}; | ||
export declare type IDelete = { | ||
declare type IDelete = { | ||
delete(id: string, options?: RequestOptions): Promise<void>; | ||
}; | ||
export declare type IList<T, Q extends PaginatedQuery> = { | ||
declare type IList<T, Q extends PaginatedQuery> = { | ||
list(query?: Q, options?: RequestOptions): Promise<PaginatedList<T>>; | ||
@@ -25,5 +24,5 @@ }; | ||
declare type IListConstructor<T, Q extends PaginatedQuery> = new (...args: any[]) => IList<T, Q>; | ||
export declare class CrudBuilder<Class extends BasisTheoryServiceConstructor> { | ||
declare class CrudBuilder<Class extends BasisTheoryServiceConstructor> { | ||
private BaseService; | ||
constructor(BaseService: Class); | ||
constructor(baseService: Class); | ||
create<T, C>(): CrudBuilder<Class & ICreateConstructor<T, C>>; | ||
@@ -36,2 +35,3 @@ retrieve<T>(): CrudBuilder<Class & IRetrieveConstructor<T>>; | ||
} | ||
export {}; | ||
export { CrudBuilder }; | ||
export type { ICreate, IRetrieve, IUpdate, IDelete, IList }; |
@@ -10,3 +10,5 @@ "use strict"; | ||
/* eslint-disable @typescript-eslint/explicit-function-return-type,@typescript-eslint/no-explicit-any */ | ||
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } | ||
/* eslint-enable @typescript-eslint/no-explicit-any */ | ||
const Create = Service => class Create extends Service { | ||
@@ -41,3 +43,3 @@ create(model, options) { | ||
const List = Service => class List extends Service { | ||
list(query = {}, options) { | ||
list(query = {}, options = {}) { | ||
const url = `/${(0, _common.getQueryParams)(query)}`; | ||
@@ -50,7 +52,10 @@ return this.client.get(url, (0, _common.createRequestConfig)(options)).then(_common.dataExtractor); | ||
class CrudBuilder { | ||
constructor(BaseService) { | ||
this.BaseService = BaseService; | ||
constructor(baseService) { | ||
_defineProperty(this, "BaseService", void 0); | ||
this.BaseService = baseService; | ||
} | ||
create() { | ||
// eslint-disable-next-line new-cap | ||
this.BaseService = Create(this.BaseService); | ||
@@ -61,2 +66,3 @@ return this; | ||
retrieve() { | ||
// eslint-disable-next-line new-cap | ||
this.BaseService = Retrieve(this.BaseService); | ||
@@ -67,2 +73,3 @@ return this; | ||
update() { | ||
// eslint-disable-next-line new-cap | ||
this.BaseService = Update(this.BaseService); | ||
@@ -73,2 +80,3 @@ return this; | ||
delete() { | ||
// eslint-disable-next-line new-cap | ||
this.BaseService = Delete(this.BaseService); | ||
@@ -79,2 +87,3 @@ return this; | ||
list() { | ||
// eslint-disable-next-line new-cap | ||
this.BaseService = List(this.BaseService); | ||
@@ -89,3 +98,5 @@ return this; | ||
} | ||
/* eslint-enable max-classes-per-file, @typescript-eslint/no-shadow */ | ||
exports.CrudBuilder = CrudBuilder; |
import type { AxiosRequestConfig } from 'axios'; | ||
export interface BasisTheoryServiceOptions extends Pick<AxiosRequestConfig, 'transformRequest' | 'transformResponse'> { | ||
interface BasisTheoryServiceOptions extends Pick<AxiosRequestConfig, 'transformRequest' | 'transformResponse'> { | ||
apiKey: string; | ||
baseURL: string; | ||
} | ||
export interface PaginatedList<T> { | ||
interface PaginatedList<T> { | ||
pagination: { | ||
@@ -16,3 +16,3 @@ totalItems: number; | ||
declare type QueryValue = boolean | number | string | null | undefined | (number | string)[]; | ||
export interface PaginatedQuery { | ||
interface PaginatedQuery { | ||
[key: string]: QueryValue; | ||
@@ -23,7 +23,7 @@ [key: number]: QueryValue; | ||
} | ||
export interface RequestOptions { | ||
interface RequestOptions { | ||
apiKey?: string; | ||
correlationId?: string; | ||
} | ||
export declare type RequestTransformers = Pick<AxiosRequestConfig, 'transformRequest' | 'transformResponse'>; | ||
export {}; | ||
declare type RequestTransformers = Pick<AxiosRequestConfig, 'transformRequest' | 'transformResponse'>; | ||
export type { BasisTheoryServiceOptions, PaginatedList, PaginatedQuery, RequestOptions, RequestTransformers, }; |
@@ -0,5 +1,5 @@ | ||
import { RequestOptions } from '../service'; | ||
import type { Tenant, UpdateTenantModel } from './types'; | ||
import { RequestOptions } from '../service'; | ||
export declare const BasisTheoryTenants: { | ||
new (options: import("../service").BasisTheoryServiceOptions): { | ||
new (options: import("../service/types").BasisTheoryServiceOptions): { | ||
retrieve(options?: RequestOptions | undefined): Promise<Tenant>; | ||
@@ -6,0 +6,0 @@ update(model: UpdateTenantModel, options?: RequestOptions | undefined): Promise<Tenant>; |
@@ -15,7 +15,7 @@ "use strict"; | ||
const BasisTheoryTenants = new _CrudBuilder.CrudBuilder(class BasisTheoryTenants extends _service.BasisTheoryService { | ||
async retrieve(options) { | ||
retrieve(options) { | ||
return this.client.get('/', (0, _common.createRequestConfig)(options)).then(_common.dataExtractor); | ||
} | ||
async update(model, options) { | ||
update(model, options) { | ||
return this.client.put('/', model, (0, _common.createRequestConfig)(options)).then(_common.dataExtractor); | ||
@@ -22,0 +22,0 @@ } |
@@ -1,2 +0,2 @@ | ||
export interface Tenant { | ||
interface Tenant { | ||
id: string; | ||
@@ -8,2 +8,3 @@ ownerId: string; | ||
} | ||
export declare type UpdateTenantModel = Pick<Tenant, 'name'>; | ||
declare type UpdateTenantModel = Pick<Tenant, 'name'>; | ||
export type { Tenant, UpdateTenantModel }; |
@@ -1,3 +0,3 @@ | ||
import { Token, CreateTokenModel, ListTokensQuery, RetrieveTokenQuery, ListTokensQueryDecrypted, TokenData } from './types'; | ||
import { BasisTheoryServiceOptions, PaginatedList, RequestOptions } from '../service'; | ||
import type { Token, CreateTokenModel, ListTokensQuery, RetrieveTokenQuery, ListTokensQueryDecrypted, TokenData } from './types'; | ||
export declare const BasisTheoryTokens: { | ||
@@ -17,9 +17,9 @@ new (options: BasisTheoryServiceOptions): { | ||
deleteToken(id: string): Promise<void>; | ||
retrieve(id: string, query?: RetrieveTokenQuery, options?: RequestOptions | undefined): Promise<Token>; | ||
retrieveDecrypted(id: string, query?: RetrieveTokenQuery, options?: RequestOptions | undefined): Promise<Token>; | ||
listDecrypted(query?: ListTokensQueryDecrypted, options?: RequestOptions | undefined): Promise<PaginatedList<Token>>; | ||
retrieve(id: string, query?: RetrieveTokenQuery, options?: RequestOptions): Promise<Token>; | ||
retrieveDecrypted(id: string, query?: RetrieveTokenQuery, options?: RequestOptions): Promise<Token>; | ||
listDecrypted(query?: ListTokensQueryDecrypted, options?: RequestOptions): Promise<PaginatedList<Token>>; | ||
createAssociation(parentId: string, childId: string, options?: RequestOptions | undefined): Promise<void>; | ||
deleteAssociation(parentId: string, childId: string, options?: RequestOptions | undefined): Promise<void>; | ||
createChild(parentId: string, token: CreateTokenModel, options?: RequestOptions | undefined): Promise<Token>; | ||
listChildren(parentId: string, query?: ListTokensQuery, options?: RequestOptions | undefined): Promise<PaginatedList<Token>>; | ||
listChildren(parentId: string, query?: ListTokensQuery, options?: RequestOptions): Promise<PaginatedList<Token>>; | ||
readonly client: import("axios").AxiosInstance; | ||
@@ -26,0 +26,0 @@ }; |
@@ -8,2 +8,4 @@ "use strict"; | ||
var _common = require("../common"); | ||
var _utils = require("../common/utils"); | ||
@@ -15,9 +17,10 @@ | ||
var _common = require("../common"); | ||
const BasisTheoryTokens = new _CrudBuilder.CrudBuilder(class BasisTheoryTokens extends _service.BasisTheoryService { | ||
constructor(options) { | ||
options.transformRequest = [].concat(_utils.transformTokenRequestSnakeCase, options.transformRequest || []); | ||
options.transformResponse = [].concat(_utils.transformTokenResponseCamelCase, options.transformResponse || []); | ||
super(options); | ||
const _options = options; // eslint-disable-next-line unicorn/prefer-spread | ||
_options.transformRequest = [].concat(_utils.transformTokenRequestSnakeCase, options.transformRequest || []); // eslint-disable-next-line unicorn/prefer-spread | ||
_options.transformResponse = [].concat(_utils.transformTokenResponseCamelCase, options.transformResponse || []); | ||
super(_options); | ||
} | ||
@@ -29,5 +32,5 @@ /** | ||
async createToken(data) { | ||
createToken(data) { | ||
return this.client.post('/', { | ||
data: data | ||
data | ||
}).then(_utils.dataExtractor); | ||
@@ -40,3 +43,3 @@ } | ||
async getToken(id) { | ||
getToken(id) { | ||
return this.client.get(id).then(_utils.dataExtractor); | ||
@@ -53,3 +56,3 @@ } | ||
async retrieve(id, query = {}, options) { | ||
retrieve(id, query = {}, options = {}) { | ||
const url = `/${id}${(0, _common.getQueryParams)(query)}`; | ||
@@ -59,3 +62,3 @@ return this.client.get(url, (0, _common.createRequestConfig)(options)).then(_utils.dataExtractor); | ||
async retrieveDecrypted(id, query = {}, options) { | ||
retrieveDecrypted(id, query = {}, options = {}) { | ||
const url = `/${id}/decrypt${(0, _common.getQueryParams)(query)}`; | ||
@@ -65,3 +68,3 @@ return this.client.get(url, (0, _common.createRequestConfig)(options)).then(_utils.dataExtractor); | ||
async listDecrypted(query = {}, options) { | ||
listDecrypted(query = {}, options = {}) { | ||
const url = `/decrypt${(0, _common.getQueryParams)(query)}`; | ||
@@ -81,3 +84,3 @@ return this.client.get(url, (0, _common.createRequestConfig)(options)).then(_utils.dataExtractor); | ||
async createChild(parentId, token, options) { | ||
createChild(parentId, token, options) { | ||
const url = `/${parentId}/children`; | ||
@@ -87,3 +90,3 @@ return this.client.post(url, token, (0, _common.createRequestConfig)(options)).then(_utils.dataExtractor); | ||
async listChildren(parentId, query = {}, options) { | ||
listChildren(parentId, query = {}, options = {}) { | ||
const url = `/${parentId}/children${(0, _common.getQueryParams)(query)}`; | ||
@@ -90,0 +93,0 @@ return this.client.get(url, (0, _common.createRequestConfig)(options)).then(_utils.dataExtractor); |
import type { PaginatedQuery } from '../service'; | ||
export declare type Primitive = string | number | boolean | null; | ||
export declare type DataObject = { | ||
declare type Primitive = string | number | boolean | null; | ||
declare type DataObject = { | ||
[member: string]: TokenData; | ||
}; | ||
export declare type DataArray = Array<TokenData>; | ||
export declare type TokenData = Primitive | DataObject | DataArray; | ||
export declare type TokenType = 'token' | 'card' | 'bank' | 'card:reaction' | 'bank:reaction'; | ||
export interface TokenEncryptionKey { | ||
declare type DataArray = Array<TokenData>; | ||
declare type TokenData = Primitive | DataObject | DataArray; | ||
declare type TokenType = 'token' | 'card' | 'bank' | 'card:reaction' | 'bank:reaction'; | ||
interface TokenEncryptionKey { | ||
key: string; | ||
alg: string; | ||
} | ||
export interface TokenEncryption { | ||
interface TokenEncryption { | ||
cek: TokenEncryptionKey; | ||
kek: TokenEncryptionKey; | ||
} | ||
export interface Token { | ||
interface Token { | ||
id: string; | ||
@@ -22,2 +22,3 @@ tenantId: string; | ||
data: TokenData; | ||
fingerprint?: string; | ||
metadata?: Record<string, string>; | ||
@@ -29,8 +30,8 @@ encryption?: TokenEncryption; | ||
} | ||
export declare type CreateTokenModel = Pick<Token, 'type' | 'data' | 'metadata' | 'encryption' | 'children'>; | ||
export interface RetrieveTokenQuery { | ||
declare type CreateTokenModel = Pick<Token, 'type' | 'data' | 'metadata' | 'encryption' | 'children'>; | ||
interface RetrieveTokenQuery { | ||
children?: boolean; | ||
childrenType?: TokenType | TokenType[]; | ||
} | ||
export interface ListTokensQuery extends PaginatedQuery { | ||
interface ListTokensQuery extends PaginatedQuery { | ||
id?: string | string[]; | ||
@@ -41,4 +42,5 @@ type?: TokenType | TokenType[]; | ||
} | ||
export interface ListTokensQueryDecrypted extends ListTokensQuery { | ||
interface ListTokensQueryDecrypted extends ListTokensQuery { | ||
decryptType?: TokenType | TokenType[]; | ||
} | ||
export type { Primitive, DataObject, DataArray, TokenData, TokenType, TokenEncryptionKey, TokenEncryption, Token, CreateTokenModel, RetrieveTokenQuery, ListTokensQuery, ListTokensQueryDecrypted, }; |
import type { BasisTheoryElements } from './elements'; | ||
export declare type InitStatus = 'not-started' | 'in-progress' | 'done' | 'error'; | ||
export declare type Clients = 'tokens' | 'atomic' | 'applications' | 'reactorFormulas' | 'reactors' | 'atomicBanks' | 'atomicCards' | 'permissions' | 'logs' | 'tenants'; | ||
export declare type ClientsBasePathMap = { | ||
declare type InitStatus = 'not-started' | 'in-progress' | 'done' | 'error'; | ||
declare type Clients = 'tokens' | 'atomic' | 'applications' | 'reactorFormulas' | 'reactors' | 'atomicBanks' | 'atomicCards' | 'permissions' | 'logs' | 'tenants'; | ||
declare type ClientsBasePathMap = { | ||
[key in Clients]: string; | ||
}; | ||
export declare type Providers = 'BROWSER' | 'NODE'; | ||
export declare const algorithm: readonly ["RSA", "AES"]; | ||
export declare type Algorithm = typeof algorithm[number]; | ||
export interface EncryptionProviderOptions { | ||
declare type Providers = 'BROWSER' | 'NODE'; | ||
declare const algorithm: readonly ["RSA", "AES"]; | ||
declare type Algorithm = typeof algorithm[number]; | ||
interface EncryptionProviderOptions { | ||
defaultKeySize: number; | ||
keyExpirationInDays: number; | ||
} | ||
export interface EncryptionOptions { | ||
interface EncryptionOptions { | ||
algorithm: Algorithm; | ||
options?: EncryptionProviderOptions; | ||
} | ||
export interface BasisTheoryInitOptions { | ||
interface BasisTheoryInitOptions { | ||
apiBaseUrl?: string; | ||
@@ -28,1 +28,3 @@ elements?: boolean; | ||
} | ||
export { algorithm }; | ||
export type { InitStatus, Clients, ClientsBasePathMap, Providers, Algorithm, EncryptionProviderOptions, EncryptionOptions, BasisTheoryInitOptions, }; |
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
97774
2065
1
Updatedaxios@^0.21.2