Releases
v2.0.0
Compare
Sorry, something went wrong.
No results found
2.0.0 (2026-08-27)
⚠ BREAKING CHANGES
package: the package no longer ships CommonJS output and now
requires Node.js >= 22. Consumers on CJS must use dynamic import() or
migrate to ESM.
api: aniLink.anilist.query.like() has been removed; use aniLink.anilist.query.page.likes({ likeableId, type }) instead.
api: Page.followers and Page.followings now require userId at the type level; calls omitting it already failed against the AniList API.
api: operations now live under aniLink.anilist.* instead of
directly on the AniLink instance (aniLink.media(...) becomes
aniLink.anilist.media(...)).
Extract the operation surface from AniLink.ts into
src/apis/anilist/facade.ts (buildAniListApi / AniListApi)
Move shared transport plumbing (endpoint, auth token, request helper)
into APIWrapper so operation classes only declare variables, document,
and a thin method
Relocate GraphQL selection-set constants from interfaces/ to a
dedicated schemas/ tree
Update generate-explorer-manifest to parse facade.ts and scan schemas/
✨ Features
anilist: add like query and review ratings (2416574 )
api: accept per-provider credentials in the AniLink constructor (7170754 )
api: accept per-request transport options on every operation (44aa4d0 )
api: add anilist subpath export for provider-scoped imports (e7fefb7 )
api: add concurrent page fetching to pagination helpers (2d4806e )
api: add pagination and media-list helper capabilities (24cdc95 )
api: export pagination helpers and client options from AniLink (21d6764 )
api: retry by default, add rate-limit pacing and circuit breaker (39d61a8 )
api: scope transport options per client and classify GraphQL failures (bc95b9b )
api: type delete, like, and AniChart mutation returns (caa56a5 )
api: validate custom GraphQL documents and type custom() generically (c000ba1 )
auth: add AniList OAuth2 authorization-code helpers (7bafc4b )
auth: route token requests through the shared request pipeline (f25dfbb )
auth: sanitize token errors and add state and expiry helpers (d18711f )
base: add auth-required request handling (4fdc8ac )
base: add typed transport errors and request options (a5256af )
explorer: add AniLink API Explorer for building and testing calls live (af9a72f )
explorer: format and highlight GraphQL queries (938e239 )
requests: add retry policy and normalized transport errors (1a9d8f5 )
scripts: add provider selection to schema comparison CLI (63f20c8 )
🐛 Bug Fixes
anilist: align response contracts with API schema (32f74f8 )
anilist: correct API operation contracts (7ffd5fe )
api-compare: parse inline mappings in explorer manifest generator (9fe0983 )
api: align response types with the AniList schema (0858d63 )
api: always validate variables in collection and statistics queries (653ca41 )
api: clamp perPage and perChunk to AniList caps (023fa22 )
api: enforce real AniList variable contracts with requireVariables (de31bfc )
api: make character query variables optional (ac6c26e )
api: point operation @see links at specific AniList reference pages (868c159 )
api: reject unknown variable keys by default (00bb7ff )
api: render objects and arrays in variable validation errors (5f6a2f6 )
api: require userId for followers and followings (17bbd0d )
api: throw typed validation error from updateFavouriteOrder (c2cb640 )
explorer: enforce [hidden] attribute over display:flex builder divs (b33707a )
explorer: protect tokens, guard races, and restore keyboard access (5a4780a )
explorer: rewrite JSON highlighting in a tested pure-logic core (11d788b )
package: publish typed named-export package (f9c7363 )
transport: scope circuit-breaker state per upstream host (da60ecc )
unwrap single-field AniList responses (d98bf11 )
validation: enforce nested variable validation (83b59a3 )
⚡ Performance
build: ship a single TypeScript declaration file (bcbb6ee )
explorer: ship minified operations.json manifest (92b5d88 )
♻️ Refactoring
anilist: flatten media list collection response (136eb1e )
api: annotate enum mapping constants as readonly (acbf579 )
api: decompose AniList facade into type and wiring modules (2d32a3f )
api: derive operation wiring from a declarative registry (d12d61c )
api: extract provider-neutral pagination core (c05faab )
api: generate response interfaces from schema fragments (db65ce1 )
api: move AniList operations behind anilist facade (60b3c2d )
api: relocate APIWrapper beside its AniList consumers (14f1d7e )
api: remove redundant Like query (bd180db )
api: remove unused schema imports from response interfaces (d934cc9 )
api: restructure providers under graphql/ and rest/ with shared operation bases (89b44b8 )
api: reuse HttpMethod type in RestExecuteOptions (245ffe6 )
api: route operations through declarative execute pipeline (6b7e946 )
api: split anilist-api-type into facade group modules (5a27644 )
api: wire AniList paginator onto the shared pagination core (fc0b6d5 )
base: centralize GraphQL response unwrapping (04e6bd8 )
base: extract unwrapSingleRootField helper (09c4894 )
base: schedule sleep timeout before abort handler (d4d1358 )
scripts: move api-compare library to lib/api-compare (2a5969b )
📚 Documentation
add contributing guide and changelog stub (23ccd05 )
add project badges (f8ab890 )
add upstream compatibility policy, auth examples, and contributor guardrails (57cafbd )
anilist: add AniList reference links (3fb6722 )
anilist: simplify media list deletion example (5f2dc95 )
anilist: update AniList API examples (5f2bb30 )
anilist: update HTML query option examples (3adcca7 )
api-compare: render dated upstream coverage into the comparison report (980e83c )
api: refresh examples and API docstrings (40d0187 )
fix stale Paginator path in MediaListCollection chunk guide (5ca1926 )
readme: document client options, hooks, errors, and OAuth state (853986a )
rewrite project overview (1a4631d )
💎 Style
api: collapse delete mutation signatures to single lines (9711e58 )
format source and tests with Prettier (4832b0f )
📦 Build
add AniList API comparison tooling (01ea72c )
align the local check aggregate with CI quality gates (690ab73 )
anilist-api: expand schema comparison contracts (6d414b8 )
anilist-api: improve schema comparison reporting (5f63c55 )
codegen: add interface generator engine with manifest and unit tests (6a9984d )
codegen: replace schema:sync checker with interfaces:generate check (4c4381d )
configure Prettier formatting (c0c0ccc )
deps: add fast-check for property-based testing (f28d55c )
deps: align @types/node with the Node 22 engines floor (7c2af32 )
deps: remove unused eslint plugins (0a08bc2 )
docs: migrate Typedoc stack (4bf1c38 )
lint: enable type-aware and security-focused ESLint rules (8b0c9ff )
lint: enforce eslint and prettier on explorer sources (eb10385 )
migrate test tooling from Jest to Vitest (ed232d4 )
modernize ESLint tooling (881e209 )
modernize TypeScript tooling (ebc7d30 )
package: require Node.js 20 (45015bd )
package: ship ESM-only unbuild bundle and require Node 22 (e8ed796 )
🔧 CI/CD
add AniList API comparison workflow (a0d1e01 )
add AniList integration workflow (02ba421 )
add automated verification workflow (a7c0f1a )
add dry-run mode for release workflow (23dff44 )
add packaged package smoke job (da11275 )
add semantic-release dry-run support (a220c8c )
api-compare: add strict mode, weekly live schedule, and discrepancy annotations (b739ef3 )
bound jobs, adopt official Pages flow, and gate releases on live checks (6231976 )
cancel superseded runs, run on Node 22, gate npm publishing (2f1b4b4 )
configure Dependabot GitHub Actions updates (46b32f3 )
dependabot: remove duplicate npm security update rule (72fe6c0 )
deps: group dependabot updates and add daily security-only stream (1a56e94 )
docs: strengthen JSDoc validation (59da56e )
docs: validate AniList API reference links (6dd4310 )
docs: validate AniList reference links (be4f436 )
enforce JSDoc and script validation (07e2595 )
fail when ANILIST_TOKEN secret is missing (2832f6c )
gate release on successful CI (1849670 )
gate schema/interface sync and snapshot comparison (169098d )
include formatting and JSDoc checks in validation (1e9a252 )
publish generated documentation to gh-pages (c99ae6a )
reduce release workflow timeout (59c994c )
release: add provenance permission (8d9cffc )
release: add semantic-release automation [skip ci] (bb50a94 )
release: omit npm token from release job (daa6f51 )
remove Jest test workflow (b4a2dd5 )
update analysis and documentation workflows (34ed87c )
🧪 Tests
api: add live integration coverage for AniList queries (1aac56a )
api: add property-based tests for variables and pagination (3368a65 )
api: assert transport contract for every mutation operation (2040a7a )
api: cover custom query input guards (3ace603 )
api: cover upstream error envelope normalization (981668c )
api: drive the real facade-to-Axios seam in a dedicated suite (ed5522e )
api: extract shared axios test double for transport suites (c8266d2 )
api: fail fast on invalid ANILIST_TOKEN via credential preflight (e697e6f )
api: pin custom() document guard against adversarial inputs (fb6eb1c )
api: pin registry wiring coverage and manifest resolution (ec72352 )
api: stop fixtures from sending variables operations do not accept (a97bf52 )
cover auth headers, envelope unwrapping, and validation errors (f2d5a2a )
cover validation, pagination, retry, registry, and REST seams (87fd9f5 )
enforce 90% coverage thresholds via v8 provider (edb5b74 )
exclude integration tests from Vitest run (9e6ba01 )
harden array coercion against hostile property values (2185a84 )
lower unit test timeout to five seconds (f18ffb6 )
remove any casts and unused mock parameters (f896c93 )
restore the 90% branch coverage gate (c5daf4f )
You can’t perform that action at this time.