├── .eslintignore ├── .eslintrc.json ├── .gitconfig ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── feature_request.md │ └── missing_type.md ├── dependabot.yml └── workflows │ ├── release.yml │ └── test.yml ├── .gitignore ├── .gitmessage ├── .nycrc.json ├── CHANGELOG.md ├── LICENSE ├── LICENSE-HYPIXEL-PHP.md ├── README.md ├── docs ├── .vuepress │ ├── components │ │ └── Custom.vue │ ├── config.js │ ├── enhanceApp.js │ ├── plugins │ │ ├── pages.js │ │ └── typedoc.js │ ├── public │ │ ├── android-chrome-192x192.png │ │ ├── android-chrome-512x512.png │ │ ├── apple-touch-icon.png │ │ ├── browserconfig.xml │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── favicon.ico │ │ ├── logo.svg │ │ ├── mstile-144x144.png │ │ ├── mstile-150x150.png │ │ ├── mstile-310x150.png │ │ ├── mstile-310x310.png │ │ ├── mstile-70x70.png │ │ ├── safari-pinned-tab.svg │ │ ├── site.webmanifest │ │ └── social.png │ └── styles │ │ ├── icons.styl │ │ ├── index.styl │ │ └── palette.styl └── guide │ ├── README.md │ ├── advanced │ ├── cache.md │ ├── metadata.example.webp │ └── metadata.md │ └── helpers │ ├── bedwars-level-info.md │ ├── guild-level.md │ ├── inventorydata.example.webp │ ├── minecraft-item-data.md │ ├── network-level.md │ ├── player-ranks.md │ ├── skyblock-profile-collections.md │ ├── skyblock-profile-skills.md │ └── skywars.md ├── package-lock.json ├── package.json ├── scripts └── process_api_output.js ├── src ├── Client.ts ├── errors │ ├── GenericHTTPError.ts │ ├── InvalidKeyError.ts │ └── RateLimitError.ts ├── helpers │ ├── BedwarsLevelInfo.ts │ ├── GuildLevel.ts │ ├── MinecraftFormatting.ts │ ├── NetworkLevel.ts │ ├── PlayerRank.ts │ ├── Romanize.ts │ ├── SkyBlockCollections.ts │ ├── SkyBlockSkills.ts │ ├── SkyWarsLevelInfo.ts │ ├── SkyWarsPrestige.ts │ ├── TransformItemData.ts │ └── TransformSkyBlockItemData.ts ├── index.ts ├── methods │ ├── guild.ts │ ├── housing │ │ ├── houses.ts │ │ └── index.ts │ ├── player.ts │ ├── recentGames.ts │ ├── resources │ │ ├── guilds.ts │ │ ├── index.ts │ │ ├── skyblock.ts │ │ └── vanity.ts │ ├── skyblock │ │ ├── auction.ts │ │ ├── auctions.ts │ │ ├── bingo.ts │ │ ├── garden.ts │ │ ├── index.ts │ │ ├── museum.ts │ │ └── profiles.ts │ └── status.ts ├── types │ ├── Augmented │ │ ├── Guild.ts │ │ ├── Player.ts │ │ ├── Resources │ │ │ └── SkyBlock │ │ │ │ └── Election.ts │ │ └── SkyBlock │ │ │ ├── Auction.ts │ │ │ ├── Profile.ts │ │ │ └── ProfileMember.ts │ ├── AugmentedTypes.ts │ ├── DefaultMeta.ts │ ├── RateLimitData.ts │ └── api.ts └── util │ ├── BaseClient.ts │ ├── Method.ts │ ├── NBT.ts │ ├── Queue.ts │ ├── Request.ts │ ├── ResultArray.ts │ └── ResultObject.ts ├── tests ├── cache.test.ts ├── client.test.ts.old ├── data │ ├── guild.json │ ├── player.json │ ├── punishmentstats.json │ ├── resources │ │ └── skyblock │ │ │ ├── collections.json │ │ │ └── skills.json │ └── skyblock │ │ ├── news.json │ │ ├── profile.json │ │ └── profiles.json ├── errors.test.ts ├── helpers.test.ts ├── queue.test.ts └── structures │ ├── AsyncReturnType.ts │ ├── QueueTestClient.ts │ └── TestClient.ts └── tsconfig.json /.eslintignore: -------------------------------------------------------------------------------- 1 | dist/ 2 | docs/ 3 | tests/ 4 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "es6": true, 4 | "node": true 5 | }, 6 | "extends": ["airbnb-typescript-prettier"], 7 | "globals": { 8 | "Atomics": "readonly", 9 | "SharedArrayBuffer": "readonly" 10 | }, 11 | "parser": "@typescript-eslint/parser", 12 | "parserOptions": { 13 | "project": "./tsconfig.json" 14 | }, 15 | "plugins": ["@typescript-eslint"], 16 | "settings": { 17 | "react": { 18 | "version": "999.999.999" 19 | } 20 | }, 21 | "rules": { 22 | "camelcase": 0, 23 | "import/prefer-default-export": 0, 24 | "lines-between-class-members": 0, 25 | "no-shadow": 0, 26 | "@typescript-eslint/no-namespace": 0, 27 | "@typescript-eslint/no-shadow": 2, 28 | "no-param-reassign": [ 29 | 2, 30 | { 31 | "props": false 32 | } 33 | ], 34 | "no-unused-vars": 0, 35 | "@typescript-eslint/no-unused-vars": 2, 36 | "no-use-before-define": 0, 37 | "@typescript-eslint/no-use-before-define": [ 38 | 2, 39 | { 40 | "ignoreTypeReferences": true 41 | } 42 | ] 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /.gitconfig: -------------------------------------------------------------------------------- 1 | [commit] 2 | template = ~/.gitmessage -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: bug 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 16 | **Expected behavior** 17 | A clear and concise description of what you expected to happen. 18 | 19 | **Environment:** 20 | - OS: [e.g. Ubuntu 20.04] 21 | - Node Version: [e.g. 12.16.1] 22 | - NPM Version [e.g. 6.13.4] 23 | - Library Version [e.g. 0.0.1] 24 | 25 | **Additional context** 26 | Add any other context about the problem here. 27 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: enhancement 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context about the feature request here. 21 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/missing_type.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Missing type definition 3 | about: Create a report to help us improve the type completion from the Hypixel API 4 | title: '' 5 | labels: missing-type 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Property missing type** 11 | Describe where the type is, this can be pointing to a file and line number under `src/types/Augmented` or included the API endpoint, and a snippet of the type missing from the augmented types. 12 | 13 | **Describe the type** 14 | Describe the possible contents of this type (preferably in the format of a Typescript interface), include an example, or point to elsewhere the type is documented (for example, if it exists under a different property). 15 | 16 | **Additional context** 17 | Add any other context here. 18 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # To get started with Dependabot version updates, you'll need to specify which 2 | # package ecosystems to update and where the package manifests are located. 3 | # Please see the documentation for all configuration options: 4 | # https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates 5 | 6 | version: 2 7 | updates: 8 | - package-ecosystem: "github-actions" 9 | directory: "/" 10 | target-branch: "dev" 11 | assignees: 12 | - "zikeji" 13 | schedule: 14 | interval: "daily" 15 | labels: 16 | - "github-actions" 17 | - "dependencies" 18 | - package-ecosystem: "npm" 19 | directory: "/" 20 | target-branch: "dev" 21 | assignees: 22 | - "zikeji" 23 | schedule: 24 | interval: "daily" 25 | labels: 26 | - "npm" 27 | - "dependencies" -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: release 2 | run-name: ${{ github.actor }} is automatically releasing 🚀 3 | 4 | on: 5 | repository_dispatch: 6 | types: 7 | - release 8 | 9 | jobs: 10 | release: 11 | runs-on: ubuntu-latest 12 | steps: 13 | - name: 'Generate token' 14 | id: generate_token 15 | uses: tibdex/github-app-token@v2 16 | with: 17 | app_id: ${{ secrets.BOT_APP_ID }} 18 | private_key: ${{ secrets.BOT_PRIVATE_KEY }} 19 | - uses: actions/checkout@v4 20 | with: 21 | token: ${{ steps.generate_token.outputs.token }} 22 | - uses: actions/setup-node@v4 23 | with: 24 | node-version: latest 25 | - name: Install dependencies 26 | run: npm ci 27 | - name: Build 28 | run: npm run build 29 | - uses: vimtor/action-zip@v1 30 | with: 31 | files: package.json package-lock.json dist/ 32 | dest: dist.zip 33 | - name: Semantic Release 34 | env: 35 | GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }} 36 | NPM_TOKEN: ${{ secrets.NPM_TOKEN }} 37 | run: npx semantic-release 38 | merge: 39 | needs: [release] 40 | runs-on: ubuntu-latest 41 | steps: 42 | - name: Merge main back into dev 43 | uses: devmasx/merge-branch@v1.4.0 44 | with: 45 | type: now 46 | head_to_merge: main 47 | target_branch: dev 48 | github_token: ${{ secrets.GITHUB_TOKEN }} 49 | publish_docs: 50 | needs: [release] 51 | runs-on: ubuntu-latest 52 | steps: 53 | - uses: actions/checkout@v4 54 | with: 55 | ref: main 56 | - uses: actions/setup-node@v4 57 | with: 58 | node-version: latest 59 | - run: npm ci 60 | - name: Build documentation 61 | env: 62 | NODE_ENV: production 63 | NODE_OPTIONS: --max-old-space-size=4096 --openssl-legacy-provider 64 | run: npm run docs:build 65 | - name: Deploy 66 | uses: peaceiris/actions-gh-pages@v4 67 | with: 68 | github_token: ${{ secrets.GITHUB_TOKEN }} 69 | publish_dir: ./docs/.vuepress/dist 70 | cname: node-hypixel.zikeji.com -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- 1 | name: test 2 | 3 | on: 4 | push: 5 | pull_request: 6 | 7 | jobs: 8 | test_lint: 9 | runs-on: ubuntu-latest 10 | if: "! contains(toJSON(github.event.commits.*.message), '[skip ci]')" 11 | steps: 12 | - uses: actions/checkout@v4 13 | - uses: actions/setup-node@v4 14 | with: 15 | node-version: latest 16 | - run: npm ci 17 | - name: Don't continue if lint fails. 18 | run: npm run test:lint 19 | test_node: 20 | runs-on: ubuntu-latest 21 | needs: test_lint 22 | strategy: 23 | max-parallel: 1 24 | matrix: 25 | node-version: [20.x, 22.x] 26 | steps: 27 | - uses: actions/checkout@v4 28 | - uses: actions/setup-node@v4 29 | with: 30 | node-version: ${{ matrix.node-version }} 31 | - name: Install dependencies 32 | run: npm ci 33 | - name: Build 34 | run: npm run build 35 | - name: Run tests 36 | run: npm run coverage:ci 37 | env: 38 | CI: true 39 | - name: Coveralls Parallel 40 | uses: coverallsapp/github-action@master 41 | with: 42 | github-token: ${{ secrets.GITHUB_TOKEN }} 43 | flag-name: run-${{ matrix.test_number }} 44 | parallel: true 45 | finish: 46 | needs: test_node 47 | runs-on: ubuntu-latest 48 | steps: 49 | - name: Coveralls Finished 50 | uses: coverallsapp/github-action@master 51 | with: 52 | github-token: ${{ secrets.GITHUB_TOKEN }} 53 | parallel-finished: true 54 | trigger_release: 55 | needs: 56 | - finish 57 | runs-on: ubuntu-latest 58 | if: github.event_name == 'push' && github.ref == 'refs/heads/main' && !contains(toJSON(github.event.commits.*.message), '[skip ci]') 59 | steps: 60 | - name: Dispatch 61 | run: | 62 | curl -X POST -H "Accept: application/vnd.github.v3+json" -H "Authorization: token $GH_TOKEN" https://api.github.com/repos/zikeji/node-hypixel/dispatches -d '{"event_type":"release"}' >/dev/null 2>&1 63 | env: 64 | GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} 65 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .env 2 | .vscode/ 3 | docs/.vuepress/dist 4 | docs/.vuepress/public/oembed.json 5 | docs/ts-api 6 | coverage/ 7 | .nyc_output/ 8 | dist/ 9 | node_modules/ 10 | *.tgz 11 | *.zip 12 | tests/**/*.ts 13 | !tests/**/*.test.ts 14 | !tests/structures/*.ts 15 | /swagger.json -------------------------------------------------------------------------------- /.gitmessage: -------------------------------------------------------------------------------- 1 | # (): 2 | # 3 | # 4 | # 5 | #