anonpenguin23 6f5b2db95e fix(sdk): surface typed SDKError on network/timeout failures (#129)
The HTTP client re-threw the raw platform error on a transport failure, so
callers (e.g. AnChat's JwtSession driving client.auth.refresh/challenge) could
only tell "couldn't reach the gateway" from a real HTTP error by string-
matching `TypeError: Network request failed`. The typed SDKError was built
only for the onNetworkError callback, never for the thrown error, and native
errors weren't retryable so they bubbled raw.

normalizeError() now maps a fetch failure -> SDKError{code:"NETWORK_ERROR",
httpStatus:0} and a timeout AbortError -> {code:"TIMEOUT",httpStatus:0}, and
that typed error is thrown to the caller. Genuine HTTP errors pass through
unchanged. httpStatus:0 is the stable "no HTTP response received" signal to
branch on; the original platform message is preserved for diagnostics.

Deliberately NOT auto-retrying network failures: a blind retry on a non-
idempotent POST like /v1/auth/refresh could burn the rotated refresh token on
a lost response. The SDK now just gives the app a typed error to drive its own
retry/failover.

Tests: tests/unit/http/network-errors-bug-129.test.ts (TypeError->NETWORK_ERROR,
AbortError->TIMEOUT, real 401 passes through, callback gets the typed error).
Full unit suite green, typecheck clean.
2026-06-12 16:44:37 +03:00
2026-02-14 14:14:04 +02:00
2025-08-09 21:44:26 +03:00
2026-03-26 18:40:20 +02:00
2026-03-26 18:40:20 +02:00
2026-06-12 10:14:00 +03:00

Orama Network

A decentralized infrastructure platform combining distributed SQL, IPFS storage, caching, serverless WASM execution, and privacy relay — all managed through a unified API gateway.

Packages

Package Language Description
core/ Go API gateway, distributed node, CLI, and client SDK
sdk/ TypeScript @debros/orama — JavaScript/TypeScript SDK (npm)
website/ TypeScript Marketing website and invest portal
vault/ Zig Distributed secrets vault (Shamir's Secret Sharing)
os/ Go + Buildroot OramaOS — hardened minimal Linux for network nodes

Quick Start

# Build the core network binaries
make core-build

# Run tests
make core-test

# Start website dev server
make website-dev

# Build vault
make vault-build

Documentation

Document Description
Architecture System architecture and design patterns
Deployment Guide Deploy apps, databases, and domains
Dev & Deploy Building, deploying to VPS, rolling upgrades
Security Security hardening and threat model
Monitoring Cluster health monitoring
Client SDK Go SDK documentation
Serverless WASM serverless functions
Common Problems Troubleshooting known issues

Contributing

See CONTRIBUTING.md for setup, development, and PR guidelines.

License

AGPL-3.0

Description
A robust, decentralized peer-to-peer network built in Go, providing distributed SQL database, key-value storage, pub/sub messaging, and resilient peer management. Designed for applications needing reliable, scalable, and secure data sharing without centralized infrastructure.
https://orama.network
Readme AGPL-3.0 1.6 GiB
Languages
Go 77.9%
TypeScript 13.1%
Zig 3.9%
MDX 3.6%
PLpgSQL 0.7%
Other 0.7%