Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
m4lab_tv1
Project Page
Compare Revisions
425311b9e5a48f9caa1f749069df1d6415b45557...3b78e297f25313db7c685305872f6d940fb9d308
Hide whitespace changes
Inline
Side-by-side
Too many changes to show.
To preserve performance only
20 of 337+
files are displayed.
node_modules/@babel/types/lib/constants/index.js
0 → 100644
View file @
3b78e297
"
use strict
"
;
Object
.
defineProperty
(
exports
,
"
__esModule
"
,
{
value
:
true
});
exports
.
UPDATE_OPERATORS
=
exports
.
UNARY_OPERATORS
=
exports
.
STRING_UNARY_OPERATORS
=
exports
.
STATEMENT_OR_BLOCK_KEYS
=
exports
.
NUMBER_UNARY_OPERATORS
=
exports
.
NUMBER_BINARY_OPERATORS
=
exports
.
NOT_LOCAL_BINDING
=
exports
.
LOGICAL_OPERATORS
=
exports
.
INHERIT_KEYS
=
exports
.
FOR_INIT_KEYS
=
exports
.
FLATTENABLE_KEYS
=
exports
.
EQUALITY_BINARY_OPERATORS
=
exports
.
COMPARISON_BINARY_OPERATORS
=
exports
.
COMMENT_KEYS
=
exports
.
BOOLEAN_UNARY_OPERATORS
=
exports
.
BOOLEAN_NUMBER_BINARY_OPERATORS
=
exports
.
BOOLEAN_BINARY_OPERATORS
=
exports
.
BLOCK_SCOPED_SYMBOL
=
exports
.
BINARY_OPERATORS
=
exports
.
ASSIGNMENT_OPERATORS
=
void
0
;
const
STATEMENT_OR_BLOCK_KEYS
=
[
"
consequent
"
,
"
body
"
,
"
alternate
"
];
exports
.
STATEMENT_OR_BLOCK_KEYS
=
STATEMENT_OR_BLOCK_KEYS
;
const
FLATTENABLE_KEYS
=
[
"
body
"
,
"
expressions
"
];
exports
.
FLATTENABLE_KEYS
=
FLATTENABLE_KEYS
;
const
FOR_INIT_KEYS
=
[
"
left
"
,
"
init
"
];
exports
.
FOR_INIT_KEYS
=
FOR_INIT_KEYS
;
const
COMMENT_KEYS
=
[
"
leadingComments
"
,
"
trailingComments
"
,
"
innerComments
"
];
exports
.
COMMENT_KEYS
=
COMMENT_KEYS
;
const
LOGICAL_OPERATORS
=
[
"
||
"
,
"
&&
"
,
"
??
"
];
exports
.
LOGICAL_OPERATORS
=
LOGICAL_OPERATORS
;
const
UPDATE_OPERATORS
=
[
"
++
"
,
"
--
"
];
exports
.
UPDATE_OPERATORS
=
UPDATE_OPERATORS
;
const
BOOLEAN_NUMBER_BINARY_OPERATORS
=
[
"
>
"
,
"
<
"
,
"
>=
"
,
"
<=
"
];
exports
.
BOOLEAN_NUMBER_BINARY_OPERATORS
=
BOOLEAN_NUMBER_BINARY_OPERATORS
;
const
EQUALITY_BINARY_OPERATORS
=
[
"
==
"
,
"
===
"
,
"
!=
"
,
"
!==
"
];
exports
.
EQUALITY_BINARY_OPERATORS
=
EQUALITY_BINARY_OPERATORS
;
const
COMPARISON_BINARY_OPERATORS
=
[...
EQUALITY_BINARY_OPERATORS
,
"
in
"
,
"
instanceof
"
];
exports
.
COMPARISON_BINARY_OPERATORS
=
COMPARISON_BINARY_OPERATORS
;
const
BOOLEAN_BINARY_OPERATORS
=
[...
COMPARISON_BINARY_OPERATORS
,
...
BOOLEAN_NUMBER_BINARY_OPERATORS
];
exports
.
BOOLEAN_BINARY_OPERATORS
=
BOOLEAN_BINARY_OPERATORS
;
const
NUMBER_BINARY_OPERATORS
=
[
"
-
"
,
"
/
"
,
"
%
"
,
"
*
"
,
"
**
"
,
"
&
"
,
"
|
"
,
"
>>
"
,
"
>>>
"
,
"
<<
"
,
"
^
"
];
exports
.
NUMBER_BINARY_OPERATORS
=
NUMBER_BINARY_OPERATORS
;
const
BINARY_OPERATORS
=
[
"
+
"
,
...
NUMBER_BINARY_OPERATORS
,
...
BOOLEAN_BINARY_OPERATORS
,
"
|>
"
];
exports
.
BINARY_OPERATORS
=
BINARY_OPERATORS
;
const
ASSIGNMENT_OPERATORS
=
[
"
=
"
,
"
+=
"
,
...
NUMBER_BINARY_OPERATORS
.
map
(
op
=>
op
+
"
=
"
),
...
LOGICAL_OPERATORS
.
map
(
op
=>
op
+
"
=
"
)];
exports
.
ASSIGNMENT_OPERATORS
=
ASSIGNMENT_OPERATORS
;
const
BOOLEAN_UNARY_OPERATORS
=
[
"
delete
"
,
"
!
"
];
exports
.
BOOLEAN_UNARY_OPERATORS
=
BOOLEAN_UNARY_OPERATORS
;
const
NUMBER_UNARY_OPERATORS
=
[
"
+
"
,
"
-
"
,
"
~
"
];
exports
.
NUMBER_UNARY_OPERATORS
=
NUMBER_UNARY_OPERATORS
;
const
STRING_UNARY_OPERATORS
=
[
"
typeof
"
];
exports
.
STRING_UNARY_OPERATORS
=
STRING_UNARY_OPERATORS
;
const
UNARY_OPERATORS
=
[
"
void
"
,
"
throw
"
,
...
BOOLEAN_UNARY_OPERATORS
,
...
NUMBER_UNARY_OPERATORS
,
...
STRING_UNARY_OPERATORS
];
exports
.
UNARY_OPERATORS
=
UNARY_OPERATORS
;
const
INHERIT_KEYS
=
{
optional
:
[
"
typeAnnotation
"
,
"
typeParameters
"
,
"
returnType
"
],
force
:
[
"
start
"
,
"
loc
"
,
"
end
"
]
};
exports
.
INHERIT_KEYS
=
INHERIT_KEYS
;
const
BLOCK_SCOPED_SYMBOL
=
Symbol
.
for
(
"
var used to be block scoped
"
);
exports
.
BLOCK_SCOPED_SYMBOL
=
BLOCK_SCOPED_SYMBOL
;
const
NOT_LOCAL_BINDING
=
Symbol
.
for
(
"
should not be considered a local binding
"
);
exports
.
NOT_LOCAL_BINDING
=
NOT_LOCAL_BINDING
;
\ No newline at end of file
node_modules/@babel/types/lib/converters/ensureBlock.js
0 → 100644
View file @
3b78e297
"
use strict
"
;
Object
.
defineProperty
(
exports
,
"
__esModule
"
,
{
value
:
true
});
exports
.
default
=
ensureBlock
;
var
_toBlock
=
require
(
"
./toBlock
"
);
function
ensureBlock
(
node
,
key
=
"
body
"
)
{
const
result
=
(
0
,
_toBlock
.
default
)(
node
[
key
],
node
);
node
[
key
]
=
result
;
return
result
;
}
\ No newline at end of file
node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js
0 → 100644
View file @
3b78e297
"
use strict
"
;
Object
.
defineProperty
(
exports
,
"
__esModule
"
,
{
value
:
true
});
exports
.
default
=
gatherSequenceExpressions
;
var
_getBindingIdentifiers
=
require
(
"
../retrievers/getBindingIdentifiers
"
);
var
_generated
=
require
(
"
../validators/generated
"
);
var
_generated2
=
require
(
"
../builders/generated
"
);
var
_cloneNode
=
require
(
"
../clone/cloneNode
"
);
function
gatherSequenceExpressions
(
nodes
,
scope
,
declars
)
{
const
exprs
=
[];
let
ensureLastUndefined
=
true
;
for
(
const
node
of
nodes
)
{
if
(
!
(
0
,
_generated
.
isEmptyStatement
)(
node
))
{
ensureLastUndefined
=
false
;
}
if
((
0
,
_generated
.
isExpression
)(
node
))
{
exprs
.
push
(
node
);
}
else
if
((
0
,
_generated
.
isExpressionStatement
)(
node
))
{
exprs
.
push
(
node
.
expression
);
}
else
if
((
0
,
_generated
.
isVariableDeclaration
)(
node
))
{
if
(
node
.
kind
!==
"
var
"
)
return
;
for
(
const
declar
of
node
.
declarations
)
{
const
bindings
=
(
0
,
_getBindingIdentifiers
.
default
)(
declar
);
for
(
const
key
of
Object
.
keys
(
bindings
))
{
declars
.
push
({
kind
:
node
.
kind
,
id
:
(
0
,
_cloneNode
.
default
)(
bindings
[
key
])
});
}
if
(
declar
.
init
)
{
exprs
.
push
((
0
,
_generated2
.
assignmentExpression
)(
"
=
"
,
declar
.
id
,
declar
.
init
));
}
}
ensureLastUndefined
=
true
;
}
else
if
((
0
,
_generated
.
isIfStatement
)(
node
))
{
const
consequent
=
node
.
consequent
?
gatherSequenceExpressions
([
node
.
consequent
],
scope
,
declars
)
:
scope
.
buildUndefinedNode
();
const
alternate
=
node
.
alternate
?
gatherSequenceExpressions
([
node
.
alternate
],
scope
,
declars
)
:
scope
.
buildUndefinedNode
();
if
(
!
consequent
||
!
alternate
)
return
;
exprs
.
push
((
0
,
_generated2
.
conditionalExpression
)(
node
.
test
,
consequent
,
alternate
));
}
else
if
((
0
,
_generated
.
isBlockStatement
)(
node
))
{
const
body
=
gatherSequenceExpressions
(
node
.
body
,
scope
,
declars
);
if
(
!
body
)
return
;
exprs
.
push
(
body
);
}
else
if
((
0
,
_generated
.
isEmptyStatement
)(
node
))
{
if
(
nodes
.
indexOf
(
node
)
===
0
)
{
ensureLastUndefined
=
true
;
}
}
else
{
return
;
}
}
if
(
ensureLastUndefined
)
{
exprs
.
push
(
scope
.
buildUndefinedNode
());
}
if
(
exprs
.
length
===
1
)
{
return
exprs
[
0
];
}
else
{
return
(
0
,
_generated2
.
sequenceExpression
)(
exprs
);
}
}
\ No newline at end of file
node_modules/@babel/types/lib/converters/toBindingIdentifierName.js
0 → 100644
View file @
3b78e297
"
use strict
"
;
Object
.
defineProperty
(
exports
,
"
__esModule
"
,
{
value
:
true
});
exports
.
default
=
toBindingIdentifierName
;
var
_toIdentifier
=
require
(
"
./toIdentifier
"
);
function
toBindingIdentifierName
(
name
)
{
name
=
(
0
,
_toIdentifier
.
default
)(
name
);
if
(
name
===
"
eval
"
||
name
===
"
arguments
"
)
name
=
"
_
"
+
name
;
return
name
;
}
\ No newline at end of file
node_modules/@babel/types/lib/converters/toBlock.js
0 → 100644
View file @
3b78e297
"
use strict
"
;
Object
.
defineProperty
(
exports
,
"
__esModule
"
,
{
value
:
true
});
exports
.
default
=
toBlock
;
var
_generated
=
require
(
"
../validators/generated
"
);
var
_generated2
=
require
(
"
../builders/generated
"
);
function
toBlock
(
node
,
parent
)
{
if
((
0
,
_generated
.
isBlockStatement
)(
node
))
{
return
node
;
}
let
blockNodes
=
[];
if
((
0
,
_generated
.
isEmptyStatement
)(
node
))
{
blockNodes
=
[];
}
else
{
if
(
!
(
0
,
_generated
.
isStatement
)(
node
))
{
if
((
0
,
_generated
.
isFunction
)(
parent
))
{
node
=
(
0
,
_generated2
.
returnStatement
)(
node
);
}
else
{
node
=
(
0
,
_generated2
.
expressionStatement
)(
node
);
}
}
blockNodes
=
[
node
];
}
return
(
0
,
_generated2
.
blockStatement
)(
blockNodes
);
}
\ No newline at end of file
node_modules/@babel/types/lib/converters/toComputedKey.js
0 → 100644
View file @
3b78e297
"
use strict
"
;
Object
.
defineProperty
(
exports
,
"
__esModule
"
,
{
value
:
true
});
exports
.
default
=
toComputedKey
;
var
_generated
=
require
(
"
../validators/generated
"
);
var
_generated2
=
require
(
"
../builders/generated
"
);
function
toComputedKey
(
node
,
key
=
node
.
key
||
node
.
property
)
{
if
(
!
node
.
computed
&&
(
0
,
_generated
.
isIdentifier
)(
key
))
key
=
(
0
,
_generated2
.
stringLiteral
)(
key
.
name
);
return
key
;
}
\ No newline at end of file
node_modules/@babel/types/lib/converters/toExpression.js
0 → 100644
View file @
3b78e297
"
use strict
"
;
Object
.
defineProperty
(
exports
,
"
__esModule
"
,
{
value
:
true
});
exports
.
default
=
void
0
;
var
_generated
=
require
(
"
../validators/generated
"
);
var
_default
=
toExpression
;
exports
.
default
=
_default
;
function
toExpression
(
node
)
{
if
((
0
,
_generated
.
isExpressionStatement
)(
node
))
{
node
=
node
.
expression
;
}
if
((
0
,
_generated
.
isExpression
)(
node
))
{
return
node
;
}
if
((
0
,
_generated
.
isClass
)(
node
))
{
node
.
type
=
"
ClassExpression
"
;
}
else
if
((
0
,
_generated
.
isFunction
)(
node
))
{
node
.
type
=
"
FunctionExpression
"
;
}
if
(
!
(
0
,
_generated
.
isExpression
)(
node
))
{
throw
new
Error
(
`cannot turn
${
node
.
type
}
to an expression`
);
}
return
node
;
}
\ No newline at end of file
node_modules/@babel/types/lib/converters/toIdentifier.js
0 → 100644
View file @
3b78e297
"
use strict
"
;
Object
.
defineProperty
(
exports
,
"
__esModule
"
,
{
value
:
true
});
exports
.
default
=
toIdentifier
;
var
_isValidIdentifier
=
require
(
"
../validators/isValidIdentifier
"
);
var
_helperValidatorIdentifier
=
require
(
"
@babel/helper-validator-identifier
"
);
function
toIdentifier
(
input
)
{
input
=
input
+
""
;
let
name
=
""
;
for
(
const
c
of
input
)
{
name
+=
(
0
,
_helperValidatorIdentifier
.
isIdentifierChar
)(
c
.
codePointAt
(
0
))
?
c
:
"
-
"
;
}
name
=
name
.
replace
(
/^
[
-0-9
]
+/
,
""
);
name
=
name
.
replace
(
/
[
-
\s]
+
(
.
)?
/g
,
function
(
match
,
c
)
{
return
c
?
c
.
toUpperCase
()
:
""
;
});
if
(
!
(
0
,
_isValidIdentifier
.
default
)(
name
))
{
name
=
`_
${
name
}
`
;
}
return
name
||
"
_
"
;
}
\ No newline at end of file
node_modules/@babel/types/lib/converters/toKeyAlias.js
0 → 100644
View file @
3b78e297
"
use strict
"
;
Object
.
defineProperty
(
exports
,
"
__esModule
"
,
{
value
:
true
});
exports
.
default
=
toKeyAlias
;
var
_generated
=
require
(
"
../validators/generated
"
);
var
_cloneNode
=
require
(
"
../clone/cloneNode
"
);
var
_removePropertiesDeep
=
require
(
"
../modifications/removePropertiesDeep
"
);
function
toKeyAlias
(
node
,
key
=
node
.
key
)
{
let
alias
;
if
(
node
.
kind
===
"
method
"
)
{
return
toKeyAlias
.
increment
()
+
""
;
}
else
if
((
0
,
_generated
.
isIdentifier
)(
key
))
{
alias
=
key
.
name
;
}
else
if
((
0
,
_generated
.
isStringLiteral
)(
key
))
{
alias
=
JSON
.
stringify
(
key
.
value
);
}
else
{
alias
=
JSON
.
stringify
((
0
,
_removePropertiesDeep
.
default
)((
0
,
_cloneNode
.
default
)(
key
)));
}
if
(
node
.
computed
)
{
alias
=
`[
${
alias
}
]`
;
}
if
(
node
.
static
)
{
alias
=
`static:
${
alias
}
`
;
}
return
alias
;
}
toKeyAlias
.
uid
=
0
;
toKeyAlias
.
increment
=
function
()
{
if
(
toKeyAlias
.
uid
>=
Number
.
MAX_SAFE_INTEGER
)
{
return
toKeyAlias
.
uid
=
0
;
}
else
{
return
toKeyAlias
.
uid
++
;
}
};
\ No newline at end of file
node_modules/@babel/types/lib/converters/toSequenceExpression.js
0 → 100644
View file @
3b78e297
"
use strict
"
;
Object
.
defineProperty
(
exports
,
"
__esModule
"
,
{
value
:
true
});
exports
.
default
=
toSequenceExpression
;
var
_gatherSequenceExpressions
=
require
(
"
./gatherSequenceExpressions
"
);
function
toSequenceExpression
(
nodes
,
scope
)
{
if
(
!
(
nodes
!=
null
&&
nodes
.
length
))
return
;
const
declars
=
[];
const
result
=
(
0
,
_gatherSequenceExpressions
.
default
)(
nodes
,
scope
,
declars
);
if
(
!
result
)
return
;
for
(
const
declar
of
declars
)
{
scope
.
push
(
declar
);
}
return
result
;
}
\ No newline at end of file
node_modules/@babel/types/lib/converters/toStatement.js
0 → 100644
View file @
3b78e297
"
use strict
"
;
Object
.
defineProperty
(
exports
,
"
__esModule
"
,
{
value
:
true
});
exports
.
default
=
void
0
;
var
_generated
=
require
(
"
../validators/generated
"
);
var
_generated2
=
require
(
"
../builders/generated
"
);
var
_default
=
toStatement
;
exports
.
default
=
_default
;
function
toStatement
(
node
,
ignore
)
{
if
((
0
,
_generated
.
isStatement
)(
node
))
{
return
node
;
}
let
mustHaveId
=
false
;
let
newType
;
if
((
0
,
_generated
.
isClass
)(
node
))
{
mustHaveId
=
true
;
newType
=
"
ClassDeclaration
"
;
}
else
if
((
0
,
_generated
.
isFunction
)(
node
))
{
mustHaveId
=
true
;
newType
=
"
FunctionDeclaration
"
;
}
else
if
((
0
,
_generated
.
isAssignmentExpression
)(
node
))
{
return
(
0
,
_generated2
.
expressionStatement
)(
node
);
}
if
(
mustHaveId
&&
!
node
.
id
)
{
newType
=
false
;
}
if
(
!
newType
)
{
if
(
ignore
)
{
return
false
;
}
else
{
throw
new
Error
(
`cannot turn
${
node
.
type
}
to a statement`
);
}
}
node
.
type
=
newType
;
return
node
;
}
\ No newline at end of file
node_modules/@babel/types/lib/converters/valueToNode.js
0 → 100644
View file @
3b78e297
"
use strict
"
;
Object
.
defineProperty
(
exports
,
"
__esModule
"
,
{
value
:
true
});
exports
.
default
=
void
0
;
var
_isValidIdentifier
=
require
(
"
../validators/isValidIdentifier
"
);
var
_generated
=
require
(
"
../builders/generated
"
);
var
_default
=
valueToNode
;
exports
.
default
=
_default
;
const
objectToString
=
Function
.
call
.
bind
(
Object
.
prototype
.
toString
);
function
isRegExp
(
value
)
{
return
objectToString
(
value
)
===
"
[object RegExp]
"
;
}
function
isPlainObject
(
value
)
{
if
(
typeof
value
!==
"
object
"
||
value
===
null
||
Object
.
prototype
.
toString
.
call
(
value
)
!==
"
[object Object]
"
)
{
return
false
;
}
const
proto
=
Object
.
getPrototypeOf
(
value
);
return
proto
===
null
||
Object
.
getPrototypeOf
(
proto
)
===
null
;
}
function
valueToNode
(
value
)
{
if
(
value
===
undefined
)
{
return
(
0
,
_generated
.
identifier
)(
"
undefined
"
);
}
if
(
value
===
true
||
value
===
false
)
{
return
(
0
,
_generated
.
booleanLiteral
)(
value
);
}
if
(
value
===
null
)
{
return
(
0
,
_generated
.
nullLiteral
)();
}
if
(
typeof
value
===
"
string
"
)
{
return
(
0
,
_generated
.
stringLiteral
)(
value
);
}
if
(
typeof
value
===
"
number
"
)
{
let
result
;
if
(
Number
.
isFinite
(
value
))
{
result
=
(
0
,
_generated
.
numericLiteral
)(
Math
.
abs
(
value
));
}
else
{
let
numerator
;
if
(
Number
.
isNaN
(
value
))
{
numerator
=
(
0
,
_generated
.
numericLiteral
)(
0
);
}
else
{
numerator
=
(
0
,
_generated
.
numericLiteral
)(
1
);
}
result
=
(
0
,
_generated
.
binaryExpression
)(
"
/
"
,
numerator
,
(
0
,
_generated
.
numericLiteral
)(
0
));
}
if
(
value
<
0
||
Object
.
is
(
value
,
-
0
))
{
result
=
(
0
,
_generated
.
unaryExpression
)(
"
-
"
,
result
);
}
return
result
;
}
if
(
isRegExp
(
value
))
{
const
pattern
=
value
.
source
;
const
flags
=
value
.
toString
().
match
(
/
\/([
a-z
]
+|
)
$/
)[
1
];
return
(
0
,
_generated
.
regExpLiteral
)(
pattern
,
flags
);
}
if
(
Array
.
isArray
(
value
))
{
return
(
0
,
_generated
.
arrayExpression
)(
value
.
map
(
valueToNode
));
}
if
(
isPlainObject
(
value
))
{
const
props
=
[];
for
(
const
key
of
Object
.
keys
(
value
))
{
let
nodeKey
;
if
((
0
,
_isValidIdentifier
.
default
)(
key
))
{
nodeKey
=
(
0
,
_generated
.
identifier
)(
key
);
}
else
{
nodeKey
=
(
0
,
_generated
.
stringLiteral
)(
key
);
}
props
.
push
((
0
,
_generated
.
objectProperty
)(
nodeKey
,
valueToNode
(
value
[
key
])));
}
return
(
0
,
_generated
.
objectExpression
)(
props
);
}
throw
new
Error
(
"
don't know how to turn this value into a node
"
);
}
\ No newline at end of file
node_modules/@babel/types/lib/definitions/core.js
0 → 100644
View file @
3b78e297
"
use strict
"
;
Object
.
defineProperty
(
exports
,
"
__esModule
"
,
{
value
:
true
});
exports
.
patternLikeCommon
=
exports
.
functionTypeAnnotationCommon
=
exports
.
functionDeclarationCommon
=
exports
.
functionCommon
=
exports
.
classMethodOrPropertyCommon
=
exports
.
classMethodOrDeclareMethodCommon
=
void
0
;
var
_is
=
require
(
"
../validators/is
"
);
var
_isValidIdentifier
=
require
(
"
../validators/isValidIdentifier
"
);
var
_helperValidatorIdentifier
=
require
(
"
@babel/helper-validator-identifier
"
);
var
_constants
=
require
(
"
../constants
"
);
var
_utils
=
require
(
"
./utils
"
);
const
defineType
=
(
0
,
_utils
.
defineAliasedType
)(
"
Standardized
"
);
defineType
(
"
ArrayExpression
"
,
{
fields
:
{
elements
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeOrValueType
)(
"
null
"
,
"
Expression
"
,
"
SpreadElement
"
))),
default
:
!
process
.
env
.
BABEL_TYPES_8_BREAKING
?
[]
:
undefined
}
},
visitor
:
[
"
elements
"
],
aliases
:
[
"
Expression
"
]
});
defineType
(
"
AssignmentExpression
"
,
{
fields
:
{
operator
:
{
validate
:
function
()
{
if
(
!
process
.
env
.
BABEL_TYPES_8_BREAKING
)
{
return
(
0
,
_utils
.
assertValueType
)(
"
string
"
);
}
const
identifier
=
(
0
,
_utils
.
assertOneOf
)(...
_constants
.
ASSIGNMENT_OPERATORS
);
const
pattern
=
(
0
,
_utils
.
assertOneOf
)(
"
=
"
);
return
function
(
node
,
key
,
val
)
{
const
validator
=
(
0
,
_is
.
default
)(
"
Pattern
"
,
node
.
left
)
?
pattern
:
identifier
;
validator
(
node
,
key
,
val
);
};
}()
},
left
:
{
validate
:
!
process
.
env
.
BABEL_TYPES_8_BREAKING
?
(
0
,
_utils
.
assertNodeType
)(
"
LVal
"
)
:
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
,
"
MemberExpression
"
,
"
ArrayPattern
"
,
"
ObjectPattern
"
,
"
TSAsExpression
"
,
"
TSTypeAssertion
"
,
"
TSNonNullExpression
"
)
},
right
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
)
}
},
builder
:
[
"
operator
"
,
"
left
"
,
"
right
"
],
visitor
:
[
"
left
"
,
"
right
"
],
aliases
:
[
"
Expression
"
]
});
defineType
(
"
BinaryExpression
"
,
{
builder
:
[
"
operator
"
,
"
left
"
,
"
right
"
],
fields
:
{
operator
:
{
validate
:
(
0
,
_utils
.
assertOneOf
)(...
_constants
.
BINARY_OPERATORS
)
},
left
:
{
validate
:
function
()
{
const
expression
=
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
);
const
inOp
=
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
,
"
PrivateName
"
);
const
validator
=
Object
.
assign
(
function
(
node
,
key
,
val
)
{
const
validator
=
node
.
operator
===
"
in
"
?
inOp
:
expression
;
validator
(
node
,
key
,
val
);
},
{
oneOfNodeTypes
:
[
"
Expression
"
,
"
PrivateName
"
]
});
return
validator
;
}()
},
right
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
)
}
},
visitor
:
[
"
left
"
,
"
right
"
],
aliases
:
[
"
Binary
"
,
"
Expression
"
]
});
defineType
(
"
InterpreterDirective
"
,
{
builder
:
[
"
value
"
],
fields
:
{
value
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
string
"
)
}
}
});
defineType
(
"
Directive
"
,
{
visitor
:
[
"
value
"
],
fields
:
{
value
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
DirectiveLiteral
"
)
}
}
});
defineType
(
"
DirectiveLiteral
"
,
{
builder
:
[
"
value
"
],
fields
:
{
value
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
string
"
)
}
}
});
defineType
(
"
BlockStatement
"
,
{
builder
:
[
"
body
"
,
"
directives
"
],
visitor
:
[
"
directives
"
,
"
body
"
],
fields
:
{
directives
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
Directive
"
))),
default
:
[]
},
body
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
Statement
"
)))
}
},
aliases
:
[
"
Scopable
"
,
"
BlockParent
"
,
"
Block
"
,
"
Statement
"
]
});
defineType
(
"
BreakStatement
"
,
{
visitor
:
[
"
label
"
],
fields
:
{
label
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
),
optional
:
true
}
},
aliases
:
[
"
Statement
"
,
"
Terminatorless
"
,
"
CompletionStatement
"
]
});
defineType
(
"
CallExpression
"
,
{
visitor
:
[
"
callee
"
,
"
arguments
"
,
"
typeParameters
"
,
"
typeArguments
"
],
builder
:
[
"
callee
"
,
"
arguments
"
],
aliases
:
[
"
Expression
"
],
fields
:
Object
.
assign
({
callee
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
,
"
V8IntrinsicIdentifier
"
)
},
arguments
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
Expression
"
,
"
SpreadElement
"
,
"
JSXNamespacedName
"
,
"
ArgumentPlaceholder
"
)))
}
},
!
process
.
env
.
BABEL_TYPES_8_BREAKING
?
{
optional
:
{
validate
:
(
0
,
_utils
.
assertOneOf
)(
true
,
false
),
optional
:
true
}
}
:
{},
{
typeArguments
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
TypeParameterInstantiation
"
),
optional
:
true
},
typeParameters
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
TSTypeParameterInstantiation
"
),
optional
:
true
}
})
});
defineType
(
"
CatchClause
"
,
{
visitor
:
[
"
param
"
,
"
body
"
],
fields
:
{
param
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
,
"
ArrayPattern
"
,
"
ObjectPattern
"
),
optional
:
true
},
body
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
BlockStatement
"
)
}
},
aliases
:
[
"
Scopable
"
,
"
BlockParent
"
]
});
defineType
(
"
ConditionalExpression
"
,
{
visitor
:
[
"
test
"
,
"
consequent
"
,
"
alternate
"
],
fields
:
{
test
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
)
},
consequent
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
)
},
alternate
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
)
}
},
aliases
:
[
"
Expression
"
,
"
Conditional
"
]
});
defineType
(
"
ContinueStatement
"
,
{
visitor
:
[
"
label
"
],
fields
:
{
label
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
),
optional
:
true
}
},
aliases
:
[
"
Statement
"
,
"
Terminatorless
"
,
"
CompletionStatement
"
]
});
defineType
(
"
DebuggerStatement
"
,
{
aliases
:
[
"
Statement
"
]
});
defineType
(
"
DoWhileStatement
"
,
{
visitor
:
[
"
test
"
,
"
body
"
],
fields
:
{
test
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
)
},
body
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Statement
"
)
}
},
aliases
:
[
"
Statement
"
,
"
BlockParent
"
,
"
Loop
"
,
"
While
"
,
"
Scopable
"
]
});
defineType
(
"
EmptyStatement
"
,
{
aliases
:
[
"
Statement
"
]
});
defineType
(
"
ExpressionStatement
"
,
{
visitor
:
[
"
expression
"
],
fields
:
{
expression
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
)
}
},
aliases
:
[
"
Statement
"
,
"
ExpressionWrapper
"
]
});
defineType
(
"
File
"
,
{
builder
:
[
"
program
"
,
"
comments
"
,
"
tokens
"
],
visitor
:
[
"
program
"
],
fields
:
{
program
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Program
"
)
},
comments
:
{
validate
:
!
process
.
env
.
BABEL_TYPES_8_BREAKING
?
Object
.
assign
(()
=>
{},
{
each
:
{
oneOfNodeTypes
:
[
"
CommentBlock
"
,
"
CommentLine
"
]
}
})
:
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
CommentBlock
"
,
"
CommentLine
"
)),
optional
:
true
},
tokens
:
{
validate
:
(
0
,
_utils
.
assertEach
)(
Object
.
assign
(()
=>
{},
{
type
:
"
any
"
})),
optional
:
true
}
}
});
defineType
(
"
ForInStatement
"
,
{
visitor
:
[
"
left
"
,
"
right
"
,
"
body
"
],
aliases
:
[
"
Scopable
"
,
"
Statement
"
,
"
For
"
,
"
BlockParent
"
,
"
Loop
"
,
"
ForXStatement
"
],
fields
:
{
left
:
{
validate
:
!
process
.
env
.
BABEL_TYPES_8_BREAKING
?
(
0
,
_utils
.
assertNodeType
)(
"
VariableDeclaration
"
,
"
LVal
"
)
:
(
0
,
_utils
.
assertNodeType
)(
"
VariableDeclaration
"
,
"
Identifier
"
,
"
MemberExpression
"
,
"
ArrayPattern
"
,
"
ObjectPattern
"
,
"
TSAsExpression
"
,
"
TSTypeAssertion
"
,
"
TSNonNullExpression
"
)
},
right
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
)
},
body
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Statement
"
)
}
}
});
defineType
(
"
ForStatement
"
,
{
visitor
:
[
"
init
"
,
"
test
"
,
"
update
"
,
"
body
"
],
aliases
:
[
"
Scopable
"
,
"
Statement
"
,
"
For
"
,
"
BlockParent
"
,
"
Loop
"
],
fields
:
{
init
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
VariableDeclaration
"
,
"
Expression
"
),
optional
:
true
},
test
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
),
optional
:
true
},
update
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
),
optional
:
true
},
body
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Statement
"
)
}
}
});
const
functionCommon
=
{
params
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
,
"
Pattern
"
,
"
RestElement
"
)))
},
generator
:
{
default
:
false
},
async
:
{
default
:
false
}
};
exports
.
functionCommon
=
functionCommon
;
const
functionTypeAnnotationCommon
=
{
returnType
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
TypeAnnotation
"
,
"
TSTypeAnnotation
"
,
"
Noop
"
),
optional
:
true
},
typeParameters
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
TypeParameterDeclaration
"
,
"
TSTypeParameterDeclaration
"
,
"
Noop
"
),
optional
:
true
}
};
exports
.
functionTypeAnnotationCommon
=
functionTypeAnnotationCommon
;
const
functionDeclarationCommon
=
Object
.
assign
({},
functionCommon
,
{
declare
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
boolean
"
),
optional
:
true
},
id
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
),
optional
:
true
}
});
exports
.
functionDeclarationCommon
=
functionDeclarationCommon
;
defineType
(
"
FunctionDeclaration
"
,
{
builder
:
[
"
id
"
,
"
params
"
,
"
body
"
,
"
generator
"
,
"
async
"
],
visitor
:
[
"
id
"
,
"
params
"
,
"
body
"
,
"
returnType
"
,
"
typeParameters
"
],
fields
:
Object
.
assign
({},
functionDeclarationCommon
,
functionTypeAnnotationCommon
,
{
body
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
BlockStatement
"
)
},
predicate
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
DeclaredPredicate
"
,
"
InferredPredicate
"
),
optional
:
true
}
}),
aliases
:
[
"
Scopable
"
,
"
Function
"
,
"
BlockParent
"
,
"
FunctionParent
"
,
"
Statement
"
,
"
Pureish
"
,
"
Declaration
"
],
validate
:
function
()
{
if
(
!
process
.
env
.
BABEL_TYPES_8_BREAKING
)
return
()
=>
{};
const
identifier
=
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
);
return
function
(
parent
,
key
,
node
)
{
if
(
!
(
0
,
_is
.
default
)(
"
ExportDefaultDeclaration
"
,
parent
))
{
identifier
(
node
,
"
id
"
,
node
.
id
);
}
};
}()
});
defineType
(
"
FunctionExpression
"
,
{
inherits
:
"
FunctionDeclaration
"
,
aliases
:
[
"
Scopable
"
,
"
Function
"
,
"
BlockParent
"
,
"
FunctionParent
"
,
"
Expression
"
,
"
Pureish
"
],
fields
:
Object
.
assign
({},
functionCommon
,
functionTypeAnnotationCommon
,
{
id
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
),
optional
:
true
},
body
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
BlockStatement
"
)
},
predicate
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
DeclaredPredicate
"
,
"
InferredPredicate
"
),
optional
:
true
}
})
});
const
patternLikeCommon
=
{
typeAnnotation
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
TypeAnnotation
"
,
"
TSTypeAnnotation
"
,
"
Noop
"
),
optional
:
true
},
decorators
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
Decorator
"
)))
}
};
exports
.
patternLikeCommon
=
patternLikeCommon
;
defineType
(
"
Identifier
"
,
{
builder
:
[
"
name
"
],
visitor
:
[
"
typeAnnotation
"
,
"
decorators
"
],
aliases
:
[
"
Expression
"
,
"
PatternLike
"
,
"
LVal
"
,
"
TSEntityName
"
],
fields
:
Object
.
assign
({},
patternLikeCommon
,
{
name
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
string
"
),
Object
.
assign
(
function
(
node
,
key
,
val
)
{
if
(
!
process
.
env
.
BABEL_TYPES_8_BREAKING
)
return
;
if
(
!
(
0
,
_isValidIdentifier
.
default
)(
val
,
false
))
{
throw
new
TypeError
(
`"
${
val
}
" is not a valid identifier name`
);
}
},
{
type
:
"
string
"
}))
},
optional
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
boolean
"
),
optional
:
true
}
}),
validate
(
parent
,
key
,
node
)
{
if
(
!
process
.
env
.
BABEL_TYPES_8_BREAKING
)
return
;
const
match
=
/
\.(\w
+
)
$/
.
exec
(
key
);
if
(
!
match
)
return
;
const
[,
parentKey
]
=
match
;
const
nonComp
=
{
computed
:
false
};
if
(
parentKey
===
"
property
"
)
{
if
((
0
,
_is
.
default
)(
"
MemberExpression
"
,
parent
,
nonComp
))
return
;
if
((
0
,
_is
.
default
)(
"
OptionalMemberExpression
"
,
parent
,
nonComp
))
return
;
}
else
if
(
parentKey
===
"
key
"
)
{
if
((
0
,
_is
.
default
)(
"
Property
"
,
parent
,
nonComp
))
return
;
if
((
0
,
_is
.
default
)(
"
Method
"
,
parent
,
nonComp
))
return
;
}
else
if
(
parentKey
===
"
exported
"
)
{
if
((
0
,
_is
.
default
)(
"
ExportSpecifier
"
,
parent
))
return
;
}
else
if
(
parentKey
===
"
imported
"
)
{
if
((
0
,
_is
.
default
)(
"
ImportSpecifier
"
,
parent
,
{
imported
:
node
}))
return
;
}
else
if
(
parentKey
===
"
meta
"
)
{
if
((
0
,
_is
.
default
)(
"
MetaProperty
"
,
parent
,
{
meta
:
node
}))
return
;
}
if
(((
0
,
_helperValidatorIdentifier
.
isKeyword
)(
node
.
name
)
||
(
0
,
_helperValidatorIdentifier
.
isReservedWord
)(
node
.
name
,
false
))
&&
node
.
name
!==
"
this
"
)
{
throw
new
TypeError
(
`"
${
node
.
name
}
" is not a valid identifier`
);
}
}
});
defineType
(
"
IfStatement
"
,
{
visitor
:
[
"
test
"
,
"
consequent
"
,
"
alternate
"
],
aliases
:
[
"
Statement
"
,
"
Conditional
"
],
fields
:
{
test
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
)
},
consequent
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Statement
"
)
},
alternate
:
{
optional
:
true
,
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Statement
"
)
}
}
});
defineType
(
"
LabeledStatement
"
,
{
visitor
:
[
"
label
"
,
"
body
"
],
aliases
:
[
"
Statement
"
],
fields
:
{
label
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
)
},
body
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Statement
"
)
}
}
});
defineType
(
"
StringLiteral
"
,
{
builder
:
[
"
value
"
],
fields
:
{
value
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
string
"
)
}
},
aliases
:
[
"
Expression
"
,
"
Pureish
"
,
"
Literal
"
,
"
Immutable
"
]
});
defineType
(
"
NumericLiteral
"
,
{
builder
:
[
"
value
"
],
deprecatedAlias
:
"
NumberLiteral
"
,
fields
:
{
value
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
number
"
)
}
},
aliases
:
[
"
Expression
"
,
"
Pureish
"
,
"
Literal
"
,
"
Immutable
"
]
});
defineType
(
"
NullLiteral
"
,
{
aliases
:
[
"
Expression
"
,
"
Pureish
"
,
"
Literal
"
,
"
Immutable
"
]
});
defineType
(
"
BooleanLiteral
"
,
{
builder
:
[
"
value
"
],
fields
:
{
value
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
boolean
"
)
}
},
aliases
:
[
"
Expression
"
,
"
Pureish
"
,
"
Literal
"
,
"
Immutable
"
]
});
defineType
(
"
RegExpLiteral
"
,
{
builder
:
[
"
pattern
"
,
"
flags
"
],
deprecatedAlias
:
"
RegexLiteral
"
,
aliases
:
[
"
Expression
"
,
"
Pureish
"
,
"
Literal
"
],
fields
:
{
pattern
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
string
"
)
},
flags
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
string
"
),
Object
.
assign
(
function
(
node
,
key
,
val
)
{
if
(
!
process
.
env
.
BABEL_TYPES_8_BREAKING
)
return
;
const
invalid
=
/
[^
gimsuy
]
/
.
exec
(
val
);
if
(
invalid
)
{
throw
new
TypeError
(
`"
${
invalid
[
0
]}
" is not a valid RegExp flag`
);
}
},
{
type
:
"
string
"
})),
default
:
""
}
}
});
defineType
(
"
LogicalExpression
"
,
{
builder
:
[
"
operator
"
,
"
left
"
,
"
right
"
],
visitor
:
[
"
left
"
,
"
right
"
],
aliases
:
[
"
Binary
"
,
"
Expression
"
],
fields
:
{
operator
:
{
validate
:
(
0
,
_utils
.
assertOneOf
)(...
_constants
.
LOGICAL_OPERATORS
)
},
left
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
)
},
right
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
)
}
}
});
defineType
(
"
MemberExpression
"
,
{
builder
:
[
"
object
"
,
"
property
"
,
"
computed
"
,
...(
!
process
.
env
.
BABEL_TYPES_8_BREAKING
?
[
"
optional
"
]
:
[])],
visitor
:
[
"
object
"
,
"
property
"
],
aliases
:
[
"
Expression
"
,
"
LVal
"
],
fields
:
Object
.
assign
({
object
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
)
},
property
:
{
validate
:
function
()
{
const
normal
=
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
,
"
PrivateName
"
);
const
computed
=
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
);
const
validator
=
function
(
node
,
key
,
val
)
{
const
validator
=
node
.
computed
?
computed
:
normal
;
validator
(
node
,
key
,
val
);
};
validator
.
oneOfNodeTypes
=
[
"
Expression
"
,
"
Identifier
"
,
"
PrivateName
"
];
return
validator
;
}()
},
computed
:
{
default
:
false
}
},
!
process
.
env
.
BABEL_TYPES_8_BREAKING
?
{
optional
:
{
validate
:
(
0
,
_utils
.
assertOneOf
)(
true
,
false
),
optional
:
true
}
}
:
{})
});
defineType
(
"
NewExpression
"
,
{
inherits
:
"
CallExpression
"
});
defineType
(
"
Program
"
,
{
visitor
:
[
"
directives
"
,
"
body
"
],
builder
:
[
"
body
"
,
"
directives
"
,
"
sourceType
"
,
"
interpreter
"
],
fields
:
{
sourceFile
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
string
"
)
},
sourceType
:
{
validate
:
(
0
,
_utils
.
assertOneOf
)(
"
script
"
,
"
module
"
),
default
:
"
script
"
},
interpreter
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
InterpreterDirective
"
),
default
:
null
,
optional
:
true
},
directives
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
Directive
"
))),
default
:
[]
},
body
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
Statement
"
)))
}
},
aliases
:
[
"
Scopable
"
,
"
BlockParent
"
,
"
Block
"
]
});
defineType
(
"
ObjectExpression
"
,
{
visitor
:
[
"
properties
"
],
aliases
:
[
"
Expression
"
],
fields
:
{
properties
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
ObjectMethod
"
,
"
ObjectProperty
"
,
"
SpreadElement
"
)))
}
}
});
defineType
(
"
ObjectMethod
"
,
{
builder
:
[
"
kind
"
,
"
key
"
,
"
params
"
,
"
body
"
,
"
computed
"
,
"
generator
"
,
"
async
"
],
fields
:
Object
.
assign
({},
functionCommon
,
functionTypeAnnotationCommon
,
{
kind
:
Object
.
assign
({
validate
:
(
0
,
_utils
.
assertOneOf
)(
"
method
"
,
"
get
"
,
"
set
"
)
},
!
process
.
env
.
BABEL_TYPES_8_BREAKING
?
{
default
:
"
method
"
}
:
{}),
computed
:
{
default
:
false
},
key
:
{
validate
:
function
()
{
const
normal
=
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
,
"
StringLiteral
"
,
"
NumericLiteral
"
);
const
computed
=
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
);
const
validator
=
function
(
node
,
key
,
val
)
{
const
validator
=
node
.
computed
?
computed
:
normal
;
validator
(
node
,
key
,
val
);
};
validator
.
oneOfNodeTypes
=
[
"
Expression
"
,
"
Identifier
"
,
"
StringLiteral
"
,
"
NumericLiteral
"
];
return
validator
;
}()
},
decorators
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
Decorator
"
))),
optional
:
true
},
body
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
BlockStatement
"
)
}
}),
visitor
:
[
"
key
"
,
"
params
"
,
"
body
"
,
"
decorators
"
,
"
returnType
"
,
"
typeParameters
"
],
aliases
:
[
"
UserWhitespacable
"
,
"
Function
"
,
"
Scopable
"
,
"
BlockParent
"
,
"
FunctionParent
"
,
"
Method
"
,
"
ObjectMember
"
]
});
defineType
(
"
ObjectProperty
"
,
{
builder
:
[
"
key
"
,
"
value
"
,
"
computed
"
,
"
shorthand
"
,
...(
!
process
.
env
.
BABEL_TYPES_8_BREAKING
?
[
"
decorators
"
]
:
[])],
fields
:
{
computed
:
{
default
:
false
},
key
:
{
validate
:
function
()
{
const
normal
=
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
,
"
StringLiteral
"
,
"
NumericLiteral
"
,
"
BigIntLiteral
"
,
"
DecimalLiteral
"
,
"
PrivateName
"
);
const
computed
=
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
);
const
validator
=
Object
.
assign
(
function
(
node
,
key
,
val
)
{
const
validator
=
node
.
computed
?
computed
:
normal
;
validator
(
node
,
key
,
val
);
},
{
oneOfNodeTypes
:
[
"
Expression
"
,
"
Identifier
"
,
"
StringLiteral
"
,
"
NumericLiteral
"
,
"
BigIntLiteral
"
,
"
DecimalLiteral
"
,
"
PrivateName
"
]
});
return
validator
;
}()
},
value
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
,
"
PatternLike
"
)
},
shorthand
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
boolean
"
),
Object
.
assign
(
function
(
node
,
key
,
val
)
{
if
(
!
process
.
env
.
BABEL_TYPES_8_BREAKING
)
return
;
if
(
val
&&
node
.
computed
)
{
throw
new
TypeError
(
"
Property shorthand of ObjectProperty cannot be true if computed is true
"
);
}
},
{
type
:
"
boolean
"
}),
function
(
node
,
key
,
val
)
{
if
(
!
process
.
env
.
BABEL_TYPES_8_BREAKING
)
return
;
if
(
val
&&
!
(
0
,
_is
.
default
)(
"
Identifier
"
,
node
.
key
))
{
throw
new
TypeError
(
"
Property shorthand of ObjectProperty cannot be true if key is not an Identifier
"
);
}
}),
default
:
false
},
decorators
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
Decorator
"
))),
optional
:
true
}
},
visitor
:
[
"
key
"
,
"
value
"
,
"
decorators
"
],
aliases
:
[
"
UserWhitespacable
"
,
"
Property
"
,
"
ObjectMember
"
],
validate
:
function
()
{
const
pattern
=
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
,
"
Pattern
"
,
"
TSAsExpression
"
,
"
TSNonNullExpression
"
,
"
TSTypeAssertion
"
);
const
expression
=
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
);
return
function
(
parent
,
key
,
node
)
{
if
(
!
process
.
env
.
BABEL_TYPES_8_BREAKING
)
return
;
const
validator
=
(
0
,
_is
.
default
)(
"
ObjectPattern
"
,
parent
)
?
pattern
:
expression
;
validator
(
node
,
"
value
"
,
node
.
value
);
};
}()
});
defineType
(
"
RestElement
"
,
{
visitor
:
[
"
argument
"
,
"
typeAnnotation
"
],
builder
:
[
"
argument
"
],
aliases
:
[
"
LVal
"
,
"
PatternLike
"
],
deprecatedAlias
:
"
RestProperty
"
,
fields
:
Object
.
assign
({},
patternLikeCommon
,
{
argument
:
{
validate
:
!
process
.
env
.
BABEL_TYPES_8_BREAKING
?
(
0
,
_utils
.
assertNodeType
)(
"
LVal
"
)
:
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
,
"
ArrayPattern
"
,
"
ObjectPattern
"
,
"
MemberExpression
"
,
"
TSAsExpression
"
,
"
TSTypeAssertion
"
,
"
TSNonNullExpression
"
)
},
optional
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
boolean
"
),
optional
:
true
}
}),
validate
(
parent
,
key
)
{
if
(
!
process
.
env
.
BABEL_TYPES_8_BREAKING
)
return
;
const
match
=
/
(\w
+
)\[(\d
+
)\]
/
.
exec
(
key
);
if
(
!
match
)
throw
new
Error
(
"
Internal Babel error: malformed key.
"
);
const
[,
listKey
,
index
]
=
match
;
if
(
parent
[
listKey
].
length
>
+
index
+
1
)
{
throw
new
TypeError
(
`RestElement must be last element of
${
listKey
}
`
);
}
}
});
defineType
(
"
ReturnStatement
"
,
{
visitor
:
[
"
argument
"
],
aliases
:
[
"
Statement
"
,
"
Terminatorless
"
,
"
CompletionStatement
"
],
fields
:
{
argument
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
),
optional
:
true
}
}
});
defineType
(
"
SequenceExpression
"
,
{
visitor
:
[
"
expressions
"
],
fields
:
{
expressions
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
Expression
"
)))
}
},
aliases
:
[
"
Expression
"
]
});
defineType
(
"
ParenthesizedExpression
"
,
{
visitor
:
[
"
expression
"
],
aliases
:
[
"
Expression
"
,
"
ExpressionWrapper
"
],
fields
:
{
expression
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
)
}
}
});
defineType
(
"
SwitchCase
"
,
{
visitor
:
[
"
test
"
,
"
consequent
"
],
fields
:
{
test
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
),
optional
:
true
},
consequent
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
Statement
"
)))
}
}
});
defineType
(
"
SwitchStatement
"
,
{
visitor
:
[
"
discriminant
"
,
"
cases
"
],
aliases
:
[
"
Statement
"
,
"
BlockParent
"
,
"
Scopable
"
],
fields
:
{
discriminant
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
)
},
cases
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
SwitchCase
"
)))
}
}
});
defineType
(
"
ThisExpression
"
,
{
aliases
:
[
"
Expression
"
]
});
defineType
(
"
ThrowStatement
"
,
{
visitor
:
[
"
argument
"
],
aliases
:
[
"
Statement
"
,
"
Terminatorless
"
,
"
CompletionStatement
"
],
fields
:
{
argument
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
)
}
}
});
defineType
(
"
TryStatement
"
,
{
visitor
:
[
"
block
"
,
"
handler
"
,
"
finalizer
"
],
aliases
:
[
"
Statement
"
],
fields
:
{
block
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertNodeType
)(
"
BlockStatement
"
),
Object
.
assign
(
function
(
node
)
{
if
(
!
process
.
env
.
BABEL_TYPES_8_BREAKING
)
return
;
if
(
!
node
.
handler
&&
!
node
.
finalizer
)
{
throw
new
TypeError
(
"
TryStatement expects either a handler or finalizer, or both
"
);
}
},
{
oneOfNodeTypes
:
[
"
BlockStatement
"
]
}))
},
handler
:
{
optional
:
true
,
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
CatchClause
"
)
},
finalizer
:
{
optional
:
true
,
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
BlockStatement
"
)
}
}
});
defineType
(
"
UnaryExpression
"
,
{
builder
:
[
"
operator
"
,
"
argument
"
,
"
prefix
"
],
fields
:
{
prefix
:
{
default
:
true
},
argument
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
)
},
operator
:
{
validate
:
(
0
,
_utils
.
assertOneOf
)(...
_constants
.
UNARY_OPERATORS
)
}
},
visitor
:
[
"
argument
"
],
aliases
:
[
"
UnaryLike
"
,
"
Expression
"
]
});
defineType
(
"
UpdateExpression
"
,
{
builder
:
[
"
operator
"
,
"
argument
"
,
"
prefix
"
],
fields
:
{
prefix
:
{
default
:
false
},
argument
:
{
validate
:
!
process
.
env
.
BABEL_TYPES_8_BREAKING
?
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
)
:
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
,
"
MemberExpression
"
)
},
operator
:
{
validate
:
(
0
,
_utils
.
assertOneOf
)(...
_constants
.
UPDATE_OPERATORS
)
}
},
visitor
:
[
"
argument
"
],
aliases
:
[
"
Expression
"
]
});
defineType
(
"
VariableDeclaration
"
,
{
builder
:
[
"
kind
"
,
"
declarations
"
],
visitor
:
[
"
declarations
"
],
aliases
:
[
"
Statement
"
,
"
Declaration
"
],
fields
:
{
declare
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
boolean
"
),
optional
:
true
},
kind
:
{
validate
:
(
0
,
_utils
.
assertOneOf
)(
"
var
"
,
"
let
"
,
"
const
"
)
},
declarations
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
VariableDeclarator
"
)))
}
},
validate
(
parent
,
key
,
node
)
{
if
(
!
process
.
env
.
BABEL_TYPES_8_BREAKING
)
return
;
if
(
!
(
0
,
_is
.
default
)(
"
ForXStatement
"
,
parent
,
{
left
:
node
}))
return
;
if
(
node
.
declarations
.
length
!==
1
)
{
throw
new
TypeError
(
`Exactly one VariableDeclarator is required in the VariableDeclaration of a
${
parent
.
type
}
`
);
}
}
});
defineType
(
"
VariableDeclarator
"
,
{
visitor
:
[
"
id
"
,
"
init
"
],
fields
:
{
id
:
{
validate
:
function
()
{
if
(
!
process
.
env
.
BABEL_TYPES_8_BREAKING
)
{
return
(
0
,
_utils
.
assertNodeType
)(
"
LVal
"
);
}
const
normal
=
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
,
"
ArrayPattern
"
,
"
ObjectPattern
"
);
const
without
=
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
);
return
function
(
node
,
key
,
val
)
{
const
validator
=
node
.
init
?
normal
:
without
;
validator
(
node
,
key
,
val
);
};
}()
},
definite
:
{
optional
:
true
,
validate
:
(
0
,
_utils
.
assertValueType
)(
"
boolean
"
)
},
init
:
{
optional
:
true
,
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
)
}
}
});
defineType
(
"
WhileStatement
"
,
{
visitor
:
[
"
test
"
,
"
body
"
],
aliases
:
[
"
Statement
"
,
"
BlockParent
"
,
"
Loop
"
,
"
While
"
,
"
Scopable
"
],
fields
:
{
test
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
)
},
body
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Statement
"
)
}
}
});
defineType
(
"
WithStatement
"
,
{
visitor
:
[
"
object
"
,
"
body
"
],
aliases
:
[
"
Statement
"
],
fields
:
{
object
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
)
},
body
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Statement
"
)
}
}
});
defineType
(
"
AssignmentPattern
"
,
{
visitor
:
[
"
left
"
,
"
right
"
,
"
decorators
"
],
builder
:
[
"
left
"
,
"
right
"
],
aliases
:
[
"
Pattern
"
,
"
PatternLike
"
,
"
LVal
"
],
fields
:
Object
.
assign
({},
patternLikeCommon
,
{
left
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
,
"
ObjectPattern
"
,
"
ArrayPattern
"
,
"
MemberExpression
"
,
"
TSAsExpression
"
,
"
TSTypeAssertion
"
,
"
TSNonNullExpression
"
)
},
right
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
)
},
decorators
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
Decorator
"
))),
optional
:
true
}
})
});
defineType
(
"
ArrayPattern
"
,
{
visitor
:
[
"
elements
"
,
"
typeAnnotation
"
],
builder
:
[
"
elements
"
],
aliases
:
[
"
Pattern
"
,
"
PatternLike
"
,
"
LVal
"
],
fields
:
Object
.
assign
({},
patternLikeCommon
,
{
elements
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeOrValueType
)(
"
null
"
,
"
PatternLike
"
)))
},
decorators
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
Decorator
"
))),
optional
:
true
},
optional
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
boolean
"
),
optional
:
true
}
})
});
defineType
(
"
ArrowFunctionExpression
"
,
{
builder
:
[
"
params
"
,
"
body
"
,
"
async
"
],
visitor
:
[
"
params
"
,
"
body
"
,
"
returnType
"
,
"
typeParameters
"
],
aliases
:
[
"
Scopable
"
,
"
Function
"
,
"
BlockParent
"
,
"
FunctionParent
"
,
"
Expression
"
,
"
Pureish
"
],
fields
:
Object
.
assign
({},
functionCommon
,
functionTypeAnnotationCommon
,
{
expression
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
boolean
"
)
},
body
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
BlockStatement
"
,
"
Expression
"
)
},
predicate
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
DeclaredPredicate
"
,
"
InferredPredicate
"
),
optional
:
true
}
})
});
defineType
(
"
ClassBody
"
,
{
visitor
:
[
"
body
"
],
fields
:
{
body
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
ClassMethod
"
,
"
ClassPrivateMethod
"
,
"
ClassProperty
"
,
"
ClassPrivateProperty
"
,
"
ClassAccessorProperty
"
,
"
TSDeclareMethod
"
,
"
TSIndexSignature
"
,
"
StaticBlock
"
)))
}
}
});
defineType
(
"
ClassExpression
"
,
{
builder
:
[
"
id
"
,
"
superClass
"
,
"
body
"
,
"
decorators
"
],
visitor
:
[
"
id
"
,
"
body
"
,
"
superClass
"
,
"
mixins
"
,
"
typeParameters
"
,
"
superTypeParameters
"
,
"
implements
"
,
"
decorators
"
],
aliases
:
[
"
Scopable
"
,
"
Class
"
,
"
Expression
"
],
fields
:
{
id
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
),
optional
:
true
},
typeParameters
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
TypeParameterDeclaration
"
,
"
TSTypeParameterDeclaration
"
,
"
Noop
"
),
optional
:
true
},
body
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
ClassBody
"
)
},
superClass
:
{
optional
:
true
,
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
)
},
superTypeParameters
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
TypeParameterInstantiation
"
,
"
TSTypeParameterInstantiation
"
),
optional
:
true
},
implements
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
TSExpressionWithTypeArguments
"
,
"
ClassImplements
"
))),
optional
:
true
},
decorators
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
Decorator
"
))),
optional
:
true
},
mixins
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
InterfaceExtends
"
),
optional
:
true
}
}
});
defineType
(
"
ClassDeclaration
"
,
{
inherits
:
"
ClassExpression
"
,
aliases
:
[
"
Scopable
"
,
"
Class
"
,
"
Statement
"
,
"
Declaration
"
],
fields
:
{
id
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
)
},
typeParameters
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
TypeParameterDeclaration
"
,
"
TSTypeParameterDeclaration
"
,
"
Noop
"
),
optional
:
true
},
body
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
ClassBody
"
)
},
superClass
:
{
optional
:
true
,
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
)
},
superTypeParameters
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
TypeParameterInstantiation
"
,
"
TSTypeParameterInstantiation
"
),
optional
:
true
},
implements
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
TSExpressionWithTypeArguments
"
,
"
ClassImplements
"
))),
optional
:
true
},
decorators
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
Decorator
"
))),
optional
:
true
},
mixins
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
InterfaceExtends
"
),
optional
:
true
},
declare
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
boolean
"
),
optional
:
true
},
abstract
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
boolean
"
),
optional
:
true
}
},
validate
:
function
()
{
const
identifier
=
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
);
return
function
(
parent
,
key
,
node
)
{
if
(
!
process
.
env
.
BABEL_TYPES_8_BREAKING
)
return
;
if
(
!
(
0
,
_is
.
default
)(
"
ExportDefaultDeclaration
"
,
parent
))
{
identifier
(
node
,
"
id
"
,
node
.
id
);
}
};
}()
});
defineType
(
"
ExportAllDeclaration
"
,
{
visitor
:
[
"
source
"
],
aliases
:
[
"
Statement
"
,
"
Declaration
"
,
"
ModuleDeclaration
"
,
"
ExportDeclaration
"
],
fields
:
{
source
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
StringLiteral
"
)
},
exportKind
:
(
0
,
_utils
.
validateOptional
)((
0
,
_utils
.
assertOneOf
)(
"
type
"
,
"
value
"
)),
assertions
:
{
optional
:
true
,
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
ImportAttribute
"
)))
}
}
});
defineType
(
"
ExportDefaultDeclaration
"
,
{
visitor
:
[
"
declaration
"
],
aliases
:
[
"
Statement
"
,
"
Declaration
"
,
"
ModuleDeclaration
"
,
"
ExportDeclaration
"
],
fields
:
{
declaration
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
FunctionDeclaration
"
,
"
ClassDeclaration
"
,
"
Expression
"
)
},
exportKind
:
(
0
,
_utils
.
validateOptional
)((
0
,
_utils
.
assertOneOf
)(
"
value
"
))
}
});
defineType
(
"
ExportNamedDeclaration
"
,
{
visitor
:
[
"
declaration
"
,
"
specifiers
"
,
"
source
"
],
aliases
:
[
"
Statement
"
,
"
Declaration
"
,
"
ModuleDeclaration
"
,
"
ExportDeclaration
"
],
fields
:
{
declaration
:
{
optional
:
true
,
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertNodeType
)(
"
Declaration
"
),
Object
.
assign
(
function
(
node
,
key
,
val
)
{
if
(
!
process
.
env
.
BABEL_TYPES_8_BREAKING
)
return
;
if
(
val
&&
node
.
specifiers
.
length
)
{
throw
new
TypeError
(
"
Only declaration or specifiers is allowed on ExportNamedDeclaration
"
);
}
},
{
oneOfNodeTypes
:
[
"
Declaration
"
]
}),
function
(
node
,
key
,
val
)
{
if
(
!
process
.
env
.
BABEL_TYPES_8_BREAKING
)
return
;
if
(
val
&&
node
.
source
)
{
throw
new
TypeError
(
"
Cannot export a declaration from a source
"
);
}
})
},
assertions
:
{
optional
:
true
,
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
ImportAttribute
"
)))
},
specifiers
:
{
default
:
[],
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)(
function
()
{
const
sourced
=
(
0
,
_utils
.
assertNodeType
)(
"
ExportSpecifier
"
,
"
ExportDefaultSpecifier
"
,
"
ExportNamespaceSpecifier
"
);
const
sourceless
=
(
0
,
_utils
.
assertNodeType
)(
"
ExportSpecifier
"
);
if
(
!
process
.
env
.
BABEL_TYPES_8_BREAKING
)
return
sourced
;
return
function
(
node
,
key
,
val
)
{
const
validator
=
node
.
source
?
sourced
:
sourceless
;
validator
(
node
,
key
,
val
);
};
}()))
},
source
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
StringLiteral
"
),
optional
:
true
},
exportKind
:
(
0
,
_utils
.
validateOptional
)((
0
,
_utils
.
assertOneOf
)(
"
type
"
,
"
value
"
))
}
});
defineType
(
"
ExportSpecifier
"
,
{
visitor
:
[
"
local
"
,
"
exported
"
],
aliases
:
[
"
ModuleSpecifier
"
],
fields
:
{
local
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
)
},
exported
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
,
"
StringLiteral
"
)
},
exportKind
:
{
validate
:
(
0
,
_utils
.
assertOneOf
)(
"
type
"
,
"
value
"
),
optional
:
true
}
}
});
defineType
(
"
ForOfStatement
"
,
{
visitor
:
[
"
left
"
,
"
right
"
,
"
body
"
],
builder
:
[
"
left
"
,
"
right
"
,
"
body
"
,
"
await
"
],
aliases
:
[
"
Scopable
"
,
"
Statement
"
,
"
For
"
,
"
BlockParent
"
,
"
Loop
"
,
"
ForXStatement
"
],
fields
:
{
left
:
{
validate
:
function
()
{
if
(
!
process
.
env
.
BABEL_TYPES_8_BREAKING
)
{
return
(
0
,
_utils
.
assertNodeType
)(
"
VariableDeclaration
"
,
"
LVal
"
);
}
const
declaration
=
(
0
,
_utils
.
assertNodeType
)(
"
VariableDeclaration
"
);
const
lval
=
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
,
"
MemberExpression
"
,
"
ArrayPattern
"
,
"
ObjectPattern
"
,
"
TSAsExpression
"
,
"
TSTypeAssertion
"
,
"
TSNonNullExpression
"
);
return
function
(
node
,
key
,
val
)
{
if
((
0
,
_is
.
default
)(
"
VariableDeclaration
"
,
val
))
{
declaration
(
node
,
key
,
val
);
}
else
{
lval
(
node
,
key
,
val
);
}
};
}()
},
right
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
)
},
body
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Statement
"
)
},
await
:
{
default
:
false
}
}
});
defineType
(
"
ImportDeclaration
"
,
{
visitor
:
[
"
specifiers
"
,
"
source
"
],
aliases
:
[
"
Statement
"
,
"
Declaration
"
,
"
ModuleDeclaration
"
],
fields
:
{
assertions
:
{
optional
:
true
,
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
ImportAttribute
"
)))
},
specifiers
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
ImportSpecifier
"
,
"
ImportDefaultSpecifier
"
,
"
ImportNamespaceSpecifier
"
)))
},
source
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
StringLiteral
"
)
},
importKind
:
{
validate
:
(
0
,
_utils
.
assertOneOf
)(
"
type
"
,
"
typeof
"
,
"
value
"
),
optional
:
true
}
}
});
defineType
(
"
ImportDefaultSpecifier
"
,
{
visitor
:
[
"
local
"
],
aliases
:
[
"
ModuleSpecifier
"
],
fields
:
{
local
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
)
}
}
});
defineType
(
"
ImportNamespaceSpecifier
"
,
{
visitor
:
[
"
local
"
],
aliases
:
[
"
ModuleSpecifier
"
],
fields
:
{
local
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
)
}
}
});
defineType
(
"
ImportSpecifier
"
,
{
visitor
:
[
"
local
"
,
"
imported
"
],
aliases
:
[
"
ModuleSpecifier
"
],
fields
:
{
local
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
)
},
imported
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
,
"
StringLiteral
"
)
},
importKind
:
{
validate
:
(
0
,
_utils
.
assertOneOf
)(
"
type
"
,
"
typeof
"
,
"
value
"
),
optional
:
true
}
}
});
defineType
(
"
MetaProperty
"
,
{
visitor
:
[
"
meta
"
,
"
property
"
],
aliases
:
[
"
Expression
"
],
fields
:
{
meta
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
),
Object
.
assign
(
function
(
node
,
key
,
val
)
{
if
(
!
process
.
env
.
BABEL_TYPES_8_BREAKING
)
return
;
let
property
;
switch
(
val
.
name
)
{
case
"
function
"
:
property
=
"
sent
"
;
break
;
case
"
new
"
:
property
=
"
target
"
;
break
;
case
"
import
"
:
property
=
"
meta
"
;
break
;
}
if
(
!
(
0
,
_is
.
default
)(
"
Identifier
"
,
node
.
property
,
{
name
:
property
}))
{
throw
new
TypeError
(
"
Unrecognised MetaProperty
"
);
}
},
{
oneOfNodeTypes
:
[
"
Identifier
"
]
}))
},
property
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
)
}
}
});
const
classMethodOrPropertyCommon
=
{
abstract
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
boolean
"
),
optional
:
true
},
accessibility
:
{
validate
:
(
0
,
_utils
.
assertOneOf
)(
"
public
"
,
"
private
"
,
"
protected
"
),
optional
:
true
},
static
:
{
default
:
false
},
override
:
{
default
:
false
},
computed
:
{
default
:
false
},
optional
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
boolean
"
),
optional
:
true
},
key
:
{
validate
:
(
0
,
_utils
.
chain
)(
function
()
{
const
normal
=
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
,
"
StringLiteral
"
,
"
NumericLiteral
"
);
const
computed
=
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
);
return
function
(
node
,
key
,
val
)
{
const
validator
=
node
.
computed
?
computed
:
normal
;
validator
(
node
,
key
,
val
);
};
}(),
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
,
"
StringLiteral
"
,
"
NumericLiteral
"
,
"
Expression
"
))
}
};
exports
.
classMethodOrPropertyCommon
=
classMethodOrPropertyCommon
;
const
classMethodOrDeclareMethodCommon
=
Object
.
assign
({},
functionCommon
,
classMethodOrPropertyCommon
,
{
params
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
,
"
Pattern
"
,
"
RestElement
"
,
"
TSParameterProperty
"
)))
},
kind
:
{
validate
:
(
0
,
_utils
.
assertOneOf
)(
"
get
"
,
"
set
"
,
"
method
"
,
"
constructor
"
),
default
:
"
method
"
},
access
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
string
"
),
(
0
,
_utils
.
assertOneOf
)(
"
public
"
,
"
private
"
,
"
protected
"
)),
optional
:
true
},
decorators
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
Decorator
"
))),
optional
:
true
}
});
exports
.
classMethodOrDeclareMethodCommon
=
classMethodOrDeclareMethodCommon
;
defineType
(
"
ClassMethod
"
,
{
aliases
:
[
"
Function
"
,
"
Scopable
"
,
"
BlockParent
"
,
"
FunctionParent
"
,
"
Method
"
],
builder
:
[
"
kind
"
,
"
key
"
,
"
params
"
,
"
body
"
,
"
computed
"
,
"
static
"
,
"
generator
"
,
"
async
"
],
visitor
:
[
"
key
"
,
"
params
"
,
"
body
"
,
"
decorators
"
,
"
returnType
"
,
"
typeParameters
"
],
fields
:
Object
.
assign
({},
classMethodOrDeclareMethodCommon
,
functionTypeAnnotationCommon
,
{
body
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
BlockStatement
"
)
}
})
});
defineType
(
"
ObjectPattern
"
,
{
visitor
:
[
"
properties
"
,
"
typeAnnotation
"
,
"
decorators
"
],
builder
:
[
"
properties
"
],
aliases
:
[
"
Pattern
"
,
"
PatternLike
"
,
"
LVal
"
],
fields
:
Object
.
assign
({},
patternLikeCommon
,
{
properties
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
RestElement
"
,
"
ObjectProperty
"
)))
}
})
});
defineType
(
"
SpreadElement
"
,
{
visitor
:
[
"
argument
"
],
aliases
:
[
"
UnaryLike
"
],
deprecatedAlias
:
"
SpreadProperty
"
,
fields
:
{
argument
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
)
}
}
});
defineType
(
"
Super
"
,
{
aliases
:
[
"
Expression
"
]
});
defineType
(
"
TaggedTemplateExpression
"
,
{
visitor
:
[
"
tag
"
,
"
quasi
"
,
"
typeParameters
"
],
builder
:
[
"
tag
"
,
"
quasi
"
],
aliases
:
[
"
Expression
"
],
fields
:
{
tag
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
)
},
quasi
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
TemplateLiteral
"
)
},
typeParameters
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
TypeParameterInstantiation
"
,
"
TSTypeParameterInstantiation
"
),
optional
:
true
}
}
});
defineType
(
"
TemplateElement
"
,
{
builder
:
[
"
value
"
,
"
tail
"
],
fields
:
{
value
:
{
validate
:
(
0
,
_utils
.
assertShape
)({
raw
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
string
"
)
},
cooked
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
string
"
),
optional
:
true
}
})
},
tail
:
{
default
:
false
}
}
});
defineType
(
"
TemplateLiteral
"
,
{
visitor
:
[
"
quasis
"
,
"
expressions
"
],
aliases
:
[
"
Expression
"
,
"
Literal
"
],
fields
:
{
quasis
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
TemplateElement
"
)))
},
expressions
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
Expression
"
,
"
TSType
"
)),
function
(
node
,
key
,
val
)
{
if
(
node
.
quasis
.
length
!==
val
.
length
+
1
)
{
throw
new
TypeError
(
`Number of
${
node
.
type
}
quasis should be exactly one more than the number of expressions.\nExpected
${
val
.
length
+
1
}
quasis but got
${
node
.
quasis
.
length
}
`
);
}
})
}
}
});
defineType
(
"
YieldExpression
"
,
{
builder
:
[
"
argument
"
,
"
delegate
"
],
visitor
:
[
"
argument
"
],
aliases
:
[
"
Expression
"
,
"
Terminatorless
"
],
fields
:
{
delegate
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
boolean
"
),
Object
.
assign
(
function
(
node
,
key
,
val
)
{
if
(
!
process
.
env
.
BABEL_TYPES_8_BREAKING
)
return
;
if
(
val
&&
!
node
.
argument
)
{
throw
new
TypeError
(
"
Property delegate of YieldExpression cannot be true if there is no argument
"
);
}
},
{
type
:
"
boolean
"
})),
default
:
false
},
argument
:
{
optional
:
true
,
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
)
}
}
});
defineType
(
"
AwaitExpression
"
,
{
builder
:
[
"
argument
"
],
visitor
:
[
"
argument
"
],
aliases
:
[
"
Expression
"
,
"
Terminatorless
"
],
fields
:
{
argument
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
)
}
}
});
defineType
(
"
Import
"
,
{
aliases
:
[
"
Expression
"
]
});
defineType
(
"
BigIntLiteral
"
,
{
builder
:
[
"
value
"
],
fields
:
{
value
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
string
"
)
}
},
aliases
:
[
"
Expression
"
,
"
Pureish
"
,
"
Literal
"
,
"
Immutable
"
]
});
defineType
(
"
ExportNamespaceSpecifier
"
,
{
visitor
:
[
"
exported
"
],
aliases
:
[
"
ModuleSpecifier
"
],
fields
:
{
exported
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
)
}
}
});
defineType
(
"
OptionalMemberExpression
"
,
{
builder
:
[
"
object
"
,
"
property
"
,
"
computed
"
,
"
optional
"
],
visitor
:
[
"
object
"
,
"
property
"
],
aliases
:
[
"
Expression
"
],
fields
:
{
object
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
)
},
property
:
{
validate
:
function
()
{
const
normal
=
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
);
const
computed
=
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
);
const
validator
=
Object
.
assign
(
function
(
node
,
key
,
val
)
{
const
validator
=
node
.
computed
?
computed
:
normal
;
validator
(
node
,
key
,
val
);
},
{
oneOfNodeTypes
:
[
"
Expression
"
,
"
Identifier
"
]
});
return
validator
;
}()
},
computed
:
{
default
:
false
},
optional
:
{
validate
:
!
process
.
env
.
BABEL_TYPES_8_BREAKING
?
(
0
,
_utils
.
assertValueType
)(
"
boolean
"
)
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
boolean
"
),
(
0
,
_utils
.
assertOptionalChainStart
)())
}
}
});
defineType
(
"
OptionalCallExpression
"
,
{
visitor
:
[
"
callee
"
,
"
arguments
"
,
"
typeParameters
"
,
"
typeArguments
"
],
builder
:
[
"
callee
"
,
"
arguments
"
,
"
optional
"
],
aliases
:
[
"
Expression
"
],
fields
:
{
callee
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
)
},
arguments
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
Expression
"
,
"
SpreadElement
"
,
"
JSXNamespacedName
"
,
"
ArgumentPlaceholder
"
)))
},
optional
:
{
validate
:
!
process
.
env
.
BABEL_TYPES_8_BREAKING
?
(
0
,
_utils
.
assertValueType
)(
"
boolean
"
)
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
boolean
"
),
(
0
,
_utils
.
assertOptionalChainStart
)())
},
typeArguments
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
TypeParameterInstantiation
"
),
optional
:
true
},
typeParameters
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
TSTypeParameterInstantiation
"
),
optional
:
true
}
}
});
defineType
(
"
ClassProperty
"
,
{
visitor
:
[
"
key
"
,
"
value
"
,
"
typeAnnotation
"
,
"
decorators
"
],
builder
:
[
"
key
"
,
"
value
"
,
"
typeAnnotation
"
,
"
decorators
"
,
"
computed
"
,
"
static
"
],
aliases
:
[
"
Property
"
],
fields
:
Object
.
assign
({},
classMethodOrPropertyCommon
,
{
value
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
),
optional
:
true
},
definite
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
boolean
"
),
optional
:
true
},
typeAnnotation
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
TypeAnnotation
"
,
"
TSTypeAnnotation
"
,
"
Noop
"
),
optional
:
true
},
decorators
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
Decorator
"
))),
optional
:
true
},
readonly
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
boolean
"
),
optional
:
true
},
declare
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
boolean
"
),
optional
:
true
},
variance
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Variance
"
),
optional
:
true
}
})
});
defineType
(
"
ClassAccessorProperty
"
,
{
visitor
:
[
"
key
"
,
"
value
"
,
"
typeAnnotation
"
,
"
decorators
"
],
builder
:
[
"
key
"
,
"
value
"
,
"
typeAnnotation
"
,
"
decorators
"
,
"
computed
"
,
"
static
"
],
aliases
:
[
"
Property
"
,
"
Accessor
"
],
fields
:
Object
.
assign
({},
classMethodOrPropertyCommon
,
{
key
:
{
validate
:
(
0
,
_utils
.
chain
)(
function
()
{
const
normal
=
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
,
"
StringLiteral
"
,
"
NumericLiteral
"
,
"
PrivateName
"
);
const
computed
=
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
);
return
function
(
node
,
key
,
val
)
{
const
validator
=
node
.
computed
?
computed
:
normal
;
validator
(
node
,
key
,
val
);
};
}(),
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
,
"
StringLiteral
"
,
"
NumericLiteral
"
,
"
Expression
"
,
"
PrivateName
"
))
},
value
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
),
optional
:
true
},
definite
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
boolean
"
),
optional
:
true
},
typeAnnotation
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
TypeAnnotation
"
,
"
TSTypeAnnotation
"
,
"
Noop
"
),
optional
:
true
},
decorators
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
Decorator
"
))),
optional
:
true
},
readonly
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
boolean
"
),
optional
:
true
},
declare
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
boolean
"
),
optional
:
true
},
variance
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Variance
"
),
optional
:
true
}
})
});
defineType
(
"
ClassPrivateProperty
"
,
{
visitor
:
[
"
key
"
,
"
value
"
,
"
decorators
"
,
"
typeAnnotation
"
],
builder
:
[
"
key
"
,
"
value
"
,
"
decorators
"
,
"
static
"
],
aliases
:
[
"
Property
"
,
"
Private
"
],
fields
:
{
key
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
PrivateName
"
)
},
value
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
),
optional
:
true
},
typeAnnotation
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
TypeAnnotation
"
,
"
TSTypeAnnotation
"
,
"
Noop
"
),
optional
:
true
},
decorators
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
Decorator
"
))),
optional
:
true
},
readonly
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
boolean
"
),
optional
:
true
},
definite
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
boolean
"
),
optional
:
true
},
variance
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Variance
"
),
optional
:
true
}
}
});
defineType
(
"
ClassPrivateMethod
"
,
{
builder
:
[
"
kind
"
,
"
key
"
,
"
params
"
,
"
body
"
,
"
static
"
],
visitor
:
[
"
key
"
,
"
params
"
,
"
body
"
,
"
decorators
"
,
"
returnType
"
,
"
typeParameters
"
],
aliases
:
[
"
Function
"
,
"
Scopable
"
,
"
BlockParent
"
,
"
FunctionParent
"
,
"
Method
"
,
"
Private
"
],
fields
:
Object
.
assign
({},
classMethodOrDeclareMethodCommon
,
functionTypeAnnotationCommon
,
{
key
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
PrivateName
"
)
},
body
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
BlockStatement
"
)
}
})
});
defineType
(
"
PrivateName
"
,
{
visitor
:
[
"
id
"
],
aliases
:
[
"
Private
"
],
fields
:
{
id
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
)
}
}
});
defineType
(
"
StaticBlock
"
,
{
visitor
:
[
"
body
"
],
fields
:
{
body
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
Statement
"
)))
}
},
aliases
:
[
"
Scopable
"
,
"
BlockParent
"
,
"
FunctionParent
"
]
});
\ No newline at end of file
node_modules/@babel/types/lib/definitions/experimental.js
0 → 100644
View file @
3b78e297
"
use strict
"
;
var
_utils
=
require
(
"
./utils
"
);
(
0
,
_utils
.
default
)(
"
ArgumentPlaceholder
"
,
{});
(
0
,
_utils
.
default
)(
"
BindExpression
"
,
{
visitor
:
[
"
object
"
,
"
callee
"
],
aliases
:
[
"
Expression
"
],
fields
:
!
process
.
env
.
BABEL_TYPES_8_BREAKING
?
{
object
:
{
validate
:
Object
.
assign
(()
=>
{},
{
oneOfNodeTypes
:
[
"
Expression
"
]
})
},
callee
:
{
validate
:
Object
.
assign
(()
=>
{},
{
oneOfNodeTypes
:
[
"
Expression
"
]
})
}
}
:
{
object
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
)
},
callee
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
)
}
}
});
(
0
,
_utils
.
default
)(
"
ImportAttribute
"
,
{
visitor
:
[
"
key
"
,
"
value
"
],
fields
:
{
key
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
,
"
StringLiteral
"
)
},
value
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
StringLiteral
"
)
}
}
});
(
0
,
_utils
.
default
)(
"
Decorator
"
,
{
visitor
:
[
"
expression
"
],
fields
:
{
expression
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
)
}
}
});
(
0
,
_utils
.
default
)(
"
DoExpression
"
,
{
visitor
:
[
"
body
"
],
builder
:
[
"
body
"
,
"
async
"
],
aliases
:
[
"
Expression
"
],
fields
:
{
body
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
BlockStatement
"
)
},
async
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
boolean
"
),
default
:
false
}
}
});
(
0
,
_utils
.
default
)(
"
ExportDefaultSpecifier
"
,
{
visitor
:
[
"
exported
"
],
aliases
:
[
"
ModuleSpecifier
"
],
fields
:
{
exported
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
)
}
}
});
(
0
,
_utils
.
default
)(
"
RecordExpression
"
,
{
visitor
:
[
"
properties
"
],
aliases
:
[
"
Expression
"
],
fields
:
{
properties
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
ObjectProperty
"
,
"
SpreadElement
"
)))
}
}
});
(
0
,
_utils
.
default
)(
"
TupleExpression
"
,
{
fields
:
{
elements
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
Expression
"
,
"
SpreadElement
"
))),
default
:
[]
}
},
visitor
:
[
"
elements
"
],
aliases
:
[
"
Expression
"
]
});
(
0
,
_utils
.
default
)(
"
DecimalLiteral
"
,
{
builder
:
[
"
value
"
],
fields
:
{
value
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
string
"
)
}
},
aliases
:
[
"
Expression
"
,
"
Pureish
"
,
"
Literal
"
,
"
Immutable
"
]
});
(
0
,
_utils
.
default
)(
"
ModuleExpression
"
,
{
visitor
:
[
"
body
"
],
fields
:
{
body
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Program
"
)
}
},
aliases
:
[
"
Expression
"
]
});
(
0
,
_utils
.
default
)(
"
TopicReference
"
,
{
aliases
:
[
"
Expression
"
]
});
(
0
,
_utils
.
default
)(
"
PipelineTopicExpression
"
,
{
builder
:
[
"
expression
"
],
visitor
:
[
"
expression
"
],
fields
:
{
expression
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
)
}
},
aliases
:
[
"
Expression
"
]
});
(
0
,
_utils
.
default
)(
"
PipelineBareFunction
"
,
{
builder
:
[
"
callee
"
],
visitor
:
[
"
callee
"
],
fields
:
{
callee
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
)
}
},
aliases
:
[
"
Expression
"
]
});
(
0
,
_utils
.
default
)(
"
PipelinePrimaryTopicReference
"
,
{
aliases
:
[
"
Expression
"
]
});
\ No newline at end of file
node_modules/@babel/types/lib/definitions/flow.js
0 → 100644
View file @
3b78e297
"
use strict
"
;
var
_utils
=
require
(
"
./utils
"
);
const
defineType
=
(
0
,
_utils
.
defineAliasedType
)(
"
Flow
"
);
const
defineInterfaceishType
=
name
=>
{
defineType
(
name
,
{
builder
:
[
"
id
"
,
"
typeParameters
"
,
"
extends
"
,
"
body
"
],
visitor
:
[
"
id
"
,
"
typeParameters
"
,
"
extends
"
,
"
mixins
"
,
"
implements
"
,
"
body
"
],
aliases
:
[
"
FlowDeclaration
"
,
"
Statement
"
,
"
Declaration
"
],
fields
:
{
id
:
(
0
,
_utils
.
validateType
)(
"
Identifier
"
),
typeParameters
:
(
0
,
_utils
.
validateOptionalType
)(
"
TypeParameterDeclaration
"
),
extends
:
(
0
,
_utils
.
validateOptional
)((
0
,
_utils
.
arrayOfType
)(
"
InterfaceExtends
"
)),
mixins
:
(
0
,
_utils
.
validateOptional
)((
0
,
_utils
.
arrayOfType
)(
"
InterfaceExtends
"
)),
implements
:
(
0
,
_utils
.
validateOptional
)((
0
,
_utils
.
arrayOfType
)(
"
ClassImplements
"
)),
body
:
(
0
,
_utils
.
validateType
)(
"
ObjectTypeAnnotation
"
)
}
});
};
defineType
(
"
AnyTypeAnnotation
"
,
{
aliases
:
[
"
FlowType
"
,
"
FlowBaseAnnotation
"
]
});
defineType
(
"
ArrayTypeAnnotation
"
,
{
visitor
:
[
"
elementType
"
],
aliases
:
[
"
FlowType
"
],
fields
:
{
elementType
:
(
0
,
_utils
.
validateType
)(
"
FlowType
"
)
}
});
defineType
(
"
BooleanTypeAnnotation
"
,
{
aliases
:
[
"
FlowType
"
,
"
FlowBaseAnnotation
"
]
});
defineType
(
"
BooleanLiteralTypeAnnotation
"
,
{
builder
:
[
"
value
"
],
aliases
:
[
"
FlowType
"
],
fields
:
{
value
:
(
0
,
_utils
.
validate
)((
0
,
_utils
.
assertValueType
)(
"
boolean
"
))
}
});
defineType
(
"
NullLiteralTypeAnnotation
"
,
{
aliases
:
[
"
FlowType
"
,
"
FlowBaseAnnotation
"
]
});
defineType
(
"
ClassImplements
"
,
{
visitor
:
[
"
id
"
,
"
typeParameters
"
],
fields
:
{
id
:
(
0
,
_utils
.
validateType
)(
"
Identifier
"
),
typeParameters
:
(
0
,
_utils
.
validateOptionalType
)(
"
TypeParameterInstantiation
"
)
}
});
defineInterfaceishType
(
"
DeclareClass
"
);
defineType
(
"
DeclareFunction
"
,
{
visitor
:
[
"
id
"
],
aliases
:
[
"
FlowDeclaration
"
,
"
Statement
"
,
"
Declaration
"
],
fields
:
{
id
:
(
0
,
_utils
.
validateType
)(
"
Identifier
"
),
predicate
:
(
0
,
_utils
.
validateOptionalType
)(
"
DeclaredPredicate
"
)
}
});
defineInterfaceishType
(
"
DeclareInterface
"
);
defineType
(
"
DeclareModule
"
,
{
builder
:
[
"
id
"
,
"
body
"
,
"
kind
"
],
visitor
:
[
"
id
"
,
"
body
"
],
aliases
:
[
"
FlowDeclaration
"
,
"
Statement
"
,
"
Declaration
"
],
fields
:
{
id
:
(
0
,
_utils
.
validateType
)([
"
Identifier
"
,
"
StringLiteral
"
]),
body
:
(
0
,
_utils
.
validateType
)(
"
BlockStatement
"
),
kind
:
(
0
,
_utils
.
validateOptional
)((
0
,
_utils
.
assertOneOf
)(
"
CommonJS
"
,
"
ES
"
))
}
});
defineType
(
"
DeclareModuleExports
"
,
{
visitor
:
[
"
typeAnnotation
"
],
aliases
:
[
"
FlowDeclaration
"
,
"
Statement
"
,
"
Declaration
"
],
fields
:
{
typeAnnotation
:
(
0
,
_utils
.
validateType
)(
"
TypeAnnotation
"
)
}
});
defineType
(
"
DeclareTypeAlias
"
,
{
visitor
:
[
"
id
"
,
"
typeParameters
"
,
"
right
"
],
aliases
:
[
"
FlowDeclaration
"
,
"
Statement
"
,
"
Declaration
"
],
fields
:
{
id
:
(
0
,
_utils
.
validateType
)(
"
Identifier
"
),
typeParameters
:
(
0
,
_utils
.
validateOptionalType
)(
"
TypeParameterDeclaration
"
),
right
:
(
0
,
_utils
.
validateType
)(
"
FlowType
"
)
}
});
defineType
(
"
DeclareOpaqueType
"
,
{
visitor
:
[
"
id
"
,
"
typeParameters
"
,
"
supertype
"
],
aliases
:
[
"
FlowDeclaration
"
,
"
Statement
"
,
"
Declaration
"
],
fields
:
{
id
:
(
0
,
_utils
.
validateType
)(
"
Identifier
"
),
typeParameters
:
(
0
,
_utils
.
validateOptionalType
)(
"
TypeParameterDeclaration
"
),
supertype
:
(
0
,
_utils
.
validateOptionalType
)(
"
FlowType
"
),
impltype
:
(
0
,
_utils
.
validateOptionalType
)(
"
FlowType
"
)
}
});
defineType
(
"
DeclareVariable
"
,
{
visitor
:
[
"
id
"
],
aliases
:
[
"
FlowDeclaration
"
,
"
Statement
"
,
"
Declaration
"
],
fields
:
{
id
:
(
0
,
_utils
.
validateType
)(
"
Identifier
"
)
}
});
defineType
(
"
DeclareExportDeclaration
"
,
{
visitor
:
[
"
declaration
"
,
"
specifiers
"
,
"
source
"
],
aliases
:
[
"
FlowDeclaration
"
,
"
Statement
"
,
"
Declaration
"
],
fields
:
{
declaration
:
(
0
,
_utils
.
validateOptionalType
)(
"
Flow
"
),
specifiers
:
(
0
,
_utils
.
validateOptional
)((
0
,
_utils
.
arrayOfType
)([
"
ExportSpecifier
"
,
"
ExportNamespaceSpecifier
"
])),
source
:
(
0
,
_utils
.
validateOptionalType
)(
"
StringLiteral
"
),
default
:
(
0
,
_utils
.
validateOptional
)((
0
,
_utils
.
assertValueType
)(
"
boolean
"
))
}
});
defineType
(
"
DeclareExportAllDeclaration
"
,
{
visitor
:
[
"
source
"
],
aliases
:
[
"
FlowDeclaration
"
,
"
Statement
"
,
"
Declaration
"
],
fields
:
{
source
:
(
0
,
_utils
.
validateType
)(
"
StringLiteral
"
),
exportKind
:
(
0
,
_utils
.
validateOptional
)((
0
,
_utils
.
assertOneOf
)(
"
type
"
,
"
value
"
))
}
});
defineType
(
"
DeclaredPredicate
"
,
{
visitor
:
[
"
value
"
],
aliases
:
[
"
FlowPredicate
"
],
fields
:
{
value
:
(
0
,
_utils
.
validateType
)(
"
Flow
"
)
}
});
defineType
(
"
ExistsTypeAnnotation
"
,
{
aliases
:
[
"
FlowType
"
]
});
defineType
(
"
FunctionTypeAnnotation
"
,
{
visitor
:
[
"
typeParameters
"
,
"
params
"
,
"
rest
"
,
"
returnType
"
],
aliases
:
[
"
FlowType
"
],
fields
:
{
typeParameters
:
(
0
,
_utils
.
validateOptionalType
)(
"
TypeParameterDeclaration
"
),
params
:
(
0
,
_utils
.
validate
)((
0
,
_utils
.
arrayOfType
)(
"
FunctionTypeParam
"
)),
rest
:
(
0
,
_utils
.
validateOptionalType
)(
"
FunctionTypeParam
"
),
this
:
(
0
,
_utils
.
validateOptionalType
)(
"
FunctionTypeParam
"
),
returnType
:
(
0
,
_utils
.
validateType
)(
"
FlowType
"
)
}
});
defineType
(
"
FunctionTypeParam
"
,
{
visitor
:
[
"
name
"
,
"
typeAnnotation
"
],
fields
:
{
name
:
(
0
,
_utils
.
validateOptionalType
)(
"
Identifier
"
),
typeAnnotation
:
(
0
,
_utils
.
validateType
)(
"
FlowType
"
),
optional
:
(
0
,
_utils
.
validateOptional
)((
0
,
_utils
.
assertValueType
)(
"
boolean
"
))
}
});
defineType
(
"
GenericTypeAnnotation
"
,
{
visitor
:
[
"
id
"
,
"
typeParameters
"
],
aliases
:
[
"
FlowType
"
],
fields
:
{
id
:
(
0
,
_utils
.
validateType
)([
"
Identifier
"
,
"
QualifiedTypeIdentifier
"
]),
typeParameters
:
(
0
,
_utils
.
validateOptionalType
)(
"
TypeParameterInstantiation
"
)
}
});
defineType
(
"
InferredPredicate
"
,
{
aliases
:
[
"
FlowPredicate
"
]
});
defineType
(
"
InterfaceExtends
"
,
{
visitor
:
[
"
id
"
,
"
typeParameters
"
],
fields
:
{
id
:
(
0
,
_utils
.
validateType
)([
"
Identifier
"
,
"
QualifiedTypeIdentifier
"
]),
typeParameters
:
(
0
,
_utils
.
validateOptionalType
)(
"
TypeParameterInstantiation
"
)
}
});
defineInterfaceishType
(
"
InterfaceDeclaration
"
);
defineType
(
"
InterfaceTypeAnnotation
"
,
{
visitor
:
[
"
extends
"
,
"
body
"
],
aliases
:
[
"
FlowType
"
],
fields
:
{
extends
:
(
0
,
_utils
.
validateOptional
)((
0
,
_utils
.
arrayOfType
)(
"
InterfaceExtends
"
)),
body
:
(
0
,
_utils
.
validateType
)(
"
ObjectTypeAnnotation
"
)
}
});
defineType
(
"
IntersectionTypeAnnotation
"
,
{
visitor
:
[
"
types
"
],
aliases
:
[
"
FlowType
"
],
fields
:
{
types
:
(
0
,
_utils
.
validate
)((
0
,
_utils
.
arrayOfType
)(
"
FlowType
"
))
}
});
defineType
(
"
MixedTypeAnnotation
"
,
{
aliases
:
[
"
FlowType
"
,
"
FlowBaseAnnotation
"
]
});
defineType
(
"
EmptyTypeAnnotation
"
,
{
aliases
:
[
"
FlowType
"
,
"
FlowBaseAnnotation
"
]
});
defineType
(
"
NullableTypeAnnotation
"
,
{
visitor
:
[
"
typeAnnotation
"
],
aliases
:
[
"
FlowType
"
],
fields
:
{
typeAnnotation
:
(
0
,
_utils
.
validateType
)(
"
FlowType
"
)
}
});
defineType
(
"
NumberLiteralTypeAnnotation
"
,
{
builder
:
[
"
value
"
],
aliases
:
[
"
FlowType
"
],
fields
:
{
value
:
(
0
,
_utils
.
validate
)((
0
,
_utils
.
assertValueType
)(
"
number
"
))
}
});
defineType
(
"
NumberTypeAnnotation
"
,
{
aliases
:
[
"
FlowType
"
,
"
FlowBaseAnnotation
"
]
});
defineType
(
"
ObjectTypeAnnotation
"
,
{
visitor
:
[
"
properties
"
,
"
indexers
"
,
"
callProperties
"
,
"
internalSlots
"
],
aliases
:
[
"
FlowType
"
],
builder
:
[
"
properties
"
,
"
indexers
"
,
"
callProperties
"
,
"
internalSlots
"
,
"
exact
"
],
fields
:
{
properties
:
(
0
,
_utils
.
validate
)((
0
,
_utils
.
arrayOfType
)([
"
ObjectTypeProperty
"
,
"
ObjectTypeSpreadProperty
"
])),
indexers
:
{
validate
:
(
0
,
_utils
.
arrayOfType
)(
"
ObjectTypeIndexer
"
),
optional
:
true
,
default
:
[]
},
callProperties
:
{
validate
:
(
0
,
_utils
.
arrayOfType
)(
"
ObjectTypeCallProperty
"
),
optional
:
true
,
default
:
[]
},
internalSlots
:
{
validate
:
(
0
,
_utils
.
arrayOfType
)(
"
ObjectTypeInternalSlot
"
),
optional
:
true
,
default
:
[]
},
exact
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
boolean
"
),
default
:
false
},
inexact
:
(
0
,
_utils
.
validateOptional
)((
0
,
_utils
.
assertValueType
)(
"
boolean
"
))
}
});
defineType
(
"
ObjectTypeInternalSlot
"
,
{
visitor
:
[
"
id
"
,
"
value
"
,
"
optional
"
,
"
static
"
,
"
method
"
],
aliases
:
[
"
UserWhitespacable
"
],
fields
:
{
id
:
(
0
,
_utils
.
validateType
)(
"
Identifier
"
),
value
:
(
0
,
_utils
.
validateType
)(
"
FlowType
"
),
optional
:
(
0
,
_utils
.
validate
)((
0
,
_utils
.
assertValueType
)(
"
boolean
"
)),
static
:
(
0
,
_utils
.
validate
)((
0
,
_utils
.
assertValueType
)(
"
boolean
"
)),
method
:
(
0
,
_utils
.
validate
)((
0
,
_utils
.
assertValueType
)(
"
boolean
"
))
}
});
defineType
(
"
ObjectTypeCallProperty
"
,
{
visitor
:
[
"
value
"
],
aliases
:
[
"
UserWhitespacable
"
],
fields
:
{
value
:
(
0
,
_utils
.
validateType
)(
"
FlowType
"
),
static
:
(
0
,
_utils
.
validate
)((
0
,
_utils
.
assertValueType
)(
"
boolean
"
))
}
});
defineType
(
"
ObjectTypeIndexer
"
,
{
visitor
:
[
"
id
"
,
"
key
"
,
"
value
"
,
"
variance
"
],
aliases
:
[
"
UserWhitespacable
"
],
fields
:
{
id
:
(
0
,
_utils
.
validateOptionalType
)(
"
Identifier
"
),
key
:
(
0
,
_utils
.
validateType
)(
"
FlowType
"
),
value
:
(
0
,
_utils
.
validateType
)(
"
FlowType
"
),
static
:
(
0
,
_utils
.
validate
)((
0
,
_utils
.
assertValueType
)(
"
boolean
"
)),
variance
:
(
0
,
_utils
.
validateOptionalType
)(
"
Variance
"
)
}
});
defineType
(
"
ObjectTypeProperty
"
,
{
visitor
:
[
"
key
"
,
"
value
"
,
"
variance
"
],
aliases
:
[
"
UserWhitespacable
"
],
fields
:
{
key
:
(
0
,
_utils
.
validateType
)([
"
Identifier
"
,
"
StringLiteral
"
]),
value
:
(
0
,
_utils
.
validateType
)(
"
FlowType
"
),
kind
:
(
0
,
_utils
.
validate
)((
0
,
_utils
.
assertOneOf
)(
"
init
"
,
"
get
"
,
"
set
"
)),
static
:
(
0
,
_utils
.
validate
)((
0
,
_utils
.
assertValueType
)(
"
boolean
"
)),
proto
:
(
0
,
_utils
.
validate
)((
0
,
_utils
.
assertValueType
)(
"
boolean
"
)),
optional
:
(
0
,
_utils
.
validate
)((
0
,
_utils
.
assertValueType
)(
"
boolean
"
)),
variance
:
(
0
,
_utils
.
validateOptionalType
)(
"
Variance
"
),
method
:
(
0
,
_utils
.
validate
)((
0
,
_utils
.
assertValueType
)(
"
boolean
"
))
}
});
defineType
(
"
ObjectTypeSpreadProperty
"
,
{
visitor
:
[
"
argument
"
],
aliases
:
[
"
UserWhitespacable
"
],
fields
:
{
argument
:
(
0
,
_utils
.
validateType
)(
"
FlowType
"
)
}
});
defineType
(
"
OpaqueType
"
,
{
visitor
:
[
"
id
"
,
"
typeParameters
"
,
"
supertype
"
,
"
impltype
"
],
aliases
:
[
"
FlowDeclaration
"
,
"
Statement
"
,
"
Declaration
"
],
fields
:
{
id
:
(
0
,
_utils
.
validateType
)(
"
Identifier
"
),
typeParameters
:
(
0
,
_utils
.
validateOptionalType
)(
"
TypeParameterDeclaration
"
),
supertype
:
(
0
,
_utils
.
validateOptionalType
)(
"
FlowType
"
),
impltype
:
(
0
,
_utils
.
validateType
)(
"
FlowType
"
)
}
});
defineType
(
"
QualifiedTypeIdentifier
"
,
{
visitor
:
[
"
id
"
,
"
qualification
"
],
fields
:
{
id
:
(
0
,
_utils
.
validateType
)(
"
Identifier
"
),
qualification
:
(
0
,
_utils
.
validateType
)([
"
Identifier
"
,
"
QualifiedTypeIdentifier
"
])
}
});
defineType
(
"
StringLiteralTypeAnnotation
"
,
{
builder
:
[
"
value
"
],
aliases
:
[
"
FlowType
"
],
fields
:
{
value
:
(
0
,
_utils
.
validate
)((
0
,
_utils
.
assertValueType
)(
"
string
"
))
}
});
defineType
(
"
StringTypeAnnotation
"
,
{
aliases
:
[
"
FlowType
"
,
"
FlowBaseAnnotation
"
]
});
defineType
(
"
SymbolTypeAnnotation
"
,
{
aliases
:
[
"
FlowType
"
,
"
FlowBaseAnnotation
"
]
});
defineType
(
"
ThisTypeAnnotation
"
,
{
aliases
:
[
"
FlowType
"
,
"
FlowBaseAnnotation
"
]
});
defineType
(
"
TupleTypeAnnotation
"
,
{
visitor
:
[
"
types
"
],
aliases
:
[
"
FlowType
"
],
fields
:
{
types
:
(
0
,
_utils
.
validate
)((
0
,
_utils
.
arrayOfType
)(
"
FlowType
"
))
}
});
defineType
(
"
TypeofTypeAnnotation
"
,
{
visitor
:
[
"
argument
"
],
aliases
:
[
"
FlowType
"
],
fields
:
{
argument
:
(
0
,
_utils
.
validateType
)(
"
FlowType
"
)
}
});
defineType
(
"
TypeAlias
"
,
{
visitor
:
[
"
id
"
,
"
typeParameters
"
,
"
right
"
],
aliases
:
[
"
FlowDeclaration
"
,
"
Statement
"
,
"
Declaration
"
],
fields
:
{
id
:
(
0
,
_utils
.
validateType
)(
"
Identifier
"
),
typeParameters
:
(
0
,
_utils
.
validateOptionalType
)(
"
TypeParameterDeclaration
"
),
right
:
(
0
,
_utils
.
validateType
)(
"
FlowType
"
)
}
});
defineType
(
"
TypeAnnotation
"
,
{
visitor
:
[
"
typeAnnotation
"
],
fields
:
{
typeAnnotation
:
(
0
,
_utils
.
validateType
)(
"
FlowType
"
)
}
});
defineType
(
"
TypeCastExpression
"
,
{
visitor
:
[
"
expression
"
,
"
typeAnnotation
"
],
aliases
:
[
"
ExpressionWrapper
"
,
"
Expression
"
],
fields
:
{
expression
:
(
0
,
_utils
.
validateType
)(
"
Expression
"
),
typeAnnotation
:
(
0
,
_utils
.
validateType
)(
"
TypeAnnotation
"
)
}
});
defineType
(
"
TypeParameter
"
,
{
visitor
:
[
"
bound
"
,
"
default
"
,
"
variance
"
],
fields
:
{
name
:
(
0
,
_utils
.
validate
)((
0
,
_utils
.
assertValueType
)(
"
string
"
)),
bound
:
(
0
,
_utils
.
validateOptionalType
)(
"
TypeAnnotation
"
),
default
:
(
0
,
_utils
.
validateOptionalType
)(
"
FlowType
"
),
variance
:
(
0
,
_utils
.
validateOptionalType
)(
"
Variance
"
)
}
});
defineType
(
"
TypeParameterDeclaration
"
,
{
visitor
:
[
"
params
"
],
fields
:
{
params
:
(
0
,
_utils
.
validate
)((
0
,
_utils
.
arrayOfType
)(
"
TypeParameter
"
))
}
});
defineType
(
"
TypeParameterInstantiation
"
,
{
visitor
:
[
"
params
"
],
fields
:
{
params
:
(
0
,
_utils
.
validate
)((
0
,
_utils
.
arrayOfType
)(
"
FlowType
"
))
}
});
defineType
(
"
UnionTypeAnnotation
"
,
{
visitor
:
[
"
types
"
],
aliases
:
[
"
FlowType
"
],
fields
:
{
types
:
(
0
,
_utils
.
validate
)((
0
,
_utils
.
arrayOfType
)(
"
FlowType
"
))
}
});
defineType
(
"
Variance
"
,
{
builder
:
[
"
kind
"
],
fields
:
{
kind
:
(
0
,
_utils
.
validate
)((
0
,
_utils
.
assertOneOf
)(
"
minus
"
,
"
plus
"
))
}
});
defineType
(
"
VoidTypeAnnotation
"
,
{
aliases
:
[
"
FlowType
"
,
"
FlowBaseAnnotation
"
]
});
defineType
(
"
EnumDeclaration
"
,
{
aliases
:
[
"
Statement
"
,
"
Declaration
"
],
visitor
:
[
"
id
"
,
"
body
"
],
fields
:
{
id
:
(
0
,
_utils
.
validateType
)(
"
Identifier
"
),
body
:
(
0
,
_utils
.
validateType
)([
"
EnumBooleanBody
"
,
"
EnumNumberBody
"
,
"
EnumStringBody
"
,
"
EnumSymbolBody
"
])
}
});
defineType
(
"
EnumBooleanBody
"
,
{
aliases
:
[
"
EnumBody
"
],
visitor
:
[
"
members
"
],
fields
:
{
explicitType
:
(
0
,
_utils
.
validate
)((
0
,
_utils
.
assertValueType
)(
"
boolean
"
)),
members
:
(
0
,
_utils
.
validateArrayOfType
)(
"
EnumBooleanMember
"
),
hasUnknownMembers
:
(
0
,
_utils
.
validate
)((
0
,
_utils
.
assertValueType
)(
"
boolean
"
))
}
});
defineType
(
"
EnumNumberBody
"
,
{
aliases
:
[
"
EnumBody
"
],
visitor
:
[
"
members
"
],
fields
:
{
explicitType
:
(
0
,
_utils
.
validate
)((
0
,
_utils
.
assertValueType
)(
"
boolean
"
)),
members
:
(
0
,
_utils
.
validateArrayOfType
)(
"
EnumNumberMember
"
),
hasUnknownMembers
:
(
0
,
_utils
.
validate
)((
0
,
_utils
.
assertValueType
)(
"
boolean
"
))
}
});
defineType
(
"
EnumStringBody
"
,
{
aliases
:
[
"
EnumBody
"
],
visitor
:
[
"
members
"
],
fields
:
{
explicitType
:
(
0
,
_utils
.
validate
)((
0
,
_utils
.
assertValueType
)(
"
boolean
"
)),
members
:
(
0
,
_utils
.
validateArrayOfType
)([
"
EnumStringMember
"
,
"
EnumDefaultedMember
"
]),
hasUnknownMembers
:
(
0
,
_utils
.
validate
)((
0
,
_utils
.
assertValueType
)(
"
boolean
"
))
}
});
defineType
(
"
EnumSymbolBody
"
,
{
aliases
:
[
"
EnumBody
"
],
visitor
:
[
"
members
"
],
fields
:
{
members
:
(
0
,
_utils
.
validateArrayOfType
)(
"
EnumDefaultedMember
"
),
hasUnknownMembers
:
(
0
,
_utils
.
validate
)((
0
,
_utils
.
assertValueType
)(
"
boolean
"
))
}
});
defineType
(
"
EnumBooleanMember
"
,
{
aliases
:
[
"
EnumMember
"
],
visitor
:
[
"
id
"
],
fields
:
{
id
:
(
0
,
_utils
.
validateType
)(
"
Identifier
"
),
init
:
(
0
,
_utils
.
validateType
)(
"
BooleanLiteral
"
)
}
});
defineType
(
"
EnumNumberMember
"
,
{
aliases
:
[
"
EnumMember
"
],
visitor
:
[
"
id
"
,
"
init
"
],
fields
:
{
id
:
(
0
,
_utils
.
validateType
)(
"
Identifier
"
),
init
:
(
0
,
_utils
.
validateType
)(
"
NumericLiteral
"
)
}
});
defineType
(
"
EnumStringMember
"
,
{
aliases
:
[
"
EnumMember
"
],
visitor
:
[
"
id
"
,
"
init
"
],
fields
:
{
id
:
(
0
,
_utils
.
validateType
)(
"
Identifier
"
),
init
:
(
0
,
_utils
.
validateType
)(
"
StringLiteral
"
)
}
});
defineType
(
"
EnumDefaultedMember
"
,
{
aliases
:
[
"
EnumMember
"
],
visitor
:
[
"
id
"
],
fields
:
{
id
:
(
0
,
_utils
.
validateType
)(
"
Identifier
"
)
}
});
defineType
(
"
IndexedAccessType
"
,
{
visitor
:
[
"
objectType
"
,
"
indexType
"
],
aliases
:
[
"
FlowType
"
],
fields
:
{
objectType
:
(
0
,
_utils
.
validateType
)(
"
FlowType
"
),
indexType
:
(
0
,
_utils
.
validateType
)(
"
FlowType
"
)
}
});
defineType
(
"
OptionalIndexedAccessType
"
,
{
visitor
:
[
"
objectType
"
,
"
indexType
"
],
aliases
:
[
"
FlowType
"
],
fields
:
{
objectType
:
(
0
,
_utils
.
validateType
)(
"
FlowType
"
),
indexType
:
(
0
,
_utils
.
validateType
)(
"
FlowType
"
),
optional
:
(
0
,
_utils
.
validate
)((
0
,
_utils
.
assertValueType
)(
"
boolean
"
))
}
});
\ No newline at end of file
node_modules/@babel/types/lib/definitions/index.js
0 → 100644
View file @
3b78e297
"
use strict
"
;
Object
.
defineProperty
(
exports
,
"
__esModule
"
,
{
value
:
true
});
Object
.
defineProperty
(
exports
,
"
ALIAS_KEYS
"
,
{
enumerable
:
true
,
get
:
function
()
{
return
_utils
.
ALIAS_KEYS
;
}
});
Object
.
defineProperty
(
exports
,
"
BUILDER_KEYS
"
,
{
enumerable
:
true
,
get
:
function
()
{
return
_utils
.
BUILDER_KEYS
;
}
});
Object
.
defineProperty
(
exports
,
"
DEPRECATED_KEYS
"
,
{
enumerable
:
true
,
get
:
function
()
{
return
_utils
.
DEPRECATED_KEYS
;
}
});
Object
.
defineProperty
(
exports
,
"
FLIPPED_ALIAS_KEYS
"
,
{
enumerable
:
true
,
get
:
function
()
{
return
_utils
.
FLIPPED_ALIAS_KEYS
;
}
});
Object
.
defineProperty
(
exports
,
"
NODE_FIELDS
"
,
{
enumerable
:
true
,
get
:
function
()
{
return
_utils
.
NODE_FIELDS
;
}
});
Object
.
defineProperty
(
exports
,
"
NODE_PARENT_VALIDATIONS
"
,
{
enumerable
:
true
,
get
:
function
()
{
return
_utils
.
NODE_PARENT_VALIDATIONS
;
}
});
Object
.
defineProperty
(
exports
,
"
PLACEHOLDERS
"
,
{
enumerable
:
true
,
get
:
function
()
{
return
_placeholders
.
PLACEHOLDERS
;
}
});
Object
.
defineProperty
(
exports
,
"
PLACEHOLDERS_ALIAS
"
,
{
enumerable
:
true
,
get
:
function
()
{
return
_placeholders
.
PLACEHOLDERS_ALIAS
;
}
});
Object
.
defineProperty
(
exports
,
"
PLACEHOLDERS_FLIPPED_ALIAS
"
,
{
enumerable
:
true
,
get
:
function
()
{
return
_placeholders
.
PLACEHOLDERS_FLIPPED_ALIAS
;
}
});
exports
.
TYPES
=
void
0
;
Object
.
defineProperty
(
exports
,
"
VISITOR_KEYS
"
,
{
enumerable
:
true
,
get
:
function
()
{
return
_utils
.
VISITOR_KEYS
;
}
});
var
_toFastProperties
=
require
(
"
to-fast-properties
"
);
require
(
"
./core
"
);
require
(
"
./flow
"
);
require
(
"
./jsx
"
);
require
(
"
./misc
"
);
require
(
"
./experimental
"
);
require
(
"
./typescript
"
);
var
_utils
=
require
(
"
./utils
"
);
var
_placeholders
=
require
(
"
./placeholders
"
);
_toFastProperties
(
_utils
.
VISITOR_KEYS
);
_toFastProperties
(
_utils
.
ALIAS_KEYS
);
_toFastProperties
(
_utils
.
FLIPPED_ALIAS_KEYS
);
_toFastProperties
(
_utils
.
NODE_FIELDS
);
_toFastProperties
(
_utils
.
BUILDER_KEYS
);
_toFastProperties
(
_utils
.
DEPRECATED_KEYS
);
_toFastProperties
(
_placeholders
.
PLACEHOLDERS_ALIAS
);
_toFastProperties
(
_placeholders
.
PLACEHOLDERS_FLIPPED_ALIAS
);
const
TYPES
=
[].
concat
(
Object
.
keys
(
_utils
.
VISITOR_KEYS
),
Object
.
keys
(
_utils
.
FLIPPED_ALIAS_KEYS
),
Object
.
keys
(
_utils
.
DEPRECATED_KEYS
));
exports
.
TYPES
=
TYPES
;
\ No newline at end of file
node_modules/@babel/types/lib/definitions/jsx.js
0 → 100644
View file @
3b78e297
"
use strict
"
;
var
_utils
=
require
(
"
./utils
"
);
const
defineType
=
(
0
,
_utils
.
defineAliasedType
)(
"
JSX
"
);
defineType
(
"
JSXAttribute
"
,
{
visitor
:
[
"
name
"
,
"
value
"
],
aliases
:
[
"
Immutable
"
],
fields
:
{
name
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
JSXIdentifier
"
,
"
JSXNamespacedName
"
)
},
value
:
{
optional
:
true
,
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
JSXElement
"
,
"
JSXFragment
"
,
"
StringLiteral
"
,
"
JSXExpressionContainer
"
)
}
}
});
defineType
(
"
JSXClosingElement
"
,
{
visitor
:
[
"
name
"
],
aliases
:
[
"
Immutable
"
],
fields
:
{
name
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
JSXIdentifier
"
,
"
JSXMemberExpression
"
,
"
JSXNamespacedName
"
)
}
}
});
defineType
(
"
JSXElement
"
,
{
builder
:
[
"
openingElement
"
,
"
closingElement
"
,
"
children
"
,
"
selfClosing
"
],
visitor
:
[
"
openingElement
"
,
"
children
"
,
"
closingElement
"
],
aliases
:
[
"
Immutable
"
,
"
Expression
"
],
fields
:
Object
.
assign
({
openingElement
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
JSXOpeningElement
"
)
},
closingElement
:
{
optional
:
true
,
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
JSXClosingElement
"
)
},
children
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
JSXText
"
,
"
JSXExpressionContainer
"
,
"
JSXSpreadChild
"
,
"
JSXElement
"
,
"
JSXFragment
"
)))
}
},
{
selfClosing
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
boolean
"
),
optional
:
true
}
})
});
defineType
(
"
JSXEmptyExpression
"
,
{});
defineType
(
"
JSXExpressionContainer
"
,
{
visitor
:
[
"
expression
"
],
aliases
:
[
"
Immutable
"
],
fields
:
{
expression
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
,
"
JSXEmptyExpression
"
)
}
}
});
defineType
(
"
JSXSpreadChild
"
,
{
visitor
:
[
"
expression
"
],
aliases
:
[
"
Immutable
"
],
fields
:
{
expression
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
)
}
}
});
defineType
(
"
JSXIdentifier
"
,
{
builder
:
[
"
name
"
],
fields
:
{
name
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
string
"
)
}
}
});
defineType
(
"
JSXMemberExpression
"
,
{
visitor
:
[
"
object
"
,
"
property
"
],
fields
:
{
object
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
JSXMemberExpression
"
,
"
JSXIdentifier
"
)
},
property
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
JSXIdentifier
"
)
}
}
});
defineType
(
"
JSXNamespacedName
"
,
{
visitor
:
[
"
namespace
"
,
"
name
"
],
fields
:
{
namespace
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
JSXIdentifier
"
)
},
name
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
JSXIdentifier
"
)
}
}
});
defineType
(
"
JSXOpeningElement
"
,
{
builder
:
[
"
name
"
,
"
attributes
"
,
"
selfClosing
"
],
visitor
:
[
"
name
"
,
"
attributes
"
],
aliases
:
[
"
Immutable
"
],
fields
:
{
name
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
JSXIdentifier
"
,
"
JSXMemberExpression
"
,
"
JSXNamespacedName
"
)
},
selfClosing
:
{
default
:
false
},
attributes
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
JSXAttribute
"
,
"
JSXSpreadAttribute
"
)))
},
typeParameters
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
TypeParameterInstantiation
"
,
"
TSTypeParameterInstantiation
"
),
optional
:
true
}
}
});
defineType
(
"
JSXSpreadAttribute
"
,
{
visitor
:
[
"
argument
"
],
fields
:
{
argument
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Expression
"
)
}
}
});
defineType
(
"
JSXText
"
,
{
aliases
:
[
"
Immutable
"
],
builder
:
[
"
value
"
],
fields
:
{
value
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
string
"
)
}
}
});
defineType
(
"
JSXFragment
"
,
{
builder
:
[
"
openingFragment
"
,
"
closingFragment
"
,
"
children
"
],
visitor
:
[
"
openingFragment
"
,
"
children
"
,
"
closingFragment
"
],
aliases
:
[
"
Immutable
"
,
"
Expression
"
],
fields
:
{
openingFragment
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
JSXOpeningFragment
"
)
},
closingFragment
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
JSXClosingFragment
"
)
},
children
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
JSXText
"
,
"
JSXExpressionContainer
"
,
"
JSXSpreadChild
"
,
"
JSXElement
"
,
"
JSXFragment
"
)))
}
}
});
defineType
(
"
JSXOpeningFragment
"
,
{
aliases
:
[
"
Immutable
"
]
});
defineType
(
"
JSXClosingFragment
"
,
{
aliases
:
[
"
Immutable
"
]
});
\ No newline at end of file
node_modules/@babel/types/lib/definitions/misc.js
0 → 100644
View file @
3b78e297
"
use strict
"
;
var
_utils
=
require
(
"
./utils
"
);
var
_placeholders
=
require
(
"
./placeholders
"
);
const
defineType
=
(
0
,
_utils
.
defineAliasedType
)(
"
Miscellaneous
"
);
{
defineType
(
"
Noop
"
,
{
visitor
:
[]
});
}
defineType
(
"
Placeholder
"
,
{
visitor
:
[],
builder
:
[
"
expectedNode
"
,
"
name
"
],
fields
:
{
name
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
)
},
expectedNode
:
{
validate
:
(
0
,
_utils
.
assertOneOf
)(...
_placeholders
.
PLACEHOLDERS
)
}
}
});
defineType
(
"
V8IntrinsicIdentifier
"
,
{
builder
:
[
"
name
"
],
fields
:
{
name
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
string
"
)
}
}
});
\ No newline at end of file
node_modules/@babel/types/lib/definitions/placeholders.js
0 → 100644
View file @
3b78e297
"
use strict
"
;
Object
.
defineProperty
(
exports
,
"
__esModule
"
,
{
value
:
true
});
exports
.
PLACEHOLDERS_FLIPPED_ALIAS
=
exports
.
PLACEHOLDERS_ALIAS
=
exports
.
PLACEHOLDERS
=
void
0
;
var
_utils
=
require
(
"
./utils
"
);
const
PLACEHOLDERS
=
[
"
Identifier
"
,
"
StringLiteral
"
,
"
Expression
"
,
"
Statement
"
,
"
Declaration
"
,
"
BlockStatement
"
,
"
ClassBody
"
,
"
Pattern
"
];
exports
.
PLACEHOLDERS
=
PLACEHOLDERS
;
const
PLACEHOLDERS_ALIAS
=
{
Declaration
:
[
"
Statement
"
],
Pattern
:
[
"
PatternLike
"
,
"
LVal
"
]
};
exports
.
PLACEHOLDERS_ALIAS
=
PLACEHOLDERS_ALIAS
;
for
(
const
type
of
PLACEHOLDERS
)
{
const
alias
=
_utils
.
ALIAS_KEYS
[
type
];
if
(
alias
!=
null
&&
alias
.
length
)
PLACEHOLDERS_ALIAS
[
type
]
=
alias
;
}
const
PLACEHOLDERS_FLIPPED_ALIAS
=
{};
exports
.
PLACEHOLDERS_FLIPPED_ALIAS
=
PLACEHOLDERS_FLIPPED_ALIAS
;
Object
.
keys
(
PLACEHOLDERS_ALIAS
).
forEach
(
type
=>
{
PLACEHOLDERS_ALIAS
[
type
].
forEach
(
alias
=>
{
if
(
!
Object
.
hasOwnProperty
.
call
(
PLACEHOLDERS_FLIPPED_ALIAS
,
alias
))
{
PLACEHOLDERS_FLIPPED_ALIAS
[
alias
]
=
[];
}
PLACEHOLDERS_FLIPPED_ALIAS
[
alias
].
push
(
type
);
});
});
\ No newline at end of file
node_modules/@babel/types/lib/definitions/typescript.js
0 → 100644
View file @
3b78e297
"
use strict
"
;
var
_utils
=
require
(
"
./utils
"
);
var
_core
=
require
(
"
./core
"
);
var
_is
=
require
(
"
../validators/is
"
);
const
defineType
=
(
0
,
_utils
.
defineAliasedType
)(
"
TypeScript
"
);
const
bool
=
(
0
,
_utils
.
assertValueType
)(
"
boolean
"
);
const
tSFunctionTypeAnnotationCommon
=
{
returnType
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
TSTypeAnnotation
"
,
"
Noop
"
),
optional
:
true
},
typeParameters
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
TSTypeParameterDeclaration
"
,
"
Noop
"
),
optional
:
true
}
};
defineType
(
"
TSParameterProperty
"
,
{
aliases
:
[
"
LVal
"
],
visitor
:
[
"
parameter
"
],
fields
:
{
accessibility
:
{
validate
:
(
0
,
_utils
.
assertOneOf
)(
"
public
"
,
"
private
"
,
"
protected
"
),
optional
:
true
},
readonly
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
boolean
"
),
optional
:
true
},
parameter
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
Identifier
"
,
"
AssignmentPattern
"
)
},
override
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
boolean
"
),
optional
:
true
},
decorators
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
Decorator
"
))),
optional
:
true
}
}
});
defineType
(
"
TSDeclareFunction
"
,
{
aliases
:
[
"
Statement
"
,
"
Declaration
"
],
visitor
:
[
"
id
"
,
"
typeParameters
"
,
"
params
"
,
"
returnType
"
],
fields
:
Object
.
assign
({},
_core
.
functionDeclarationCommon
,
tSFunctionTypeAnnotationCommon
)
});
defineType
(
"
TSDeclareMethod
"
,
{
visitor
:
[
"
decorators
"
,
"
key
"
,
"
typeParameters
"
,
"
params
"
,
"
returnType
"
],
fields
:
Object
.
assign
({},
_core
.
classMethodOrDeclareMethodCommon
,
tSFunctionTypeAnnotationCommon
)
});
defineType
(
"
TSQualifiedName
"
,
{
aliases
:
[
"
TSEntityName
"
],
visitor
:
[
"
left
"
,
"
right
"
],
fields
:
{
left
:
(
0
,
_utils
.
validateType
)(
"
TSEntityName
"
),
right
:
(
0
,
_utils
.
validateType
)(
"
Identifier
"
)
}
});
const
signatureDeclarationCommon
=
{
typeParameters
:
(
0
,
_utils
.
validateOptionalType
)(
"
TSTypeParameterDeclaration
"
),
[
"
parameters
"
]:
(
0
,
_utils
.
validateArrayOfType
)([
"
Identifier
"
,
"
RestElement
"
]),
[
"
typeAnnotation
"
]:
(
0
,
_utils
.
validateOptionalType
)(
"
TSTypeAnnotation
"
)
};
const
callConstructSignatureDeclaration
=
{
aliases
:
[
"
TSTypeElement
"
],
visitor
:
[
"
typeParameters
"
,
"
parameters
"
,
"
typeAnnotation
"
],
fields
:
signatureDeclarationCommon
};
defineType
(
"
TSCallSignatureDeclaration
"
,
callConstructSignatureDeclaration
);
defineType
(
"
TSConstructSignatureDeclaration
"
,
callConstructSignatureDeclaration
);
const
namedTypeElementCommon
=
{
key
:
(
0
,
_utils
.
validateType
)(
"
Expression
"
),
computed
:
(
0
,
_utils
.
validate
)(
bool
),
optional
:
(
0
,
_utils
.
validateOptional
)(
bool
)
};
defineType
(
"
TSPropertySignature
"
,
{
aliases
:
[
"
TSTypeElement
"
],
visitor
:
[
"
key
"
,
"
typeAnnotation
"
,
"
initializer
"
],
fields
:
Object
.
assign
({},
namedTypeElementCommon
,
{
readonly
:
(
0
,
_utils
.
validateOptional
)(
bool
),
typeAnnotation
:
(
0
,
_utils
.
validateOptionalType
)(
"
TSTypeAnnotation
"
),
initializer
:
(
0
,
_utils
.
validateOptionalType
)(
"
Expression
"
),
kind
:
{
validate
:
(
0
,
_utils
.
assertOneOf
)(
"
get
"
,
"
set
"
)
}
})
});
defineType
(
"
TSMethodSignature
"
,
{
aliases
:
[
"
TSTypeElement
"
],
visitor
:
[
"
key
"
,
"
typeParameters
"
,
"
parameters
"
,
"
typeAnnotation
"
],
fields
:
Object
.
assign
({},
signatureDeclarationCommon
,
namedTypeElementCommon
,
{
kind
:
{
validate
:
(
0
,
_utils
.
assertOneOf
)(
"
method
"
,
"
get
"
,
"
set
"
)
}
})
});
defineType
(
"
TSIndexSignature
"
,
{
aliases
:
[
"
TSTypeElement
"
],
visitor
:
[
"
parameters
"
,
"
typeAnnotation
"
],
fields
:
{
readonly
:
(
0
,
_utils
.
validateOptional
)(
bool
),
static
:
(
0
,
_utils
.
validateOptional
)(
bool
),
parameters
:
(
0
,
_utils
.
validateArrayOfType
)(
"
Identifier
"
),
typeAnnotation
:
(
0
,
_utils
.
validateOptionalType
)(
"
TSTypeAnnotation
"
)
}
});
const
tsKeywordTypes
=
[
"
TSAnyKeyword
"
,
"
TSBooleanKeyword
"
,
"
TSBigIntKeyword
"
,
"
TSIntrinsicKeyword
"
,
"
TSNeverKeyword
"
,
"
TSNullKeyword
"
,
"
TSNumberKeyword
"
,
"
TSObjectKeyword
"
,
"
TSStringKeyword
"
,
"
TSSymbolKeyword
"
,
"
TSUndefinedKeyword
"
,
"
TSUnknownKeyword
"
,
"
TSVoidKeyword
"
];
for
(
const
type
of
tsKeywordTypes
)
{
defineType
(
type
,
{
aliases
:
[
"
TSType
"
,
"
TSBaseType
"
],
visitor
:
[],
fields
:
{}
});
}
defineType
(
"
TSThisType
"
,
{
aliases
:
[
"
TSType
"
,
"
TSBaseType
"
],
visitor
:
[],
fields
:
{}
});
const
fnOrCtrBase
=
{
aliases
:
[
"
TSType
"
],
visitor
:
[
"
typeParameters
"
,
"
parameters
"
,
"
typeAnnotation
"
]
};
defineType
(
"
TSFunctionType
"
,
Object
.
assign
({},
fnOrCtrBase
,
{
fields
:
signatureDeclarationCommon
}));
defineType
(
"
TSConstructorType
"
,
Object
.
assign
({},
fnOrCtrBase
,
{
fields
:
Object
.
assign
({},
signatureDeclarationCommon
,
{
abstract
:
(
0
,
_utils
.
validateOptional
)(
bool
)
})
}));
defineType
(
"
TSTypeReference
"
,
{
aliases
:
[
"
TSType
"
],
visitor
:
[
"
typeName
"
,
"
typeParameters
"
],
fields
:
{
typeName
:
(
0
,
_utils
.
validateType
)(
"
TSEntityName
"
),
typeParameters
:
(
0
,
_utils
.
validateOptionalType
)(
"
TSTypeParameterInstantiation
"
)
}
});
defineType
(
"
TSTypePredicate
"
,
{
aliases
:
[
"
TSType
"
],
visitor
:
[
"
parameterName
"
,
"
typeAnnotation
"
],
builder
:
[
"
parameterName
"
,
"
typeAnnotation
"
,
"
asserts
"
],
fields
:
{
parameterName
:
(
0
,
_utils
.
validateType
)([
"
Identifier
"
,
"
TSThisType
"
]),
typeAnnotation
:
(
0
,
_utils
.
validateOptionalType
)(
"
TSTypeAnnotation
"
),
asserts
:
(
0
,
_utils
.
validateOptional
)(
bool
)
}
});
defineType
(
"
TSTypeQuery
"
,
{
aliases
:
[
"
TSType
"
],
visitor
:
[
"
exprName
"
,
"
typeParameters
"
],
fields
:
{
exprName
:
(
0
,
_utils
.
validateType
)([
"
TSEntityName
"
,
"
TSImportType
"
]),
typeParameters
:
(
0
,
_utils
.
validateOptionalType
)(
"
TSTypeParameterInstantiation
"
)
}
});
defineType
(
"
TSTypeLiteral
"
,
{
aliases
:
[
"
TSType
"
],
visitor
:
[
"
members
"
],
fields
:
{
members
:
(
0
,
_utils
.
validateArrayOfType
)(
"
TSTypeElement
"
)
}
});
defineType
(
"
TSArrayType
"
,
{
aliases
:
[
"
TSType
"
],
visitor
:
[
"
elementType
"
],
fields
:
{
elementType
:
(
0
,
_utils
.
validateType
)(
"
TSType
"
)
}
});
defineType
(
"
TSTupleType
"
,
{
aliases
:
[
"
TSType
"
],
visitor
:
[
"
elementTypes
"
],
fields
:
{
elementTypes
:
(
0
,
_utils
.
validateArrayOfType
)([
"
TSType
"
,
"
TSNamedTupleMember
"
])
}
});
defineType
(
"
TSOptionalType
"
,
{
aliases
:
[
"
TSType
"
],
visitor
:
[
"
typeAnnotation
"
],
fields
:
{
typeAnnotation
:
(
0
,
_utils
.
validateType
)(
"
TSType
"
)
}
});
defineType
(
"
TSRestType
"
,
{
aliases
:
[
"
TSType
"
],
visitor
:
[
"
typeAnnotation
"
],
fields
:
{
typeAnnotation
:
(
0
,
_utils
.
validateType
)(
"
TSType
"
)
}
});
defineType
(
"
TSNamedTupleMember
"
,
{
visitor
:
[
"
label
"
,
"
elementType
"
],
builder
:
[
"
label
"
,
"
elementType
"
,
"
optional
"
],
fields
:
{
label
:
(
0
,
_utils
.
validateType
)(
"
Identifier
"
),
optional
:
{
validate
:
bool
,
default
:
false
},
elementType
:
(
0
,
_utils
.
validateType
)(
"
TSType
"
)
}
});
const
unionOrIntersection
=
{
aliases
:
[
"
TSType
"
],
visitor
:
[
"
types
"
],
fields
:
{
types
:
(
0
,
_utils
.
validateArrayOfType
)(
"
TSType
"
)
}
};
defineType
(
"
TSUnionType
"
,
unionOrIntersection
);
defineType
(
"
TSIntersectionType
"
,
unionOrIntersection
);
defineType
(
"
TSConditionalType
"
,
{
aliases
:
[
"
TSType
"
],
visitor
:
[
"
checkType
"
,
"
extendsType
"
,
"
trueType
"
,
"
falseType
"
],
fields
:
{
checkType
:
(
0
,
_utils
.
validateType
)(
"
TSType
"
),
extendsType
:
(
0
,
_utils
.
validateType
)(
"
TSType
"
),
trueType
:
(
0
,
_utils
.
validateType
)(
"
TSType
"
),
falseType
:
(
0
,
_utils
.
validateType
)(
"
TSType
"
)
}
});
defineType
(
"
TSInferType
"
,
{
aliases
:
[
"
TSType
"
],
visitor
:
[
"
typeParameter
"
],
fields
:
{
typeParameter
:
(
0
,
_utils
.
validateType
)(
"
TSTypeParameter
"
)
}
});
defineType
(
"
TSParenthesizedType
"
,
{
aliases
:
[
"
TSType
"
],
visitor
:
[
"
typeAnnotation
"
],
fields
:
{
typeAnnotation
:
(
0
,
_utils
.
validateType
)(
"
TSType
"
)
}
});
defineType
(
"
TSTypeOperator
"
,
{
aliases
:
[
"
TSType
"
],
visitor
:
[
"
typeAnnotation
"
],
fields
:
{
operator
:
(
0
,
_utils
.
validate
)((
0
,
_utils
.
assertValueType
)(
"
string
"
)),
typeAnnotation
:
(
0
,
_utils
.
validateType
)(
"
TSType
"
)
}
});
defineType
(
"
TSIndexedAccessType
"
,
{
aliases
:
[
"
TSType
"
],
visitor
:
[
"
objectType
"
,
"
indexType
"
],
fields
:
{
objectType
:
(
0
,
_utils
.
validateType
)(
"
TSType
"
),
indexType
:
(
0
,
_utils
.
validateType
)(
"
TSType
"
)
}
});
defineType
(
"
TSMappedType
"
,
{
aliases
:
[
"
TSType
"
],
visitor
:
[
"
typeParameter
"
,
"
typeAnnotation
"
,
"
nameType
"
],
fields
:
{
readonly
:
(
0
,
_utils
.
validateOptional
)((
0
,
_utils
.
assertOneOf
)(
true
,
false
,
"
+
"
,
"
-
"
)),
typeParameter
:
(
0
,
_utils
.
validateType
)(
"
TSTypeParameter
"
),
optional
:
(
0
,
_utils
.
validateOptional
)((
0
,
_utils
.
assertOneOf
)(
true
,
false
,
"
+
"
,
"
-
"
)),
typeAnnotation
:
(
0
,
_utils
.
validateOptionalType
)(
"
TSType
"
),
nameType
:
(
0
,
_utils
.
validateOptionalType
)(
"
TSType
"
)
}
});
defineType
(
"
TSLiteralType
"
,
{
aliases
:
[
"
TSType
"
,
"
TSBaseType
"
],
visitor
:
[
"
literal
"
],
fields
:
{
literal
:
{
validate
:
function
()
{
const
unaryExpression
=
(
0
,
_utils
.
assertNodeType
)(
"
NumericLiteral
"
,
"
BigIntLiteral
"
);
const
unaryOperator
=
(
0
,
_utils
.
assertOneOf
)(
"
-
"
);
const
literal
=
(
0
,
_utils
.
assertNodeType
)(
"
NumericLiteral
"
,
"
StringLiteral
"
,
"
BooleanLiteral
"
,
"
BigIntLiteral
"
);
function
validator
(
parent
,
key
,
node
)
{
if
((
0
,
_is
.
default
)(
"
UnaryExpression
"
,
node
))
{
unaryOperator
(
node
,
"
operator
"
,
node
.
operator
);
unaryExpression
(
node
,
"
argument
"
,
node
.
argument
);
}
else
{
literal
(
parent
,
key
,
node
);
}
}
validator
.
oneOfNodeTypes
=
[
"
NumericLiteral
"
,
"
StringLiteral
"
,
"
BooleanLiteral
"
,
"
BigIntLiteral
"
,
"
UnaryExpression
"
];
return
validator
;
}()
}
}
});
defineType
(
"
TSExpressionWithTypeArguments
"
,
{
aliases
:
[
"
TSType
"
],
visitor
:
[
"
expression
"
,
"
typeParameters
"
],
fields
:
{
expression
:
(
0
,
_utils
.
validateType
)(
"
TSEntityName
"
),
typeParameters
:
(
0
,
_utils
.
validateOptionalType
)(
"
TSTypeParameterInstantiation
"
)
}
});
defineType
(
"
TSInterfaceDeclaration
"
,
{
aliases
:
[
"
Statement
"
,
"
Declaration
"
],
visitor
:
[
"
id
"
,
"
typeParameters
"
,
"
extends
"
,
"
body
"
],
fields
:
{
declare
:
(
0
,
_utils
.
validateOptional
)(
bool
),
id
:
(
0
,
_utils
.
validateType
)(
"
Identifier
"
),
typeParameters
:
(
0
,
_utils
.
validateOptionalType
)(
"
TSTypeParameterDeclaration
"
),
extends
:
(
0
,
_utils
.
validateOptional
)((
0
,
_utils
.
arrayOfType
)(
"
TSExpressionWithTypeArguments
"
)),
body
:
(
0
,
_utils
.
validateType
)(
"
TSInterfaceBody
"
)
}
});
defineType
(
"
TSInterfaceBody
"
,
{
visitor
:
[
"
body
"
],
fields
:
{
body
:
(
0
,
_utils
.
validateArrayOfType
)(
"
TSTypeElement
"
)
}
});
defineType
(
"
TSTypeAliasDeclaration
"
,
{
aliases
:
[
"
Statement
"
,
"
Declaration
"
],
visitor
:
[
"
id
"
,
"
typeParameters
"
,
"
typeAnnotation
"
],
fields
:
{
declare
:
(
0
,
_utils
.
validateOptional
)(
bool
),
id
:
(
0
,
_utils
.
validateType
)(
"
Identifier
"
),
typeParameters
:
(
0
,
_utils
.
validateOptionalType
)(
"
TSTypeParameterDeclaration
"
),
typeAnnotation
:
(
0
,
_utils
.
validateType
)(
"
TSType
"
)
}
});
defineType
(
"
TSInstantiationExpression
"
,
{
aliases
:
[
"
Expression
"
],
visitor
:
[
"
expression
"
,
"
typeParameters
"
],
fields
:
{
expression
:
(
0
,
_utils
.
validateType
)(
"
Expression
"
),
typeParameters
:
(
0
,
_utils
.
validateOptionalType
)(
"
TSTypeParameterInstantiation
"
)
}
});
defineType
(
"
TSAsExpression
"
,
{
aliases
:
[
"
Expression
"
,
"
LVal
"
,
"
PatternLike
"
],
visitor
:
[
"
expression
"
,
"
typeAnnotation
"
],
fields
:
{
expression
:
(
0
,
_utils
.
validateType
)(
"
Expression
"
),
typeAnnotation
:
(
0
,
_utils
.
validateType
)(
"
TSType
"
)
}
});
defineType
(
"
TSTypeAssertion
"
,
{
aliases
:
[
"
Expression
"
,
"
LVal
"
,
"
PatternLike
"
],
visitor
:
[
"
typeAnnotation
"
,
"
expression
"
],
fields
:
{
typeAnnotation
:
(
0
,
_utils
.
validateType
)(
"
TSType
"
),
expression
:
(
0
,
_utils
.
validateType
)(
"
Expression
"
)
}
});
defineType
(
"
TSEnumDeclaration
"
,
{
aliases
:
[
"
Statement
"
,
"
Declaration
"
],
visitor
:
[
"
id
"
,
"
members
"
],
fields
:
{
declare
:
(
0
,
_utils
.
validateOptional
)(
bool
),
const
:
(
0
,
_utils
.
validateOptional
)(
bool
),
id
:
(
0
,
_utils
.
validateType
)(
"
Identifier
"
),
members
:
(
0
,
_utils
.
validateArrayOfType
)(
"
TSEnumMember
"
),
initializer
:
(
0
,
_utils
.
validateOptionalType
)(
"
Expression
"
)
}
});
defineType
(
"
TSEnumMember
"
,
{
visitor
:
[
"
id
"
,
"
initializer
"
],
fields
:
{
id
:
(
0
,
_utils
.
validateType
)([
"
Identifier
"
,
"
StringLiteral
"
]),
initializer
:
(
0
,
_utils
.
validateOptionalType
)(
"
Expression
"
)
}
});
defineType
(
"
TSModuleDeclaration
"
,
{
aliases
:
[
"
Statement
"
,
"
Declaration
"
],
visitor
:
[
"
id
"
,
"
body
"
],
fields
:
{
declare
:
(
0
,
_utils
.
validateOptional
)(
bool
),
global
:
(
0
,
_utils
.
validateOptional
)(
bool
),
id
:
(
0
,
_utils
.
validateType
)([
"
Identifier
"
,
"
StringLiteral
"
]),
body
:
(
0
,
_utils
.
validateType
)([
"
TSModuleBlock
"
,
"
TSModuleDeclaration
"
])
}
});
defineType
(
"
TSModuleBlock
"
,
{
aliases
:
[
"
Scopable
"
,
"
Block
"
,
"
BlockParent
"
],
visitor
:
[
"
body
"
],
fields
:
{
body
:
(
0
,
_utils
.
validateArrayOfType
)(
"
Statement
"
)
}
});
defineType
(
"
TSImportType
"
,
{
aliases
:
[
"
TSType
"
],
visitor
:
[
"
argument
"
,
"
qualifier
"
,
"
typeParameters
"
],
fields
:
{
argument
:
(
0
,
_utils
.
validateType
)(
"
StringLiteral
"
),
qualifier
:
(
0
,
_utils
.
validateOptionalType
)(
"
TSEntityName
"
),
typeParameters
:
(
0
,
_utils
.
validateOptionalType
)(
"
TSTypeParameterInstantiation
"
)
}
});
defineType
(
"
TSImportEqualsDeclaration
"
,
{
aliases
:
[
"
Statement
"
],
visitor
:
[
"
id
"
,
"
moduleReference
"
],
fields
:
{
isExport
:
(
0
,
_utils
.
validate
)(
bool
),
id
:
(
0
,
_utils
.
validateType
)(
"
Identifier
"
),
moduleReference
:
(
0
,
_utils
.
validateType
)([
"
TSEntityName
"
,
"
TSExternalModuleReference
"
]),
importKind
:
{
validate
:
(
0
,
_utils
.
assertOneOf
)(
"
type
"
,
"
value
"
),
optional
:
true
}
}
});
defineType
(
"
TSExternalModuleReference
"
,
{
visitor
:
[
"
expression
"
],
fields
:
{
expression
:
(
0
,
_utils
.
validateType
)(
"
StringLiteral
"
)
}
});
defineType
(
"
TSNonNullExpression
"
,
{
aliases
:
[
"
Expression
"
,
"
LVal
"
,
"
PatternLike
"
],
visitor
:
[
"
expression
"
],
fields
:
{
expression
:
(
0
,
_utils
.
validateType
)(
"
Expression
"
)
}
});
defineType
(
"
TSExportAssignment
"
,
{
aliases
:
[
"
Statement
"
],
visitor
:
[
"
expression
"
],
fields
:
{
expression
:
(
0
,
_utils
.
validateType
)(
"
Expression
"
)
}
});
defineType
(
"
TSNamespaceExportDeclaration
"
,
{
aliases
:
[
"
Statement
"
],
visitor
:
[
"
id
"
],
fields
:
{
id
:
(
0
,
_utils
.
validateType
)(
"
Identifier
"
)
}
});
defineType
(
"
TSTypeAnnotation
"
,
{
visitor
:
[
"
typeAnnotation
"
],
fields
:
{
typeAnnotation
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
TSType
"
)
}
}
});
defineType
(
"
TSTypeParameterInstantiation
"
,
{
visitor
:
[
"
params
"
],
fields
:
{
params
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
TSType
"
)))
}
}
});
defineType
(
"
TSTypeParameterDeclaration
"
,
{
visitor
:
[
"
params
"
],
fields
:
{
params
:
{
validate
:
(
0
,
_utils
.
chain
)((
0
,
_utils
.
assertValueType
)(
"
array
"
),
(
0
,
_utils
.
assertEach
)((
0
,
_utils
.
assertNodeType
)(
"
TSTypeParameter
"
)))
}
}
});
defineType
(
"
TSTypeParameter
"
,
{
builder
:
[
"
constraint
"
,
"
default
"
,
"
name
"
],
visitor
:
[
"
constraint
"
,
"
default
"
],
fields
:
{
name
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
string
"
)
},
in
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
boolean
"
),
optional
:
true
},
out
:
{
validate
:
(
0
,
_utils
.
assertValueType
)(
"
boolean
"
),
optional
:
true
},
constraint
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
TSType
"
),
optional
:
true
},
default
:
{
validate
:
(
0
,
_utils
.
assertNodeType
)(
"
TSType
"
),
optional
:
true
}
}
});
\ No newline at end of file
Prev
1
2
3
4
5
6
7
8
9
…
17
Next