Skip to content

Releases: ThePhar/archipelago.js

[email protected]

15 Nov 14:27
acda7bf
Compare
Choose a tag to compare

[email protected] (main)

Some more minor doc improvements and fixes for typing.

Notable Changes

  • Increment version to 2.0.2.
  • IntermediateDataOperation.commit should not require a param now (defaults to false).
  • Removed old getting started guide and set some basic new guides up. Still needs more examples though.
  • Example in Client.login should be correct now.

Full Changelog: 2.0.1...2.0.2

Links

API Documentation: https://archipelago.js.org
NPM: https://www.npmjs.com/package/archipelago.js

[email protected]

10 Nov 09:46
9a8db87
Compare
Choose a tag to compare

[email protected] (main)

Minor improvements to documentation and fixes some missed exports.

Notable Changes from 2.0.0

  • Increment version to 2.0.1
  • Make some minor adjustments to JSDoc/API documentation.
  • Rename itemsHandlingFlags.normal to itemsHandlingFlags.none.
  • Export clientStatuses, itemClassifications, itemsHandlingFlags, permissions, slotTypes in root module in addition to API namespace.
  • Export AP.js Error-derived types.

Full Changelog: 2.0.0...2.0.1

Links

API Documentation: https://archipelago.js.org
NPM: https://www.npmjs.com/package/archipelago.js

[email protected]

08 Nov 15:41
fae640e
Compare
Choose a tag to compare

[email protected] (main)

Here it is! The official release of archipelago.js version 2.0! I hope it was worth the wait.

Notable Changes from 2.0.0-rc6

  • Fix some minor typing issues in DataPackageManager.
  • Improve documentation.
  • Set DeathLink event to fire on any incoming DeathLink (except from ones this client sends).

Full Changelog: 1.1.0...2.0.0

Links

API Documentation: https://archipelago.js.org
NPM: https://www.npmjs.com/package/archipelago.js

[email protected]

06 Nov 03:27
97efc21
Compare
Choose a tag to compare
[email protected] Pre-release
Pre-release

[email protected] (main)

Notable Changes and Fixes

  • Update version to 2.0.0-rc6.
  • Fix issue with Client.scout not resolving after fetching LocationInfo packet.
  • Change type on PackageMetadata.reverseItemTable and PackageMetadata.reverseLocationTable to Record<number, string> instead of Record<string, string>.
  • Reverse the parameter order of PlayersManager.findPlayer and make team optional, defaulting to client's team if omitted.
  • Remove index from all MessageEvents since it will just be MessageManager.count - 1 anyway.
  • Add a new abstract class called MessageNode which encapsulates JSONMessagePart and exposes helper methods and other abstracted classes.
  • Update existing MessageEvents to return MessageNode[] instead of raw PrintJSONPacket.
  • Add a new message event for each supported PrintJSON packet type the server can broadcast.
  • Rename MessageEvents.receivedMessage to MessageEvents.message and MessageEvents.chatMessage to MessageEvents.chat.
  • The MessageEvents.message event now fires after all more specific MessageEvents have fired.
  • Renamed MessageManager.messages to MessageManager.log and changed it to return a shallow copy of log instead of direct array to prevent accidental modifications.
    • client.messages.log looks less silly than client.messages.messages.
  • Update documentation with changes made.

Full Changelog: 2.0.0-rc5...2.0.0-rc6

Links

API Documentation: https://archipelago.js.org/v2.0/
API Documentation (Mirror): http://darkshare.site.nfoservers.com/archipelago.js/v2.0/
GitHub Release: https://github.com/ThePhar/archipelago.js/releases/tag/2.0.0-rc6
npm: npm install archipelago.js@latest
unpkg: https://unpkg.com/[email protected]/dist/index.js

[email protected]

05 Nov 01:48
5b08c3e
Compare
Choose a tag to compare
[email protected] Pre-release
Pre-release

What's Changed

Full Changelog: 1.1.0...2.0.0-rc5

[email protected]

04 Nov 15:21
21370f4
Compare
Choose a tag to compare

[email protected] Changelog

In anticipation of the release of version 2.0.0 of this library, I have updated the v1 legacy branch, fixing most of the known issues at the time. Sorry it took so long to merge the open PRs and resolve the open issues, but hopefully this helps the folks still requiring use of the v1 library.

If any new bugs are found, I will commit to fixing them, but any new feature requests will likely be moved to the v2 branch.

Changes

  • Updated version to 1.2.0.
  • Overhaul build system to match v2 by utilizing bun and bun-dts for building and bundling types, instead of webpack. @ThePhar #207
  • Removed erroneously added devDependencies from dependencies in package.json. @ThePhar #207
    • Only true dependencies are ws, uuid, and isomorphic-ws now.
  • Add debug logging of versions to AP data storage for debugging purposes (similar to v2). @ThePhar #207
  • Fix issue with client reporting connection as still "alive", after disconnecting. @CodeTriangle #194
  • Fix ItemManager.#index to correct value after receiving items, preventing unnecessary Sync calls. @CodeTriangle #193
  • Add slot_data connection argument. @kindasneaki #191
  • Updated all dependencies to latest version.

New Contributors

Full Changelog: 1.1.0...1.2.0

[email protected]

09 Jul 18:03
f2a4b2e
Compare
Choose a tag to compare

Archipelago.js 1.1.0 - Changelog

