Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PSAPI — Project Sylvanas API reference

Two halves of the same reference, mirrored here so a client-side script can be written and audited without the game running.

Half Location What it answers
API stubs repository root (core.lua, game_object.lua, menu.lua, lib_profiler.lua, lib_quick_logs.lua, common/, third_party/) Which members exist? LuaLS annotation blocks (---@class / ---@field) describing the tables and members the client implements. 59 files, byte-identical to the .api/ dump that the eaxrotations repository builds against.
Documentation docs/ What do those members mean? A verbatim markdown mirror of https://docs.project-sylvanas.net/, 114 pages. Provenance, counts, and per-page hashes are in docs/manifest.json.

Not authored here

Neither half is written or maintained by this mirror. The stubs are the client's own runtime API surface; the documentation is the project's own site. Nothing in this repository is normative where the client or the live site disagrees with it.

No file here carries a version constant, because neither source does. The only dating evidence is the capture metadata: file timestamps on the stubs, and the generated_at stamp plus per-page sha256 values in docs/manifest.json. Treat both halves as point-in-time snapshots.

Layout

.
├── core.lua  game_object.lua  menu.lua  lib_*.lua   # API stubs
├── common/  third_party/                            # API stubs
├── tools/
│   └── scrape_ps_docs.py                            # the docs mirror generator (stdlib only)
└── docs/
    ├── README.md                                    # mirror provenance and refresh notes
    ├── manifest.json                                # url -> path, title, sha256, bytes, status
    ├── index.md                                     # the site root
    ├── dev/…                                        # developer docs, incl. dev/api/*
    ├── getting-started/…  modules/…  plugins/…  guides/…  examples/…

Page paths mirror the URL path. A page whose path is a prefix of another page (for example /dev or /dev/libraries/izi) is written as <path>/index.md; every other page is <path>.md. /search and /index-backup are deliberately absent: they are not documents.

Refreshing

# documentation (from this repository's root)
python tools/scrape_ps_docs.py --out docs

# documentation, drift gate: exit 1 if any page changed
python tools/scrape_ps_docs.py --out docs --check

# documentation, coverage cross-check against the site's search index
python tools/scrape_ps_docs.py --out docs --verify-index

# generator contract test, offline
python tools/scrape_ps_docs.py --self-test

The stubs half is refreshed by re-dumping the client's API surface and replacing the root tree wholesale, keeping the file set at 59.

Comparing against a consumer's copy

eaxrotations documents a verification step of the form diff -rq .api <this-repo>. That now reports docs/, tools/, and this file as extras. The comparison still means what it was meant to mean once the additions are excluded:

diff -rq .api <this-repo> --exclude=docs --exclude=tools --exclude=README.md

Use

The game described by both halves is Blizzard's, and the Project Sylvanas client is a private-server runtime. This reference exists so that scripts written for that client can be reviewed and checked later, for educational use on private or self-hosted servers. Do not redistribute the mirrored documentation or stub files as your own, and do not treat either as a licence to target retail services.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages