Initial commit

This commit is contained in:
pasketti
2026-04-05 16:14:49 -04:00
commit ebee3a5534
14059 changed files with 2588797 additions and 0 deletions

21
node_modules/acorn-es7-plugin/LICENSE generated vendored Normal file
View File

@@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2015,2016 Matt Woolf (MatAtBread, MatAtWork)
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.

17
node_modules/acorn-es7-plugin/acorn-es7-plugin.js generated vendored Normal file
View File

@@ -0,0 +1,17 @@
module.exports = function(acorn) {
switch (parseInt(acorn.version)) {
case 2:
case 3:
acorn.plugins.asyncawait = require('./acorn-v3') ;
break ;
case 4:
acorn.plugins.asyncawait = require('./acorn-v4') ;
break ;
case 5:
acorn.plugins.asyncawait = require('./acorn-v4') ;
break ;
default:
throw new Error("acorn-es7-plugin requires Acorn v2, 3, 4 or 5") ;
}
return acorn
}

333
node_modules/acorn-es7-plugin/acorn-v3.js generated vendored Normal file
View File

@@ -0,0 +1,333 @@
var NotAsync = {} ;
var asyncExit = /^async[\t ]+(return|throw)/ ;
var asyncFunction = /^async[\t ]+function/ ;
var atomOrPropertyOrLabel = /^\s*[():;]/ ;
var removeComments = /([^\n])\/\*(\*(?!\/)|[^\n*])*\*\/([^\n])/g ;
var matchAsyncGet = /\s*(get|set)\s*\(/ ;
function hasLineTerminatorBeforeNext(st, since) {
return st.lineStart >= since;
}
function test(regex,st,noComment) {
var src = st.input.slice(st.start) ;
if (noComment) {
src = src.replace(removeComments,"$1 $3") ;
}
return regex.test(src);
}
/* Create a new parser derived from the specified parser, so that in the
* event of an error we can back out and try again */
function subParse(parser, pos, extensions,parens) {
var p = new parser.constructor(parser.options, parser.input, pos);
if (extensions)
for (var k in extensions)
p[k] = extensions[k] ;
var src = parser ;
var dest = p ;
['inFunction','inAsyncFunction','inAsync','inGenerator','inModule'].forEach(function(k){
if (k in src)
dest[k] = src[k] ;
}) ;
if (parens)
p.options.preserveParens = true ;
p.nextToken();
return p;
}
//TODO: Implement option noAsyncGetters
function asyncAwaitPlugin (parser,options){
var es7check = function(){} ;
parser.extend("initialContext",function(base){
return function(){
if (this.options.ecmaVersion < 7) {
es7check = function(node) {
parser.raise(node.start,"async/await keywords only available when ecmaVersion>=7") ;
} ;
}
this.reservedWords = new RegExp(this.reservedWords.toString().replace(/await|async/g,"").replace("|/","/").replace("/|","/").replace("||","|")) ;
this.reservedWordsStrict = new RegExp(this.reservedWordsStrict.toString().replace(/await|async/g,"").replace("|/","/").replace("/|","/").replace("||","|")) ;
this.reservedWordsStrictBind = new RegExp(this.reservedWordsStrictBind.toString().replace(/await|async/g,"").replace("|/","/").replace("/|","/").replace("||","|")) ;
this.inAsyncFunction = options.inAsyncFunction ;
if (options.awaitAnywhere && options.inAsyncFunction)
parser.raise(node.start,"The options awaitAnywhere and inAsyncFunction are mutually exclusive") ;
return base.apply(this,arguments);
}
}) ;
parser.extend("shouldParseExportStatement",function(base){
return function(){
if (this.type.label==='name' && this.value==='async' && test(asyncFunction,this)) {
return true ;
}
return base.apply(this,arguments) ;
}
}) ;
parser.extend("parseStatement",function(base){
return function (declaration, topLevel) {
var start = this.start;
var startLoc = this.startLoc;
if (this.type.label==='name') {
if (test(asyncFunction,this,true)) {
var wasAsync = this.inAsyncFunction ;
try {
this.inAsyncFunction = true ;
this.next() ;
var r = this.parseStatement(declaration, topLevel) ;
r.async = true ;
r.start = start;
r.loc && (r.loc.start = startLoc);
r.range && (r.range[0] = start);
return r ;
} finally {
this.inAsyncFunction = wasAsync ;
}
} else if ((typeof options==="object" && options.asyncExits) && test(asyncExit,this)) {
// NON-STANDARD EXTENSION iff. options.asyncExits is set, the
// extensions 'async return <expr>?' and 'async throw <expr>?'
// are enabled. In each case they are the standard ESTree nodes
// with the flag 'async:true'
this.next() ;
var r = this.parseStatement(declaration, topLevel) ;
r.async = true ;
r.start = start;
r.loc && (r.loc.start = startLoc);
r.range && (r.range[0] = start);
return r ;
}
}
return base.apply(this,arguments);
}
}) ;
parser.extend("parseIdent",function(base){
return function(liberal){
var id = base.apply(this,arguments);
if (this.inAsyncFunction && id.name==='await') {
if (arguments.length===0) {
this.raise(id.start,"'await' is reserved within async functions") ;
}
}
return id ;
}
}) ;
parser.extend("parseExprAtom",function(base){
return function(refShorthandDefaultPos){
var start = this.start ;
var startLoc = this.startLoc;
var rhs,r = base.apply(this,arguments);
if (r.type==='Identifier') {
if (r.name==='async' && !hasLineTerminatorBeforeNext(this, r.end)) {
// Is this really an async function?
var isAsync = this.inAsyncFunction ;
try {
this.inAsyncFunction = true ;
var pp = this ;
var inBody = false ;
var parseHooks = {
parseFunctionBody:function(node,isArrowFunction){
try {
var wasInBody = inBody ;
inBody = true ;
return pp.parseFunctionBody.apply(this,arguments) ;
} finally {
inBody = wasInBody ;
}
},
raise:function(){
try {
return pp.raise.apply(this,arguments) ;
} catch(ex) {
throw inBody?ex:NotAsync ;
}
}
} ;
rhs = subParse(this,this.start,parseHooks,true).parseExpression() ;
if (rhs.type==='SequenceExpression')
rhs = rhs.expressions[0] ;
if (rhs.type === 'CallExpression')
rhs = rhs.callee ;
if (rhs.type==='FunctionExpression' || rhs.type==='FunctionDeclaration' || rhs.type==='ArrowFunctionExpression') {
// Because we don't know if the top level parser supprts preserveParens, we have to re-parse
// without it set
rhs = subParse(this,this.start,parseHooks).parseExpression() ;
if (rhs.type==='SequenceExpression')
rhs = rhs.expressions[0] ;
if (rhs.type === 'CallExpression')
rhs = rhs.callee ;
rhs.async = true ;
rhs.start = start;
rhs.loc && (rhs.loc.start = startLoc);
rhs.range && (rhs.range[0] = start);
this.pos = rhs.end;
this.end = rhs.end ;
this.endLoc = rhs.endLoc ;
this.next();
es7check(rhs) ;
return rhs ;
}
} catch (ex) {
if (ex!==NotAsync)
throw ex ;
}
finally {
this.inAsyncFunction = isAsync ;
}
}
else if (r.name==='await') {
var n = this.startNodeAt(r.start, r.loc && r.loc.start);
if (this.inAsyncFunction) {
rhs = this.parseExprSubscripts() ;
n.operator = 'await' ;
n.argument = rhs ;
n = this.finishNodeAt(n,'AwaitExpression', rhs.end, rhs.loc && rhs.loc.end) ;
es7check(n) ;
return n ;
}
// NON-STANDARD EXTENSION iff. options.awaitAnywhere is true,
// an 'AwaitExpression' is allowed anywhere the token 'await'
// could not be an identifier with the name 'await'.
// Look-ahead to see if this is really a property or label called async or await
if (this.input.slice(r.end).match(atomOrPropertyOrLabel)) {
if (!options.awaitAnywhere && this.options.sourceType === 'module')
return this.raise(r.start,"'await' is reserved within modules") ;
return r ; // This is a valid property name or label
}
if (typeof options==="object" && options.awaitAnywhere) {
start = this.start ;
rhs = subParse(this,start-4).parseExprSubscripts() ;
if (rhs.end<=start) {
rhs = subParse(this,start).parseExprSubscripts() ;
n.operator = 'await' ;
n.argument = rhs ;
n = this.finishNodeAt(n,'AwaitExpression', rhs.end, rhs.loc && rhs.loc.end) ;
this.pos = rhs.end;
this.end = rhs.end ;
this.endLoc = rhs.endLoc ;
this.next();
es7check(n) ;
return n ;
}
}
if (!options.awaitAnywhere && this.options.sourceType === 'module')
return this.raise(r.start,"'await' is reserved within modules") ;
}
}
return r ;
}
}) ;
parser.extend('finishNodeAt',function(base){
return function(node,type,pos,loc) {
if (node.__asyncValue) {
delete node.__asyncValue ;
node.value.async = true ;
}
return base.apply(this,arguments) ;
}
}) ;
parser.extend('finishNode',function(base){
return function(node,type) {
if (node.__asyncValue) {
delete node.__asyncValue ;
node.value.async = true ;
}
return base.apply(this,arguments) ;
}
}) ;
var allowedPropSpecifiers = {
get:true,
set:true,
async:true
};
parser.extend("parsePropertyName",function(base){
return function (prop) {
var prevName = prop.key && prop.key.name ;
var key = base.apply(this,arguments) ;
if (key.type === "Identifier" && (key.name === "async") && !hasLineTerminatorBeforeNext(this, key.end)) {
// Look-ahead to see if this is really a property or label called async or await
if (!this.input.slice(key.end).match(atomOrPropertyOrLabel)){
// Cheese - eliminate the cases 'async get(){}' and async set(){}'
if (matchAsyncGet.test(this.input.slice(key.end))) {
key = base.apply(this,arguments) ;
prop.__asyncValue = true ;
} else {
es7check(prop) ;
if (prop.kind === 'set')
this.raise(key.start,"'set <member>(value)' cannot be be async") ;
key = base.apply(this,arguments) ;
if (key.type==='Identifier') {
if (key.name==='set')
this.raise(key.start,"'set <member>(value)' cannot be be async") ;
}
prop.__asyncValue = true ;
}
}
}
return key;
};
}) ;
parser.extend("parseClassMethod",function(base){
return function (classBody, method, isGenerator) {
var wasAsync ;
if (method.__asyncValue) {
if (method.kind==='constructor')
this.raise(method.start,"class constructor() cannot be be async") ;
wasAsync = this.inAsyncFunction ;
this.inAsyncFunction = true ;
}
var r = base.apply(this,arguments) ;
this.inAsyncFunction = wasAsync ;
return r ;
}
}) ;
parser.extend("parseMethod",function(base){
return function (isGenerator) {
var wasAsync ;
if (this.__currentProperty && this.__currentProperty.__asyncValue) {
wasAsync = this.inAsyncFunction ;
this.inAsyncFunction = true ;
}
var r = base.apply(this,arguments) ;
this.inAsyncFunction = wasAsync ;
return r ;
}
}) ;
parser.extend("parsePropertyValue",function(base){
return function (prop, isPattern, isGenerator, startPos, startLoc, refDestructuringErrors) {
var prevProp = this.__currentProperty ;
this.__currentProperty = prop ;
var wasAsync ;
if (prop.__asyncValue) {
wasAsync = this.inAsyncFunction ;
this.inAsyncFunction = true ;
}
var r = base.apply(this,arguments) ;
this.inAsyncFunction = wasAsync ;
this.__currentProperty = prevProp ;
return r ;
}
}) ;
}
module.exports = asyncAwaitPlugin ;

194
node_modules/acorn-es7-plugin/acorn-v4.js generated vendored Normal file
View File

@@ -0,0 +1,194 @@
var asyncExit = /^async[\t ]+(return|throw)/ ;
var atomOrPropertyOrLabel = /^\s*[):;]/ ;
var removeComments = /([^\n])\/\*(\*(?!\/)|[^\n*])*\*\/([^\n])/g ;
function hasLineTerminatorBeforeNext(st, since) {
return st.lineStart >= since;
}
function test(regex,st,noComment) {
var src = st.input.slice(st.start) ;
if (noComment) {
src = src.replace(removeComments,"$1 $3") ;
}
return regex.test(src);
}
/* Create a new parser derived from the specified parser, so that in the
* event of an error we can back out and try again */
function subParse(parser, pos, extensions) {
var p = new parser.constructor(parser.options, parser.input, pos);
if (extensions)
for (var k in extensions)
p[k] = extensions[k] ;
var src = parser ;
var dest = p ;
['inFunction','inAsync','inGenerator','inModule'].forEach(function(k){
if (k in src)
dest[k] = src[k] ;
}) ;
p.nextToken();
return p;
}
function asyncAwaitPlugin (parser,options){
if (!options || typeof options !== "object")
options = {} ;
parser.extend("parse",function(base){
return function(){
this.inAsync = options.inAsyncFunction ;
if (options.awaitAnywhere && options.inAsyncFunction)
parser.raise(node.start,"The options awaitAnywhere and inAsyncFunction are mutually exclusive") ;
return base.apply(this,arguments);
}
}) ;
parser.extend("parseStatement",function(base){
return function (declaration, topLevel) {
var start = this.start;
var startLoc = this.startLoc;
if (this.type.label==='name') {
if ((options.asyncExits) && test(asyncExit,this)) {
// TODO: Ensure this function is itself nested in an async function or Method
this.next() ;
var r = this.parseStatement(declaration, topLevel) ;
r.async = true ;
r.start = start;
r.loc && (r.loc.start = startLoc);
r.range && (r.range[0] = start);
return r ;
}
}
return base.apply(this,arguments);
}
}) ;
parser.extend("parseIdent",function(base){
return function(liberal) {
if (this.options.sourceType==='module' && this.options.ecmaVersion >= 8 && options.awaitAnywhere)
return base.call(this,true) ; // Force liberal mode if awaitAnywhere is set
return base.apply(this,arguments) ;
}
}) ;
parser.extend("parseExprAtom",function(base){
var NotAsync = {};
return function(refShorthandDefaultPos){
var start = this.start ;
var startLoc = this.startLoc;
var rhs,r = base.apply(this,arguments);
if (r.type==='Identifier') {
if (r.name==='await' && !this.inAsync) {
if (options.awaitAnywhere) {
var n = this.startNodeAt(r.start, r.loc && r.loc.start);
start = this.start ;
var parseHooks = {
raise:function(){
try {
return pp.raise.apply(this,arguments) ;
} catch(ex) {
throw /*inBody?ex:*/NotAsync ;
}
}
} ;
try {
rhs = subParse(this,start-4,parseHooks).parseExprSubscripts() ;
if (rhs.end<=start) {
rhs = subParse(this,start,parseHooks).parseExprSubscripts() ;
n.argument = rhs ;
n = this.finishNodeAt(n,'AwaitExpression', rhs.end, rhs.loc && rhs.loc.end) ;
this.pos = rhs.end;
this.end = rhs.end ;
this.endLoc = rhs.endLoc ;
this.next();
return n ;
}
} catch (ex) {
if (ex===NotAsync)
return r ;
throw ex ;
}
}
}
}
return r ;
}
}) ;
var allowedPropValues = {
undefined:true,
get:true,
set:true,
static:true,
async:true,
constructor:true
};
parser.extend("parsePropertyName",function(base){
return function (prop) {
var prevName = prop.key && prop.key.name ;
var key = base.apply(this,arguments) ;
if (this.value==='get') {
prop.__maybeStaticAsyncGetter = true ;
}
var next ;
if (allowedPropValues[this.value])
return key ;
if (key.type === "Identifier" && (key.name === "async" || prevName === "async") && !hasLineTerminatorBeforeNext(this, key.end)
// Look-ahead to see if this is really a property or label called async or await
&& !this.input.slice(key.end).match(atomOrPropertyOrLabel)) {
if (prop.kind === 'set' || key.name === 'set')
this.raise(key.start,"'set <member>(value)' cannot be be async") ;
else {
this.__isAsyncProp = true ;
key = base.apply(this,arguments) ;
if (key.type==='Identifier') {
if (key.name==='set')
this.raise(key.start,"'set <member>(value)' cannot be be async") ;
}
}
} else {
delete prop.__maybeStaticAsyncGetter ;
}
return key;
};
}) ;
parser.extend("parseClassMethod",function(base){
return function (classBody, method, isGenerator) {
var r = base.apply(this,arguments) ;
if (method.__maybeStaticAsyncGetter) {
delete method.__maybeStaticAsyncGetter ;
if (method.key.name!=='get')
method.kind = "get" ;
}
return r ;
}
}) ;
parser.extend("parseFunctionBody",function(base){
return function (node, isArrowFunction) {
var wasAsync = this.inAsync ;
if (this.__isAsyncProp) {
node.async = true ;
this.inAsync = true ;
delete this.__isAsyncProp ;
}
var r = base.apply(this,arguments) ;
this.inAsync = wasAsync ;
return r ;
}
}) ;
}
module.exports = asyncAwaitPlugin ;

16
node_modules/acorn-es7-plugin/package.json generated vendored Normal file
View File

@@ -0,0 +1,16 @@
{
"author": {
"name": "matatbread"
},
"description": "A plugin for the Acorn parser that understands the ES7 keywords async and await",
"homepage": "https://github.com/MatAtBread/acorn-es7-plugin#readme",
"license": "MIT",
"main": "acorn-es7-plugin.js",
"name": "acorn-es7-plugin",
"readmeFilename": "README.md",
"repository": {
"type": "git",
"url": "git+https://github.com/MatAtBread/acorn-es7-plugin.git"
},
"version": "1.1.7"
}