Made some quality of life improvements for using this library when it comes to item and location lookup. Also more functionality for PlayersManager and ItemsManager.

What's New?

  • Updated version number to 1.1.0.
  • ItemsManager now contains a received and index property.
    • ItemsManager.received returns an array of all NetworkItems that have been sent from the server.
    • ItemsManager.index returns the index of the next expected item to be received from the server. Any items with a lower index are stored in ItemsManager.received.
      • Useful for tracking if new items have been received or to check if a de-sync event occurred.
  • ItemsManager will automatically attempt re-sync if it notices an item index higher than what it is expecting.
  • PlayersManager now contains an all property and get method for player lookup.
    • PlayersManager.all returns an array of all players. Synonymous with DataManager.players.
    • PlayersManager.get(id) returns a Player object or undefined if no player was found. Synonymous with DataManager.players[id].
  • Player objects returned from DataManager.players, PlayersManager.all, or PlayersManager.get have two helper functions for looking up item and location names.
    • Player.item(id) returns the name of an item that belongs to this player's game.
    • Player.location(id) returns the name of a location that belongs to this player's game.

What's Changed?

  • DataManager.players now returns a ReadonlyArray<Player>, instead of a ReadonlyMap<Player>.
  • Renamed HintManager to HintsManager.
  • Export all types again.
  • ItemsManager's and LocationsManager's name methods can now request either a game name or player id to lookup an item or location name.
    • For item/location lookup in the context of a player however, it is recommended to use the new helper functions on the Player object. See "What's New?" for details.
  • ItemsManager.name and LocationsManager.name returns "Unknown Item: {id}" or "Unknown Location: {id}" instead now.
  • ItemsManager.name and LocationsManager.name will throw an error if player is not a safe integer.

What's Removed?

  • ItemsManager.id and LocationsManager.id have been removed. If needed, use DataManager.package to lookup the inverse table.

Full Changelog: 1.0.0...1.1.0

[email protected]

08 Jul 15:20
5c1ed76
Compare
Choose a tag to compare

What's Changed

  • Changes to how connection information is passed to Client.connect.
  • Changed name of ArchipelagoClient back to Client.
  • Utilize Vite for bundling instead of Webpack. (reverted in 1.0.1)
  • More examples in README.md and updated documentation.
  • Changed names of events for Client.addListener and Client.removeListener
  • Turned most interfaces into types.
  • Turned all enums into consts.
  • Added a HintManager class to Client. Currently only keeps track of own hints.
  • Changed how name and id lookup for items and locations work in preparation for ArchipelagoMW/Archipelago's PR 1933. Lookups require game name as well. This will eventually allow each world to use any id without worry of id collisions.
  • Added a helper class for doing complex set operations in DataManager.
  • Client will no longer request entire DataPackage from Archipelago server. Only for games that exist in room.
  • Add item group and location group names to DataPackage and add checksum support. Still no caching is built in, but is prepared for a future update.
  • Added hintPoints, hintCost, slotData, slot, team, seed, and permissions properties to DataManager for real-time room information. Updates when room updates.
  • Improved name lookup and added id lookup for ItemsManager and LocationsManager, as part of look up changes.
  • Added group lookup for ItemsManager and LocationsManager to pull all items in a given group name for a game.
  • Changed type of Client to Client<SlotDataType> for TypeScript users to specify the structure of their slot data in advance for better typing information.
  • Improved checked and missing locations array properties in LocationsManager to actually work.
  • Added game name lookup method for a player id in PlayersManager for easy lookup since in all contexts you you need name for id of location or item, you have the player id.
  • Added members method in PlayersManager to look up all players in a given Item Link group. Returns empty list if not an item link group.
  • Removed a lot of redundant code.
  • Improved type hinting and inference.
  • Removed all mentions of version in DataPackage and GamePackage. Planned to be removed from AP in PR 1933.
  • Added all the newer PrintJSONPacket types and their appropriate args.
  • remaining is now a ReducedPermission type instead of Permission since it can't have AUTO-type permissions.
  • players property in DataManager is of a type that's a combination of NetworkPlayer and NetworkSlot to have all information together after connection.
  • Added WSS support.
  • Added Hint type. Used by HintManager class.
  • Adjusted build settings.
  • And probably a bunch of bug fixes that I forgot about.

This is a very breaking API change, but hoping to keep it stable for the most part for a while now. If you notice any issues, please reach out to me here or in Discord (thephar).

Thanks!

Full Changelog: 0.5.2...1.0.0

[email protected]

10 Apr 05:37
d7941c3
Compare
Choose a tag to compare

What's Changed

  • Update packages to latest. by @ThePhar in #138
  • Update archipelago.js to Archipelago API v0.4.0 by @ThePhar in #139
  • Add a helper for PrintJSON and remove print event handlers. by @ThePhar in #140
  • Add wss support by @ThePhar in #141
  • Fix const enum issues and restore class: "Version" in NetworkVersion. by @ThePhar in #142
  • Actually fix the missing_locations bug this time. by @ThePhar in #143

Full Changelog: 0.4.1...0.5.2

[email protected]

17 Jun 20:11
e38d13d
Compare
Choose a tag to compare

0.4.1 - What's Changed

Made some adjustments to the build to allow the library to be used in the browser. See below. No API changes were made.

  • Made adjustments to allow library to run in browser without Node. by @ThePhar in #15

Full Changelog: 0.4.0...0.4.1