mirror of
https://github.com/the-djmaze/snappymail.git
synced 2025-01-09 00:08:18 +08:00
64 lines
971 B
JavaScript
64 lines
971 B
JavaScript
/**
|
|
* https://tools.ietf.org/html/rfc5463
|
|
*/
|
|
|
|
import {
|
|
GrammarCommand,
|
|
GrammarTest,
|
|
GrammarString,
|
|
GrammarStringList
|
|
} from 'Sieve/Grammar';
|
|
|
|
/**
|
|
* https://datatracker.ietf.org/doc/html/rfc5463#section-4
|
|
*/
|
|
export class IHaveTest extends GrammarTest
|
|
{
|
|
constructor()
|
|
{
|
|
super();
|
|
this.capabilities = new GrammarStringList;
|
|
}
|
|
|
|
get require() { return 'ihave'; }
|
|
|
|
toString()
|
|
{
|
|
return 'ihave ' + this.capabilities;
|
|
}
|
|
|
|
pushArguments(args)
|
|
{
|
|
let l = args.length;
|
|
if (args[l-1] instanceof GrammarString) {
|
|
this.method = args[l-1];
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* https://datatracker.ietf.org/doc/html/rfc5463#section-5
|
|
*/
|
|
export class ErrorCommand extends GrammarCommand
|
|
{
|
|
constructor()
|
|
{
|
|
super();
|
|
this.message = new GrammarString;
|
|
}
|
|
|
|
get require() { return 'ihave'; }
|
|
|
|
toString()
|
|
{
|
|
return 'error ' + this.message + ';';
|
|
}
|
|
|
|
pushArguments(args)
|
|
{
|
|
let l = args.length;
|
|
if (args[l-1] instanceof GrammarString) {
|
|
this.method = args[l-1];
|
|
}
|
|
}
|
|
}
|