update .gitignore
This commit is contained in:
9
node_modules/ast-types/.github/dependabot.yml
generated
vendored
Normal file
9
node_modules/ast-types/.github/dependabot.yml
generated
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
# Please see the documentation for all configuration options:
|
||||
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
|
||||
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
29
node_modules/ast-types/.github/workflows/main.yml
generated
vendored
Normal file
29
node_modules/ast-types/.github/workflows/main.yml
generated
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
name: CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
|
||||
jobs:
|
||||
test:
|
||||
name: Test on node ${{ matrix.node_version }} and ${{ matrix.os }}
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
node_version: ['10', '12', '14']
|
||||
os: [ubuntu-latest]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Use Node.js ${{ matrix.node_version }}
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: ${{ matrix.node_version }}
|
||||
|
||||
- name: npm install, build and test
|
||||
run: |
|
||||
npm install
|
||||
npm run build --if-present
|
||||
npm test
|
||||
20
node_modules/ast-types/LICENSE
generated
vendored
Normal file
20
node_modules/ast-types/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
Copyright (c) 2013 Ben Newman <bn@cs.stanford.edu>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
512
node_modules/ast-types/README.md
generated
vendored
Normal file
512
node_modules/ast-types/README.md
generated
vendored
Normal file
@@ -0,0 +1,512 @@
|
||||
# AST Types 
|
||||
|
||||
This module provides an efficient, modular,
|
||||
[Esprima](https://github.com/ariya/esprima)-compatible implementation of
|
||||
the [abstract syntax
|
||||
tree](http://en.wikipedia.org/wiki/Abstract_syntax_tree) type hierarchy
|
||||
pioneered by the [Mozilla Parser
|
||||
API](https://developer.mozilla.org/en-US/docs/SpiderMonkey/Parser_API).
|
||||
|
||||
Installation
|
||||
---
|
||||
|
||||
From NPM:
|
||||
|
||||
npm install ast-types
|
||||
|
||||
From GitHub:
|
||||
|
||||
cd path/to/node_modules
|
||||
git clone git://github.com/benjamn/ast-types.git
|
||||
cd ast-types
|
||||
npm install .
|
||||
|
||||
Basic Usage
|
||||
---
|
||||
```js
|
||||
import assert from "assert";
|
||||
import {
|
||||
namedTypes as n,
|
||||
builders as b,
|
||||
} from "ast-types";
|
||||
|
||||
var fooId = b.identifier("foo");
|
||||
var ifFoo = b.ifStatement(fooId, b.blockStatement([
|
||||
b.expressionStatement(b.callExpression(fooId, []))
|
||||
]));
|
||||
|
||||
assert.ok(n.IfStatement.check(ifFoo));
|
||||
assert.ok(n.Statement.check(ifFoo));
|
||||
assert.ok(n.Node.check(ifFoo));
|
||||
|
||||
assert.ok(n.BlockStatement.check(ifFoo.consequent));
|
||||
assert.strictEqual(
|
||||
ifFoo.consequent.body[0].expression.arguments.length,
|
||||
0,
|
||||
);
|
||||
|
||||
assert.strictEqual(ifFoo.test, fooId);
|
||||
assert.ok(n.Expression.check(ifFoo.test));
|
||||
assert.ok(n.Identifier.check(ifFoo.test));
|
||||
assert.ok(!n.Statement.check(ifFoo.test));
|
||||
```
|
||||
|
||||
AST Traversal
|
||||
---
|
||||
|
||||
Because it understands the AST type system so thoroughly, this library
|
||||
is able to provide excellent node iteration and traversal mechanisms.
|
||||
|
||||
If you want complete control over the traversal, and all you need is a way
|
||||
of enumerating the known fields of your AST nodes and getting their
|
||||
values, you may be interested in the primitives `getFieldNames` and
|
||||
`getFieldValue`:
|
||||
```js
|
||||
import {
|
||||
getFieldNames,
|
||||
getFieldValue,
|
||||
} from "ast-types";
|
||||
|
||||
const partialFunExpr = { type: "FunctionExpression" };
|
||||
|
||||
// Even though partialFunExpr doesn't actually contain all the fields that
|
||||
// are expected for a FunctionExpression, types.getFieldNames knows:
|
||||
console.log(getFieldNames(partialFunExpr));
|
||||
// [ 'type', 'id', 'params', 'body', 'generator', 'expression',
|
||||
// 'defaults', 'rest', 'async' ]
|
||||
|
||||
// For fields that have default values, types.getFieldValue will return
|
||||
// the default if the field is not actually defined.
|
||||
console.log(getFieldValue(partialFunExpr, "generator"));
|
||||
// false
|
||||
```
|
||||
|
||||
Two more low-level helper functions, `eachField` and `someField`, are
|
||||
defined in terms of `getFieldNames` and `getFieldValue`:
|
||||
```js
|
||||
// Iterate over all defined fields of an object, including those missing
|
||||
// or undefined, passing each field name and effective value (as returned
|
||||
// by getFieldValue) to the callback. If the object has no corresponding
|
||||
// Def, the callback will never be called.
|
||||
export function eachField(object, callback, context) {
|
||||
getFieldNames(object).forEach(function(name) {
|
||||
callback.call(this, name, getFieldValue(object, name));
|
||||
}, context);
|
||||
}
|
||||
|
||||
// Similar to eachField, except that iteration stops as soon as the
|
||||
// callback returns a truthy value. Like Array.prototype.some, the final
|
||||
// result is either true or false to indicates whether the callback
|
||||
// returned true for any element or not.
|
||||
export function someField(object, callback, context) {
|
||||
return getFieldNames(object).some(function(name) {
|
||||
return callback.call(this, name, getFieldValue(object, name));
|
||||
}, context);
|
||||
}
|
||||
```
|
||||
|
||||
So here's how you might make a copy of an AST node:
|
||||
```js
|
||||
import { eachField } from "ast-types";
|
||||
const copy = {};
|
||||
eachField(node, function(name, value) {
|
||||
// Note that undefined fields will be visited too, according to
|
||||
// the rules associated with node.type, and default field values
|
||||
// will be substituted if appropriate.
|
||||
copy[name] = value;
|
||||
})
|
||||
```
|
||||
|
||||
But that's not all! You can also easily visit entire syntax trees using
|
||||
the powerful `types.visit` abstraction.
|
||||
|
||||
Here's a trivial example of how you might assert that `arguments.callee`
|
||||
is never used in `ast`:
|
||||
```js
|
||||
import assert from "assert";
|
||||
import {
|
||||
visit,
|
||||
namedTypes as n,
|
||||
} from "ast-types";
|
||||
|
||||
visit(ast, {
|
||||
// This method will be called for any node with .type "MemberExpression":
|
||||
visitMemberExpression(path) {
|
||||
// Visitor methods receive a single argument, a NodePath object
|
||||
// wrapping the node of interest.
|
||||
var node = path.node;
|
||||
|
||||
if (
|
||||
n.Identifier.check(node.object) &&
|
||||
node.object.name === "arguments" &&
|
||||
n.Identifier.check(node.property)
|
||||
) {
|
||||
assert.notStrictEqual(node.property.name, "callee");
|
||||
}
|
||||
|
||||
// It's your responsibility to call this.traverse with some
|
||||
// NodePath object (usually the one passed into the visitor
|
||||
// method) before the visitor method returns, or return false to
|
||||
// indicate that the traversal need not continue any further down
|
||||
// this subtree.
|
||||
this.traverse(path);
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
Here's a slightly more involved example of transforming `...rest`
|
||||
parameters into browser-runnable ES5 JavaScript:
|
||||
|
||||
```js
|
||||
import { builders as b, visit } from "ast-types";
|
||||
|
||||
// Reuse the same AST structure for Array.prototype.slice.call.
|
||||
var sliceExpr = b.memberExpression(
|
||||
b.memberExpression(
|
||||
b.memberExpression(
|
||||
b.identifier("Array"),
|
||||
b.identifier("prototype"),
|
||||
false
|
||||
),
|
||||
b.identifier("slice"),
|
||||
false
|
||||
),
|
||||
b.identifier("call"),
|
||||
false
|
||||
);
|
||||
|
||||
visit(ast, {
|
||||
// This method will be called for any node whose type is a subtype of
|
||||
// Function (e.g., FunctionDeclaration, FunctionExpression, and
|
||||
// ArrowFunctionExpression). Note that types.visit precomputes a
|
||||
// lookup table from every known type to the appropriate visitor
|
||||
// method to call for nodes of that type, so the dispatch takes
|
||||
// constant time.
|
||||
visitFunction(path) {
|
||||
// Visitor methods receive a single argument, a NodePath object
|
||||
// wrapping the node of interest.
|
||||
const node = path.node;
|
||||
|
||||
// It's your responsibility to call this.traverse with some
|
||||
// NodePath object (usually the one passed into the visitor
|
||||
// method) before the visitor method returns, or return false to
|
||||
// indicate that the traversal need not continue any further down
|
||||
// this subtree. An assertion will fail if you forget, which is
|
||||
// awesome, because it means you will never again make the
|
||||
// disastrous mistake of forgetting to traverse a subtree. Also
|
||||
// cool: because you can call this method at any point in the
|
||||
// visitor method, it's up to you whether your traversal is
|
||||
// pre-order, post-order, or both!
|
||||
this.traverse(path);
|
||||
|
||||
// This traversal is only concerned with Function nodes that have
|
||||
// rest parameters.
|
||||
if (!node.rest) {
|
||||
return;
|
||||
}
|
||||
|
||||
// For the purposes of this example, we won't worry about functions
|
||||
// with Expression bodies.
|
||||
n.BlockStatement.assert(node.body);
|
||||
|
||||
// Use types.builders to build a variable declaration of the form
|
||||
//
|
||||
// var rest = Array.prototype.slice.call(arguments, n);
|
||||
//
|
||||
// where `rest` is the name of the rest parameter, and `n` is a
|
||||
// numeric literal specifying the number of named parameters the
|
||||
// function takes.
|
||||
const restVarDecl = b.variableDeclaration("var", [
|
||||
b.variableDeclarator(
|
||||
node.rest,
|
||||
b.callExpression(sliceExpr, [
|
||||
b.identifier("arguments"),
|
||||
b.literal(node.params.length)
|
||||
])
|
||||
)
|
||||
]);
|
||||
|
||||
// Similar to doing node.body.body.unshift(restVarDecl), except
|
||||
// that the other NodePath objects wrapping body statements will
|
||||
// have their indexes updated to accommodate the new statement.
|
||||
path.get("body", "body").unshift(restVarDecl);
|
||||
|
||||
// Nullify node.rest now that we have simulated the behavior of
|
||||
// the rest parameter using ordinary JavaScript.
|
||||
path.get("rest").replace(null);
|
||||
|
||||
// There's nothing wrong with doing node.rest = null, but I wanted
|
||||
// to point out that the above statement has the same effect.
|
||||
assert.strictEqual(node.rest, null);
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
Here's how you might use `types.visit` to implement a function that
|
||||
determines if a given function node refers to `this`:
|
||||
|
||||
```js
|
||||
function usesThis(funcNode) {
|
||||
n.Function.assert(funcNode);
|
||||
var result = false;
|
||||
|
||||
visit(funcNode, {
|
||||
visitThisExpression(path) {
|
||||
result = true;
|
||||
|
||||
// The quickest way to terminate the traversal is to call
|
||||
// this.abort(), which throws a special exception (instanceof
|
||||
// this.AbortRequest) that will be caught in the top-level
|
||||
// types.visit method, so you don't have to worry about
|
||||
// catching the exception yourself.
|
||||
this.abort();
|
||||
},
|
||||
|
||||
visitFunction(path) {
|
||||
// ThisExpression nodes in nested scopes don't count as `this`
|
||||
// references for the original function node, so we can safely
|
||||
// avoid traversing this subtree.
|
||||
return false;
|
||||
},
|
||||
|
||||
visitCallExpression(path) {
|
||||
const node = path.node;
|
||||
|
||||
// If the function contains CallExpression nodes involving
|
||||
// super, those expressions will implicitly depend on the
|
||||
// value of `this`, even though they do not explicitly contain
|
||||
// any ThisExpression nodes.
|
||||
if (this.isSuperCallExpression(node)) {
|
||||
result = true;
|
||||
this.abort(); // Throws AbortRequest exception.
|
||||
}
|
||||
|
||||
this.traverse(path);
|
||||
},
|
||||
|
||||
// Yes, you can define arbitrary helper methods.
|
||||
isSuperCallExpression(callExpr) {
|
||||
n.CallExpression.assert(callExpr);
|
||||
return this.isSuperIdentifier(callExpr.callee)
|
||||
|| this.isSuperMemberExpression(callExpr.callee);
|
||||
},
|
||||
|
||||
// And even helper helper methods!
|
||||
isSuperIdentifier(node) {
|
||||
return n.Identifier.check(node.callee)
|
||||
&& node.callee.name === "super";
|
||||
},
|
||||
|
||||
isSuperMemberExpression(node) {
|
||||
return n.MemberExpression.check(node.callee)
|
||||
&& n.Identifier.check(node.callee.object)
|
||||
&& node.callee.object.name === "super";
|
||||
}
|
||||
});
|
||||
|
||||
return result;
|
||||
}
|
||||
```
|
||||
|
||||
As you might guess, when an `AbortRequest` is thrown from a subtree, the
|
||||
exception will propagate from the corresponding calls to `this.traverse`
|
||||
in the ancestor visitor methods. If you decide you want to cancel the
|
||||
request, simply catch the exception and call its `.cancel()` method. The
|
||||
rest of the subtree beneath the `try`-`catch` block will be abandoned, but
|
||||
the remaining siblings of the ancestor node will still be visited.
|
||||
|
||||
NodePath
|
||||
---
|
||||
|
||||
The `NodePath` object passed to visitor methods is a wrapper around an AST
|
||||
node, and it serves to provide access to the chain of ancestor objects
|
||||
(all the way back to the root of the AST) and scope information.
|
||||
|
||||
In general, `path.node` refers to the wrapped node, `path.parent.node`
|
||||
refers to the nearest `Node` ancestor, `path.parent.parent.node` to the
|
||||
grandparent, and so on.
|
||||
|
||||
Note that `path.node` may not be a direct property value of
|
||||
`path.parent.node`; for instance, it might be the case that `path.node` is
|
||||
an element of an array that is a direct child of the parent node:
|
||||
```js
|
||||
path.node === path.parent.node.elements[3]
|
||||
```
|
||||
in which case you should know that `path.parentPath` provides
|
||||
finer-grained access to the complete path of objects (not just the `Node`
|
||||
ones) from the root of the AST:
|
||||
```js
|
||||
// In reality, path.parent is the grandparent of path:
|
||||
path.parentPath.parentPath === path.parent
|
||||
|
||||
// The path.parentPath object wraps the elements array (note that we use
|
||||
// .value because the elements array is not a Node):
|
||||
path.parentPath.value === path.parent.node.elements
|
||||
|
||||
// The path.node object is the fourth element in that array:
|
||||
path.parentPath.value[3] === path.node
|
||||
|
||||
// Unlike path.node and path.value, which are synonyms because path.node
|
||||
// is a Node object, path.parentPath.node is distinct from
|
||||
// path.parentPath.value, because the elements array is not a
|
||||
// Node. Instead, path.parentPath.node refers to the closest ancestor
|
||||
// Node, which happens to be the same as path.parent.node:
|
||||
path.parentPath.node === path.parent.node
|
||||
|
||||
// The path is named for its index in the elements array:
|
||||
path.name === 3
|
||||
|
||||
// Likewise, path.parentPath is named for the property by which
|
||||
// path.parent.node refers to it:
|
||||
path.parentPath.name === "elements"
|
||||
|
||||
// Putting it all together, we can follow the chain of object references
|
||||
// from path.parent.node all the way to path.node by accessing each
|
||||
// property by name:
|
||||
path.parent.node[path.parentPath.name][path.name] === path.node
|
||||
```
|
||||
|
||||
These `NodePath` objects are created during the traversal without
|
||||
modifying the AST nodes themselves, so it's not a problem if the same node
|
||||
appears more than once in the AST (like `Array.prototype.slice.call` in
|
||||
the example above), because it will be visited with a distict `NodePath`
|
||||
each time it appears.
|
||||
|
||||
Child `NodePath` objects are created lazily, by calling the `.get` method
|
||||
of a parent `NodePath` object:
|
||||
```js
|
||||
// If a NodePath object for the elements array has never been created
|
||||
// before, it will be created here and cached in the future:
|
||||
path.get("elements").get(3).value === path.value.elements[3]
|
||||
|
||||
// Alternatively, you can pass multiple property names to .get instead of
|
||||
// chaining multiple .get calls:
|
||||
path.get("elements", 0).value === path.value.elements[0]
|
||||
```
|
||||
|
||||
`NodePath` objects support a number of useful methods:
|
||||
```js
|
||||
// Replace one node with another node:
|
||||
var fifth = path.get("elements", 4);
|
||||
fifth.replace(newNode);
|
||||
|
||||
// Now do some stuff that might rearrange the list, and this replacement
|
||||
// remains safe:
|
||||
fifth.replace(newerNode);
|
||||
|
||||
// Replace the third element in an array with two new nodes:
|
||||
path.get("elements", 2).replace(
|
||||
b.identifier("foo"),
|
||||
b.thisExpression()
|
||||
);
|
||||
|
||||
// Remove a node and its parent if it would leave a redundant AST node:
|
||||
//e.g. var t = 1, y =2; removing the `t` and `y` declarators results in `var undefined`.
|
||||
path.prune(); //returns the closest parent `NodePath`.
|
||||
|
||||
// Remove a node from a list of nodes:
|
||||
path.get("elements", 3).replace();
|
||||
|
||||
// Add three new nodes to the beginning of a list of nodes:
|
||||
path.get("elements").unshift(a, b, c);
|
||||
|
||||
// Remove and return the first node in a list of nodes:
|
||||
path.get("elements").shift();
|
||||
|
||||
// Push two new nodes onto the end of a list of nodes:
|
||||
path.get("elements").push(d, e);
|
||||
|
||||
// Remove and return the last node in a list of nodes:
|
||||
path.get("elements").pop();
|
||||
|
||||
// Insert a new node before/after the seventh node in a list of nodes:
|
||||
var seventh = path.get("elements", 6);
|
||||
seventh.insertBefore(newNode);
|
||||
seventh.insertAfter(newNode);
|
||||
|
||||
// Insert a new element at index 5 in a list of nodes:
|
||||
path.get("elements").insertAt(5, newNode);
|
||||
```
|
||||
|
||||
Scope
|
||||
---
|
||||
|
||||
The object exposed as `path.scope` during AST traversals provides
|
||||
information about variable and function declarations in the scope that
|
||||
contains `path.node`. See [scope.ts](lib/scope.ts) for its public
|
||||
interface, which currently includes `.isGlobal`, `.getGlobalScope()`,
|
||||
`.depth`, `.declares(name)`, `.lookup(name)`, and `.getBindings()`.
|
||||
|
||||
Custom AST Node Types
|
||||
---
|
||||
|
||||
The `ast-types` module was designed to be extended. To that end, it
|
||||
provides a readable, declarative syntax for specifying new AST node types,
|
||||
based primarily upon the `require("ast-types").Type.def` function:
|
||||
```js
|
||||
import {
|
||||
Type,
|
||||
builtInTypes,
|
||||
builders as b,
|
||||
finalize,
|
||||
} from "ast-types";
|
||||
|
||||
const { def } = Type;
|
||||
const { string } = builtInTypes;
|
||||
|
||||
// Suppose you need a named File type to wrap your Programs.
|
||||
def("File")
|
||||
.bases("Node")
|
||||
.build("name", "program")
|
||||
.field("name", string)
|
||||
.field("program", def("Program"));
|
||||
|
||||
// Prevent further modifications to the File type (and any other
|
||||
// types newly introduced by def(...)).
|
||||
finalize();
|
||||
|
||||
// The b.file builder function is now available. It expects two
|
||||
// arguments, as named by .build("name", "program") above.
|
||||
const main = b.file("main.js", b.program([
|
||||
// Pointless program contents included for extra color.
|
||||
b.functionDeclaration(b.identifier("succ"), [
|
||||
b.identifier("x")
|
||||
], b.blockStatement([
|
||||
b.returnStatement(
|
||||
b.binaryExpression(
|
||||
"+", b.identifier("x"), b.literal(1)
|
||||
)
|
||||
)
|
||||
]))
|
||||
]));
|
||||
|
||||
assert.strictEqual(main.name, "main.js");
|
||||
assert.strictEqual(main.program.body[0].params[0].name, "x");
|
||||
// etc.
|
||||
|
||||
// If you pass the wrong type of arguments, or fail to pass enough
|
||||
// arguments, an AssertionError will be thrown.
|
||||
|
||||
b.file(b.blockStatement([]));
|
||||
// ==> AssertionError: {"body":[],"type":"BlockStatement","loc":null} does not match type string
|
||||
|
||||
b.file("lib/types.js", b.thisExpression());
|
||||
// ==> AssertionError: {"type":"ThisExpression","loc":null} does not match type Program
|
||||
```
|
||||
|
||||
The `def` syntax is used to define all the default AST node types found in
|
||||
[babel-core.ts](def/babel-core.ts),
|
||||
[babel.ts](def/babel.ts),
|
||||
[core.ts](def/core.ts),
|
||||
[es-proposals.ts](def/es-proposals.ts),
|
||||
[es6.ts](def/es6.ts),
|
||||
[es7.ts](def/es7.ts),
|
||||
[es2020.ts](def/es2020.ts),
|
||||
[esprima.ts](def/esprima.ts),
|
||||
[flow.ts](def/flow.ts),
|
||||
[jsx.ts](def/jsx.ts),
|
||||
[type-annotations.ts](def/type-annotations.ts),
|
||||
and
|
||||
[typescripts.ts](def/typescripts.ts),
|
||||
so you have
|
||||
no shortage of examples to learn from.
|
||||
2
node_modules/ast-types/def/babel-core.d.ts
generated
vendored
Normal file
2
node_modules/ast-types/def/babel-core.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Fork } from "../types";
|
||||
export default function (fork: Fork): void;
|
||||
256
node_modules/ast-types/def/babel-core.js
generated
vendored
Normal file
256
node_modules/ast-types/def/babel-core.js
generated
vendored
Normal file
@@ -0,0 +1,256 @@
|
||||
"use strict";;
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var tslib_1 = require("tslib");
|
||||
var types_1 = tslib_1.__importDefault(require("../lib/types"));
|
||||
var shared_1 = tslib_1.__importDefault(require("../lib/shared"));
|
||||
var es7_1 = tslib_1.__importDefault(require("./es7"));
|
||||
function default_1(fork) {
|
||||
fork.use(es7_1.default);
|
||||
var types = fork.use(types_1.default);
|
||||
var defaults = fork.use(shared_1.default).defaults;
|
||||
var def = types.Type.def;
|
||||
var or = types.Type.or;
|
||||
def("Noop")
|
||||
.bases("Statement")
|
||||
.build();
|
||||
def("DoExpression")
|
||||
.bases("Expression")
|
||||
.build("body")
|
||||
.field("body", [def("Statement")]);
|
||||
def("Super")
|
||||
.bases("Expression")
|
||||
.build();
|
||||
def("BindExpression")
|
||||
.bases("Expression")
|
||||
.build("object", "callee")
|
||||
.field("object", or(def("Expression"), null))
|
||||
.field("callee", def("Expression"));
|
||||
def("Decorator")
|
||||
.bases("Node")
|
||||
.build("expression")
|
||||
.field("expression", def("Expression"));
|
||||
def("Property")
|
||||
.field("decorators", or([def("Decorator")], null), defaults["null"]);
|
||||
def("MethodDefinition")
|
||||
.field("decorators", or([def("Decorator")], null), defaults["null"]);
|
||||
def("MetaProperty")
|
||||
.bases("Expression")
|
||||
.build("meta", "property")
|
||||
.field("meta", def("Identifier"))
|
||||
.field("property", def("Identifier"));
|
||||
def("ParenthesizedExpression")
|
||||
.bases("Expression")
|
||||
.build("expression")
|
||||
.field("expression", def("Expression"));
|
||||
def("ImportSpecifier")
|
||||
.bases("ModuleSpecifier")
|
||||
.build("imported", "local")
|
||||
.field("imported", def("Identifier"));
|
||||
def("ImportDefaultSpecifier")
|
||||
.bases("ModuleSpecifier")
|
||||
.build("local");
|
||||
def("ImportNamespaceSpecifier")
|
||||
.bases("ModuleSpecifier")
|
||||
.build("local");
|
||||
def("ExportDefaultDeclaration")
|
||||
.bases("Declaration")
|
||||
.build("declaration")
|
||||
.field("declaration", or(def("Declaration"), def("Expression")));
|
||||
def("ExportNamedDeclaration")
|
||||
.bases("Declaration")
|
||||
.build("declaration", "specifiers", "source")
|
||||
.field("declaration", or(def("Declaration"), null))
|
||||
.field("specifiers", [def("ExportSpecifier")], defaults.emptyArray)
|
||||
.field("source", or(def("Literal"), null), defaults["null"]);
|
||||
def("ExportSpecifier")
|
||||
.bases("ModuleSpecifier")
|
||||
.build("local", "exported")
|
||||
.field("exported", def("Identifier"));
|
||||
def("ExportNamespaceSpecifier")
|
||||
.bases("Specifier")
|
||||
.build("exported")
|
||||
.field("exported", def("Identifier"));
|
||||
def("ExportDefaultSpecifier")
|
||||
.bases("Specifier")
|
||||
.build("exported")
|
||||
.field("exported", def("Identifier"));
|
||||
def("ExportAllDeclaration")
|
||||
.bases("Declaration")
|
||||
.build("exported", "source")
|
||||
.field("exported", or(def("Identifier"), null))
|
||||
.field("source", def("Literal"));
|
||||
def("CommentBlock")
|
||||
.bases("Comment")
|
||||
.build("value", /*optional:*/ "leading", "trailing");
|
||||
def("CommentLine")
|
||||
.bases("Comment")
|
||||
.build("value", /*optional:*/ "leading", "trailing");
|
||||
def("Directive")
|
||||
.bases("Node")
|
||||
.build("value")
|
||||
.field("value", def("DirectiveLiteral"));
|
||||
def("DirectiveLiteral")
|
||||
.bases("Node", "Expression")
|
||||
.build("value")
|
||||
.field("value", String, defaults["use strict"]);
|
||||
def("InterpreterDirective")
|
||||
.bases("Node")
|
||||
.build("value")
|
||||
.field("value", String);
|
||||
def("BlockStatement")
|
||||
.bases("Statement")
|
||||
.build("body")
|
||||
.field("body", [def("Statement")])
|
||||
.field("directives", [def("Directive")], defaults.emptyArray);
|
||||
def("Program")
|
||||
.bases("Node")
|
||||
.build("body")
|
||||
.field("body", [def("Statement")])
|
||||
.field("directives", [def("Directive")], defaults.emptyArray)
|
||||
.field("interpreter", or(def("InterpreterDirective"), null), defaults["null"]);
|
||||
// Split Literal
|
||||
def("StringLiteral")
|
||||
.bases("Literal")
|
||||
.build("value")
|
||||
.field("value", String);
|
||||
def("NumericLiteral")
|
||||
.bases("Literal")
|
||||
.build("value")
|
||||
.field("value", Number)
|
||||
.field("raw", or(String, null), defaults["null"])
|
||||
.field("extra", {
|
||||
rawValue: Number,
|
||||
raw: String
|
||||
}, function getDefault() {
|
||||
return {
|
||||
rawValue: this.value,
|
||||
raw: this.value + ""
|
||||
};
|
||||
});
|
||||
def("BigIntLiteral")
|
||||
.bases("Literal")
|
||||
.build("value")
|
||||
// Only String really seems appropriate here, since BigInt values
|
||||
// often exceed the limits of JS numbers.
|
||||
.field("value", or(String, Number))
|
||||
.field("extra", {
|
||||
rawValue: String,
|
||||
raw: String
|
||||
}, function getDefault() {
|
||||
return {
|
||||
rawValue: String(this.value),
|
||||
raw: this.value + "n"
|
||||
};
|
||||
});
|
||||
def("NullLiteral")
|
||||
.bases("Literal")
|
||||
.build()
|
||||
.field("value", null, defaults["null"]);
|
||||
def("BooleanLiteral")
|
||||
.bases("Literal")
|
||||
.build("value")
|
||||
.field("value", Boolean);
|
||||
def("RegExpLiteral")
|
||||
.bases("Literal")
|
||||
.build("pattern", "flags")
|
||||
.field("pattern", String)
|
||||
.field("flags", String)
|
||||
.field("value", RegExp, function () {
|
||||
return new RegExp(this.pattern, this.flags);
|
||||
});
|
||||
var ObjectExpressionProperty = or(def("Property"), def("ObjectMethod"), def("ObjectProperty"), def("SpreadProperty"), def("SpreadElement"));
|
||||
// Split Property -> ObjectProperty and ObjectMethod
|
||||
def("ObjectExpression")
|
||||
.bases("Expression")
|
||||
.build("properties")
|
||||
.field("properties", [ObjectExpressionProperty]);
|
||||
// ObjectMethod hoist .value properties to own properties
|
||||
def("ObjectMethod")
|
||||
.bases("Node", "Function")
|
||||
.build("kind", "key", "params", "body", "computed")
|
||||
.field("kind", or("method", "get", "set"))
|
||||
.field("key", or(def("Literal"), def("Identifier"), def("Expression")))
|
||||
.field("params", [def("Pattern")])
|
||||
.field("body", def("BlockStatement"))
|
||||
.field("computed", Boolean, defaults["false"])
|
||||
.field("generator", Boolean, defaults["false"])
|
||||
.field("async", Boolean, defaults["false"])
|
||||
.field("accessibility", // TypeScript
|
||||
or(def("Literal"), null), defaults["null"])
|
||||
.field("decorators", or([def("Decorator")], null), defaults["null"]);
|
||||
def("ObjectProperty")
|
||||
.bases("Node")
|
||||
.build("key", "value")
|
||||
.field("key", or(def("Literal"), def("Identifier"), def("Expression")))
|
||||
.field("value", or(def("Expression"), def("Pattern")))
|
||||
.field("accessibility", // TypeScript
|
||||
or(def("Literal"), null), defaults["null"])
|
||||
.field("computed", Boolean, defaults["false"]);
|
||||
var ClassBodyElement = or(def("MethodDefinition"), def("VariableDeclarator"), def("ClassPropertyDefinition"), def("ClassProperty"), def("ClassPrivateProperty"), def("ClassMethod"), def("ClassPrivateMethod"));
|
||||
// MethodDefinition -> ClassMethod
|
||||
def("ClassBody")
|
||||
.bases("Declaration")
|
||||
.build("body")
|
||||
.field("body", [ClassBodyElement]);
|
||||
def("ClassMethod")
|
||||
.bases("Declaration", "Function")
|
||||
.build("kind", "key", "params", "body", "computed", "static")
|
||||
.field("key", or(def("Literal"), def("Identifier"), def("Expression")));
|
||||
def("ClassPrivateMethod")
|
||||
.bases("Declaration", "Function")
|
||||
.build("key", "params", "body", "kind", "computed", "static")
|
||||
.field("key", def("PrivateName"));
|
||||
["ClassMethod",
|
||||
"ClassPrivateMethod",
|
||||
].forEach(function (typeName) {
|
||||
def(typeName)
|
||||
.field("kind", or("get", "set", "method", "constructor"), function () { return "method"; })
|
||||
.field("body", def("BlockStatement"))
|
||||
.field("computed", Boolean, defaults["false"])
|
||||
.field("static", or(Boolean, null), defaults["null"])
|
||||
.field("abstract", or(Boolean, null), defaults["null"])
|
||||
.field("access", or("public", "private", "protected", null), defaults["null"])
|
||||
.field("accessibility", or("public", "private", "protected", null), defaults["null"])
|
||||
.field("decorators", or([def("Decorator")], null), defaults["null"])
|
||||
.field("optional", or(Boolean, null), defaults["null"]);
|
||||
});
|
||||
def("ClassPrivateProperty")
|
||||
.bases("ClassProperty")
|
||||
.build("key", "value")
|
||||
.field("key", def("PrivateName"))
|
||||
.field("value", or(def("Expression"), null), defaults["null"]);
|
||||
def("PrivateName")
|
||||
.bases("Expression", "Pattern")
|
||||
.build("id")
|
||||
.field("id", def("Identifier"));
|
||||
var ObjectPatternProperty = or(def("Property"), def("PropertyPattern"), def("SpreadPropertyPattern"), def("SpreadProperty"), // Used by Esprima
|
||||
def("ObjectProperty"), // Babel 6
|
||||
def("RestProperty") // Babel 6
|
||||
);
|
||||
// Split into RestProperty and SpreadProperty
|
||||
def("ObjectPattern")
|
||||
.bases("Pattern")
|
||||
.build("properties")
|
||||
.field("properties", [ObjectPatternProperty])
|
||||
.field("decorators", or([def("Decorator")], null), defaults["null"]);
|
||||
def("SpreadProperty")
|
||||
.bases("Node")
|
||||
.build("argument")
|
||||
.field("argument", def("Expression"));
|
||||
def("RestProperty")
|
||||
.bases("Node")
|
||||
.build("argument")
|
||||
.field("argument", def("Expression"));
|
||||
def("ForAwaitStatement")
|
||||
.bases("Statement")
|
||||
.build("left", "right", "body")
|
||||
.field("left", or(def("VariableDeclaration"), def("Expression")))
|
||||
.field("right", def("Expression"))
|
||||
.field("body", def("Statement"));
|
||||
// The callee node of a dynamic import(...) expression.
|
||||
def("Import")
|
||||
.bases("Expression")
|
||||
.build();
|
||||
}
|
||||
exports.default = default_1;
|
||||
module.exports = exports["default"];
|
||||
2
node_modules/ast-types/def/babel.d.ts
generated
vendored
Normal file
2
node_modules/ast-types/def/babel.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Fork } from "../types";
|
||||
export default function (fork: Fork): void;
|
||||
11
node_modules/ast-types/def/babel.js
generated
vendored
Normal file
11
node_modules/ast-types/def/babel.js
generated
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
"use strict";;
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var tslib_1 = require("tslib");
|
||||
var babel_core_1 = tslib_1.__importDefault(require("./babel-core"));
|
||||
var flow_1 = tslib_1.__importDefault(require("./flow"));
|
||||
function default_1(fork) {
|
||||
fork.use(babel_core_1.default);
|
||||
fork.use(flow_1.default);
|
||||
}
|
||||
exports.default = default_1;
|
||||
module.exports = exports["default"];
|
||||
2
node_modules/ast-types/def/core.d.ts
generated
vendored
Normal file
2
node_modules/ast-types/def/core.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Fork } from "../types";
|
||||
export default function (fork: Fork): void;
|
||||
298
node_modules/ast-types/def/core.js
generated
vendored
Normal file
298
node_modules/ast-types/def/core.js
generated
vendored
Normal file
@@ -0,0 +1,298 @@
|
||||
"use strict";;
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var tslib_1 = require("tslib");
|
||||
var types_1 = tslib_1.__importDefault(require("../lib/types"));
|
||||
var shared_1 = tslib_1.__importDefault(require("../lib/shared"));
|
||||
function default_1(fork) {
|
||||
var types = fork.use(types_1.default);
|
||||
var Type = types.Type;
|
||||
var def = Type.def;
|
||||
var or = Type.or;
|
||||
var shared = fork.use(shared_1.default);
|
||||
var defaults = shared.defaults;
|
||||
var geq = shared.geq;
|
||||
// Abstract supertype of all syntactic entities that are allowed to have a
|
||||
// .loc field.
|
||||
def("Printable")
|
||||
.field("loc", or(def("SourceLocation"), null), defaults["null"], true);
|
||||
def("Node")
|
||||
.bases("Printable")
|
||||
.field("type", String)
|
||||
.field("comments", or([def("Comment")], null), defaults["null"], true);
|
||||
def("SourceLocation")
|
||||
.field("start", def("Position"))
|
||||
.field("end", def("Position"))
|
||||
.field("source", or(String, null), defaults["null"]);
|
||||
def("Position")
|
||||
.field("line", geq(1))
|
||||
.field("column", geq(0));
|
||||
def("File")
|
||||
.bases("Node")
|
||||
.build("program", "name")
|
||||
.field("program", def("Program"))
|
||||
.field("name", or(String, null), defaults["null"]);
|
||||
def("Program")
|
||||
.bases("Node")
|
||||
.build("body")
|
||||
.field("body", [def("Statement")]);
|
||||
def("Function")
|
||||
.bases("Node")
|
||||
.field("id", or(def("Identifier"), null), defaults["null"])
|
||||
.field("params", [def("Pattern")])
|
||||
.field("body", def("BlockStatement"))
|
||||
.field("generator", Boolean, defaults["false"])
|
||||
.field("async", Boolean, defaults["false"]);
|
||||
def("Statement").bases("Node");
|
||||
// The empty .build() here means that an EmptyStatement can be constructed
|
||||
// (i.e. it's not abstract) but that it needs no arguments.
|
||||
def("EmptyStatement").bases("Statement").build();
|
||||
def("BlockStatement")
|
||||
.bases("Statement")
|
||||
.build("body")
|
||||
.field("body", [def("Statement")]);
|
||||
// TODO Figure out how to silently coerce Expressions to
|
||||
// ExpressionStatements where a Statement was expected.
|
||||
def("ExpressionStatement")
|
||||
.bases("Statement")
|
||||
.build("expression")
|
||||
.field("expression", def("Expression"));
|
||||
def("IfStatement")
|
||||
.bases("Statement")
|
||||
.build("test", "consequent", "alternate")
|
||||
.field("test", def("Expression"))
|
||||
.field("consequent", def("Statement"))
|
||||
.field("alternate", or(def("Statement"), null), defaults["null"]);
|
||||
def("LabeledStatement")
|
||||
.bases("Statement")
|
||||
.build("label", "body")
|
||||
.field("label", def("Identifier"))
|
||||
.field("body", def("Statement"));
|
||||
def("BreakStatement")
|
||||
.bases("Statement")
|
||||
.build("label")
|
||||
.field("label", or(def("Identifier"), null), defaults["null"]);
|
||||
def("ContinueStatement")
|
||||
.bases("Statement")
|
||||
.build("label")
|
||||
.field("label", or(def("Identifier"), null), defaults["null"]);
|
||||
def("WithStatement")
|
||||
.bases("Statement")
|
||||
.build("object", "body")
|
||||
.field("object", def("Expression"))
|
||||
.field("body", def("Statement"));
|
||||
def("SwitchStatement")
|
||||
.bases("Statement")
|
||||
.build("discriminant", "cases", "lexical")
|
||||
.field("discriminant", def("Expression"))
|
||||
.field("cases", [def("SwitchCase")])
|
||||
.field("lexical", Boolean, defaults["false"]);
|
||||
def("ReturnStatement")
|
||||
.bases("Statement")
|
||||
.build("argument")
|
||||
.field("argument", or(def("Expression"), null));
|
||||
def("ThrowStatement")
|
||||
.bases("Statement")
|
||||
.build("argument")
|
||||
.field("argument", def("Expression"));
|
||||
def("TryStatement")
|
||||
.bases("Statement")
|
||||
.build("block", "handler", "finalizer")
|
||||
.field("block", def("BlockStatement"))
|
||||
.field("handler", or(def("CatchClause"), null), function () {
|
||||
return this.handlers && this.handlers[0] || null;
|
||||
})
|
||||
.field("handlers", [def("CatchClause")], function () {
|
||||
return this.handler ? [this.handler] : [];
|
||||
}, true) // Indicates this field is hidden from eachField iteration.
|
||||
.field("guardedHandlers", [def("CatchClause")], defaults.emptyArray)
|
||||
.field("finalizer", or(def("BlockStatement"), null), defaults["null"]);
|
||||
def("CatchClause")
|
||||
.bases("Node")
|
||||
.build("param", "guard", "body")
|
||||
// https://github.com/tc39/proposal-optional-catch-binding
|
||||
.field("param", or(def("Pattern"), null), defaults["null"])
|
||||
.field("guard", or(def("Expression"), null), defaults["null"])
|
||||
.field("body", def("BlockStatement"));
|
||||
def("WhileStatement")
|
||||
.bases("Statement")
|
||||
.build("test", "body")
|
||||
.field("test", def("Expression"))
|
||||
.field("body", def("Statement"));
|
||||
def("DoWhileStatement")
|
||||
.bases("Statement")
|
||||
.build("body", "test")
|
||||
.field("body", def("Statement"))
|
||||
.field("test", def("Expression"));
|
||||
def("ForStatement")
|
||||
.bases("Statement")
|
||||
.build("init", "test", "update", "body")
|
||||
.field("init", or(def("VariableDeclaration"), def("Expression"), null))
|
||||
.field("test", or(def("Expression"), null))
|
||||
.field("update", or(def("Expression"), null))
|
||||
.field("body", def("Statement"));
|
||||
def("ForInStatement")
|
||||
.bases("Statement")
|
||||
.build("left", "right", "body")
|
||||
.field("left", or(def("VariableDeclaration"), def("Expression")))
|
||||
.field("right", def("Expression"))
|
||||
.field("body", def("Statement"));
|
||||
def("DebuggerStatement").bases("Statement").build();
|
||||
def("Declaration").bases("Statement");
|
||||
def("FunctionDeclaration")
|
||||
.bases("Function", "Declaration")
|
||||
.build("id", "params", "body")
|
||||
.field("id", def("Identifier"));
|
||||
def("FunctionExpression")
|
||||
.bases("Function", "Expression")
|
||||
.build("id", "params", "body");
|
||||
def("VariableDeclaration")
|
||||
.bases("Declaration")
|
||||
.build("kind", "declarations")
|
||||
.field("kind", or("var", "let", "const"))
|
||||
.field("declarations", [def("VariableDeclarator")]);
|
||||
def("VariableDeclarator")
|
||||
.bases("Node")
|
||||
.build("id", "init")
|
||||
.field("id", def("Pattern"))
|
||||
.field("init", or(def("Expression"), null), defaults["null"]);
|
||||
def("Expression").bases("Node");
|
||||
def("ThisExpression").bases("Expression").build();
|
||||
def("ArrayExpression")
|
||||
.bases("Expression")
|
||||
.build("elements")
|
||||
.field("elements", [or(def("Expression"), null)]);
|
||||
def("ObjectExpression")
|
||||
.bases("Expression")
|
||||
.build("properties")
|
||||
.field("properties", [def("Property")]);
|
||||
// TODO Not in the Mozilla Parser API, but used by Esprima.
|
||||
def("Property")
|
||||
.bases("Node") // Want to be able to visit Property Nodes.
|
||||
.build("kind", "key", "value")
|
||||
.field("kind", or("init", "get", "set"))
|
||||
.field("key", or(def("Literal"), def("Identifier")))
|
||||
.field("value", def("Expression"));
|
||||
def("SequenceExpression")
|
||||
.bases("Expression")
|
||||
.build("expressions")
|
||||
.field("expressions", [def("Expression")]);
|
||||
var UnaryOperator = or("-", "+", "!", "~", "typeof", "void", "delete");
|
||||
def("UnaryExpression")
|
||||
.bases("Expression")
|
||||
.build("operator", "argument", "prefix")
|
||||
.field("operator", UnaryOperator)
|
||||
.field("argument", def("Expression"))
|
||||
// Esprima doesn't bother with this field, presumably because it's
|
||||
// always true for unary operators.
|
||||
.field("prefix", Boolean, defaults["true"]);
|
||||
var BinaryOperator = or("==", "!=", "===", "!==", "<", "<=", ">", ">=", "<<", ">>", ">>>", "+", "-", "*", "/", "%", "**", "&", // TODO Missing from the Parser API.
|
||||
"|", "^", "in", "instanceof");
|
||||
def("BinaryExpression")
|
||||
.bases("Expression")
|
||||
.build("operator", "left", "right")
|
||||
.field("operator", BinaryOperator)
|
||||
.field("left", def("Expression"))
|
||||
.field("right", def("Expression"));
|
||||
var AssignmentOperator = or("=", "+=", "-=", "*=", "/=", "%=", "<<=", ">>=", ">>>=", "|=", "^=", "&=");
|
||||
def("AssignmentExpression")
|
||||
.bases("Expression")
|
||||
.build("operator", "left", "right")
|
||||
.field("operator", AssignmentOperator)
|
||||
.field("left", or(def("Pattern"), def("MemberExpression")))
|
||||
.field("right", def("Expression"));
|
||||
var UpdateOperator = or("++", "--");
|
||||
def("UpdateExpression")
|
||||
.bases("Expression")
|
||||
.build("operator", "argument", "prefix")
|
||||
.field("operator", UpdateOperator)
|
||||
.field("argument", def("Expression"))
|
||||
.field("prefix", Boolean);
|
||||
var LogicalOperator = or("||", "&&");
|
||||
def("LogicalExpression")
|
||||
.bases("Expression")
|
||||
.build("operator", "left", "right")
|
||||
.field("operator", LogicalOperator)
|
||||
.field("left", def("Expression"))
|
||||
.field("right", def("Expression"));
|
||||
def("ConditionalExpression")
|
||||
.bases("Expression")
|
||||
.build("test", "consequent", "alternate")
|
||||
.field("test", def("Expression"))
|
||||
.field("consequent", def("Expression"))
|
||||
.field("alternate", def("Expression"));
|
||||
def("NewExpression")
|
||||
.bases("Expression")
|
||||
.build("callee", "arguments")
|
||||
.field("callee", def("Expression"))
|
||||
// The Mozilla Parser API gives this type as [or(def("Expression"),
|
||||
// null)], but null values don't really make sense at the call site.
|
||||
// TODO Report this nonsense.
|
||||
.field("arguments", [def("Expression")]);
|
||||
def("CallExpression")
|
||||
.bases("Expression")
|
||||
.build("callee", "arguments")
|
||||
.field("callee", def("Expression"))
|
||||
// See comment for NewExpression above.
|
||||
.field("arguments", [def("Expression")]);
|
||||
def("MemberExpression")
|
||||
.bases("Expression")
|
||||
.build("object", "property", "computed")
|
||||
.field("object", def("Expression"))
|
||||
.field("property", or(def("Identifier"), def("Expression")))
|
||||
.field("computed", Boolean, function () {
|
||||
var type = this.property.type;
|
||||
if (type === 'Literal' ||
|
||||
type === 'MemberExpression' ||
|
||||
type === 'BinaryExpression') {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
});
|
||||
def("Pattern").bases("Node");
|
||||
def("SwitchCase")
|
||||
.bases("Node")
|
||||
.build("test", "consequent")
|
||||
.field("test", or(def("Expression"), null))
|
||||
.field("consequent", [def("Statement")]);
|
||||
def("Identifier")
|
||||
.bases("Expression", "Pattern")
|
||||
.build("name")
|
||||
.field("name", String)
|
||||
.field("optional", Boolean, defaults["false"]);
|
||||
def("Literal")
|
||||
.bases("Expression")
|
||||
.build("value")
|
||||
.field("value", or(String, Boolean, null, Number, RegExp))
|
||||
.field("regex", or({
|
||||
pattern: String,
|
||||
flags: String
|
||||
}, null), function () {
|
||||
if (this.value instanceof RegExp) {
|
||||
var flags = "";
|
||||
if (this.value.ignoreCase)
|
||||
flags += "i";
|
||||
if (this.value.multiline)
|
||||
flags += "m";
|
||||
if (this.value.global)
|
||||
flags += "g";
|
||||
return {
|
||||
pattern: this.value.source,
|
||||
flags: flags
|
||||
};
|
||||
}
|
||||
return null;
|
||||
});
|
||||
// Abstract (non-buildable) comment supertype. Not a Node.
|
||||
def("Comment")
|
||||
.bases("Printable")
|
||||
.field("value", String)
|
||||
// A .leading comment comes before the node, whereas a .trailing
|
||||
// comment comes after it. These two fields should not both be true,
|
||||
// but they might both be false when the comment falls inside a node
|
||||
// and the node has no children for the comment to lead or trail,
|
||||
// e.g. { /*dangling*/ }.
|
||||
.field("leading", Boolean, defaults["true"])
|
||||
.field("trailing", Boolean, defaults["false"]);
|
||||
}
|
||||
exports.default = default_1;
|
||||
module.exports = exports["default"];
|
||||
2
node_modules/ast-types/def/es-proposals.d.ts
generated
vendored
Normal file
2
node_modules/ast-types/def/es-proposals.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Fork } from "../types";
|
||||
export default function (fork: Fork): void;
|
||||
33
node_modules/ast-types/def/es-proposals.js
generated
vendored
Normal file
33
node_modules/ast-types/def/es-proposals.js
generated
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
"use strict";;
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var tslib_1 = require("tslib");
|
||||
var types_1 = tslib_1.__importDefault(require("../lib/types"));
|
||||
var shared_1 = tslib_1.__importDefault(require("../lib/shared"));
|
||||
var core_1 = tslib_1.__importDefault(require("./core"));
|
||||
function default_1(fork) {
|
||||
fork.use(core_1.default);
|
||||
var types = fork.use(types_1.default);
|
||||
var Type = types.Type;
|
||||
var def = types.Type.def;
|
||||
var or = Type.or;
|
||||
var shared = fork.use(shared_1.default);
|
||||
var defaults = shared.defaults;
|
||||
// https://github.com/tc39/proposal-optional-chaining
|
||||
// `a?.b` as per https://github.com/estree/estree/issues/146
|
||||
def("OptionalMemberExpression")
|
||||
.bases("MemberExpression")
|
||||
.build("object", "property", "computed", "optional")
|
||||
.field("optional", Boolean, defaults["true"]);
|
||||
// a?.b()
|
||||
def("OptionalCallExpression")
|
||||
.bases("CallExpression")
|
||||
.build("callee", "arguments", "optional")
|
||||
.field("optional", Boolean, defaults["true"]);
|
||||
// https://github.com/tc39/proposal-nullish-coalescing
|
||||
// `a ?? b` as per https://github.com/babel/babylon/pull/761/files
|
||||
var LogicalOperator = or("||", "&&", "??");
|
||||
def("LogicalExpression")
|
||||
.field("operator", LogicalOperator);
|
||||
}
|
||||
exports.default = default_1;
|
||||
module.exports = exports["default"];
|
||||
2
node_modules/ast-types/def/es2020.d.ts
generated
vendored
Normal file
2
node_modules/ast-types/def/es2020.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Fork } from "../types";
|
||||
export default function (fork: Fork): void;
|
||||
16
node_modules/ast-types/def/es2020.js
generated
vendored
Normal file
16
node_modules/ast-types/def/es2020.js
generated
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
"use strict";;
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var tslib_1 = require("tslib");
|
||||
var es7_1 = tslib_1.__importDefault(require("./es7"));
|
||||
var types_1 = tslib_1.__importDefault(require("../lib/types"));
|
||||
function default_1(fork) {
|
||||
fork.use(es7_1.default);
|
||||
var types = fork.use(types_1.default);
|
||||
var def = types.Type.def;
|
||||
def("ImportExpression")
|
||||
.bases("Expression")
|
||||
.build("source")
|
||||
.field("source", def("Expression"));
|
||||
}
|
||||
exports.default = default_1;
|
||||
module.exports = exports["default"];
|
||||
2
node_modules/ast-types/def/es6.d.ts
generated
vendored
Normal file
2
node_modules/ast-types/def/es6.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Fork } from "../types";
|
||||
export default function (fork: Fork): void;
|
||||
210
node_modules/ast-types/def/es6.js
generated
vendored
Normal file
210
node_modules/ast-types/def/es6.js
generated
vendored
Normal file
@@ -0,0 +1,210 @@
|
||||
"use strict";;
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var tslib_1 = require("tslib");
|
||||
var core_1 = tslib_1.__importDefault(require("./core"));
|
||||
var types_1 = tslib_1.__importDefault(require("../lib/types"));
|
||||
var shared_1 = tslib_1.__importDefault(require("../lib/shared"));
|
||||
function default_1(fork) {
|
||||
fork.use(core_1.default);
|
||||
var types = fork.use(types_1.default);
|
||||
var def = types.Type.def;
|
||||
var or = types.Type.or;
|
||||
var defaults = fork.use(shared_1.default).defaults;
|
||||
def("Function")
|
||||
.field("generator", Boolean, defaults["false"])
|
||||
.field("expression", Boolean, defaults["false"])
|
||||
.field("defaults", [or(def("Expression"), null)], defaults.emptyArray)
|
||||
// TODO This could be represented as a RestElement in .params.
|
||||
.field("rest", or(def("Identifier"), null), defaults["null"]);
|
||||
// The ESTree way of representing a ...rest parameter.
|
||||
def("RestElement")
|
||||
.bases("Pattern")
|
||||
.build("argument")
|
||||
.field("argument", def("Pattern"))
|
||||
.field("typeAnnotation", // for Babylon. Flow parser puts it on the identifier
|
||||
or(def("TypeAnnotation"), def("TSTypeAnnotation"), null), defaults["null"]);
|
||||
def("SpreadElementPattern")
|
||||
.bases("Pattern")
|
||||
.build("argument")
|
||||
.field("argument", def("Pattern"));
|
||||
def("FunctionDeclaration")
|
||||
.build("id", "params", "body", "generator", "expression");
|
||||
def("FunctionExpression")
|
||||
.build("id", "params", "body", "generator", "expression");
|
||||
// The Parser API calls this ArrowExpression, but Esprima and all other
|
||||
// actual parsers use ArrowFunctionExpression.
|
||||
def("ArrowFunctionExpression")
|
||||
.bases("Function", "Expression")
|
||||
.build("params", "body", "expression")
|
||||
// The forced null value here is compatible with the overridden
|
||||
// definition of the "id" field in the Function interface.
|
||||
.field("id", null, defaults["null"])
|
||||
// Arrow function bodies are allowed to be expressions.
|
||||
.field("body", or(def("BlockStatement"), def("Expression")))
|
||||
// The current spec forbids arrow generators, so I have taken the
|
||||
// liberty of enforcing that. TODO Report this.
|
||||
.field("generator", false, defaults["false"]);
|
||||
def("ForOfStatement")
|
||||
.bases("Statement")
|
||||
.build("left", "right", "body")
|
||||
.field("left", or(def("VariableDeclaration"), def("Pattern")))
|
||||
.field("right", def("Expression"))
|
||||
.field("body", def("Statement"));
|
||||
def("YieldExpression")
|
||||
.bases("Expression")
|
||||
.build("argument", "delegate")
|
||||
.field("argument", or(def("Expression"), null))
|
||||
.field("delegate", Boolean, defaults["false"]);
|
||||
def("GeneratorExpression")
|
||||
.bases("Expression")
|
||||
.build("body", "blocks", "filter")
|
||||
.field("body", def("Expression"))
|
||||
.field("blocks", [def("ComprehensionBlock")])
|
||||
.field("filter", or(def("Expression"), null));
|
||||
def("ComprehensionExpression")
|
||||
.bases("Expression")
|
||||
.build("body", "blocks", "filter")
|
||||
.field("body", def("Expression"))
|
||||
.field("blocks", [def("ComprehensionBlock")])
|
||||
.field("filter", or(def("Expression"), null));
|
||||
def("ComprehensionBlock")
|
||||
.bases("Node")
|
||||
.build("left", "right", "each")
|
||||
.field("left", def("Pattern"))
|
||||
.field("right", def("Expression"))
|
||||
.field("each", Boolean);
|
||||
def("Property")
|
||||
.field("key", or(def("Literal"), def("Identifier"), def("Expression")))
|
||||
.field("value", or(def("Expression"), def("Pattern")))
|
||||
.field("method", Boolean, defaults["false"])
|
||||
.field("shorthand", Boolean, defaults["false"])
|
||||
.field("computed", Boolean, defaults["false"]);
|
||||
def("ObjectProperty")
|
||||
.field("shorthand", Boolean, defaults["false"]);
|
||||
def("PropertyPattern")
|
||||
.bases("Pattern")
|
||||
.build("key", "pattern")
|
||||
.field("key", or(def("Literal"), def("Identifier"), def("Expression")))
|
||||
.field("pattern", def("Pattern"))
|
||||
.field("computed", Boolean, defaults["false"]);
|
||||
def("ObjectPattern")
|
||||
.bases("Pattern")
|
||||
.build("properties")
|
||||
.field("properties", [or(def("PropertyPattern"), def("Property"))]);
|
||||
def("ArrayPattern")
|
||||
.bases("Pattern")
|
||||
.build("elements")
|
||||
.field("elements", [or(def("Pattern"), null)]);
|
||||
def("MethodDefinition")
|
||||
.bases("Declaration")
|
||||
.build("kind", "key", "value", "static")
|
||||
.field("kind", or("constructor", "method", "get", "set"))
|
||||
.field("key", def("Expression"))
|
||||
.field("value", def("Function"))
|
||||
.field("computed", Boolean, defaults["false"])
|
||||
.field("static", Boolean, defaults["false"]);
|
||||
def("SpreadElement")
|
||||
.bases("Node")
|
||||
.build("argument")
|
||||
.field("argument", def("Expression"));
|
||||
def("ArrayExpression")
|
||||
.field("elements", [or(def("Expression"), def("SpreadElement"), def("RestElement"), null)]);
|
||||
def("NewExpression")
|
||||
.field("arguments", [or(def("Expression"), def("SpreadElement"))]);
|
||||
def("CallExpression")
|
||||
.field("arguments", [or(def("Expression"), def("SpreadElement"))]);
|
||||
// Note: this node type is *not* an AssignmentExpression with a Pattern on
|
||||
// the left-hand side! The existing AssignmentExpression type already
|
||||
// supports destructuring assignments. AssignmentPattern nodes may appear
|
||||
// wherever a Pattern is allowed, and the right-hand side represents a
|
||||
// default value to be destructured against the left-hand side, if no
|
||||
// value is otherwise provided. For example: default parameter values.
|
||||
def("AssignmentPattern")
|
||||
.bases("Pattern")
|
||||
.build("left", "right")
|
||||
.field("left", def("Pattern"))
|
||||
.field("right", def("Expression"));
|
||||
var ClassBodyElement = or(def("MethodDefinition"), def("VariableDeclarator"), def("ClassPropertyDefinition"), def("ClassProperty"));
|
||||
def("ClassProperty")
|
||||
.bases("Declaration")
|
||||
.build("key")
|
||||
.field("key", or(def("Literal"), def("Identifier"), def("Expression")))
|
||||
.field("computed", Boolean, defaults["false"]);
|
||||
def("ClassPropertyDefinition") // static property
|
||||
.bases("Declaration")
|
||||
.build("definition")
|
||||
// Yes, Virginia, circular definitions are permitted.
|
||||
.field("definition", ClassBodyElement);
|
||||
def("ClassBody")
|
||||
.bases("Declaration")
|
||||
.build("body")
|
||||
.field("body", [ClassBodyElement]);
|
||||
def("ClassDeclaration")
|
||||
.bases("Declaration")
|
||||
.build("id", "body", "superClass")
|
||||
.field("id", or(def("Identifier"), null))
|
||||
.field("body", def("ClassBody"))
|
||||
.field("superClass", or(def("Expression"), null), defaults["null"]);
|
||||
def("ClassExpression")
|
||||
.bases("Expression")
|
||||
.build("id", "body", "superClass")
|
||||
.field("id", or(def("Identifier"), null), defaults["null"])
|
||||
.field("body", def("ClassBody"))
|
||||
.field("superClass", or(def("Expression"), null), defaults["null"]);
|
||||
// Specifier and ModuleSpecifier are abstract non-standard types
|
||||
// introduced for definitional convenience.
|
||||
def("Specifier").bases("Node");
|
||||
// This supertype is shared/abused by both def/babel.js and
|
||||
// def/esprima.js. In the future, it will be possible to load only one set
|
||||
// of definitions appropriate for a given parser, but until then we must
|
||||
// rely on default functions to reconcile the conflicting AST formats.
|
||||
def("ModuleSpecifier")
|
||||
.bases("Specifier")
|
||||
// This local field is used by Babel/Acorn. It should not technically
|
||||
// be optional in the Babel/Acorn AST format, but it must be optional
|
||||
// in the Esprima AST format.
|
||||
.field("local", or(def("Identifier"), null), defaults["null"])
|
||||
// The id and name fields are used by Esprima. The id field should not
|
||||
// technically be optional in the Esprima AST format, but it must be
|
||||
// optional in the Babel/Acorn AST format.
|
||||
.field("id", or(def("Identifier"), null), defaults["null"])
|
||||
.field("name", or(def("Identifier"), null), defaults["null"]);
|
||||
// Like ModuleSpecifier, except type:"ImportSpecifier" and buildable.
|
||||
// import {<id [as name]>} from ...;
|
||||
def("ImportSpecifier")
|
||||
.bases("ModuleSpecifier")
|
||||
.build("id", "name");
|
||||
// import <* as id> from ...;
|
||||
def("ImportNamespaceSpecifier")
|
||||
.bases("ModuleSpecifier")
|
||||
.build("id");
|
||||
// import <id> from ...;
|
||||
def("ImportDefaultSpecifier")
|
||||
.bases("ModuleSpecifier")
|
||||
.build("id");
|
||||
def("ImportDeclaration")
|
||||
.bases("Declaration")
|
||||
.build("specifiers", "source", "importKind")
|
||||
.field("specifiers", [or(def("ImportSpecifier"), def("ImportNamespaceSpecifier"), def("ImportDefaultSpecifier"))], defaults.emptyArray)
|
||||
.field("source", def("Literal"))
|
||||
.field("importKind", or("value", "type"), function () {
|
||||
return "value";
|
||||
});
|
||||
def("TaggedTemplateExpression")
|
||||
.bases("Expression")
|
||||
.build("tag", "quasi")
|
||||
.field("tag", def("Expression"))
|
||||
.field("quasi", def("TemplateLiteral"));
|
||||
def("TemplateLiteral")
|
||||
.bases("Expression")
|
||||
.build("quasis", "expressions")
|
||||
.field("quasis", [def("TemplateElement")])
|
||||
.field("expressions", [def("Expression")]);
|
||||
def("TemplateElement")
|
||||
.bases("Node")
|
||||
.build("value", "tail")
|
||||
.field("value", { "cooked": String, "raw": String })
|
||||
.field("tail", Boolean);
|
||||
}
|
||||
exports.default = default_1;
|
||||
module.exports = exports["default"];
|
||||
2
node_modules/ast-types/def/es7.d.ts
generated
vendored
Normal file
2
node_modules/ast-types/def/es7.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Fork } from "../types";
|
||||
export default function (fork: Fork): void;
|
||||
34
node_modules/ast-types/def/es7.js
generated
vendored
Normal file
34
node_modules/ast-types/def/es7.js
generated
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
"use strict";;
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var tslib_1 = require("tslib");
|
||||
var es6_1 = tslib_1.__importDefault(require("./es6"));
|
||||
var types_1 = tslib_1.__importDefault(require("../lib/types"));
|
||||
var shared_1 = tslib_1.__importDefault(require("../lib/shared"));
|
||||
function default_1(fork) {
|
||||
fork.use(es6_1.default);
|
||||
var types = fork.use(types_1.default);
|
||||
var def = types.Type.def;
|
||||
var or = types.Type.or;
|
||||
var defaults = fork.use(shared_1.default).defaults;
|
||||
def("Function")
|
||||
.field("async", Boolean, defaults["false"]);
|
||||
def("SpreadProperty")
|
||||
.bases("Node")
|
||||
.build("argument")
|
||||
.field("argument", def("Expression"));
|
||||
def("ObjectExpression")
|
||||
.field("properties", [or(def("Property"), def("SpreadProperty"), def("SpreadElement"))]);
|
||||
def("SpreadPropertyPattern")
|
||||
.bases("Pattern")
|
||||
.build("argument")
|
||||
.field("argument", def("Pattern"));
|
||||
def("ObjectPattern")
|
||||
.field("properties", [or(def("Property"), def("PropertyPattern"), def("SpreadPropertyPattern"))]);
|
||||
def("AwaitExpression")
|
||||
.bases("Expression")
|
||||
.build("argument", "all")
|
||||
.field("argument", or(def("Expression"), null))
|
||||
.field("all", Boolean, defaults["false"]);
|
||||
}
|
||||
exports.default = default_1;
|
||||
module.exports = exports["default"];
|
||||
2
node_modules/ast-types/def/esprima.d.ts
generated
vendored
Normal file
2
node_modules/ast-types/def/esprima.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Fork } from "../types";
|
||||
export default function (fork: Fork): void;
|
||||
49
node_modules/ast-types/def/esprima.js
generated
vendored
Normal file
49
node_modules/ast-types/def/esprima.js
generated
vendored
Normal file
@@ -0,0 +1,49 @@
|
||||
"use strict";;
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var tslib_1 = require("tslib");
|
||||
var es7_1 = tslib_1.__importDefault(require("./es7"));
|
||||
var types_1 = tslib_1.__importDefault(require("../lib/types"));
|
||||
var shared_1 = tslib_1.__importDefault(require("../lib/shared"));
|
||||
function default_1(fork) {
|
||||
fork.use(es7_1.default);
|
||||
var types = fork.use(types_1.default);
|
||||
var defaults = fork.use(shared_1.default).defaults;
|
||||
var def = types.Type.def;
|
||||
var or = types.Type.or;
|
||||
def("VariableDeclaration")
|
||||
.field("declarations", [or(def("VariableDeclarator"), def("Identifier") // Esprima deviation.
|
||||
)]);
|
||||
def("Property")
|
||||
.field("value", or(def("Expression"), def("Pattern") // Esprima deviation.
|
||||
));
|
||||
def("ArrayPattern")
|
||||
.field("elements", [or(def("Pattern"), def("SpreadElement"), null)]);
|
||||
def("ObjectPattern")
|
||||
.field("properties", [or(def("Property"), def("PropertyPattern"), def("SpreadPropertyPattern"), def("SpreadProperty") // Used by Esprima.
|
||||
)]);
|
||||
// Like ModuleSpecifier, except type:"ExportSpecifier" and buildable.
|
||||
// export {<id [as name]>} [from ...];
|
||||
def("ExportSpecifier")
|
||||
.bases("ModuleSpecifier")
|
||||
.build("id", "name");
|
||||
// export <*> from ...;
|
||||
def("ExportBatchSpecifier")
|
||||
.bases("Specifier")
|
||||
.build();
|
||||
def("ExportDeclaration")
|
||||
.bases("Declaration")
|
||||
.build("default", "declaration", "specifiers", "source")
|
||||
.field("default", Boolean)
|
||||
.field("declaration", or(def("Declaration"), def("Expression"), // Implies default.
|
||||
null))
|
||||
.field("specifiers", [or(def("ExportSpecifier"), def("ExportBatchSpecifier"))], defaults.emptyArray)
|
||||
.field("source", or(def("Literal"), null), defaults["null"]);
|
||||
def("Block")
|
||||
.bases("Comment")
|
||||
.build("value", /*optional:*/ "leading", "trailing");
|
||||
def("Line")
|
||||
.bases("Comment")
|
||||
.build("value", /*optional:*/ "leading", "trailing");
|
||||
}
|
||||
exports.default = default_1;
|
||||
module.exports = exports["default"];
|
||||
2
node_modules/ast-types/def/flow.d.ts
generated
vendored
Normal file
2
node_modules/ast-types/def/flow.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Fork } from "../types";
|
||||
export default function (fork: Fork): void;
|
||||
292
node_modules/ast-types/def/flow.js
generated
vendored
Normal file
292
node_modules/ast-types/def/flow.js
generated
vendored
Normal file
@@ -0,0 +1,292 @@
|
||||
"use strict";;
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var tslib_1 = require("tslib");
|
||||
var es7_1 = tslib_1.__importDefault(require("./es7"));
|
||||
var type_annotations_1 = tslib_1.__importDefault(require("./type-annotations"));
|
||||
var types_1 = tslib_1.__importDefault(require("../lib/types"));
|
||||
var shared_1 = tslib_1.__importDefault(require("../lib/shared"));
|
||||
function default_1(fork) {
|
||||
fork.use(es7_1.default);
|
||||
fork.use(type_annotations_1.default);
|
||||
var types = fork.use(types_1.default);
|
||||
var def = types.Type.def;
|
||||
var or = types.Type.or;
|
||||
var defaults = fork.use(shared_1.default).defaults;
|
||||
// Base types
|
||||
def("Flow").bases("Node");
|
||||
def("FlowType").bases("Flow");
|
||||
// Type annotations
|
||||
def("AnyTypeAnnotation")
|
||||
.bases("FlowType")
|
||||
.build();
|
||||
def("EmptyTypeAnnotation")
|
||||
.bases("FlowType")
|
||||
.build();
|
||||
def("MixedTypeAnnotation")
|
||||
.bases("FlowType")
|
||||
.build();
|
||||
def("VoidTypeAnnotation")
|
||||
.bases("FlowType")
|
||||
.build();
|
||||
def("NumberTypeAnnotation")
|
||||
.bases("FlowType")
|
||||
.build();
|
||||
def("NumberLiteralTypeAnnotation")
|
||||
.bases("FlowType")
|
||||
.build("value", "raw")
|
||||
.field("value", Number)
|
||||
.field("raw", String);
|
||||
// Babylon 6 differs in AST from Flow
|
||||
// same as NumberLiteralTypeAnnotation
|
||||
def("NumericLiteralTypeAnnotation")
|
||||
.bases("FlowType")
|
||||
.build("value", "raw")
|
||||
.field("value", Number)
|
||||
.field("raw", String);
|
||||
def("StringTypeAnnotation")
|
||||
.bases("FlowType")
|
||||
.build();
|
||||
def("StringLiteralTypeAnnotation")
|
||||
.bases("FlowType")
|
||||
.build("value", "raw")
|
||||
.field("value", String)
|
||||
.field("raw", String);
|
||||
def("BooleanTypeAnnotation")
|
||||
.bases("FlowType")
|
||||
.build();
|
||||
def("BooleanLiteralTypeAnnotation")
|
||||
.bases("FlowType")
|
||||
.build("value", "raw")
|
||||
.field("value", Boolean)
|
||||
.field("raw", String);
|
||||
def("TypeAnnotation")
|
||||
.bases("Node")
|
||||
.build("typeAnnotation")
|
||||
.field("typeAnnotation", def("FlowType"));
|
||||
def("NullableTypeAnnotation")
|
||||
.bases("FlowType")
|
||||
.build("typeAnnotation")
|
||||
.field("typeAnnotation", def("FlowType"));
|
||||
def("NullLiteralTypeAnnotation")
|
||||
.bases("FlowType")
|
||||
.build();
|
||||
def("NullTypeAnnotation")
|
||||
.bases("FlowType")
|
||||
.build();
|
||||
def("ThisTypeAnnotation")
|
||||
.bases("FlowType")
|
||||
.build();
|
||||
def("ExistsTypeAnnotation")
|
||||
.bases("FlowType")
|
||||
.build();
|
||||
def("ExistentialTypeParam")
|
||||
.bases("FlowType")
|
||||
.build();
|
||||
def("FunctionTypeAnnotation")
|
||||
.bases("FlowType")
|
||||
.build("params", "returnType", "rest", "typeParameters")
|
||||
.field("params", [def("FunctionTypeParam")])
|
||||
.field("returnType", def("FlowType"))
|
||||
.field("rest", or(def("FunctionTypeParam"), null))
|
||||
.field("typeParameters", or(def("TypeParameterDeclaration"), null));
|
||||
def("FunctionTypeParam")
|
||||
.bases("Node")
|
||||
.build("name", "typeAnnotation", "optional")
|
||||
.field("name", def("Identifier"))
|
||||
.field("typeAnnotation", def("FlowType"))
|
||||
.field("optional", Boolean);
|
||||
def("ArrayTypeAnnotation")
|
||||
.bases("FlowType")
|
||||
.build("elementType")
|
||||
.field("elementType", def("FlowType"));
|
||||
def("ObjectTypeAnnotation")
|
||||
.bases("FlowType")
|
||||
.build("properties", "indexers", "callProperties")
|
||||
.field("properties", [
|
||||
or(def("ObjectTypeProperty"), def("ObjectTypeSpreadProperty"))
|
||||
])
|
||||
.field("indexers", [def("ObjectTypeIndexer")], defaults.emptyArray)
|
||||
.field("callProperties", [def("ObjectTypeCallProperty")], defaults.emptyArray)
|
||||
.field("inexact", or(Boolean, void 0), defaults["undefined"])
|
||||
.field("exact", Boolean, defaults["false"])
|
||||
.field("internalSlots", [def("ObjectTypeInternalSlot")], defaults.emptyArray);
|
||||
def("Variance")
|
||||
.bases("Node")
|
||||
.build("kind")
|
||||
.field("kind", or("plus", "minus"));
|
||||
var LegacyVariance = or(def("Variance"), "plus", "minus", null);
|
||||
def("ObjectTypeProperty")
|
||||
.bases("Node")
|
||||
.build("key", "value", "optional")
|
||||
.field("key", or(def("Literal"), def("Identifier")))
|
||||
.field("value", def("FlowType"))
|
||||
.field("optional", Boolean)
|
||||
.field("variance", LegacyVariance, defaults["null"]);
|
||||
def("ObjectTypeIndexer")
|
||||
.bases("Node")
|
||||
.build("id", "key", "value")
|
||||
.field("id", def("Identifier"))
|
||||
.field("key", def("FlowType"))
|
||||
.field("value", def("FlowType"))
|
||||
.field("variance", LegacyVariance, defaults["null"]);
|
||||
def("ObjectTypeCallProperty")
|
||||
.bases("Node")
|
||||
.build("value")
|
||||
.field("value", def("FunctionTypeAnnotation"))
|
||||
.field("static", Boolean, defaults["false"]);
|
||||
def("QualifiedTypeIdentifier")
|
||||
.bases("Node")
|
||||
.build("qualification", "id")
|
||||
.field("qualification", or(def("Identifier"), def("QualifiedTypeIdentifier")))
|
||||
.field("id", def("Identifier"));
|
||||
def("GenericTypeAnnotation")
|
||||
.bases("FlowType")
|
||||
.build("id", "typeParameters")
|
||||
.field("id", or(def("Identifier"), def("QualifiedTypeIdentifier")))
|
||||
.field("typeParameters", or(def("TypeParameterInstantiation"), null));
|
||||
def("MemberTypeAnnotation")
|
||||
.bases("FlowType")
|
||||
.build("object", "property")
|
||||
.field("object", def("Identifier"))
|
||||
.field("property", or(def("MemberTypeAnnotation"), def("GenericTypeAnnotation")));
|
||||
def("UnionTypeAnnotation")
|
||||
.bases("FlowType")
|
||||
.build("types")
|
||||
.field("types", [def("FlowType")]);
|
||||
def("IntersectionTypeAnnotation")
|
||||
.bases("FlowType")
|
||||
.build("types")
|
||||
.field("types", [def("FlowType")]);
|
||||
def("TypeofTypeAnnotation")
|
||||
.bases("FlowType")
|
||||
.build("argument")
|
||||
.field("argument", def("FlowType"));
|
||||
def("ObjectTypeSpreadProperty")
|
||||
.bases("Node")
|
||||
.build("argument")
|
||||
.field("argument", def("FlowType"));
|
||||
def("ObjectTypeInternalSlot")
|
||||
.bases("Node")
|
||||
.build("id", "value", "optional", "static", "method")
|
||||
.field("id", def("Identifier"))
|
||||
.field("value", def("FlowType"))
|
||||
.field("optional", Boolean)
|
||||
.field("static", Boolean)
|
||||
.field("method", Boolean);
|
||||
def("TypeParameterDeclaration")
|
||||
.bases("Node")
|
||||
.build("params")
|
||||
.field("params", [def("TypeParameter")]);
|
||||
def("TypeParameterInstantiation")
|
||||
.bases("Node")
|
||||
.build("params")
|
||||
.field("params", [def("FlowType")]);
|
||||
def("TypeParameter")
|
||||
.bases("FlowType")
|
||||
.build("name", "variance", "bound")
|
||||
.field("name", String)
|
||||
.field("variance", LegacyVariance, defaults["null"])
|
||||
.field("bound", or(def("TypeAnnotation"), null), defaults["null"]);
|
||||
def("ClassProperty")
|
||||
.field("variance", LegacyVariance, defaults["null"]);
|
||||
def("ClassImplements")
|
||||
.bases("Node")
|
||||
.build("id")
|
||||
.field("id", def("Identifier"))
|
||||
.field("superClass", or(def("Expression"), null), defaults["null"])
|
||||
.field("typeParameters", or(def("TypeParameterInstantiation"), null), defaults["null"]);
|
||||
def("InterfaceTypeAnnotation")
|
||||
.bases("FlowType")
|
||||
.build("body", "extends")
|
||||
.field("body", def("ObjectTypeAnnotation"))
|
||||
.field("extends", or([def("InterfaceExtends")], null), defaults["null"]);
|
||||
def("InterfaceDeclaration")
|
||||
.bases("Declaration")
|
||||
.build("id", "body", "extends")
|
||||
.field("id", def("Identifier"))
|
||||
.field("typeParameters", or(def("TypeParameterDeclaration"), null), defaults["null"])
|
||||
.field("body", def("ObjectTypeAnnotation"))
|
||||
.field("extends", [def("InterfaceExtends")]);
|
||||
def("DeclareInterface")
|
||||
.bases("InterfaceDeclaration")
|
||||
.build("id", "body", "extends");
|
||||
def("InterfaceExtends")
|
||||
.bases("Node")
|
||||
.build("id")
|
||||
.field("id", def("Identifier"))
|
||||
.field("typeParameters", or(def("TypeParameterInstantiation"), null), defaults["null"]);
|
||||
def("TypeAlias")
|
||||
.bases("Declaration")
|
||||
.build("id", "typeParameters", "right")
|
||||
.field("id", def("Identifier"))
|
||||
.field("typeParameters", or(def("TypeParameterDeclaration"), null))
|
||||
.field("right", def("FlowType"));
|
||||
def("OpaqueType")
|
||||
.bases("Declaration")
|
||||
.build("id", "typeParameters", "impltype", "supertype")
|
||||
.field("id", def("Identifier"))
|
||||
.field("typeParameters", or(def("TypeParameterDeclaration"), null))
|
||||
.field("impltype", def("FlowType"))
|
||||
.field("supertype", def("FlowType"));
|
||||
def("DeclareTypeAlias")
|
||||
.bases("TypeAlias")
|
||||
.build("id", "typeParameters", "right");
|
||||
def("DeclareOpaqueType")
|
||||
.bases("TypeAlias")
|
||||
.build("id", "typeParameters", "supertype");
|
||||
def("TypeCastExpression")
|
||||
.bases("Expression")
|
||||
.build("expression", "typeAnnotation")
|
||||
.field("expression", def("Expression"))
|
||||
.field("typeAnnotation", def("TypeAnnotation"));
|
||||
def("TupleTypeAnnotation")
|
||||
.bases("FlowType")
|
||||
.build("types")
|
||||
.field("types", [def("FlowType")]);
|
||||
def("DeclareVariable")
|
||||
.bases("Statement")
|
||||
.build("id")
|
||||
.field("id", def("Identifier"));
|
||||
def("DeclareFunction")
|
||||
.bases("Statement")
|
||||
.build("id")
|
||||
.field("id", def("Identifier"));
|
||||
def("DeclareClass")
|
||||
.bases("InterfaceDeclaration")
|
||||
.build("id");
|
||||
def("DeclareModule")
|
||||
.bases("Statement")
|
||||
.build("id", "body")
|
||||
.field("id", or(def("Identifier"), def("Literal")))
|
||||
.field("body", def("BlockStatement"));
|
||||
def("DeclareModuleExports")
|
||||
.bases("Statement")
|
||||
.build("typeAnnotation")
|
||||
.field("typeAnnotation", def("TypeAnnotation"));
|
||||
def("DeclareExportDeclaration")
|
||||
.bases("Declaration")
|
||||
.build("default", "declaration", "specifiers", "source")
|
||||
.field("default", Boolean)
|
||||
.field("declaration", or(def("DeclareVariable"), def("DeclareFunction"), def("DeclareClass"), def("FlowType"), // Implies default.
|
||||
null))
|
||||
.field("specifiers", [or(def("ExportSpecifier"), def("ExportBatchSpecifier"))], defaults.emptyArray)
|
||||
.field("source", or(def("Literal"), null), defaults["null"]);
|
||||
def("DeclareExportAllDeclaration")
|
||||
.bases("Declaration")
|
||||
.build("source")
|
||||
.field("source", or(def("Literal"), null), defaults["null"]);
|
||||
def("FlowPredicate").bases("Flow");
|
||||
def("InferredPredicate")
|
||||
.bases("FlowPredicate")
|
||||
.build();
|
||||
def("DeclaredPredicate")
|
||||
.bases("FlowPredicate")
|
||||
.build("value")
|
||||
.field("value", def("Expression"));
|
||||
def("CallExpression")
|
||||
.field("typeArguments", or(null, def("TypeParameterInstantiation")), defaults["null"]);
|
||||
def("NewExpression")
|
||||
.field("typeArguments", or(null, def("TypeParameterInstantiation")), defaults["null"]);
|
||||
}
|
||||
exports.default = default_1;
|
||||
module.exports = exports["default"];
|
||||
2
node_modules/ast-types/def/jsx.d.ts
generated
vendored
Normal file
2
node_modules/ast-types/def/jsx.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Fork } from "../types";
|
||||
export default function (fork: Fork): void;
|
||||
103
node_modules/ast-types/def/jsx.js
generated
vendored
Normal file
103
node_modules/ast-types/def/jsx.js
generated
vendored
Normal file
@@ -0,0 +1,103 @@
|
||||
"use strict";;
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var tslib_1 = require("tslib");
|
||||
var es7_1 = tslib_1.__importDefault(require("./es7"));
|
||||
var types_1 = tslib_1.__importDefault(require("../lib/types"));
|
||||
var shared_1 = tslib_1.__importDefault(require("../lib/shared"));
|
||||
function default_1(fork) {
|
||||
fork.use(es7_1.default);
|
||||
var types = fork.use(types_1.default);
|
||||
var def = types.Type.def;
|
||||
var or = types.Type.or;
|
||||
var defaults = fork.use(shared_1.default).defaults;
|
||||
def("JSXAttribute")
|
||||
.bases("Node")
|
||||
.build("name", "value")
|
||||
.field("name", or(def("JSXIdentifier"), def("JSXNamespacedName")))
|
||||
.field("value", or(def("Literal"), // attr="value"
|
||||
def("JSXExpressionContainer"), // attr={value}
|
||||
null // attr= or just attr
|
||||
), defaults["null"]);
|
||||
def("JSXIdentifier")
|
||||
.bases("Identifier")
|
||||
.build("name")
|
||||
.field("name", String);
|
||||
def("JSXNamespacedName")
|
||||
.bases("Node")
|
||||
.build("namespace", "name")
|
||||
.field("namespace", def("JSXIdentifier"))
|
||||
.field("name", def("JSXIdentifier"));
|
||||
def("JSXMemberExpression")
|
||||
.bases("MemberExpression")
|
||||
.build("object", "property")
|
||||
.field("object", or(def("JSXIdentifier"), def("JSXMemberExpression")))
|
||||
.field("property", def("JSXIdentifier"))
|
||||
.field("computed", Boolean, defaults.false);
|
||||
var JSXElementName = or(def("JSXIdentifier"), def("JSXNamespacedName"), def("JSXMemberExpression"));
|
||||
def("JSXSpreadAttribute")
|
||||
.bases("Node")
|
||||
.build("argument")
|
||||
.field("argument", def("Expression"));
|
||||
var JSXAttributes = [or(def("JSXAttribute"), def("JSXSpreadAttribute"))];
|
||||
def("JSXExpressionContainer")
|
||||
.bases("Expression")
|
||||
.build("expression")
|
||||
.field("expression", def("Expression"));
|
||||
def("JSXElement")
|
||||
.bases("Expression")
|
||||
.build("openingElement", "closingElement", "children")
|
||||
.field("openingElement", def("JSXOpeningElement"))
|
||||
.field("closingElement", or(def("JSXClosingElement"), null), defaults["null"])
|
||||
.field("children", [or(def("JSXElement"), def("JSXExpressionContainer"), def("JSXFragment"), def("JSXText"), def("Literal") // TODO Esprima should return JSXText instead.
|
||||
)], defaults.emptyArray)
|
||||
.field("name", JSXElementName, function () {
|
||||
// Little-known fact: the `this` object inside a default function
|
||||
// is none other than the partially-built object itself, and any
|
||||
// fields initialized directly from builder function arguments
|
||||
// (like openingElement, closingElement, and children) are
|
||||
// guaranteed to be available.
|
||||
return this.openingElement.name;
|
||||
}, true) // hidden from traversal
|
||||
.field("selfClosing", Boolean, function () {
|
||||
return this.openingElement.selfClosing;
|
||||
}, true) // hidden from traversal
|
||||
.field("attributes", JSXAttributes, function () {
|
||||
return this.openingElement.attributes;
|
||||
}, true); // hidden from traversal
|
||||
def("JSXOpeningElement")
|
||||
.bases("Node") // TODO Does this make sense? Can't really be an JSXElement.
|
||||
.build("name", "attributes", "selfClosing")
|
||||
.field("name", JSXElementName)
|
||||
.field("attributes", JSXAttributes, defaults.emptyArray)
|
||||
.field("selfClosing", Boolean, defaults["false"]);
|
||||
def("JSXClosingElement")
|
||||
.bases("Node") // TODO Same concern.
|
||||
.build("name")
|
||||
.field("name", JSXElementName);
|
||||
def("JSXFragment")
|
||||
.bases("Expression")
|
||||
.build("openingElement", "closingElement", "children")
|
||||
.field("openingElement", def("JSXOpeningFragment"))
|
||||
.field("closingElement", def("JSXClosingFragment"))
|
||||
.field("children", [or(def("JSXElement"), def("JSXExpressionContainer"), def("JSXFragment"), def("JSXText"), def("Literal") // TODO Esprima should return JSXText instead.
|
||||
)], defaults.emptyArray);
|
||||
def("JSXOpeningFragment")
|
||||
.bases("Node") // TODO Same concern.
|
||||
.build();
|
||||
def("JSXClosingFragment")
|
||||
.bases("Node") // TODO Same concern.
|
||||
.build();
|
||||
def("JSXText")
|
||||
.bases("Literal")
|
||||
.build("value")
|
||||
.field("value", String);
|
||||
def("JSXEmptyExpression").bases("Expression").build();
|
||||
// This PR has caused many people issues, but supporting it seems like a
|
||||
// good idea anyway: https://github.com/babel/babel/pull/4988
|
||||
def("JSXSpreadChild")
|
||||
.bases("Expression")
|
||||
.build("expression")
|
||||
.field("expression", def("Expression"));
|
||||
}
|
||||
exports.default = default_1;
|
||||
module.exports = exports["default"];
|
||||
7
node_modules/ast-types/def/type-annotations.d.ts
generated
vendored
Normal file
7
node_modules/ast-types/def/type-annotations.d.ts
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
/**
|
||||
* Type annotation defs shared between Flow and TypeScript.
|
||||
* These defs could not be defined in ./flow.ts or ./typescript.ts directly
|
||||
* because they use the same name.
|
||||
*/
|
||||
import { Fork } from "../types";
|
||||
export default function (fork: Fork): void;
|
||||
40
node_modules/ast-types/def/type-annotations.js
generated
vendored
Normal file
40
node_modules/ast-types/def/type-annotations.js
generated
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
"use strict";;
|
||||
/**
|
||||
* Type annotation defs shared between Flow and TypeScript.
|
||||
* These defs could not be defined in ./flow.ts or ./typescript.ts directly
|
||||
* because they use the same name.
|
||||
*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var tslib_1 = require("tslib");
|
||||
var types_1 = tslib_1.__importDefault(require("../lib/types"));
|
||||
var shared_1 = tslib_1.__importDefault(require("../lib/shared"));
|
||||
function default_1(fork) {
|
||||
var types = fork.use(types_1.default);
|
||||
var def = types.Type.def;
|
||||
var or = types.Type.or;
|
||||
var defaults = fork.use(shared_1.default).defaults;
|
||||
var TypeAnnotation = or(def("TypeAnnotation"), def("TSTypeAnnotation"), null);
|
||||
var TypeParamDecl = or(def("TypeParameterDeclaration"), def("TSTypeParameterDeclaration"), null);
|
||||
def("Identifier")
|
||||
.field("typeAnnotation", TypeAnnotation, defaults["null"]);
|
||||
def("ObjectPattern")
|
||||
.field("typeAnnotation", TypeAnnotation, defaults["null"]);
|
||||
def("Function")
|
||||
.field("returnType", TypeAnnotation, defaults["null"])
|
||||
.field("typeParameters", TypeParamDecl, defaults["null"]);
|
||||
def("ClassProperty")
|
||||
.build("key", "value", "typeAnnotation", "static")
|
||||
.field("value", or(def("Expression"), null))
|
||||
.field("static", Boolean, defaults["false"])
|
||||
.field("typeAnnotation", TypeAnnotation, defaults["null"]);
|
||||
["ClassDeclaration",
|
||||
"ClassExpression",
|
||||
].forEach(function (typeName) {
|
||||
def(typeName)
|
||||
.field("typeParameters", TypeParamDecl, defaults["null"])
|
||||
.field("superTypeParameters", or(def("TypeParameterInstantiation"), def("TSTypeParameterInstantiation"), null), defaults["null"])
|
||||
.field("implements", or([def("ClassImplements")], [def("TSExpressionWithTypeArguments")]), defaults.emptyArray);
|
||||
});
|
||||
}
|
||||
exports.default = default_1;
|
||||
module.exports = exports["default"];
|
||||
2
node_modules/ast-types/def/typescript.d.ts
generated
vendored
Normal file
2
node_modules/ast-types/def/typescript.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Fork } from "../types";
|
||||
export default function (fork: Fork): void;
|
||||
344
node_modules/ast-types/def/typescript.js
generated
vendored
Normal file
344
node_modules/ast-types/def/typescript.js
generated
vendored
Normal file
@@ -0,0 +1,344 @@
|
||||
"use strict";;
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var tslib_1 = require("tslib");
|
||||
var babel_core_1 = tslib_1.__importDefault(require("./babel-core"));
|
||||
var type_annotations_1 = tslib_1.__importDefault(require("./type-annotations"));
|
||||
var types_1 = tslib_1.__importDefault(require("../lib/types"));
|
||||
var shared_1 = tslib_1.__importDefault(require("../lib/shared"));
|
||||
function default_1(fork) {
|
||||
// Since TypeScript is parsed by Babylon, include the core Babylon types
|
||||
// but omit the Flow-related types.
|
||||
fork.use(babel_core_1.default);
|
||||
fork.use(type_annotations_1.default);
|
||||
var types = fork.use(types_1.default);
|
||||
var n = types.namedTypes;
|
||||
var def = types.Type.def;
|
||||
var or = types.Type.or;
|
||||
var defaults = fork.use(shared_1.default).defaults;
|
||||
var StringLiteral = types.Type.from(function (value, deep) {
|
||||
if (n.StringLiteral &&
|
||||
n.StringLiteral.check(value, deep)) {
|
||||
return true;
|
||||
}
|
||||
if (n.Literal &&
|
||||
n.Literal.check(value, deep) &&
|
||||
typeof value.value === "string") {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}, "StringLiteral");
|
||||
def("TSType")
|
||||
.bases("Node");
|
||||
var TSEntityName = or(def("Identifier"), def("TSQualifiedName"));
|
||||
def("TSTypeReference")
|
||||
.bases("TSType", "TSHasOptionalTypeParameterInstantiation")
|
||||
.build("typeName", "typeParameters")
|
||||
.field("typeName", TSEntityName);
|
||||
// An abstract (non-buildable) base type that provide a commonly-needed
|
||||
// optional .typeParameters field.
|
||||
def("TSHasOptionalTypeParameterInstantiation")
|
||||
.field("typeParameters", or(def("TSTypeParameterInstantiation"), null), defaults["null"]);
|
||||
// An abstract (non-buildable) base type that provide a commonly-needed
|
||||
// optional .typeParameters field.
|
||||
def("TSHasOptionalTypeParameters")
|
||||
.field("typeParameters", or(def("TSTypeParameterDeclaration"), null, void 0), defaults["null"]);
|
||||
// An abstract (non-buildable) base type that provide a commonly-needed
|
||||
// optional .typeAnnotation field.
|
||||
def("TSHasOptionalTypeAnnotation")
|
||||
.field("typeAnnotation", or(def("TSTypeAnnotation"), null), defaults["null"]);
|
||||
def("TSQualifiedName")
|
||||
.bases("Node")
|
||||
.build("left", "right")
|
||||
.field("left", TSEntityName)
|
||||
.field("right", TSEntityName);
|
||||
def("TSAsExpression")
|
||||
.bases("Expression", "Pattern")
|
||||
.build("expression", "typeAnnotation")
|
||||
.field("expression", def("Expression"))
|
||||
.field("typeAnnotation", def("TSType"))
|
||||
.field("extra", or({ parenthesized: Boolean }, null), defaults["null"]);
|
||||
def("TSNonNullExpression")
|
||||
.bases("Expression", "Pattern")
|
||||
.build("expression")
|
||||
.field("expression", def("Expression"));
|
||||
[
|
||||
"TSAnyKeyword",
|
||||
"TSBigIntKeyword",
|
||||
"TSBooleanKeyword",
|
||||
"TSNeverKeyword",
|
||||
"TSNullKeyword",
|
||||
"TSNumberKeyword",
|
||||
"TSObjectKeyword",
|
||||
"TSStringKeyword",
|
||||
"TSSymbolKeyword",
|
||||
"TSUndefinedKeyword",
|
||||
"TSUnknownKeyword",
|
||||
"TSVoidKeyword",
|
||||
"TSThisType",
|
||||
].forEach(function (keywordType) {
|
||||
def(keywordType)
|
||||
.bases("TSType")
|
||||
.build();
|
||||
});
|
||||
def("TSArrayType")
|
||||
.bases("TSType")
|
||||
.build("elementType")
|
||||
.field("elementType", def("TSType"));
|
||||
def("TSLiteralType")
|
||||
.bases("TSType")
|
||||
.build("literal")
|
||||
.field("literal", or(def("NumericLiteral"), def("StringLiteral"), def("BooleanLiteral"), def("TemplateLiteral"), def("UnaryExpression")));
|
||||
["TSUnionType",
|
||||
"TSIntersectionType",
|
||||
].forEach(function (typeName) {
|
||||
def(typeName)
|
||||
.bases("TSType")
|
||||
.build("types")
|
||||
.field("types", [def("TSType")]);
|
||||
});
|
||||
def("TSConditionalType")
|
||||
.bases("TSType")
|
||||
.build("checkType", "extendsType", "trueType", "falseType")
|
||||
.field("checkType", def("TSType"))
|
||||
.field("extendsType", def("TSType"))
|
||||
.field("trueType", def("TSType"))
|
||||
.field("falseType", def("TSType"));
|
||||
def("TSInferType")
|
||||
.bases("TSType")
|
||||
.build("typeParameter")
|
||||
.field("typeParameter", def("TSTypeParameter"));
|
||||
def("TSParenthesizedType")
|
||||
.bases("TSType")
|
||||
.build("typeAnnotation")
|
||||
.field("typeAnnotation", def("TSType"));
|
||||
var ParametersType = [or(def("Identifier"), def("RestElement"), def("ArrayPattern"), def("ObjectPattern"))];
|
||||
["TSFunctionType",
|
||||
"TSConstructorType",
|
||||
].forEach(function (typeName) {
|
||||
def(typeName)
|
||||
.bases("TSType", "TSHasOptionalTypeParameters", "TSHasOptionalTypeAnnotation")
|
||||
.build("parameters")
|
||||
.field("parameters", ParametersType);
|
||||
});
|
||||
def("TSDeclareFunction")
|
||||
.bases("Declaration", "TSHasOptionalTypeParameters")
|
||||
.build("id", "params", "returnType")
|
||||
.field("declare", Boolean, defaults["false"])
|
||||
.field("async", Boolean, defaults["false"])
|
||||
.field("generator", Boolean, defaults["false"])
|
||||
.field("id", or(def("Identifier"), null), defaults["null"])
|
||||
.field("params", [def("Pattern")])
|
||||
// tSFunctionTypeAnnotationCommon
|
||||
.field("returnType", or(def("TSTypeAnnotation"), def("Noop"), // Still used?
|
||||
null), defaults["null"]);
|
||||
def("TSDeclareMethod")
|
||||
.bases("Declaration", "TSHasOptionalTypeParameters")
|
||||
.build("key", "params", "returnType")
|
||||
.field("async", Boolean, defaults["false"])
|
||||
.field("generator", Boolean, defaults["false"])
|
||||
.field("params", [def("Pattern")])
|
||||
// classMethodOrPropertyCommon
|
||||
.field("abstract", Boolean, defaults["false"])
|
||||
.field("accessibility", or("public", "private", "protected", void 0), defaults["undefined"])
|
||||
.field("static", Boolean, defaults["false"])
|
||||
.field("computed", Boolean, defaults["false"])
|
||||
.field("optional", Boolean, defaults["false"])
|
||||
.field("key", or(def("Identifier"), def("StringLiteral"), def("NumericLiteral"),
|
||||
// Only allowed if .computed is true.
|
||||
def("Expression")))
|
||||
// classMethodOrDeclareMethodCommon
|
||||
.field("kind", or("get", "set", "method", "constructor"), function getDefault() { return "method"; })
|
||||
.field("access", // Not "accessibility"?
|
||||
or("public", "private", "protected", void 0), defaults["undefined"])
|
||||
.field("decorators", or([def("Decorator")], null), defaults["null"])
|
||||
// tSFunctionTypeAnnotationCommon
|
||||
.field("returnType", or(def("TSTypeAnnotation"), def("Noop"), // Still used?
|
||||
null), defaults["null"]);
|
||||
def("TSMappedType")
|
||||
.bases("TSType")
|
||||
.build("typeParameter", "typeAnnotation")
|
||||
.field("readonly", or(Boolean, "+", "-"), defaults["false"])
|
||||
.field("typeParameter", def("TSTypeParameter"))
|
||||
.field("optional", or(Boolean, "+", "-"), defaults["false"])
|
||||
.field("typeAnnotation", or(def("TSType"), null), defaults["null"]);
|
||||
def("TSTupleType")
|
||||
.bases("TSType")
|
||||
.build("elementTypes")
|
||||
.field("elementTypes", [or(def("TSType"), def("TSNamedTupleMember"))]);
|
||||
def("TSNamedTupleMember")
|
||||
.bases("TSType")
|
||||
.build("label", "elementType", "optional")
|
||||
.field("label", def("Identifier"))
|
||||
.field("optional", Boolean, defaults["false"])
|
||||
.field("elementType", def("TSType"));
|
||||
def("TSRestType")
|
||||
.bases("TSType")
|
||||
.build("typeAnnotation")
|
||||
.field("typeAnnotation", def("TSType"));
|
||||
def("TSOptionalType")
|
||||
.bases("TSType")
|
||||
.build("typeAnnotation")
|
||||
.field("typeAnnotation", def("TSType"));
|
||||
def("TSIndexedAccessType")
|
||||
.bases("TSType")
|
||||
.build("objectType", "indexType")
|
||||
.field("objectType", def("TSType"))
|
||||
.field("indexType", def("TSType"));
|
||||
def("TSTypeOperator")
|
||||
.bases("TSType")
|
||||
.build("operator")
|
||||
.field("operator", String)
|
||||
.field("typeAnnotation", def("TSType"));
|
||||
def("TSTypeAnnotation")
|
||||
.bases("Node")
|
||||
.build("typeAnnotation")
|
||||
.field("typeAnnotation", or(def("TSType"), def("TSTypeAnnotation")));
|
||||
def("TSIndexSignature")
|
||||
.bases("Declaration", "TSHasOptionalTypeAnnotation")
|
||||
.build("parameters", "typeAnnotation")
|
||||
.field("parameters", [def("Identifier")]) // Length === 1
|
||||
.field("readonly", Boolean, defaults["false"]);
|
||||
def("TSPropertySignature")
|
||||
.bases("Declaration", "TSHasOptionalTypeAnnotation")
|
||||
.build("key", "typeAnnotation", "optional")
|
||||
.field("key", def("Expression"))
|
||||
.field("computed", Boolean, defaults["false"])
|
||||
.field("readonly", Boolean, defaults["false"])
|
||||
.field("optional", Boolean, defaults["false"])
|
||||
.field("initializer", or(def("Expression"), null), defaults["null"]);
|
||||
def("TSMethodSignature")
|
||||
.bases("Declaration", "TSHasOptionalTypeParameters", "TSHasOptionalTypeAnnotation")
|
||||
.build("key", "parameters", "typeAnnotation")
|
||||
.field("key", def("Expression"))
|
||||
.field("computed", Boolean, defaults["false"])
|
||||
.field("optional", Boolean, defaults["false"])
|
||||
.field("parameters", ParametersType);
|
||||
def("TSTypePredicate")
|
||||
.bases("TSTypeAnnotation", "TSType")
|
||||
.build("parameterName", "typeAnnotation", "asserts")
|
||||
.field("parameterName", or(def("Identifier"), def("TSThisType")))
|
||||
.field("typeAnnotation", or(def("TSTypeAnnotation"), null), defaults["null"])
|
||||
.field("asserts", Boolean, defaults["false"]);
|
||||
["TSCallSignatureDeclaration",
|
||||
"TSConstructSignatureDeclaration",
|
||||
].forEach(function (typeName) {
|
||||
def(typeName)
|
||||
.bases("Declaration", "TSHasOptionalTypeParameters", "TSHasOptionalTypeAnnotation")
|
||||
.build("parameters", "typeAnnotation")
|
||||
.field("parameters", ParametersType);
|
||||
});
|
||||
def("TSEnumMember")
|
||||
.bases("Node")
|
||||
.build("id", "initializer")
|
||||
.field("id", or(def("Identifier"), StringLiteral))
|
||||
.field("initializer", or(def("Expression"), null), defaults["null"]);
|
||||
def("TSTypeQuery")
|
||||
.bases("TSType")
|
||||
.build("exprName")
|
||||
.field("exprName", or(TSEntityName, def("TSImportType")));
|
||||
// Inferred from Babylon's tsParseTypeMember method.
|
||||
var TSTypeMember = or(def("TSCallSignatureDeclaration"), def("TSConstructSignatureDeclaration"), def("TSIndexSignature"), def("TSMethodSignature"), def("TSPropertySignature"));
|
||||
def("TSTypeLiteral")
|
||||
.bases("TSType")
|
||||
.build("members")
|
||||
.field("members", [TSTypeMember]);
|
||||
def("TSTypeParameter")
|
||||
.bases("Identifier")
|
||||
.build("name", "constraint", "default")
|
||||
.field("name", String)
|
||||
.field("constraint", or(def("TSType"), void 0), defaults["undefined"])
|
||||
.field("default", or(def("TSType"), void 0), defaults["undefined"]);
|
||||
def("TSTypeAssertion")
|
||||
.bases("Expression", "Pattern")
|
||||
.build("typeAnnotation", "expression")
|
||||
.field("typeAnnotation", def("TSType"))
|
||||
.field("expression", def("Expression"))
|
||||
.field("extra", or({ parenthesized: Boolean }, null), defaults["null"]);
|
||||
def("TSTypeParameterDeclaration")
|
||||
.bases("Declaration")
|
||||
.build("params")
|
||||
.field("params", [def("TSTypeParameter")]);
|
||||
def("TSTypeParameterInstantiation")
|
||||
.bases("Node")
|
||||
.build("params")
|
||||
.field("params", [def("TSType")]);
|
||||
def("TSEnumDeclaration")
|
||||
.bases("Declaration")
|
||||
.build("id", "members")
|
||||
.field("id", def("Identifier"))
|
||||
.field("const", Boolean, defaults["false"])
|
||||
.field("declare", Boolean, defaults["false"])
|
||||
.field("members", [def("TSEnumMember")])
|
||||
.field("initializer", or(def("Expression"), null), defaults["null"]);
|
||||
def("TSTypeAliasDeclaration")
|
||||
.bases("Declaration", "TSHasOptionalTypeParameters")
|
||||
.build("id", "typeAnnotation")
|
||||
.field("id", def("Identifier"))
|
||||
.field("declare", Boolean, defaults["false"])
|
||||
.field("typeAnnotation", def("TSType"));
|
||||
def("TSModuleBlock")
|
||||
.bases("Node")
|
||||
.build("body")
|
||||
.field("body", [def("Statement")]);
|
||||
def("TSModuleDeclaration")
|
||||
.bases("Declaration")
|
||||
.build("id", "body")
|
||||
.field("id", or(StringLiteral, TSEntityName))
|
||||
.field("declare", Boolean, defaults["false"])
|
||||
.field("global", Boolean, defaults["false"])
|
||||
.field("body", or(def("TSModuleBlock"), def("TSModuleDeclaration"), null), defaults["null"]);
|
||||
def("TSImportType")
|
||||
.bases("TSType", "TSHasOptionalTypeParameterInstantiation")
|
||||
.build("argument", "qualifier", "typeParameters")
|
||||
.field("argument", StringLiteral)
|
||||
.field("qualifier", or(TSEntityName, void 0), defaults["undefined"]);
|
||||
def("TSImportEqualsDeclaration")
|
||||
.bases("Declaration")
|
||||
.build("id", "moduleReference")
|
||||
.field("id", def("Identifier"))
|
||||
.field("isExport", Boolean, defaults["false"])
|
||||
.field("moduleReference", or(TSEntityName, def("TSExternalModuleReference")));
|
||||
def("TSExternalModuleReference")
|
||||
.bases("Declaration")
|
||||
.build("expression")
|
||||
.field("expression", StringLiteral);
|
||||
def("TSExportAssignment")
|
||||
.bases("Statement")
|
||||
.build("expression")
|
||||
.field("expression", def("Expression"));
|
||||
def("TSNamespaceExportDeclaration")
|
||||
.bases("Declaration")
|
||||
.build("id")
|
||||
.field("id", def("Identifier"));
|
||||
def("TSInterfaceBody")
|
||||
.bases("Node")
|
||||
.build("body")
|
||||
.field("body", [TSTypeMember]);
|
||||
def("TSExpressionWithTypeArguments")
|
||||
.bases("TSType", "TSHasOptionalTypeParameterInstantiation")
|
||||
.build("expression", "typeParameters")
|
||||
.field("expression", TSEntityName);
|
||||
def("TSInterfaceDeclaration")
|
||||
.bases("Declaration", "TSHasOptionalTypeParameters")
|
||||
.build("id", "body")
|
||||
.field("id", TSEntityName)
|
||||
.field("declare", Boolean, defaults["false"])
|
||||
.field("extends", or([def("TSExpressionWithTypeArguments")], null), defaults["null"])
|
||||
.field("body", def("TSInterfaceBody"));
|
||||
def("TSParameterProperty")
|
||||
.bases("Pattern")
|
||||
.build("parameter")
|
||||
.field("accessibility", or("public", "private", "protected", void 0), defaults["undefined"])
|
||||
.field("readonly", Boolean, defaults["false"])
|
||||
.field("parameter", or(def("Identifier"), def("AssignmentPattern")));
|
||||
def("ClassProperty")
|
||||
.field("access", // Not "accessibility"?
|
||||
or("public", "private", "protected", void 0), defaults["undefined"]);
|
||||
// Defined already in es6 and babel-core.
|
||||
def("ClassBody")
|
||||
.field("body", [or(def("MethodDefinition"), def("VariableDeclarator"), def("ClassPropertyDefinition"), def("ClassProperty"), def("ClassPrivateProperty"), def("ClassMethod"), def("ClassPrivateMethod"),
|
||||
// Just need to add these types:
|
||||
def("TSDeclareMethod"), TSTypeMember)]);
|
||||
}
|
||||
exports.default = default_1;
|
||||
module.exports = exports["default"];
|
||||
42
node_modules/ast-types/fork.d.ts
generated
vendored
Normal file
42
node_modules/ast-types/fork.d.ts
generated
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
import { Def, Plugin } from "./types";
|
||||
export default function (defs: Def[]): {
|
||||
Type: {
|
||||
or(...types: any[]): import("./lib/types").Type<any>;
|
||||
from<T>(value: any, name?: string | undefined): import("./lib/types").Type<T>;
|
||||
def(typeName: string): import("./lib/types").Def<any>;
|
||||
hasDef(typeName: string): boolean;
|
||||
};
|
||||
builtInTypes: {
|
||||
string: import("./lib/types").Type<string>;
|
||||
function: import("./lib/types").Type<Function>;
|
||||
array: import("./lib/types").Type<any[]>;
|
||||
object: import("./lib/types").Type<{
|
||||
[key: string]: any;
|
||||
}>;
|
||||
RegExp: import("./lib/types").Type<RegExp>;
|
||||
Date: import("./lib/types").Type<Date>;
|
||||
number: import("./lib/types").Type<number>;
|
||||
boolean: import("./lib/types").Type<boolean>;
|
||||
null: import("./lib/types").Type<null>;
|
||||
undefined: import("./lib/types").Type<undefined>;
|
||||
};
|
||||
namedTypes: import("./gen/namedTypes").NamedTypes;
|
||||
builders: import("./gen/builders").builders;
|
||||
defineMethod: (name: any, func?: Function | undefined) => Function;
|
||||
getFieldNames: (object: any) => string[];
|
||||
getFieldValue: (object: any, fieldName: any) => any;
|
||||
eachField: (object: any, callback: (name: any, value: any) => any, context?: any) => void;
|
||||
someField: (object: any, callback: (name: any, value: any) => any, context?: any) => boolean;
|
||||
getSupertypeNames: (typeName: string) => string[];
|
||||
getBuilderName: (typeName: any) => any;
|
||||
astNodesAreEquivalent: {
|
||||
(a: any, b: any, problemPath?: any): boolean;
|
||||
assert(a: any, b: any): void;
|
||||
};
|
||||
finalize: () => void;
|
||||
Path: import("./lib/path").PathConstructor;
|
||||
NodePath: import("./lib/node-path").NodePathConstructor;
|
||||
PathVisitor: import("./lib/path-visitor").PathVisitorConstructor;
|
||||
use: <T_1>(plugin: Plugin<T_1>) => T_1;
|
||||
visit: <M = {}>(node: import("./lib/types").ASTNode, methods?: import("./main").Visitor<M> | undefined) => any;
|
||||
};
|
||||
52
node_modules/ast-types/fork.js
generated
vendored
Normal file
52
node_modules/ast-types/fork.js
generated
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
"use strict";;
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var tslib_1 = require("tslib");
|
||||
var types_1 = tslib_1.__importDefault(require("./lib/types"));
|
||||
var path_visitor_1 = tslib_1.__importDefault(require("./lib/path-visitor"));
|
||||
var equiv_1 = tslib_1.__importDefault(require("./lib/equiv"));
|
||||
var path_1 = tslib_1.__importDefault(require("./lib/path"));
|
||||
var node_path_1 = tslib_1.__importDefault(require("./lib/node-path"));
|
||||
function default_1(defs) {
|
||||
var fork = createFork();
|
||||
var types = fork.use(types_1.default);
|
||||
defs.forEach(fork.use);
|
||||
types.finalize();
|
||||
var PathVisitor = fork.use(path_visitor_1.default);
|
||||
return {
|
||||
Type: types.Type,
|
||||
builtInTypes: types.builtInTypes,
|
||||
namedTypes: types.namedTypes,
|
||||
builders: types.builders,
|
||||
defineMethod: types.defineMethod,
|
||||
getFieldNames: types.getFieldNames,
|
||||
getFieldValue: types.getFieldValue,
|
||||
eachField: types.eachField,
|
||||
someField: types.someField,
|
||||
getSupertypeNames: types.getSupertypeNames,
|
||||
getBuilderName: types.getBuilderName,
|
||||
astNodesAreEquivalent: fork.use(equiv_1.default),
|
||||
finalize: types.finalize,
|
||||
Path: fork.use(path_1.default),
|
||||
NodePath: fork.use(node_path_1.default),
|
||||
PathVisitor: PathVisitor,
|
||||
use: fork.use,
|
||||
visit: PathVisitor.visit,
|
||||
};
|
||||
}
|
||||
exports.default = default_1;
|
||||
function createFork() {
|
||||
var used = [];
|
||||
var usedResult = [];
|
||||
function use(plugin) {
|
||||
var idx = used.indexOf(plugin);
|
||||
if (idx === -1) {
|
||||
idx = used.length;
|
||||
used.push(plugin);
|
||||
usedResult[idx] = plugin(fork);
|
||||
}
|
||||
return usedResult[idx];
|
||||
}
|
||||
var fork = { use: use };
|
||||
return fork;
|
||||
}
|
||||
module.exports = exports["default"];
|
||||
2584
node_modules/ast-types/gen/builders.d.ts
generated
vendored
Normal file
2584
node_modules/ast-types/gen/builders.d.ts
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2
node_modules/ast-types/gen/builders.js
generated
vendored
Normal file
2
node_modules/ast-types/gen/builders.js
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
264
node_modules/ast-types/gen/kinds.d.ts
generated
vendored
Normal file
264
node_modules/ast-types/gen/kinds.d.ts
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
2
node_modules/ast-types/gen/kinds.js
generated
vendored
Normal file
2
node_modules/ast-types/gen/kinds.js
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
1809
node_modules/ast-types/gen/namedTypes.d.ts
generated
vendored
Normal file
1809
node_modules/ast-types/gen/namedTypes.d.ts
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
6
node_modules/ast-types/gen/namedTypes.js
generated
vendored
Normal file
6
node_modules/ast-types/gen/namedTypes.js
generated
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.namedTypes = void 0;
|
||||
var namedTypes;
|
||||
(function (namedTypes) {
|
||||
})(namedTypes = exports.namedTypes || (exports.namedTypes = {}));
|
||||
268
node_modules/ast-types/gen/visitor.d.ts
generated
vendored
Normal file
268
node_modules/ast-types/gen/visitor.d.ts
generated
vendored
Normal file
@@ -0,0 +1,268 @@
|
||||
import { NodePath } from "../lib/node-path";
|
||||
import { Context } from "../lib/path-visitor";
|
||||
import { namedTypes } from "./namedTypes";
|
||||
export interface Visitor<M = {}> {
|
||||
visitPrintable?(this: Context & M, path: NodePath<namedTypes.Printable>): any;
|
||||
visitSourceLocation?(this: Context & M, path: NodePath<namedTypes.SourceLocation>): any;
|
||||
visitNode?(this: Context & M, path: NodePath<namedTypes.Node>): any;
|
||||
visitComment?(this: Context & M, path: NodePath<namedTypes.Comment>): any;
|
||||
visitPosition?(this: Context & M, path: NodePath<namedTypes.Position>): any;
|
||||
visitFile?(this: Context & M, path: NodePath<namedTypes.File>): any;
|
||||
visitProgram?(this: Context & M, path: NodePath<namedTypes.Program>): any;
|
||||
visitStatement?(this: Context & M, path: NodePath<namedTypes.Statement>): any;
|
||||
visitFunction?(this: Context & M, path: NodePath<namedTypes.Function>): any;
|
||||
visitExpression?(this: Context & M, path: NodePath<namedTypes.Expression>): any;
|
||||
visitPattern?(this: Context & M, path: NodePath<namedTypes.Pattern>): any;
|
||||
visitIdentifier?(this: Context & M, path: NodePath<namedTypes.Identifier>): any;
|
||||
visitBlockStatement?(this: Context & M, path: NodePath<namedTypes.BlockStatement>): any;
|
||||
visitEmptyStatement?(this: Context & M, path: NodePath<namedTypes.EmptyStatement>): any;
|
||||
visitExpressionStatement?(this: Context & M, path: NodePath<namedTypes.ExpressionStatement>): any;
|
||||
visitIfStatement?(this: Context & M, path: NodePath<namedTypes.IfStatement>): any;
|
||||
visitLabeledStatement?(this: Context & M, path: NodePath<namedTypes.LabeledStatement>): any;
|
||||
visitBreakStatement?(this: Context & M, path: NodePath<namedTypes.BreakStatement>): any;
|
||||
visitContinueStatement?(this: Context & M, path: NodePath<namedTypes.ContinueStatement>): any;
|
||||
visitWithStatement?(this: Context & M, path: NodePath<namedTypes.WithStatement>): any;
|
||||
visitSwitchStatement?(this: Context & M, path: NodePath<namedTypes.SwitchStatement>): any;
|
||||
visitSwitchCase?(this: Context & M, path: NodePath<namedTypes.SwitchCase>): any;
|
||||
visitReturnStatement?(this: Context & M, path: NodePath<namedTypes.ReturnStatement>): any;
|
||||
visitThrowStatement?(this: Context & M, path: NodePath<namedTypes.ThrowStatement>): any;
|
||||
visitTryStatement?(this: Context & M, path: NodePath<namedTypes.TryStatement>): any;
|
||||
visitCatchClause?(this: Context & M, path: NodePath<namedTypes.CatchClause>): any;
|
||||
visitWhileStatement?(this: Context & M, path: NodePath<namedTypes.WhileStatement>): any;
|
||||
visitDoWhileStatement?(this: Context & M, path: NodePath<namedTypes.DoWhileStatement>): any;
|
||||
visitForStatement?(this: Context & M, path: NodePath<namedTypes.ForStatement>): any;
|
||||
visitDeclaration?(this: Context & M, path: NodePath<namedTypes.Declaration>): any;
|
||||
visitVariableDeclaration?(this: Context & M, path: NodePath<namedTypes.VariableDeclaration>): any;
|
||||
visitForInStatement?(this: Context & M, path: NodePath<namedTypes.ForInStatement>): any;
|
||||
visitDebuggerStatement?(this: Context & M, path: NodePath<namedTypes.DebuggerStatement>): any;
|
||||
visitFunctionDeclaration?(this: Context & M, path: NodePath<namedTypes.FunctionDeclaration>): any;
|
||||
visitFunctionExpression?(this: Context & M, path: NodePath<namedTypes.FunctionExpression>): any;
|
||||
visitVariableDeclarator?(this: Context & M, path: NodePath<namedTypes.VariableDeclarator>): any;
|
||||
visitThisExpression?(this: Context & M, path: NodePath<namedTypes.ThisExpression>): any;
|
||||
visitArrayExpression?(this: Context & M, path: NodePath<namedTypes.ArrayExpression>): any;
|
||||
visitObjectExpression?(this: Context & M, path: NodePath<namedTypes.ObjectExpression>): any;
|
||||
visitProperty?(this: Context & M, path: NodePath<namedTypes.Property>): any;
|
||||
visitLiteral?(this: Context & M, path: NodePath<namedTypes.Literal>): any;
|
||||
visitSequenceExpression?(this: Context & M, path: NodePath<namedTypes.SequenceExpression>): any;
|
||||
visitUnaryExpression?(this: Context & M, path: NodePath<namedTypes.UnaryExpression>): any;
|
||||
visitBinaryExpression?(this: Context & M, path: NodePath<namedTypes.BinaryExpression>): any;
|
||||
visitAssignmentExpression?(this: Context & M, path: NodePath<namedTypes.AssignmentExpression>): any;
|
||||
visitMemberExpression?(this: Context & M, path: NodePath<namedTypes.MemberExpression>): any;
|
||||
visitUpdateExpression?(this: Context & M, path: NodePath<namedTypes.UpdateExpression>): any;
|
||||
visitLogicalExpression?(this: Context & M, path: NodePath<namedTypes.LogicalExpression>): any;
|
||||
visitConditionalExpression?(this: Context & M, path: NodePath<namedTypes.ConditionalExpression>): any;
|
||||
visitNewExpression?(this: Context & M, path: NodePath<namedTypes.NewExpression>): any;
|
||||
visitCallExpression?(this: Context & M, path: NodePath<namedTypes.CallExpression>): any;
|
||||
visitRestElement?(this: Context & M, path: NodePath<namedTypes.RestElement>): any;
|
||||
visitTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.TypeAnnotation>): any;
|
||||
visitTSTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.TSTypeAnnotation>): any;
|
||||
visitSpreadElementPattern?(this: Context & M, path: NodePath<namedTypes.SpreadElementPattern>): any;
|
||||
visitArrowFunctionExpression?(this: Context & M, path: NodePath<namedTypes.ArrowFunctionExpression>): any;
|
||||
visitForOfStatement?(this: Context & M, path: NodePath<namedTypes.ForOfStatement>): any;
|
||||
visitYieldExpression?(this: Context & M, path: NodePath<namedTypes.YieldExpression>): any;
|
||||
visitGeneratorExpression?(this: Context & M, path: NodePath<namedTypes.GeneratorExpression>): any;
|
||||
visitComprehensionBlock?(this: Context & M, path: NodePath<namedTypes.ComprehensionBlock>): any;
|
||||
visitComprehensionExpression?(this: Context & M, path: NodePath<namedTypes.ComprehensionExpression>): any;
|
||||
visitObjectProperty?(this: Context & M, path: NodePath<namedTypes.ObjectProperty>): any;
|
||||
visitPropertyPattern?(this: Context & M, path: NodePath<namedTypes.PropertyPattern>): any;
|
||||
visitObjectPattern?(this: Context & M, path: NodePath<namedTypes.ObjectPattern>): any;
|
||||
visitArrayPattern?(this: Context & M, path: NodePath<namedTypes.ArrayPattern>): any;
|
||||
visitMethodDefinition?(this: Context & M, path: NodePath<namedTypes.MethodDefinition>): any;
|
||||
visitSpreadElement?(this: Context & M, path: NodePath<namedTypes.SpreadElement>): any;
|
||||
visitAssignmentPattern?(this: Context & M, path: NodePath<namedTypes.AssignmentPattern>): any;
|
||||
visitClassPropertyDefinition?(this: Context & M, path: NodePath<namedTypes.ClassPropertyDefinition>): any;
|
||||
visitClassProperty?(this: Context & M, path: NodePath<namedTypes.ClassProperty>): any;
|
||||
visitClassBody?(this: Context & M, path: NodePath<namedTypes.ClassBody>): any;
|
||||
visitClassDeclaration?(this: Context & M, path: NodePath<namedTypes.ClassDeclaration>): any;
|
||||
visitClassExpression?(this: Context & M, path: NodePath<namedTypes.ClassExpression>): any;
|
||||
visitSpecifier?(this: Context & M, path: NodePath<namedTypes.Specifier>): any;
|
||||
visitModuleSpecifier?(this: Context & M, path: NodePath<namedTypes.ModuleSpecifier>): any;
|
||||
visitImportSpecifier?(this: Context & M, path: NodePath<namedTypes.ImportSpecifier>): any;
|
||||
visitImportNamespaceSpecifier?(this: Context & M, path: NodePath<namedTypes.ImportNamespaceSpecifier>): any;
|
||||
visitImportDefaultSpecifier?(this: Context & M, path: NodePath<namedTypes.ImportDefaultSpecifier>): any;
|
||||
visitImportDeclaration?(this: Context & M, path: NodePath<namedTypes.ImportDeclaration>): any;
|
||||
visitTaggedTemplateExpression?(this: Context & M, path: NodePath<namedTypes.TaggedTemplateExpression>): any;
|
||||
visitTemplateLiteral?(this: Context & M, path: NodePath<namedTypes.TemplateLiteral>): any;
|
||||
visitTemplateElement?(this: Context & M, path: NodePath<namedTypes.TemplateElement>): any;
|
||||
visitSpreadProperty?(this: Context & M, path: NodePath<namedTypes.SpreadProperty>): any;
|
||||
visitSpreadPropertyPattern?(this: Context & M, path: NodePath<namedTypes.SpreadPropertyPattern>): any;
|
||||
visitAwaitExpression?(this: Context & M, path: NodePath<namedTypes.AwaitExpression>): any;
|
||||
visitImportExpression?(this: Context & M, path: NodePath<namedTypes.ImportExpression>): any;
|
||||
visitJSXAttribute?(this: Context & M, path: NodePath<namedTypes.JSXAttribute>): any;
|
||||
visitJSXIdentifier?(this: Context & M, path: NodePath<namedTypes.JSXIdentifier>): any;
|
||||
visitJSXNamespacedName?(this: Context & M, path: NodePath<namedTypes.JSXNamespacedName>): any;
|
||||
visitJSXExpressionContainer?(this: Context & M, path: NodePath<namedTypes.JSXExpressionContainer>): any;
|
||||
visitJSXMemberExpression?(this: Context & M, path: NodePath<namedTypes.JSXMemberExpression>): any;
|
||||
visitJSXSpreadAttribute?(this: Context & M, path: NodePath<namedTypes.JSXSpreadAttribute>): any;
|
||||
visitJSXElement?(this: Context & M, path: NodePath<namedTypes.JSXElement>): any;
|
||||
visitJSXOpeningElement?(this: Context & M, path: NodePath<namedTypes.JSXOpeningElement>): any;
|
||||
visitJSXClosingElement?(this: Context & M, path: NodePath<namedTypes.JSXClosingElement>): any;
|
||||
visitJSXFragment?(this: Context & M, path: NodePath<namedTypes.JSXFragment>): any;
|
||||
visitJSXText?(this: Context & M, path: NodePath<namedTypes.JSXText>): any;
|
||||
visitJSXOpeningFragment?(this: Context & M, path: NodePath<namedTypes.JSXOpeningFragment>): any;
|
||||
visitJSXClosingFragment?(this: Context & M, path: NodePath<namedTypes.JSXClosingFragment>): any;
|
||||
visitJSXEmptyExpression?(this: Context & M, path: NodePath<namedTypes.JSXEmptyExpression>): any;
|
||||
visitJSXSpreadChild?(this: Context & M, path: NodePath<namedTypes.JSXSpreadChild>): any;
|
||||
visitTypeParameterDeclaration?(this: Context & M, path: NodePath<namedTypes.TypeParameterDeclaration>): any;
|
||||
visitTSTypeParameterDeclaration?(this: Context & M, path: NodePath<namedTypes.TSTypeParameterDeclaration>): any;
|
||||
visitTypeParameterInstantiation?(this: Context & M, path: NodePath<namedTypes.TypeParameterInstantiation>): any;
|
||||
visitTSTypeParameterInstantiation?(this: Context & M, path: NodePath<namedTypes.TSTypeParameterInstantiation>): any;
|
||||
visitClassImplements?(this: Context & M, path: NodePath<namedTypes.ClassImplements>): any;
|
||||
visitTSType?(this: Context & M, path: NodePath<namedTypes.TSType>): any;
|
||||
visitTSHasOptionalTypeParameterInstantiation?(this: Context & M, path: NodePath<namedTypes.TSHasOptionalTypeParameterInstantiation>): any;
|
||||
visitTSExpressionWithTypeArguments?(this: Context & M, path: NodePath<namedTypes.TSExpressionWithTypeArguments>): any;
|
||||
visitFlow?(this: Context & M, path: NodePath<namedTypes.Flow>): any;
|
||||
visitFlowType?(this: Context & M, path: NodePath<namedTypes.FlowType>): any;
|
||||
visitAnyTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.AnyTypeAnnotation>): any;
|
||||
visitEmptyTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.EmptyTypeAnnotation>): any;
|
||||
visitMixedTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.MixedTypeAnnotation>): any;
|
||||
visitVoidTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.VoidTypeAnnotation>): any;
|
||||
visitNumberTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.NumberTypeAnnotation>): any;
|
||||
visitNumberLiteralTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.NumberLiteralTypeAnnotation>): any;
|
||||
visitNumericLiteralTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.NumericLiteralTypeAnnotation>): any;
|
||||
visitStringTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.StringTypeAnnotation>): any;
|
||||
visitStringLiteralTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.StringLiteralTypeAnnotation>): any;
|
||||
visitBooleanTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.BooleanTypeAnnotation>): any;
|
||||
visitBooleanLiteralTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.BooleanLiteralTypeAnnotation>): any;
|
||||
visitNullableTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.NullableTypeAnnotation>): any;
|
||||
visitNullLiteralTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.NullLiteralTypeAnnotation>): any;
|
||||
visitNullTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.NullTypeAnnotation>): any;
|
||||
visitThisTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.ThisTypeAnnotation>): any;
|
||||
visitExistsTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.ExistsTypeAnnotation>): any;
|
||||
visitExistentialTypeParam?(this: Context & M, path: NodePath<namedTypes.ExistentialTypeParam>): any;
|
||||
visitFunctionTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.FunctionTypeAnnotation>): any;
|
||||
visitFunctionTypeParam?(this: Context & M, path: NodePath<namedTypes.FunctionTypeParam>): any;
|
||||
visitArrayTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.ArrayTypeAnnotation>): any;
|
||||
visitObjectTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.ObjectTypeAnnotation>): any;
|
||||
visitObjectTypeProperty?(this: Context & M, path: NodePath<namedTypes.ObjectTypeProperty>): any;
|
||||
visitObjectTypeSpreadProperty?(this: Context & M, path: NodePath<namedTypes.ObjectTypeSpreadProperty>): any;
|
||||
visitObjectTypeIndexer?(this: Context & M, path: NodePath<namedTypes.ObjectTypeIndexer>): any;
|
||||
visitObjectTypeCallProperty?(this: Context & M, path: NodePath<namedTypes.ObjectTypeCallProperty>): any;
|
||||
visitObjectTypeInternalSlot?(this: Context & M, path: NodePath<namedTypes.ObjectTypeInternalSlot>): any;
|
||||
visitVariance?(this: Context & M, path: NodePath<namedTypes.Variance>): any;
|
||||
visitQualifiedTypeIdentifier?(this: Context & M, path: NodePath<namedTypes.QualifiedTypeIdentifier>): any;
|
||||
visitGenericTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.GenericTypeAnnotation>): any;
|
||||
visitMemberTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.MemberTypeAnnotation>): any;
|
||||
visitUnionTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.UnionTypeAnnotation>): any;
|
||||
visitIntersectionTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.IntersectionTypeAnnotation>): any;
|
||||
visitTypeofTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.TypeofTypeAnnotation>): any;
|
||||
visitTypeParameter?(this: Context & M, path: NodePath<namedTypes.TypeParameter>): any;
|
||||
visitInterfaceTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.InterfaceTypeAnnotation>): any;
|
||||
visitInterfaceExtends?(this: Context & M, path: NodePath<namedTypes.InterfaceExtends>): any;
|
||||
visitInterfaceDeclaration?(this: Context & M, path: NodePath<namedTypes.InterfaceDeclaration>): any;
|
||||
visitDeclareInterface?(this: Context & M, path: NodePath<namedTypes.DeclareInterface>): any;
|
||||
visitTypeAlias?(this: Context & M, path: NodePath<namedTypes.TypeAlias>): any;
|
||||
visitOpaqueType?(this: Context & M, path: NodePath<namedTypes.OpaqueType>): any;
|
||||
visitDeclareTypeAlias?(this: Context & M, path: NodePath<namedTypes.DeclareTypeAlias>): any;
|
||||
visitDeclareOpaqueType?(this: Context & M, path: NodePath<namedTypes.DeclareOpaqueType>): any;
|
||||
visitTypeCastExpression?(this: Context & M, path: NodePath<namedTypes.TypeCastExpression>): any;
|
||||
visitTupleTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.TupleTypeAnnotation>): any;
|
||||
visitDeclareVariable?(this: Context & M, path: NodePath<namedTypes.DeclareVariable>): any;
|
||||
visitDeclareFunction?(this: Context & M, path: NodePath<namedTypes.DeclareFunction>): any;
|
||||
visitDeclareClass?(this: Context & M, path: NodePath<namedTypes.DeclareClass>): any;
|
||||
visitDeclareModule?(this: Context & M, path: NodePath<namedTypes.DeclareModule>): any;
|
||||
visitDeclareModuleExports?(this: Context & M, path: NodePath<namedTypes.DeclareModuleExports>): any;
|
||||
visitDeclareExportDeclaration?(this: Context & M, path: NodePath<namedTypes.DeclareExportDeclaration>): any;
|
||||
visitExportSpecifier?(this: Context & M, path: NodePath<namedTypes.ExportSpecifier>): any;
|
||||
visitExportBatchSpecifier?(this: Context & M, path: NodePath<namedTypes.ExportBatchSpecifier>): any;
|
||||
visitDeclareExportAllDeclaration?(this: Context & M, path: NodePath<namedTypes.DeclareExportAllDeclaration>): any;
|
||||
visitFlowPredicate?(this: Context & M, path: NodePath<namedTypes.FlowPredicate>): any;
|
||||
visitInferredPredicate?(this: Context & M, path: NodePath<namedTypes.InferredPredicate>): any;
|
||||
visitDeclaredPredicate?(this: Context & M, path: NodePath<namedTypes.DeclaredPredicate>): any;
|
||||
visitExportDeclaration?(this: Context & M, path: NodePath<namedTypes.ExportDeclaration>): any;
|
||||
visitBlock?(this: Context & M, path: NodePath<namedTypes.Block>): any;
|
||||
visitLine?(this: Context & M, path: NodePath<namedTypes.Line>): any;
|
||||
visitNoop?(this: Context & M, path: NodePath<namedTypes.Noop>): any;
|
||||
visitDoExpression?(this: Context & M, path: NodePath<namedTypes.DoExpression>): any;
|
||||
visitSuper?(this: Context & M, path: NodePath<namedTypes.Super>): any;
|
||||
visitBindExpression?(this: Context & M, path: NodePath<namedTypes.BindExpression>): any;
|
||||
visitDecorator?(this: Context & M, path: NodePath<namedTypes.Decorator>): any;
|
||||
visitMetaProperty?(this: Context & M, path: NodePath<namedTypes.MetaProperty>): any;
|
||||
visitParenthesizedExpression?(this: Context & M, path: NodePath<namedTypes.ParenthesizedExpression>): any;
|
||||
visitExportDefaultDeclaration?(this: Context & M, path: NodePath<namedTypes.ExportDefaultDeclaration>): any;
|
||||
visitExportNamedDeclaration?(this: Context & M, path: NodePath<namedTypes.ExportNamedDeclaration>): any;
|
||||
visitExportNamespaceSpecifier?(this: Context & M, path: NodePath<namedTypes.ExportNamespaceSpecifier>): any;
|
||||
visitExportDefaultSpecifier?(this: Context & M, path: NodePath<namedTypes.ExportDefaultSpecifier>): any;
|
||||
visitExportAllDeclaration?(this: Context & M, path: NodePath<namedTypes.ExportAllDeclaration>): any;
|
||||
visitCommentBlock?(this: Context & M, path: NodePath<namedTypes.CommentBlock>): any;
|
||||
visitCommentLine?(this: Context & M, path: NodePath<namedTypes.CommentLine>): any;
|
||||
visitDirective?(this: Context & M, path: NodePath<namedTypes.Directive>): any;
|
||||
visitDirectiveLiteral?(this: Context & M, path: NodePath<namedTypes.DirectiveLiteral>): any;
|
||||
visitInterpreterDirective?(this: Context & M, path: NodePath<namedTypes.InterpreterDirective>): any;
|
||||
visitStringLiteral?(this: Context & M, path: NodePath<namedTypes.StringLiteral>): any;
|
||||
visitNumericLiteral?(this: Context & M, path: NodePath<namedTypes.NumericLiteral>): any;
|
||||
visitBigIntLiteral?(this: Context & M, path: NodePath<namedTypes.BigIntLiteral>): any;
|
||||
visitNullLiteral?(this: Context & M, path: NodePath<namedTypes.NullLiteral>): any;
|
||||
visitBooleanLiteral?(this: Context & M, path: NodePath<namedTypes.BooleanLiteral>): any;
|
||||
visitRegExpLiteral?(this: Context & M, path: NodePath<namedTypes.RegExpLiteral>): any;
|
||||
visitObjectMethod?(this: Context & M, path: NodePath<namedTypes.ObjectMethod>): any;
|
||||
visitClassPrivateProperty?(this: Context & M, path: NodePath<namedTypes.ClassPrivateProperty>): any;
|
||||
visitClassMethod?(this: Context & M, path: NodePath<namedTypes.ClassMethod>): any;
|
||||
visitClassPrivateMethod?(this: Context & M, path: NodePath<namedTypes.ClassPrivateMethod>): any;
|
||||
visitPrivateName?(this: Context & M, path: NodePath<namedTypes.PrivateName>): any;
|
||||
visitRestProperty?(this: Context & M, path: NodePath<namedTypes.RestProperty>): any;
|
||||
visitForAwaitStatement?(this: Context & M, path: NodePath<namedTypes.ForAwaitStatement>): any;
|
||||
visitImport?(this: Context & M, path: NodePath<namedTypes.Import>): any;
|
||||
visitTSQualifiedName?(this: Context & M, path: NodePath<namedTypes.TSQualifiedName>): any;
|
||||
visitTSTypeReference?(this: Context & M, path: NodePath<namedTypes.TSTypeReference>): any;
|
||||
visitTSHasOptionalTypeParameters?(this: Context & M, path: NodePath<namedTypes.TSHasOptionalTypeParameters>): any;
|
||||
visitTSHasOptionalTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.TSHasOptionalTypeAnnotation>): any;
|
||||
visitTSAsExpression?(this: Context & M, path: NodePath<namedTypes.TSAsExpression>): any;
|
||||
visitTSNonNullExpression?(this: Context & M, path: NodePath<namedTypes.TSNonNullExpression>): any;
|
||||
visitTSAnyKeyword?(this: Context & M, path: NodePath<namedTypes.TSAnyKeyword>): any;
|
||||
visitTSBigIntKeyword?(this: Context & M, path: NodePath<namedTypes.TSBigIntKeyword>): any;
|
||||
visitTSBooleanKeyword?(this: Context & M, path: NodePath<namedTypes.TSBooleanKeyword>): any;
|
||||
visitTSNeverKeyword?(this: Context & M, path: NodePath<namedTypes.TSNeverKeyword>): any;
|
||||
visitTSNullKeyword?(this: Context & M, path: NodePath<namedTypes.TSNullKeyword>): any;
|
||||
visitTSNumberKeyword?(this: Context & M, path: NodePath<namedTypes.TSNumberKeyword>): any;
|
||||
visitTSObjectKeyword?(this: Context & M, path: NodePath<namedTypes.TSObjectKeyword>): any;
|
||||
visitTSStringKeyword?(this: Context & M, path: NodePath<namedTypes.TSStringKeyword>): any;
|
||||
visitTSSymbolKeyword?(this: Context & M, path: NodePath<namedTypes.TSSymbolKeyword>): any;
|
||||
visitTSUndefinedKeyword?(this: Context & M, path: NodePath<namedTypes.TSUndefinedKeyword>): any;
|
||||
visitTSUnknownKeyword?(this: Context & M, path: NodePath<namedTypes.TSUnknownKeyword>): any;
|
||||
visitTSVoidKeyword?(this: Context & M, path: NodePath<namedTypes.TSVoidKeyword>): any;
|
||||
visitTSThisType?(this: Context & M, path: NodePath<namedTypes.TSThisType>): any;
|
||||
visitTSArrayType?(this: Context & M, path: NodePath<namedTypes.TSArrayType>): any;
|
||||
visitTSLiteralType?(this: Context & M, path: NodePath<namedTypes.TSLiteralType>): any;
|
||||
visitTSUnionType?(this: Context & M, path: NodePath<namedTypes.TSUnionType>): any;
|
||||
visitTSIntersectionType?(this: Context & M, path: NodePath<namedTypes.TSIntersectionType>): any;
|
||||
visitTSConditionalType?(this: Context & M, path: NodePath<namedTypes.TSConditionalType>): any;
|
||||
visitTSInferType?(this: Context & M, path: NodePath<namedTypes.TSInferType>): any;
|
||||
visitTSTypeParameter?(this: Context & M, path: NodePath<namedTypes.TSTypeParameter>): any;
|
||||
visitTSParenthesizedType?(this: Context & M, path: NodePath<namedTypes.TSParenthesizedType>): any;
|
||||
visitTSFunctionType?(this: Context & M, path: NodePath<namedTypes.TSFunctionType>): any;
|
||||
visitTSConstructorType?(this: Context & M, path: NodePath<namedTypes.TSConstructorType>): any;
|
||||
visitTSDeclareFunction?(this: Context & M, path: NodePath<namedTypes.TSDeclareFunction>): any;
|
||||
visitTSDeclareMethod?(this: Context & M, path: NodePath<namedTypes.TSDeclareMethod>): any;
|
||||
visitTSMappedType?(this: Context & M, path: NodePath<namedTypes.TSMappedType>): any;
|
||||
visitTSTupleType?(this: Context & M, path: NodePath<namedTypes.TSTupleType>): any;
|
||||
visitTSNamedTupleMember?(this: Context & M, path: NodePath<namedTypes.TSNamedTupleMember>): any;
|
||||
visitTSRestType?(this: Context & M, path: NodePath<namedTypes.TSRestType>): any;
|
||||
visitTSOptionalType?(this: Context & M, path: NodePath<namedTypes.TSOptionalType>): any;
|
||||
visitTSIndexedAccessType?(this: Context & M, path: NodePath<namedTypes.TSIndexedAccessType>): any;
|
||||
visitTSTypeOperator?(this: Context & M, path: NodePath<namedTypes.TSTypeOperator>): any;
|
||||
visitTSIndexSignature?(this: Context & M, path: NodePath<namedTypes.TSIndexSignature>): any;
|
||||
visitTSPropertySignature?(this: Context & M, path: NodePath<namedTypes.TSPropertySignature>): any;
|
||||
visitTSMethodSignature?(this: Context & M, path: NodePath<namedTypes.TSMethodSignature>): any;
|
||||
visitTSTypePredicate?(this: Context & M, path: NodePath<namedTypes.TSTypePredicate>): any;
|
||||
visitTSCallSignatureDeclaration?(this: Context & M, path: NodePath<namedTypes.TSCallSignatureDeclaration>): any;
|
||||
visitTSConstructSignatureDeclaration?(this: Context & M, path: NodePath<namedTypes.TSConstructSignatureDeclaration>): any;
|
||||
visitTSEnumMember?(this: Context & M, path: NodePath<namedTypes.TSEnumMember>): any;
|
||||
visitTSTypeQuery?(this: Context & M, path: NodePath<namedTypes.TSTypeQuery>): any;
|
||||
visitTSImportType?(this: Context & M, path: NodePath<namedTypes.TSImportType>): any;
|
||||
visitTSTypeLiteral?(this: Context & M, path: NodePath<namedTypes.TSTypeLiteral>): any;
|
||||
visitTSTypeAssertion?(this: Context & M, path: NodePath<namedTypes.TSTypeAssertion>): any;
|
||||
visitTSEnumDeclaration?(this: Context & M, path: NodePath<namedTypes.TSEnumDeclaration>): any;
|
||||
visitTSTypeAliasDeclaration?(this: Context & M, path: NodePath<namedTypes.TSTypeAliasDeclaration>): any;
|
||||
visitTSModuleBlock?(this: Context & M, path: NodePath<namedTypes.TSModuleBlock>): any;
|
||||
visitTSModuleDeclaration?(this: Context & M, path: NodePath<namedTypes.TSModuleDeclaration>): any;
|
||||
visitTSImportEqualsDeclaration?(this: Context & M, path: NodePath<namedTypes.TSImportEqualsDeclaration>): any;
|
||||
visitTSExternalModuleReference?(this: Context & M, path: NodePath<namedTypes.TSExternalModuleReference>): any;
|
||||
visitTSExportAssignment?(this: Context & M, path: NodePath<namedTypes.TSExportAssignment>): any;
|
||||
visitTSNamespaceExportDeclaration?(this: Context & M, path: NodePath<namedTypes.TSNamespaceExportDeclaration>): any;
|
||||
visitTSInterfaceBody?(this: Context & M, path: NodePath<namedTypes.TSInterfaceBody>): any;
|
||||
visitTSInterfaceDeclaration?(this: Context & M, path: NodePath<namedTypes.TSInterfaceDeclaration>): any;
|
||||
visitTSParameterProperty?(this: Context & M, path: NodePath<namedTypes.TSParameterProperty>): any;
|
||||
visitOptionalMemberExpression?(this: Context & M, path: NodePath<namedTypes.OptionalMemberExpression>): any;
|
||||
visitOptionalCallExpression?(this: Context & M, path: NodePath<namedTypes.OptionalCallExpression>): any;
|
||||
}
|
||||
2
node_modules/ast-types/gen/visitor.js
generated
vendored
Normal file
2
node_modules/ast-types/gen/visitor.js
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
5
node_modules/ast-types/lib/equiv.d.ts
generated
vendored
Normal file
5
node_modules/ast-types/lib/equiv.d.ts
generated
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
import { Fork } from "../types";
|
||||
export default function (fork: Fork): {
|
||||
(a: any, b: any, problemPath?: any): boolean;
|
||||
assert(a: any, b: any): void;
|
||||
};
|
||||
154
node_modules/ast-types/lib/equiv.js
generated
vendored
Normal file
154
node_modules/ast-types/lib/equiv.js
generated
vendored
Normal file
@@ -0,0 +1,154 @@
|
||||
"use strict";;
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var tslib_1 = require("tslib");
|
||||
var types_1 = tslib_1.__importDefault(require("./types"));
|
||||
function default_1(fork) {
|
||||
var types = fork.use(types_1.default);
|
||||
var getFieldNames = types.getFieldNames;
|
||||
var getFieldValue = types.getFieldValue;
|
||||
var isArray = types.builtInTypes.array;
|
||||
var isObject = types.builtInTypes.object;
|
||||
var isDate = types.builtInTypes.Date;
|
||||
var isRegExp = types.builtInTypes.RegExp;
|
||||
var hasOwn = Object.prototype.hasOwnProperty;
|
||||
function astNodesAreEquivalent(a, b, problemPath) {
|
||||
if (isArray.check(problemPath)) {
|
||||
problemPath.length = 0;
|
||||
}
|
||||
else {
|
||||
problemPath = null;
|
||||
}
|
||||
return areEquivalent(a, b, problemPath);
|
||||
}
|
||||
astNodesAreEquivalent.assert = function (a, b) {
|
||||
var problemPath = [];
|
||||
if (!astNodesAreEquivalent(a, b, problemPath)) {
|
||||
if (problemPath.length === 0) {
|
||||
if (a !== b) {
|
||||
throw new Error("Nodes must be equal");
|
||||
}
|
||||
}
|
||||
else {
|
||||
throw new Error("Nodes differ in the following path: " +
|
||||
problemPath.map(subscriptForProperty).join(""));
|
||||
}
|
||||
}
|
||||
};
|
||||
function subscriptForProperty(property) {
|
||||
if (/[_$a-z][_$a-z0-9]*/i.test(property)) {
|
||||
return "." + property;
|
||||
}
|
||||
return "[" + JSON.stringify(property) + "]";
|
||||
}
|
||||
function areEquivalent(a, b, problemPath) {
|
||||
if (a === b) {
|
||||
return true;
|
||||
}
|
||||
if (isArray.check(a)) {
|
||||
return arraysAreEquivalent(a, b, problemPath);
|
||||
}
|
||||
if (isObject.check(a)) {
|
||||
return objectsAreEquivalent(a, b, problemPath);
|
||||
}
|
||||
if (isDate.check(a)) {
|
||||
return isDate.check(b) && (+a === +b);
|
||||
}
|
||||
if (isRegExp.check(a)) {
|
||||
return isRegExp.check(b) && (a.source === b.source &&
|
||||
a.global === b.global &&
|
||||
a.multiline === b.multiline &&
|
||||
a.ignoreCase === b.ignoreCase);
|
||||
}
|
||||
return a == b;
|
||||
}
|
||||
function arraysAreEquivalent(a, b, problemPath) {
|
||||
isArray.assert(a);
|
||||
var aLength = a.length;
|
||||
if (!isArray.check(b) || b.length !== aLength) {
|
||||
if (problemPath) {
|
||||
problemPath.push("length");
|
||||
}
|
||||
return false;
|
||||
}
|
||||
for (var i = 0; i < aLength; ++i) {
|
||||
if (problemPath) {
|
||||
problemPath.push(i);
|
||||
}
|
||||
if (i in a !== i in b) {
|
||||
return false;
|
||||
}
|
||||
if (!areEquivalent(a[i], b[i], problemPath)) {
|
||||
return false;
|
||||
}
|
||||
if (problemPath) {
|
||||
var problemPathTail = problemPath.pop();
|
||||
if (problemPathTail !== i) {
|
||||
throw new Error("" + problemPathTail);
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
function objectsAreEquivalent(a, b, problemPath) {
|
||||
isObject.assert(a);
|
||||
if (!isObject.check(b)) {
|
||||
return false;
|
||||
}
|
||||
// Fast path for a common property of AST nodes.
|
||||
if (a.type !== b.type) {
|
||||
if (problemPath) {
|
||||
problemPath.push("type");
|
||||
}
|
||||
return false;
|
||||
}
|
||||
var aNames = getFieldNames(a);
|
||||
var aNameCount = aNames.length;
|
||||
var bNames = getFieldNames(b);
|
||||
var bNameCount = bNames.length;
|
||||
if (aNameCount === bNameCount) {
|
||||
for (var i = 0; i < aNameCount; ++i) {
|
||||
var name = aNames[i];
|
||||
var aChild = getFieldValue(a, name);
|
||||
var bChild = getFieldValue(b, name);
|
||||
if (problemPath) {
|
||||
problemPath.push(name);
|
||||
}
|
||||
if (!areEquivalent(aChild, bChild, problemPath)) {
|
||||
return false;
|
||||
}
|
||||
if (problemPath) {
|
||||
var problemPathTail = problemPath.pop();
|
||||
if (problemPathTail !== name) {
|
||||
throw new Error("" + problemPathTail);
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
if (!problemPath) {
|
||||
return false;
|
||||
}
|
||||
// Since aNameCount !== bNameCount, we need to find some name that's
|
||||
// missing in aNames but present in bNames, or vice-versa.
|
||||
var seenNames = Object.create(null);
|
||||
for (i = 0; i < aNameCount; ++i) {
|
||||
seenNames[aNames[i]] = true;
|
||||
}
|
||||
for (i = 0; i < bNameCount; ++i) {
|
||||
name = bNames[i];
|
||||
if (!hasOwn.call(seenNames, name)) {
|
||||
problemPath.push(name);
|
||||
return false;
|
||||
}
|
||||
delete seenNames[name];
|
||||
}
|
||||
for (name in seenNames) {
|
||||
problemPath.push(name);
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return astNodesAreEquivalent;
|
||||
}
|
||||
exports.default = default_1;
|
||||
module.exports = exports["default"];
|
||||
22
node_modules/ast-types/lib/node-path.d.ts
generated
vendored
Normal file
22
node_modules/ast-types/lib/node-path.d.ts
generated
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
import { Fork } from "../types";
|
||||
import { ASTNode } from "./types";
|
||||
import { Path } from "./path";
|
||||
import { Scope } from "./scope";
|
||||
export interface NodePath<N = any, V = any> extends Path<V> {
|
||||
node: N;
|
||||
parent: any;
|
||||
scope: any;
|
||||
replace: Path['replace'];
|
||||
prune(...args: any[]): any;
|
||||
_computeNode(): any;
|
||||
_computeParent(): any;
|
||||
_computeScope(): Scope | null;
|
||||
getValueProperty(name: any): any;
|
||||
needsParens(assumeExpressionContext?: boolean): boolean;
|
||||
canBeFirstInStatement(): boolean;
|
||||
firstInStatement(): boolean;
|
||||
}
|
||||
export interface NodePathConstructor {
|
||||
new <N extends ASTNode = any, V = any>(value: any, parentPath?: any, name?: any): NodePath<N, V>;
|
||||
}
|
||||
export default function nodePathPlugin(fork: Fork): NodePathConstructor;
|
||||
411
node_modules/ast-types/lib/node-path.js
generated
vendored
Normal file
411
node_modules/ast-types/lib/node-path.js
generated
vendored
Normal file
@@ -0,0 +1,411 @@
|
||||
"use strict";;
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var tslib_1 = require("tslib");
|
||||
var types_1 = tslib_1.__importDefault(require("./types"));
|
||||
var path_1 = tslib_1.__importDefault(require("./path"));
|
||||
var scope_1 = tslib_1.__importDefault(require("./scope"));
|
||||
function nodePathPlugin(fork) {
|
||||
var types = fork.use(types_1.default);
|
||||
var n = types.namedTypes;
|
||||
var b = types.builders;
|
||||
var isNumber = types.builtInTypes.number;
|
||||
var isArray = types.builtInTypes.array;
|
||||
var Path = fork.use(path_1.default);
|
||||
var Scope = fork.use(scope_1.default);
|
||||
var NodePath = function NodePath(value, parentPath, name) {
|
||||
if (!(this instanceof NodePath)) {
|
||||
throw new Error("NodePath constructor cannot be invoked without 'new'");
|
||||
}
|
||||
Path.call(this, value, parentPath, name);
|
||||
};
|
||||
var NPp = NodePath.prototype = Object.create(Path.prototype, {
|
||||
constructor: {
|
||||
value: NodePath,
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
}
|
||||
});
|
||||
Object.defineProperties(NPp, {
|
||||
node: {
|
||||
get: function () {
|
||||
Object.defineProperty(this, "node", {
|
||||
configurable: true,
|
||||
value: this._computeNode()
|
||||
});
|
||||
return this.node;
|
||||
}
|
||||
},
|
||||
parent: {
|
||||
get: function () {
|
||||
Object.defineProperty(this, "parent", {
|
||||
configurable: true,
|
||||
value: this._computeParent()
|
||||
});
|
||||
return this.parent;
|
||||
}
|
||||
},
|
||||
scope: {
|
||||
get: function () {
|
||||
Object.defineProperty(this, "scope", {
|
||||
configurable: true,
|
||||
value: this._computeScope()
|
||||
});
|
||||
return this.scope;
|
||||
}
|
||||
}
|
||||
});
|
||||
NPp.replace = function () {
|
||||
delete this.node;
|
||||
delete this.parent;
|
||||
delete this.scope;
|
||||
return Path.prototype.replace.apply(this, arguments);
|
||||
};
|
||||
NPp.prune = function () {
|
||||
var remainingNodePath = this.parent;
|
||||
this.replace();
|
||||
return cleanUpNodesAfterPrune(remainingNodePath);
|
||||
};
|
||||
// The value of the first ancestor Path whose value is a Node.
|
||||
NPp._computeNode = function () {
|
||||
var value = this.value;
|
||||
if (n.Node.check(value)) {
|
||||
return value;
|
||||
}
|
||||
var pp = this.parentPath;
|
||||
return pp && pp.node || null;
|
||||
};
|
||||
// The first ancestor Path whose value is a Node distinct from this.node.
|
||||
NPp._computeParent = function () {
|
||||
var value = this.value;
|
||||
var pp = this.parentPath;
|
||||
if (!n.Node.check(value)) {
|
||||
while (pp && !n.Node.check(pp.value)) {
|
||||
pp = pp.parentPath;
|
||||
}
|
||||
if (pp) {
|
||||
pp = pp.parentPath;
|
||||
}
|
||||
}
|
||||
while (pp && !n.Node.check(pp.value)) {
|
||||
pp = pp.parentPath;
|
||||
}
|
||||
return pp || null;
|
||||
};
|
||||
// The closest enclosing scope that governs this node.
|
||||
NPp._computeScope = function () {
|
||||
var value = this.value;
|
||||
var pp = this.parentPath;
|
||||
var scope = pp && pp.scope;
|
||||
if (n.Node.check(value) &&
|
||||
Scope.isEstablishedBy(value)) {
|
||||
scope = new Scope(this, scope);
|
||||
}
|
||||
return scope || null;
|
||||
};
|
||||
NPp.getValueProperty = function (name) {
|
||||
return types.getFieldValue(this.value, name);
|
||||
};
|
||||
/**
|
||||
* Determine whether this.node needs to be wrapped in parentheses in order
|
||||
* for a parser to reproduce the same local AST structure.
|
||||
*
|
||||
* For instance, in the expression `(1 + 2) * 3`, the BinaryExpression
|
||||
* whose operator is "+" needs parentheses, because `1 + 2 * 3` would
|
||||
* parse differently.
|
||||
*
|
||||
* If assumeExpressionContext === true, we don't worry about edge cases
|
||||
* like an anonymous FunctionExpression appearing lexically first in its
|
||||
* enclosing statement and thus needing parentheses to avoid being parsed
|
||||
* as a FunctionDeclaration with a missing name.
|
||||
*/
|
||||
NPp.needsParens = function (assumeExpressionContext) {
|
||||
var pp = this.parentPath;
|
||||
if (!pp) {
|
||||
return false;
|
||||
}
|
||||
var node = this.value;
|
||||
// Only expressions need parentheses.
|
||||
if (!n.Expression.check(node)) {
|
||||
return false;
|
||||
}
|
||||
// Identifiers never need parentheses.
|
||||
if (node.type === "Identifier") {
|
||||
return false;
|
||||
}
|
||||
while (!n.Node.check(pp.value)) {
|
||||
pp = pp.parentPath;
|
||||
if (!pp) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
var parent = pp.value;
|
||||
switch (node.type) {
|
||||
case "UnaryExpression":
|
||||
case "SpreadElement":
|
||||
case "SpreadProperty":
|
||||
return parent.type === "MemberExpression"
|
||||
&& this.name === "object"
|
||||
&& parent.object === node;
|
||||
case "BinaryExpression":
|
||||
case "LogicalExpression":
|
||||
switch (parent.type) {
|
||||
case "CallExpression":
|
||||
return this.name === "callee"
|
||||
&& parent.callee === node;
|
||||
case "UnaryExpression":
|
||||
case "SpreadElement":
|
||||
case "SpreadProperty":
|
||||
return true;
|
||||
case "MemberExpression":
|
||||
return this.name === "object"
|
||||
&& parent.object === node;
|
||||
case "BinaryExpression":
|
||||
case "LogicalExpression": {
|
||||
var n_1 = node;
|
||||
var po = parent.operator;
|
||||
var pp_1 = PRECEDENCE[po];
|
||||
var no = n_1.operator;
|
||||
var np = PRECEDENCE[no];
|
||||
if (pp_1 > np) {
|
||||
return true;
|
||||
}
|
||||
if (pp_1 === np && this.name === "right") {
|
||||
if (parent.right !== n_1) {
|
||||
throw new Error("Nodes must be equal");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
case "SequenceExpression":
|
||||
switch (parent.type) {
|
||||
case "ForStatement":
|
||||
// Although parentheses wouldn't hurt around sequence
|
||||
// expressions in the head of for loops, traditional style
|
||||
// dictates that e.g. i++, j++ should not be wrapped with
|
||||
// parentheses.
|
||||
return false;
|
||||
case "ExpressionStatement":
|
||||
return this.name !== "expression";
|
||||
default:
|
||||
// Otherwise err on the side of overparenthesization, adding
|
||||
// explicit exceptions above if this proves overzealous.
|
||||
return true;
|
||||
}
|
||||
case "YieldExpression":
|
||||
switch (parent.type) {
|
||||
case "BinaryExpression":
|
||||
case "LogicalExpression":
|
||||
case "UnaryExpression":
|
||||
case "SpreadElement":
|
||||
case "SpreadProperty":
|
||||
case "CallExpression":
|
||||
case "MemberExpression":
|
||||
case "NewExpression":
|
||||
case "ConditionalExpression":
|
||||
case "YieldExpression":
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
case "Literal":
|
||||
return parent.type === "MemberExpression"
|
||||
&& isNumber.check(node.value)
|
||||
&& this.name === "object"
|
||||
&& parent.object === node;
|
||||
case "AssignmentExpression":
|
||||
case "ConditionalExpression":
|
||||
switch (parent.type) {
|
||||
case "UnaryExpression":
|
||||
case "SpreadElement":
|
||||
case "SpreadProperty":
|
||||
case "BinaryExpression":
|
||||
case "LogicalExpression":
|
||||
return true;
|
||||
case "CallExpression":
|
||||
return this.name === "callee"
|
||||
&& parent.callee === node;
|
||||
case "ConditionalExpression":
|
||||
return this.name === "test"
|
||||
&& parent.test === node;
|
||||
case "MemberExpression":
|
||||
return this.name === "object"
|
||||
&& parent.object === node;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
default:
|
||||
if (parent.type === "NewExpression" &&
|
||||
this.name === "callee" &&
|
||||
parent.callee === node) {
|
||||
return containsCallExpression(node);
|
||||
}
|
||||
}
|
||||
if (assumeExpressionContext !== true &&
|
||||
!this.canBeFirstInStatement() &&
|
||||
this.firstInStatement())
|
||||
return true;
|
||||
return false;
|
||||
};
|
||||
function isBinary(node) {
|
||||
return n.BinaryExpression.check(node)
|
||||
|| n.LogicalExpression.check(node);
|
||||
}
|
||||
// @ts-ignore 'isUnaryLike' is declared but its value is never read. [6133]
|
||||
function isUnaryLike(node) {
|
||||
return n.UnaryExpression.check(node)
|
||||
// I considered making SpreadElement and SpreadProperty subtypes
|
||||
// of UnaryExpression, but they're not really Expression nodes.
|
||||
|| (n.SpreadElement && n.SpreadElement.check(node))
|
||||
|| (n.SpreadProperty && n.SpreadProperty.check(node));
|
||||
}
|
||||
var PRECEDENCE = {};
|
||||
[["||"],
|
||||
["&&"],
|
||||
["|"],
|
||||
["^"],
|
||||
["&"],
|
||||
["==", "===", "!=", "!=="],
|
||||
["<", ">", "<=", ">=", "in", "instanceof"],
|
||||
[">>", "<<", ">>>"],
|
||||
["+", "-"],
|
||||
["*", "/", "%"]
|
||||
].forEach(function (tier, i) {
|
||||
tier.forEach(function (op) {
|
||||
PRECEDENCE[op] = i;
|
||||
});
|
||||
});
|
||||
function containsCallExpression(node) {
|
||||
if (n.CallExpression.check(node)) {
|
||||
return true;
|
||||
}
|
||||
if (isArray.check(node)) {
|
||||
return node.some(containsCallExpression);
|
||||
}
|
||||
if (n.Node.check(node)) {
|
||||
return types.someField(node, function (_name, child) {
|
||||
return containsCallExpression(child);
|
||||
});
|
||||
}
|
||||
return false;
|
||||
}
|
||||
NPp.canBeFirstInStatement = function () {
|
||||
var node = this.node;
|
||||
return !n.FunctionExpression.check(node)
|
||||
&& !n.ObjectExpression.check(node);
|
||||
};
|
||||
NPp.firstInStatement = function () {
|
||||
return firstInStatement(this);
|
||||
};
|
||||
function firstInStatement(path) {
|
||||
for (var node, parent; path.parent; path = path.parent) {
|
||||
node = path.node;
|
||||
parent = path.parent.node;
|
||||
if (n.BlockStatement.check(parent) &&
|
||||
path.parent.name === "body" &&
|
||||
path.name === 0) {
|
||||
if (parent.body[0] !== node) {
|
||||
throw new Error("Nodes must be equal");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
if (n.ExpressionStatement.check(parent) &&
|
||||
path.name === "expression") {
|
||||
if (parent.expression !== node) {
|
||||
throw new Error("Nodes must be equal");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
if (n.SequenceExpression.check(parent) &&
|
||||
path.parent.name === "expressions" &&
|
||||
path.name === 0) {
|
||||
if (parent.expressions[0] !== node) {
|
||||
throw new Error("Nodes must be equal");
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (n.CallExpression.check(parent) &&
|
||||
path.name === "callee") {
|
||||
if (parent.callee !== node) {
|
||||
throw new Error("Nodes must be equal");
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (n.MemberExpression.check(parent) &&
|
||||
path.name === "object") {
|
||||
if (parent.object !== node) {
|
||||
throw new Error("Nodes must be equal");
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (n.ConditionalExpression.check(parent) &&
|
||||
path.name === "test") {
|
||||
if (parent.test !== node) {
|
||||
throw new Error("Nodes must be equal");
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (isBinary(parent) &&
|
||||
path.name === "left") {
|
||||
if (parent.left !== node) {
|
||||
throw new Error("Nodes must be equal");
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (n.UnaryExpression.check(parent) &&
|
||||
!parent.prefix &&
|
||||
path.name === "argument") {
|
||||
if (parent.argument !== node) {
|
||||
throw new Error("Nodes must be equal");
|
||||
}
|
||||
continue;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
/**
|
||||
* Pruning certain nodes will result in empty or incomplete nodes, here we clean those nodes up.
|
||||
*/
|
||||
function cleanUpNodesAfterPrune(remainingNodePath) {
|
||||
if (n.VariableDeclaration.check(remainingNodePath.node)) {
|
||||
var declarations = remainingNodePath.get('declarations').value;
|
||||
if (!declarations || declarations.length === 0) {
|
||||
return remainingNodePath.prune();
|
||||
}
|
||||
}
|
||||
else if (n.ExpressionStatement.check(remainingNodePath.node)) {
|
||||
if (!remainingNodePath.get('expression').value) {
|
||||
return remainingNodePath.prune();
|
||||
}
|
||||
}
|
||||
else if (n.IfStatement.check(remainingNodePath.node)) {
|
||||
cleanUpIfStatementAfterPrune(remainingNodePath);
|
||||
}
|
||||
return remainingNodePath;
|
||||
}
|
||||
function cleanUpIfStatementAfterPrune(ifStatement) {
|
||||
var testExpression = ifStatement.get('test').value;
|
||||
var alternate = ifStatement.get('alternate').value;
|
||||
var consequent = ifStatement.get('consequent').value;
|
||||
if (!consequent && !alternate) {
|
||||
var testExpressionStatement = b.expressionStatement(testExpression);
|
||||
ifStatement.replace(testExpressionStatement);
|
||||
}
|
||||
else if (!consequent && alternate) {
|
||||
var negatedTestExpression = b.unaryExpression('!', testExpression, true);
|
||||
if (n.UnaryExpression.check(testExpression) && testExpression.operator === '!') {
|
||||
negatedTestExpression = testExpression.argument;
|
||||
}
|
||||
ifStatement.get("test").replace(negatedTestExpression);
|
||||
ifStatement.get("consequent").replace(alternate);
|
||||
ifStatement.get("alternate").replace();
|
||||
}
|
||||
}
|
||||
return NodePath;
|
||||
}
|
||||
exports.default = nodePathPlugin;
|
||||
module.exports = exports["default"];
|
||||
52
node_modules/ast-types/lib/path-visitor.d.ts
generated
vendored
Normal file
52
node_modules/ast-types/lib/path-visitor.d.ts
generated
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
import { Fork, Omit } from "../types";
|
||||
import { ASTNode } from "./types";
|
||||
import { NodePath } from "./node-path";
|
||||
export interface PathVisitor {
|
||||
_reusableContextStack: any;
|
||||
_methodNameTable: any;
|
||||
_shouldVisitComments: any;
|
||||
Context: any;
|
||||
_visiting: any;
|
||||
_changeReported: any;
|
||||
_abortRequested: boolean;
|
||||
visit(...args: any[]): any;
|
||||
reset(...args: any[]): any;
|
||||
visitWithoutReset(path: any): any;
|
||||
AbortRequest: any;
|
||||
abort(): void;
|
||||
visitor: any;
|
||||
acquireContext(path: any): any;
|
||||
releaseContext(context: any): void;
|
||||
reportChanged(): void;
|
||||
wasChangeReported(): any;
|
||||
}
|
||||
export interface PathVisitorStatics {
|
||||
fromMethodsObject(methods?: any): Visitor;
|
||||
visit<M = {}>(node: ASTNode, methods?: import("../gen/visitor").Visitor<M>): any;
|
||||
}
|
||||
export interface PathVisitorConstructor extends PathVisitorStatics {
|
||||
new (): PathVisitor;
|
||||
}
|
||||
export interface Visitor extends PathVisitor {
|
||||
}
|
||||
export interface VisitorConstructor extends PathVisitorStatics {
|
||||
new (): Visitor;
|
||||
}
|
||||
export interface VisitorMethods {
|
||||
[visitorMethod: string]: (path: NodePath) => any;
|
||||
}
|
||||
export interface SharedContextMethods {
|
||||
currentPath: any;
|
||||
needToCallTraverse: boolean;
|
||||
Context: any;
|
||||
visitor: any;
|
||||
reset(path: any, ...args: any[]): any;
|
||||
invokeVisitorMethod(methodName: string): any;
|
||||
traverse(path: any, newVisitor?: VisitorMethods): any;
|
||||
visit(path: any, newVisitor?: VisitorMethods): any;
|
||||
reportChanged(): void;
|
||||
abort(): void;
|
||||
}
|
||||
export interface Context extends Omit<PathVisitor, "visit" | "reset">, SharedContextMethods {
|
||||
}
|
||||
export default function pathVisitorPlugin(fork: Fork): PathVisitorConstructor;
|
||||
343
node_modules/ast-types/lib/path-visitor.js
generated
vendored
Normal file
343
node_modules/ast-types/lib/path-visitor.js
generated
vendored
Normal file
@@ -0,0 +1,343 @@
|
||||
"use strict";;
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var tslib_1 = require("tslib");
|
||||
var types_1 = tslib_1.__importDefault(require("./types"));
|
||||
var node_path_1 = tslib_1.__importDefault(require("./node-path"));
|
||||
var hasOwn = Object.prototype.hasOwnProperty;
|
||||
function pathVisitorPlugin(fork) {
|
||||
var types = fork.use(types_1.default);
|
||||
var NodePath = fork.use(node_path_1.default);
|
||||
var isArray = types.builtInTypes.array;
|
||||
var isObject = types.builtInTypes.object;
|
||||
var isFunction = types.builtInTypes.function;
|
||||
var undefined;
|
||||
var PathVisitor = function PathVisitor() {
|
||||
if (!(this instanceof PathVisitor)) {
|
||||
throw new Error("PathVisitor constructor cannot be invoked without 'new'");
|
||||
}
|
||||
// Permanent state.
|
||||
this._reusableContextStack = [];
|
||||
this._methodNameTable = computeMethodNameTable(this);
|
||||
this._shouldVisitComments =
|
||||
hasOwn.call(this._methodNameTable, "Block") ||
|
||||
hasOwn.call(this._methodNameTable, "Line");
|
||||
this.Context = makeContextConstructor(this);
|
||||
// State reset every time PathVisitor.prototype.visit is called.
|
||||
this._visiting = false;
|
||||
this._changeReported = false;
|
||||
};
|
||||
function computeMethodNameTable(visitor) {
|
||||
var typeNames = Object.create(null);
|
||||
for (var methodName in visitor) {
|
||||
if (/^visit[A-Z]/.test(methodName)) {
|
||||
typeNames[methodName.slice("visit".length)] = true;
|
||||
}
|
||||
}
|
||||
var supertypeTable = types.computeSupertypeLookupTable(typeNames);
|
||||
var methodNameTable = Object.create(null);
|
||||
var typeNameKeys = Object.keys(supertypeTable);
|
||||
var typeNameCount = typeNameKeys.length;
|
||||
for (var i = 0; i < typeNameCount; ++i) {
|
||||
var typeName = typeNameKeys[i];
|
||||
methodName = "visit" + supertypeTable[typeName];
|
||||
if (isFunction.check(visitor[methodName])) {
|
||||
methodNameTable[typeName] = methodName;
|
||||
}
|
||||
}
|
||||
return methodNameTable;
|
||||
}
|
||||
PathVisitor.fromMethodsObject = function fromMethodsObject(methods) {
|
||||
if (methods instanceof PathVisitor) {
|
||||
return methods;
|
||||
}
|
||||
if (!isObject.check(methods)) {
|
||||
// An empty visitor?
|
||||
return new PathVisitor;
|
||||
}
|
||||
var Visitor = function Visitor() {
|
||||
if (!(this instanceof Visitor)) {
|
||||
throw new Error("Visitor constructor cannot be invoked without 'new'");
|
||||
}
|
||||
PathVisitor.call(this);
|
||||
};
|
||||
var Vp = Visitor.prototype = Object.create(PVp);
|
||||
Vp.constructor = Visitor;
|
||||
extend(Vp, methods);
|
||||
extend(Visitor, PathVisitor);
|
||||
isFunction.assert(Visitor.fromMethodsObject);
|
||||
isFunction.assert(Visitor.visit);
|
||||
return new Visitor;
|
||||
};
|
||||
function extend(target, source) {
|
||||
for (var property in source) {
|
||||
if (hasOwn.call(source, property)) {
|
||||
target[property] = source[property];
|
||||
}
|
||||
}
|
||||
return target;
|
||||
}
|
||||
PathVisitor.visit = function visit(node, methods) {
|
||||
return PathVisitor.fromMethodsObject(methods).visit(node);
|
||||
};
|
||||
var PVp = PathVisitor.prototype;
|
||||
PVp.visit = function () {
|
||||
if (this._visiting) {
|
||||
throw new Error("Recursively calling visitor.visit(path) resets visitor state. " +
|
||||
"Try this.visit(path) or this.traverse(path) instead.");
|
||||
}
|
||||
// Private state that needs to be reset before every traversal.
|
||||
this._visiting = true;
|
||||
this._changeReported = false;
|
||||
this._abortRequested = false;
|
||||
var argc = arguments.length;
|
||||
var args = new Array(argc);
|
||||
for (var i = 0; i < argc; ++i) {
|
||||
args[i] = arguments[i];
|
||||
}
|
||||
if (!(args[0] instanceof NodePath)) {
|
||||
args[0] = new NodePath({ root: args[0] }).get("root");
|
||||
}
|
||||
// Called with the same arguments as .visit.
|
||||
this.reset.apply(this, args);
|
||||
var didNotThrow;
|
||||
try {
|
||||
var root = this.visitWithoutReset(args[0]);
|
||||
didNotThrow = true;
|
||||
}
|
||||
finally {
|
||||
this._visiting = false;
|
||||
if (!didNotThrow && this._abortRequested) {
|
||||
// If this.visitWithoutReset threw an exception and
|
||||
// this._abortRequested was set to true, return the root of
|
||||
// the AST instead of letting the exception propagate, so that
|
||||
// client code does not have to provide a try-catch block to
|
||||
// intercept the AbortRequest exception. Other kinds of
|
||||
// exceptions will propagate without being intercepted and
|
||||
// rethrown by a catch block, so their stacks will accurately
|
||||
// reflect the original throwing context.
|
||||
return args[0].value;
|
||||
}
|
||||
}
|
||||
return root;
|
||||
};
|
||||
PVp.AbortRequest = function AbortRequest() { };
|
||||
PVp.abort = function () {
|
||||
var visitor = this;
|
||||
visitor._abortRequested = true;
|
||||
var request = new visitor.AbortRequest();
|
||||
// If you decide to catch this exception and stop it from propagating,
|
||||
// make sure to call its cancel method to avoid silencing other
|
||||
// exceptions that might be thrown later in the traversal.
|
||||
request.cancel = function () {
|
||||
visitor._abortRequested = false;
|
||||
};
|
||||
throw request;
|
||||
};
|
||||
PVp.reset = function (_path /*, additional arguments */) {
|
||||
// Empty stub; may be reassigned or overridden by subclasses.
|
||||
};
|
||||
PVp.visitWithoutReset = function (path) {
|
||||
if (this instanceof this.Context) {
|
||||
// Since this.Context.prototype === this, there's a chance we
|
||||
// might accidentally call context.visitWithoutReset. If that
|
||||
// happens, re-invoke the method against context.visitor.
|
||||
return this.visitor.visitWithoutReset(path);
|
||||
}
|
||||
if (!(path instanceof NodePath)) {
|
||||
throw new Error("");
|
||||
}
|
||||
var value = path.value;
|
||||
var methodName = value &&
|
||||
typeof value === "object" &&
|
||||
typeof value.type === "string" &&
|
||||
this._methodNameTable[value.type];
|
||||
if (methodName) {
|
||||
var context = this.acquireContext(path);
|
||||
try {
|
||||
return context.invokeVisitorMethod(methodName);
|
||||
}
|
||||
finally {
|
||||
this.releaseContext(context);
|
||||
}
|
||||
}
|
||||
else {
|
||||
// If there was no visitor method to call, visit the children of
|
||||
// this node generically.
|
||||
return visitChildren(path, this);
|
||||
}
|
||||
};
|
||||
function visitChildren(path, visitor) {
|
||||
if (!(path instanceof NodePath)) {
|
||||
throw new Error("");
|
||||
}
|
||||
if (!(visitor instanceof PathVisitor)) {
|
||||
throw new Error("");
|
||||
}
|
||||
var value = path.value;
|
||||
if (isArray.check(value)) {
|
||||
path.each(visitor.visitWithoutReset, visitor);
|
||||
}
|
||||
else if (!isObject.check(value)) {
|
||||
// No children to visit.
|
||||
}
|
||||
else {
|
||||
var childNames = types.getFieldNames(value);
|
||||
// The .comments field of the Node type is hidden, so we only
|
||||
// visit it if the visitor defines visitBlock or visitLine, and
|
||||
// value.comments is defined.
|
||||
if (visitor._shouldVisitComments &&
|
||||
value.comments &&
|
||||
childNames.indexOf("comments") < 0) {
|
||||
childNames.push("comments");
|
||||
}
|
||||
var childCount = childNames.length;
|
||||
var childPaths = [];
|
||||
for (var i = 0; i < childCount; ++i) {
|
||||
var childName = childNames[i];
|
||||
if (!hasOwn.call(value, childName)) {
|
||||
value[childName] = types.getFieldValue(value, childName);
|
||||
}
|
||||
childPaths.push(path.get(childName));
|
||||
}
|
||||
for (var i = 0; i < childCount; ++i) {
|
||||
visitor.visitWithoutReset(childPaths[i]);
|
||||
}
|
||||
}
|
||||
return path.value;
|
||||
}
|
||||
PVp.acquireContext = function (path) {
|
||||
if (this._reusableContextStack.length === 0) {
|
||||
return new this.Context(path);
|
||||
}
|
||||
return this._reusableContextStack.pop().reset(path);
|
||||
};
|
||||
PVp.releaseContext = function (context) {
|
||||
if (!(context instanceof this.Context)) {
|
||||
throw new Error("");
|
||||
}
|
||||
this._reusableContextStack.push(context);
|
||||
context.currentPath = null;
|
||||
};
|
||||
PVp.reportChanged = function () {
|
||||
this._changeReported = true;
|
||||
};
|
||||
PVp.wasChangeReported = function () {
|
||||
return this._changeReported;
|
||||
};
|
||||
function makeContextConstructor(visitor) {
|
||||
function Context(path) {
|
||||
if (!(this instanceof Context)) {
|
||||
throw new Error("");
|
||||
}
|
||||
if (!(this instanceof PathVisitor)) {
|
||||
throw new Error("");
|
||||
}
|
||||
if (!(path instanceof NodePath)) {
|
||||
throw new Error("");
|
||||
}
|
||||
Object.defineProperty(this, "visitor", {
|
||||
value: visitor,
|
||||
writable: false,
|
||||
enumerable: true,
|
||||
configurable: false
|
||||
});
|
||||
this.currentPath = path;
|
||||
this.needToCallTraverse = true;
|
||||
Object.seal(this);
|
||||
}
|
||||
if (!(visitor instanceof PathVisitor)) {
|
||||
throw new Error("");
|
||||
}
|
||||
// Note that the visitor object is the prototype of Context.prototype,
|
||||
// so all visitor methods are inherited by context objects.
|
||||
var Cp = Context.prototype = Object.create(visitor);
|
||||
Cp.constructor = Context;
|
||||
extend(Cp, sharedContextProtoMethods);
|
||||
return Context;
|
||||
}
|
||||
// Every PathVisitor has a different this.Context constructor and
|
||||
// this.Context.prototype object, but those prototypes can all use the
|
||||
// same reset, invokeVisitorMethod, and traverse function objects.
|
||||
var sharedContextProtoMethods = Object.create(null);
|
||||
sharedContextProtoMethods.reset =
|
||||
function reset(path) {
|
||||
if (!(this instanceof this.Context)) {
|
||||
throw new Error("");
|
||||
}
|
||||
if (!(path instanceof NodePath)) {
|
||||
throw new Error("");
|
||||
}
|
||||
this.currentPath = path;
|
||||
this.needToCallTraverse = true;
|
||||
return this;
|
||||
};
|
||||
sharedContextProtoMethods.invokeVisitorMethod =
|
||||
function invokeVisitorMethod(methodName) {
|
||||
if (!(this instanceof this.Context)) {
|
||||
throw new Error("");
|
||||
}
|
||||
if (!(this.currentPath instanceof NodePath)) {
|
||||
throw new Error("");
|
||||
}
|
||||
var result = this.visitor[methodName].call(this, this.currentPath);
|
||||
if (result === false) {
|
||||
// Visitor methods return false to indicate that they have handled
|
||||
// their own traversal needs, and we should not complain if
|
||||
// this.needToCallTraverse is still true.
|
||||
this.needToCallTraverse = false;
|
||||
}
|
||||
else if (result !== undefined) {
|
||||
// Any other non-undefined value returned from the visitor method
|
||||
// is interpreted as a replacement value.
|
||||
this.currentPath = this.currentPath.replace(result)[0];
|
||||
if (this.needToCallTraverse) {
|
||||
// If this.traverse still hasn't been called, visit the
|
||||
// children of the replacement node.
|
||||
this.traverse(this.currentPath);
|
||||
}
|
||||
}
|
||||
if (this.needToCallTraverse !== false) {
|
||||
throw new Error("Must either call this.traverse or return false in " + methodName);
|
||||
}
|
||||
var path = this.currentPath;
|
||||
return path && path.value;
|
||||
};
|
||||
sharedContextProtoMethods.traverse =
|
||||
function traverse(path, newVisitor) {
|
||||
if (!(this instanceof this.Context)) {
|
||||
throw new Error("");
|
||||
}
|
||||
if (!(path instanceof NodePath)) {
|
||||
throw new Error("");
|
||||
}
|
||||
if (!(this.currentPath instanceof NodePath)) {
|
||||
throw new Error("");
|
||||
}
|
||||
this.needToCallTraverse = false;
|
||||
return visitChildren(path, PathVisitor.fromMethodsObject(newVisitor || this.visitor));
|
||||
};
|
||||
sharedContextProtoMethods.visit =
|
||||
function visit(path, newVisitor) {
|
||||
if (!(this instanceof this.Context)) {
|
||||
throw new Error("");
|
||||
}
|
||||
if (!(path instanceof NodePath)) {
|
||||
throw new Error("");
|
||||
}
|
||||
if (!(this.currentPath instanceof NodePath)) {
|
||||
throw new Error("");
|
||||
}
|
||||
this.needToCallTraverse = false;
|
||||
return PathVisitor.fromMethodsObject(newVisitor || this.visitor).visitWithoutReset(path);
|
||||
};
|
||||
sharedContextProtoMethods.reportChanged = function reportChanged() {
|
||||
this.visitor.reportChanged();
|
||||
};
|
||||
sharedContextProtoMethods.abort = function abort() {
|
||||
this.needToCallTraverse = false;
|
||||
this.visitor.abort();
|
||||
};
|
||||
return PathVisitor;
|
||||
}
|
||||
exports.default = pathVisitorPlugin;
|
||||
module.exports = exports["default"];
|
||||
25
node_modules/ast-types/lib/path.d.ts
generated
vendored
Normal file
25
node_modules/ast-types/lib/path.d.ts
generated
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
import { Fork } from "../types";
|
||||
import { ASTNode } from "./types";
|
||||
export interface Path<V = any> {
|
||||
value: V;
|
||||
parentPath: any;
|
||||
name: any;
|
||||
__childCache: object | null;
|
||||
getValueProperty(name: any): any;
|
||||
get(...names: any[]): any;
|
||||
each(callback: any, context: any): any;
|
||||
map(callback: any, context: any): any;
|
||||
filter(callback: any, context: any): any;
|
||||
shift(): any;
|
||||
unshift(...args: any[]): any;
|
||||
push(...args: any[]): any;
|
||||
pop(): any;
|
||||
insertAt(index: number, ...args: any[]): any;
|
||||
insertBefore(...args: any[]): any;
|
||||
insertAfter(...args: any[]): any;
|
||||
replace(replacement?: ASTNode, ...args: ASTNode[]): any;
|
||||
}
|
||||
export interface PathConstructor {
|
||||
new <V = any>(value: any, parentPath?: any, name?: any): Path<V>;
|
||||
}
|
||||
export default function pathPlugin(fork: Fork): PathConstructor;
|
||||
331
node_modules/ast-types/lib/path.js
generated
vendored
Normal file
331
node_modules/ast-types/lib/path.js
generated
vendored
Normal file
@@ -0,0 +1,331 @@
|
||||
"use strict";;
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var tslib_1 = require("tslib");
|
||||
var types_1 = tslib_1.__importDefault(require("./types"));
|
||||
var Op = Object.prototype;
|
||||
var hasOwn = Op.hasOwnProperty;
|
||||
function pathPlugin(fork) {
|
||||
var types = fork.use(types_1.default);
|
||||
var isArray = types.builtInTypes.array;
|
||||
var isNumber = types.builtInTypes.number;
|
||||
var Path = function Path(value, parentPath, name) {
|
||||
if (!(this instanceof Path)) {
|
||||
throw new Error("Path constructor cannot be invoked without 'new'");
|
||||
}
|
||||
if (parentPath) {
|
||||
if (!(parentPath instanceof Path)) {
|
||||
throw new Error("");
|
||||
}
|
||||
}
|
||||
else {
|
||||
parentPath = null;
|
||||
name = null;
|
||||
}
|
||||
// The value encapsulated by this Path, generally equal to
|
||||
// parentPath.value[name] if we have a parentPath.
|
||||
this.value = value;
|
||||
// The immediate parent Path of this Path.
|
||||
this.parentPath = parentPath;
|
||||
// The name of the property of parentPath.value through which this
|
||||
// Path's value was reached.
|
||||
this.name = name;
|
||||
// Calling path.get("child") multiple times always returns the same
|
||||
// child Path object, for both performance and consistency reasons.
|
||||
this.__childCache = null;
|
||||
};
|
||||
var Pp = Path.prototype;
|
||||
function getChildCache(path) {
|
||||
// Lazily create the child cache. This also cheapens cache
|
||||
// invalidation, since you can just reset path.__childCache to null.
|
||||
return path.__childCache || (path.__childCache = Object.create(null));
|
||||
}
|
||||
function getChildPath(path, name) {
|
||||
var cache = getChildCache(path);
|
||||
var actualChildValue = path.getValueProperty(name);
|
||||
var childPath = cache[name];
|
||||
if (!hasOwn.call(cache, name) ||
|
||||
// Ensure consistency between cache and reality.
|
||||
childPath.value !== actualChildValue) {
|
||||
childPath = cache[name] = new path.constructor(actualChildValue, path, name);
|
||||
}
|
||||
return childPath;
|
||||
}
|
||||
// This method is designed to be overridden by subclasses that need to
|
||||
// handle missing properties, etc.
|
||||
Pp.getValueProperty = function getValueProperty(name) {
|
||||
return this.value[name];
|
||||
};
|
||||
Pp.get = function get() {
|
||||
var names = [];
|
||||
for (var _i = 0; _i < arguments.length; _i++) {
|
||||
names[_i] = arguments[_i];
|
||||
}
|
||||
var path = this;
|
||||
var count = names.length;
|
||||
for (var i = 0; i < count; ++i) {
|
||||
path = getChildPath(path, names[i]);
|
||||
}
|
||||
return path;
|
||||
};
|
||||
Pp.each = function each(callback, context) {
|
||||
var childPaths = [];
|
||||
var len = this.value.length;
|
||||
var i = 0;
|
||||
// Collect all the original child paths before invoking the callback.
|
||||
for (var i = 0; i < len; ++i) {
|
||||
if (hasOwn.call(this.value, i)) {
|
||||
childPaths[i] = this.get(i);
|
||||
}
|
||||
}
|
||||
// Invoke the callback on just the original child paths, regardless of
|
||||
// any modifications made to the array by the callback. I chose these
|
||||
// semantics over cleverly invoking the callback on new elements because
|
||||
// this way is much easier to reason about.
|
||||
context = context || this;
|
||||
for (i = 0; i < len; ++i) {
|
||||
if (hasOwn.call(childPaths, i)) {
|
||||
callback.call(context, childPaths[i]);
|
||||
}
|
||||
}
|
||||
};
|
||||
Pp.map = function map(callback, context) {
|
||||
var result = [];
|
||||
this.each(function (childPath) {
|
||||
result.push(callback.call(this, childPath));
|
||||
}, context);
|
||||
return result;
|
||||
};
|
||||
Pp.filter = function filter(callback, context) {
|
||||
var result = [];
|
||||
this.each(function (childPath) {
|
||||
if (callback.call(this, childPath)) {
|
||||
result.push(childPath);
|
||||
}
|
||||
}, context);
|
||||
return result;
|
||||
};
|
||||
function emptyMoves() { }
|
||||
function getMoves(path, offset, start, end) {
|
||||
isArray.assert(path.value);
|
||||
if (offset === 0) {
|
||||
return emptyMoves;
|
||||
}
|
||||
var length = path.value.length;
|
||||
if (length < 1) {
|
||||
return emptyMoves;
|
||||
}
|
||||
var argc = arguments.length;
|
||||
if (argc === 2) {
|
||||
start = 0;
|
||||
end = length;
|
||||
}
|
||||
else if (argc === 3) {
|
||||
start = Math.max(start, 0);
|
||||
end = length;
|
||||
}
|
||||
else {
|
||||
start = Math.max(start, 0);
|
||||
end = Math.min(end, length);
|
||||
}
|
||||
isNumber.assert(start);
|
||||
isNumber.assert(end);
|
||||
var moves = Object.create(null);
|
||||
var cache = getChildCache(path);
|
||||
for (var i = start; i < end; ++i) {
|
||||
if (hasOwn.call(path.value, i)) {
|
||||
var childPath = path.get(i);
|
||||
if (childPath.name !== i) {
|
||||
throw new Error("");
|
||||
}
|
||||
var newIndex = i + offset;
|
||||
childPath.name = newIndex;
|
||||
moves[newIndex] = childPath;
|
||||
delete cache[i];
|
||||
}
|
||||
}
|
||||
delete cache.length;
|
||||
return function () {
|
||||
for (var newIndex in moves) {
|
||||
var childPath = moves[newIndex];
|
||||
if (childPath.name !== +newIndex) {
|
||||
throw new Error("");
|
||||
}
|
||||
cache[newIndex] = childPath;
|
||||
path.value[newIndex] = childPath.value;
|
||||
}
|
||||
};
|
||||
}
|
||||
Pp.shift = function shift() {
|
||||
var move = getMoves(this, -1);
|
||||
var result = this.value.shift();
|
||||
move();
|
||||
return result;
|
||||
};
|
||||
Pp.unshift = function unshift() {
|
||||
var args = [];
|
||||
for (var _i = 0; _i < arguments.length; _i++) {
|
||||
args[_i] = arguments[_i];
|
||||
}
|
||||
var move = getMoves(this, args.length);
|
||||
var result = this.value.unshift.apply(this.value, args);
|
||||
move();
|
||||
return result;
|
||||
};
|
||||
Pp.push = function push() {
|
||||
var args = [];
|
||||
for (var _i = 0; _i < arguments.length; _i++) {
|
||||
args[_i] = arguments[_i];
|
||||
}
|
||||
isArray.assert(this.value);
|
||||
delete getChildCache(this).length;
|
||||
return this.value.push.apply(this.value, args);
|
||||
};
|
||||
Pp.pop = function pop() {
|
||||
isArray.assert(this.value);
|
||||
var cache = getChildCache(this);
|
||||
delete cache[this.value.length - 1];
|
||||
delete cache.length;
|
||||
return this.value.pop();
|
||||
};
|
||||
Pp.insertAt = function insertAt(index) {
|
||||
var argc = arguments.length;
|
||||
var move = getMoves(this, argc - 1, index);
|
||||
if (move === emptyMoves && argc <= 1) {
|
||||
return this;
|
||||
}
|
||||
index = Math.max(index, 0);
|
||||
for (var i = 1; i < argc; ++i) {
|
||||
this.value[index + i - 1] = arguments[i];
|
||||
}
|
||||
move();
|
||||
return this;
|
||||
};
|
||||
Pp.insertBefore = function insertBefore() {
|
||||
var args = [];
|
||||
for (var _i = 0; _i < arguments.length; _i++) {
|
||||
args[_i] = arguments[_i];
|
||||
}
|
||||
var pp = this.parentPath;
|
||||
var argc = args.length;
|
||||
var insertAtArgs = [this.name];
|
||||
for (var i = 0; i < argc; ++i) {
|
||||
insertAtArgs.push(args[i]);
|
||||
}
|
||||
return pp.insertAt.apply(pp, insertAtArgs);
|
||||
};
|
||||
Pp.insertAfter = function insertAfter() {
|
||||
var args = [];
|
||||
for (var _i = 0; _i < arguments.length; _i++) {
|
||||
args[_i] = arguments[_i];
|
||||
}
|
||||
var pp = this.parentPath;
|
||||
var argc = args.length;
|
||||
var insertAtArgs = [this.name + 1];
|
||||
for (var i = 0; i < argc; ++i) {
|
||||
insertAtArgs.push(args[i]);
|
||||
}
|
||||
return pp.insertAt.apply(pp, insertAtArgs);
|
||||
};
|
||||
function repairRelationshipWithParent(path) {
|
||||
if (!(path instanceof Path)) {
|
||||
throw new Error("");
|
||||
}
|
||||
var pp = path.parentPath;
|
||||
if (!pp) {
|
||||
// Orphan paths have no relationship to repair.
|
||||
return path;
|
||||
}
|
||||
var parentValue = pp.value;
|
||||
var parentCache = getChildCache(pp);
|
||||
// Make sure parentCache[path.name] is populated.
|
||||
if (parentValue[path.name] === path.value) {
|
||||
parentCache[path.name] = path;
|
||||
}
|
||||
else if (isArray.check(parentValue)) {
|
||||
// Something caused path.name to become out of date, so attempt to
|
||||
// recover by searching for path.value in parentValue.
|
||||
var i = parentValue.indexOf(path.value);
|
||||
if (i >= 0) {
|
||||
parentCache[path.name = i] = path;
|
||||
}
|
||||
}
|
||||
else {
|
||||
// If path.value disagrees with parentValue[path.name], and
|
||||
// path.name is not an array index, let path.value become the new
|
||||
// parentValue[path.name] and update parentCache accordingly.
|
||||
parentValue[path.name] = path.value;
|
||||
parentCache[path.name] = path;
|
||||
}
|
||||
if (parentValue[path.name] !== path.value) {
|
||||
throw new Error("");
|
||||
}
|
||||
if (path.parentPath.get(path.name) !== path) {
|
||||
throw new Error("");
|
||||
}
|
||||
return path;
|
||||
}
|
||||
Pp.replace = function replace(replacement) {
|
||||
var results = [];
|
||||
var parentValue = this.parentPath.value;
|
||||
var parentCache = getChildCache(this.parentPath);
|
||||
var count = arguments.length;
|
||||
repairRelationshipWithParent(this);
|
||||
if (isArray.check(parentValue)) {
|
||||
var originalLength = parentValue.length;
|
||||
var move = getMoves(this.parentPath, count - 1, this.name + 1);
|
||||
var spliceArgs = [this.name, 1];
|
||||
for (var i = 0; i < count; ++i) {
|
||||
spliceArgs.push(arguments[i]);
|
||||
}
|
||||
var splicedOut = parentValue.splice.apply(parentValue, spliceArgs);
|
||||
if (splicedOut[0] !== this.value) {
|
||||
throw new Error("");
|
||||
}
|
||||
if (parentValue.length !== (originalLength - 1 + count)) {
|
||||
throw new Error("");
|
||||
}
|
||||
move();
|
||||
if (count === 0) {
|
||||
delete this.value;
|
||||
delete parentCache[this.name];
|
||||
this.__childCache = null;
|
||||
}
|
||||
else {
|
||||
if (parentValue[this.name] !== replacement) {
|
||||
throw new Error("");
|
||||
}
|
||||
if (this.value !== replacement) {
|
||||
this.value = replacement;
|
||||
this.__childCache = null;
|
||||
}
|
||||
for (i = 0; i < count; ++i) {
|
||||
results.push(this.parentPath.get(this.name + i));
|
||||
}
|
||||
if (results[0] !== this) {
|
||||
throw new Error("");
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (count === 1) {
|
||||
if (this.value !== replacement) {
|
||||
this.__childCache = null;
|
||||
}
|
||||
this.value = parentValue[this.name] = replacement;
|
||||
results.push(this);
|
||||
}
|
||||
else if (count === 0) {
|
||||
delete parentValue[this.name];
|
||||
delete this.value;
|
||||
this.__childCache = null;
|
||||
// Leave this path cached as parentCache[this.name], even though
|
||||
// it no longer has a value defined.
|
||||
}
|
||||
else {
|
||||
throw new Error("Could not replace path");
|
||||
}
|
||||
return results;
|
||||
};
|
||||
return Path;
|
||||
}
|
||||
exports.default = pathPlugin;
|
||||
module.exports = exports["default"];
|
||||
26
node_modules/ast-types/lib/scope.d.ts
generated
vendored
Normal file
26
node_modules/ast-types/lib/scope.d.ts
generated
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
import { Fork } from "../types";
|
||||
export interface Scope {
|
||||
path: any;
|
||||
node: any;
|
||||
isGlobal: boolean;
|
||||
depth: number;
|
||||
parent: any;
|
||||
bindings: any;
|
||||
types: any;
|
||||
didScan: boolean;
|
||||
declares(name: any): any;
|
||||
declaresType(name: any): any;
|
||||
declareTemporary(prefix?: any): any;
|
||||
injectTemporary(identifier: any, init: any): any;
|
||||
scan(force?: any): any;
|
||||
getBindings(): any;
|
||||
getTypes(): any;
|
||||
lookup(name: any): any;
|
||||
lookupType(name: any): any;
|
||||
getGlobalScope(): Scope;
|
||||
}
|
||||
export interface ScopeConstructor {
|
||||
new (path: any, parentScope: any): Scope;
|
||||
isEstablishedBy(node: any): any;
|
||||
}
|
||||
export default function scopePlugin(fork: Fork): ScopeConstructor;
|
||||
318
node_modules/ast-types/lib/scope.js
generated
vendored
Normal file
318
node_modules/ast-types/lib/scope.js
generated
vendored
Normal file
@@ -0,0 +1,318 @@
|
||||
"use strict";;
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var tslib_1 = require("tslib");
|
||||
var types_1 = tslib_1.__importDefault(require("./types"));
|
||||
var hasOwn = Object.prototype.hasOwnProperty;
|
||||
function scopePlugin(fork) {
|
||||
var types = fork.use(types_1.default);
|
||||
var Type = types.Type;
|
||||
var namedTypes = types.namedTypes;
|
||||
var Node = namedTypes.Node;
|
||||
var Expression = namedTypes.Expression;
|
||||
var isArray = types.builtInTypes.array;
|
||||
var b = types.builders;
|
||||
var Scope = function Scope(path, parentScope) {
|
||||
if (!(this instanceof Scope)) {
|
||||
throw new Error("Scope constructor cannot be invoked without 'new'");
|
||||
}
|
||||
ScopeType.assert(path.value);
|
||||
var depth;
|
||||
if (parentScope) {
|
||||
if (!(parentScope instanceof Scope)) {
|
||||
throw new Error("");
|
||||
}
|
||||
depth = parentScope.depth + 1;
|
||||
}
|
||||
else {
|
||||
parentScope = null;
|
||||
depth = 0;
|
||||
}
|
||||
Object.defineProperties(this, {
|
||||
path: { value: path },
|
||||
node: { value: path.value },
|
||||
isGlobal: { value: !parentScope, enumerable: true },
|
||||
depth: { value: depth },
|
||||
parent: { value: parentScope },
|
||||
bindings: { value: {} },
|
||||
types: { value: {} },
|
||||
});
|
||||
};
|
||||
var scopeTypes = [
|
||||
// Program nodes introduce global scopes.
|
||||
namedTypes.Program,
|
||||
// Function is the supertype of FunctionExpression,
|
||||
// FunctionDeclaration, ArrowExpression, etc.
|
||||
namedTypes.Function,
|
||||
// In case you didn't know, the caught parameter shadows any variable
|
||||
// of the same name in an outer scope.
|
||||
namedTypes.CatchClause
|
||||
];
|
||||
var ScopeType = Type.or.apply(Type, scopeTypes);
|
||||
Scope.isEstablishedBy = function (node) {
|
||||
return ScopeType.check(node);
|
||||
};
|
||||
var Sp = Scope.prototype;
|
||||
// Will be overridden after an instance lazily calls scanScope.
|
||||
Sp.didScan = false;
|
||||
Sp.declares = function (name) {
|
||||
this.scan();
|
||||
return hasOwn.call(this.bindings, name);
|
||||
};
|
||||
Sp.declaresType = function (name) {
|
||||
this.scan();
|
||||
return hasOwn.call(this.types, name);
|
||||
};
|
||||
Sp.declareTemporary = function (prefix) {
|
||||
if (prefix) {
|
||||
if (!/^[a-z$_]/i.test(prefix)) {
|
||||
throw new Error("");
|
||||
}
|
||||
}
|
||||
else {
|
||||
prefix = "t$";
|
||||
}
|
||||
// Include this.depth in the name to make sure the name does not
|
||||
// collide with any variables in nested/enclosing scopes.
|
||||
prefix += this.depth.toString(36) + "$";
|
||||
this.scan();
|
||||
var index = 0;
|
||||
while (this.declares(prefix + index)) {
|
||||
++index;
|
||||
}
|
||||
var name = prefix + index;
|
||||
return this.bindings[name] = types.builders.identifier(name);
|
||||
};
|
||||
Sp.injectTemporary = function (identifier, init) {
|
||||
identifier || (identifier = this.declareTemporary());
|
||||
var bodyPath = this.path.get("body");
|
||||
if (namedTypes.BlockStatement.check(bodyPath.value)) {
|
||||
bodyPath = bodyPath.get("body");
|
||||
}
|
||||
bodyPath.unshift(b.variableDeclaration("var", [b.variableDeclarator(identifier, init || null)]));
|
||||
return identifier;
|
||||
};
|
||||
Sp.scan = function (force) {
|
||||
if (force || !this.didScan) {
|
||||
for (var name in this.bindings) {
|
||||
// Empty out this.bindings, just in cases.
|
||||
delete this.bindings[name];
|
||||
}
|
||||
scanScope(this.path, this.bindings, this.types);
|
||||
this.didScan = true;
|
||||
}
|
||||
};
|
||||
Sp.getBindings = function () {
|
||||
this.scan();
|
||||
return this.bindings;
|
||||
};
|
||||
Sp.getTypes = function () {
|
||||
this.scan();
|
||||
return this.types;
|
||||
};
|
||||
function scanScope(path, bindings, scopeTypes) {
|
||||
var node = path.value;
|
||||
ScopeType.assert(node);
|
||||
if (namedTypes.CatchClause.check(node)) {
|
||||
// A catch clause establishes a new scope but the only variable
|
||||
// bound in that scope is the catch parameter. Any other
|
||||
// declarations create bindings in the outer scope.
|
||||
var param = path.get("param");
|
||||
if (param.value) {
|
||||
addPattern(param, bindings);
|
||||
}
|
||||
}
|
||||
else {
|
||||
recursiveScanScope(path, bindings, scopeTypes);
|
||||
}
|
||||
}
|
||||
function recursiveScanScope(path, bindings, scopeTypes) {
|
||||
var node = path.value;
|
||||
if (path.parent &&
|
||||
namedTypes.FunctionExpression.check(path.parent.node) &&
|
||||
path.parent.node.id) {
|
||||
addPattern(path.parent.get("id"), bindings);
|
||||
}
|
||||
if (!node) {
|
||||
// None of the remaining cases matter if node is falsy.
|
||||
}
|
||||
else if (isArray.check(node)) {
|
||||
path.each(function (childPath) {
|
||||
recursiveScanChild(childPath, bindings, scopeTypes);
|
||||
});
|
||||
}
|
||||
else if (namedTypes.Function.check(node)) {
|
||||
path.get("params").each(function (paramPath) {
|
||||
addPattern(paramPath, bindings);
|
||||
});
|
||||
recursiveScanChild(path.get("body"), bindings, scopeTypes);
|
||||
}
|
||||
else if ((namedTypes.TypeAlias && namedTypes.TypeAlias.check(node)) ||
|
||||
(namedTypes.InterfaceDeclaration && namedTypes.InterfaceDeclaration.check(node)) ||
|
||||
(namedTypes.TSTypeAliasDeclaration && namedTypes.TSTypeAliasDeclaration.check(node)) ||
|
||||
(namedTypes.TSInterfaceDeclaration && namedTypes.TSInterfaceDeclaration.check(node))) {
|
||||
addTypePattern(path.get("id"), scopeTypes);
|
||||
}
|
||||
else if (namedTypes.VariableDeclarator.check(node)) {
|
||||
addPattern(path.get("id"), bindings);
|
||||
recursiveScanChild(path.get("init"), bindings, scopeTypes);
|
||||
}
|
||||
else if (node.type === "ImportSpecifier" ||
|
||||
node.type === "ImportNamespaceSpecifier" ||
|
||||
node.type === "ImportDefaultSpecifier") {
|
||||
addPattern(
|
||||
// Esprima used to use the .name field to refer to the local
|
||||
// binding identifier for ImportSpecifier nodes, but .id for
|
||||
// ImportNamespaceSpecifier and ImportDefaultSpecifier nodes.
|
||||
// ESTree/Acorn/ESpree use .local for all three node types.
|
||||
path.get(node.local ? "local" :
|
||||
node.name ? "name" : "id"), bindings);
|
||||
}
|
||||
else if (Node.check(node) && !Expression.check(node)) {
|
||||
types.eachField(node, function (name, child) {
|
||||
var childPath = path.get(name);
|
||||
if (!pathHasValue(childPath, child)) {
|
||||
throw new Error("");
|
||||
}
|
||||
recursiveScanChild(childPath, bindings, scopeTypes);
|
||||
});
|
||||
}
|
||||
}
|
||||
function pathHasValue(path, value) {
|
||||
if (path.value === value) {
|
||||
return true;
|
||||
}
|
||||
// Empty arrays are probably produced by defaults.emptyArray, in which
|
||||
// case is makes sense to regard them as equivalent, if not ===.
|
||||
if (Array.isArray(path.value) &&
|
||||
path.value.length === 0 &&
|
||||
Array.isArray(value) &&
|
||||
value.length === 0) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function recursiveScanChild(path, bindings, scopeTypes) {
|
||||
var node = path.value;
|
||||
if (!node || Expression.check(node)) {
|
||||
// Ignore falsy values and Expressions.
|
||||
}
|
||||
else if (namedTypes.FunctionDeclaration.check(node) &&
|
||||
node.id !== null) {
|
||||
addPattern(path.get("id"), bindings);
|
||||
}
|
||||
else if (namedTypes.ClassDeclaration &&
|
||||
namedTypes.ClassDeclaration.check(node)) {
|
||||
addPattern(path.get("id"), bindings);
|
||||
}
|
||||
else if (ScopeType.check(node)) {
|
||||
if (namedTypes.CatchClause.check(node) &&
|
||||
// TODO Broaden this to accept any pattern.
|
||||
namedTypes.Identifier.check(node.param)) {
|
||||
var catchParamName = node.param.name;
|
||||
var hadBinding = hasOwn.call(bindings, catchParamName);
|
||||
// Any declarations that occur inside the catch body that do
|
||||
// not have the same name as the catch parameter should count
|
||||
// as bindings in the outer scope.
|
||||
recursiveScanScope(path.get("body"), bindings, scopeTypes);
|
||||
// If a new binding matching the catch parameter name was
|
||||
// created while scanning the catch body, ignore it because it
|
||||
// actually refers to the catch parameter and not the outer
|
||||
// scope that we're currently scanning.
|
||||
if (!hadBinding) {
|
||||
delete bindings[catchParamName];
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
recursiveScanScope(path, bindings, scopeTypes);
|
||||
}
|
||||
}
|
||||
function addPattern(patternPath, bindings) {
|
||||
var pattern = patternPath.value;
|
||||
namedTypes.Pattern.assert(pattern);
|
||||
if (namedTypes.Identifier.check(pattern)) {
|
||||
if (hasOwn.call(bindings, pattern.name)) {
|
||||
bindings[pattern.name].push(patternPath);
|
||||
}
|
||||
else {
|
||||
bindings[pattern.name] = [patternPath];
|
||||
}
|
||||
}
|
||||
else if (namedTypes.AssignmentPattern &&
|
||||
namedTypes.AssignmentPattern.check(pattern)) {
|
||||
addPattern(patternPath.get('left'), bindings);
|
||||
}
|
||||
else if (namedTypes.ObjectPattern &&
|
||||
namedTypes.ObjectPattern.check(pattern)) {
|
||||
patternPath.get('properties').each(function (propertyPath) {
|
||||
var property = propertyPath.value;
|
||||
if (namedTypes.Pattern.check(property)) {
|
||||
addPattern(propertyPath, bindings);
|
||||
}
|
||||
else if (namedTypes.Property.check(property)) {
|
||||
addPattern(propertyPath.get('value'), bindings);
|
||||
}
|
||||
else if (namedTypes.SpreadProperty &&
|
||||
namedTypes.SpreadProperty.check(property)) {
|
||||
addPattern(propertyPath.get('argument'), bindings);
|
||||
}
|
||||
});
|
||||
}
|
||||
else if (namedTypes.ArrayPattern &&
|
||||
namedTypes.ArrayPattern.check(pattern)) {
|
||||
patternPath.get('elements').each(function (elementPath) {
|
||||
var element = elementPath.value;
|
||||
if (namedTypes.Pattern.check(element)) {
|
||||
addPattern(elementPath, bindings);
|
||||
}
|
||||
else if (namedTypes.SpreadElement &&
|
||||
namedTypes.SpreadElement.check(element)) {
|
||||
addPattern(elementPath.get("argument"), bindings);
|
||||
}
|
||||
});
|
||||
}
|
||||
else if (namedTypes.PropertyPattern &&
|
||||
namedTypes.PropertyPattern.check(pattern)) {
|
||||
addPattern(patternPath.get('pattern'), bindings);
|
||||
}
|
||||
else if ((namedTypes.SpreadElementPattern &&
|
||||
namedTypes.SpreadElementPattern.check(pattern)) ||
|
||||
(namedTypes.SpreadPropertyPattern &&
|
||||
namedTypes.SpreadPropertyPattern.check(pattern))) {
|
||||
addPattern(patternPath.get('argument'), bindings);
|
||||
}
|
||||
}
|
||||
function addTypePattern(patternPath, types) {
|
||||
var pattern = patternPath.value;
|
||||
namedTypes.Pattern.assert(pattern);
|
||||
if (namedTypes.Identifier.check(pattern)) {
|
||||
if (hasOwn.call(types, pattern.name)) {
|
||||
types[pattern.name].push(patternPath);
|
||||
}
|
||||
else {
|
||||
types[pattern.name] = [patternPath];
|
||||
}
|
||||
}
|
||||
}
|
||||
Sp.lookup = function (name) {
|
||||
for (var scope = this; scope; scope = scope.parent)
|
||||
if (scope.declares(name))
|
||||
break;
|
||||
return scope;
|
||||
};
|
||||
Sp.lookupType = function (name) {
|
||||
for (var scope = this; scope; scope = scope.parent)
|
||||
if (scope.declaresType(name))
|
||||
break;
|
||||
return scope;
|
||||
};
|
||||
Sp.getGlobalScope = function () {
|
||||
var scope = this;
|
||||
while (!scope.isGlobal)
|
||||
scope = scope.parent;
|
||||
return scope;
|
||||
};
|
||||
return Scope;
|
||||
}
|
||||
exports.default = scopePlugin;
|
||||
module.exports = exports["default"];
|
||||
13
node_modules/ast-types/lib/shared.d.ts
generated
vendored
Normal file
13
node_modules/ast-types/lib/shared.d.ts
generated
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
import { Fork } from "../types";
|
||||
export default function (fork: Fork): {
|
||||
geq: (than: any) => import("./types").Type<unknown>;
|
||||
defaults: {
|
||||
null: () => null;
|
||||
emptyArray: () => never[];
|
||||
false: () => boolean;
|
||||
true: () => boolean;
|
||||
undefined: () => void;
|
||||
"use strict": () => string;
|
||||
};
|
||||
isPrimitive: import("./types").Type<unknown>;
|
||||
};
|
||||
47
node_modules/ast-types/lib/shared.js
generated
vendored
Normal file
47
node_modules/ast-types/lib/shared.js
generated
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
"use strict";;
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var tslib_1 = require("tslib");
|
||||
var types_1 = tslib_1.__importDefault(require("./types"));
|
||||
function default_1(fork) {
|
||||
var types = fork.use(types_1.default);
|
||||
var Type = types.Type;
|
||||
var builtin = types.builtInTypes;
|
||||
var isNumber = builtin.number;
|
||||
// An example of constructing a new type with arbitrary constraints from
|
||||
// an existing type.
|
||||
function geq(than) {
|
||||
return Type.from(function (value) { return isNumber.check(value) && value >= than; }, isNumber + " >= " + than);
|
||||
}
|
||||
;
|
||||
// Default value-returning functions that may optionally be passed as a
|
||||
// third argument to Def.prototype.field.
|
||||
var defaults = {
|
||||
// Functions were used because (among other reasons) that's the most
|
||||
// elegant way to allow for the emptyArray one always to give a new
|
||||
// array instance.
|
||||
"null": function () { return null; },
|
||||
"emptyArray": function () { return []; },
|
||||
"false": function () { return false; },
|
||||
"true": function () { return true; },
|
||||
"undefined": function () { },
|
||||
"use strict": function () { return "use strict"; }
|
||||
};
|
||||
var naiveIsPrimitive = Type.or(builtin.string, builtin.number, builtin.boolean, builtin.null, builtin.undefined);
|
||||
var isPrimitive = Type.from(function (value) {
|
||||
if (value === null)
|
||||
return true;
|
||||
var type = typeof value;
|
||||
if (type === "object" ||
|
||||
type === "function") {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}, naiveIsPrimitive.toString());
|
||||
return {
|
||||
geq: geq,
|
||||
defaults: defaults,
|
||||
isPrimitive: isPrimitive,
|
||||
};
|
||||
}
|
||||
exports.default = default_1;
|
||||
module.exports = exports["default"];
|
||||
136
node_modules/ast-types/lib/types.d.ts
generated
vendored
Normal file
136
node_modules/ast-types/lib/types.d.ts
generated
vendored
Normal file
@@ -0,0 +1,136 @@
|
||||
import { Fork } from "../types";
|
||||
declare type Deep = boolean | ((type: Type<any>, value: any) => void);
|
||||
export declare type Type<T> = ArrayType<T> | IdentityType<T> | ObjectType<T> | OrType<T> | PredicateType<T>;
|
||||
export interface AnyType {
|
||||
toString(): string;
|
||||
check(value: any, deep?: Deep): boolean;
|
||||
assert(value: any, deep?: Deep): boolean;
|
||||
arrayOf(): AnyType;
|
||||
}
|
||||
declare abstract class BaseType<T> {
|
||||
abstract toString(): string;
|
||||
abstract check(value: any, deep?: Deep): value is T;
|
||||
assert(value: any, deep?: Deep): value is T;
|
||||
arrayOf(): Type<T[]>;
|
||||
}
|
||||
declare class ArrayType<T> extends BaseType<T> {
|
||||
readonly elemType: Type<T extends (infer E)[] ? E : never>;
|
||||
readonly kind: "ArrayType";
|
||||
constructor(elemType: Type<T extends (infer E)[] ? E : never>);
|
||||
toString(): string;
|
||||
check(value: any, deep?: Deep): value is T;
|
||||
}
|
||||
declare class IdentityType<T> extends BaseType<T> {
|
||||
readonly value: T;
|
||||
readonly kind: "IdentityType";
|
||||
constructor(value: T);
|
||||
toString(): string;
|
||||
check(value: any, deep?: Deep): value is T;
|
||||
}
|
||||
declare class ObjectType<T> extends BaseType<T> {
|
||||
readonly fields: Field<any>[];
|
||||
readonly kind: "ObjectType";
|
||||
constructor(fields: Field<any>[]);
|
||||
toString(): string;
|
||||
check(value: any, deep?: Deep): value is T;
|
||||
}
|
||||
declare class OrType<T> extends BaseType<T> {
|
||||
readonly types: Type<any>[];
|
||||
readonly kind: "OrType";
|
||||
constructor(types: Type<any>[]);
|
||||
toString(): string;
|
||||
check(value: any, deep?: Deep): value is T;
|
||||
}
|
||||
declare class PredicateType<T> extends BaseType<T> {
|
||||
readonly name: string;
|
||||
readonly predicate: (value: any, deep?: Deep) => boolean;
|
||||
readonly kind: "PredicateType";
|
||||
constructor(name: string, predicate: (value: any, deep?: Deep) => boolean);
|
||||
toString(): string;
|
||||
check(value: any, deep?: Deep): value is T;
|
||||
}
|
||||
export declare abstract class Def<T = any> {
|
||||
readonly type: Type<T>;
|
||||
readonly typeName: string;
|
||||
baseNames: string[];
|
||||
ownFields: {
|
||||
[name: string]: Field<any>;
|
||||
};
|
||||
allSupertypes: {
|
||||
[name: string]: Def<any>;
|
||||
};
|
||||
supertypeList: string[];
|
||||
allFields: {
|
||||
[name: string]: Field<any>;
|
||||
};
|
||||
fieldNames: string[];
|
||||
finalized: boolean;
|
||||
buildable: boolean;
|
||||
buildParams: string[];
|
||||
constructor(type: Type<T>, typeName: string);
|
||||
isSupertypeOf(that: Def<any>): boolean;
|
||||
checkAllFields(value: any, deep?: any): boolean;
|
||||
abstract check(value: any, deep?: any): boolean;
|
||||
bases(...supertypeNames: string[]): this;
|
||||
abstract build(...buildParams: string[]): this;
|
||||
abstract field(name: string, type: any, defaultFn?: Function, hidden?: boolean): this;
|
||||
abstract finalize(): void;
|
||||
}
|
||||
declare class Field<T> {
|
||||
readonly name: string;
|
||||
readonly type: Type<T>;
|
||||
readonly defaultFn?: Function | undefined;
|
||||
readonly hidden: boolean;
|
||||
constructor(name: string, type: Type<T>, defaultFn?: Function | undefined, hidden?: boolean);
|
||||
toString(): string;
|
||||
getValue(obj: {
|
||||
[key: string]: any;
|
||||
}): any;
|
||||
}
|
||||
declare type FieldType<T> = Field<T>;
|
||||
export { FieldType as Field };
|
||||
export interface ASTNode {
|
||||
type: string;
|
||||
}
|
||||
export interface Builder {
|
||||
(...args: any[]): ASTNode;
|
||||
from(obj: {
|
||||
[param: string]: any;
|
||||
}): ASTNode;
|
||||
}
|
||||
export default function typesPlugin(_fork: Fork): {
|
||||
Type: {
|
||||
or(...types: any[]): Type<any>;
|
||||
from<T>(value: any, name?: string | undefined): Type<T>;
|
||||
def(typeName: string): Def;
|
||||
hasDef(typeName: string): boolean;
|
||||
};
|
||||
builtInTypes: {
|
||||
string: Type<string>;
|
||||
function: Type<Function>;
|
||||
array: Type<any[]>;
|
||||
object: Type<{
|
||||
[key: string]: any;
|
||||
}>;
|
||||
RegExp: Type<RegExp>;
|
||||
Date: Type<Date>;
|
||||
number: Type<number>;
|
||||
boolean: Type<boolean>;
|
||||
null: Type<null>;
|
||||
undefined: Type<undefined>;
|
||||
};
|
||||
getSupertypeNames: (typeName: string) => string[];
|
||||
computeSupertypeLookupTable: (candidates: any) => {
|
||||
[typeName: string]: any;
|
||||
};
|
||||
builders: import("../gen/builders").builders;
|
||||
defineMethod: (name: any, func?: Function | undefined) => Function;
|
||||
getBuilderName: (typeName: any) => any;
|
||||
getStatementBuilderName: (typeName: any) => any;
|
||||
namedTypes: import("../gen/namedTypes").NamedTypes;
|
||||
getFieldNames: (object: any) => string[];
|
||||
getFieldValue: (object: any, fieldName: any) => any;
|
||||
eachField: (object: any, callback: (name: any, value: any) => any, context?: any) => void;
|
||||
someField: (object: any, callback: (name: any, value: any) => any, context?: any) => boolean;
|
||||
finalize: () => void;
|
||||
};
|
||||
780
node_modules/ast-types/lib/types.js
generated
vendored
Normal file
780
node_modules/ast-types/lib/types.js
generated
vendored
Normal file
@@ -0,0 +1,780 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.Def = void 0;
|
||||
var tslib_1 = require("tslib");
|
||||
var Op = Object.prototype;
|
||||
var objToStr = Op.toString;
|
||||
var hasOwn = Op.hasOwnProperty;
|
||||
var BaseType = /** @class */ (function () {
|
||||
function BaseType() {
|
||||
}
|
||||
BaseType.prototype.assert = function (value, deep) {
|
||||
if (!this.check(value, deep)) {
|
||||
var str = shallowStringify(value);
|
||||
throw new Error(str + " does not match type " + this);
|
||||
}
|
||||
return true;
|
||||
};
|
||||
BaseType.prototype.arrayOf = function () {
|
||||
var elemType = this;
|
||||
return new ArrayType(elemType);
|
||||
};
|
||||
return BaseType;
|
||||
}());
|
||||
var ArrayType = /** @class */ (function (_super) {
|
||||
tslib_1.__extends(ArrayType, _super);
|
||||
function ArrayType(elemType) {
|
||||
var _this = _super.call(this) || this;
|
||||
_this.elemType = elemType;
|
||||
_this.kind = "ArrayType";
|
||||
return _this;
|
||||
}
|
||||
ArrayType.prototype.toString = function () {
|
||||
return "[" + this.elemType + "]";
|
||||
};
|
||||
ArrayType.prototype.check = function (value, deep) {
|
||||
var _this = this;
|
||||
return Array.isArray(value) && value.every(function (elem) { return _this.elemType.check(elem, deep); });
|
||||
};
|
||||
return ArrayType;
|
||||
}(BaseType));
|
||||
var IdentityType = /** @class */ (function (_super) {
|
||||
tslib_1.__extends(IdentityType, _super);
|
||||
function IdentityType(value) {
|
||||
var _this = _super.call(this) || this;
|
||||
_this.value = value;
|
||||
_this.kind = "IdentityType";
|
||||
return _this;
|
||||
}
|
||||
IdentityType.prototype.toString = function () {
|
||||
return String(this.value);
|
||||
};
|
||||
IdentityType.prototype.check = function (value, deep) {
|
||||
var result = value === this.value;
|
||||
if (!result && typeof deep === "function") {
|
||||
deep(this, value);
|
||||
}
|
||||
return result;
|
||||
};
|
||||
return IdentityType;
|
||||
}(BaseType));
|
||||
var ObjectType = /** @class */ (function (_super) {
|
||||
tslib_1.__extends(ObjectType, _super);
|
||||
function ObjectType(fields) {
|
||||
var _this = _super.call(this) || this;
|
||||
_this.fields = fields;
|
||||
_this.kind = "ObjectType";
|
||||
return _this;
|
||||
}
|
||||
ObjectType.prototype.toString = function () {
|
||||
return "{ " + this.fields.join(", ") + " }";
|
||||
};
|
||||
ObjectType.prototype.check = function (value, deep) {
|
||||
return (objToStr.call(value) === objToStr.call({}) &&
|
||||
this.fields.every(function (field) {
|
||||
return field.type.check(value[field.name], deep);
|
||||
}));
|
||||
};
|
||||
return ObjectType;
|
||||
}(BaseType));
|
||||
var OrType = /** @class */ (function (_super) {
|
||||
tslib_1.__extends(OrType, _super);
|
||||
function OrType(types) {
|
||||
var _this = _super.call(this) || this;
|
||||
_this.types = types;
|
||||
_this.kind = "OrType";
|
||||
return _this;
|
||||
}
|
||||
OrType.prototype.toString = function () {
|
||||
return this.types.join(" | ");
|
||||
};
|
||||
OrType.prototype.check = function (value, deep) {
|
||||
return this.types.some(function (type) {
|
||||
return type.check(value, deep);
|
||||
});
|
||||
};
|
||||
return OrType;
|
||||
}(BaseType));
|
||||
var PredicateType = /** @class */ (function (_super) {
|
||||
tslib_1.__extends(PredicateType, _super);
|
||||
function PredicateType(name, predicate) {
|
||||
var _this = _super.call(this) || this;
|
||||
_this.name = name;
|
||||
_this.predicate = predicate;
|
||||
_this.kind = "PredicateType";
|
||||
return _this;
|
||||
}
|
||||
PredicateType.prototype.toString = function () {
|
||||
return this.name;
|
||||
};
|
||||
PredicateType.prototype.check = function (value, deep) {
|
||||
var result = this.predicate(value, deep);
|
||||
if (!result && typeof deep === "function") {
|
||||
deep(this, value);
|
||||
}
|
||||
return result;
|
||||
};
|
||||
return PredicateType;
|
||||
}(BaseType));
|
||||
var Def = /** @class */ (function () {
|
||||
function Def(type, typeName) {
|
||||
this.type = type;
|
||||
this.typeName = typeName;
|
||||
this.baseNames = [];
|
||||
this.ownFields = Object.create(null);
|
||||
// Includes own typeName. Populated during finalization.
|
||||
this.allSupertypes = Object.create(null);
|
||||
// Linear inheritance hierarchy. Populated during finalization.
|
||||
this.supertypeList = [];
|
||||
// Includes inherited fields.
|
||||
this.allFields = Object.create(null);
|
||||
// Non-hidden keys of allFields.
|
||||
this.fieldNames = [];
|
||||
// This property will be overridden as true by individual Def instances
|
||||
// when they are finalized.
|
||||
this.finalized = false;
|
||||
// False by default until .build(...) is called on an instance.
|
||||
this.buildable = false;
|
||||
this.buildParams = [];
|
||||
}
|
||||
Def.prototype.isSupertypeOf = function (that) {
|
||||
if (that instanceof Def) {
|
||||
if (this.finalized !== true ||
|
||||
that.finalized !== true) {
|
||||
throw new Error("");
|
||||
}
|
||||
return hasOwn.call(that.allSupertypes, this.typeName);
|
||||
}
|
||||
else {
|
||||
throw new Error(that + " is not a Def");
|
||||
}
|
||||
};
|
||||
Def.prototype.checkAllFields = function (value, deep) {
|
||||
var allFields = this.allFields;
|
||||
if (this.finalized !== true) {
|
||||
throw new Error("" + this.typeName);
|
||||
}
|
||||
function checkFieldByName(name) {
|
||||
var field = allFields[name];
|
||||
var type = field.type;
|
||||
var child = field.getValue(value);
|
||||
return type.check(child, deep);
|
||||
}
|
||||
return value !== null &&
|
||||
typeof value === "object" &&
|
||||
Object.keys(allFields).every(checkFieldByName);
|
||||
};
|
||||
Def.prototype.bases = function () {
|
||||
var supertypeNames = [];
|
||||
for (var _i = 0; _i < arguments.length; _i++) {
|
||||
supertypeNames[_i] = arguments[_i];
|
||||
}
|
||||
var bases = this.baseNames;
|
||||
if (this.finalized) {
|
||||
if (supertypeNames.length !== bases.length) {
|
||||
throw new Error("");
|
||||
}
|
||||
for (var i = 0; i < supertypeNames.length; i++) {
|
||||
if (supertypeNames[i] !== bases[i]) {
|
||||
throw new Error("");
|
||||
}
|
||||
}
|
||||
return this;
|
||||
}
|
||||
supertypeNames.forEach(function (baseName) {
|
||||
// This indexOf lookup may be O(n), but the typical number of base
|
||||
// names is very small, and indexOf is a native Array method.
|
||||
if (bases.indexOf(baseName) < 0) {
|
||||
bases.push(baseName);
|
||||
}
|
||||
});
|
||||
return this; // For chaining.
|
||||
};
|
||||
return Def;
|
||||
}());
|
||||
exports.Def = Def;
|
||||
var Field = /** @class */ (function () {
|
||||
function Field(name, type, defaultFn, hidden) {
|
||||
this.name = name;
|
||||
this.type = type;
|
||||
this.defaultFn = defaultFn;
|
||||
this.hidden = !!hidden;
|
||||
}
|
||||
Field.prototype.toString = function () {
|
||||
return JSON.stringify(this.name) + ": " + this.type;
|
||||
};
|
||||
Field.prototype.getValue = function (obj) {
|
||||
var value = obj[this.name];
|
||||
if (typeof value !== "undefined") {
|
||||
return value;
|
||||
}
|
||||
if (typeof this.defaultFn === "function") {
|
||||
value = this.defaultFn.call(obj);
|
||||
}
|
||||
return value;
|
||||
};
|
||||
return Field;
|
||||
}());
|
||||
function shallowStringify(value) {
|
||||
if (Array.isArray(value)) {
|
||||
return "[" + value.map(shallowStringify).join(", ") + "]";
|
||||
}
|
||||
if (value && typeof value === "object") {
|
||||
return "{ " + Object.keys(value).map(function (key) {
|
||||
return key + ": " + value[key];
|
||||
}).join(", ") + " }";
|
||||
}
|
||||
return JSON.stringify(value);
|
||||
}
|
||||
function typesPlugin(_fork) {
|
||||
var Type = {
|
||||
or: function () {
|
||||
var types = [];
|
||||
for (var _i = 0; _i < arguments.length; _i++) {
|
||||
types[_i] = arguments[_i];
|
||||
}
|
||||
return new OrType(types.map(function (type) { return Type.from(type); }));
|
||||
},
|
||||
from: function (value, name) {
|
||||
if (value instanceof ArrayType ||
|
||||
value instanceof IdentityType ||
|
||||
value instanceof ObjectType ||
|
||||
value instanceof OrType ||
|
||||
value instanceof PredicateType) {
|
||||
return value;
|
||||
}
|
||||
// The Def type is used as a helper for constructing compound
|
||||
// interface types for AST nodes.
|
||||
if (value instanceof Def) {
|
||||
return value.type;
|
||||
}
|
||||
// Support [ElemType] syntax.
|
||||
if (isArray.check(value)) {
|
||||
if (value.length !== 1) {
|
||||
throw new Error("only one element type is permitted for typed arrays");
|
||||
}
|
||||
return new ArrayType(Type.from(value[0]));
|
||||
}
|
||||
// Support { someField: FieldType, ... } syntax.
|
||||
if (isObject.check(value)) {
|
||||
return new ObjectType(Object.keys(value).map(function (name) {
|
||||
return new Field(name, Type.from(value[name], name));
|
||||
}));
|
||||
}
|
||||
if (typeof value === "function") {
|
||||
var bicfIndex = builtInCtorFns.indexOf(value);
|
||||
if (bicfIndex >= 0) {
|
||||
return builtInCtorTypes[bicfIndex];
|
||||
}
|
||||
if (typeof name !== "string") {
|
||||
throw new Error("missing name");
|
||||
}
|
||||
return new PredicateType(name, value);
|
||||
}
|
||||
// As a last resort, toType returns a type that matches any value that
|
||||
// is === from. This is primarily useful for literal values like
|
||||
// toType(null), but it has the additional advantage of allowing
|
||||
// toType to be a total function.
|
||||
return new IdentityType(value);
|
||||
},
|
||||
// Define a type whose name is registered in a namespace (the defCache) so
|
||||
// that future definitions will return the same type given the same name.
|
||||
// In particular, this system allows for circular and forward definitions.
|
||||
// The Def object d returned from Type.def may be used to configure the
|
||||
// type d.type by calling methods such as d.bases, d.build, and d.field.
|
||||
def: function (typeName) {
|
||||
return hasOwn.call(defCache, typeName)
|
||||
? defCache[typeName]
|
||||
: defCache[typeName] = new DefImpl(typeName);
|
||||
},
|
||||
hasDef: function (typeName) {
|
||||
return hasOwn.call(defCache, typeName);
|
||||
}
|
||||
};
|
||||
var builtInCtorFns = [];
|
||||
var builtInCtorTypes = [];
|
||||
function defBuiltInType(name, example) {
|
||||
var objStr = objToStr.call(example);
|
||||
var type = new PredicateType(name, function (value) { return objToStr.call(value) === objStr; });
|
||||
if (example && typeof example.constructor === "function") {
|
||||
builtInCtorFns.push(example.constructor);
|
||||
builtInCtorTypes.push(type);
|
||||
}
|
||||
return type;
|
||||
}
|
||||
// These types check the underlying [[Class]] attribute of the given
|
||||
// value, rather than using the problematic typeof operator. Note however
|
||||
// that no subtyping is considered; so, for instance, isObject.check
|
||||
// returns false for [], /./, new Date, and null.
|
||||
var isString = defBuiltInType("string", "truthy");
|
||||
var isFunction = defBuiltInType("function", function () { });
|
||||
var isArray = defBuiltInType("array", []);
|
||||
var isObject = defBuiltInType("object", {});
|
||||
var isRegExp = defBuiltInType("RegExp", /./);
|
||||
var isDate = defBuiltInType("Date", new Date());
|
||||
var isNumber = defBuiltInType("number", 3);
|
||||
var isBoolean = defBuiltInType("boolean", true);
|
||||
var isNull = defBuiltInType("null", null);
|
||||
var isUndefined = defBuiltInType("undefined", undefined);
|
||||
var builtInTypes = {
|
||||
string: isString,
|
||||
function: isFunction,
|
||||
array: isArray,
|
||||
object: isObject,
|
||||
RegExp: isRegExp,
|
||||
Date: isDate,
|
||||
number: isNumber,
|
||||
boolean: isBoolean,
|
||||
null: isNull,
|
||||
undefined: isUndefined,
|
||||
};
|
||||
// In order to return the same Def instance every time Type.def is called
|
||||
// with a particular name, those instances need to be stored in a cache.
|
||||
var defCache = Object.create(null);
|
||||
function defFromValue(value) {
|
||||
if (value && typeof value === "object") {
|
||||
var type = value.type;
|
||||
if (typeof type === "string" &&
|
||||
hasOwn.call(defCache, type)) {
|
||||
var d = defCache[type];
|
||||
if (d.finalized) {
|
||||
return d;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
var DefImpl = /** @class */ (function (_super) {
|
||||
tslib_1.__extends(DefImpl, _super);
|
||||
function DefImpl(typeName) {
|
||||
var _this = _super.call(this, new PredicateType(typeName, function (value, deep) { return _this.check(value, deep); }), typeName) || this;
|
||||
return _this;
|
||||
}
|
||||
DefImpl.prototype.check = function (value, deep) {
|
||||
if (this.finalized !== true) {
|
||||
throw new Error("prematurely checking unfinalized type " + this.typeName);
|
||||
}
|
||||
// A Def type can only match an object value.
|
||||
if (value === null || typeof value !== "object") {
|
||||
return false;
|
||||
}
|
||||
var vDef = defFromValue(value);
|
||||
if (!vDef) {
|
||||
// If we couldn't infer the Def associated with the given value,
|
||||
// and we expected it to be a SourceLocation or a Position, it was
|
||||
// probably just missing a "type" field (because Esprima does not
|
||||
// assign a type property to such nodes). Be optimistic and let
|
||||
// this.checkAllFields make the final decision.
|
||||
if (this.typeName === "SourceLocation" ||
|
||||
this.typeName === "Position") {
|
||||
return this.checkAllFields(value, deep);
|
||||
}
|
||||
// Calling this.checkAllFields for any other type of node is both
|
||||
// bad for performance and way too forgiving.
|
||||
return false;
|
||||
}
|
||||
// If checking deeply and vDef === this, then we only need to call
|
||||
// checkAllFields once. Calling checkAllFields is too strict when deep
|
||||
// is false, because then we only care about this.isSupertypeOf(vDef).
|
||||
if (deep && vDef === this) {
|
||||
return this.checkAllFields(value, deep);
|
||||
}
|
||||
// In most cases we rely exclusively on isSupertypeOf to make O(1)
|
||||
// subtyping determinations. This suffices in most situations outside
|
||||
// of unit tests, since interface conformance is checked whenever new
|
||||
// instances are created using builder functions.
|
||||
if (!this.isSupertypeOf(vDef)) {
|
||||
return false;
|
||||
}
|
||||
// The exception is when deep is true; then, we recursively check all
|
||||
// fields.
|
||||
if (!deep) {
|
||||
return true;
|
||||
}
|
||||
// Use the more specific Def (vDef) to perform the deep check, but
|
||||
// shallow-check fields defined by the less specific Def (this).
|
||||
return vDef.checkAllFields(value, deep)
|
||||
&& this.checkAllFields(value, false);
|
||||
};
|
||||
DefImpl.prototype.build = function () {
|
||||
var _this = this;
|
||||
var buildParams = [];
|
||||
for (var _i = 0; _i < arguments.length; _i++) {
|
||||
buildParams[_i] = arguments[_i];
|
||||
}
|
||||
// Calling Def.prototype.build multiple times has the effect of merely
|
||||
// redefining this property.
|
||||
this.buildParams = buildParams;
|
||||
if (this.buildable) {
|
||||
// If this Def is already buildable, update self.buildParams and
|
||||
// continue using the old builder function.
|
||||
return this;
|
||||
}
|
||||
// Every buildable type will have its "type" field filled in
|
||||
// automatically. This includes types that are not subtypes of Node,
|
||||
// like SourceLocation, but that seems harmless (TODO?).
|
||||
this.field("type", String, function () { return _this.typeName; });
|
||||
// Override Dp.buildable for this Def instance.
|
||||
this.buildable = true;
|
||||
var addParam = function (built, param, arg, isArgAvailable) {
|
||||
if (hasOwn.call(built, param))
|
||||
return;
|
||||
var all = _this.allFields;
|
||||
if (!hasOwn.call(all, param)) {
|
||||
throw new Error("" + param);
|
||||
}
|
||||
var field = all[param];
|
||||
var type = field.type;
|
||||
var value;
|
||||
if (isArgAvailable) {
|
||||
value = arg;
|
||||
}
|
||||
else if (field.defaultFn) {
|
||||
// Expose the partially-built object to the default
|
||||
// function as its `this` object.
|
||||
value = field.defaultFn.call(built);
|
||||
}
|
||||
else {
|
||||
var message = "no value or default function given for field " +
|
||||
JSON.stringify(param) + " of " + _this.typeName + "(" +
|
||||
_this.buildParams.map(function (name) {
|
||||
return all[name];
|
||||
}).join(", ") + ")";
|
||||
throw new Error(message);
|
||||
}
|
||||
if (!type.check(value)) {
|
||||
throw new Error(shallowStringify(value) +
|
||||
" does not match field " + field +
|
||||
" of type " + _this.typeName);
|
||||
}
|
||||
built[param] = value;
|
||||
};
|
||||
// Calling the builder function will construct an instance of the Def,
|
||||
// with positional arguments mapped to the fields original passed to .build.
|
||||
// If not enough arguments are provided, the default value for the remaining fields
|
||||
// will be used.
|
||||
var builder = function () {
|
||||
var args = [];
|
||||
for (var _i = 0; _i < arguments.length; _i++) {
|
||||
args[_i] = arguments[_i];
|
||||
}
|
||||
var argc = args.length;
|
||||
if (!_this.finalized) {
|
||||
throw new Error("attempting to instantiate unfinalized type " +
|
||||
_this.typeName);
|
||||
}
|
||||
var built = Object.create(nodePrototype);
|
||||
_this.buildParams.forEach(function (param, i) {
|
||||
if (i < argc) {
|
||||
addParam(built, param, args[i], true);
|
||||
}
|
||||
else {
|
||||
addParam(built, param, null, false);
|
||||
}
|
||||
});
|
||||
Object.keys(_this.allFields).forEach(function (param) {
|
||||
// Use the default value.
|
||||
addParam(built, param, null, false);
|
||||
});
|
||||
// Make sure that the "type" field was filled automatically.
|
||||
if (built.type !== _this.typeName) {
|
||||
throw new Error("");
|
||||
}
|
||||
return built;
|
||||
};
|
||||
// Calling .from on the builder function will construct an instance of the Def,
|
||||
// using field values from the passed object. For fields missing from the passed object,
|
||||
// their default value will be used.
|
||||
builder.from = function (obj) {
|
||||
if (!_this.finalized) {
|
||||
throw new Error("attempting to instantiate unfinalized type " +
|
||||
_this.typeName);
|
||||
}
|
||||
var built = Object.create(nodePrototype);
|
||||
Object.keys(_this.allFields).forEach(function (param) {
|
||||
if (hasOwn.call(obj, param)) {
|
||||
addParam(built, param, obj[param], true);
|
||||
}
|
||||
else {
|
||||
addParam(built, param, null, false);
|
||||
}
|
||||
});
|
||||
// Make sure that the "type" field was filled automatically.
|
||||
if (built.type !== _this.typeName) {
|
||||
throw new Error("");
|
||||
}
|
||||
return built;
|
||||
};
|
||||
Object.defineProperty(builders, getBuilderName(this.typeName), {
|
||||
enumerable: true,
|
||||
value: builder
|
||||
});
|
||||
return this;
|
||||
};
|
||||
// The reason fields are specified using .field(...) instead of an object
|
||||
// literal syntax is somewhat subtle: the object literal syntax would
|
||||
// support only one key and one value, but with .field(...) we can pass
|
||||
// any number of arguments to specify the field.
|
||||
DefImpl.prototype.field = function (name, type, defaultFn, hidden) {
|
||||
if (this.finalized) {
|
||||
console.error("Ignoring attempt to redefine field " +
|
||||
JSON.stringify(name) + " of finalized type " +
|
||||
JSON.stringify(this.typeName));
|
||||
return this;
|
||||
}
|
||||
this.ownFields[name] = new Field(name, Type.from(type), defaultFn, hidden);
|
||||
return this; // For chaining.
|
||||
};
|
||||
DefImpl.prototype.finalize = function () {
|
||||
var _this = this;
|
||||
// It's not an error to finalize a type more than once, but only the
|
||||
// first call to .finalize does anything.
|
||||
if (!this.finalized) {
|
||||
var allFields = this.allFields;
|
||||
var allSupertypes = this.allSupertypes;
|
||||
this.baseNames.forEach(function (name) {
|
||||
var def = defCache[name];
|
||||
if (def instanceof Def) {
|
||||
def.finalize();
|
||||
extend(allFields, def.allFields);
|
||||
extend(allSupertypes, def.allSupertypes);
|
||||
}
|
||||
else {
|
||||
var message = "unknown supertype name " +
|
||||
JSON.stringify(name) +
|
||||
" for subtype " +
|
||||
JSON.stringify(_this.typeName);
|
||||
throw new Error(message);
|
||||
}
|
||||
});
|
||||
// TODO Warn if fields are overridden with incompatible types.
|
||||
extend(allFields, this.ownFields);
|
||||
allSupertypes[this.typeName] = this;
|
||||
this.fieldNames.length = 0;
|
||||
for (var fieldName in allFields) {
|
||||
if (hasOwn.call(allFields, fieldName) &&
|
||||
!allFields[fieldName].hidden) {
|
||||
this.fieldNames.push(fieldName);
|
||||
}
|
||||
}
|
||||
// Types are exported only once they have been finalized.
|
||||
Object.defineProperty(namedTypes, this.typeName, {
|
||||
enumerable: true,
|
||||
value: this.type
|
||||
});
|
||||
this.finalized = true;
|
||||
// A linearization of the inheritance hierarchy.
|
||||
populateSupertypeList(this.typeName, this.supertypeList);
|
||||
if (this.buildable &&
|
||||
this.supertypeList.lastIndexOf("Expression") >= 0) {
|
||||
wrapExpressionBuilderWithStatement(this.typeName);
|
||||
}
|
||||
}
|
||||
};
|
||||
return DefImpl;
|
||||
}(Def));
|
||||
// Note that the list returned by this function is a copy of the internal
|
||||
// supertypeList, *without* the typeName itself as the first element.
|
||||
function getSupertypeNames(typeName) {
|
||||
if (!hasOwn.call(defCache, typeName)) {
|
||||
throw new Error("");
|
||||
}
|
||||
var d = defCache[typeName];
|
||||
if (d.finalized !== true) {
|
||||
throw new Error("");
|
||||
}
|
||||
return d.supertypeList.slice(1);
|
||||
}
|
||||
// Returns an object mapping from every known type in the defCache to the
|
||||
// most specific supertype whose name is an own property of the candidates
|
||||
// object.
|
||||
function computeSupertypeLookupTable(candidates) {
|
||||
var table = {};
|
||||
var typeNames = Object.keys(defCache);
|
||||
var typeNameCount = typeNames.length;
|
||||
for (var i = 0; i < typeNameCount; ++i) {
|
||||
var typeName = typeNames[i];
|
||||
var d = defCache[typeName];
|
||||
if (d.finalized !== true) {
|
||||
throw new Error("" + typeName);
|
||||
}
|
||||
for (var j = 0; j < d.supertypeList.length; ++j) {
|
||||
var superTypeName = d.supertypeList[j];
|
||||
if (hasOwn.call(candidates, superTypeName)) {
|
||||
table[typeName] = superTypeName;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return table;
|
||||
}
|
||||
var builders = Object.create(null);
|
||||
// This object is used as prototype for any node created by a builder.
|
||||
var nodePrototype = {};
|
||||
// Call this function to define a new method to be shared by all AST
|
||||
// nodes. The replaced method (if any) is returned for easy wrapping.
|
||||
function defineMethod(name, func) {
|
||||
var old = nodePrototype[name];
|
||||
// Pass undefined as func to delete nodePrototype[name].
|
||||
if (isUndefined.check(func)) {
|
||||
delete nodePrototype[name];
|
||||
}
|
||||
else {
|
||||
isFunction.assert(func);
|
||||
Object.defineProperty(nodePrototype, name, {
|
||||
enumerable: true,
|
||||
configurable: true,
|
||||
value: func
|
||||
});
|
||||
}
|
||||
return old;
|
||||
}
|
||||
function getBuilderName(typeName) {
|
||||
return typeName.replace(/^[A-Z]+/, function (upperCasePrefix) {
|
||||
var len = upperCasePrefix.length;
|
||||
switch (len) {
|
||||
case 0: return "";
|
||||
// If there's only one initial capital letter, just lower-case it.
|
||||
case 1: return upperCasePrefix.toLowerCase();
|
||||
default:
|
||||
// If there's more than one initial capital letter, lower-case
|
||||
// all but the last one, so that XMLDefaultDeclaration (for
|
||||
// example) becomes xmlDefaultDeclaration.
|
||||
return upperCasePrefix.slice(0, len - 1).toLowerCase() +
|
||||
upperCasePrefix.charAt(len - 1);
|
||||
}
|
||||
});
|
||||
}
|
||||
function getStatementBuilderName(typeName) {
|
||||
typeName = getBuilderName(typeName);
|
||||
return typeName.replace(/(Expression)?$/, "Statement");
|
||||
}
|
||||
var namedTypes = {};
|
||||
// Like Object.keys, but aware of what fields each AST type should have.
|
||||
function getFieldNames(object) {
|
||||
var d = defFromValue(object);
|
||||
if (d) {
|
||||
return d.fieldNames.slice(0);
|
||||
}
|
||||
if ("type" in object) {
|
||||
throw new Error("did not recognize object of type " +
|
||||
JSON.stringify(object.type));
|
||||
}
|
||||
return Object.keys(object);
|
||||
}
|
||||
// Get the value of an object property, taking object.type and default
|
||||
// functions into account.
|
||||
function getFieldValue(object, fieldName) {
|
||||
var d = defFromValue(object);
|
||||
if (d) {
|
||||
var field = d.allFields[fieldName];
|
||||
if (field) {
|
||||
return field.getValue(object);
|
||||
}
|
||||
}
|
||||
return object && object[fieldName];
|
||||
}
|
||||
// Iterate over all defined fields of an object, including those missing
|
||||
// or undefined, passing each field name and effective value (as returned
|
||||
// by getFieldValue) to the callback. If the object has no corresponding
|
||||
// Def, the callback will never be called.
|
||||
function eachField(object, callback, context) {
|
||||
getFieldNames(object).forEach(function (name) {
|
||||
callback.call(this, name, getFieldValue(object, name));
|
||||
}, context);
|
||||
}
|
||||
// Similar to eachField, except that iteration stops as soon as the
|
||||
// callback returns a truthy value. Like Array.prototype.some, the final
|
||||
// result is either true or false to indicates whether the callback
|
||||
// returned true for any element or not.
|
||||
function someField(object, callback, context) {
|
||||
return getFieldNames(object).some(function (name) {
|
||||
return callback.call(this, name, getFieldValue(object, name));
|
||||
}, context);
|
||||
}
|
||||
// Adds an additional builder for Expression subtypes
|
||||
// that wraps the built Expression in an ExpressionStatements.
|
||||
function wrapExpressionBuilderWithStatement(typeName) {
|
||||
var wrapperName = getStatementBuilderName(typeName);
|
||||
// skip if the builder already exists
|
||||
if (builders[wrapperName])
|
||||
return;
|
||||
// the builder function to wrap with builders.ExpressionStatement
|
||||
var wrapped = builders[getBuilderName(typeName)];
|
||||
// skip if there is nothing to wrap
|
||||
if (!wrapped)
|
||||
return;
|
||||
var builder = function () {
|
||||
var args = [];
|
||||
for (var _i = 0; _i < arguments.length; _i++) {
|
||||
args[_i] = arguments[_i];
|
||||
}
|
||||
return builders.expressionStatement(wrapped.apply(builders, args));
|
||||
};
|
||||
builder.from = function () {
|
||||
var args = [];
|
||||
for (var _i = 0; _i < arguments.length; _i++) {
|
||||
args[_i] = arguments[_i];
|
||||
}
|
||||
return builders.expressionStatement(wrapped.from.apply(builders, args));
|
||||
};
|
||||
builders[wrapperName] = builder;
|
||||
}
|
||||
function populateSupertypeList(typeName, list) {
|
||||
list.length = 0;
|
||||
list.push(typeName);
|
||||
var lastSeen = Object.create(null);
|
||||
for (var pos = 0; pos < list.length; ++pos) {
|
||||
typeName = list[pos];
|
||||
var d = defCache[typeName];
|
||||
if (d.finalized !== true) {
|
||||
throw new Error("");
|
||||
}
|
||||
// If we saw typeName earlier in the breadth-first traversal,
|
||||
// delete the last-seen occurrence.
|
||||
if (hasOwn.call(lastSeen, typeName)) {
|
||||
delete list[lastSeen[typeName]];
|
||||
}
|
||||
// Record the new index of the last-seen occurrence of typeName.
|
||||
lastSeen[typeName] = pos;
|
||||
// Enqueue the base names of this type.
|
||||
list.push.apply(list, d.baseNames);
|
||||
}
|
||||
// Compaction loop to remove array holes.
|
||||
for (var to = 0, from = to, len = list.length; from < len; ++from) {
|
||||
if (hasOwn.call(list, from)) {
|
||||
list[to++] = list[from];
|
||||
}
|
||||
}
|
||||
list.length = to;
|
||||
}
|
||||
function extend(into, from) {
|
||||
Object.keys(from).forEach(function (name) {
|
||||
into[name] = from[name];
|
||||
});
|
||||
return into;
|
||||
}
|
||||
function finalize() {
|
||||
Object.keys(defCache).forEach(function (name) {
|
||||
defCache[name].finalize();
|
||||
});
|
||||
}
|
||||
return {
|
||||
Type: Type,
|
||||
builtInTypes: builtInTypes,
|
||||
getSupertypeNames: getSupertypeNames,
|
||||
computeSupertypeLookupTable: computeSupertypeLookupTable,
|
||||
builders: builders,
|
||||
defineMethod: defineMethod,
|
||||
getBuilderName: getBuilderName,
|
||||
getStatementBuilderName: getStatementBuilderName,
|
||||
namedTypes: namedTypes,
|
||||
getFieldNames: getFieldNames,
|
||||
getFieldValue: getFieldValue,
|
||||
eachField: eachField,
|
||||
someField: someField,
|
||||
finalize: finalize,
|
||||
};
|
||||
}
|
||||
exports.default = typesPlugin;
|
||||
;
|
||||
28
node_modules/ast-types/main.d.ts
generated
vendored
Normal file
28
node_modules/ast-types/main.d.ts
generated
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
import { ASTNode, Type, AnyType, Field } from "./lib/types";
|
||||
import { NodePath } from "./lib/node-path";
|
||||
import { namedTypes } from "./gen/namedTypes";
|
||||
import { builders } from "./gen/builders";
|
||||
import { Visitor } from "./gen/visitor";
|
||||
declare const astNodesAreEquivalent: {
|
||||
(a: any, b: any, problemPath?: any): boolean;
|
||||
assert(a: any, b: any): void;
|
||||
}, builders: builders, builtInTypes: {
|
||||
string: Type<string>;
|
||||
function: Type<Function>;
|
||||
array: Type<any[]>;
|
||||
object: Type<{
|
||||
[key: string]: any;
|
||||
}>;
|
||||
RegExp: Type<RegExp>;
|
||||
Date: Type<Date>;
|
||||
number: Type<number>;
|
||||
boolean: Type<boolean>;
|
||||
null: Type<null>;
|
||||
undefined: Type<undefined>;
|
||||
}, defineMethod: (name: any, func?: Function | undefined) => Function, eachField: (object: any, callback: (name: any, value: any) => any, context?: any) => void, finalize: () => void, getBuilderName: (typeName: any) => any, getFieldNames: (object: any) => string[], getFieldValue: (object: any, fieldName: any) => any, getSupertypeNames: (typeName: string) => string[], NodePath: import("./lib/node-path").NodePathConstructor, Path: import("./lib/path").PathConstructor, PathVisitor: import("./lib/path-visitor").PathVisitorConstructor, someField: (object: any, callback: (name: any, value: any) => any, context?: any) => boolean, Type: {
|
||||
or(...types: any[]): Type<any>;
|
||||
from<T>(value: any, name?: string | undefined): Type<T>;
|
||||
def(typeName: string): import("./lib/types").Def<any>;
|
||||
hasDef(typeName: string): boolean;
|
||||
}, use: <T>(plugin: import("./types").Plugin<T>) => T, visit: <M = {}>(node: ASTNode, methods?: Visitor<M> | undefined) => any;
|
||||
export { AnyType, ASTNode, astNodesAreEquivalent, builders, builtInTypes, defineMethod, eachField, Field, finalize, getBuilderName, getFieldNames, getFieldValue, getSupertypeNames, namedTypes, NodePath, Path, PathVisitor, someField, Type, use, visit, Visitor, };
|
||||
53
node_modules/ast-types/main.js
generated
vendored
Normal file
53
node_modules/ast-types/main.js
generated
vendored
Normal file
@@ -0,0 +1,53 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.visit = exports.use = exports.Type = exports.someField = exports.PathVisitor = exports.Path = exports.NodePath = exports.namedTypes = exports.getSupertypeNames = exports.getFieldValue = exports.getFieldNames = exports.getBuilderName = exports.finalize = exports.eachField = exports.defineMethod = exports.builtInTypes = exports.builders = exports.astNodesAreEquivalent = void 0;
|
||||
var tslib_1 = require("tslib");
|
||||
var fork_1 = tslib_1.__importDefault(require("./fork"));
|
||||
var core_1 = tslib_1.__importDefault(require("./def/core"));
|
||||
var es6_1 = tslib_1.__importDefault(require("./def/es6"));
|
||||
var es7_1 = tslib_1.__importDefault(require("./def/es7"));
|
||||
var es2020_1 = tslib_1.__importDefault(require("./def/es2020"));
|
||||
var jsx_1 = tslib_1.__importDefault(require("./def/jsx"));
|
||||
var flow_1 = tslib_1.__importDefault(require("./def/flow"));
|
||||
var esprima_1 = tslib_1.__importDefault(require("./def/esprima"));
|
||||
var babel_1 = tslib_1.__importDefault(require("./def/babel"));
|
||||
var typescript_1 = tslib_1.__importDefault(require("./def/typescript"));
|
||||
var es_proposals_1 = tslib_1.__importDefault(require("./def/es-proposals"));
|
||||
var namedTypes_1 = require("./gen/namedTypes");
|
||||
Object.defineProperty(exports, "namedTypes", { enumerable: true, get: function () { return namedTypes_1.namedTypes; } });
|
||||
var _a = fork_1.default([
|
||||
// This core module of AST types captures ES5 as it is parsed today by
|
||||
// git://github.com/ariya/esprima.git#master.
|
||||
core_1.default,
|
||||
// Feel free to add to or remove from this list of extension modules to
|
||||
// configure the precise type hierarchy that you need.
|
||||
es6_1.default,
|
||||
es7_1.default,
|
||||
es2020_1.default,
|
||||
jsx_1.default,
|
||||
flow_1.default,
|
||||
esprima_1.default,
|
||||
babel_1.default,
|
||||
typescript_1.default,
|
||||
es_proposals_1.default,
|
||||
]), astNodesAreEquivalent = _a.astNodesAreEquivalent, builders = _a.builders, builtInTypes = _a.builtInTypes, defineMethod = _a.defineMethod, eachField = _a.eachField, finalize = _a.finalize, getBuilderName = _a.getBuilderName, getFieldNames = _a.getFieldNames, getFieldValue = _a.getFieldValue, getSupertypeNames = _a.getSupertypeNames, n = _a.namedTypes, NodePath = _a.NodePath, Path = _a.Path, PathVisitor = _a.PathVisitor, someField = _a.someField, Type = _a.Type, use = _a.use, visit = _a.visit;
|
||||
exports.astNodesAreEquivalent = astNodesAreEquivalent;
|
||||
exports.builders = builders;
|
||||
exports.builtInTypes = builtInTypes;
|
||||
exports.defineMethod = defineMethod;
|
||||
exports.eachField = eachField;
|
||||
exports.finalize = finalize;
|
||||
exports.getBuilderName = getBuilderName;
|
||||
exports.getFieldNames = getFieldNames;
|
||||
exports.getFieldValue = getFieldValue;
|
||||
exports.getSupertypeNames = getSupertypeNames;
|
||||
exports.NodePath = NodePath;
|
||||
exports.Path = Path;
|
||||
exports.PathVisitor = PathVisitor;
|
||||
exports.someField = someField;
|
||||
exports.Type = Type;
|
||||
exports.use = use;
|
||||
exports.visit = visit;
|
||||
// Populate the exported fields of the namedTypes namespace, while still
|
||||
// retaining its member types.
|
||||
Object.assign(namedTypes_1.namedTypes, n);
|
||||
15
node_modules/ast-types/node_modules/tslib/CopyrightNotice.txt
generated
vendored
Normal file
15
node_modules/ast-types/node_modules/tslib/CopyrightNotice.txt
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
/******************************************************************************
|
||||
Copyright (c) Microsoft Corporation.
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
PERFORMANCE OF THIS SOFTWARE.
|
||||
***************************************************************************** */
|
||||
|
||||
12
node_modules/ast-types/node_modules/tslib/LICENSE.txt
generated
vendored
Normal file
12
node_modules/ast-types/node_modules/tslib/LICENSE.txt
generated
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
Copyright (c) Microsoft Corporation.
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
PERFORMANCE OF THIS SOFTWARE.
|
||||
164
node_modules/ast-types/node_modules/tslib/README.md
generated
vendored
Normal file
164
node_modules/ast-types/node_modules/tslib/README.md
generated
vendored
Normal file
@@ -0,0 +1,164 @@
|
||||
# tslib
|
||||
|
||||
This is a runtime library for [TypeScript](https://www.typescriptlang.org/) that contains all of the TypeScript helper functions.
|
||||
|
||||
This library is primarily used by the `--importHelpers` flag in TypeScript.
|
||||
When using `--importHelpers`, a module that uses helper functions like `__extends` and `__assign` in the following emitted file:
|
||||
|
||||
```ts
|
||||
var __assign = (this && this.__assign) || Object.assign || function(t) {
|
||||
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
||||
s = arguments[i];
|
||||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
||||
t[p] = s[p];
|
||||
}
|
||||
return t;
|
||||
};
|
||||
exports.x = {};
|
||||
exports.y = __assign({}, exports.x);
|
||||
|
||||
```
|
||||
|
||||
will instead be emitted as something like the following:
|
||||
|
||||
```ts
|
||||
var tslib_1 = require("tslib");
|
||||
exports.x = {};
|
||||
exports.y = tslib_1.__assign({}, exports.x);
|
||||
```
|
||||
|
||||
Because this can avoid duplicate declarations of things like `__extends`, `__assign`, etc., this means delivering users smaller files on average, as well as less runtime overhead.
|
||||
For optimized bundles with TypeScript, you should absolutely consider using `tslib` and `--importHelpers`.
|
||||
|
||||
# Installing
|
||||
|
||||
For the latest stable version, run:
|
||||
|
||||
## npm
|
||||
|
||||
```sh
|
||||
# TypeScript 3.9.2 or later
|
||||
npm install tslib
|
||||
|
||||
# TypeScript 3.8.4 or earlier
|
||||
npm install tslib@^1
|
||||
|
||||
# TypeScript 2.3.2 or earlier
|
||||
npm install tslib@1.6.1
|
||||
```
|
||||
|
||||
## yarn
|
||||
|
||||
```sh
|
||||
# TypeScript 3.9.2 or later
|
||||
yarn add tslib
|
||||
|
||||
# TypeScript 3.8.4 or earlier
|
||||
yarn add tslib@^1
|
||||
|
||||
# TypeScript 2.3.2 or earlier
|
||||
yarn add tslib@1.6.1
|
||||
```
|
||||
|
||||
## bower
|
||||
|
||||
```sh
|
||||
# TypeScript 3.9.2 or later
|
||||
bower install tslib
|
||||
|
||||
# TypeScript 3.8.4 or earlier
|
||||
bower install tslib@^1
|
||||
|
||||
# TypeScript 2.3.2 or earlier
|
||||
bower install tslib@1.6.1
|
||||
```
|
||||
|
||||
## JSPM
|
||||
|
||||
```sh
|
||||
# TypeScript 3.9.2 or later
|
||||
jspm install tslib
|
||||
|
||||
# TypeScript 3.8.4 or earlier
|
||||
jspm install tslib@^1
|
||||
|
||||
# TypeScript 2.3.2 or earlier
|
||||
jspm install tslib@1.6.1
|
||||
```
|
||||
|
||||
# Usage
|
||||
|
||||
Set the `importHelpers` compiler option on the command line:
|
||||
|
||||
```
|
||||
tsc --importHelpers file.ts
|
||||
```
|
||||
|
||||
or in your tsconfig.json:
|
||||
|
||||
```json
|
||||
{
|
||||
"compilerOptions": {
|
||||
"importHelpers": true
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### For bower and JSPM users
|
||||
|
||||
You will need to add a `paths` mapping for `tslib`, e.g. For Bower users:
|
||||
|
||||
```json
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "amd",
|
||||
"importHelpers": true,
|
||||
"baseUrl": "./",
|
||||
"paths": {
|
||||
"tslib" : ["bower_components/tslib/tslib.d.ts"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
For JSPM users:
|
||||
|
||||
```json
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "system",
|
||||
"importHelpers": true,
|
||||
"baseUrl": "./",
|
||||
"paths": {
|
||||
"tslib" : ["jspm_packages/npm/tslib@2.x.y/tslib.d.ts"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Deployment
|
||||
|
||||
- Choose your new version number
|
||||
- Set it in `package.json` and `bower.json`
|
||||
- Create a tag: `git tag [version]`
|
||||
- Push the tag: `git push --tags`
|
||||
- Create a [release in GitHub](https://github.com/microsoft/tslib/releases)
|
||||
- Run the [publish to npm](https://github.com/microsoft/tslib/actions?query=workflow%3A%22Publish+to+NPM%22) workflow
|
||||
|
||||
Done.
|
||||
|
||||
# Contribute
|
||||
|
||||
There are many ways to [contribute](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md) to TypeScript.
|
||||
|
||||
* [Submit bugs](https://github.com/Microsoft/TypeScript/issues) and help us verify fixes as they are checked in.
|
||||
* Review the [source code changes](https://github.com/Microsoft/TypeScript/pulls).
|
||||
* Engage with other TypeScript users and developers on [StackOverflow](http://stackoverflow.com/questions/tagged/typescript).
|
||||
* Join the [#typescript](http://twitter.com/#!/search/realtime/%23typescript) discussion on Twitter.
|
||||
* [Contribute bug fixes](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md).
|
||||
|
||||
# Documentation
|
||||
|
||||
* [Quick tutorial](http://www.typescriptlang.org/Tutorial)
|
||||
* [Programming handbook](http://www.typescriptlang.org/Handbook)
|
||||
* [Homepage](http://www.typescriptlang.org/)
|
||||
41
node_modules/ast-types/node_modules/tslib/SECURITY.md
generated
vendored
Normal file
41
node_modules/ast-types/node_modules/tslib/SECURITY.md
generated
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
<!-- BEGIN MICROSOFT SECURITY.MD V0.0.7 BLOCK -->
|
||||
|
||||
## Security
|
||||
|
||||
Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/).
|
||||
|
||||
If you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](https://aka.ms/opensource/security/definition), please report it to us as described below.
|
||||
|
||||
## Reporting Security Issues
|
||||
|
||||
**Please do not report security vulnerabilities through public GitHub issues.**
|
||||
|
||||
Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://aka.ms/opensource/security/create-report).
|
||||
|
||||
If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://aka.ms/opensource/security/pgpkey).
|
||||
|
||||
You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://aka.ms/opensource/security/msrc).
|
||||
|
||||
Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue:
|
||||
|
||||
* Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.)
|
||||
* Full paths of source file(s) related to the manifestation of the issue
|
||||
* The location of the affected source code (tag/branch/commit or direct URL)
|
||||
* Any special configuration required to reproduce the issue
|
||||
* Step-by-step instructions to reproduce the issue
|
||||
* Proof-of-concept or exploit code (if possible)
|
||||
* Impact of the issue, including how an attacker might exploit the issue
|
||||
|
||||
This information will help us triage your report more quickly.
|
||||
|
||||
If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://aka.ms/opensource/security/bounty) page for more details about our active programs.
|
||||
|
||||
## Preferred Languages
|
||||
|
||||
We prefer all communications to be in English.
|
||||
|
||||
## Policy
|
||||
|
||||
Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://aka.ms/opensource/security/cvd).
|
||||
|
||||
<!-- END MICROSOFT SECURITY.MD BLOCK -->
|
||||
38
node_modules/ast-types/node_modules/tslib/modules/index.d.ts
generated
vendored
Normal file
38
node_modules/ast-types/node_modules/tslib/modules/index.d.ts
generated
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
// Note: named reexports are used instead of `export *` because
|
||||
// TypeScript itself doesn't resolve the `export *` when checking
|
||||
// if a particular helper exists.
|
||||
export {
|
||||
__extends,
|
||||
__assign,
|
||||
__rest,
|
||||
__decorate,
|
||||
__param,
|
||||
__esDecorate,
|
||||
__runInitializers,
|
||||
__propKey,
|
||||
__setFunctionName,
|
||||
__metadata,
|
||||
__awaiter,
|
||||
__generator,
|
||||
__exportStar,
|
||||
__values,
|
||||
__read,
|
||||
__spread,
|
||||
__spreadArrays,
|
||||
__spreadArray,
|
||||
__await,
|
||||
__asyncGenerator,
|
||||
__asyncDelegator,
|
||||
__asyncValues,
|
||||
__makeTemplateObject,
|
||||
__importStar,
|
||||
__importDefault,
|
||||
__classPrivateFieldGet,
|
||||
__classPrivateFieldSet,
|
||||
__classPrivateFieldIn,
|
||||
__createBinding,
|
||||
__addDisposableResource,
|
||||
__disposeResources,
|
||||
__rewriteRelativeImportExtension,
|
||||
} from '../tslib.js';
|
||||
export * as default from '../tslib.js';
|
||||
70
node_modules/ast-types/node_modules/tslib/modules/index.js
generated
vendored
Normal file
70
node_modules/ast-types/node_modules/tslib/modules/index.js
generated
vendored
Normal file
@@ -0,0 +1,70 @@
|
||||
import tslib from '../tslib.js';
|
||||
const {
|
||||
__extends,
|
||||
__assign,
|
||||
__rest,
|
||||
__decorate,
|
||||
__param,
|
||||
__esDecorate,
|
||||
__runInitializers,
|
||||
__propKey,
|
||||
__setFunctionName,
|
||||
__metadata,
|
||||
__awaiter,
|
||||
__generator,
|
||||
__exportStar,
|
||||
__createBinding,
|
||||
__values,
|
||||
__read,
|
||||
__spread,
|
||||
__spreadArrays,
|
||||
__spreadArray,
|
||||
__await,
|
||||
__asyncGenerator,
|
||||
__asyncDelegator,
|
||||
__asyncValues,
|
||||
__makeTemplateObject,
|
||||
__importStar,
|
||||
__importDefault,
|
||||
__classPrivateFieldGet,
|
||||
__classPrivateFieldSet,
|
||||
__classPrivateFieldIn,
|
||||
__addDisposableResource,
|
||||
__disposeResources,
|
||||
__rewriteRelativeImportExtension,
|
||||
} = tslib;
|
||||
export {
|
||||
__extends,
|
||||
__assign,
|
||||
__rest,
|
||||
__decorate,
|
||||
__param,
|
||||
__esDecorate,
|
||||
__runInitializers,
|
||||
__propKey,
|
||||
__setFunctionName,
|
||||
__metadata,
|
||||
__awaiter,
|
||||
__generator,
|
||||
__exportStar,
|
||||
__createBinding,
|
||||
__values,
|
||||
__read,
|
||||
__spread,
|
||||
__spreadArrays,
|
||||
__spreadArray,
|
||||
__await,
|
||||
__asyncGenerator,
|
||||
__asyncDelegator,
|
||||
__asyncValues,
|
||||
__makeTemplateObject,
|
||||
__importStar,
|
||||
__importDefault,
|
||||
__classPrivateFieldGet,
|
||||
__classPrivateFieldSet,
|
||||
__classPrivateFieldIn,
|
||||
__addDisposableResource,
|
||||
__disposeResources,
|
||||
__rewriteRelativeImportExtension,
|
||||
};
|
||||
export default tslib;
|
||||
3
node_modules/ast-types/node_modules/tslib/modules/package.json
generated
vendored
Normal file
3
node_modules/ast-types/node_modules/tslib/modules/package.json
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"type": "module"
|
||||
}
|
||||
47
node_modules/ast-types/node_modules/tslib/package.json
generated
vendored
Normal file
47
node_modules/ast-types/node_modules/tslib/package.json
generated
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"name": "tslib",
|
||||
"author": "Microsoft Corp.",
|
||||
"homepage": "https://www.typescriptlang.org/",
|
||||
"version": "2.8.1",
|
||||
"license": "0BSD",
|
||||
"description": "Runtime library for TypeScript helper functions",
|
||||
"keywords": [
|
||||
"TypeScript",
|
||||
"Microsoft",
|
||||
"compiler",
|
||||
"language",
|
||||
"javascript",
|
||||
"tslib",
|
||||
"runtime"
|
||||
],
|
||||
"bugs": {
|
||||
"url": "https://github.com/Microsoft/TypeScript/issues"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Microsoft/tslib.git"
|
||||
},
|
||||
"main": "tslib.js",
|
||||
"module": "tslib.es6.js",
|
||||
"jsnext:main": "tslib.es6.js",
|
||||
"typings": "tslib.d.ts",
|
||||
"sideEffects": false,
|
||||
"exports": {
|
||||
".": {
|
||||
"module": {
|
||||
"types": "./modules/index.d.ts",
|
||||
"default": "./tslib.es6.mjs"
|
||||
},
|
||||
"import": {
|
||||
"node": "./modules/index.js",
|
||||
"default": {
|
||||
"types": "./modules/index.d.ts",
|
||||
"default": "./tslib.es6.mjs"
|
||||
}
|
||||
},
|
||||
"default": "./tslib.js"
|
||||
},
|
||||
"./*": "./*",
|
||||
"./": "./"
|
||||
}
|
||||
}
|
||||
460
node_modules/ast-types/node_modules/tslib/tslib.d.ts
generated
vendored
Normal file
460
node_modules/ast-types/node_modules/tslib/tslib.d.ts
generated
vendored
Normal file
@@ -0,0 +1,460 @@
|
||||
/******************************************************************************
|
||||
Copyright (c) Microsoft Corporation.
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
PERFORMANCE OF THIS SOFTWARE.
|
||||
***************************************************************************** */
|
||||
|
||||
/**
|
||||
* Used to shim class extends.
|
||||
*
|
||||
* @param d The derived class.
|
||||
* @param b The base class.
|
||||
*/
|
||||
export declare function __extends(d: Function, b: Function): void;
|
||||
|
||||
/**
|
||||
* Copy the values of all of the enumerable own properties from one or more source objects to a
|
||||
* target object. Returns the target object.
|
||||
*
|
||||
* @param t The target object to copy to.
|
||||
* @param sources One or more source objects from which to copy properties
|
||||
*/
|
||||
export declare function __assign(t: any, ...sources: any[]): any;
|
||||
|
||||
/**
|
||||
* Performs a rest spread on an object.
|
||||
*
|
||||
* @param t The source value.
|
||||
* @param propertyNames The property names excluded from the rest spread.
|
||||
*/
|
||||
export declare function __rest(t: any, propertyNames: (string | symbol)[]): any;
|
||||
|
||||
/**
|
||||
* Applies decorators to a target object
|
||||
*
|
||||
* @param decorators The set of decorators to apply.
|
||||
* @param target The target object.
|
||||
* @param key If specified, the own property to apply the decorators to.
|
||||
* @param desc The property descriptor, defaults to fetching the descriptor from the target object.
|
||||
* @experimental
|
||||
*/
|
||||
export declare function __decorate(decorators: Function[], target: any, key?: string | symbol, desc?: any): any;
|
||||
|
||||
/**
|
||||
* Creates an observing function decorator from a parameter decorator.
|
||||
*
|
||||
* @param paramIndex The parameter index to apply the decorator to.
|
||||
* @param decorator The parameter decorator to apply. Note that the return value is ignored.
|
||||
* @experimental
|
||||
*/
|
||||
export declare function __param(paramIndex: number, decorator: Function): Function;
|
||||
|
||||
/**
|
||||
* Applies decorators to a class or class member, following the native ECMAScript decorator specification.
|
||||
* @param ctor For non-field class members, the class constructor. Otherwise, `null`.
|
||||
* @param descriptorIn The `PropertyDescriptor` to use when unable to look up the property from `ctor`.
|
||||
* @param decorators The decorators to apply
|
||||
* @param contextIn The `DecoratorContext` to clone for each decorator application.
|
||||
* @param initializers An array of field initializer mutation functions into which new initializers are written.
|
||||
* @param extraInitializers An array of extra initializer functions into which new initializers are written.
|
||||
*/
|
||||
export declare function __esDecorate(ctor: Function | null, descriptorIn: object | null, decorators: Function[], contextIn: object, initializers: Function[] | null, extraInitializers: Function[]): void;
|
||||
|
||||
/**
|
||||
* Runs field initializers or extra initializers generated by `__esDecorate`.
|
||||
* @param thisArg The `this` argument to use.
|
||||
* @param initializers The array of initializers to evaluate.
|
||||
* @param value The initial value to pass to the initializers.
|
||||
*/
|
||||
export declare function __runInitializers(thisArg: unknown, initializers: Function[], value?: any): any;
|
||||
|
||||
/**
|
||||
* Converts a computed property name into a `string` or `symbol` value.
|
||||
*/
|
||||
export declare function __propKey(x: any): string | symbol;
|
||||
|
||||
/**
|
||||
* Assigns the name of a function derived from the left-hand side of an assignment.
|
||||
* @param f The function to rename.
|
||||
* @param name The new name for the function.
|
||||
* @param prefix A prefix (such as `"get"` or `"set"`) to insert before the name.
|
||||
*/
|
||||
export declare function __setFunctionName(f: Function, name: string | symbol, prefix?: string): Function;
|
||||
|
||||
/**
|
||||
* Creates a decorator that sets metadata.
|
||||
*
|
||||
* @param metadataKey The metadata key
|
||||
* @param metadataValue The metadata value
|
||||
* @experimental
|
||||
*/
|
||||
export declare function __metadata(metadataKey: any, metadataValue: any): Function;
|
||||
|
||||
/**
|
||||
* Converts a generator function into a pseudo-async function, by treating each `yield` as an `await`.
|
||||
*
|
||||
* @param thisArg The reference to use as the `this` value in the generator function
|
||||
* @param _arguments The optional arguments array
|
||||
* @param P The optional promise constructor argument, defaults to the `Promise` property of the global object.
|
||||
* @param generator The generator function
|
||||
*/
|
||||
export declare function __awaiter(thisArg: any, _arguments: any, P: Function, generator: Function): any;
|
||||
|
||||
/**
|
||||
* Creates an Iterator object using the body as the implementation.
|
||||
*
|
||||
* @param thisArg The reference to use as the `this` value in the function
|
||||
* @param body The generator state-machine based implementation.
|
||||
*
|
||||
* @see [./docs/generator.md]
|
||||
*/
|
||||
export declare function __generator(thisArg: any, body: Function): any;
|
||||
|
||||
/**
|
||||
* Creates bindings for all enumerable properties of `m` on `exports`
|
||||
*
|
||||
* @param m The source object
|
||||
* @param o The `exports` object.
|
||||
*/
|
||||
export declare function __exportStar(m: any, o: any): void;
|
||||
|
||||
/**
|
||||
* Creates a value iterator from an `Iterable` or `ArrayLike` object.
|
||||
*
|
||||
* @param o The object.
|
||||
* @throws {TypeError} If `o` is neither `Iterable`, nor an `ArrayLike`.
|
||||
*/
|
||||
export declare function __values(o: any): any;
|
||||
|
||||
/**
|
||||
* Reads values from an `Iterable` or `ArrayLike` object and returns the resulting array.
|
||||
*
|
||||
* @param o The object to read from.
|
||||
* @param n The maximum number of arguments to read, defaults to `Infinity`.
|
||||
*/
|
||||
export declare function __read(o: any, n?: number): any[];
|
||||
|
||||
/**
|
||||
* Creates an array from iterable spread.
|
||||
*
|
||||
* @param args The Iterable objects to spread.
|
||||
* @deprecated since TypeScript 4.2 - Use `__spreadArray`
|
||||
*/
|
||||
export declare function __spread(...args: any[][]): any[];
|
||||
|
||||
/**
|
||||
* Creates an array from array spread.
|
||||
*
|
||||
* @param args The ArrayLikes to spread into the resulting array.
|
||||
* @deprecated since TypeScript 4.2 - Use `__spreadArray`
|
||||
*/
|
||||
export declare function __spreadArrays(...args: any[][]): any[];
|
||||
|
||||
/**
|
||||
* Spreads the `from` array into the `to` array.
|
||||
*
|
||||
* @param pack Replace empty elements with `undefined`.
|
||||
*/
|
||||
export declare function __spreadArray(to: any[], from: any[], pack?: boolean): any[];
|
||||
|
||||
/**
|
||||
* Creates an object that signals to `__asyncGenerator` that it shouldn't be yielded,
|
||||
* and instead should be awaited and the resulting value passed back to the generator.
|
||||
*
|
||||
* @param v The value to await.
|
||||
*/
|
||||
export declare function __await(v: any): any;
|
||||
|
||||
/**
|
||||
* Converts a generator function into an async generator function, by using `yield __await`
|
||||
* in place of normal `await`.
|
||||
*
|
||||
* @param thisArg The reference to use as the `this` value in the generator function
|
||||
* @param _arguments The optional arguments array
|
||||
* @param generator The generator function
|
||||
*/
|
||||
export declare function __asyncGenerator(thisArg: any, _arguments: any, generator: Function): any;
|
||||
|
||||
/**
|
||||
* Used to wrap a potentially async iterator in such a way so that it wraps the result
|
||||
* of calling iterator methods of `o` in `__await` instances, and then yields the awaited values.
|
||||
*
|
||||
* @param o The potentially async iterator.
|
||||
* @returns A synchronous iterator yielding `__await` instances on every odd invocation
|
||||
* and returning the awaited `IteratorResult` passed to `next` every even invocation.
|
||||
*/
|
||||
export declare function __asyncDelegator(o: any): any;
|
||||
|
||||
/**
|
||||
* Creates a value async iterator from an `AsyncIterable`, `Iterable` or `ArrayLike` object.
|
||||
*
|
||||
* @param o The object.
|
||||
* @throws {TypeError} If `o` is neither `AsyncIterable`, `Iterable`, nor an `ArrayLike`.
|
||||
*/
|
||||
export declare function __asyncValues(o: any): any;
|
||||
|
||||
/**
|
||||
* Creates a `TemplateStringsArray` frozen object from the `cooked` and `raw` arrays.
|
||||
*
|
||||
* @param cooked The cooked possibly-sparse array.
|
||||
* @param raw The raw string content.
|
||||
*/
|
||||
export declare function __makeTemplateObject(cooked: string[], raw: string[]): TemplateStringsArray;
|
||||
|
||||
/**
|
||||
* Used to shim default and named imports in ECMAScript Modules transpiled to CommonJS.
|
||||
*
|
||||
* ```js
|
||||
* import Default, { Named, Other } from "mod";
|
||||
* // or
|
||||
* import { default as Default, Named, Other } from "mod";
|
||||
* ```
|
||||
*
|
||||
* @param mod The CommonJS module exports object.
|
||||
*/
|
||||
export declare function __importStar<T>(mod: T): T;
|
||||
|
||||
/**
|
||||
* Used to shim default imports in ECMAScript Modules transpiled to CommonJS.
|
||||
*
|
||||
* ```js
|
||||
* import Default from "mod";
|
||||
* ```
|
||||
*
|
||||
* @param mod The CommonJS module exports object.
|
||||
*/
|
||||
export declare function __importDefault<T>(mod: T): T | { default: T };
|
||||
|
||||
/**
|
||||
* Emulates reading a private instance field.
|
||||
*
|
||||
* @param receiver The instance from which to read the private field.
|
||||
* @param state A WeakMap containing the private field value for an instance.
|
||||
* @param kind Either `"f"` for a field, `"a"` for an accessor, or `"m"` for a method.
|
||||
*
|
||||
* @throws {TypeError} If `state` doesn't have an entry for `receiver`.
|
||||
*/
|
||||
export declare function __classPrivateFieldGet<T extends object, V>(
|
||||
receiver: T,
|
||||
state: { has(o: T): boolean, get(o: T): V | undefined },
|
||||
kind?: "f"
|
||||
): V;
|
||||
|
||||
/**
|
||||
* Emulates reading a private static field.
|
||||
*
|
||||
* @param receiver The object from which to read the private static field.
|
||||
* @param state The class constructor containing the definition of the static field.
|
||||
* @param kind Either `"f"` for a field, `"a"` for an accessor, or `"m"` for a method.
|
||||
* @param f The descriptor that holds the static field value.
|
||||
*
|
||||
* @throws {TypeError} If `receiver` is not `state`.
|
||||
*/
|
||||
export declare function __classPrivateFieldGet<T extends new (...args: any[]) => unknown, V>(
|
||||
receiver: T,
|
||||
state: T,
|
||||
kind: "f",
|
||||
f: { value: V }
|
||||
): V;
|
||||
|
||||
/**
|
||||
* Emulates evaluating a private instance "get" accessor.
|
||||
*
|
||||
* @param receiver The instance on which to evaluate the private "get" accessor.
|
||||
* @param state A WeakSet used to verify an instance supports the private "get" accessor.
|
||||
* @param kind Either `"f"` for a field, `"a"` for an accessor, or `"m"` for a method.
|
||||
* @param f The "get" accessor function to evaluate.
|
||||
*
|
||||
* @throws {TypeError} If `state` doesn't have an entry for `receiver`.
|
||||
*/
|
||||
export declare function __classPrivateFieldGet<T extends object, V>(
|
||||
receiver: T,
|
||||
state: { has(o: T): boolean },
|
||||
kind: "a",
|
||||
f: () => V
|
||||
): V;
|
||||
|
||||
/**
|
||||
* Emulates evaluating a private static "get" accessor.
|
||||
*
|
||||
* @param receiver The object on which to evaluate the private static "get" accessor.
|
||||
* @param state The class constructor containing the definition of the static "get" accessor.
|
||||
* @param kind Either `"f"` for a field, `"a"` for an accessor, or `"m"` for a method.
|
||||
* @param f The "get" accessor function to evaluate.
|
||||
*
|
||||
* @throws {TypeError} If `receiver` is not `state`.
|
||||
*/
|
||||
export declare function __classPrivateFieldGet<T extends new (...args: any[]) => unknown, V>(
|
||||
receiver: T,
|
||||
state: T,
|
||||
kind: "a",
|
||||
f: () => V
|
||||
): V;
|
||||
|
||||
/**
|
||||
* Emulates reading a private instance method.
|
||||
*
|
||||
* @param receiver The instance from which to read a private method.
|
||||
* @param state A WeakSet used to verify an instance supports the private method.
|
||||
* @param kind Either `"f"` for a field, `"a"` for an accessor, or `"m"` for a method.
|
||||
* @param f The function to return as the private instance method.
|
||||
*
|
||||
* @throws {TypeError} If `state` doesn't have an entry for `receiver`.
|
||||
*/
|
||||
export declare function __classPrivateFieldGet<T extends object, V extends (...args: any[]) => unknown>(
|
||||
receiver: T,
|
||||
state: { has(o: T): boolean },
|
||||
kind: "m",
|
||||
f: V
|
||||
): V;
|
||||
|
||||
/**
|
||||
* Emulates reading a private static method.
|
||||
*
|
||||
* @param receiver The object from which to read the private static method.
|
||||
* @param state The class constructor containing the definition of the static method.
|
||||
* @param kind Either `"f"` for a field, `"a"` for an accessor, or `"m"` for a method.
|
||||
* @param f The function to return as the private static method.
|
||||
*
|
||||
* @throws {TypeError} If `receiver` is not `state`.
|
||||
*/
|
||||
export declare function __classPrivateFieldGet<T extends new (...args: any[]) => unknown, V extends (...args: any[]) => unknown>(
|
||||
receiver: T,
|
||||
state: T,
|
||||
kind: "m",
|
||||
f: V
|
||||
): V;
|
||||
|
||||
/**
|
||||
* Emulates writing to a private instance field.
|
||||
*
|
||||
* @param receiver The instance on which to set a private field value.
|
||||
* @param state A WeakMap used to store the private field value for an instance.
|
||||
* @param value The value to store in the private field.
|
||||
* @param kind Either `"f"` for a field, `"a"` for an accessor, or `"m"` for a method.
|
||||
*
|
||||
* @throws {TypeError} If `state` doesn't have an entry for `receiver`.
|
||||
*/
|
||||
export declare function __classPrivateFieldSet<T extends object, V>(
|
||||
receiver: T,
|
||||
state: { has(o: T): boolean, set(o: T, value: V): unknown },
|
||||
value: V,
|
||||
kind?: "f"
|
||||
): V;
|
||||
|
||||
/**
|
||||
* Emulates writing to a private static field.
|
||||
*
|
||||
* @param receiver The object on which to set the private static field.
|
||||
* @param state The class constructor containing the definition of the private static field.
|
||||
* @param value The value to store in the private field.
|
||||
* @param kind Either `"f"` for a field, `"a"` for an accessor, or `"m"` for a method.
|
||||
* @param f The descriptor that holds the static field value.
|
||||
*
|
||||
* @throws {TypeError} If `receiver` is not `state`.
|
||||
*/
|
||||
export declare function __classPrivateFieldSet<T extends new (...args: any[]) => unknown, V>(
|
||||
receiver: T,
|
||||
state: T,
|
||||
value: V,
|
||||
kind: "f",
|
||||
f: { value: V }
|
||||
): V;
|
||||
|
||||
/**
|
||||
* Emulates writing to a private instance "set" accessor.
|
||||
*
|
||||
* @param receiver The instance on which to evaluate the private instance "set" accessor.
|
||||
* @param state A WeakSet used to verify an instance supports the private "set" accessor.
|
||||
* @param value The value to store in the private accessor.
|
||||
* @param kind Either `"f"` for a field, `"a"` for an accessor, or `"m"` for a method.
|
||||
* @param f The "set" accessor function to evaluate.
|
||||
*
|
||||
* @throws {TypeError} If `state` doesn't have an entry for `receiver`.
|
||||
*/
|
||||
export declare function __classPrivateFieldSet<T extends object, V>(
|
||||
receiver: T,
|
||||
state: { has(o: T): boolean },
|
||||
value: V,
|
||||
kind: "a",
|
||||
f: (v: V) => void
|
||||
): V;
|
||||
|
||||
/**
|
||||
* Emulates writing to a private static "set" accessor.
|
||||
*
|
||||
* @param receiver The object on which to evaluate the private static "set" accessor.
|
||||
* @param state The class constructor containing the definition of the static "set" accessor.
|
||||
* @param value The value to store in the private field.
|
||||
* @param kind Either `"f"` for a field, `"a"` for an accessor, or `"m"` for a method.
|
||||
* @param f The "set" accessor function to evaluate.
|
||||
*
|
||||
* @throws {TypeError} If `receiver` is not `state`.
|
||||
*/
|
||||
export declare function __classPrivateFieldSet<T extends new (...args: any[]) => unknown, V>(
|
||||
receiver: T,
|
||||
state: T,
|
||||
value: V,
|
||||
kind: "a",
|
||||
f: (v: V) => void
|
||||
): V;
|
||||
|
||||
/**
|
||||
* Checks for the existence of a private field/method/accessor.
|
||||
*
|
||||
* @param state The class constructor containing the static member, or the WeakMap or WeakSet associated with a private instance member.
|
||||
* @param receiver The object for which to test the presence of the private member.
|
||||
*/
|
||||
export declare function __classPrivateFieldIn(
|
||||
state: (new (...args: any[]) => unknown) | { has(o: any): boolean },
|
||||
receiver: unknown,
|
||||
): boolean;
|
||||
|
||||
/**
|
||||
* Creates a re-export binding on `object` with key `objectKey` that references `target[key]`.
|
||||
*
|
||||
* @param object The local `exports` object.
|
||||
* @param target The object to re-export from.
|
||||
* @param key The property key of `target` to re-export.
|
||||
* @param objectKey The property key to re-export as. Defaults to `key`.
|
||||
*/
|
||||
export declare function __createBinding(object: object, target: object, key: PropertyKey, objectKey?: PropertyKey): void;
|
||||
|
||||
/**
|
||||
* Adds a disposable resource to a resource-tracking environment object.
|
||||
* @param env A resource-tracking environment object.
|
||||
* @param value Either a Disposable or AsyncDisposable object, `null`, or `undefined`.
|
||||
* @param async When `true`, `AsyncDisposable` resources can be added. When `false`, `AsyncDisposable` resources cannot be added.
|
||||
* @returns The {@link value} argument.
|
||||
*
|
||||
* @throws {TypeError} If {@link value} is not an object, or if either `Symbol.dispose` or `Symbol.asyncDispose` are not
|
||||
* defined, or if {@link value} does not have an appropriate `Symbol.dispose` or `Symbol.asyncDispose` method.
|
||||
*/
|
||||
export declare function __addDisposableResource<T>(env: { stack: { value?: unknown, dispose?: Function, async: boolean }[]; error: unknown; hasError: boolean; }, value: T, async: boolean): T;
|
||||
|
||||
/**
|
||||
* Disposes all resources in a resource-tracking environment object.
|
||||
* @param env A resource-tracking environment object.
|
||||
* @returns A {@link Promise} if any resources in the environment were marked as `async` when added; otherwise, `void`.
|
||||
*
|
||||
* @throws {SuppressedError} if an error thrown during disposal would have suppressed a prior error from disposal or the
|
||||
* error recorded in the resource-tracking environment object.
|
||||
* @seealso {@link __addDisposableResource}
|
||||
*/
|
||||
export declare function __disposeResources(env: { stack: { value?: unknown, dispose?: Function, async: boolean }[]; error: unknown; hasError: boolean; }): any;
|
||||
|
||||
/**
|
||||
* Transforms a relative import specifier ending in a non-declaration TypeScript file extension to its JavaScript file extension counterpart.
|
||||
* @param path The import specifier.
|
||||
* @param preserveJsx Causes '*.tsx' to transform to '*.jsx' instead of '*.js'. Should be true when `--jsx` is set to `preserve`.
|
||||
*/
|
||||
export declare function __rewriteRelativeImportExtension(path: string, preserveJsx?: boolean): string;
|
||||
1
node_modules/ast-types/node_modules/tslib/tslib.es6.html
generated
vendored
Normal file
1
node_modules/ast-types/node_modules/tslib/tslib.es6.html
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
<script src="tslib.es6.js"></script>
|
||||
402
node_modules/ast-types/node_modules/tslib/tslib.es6.js
generated
vendored
Normal file
402
node_modules/ast-types/node_modules/tslib/tslib.es6.js
generated
vendored
Normal file
@@ -0,0 +1,402 @@
|
||||
/******************************************************************************
|
||||
Copyright (c) Microsoft Corporation.
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
PERFORMANCE OF THIS SOFTWARE.
|
||||
***************************************************************************** */
|
||||
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
|
||||
|
||||
var extendStatics = function(d, b) {
|
||||
extendStatics = Object.setPrototypeOf ||
|
||||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
||||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
||||
return extendStatics(d, b);
|
||||
};
|
||||
|
||||
export function __extends(d, b) {
|
||||
if (typeof b !== "function" && b !== null)
|
||||
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
||||
extendStatics(d, b);
|
||||
function __() { this.constructor = d; }
|
||||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
||||
}
|
||||
|
||||
export var __assign = function() {
|
||||
__assign = Object.assign || function __assign(t) {
|
||||
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
||||
s = arguments[i];
|
||||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
||||
}
|
||||
return t;
|
||||
}
|
||||
return __assign.apply(this, arguments);
|
||||
}
|
||||
|
||||
export function __rest(s, e) {
|
||||
var t = {};
|
||||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
||||
t[p] = s[p];
|
||||
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
||||
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
||||
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
||||
t[p[i]] = s[p[i]];
|
||||
}
|
||||
return t;
|
||||
}
|
||||
|
||||
export function __decorate(decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
}
|
||||
|
||||
export function __param(paramIndex, decorator) {
|
||||
return function (target, key) { decorator(target, key, paramIndex); }
|
||||
}
|
||||
|
||||
export function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
||||
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
||||
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
||||
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
||||
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
||||
var _, done = false;
|
||||
for (var i = decorators.length - 1; i >= 0; i--) {
|
||||
var context = {};
|
||||
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
||||
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
||||
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
||||
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
||||
if (kind === "accessor") {
|
||||
if (result === void 0) continue;
|
||||
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
||||
if (_ = accept(result.get)) descriptor.get = _;
|
||||
if (_ = accept(result.set)) descriptor.set = _;
|
||||
if (_ = accept(result.init)) initializers.unshift(_);
|
||||
}
|
||||
else if (_ = accept(result)) {
|
||||
if (kind === "field") initializers.unshift(_);
|
||||
else descriptor[key] = _;
|
||||
}
|
||||
}
|
||||
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
||||
done = true;
|
||||
};
|
||||
|
||||
export function __runInitializers(thisArg, initializers, value) {
|
||||
var useValue = arguments.length > 2;
|
||||
for (var i = 0; i < initializers.length; i++) {
|
||||
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
||||
}
|
||||
return useValue ? value : void 0;
|
||||
};
|
||||
|
||||
export function __propKey(x) {
|
||||
return typeof x === "symbol" ? x : "".concat(x);
|
||||
};
|
||||
|
||||
export function __setFunctionName(f, name, prefix) {
|
||||
if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : "";
|
||||
return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
|
||||
};
|
||||
|
||||
export function __metadata(metadataKey, metadataValue) {
|
||||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
|
||||
}
|
||||
|
||||
export function __awaiter(thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
}
|
||||
|
||||
export function __generator(thisArg, body) {
|
||||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
||||
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
||||
function verb(n) { return function (v) { return step([n, v]); }; }
|
||||
function step(op) {
|
||||
if (f) throw new TypeError("Generator is already executing.");
|
||||
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
||||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
||||
if (y = 0, t) op = [op[0] & 2, t.value];
|
||||
switch (op[0]) {
|
||||
case 0: case 1: t = op; break;
|
||||
case 4: _.label++; return { value: op[1], done: false };
|
||||
case 5: _.label++; y = op[1]; op = [0]; continue;
|
||||
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
||||
default:
|
||||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
||||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
||||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
||||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
||||
if (t[2]) _.ops.pop();
|
||||
_.trys.pop(); continue;
|
||||
}
|
||||
op = body.call(thisArg, _);
|
||||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
||||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
||||
}
|
||||
}
|
||||
|
||||
export var __createBinding = Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
});
|
||||
|
||||
export function __exportStar(m, o) {
|
||||
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);
|
||||
}
|
||||
|
||||
export function __values(o) {
|
||||
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
||||
if (m) return m.call(o);
|
||||
if (o && typeof o.length === "number") return {
|
||||
next: function () {
|
||||
if (o && i >= o.length) o = void 0;
|
||||
return { value: o && o[i++], done: !o };
|
||||
}
|
||||
};
|
||||
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
||||
}
|
||||
|
||||
export function __read(o, n) {
|
||||
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
||||
if (!m) return o;
|
||||
var i = m.call(o), r, ar = [], e;
|
||||
try {
|
||||
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
||||
}
|
||||
catch (error) { e = { error: error }; }
|
||||
finally {
|
||||
try {
|
||||
if (r && !r.done && (m = i["return"])) m.call(i);
|
||||
}
|
||||
finally { if (e) throw e.error; }
|
||||
}
|
||||
return ar;
|
||||
}
|
||||
|
||||
/** @deprecated */
|
||||
export function __spread() {
|
||||
for (var ar = [], i = 0; i < arguments.length; i++)
|
||||
ar = ar.concat(__read(arguments[i]));
|
||||
return ar;
|
||||
}
|
||||
|
||||
/** @deprecated */
|
||||
export function __spreadArrays() {
|
||||
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
|
||||
for (var r = Array(s), k = 0, i = 0; i < il; i++)
|
||||
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
|
||||
r[k] = a[j];
|
||||
return r;
|
||||
}
|
||||
|
||||
export function __spreadArray(to, from, pack) {
|
||||
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
||||
if (ar || !(i in from)) {
|
||||
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
||||
ar[i] = from[i];
|
||||
}
|
||||
}
|
||||
return to.concat(ar || Array.prototype.slice.call(from));
|
||||
}
|
||||
|
||||
export function __await(v) {
|
||||
return this instanceof __await ? (this.v = v, this) : new __await(v);
|
||||
}
|
||||
|
||||
export function __asyncGenerator(thisArg, _arguments, generator) {
|
||||
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
||||
var g = generator.apply(thisArg, _arguments || []), i, q = [];
|
||||
return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
|
||||
function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
|
||||
function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
|
||||
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
|
||||
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
|
||||
function fulfill(value) { resume("next", value); }
|
||||
function reject(value) { resume("throw", value); }
|
||||
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
|
||||
}
|
||||
|
||||
export function __asyncDelegator(o) {
|
||||
var i, p;
|
||||
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
|
||||
function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }
|
||||
}
|
||||
|
||||
export function __asyncValues(o) {
|
||||
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
||||
var m = o[Symbol.asyncIterator], i;
|
||||
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
||||
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
||||
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
||||
}
|
||||
|
||||
export function __makeTemplateObject(cooked, raw) {
|
||||
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
||||
return cooked;
|
||||
};
|
||||
|
||||
var __setModuleDefault = Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
};
|
||||
|
||||
var ownKeys = function(o) {
|
||||
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||
var ar = [];
|
||||
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||
return ar;
|
||||
};
|
||||
return ownKeys(o);
|
||||
};
|
||||
|
||||
export function __importStar(mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
}
|
||||
|
||||
export function __importDefault(mod) {
|
||||
return (mod && mod.__esModule) ? mod : { default: mod };
|
||||
}
|
||||
|
||||
export function __classPrivateFieldGet(receiver, state, kind, f) {
|
||||
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
||||
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
||||
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
||||
}
|
||||
|
||||
export function __classPrivateFieldSet(receiver, state, value, kind, f) {
|
||||
if (kind === "m") throw new TypeError("Private method is not writable");
|
||||
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
||||
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
||||
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
||||
}
|
||||
|
||||
export function __classPrivateFieldIn(state, receiver) {
|
||||
if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function")) throw new TypeError("Cannot use 'in' operator on non-object");
|
||||
return typeof state === "function" ? receiver === state : state.has(receiver);
|
||||
}
|
||||
|
||||
export function __addDisposableResource(env, value, async) {
|
||||
if (value !== null && value !== void 0) {
|
||||
if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
|
||||
var dispose, inner;
|
||||
if (async) {
|
||||
if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
|
||||
dispose = value[Symbol.asyncDispose];
|
||||
}
|
||||
if (dispose === void 0) {
|
||||
if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
|
||||
dispose = value[Symbol.dispose];
|
||||
if (async) inner = dispose;
|
||||
}
|
||||
if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
|
||||
if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
|
||||
env.stack.push({ value: value, dispose: dispose, async: async });
|
||||
}
|
||||
else if (async) {
|
||||
env.stack.push({ async: true });
|
||||
}
|
||||
return value;
|
||||
|
||||
}
|
||||
|
||||
var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
||||
var e = new Error(message);
|
||||
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
||||
};
|
||||
|
||||
export function __disposeResources(env) {
|
||||
function fail(e) {
|
||||
env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
|
||||
env.hasError = true;
|
||||
}
|
||||
var r, s = 0;
|
||||
function next() {
|
||||
while (r = env.stack.pop()) {
|
||||
try {
|
||||
if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
|
||||
if (r.dispose) {
|
||||
var result = r.dispose.call(r.value);
|
||||
if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
|
||||
}
|
||||
else s |= 1;
|
||||
}
|
||||
catch (e) {
|
||||
fail(e);
|
||||
}
|
||||
}
|
||||
if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
|
||||
if (env.hasError) throw env.error;
|
||||
}
|
||||
return next();
|
||||
}
|
||||
|
||||
export function __rewriteRelativeImportExtension(path, preserveJsx) {
|
||||
if (typeof path === "string" && /^\.\.?\//.test(path)) {
|
||||
return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
|
||||
return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
|
||||
});
|
||||
}
|
||||
return path;
|
||||
}
|
||||
|
||||
export default {
|
||||
__extends: __extends,
|
||||
__assign: __assign,
|
||||
__rest: __rest,
|
||||
__decorate: __decorate,
|
||||
__param: __param,
|
||||
__esDecorate: __esDecorate,
|
||||
__runInitializers: __runInitializers,
|
||||
__propKey: __propKey,
|
||||
__setFunctionName: __setFunctionName,
|
||||
__metadata: __metadata,
|
||||
__awaiter: __awaiter,
|
||||
__generator: __generator,
|
||||
__createBinding: __createBinding,
|
||||
__exportStar: __exportStar,
|
||||
__values: __values,
|
||||
__read: __read,
|
||||
__spread: __spread,
|
||||
__spreadArrays: __spreadArrays,
|
||||
__spreadArray: __spreadArray,
|
||||
__await: __await,
|
||||
__asyncGenerator: __asyncGenerator,
|
||||
__asyncDelegator: __asyncDelegator,
|
||||
__asyncValues: __asyncValues,
|
||||
__makeTemplateObject: __makeTemplateObject,
|
||||
__importStar: __importStar,
|
||||
__importDefault: __importDefault,
|
||||
__classPrivateFieldGet: __classPrivateFieldGet,
|
||||
__classPrivateFieldSet: __classPrivateFieldSet,
|
||||
__classPrivateFieldIn: __classPrivateFieldIn,
|
||||
__addDisposableResource: __addDisposableResource,
|
||||
__disposeResources: __disposeResources,
|
||||
__rewriteRelativeImportExtension: __rewriteRelativeImportExtension,
|
||||
};
|
||||
401
node_modules/ast-types/node_modules/tslib/tslib.es6.mjs
generated
vendored
Normal file
401
node_modules/ast-types/node_modules/tslib/tslib.es6.mjs
generated
vendored
Normal file
@@ -0,0 +1,401 @@
|
||||
/******************************************************************************
|
||||
Copyright (c) Microsoft Corporation.
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
PERFORMANCE OF THIS SOFTWARE.
|
||||
***************************************************************************** */
|
||||
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
|
||||
|
||||
var extendStatics = function(d, b) {
|
||||
extendStatics = Object.setPrototypeOf ||
|
||||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
||||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
||||
return extendStatics(d, b);
|
||||
};
|
||||
|
||||
export function __extends(d, b) {
|
||||
if (typeof b !== "function" && b !== null)
|
||||
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
||||
extendStatics(d, b);
|
||||
function __() { this.constructor = d; }
|
||||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
||||
}
|
||||
|
||||
export var __assign = function() {
|
||||
__assign = Object.assign || function __assign(t) {
|
||||
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
||||
s = arguments[i];
|
||||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
||||
}
|
||||
return t;
|
||||
}
|
||||
return __assign.apply(this, arguments);
|
||||
}
|
||||
|
||||
export function __rest(s, e) {
|
||||
var t = {};
|
||||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
||||
t[p] = s[p];
|
||||
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
||||
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
||||
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
||||
t[p[i]] = s[p[i]];
|
||||
}
|
||||
return t;
|
||||
}
|
||||
|
||||
export function __decorate(decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
}
|
||||
|
||||
export function __param(paramIndex, decorator) {
|
||||
return function (target, key) { decorator(target, key, paramIndex); }
|
||||
}
|
||||
|
||||
export function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
||||
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
||||
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
||||
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
||||
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
||||
var _, done = false;
|
||||
for (var i = decorators.length - 1; i >= 0; i--) {
|
||||
var context = {};
|
||||
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
||||
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
||||
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
||||
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
||||
if (kind === "accessor") {
|
||||
if (result === void 0) continue;
|
||||
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
||||
if (_ = accept(result.get)) descriptor.get = _;
|
||||
if (_ = accept(result.set)) descriptor.set = _;
|
||||
if (_ = accept(result.init)) initializers.unshift(_);
|
||||
}
|
||||
else if (_ = accept(result)) {
|
||||
if (kind === "field") initializers.unshift(_);
|
||||
else descriptor[key] = _;
|
||||
}
|
||||
}
|
||||
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
||||
done = true;
|
||||
};
|
||||
|
||||
export function __runInitializers(thisArg, initializers, value) {
|
||||
var useValue = arguments.length > 2;
|
||||
for (var i = 0; i < initializers.length; i++) {
|
||||
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
||||
}
|
||||
return useValue ? value : void 0;
|
||||
};
|
||||
|
||||
export function __propKey(x) {
|
||||
return typeof x === "symbol" ? x : "".concat(x);
|
||||
};
|
||||
|
||||
export function __setFunctionName(f, name, prefix) {
|
||||
if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : "";
|
||||
return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
|
||||
};
|
||||
|
||||
export function __metadata(metadataKey, metadataValue) {
|
||||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
|
||||
}
|
||||
|
||||
export function __awaiter(thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
}
|
||||
|
||||
export function __generator(thisArg, body) {
|
||||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
||||
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
||||
function verb(n) { return function (v) { return step([n, v]); }; }
|
||||
function step(op) {
|
||||
if (f) throw new TypeError("Generator is already executing.");
|
||||
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
||||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
||||
if (y = 0, t) op = [op[0] & 2, t.value];
|
||||
switch (op[0]) {
|
||||
case 0: case 1: t = op; break;
|
||||
case 4: _.label++; return { value: op[1], done: false };
|
||||
case 5: _.label++; y = op[1]; op = [0]; continue;
|
||||
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
||||
default:
|
||||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
||||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
||||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
||||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
||||
if (t[2]) _.ops.pop();
|
||||
_.trys.pop(); continue;
|
||||
}
|
||||
op = body.call(thisArg, _);
|
||||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
||||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
||||
}
|
||||
}
|
||||
|
||||
export var __createBinding = Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
});
|
||||
|
||||
export function __exportStar(m, o) {
|
||||
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);
|
||||
}
|
||||
|
||||
export function __values(o) {
|
||||
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
||||
if (m) return m.call(o);
|
||||
if (o && typeof o.length === "number") return {
|
||||
next: function () {
|
||||
if (o && i >= o.length) o = void 0;
|
||||
return { value: o && o[i++], done: !o };
|
||||
}
|
||||
};
|
||||
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
||||
}
|
||||
|
||||
export function __read(o, n) {
|
||||
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
||||
if (!m) return o;
|
||||
var i = m.call(o), r, ar = [], e;
|
||||
try {
|
||||
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
||||
}
|
||||
catch (error) { e = { error: error }; }
|
||||
finally {
|
||||
try {
|
||||
if (r && !r.done && (m = i["return"])) m.call(i);
|
||||
}
|
||||
finally { if (e) throw e.error; }
|
||||
}
|
||||
return ar;
|
||||
}
|
||||
|
||||
/** @deprecated */
|
||||
export function __spread() {
|
||||
for (var ar = [], i = 0; i < arguments.length; i++)
|
||||
ar = ar.concat(__read(arguments[i]));
|
||||
return ar;
|
||||
}
|
||||
|
||||
/** @deprecated */
|
||||
export function __spreadArrays() {
|
||||
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
|
||||
for (var r = Array(s), k = 0, i = 0; i < il; i++)
|
||||
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
|
||||
r[k] = a[j];
|
||||
return r;
|
||||
}
|
||||
|
||||
export function __spreadArray(to, from, pack) {
|
||||
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
||||
if (ar || !(i in from)) {
|
||||
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
||||
ar[i] = from[i];
|
||||
}
|
||||
}
|
||||
return to.concat(ar || Array.prototype.slice.call(from));
|
||||
}
|
||||
|
||||
export function __await(v) {
|
||||
return this instanceof __await ? (this.v = v, this) : new __await(v);
|
||||
}
|
||||
|
||||
export function __asyncGenerator(thisArg, _arguments, generator) {
|
||||
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
||||
var g = generator.apply(thisArg, _arguments || []), i, q = [];
|
||||
return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
|
||||
function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
|
||||
function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
|
||||
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
|
||||
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
|
||||
function fulfill(value) { resume("next", value); }
|
||||
function reject(value) { resume("throw", value); }
|
||||
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
|
||||
}
|
||||
|
||||
export function __asyncDelegator(o) {
|
||||
var i, p;
|
||||
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
|
||||
function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }
|
||||
}
|
||||
|
||||
export function __asyncValues(o) {
|
||||
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
||||
var m = o[Symbol.asyncIterator], i;
|
||||
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
||||
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
||||
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
||||
}
|
||||
|
||||
export function __makeTemplateObject(cooked, raw) {
|
||||
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
||||
return cooked;
|
||||
};
|
||||
|
||||
var __setModuleDefault = Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
};
|
||||
|
||||
var ownKeys = function(o) {
|
||||
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||
var ar = [];
|
||||
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||
return ar;
|
||||
};
|
||||
return ownKeys(o);
|
||||
};
|
||||
|
||||
export function __importStar(mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
}
|
||||
|
||||
export function __importDefault(mod) {
|
||||
return (mod && mod.__esModule) ? mod : { default: mod };
|
||||
}
|
||||
|
||||
export function __classPrivateFieldGet(receiver, state, kind, f) {
|
||||
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
||||
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
||||
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
||||
}
|
||||
|
||||
export function __classPrivateFieldSet(receiver, state, value, kind, f) {
|
||||
if (kind === "m") throw new TypeError("Private method is not writable");
|
||||
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
||||
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
||||
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
||||
}
|
||||
|
||||
export function __classPrivateFieldIn(state, receiver) {
|
||||
if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function")) throw new TypeError("Cannot use 'in' operator on non-object");
|
||||
return typeof state === "function" ? receiver === state : state.has(receiver);
|
||||
}
|
||||
|
||||
export function __addDisposableResource(env, value, async) {
|
||||
if (value !== null && value !== void 0) {
|
||||
if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
|
||||
var dispose, inner;
|
||||
if (async) {
|
||||
if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
|
||||
dispose = value[Symbol.asyncDispose];
|
||||
}
|
||||
if (dispose === void 0) {
|
||||
if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
|
||||
dispose = value[Symbol.dispose];
|
||||
if (async) inner = dispose;
|
||||
}
|
||||
if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
|
||||
if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
|
||||
env.stack.push({ value: value, dispose: dispose, async: async });
|
||||
}
|
||||
else if (async) {
|
||||
env.stack.push({ async: true });
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
||||
var e = new Error(message);
|
||||
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
||||
};
|
||||
|
||||
export function __disposeResources(env) {
|
||||
function fail(e) {
|
||||
env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
|
||||
env.hasError = true;
|
||||
}
|
||||
var r, s = 0;
|
||||
function next() {
|
||||
while (r = env.stack.pop()) {
|
||||
try {
|
||||
if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
|
||||
if (r.dispose) {
|
||||
var result = r.dispose.call(r.value);
|
||||
if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
|
||||
}
|
||||
else s |= 1;
|
||||
}
|
||||
catch (e) {
|
||||
fail(e);
|
||||
}
|
||||
}
|
||||
if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
|
||||
if (env.hasError) throw env.error;
|
||||
}
|
||||
return next();
|
||||
}
|
||||
|
||||
export function __rewriteRelativeImportExtension(path, preserveJsx) {
|
||||
if (typeof path === "string" && /^\.\.?\//.test(path)) {
|
||||
return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
|
||||
return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
|
||||
});
|
||||
}
|
||||
return path;
|
||||
}
|
||||
|
||||
export default {
|
||||
__extends,
|
||||
__assign,
|
||||
__rest,
|
||||
__decorate,
|
||||
__param,
|
||||
__esDecorate,
|
||||
__runInitializers,
|
||||
__propKey,
|
||||
__setFunctionName,
|
||||
__metadata,
|
||||
__awaiter,
|
||||
__generator,
|
||||
__createBinding,
|
||||
__exportStar,
|
||||
__values,
|
||||
__read,
|
||||
__spread,
|
||||
__spreadArrays,
|
||||
__spreadArray,
|
||||
__await,
|
||||
__asyncGenerator,
|
||||
__asyncDelegator,
|
||||
__asyncValues,
|
||||
__makeTemplateObject,
|
||||
__importStar,
|
||||
__importDefault,
|
||||
__classPrivateFieldGet,
|
||||
__classPrivateFieldSet,
|
||||
__classPrivateFieldIn,
|
||||
__addDisposableResource,
|
||||
__disposeResources,
|
||||
__rewriteRelativeImportExtension,
|
||||
};
|
||||
1
node_modules/ast-types/node_modules/tslib/tslib.html
generated
vendored
Normal file
1
node_modules/ast-types/node_modules/tslib/tslib.html
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
<script src="tslib.js"></script>
|
||||
484
node_modules/ast-types/node_modules/tslib/tslib.js
generated
vendored
Normal file
484
node_modules/ast-types/node_modules/tslib/tslib.js
generated
vendored
Normal file
@@ -0,0 +1,484 @@
|
||||
/******************************************************************************
|
||||
Copyright (c) Microsoft Corporation.
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
PERFORMANCE OF THIS SOFTWARE.
|
||||
***************************************************************************** */
|
||||
/* global global, define, Symbol, Reflect, Promise, SuppressedError, Iterator */
|
||||
var __extends;
|
||||
var __assign;
|
||||
var __rest;
|
||||
var __decorate;
|
||||
var __param;
|
||||
var __esDecorate;
|
||||
var __runInitializers;
|
||||
var __propKey;
|
||||
var __setFunctionName;
|
||||
var __metadata;
|
||||
var __awaiter;
|
||||
var __generator;
|
||||
var __exportStar;
|
||||
var __values;
|
||||
var __read;
|
||||
var __spread;
|
||||
var __spreadArrays;
|
||||
var __spreadArray;
|
||||
var __await;
|
||||
var __asyncGenerator;
|
||||
var __asyncDelegator;
|
||||
var __asyncValues;
|
||||
var __makeTemplateObject;
|
||||
var __importStar;
|
||||
var __importDefault;
|
||||
var __classPrivateFieldGet;
|
||||
var __classPrivateFieldSet;
|
||||
var __classPrivateFieldIn;
|
||||
var __createBinding;
|
||||
var __addDisposableResource;
|
||||
var __disposeResources;
|
||||
var __rewriteRelativeImportExtension;
|
||||
(function (factory) {
|
||||
var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {};
|
||||
if (typeof define === "function" && define.amd) {
|
||||
define("tslib", ["exports"], function (exports) { factory(createExporter(root, createExporter(exports))); });
|
||||
}
|
||||
else if (typeof module === "object" && typeof module.exports === "object") {
|
||||
factory(createExporter(root, createExporter(module.exports)));
|
||||
}
|
||||
else {
|
||||
factory(createExporter(root));
|
||||
}
|
||||
function createExporter(exports, previous) {
|
||||
if (exports !== root) {
|
||||
if (typeof Object.create === "function") {
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
}
|
||||
else {
|
||||
exports.__esModule = true;
|
||||
}
|
||||
}
|
||||
return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };
|
||||
}
|
||||
})
|
||||
(function (exporter) {
|
||||
var extendStatics = Object.setPrototypeOf ||
|
||||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
||||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
||||
|
||||
__extends = function (d, b) {
|
||||
if (typeof b !== "function" && b !== null)
|
||||
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
||||
extendStatics(d, b);
|
||||
function __() { this.constructor = d; }
|
||||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
||||
};
|
||||
|
||||
__assign = Object.assign || function (t) {
|
||||
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
||||
s = arguments[i];
|
||||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
||||
}
|
||||
return t;
|
||||
};
|
||||
|
||||
__rest = function (s, e) {
|
||||
var t = {};
|
||||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
||||
t[p] = s[p];
|
||||
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
||||
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
||||
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
||||
t[p[i]] = s[p[i]];
|
||||
}
|
||||
return t;
|
||||
};
|
||||
|
||||
__decorate = function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
|
||||
__param = function (paramIndex, decorator) {
|
||||
return function (target, key) { decorator(target, key, paramIndex); }
|
||||
};
|
||||
|
||||
__esDecorate = function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
||||
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
||||
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
||||
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
||||
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
||||
var _, done = false;
|
||||
for (var i = decorators.length - 1; i >= 0; i--) {
|
||||
var context = {};
|
||||
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
||||
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
||||
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
||||
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
||||
if (kind === "accessor") {
|
||||
if (result === void 0) continue;
|
||||
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
||||
if (_ = accept(result.get)) descriptor.get = _;
|
||||
if (_ = accept(result.set)) descriptor.set = _;
|
||||
if (_ = accept(result.init)) initializers.unshift(_);
|
||||
}
|
||||
else if (_ = accept(result)) {
|
||||
if (kind === "field") initializers.unshift(_);
|
||||
else descriptor[key] = _;
|
||||
}
|
||||
}
|
||||
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
||||
done = true;
|
||||
};
|
||||
|
||||
__runInitializers = function (thisArg, initializers, value) {
|
||||
var useValue = arguments.length > 2;
|
||||
for (var i = 0; i < initializers.length; i++) {
|
||||
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
||||
}
|
||||
return useValue ? value : void 0;
|
||||
};
|
||||
|
||||
__propKey = function (x) {
|
||||
return typeof x === "symbol" ? x : "".concat(x);
|
||||
};
|
||||
|
||||
__setFunctionName = function (f, name, prefix) {
|
||||
if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : "";
|
||||
return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
|
||||
};
|
||||
|
||||
__metadata = function (metadataKey, metadataValue) {
|
||||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
|
||||
};
|
||||
|
||||
__awaiter = function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
|
||||
__generator = function (thisArg, body) {
|
||||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
||||
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
||||
function verb(n) { return function (v) { return step([n, v]); }; }
|
||||
function step(op) {
|
||||
if (f) throw new TypeError("Generator is already executing.");
|
||||
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
||||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
||||
if (y = 0, t) op = [op[0] & 2, t.value];
|
||||
switch (op[0]) {
|
||||
case 0: case 1: t = op; break;
|
||||
case 4: _.label++; return { value: op[1], done: false };
|
||||
case 5: _.label++; y = op[1]; op = [0]; continue;
|
||||
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
||||
default:
|
||||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
||||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
||||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
||||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
||||
if (t[2]) _.ops.pop();
|
||||
_.trys.pop(); continue;
|
||||
}
|
||||
op = body.call(thisArg, _);
|
||||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
||||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
||||
}
|
||||
};
|
||||
|
||||
__exportStar = function(m, o) {
|
||||
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);
|
||||
};
|
||||
|
||||
__createBinding = Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
});
|
||||
|
||||
__values = function (o) {
|
||||
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
||||
if (m) return m.call(o);
|
||||
if (o && typeof o.length === "number") return {
|
||||
next: function () {
|
||||
if (o && i >= o.length) o = void 0;
|
||||
return { value: o && o[i++], done: !o };
|
||||
}
|
||||
};
|
||||
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
||||
};
|
||||
|
||||
__read = function (o, n) {
|
||||
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
||||
if (!m) return o;
|
||||
var i = m.call(o), r, ar = [], e;
|
||||
try {
|
||||
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
||||
}
|
||||
catch (error) { e = { error: error }; }
|
||||
finally {
|
||||
try {
|
||||
if (r && !r.done && (m = i["return"])) m.call(i);
|
||||
}
|
||||
finally { if (e) throw e.error; }
|
||||
}
|
||||
return ar;
|
||||
};
|
||||
|
||||
/** @deprecated */
|
||||
__spread = function () {
|
||||
for (var ar = [], i = 0; i < arguments.length; i++)
|
||||
ar = ar.concat(__read(arguments[i]));
|
||||
return ar;
|
||||
};
|
||||
|
||||
/** @deprecated */
|
||||
__spreadArrays = function () {
|
||||
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
|
||||
for (var r = Array(s), k = 0, i = 0; i < il; i++)
|
||||
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
|
||||
r[k] = a[j];
|
||||
return r;
|
||||
};
|
||||
|
||||
__spreadArray = function (to, from, pack) {
|
||||
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
||||
if (ar || !(i in from)) {
|
||||
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
||||
ar[i] = from[i];
|
||||
}
|
||||
}
|
||||
return to.concat(ar || Array.prototype.slice.call(from));
|
||||
};
|
||||
|
||||
__await = function (v) {
|
||||
return this instanceof __await ? (this.v = v, this) : new __await(v);
|
||||
};
|
||||
|
||||
__asyncGenerator = function (thisArg, _arguments, generator) {
|
||||
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
||||
var g = generator.apply(thisArg, _arguments || []), i, q = [];
|
||||
return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
|
||||
function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
|
||||
function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
|
||||
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
|
||||
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
|
||||
function fulfill(value) { resume("next", value); }
|
||||
function reject(value) { resume("throw", value); }
|
||||
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
|
||||
};
|
||||
|
||||
__asyncDelegator = function (o) {
|
||||
var i, p;
|
||||
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
|
||||
function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }
|
||||
};
|
||||
|
||||
__asyncValues = function (o) {
|
||||
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
||||
var m = o[Symbol.asyncIterator], i;
|
||||
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
||||
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
||||
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
||||
};
|
||||
|
||||
__makeTemplateObject = function (cooked, raw) {
|
||||
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
||||
return cooked;
|
||||
};
|
||||
|
||||
var __setModuleDefault = Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
};
|
||||
|
||||
var ownKeys = function(o) {
|
||||
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||
var ar = [];
|
||||
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||
return ar;
|
||||
};
|
||||
return ownKeys(o);
|
||||
};
|
||||
|
||||
__importStar = function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
|
||||
__importDefault = function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
|
||||
__classPrivateFieldGet = function (receiver, state, kind, f) {
|
||||
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
||||
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
||||
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
||||
};
|
||||
|
||||
__classPrivateFieldSet = function (receiver, state, value, kind, f) {
|
||||
if (kind === "m") throw new TypeError("Private method is not writable");
|
||||
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
||||
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
||||
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
||||
};
|
||||
|
||||
__classPrivateFieldIn = function (state, receiver) {
|
||||
if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function")) throw new TypeError("Cannot use 'in' operator on non-object");
|
||||
return typeof state === "function" ? receiver === state : state.has(receiver);
|
||||
};
|
||||
|
||||
__addDisposableResource = function (env, value, async) {
|
||||
if (value !== null && value !== void 0) {
|
||||
if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
|
||||
var dispose, inner;
|
||||
if (async) {
|
||||
if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
|
||||
dispose = value[Symbol.asyncDispose];
|
||||
}
|
||||
if (dispose === void 0) {
|
||||
if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
|
||||
dispose = value[Symbol.dispose];
|
||||
if (async) inner = dispose;
|
||||
}
|
||||
if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
|
||||
if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
|
||||
env.stack.push({ value: value, dispose: dispose, async: async });
|
||||
}
|
||||
else if (async) {
|
||||
env.stack.push({ async: true });
|
||||
}
|
||||
return value;
|
||||
};
|
||||
|
||||
var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
||||
var e = new Error(message);
|
||||
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
||||
};
|
||||
|
||||
__disposeResources = function (env) {
|
||||
function fail(e) {
|
||||
env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
|
||||
env.hasError = true;
|
||||
}
|
||||
var r, s = 0;
|
||||
function next() {
|
||||
while (r = env.stack.pop()) {
|
||||
try {
|
||||
if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
|
||||
if (r.dispose) {
|
||||
var result = r.dispose.call(r.value);
|
||||
if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
|
||||
}
|
||||
else s |= 1;
|
||||
}
|
||||
catch (e) {
|
||||
fail(e);
|
||||
}
|
||||
}
|
||||
if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
|
||||
if (env.hasError) throw env.error;
|
||||
}
|
||||
return next();
|
||||
};
|
||||
|
||||
__rewriteRelativeImportExtension = function (path, preserveJsx) {
|
||||
if (typeof path === "string" && /^\.\.?\//.test(path)) {
|
||||
return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
|
||||
return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
|
||||
});
|
||||
}
|
||||
return path;
|
||||
};
|
||||
|
||||
exporter("__extends", __extends);
|
||||
exporter("__assign", __assign);
|
||||
exporter("__rest", __rest);
|
||||
exporter("__decorate", __decorate);
|
||||
exporter("__param", __param);
|
||||
exporter("__esDecorate", __esDecorate);
|
||||
exporter("__runInitializers", __runInitializers);
|
||||
exporter("__propKey", __propKey);
|
||||
exporter("__setFunctionName", __setFunctionName);
|
||||
exporter("__metadata", __metadata);
|
||||
exporter("__awaiter", __awaiter);
|
||||
exporter("__generator", __generator);
|
||||
exporter("__exportStar", __exportStar);
|
||||
exporter("__createBinding", __createBinding);
|
||||
exporter("__values", __values);
|
||||
exporter("__read", __read);
|
||||
exporter("__spread", __spread);
|
||||
exporter("__spreadArrays", __spreadArrays);
|
||||
exporter("__spreadArray", __spreadArray);
|
||||
exporter("__await", __await);
|
||||
exporter("__asyncGenerator", __asyncGenerator);
|
||||
exporter("__asyncDelegator", __asyncDelegator);
|
||||
exporter("__asyncValues", __asyncValues);
|
||||
exporter("__makeTemplateObject", __makeTemplateObject);
|
||||
exporter("__importStar", __importStar);
|
||||
exporter("__importDefault", __importDefault);
|
||||
exporter("__classPrivateFieldGet", __classPrivateFieldGet);
|
||||
exporter("__classPrivateFieldSet", __classPrivateFieldSet);
|
||||
exporter("__classPrivateFieldIn", __classPrivateFieldIn);
|
||||
exporter("__addDisposableResource", __addDisposableResource);
|
||||
exporter("__disposeResources", __disposeResources);
|
||||
exporter("__rewriteRelativeImportExtension", __rewriteRelativeImportExtension);
|
||||
});
|
||||
|
||||
0 && (module.exports = {
|
||||
__extends: __extends,
|
||||
__assign: __assign,
|
||||
__rest: __rest,
|
||||
__decorate: __decorate,
|
||||
__param: __param,
|
||||
__esDecorate: __esDecorate,
|
||||
__runInitializers: __runInitializers,
|
||||
__propKey: __propKey,
|
||||
__setFunctionName: __setFunctionName,
|
||||
__metadata: __metadata,
|
||||
__awaiter: __awaiter,
|
||||
__generator: __generator,
|
||||
__exportStar: __exportStar,
|
||||
__createBinding: __createBinding,
|
||||
__values: __values,
|
||||
__read: __read,
|
||||
__spread: __spread,
|
||||
__spreadArrays: __spreadArrays,
|
||||
__spreadArray: __spreadArray,
|
||||
__await: __await,
|
||||
__asyncGenerator: __asyncGenerator,
|
||||
__asyncDelegator: __asyncDelegator,
|
||||
__asyncValues: __asyncValues,
|
||||
__makeTemplateObject: __makeTemplateObject,
|
||||
__importStar: __importStar,
|
||||
__importDefault: __importDefault,
|
||||
__classPrivateFieldGet: __classPrivateFieldGet,
|
||||
__classPrivateFieldSet: __classPrivateFieldSet,
|
||||
__classPrivateFieldIn: __classPrivateFieldIn,
|
||||
__addDisposableResource: __addDisposableResource,
|
||||
__disposeResources: __disposeResources,
|
||||
__rewriteRelativeImportExtension: __rewriteRelativeImportExtension,
|
||||
});
|
||||
65
node_modules/ast-types/package.json
generated
vendored
Normal file
65
node_modules/ast-types/package.json
generated
vendored
Normal file
@@ -0,0 +1,65 @@
|
||||
{
|
||||
"author": "Ben Newman <bn@cs.stanford.edu>",
|
||||
"name": "ast-types",
|
||||
"version": "0.13.4",
|
||||
"description": "Esprima-compatible implementation of the Mozilla JS Parser API",
|
||||
"keywords": [
|
||||
"ast",
|
||||
"abstract syntax tree",
|
||||
"hierarchy",
|
||||
"mozilla",
|
||||
"spidermonkey",
|
||||
"parser api",
|
||||
"esprima",
|
||||
"types",
|
||||
"type system",
|
||||
"type checking",
|
||||
"dynamic types",
|
||||
"parsing",
|
||||
"transformation",
|
||||
"syntax"
|
||||
],
|
||||
"homepage": "http://github.com/benjamn/ast-types",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/benjamn/ast-types.git"
|
||||
},
|
||||
"license": "MIT",
|
||||
"main": "main.js",
|
||||
"types": "main.d.ts",
|
||||
"scripts": {
|
||||
"gen": "ts-node --transpile-only script/gen-types.ts",
|
||||
"mocha": "test/run.sh",
|
||||
"test": "npm run gen && npm run build && npm run mocha",
|
||||
"clean": "ts-emit-clean",
|
||||
"build": "tsc && ts-add-module-exports",
|
||||
"prepack": "npm run clean && npm run gen && npm run build",
|
||||
"postpack": "npm run clean"
|
||||
},
|
||||
"dependencies": {
|
||||
"tslib": "^2.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/parser": "7.7.7",
|
||||
"@babel/types": "7.4.4",
|
||||
"@types/esprima": "4.0.2",
|
||||
"@types/glob": "7.1.1",
|
||||
"@types/mocha": "5.2.6",
|
||||
"@types/node": "12.0.0",
|
||||
"espree": "7.3.0",
|
||||
"esprima": "4.0.1",
|
||||
"esprima-fb": "15001.1001.0-dev-harmony-fb",
|
||||
"flow-parser": "0.132.0",
|
||||
"glob": "7.1.6",
|
||||
"mocha": "6.1.4",
|
||||
"recast": "0.20.0",
|
||||
"reify": "0.20.12",
|
||||
"ts-add-module-exports": "1.0.0",
|
||||
"ts-emit-clean": "1.0.0",
|
||||
"ts-node": "7.0.1",
|
||||
"typescript": "3.9.7"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
}
|
||||
21
node_modules/ast-types/tsconfig.json
generated
vendored
Normal file
21
node_modules/ast-types/tsconfig.json
generated
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "es5",
|
||||
"module": "commonjs",
|
||||
"declaration": true,
|
||||
"rootDir": ".",
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"noImplicitReturns": true,
|
||||
"moduleResolution": "node",
|
||||
"esModuleInterop": true,
|
||||
"importHelpers": true,
|
||||
"stripInternal": true,
|
||||
"lib": ["es2015"]
|
||||
},
|
||||
"exclude": [
|
||||
"node_modules",
|
||||
"test/data"
|
||||
]
|
||||
}
|
||||
6
node_modules/ast-types/types.d.ts
generated
vendored
Normal file
6
node_modules/ast-types/types.d.ts
generated
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
export declare type Fork = {
|
||||
use<T>(plugin: Plugin<T>): T;
|
||||
};
|
||||
export declare type Plugin<T> = (fork: Fork) => T;
|
||||
export declare type Def = Plugin<void>;
|
||||
export declare type Omit<T, K> = Pick<T, Exclude<keyof T, K>>;
|
||||
2
node_modules/ast-types/types.js
generated
vendored
Normal file
2
node_modules/ast-types/types.js
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
Reference in New Issue
Block a user