9cb37fbe4f
Actually allow MatrixClient to not have a store. Update jsdoc.
2015-06-18 09:59:02 +01:00
d151ac49f2
Mark events which fail to send.
2015-06-18 09:32:04 +01:00
d74a71cc2d
linting and update README.
2015-06-17 17:47:57 +01:00
8e6eb35dfe
Implement local echo.
...
Mark events being sent via the status property. Update CHANGELOG.
2015-06-17 17:42:12 +01:00
ee4d66024a
Update changelog
2015-06-15 10:20:54 +01:00
f77e8e3bf7
Add User.events.presence property for storing the m.presence event for a user.
2015-06-15 10:20:04 +01:00
94931cdc07
Remove broken function; add RoomMember.events.member property.
2015-06-15 09:49:54 +01:00
c6b11fc382
Make Room.calculateRoomName private to avoid confusion with Room.name.
2015-06-15 09:31:46 +01:00
4316a22913
Bump to 0.1.0 - Generate browser (min) version
v0.1.0
2015-06-12 17:17:39 +01:00
ae9e68d9b2
Add a "what this sdk does" section
2015-06-12 17:12:53 +01:00
9dfb5b72b8
NPM hates RST. Convert README to Markdown.
2015-06-12 16:52:02 +01:00
3dc6bf3647
Update README with example output
2015-06-12 16:33:04 +01:00
7a96637a1b
Example app: Print timestamps and all state events.
2015-06-12 16:26:44 +01:00
7a02c5d167
Add concept of 'sentinel' RoomMembers which watch state at a particular point in time.
...
New sentinels are only created when the RoomMember state changes, so we don't
needlessly deep copy RoomMembers f.e. MatrixEvent. Sentinels co-exist with
RoomState.members which are single instances to which listeners can be attached.
This gets the best of both worlds (don't have to keep re-attaching listeners on
member changes, don't have needless memory consumption).
2015-06-12 15:38:02 +01:00
8a844d59ec
Get historical display names working on messages.
...
Accessed via MatrixEvent.sender property. Deep copy the list of state events
from initial sync for old/current RoomState so updating the .sender property
doesn't affect both of them. Reverse the insertion of initial sync MatrixEvents
so state diverges to *earlier* points in time. Add a 'forwardLooking' property
to MatrixEvent to determine which out of 'content' and 'prev_content' entities
should take into account e.g. when determining display names. Finally, always
create new RoomMembers when they are updated in order to prevent corrupting
(read: sharing the same member object) the MatrixEvent.sender property of
existing events in the timeline.
2015-06-12 14:21:24 +01:00
3061b95afe
Add getPrevContent function and mark it's situational presence.
2015-06-12 11:26:33 +01:00
71dacb14b1
Add MatrixEvent.sender and .target to pull the right name per message.
2015-06-12 11:05:57 +01:00
da7b31cb7e
Add Room.getJoinedMembers helper. UX tweaks to example.
2015-06-12 10:49:13 +01:00
8c5c7cc961
Make examples/node/app an actual app rather than the usage example.
2015-06-12 10:33:45 +01:00
1fed4def69
Merge pull request #8 from matrix-org/event-emitter
...
Event emitter implementation (SYJS-7)
2015-06-11 18:18:54 +01:00
9be3b2757a
Fix formatting.
2015-06-11 17:59:10 +01:00
afee001de7
Add fleshed out example
2015-06-11 17:58:24 +01:00
8aefad221a
Add client.getRooms. Add 'syncComplete' event. Display room invites.
2015-06-11 17:52:52 +01:00
4db752feb3
Add another example
2015-06-11 16:54:02 +01:00
61f107f6f9
Hide the data store from the end-user. Proxy calls to getRoom.
2015-06-11 16:36:30 +01:00
8e45d6b625
Bug fixes on initialSync and RoomMember.userId.
...
Don't assume that .state and .messages exist in /initialSync results.
Use state_key and not user_id when setting the userId of a RoomMember.
2015-06-11 16:29:36 +01:00
13bb1b2ebf
Add some examples
2015-06-11 16:27:51 +01:00
fee15ce50f
Mention v2 alpha
2015-06-11 15:55:09 +01:00
d6cfcfbf6c
Add syntax highlighting; Add conventions section.
...
Add link to gh-pages for hosted API docs (doesn't exist yet)
2015-06-11 15:41:04 +01:00
19a5b99dea
Add RoomMember and RoomState event emissions with UTs. Hook everything up.
...
Distinguish between inserts and updates to the members dictionary to allow
listeners to add more hooks to the member before it has been given state.
2015-06-11 14:29:32 +01:00
911ca1d5c5
Implement Room event emissions with UTs.
...
Shuffle test groupings into EventEmitter and startClient. Add more jsdoc.
2015-06-11 13:22:21 +01:00
4c3e56ad4c
Add test for event emitting. Fix reEmit function.
2015-06-11 11:58:31 +01:00
eaa02cd2ad
Add utils.inherits. Make User inherit EventEmitter.
...
utils.inherits is the Node.js impl but with the addition of a polyfill for
Object.create().
2015-06-11 11:37:43 +01:00
c737068fe7
Don't fire events in the constructor; you can't listen for them.
2015-06-11 11:12:31 +01:00
07f77c495b
Move event jsdoc to respective classes. Document which functions fire.
...
This tends to boil down into a setXEvent method which can fire if it updates
the model.
2015-06-11 10:54:25 +01:00
8a21e05f56
Specify the right key name when replacing index.js for browserify.
2015-06-10 17:48:06 +01:00
58cbd3ab1b
Move RoomMember event jsdocs to the room-member module.
2015-06-10 17:25:34 +01:00
fc2c6f403d
Re-add power-level/typing UTs as RoomMember tests.
2015-06-10 17:19:56 +01:00
5cf29ae1b1
Make RoomMember set its own properties, not RoomState.
...
Also make it clear which methods may fire events off using @fires. This
shifts a lot of RoomState logic to RoomMember.
2015-06-10 17:06:28 +01:00
b2620507fa
Remove startClient(callback); Emit 'syncError' and 'event'.
...
'syncError' event is intended to be used to update the UI to say "connection
lost". Add UTs for 'event' emissions.
2015-06-10 16:19:38 +01:00
583e71180b
Add JSDoc for all the events which the SDK will emit.
2015-06-10 14:42:40 +01:00
d2fcdd4556
Add jsdoc for EventEmitter.
2015-06-10 13:02:32 +01:00
35f269ea52
Make internal MatrixClient methods actually internal.
2015-06-10 11:14:34 +01:00
d64382cd4f
Make MatrixClient inherit from EventEmitter. Add jsdoc to all functions.
2015-06-10 11:01:29 +01:00
f9f8816b7d
Return '?' instead of 'Unknown' for rooms which names cannot be calculated.
...
This makes it easier to localise in the future (if name == '?'), whilst
still indicating an unknown name. Ideally we would be returning null, but
this would require null checks every time the room name was accessed, which
isn't ideal. This also makes the UT for this less brittle (rather than
comparing literal english strings which are prone to breakage when we
inevitably change 'Unknown' to 'unknown' or something else.
2015-06-10 09:44:53 +01:00
44e3b55975
Appease linters.
2015-06-09 17:06:40 +01:00
4ff6ecd58c
Add room name UTs and add self-chat room name.
2015-06-09 17:05:56 +01:00
fd2bd4784d
Fix linters
2015-06-09 16:08:14 +01:00
13462ad1aa
Add more Room and RoomState unit tests.
2015-06-09 16:07:44 +01:00
a0bd25a6d2
Handle power levels and update RoomMember properties.
...
Add unit tests for RoomState.
2015-06-09 15:23:04 +01:00