mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-05-30 01:04:49 -05:00
Update LKG
This commit is contained in:
408
lib/typescript.d.ts
vendored
408
lib/typescript.d.ts
vendored
@@ -14,11 +14,36 @@ and limitations under the License.
|
||||
***************************************************************************** */
|
||||
|
||||
declare namespace ts {
|
||||
/**
|
||||
* Type of objects whose values are all of the same type.
|
||||
* The `in` and `for-in` operators can *not* be safely used,
|
||||
* since `Object.prototype` may be modified by outside code.
|
||||
*/
|
||||
interface MapLike<T> {
|
||||
[index: string]: T;
|
||||
}
|
||||
interface Map<T> extends MapLike<T> {
|
||||
__mapBrand: any;
|
||||
/** ES6 Map interface. */
|
||||
interface Map<T> {
|
||||
get(key: string): T;
|
||||
has(key: string): boolean;
|
||||
set(key: string, value: T): this;
|
||||
delete(key: string): boolean;
|
||||
clear(): void;
|
||||
forEach(action: (value: T, key: string) => void): void;
|
||||
readonly size: number;
|
||||
keys(): Iterator<string>;
|
||||
values(): Iterator<T>;
|
||||
entries(): Iterator<[string, T]>;
|
||||
}
|
||||
/** ES6 Iterator type. */
|
||||
interface Iterator<T> {
|
||||
next(): {
|
||||
value: T;
|
||||
done: false;
|
||||
} | {
|
||||
value: never;
|
||||
done: true;
|
||||
};
|
||||
}
|
||||
type Path = string & {
|
||||
__pathBrand: any;
|
||||
@@ -170,172 +195,173 @@ declare namespace ts {
|
||||
ReadonlyKeyword = 130,
|
||||
RequireKeyword = 131,
|
||||
NumberKeyword = 132,
|
||||
SetKeyword = 133,
|
||||
StringKeyword = 134,
|
||||
SymbolKeyword = 135,
|
||||
TypeKeyword = 136,
|
||||
UndefinedKeyword = 137,
|
||||
FromKeyword = 138,
|
||||
GlobalKeyword = 139,
|
||||
OfKeyword = 140,
|
||||
QualifiedName = 141,
|
||||
ComputedPropertyName = 142,
|
||||
TypeParameter = 143,
|
||||
Parameter = 144,
|
||||
Decorator = 145,
|
||||
PropertySignature = 146,
|
||||
PropertyDeclaration = 147,
|
||||
MethodSignature = 148,
|
||||
MethodDeclaration = 149,
|
||||
Constructor = 150,
|
||||
GetAccessor = 151,
|
||||
SetAccessor = 152,
|
||||
CallSignature = 153,
|
||||
ConstructSignature = 154,
|
||||
IndexSignature = 155,
|
||||
TypePredicate = 156,
|
||||
TypeReference = 157,
|
||||
FunctionType = 158,
|
||||
ConstructorType = 159,
|
||||
TypeQuery = 160,
|
||||
TypeLiteral = 161,
|
||||
ArrayType = 162,
|
||||
TupleType = 163,
|
||||
UnionType = 164,
|
||||
IntersectionType = 165,
|
||||
ParenthesizedType = 166,
|
||||
ThisType = 167,
|
||||
TypeOperator = 168,
|
||||
IndexedAccessType = 169,
|
||||
MappedType = 170,
|
||||
LiteralType = 171,
|
||||
ObjectBindingPattern = 172,
|
||||
ArrayBindingPattern = 173,
|
||||
BindingElement = 174,
|
||||
ArrayLiteralExpression = 175,
|
||||
ObjectLiteralExpression = 176,
|
||||
PropertyAccessExpression = 177,
|
||||
ElementAccessExpression = 178,
|
||||
CallExpression = 179,
|
||||
NewExpression = 180,
|
||||
TaggedTemplateExpression = 181,
|
||||
TypeAssertionExpression = 182,
|
||||
ParenthesizedExpression = 183,
|
||||
FunctionExpression = 184,
|
||||
ArrowFunction = 185,
|
||||
DeleteExpression = 186,
|
||||
TypeOfExpression = 187,
|
||||
VoidExpression = 188,
|
||||
AwaitExpression = 189,
|
||||
PrefixUnaryExpression = 190,
|
||||
PostfixUnaryExpression = 191,
|
||||
BinaryExpression = 192,
|
||||
ConditionalExpression = 193,
|
||||
TemplateExpression = 194,
|
||||
YieldExpression = 195,
|
||||
SpreadElement = 196,
|
||||
ClassExpression = 197,
|
||||
OmittedExpression = 198,
|
||||
ExpressionWithTypeArguments = 199,
|
||||
AsExpression = 200,
|
||||
NonNullExpression = 201,
|
||||
MetaProperty = 202,
|
||||
TemplateSpan = 203,
|
||||
SemicolonClassElement = 204,
|
||||
Block = 205,
|
||||
VariableStatement = 206,
|
||||
EmptyStatement = 207,
|
||||
ExpressionStatement = 208,
|
||||
IfStatement = 209,
|
||||
DoStatement = 210,
|
||||
WhileStatement = 211,
|
||||
ForStatement = 212,
|
||||
ForInStatement = 213,
|
||||
ForOfStatement = 214,
|
||||
ContinueStatement = 215,
|
||||
BreakStatement = 216,
|
||||
ReturnStatement = 217,
|
||||
WithStatement = 218,
|
||||
SwitchStatement = 219,
|
||||
LabeledStatement = 220,
|
||||
ThrowStatement = 221,
|
||||
TryStatement = 222,
|
||||
DebuggerStatement = 223,
|
||||
VariableDeclaration = 224,
|
||||
VariableDeclarationList = 225,
|
||||
FunctionDeclaration = 226,
|
||||
ClassDeclaration = 227,
|
||||
InterfaceDeclaration = 228,
|
||||
TypeAliasDeclaration = 229,
|
||||
EnumDeclaration = 230,
|
||||
ModuleDeclaration = 231,
|
||||
ModuleBlock = 232,
|
||||
CaseBlock = 233,
|
||||
NamespaceExportDeclaration = 234,
|
||||
ImportEqualsDeclaration = 235,
|
||||
ImportDeclaration = 236,
|
||||
ImportClause = 237,
|
||||
NamespaceImport = 238,
|
||||
NamedImports = 239,
|
||||
ImportSpecifier = 240,
|
||||
ExportAssignment = 241,
|
||||
ExportDeclaration = 242,
|
||||
NamedExports = 243,
|
||||
ExportSpecifier = 244,
|
||||
MissingDeclaration = 245,
|
||||
ExternalModuleReference = 246,
|
||||
JsxElement = 247,
|
||||
JsxSelfClosingElement = 248,
|
||||
JsxOpeningElement = 249,
|
||||
JsxClosingElement = 250,
|
||||
JsxAttribute = 251,
|
||||
JsxSpreadAttribute = 252,
|
||||
JsxExpression = 253,
|
||||
CaseClause = 254,
|
||||
DefaultClause = 255,
|
||||
HeritageClause = 256,
|
||||
CatchClause = 257,
|
||||
PropertyAssignment = 258,
|
||||
ShorthandPropertyAssignment = 259,
|
||||
SpreadAssignment = 260,
|
||||
EnumMember = 261,
|
||||
SourceFile = 262,
|
||||
JSDocTypeExpression = 263,
|
||||
JSDocAllType = 264,
|
||||
JSDocUnknownType = 265,
|
||||
JSDocArrayType = 266,
|
||||
JSDocUnionType = 267,
|
||||
JSDocTupleType = 268,
|
||||
JSDocNullableType = 269,
|
||||
JSDocNonNullableType = 270,
|
||||
JSDocRecordType = 271,
|
||||
JSDocRecordMember = 272,
|
||||
JSDocTypeReference = 273,
|
||||
JSDocOptionalType = 274,
|
||||
JSDocFunctionType = 275,
|
||||
JSDocVariadicType = 276,
|
||||
JSDocConstructorType = 277,
|
||||
JSDocThisType = 278,
|
||||
JSDocComment = 279,
|
||||
JSDocTag = 280,
|
||||
JSDocAugmentsTag = 281,
|
||||
JSDocParameterTag = 282,
|
||||
JSDocReturnTag = 283,
|
||||
JSDocTypeTag = 284,
|
||||
JSDocTemplateTag = 285,
|
||||
JSDocTypedefTag = 286,
|
||||
JSDocPropertyTag = 287,
|
||||
JSDocTypeLiteral = 288,
|
||||
JSDocLiteralType = 289,
|
||||
JSDocNullKeyword = 290,
|
||||
JSDocUndefinedKeyword = 291,
|
||||
JSDocNeverKeyword = 292,
|
||||
SyntaxList = 293,
|
||||
NotEmittedStatement = 294,
|
||||
PartiallyEmittedExpression = 295,
|
||||
MergeDeclarationMarker = 296,
|
||||
EndOfDeclarationMarker = 297,
|
||||
Count = 298,
|
||||
ObjectKeyword = 133,
|
||||
SetKeyword = 134,
|
||||
StringKeyword = 135,
|
||||
SymbolKeyword = 136,
|
||||
TypeKeyword = 137,
|
||||
UndefinedKeyword = 138,
|
||||
FromKeyword = 139,
|
||||
GlobalKeyword = 140,
|
||||
OfKeyword = 141,
|
||||
QualifiedName = 142,
|
||||
ComputedPropertyName = 143,
|
||||
TypeParameter = 144,
|
||||
Parameter = 145,
|
||||
Decorator = 146,
|
||||
PropertySignature = 147,
|
||||
PropertyDeclaration = 148,
|
||||
MethodSignature = 149,
|
||||
MethodDeclaration = 150,
|
||||
Constructor = 151,
|
||||
GetAccessor = 152,
|
||||
SetAccessor = 153,
|
||||
CallSignature = 154,
|
||||
ConstructSignature = 155,
|
||||
IndexSignature = 156,
|
||||
TypePredicate = 157,
|
||||
TypeReference = 158,
|
||||
FunctionType = 159,
|
||||
ConstructorType = 160,
|
||||
TypeQuery = 161,
|
||||
TypeLiteral = 162,
|
||||
ArrayType = 163,
|
||||
TupleType = 164,
|
||||
UnionType = 165,
|
||||
IntersectionType = 166,
|
||||
ParenthesizedType = 167,
|
||||
ThisType = 168,
|
||||
TypeOperator = 169,
|
||||
IndexedAccessType = 170,
|
||||
MappedType = 171,
|
||||
LiteralType = 172,
|
||||
ObjectBindingPattern = 173,
|
||||
ArrayBindingPattern = 174,
|
||||
BindingElement = 175,
|
||||
ArrayLiteralExpression = 176,
|
||||
ObjectLiteralExpression = 177,
|
||||
PropertyAccessExpression = 178,
|
||||
ElementAccessExpression = 179,
|
||||
CallExpression = 180,
|
||||
NewExpression = 181,
|
||||
TaggedTemplateExpression = 182,
|
||||
TypeAssertionExpression = 183,
|
||||
ParenthesizedExpression = 184,
|
||||
FunctionExpression = 185,
|
||||
ArrowFunction = 186,
|
||||
DeleteExpression = 187,
|
||||
TypeOfExpression = 188,
|
||||
VoidExpression = 189,
|
||||
AwaitExpression = 190,
|
||||
PrefixUnaryExpression = 191,
|
||||
PostfixUnaryExpression = 192,
|
||||
BinaryExpression = 193,
|
||||
ConditionalExpression = 194,
|
||||
TemplateExpression = 195,
|
||||
YieldExpression = 196,
|
||||
SpreadElement = 197,
|
||||
ClassExpression = 198,
|
||||
OmittedExpression = 199,
|
||||
ExpressionWithTypeArguments = 200,
|
||||
AsExpression = 201,
|
||||
NonNullExpression = 202,
|
||||
MetaProperty = 203,
|
||||
TemplateSpan = 204,
|
||||
SemicolonClassElement = 205,
|
||||
Block = 206,
|
||||
VariableStatement = 207,
|
||||
EmptyStatement = 208,
|
||||
ExpressionStatement = 209,
|
||||
IfStatement = 210,
|
||||
DoStatement = 211,
|
||||
WhileStatement = 212,
|
||||
ForStatement = 213,
|
||||
ForInStatement = 214,
|
||||
ForOfStatement = 215,
|
||||
ContinueStatement = 216,
|
||||
BreakStatement = 217,
|
||||
ReturnStatement = 218,
|
||||
WithStatement = 219,
|
||||
SwitchStatement = 220,
|
||||
LabeledStatement = 221,
|
||||
ThrowStatement = 222,
|
||||
TryStatement = 223,
|
||||
DebuggerStatement = 224,
|
||||
VariableDeclaration = 225,
|
||||
VariableDeclarationList = 226,
|
||||
FunctionDeclaration = 227,
|
||||
ClassDeclaration = 228,
|
||||
InterfaceDeclaration = 229,
|
||||
TypeAliasDeclaration = 230,
|
||||
EnumDeclaration = 231,
|
||||
ModuleDeclaration = 232,
|
||||
ModuleBlock = 233,
|
||||
CaseBlock = 234,
|
||||
NamespaceExportDeclaration = 235,
|
||||
ImportEqualsDeclaration = 236,
|
||||
ImportDeclaration = 237,
|
||||
ImportClause = 238,
|
||||
NamespaceImport = 239,
|
||||
NamedImports = 240,
|
||||
ImportSpecifier = 241,
|
||||
ExportAssignment = 242,
|
||||
ExportDeclaration = 243,
|
||||
NamedExports = 244,
|
||||
ExportSpecifier = 245,
|
||||
MissingDeclaration = 246,
|
||||
ExternalModuleReference = 247,
|
||||
JsxElement = 248,
|
||||
JsxSelfClosingElement = 249,
|
||||
JsxOpeningElement = 250,
|
||||
JsxClosingElement = 251,
|
||||
JsxAttribute = 252,
|
||||
JsxSpreadAttribute = 253,
|
||||
JsxExpression = 254,
|
||||
CaseClause = 255,
|
||||
DefaultClause = 256,
|
||||
HeritageClause = 257,
|
||||
CatchClause = 258,
|
||||
PropertyAssignment = 259,
|
||||
ShorthandPropertyAssignment = 260,
|
||||
SpreadAssignment = 261,
|
||||
EnumMember = 262,
|
||||
SourceFile = 263,
|
||||
JSDocTypeExpression = 264,
|
||||
JSDocAllType = 265,
|
||||
JSDocUnknownType = 266,
|
||||
JSDocArrayType = 267,
|
||||
JSDocUnionType = 268,
|
||||
JSDocTupleType = 269,
|
||||
JSDocNullableType = 270,
|
||||
JSDocNonNullableType = 271,
|
||||
JSDocRecordType = 272,
|
||||
JSDocRecordMember = 273,
|
||||
JSDocTypeReference = 274,
|
||||
JSDocOptionalType = 275,
|
||||
JSDocFunctionType = 276,
|
||||
JSDocVariadicType = 277,
|
||||
JSDocConstructorType = 278,
|
||||
JSDocThisType = 279,
|
||||
JSDocComment = 280,
|
||||
JSDocTag = 281,
|
||||
JSDocAugmentsTag = 282,
|
||||
JSDocParameterTag = 283,
|
||||
JSDocReturnTag = 284,
|
||||
JSDocTypeTag = 285,
|
||||
JSDocTemplateTag = 286,
|
||||
JSDocTypedefTag = 287,
|
||||
JSDocPropertyTag = 288,
|
||||
JSDocTypeLiteral = 289,
|
||||
JSDocLiteralType = 290,
|
||||
JSDocNullKeyword = 291,
|
||||
JSDocUndefinedKeyword = 292,
|
||||
JSDocNeverKeyword = 293,
|
||||
SyntaxList = 294,
|
||||
NotEmittedStatement = 295,
|
||||
PartiallyEmittedExpression = 296,
|
||||
MergeDeclarationMarker = 297,
|
||||
EndOfDeclarationMarker = 298,
|
||||
Count = 299,
|
||||
FirstAssignment = 57,
|
||||
LastAssignment = 69,
|
||||
FirstCompoundAssignment = 58,
|
||||
@@ -343,15 +369,15 @@ declare namespace ts {
|
||||
FirstReservedWord = 71,
|
||||
LastReservedWord = 106,
|
||||
FirstKeyword = 71,
|
||||
LastKeyword = 140,
|
||||
LastKeyword = 141,
|
||||
FirstFutureReservedWord = 107,
|
||||
LastFutureReservedWord = 115,
|
||||
FirstTypeNode = 156,
|
||||
LastTypeNode = 171,
|
||||
FirstTypeNode = 157,
|
||||
LastTypeNode = 172,
|
||||
FirstPunctuation = 16,
|
||||
LastPunctuation = 69,
|
||||
FirstToken = 0,
|
||||
LastToken = 140,
|
||||
LastToken = 141,
|
||||
FirstTriviaToken = 2,
|
||||
LastTriviaToken = 7,
|
||||
FirstLiteralToken = 8,
|
||||
@@ -360,11 +386,11 @@ declare namespace ts {
|
||||
LastTemplateToken = 15,
|
||||
FirstBinaryOperator = 26,
|
||||
LastBinaryOperator = 69,
|
||||
FirstNode = 141,
|
||||
FirstJSDocNode = 263,
|
||||
LastJSDocNode = 289,
|
||||
FirstJSDocTagNode = 279,
|
||||
LastJSDocTagNode = 292,
|
||||
FirstNode = 142,
|
||||
FirstJSDocNode = 264,
|
||||
LastJSDocNode = 293,
|
||||
FirstJSDocTagNode = 280,
|
||||
LastJSDocTagNode = 293,
|
||||
}
|
||||
enum NodeFlags {
|
||||
None = 0,
|
||||
@@ -632,7 +658,7 @@ declare namespace ts {
|
||||
_typeNodeBrand: any;
|
||||
}
|
||||
interface KeywordTypeNode extends TypeNode {
|
||||
kind: SyntaxKind.AnyKeyword | SyntaxKind.NumberKeyword | SyntaxKind.BooleanKeyword | SyntaxKind.StringKeyword | SyntaxKind.SymbolKeyword | SyntaxKind.VoidKeyword;
|
||||
kind: SyntaxKind.AnyKeyword | SyntaxKind.NumberKeyword | SyntaxKind.ObjectKeyword | SyntaxKind.BooleanKeyword | SyntaxKind.StringKeyword | SyntaxKind.SymbolKeyword | SyntaxKind.VoidKeyword;
|
||||
}
|
||||
interface ThisTypeNode extends TypeNode {
|
||||
kind: SyntaxKind.ThisType;
|
||||
@@ -1578,7 +1604,7 @@ declare namespace ts {
|
||||
getIndexInfoOfType(type: Type, kind: IndexKind): IndexInfo;
|
||||
getSignaturesOfType(type: Type, kind: SignatureKind): Signature[];
|
||||
getIndexTypeOfType(type: Type, kind: IndexKind): Type;
|
||||
getBaseTypes(type: InterfaceType): ObjectType[];
|
||||
getBaseTypes(type: InterfaceType): BaseType[];
|
||||
getReturnTypeOfSignature(signature: Signature): Type;
|
||||
getNonNullableType(type: Type): Type;
|
||||
getSymbolsInScope(location: Node, meaning: SymbolFlags): Symbol[];
|
||||
@@ -1778,6 +1804,7 @@ declare namespace ts {
|
||||
Intersection = 131072,
|
||||
Index = 262144,
|
||||
IndexedAccess = 524288,
|
||||
NonPrimitive = 16777216,
|
||||
Literal = 480,
|
||||
StringOrNumberLiteral = 96,
|
||||
PossiblyFalsy = 7406,
|
||||
@@ -1787,10 +1814,10 @@ declare namespace ts {
|
||||
EnumLike = 272,
|
||||
UnionOrIntersection = 196608,
|
||||
StructuredType = 229376,
|
||||
StructuredOrTypeParameter = 507904,
|
||||
StructuredOrTypeVariable = 1032192,
|
||||
TypeVariable = 540672,
|
||||
Narrowable = 1033215,
|
||||
NotUnionOrUnit = 33281,
|
||||
Narrowable = 17810431,
|
||||
NotUnionOrUnit = 16810497,
|
||||
}
|
||||
type DestructuringPattern = BindingPattern | ObjectLiteralExpression | ArrayLiteralExpression;
|
||||
interface Type {
|
||||
@@ -1806,7 +1833,7 @@ declare namespace ts {
|
||||
regularType?: LiteralType;
|
||||
}
|
||||
interface EnumType extends Type {
|
||||
memberTypes: Map<EnumLiteralType>;
|
||||
memberTypes: EnumLiteralType[];
|
||||
}
|
||||
interface EnumLiteralType extends LiteralType {
|
||||
baseType: EnumType & UnionType;
|
||||
@@ -1822,6 +1849,7 @@ declare namespace ts {
|
||||
ObjectLiteral = 128,
|
||||
EvolvingArray = 256,
|
||||
ObjectLiteralPatternWithComputedProperties = 512,
|
||||
NonPrimitive = 1024,
|
||||
ClassOrInterface = 3,
|
||||
}
|
||||
interface ObjectType extends Type {
|
||||
@@ -1834,6 +1862,7 @@ declare namespace ts {
|
||||
localTypeParameters: TypeParameter[];
|
||||
thisType: TypeParameter;
|
||||
}
|
||||
type BaseType = ObjectType | IntersectionType;
|
||||
interface InterfaceTypeWithDeclaredMembers extends InterfaceType {
|
||||
declaredProperties: Symbol[];
|
||||
declaredCallSignatures: Signature[];
|
||||
@@ -2034,6 +2063,7 @@ declare namespace ts {
|
||||
None = 0,
|
||||
Preserve = 1,
|
||||
React = 2,
|
||||
ReactNative = 3,
|
||||
}
|
||||
enum NewLineKind {
|
||||
CarriageReturnLineFeed = 0,
|
||||
@@ -2173,6 +2203,8 @@ declare namespace ts {
|
||||
/** The version of the TypeScript compiler release */
|
||||
const version = "2.2.0";
|
||||
}
|
||||
declare function setTimeout(handler: (...args: any[]) => void, timeout: number): any;
|
||||
declare function clearTimeout(handle: any): void;
|
||||
declare namespace ts {
|
||||
type FileWatcherCallback = (fileName: string, removed?: boolean) => void;
|
||||
type DirectoryWatcherCallback = (fileName: string) => void;
|
||||
@@ -2267,8 +2299,8 @@ declare namespace ts {
|
||||
function forEachTrailingCommentRange<T, U>(text: string, pos: number, cb: (pos: number, end: number, kind: SyntaxKind, hasTrailingNewLine: boolean, state: T) => U, state?: T): U;
|
||||
function reduceEachLeadingCommentRange<T, U>(text: string, pos: number, cb: (pos: number, end: number, kind: SyntaxKind, hasTrailingNewLine: boolean, state: T, memo: U) => U, state: T, initial: U): U;
|
||||
function reduceEachTrailingCommentRange<T, U>(text: string, pos: number, cb: (pos: number, end: number, kind: SyntaxKind, hasTrailingNewLine: boolean, state: T, memo: U) => U, state: T, initial: U): U;
|
||||
function getLeadingCommentRanges(text: string, pos: number): CommentRange[];
|
||||
function getTrailingCommentRanges(text: string, pos: number): CommentRange[];
|
||||
function getLeadingCommentRanges(text: string, pos: number): CommentRange[] | undefined;
|
||||
function getTrailingCommentRanges(text: string, pos: number): CommentRange[] | undefined;
|
||||
/** Optionally, get the shebang */
|
||||
function getShebang(text: string): string;
|
||||
function isIdentifierStart(ch: number, languageVersion: ScriptTarget): boolean;
|
||||
@@ -2327,6 +2359,10 @@ declare namespace ts {
|
||||
function updateSourceFile(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile;
|
||||
}
|
||||
declare namespace ts {
|
||||
/** Array that is only intended to be pushed to, never read. */
|
||||
interface Push<T> {
|
||||
push(value: T): void;
|
||||
}
|
||||
function moduleHasNonRelativeName(moduleName: string): boolean;
|
||||
function getEffectiveTypeRoots(options: CompilerOptions, host: {
|
||||
directoryExists?: (directoryName: string) => boolean;
|
||||
@@ -2454,7 +2490,7 @@ declare namespace ts {
|
||||
getConstructSignatures(): Signature[];
|
||||
getStringIndexType(): Type;
|
||||
getNumberIndexType(): Type;
|
||||
getBaseTypes(): ObjectType[];
|
||||
getBaseTypes(): BaseType[];
|
||||
getNonNullableType(): Type;
|
||||
}
|
||||
interface Signature {
|
||||
|
||||
Reference in New Issue
Block a user