ImmersClient.login
was failing to send clientId, causing full immers to be treated like destinations with limited permissions
- Added
destination-image
anddestination-description
attributes for<immers-hud>
to improve destination metadata - Improved default values for
<immers-hud>
attributes, including pulling destination description and image fromog
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
<immers-hud>
now works when usinglocal-immer
- 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
- Added
bio
andavatarObject
toProfile
- Added
inbox
andoutbox
toProfile.collections
- Added
destination
toFriendStatus
URLFromProperty
can also findhref
prop if given aLink
objectActivities.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
- 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
notavatarGltf
- Type Error when loading client on destination-only sites
- 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
ImmersClient.blockUser
for adding to user's block listImmersClient.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 incorrect error message when an activity fails to post to outbox
ImmersClient.friendsList
sort updated to list online friends firstImmersClient.enter
now takes an optional destination argument that will update the current location before going online
- 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
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 - includestatus
enum (friend-online, friend-offline, request-receved, request-sent, none) and userprofile
- 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
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
- New
Activities.postMedia
- upload and share media files via ActivityPub Media Upload* - New
Activities.model
- upload a 3D model withpostMedia
* - 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.
- 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
- Ensure that the correct Leave activity is posted on disconnect after using
ImmersClient.move
orImmersClient.exit
- Fix missing return value in deprecated
ImmersClient.connect
method
- 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 attemptedresolveProfileIRI
- Lookup a user's profile ID / resource URL from their immers handle using webfingergetProfile
- 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 tocorsProxyFetch
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
- 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