TypeScript monorepo for ffxiv and userscripts.
Userscripts
- fflogs-scripts: FFLogs scripts for personal use
- tenhou-pairi-kokei-display: Display Kokei percentage of ii-shan-ten in Tenhou-Pairi
- universalis-zh-data: Universalis Chinese data redirection script
- xivanalysis-zh: Display actions and status of xivanalysis report in Chinese
- feishu-download: Download audio and image resources from Feishu pages
- get-usage-data: Save usage data from LLM platform pages as JSON files
They run in the browser with the Tampermonkey extension installed.
Libraries
- api-sdk-framework: Shared call/endpoint framework behind the repo's API SDKs
- xiv-api-provider: API SDK for xivapi in its international and Chinese server editions
- xiv-garland-provider: API SDK for the Garland Tools Chinese mirror, split out of xiv-api-provider and built on api-sdk-framework
- xiv-datamine-provider: Online access to the SaintCoinach datamining dumps
- xiv-datamine-polyfill: Vite plugin turning a datamining sheet import into a build-time generated module
- vite-plugin-userscript-metadata: Vite plugin generating the userscript metadata block in front of each entry bundle
- tencent-doc-sdk: API SDK for Tencent Docs Open API smartsheet endpoints
- universal-fetch-type: Type-only definition of universal fetch used in this repo
Services
- occult-pot-server: Express Server proxying the Tencent Docs smartsheet of occult pot refresh times
occult-pot-server runs in a Docker Compose container on Linux.
Test
- xiv-datamine-polyfill-e2e-test: End-to-end checks that the
xiv-datamine-polyfillVite plugin embeds in a real consumer build, and that the artifact is data plus a reader and nothing else - xiv-provider-raw-endpoints: Black-box measurement that each provider's dist chunking keeps zod and papaparse out of a bundle naming only raw endpoints
Example
- api-sdk-design-example: Executable consumer example of api-sdk-framework
To build the projects in this repo, try these shell commands:
npm install -g @microsoft/rush
rush install
rush build
For more information, see the documentation at: https://rushjs.io/
Code is formatted with oxfmt, linted with oxlint, and type-checked with tsc.