Releases: ThePhar/archipelago.js
archipelago.js@2.0.2
archipelago.js@2.0.2 (main)
Some more minor doc improvements and fixes for typing.
Notable Changes
- Increment version to
2.0.2. IntermediateDataOperation.commitshould not require a param now (defaults tofalse).- Removed old getting started guide and set some basic new guides up. Still needs more examples though.
- Example in
Client.loginshould 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
archipelago.js@2.0.1
archipelago.js@2.0.0 (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.normaltoitemsHandlingFlags.none. - Export
clientStatuses,itemClassifications,itemsHandlingFlags,permissions,slotTypesin 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
archipelago.js@2.0.0
archipelago.js@2.0.0 (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
archipelago.js@2.0.0-rc6
archipelago.js@2.0.0-rc6 (main)
Notable Changes and Fixes
- Update version to
2.0.0-rc6. - Fix issue with
Client.scoutnot resolving after fetchingLocationInfopacket. - Change type on
PackageMetadata.reverseItemTableandPackageMetadata.reverseLocationTabletoRecord<number, string>instead ofRecord<string, string>. - Reverse the parameter order of
PlayersManager.findPlayerand make team optional, defaulting to client's team if omitted. - Remove
indexfrom allMessageEventssince it will just beMessageManager.count - 1anyway. - Add a new abstract class called
MessageNodewhich encapsulatesJSONMessagePartand exposes helper methods and other abstracted classes. - Update existing
MessageEventsto returnMessageNode[]instead of rawPrintJSONPacket. - Add a new message event for each supported
PrintJSONpacket type the server can broadcast. - Rename
MessageEvents.receivedMessagetoMessageEvents.messageandMessageEvents.chatMessagetoMessageEvents.chat. - The
MessageEvents.messageevent now fires after all more specificMessageEventshave fired. - Renamed
MessageManager.messagestoMessageManager.logand changed it to return a shallow copy of log instead of direct array to prevent accidental modifications.client.messages.loglooks less silly thanclient.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/archipelago.js@2.0.0-rc6/dist/index.js
archipelago.js@2.0.0-rc5
archipelago.js@1.2.0
archipelago.js@1.2.0 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
devDependenciesfromdependenciesin package.json. @ThePhar #207- Only true dependencies are
ws,uuid, andisomorphic-wsnow.
- Only true dependencies are
- 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.#indexto correct value after receiving items, preventing unnecessary Sync calls. @CodeTriangle #193 - Add
slot_dataconnection argument. @kindasneaki #191 - Updated all dependencies to latest version.
New Contributors
- @CodeTriangle made their first contribution in #193
- @kindasneaki made their first contribution in #191
Full Changelog: 1.1.0...1.2.0
archipelago.js@1.1.0
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. ItemsManagernow contains areceivedandindexproperty.ItemsManager.receivedreturns an array of allNetworkItems that have been sent from the server.ItemsManager.indexreturns the index of the next expected item to be received from the server. Any items with a lower index are stored inItemsManager.received.- Useful for tracking if new items have been received or to check if a de-sync event occurred.
ItemsManagerwill automatically attempt re-sync if it notices an item index higher than what it is expecting.PlayersManagernow contains anallproperty andgetmethod for player lookup.PlayersManager.allreturns an array of all players. Synonymous withDataManager.players.PlayersManager.get(id)returns aPlayerobject orundefinedif no player was found. Synonymous withDataManager.players[id].
Playerobjects returned fromDataManager.players,PlayersManager.all, orPlayersManager.gethave 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.playersnow returns aReadonlyArray<Player>, instead of aReadonlyMap<Player>.- Renamed
HintManagertoHintsManager. - Export all types again.
ItemsManager's andLocationsManager'snamemethods 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
Playerobject. See "What's New?" for details.
- For item/location lookup in the context of a player however, it is recommended to use the new helper functions on the
ItemsManager.nameandLocationsManager.namereturns"Unknown Item: {id}"or"Unknown Location: {id}"instead now.ItemsManager.nameandLocationsManager.namewill throw an error ifplayeris not a safe integer.
What's Removed?
ItemsManager.idandLocationsManager.idhave been removed. If needed, useDataManager.packageto lookup the inverse table.
Full Changelog: 1.0.0...1.1.0
archipelago.js@1.0.2
What's Changed
- Changes to how connection information is passed to
Client.connect. - Changed name of
ArchipelagoClientback toClient. Utilize Vite for bundling instead of Webpack.(reverted in 1.0.1)- More examples in
README.mdand updated documentation. - Changed names of events for
Client.addListenerandClient.removeListener - Turned most interfaces into types.
- Turned all enums into consts.
- Added a
HintManagerclass toClient. Currently only keeps track of own hints. - Changed how
nameandidlookup foritemsandlocationswork 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. Clientwill no longer request entireDataPackagefrom 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, andpermissionsproperties to DataManager for real-time room information. Updates when room updates. - Improved name lookup and added id lookup for
ItemsManagerandLocationsManager, as part of look up changes. - Added group lookup for
ItemsManagerandLocationsManagerto pull all items in a given group name for a game. - Changed type of
ClienttoClient<SlotDataType>for TypeScript users to specify the structure of their slot data in advance for better typing information. - Improved
checkedandmissinglocations array properties inLocationsManagerto actually work. - Added
gamename lookup method for a player id inPlayersManagerfor easy lookup since in all contexts you you need name for id of location or item, you have the player id. - Added
membersmethod inPlayersManagerto 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
versioninDataPackageandGamePackage. Planned to be removed from AP in PR 1933. - Added all the newer
PrintJSONPackettypes and their appropriate args. remainingis now aReducedPermissiontype instead ofPermissionsince it can't have AUTO-type permissions.playersproperty inDataManageris of a type that's a combination ofNetworkPlayerandNetworkSlotto have all information together after connection.- Added WSS support.
- Added
Hinttype. Used byHintManagerclass. - 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
archipelago.js@0.5.2
What's Changed
- Update packages to latest. by @ThePhar in #138
- Update
archipelago.jsto 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
archipelago.js@0.4.1
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.
Full Changelog: 0.4.0...0.4.1