Skip to content

Latest commit

 

History

History
259 lines (165 loc) · 10.9 KB

CHANGELOG.md

File metadata and controls

259 lines (165 loc) · 10.9 KB

v2.17.0 (2024-02-08)

Changed

  • catchToken will now return the token and associated data if it does not detect an opener window to pass the data to
  • ImmersClient.loginWithToken now also accepts sessionInfo parameter to be fully equivalent with regular login

v2.16.0 (2023-03-29)

Added

  • ImmersClient.logout gains optional alsoLogoutFromImmer argument to fully terminate login sessions for users from the local immer

Security

  • Update jsdoc, better-docs and other deps to resolve npm audits

v2.15.0 (2023-03-10)

Added

  • New CSS custom properties for immers hud, --main-margin, --inner-margin, --handle-input-width
  • Additional props on Messages: destination and _originalActivity
  • ImmersClient.sendModel high-level function for uploading and optionally sharing 3d models

Fixed

  • <immers-hud> no longer overflows screen width on mobile displays
  • Wrong property name in Message typedoc, media urls are in the url property not mediaUrl

V2.14.0 (2022-12-20)

Added

  • immersClient.sessionInfo object will store any additional parameters returned with the authorization token, for new local users this will include login provider and, depending on immers server config, may contain email address (immers server >=v4.2.0)

Fixed

  • Promise returned by immersClient.login will now reject if user denies authorization rather than hanging
  • Fix error when calling immersClient.logout or immersClient.disconnect if the user is not currently logged in
  • one-liner now respects role query param as documented
  • Fix Activities.add to allow specifying a collection just by name instead of full IRI

v2.13.2 (2022-12-01)

Fixed

  • Improper profile icon format prevented useAvatar profile icon changes from appearing in Mastodon

v2.13.1 (2022-10-27)

Fixed

  • Fix incorrect type for Activities.getObject's return value

v2.13.0 (2022-10-26)

Added

  • Activities.delete - new low-level api to delete activities
  • ImmersClient.deleteMessage - new high-level api to delete Messages from user's Outbox

Changed

  • Documented Activities.getObject low-level api method.
  • Activities.undo - method can now take an activity IRI

v2.12.0 (2022-10-24)

Added

  • ImmersClient.login gains an optional registration argument to redirect users directly to the registration tab when opening the login popup.
  • new ImmersClient.authorizedScopes getter to access the scopes authorized for the current login session

Changed

  • The OAuth popup size is now 800x800 to avoid mobile syling and is positioned to appear slightly outside the opening window's border in order to avoid BITB attacks

v2.11.0 (2022-10-20)

Added

  • Immersclient.navigateToImmersLink - navigate to a given URL while passing along the user's handle so they don't have to re-enter it at the next destination
  • ImmersClient.handleImmersLinkClick - onClick handler to make navigating between immers easier by passing along the user's handle

v2.10.0 (2022-10-05)

Added

  • ImmersClient.removeAvatar - new high-level api to remove models from user's Avatar collection
  • Activities.remove - new low-level api to remove activities

Fixed

  • Activities.add - fixed target URL logic

v2.9.0 (2022-10-05)

Added

  • ImmersClient.sendImage and ImmersClient.sendVideo - new high level apis to upload and share media

Changed

  • Activities.image and Activities.video now accept Blob/File and upload them with postMedia in addition to urls

v2.8.2 (2022-09-28)

Fixed

  • ImmersClient.login was failing to send clientId, causing full immers to be treated like destinations with limited permissions

v2.8.1 (2022-09-21)

Changed

  • Added destination-image and destination-description attributes for <immers-hud> to improve destination metadata
  • Improved default values for <immers-hud> attributes, including pulling destination description and image from og meta tags, if available
  • Filled out and documented the formerly non-functional Activities.create low-level api method. Useful if your application implements custom object types

Fixed

  • <immers-hud> now works when using local-immer

v2.8.0 (2022-08-26)

Added

  • New event immers-client-profile-update fires whenever logged-in user's profile has changed
  • New method immersClient.waitUntilConnected, utility to simplify timing checks when a logged-in user is required (contributed by @wswoodruff)
  • New static method ImmersClient.DestinationFromPlace to transform ActivityPub Place to Destination type

Changed

  • Added bio and avatarObject to Profile
  • Added inbox and outbox to Profile.collections
  • Added destination to FriendStatus
  • URLFromProperty can also find href prop if given a Link object
  • Activities.getObject can accept URL object in addition to string
  • Destination urls ending with an empty fragment will have the trailing # dropped to more accutately aggregate Destinations history

Fixed

  • Restore summary messages in arrive/leave activities
  • Fix local immer place object not updating
  • Fix error in Profile type, url for avatar 3d Model is in prop avatarModel not avatarGltf

v2.7.1 (2022-08-04)

Fixed

  • Type Error when loading client on destination-only sites

