Skip to content

quiltt/quiltt-sdks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

773 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Quiltt SDKs

Maintainability Code Coverage Bundlewatch

This repository is the unified home of Quiltt's SDKs, covering JavaScript/TypeScript, Android, Flutter, and iOS. All packages are versioned and released together.

About Quiltt

Quiltt's unified API streamlines fintech application development by providing a single point of integration to multiple open banking data and enrichment providers. Our platform simplifies complex financial data workflows, enabling developers to focus on building exceptional user experiences.

Platform Support

The CI matrix tests against the following versions. Update this table when changing the matrix in .github/workflows/ci-*.yml.

Platform Minimum supported Latest tested
Node.js 20 24
Android (JDK) 17 (AGP 8.x minimum) 25 (current LTS)
Flutter 3.32.0 (Dart >= 3.8.0) 3.41.6
iOS 17.5 18.2

Getting Started

For comprehensive documentation including core concepts, guides, and API reference, visit https://quiltt.dev.

Each package includes detailed setup instructions and examples. See the individual package READMEs below for specific implementation details:

JavaScript / TypeScript: Core · React · Vue · React Native · Capacitor

Native Mobile: Android · Flutter · iOS

Repository Docs

Examples

Packages

JavaScript / TypeScript

npm version

The foundational package providing essential functionality for JavaScript-based Quiltt applications. Features include Auth API client, JWT handling, observables, storage management, timeout utilities, and comprehensive TypeScript types.

npm version

React components and hooks for seamless Quiltt integration, built on a powerful Apollo-based GraphQL client. Includes providers, authentication hooks, and pre-built UI components.

npm version

Vue 3 components and composables for integrating Quiltt Connector, including plugin-based session management and connector lifecycle utilities.

npm version

Native components optimized for React Native and Expo applications, featuring the Quiltt Connector and mobile-specific utilities for financial data integration.

npm version

Capacitor plugin and framework adapters for integrating Quiltt Connector in iOS and Android apps with native OAuth deep-link handling.

Native Mobile

Maven Central

Native Android SDK (Kotlin) for integrating Quiltt Connector. Supports View-based and Jetpack Compose layouts with App Links for OAuth deep-link handling. Requires Android API Level 26+.

pub package

Flutter SDK (Dart) providing a Widget for integrating Quiltt Connector into iOS and Android Flutter apps.

Native iOS SDK (Swift) for integrating Quiltt Connector via Swift Package Manager. Supports iOS 13+.

Development

Prerequisites

  • Node.js
  • pnpm

Setup

# Install dependencies
pnpm install

# Build all packages
pnpm run build

# Start development mode
pnpm run dev

Testing

This project uses Vitest for JavaScript unit testing, Playwright for web E2E testing, Detox for React Native E2E testing, and platform-native toolchains for mobile packages.

Running Tests

# Run JS/TS unit tests with coverage
pnpm run test:unit

# Run unit tests for specific package
pnpm run test:unit -- --project react

# Run end-to-end tests
pnpm run test:e2e

For platform-specific testing:

# Android — run from packages/android/
./gradlew connector:test

# Flutter — run from packages/flutter/
flutter test

# iOS — run from packages/ios/
swift test

Test Structure

  • Unit Tests (JS/TS): Located in packages/<name>/tests/ with .test.ts/.tsx extensions
  • Web E2E Tests: Playwright tests in examples/react-nextjs/e2e/, examples/vue-nuxt/e2e/, examples/capacitor-react/e2e/, and examples/capacitor-vue/e2e/
  • Mobile E2E Tests: Detox smoke tests in examples/react-native-expo/e2e/; Maestro connector flows in examples/react-native-expo/maestro/
  • Android Tests: JUnit tests in packages/android/connector/src/test/
  • Flutter Tests: Dart tests in packages/flutter/test/
  • iOS Tests: Swift tests in packages/ios/Tests/
  • Coverage: Istanbul coverage reports generated in coverage/ directory

Testing Stack

  • Vitest: Fast unit test runner with native TypeScript support
  • Playwright: Component and end-to-end testing for web examples
  • Detox: End-to-end smoke testing for React Native example apps
  • Maestro: Connector flow and OAuth callback testing for React Native on Android and iOS
  • Testing Library: React and React Native testing utilities
  • Happy DOM: Lightweight DOM implementation for faster tests
  • Gradle / JUnit: Android unit and instrumentation testing
  • Flutter Test: Flutter/Dart testing
  • Swift Testing / XCTest: iOS testing

Code Quality

# Lint all JS/TS packages
pnpm run lint

# Type checking
pnpm run typecheck

# Check dependency versions consistency
pnpm run check:packages

Contributing

We welcome contributions from developers at all skill levels. Whether you're reporting bugs, proposing features, or contributing code, your involvement drives the improvement of these projects.

Please read our Contributing Guidelines and Code of Conduct for detailed information on how to get started. For information on creating releases and changesets, see our Release Documentation.

Publishing

All packages in this repository are released together at the same version:

  1. JS/TS packages (@quiltt/core, @quiltt/react, etc.) are published to npm via Changesets
  2. Mobile packages (Android, Flutter, iOS) are published to Maven Central, pub.dev, and GitHub Releases automatically when the JS packages release
# Create a changeset (only step needed for contributors)
pnpm changeset

Once a changeset is created and merged to the main branch, our automated release workflow handles versioning and publishing for all packages. For detailed information, see our Release Documentation.

License

This repository and all published packages are licensed under the MIT License. See the LICENSE file for details.