Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
1ce1180
Fixed hints being added improperly with new hints
DrAwesome4333 Feb 22, 2025
e919e24
Corrected typos and naming
DrAwesome4333 Feb 22, 2025
5aa9923
Swapped out fix for method that keeps order where possible
DrAwesome4333 Feb 23, 2025
c218e50
Removed extra '.values()' calls
DrAwesome4333 Feb 23, 2025
3638fd4
updates to dependencies and targets
Apr 2, 2025
1a8945c
utilize ES2015-compatible interface for `DataPackageManager.exportPac…
Apr 2, 2025
3735f9e
update readme and roll back some dependencies
Apr 2, 2025
018a37f
Hints: Ensure `hints` order is guaranteed on `ItemsManager` and fix a…
Apr 2, 2025
d9bb11e
Fixed bulid errors, added test log for POC
DrAwesome4333 Jul 26, 2025
5bac28b
Prevent datapackage clearing
DrAwesome4333 Jul 26, 2025
ba71d23
Merge branch 'bug/fix_hints' into test
DrAwesome4333 Jul 28, 2025
78d6d4c
Removed POC 'hello'
DrAwesome4333 Jul 28, 2025
ba4d79d
Added hint status to hints
DrAwesome4333 Oct 18, 2025
6047b13
Return from !admin login command
DrAwesome4333 Oct 18, 2025
d9145a0
Add hint update packet
DrAwesome4333 Oct 20, 2025
557bbab
Added more flexible DataPackage storing
DrAwesome4333 Nov 16, 2025
03a24a0
CI + some automated tests + just use Bun for everything (#1)
airbreather Apr 17, 2026
9f2d45c
Merge branch 'dev'
airbreather Apr 17, 2026
2bfc556
Merge branch 'DrAwesome4333/main'
airbreather Apr 18, 2026
0604194
Get a different fix for ThePhar#232 - there are quite a few more edge…
airbreather Apr 18, 2026
dacbc33
Nit: remove some unnecessary stuff left over from when the new regres…
airbreather Apr 18, 2026
17acf4a
Overhaul ESLint configuration, trying to stay true to the original go…
airbreather Apr 18, 2026
938c189
Some additional ESLint configuration that adapts the rules to almost …
airbreather Apr 19, 2026
fd04f49
`bunx eslint --fix` with no manual edits.
airbreather Apr 19, 2026
a6a7f89
ONLY manually fix exactly the remaining ESLint failures, and nothing …
airbreather Apr 19, 2026
808f4e4
A couple of tangential updates around where the ESLint fixes from the…
airbreather Apr 19, 2026
ccea0a5
Remove global suppressions for these rules. Instead, suppress the exi…
airbreather Apr 19, 2026
28ddbde
Overhaul the ESLint configuration.
airbreather Apr 19, 2026
c58e800
This is aimed at Phar's repo now, so peel back some `package.json` ch…
airbreather Apr 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
root = true

[*]
charset = utf-8
indent_size = 4
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true

[*.{js,mjs,ts}]
quote_type = double

[*.yml]
indent_size = 2
59 changes: 59 additions & 0 deletions .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: Build and Test

on:
push:
branches:
- main
pull_request:
branches:
- main

jobs:
test:
runs-on: ubuntu-latest

services:
archipelago:
# build locally by running "podman build . -t something/whatever" in:
# test/integration/server-files
# to get it hosted on quay.io (you need an account, it's free today):
# - rename Containerfile to Dockerfile
# - zip up the relevant files in that folder (if you're lazy, just zip it all up)
# - have quay.io run a build using that zip file
# in future commits on this branch, we'll see about making that easier. for now,
# I need to stop somewhere, and this seems like as appropriate a place as any.
image: quay.io/airbreather/archipelagomw-server:20260414
ports:
- 38281:38281
options: >-
--health-cmd "grep -qr 'websockets.server.*server listening' /opt/Archipelago/logs"
--health-interval 10s
--health-timeout 5s
--health-retries 5

steps:
- uses: actions/checkout@v6

- name: Get Bun
uses: oven-sh/setup-bun@v2

- name: Install dependencies
run: bun install

- name: Run tests
run: bun run --bun vitest --coverage

- name: Build prerelease package
run: bun pm pack --filename artifact.tgz

- name: Upload prerelease package
uses: actions/upload-artifact@v7
with:
path: artifact.tgz
archive: false

- name: Report Coverage
if: (!cancelled())
uses: davelosert/vitest-coverage-report-action@v2
with:
file-coverage-mode: all
35 changes: 0 additions & 35 deletions .npmignore

This file was deleted.

16 changes: 8 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@
![NPM Downloads](https://img.shields.io/npm/dm/archipelago.js?style=flat-square)
![Static Badge](https://img.shields.io/badge/bsky-%40pharware.com-gray?style=flat-square&labelColor=%233b78fc&link=https%3A%2F%2Fbsky.app%2Fprofile%2Fpharware.com)

A runtime-agnostic and zero dependency TypeScript/JavaScript library for communicating with Archipelago servers.
A runtime-agnostic and zero dependency TypeScript/JavaScript library for communicating with Archipelago servers.

Targeted to work on all major desktop and mobile browsers ([Firefox](https://www.mozilla.org/en-US/firefox/),
[Chromium](https://www.chromium.org/), and [Safari](https://www.apple.com/safari/)) and server-side runtimes such as
Targeted to work on all major desktop and mobile browsers ([Firefox](https://www.mozilla.org/en-US/firefox/),
[Chromium](https://www.chromium.org/), and [Safari](https://www.apple.com/safari/)) and server-side runtimes such as
[Node.js](https://nodejs.org/en), [Bun](https://bun.sh/), and [Deno](https://deno.com/).

## Installation
Expand All @@ -25,13 +25,13 @@ Check out the intro documentation [here](https://archipelago.js.org/stable/docum
The full API documentation is located [here](https://thephar.github.io/archipelago.js/). Please be sure to reference it
while you are developing your JavaScript-based clients.

This library supports 100% of the Archipelago network protocol referenced
[here](https://github.com/ArchipelagoMW/Archipelago/blob/main/docs/network%20protocol.md) as of **2026-04-11**
This library supports 100% of the Archipelago network protocol referenced
[here](https://github.com/ArchipelagoMW/Archipelago/blob/main/docs/network%20protocol.md) as of **2026-04-11**
(0.6.7). See more information about [Archipelago](https://archipelago.gg) at their website.

## Contribution

Archipelago.js is built using TypeScript and the Bun bundler. You can set up your development environment by cloning
Archipelago.js is built using TypeScript and the Bun bundler. You can set up your development environment by cloning
this repository to a desired location on your computer and installing its devDependencies.

```bash
Expand All @@ -47,7 +47,7 @@ to follow the code standards of this repository and check your work with `npm ru

### Disclaimer / Call for Help

Currently, there are no automated tests for this library, so all testing in browser, Node, Deno, and Bun are done
Currently, there are no automated tests for this library, so all testing in browser, Node, Deno, and Bun are done
manually. This is certainly one area that can be expanded upon.

Alternatively, expanding upon the documentation (either through the JSDoc or tutorial-like guides) would be appreciated.
Alternatively, expanding upon the documentation (either through the JSDoc or tutorial-like guides) would be appreciated.
15 changes: 0 additions & 15 deletions build.mjs

This file was deleted.

24 changes: 24 additions & 0 deletions build.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import dts from "bun-plugin-dts";

const baseConfig: Bun.BuildConfig = {
entrypoints: ["./src/index.ts"],
outdir: "./dist",
sourcemap: "linked",
};

const main = async () => {
await Bun.build({
...baseConfig,
plugins: [dts()],
});

// Standalone.
await Bun.build({
...baseConfig,
naming: "[dir]/archipelago.min.[ext]",
minify: true,
});
};

// @ts-expect-error -- top-level awaits are fine for build scripts that don't get distributed.
await main();
Loading
Loading