v2.7.0 (2022-08-04)

Changed

  • Improved destination metadata
    • Separate identity for a specific page/room from the identity of the experience/application
    • Support optional previewImage and description props on Destinations
    • destination.context links it to its immer (i.e. /o/immer Place object)
    • Standardize destination link formats in status updates and include immer name
  • Improved type linking in docs and type inference in IDEs for low-level types in Activities

v2.6.0 (2022-06-24)

Added

  • ImmersClient.blockUser for adding to user's block list
  • ImmersClient.unblockUser for removing from user's block list*
  • New event 'immers-client-blocked-update' when a user's block list has changed*
  • ImmersClient.blockList to fetch user's current block list

* requires Immers Server version 3.1.0

Fixed

  • Fixed incorrect error message when an activity fails to post to outbox

v2.5.0 (2022-05-11)

Changed

  • ImmersClient.friendsList sort updated to list online friends first
  • ImmersClient.enter now takes an optional destination argument that will update the current location before going online

Fixed

  • Fix memory leak in oauth popup that could cause page to crash if left open
  • OAuth client ID was incorrect when using with local immer
  • FriendStatus.isOnline is now true when friend is online

v2.4.0 (2022-04-23)

Friend management

New high-level apis to add & remove friends

  • New ImmersClient.addFriend - Send a friend request or accept one in order to create a relationship and start sharing location
  • New ImmersClient.removeFriend - Cancel a previous relationship or request
  • Updated ImmersClient.friendsList - exclude ex-friends
  • Updated FriendStatus structure - include status enum (friend-online, friend-offline, request-receved, request-sent, none) and user profile
  • Updated ImmersClient event 'immers-client-friends-update' - also fires when an outgoing activity (e.g. friend request/accept) causes the statuses to update*
  • Fixed destination object for local immer not fetched correctly

Avatar utilities

New high-level apis for creating, saving, sharing, and using avatars.

  • New ImmersClient.createAvatar - uploads a 3D avatar and thumbnail and Creates a Model object for it*
  • New ImmersClient.addAvatar - add an avatar to a user's portable avatar collection
  • new ImmersClient.useAvatar - change a users current avatar
  • Updated ImmersClient.Profile structure - include listing of user collections

Low-level apis

  • New Activities.postMedia - upload and share media files via ActivityPub Media Upload*
  • New Activities.model - upload a 3D model with postMedia*
  • New Activities.undo - revert a past activity, such as a Follow or Accept
  • Updated Activities.add - clarify inputs and allow creation of new collections
  • New ImmersSocket event 'immers-socket-outbox-update' - when th current user has posted something new, either from current client or another*
  • Fixed the auto leave-on-disconnect activity to have the same summary format as ImmersClient.exit activity

* requires user's home Immers server version (TBD sorry this feature is still in development), otherwise error 'Missing/invalid upload media endpoint' will be thrown.

v2.3.0

  • New method ImmersClient.loginWithToken - allow login without user interaction if credentials acquired through another means (for controlled accounts feature coming soon in immers server)
  • When a local immer is available, ImmersClient.activities will now be available immediately upon contstruction to allow interactions with local immer that don't require authentication (e.g. Activities.getObject for local, public objects). ImmersClient.activities will be replaced with a new instance connected to the user's account upon login
  • Be more flexible with how immer domains are specified - accepts domain (host) or origin and transforms as needed
  • Fix issue with enter/move location updates not using most recent Destination

v2.2.2

  • Ensure that the correct Leave activity is posted on disconnect after using ImmersClient.move or ImmersClient.exit

v2.2.1

  • Fix missing return value in deprecated ImmersClient.connect method

v2.2.0

  • New lookup and fetch utilities in ImmersClient
    • corsProxyFetch - fetch wrapper to help with cross-origin resources. If using a local immer, its proxy service will be used. If no local immer but user is logged in, their home immer proxy service will be used. If neither is available, a normal fetch is attempted
    • resolveProfileIRI - Lookup a user's profile ID / resource URL from their immers handle using webfinger
    • getProfile - Resolve an immers handle to a Profile object. If user is logged in, will use their homer immer's ActivityPub standard proxy-and-cache service. If not, fallback to corsProxyFetch
    • getNodeInfo - Discover features and compatibility info about a user's home immer via nodeinfo

Note that proxy services will only succeed with immers servers versions >=2.1.0

v2.1.0

  • Fix script query params not working with one-liner
  • Deprecated connect & reconnect methods that combined login and presence
  • New login/restoreSession methods to connect to immers account
  • New enter/exit methods to update presence status to online at your immer or offline
  • New move method to change the current online location
  • New type: Message
  • New ImmersClient event: immers-client-new-message when a message is received in inbox while connected
  • New method feed to fetch past inbox & outbox activity
  • All message content is now purified with DOMPurify
  • New method sendChatMessage to publish a text/HTML content post