Changelog - 2026-09-16
A fetch-only network layer
Breaking Change EnhancementIn one line. ARDOR no longer ships an axios transport, and the socket client now lives on its own import path, so import '@venizia/ardor' needs no HTTP client and no optional dependency installed.
What changed
- The axios transport is removed.
AxiosNetworkRequest,AxiosFetcher,IAxiosRequestOptionsandIAxiosNetworkOptionsno longer exist, andaxiosis not a peer dependency of any ARDOR package.DefaultNetworkRequestServicealready usedfetch; now that is the only transport. - The socket client moved to a sub-path.
SocketIOClientHelperandISocketIOClientOptionsare imported from@venizia/ardor/socket-io(or@venizia/ardor-kernel/socket-io) instead of the package root. - Importing the framework installs nothing extra. Both changes exist for the same reason: the root barrel used to pull
axiosandsocket.io-clienteagerly, so an application had to install two packages declared optional before it could import ARDOR at all.
Who is affected
- Applications that use the default data provider or network service. No action needed - they were already on
fetch. - Applications that imported
SocketIOClientHelperfrom the package root. Change the import path; the class itself is unchanged. - Applications that used
AxiosNetworkRequestorAxiosFetcher. Build the transport onfetch, or keep an axios helper in your own codebase.
Breaking changes
WARNING
Two public classes moved or disappeared. Both are transport-layer helpers; neither is used by the default data provider, auth provider or i18n provider.
Before:
ts
import { AxiosNetworkRequest, SocketIOClientHelper } from '@venizia/ardor';
// ...
const request = new AxiosNetworkRequest({ name: 'legacy', networkOptions: { baseUrl } });
const socket = new SocketIOClientHelper({ host, options });After:
ts
import { NodeFetchNetworkRequest } from '@venizia/ardor';
import { SocketIOClientHelper } from '@venizia/ardor/socket-io';
const request = new NodeFetchNetworkRequest({
name: 'reporting',
networkOptions: { baseUrl: 'https://api.example.com' },
});
const socket = new SocketIOClientHelper({
identifier: 'reporting',
host: 'https://api.example.com',
options: { path: '/socket.io', extraHeaders: {} },
});socket.io-client stays an optional peer, and is now genuinely optional: install it only if you import the ./socket-io sub-path.
Details
TFetcherVariantis now'node-fetch'alone.BaseNetworkRequest<T>stays generic over it, so a consumer can still add a transport without forking the base.- The browser-purity gate proves the result rather than asserting it: the kernel root entry bundles with no external dependency at all, while
kernel/socket-iodeclaressocket.io-clientand is measured separately.
| File | Package |
|---|---|
src/helpers/networks/fetchers/axios.ts (deleted) | kernel |
src/helpers/networks/common/types.ts | kernel |
src/helpers/networks/base-request.ts | kernel |
package.json exports and peers | kernel, ardor |