Releases: ThePhar/archipelago.js
[email protected]
[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 tofalse
).- 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]
[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
toitemsHandlingFlags.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]
[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]
[email protected] (main
)
Notable Changes and Fixes
- Update version to
2.0.0-rc6
. - Fix issue with
Client.scout
not resolving after fetchingLocationInfo
packet. - Change type on
PackageMetadata.reverseItemTable
andPackageMetadata.reverseLocationTable
toRecord<number, string>
instead ofRecord<string, string>
. - Reverse the parameter order of
PlayersManager.findPlayer
and make team optional, defaulting to client's team if omitted. - Remove
index
from allMessageEvents
since it will just beMessageManager.count - 1
anyway. - Add a new abstract class called
MessageNode
which encapsulatesJSONMessagePart
and exposes helper methods and other abstracted classes. - Update existing
MessageEvents
to returnMessageNode[]
instead of rawPrintJSONPacket
. - Add a new message event for each supported
PrintJSON
packet type the server can broadcast. - Rename
MessageEvents.receivedMessage
toMessageEvents.message
andMessageEvents.chatMessage
toMessageEvents.chat
. - The
MessageEvents.message
event now fires after all more specificMessageEvents
have fired. - Renamed
MessageManager.messages
toMessageManager.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 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/[email protected]/dist/index.js
[email protected]
What's Changed
- Initial [email protected] release candidate release! by @ThePhar in #204
- Update a few dependencies and fix a few bugs by @ThePhar in #206
- [email protected] changes by @ThePhar in #209
Full Changelog: 1.1.0...2.0.0-rc5
[email protected]
[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
fromdependencies
in package.json. @ThePhar #207- Only true dependencies are
ws
,uuid
, andisomorphic-ws
now.
- 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.#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
- @CodeTriangle made their first contribution in #193
- @kindasneaki made their first contribution in #191
Full Changelog: 1.1.0...1.2.0
[email protected]
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 areceived
andindex
property.ItemsManager.received
returns an array of allNetworkItem
s 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 inItemsManager.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 anall
property andget
method for player lookup.PlayersManager.all
returns an array of all players. Synonymous withDataManager.players
.PlayersManager.get(id)
returns aPlayer
object orundefined
if no player was found. Synonymous withDataManager.players[id]
.
Player
objects returned fromDataManager.players
,PlayersManager.all
, orPlayersManager.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 aReadonlyArray<Player>
, instead of aReadonlyMap<Player>
.- Renamed
HintManager
toHintsManager
. - Export all types again.
ItemsManager
's andLocationsManager
'sname
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.
- For item/location lookup in the context of a player however, it is recommended to use the new helper functions on the
ItemsManager.name
andLocationsManager.name
returns"Unknown Item: {id}"
or"Unknown Location: {id}"
instead now.ItemsManager.name
andLocationsManager.name
will throw an error ifplayer
is not a safe integer.
What's Removed?
ItemsManager.id
andLocationsManager.id
have been removed. If needed, useDataManager.package
to lookup the inverse table.
Full Changelog: 1.0.0...1.1.0
[email protected]
What's Changed
- Changes to how connection information is passed to
Client.connect
. - Changed name of
ArchipelagoClient
back toClient
. 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
andClient.removeListener
- Turned most interfaces into types.
- Turned all enums into consts.
- Added a
HintManager
class toClient
. Currently only keeps track of own hints. - Changed how
name
andid
lookup foritems
andlocations
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 entireDataPackage
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
, andpermissions
properties to DataManager for real-time room information. Updates when room updates. - Improved name lookup and added id lookup for
ItemsManager
andLocationsManager
, as part of look up changes. - Added group lookup for
ItemsManager
andLocationsManager
to pull all items in a given group name for a game. - Changed type of
Client
toClient<SlotDataType>
for TypeScript users to specify the structure of their slot data in advance for better typing information. - Improved
checked
andmissing
locations array properties inLocationsManager
to actually work. - Added
game
name lookup method for a player id inPlayersManager
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 inPlayersManager
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
inDataPackage
andGamePackage
. Planned to be removed from AP in PR 1933. - Added all the newer
PrintJSONPacket
types and their appropriate args. remaining
is now aReducedPermission
type instead ofPermission
since it can't have AUTO-type permissions.players
property inDataManager
is of a type that's a combination ofNetworkPlayer
andNetworkSlot
to have all information together after connection.- Added WSS support.
- Added
Hint
type. Used byHintManager
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]
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]
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