True if we have started the process of sending an m.key.verification.ready
(but have not necessarily received
the remote echo which causes a transition to VerificationPhase.Ready.
If this request has been cancelled, the cancellation code (e.g m.user
) which is responsible for cancelling
this verification.
The id of the user that cancelled the request.
Only defined when phase is Cancelled
the method picked in the .start event
True if we have started the process of sending an m.key.verification.cancel
(but have not necessarily received
the remote echo which causes a transition to VerificationPhase.Cancelled).
True if this request was initiated by the local client.
For in-room verifications, the initiator is who sent the m.key.verification.request
event.
For to-device verifications, the initiator is who sent the m.key.verification.start
event.
True if the other party in this request is one of this user's own devices.
once the phase is Started (and !initiatedByMe) or Ready: common methods supported by both sides
For verifications via to-device messages: the ID of the other device. Otherwise, undefined.
The user id of the other party in this request
True if the request has sent its initial event and needs more events to complete
(ie it is in phase Requested
, Ready
or Started
).
current phase of the request.
For an in-room verification, the ID of the room.
For to-device verifictions, undefined
.
The remaining number of ms before the request will be automatically cancelled.
null
indicates that there is no timeout
Unique ID for this verification request.
An ID isn't assigned until the first message is sent, so this may be undefined
in the early phases.
Alias for on.
Create a Verifier to do this verification via a particular method.
If a verifier has already been created for this request, returns that verifier.
This does not send the m.key.verification.start
event - to do so, call Verifier.verify on the
returned verifier.
If no previous events have been sent, pass in targetDevice
to set who to direct this request to.
the name of the verification method to use.
Optional
targetDevice: { details of where to send the request to.
Optional
deviceOptional
userThe verifier which will do the actual verification.
Use VerificationRequest#startVerification instead.
Cancels the request, sending a cancellation to the other party
Optional
params: { Details for the cancellation, including reason
(defaults to "User declined"), and code
(defaults to m.user
). Deprecated: this parameter is ignored by the Rust cryptography implementation.
Optional
code?: stringOptional
reason?: stringPromise which resolves when the event has been sent.
Synchronously calls each of the listeners registered for the event named
event
, in the order they were registered, passing the supplied arguments
to each.
The name of the event to emit
Rest
...args: Parameters<VerificationRequestEventHandlerMap[T]>Arguments to pass to the listener
true
if the event had listeners, false
otherwise.
Synchronously calls each of the listeners registered for the event namedeventName
, in the order they were registered, passing the supplied arguments
to each.
Returns true
if the event had listeners, false
otherwise.
import EventEmitter from 'node:events';
const myEmitter = new EventEmitter();
// First listener
myEmitter.on('event', function firstListener() {
console.log('Helloooo! first listener');
});
// Second listener
myEmitter.on('event', function secondListener(arg1, arg2) {
console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
});
// Third listener
myEmitter.on('event', function thirdListener(...args) {
const parameters = args.join(', ');
console.log(`event with parameters ${parameters} in third listener`);
});
console.log(myEmitter.listeners('event'));
myEmitter.emit('event', 1, 2, 3, 4, 5);
// Prints:
// [
// [Function: firstListener],
// [Function: secondListener],
// [Function: thirdListener]
// ]
// Helloooo! first listener
// event with parameters 1, 2 in second listener
// event with parameters 1, 2, 3, 4, 5 in third listener
Rest
...args: Parameters<VerificationRequestEventHandlerMap[T]>Similar to emit
but calls all listeners within a Promise.all
and returns the promise chain
The name of the event to emit
Rest
...args: Parameters<VerificationRequestEventHandlerMap[T]>Arguments to pass to the listener
true
if the event had listeners, false
otherwise.
Rest
...args: Parameters<VerificationRequestEventHandlerMap[T]>Generate the data for a QR code allowing the other device to verify this one, if it supports it.
Only returns data once phase
is VerificationPhase.Ready and the other party can scan a QR code;
otherwise returns undefined
.
Get the data for a QR code allowing the other device to verify this one, if it supports it.
Only set after a .ready if the other party can scan a QR code, otherwise undefined.
Not supported in Rust Crypto. Use VerificationRequest#generateQRCode instead.
Returns the number of listeners listening to the event named event
.
The name of the event being listened for
Returns a copy of the array of listeners for the event named event
.
Alias for removeListener
Adds the listener
function to the end of the listeners array for the
event named event
.
No checks are made to see if the listener
has already been added. Multiple calls
passing the same combination of event
and listener
will result in the listener
being added, and called, multiple times.
By default, event listeners are invoked in the order they are added. The prependListener method can be used as an alternative to add the event listener to the beginning of the listeners array.
The name of the event.
The callback function
a reference to the EventEmitter
, so that calls can be chained.
Adds a one-time listener
function for the event named event
. The
next time event
is triggered, this listener is removed and then invoked.
Returns a reference to the EventEmitter
, so that calls can be chained.
By default, event listeners are invoked in the order they are added. The prependOnceListener method can be used as an alternative to add the event listener to the beginning of the listeners array.
The name of the event.
The callback function
a reference to the EventEmitter
, so that calls can be chained.
Checks whether the other party supports a given verification method.
This is useful when setting up the QR code UI, as it is somewhat asymmetrical:
if the other party supports SCAN_QR, we should show a QR code in the UI, and vice versa.
For methods that need to be supported by both ends, use the methods
property.
the method to check
true if the other party said they supported the method
Adds the listener
function to the beginning of the listeners array for the
event named event
.
No checks are made to see if the listener
has already been added. Multiple calls
passing the same combination of event
and listener
will result in the listener
being added, and called, multiple times.
The name of the event.
The callback function
a reference to the EventEmitter
, so that calls can be chained.
Adds a one-timelistener
function for the event named event
to the beginning of the listeners array.
The next time event
is triggered, this listener is removed, and then invoked.
The name of the event.
The callback function
a reference to the EventEmitter
, so that calls can be chained.
Returns a copy of the array of listeners for the event named eventName
,
including any wrappers (such as those created by .once()
).
Removes all listeners, or those of the specified event
.
It is bad practice to remove listeners added elsewhere in the code,
particularly when the EventEmitter
instance was created by some other
component or module (e.g. sockets or file streams).
Optional
event: EventEmitterEvents | ChangeThe name of the event. If undefined, all listeners everywhere are removed.
a reference to the EventEmitter
, so that calls can be chained.
Removes the specified listener
from the listener array for the event named event
.
a reference to the EventEmitter
, so that calls can be chained.
Start a QR code verification by providing a scanned QR code for this verification flow.
Validates the QR code, and if it is ok, sends an m.key.verification.start
event with method
set to
m.reciprocate.v1
, to tell the other side the scan was successful.
See also VerificationRequest#startVerification which can be used to start other verification methods.
the decoded QR code.
A verifier; call .verify()
on it to wait for the other side to complete the verification flow.
Send an m.key.verification.start
event to start verification via a particular method.
This is normally used when starting a verification via emojis (ie, method
is set to m.sas.v1
).
the name of the verification method to use.
The verifier which will do the actual verification.
An incoming, or outgoing, request to verify a user or a device via cross-signing.