Skip to content

Package boundaries ​

The core package has no internal runtime or peer dependencies. Select additional capabilities by their responsibility, then satisfy the selected packages' peer requirements. “Optional for your application” does not mean a declared peer can be ignored. See packages/fetcher/package.json:31.

Declared internal peers ​

Every arrow below means the source package declares the target as an internal peer dependency. It is an installation graph, not a request call graph. Names abbreviate @ahoo-wang/fetcher-*; fetcher is @ahoo-wang/fetcher. OpenAPI supplies types only and has no internal peers.

mermaid
flowchart LR
  decorator --> fetcher
  eventbus --> fetcher
  eventstream --> fetcher
  storage --> eventbus
  cosec --> fetcher & eventbus & storage
  openai --> fetcher & eventstream & decorator
  react --> fetcher & eventbus & storage & cosec
  openapi
  classDef default fill:#2d333b,stroke:#6d5dfc,color:#e6edf3
LayerResponsibility and costManifest evidence
fetcherHTTP defaults, interception, extraction; no internal dependencypackages/fetcher/package.json:31
decoratorDeclarative services; metadata setup and runtime reflect-metadata dependencypackages/decorator/package.json:54
eventbus / eventstreamEvent delivery / SSE processing; each peers with corepackages/eventbus/package.json:52, packages/eventstream/package.json:53
storage / cosecStorage events / authentication protocol; additional state lifetime to ownpackages/storage/package.json:56, packages/cosec/package.json:54
openaiService-specific runtime client using core, decorators, and streamspackages/openai/package.json:59
reactRequest and integration Hooks; React/ReactDOM peers, direct dequal and immer dependencies; /core and /fetcher subpathspackages/react/package.json:74
openapiOpenAPI 3 type vocabulary; neither sends requests nor validates inputpackages/openapi/src/index.ts:19

Installation is not execution ​

A React peer edge to CoSec does not mean every Hook authenticates through CoSec. Importing @ahoo-wang/fetcher-react/core loads only React, and @ahoo-wang/fetcher-react/fetcher loads only @ahoo-wang/fetcher, but the declared peers remain installation requirements; see React subpath entries. The request lifecycle shows execution instead.

OpenAPI types themselves neither send requests nor validate input. React Compiler tooling listed as development dependencies does not by itself impose the repository's compiler pipeline on every consumer. Follow declarative services for service declarations, and see runtime support before choosing consumer versions.

Packages that moved to the Wow repository ​

The Wow-coupled packages left this repository before 6.0. Their last releases from here are the 5.x line (npm 5.1.x, branch 5.x); the pages that document them apply to 5.x only.

5.x packageFrom 6.0Where to read
@ahoo-wang/fetcher-wow@ahoo-wang/wow-client in the Wow repository, typescript/5.x: Wow guide, Wow reference; from 6.0: wow.ahoo.me
Wow query hooks in @ahoo-wang/fetcher-react@ahoo-wang/wow-react in the Wow repositorywow.ahoo.me
@ahoo-wang/fetcher-generator@ahoo-wang/wow-generator in the Wow repository (CLI wow-generator; alias fetcher-generator until Wow v10)5.x: generated client, generator reference; from 6.0: wow.ahoo.me
@ahoo-wang/fetcher-viewer, data-monitor hooksDeprecated on npm, frozen in 5.x; replaced by @ahoo-wang/wow-view-engine (Wow 9.2+)5.x: Viewer guides, Viewer reference

The Wow packages are on npm from Wow 9.2.0, their first stable release, and accept fetcher 6 from Wow 9.2.1 (peer range ^5.1.5 || ^6.0.0). To move a 5.x application to 6.0, switch to the Wow packages (9.2.1 or later) first, then upgrade fetcher; @ahoo-wang/fetcher-viewer consumers stay on the 5.1.x releases above until they migrate to @ahoo-wang/wow-view-engine.

Released under the Apache License 2.0.