expo-finance-kit
Version:
Native Expo module for Apple FinanceKit - Access financial data from Apple Card and other accounts
150 lines (134 loc) • 3.5 kB
text/typescript
/**
* Expo Finance Kit - A comprehensive library for Apple FinanceKit integration
* Provides type-safe, modular access to financial data on iOS devices
*/
// Core module exports
export { default as ExpoFinanceKit } from './ExpoFinanceKitModule';
// Type exports
export * from './ExpoFinanceKit.types';
// Authorization module
export {
requestAuthorization,
getAuthorizationStatus,
isFinanceKitAvailable,
ensureAuthorized,
authorizationListener,
waitForAuthorization,
getAuthorizationStatusDescription,
canRequestAuthorization,
} from './modules/authorization';
// Account management
export {
getAccounts,
getAccountsWithOptions,
getAccountById,
getAccountsWithMetadata,
getAccountsByInstitution,
getPrimaryAccount,
refreshAccounts,
} from './modules/accounts';
// Transaction management
export {
getTransactions,
getTransactionsByAccount,
getRecentTransactions,
getTransactionsByDateRange,
getIncomeTransactions,
getExpenseTransactions,
getPendingTransactions,
searchTransactions,
groupTransactionsByDate,
calculateTransactionStats,
} from './modules/transactions';
// Balance management
export {
getBalances,
getBalanceByAccount,
getTotalBalance,
getBalanceSummary,
monitorBalanceChanges,
getBalanceHistory,
} from './modules/balances';
// Transaction monitoring
export {
startMonitoringTransactions,
stopMonitoringTransactions,
addTransactionChangeListener,
removeAllTransactionChangeListeners,
isMonitoringTransactions,
clearHistoryToken,
setAppGroupIdentifier,
processPendingChanges,
transactionMonitor,
type TransactionChangeCallback,
} from './modules/monitoring';
// Utilities
export {
// Validators
validateAccountQueryOptions,
validateTransactionQueryOptions,
validateBalanceQueryOptions,
isValidCurrencyCode,
isValidAccountId,
sanitizeTransactionDescription,
// Type guards
isAuthorizationStatus,
isTransaction,
isAccount,
} from './utils/validators';
export {
// Error handling
createFinanceKitError,
isFinanceKitError,
getUserFriendlyErrorMessage,
withErrorHandling,
logError,
ErrorRecovery,
} from './utils/errors';
export {
// Formatters
formatCurrency,
formatDate,
formatRelativeDate,
formatTransaction,
formatMerchantCategory,
formatAccountName,
formatPercentage,
formatNumber,
abbreviateNumber,
formatDuration,
formatBalanceChange,
} from './utils/formatters';
export {
// Analytics
generateSpendingInsights,
calculateSpendingTrends,
findUnusualTransactions,
calculateSavingsRate,
predictFutureBalance,
} from './utils/analytics';
// React hooks
export {
useAuthorizationStatus,
useAccounts,
useAccount,
useTransactions,
useRecentTransactions,
useAccountBalance,
useTotalBalance,
useTransactionStream,
useTransactionMonitoring,
} from './hooks/useFinanceKit';
// Legacy exports for backward compatibility
export { requestAuthorizationWithStatus } from './helpers';
// Convenience namespace exports
export * as Accounts from './modules/accounts';
export * as Transactions from './modules/transactions';
export * as Balances from './modules/balances';
export * as Authorization from './modules/authorization';
export * as Monitoring from './modules/monitoring';
export * as Formatters from './utils/formatters';
export * as Analytics from './utils/analytics';
export * as Validators from './utils/validators';
export * as Errors from './utils/errors';
export * as Hooks from './hooks/useFinanceKit';