SatoshiQaziMuhammed c57e7e0ef4 web: make the typecheck a real gate, held to a ratchet (#54)
The typecheck ran with continue-on-error, so it could not fail, and it did
not see much of the code it was meant to check: shared/ resolved none of its
imports (61 TS2307), which hid every type error behind them.

- tsconfig.app.json resolves packages that shared/ imports from web's
  node_modules (types first), and @pezkuwi/utils subpaths as vite does.
  Unresolved imports: 61 -> 0. The real errors behind them are now visible:
  353 in total, most in production code with little test cover.
- Fixing those in one change would be a large edit to that code. Instead
  ops/typecheck-ratchet.py records them per file and error code in
  ops/typecheck-baseline.txt and fails when any file gains one, or when
  errors were fixed without lowering the baseline in the same change.
  Line numbers are not part of the signature, so unrelated edits do not
  trip it. Checked: a new error in App.tsx fails (exit 1); an unlowered
  baseline fails (exit 1); the current tree passes.

The CI step runs the ratchet instead of the non-blocking typecheck.
2026-10-09 07:18:26 +04:00
2025-10-22 18:05:19 -07:00

Pezkuwi Web App Projects (PWAP)

Monorepo for Pezkuwi blockchain frontend applications.

Project Structure

pwap/
├── web/                    # Main web application
├── sign/                   # Multisig signing portal
├── backend/                # Indexer service
├── shared/                 # Shared code and utilities
├── ops/                    # CI deploy gate checks and host deploy scripts
└── package.json            # Root package with build scripts
Repository Description URL
pezkuwi-sdk-ui Blockchain Explorer & Developer Tools https://github.com/pezkuwichain/pezkuwi-sdk-ui
pezkuwi-extension Browser Wallet Extension https://github.com/pezkuwichain/pezkuwi-extension

Projects

1. web/ - Main Web Application

Status: ✅ Production Ready

The primary web interface for Pezkuwi blockchain at app.pezkuwichain.io

Tech Stack:

  • React 18 + TypeScript
  • Vite
  • @pezkuwi/api
  • Supabase (Auth & Database)
  • Tailwind CSS + shadcn/ui
  • i18next

Features:

  • Wallet integration (Pezkuwi Extension)
  • Live blockchain data
  • Staking dashboard
  • DEX/Swap interface
  • P2P Fiat Trading with atomic escrow
  • Transaction history
  • Multi-language support (EN, TR, KMR, CKB, AR, FA)
  • Governance with live blockchain integration
cd web
npm install
npm run dev

2. sign/ - Multisig Signing Portal

A deliberately small app with one job: approve and sign pending multisig operations. It compiles shared/lib and is typechecked and built in CI.

cd sign
npm install
npm run build

3. backend/ - Indexer Service

API services for the applications.

cd backend
npm install
npm run dev

4. shared/ - Shared Code

Common code, types, and utilities used across all platforms.

shared/
├── types/          # TypeScript type definitions
├── utils/          # Helper functions
├── blockchain/     # Blockchain utilities
├── constants/      # App constants
├── images/         # Shared images and logos
└── i18n/           # Internationalization

Quick Start

Prerequisites

  • Node.js 24
  • npm

Installation

# Clone repository
git clone https://github.com/pezkuwichain/pwap.git
cd pwap

# Install all dependencies
npm install

# Or install individually
npm run install:web
npm run install:sign
npm run install:backend

Build All Projects

npm run build

This builds:

  1. web - Vite production build
  2. sign - typecheck and Vite production build

Development

npm run dev:web

Multi-Language Support

All applications support:

  • 🇬🇧 English (EN)
  • 🇹🇷 Türkçe (TR)
  • ☀️ Kurmancî (KMR)
  • ☀️ سۆرانی (CKB)
  • 🇸🇦 العربية (AR)
  • 🇮🇷 فارسی (FA)

RTL support for CKB, AR, FA.

Scripts

Command Description
npm run build Build all projects
npm run dev Start development servers
npm run lint Run linters
npm run test Run tests
npm run install:all Install all dependencies

License

Apache-2.0

S
Description
No description provided
Readme MIT
141 MiB
1 Watchers 0 Forks
Languages
TypeScript 82.9%
PLpgSQL 8.8%
Rust 3.9%
JavaScript 2.4%
CSS 0.7%
Other 1.2%