Merge pull request #10253 from asgerf/js/type-defs-squashed

JS: Add generated typings to SQL models
This commit is contained in:
Asger F
2022-09-23 11:34:01 +02:00
committed by GitHub
34 changed files with 3702 additions and 871 deletions

View File

@@ -0,0 +1,6 @@
---
category: minorAnalysis
---
- Several of the SQL and NoSQL library models have improved, leading to more results for the `js/sql-injection` query,
and in some cases the `js/missing-rate-limiting` query.

View File

@@ -99,6 +99,7 @@ import semmle.javascript.frameworks.JWT
import semmle.javascript.frameworks.Handlebars
import semmle.javascript.frameworks.History
import semmle.javascript.frameworks.Immutable
import semmle.javascript.frameworks.ImportGeneratedModels
import semmle.javascript.frameworks.Knex
import semmle.javascript.frameworks.LazyCache
import semmle.javascript.frameworks.LdapJS

View File

@@ -34,10 +34,19 @@ abstract class CredentialsNode extends DataFlow::Node {
abstract string getCredentialsKind();
}
/** Companion module to the `CredentialsExpr` class. */
module CredentialsExpr {
/** Normalizes a credentials kind, mapping `username` to `user name`. */
bindingset[kind]
string normalizeKind(string kind) {
if kind = "username" then result = "user name" else result = kind
}
}
private class CredentialsFromModel extends CredentialsNode {
string kind;
CredentialsFromModel() { this = ModelOutput::getASinkNode("credentials[" + kind + "]").asSink() }
override string getCredentialsKind() { result = kind }
override string getCredentialsKind() { result = CredentialsExpr::normalizeKind(kind) }
}

View File

@@ -0,0 +1,12 @@
/**
* Imports all generated models.
*/
private import minimongo.Model
private import mongodb.Model
private import mssql.Model
private import mysql.Model
private import pg.Model
private import sequelize.Model
private import spanner.Model
private import sqlite3.Model

View File

@@ -17,64 +17,14 @@ module NoSql {
deprecated module NoSQL = NoSql;
/**
* Gets a value that has been assigned to the "$where" property of an object that flows to `queryArg`.
*/
private DataFlow::Node getADollarWhereProperty(API::Node queryArg) {
result = queryArg.getMember("$where").asSink()
}
/**
* Provides classes modeling the MongoDB library.
* Provides classes modeling the `mongodb` and `mongoose` libraries.
*/
private module MongoDB {
/**
* Gets an access to `mongodb.MongoClient` or a database.
*
* In Mongo version 2.x, a client and a database handle were the same concept, but in 3.x
* they were separated. To handle everything with a single model, we treat them as the same here.
*/
private API::Node getAMongoClientOrDatabase() {
result = API::moduleImport("mongodb").getMember("MongoClient")
or
result = getAMongoClientOrDatabase().getMember("db").getReturn()
or
result = getAMongoClientOrDatabase().getMember("connect").getLastParameter().getParameter(1)
}
/** Gets a data flow node referring to a MongoDB collection. */
private API::Node getACollection() {
// A collection resulting from calling `Db.collection(...)`.
exists(API::Node collection |
collection = getAMongoClientOrDatabase().getMember("collection").getReturn()
|
result = collection
or
result = collection.getParameter(1).getParameter(0)
)
or
// note that this also covers `mongoose` models since they are subtypes of `mongodb.Collection`
result = API::Node::ofType("mongodb", "Collection")
}
/** A call to a MongoDB query method. */
private class QueryCall extends DatabaseAccess, API::CallNode {
int queryArgIdx;
QueryCall() {
exists(string method |
CollectionMethodSignatures::interpretsArgumentAsQuery(method, queryArgIdx) and
this = getACollection().getMember(method).getACall()
)
}
override DataFlow::Node getAQueryArgument() { result = this.getArgument(queryArgIdx) }
override DataFlow::Node getAResult() {
PromiseFlow::loadStep(this.getALocalUse(), result, Promises::valueProp())
}
DataFlow::Node getACodeOperator() {
result = getADollarWhereProperty(this.getParameter(queryArgIdx))
private class OldMongoDbAdapter extends ModelInput::TypeModelCsv {
override predicate row(string row) {
// In Mongo version 2.x, a client and a database handle were the same concept, but in 3.x
// they were separated. To handle everything with a single model, we treat them as the same here.
row = "mongodb;Db;mongodb;MongoClient;"
}
}
@@ -82,425 +32,58 @@ private module MongoDB {
* An expression that is interpreted as a MongoDB query.
*/
class Query extends NoSql::Query {
QueryCall qc;
private API::Node apiNode;
Query() { this = qc.getAQueryArgument() }
Query() { apiNode = ModelOutput::getASinkNode("mongodb.sink") and this = apiNode.asSink() }
override DataFlow::Node getACodeOperator() { result = qc.getACodeOperator() }
override DataFlow::Node getACodeOperator() { result = apiNode.getMember("$where").asSink() }
}
/**
* Provides signatures for the Collection methods.
*/
module CollectionMethodSignatures {
/**
* Holds if Collection method `name` interprets parameter `n` as a query.
*/
predicate interpretsArgumentAsQuery(string name, int n) {
// FilterQuery
(
name = "aggregate" and n = 0
or
name = "count" and n = 0
or
name = "countDocuments" and n = 0
or
name = "deleteMany" and n = 0
or
name = "deleteOne" and n = 0
or
name = "distinct" and n = 1
or
name = "find" and n = 0
or
name = "findOne" and n = 0
or
name = "findOneAndDelete" and n = 0
or
name = "findOneAndRemove" and n = 0
or
name = "findOneAndReplace" and n = 0
or
name = "findOneAndUpdate" and n = 0
or
name = "remove" and n = 0
or
name = "replaceOne" and n = 0
or
name = "update" and n = 0
or
name = "updateMany" and n = 0
or
name = "updateOne" and n = 0
)
/** A call to a MongoDB query method. */
private class QueryCall extends DatabaseAccess, API::CallNode {
QueryCall() {
this = ModelOutput::getATypeNode("mongodb", "Collection").getAMember().getACall() and
not this.getCalleeName() = ["toString", "valueOf", "getLogger"]
or
// UpdateQuery
(
name = "findOneAndUpdate" and n = 1
or
name = "update" and n = 1
or
name = "updateMany" and n = 1
or
name = "updateOne" and n = 1
)
}
}
}
/**
* Provides classes modeling the Mongoose library.
*/
private module Mongoose {
/**
* Gets an import of Mongoose.
*/
API::Node getAMongooseInstance() { result = API::moduleImport("mongoose") }
/**
* Gets a reference to `mongoose.createConnection`.
*/
API::Node createConnection() { result = getAMongooseInstance().getMember("createConnection") }
/**
* A Mongoose function.
*/
abstract private class MongooseFunction extends API::Node {
/**
* Gets the API-graph node for the result from this function (if the function returns a `Query`).
*/
abstract API::Node getQueryReturn();
/**
* Holds if this function returns a `Query` that evaluates to one or
* more Documents (`asArray` is false if it evaluates to a single
* Document).
*/
abstract predicate returnsDocumentQuery(boolean asArray);
/**
* Gets an argument that this function interprets as a query.
*/
abstract API::Node getQueryArgument();
}
/**
* Provides classes modeling the Mongoose Model class
*/
module Model {
private class ModelFunction extends MongooseFunction {
string methodName;
ModelFunction() { this = getModelObject().getMember(methodName) }
override API::Node getQueryReturn() {
MethodSignatures::returnsQuery(methodName) and result = this.getReturn()
}
override predicate returnsDocumentQuery(boolean asArray) {
MethodSignatures::returnsDocumentQuery(methodName, asArray)
}
override API::Node getQueryArgument() {
exists(int n |
MethodSignatures::interpretsArgumentAsQuery(methodName, n) and
result = this.getParameter(n)
)
}
this =
ModelOutput::getATypeNode("mongodb", ["Db", "MongoClient"])
.getMember(["watch", "aggregate"])
.getACall()
}
/**
* Gets a API-graph node referring to a Mongoose Model object.
*/
private API::Node getModelObject() {
result = getAMongooseInstance().getMember("model").getReturn()
or
exists(API::Node conn | conn = createConnection().getReturn() |
result = conn.getMember("model").getReturn() or
result = conn.getMember("models").getAMember()
)
or
result = API::Node::ofType("mongoose", "Model")
override DataFlow::Node getAQueryArgument() {
result = [this.getAnArgument(), this.getOptionArgument(_, _)] and
result = ModelOutput::getASinkNode("mongodb.sink").asSink()
}
/**
* Provides signatures for the Model methods.
*/
module MethodSignatures {
/**
* Holds if Model method `name` interprets parameter `n` as a query.
*/
predicate interpretsArgumentAsQuery(string name, int n) {
// implement lots of the MongoDB collection interface
MongoDB::CollectionMethodSignatures::interpretsArgumentAsQuery(name, n)
or
name = "find" + ["ById", "One"] + "AndUpdate" and n = 1
or
name in ["delete" + ["Many", "One"], "geoSearch", "remove", "replaceOne", "where"] and
n = 0
or
name in [
"find" + ["", "ById", "One"],
"find" + ["ById", "One"] + "And" + ["Delete", "Remove", "Update"],
"update" + ["", "Many", "One"]
] and
n = 0
}
/**
* Holds if Model method `name` returns a Query.
*/
predicate returnsQuery(string name) {
name =
[
"$where", "count", "findOne", "findOneAndDelete", "findOneAndRemove",
"findOneAndReplace", "findOneAndUpdate", "geosearch", "remove", "replaceOne", "update",
"updateMany", "countDocuments", "updateOne", "where", "deleteMany", "deleteOne", "find",
"findById", "findByIdAndDelete", "findByIdAndRemove", "findByIdAndUpdate"
]
}
/**
* Holds if Document method `name` returns a query that results in
* one or more documents, the documents are wrapped in an array
* if `asArray` is true.
*/
predicate returnsDocumentQuery(string name, boolean asArray) {
asArray = false and name = "findOne"
or
asArray = true and name = "find"
}
override DataFlow::Node getAResult() {
PromiseFlow::loadStep(this.getALocalUse(), result, Promises::valueProp())
}
}
/**
* Provides classes modeling the Mongoose Query class
*/
module Query {
private class QueryFunction extends MongooseFunction {
string methodName;
QueryFunction() { this = getAMongooseQuery().getMember(methodName) }
override API::Node getQueryReturn() {
MethodSignatures::returnsQuery(methodName) and result = this.getReturn()
}
override predicate returnsDocumentQuery(boolean asArray) {
MethodSignatures::returnsDocumentQuery(methodName, asArray)
}
override API::Node getQueryArgument() {
exists(int n |
MethodSignatures::interpretsArgumentAsQuery(methodName, n) and
result = this.getParameter(n)
)
}
private class Insertion extends DatabaseAccess, API::CallNode {
Insertion() {
this = ModelOutput::getATypeNode("mongodb", "Collection").getAMember().getACall() and
this.getCalleeName().matches("insert%")
}
private class NewQueryFunction extends MongooseFunction {
NewQueryFunction() { this = getAMongooseInstance().getMember("Query") }
override DataFlow::Node getAQueryArgument() { none() }
}
override API::Node getQueryReturn() { result = this.getInstance() }
override predicate returnsDocumentQuery(boolean asArray) { none() }
override API::Node getQueryArgument() { result = this.getParameter(2) }
}
/**
* Gets a data flow node referring to a Mongoose query object.
*/
API::Node getAMongooseQuery() {
result = any(MongooseFunction f).getQueryReturn()
or
result = API::Node::ofType("mongoose", "Query")
or
result =
getAMongooseQuery()
.getMember(any(string name | MethodSignatures::returnsQuery(name)))
.getReturn()
}
/**
* Provides signatures for the Query methods.
*/
module MethodSignatures {
/**
* Holds if Query method `name` interprets parameter `n` as a query.
*/
predicate interpretsArgumentAsQuery(string name, int n) {
n = 0 and
name =
[
"and", "count", "findOneAndReplace", "findOneAndUpdate", "merge", "nor", "or", "remove",
"replaceOne", "setQuery", "setUpdate", "update", "countDocuments", "updateMany",
"updateOne", "where", "deleteMany", "deleteOne", "elemMatch", "find", "findOne",
"findOneAndDelete", "findOneAndRemove"
]
or
n = 1 and
name = ["distinct", "findOneAndUpdate", "update", "updateMany", "updateOne"]
}
/**
* Holds if Query method `name` returns a Query.
*/
predicate returnsQuery(string name) {
name =
[
"$where", "J", "comment", "count", "countDocuments", "distinct", "elemMatch", "equals",
"error", "estimatedDocumentCount", "exists", "explain", "all", "find", "findById",
"findOne", "findOneAndRemove", "findOneAndUpdate", "geometry", "get", "gt", "gte",
"hint", "and", "in", "intersects", "lean", "limit", "lt", "lte", "map", "map",
"maxDistance", "maxTimeMS", "batchsize", "maxscan", "mod", "ne", "near", "nearSphere",
"nin", "or", "orFail", "polygon", "populate", "box", "read", "readConcern", "regexp",
"remove", "select", "session", "set", "setOptions", "setQuery", "setUpdate", "center",
"size", "skip", "slaveOk", "slice", "snapshot", "sort", "update", "w", "where",
"within", "centerSphere", "wtimeout", "circle", "collation"
]
}
/**
* Holds if Query method `name` returns a query that results in
* one or more documents, the documents are wrapped in an array
* if `asArray` is true.
*/
predicate returnsDocumentQuery(string name, boolean asArray) {
asArray = false and name = "findOne"
or
asArray = true and name = "find"
}
}
private API::Node credentialsObject() {
result = API::Node::ofType("mongodb", "Auth")
or
result = API::Node::ofType("mongoose", "ConnectOptions")
}
/**
* Provides classes modeling the Mongoose Document class
*/
module Document {
private class DocumentFunction extends MongooseFunction {
string methodName;
DocumentFunction() { this = getAMongooseDocument().getMember(methodName) }
override API::Node getQueryReturn() {
MethodSignatures::returnsQuery(methodName) and result = this.getReturn()
}
override predicate returnsDocumentQuery(boolean asArray) {
MethodSignatures::returnsDocumentQuery(methodName, asArray)
}
override API::Node getQueryArgument() {
exists(int n |
MethodSignatures::interpretsArgumentAsQuery(methodName, n) and
result = this.getParameter(n)
)
}
}
/**
* A Mongoose Document that is retrieved from the backing database.
*/
class RetrievedDocument extends API::Node {
RetrievedDocument() {
exists(boolean asArray, API::Node param |
exists(MongooseFunction func |
func.returnsDocumentQuery(asArray) and
param = func.getLastParameter().getParameter(1)
)
or
exists(API::Node f |
f = Query::getAMongooseQuery().getMember("then") and
param = f.getParameter(0).getParameter(0)
or
f = Query::getAMongooseQuery().getMember("exec") and
param = f.getParameter(0).getParameter(1)
|
exists(DataFlow::MethodCallNode pred |
// limitation: look at the previous method call
Query::MethodSignatures::returnsDocumentQuery(pred.getMethodName(), asArray) and
pred.getAMethodCall() = f.getACall()
)
)
|
asArray = false and this = param
or
asArray = true and
// limitation: look for direct accesses
this = param.getUnknownMember()
)
}
}
/**
* Gets a data flow node referring to a Mongoose Document object.
*/
private API::Node getAMongooseDocument() {
result instanceof RetrievedDocument
or
result = API::Node::ofType("mongoose", "Document")
or
result =
getAMongooseDocument()
.getMember(any(string name | MethodSignatures::returnsDocument(name)))
.getReturn()
}
private module MethodSignatures {
/**
* Holds if Document method `name` returns a Query.
*/
predicate returnsQuery(string name) {
// Documents are subtypes of Models
Model::MethodSignatures::returnsQuery(name) or
name = "replaceOne" or
name = "update" or
name = "updateOne"
}
/**
* Holds if Document method `name` interprets parameter `n` as a query.
*/
predicate interpretsArgumentAsQuery(string name, int n) {
// Documents are subtypes of Models
Model::MethodSignatures::interpretsArgumentAsQuery(name, n)
or
n = 0 and
(
name = "replaceOne" or
name = "update" or
name = "updateOne"
)
}
/**
* Holds if Document method `name` returns a query that results in
* one or more documents, the documents are wrapped in an array
* if `asArray` is true.
*/
predicate returnsDocumentQuery(string name, boolean asArray) {
// Documents are subtypes of Models
Model::MethodSignatures::returnsDocumentQuery(name, asArray)
}
/**
* Holds if Document method `name` returns a Document.
*/
predicate returnsDocument(string name) {
name = ["depopulate", "init", "populate", "overwrite"]
}
}
}
/**
* An expression passed to `mongoose.createConnection` to supply credentials.
* An expression passed to `mongodb` or `mongoose` to supply credentials.
*/
class Credentials extends CredentialsNode {
string kind;
Credentials() {
exists(string prop | this = createConnection().getParameter(3).getMember(prop).asSink() |
exists(string prop | this = credentialsObject().getMember(prop).asSink() |
prop = "user" and kind = "user name"
or
prop = "pass" and kind = "password"
@@ -509,123 +92,81 @@ private module Mongoose {
override string getCredentialsKind() { result = kind }
}
/**
* An expression that is interpreted as a (part of a) MongoDB query.
*/
class MongoDBQueryPart extends NoSql::Query {
MongooseFunction f;
MongoDBQueryPart() { this = f.getQueryArgument().asSink() }
override DataFlow::Node getACodeOperator() {
result = getADollarWhereProperty(f.getQueryArgument())
}
}
/**
* An evaluation of a MongoDB query.
*/
class ShorthandQueryEvaluation extends DatabaseAccess, DataFlow::InvokeNode {
MongooseFunction f;
ShorthandQueryEvaluation() {
this = f.getACall() and
// shorthand for execution: provide a callback
exists(f.getQueryReturn()) and
exists(this.getCallback(this.getNumArgument() - 1))
}
override DataFlow::Node getAQueryArgument() {
// NB: the complete information is not easily accessible for deeply chained calls
f.getQueryArgument().asSink() = result
}
override DataFlow::Node getAResult() {
result = this.getCallback(this.getNumArgument() - 1).getParameter(1)
}
}
class ExplicitQueryEvaluation extends DatabaseAccess, DataFlow::CallNode {
string member;
ExplicitQueryEvaluation() {
// explicit execution using a Query method call
member = ["exec", "then", "catch"] and
Query::getAMongooseQuery().getMember(member).getACall() = this
}
private int resultParamIndex() {
member = "then" and result = 0
or
member = "exec" and result = 1
}
override DataFlow::Node getAResult() {
result = this.getCallback(_).getParameter(this.resultParamIndex())
}
override DataFlow::Node getAQueryArgument() {
// NB: the complete information is not easily accessible for deeply chained calls
none()
}
}
}
/**
* Provides classes modeling the Minimongo library.
*/
private module Minimongo {
private module Mongoose {
/**
* Provides signatures for the Collection methods.
* A call that submits a mongoose query object to the database.
*
* Much of the mongoose API is for constructing intermdiate query objects, which are ultimately submitted by a call
* to `exec` or `then`. The inputs to such query constructors are treated as `mongodb.sink`s in the MaD model.
* Here we just mark the final call as a `DatabaseAccess`.
*/
module CollectionMethodSignatures {
/**
* Holds if Collection method `name` interprets parameter `queryArgIdx` as a query.
*/
predicate interpretsArgumentAsQuery(string name, int queryArgIdx) {
// implements most of the MongoDB interface
MongoDB::CollectionMethodSignatures::interpretsArgumentAsQuery(name, queryArgIdx)
}
}
/** A call to a Minimongo query method. */
private class QueryCall extends DatabaseAccess, API::CallNode {
int queryArgIdx;
QueryCall() {
exists(string m |
this =
API::moduleImport("minimongo")
.getAMember()
.getReturn()
.getAMember()
.getMember(m)
.getACall() and
CollectionMethodSignatures::interpretsArgumentAsQuery(m, queryArgIdx)
)
this =
ModelOutput::getATypeNode("mongoose", "Query")
.getMember(["exec", "then", "catch"])
.getACall()
}
override DataFlow::Node getAQueryArgument() { result = this.getArgument(queryArgIdx) }
override DataFlow::Node getAQueryArgument() { result = this.getReceiver() }
override DataFlow::Node getAResult() {
PromiseFlow::loadStep(this.getALocalUse(), result, Promises::valueProp())
}
DataFlow::Node getACodeOperator() {
result = getADollarWhereProperty(this.getParameter(queryArgIdx))
this.getCalleeName() = ["then", "exec"] and
result = this.getReturn().getPromised().asSource()
or
this.getCalleeName() = "then" and
result = this.getParameter(0).getParameter(0).asSource()
or
this.getCalleeName() = "exec" and
result = this.getLastParameter().getParameter(1).asSource()
}
}
/**
* An expression that is interpreted as a Minimongo query.
* A method call on `Document`, `Model` or `Query` returning a `Query` and taking a callback argument.
*
* This will execute the query immediately.
*/
class Query extends NoSql::Query {
QueryCall qc;
private class QueryWithCallback extends DatabaseAccess, API::CallNode {
QueryWithCallback() {
this =
ModelOutput::getATypeNode("mongoose", ["Document", "Model", "Query"])
.getAMember()
.getACall() and
this.getReturn() = ModelOutput::getATypeNode("mongoose", "Query") and
exists(this.getLastArgument().getABoundFunctionValue(_))
}
Query() { this = qc.getAQueryArgument() }
override DataFlow::Node getAQueryArgument() { result = this } // the call returns the query whose execution has started
override DataFlow::Node getACodeOperator() { result = qc.getACodeOperator() }
override DataFlow::Node getAResult() {
result = this.getLastParameter().getParameter(1).asSource()
}
}
/** An `await`'ed mongoose query, similar to calling `then()`. */
private class QueryAwait extends DatabaseAccess, DataFlow::ValueNode {
override AwaitExpr astNode;
QueryAwait() {
astNode.getOperand().flow() =
ModelOutput::getATypeNode("mongoose", "Query").getAValueReachableFromSource()
}
override DataFlow::Node getAQueryArgument() { result = astNode.getOperand().flow() }
override DataFlow::Node getAResult() { result = this }
}
class Insertion extends DatabaseAccess, API::CallNode {
Insertion() {
this = ModelOutput::getATypeNode("mongoose", "Model").getAMember().getACall() and
this.getCalleeName().matches("insert%")
}
override DataFlow::Node getAQueryArgument() { none() }
}
}
@@ -633,59 +174,17 @@ private module Minimongo {
* Provides classes modeling the MarsDB library.
*/
private module MarsDB {
private class MarsDBAccess extends DatabaseAccess, DataFlow::CallNode {
string method;
MarsDBAccess() {
this =
API::moduleImport("marsdb")
.getMember("Collection")
.getInstance()
.getMember(method)
.getACall()
// 'marsdb' has no typings and is archived.
// We just model is as a variant of 'mongoose'.
private class MongooseExtension extends ModelInput::TypeModelCsv {
override predicate row(string row) {
row =
[
"mongoose;Query;marsdb;;Member[Collection].Instance",
"mongoose;Model;marsdb;;Member[Collection].Instance",
"mongoose;Query;mongoose;Query;Member[sortFunc].ReturnValue",
]
}
string getMethod() { result = method }
override DataFlow::Node getAResult() {
PromiseFlow::loadStep(this.getALocalUse(), result, Promises::valueProp())
}
override DataFlow::Node getAQueryArgument() { none() }
}
/** A call to a MarsDB query method. */
private class QueryCall extends MarsDBAccess, API::CallNode {
int queryArgIdx;
QueryCall() {
exists(string m |
this.getMethod() = m and
// implements parts of the Minimongo interface
Minimongo::CollectionMethodSignatures::interpretsArgumentAsQuery(m, queryArgIdx)
)
}
override DataFlow::Node getAResult() {
PromiseFlow::loadStep(this.getALocalUse(), result, Promises::valueProp())
}
override DataFlow::Node getAQueryArgument() { result = this.getArgument(queryArgIdx) }
DataFlow::Node getACodeOperator() {
result = getADollarWhereProperty(this.getParameter(queryArgIdx))
}
}
/**
* An expression that is interpreted as a MarsDB query.
*/
class Query extends NoSql::Query {
QueryCall qc;
Query() { this = qc.getAQueryArgument() }
override DataFlow::Node getACodeOperator() { result = qc.getACodeOperator() }
}
}

View File

@@ -37,49 +37,13 @@ private module MySql {
/** Gets the package name `mysql` or `mysql2`. */
API::Node mysql() { result = API::moduleImport(moduleName()) }
/** Gets a reference to `mysql.createConnection`. */
API::Node createConnection() {
result = mysql().getMember(["createConnection", "createConnectionPromise"])
}
/** Gets a reference to `mysql.createPool`. */
API::Node createPool() { result = mysql().getMember(["createPool", "createPoolCluster"]) }
/** Gets a node that contains a MySQL pool created using `mysql.createPool()`. */
API::Node pool() {
result = createPool().getReturn()
or
result = pool().getMember("on").getReturn()
or
result = API::Node::ofType(moduleName(), ["Pool", "PoolCluster"])
}
/** Gets a data flow node that contains a freshly created MySQL connection instance. */
API::Node connection() {
result = createConnection().getReturn()
or
result = createConnection().getReturn().getPromised()
or
result = pool().getMember("getConnection").getParameter(0).getParameter(1)
or
result = pool().getMember("getConnection").getPromised()
or
exists(API::CallNode call |
call = pool().getMember("on").getACall() and
call.getArgument(0).getStringValue() = ["connection", "acquire", "release"] and
result = call.getParameter(1).getParameter(0)
)
or
result = API::Node::ofType(moduleName(), ["Connection", "PoolConnection"])
private API::Node connectionOrPool() {
result = API::Node::ofType(moduleName(), ["Connection", "Pool"])
}
/** A call to the MySql `query` method. */
private class QueryCall extends DatabaseAccess, DataFlow::MethodCallNode {
QueryCall() {
exists(API::Node recv | recv = pool() or recv = connection() |
this = recv.getMember(["query", "execute"]).getACall()
)
}
QueryCall() { this = connectionOrPool().getMember(["query", "execute"]).getACall() }
override DataFlow::Node getAResult() { result = this.getCallback(_).getParameter(1) }
@@ -96,20 +60,23 @@ private module MySql {
/** A call to the `escape` or `escapeId` method that performs SQL sanitization. */
class EscapingSanitizer extends SQL::SqlSanitizer instanceof API::CallNode {
EscapingSanitizer() {
this = [mysql(), pool(), connection()].getMember(["escape", "escapeId"]).getACall() and
this = [mysql(), connectionOrPool()].getMember(["escape", "escapeId"]).getACall() and
input = this.getArgument(0) and
output = this
}
}
private API::Node connectionOptions() {
result = API::Node::ofType(moduleName(), "ConnectionOptions")
}
/** An expression that is passed as user name or password to `mysql.createConnection`. */
class Credentials extends CredentialsNode {
string kind;
Credentials() {
exists(API::Node callee, string prop |
callee in [createConnection(), createPool()] and
this = callee.getParameter(0).getMember(prop).asSink() and
exists(string prop |
this = connectionOptions().getMember(prop).asSink() and
(
prop = "user" and kind = "user name"
or
@@ -126,61 +93,19 @@ private module MySql {
* Provides classes modeling the PostgreSQL packages, such as `pg` and `pg-promise`.
*/
private module Postgres {
API::Node pg() {
result = API::moduleImport("pg")
or
result = pgpMain().getMember("pg")
}
/** Gets a reference to the `Client` constructor in the `pg` package, for example `require('pg').Client`. */
API::Node newClient() { result = pg().getMember("Client") }
/** Gets a freshly created Postgres client instance. */
API::Node client() {
result = newClient().getInstance()
API::Node clientOrPoolConstructor() {
result = API::Node::ofType("pg", ["ClientStatic", "PoolStatic"])
or
// pool.connect(function(err, client) { ... })
result = pool().getMember("connect").getParameter(0).getParameter(1)
or
// await pool.connect()
result = pool().getMember("connect").getReturn().getPromised()
or
result = pgpConnection().getMember("client")
or
exists(API::CallNode call |
call = pool().getMember("on").getACall() and
call.getArgument(0).getStringValue() = ["connect", "acquire"] and
result = call.getParameter(1).getParameter(0)
)
or
result = client().getMember("on").getReturn()
or
result = API::Node::ofType("pg", ["Client", "PoolClient"])
}
/** Gets a constructor that when invoked constructs a new connection pool. */
API::Node newPool() {
// new require('pg').Pool()
result = pg().getMember("Pool")
or
// new require('pg-pool')
result = API::moduleImport("pg-pool")
}
/** Gets an API node that refers to a connection pool. */
API::Node pool() {
result = newPool().getInstance()
or
result = pgpDatabase().getMember("$pool")
or
result = pool().getMember("on").getReturn()
or
result = API::Node::ofType("pg", "Pool")
}
/** Gets a freshly created Postgres client instance. */
API::Node clientOrPool() { result = API::Node::ofType("pg", ["Client", "PoolClient", "Pool"]) }
/** A call to the Postgres `query` method. */
private class QueryCall extends DatabaseAccess, DataFlow::MethodCallNode {
QueryCall() { this = [client(), pool()].getMember("query").getACall() }
QueryCall() { this = clientOrPool().getMember(["execute", "query"]).getACall() }
override DataFlow::Node getAResult() {
this.getNumArgument() = 2 and
@@ -210,7 +135,7 @@ private module Postgres {
Credentials() {
exists(string prop |
this = [newClient(), newPool()].getParameter(0).getMember(prop).asSink()
this = clientOrPoolConstructor().getParameter(0).getMember(prop).asSink()
or
this = pgPromise().getParameter(0).getMember(prop).asSink()
|
@@ -226,46 +151,8 @@ private module Postgres {
/** Gets a node referring to the `pg-promise` library (which is not itself a Promise). */
API::Node pgPromise() { result = API::moduleImport("pg-promise") }
/** Gets an initialized `pg-promise` library. */
API::Node pgpMain() {
result = pgPromise().getReturn()
or
result = API::Node::ofType("pg-promise", "IMain")
}
/** Gets a database from `pg-promise`. */
API::Node pgpDatabase() {
result = pgpMain().getReturn()
or
result = API::Node::ofType("pg-promise", "IDatabase")
}
/** Gets a connection created from a `pg-promise` database. */
API::Node pgpConnection() {
result = pgpDatabase().getMember("connect").getReturn().getPromised()
or
result = API::Node::ofType("pg-promise", "IConnected")
}
/** Gets a `pg-promise` task object. */
API::Node pgpTask() {
exists(API::Node taskMethod |
taskMethod = pgpObject().getMember(["task", "taskIf", "tx", "txIf"])
|
result = taskMethod.getParameter([0, 1]).getParameter(0)
or
result = taskMethod.getParameter(0).getMember("cnd").getParameter(0)
)
or
result = API::Node::ofType("pg-promise", "ITask")
}
/** Gets a `pg-promise` object which supports querying (database, connection, or task). */
API::Node pgpObject() {
result = [pgpDatabase(), pgpConnection(), pgpTask()]
or
result = API::Node::ofType("pg-promise", "IBaseProtocol")
}
API::Node pgpObject() { result = API::Node::ofType("pg-promise", "IBaseProtocol") }
private string pgpQueryMethodName() {
result =
@@ -357,35 +244,13 @@ private module Postgres {
* Provides classes modeling the `sqlite3` package.
*/
private module Sqlite {
/** Gets a reference to the `sqlite3` module. */
API::Node sqlite() {
result = API::moduleImport("sqlite3")
or
result = sqlite().getMember("verbose").getReturn()
}
/** Gets an expression that constructs or returns a Sqlite database instance. */
API::Node database() {
// new require('sqlite3').Database()
result = sqlite().getMember("Database").getInstance()
or
// chained call
result = getAChainingQueryCall()
or
result = API::Node::ofType("sqlite3", "Database")
}
/** Gets a call to a query method on a Sqlite database instance that returns the same instance. */
private API::Node getAChainingQueryCall() {
result = database().getMember(["all", "each", "exec", "get", "run"]).getReturn()
}
API::Node database() { result = API::Node::ofType("sqlite3", "Database") }
/** A call to a Sqlite query method. */
private class QueryCall extends DatabaseAccess, DataFlow::MethodCallNode {
QueryCall() {
this = getAChainingQueryCall().asSource()
or
this = database().getMember("prepare").getACall()
this = database().getMember(["all", "each", "exec", "get", "prepare", "run"]).getACall()
}
override DataFlow::Node getAResult() {
@@ -409,31 +274,13 @@ private module MsSql {
/** Gets a reference to the `mssql` module. */
API::Node mssql() { result = API::moduleImport("mssql") }
/** Gets a node referring to an instance of the given class. */
API::Node mssqlClass(string name) {
result = mssql().getMember(name).getInstance()
or
result = API::Node::ofType("mssql", name)
/** Gets an API node corresponding to a type with a `query` or `batch` method. */
API::Node queryable() {
result = API::Node::ofType("mssql", ["Request", "ConnectionPool"]) or result = mssql()
}
/** Gets an API node referring to a Request object. */
API::Node request() {
result = mssqlClass("Request")
or
result = request().getMember(["input", "replaceInput", "output", "replaceOutput"]).getReturn()
or
result = [transaction(), pool()].getMember("request").getReturn()
}
/** Gets an API node referring to a Transaction object. */
API::Node transaction() {
result = mssqlClass("Transaction")
or
result = pool().getMember("transaction").getReturn()
}
/** Gets a API node referring to a ConnectionPool object. */
API::Node pool() { result = mssqlClass("ConnectionPool") }
/** Gets an API node referring to a configuration object. */
API::Node config() { result = API::Node::ofType("mssql", "config") }
/** A tagged template evaluated as a query. */
private class QueryTemplateExpr extends DatabaseAccess, DataFlow::ValueNode, DataFlow::SourceNode {
@@ -455,7 +302,7 @@ private module MsSql {
/** A call to a MsSql query method. */
private class QueryCall extends DatabaseAccess, DataFlow::MethodCallNode {
QueryCall() { this = [mssql(), request()].getMember(["query", "batch"]).getACall() }
QueryCall() { this = queryable().getMember(["query", "batch"]).getACall() }
override DataFlow::Node getAResult() {
result = this.getCallback(1).getParameter(1)
@@ -489,13 +336,8 @@ private module MsSql {
string kind;
Credentials() {
exists(API::Node callee, string prop |
(
callee = mssql().getMember("connect")
or
callee = mssql().getMember("ConnectionPool")
) and
this = callee.getParameter(0).getMember(prop).asSink() and
exists(string prop |
this = config().getMember(prop).asSink() and
(
prop = "user" and kind = "user name"
or
@@ -512,34 +354,7 @@ private module MsSql {
* Provides classes modeling the `sequelize` package.
*/
private module Sequelize {
class SequelizeModel extends ModelInput::TypeModelCsv {
override predicate row(string row) {
// package1;type1;package2;type2;path
row =
[
"sequelize;;sequelize-typescript;;", //
"sequelize;Sequelize;sequelize;default;", //
"sequelize;Sequelize;sequelize;;Instance",
"sequelize;Sequelize;sequelize;;Member[Sequelize].Instance",
]
}
}
class SequelizeSink extends ModelInput::SinkModelCsv {
override predicate row(string row) {
row =
[
"sequelize;Sequelize;Member[query].Argument[0];sql-injection",
"sequelize;Sequelize;Member[query].Argument[0].Member[query];sql-injection",
"sequelize;;Member[literal,asIs].Argument[0];sql-injection",
"sequelize;;Argument[1];credentials[user name]",
"sequelize;;Argument[2];credentials[password]",
"sequelize;;Argument[0..].Member[username];credentials[user name]",
"sequelize;;Argument[0..].Member[password];credentials[password]"
]
}
}
// Note: the sinks are specified directly in the MaD model
class SequelizeSource extends ModelInput::SourceModelCsv {
override predicate row(string row) {
row = "sequelize;Sequelize;Member[query].ReturnValue.Awaited;database-access-result"
@@ -548,31 +363,6 @@ private module Sequelize {
}
private module SpannerCsv {
class SpannerTypes extends ModelInput::TypeModelCsv {
override predicate row(string row) {
// package1; type1; package2; type2; path
row =
[
"@google-cloud/spanner;;@google-cloud/spanner;;Member[Spanner]",
"@google-cloud/spanner;Database;@google-cloud/spanner;;ReturnValue.Member[instance].ReturnValue.Member[database].ReturnValue",
"@google-cloud/spanner;v1.SpannerClient;@google-cloud/spanner;;Member[v1].Member[SpannerClient].Instance",
"@google-cloud/spanner;Transaction;@google-cloud/spanner;Database;Member[runTransaction,runTransactionAsync,getTransaction].Argument[0..1].Parameter[1]",
"@google-cloud/spanner;Transaction;@google-cloud/spanner;Database;Member[getTransaction].ReturnValue.Awaited",
"@google-cloud/spanner;Snapshot;@google-cloud/spanner;Database;Member[getSnapshot].Argument[0..1].Parameter[1]",
"@google-cloud/spanner;Snapshot;@google-cloud/spanner;Database;Member[getSnapshot].ReturnValue.Awaited",
"@google-cloud/spanner;BatchTransaction;@google-cloud/spanner;Database;Member[batchTransaction].ReturnValue",
"@google-cloud/spanner;BatchTransaction;@google-cloud/spanner;Database;Member[createBatchTransaction].ReturnValue.Awaited",
"@google-cloud/spanner;~SqlExecutorDirect;@google-cloud/spanner;Database;Member[run,runPartitionedUpdate,runStream]",
"@google-cloud/spanner;~SqlExecutorDirect;@google-cloud/spanner;Transaction;Member[run,runStream,runUpdate]",
"@google-cloud/spanner;~SqlExecutorDirect;@google-cloud/spanner;BatchTransaction;Member[createQueryPartitions]",
"@google-cloud/spanner;~SpannerObject;@google-cloud/spanner;v1.SpannerClient;",
"@google-cloud/spanner;~SpannerObject;@google-cloud/spanner;Database;",
"@google-cloud/spanner;~SpannerObject;@google-cloud/spanner;Transaction;",
"@google-cloud/spanner;~SpannerObject;@google-cloud/spanner;Snapshot;",
]
}
}
class SpannerSinks extends ModelInput::SinkModelCsv {
override predicate row(string row) {
// package; type; path; kind
@@ -582,7 +372,6 @@ private module SpannerCsv {
"@google-cloud/spanner;~SqlExecutorDirect;Argument[0].Member[sql];sql-injection",
"@google-cloud/spanner;Transaction;Member[batchUpdate].Argument[0];sql-injection",
"@google-cloud/spanner;Transaction;Member[batchUpdate].Argument[0].ArrayElement.Member[sql];sql-injection",
"@google-cloud/spanner;v1.SpannerClient;Member[executeSql,executeStreamingSql].Argument[0].Member[sql];sql-injection",
]
}
}

View File

@@ -502,7 +502,12 @@ private API::Node getNodeFromSubPath(API::Node base, AccessPath subPath, int n)
result =
getNodeFromSubPath(getNodeFromSubPath(base, subPath, n - 1), getSubPathAt(subPath, n - 1))
or
typeStep(getNodeFromSubPath(base, subPath, n), result)
typeStep(getNodeFromSubPath(base, subPath, n), result) and
// Only apply type-steps strictly between the steps on the sub path, not before and after.
// Steps before/after lead to unnecessary transitive edges, which the user of the sub-path
// will themselves find by following type-steps.
n > 0 and
n < subPath.getNumToken()
}
/**

View File

@@ -0,0 +1,86 @@
/** Generated model file */
private import javascript
private class Types extends ModelInput::TypeModelCsv {
override predicate row(string row) {
row =
[
"minimongo/IndexedDb;IndexedDbCollection;minimongo/IndexedDb;IndexedDbCollectionStatic;Instance", //
"minimongo/IndexedDb;IndexedDbCollection;minimongo/lib/IndexedDb;default;Member[collections].AnyMember", //
"minimongo/MemoryDb;Collection;minimongo/MemoryDb;CollectionStatic;Instance", //
"minimongo/MemoryDb;Collection;minimongo/lib/MemoryDb;default;Member[collections].AnyMember", //
"minimongo/RemoteDb;Collection;minimongo/RemoteDb;CollectionStatic;Instance", //
"minimongo/RemoteDb;Collection;minimongo/lib/RemoteDb;default;Member[collections].AnyMember", //
"minimongo/ReplicatingDb;Collection;minimongo/ReplicatingDb;CollectionStatic;Instance", //
"minimongo/ReplicatingDb;Collection;minimongo/lib/ReplicatingDb;default;Member[collections].AnyMember", //
"minimongo/lib/HybridDb;default;minimongo/lib/HybridDb;defaultStatic;Instance", //
"minimongo/lib/HybridDb;defaultStatic;minimongo/lib/HybridDb;;Member[default]", //
"minimongo/lib/HybridDb;defaultStatic;minimongo;;Member[HybridDb]", //
"minimongo/lib/IndexedDb;default;minimongo/lib/IndexedDb;defaultStatic;Instance", //
"minimongo/lib/IndexedDb;default;minimongo;;Member[utils].Member[autoselectLocalDb].ReturnValue", //
"minimongo/lib/IndexedDb;defaultStatic;minimongo/lib/IndexedDb;;Member[default]", //
"minimongo/lib/IndexedDb;defaultStatic;minimongo;;Member[IndexedDb]", //
"minimongo/lib/LocalStorageDb;default;minimongo/lib/LocalStorageDb;defaultStatic;Instance", //
"minimongo/lib/LocalStorageDb;default;minimongo;;Member[utils].Member[autoselectLocalDb].ReturnValue", //
"minimongo/lib/LocalStorageDb;defaultStatic;minimongo/lib/LocalStorageDb;;Member[default]", //
"minimongo/lib/LocalStorageDb;defaultStatic;minimongo;;Member[LocalStorageDb]", //
"minimongo/lib/MemoryDb;default;minimongo/lib/MemoryDb;defaultStatic;Instance", //
"minimongo/lib/MemoryDb;default;minimongo;;Member[utils].Member[autoselectLocalDb].ReturnValue", //
"minimongo/lib/MemoryDb;defaultStatic;minimongo/lib/MemoryDb;;Member[default]", //
"minimongo/lib/MemoryDb;defaultStatic;minimongo;;Member[MemoryDb]", //
"minimongo/lib/RemoteDb;default;minimongo/lib/RemoteDb;defaultStatic;Instance", //
"minimongo/lib/RemoteDb;defaultStatic;minimongo/lib/RemoteDb;;Member[default]", //
"minimongo/lib/RemoteDb;defaultStatic;minimongo;;Member[RemoteDb]", //
"minimongo/lib/ReplicatingDb;default;minimongo/lib/ReplicatingDb;defaultStatic;Instance", //
"minimongo/lib/ReplicatingDb;defaultStatic;minimongo/lib/ReplicatingDb;;Member[default]", //
"minimongo/lib/ReplicatingDb;defaultStatic;minimongo;;Member[ReplicatingDb]", //
"minimongo/lib/WebSQLDb;default;minimongo/lib/WebSQLDb;defaultStatic;Instance", //
"minimongo/lib/WebSQLDb;default;minimongo;;Member[utils].Member[autoselectLocalDb].ReturnValue", //
"minimongo/lib/WebSQLDb;defaultStatic;minimongo/lib/WebSQLDb;;Member[default]", //
"minimongo/lib/WebSQLDb;defaultStatic;minimongo;;Member[WebSQLDb]", //
"minimongo;HybridCollection;minimongo/lib/HybridDb;HybridCollection;", //
"minimongo;HybridCollection;minimongo/lib/HybridDb;default;Member[collections].AnyMember", //
"minimongo;HybridCollection;minimongo;HybridCollectionStatic;Instance", //
"minimongo;HybridCollectionStatic;minimongo/lib/HybridDb;;Member[HybridCollection]", //
"minimongo;HybridCollectionStatic;minimongo/lib/HybridDb;HybridCollectionStatic;", //
"minimongo;HybridCollectionStatic;minimongo;;Member[HybridCollection]", //
"minimongo;MinimongoBaseCollection;minimongo/RemoteDb;Collection;", //
"minimongo;MinimongoBaseCollection;minimongo/lib/types;MinimongoBaseCollection;", //
"minimongo;MinimongoBaseCollection;minimongo;HybridCollection;", //
"minimongo;MinimongoBaseCollection;minimongo;MinimongoCollection;", //
"minimongo;MinimongoBaseCollection;minimongo;MinimongoDb;AnyMember", //
"minimongo;MinimongoBaseCollection;minimongo;MinimongoLocalCollection;", //
"minimongo;MinimongoCollection;minimongo/lib/LocalStorageDb;default;Member[collections].AnyMember", //
"minimongo;MinimongoCollection;minimongo/lib/WebSQLDb;default;Member[collections].AnyMember", //
"minimongo;MinimongoCollection;minimongo/lib/types;MinimongoCollection;", //
"minimongo;MinimongoCollection;minimongo;HybridCollection;Member[remoteCol]", //
"minimongo;MinimongoCollection;minimongo;MinimongoDb;Member[collections].AnyMember", //
"minimongo;MinimongoDb;minimongo/lib/HybridDb;default;", //
"minimongo;MinimongoDb;minimongo/lib/HybridDb;default;Member[remoteDb]", //
"minimongo;MinimongoDb;minimongo/lib/LocalStorageDb;default;", //
"minimongo;MinimongoDb;minimongo/lib/MemoryDb;default;", //
"minimongo;MinimongoDb;minimongo/lib/RemoteDb;default;", //
"minimongo;MinimongoDb;minimongo/lib/ReplicatingDb;default;Member[masterDb,replicaDb]", //
"minimongo;MinimongoDb;minimongo/lib/WebSQLDb;default;", //
"minimongo;MinimongoDb;minimongo/lib/types;MinimongoDb;", //
"minimongo;MinimongoDb;minimongo;MinimongoDb;Member[remoteDb]", //
"minimongo;MinimongoDb;minimongo;MinimongoLocalDb;", //
"minimongo;MinimongoLocalCollection;minimongo/IndexedDb;IndexedDbCollection;", //
"minimongo;MinimongoLocalCollection;minimongo/MemoryDb;Collection;", //
"minimongo;MinimongoLocalCollection;minimongo/ReplicatingDb;Collection;", //
"minimongo;MinimongoLocalCollection;minimongo/ReplicatingDb;Collection;Member[masterCol,replicaCol]", //
"minimongo;MinimongoLocalCollection;minimongo/lib/types;MinimongoLocalCollection;", //
"minimongo;MinimongoLocalCollection;minimongo;HybridCollection;Member[localCol]", //
"minimongo;MinimongoLocalCollection;minimongo;MinimongoCollection;", //
"minimongo;MinimongoLocalCollection;minimongo;MinimongoLocalDb;Member[addCollection].Argument[2].Argument[0]", //
"minimongo;MinimongoLocalCollection;minimongo;MinimongoLocalDb;Member[collections].AnyMember", //
"minimongo;MinimongoLocalDb;minimongo/lib/HybridDb;default;Member[localDb]", //
"minimongo;MinimongoLocalDb;minimongo/lib/IndexedDb;default;", //
"minimongo;MinimongoLocalDb;minimongo/lib/ReplicatingDb;default;", //
"minimongo;MinimongoLocalDb;minimongo/lib/types;MinimongoLocalDb;", //
"minimongo;MinimongoLocalDb;minimongo;MinimongoDb;Member[localDb]", //
"mongodb;Collection;minimongo;MinimongoBaseCollection;", //
]
}
}

View File

@@ -0,0 +1,94 @@
{
"packages": {
"minimongo": "6.12.4"
},
"resolutions": {},
"language": "javascript",
"model": {
"typeDefinitions": [
"mongodb;Collection;minimongo;MinimongoBaseCollection;",
"minimongo;MinimongoBaseCollection;minimongo;MinimongoDb;AnyMember"
],
"sinks": []
},
"generatedModel": {
"//": "Autogenerated section. Manual edits in here will be lost.",
"typeDefinitions": [
"minimongo/IndexedDb;IndexedDbCollection;minimongo/IndexedDb;IndexedDbCollectionStatic;Instance",
"minimongo/IndexedDb;IndexedDbCollection;minimongo/lib/IndexedDb;default;Member[collections].AnyMember",
"minimongo/MemoryDb;Collection;minimongo/MemoryDb;CollectionStatic;Instance",
"minimongo/MemoryDb;Collection;minimongo/lib/MemoryDb;default;Member[collections].AnyMember",
"minimongo/RemoteDb;Collection;minimongo/RemoteDb;CollectionStatic;Instance",
"minimongo/RemoteDb;Collection;minimongo/lib/RemoteDb;default;Member[collections].AnyMember",
"minimongo/ReplicatingDb;Collection;minimongo/ReplicatingDb;CollectionStatic;Instance",
"minimongo/ReplicatingDb;Collection;minimongo/lib/ReplicatingDb;default;Member[collections].AnyMember",
"minimongo/lib/HybridDb;default;minimongo/lib/HybridDb;defaultStatic;Instance",
"minimongo/lib/HybridDb;defaultStatic;minimongo/lib/HybridDb;;Member[default]",
"minimongo/lib/HybridDb;defaultStatic;minimongo;;Member[HybridDb]",
"minimongo/lib/IndexedDb;default;minimongo/lib/IndexedDb;defaultStatic;Instance",
"minimongo/lib/IndexedDb;default;minimongo;;Member[utils].Member[autoselectLocalDb].ReturnValue",
"minimongo/lib/IndexedDb;defaultStatic;minimongo/lib/IndexedDb;;Member[default]",
"minimongo/lib/IndexedDb;defaultStatic;minimongo;;Member[IndexedDb]",
"minimongo/lib/LocalStorageDb;default;minimongo/lib/LocalStorageDb;defaultStatic;Instance",
"minimongo/lib/LocalStorageDb;default;minimongo;;Member[utils].Member[autoselectLocalDb].ReturnValue",
"minimongo/lib/LocalStorageDb;defaultStatic;minimongo/lib/LocalStorageDb;;Member[default]",
"minimongo/lib/LocalStorageDb;defaultStatic;minimongo;;Member[LocalStorageDb]",
"minimongo/lib/MemoryDb;default;minimongo/lib/MemoryDb;defaultStatic;Instance",
"minimongo/lib/MemoryDb;default;minimongo;;Member[utils].Member[autoselectLocalDb].ReturnValue",
"minimongo/lib/MemoryDb;defaultStatic;minimongo/lib/MemoryDb;;Member[default]",
"minimongo/lib/MemoryDb;defaultStatic;minimongo;;Member[MemoryDb]",
"minimongo/lib/RemoteDb;default;minimongo/lib/RemoteDb;defaultStatic;Instance",
"minimongo/lib/RemoteDb;defaultStatic;minimongo/lib/RemoteDb;;Member[default]",
"minimongo/lib/RemoteDb;defaultStatic;minimongo;;Member[RemoteDb]",
"minimongo/lib/ReplicatingDb;default;minimongo/lib/ReplicatingDb;defaultStatic;Instance",
"minimongo/lib/ReplicatingDb;defaultStatic;minimongo/lib/ReplicatingDb;;Member[default]",
"minimongo/lib/ReplicatingDb;defaultStatic;minimongo;;Member[ReplicatingDb]",
"minimongo/lib/WebSQLDb;default;minimongo/lib/WebSQLDb;defaultStatic;Instance",
"minimongo/lib/WebSQLDb;default;minimongo;;Member[utils].Member[autoselectLocalDb].ReturnValue",
"minimongo/lib/WebSQLDb;defaultStatic;minimongo/lib/WebSQLDb;;Member[default]",
"minimongo/lib/WebSQLDb;defaultStatic;minimongo;;Member[WebSQLDb]",
"minimongo;HybridCollection;minimongo/lib/HybridDb;HybridCollection;",
"minimongo;HybridCollection;minimongo/lib/HybridDb;default;Member[collections].AnyMember",
"minimongo;HybridCollection;minimongo;HybridCollectionStatic;Instance",
"minimongo;HybridCollectionStatic;minimongo/lib/HybridDb;;Member[HybridCollection]",
"minimongo;HybridCollectionStatic;minimongo/lib/HybridDb;HybridCollectionStatic;",
"minimongo;HybridCollectionStatic;minimongo;;Member[HybridCollection]",
"minimongo;MinimongoBaseCollection;minimongo/RemoteDb;Collection;",
"minimongo;MinimongoBaseCollection;minimongo/lib/types;MinimongoBaseCollection;",
"minimongo;MinimongoBaseCollection;minimongo;HybridCollection;",
"minimongo;MinimongoBaseCollection;minimongo;MinimongoCollection;",
"minimongo;MinimongoBaseCollection;minimongo;MinimongoLocalCollection;",
"minimongo;MinimongoCollection;minimongo/lib/LocalStorageDb;default;Member[collections].AnyMember",
"minimongo;MinimongoCollection;minimongo/lib/WebSQLDb;default;Member[collections].AnyMember",
"minimongo;MinimongoCollection;minimongo/lib/types;MinimongoCollection;",
"minimongo;MinimongoCollection;minimongo;HybridCollection;Member[remoteCol]",
"minimongo;MinimongoCollection;minimongo;MinimongoDb;Member[collections].AnyMember",
"minimongo;MinimongoDb;minimongo/lib/HybridDb;default;",
"minimongo;MinimongoDb;minimongo/lib/HybridDb;default;Member[remoteDb]",
"minimongo;MinimongoDb;minimongo/lib/LocalStorageDb;default;",
"minimongo;MinimongoDb;minimongo/lib/MemoryDb;default;",
"minimongo;MinimongoDb;minimongo/lib/RemoteDb;default;",
"minimongo;MinimongoDb;minimongo/lib/ReplicatingDb;default;Member[masterDb,replicaDb]",
"minimongo;MinimongoDb;minimongo/lib/WebSQLDb;default;",
"minimongo;MinimongoDb;minimongo/lib/types;MinimongoDb;",
"minimongo;MinimongoDb;minimongo;MinimongoDb;Member[remoteDb]",
"minimongo;MinimongoDb;minimongo;MinimongoLocalDb;",
"minimongo;MinimongoLocalCollection;minimongo/IndexedDb;IndexedDbCollection;",
"minimongo;MinimongoLocalCollection;minimongo/MemoryDb;Collection;",
"minimongo;MinimongoLocalCollection;minimongo/ReplicatingDb;Collection;",
"minimongo;MinimongoLocalCollection;minimongo/ReplicatingDb;Collection;Member[masterCol,replicaCol]",
"minimongo;MinimongoLocalCollection;minimongo/lib/types;MinimongoLocalCollection;",
"minimongo;MinimongoLocalCollection;minimongo;HybridCollection;Member[localCol]",
"minimongo;MinimongoLocalCollection;minimongo;MinimongoCollection;",
"minimongo;MinimongoLocalCollection;minimongo;MinimongoLocalDb;Member[addCollection].Argument[2].Argument[0]",
"minimongo;MinimongoLocalCollection;minimongo;MinimongoLocalDb;Member[collections].AnyMember",
"minimongo;MinimongoLocalDb;minimongo/lib/HybridDb;default;Member[localDb]",
"minimongo;MinimongoLocalDb;minimongo/lib/IndexedDb;default;",
"minimongo;MinimongoLocalDb;minimongo/lib/ReplicatingDb;default;",
"minimongo;MinimongoLocalDb;minimongo/lib/types;MinimongoLocalDb;",
"minimongo;MinimongoLocalDb;minimongo;MinimongoDb;Member[localDb]"
],
"summaries": [],
"typeVariables": []
}
}

View File

@@ -0,0 +1,806 @@
/** Generated model file */
private import javascript
private class Sinks extends ModelInput::SinkModelCsv {
override predicate row(string row) {
row =
[
"mongodb;Collection;Member[aggregate,count,countDocuments,deleteMany,deleteOne,find,findOne,findOneAndDelete,findOneAndReplace,remove,replaceOne,watch].Argument[0];mongodb.sink", //
"mongodb;Collection;Member[distinct].Argument[1];mongodb.sink", //
"mongodb;Collection;Member[findOneAndUpdate,update,updateMany,updateOne].Argument[0,1];mongodb.sink", //
"mongodb;Db;Member[aggregate,watch].Argument[0];mongodb.sink", //
"mongodb;DeleteManyModel;Member[filter];mongodb.sink", //
"mongodb;DeleteOneModel;Member[filter];mongodb.sink", //
"mongodb;MongoClient;Member[watch].Argument[0];mongodb.sink", //
"mongodb;UpdateManyModel;Member[filter,update];mongodb.sink", //
"mongodb;UpdateOneModel;Member[filter,update];mongodb.sink", //
"mongoose;CollectionBase;Member[findAndModify].Argument[0];mongodb.sink", //
"mongoose;Connection;Member[watch].Argument[0];mongodb.sink", //
"mongoose;Document;Member[update,updateOne].Argument[0];mongodb.sink", //
"mongoose;Model;Member[$where,aggregate,exists,find,findById,findByIdAndDelete,findByIdAndRemove,findOne,findOneAndDelete,findOneAndRemove,findOneAndReplace,geoSearch,remove,replaceOne,watch].Argument[0];mongodb.sink", //
"mongoose;Model;Member[count,where].WithArity[1,2].Argument[0];mongodb.sink", //
"mongoose;Model;Member[countDocuments].WithArity[1,2,3].Argument[0];mongodb.sink", //
"mongoose;Model;Member[deleteMany,deleteOne].WithArity[0,1,2,3].Argument[0];mongodb.sink", //
"mongoose;Model;Member[distinct,where].Argument[1];mongodb.sink", //
"mongoose;Model;Member[findByIdAndUpdate,findOneAndUpdate,update,updateMany,updateOne].Argument[0,1];mongodb.sink", //
"mongoose;Model;Member[find].WithArity[1,2,3,4].Argument[0];mongodb.sink", //
"mongoose;Query;Member[$where,and,find,findByIdAndDelete,findOne,findOneAndDelete,findOneAndRemove,nor,or,remove,replaceOne,setUpdate].Argument[0];mongodb.sink", //
"mongoose;Query;Member[count,where].WithArity[1,2].Argument[0];mongodb.sink", //
"mongoose;Query;Member[deleteMany,deleteOne].WithArity[0,1,2,3].Argument[0];mongodb.sink", //
"mongoose;Query;Member[distinct,where].Argument[1];mongodb.sink", //
"mongoose;Query;Member[findByIdAndUpdate,findOneAndUpdate,update,updateMany,updateOne].Argument[0,1];mongodb.sink", //
"mongoose;Query;Member[find].WithArity[1,2,3,4].Argument[0];mongodb.sink", //
"mongoose;QueryStatic;Argument[2];mongodb.sink", //
]
}
}
private class Types extends ModelInput::TypeModelCsv {
override predicate row(string row) {
row =
[
"mongodb;;mongoose;;Member[mongodb]", //
"mongodb;AbstractCursor;mongodb;FindCursor;", //
"mongodb;AbstractCursor;mongodb;ListCollectionsCursor;", //
"mongodb;AbstractCursor;mongodb;ListIndexesCursor;", //
"mongodb;AbstractCursorOptions;mongodb/mongodb;AbstractCursorOptions;", //
"mongodb;AbstractCursorOptions;mongodb;AggregationCursorOptions;", //
"mongodb;AbstractCursorOptions;mongoose;mongodb.AbstractCursorOptions;", //
"mongodb;AddUserOptions;mongodb/mongodb;AddUserOptions;", //
"mongodb;AddUserOptions;mongodb;Admin;Member[addUser].Argument[1,2]", //
"mongodb;AddUserOptions;mongodb;Db;Member[addUser].Argument[1,2]", //
"mongodb;AddUserOptions;mongoose;mongodb.AddUserOptions;", //
"mongodb;Admin;mongodb/mongodb;Admin;", //
"mongodb;Admin;mongodb;AdminStatic;Instance", //
"mongodb;Admin;mongodb;Db;Member[admin].ReturnValue", //
"mongodb;Admin;mongoose;mongodb.Admin;", //
"mongodb;AdminStatic;mongodb/mongodb;AdminStatic;", //
"mongodb;AdminStatic;mongodb;;Member[Admin]", //
"mongodb;AdminStatic;mongoose;mongodb.AdminStatic;", //
"mongodb;AggregateOptions;mongodb/mongodb;AggregateOptions;", //
"mongodb;AggregateOptions;mongodb;AggregationCursorOptions;", //
"mongodb;AggregateOptions;mongodb;ChangeStreamOptions;", //
"mongodb;AggregateOptions;mongodb;Collection;Member[aggregate].Argument[1]", //
"mongodb;AggregateOptions;mongodb;CountDocumentsOptions;", //
"mongodb;AggregateOptions;mongodb;Db;Member[aggregate].Argument[1]", //
"mongodb;AggregateOptions;mongoose;mongodb.AggregateOptions;", //
"mongodb;AggregationCursorOptions;mongodb/mongodb;AggregationCursorOptions;", //
"mongodb;AggregationCursorOptions;mongoose;mongodb.AggregationCursorOptions;", //
"mongodb;AnyBulkWriteOperation;mongodb/mongodb;AnyBulkWriteOperation;", //
"mongodb;AnyBulkWriteOperation;mongodb;BulkOperationBase;Member[raw].Argument[0]", //
"mongodb;AnyBulkWriteOperation;mongodb;Collection;Member[bulkWrite].Argument[0].ArrayElement", //
"mongodb;AnyBulkWriteOperation;mongoose;mongodb.AnyBulkWriteOperation;", //
"mongodb;Auth;mongodb/mongodb;Auth;", //
"mongodb;Auth;mongodb;MongoClientOptions;Member[auth]", //
"mongodb;Auth;mongoose;mongodb.Auth;", //
"mongodb;AutoEncrypter;mongodb/mongodb;AutoEncrypter;", //
"mongodb;AutoEncrypter;mongodb;AutoEncrypter;Instance", //
"mongodb;AutoEncrypter;mongodb;ConnectionOptions;Member[autoEncrypter]", //
"mongodb;AutoEncrypter;mongodb;MongoClient;Member[autoEncrypter]", //
"mongodb;AutoEncrypter;mongodb;MongoOptions;Member[autoEncrypter]", //
"mongodb;AutoEncrypter;mongoose;mongodb.AutoEncrypter;", //
"mongodb;AutoEncryptionOptions;mongodb/mongodb;AutoEncryptionOptions;", //
"mongodb;AutoEncryptionOptions;mongodb;AutoEncrypter;Argument[1]", //
"mongodb;AutoEncryptionOptions;mongodb;MongoClientOptions;Member[autoEncryption]", //
"mongodb;AutoEncryptionOptions;mongoose;mongodb.AutoEncryptionOptions;", //
"mongodb;BulkOperationBase;mongodb/mongodb;BulkOperationBase;", //
"mongodb;BulkOperationBase;mongodb;BulkOperationBase;Member[addToOperationsList,insert,raw].ReturnValue", //
"mongodb;BulkOperationBase;mongodb;BulkOperationBaseStatic;Instance", //
"mongodb;BulkOperationBase;mongodb;FindOperators;Member[bulkOperation]", //
"mongodb;BulkOperationBase;mongodb;FindOperators;Member[delete,deleteOne,replaceOne,update,updateOne].ReturnValue", //
"mongodb;BulkOperationBase;mongodb;OrderedBulkOperation;", //
"mongodb;BulkOperationBase;mongodb;UnorderedBulkOperation;", //
"mongodb;BulkOperationBase;mongoose;mongodb.BulkOperationBase;", //
"mongodb;BulkOperationBaseStatic;mongodb/mongodb;BulkOperationBaseStatic;", //
"mongodb;BulkOperationBaseStatic;mongodb;;Member[BulkOperationBase]", //
"mongodb;BulkOperationBaseStatic;mongoose;mongodb.BulkOperationBaseStatic;", //
"mongodb;BulkWriteOptions;mongodb/mongodb;BulkWriteOptions;", //
"mongodb;BulkWriteOptions;mongodb;BulkOperationBase;Member[execute].WithArity[0,1,2].Argument[0]", //
"mongodb;BulkWriteOptions;mongodb;Collection;Member[bulkWrite,insert,insertMany].Argument[1]", //
"mongodb;BulkWriteOptions;mongodb;Collection;Member[initializeOrderedBulkOp,initializeUnorderedBulkOp].Argument[0]", //
"mongodb;BulkWriteOptions;mongodb;OrderedBulkOperationStatic;Argument[1]", //
"mongodb;BulkWriteOptions;mongodb;UnorderedBulkOperationStatic;Argument[1]", //
"mongodb;BulkWriteOptions;mongoose;mongodb.BulkWriteOptions;", //
"mongodb;ChangeStream;mongodb/mongodb;ChangeStream;", //
"mongodb;ChangeStream;mongodb;ChangeStreamStatic;Instance", //
"mongodb;ChangeStream;mongodb;Collection;Member[watch].ReturnValue", //
"mongodb;ChangeStream;mongodb;Db;Member[watch].ReturnValue", //
"mongodb;ChangeStream;mongodb;MongoClient;Member[watch].ReturnValue", //
"mongodb;ChangeStream;mongoose;mongodb.ChangeStream;", //
"mongodb;ChangeStreamOptions;mongodb/mongodb;ChangeStreamOptions;", //
"mongodb;ChangeStreamOptions;mongodb;ChangeStream;Member[options]", //
"mongodb;ChangeStreamOptions;mongodb;Collection;Member[watch].Argument[1]", //
"mongodb;ChangeStreamOptions;mongodb;Db;Member[watch].Argument[1]", //
"mongodb;ChangeStreamOptions;mongodb;MongoClient;Member[watch].Argument[1]", //
"mongodb;ChangeStreamOptions;mongoose;mongodb.ChangeStreamOptions;", //
"mongodb;ChangeStreamStatic;mongodb/mongodb;ChangeStreamStatic;", //
"mongodb;ChangeStreamStatic;mongodb;;Member[ChangeStream]", //
"mongodb;ChangeStreamStatic;mongoose;mongodb.ChangeStreamStatic;", //
"mongodb;ClientSession;mongodb/mongodb;ClientSession;", //
"mongodb;ClientSession;mongodb;AbstractCursorOptions;Member[session]", //
"mongodb;ClientSession;mongodb;ClientSession;Member[equals].Argument[0]", //
"mongodb;ClientSession;mongodb;ClientSessionEvents;Member[ended].Argument[0]", //
"mongodb;ClientSession;mongodb;ClientSessionStatic;Instance", //
"mongodb;ClientSession;mongodb;IndexInformationOptions;Member[session]", //
"mongodb;ClientSession;mongodb;MongoClient;Member[startSession].ReturnValue", //
"mongodb;ClientSession;mongodb;OperationOptions;Member[session]", //
"mongodb;ClientSession;mongodb;ReadPreferenceFromOptions;Member[session]", //
"mongodb;ClientSession;mongodb;SelectServerOptions;Member[session]", //
"mongodb;ClientSession;mongodb;WithSessionCallback;Argument[0]", //
"mongodb;ClientSession;mongodb;WithTransactionCallback;Argument[0]", //
"mongodb;ClientSession;mongoose;mongodb.ClientSession;", //
"mongodb;ClientSessionEvents;mongodb/mongodb;ClientSessionEvents;", //
"mongodb;ClientSessionEvents;mongoose;mongodb.ClientSessionEvents;", //
"mongodb;ClientSessionOptions;mongodb/mongodb;ClientSessionOptions;", //
"mongodb;ClientSessionOptions;mongodb;MongoClient;Member[startSession].Argument[0]", //
"mongodb;ClientSessionOptions;mongodb;MongoClient;Member[withSession].WithArity[2].Argument[0]", //
"mongodb;ClientSessionOptions;mongoose;mongodb.ClientSessionOptions;", //
"mongodb;ClientSessionStatic;mongodb/mongodb;ClientSessionStatic;", //
"mongodb;ClientSessionStatic;mongodb;;Member[ClientSession]", //
"mongodb;ClientSessionStatic;mongoose;mongodb.ClientSessionStatic;", //
"mongodb;CollStatsOptions;mongodb/mongodb;CollStatsOptions;", //
"mongodb;CollStatsOptions;mongodb;Collection;Member[stats].Argument[0]", //
"mongodb;CollStatsOptions;mongoose;mongodb.CollStatsOptions;", //
"mongodb;Collection;mongodb/mongodb;Collection;", //
"mongodb;Collection;mongodb;ChangeStream;Member[parent]", //
"mongodb;Collection;mongodb;Collection;Member[rename].Argument[1,2].TypeVar[mongodb.Callback.0]", //
"mongodb;Collection;mongodb;Collection;Member[rename].WithArity[1,2].ReturnValue.Awaited", //
"mongodb;Collection;mongodb;CollectionStatic;Instance", //
"mongodb;Collection;mongodb;Db;Member[collection].ReturnValue", //
"mongodb;Collection;mongodb;Db;Member[collections].Argument[0,1].TypeVar[mongodb.Callback.0].ArrayElement", //
"mongodb;Collection;mongodb;Db;Member[collections].WithArity[0,1].ReturnValue.Awaited.ArrayElement", //
"mongodb;Collection;mongodb;Db;Member[createCollection].Argument[2].TypeVar[mongodb.Callback.0]", //
"mongodb;Collection;mongodb;Db;Member[createCollection].WithArity[1,2].ReturnValue.Awaited", //
"mongodb;Collection;mongodb;Db;Member[createCollection].WithArity[2].Argument[1].TypeVar[mongodb.Callback.0]", //
"mongodb;Collection;mongodb;Db;Member[renameCollection].Argument[2,3].TypeVar[mongodb.Callback.0]", //
"mongodb;Collection;mongodb;Db;Member[renameCollection].WithArity[2,3].ReturnValue.Awaited", //
"mongodb;Collection;mongodb;GridFSBucketWriteStream;Member[chunks,files]", //
"mongodb;Collection;mongodb;ListIndexesCursor;Member[parent]", //
"mongodb;Collection;mongodb;ListIndexesCursorStatic;Argument[0]", //
"mongodb;Collection;mongodb;OrderedBulkOperationStatic;Argument[0]", //
"mongodb;Collection;mongodb;UnorderedBulkOperationStatic;Argument[0]", //
"mongodb;Collection;mongoose;mongodb.Collection;", //
"mongodb;CollectionStatic;mongodb/mongodb;CollectionStatic;", //
"mongodb;CollectionStatic;mongodb;;Member[Collection]", //
"mongodb;CollectionStatic;mongoose;mongodb.CollectionStatic;", //
"mongodb;CommandOperationOptions;mongodb/mongodb;CommandOperationOptions;", //
"mongodb;CommandOperationOptions;mongodb;AddUserOptions;", //
"mongodb;CommandOperationOptions;mongodb;Admin;Member[buildInfo,ping,replSetGetStatus,serverInfo,serverStatus].Argument[0]", //
"mongodb;CommandOperationOptions;mongodb;AggregateOptions;", //
"mongodb;CommandOperationOptions;mongodb;BulkWriteOptions;", //
"mongodb;CommandOperationOptions;mongodb;CollStatsOptions;", //
"mongodb;CommandOperationOptions;mongodb;CountOptions;", //
"mongodb;CommandOperationOptions;mongodb;CreateCollectionOptions;", //
"mongodb;CommandOperationOptions;mongodb;CreateIndexesOptions;", //
"mongodb;CommandOperationOptions;mongodb;DbStatsOptions;", //
"mongodb;CommandOperationOptions;mongodb;DeleteOptions;", //
"mongodb;CommandOperationOptions;mongodb;DistinctOptions;", //
"mongodb;CommandOperationOptions;mongodb;DropCollectionOptions;", //
"mongodb;CommandOperationOptions;mongodb;DropDatabaseOptions;", //
"mongodb;CommandOperationOptions;mongodb;DropIndexesOptions;", //
"mongodb;CommandOperationOptions;mongodb;EstimatedDocumentCountOptions;", //
"mongodb;CommandOperationOptions;mongodb;EvalOptions;", //
"mongodb;CommandOperationOptions;mongodb;FindOneAndDeleteOptions;", //
"mongodb;CommandOperationOptions;mongodb;FindOneAndReplaceOptions;", //
"mongodb;CommandOperationOptions;mongodb;FindOneAndUpdateOptions;", //
"mongodb;CommandOperationOptions;mongodb;FindOptions;", //
"mongodb;CommandOperationOptions;mongodb;InsertOneOptions;", //
"mongodb;CommandOperationOptions;mongodb;ListCollectionsOptions;", //
"mongodb;CommandOperationOptions;mongodb;ListDatabasesOptions;", //
"mongodb;CommandOperationOptions;mongodb;ListIndexesOptions;", //
"mongodb;CommandOperationOptions;mongodb;MapReduceOptions;", //
"mongodb;CommandOperationOptions;mongodb;ProfilingLevelOptions;", //
"mongodb;CommandOperationOptions;mongodb;RemoveUserOptions;", //
"mongodb;CommandOperationOptions;mongodb;RenameOptions;", //
"mongodb;CommandOperationOptions;mongodb;ReplaceOptions;", //
"mongodb;CommandOperationOptions;mongodb;RunCommandOptions;", //
"mongodb;CommandOperationOptions;mongodb;SetProfilingLevelOptions;", //
"mongodb;CommandOperationOptions;mongodb;TransactionOptions;", //
"mongodb;CommandOperationOptions;mongodb;UpdateOptions;", //
"mongodb;CommandOperationOptions;mongodb;ValidateCollectionOptions;", //
"mongodb;CommandOperationOptions;mongoose;mongodb.CommandOperationOptions;", //
"mongodb;ConnectionOptions;mongodb/mongodb;ConnectionOptions;", //
"mongodb;ConnectionOptions;mongoose;mongodb.ConnectionOptions;", //
"mongodb;CountDocumentsOptions;mongodb/mongodb;CountDocumentsOptions;", //
"mongodb;CountDocumentsOptions;mongodb;Collection;Member[countDocuments].Argument[1]", //
"mongodb;CountDocumentsOptions;mongoose;mongodb.CountDocumentsOptions;", //
"mongodb;CountOptions;mongodb/mongodb;CountOptions;", //
"mongodb;CountOptions;mongodb;Collection;Member[count].Argument[1]", //
"mongodb;CountOptions;mongodb;FindCursor;Member[count].Argument[0]", //
"mongodb;CountOptions;mongoose;mongodb.CountOptions;", //
"mongodb;CreateCollectionOptions;mongodb/mongodb;CreateCollectionOptions;", //
"mongodb;CreateCollectionOptions;mongodb;Db;Member[createCollection].WithArity[1,2,3].Argument[1]", //
"mongodb;CreateCollectionOptions;mongoose;mongodb.CreateCollectionOptions;", //
"mongodb;CreateIndexesOptions;mongodb/mongodb;CreateIndexesOptions;", //
"mongodb;CreateIndexesOptions;mongodb;Collection;Member[createIndex,createIndexes].Argument[1]", //
"mongodb;CreateIndexesOptions;mongodb;Db;Member[createIndex].Argument[2]", //
"mongodb;CreateIndexesOptions;mongoose;mongodb.CreateIndexesOptions;", //
"mongodb;Db;mongodb/mongodb;Db;", //
"mongodb;Db;mongodb;ChangeStream;Member[parent]", //
"mongodb;Db;mongodb;DbStatic;Instance", //
"mongodb;Db;mongodb;GridFSBucketStatic;Argument[0]", //
"mongodb;Db;mongodb;ListCollectionsCursor;Member[parent]", //
"mongodb;Db;mongodb;ListCollectionsCursorStatic;Argument[0]", //
"mongodb;Db;mongodb;MongoClient;Member[db].ReturnValue", //
"mongodb;Db;mongoose;mongodb.Db;", //
"mongodb;DbStatic;mongodb/mongodb;DbStatic;", //
"mongodb;DbStatic;mongodb;;Member[Db]", //
"mongodb;DbStatic;mongoose;mongodb.DbStatic;", //
"mongodb;DbStatsOptions;mongodb/mongodb;DbStatsOptions;", //
"mongodb;DbStatsOptions;mongodb;Db;Member[stats].Argument[0]", //
"mongodb;DbStatsOptions;mongoose;mongodb.DbStatsOptions;", //
"mongodb;DeleteManyModel;mongodb/mongodb;DeleteManyModel;", //
"mongodb;DeleteManyModel;mongodb;AnyBulkWriteOperation;Member[deleteMany]", //
"mongodb;DeleteManyModel;mongoose;mongodb.DeleteManyModel;", //
"mongodb;DeleteOneModel;mongodb/mongodb;DeleteOneModel;", //
"mongodb;DeleteOneModel;mongodb;AnyBulkWriteOperation;Member[deleteOne]", //
"mongodb;DeleteOneModel;mongoose;mongodb.DeleteOneModel;", //
"mongodb;DeleteOptions;mongodb/mongodb;DeleteOptions;", //
"mongodb;DeleteOptions;mongodb;Collection;Member[deleteMany,deleteOne,remove].Argument[1]", //
"mongodb;DeleteOptions;mongoose;mongodb.DeleteOptions;", //
"mongodb;DistinctOptions;mongodb/mongodb;DistinctOptions;", //
"mongodb;DistinctOptions;mongodb;Collection;Member[distinct].Argument[2]", //
"mongodb;DistinctOptions;mongoose;mongodb.DistinctOptions;", //
"mongodb;DropCollectionOptions;mongodb/mongodb;DropCollectionOptions;", //
"mongodb;DropCollectionOptions;mongodb;Collection;Member[drop].Argument[0]", //
"mongodb;DropCollectionOptions;mongodb;Db;Member[dropCollection].Argument[1]", //
"mongodb;DropCollectionOptions;mongoose;mongodb.DropCollectionOptions;", //
"mongodb;DropDatabaseOptions;mongodb/mongodb;DropDatabaseOptions;", //
"mongodb;DropDatabaseOptions;mongodb;Db;Member[dropDatabase].Argument[0]", //
"mongodb;DropDatabaseOptions;mongoose;mongodb.DropDatabaseOptions;", //
"mongodb;DropIndexesOptions;mongodb/mongodb;DropIndexesOptions;", //
"mongodb;DropIndexesOptions;mongodb;Collection;Member[dropIndex].Argument[1]", //
"mongodb;DropIndexesOptions;mongodb;Collection;Member[dropIndexes].Argument[0]", //
"mongodb;DropIndexesOptions;mongoose;mongodb.DropIndexesOptions;", //
"mongodb;EstimatedDocumentCountOptions;mongodb/mongodb;EstimatedDocumentCountOptions;", //
"mongodb;EstimatedDocumentCountOptions;mongodb;Collection;Member[estimatedDocumentCount].Argument[0]", //
"mongodb;EstimatedDocumentCountOptions;mongoose;mongodb.EstimatedDocumentCountOptions;", //
"mongodb;EvalOptions;mongodb/mongodb;EvalOptions;", //
"mongodb;EvalOptions;mongoose;mongodb.EvalOptions;", //
"mongodb;FindCursor;mongodb/mongodb;FindCursor;", //
"mongodb;FindCursor;mongodb;Collection;Member[find].WithArity[0,1,2].ReturnValue", //
"mongodb;FindCursor;mongodb;FindCursor;Member[addQueryModifier,allowDiskUse,clone,collation,comment,filter,hint,limit,map,max,maxAwaitTimeMS,maxTimeMS,min,project,returnKey,showRecordId,skip,sort].ReturnValue", //
"mongodb;FindCursor;mongodb;FindCursorStatic;Instance", //
"mongodb;FindCursor;mongodb;GridFSBucket;Member[find].ReturnValue", //
"mongodb;FindCursor;mongoose;mongodb.FindCursor;", //
"mongodb;FindCursorStatic;mongodb/mongodb;FindCursorStatic;", //
"mongodb;FindCursorStatic;mongodb;;Member[FindCursor]", //
"mongodb;FindCursorStatic;mongoose;mongodb.FindCursorStatic;", //
"mongodb;FindOneAndDeleteOptions;mongodb/mongodb;FindOneAndDeleteOptions;", //
"mongodb;FindOneAndDeleteOptions;mongodb;Collection;Member[findOneAndDelete].Argument[1]", //
"mongodb;FindOneAndDeleteOptions;mongoose;mongodb.FindOneAndDeleteOptions;", //
"mongodb;FindOneAndReplaceOptions;mongodb/mongodb;FindOneAndReplaceOptions;", //
"mongodb;FindOneAndReplaceOptions;mongodb;Collection;Member[findOneAndReplace].Argument[2]", //
"mongodb;FindOneAndReplaceOptions;mongoose;mongodb.FindOneAndReplaceOptions;", //
"mongodb;FindOneAndUpdateOptions;mongodb/mongodb;FindOneAndUpdateOptions;", //
"mongodb;FindOneAndUpdateOptions;mongodb;Collection;Member[findOneAndUpdate].Argument[2]", //
"mongodb;FindOneAndUpdateOptions;mongoose;mongodb.FindOneAndUpdateOptions;", //
"mongodb;FindOperators;mongodb/mongodb;FindOperators;", //
"mongodb;FindOperators;mongodb;BulkOperationBase;Member[find].ReturnValue", //
"mongodb;FindOperators;mongodb;FindOperators;Member[arrayFilters,collation,upsert].ReturnValue", //
"mongodb;FindOperators;mongodb;FindOperatorsStatic;Instance", //
"mongodb;FindOperators;mongoose;mongodb.FindOperators;", //
"mongodb;FindOperatorsStatic;mongodb/mongodb;FindOperatorsStatic;", //
"mongodb;FindOperatorsStatic;mongodb;;Member[FindOperators]", //
"mongodb;FindOperatorsStatic;mongoose;mongodb.FindOperatorsStatic;", //
"mongodb;FindOptions;mongodb/mongodb;FindOptions;", //
"mongodb;FindOptions;mongodb;Collection;Member[find,findOne].Argument[1]", //
"mongodb;FindOptions;mongodb;GridFSBucket;Member[find].Argument[1]", //
"mongodb;FindOptions;mongoose;mongodb.FindOptions;", //
"mongodb;GridFSBucket;mongodb/mongodb;GridFSBucket;", //
"mongodb;GridFSBucket;mongodb;GridFSBucketStatic;Instance", //
"mongodb;GridFSBucket;mongodb;GridFSBucketWriteStream;Member[bucket]", //
"mongodb;GridFSBucket;mongoose;mongodb.GridFSBucket;", //
"mongodb;GridFSBucketStatic;mongodb/mongodb;GridFSBucketStatic;", //
"mongodb;GridFSBucketStatic;mongodb;;Member[GridFSBucket]", //
"mongodb;GridFSBucketStatic;mongoose;mongodb.GridFSBucketStatic;", //
"mongodb;GridFSBucketWriteStream;mongodb/mongodb;GridFSBucketWriteStream;", //
"mongodb;GridFSBucketWriteStream;mongodb;GridFSBucket;Member[openUploadStream,openUploadStreamWithId].ReturnValue", //
"mongodb;GridFSBucketWriteStream;mongodb;GridFSBucketWriteStream;Member[end].ReturnValue", //
"mongodb;GridFSBucketWriteStream;mongodb;GridFSBucketWriteStreamStatic;Instance", //
"mongodb;GridFSBucketWriteStream;mongoose;mongodb.GridFSBucketWriteStream;", //
"mongodb;GridFSBucketWriteStreamStatic;mongodb/mongodb;GridFSBucketWriteStreamStatic;", //
"mongodb;GridFSBucketWriteStreamStatic;mongodb;;Member[GridFSBucketWriteStream]", //
"mongodb;GridFSBucketWriteStreamStatic;mongoose;mongodb.GridFSBucketWriteStreamStatic;", //
"mongodb;IndexInformationOptions;mongodb/mongodb;IndexInformationOptions;", //
"mongodb;IndexInformationOptions;mongodb;Collection;Member[indexExists].Argument[1]", //
"mongodb;IndexInformationOptions;mongodb;Collection;Member[indexInformation,indexes].Argument[0]", //
"mongodb;IndexInformationOptions;mongodb;Db;Member[indexInformation].Argument[1]", //
"mongodb;IndexInformationOptions;mongoose;mongodb.IndexInformationOptions;", //
"mongodb;InsertOneOptions;mongodb/mongodb;InsertOneOptions;", //
"mongodb;InsertOneOptions;mongodb;Collection;Member[insertOne].Argument[1]", //
"mongodb;InsertOneOptions;mongoose;mongodb.InsertOneOptions;", //
"mongodb;ListCollectionsCursor;mongodb/mongodb;ListCollectionsCursor;", //
"mongodb;ListCollectionsCursor;mongodb;Db;Member[listCollections].WithArity[0,1,2].ReturnValue", //
"mongodb;ListCollectionsCursor;mongodb;ListCollectionsCursor;Member[clone].ReturnValue", //
"mongodb;ListCollectionsCursor;mongodb;ListCollectionsCursorStatic;Instance", //
"mongodb;ListCollectionsCursor;mongoose;mongodb.ListCollectionsCursor;", //
"mongodb;ListCollectionsCursorStatic;mongodb/mongodb;ListCollectionsCursorStatic;", //
"mongodb;ListCollectionsCursorStatic;mongodb;;Member[ListCollectionsCursor]", //
"mongodb;ListCollectionsCursorStatic;mongoose;mongodb.ListCollectionsCursorStatic;", //
"mongodb;ListCollectionsOptions;mongodb/mongodb;ListCollectionsOptions;", //
"mongodb;ListCollectionsOptions;mongodb;Db;Member[collections].Argument[0]", //
"mongodb;ListCollectionsOptions;mongodb;Db;Member[listCollections].WithArity[0,1,2].Argument[1]", //
"mongodb;ListCollectionsOptions;mongodb;ListCollectionsCursor;Member[options]", //
"mongodb;ListCollectionsOptions;mongodb;ListCollectionsCursorStatic;Argument[2]", //
"mongodb;ListCollectionsOptions;mongoose;mongodb.ListCollectionsOptions;", //
"mongodb;ListDatabasesOptions;mongodb/mongodb;ListDatabasesOptions;", //
"mongodb;ListDatabasesOptions;mongodb;Admin;Member[listDatabases].Argument[0]", //
"mongodb;ListDatabasesOptions;mongoose;mongodb.ListDatabasesOptions;", //
"mongodb;ListIndexesCursor;mongodb/mongodb;ListIndexesCursor;", //
"mongodb;ListIndexesCursor;mongodb;Collection;Member[listIndexes].ReturnValue", //
"mongodb;ListIndexesCursor;mongodb;ListIndexesCursor;Member[clone].ReturnValue", //
"mongodb;ListIndexesCursor;mongodb;ListIndexesCursorStatic;Instance", //
"mongodb;ListIndexesCursor;mongoose;mongodb.ListIndexesCursor;", //
"mongodb;ListIndexesCursorStatic;mongodb/mongodb;ListIndexesCursorStatic;", //
"mongodb;ListIndexesCursorStatic;mongodb;;Member[ListIndexesCursor]", //
"mongodb;ListIndexesCursorStatic;mongoose;mongodb.ListIndexesCursorStatic;", //
"mongodb;ListIndexesOptions;mongodb/mongodb;ListIndexesOptions;", //
"mongodb;ListIndexesOptions;mongodb;Collection;Member[listIndexes].Argument[0]", //
"mongodb;ListIndexesOptions;mongodb;ListIndexesCursor;Member[options]", //
"mongodb;ListIndexesOptions;mongodb;ListIndexesCursorStatic;Argument[1]", //
"mongodb;ListIndexesOptions;mongoose;mongodb.ListIndexesOptions;", //
"mongodb;MapReduceOptions;mongodb/mongodb;MapReduceOptions;", //
"mongodb;MapReduceOptions;mongodb;Collection;Member[mapReduce].Argument[2]", //
"mongodb;MapReduceOptions;mongoose;mongodb.MapReduceOptions;", //
"mongodb;MongoClient;mongodb/mongodb;MongoClient;", //
"mongodb;MongoClient;mongodb;AutoEncrypter;Argument[0]", //
"mongodb;MongoClient;mongodb;AutoEncryptionOptions;Member[keyVaultClient]", //
"mongodb;MongoClient;mongodb;ChangeStream;Member[parent]", //
"mongodb;MongoClient;mongodb;DbStatic;Argument[0]", //
"mongodb;MongoClient;mongodb;MongoClient;Member[connect].Argument[0].TypeVar[mongodb.Callback.0]", //
"mongodb;MongoClient;mongodb;MongoClient;Member[connect].WithArity[0].ReturnValue.Awaited", //
"mongodb;MongoClient;mongodb;MongoClientEvents;Member[open].Argument[0]", //
"mongodb;MongoClient;mongodb;MongoClientStatic;Instance", //
"mongodb;MongoClient;mongodb;MongoClientStatic;Member[connect].Argument[1,2].TypeVar[mongodb.Callback.0]", //
"mongodb;MongoClient;mongodb;MongoClientStatic;Member[connect].WithArity[1,2].ReturnValue.Awaited", //
"mongodb;MongoClient;mongoose;mongodb.MongoClient;", //
"mongodb;MongoClientEvents;mongodb/mongodb;MongoClientEvents;", //
"mongodb;MongoClientEvents;mongoose;mongodb.MongoClientEvents;", //
"mongodb;MongoClientOptions;mongodb/mongodb;MongoClientOptions;", //
"mongodb;MongoClientOptions;mongodb;MongoClientStatic;Argument[1]", //
"mongodb;MongoClientOptions;mongodb;MongoClientStatic;Member[connect].Argument[1]", //
"mongodb;MongoClientOptions;mongoose;mongodb.MongoClientOptions;", //
"mongodb;MongoClientStatic;mongodb/mongodb;MongoClientStatic;", //
"mongodb;MongoClientStatic;mongodb;;Member[MongoClient]", //
"mongodb;MongoClientStatic;mongoose;mongodb.MongoClientStatic;", //
"mongodb;MongoOptions;mongodb/mongodb;MongoOptions;", //
"mongodb;MongoOptions;mongodb;ClientSession;Member[clientOptions]", //
"mongodb;MongoOptions;mongodb;MongoClient;Member[options]", //
"mongodb;MongoOptions;mongoose;mongodb.MongoOptions;", //
"mongodb;OperationOptions;mongodb/mongodb;OperationOptions;", //
"mongodb;OperationOptions;mongodb;Collection;Member[isCapped,options].Argument[0]", //
"mongodb;OperationOptions;mongodb;CommandOperationOptions;", //
"mongodb;OperationOptions;mongoose;mongodb.OperationOptions;", //
"mongodb;OrderedBulkOperation;mongodb/mongodb;OrderedBulkOperation;", //
"mongodb;OrderedBulkOperation;mongodb;Collection;Member[initializeOrderedBulkOp].ReturnValue", //
"mongodb;OrderedBulkOperation;mongodb;OrderedBulkOperation;Member[addToOperationsList].ReturnValue", //
"mongodb;OrderedBulkOperation;mongodb;OrderedBulkOperationStatic;Instance", //
"mongodb;OrderedBulkOperation;mongoose;mongodb.OrderedBulkOperation;", //
"mongodb;OrderedBulkOperationStatic;mongodb/mongodb;OrderedBulkOperationStatic;", //
"mongodb;OrderedBulkOperationStatic;mongodb;;Member[OrderedBulkOperation]", //
"mongodb;OrderedBulkOperationStatic;mongoose;mongodb.OrderedBulkOperationStatic;", //
"mongodb;ProfilingLevelOptions;mongodb/mongodb;ProfilingLevelOptions;", //
"mongodb;ProfilingLevelOptions;mongodb;Db;Member[profilingLevel].Argument[0]", //
"mongodb;ProfilingLevelOptions;mongoose;mongodb.ProfilingLevelOptions;", //
"mongodb;ReadPreferenceFromOptions;mongodb/mongodb;ReadPreferenceFromOptions;", //
"mongodb;ReadPreferenceFromOptions;mongodb;ReadPreferenceStatic;Member[fromOptions].Argument[0]", //
"mongodb;ReadPreferenceFromOptions;mongoose;mongodb.ReadPreferenceFromOptions;", //
"mongodb;ReadPreferenceStatic;mongodb/mongodb;ReadPreferenceStatic;", //
"mongodb;ReadPreferenceStatic;mongodb;;Member[ReadPreference]", //
"mongodb;ReadPreferenceStatic;mongoose;mongodb.ReadPreferenceStatic;", //
"mongodb;RemoveUserOptions;mongodb/mongodb;RemoveUserOptions;", //
"mongodb;RemoveUserOptions;mongodb;Admin;Member[removeUser].Argument[1]", //
"mongodb;RemoveUserOptions;mongodb;Db;Member[removeUser].Argument[1]", //
"mongodb;RemoveUserOptions;mongoose;mongodb.RemoveUserOptions;", //
"mongodb;RenameOptions;mongodb/mongodb;RenameOptions;", //
"mongodb;RenameOptions;mongodb;Collection;Member[rename].Argument[1]", //
"mongodb;RenameOptions;mongodb;Db;Member[renameCollection].Argument[2]", //
"mongodb;RenameOptions;mongoose;mongodb.RenameOptions;", //
"mongodb;ReplaceOptions;mongodb/mongodb;ReplaceOptions;", //
"mongodb;ReplaceOptions;mongodb;Collection;Member[replaceOne].Argument[2]", //
"mongodb;ReplaceOptions;mongoose;mongodb.ReplaceOptions;", //
"mongodb;RunCommandOptions;mongodb/mongodb;RunCommandOptions;", //
"mongodb;RunCommandOptions;mongodb;Admin;Member[command].Argument[1]", //
"mongodb;RunCommandOptions;mongodb;Db;Member[command].Argument[1]", //
"mongodb;RunCommandOptions;mongoose;mongodb.RunCommandOptions;", //
"mongodb;SelectServerOptions;mongodb/mongodb;SelectServerOptions;", //
"mongodb;SelectServerOptions;mongoose;mongodb.SelectServerOptions;", //
"mongodb;SetProfilingLevelOptions;mongodb/mongodb;SetProfilingLevelOptions;", //
"mongodb;SetProfilingLevelOptions;mongodb;Db;Member[setProfilingLevel].Argument[1]", //
"mongodb;SetProfilingLevelOptions;mongoose;mongodb.SetProfilingLevelOptions;", //
"mongodb;Transaction;mongodb/mongodb;Transaction;", //
"mongodb;Transaction;mongodb;ClientSession;Member[transaction]", //
"mongodb;Transaction;mongodb;TransactionStatic;Instance", //
"mongodb;Transaction;mongoose;mongodb.Transaction;", //
"mongodb;TransactionOptions;mongodb/mongodb;TransactionOptions;", //
"mongodb;TransactionOptions;mongodb;ClientSession;Member[defaultTransactionOptions]", //
"mongodb;TransactionOptions;mongodb;ClientSession;Member[startTransaction].Argument[0]", //
"mongodb;TransactionOptions;mongodb;ClientSession;Member[withTransaction].Argument[1]", //
"mongodb;TransactionOptions;mongodb;ClientSessionOptions;Member[defaultTransactionOptions]", //
"mongodb;TransactionOptions;mongodb;Transaction;Member[options]", //
"mongodb;TransactionOptions;mongoose;mongodb.TransactionOptions;", //
"mongodb;TransactionStatic;mongodb/mongodb;TransactionStatic;", //
"mongodb;TransactionStatic;mongodb;;Member[Transaction]", //
"mongodb;TransactionStatic;mongoose;mongodb.TransactionStatic;", //
"mongodb;TypedEventEmitter;mongodb;AbstractCursor;", //
"mongodb;TypedEventEmitter;mongodb;ChangeStream;", //
"mongodb;TypedEventEmitter;mongodb;ClientSession;", //
"mongodb;TypedEventEmitter;mongodb;GridFSBucket;", //
"mongodb;TypedEventEmitter;mongodb;MongoClient;", //
"mongodb;UnorderedBulkOperation;mongodb/mongodb;UnorderedBulkOperation;", //
"mongodb;UnorderedBulkOperation;mongodb;Collection;Member[initializeUnorderedBulkOp].ReturnValue", //
"mongodb;UnorderedBulkOperation;mongodb;UnorderedBulkOperation;Member[addToOperationsList].ReturnValue", //
"mongodb;UnorderedBulkOperation;mongodb;UnorderedBulkOperationStatic;Instance", //
"mongodb;UnorderedBulkOperation;mongoose;mongodb.UnorderedBulkOperation;", //
"mongodb;UnorderedBulkOperationStatic;mongodb/mongodb;UnorderedBulkOperationStatic;", //
"mongodb;UnorderedBulkOperationStatic;mongodb;;Member[UnorderedBulkOperation]", //
"mongodb;UnorderedBulkOperationStatic;mongoose;mongodb.UnorderedBulkOperationStatic;", //
"mongodb;UpdateManyModel;mongodb/mongodb;UpdateManyModel;", //
"mongodb;UpdateManyModel;mongodb;AnyBulkWriteOperation;Member[updateMany]", //
"mongodb;UpdateManyModel;mongoose;mongodb.UpdateManyModel;", //
"mongodb;UpdateOneModel;mongodb/mongodb;UpdateOneModel;", //
"mongodb;UpdateOneModel;mongodb;AnyBulkWriteOperation;Member[updateOne]", //
"mongodb;UpdateOneModel;mongoose;mongodb.UpdateOneModel;", //
"mongodb;UpdateOptions;mongodb/mongodb;UpdateOptions;", //
"mongodb;UpdateOptions;mongodb;Collection;Member[update,updateMany,updateOne].Argument[2]", //
"mongodb;UpdateOptions;mongoose;mongodb.UpdateOptions;", //
"mongodb;ValidateCollectionOptions;mongodb/mongodb;ValidateCollectionOptions;", //
"mongodb;ValidateCollectionOptions;mongodb;Admin;Member[validateCollection].Argument[1]", //
"mongodb;ValidateCollectionOptions;mongoose;mongodb.ValidateCollectionOptions;", //
"mongodb;WithSessionCallback;mongodb/mongodb;WithSessionCallback;", //
"mongodb;WithSessionCallback;mongodb;MongoClient;Member[withSession].Argument[1]", //
"mongodb;WithSessionCallback;mongodb;MongoClient;Member[withSession].WithArity[1].Argument[0]", //
"mongodb;WithSessionCallback;mongoose;mongodb.WithSessionCallback;", //
"mongodb;WithTransactionCallback;mongodb/mongodb;WithTransactionCallback;", //
"mongodb;WithTransactionCallback;mongodb;ClientSession;Member[withTransaction].Argument[0]", //
"mongodb;WithTransactionCallback;mongoose;mongodb.WithTransactionCallback;", //
"mongoose/inferschematype;ResolvePathType;mongoose/inferschematype;ObtainDocumentPathType;", //
"mongoose/inferschematype;ResolvePathType;mongoose/inferschematype;ResolvePathType;TypeVar[mongoose.IfEquals.3].ArrayElement", //
"mongoose/inferschematype;ResolvePathType;mongoose/inferschematype;ResolvePathType;TypeVar[mongoose.IfEquals.3].TypeVar[mongoose.Types.DocumentArray.0]", //
"mongoose;;mongoose;;Member[mongoose]", //
"mongoose;AcceptsDiscriminator;mongoose;Model;", //
"mongoose;AcceptsDiscriminator;mongoose;Schema.Types.Array;", //
"mongoose;AcceptsDiscriminator;mongoose;Schema.Types.DocumentArray;", //
"mongoose;AcceptsDiscriminator;mongoose;Schema.Types.Subdocument;", //
"mongoose;Aggregate;mongoose;Aggregate;Member[addCursorFlag,addFields,allowDiskUse,append,collation,count,facet,graphLookup,group,hint,limit,lookup,match,model,near,option,project,read,readConcern,redact,replaceRoot,sample,search,session,skip,sort,sortByCount,unionWith,unwind].ReturnValue", //
"mongoose;Aggregate;mongoose;AggregateStatic;Instance", //
"mongoose;Aggregate;mongoose;Model;Member[aggregate].ReturnValue", //
"mongoose;AggregateStatic;mongoose;;Member[Aggregate]", //
"mongoose;Collection;mongoose;;Member[Collection]", //
"mongoose;Collection;mongoose;Collection;Instance", //
"mongoose;Collection;mongoose;Connection;Member[collection].ReturnValue", //
"mongoose;Collection;mongoose;Connection;Member[collections].AnyMember", //
"mongoose;Collection;mongoose;Document;Member[collection]", //
"mongoose;Collection;mongoose;Model;Member[collection]", //
"mongoose;CollectionBase;mongoose;Collection;", //
"mongoose;CompileModelOptions;mongoose;;Member[model].Argument[3]", //
"mongoose;CompileModelOptions;mongoose;Connection;Member[model].Argument[3]", //
"mongoose;ConnectOptions;mongoose;;Member[connect,createConnection].WithArity[1,2,3].Argument[1]", //
"mongoose;ConnectOptions;mongoose;Connection;Member[openUri].WithArity[1,2,3].Argument[1]", //
"mongoose;Connection;mongoose;;Member[connection]", //
"mongoose;Connection;mongoose;;Member[connections].ArrayElement", //
"mongoose;Connection;mongoose;;Member[createConnection].Argument[2].TypeVar[mongoose.Callback.0]", //
"mongoose;Connection;mongoose;;Member[createConnection].WithArity[0,1,2].ReturnValue", //
"mongoose;Connection;mongoose;;Member[createConnection].WithArity[2].Argument[1].TypeVar[mongoose.Callback.0]", //
"mongoose;Connection;mongoose;Collection;Argument[1]", //
"mongoose;Connection;mongoose;CollectionBase;Member[conn]", //
"mongoose;Connection;mongoose;CompileModelOptions;Member[connection]", //
"mongoose;Connection;mongoose;Connection;Member[asPromise].ReturnValue.Awaited", //
"mongoose;Connection;mongoose;Connection;Member[deleteModel,plugin,setClient,useDb].ReturnValue", //
"mongoose;Connection;mongoose;Connection;Member[openUri].Argument[2].TypeVar[mongoose.Callback.0]", //
"mongoose;Connection;mongoose;Connection;Member[openUri].WithArity[1,2].ReturnValue.Awaited", //
"mongoose;Connection;mongoose;Connection;Member[openUri].WithArity[2,3].ReturnValue", //
"mongoose;Connection;mongoose;Connection;Member[openUri].WithArity[2].Argument[1].TypeVar[mongoose.Callback.0]", //
"mongoose;Connection;mongoose;ConnectionStatic;Instance", //
"mongoose;Connection;mongoose;Document;Member[db]", //
"mongoose;Connection;mongoose;Model;Member[db]", //
"mongoose;ConnectionStatic;mongoose;;Member[Connection]", //
"mongoose;Cursor;mongoose;Query;Member[cursor].ReturnValue", //
"mongoose;DiscriminatorModel;mongoose;DiscriminatorSchema;TypeVar[mongoose.Schema.1]", //
"mongoose;Document;mongoose;Document;Member[$getAllSubdocs,$getPopulatedDocs].ReturnValue.ArrayElement", //
"mongoose;Document;mongoose;Document;Member[$inc,$parent,$set,depopulate,increment,init,overwrite,set].ReturnValue", //
"mongoose;Document;mongoose;Document;Member[delete,deleteOne].WithArity[0,1].ReturnValue.TypeVar[mongoose.QueryWithHelpers.1]", //
"mongoose;Document;mongoose;Document;Member[equals].Argument[0]", //
"mongoose;Document;mongoose;Document;Member[init].Argument[2].TypeVar[mongoose.Callback.0]", //
"mongoose;Document;mongoose;Document;Member[remove,save].WithArity[0,1].ReturnValue.Awaited", //
"mongoose;Document;mongoose;Document;Member[replaceOne,update,updateOne].ReturnValue.TypeVar[mongoose.Query.1]", //
"mongoose;Document;mongoose;Document;Member[save].Argument[1].TypeVar[mongoose.Callback.0]", //
"mongoose;Document;mongoose;Document;Member[save].WithArity[1].Argument[0].TypeVar[mongoose.Callback.0]", //
"mongoose;Document;mongoose;DocumentStatic;Instance", //
"mongoose;Document;mongoose;Error.VersionErrorStatic;Argument[0]", //
"mongoose;Document;mongoose;HydratedDocument;", //
"mongoose;Document;mongoose;HydratedDocument;TypeVar[mongoose.Require_id.0]", //
"mongoose;Document;mongoose;Model;Member[bulkSave].Argument[0].ArrayElement", //
"mongoose;Document;mongoose;TVirtualPathFN;Argument[2]", //
"mongoose;Document;mongoose;Types.Subdocument;", //
"mongoose;Document;mongoose;Types.Subdocument;Member[$parent,ownerDocument,parent].ReturnValue", //
"mongoose;Document;mongoose;VirtualType;Member[applyGetters,applySetters].Argument[1]", //
"mongoose;DocumentStatic;mongoose;;Member[Document]", //
"mongoose;Error.VersionErrorStatic;mongoose;;Member[Error].Member[VersionError]", //
"mongoose;HydratedDocument;mongoose;Model;Instance", //
"mongoose;HydratedDocument;mongoose;Model;Member[$where,count,countDocuments,deleteMany,deleteOne,distinct,estimatedDocumentCount,find,geoSearch,remove,replaceOne,update,updateMany,updateOne,where].ReturnValue.TypeVar[mongoose.QueryWithHelpers.1]", //
"mongoose;HydratedDocument;mongoose;Model;Member[$where,find,geoSearch,where].ReturnValue.TypeVar[mongoose.QueryWithHelpers.0].ArrayElement", //
"mongoose;HydratedDocument;mongoose;Model;Member[create,insertMany].WithArity[2].Argument[1].TypeVar[mongoose.Callback.0].ArrayElement", //
"mongoose;HydratedDocument;mongoose;Model;Member[create].WithArity[0..,1,2].ReturnValue.Awaited.ArrayElement", //
"mongoose;HydratedDocument;mongoose;Model;Member[create].WithArity[1].ReturnValue.Awaited", //
"mongoose;HydratedDocument;mongoose;Model;Member[create].WithArity[2].Argument[1].TypeVar[mongoose.Callback.0]", //
"mongoose;HydratedDocument;mongoose;Model;Member[exists].WithArity[1,2].ReturnValue.TypeVar[mongoose.QueryWithHelpers.1]", //
"mongoose;HydratedDocument;mongoose;Model;Member[find,insertMany].WithArity[3].Argument[2].TypeVar[mongoose.Callback.0].ArrayElement", //
"mongoose;HydratedDocument;mongoose;Model;Member[findById,findByIdAndDelete,findByIdAndRemove,findOne,findOneAndDelete,findOneAndRemove].ReturnValue.TypeVar[mongoose.QueryWithHelpers.0,mongoose.QueryWithHelpers.1]", //
"mongoose;HydratedDocument;mongoose;Model;Member[findById,findOne].Argument[3].TypeVar[mongoose.Callback.0]", //
"mongoose;HydratedDocument;mongoose;Model;Member[findByIdAndDelete,findByIdAndRemove,findOneAndDelete,findOneAndRemove].Argument[2].Argument[1]", //
"mongoose;HydratedDocument;mongoose;Model;Member[findByIdAndUpdate,findOneAndReplace,findOneAndUpdate].WithArity[0,1,2,3,4].ReturnValue.TypeVar[mongoose.QueryWithHelpers.0,mongoose.QueryWithHelpers.1]", //
"mongoose;HydratedDocument;mongoose;Model;Member[findByIdAndUpdate,findOneAndReplace,findOneAndUpdate].WithArity[3,4].ReturnValue.TypeVar[mongoose.QueryWithHelpers.0].TypeVar[mongoose.ModifyResult.0]", //
"mongoose;HydratedDocument;mongoose;Model;Member[findByIdAndUpdate].WithArity[0,1,2,4].Argument[3].Argument[1]", //
"mongoose;HydratedDocument;mongoose;Model;Member[findByIdAndUpdate].WithArity[3].Argument[2,3].Argument[1]", //
"mongoose;HydratedDocument;mongoose;Model;Member[findById].WithArity[1,2,3].Argument[2].TypeVar[mongoose.Callback.0]", //
"mongoose;HydratedDocument;mongoose;Model;Member[findOneAndReplace].WithArity[0,1,2,3,4].Argument[3].Argument[1]", //
"mongoose;HydratedDocument;mongoose;Model;Member[findOneAndUpdate].WithArity[3,4].Argument[3].Argument[1]", //
"mongoose;HydratedDocument;mongoose;Model;Member[findOne].WithArity[0,1,2].Argument[1,2].TypeVar[mongoose.Callback.0]", //
"mongoose;HydratedDocument;mongoose;Model;Member[findOne].WithArity[3].Argument[2].TypeVar[mongoose.Callback.0]", //
"mongoose;HydratedDocument;mongoose;Model;Member[find].Argument[3].TypeVar[mongoose.Callback.0].ArrayElement", //
"mongoose;HydratedDocument;mongoose;Model;Member[find].WithArity[0].Argument[0].TypeVar[mongoose.Callback.0].ArrayElement", //
"mongoose;HydratedDocument;mongoose;Model;Member[find].WithArity[1].Argument[0,1,2].TypeVar[mongoose.Callback.0].ArrayElement", //
"mongoose;HydratedDocument;mongoose;Model;Member[find].WithArity[2].Argument[1,2].TypeVar[mongoose.Callback.0].ArrayElement", //
"mongoose;HydratedDocument;mongoose;Model;Member[geoSearch].Argument[2].TypeVar[mongoose.Callback.0].ArrayElement", //
"mongoose;HydratedDocument;mongoose;Model;Member[hydrate].ReturnValue", //
"mongoose;HydratedDocument;mongoose;Model;Member[init].ReturnValue.Awaited", //
"mongoose;HydratedDocument;mongoose;Model;Member[insertMany].WithArity[1,2].ReturnValue.Awaited.ArrayElement", //
"mongoose;HydratedDocument;mongoose;Model;Member[populate].WithArity[2,3].Argument[2].TypeVar[mongoose.Callback.0]", //
"mongoose;HydratedDocument;mongoose;Model;Member[populate].WithArity[2,3].Argument[2].TypeVar[mongoose.Callback.0].ArrayElement", //
"mongoose;HydratedDocument;mongoose;Model;Member[populate].WithArity[2,3].ReturnValue.Awaited", //
"mongoose;HydratedDocument;mongoose;Model;Member[populate].WithArity[2,3].ReturnValue.Awaited.ArrayElement", //
"mongoose;HydratedDocument;mongoose;TVirtualPathFN;Argument[1].TypeVar[mongoose.VirtualType.0]", //
"mongoose;HydratedDocument;mongoose;VirtualPathFunctions;Member[options].TypeVar[mongoose.VirtualTypeOptions.0]", //
"mongoose;InsertManyOptions;mongoose;Model;Member[insertMany].WithArity[2,3].Argument[1]", //
"mongoose;Model;mongoose;;Member[Model]", //
"mongoose;Model;mongoose;;Member[model].ReturnValue", //
"mongoose;Model;mongoose;AcceptsDiscriminator;Member[discriminator].WithArity[2,3].ReturnValue", //
"mongoose;Model;mongoose;Aggregate;Member[model].Argument[0]", //
"mongoose;Model;mongoose;Connection;Member[model].WithArity[1,2,3,4].ReturnValue", //
"mongoose;Model;mongoose;Connection;Member[models].AnyMember", //
"mongoose;Model;mongoose;DiscriminatorModel;", //
"mongoose;Model;mongoose;Document;Member[$model].ReturnValue", //
"mongoose;Model;mongoose;Document;Member[populate].Argument[2]", //
"mongoose;Model;mongoose;Model;Member[discriminators].AnyMember", //
"mongoose;Model;mongoose;Models;AnyMember", //
"mongoose;Model;mongoose;PopulateOptions;Member[model]", //
"mongoose;Model;mongoose;Query;Member[cast].Argument[0]", //
"mongoose;Model;mongoose;Query;Member[populate].Argument[2]", //
"mongoose;Model;mongoose;Schema.Types.Array;Member[discriminator].WithArity[2,3].ReturnValue", //
"mongoose;Model;mongoose;Schema.Types.DocumentArray;Member[discriminator].WithArity[2,3].ReturnValue", //
"mongoose;Model;mongoose;Schema.Types.Subdocument;Member[discriminator].WithArity[2,3].ReturnValue", //
"mongoose;Model;mongoose;SchemaStatic;Instance.TypeVar[mongoose.Schema.1]", //
"mongoose;Models;mongoose;;Member[models]", //
"mongoose;PopulateOption;mongoose;InsertManyOptions;", //
"mongoose;PopulateOption;mongoose;QueryOptions;", //
"mongoose;PopulateOptions;mongoose;Document;Member[populate].Argument[4]", //
"mongoose;PopulateOptions;mongoose;Document;Member[populate].WithArity[1,2].Argument[0]", //
"mongoose;PopulateOptions;mongoose;Document;Member[populate].WithArity[1,2].Argument[0].ArrayElement", //
"mongoose;PopulateOptions;mongoose;Model;Member[populate].Argument[1]", //
"mongoose;PopulateOptions;mongoose;Model;Member[populate].Argument[1].ArrayElement", //
"mongoose;PopulateOptions;mongoose;PopulateOption;Member[populate]", //
"mongoose;PopulateOptions;mongoose;PopulateOption;Member[populate].ArrayElement", //
"mongoose;PopulateOptions;mongoose;PopulateOptions;Member[populate]", //
"mongoose;PopulateOptions;mongoose;PopulateOptions;Member[populate].ArrayElement", //
"mongoose;PopulateOptions;mongoose;Query;Member[populate].WithArity[1].Argument[0]", //
"mongoose;PopulateOptions;mongoose;Query;Member[populate].WithArity[1].Argument[0].ArrayElement", //
"mongoose;Query;mongoose;Document;Member[replaceOne,update,updateOne].ReturnValue", //
"mongoose;Query;mongoose;HydratedDocument;TypeVar[mongoose.Require_id.0]", //
"mongoose;Query;mongoose;Query;Member[all,allowDiskUse,and,batchSize,box,circle,clone,collation,comment,elemMatch,equals,exists,explain,geometry,gt,gte,hint,in,intersects,j,limit,lt,lte,maxDistance,maxScan,maxTimeMS,merge,mod,ne,near,nin,nor,or,polygon,read,readConcern,regex,remove,select,session,set,setOptions,size,skip,slice,snapshot,sort,tailable,w,where,within,wtimeout].ReturnValue", //
"mongoose;Query;mongoose;Query;Member[error].WithArity[1].ReturnValue", //
"mongoose;Query;mongoose;Query;Member[merge].Argument[0]", //
"mongoose;Query;mongoose;QueryStatic;Instance", //
"mongoose;Query;mongoose;QueryWithHelpers;", //
"mongoose;QueryOptions;mongoose;Document;Member[delete,deleteOne,remove].WithArity[0,1,2].Argument[0]", //
"mongoose;QueryOptions;mongoose;Document;Member[replaceOne,update,updateOne].Argument[1]", //
"mongoose;QueryOptions;mongoose;Model;Member[countDocuments,findByIdAndDelete,findByIdAndRemove,findOneAndDelete,findOneAndRemove].Argument[1]", //
"mongoose;QueryOptions;mongoose;Model;Member[deleteMany,deleteOne].WithArity[0,1,2,3].Argument[1]", //
"mongoose;QueryOptions;mongoose;Model;Member[estimatedDocumentCount].Argument[0]", //
"mongoose;QueryOptions;mongoose;Model;Member[find,findById].WithArity[1,2,3,4].Argument[2]", //
"mongoose;QueryOptions;mongoose;Model;Member[findByIdAndUpdate,findOne,findOneAndReplace,findOneAndUpdate].WithArity[0,1,2,3,4].Argument[2]", //
"mongoose;QueryOptions;mongoose;Model;Member[replaceOne,update,updateMany,updateOne].Argument[2]", //
"mongoose;QueryOptions;mongoose;PopulateOptions;Member[options]", //
"mongoose;QueryOptions;mongoose;Query;Member[countDocuments,findByIdAndDelete,findOneAndDelete,findOneAndRemove].Argument[1]", //
"mongoose;QueryOptions;mongoose;Query;Member[cursor,estimatedDocumentCount,setOptions].Argument[0]", //
"mongoose;QueryOptions;mongoose;Query;Member[cursor].ReturnValue.TypeVar[mongoose.Cursor.1]", //
"mongoose;QueryOptions;mongoose;Query;Member[deleteMany,deleteOne].WithArity[0,1,2,3].Argument[1]", //
"mongoose;QueryOptions;mongoose;Query;Member[findByIdAndUpdate,findOne,findOneAndUpdate].WithArity[0,1,2,3,4].Argument[2]", //
"mongoose;QueryOptions;mongoose;Query;Member[find].WithArity[1,2,3,4].Argument[2]", //
"mongoose;QueryOptions;mongoose;Query;Member[getOptions].ReturnValue", //
"mongoose;QueryOptions;mongoose;Query;Member[replaceOne,update,updateMany,updateOne].Argument[2]", //
"mongoose;QueryOptions;mongoose;VirtualTypeOptions;Member[options]", //
"mongoose;QueryStatic;mongoose;;Member[Query]", //
"mongoose;QueryWithHelpers;mongoose;Document;Member[delete,deleteOne].WithArity[0,1].ReturnValue", //
"mongoose;QueryWithHelpers;mongoose;Model;Member[$where,count,countDocuments,deleteMany,deleteOne,distinct,estimatedDocumentCount,find,findById,findByIdAndDelete,findByIdAndRemove,findOne,findOneAndDelete,findOneAndRemove,geoSearch,remove,replaceOne,update,updateMany,updateOne,where].ReturnValue", //
"mongoose;QueryWithHelpers;mongoose;Model;Member[exists].WithArity[1,2].ReturnValue", //
"mongoose;QueryWithHelpers;mongoose;Model;Member[findByIdAndUpdate,findOneAndReplace,findOneAndUpdate].WithArity[0,1,2,3,4].ReturnValue", //
"mongoose;QueryWithHelpers;mongoose;Query;Member[$where,count,countDocuments,deleteMany,deleteOne,distinct,estimatedDocumentCount,find,findByIdAndDelete,findOne,findOneAndDelete,findOneAndRemove,lean,orFail,populate,replaceOne,transform,update,updateMany,updateOne].ReturnValue", //
"mongoose;QueryWithHelpers;mongoose;Query;Member[findByIdAndUpdate,findOneAndUpdate].WithArity[0,1,2,3,4].ReturnValue", //
"mongoose;QueryWithHelpers;mongoose;Query;Member[toConstructor].ReturnValue.Instance", //
"mongoose;Schema.Types.Array;mongoose;Schema.Types.Array;Member[enum].ReturnValue", //
"mongoose;Schema.Types.Array;mongoose;Schema.Types.ArrayStatic;Instance", //
"mongoose;Schema.Types.ArrayStatic;mongoose;;Member[Schema].Member[Types].Member[Array]", //
"mongoose;Schema.Types.DocumentArray;mongoose;Schema.Types.DocumentArrayStatic;Instance", //
"mongoose;Schema.Types.DocumentArrayStatic;mongoose;;Member[Schema].Member[Types].Member[DocumentArray]", //
"mongoose;Schema.Types.Subdocument;mongoose;Schema.Types.SubdocumentStatic;Instance", //
"mongoose;Schema.Types.SubdocumentStatic;mongoose;;Member[Schema].Member[Types].Member[Subdocument]", //
"mongoose;Schema.Types.SubdocumentStatic;mongoose;Schema.Types.DocumentArray;Member[caster]", //
"mongoose;SchemaStatic;mongoose;;Member[Schema]", //
"mongoose;SessionOperation;mongoose;Aggregate;", //
"mongoose;SessionOperation;mongoose;Query;", //
"mongoose;TVirtualPathFN;mongoose;VirtualPathFunctions;Member[get,set]", //
"mongoose;Types.Array;mongoose;Types.DocumentArray;", //
"mongoose;Types.ArraySubdocument;mongoose;Types.ArraySubdocumentStatic;Instance", //
"mongoose;Types.ArraySubdocumentStatic;mongoose;;Member[Types].Member[ArraySubdocument]", //
"mongoose;Types.DocumentArray;mongoose/inferschematype;ResolvePathType;TypeVar[mongoose.IfEquals.3]", //
"mongoose;Types.DocumentArray;mongoose;Types.ArraySubdocument;Member[parentArray].ReturnValue", //
"mongoose;Types.DocumentArray;mongoose;Types.DocumentArrayStatic;Instance", //
"mongoose;Types.DocumentArrayStatic;mongoose;;Member[Types].Member[DocumentArray]", //
"mongoose;Types.ObjectId;mongoose/inferschematype;ResolvePathType;", //
"mongoose;Types.Subdocument;mongoose;Types.ArraySubdocument;", //
"mongoose;Types.Subdocument;mongoose;Types.DocumentArray;Member[create,id].ReturnValue", //
"mongoose;Types.Subdocument;mongoose;Types.DocumentArray;TypeVar[mongoose.Types.Array.0]", //
"mongoose;Types.Subdocument;mongoose;Types.SubdocumentStatic;Instance", //
"mongoose;Types.SubdocumentStatic;mongoose;;Member[Types].Member[Subdocument]", //
"mongoose;VirtualType;mongoose;TVirtualPathFN;Argument[1]", //
"mongoose;VirtualType;mongoose;VirtualType;Member[get,set].Argument[0].Argument[1]", //
"mongoose;VirtualType;mongoose;VirtualType;Member[get,set].ReturnValue", //
"mongoose;VirtualType;mongoose;VirtualTypeStatic;Instance", //
"mongoose;VirtualTypeOptions;mongoose;VirtualPathFunctions;Member[options]", //
"mongoose;VirtualTypeStatic;mongoose;;Member[VirtualType]", //
]
}
}
private class Summaries extends ModelInput::SummaryModelCsv {
override predicate row(string row) {
row =
[
"mongodb;AbstractCursor;;;Member[addCursorFlag,batchSize,maxTimeMS,withReadConcern,withReadPreference].ReturnValue;type", //
"mongodb;BulkOperationBase;;;Member[addToOperationsList,raw].ReturnValue;type", //
"mongodb;FindCursor;;;Member[addQueryModifier,allowDiskUse,collation,comment,filter,hint,limit,max,maxAwaitTimeMS,maxTimeMS,min,returnKey,showRecordId,skip,sort].ReturnValue;type", //
"mongodb;FindOperators;;;Member[arrayFilters,collation,upsert].ReturnValue;type", //
"mongodb;GridFSBucketWriteStream;;;Member[end].ReturnValue;type", //
"mongodb;MongoClient;;;Member[connect].Argument[0].TypeVar[mongodb.Callback.0];type", //
"mongodb;MongoClient;;;Member[connect].WithArity[0].ReturnValue.Awaited;type", //
"mongodb;OrderedBulkOperation;;;Member[addToOperationsList].ReturnValue;type", //
"mongodb;TypedEventEmitter;;;Member[addListener,off,on,once,prependListener,prependOnceListener,removeAllListeners,removeListener,setMaxListeners].ReturnValue;type", //
"mongodb;UnorderedBulkOperation;;;Member[addToOperationsList].ReturnValue;type", //
"mongoose;Aggregate;;;Member[addCursorFlag,addFields,allowDiskUse,append,collation,count,facet,graphLookup,group,hint,limit,lookup,match,model,near,option,project,read,readConcern,redact,replaceRoot,sample,search,session,skip,sort,sortByCount,unionWith,unwind].ReturnValue;type", //
"mongoose;Connection;;;Member[asPromise].ReturnValue.Awaited;type", //
"mongoose;Connection;;;Member[deleteModel,setClient].ReturnValue;type", //
"mongoose;Cursor;;;Member[addCursorFlag].ReturnValue;type", //
"mongoose;Document;;;Member[$inc,$set,depopulate,increment,init,overwrite,set].ReturnValue;type", //
"mongoose;Document;;;Member[delete,deleteOne].WithArity[0,1].ReturnValue.TypeVar[mongoose.QueryWithHelpers.1];type", //
"mongoose;Document;;;Member[getChanges].ReturnValue.TypeVar[mongoose.UpdateQuery.0];type", //
"mongoose;Document;;;Member[init].Argument[2].TypeVar[mongoose.Callback.0];type", //
"mongoose;Document;;;Member[populate].Argument[1,5].TypeVar[mongoose.Callback.0].TypeVar[mongoose.MergeType.0];type", //
"mongoose;Document;;;Member[populate].WithArity[1,2,3,4,5].ReturnValue.Awaited.TypeVar[mongoose.MergeType.0];type", //
"mongoose;Document;;;Member[remove,save].WithArity[0,1].ReturnValue.Awaited;type", //
"mongoose;Document;;;Member[replaceOne,update,updateOne].ReturnValue.TypeVar[mongoose.Query.1];type", //
"mongoose;Document;;;Member[save].Argument[1].TypeVar[mongoose.Callback.0];type", //
"mongoose;Document;;;Member[save].WithArity[1].Argument[0].TypeVar[mongoose.Callback.0];type", //
"mongoose;Document;;;Member[update,updateOne].Argument[0].TypeVar[mongoose.UpdateQuery.0];type", //
"mongoose;Query;;;Member[all,allowDiskUse,and,batchSize,box,circle,clone,collation,comment,elemMatch,equals,exists,explain,geometry,gt,gte,hint,in,intersects,j,limit,lt,lte,maxDistance,maxScan,maxTimeMS,merge,mod,ne,near,nin,nor,or,polygon,read,readConcern,regex,select,session,set,setOptions,size,skip,slice,snapshot,sort,tailable,w,where,within,wtimeout].ReturnValue;type", //
"mongoose;Query;;;Member[error].WithArity[1].ReturnValue;type", //
"mongoose;Schema.Types.Array;;;Member[enum].ReturnValue;type", //
"mongoose;SessionOperation;;;Member[session].ReturnValue;type", //
"mongoose;Types.Array;;;Member[pull,remove,set].ReturnValue;type", //
"mongoose;Types.ObjectId;;;Member[_id];type", //
"mongoose;VirtualType;;;Member[get,set].ReturnValue;type", //
]
}
}
private class TypeVariables extends ModelInput::TypeVariableModelCsv {
override predicate row(string row) {
row =
[
"mongodb.Callback.0;Argument[1]", //
"mongoose.Callback.0;Argument[1]", //
"mongoose.Cursor.0;Member[eachAsync].WithArity[1,2,3].Argument[0].Argument[0]", //
"mongoose.Cursor.0;Member[eachAsync].WithArity[2,3].Argument[0].Argument[0].ArrayElement", //
"mongoose.Cursor.0;Member[map].Argument[0].Argument[0]", //
"mongoose.Cursor.0;Member[next].Argument[0].TypeVar[mongoose.Callback.0]", //
"mongoose.Cursor.0;Member[next].WithArity[0].ReturnValue.Awaited", //
"mongoose.Cursor.1;Member[map].ReturnValue.TypeVar[mongoose.Cursor.1]", //
"mongoose.Cursor.1;Member[options]", //
"mongoose.DiscriminatorSchema.1;TypeVar[mongoose.Schema.1]", //
"mongoose.DiscriminatorSchema.1;TypeVar[mongoose.Schema.1].TypeVar[mongoose.DiscriminatorModel.1]", //
"mongoose.Document.0;Member[_id]", //
"mongoose.Document.0;Member[equals].Argument[0].TypeVar[mongoose.Document.0]", //
"mongoose.FilterQuery.0;TypeVar[mongoose._FilterQuery.0]", //
"mongoose.IfAny.1;", //
"mongoose.IfAny.2;", //
"mongoose.IfEquals.3;", //
"mongoose.LeanDocumentOrArray.0;", //
"mongoose.LeanDocumentOrArray.0;TypeVar[mongoose.LeanDocument.0]", //
"mongoose.LeanDocumentOrArrayWithRawType.0;", //
"mongoose.ModifyResult.0;Member[value].TypeVar[mongoose.Require_id.0]", //
"mongoose.PluginFunction.1;Argument[0].TypeVar[mongoose.Schema.1]", //
"mongoose.PostMiddlewareFunction.1;Argument[0]", //
"mongoose.Query.0;Member[exec].Argument[0].TypeVar[mongoose.Callback.0]", //
"mongoose.Query.0;Member[exec].WithArity[0].ReturnValue.Awaited", //
"mongoose.Query.0;Member[lean].ReturnValue.TypeVar[mongoose.QueryWithHelpers.0].TypeVar[mongoose.LeanDocumentOrArray.0,mongoose.LeanDocumentOrArrayWithRawType.0]", //
"mongoose.Query.0;Member[orFail].ReturnValue.TypeVar[mongoose.QueryWithHelpers.0]", //
"mongoose.Query.0;Member[populate].ReturnValue.TypeVar[mongoose.QueryWithHelpers.0].TypeVar[mongoose.UnpackedIntersection.0]", //
"mongoose.Query.0;Member[then,transform].Argument[0].Argument[0]", //
"mongoose.Query.0;Member[toConstructor].ReturnValue.Instance.TypeVar[mongoose.QueryWithHelpers.0]", //
"mongoose.Query.1;Member[$where,count,countDocuments,deleteMany,deleteOne,distinct,estimatedDocumentCount,find,lean,orFail,populate,replaceOne,transform,update,updateMany,updateOne].ReturnValue.TypeVar[mongoose.QueryWithHelpers.1]", //
"mongoose.Query.1;Member[$where,find].ReturnValue.TypeVar[mongoose.QueryWithHelpers.0].ArrayElement", //
"mongoose.Query.1;Member[_mongooseOptions].TypeVar[mongoose.MongooseQueryOptions.0]", //
"mongoose.Query.1;Member[and,nor,or].Argument[0].ArrayElement.TypeVar[mongoose.FilterQuery.0]", //
"mongoose.Query.1;Member[countDocuments,findByIdAndDelete,findOneAndDelete,findOneAndRemove].Argument[1].TypeVar[mongoose.QueryOptions.0]", //
"mongoose.Query.1;Member[countDocuments].WithArity[1,2,3].Argument[0].TypeVar[mongoose.FilterQuery.0]", //
"mongoose.Query.1;Member[count].WithArity[1,2].Argument[0].TypeVar[mongoose.FilterQuery.0]", //
"mongoose.Query.1;Member[cursor,estimatedDocumentCount,setOptions].Argument[0].TypeVar[mongoose.QueryOptions.0]", //
"mongoose.Query.1;Member[cursor].ReturnValue.TypeVar[mongoose.Cursor.0]", //
"mongoose.Query.1;Member[cursor].ReturnValue.TypeVar[mongoose.Cursor.1].TypeVar[mongoose.QueryOptions.0]", //
"mongoose.Query.1;Member[deleteMany,deleteOne].WithArity[0,1,2,3].Argument[0].TypeVar[mongoose.FilterQuery.0]", //
"mongoose.Query.1;Member[deleteMany,deleteOne].WithArity[0,1,2,3].Argument[1].TypeVar[mongoose.QueryOptions.0]", //
"mongoose.Query.1;Member[distinct].Argument[1].TypeVar[mongoose.FilterQuery.0]", //
"mongoose.Query.1;Member[findByIdAndDelete,findOne,findOneAndDelete,findOneAndRemove].ReturnValue.TypeVar[mongoose.QueryWithHelpers.0,mongoose.QueryWithHelpers.1]", //
"mongoose.Query.1;Member[findByIdAndDelete,findOneAndDelete,findOneAndRemove].Argument[2].Argument[1]", //
"mongoose.Query.1;Member[findByIdAndUpdate,findOneAndUpdate,update,updateMany,updateOne].Argument[1].TypeVar[mongoose.UpdateQuery.0]", //
"mongoose.Query.1;Member[findByIdAndUpdate,findOneAndUpdate].WithArity[0,1,2,3,4].Argument[2].TypeVar[mongoose.QueryOptions.0]", //
"mongoose.Query.1;Member[findByIdAndUpdate,findOneAndUpdate].WithArity[0,1,2,3,4].ReturnValue.TypeVar[mongoose.QueryWithHelpers.0,mongoose.QueryWithHelpers.1]", //
"mongoose.Query.1;Member[findByIdAndUpdate].WithArity[0,1,2,4].Argument[3].Argument[1]", //
"mongoose.Query.1;Member[findByIdAndUpdate].WithArity[3].Argument[2,3].Argument[1]", //
"mongoose.Query.1;Member[findOne,findOneAndDelete,findOneAndRemove,findOneAndUpdate,merge,remove,replaceOne,setQuery,update,updateMany,updateOne].Argument[0].TypeVar[mongoose.FilterQuery.0]", //
"mongoose.Query.1;Member[findOneAndUpdate].Argument[3].Argument[1]", //
"mongoose.Query.1;Member[findOneAndUpdate].Argument[3].Argument[2].TypeVar[mongoose.ModifyResult.0]", //
"mongoose.Query.1;Member[findOneAndUpdate].WithArity[3,4].ReturnValue.TypeVar[mongoose.QueryWithHelpers.0].TypeVar[mongoose.ModifyResult.0]", //
"mongoose.Query.1;Member[findOne].Argument[3].TypeVar[mongoose.Callback.0]", //
"mongoose.Query.1;Member[findOne].WithArity[0,1,2,3].Argument[2].TypeVar[mongoose.Callback.0,mongoose.QueryOptions.0]", //
"mongoose.Query.1;Member[findOne].WithArity[0,1,2].Argument[1].TypeVar[mongoose.Callback.0,mongoose.ProjectionType.0]", //
"mongoose.Query.1;Member[findOne].WithArity[3,4].Argument[1].TypeVar[mongoose.ProjectionType.0]", //
"mongoose.Query.1;Member[findOne].WithArity[4].Argument[2].TypeVar[mongoose.QueryOptions.0]", //
"mongoose.Query.1;Member[find].Argument[3].TypeVar[mongoose.Callback.0].ArrayElement", //
"mongoose.Query.1;Member[find].WithArity[0].Argument[0].TypeVar[mongoose.Callback.0].ArrayElement", //
"mongoose.Query.1;Member[find].WithArity[1,2,3,4].Argument[0].TypeVar[mongoose.FilterQuery.0]", //
"mongoose.Query.1;Member[find].WithArity[1,2,3,4].Argument[1].TypeVar[mongoose.ProjectionType.0]", //
"mongoose.Query.1;Member[find].WithArity[1,2,3,4].Argument[2].TypeVar[mongoose.QueryOptions.0]", //
"mongoose.Query.1;Member[find].WithArity[1].Argument[0,1,2].TypeVar[mongoose.Callback.0].ArrayElement", //
"mongoose.Query.1;Member[find].WithArity[2].Argument[1,2].TypeVar[mongoose.Callback.0].ArrayElement", //
"mongoose.Query.1;Member[find].WithArity[3].Argument[2].TypeVar[mongoose.Callback.0].ArrayElement", //
"mongoose.Query.1;Member[getFilter,getQuery].ReturnValue.TypeVar[mongoose.FilterQuery.0]", //
"mongoose.Query.1;Member[getOptions].ReturnValue.TypeVar[mongoose.QueryOptions.0]", //
"mongoose.Query.1;Member[getUpdate].ReturnValue.TypeVar[mongoose.UpdateQuery.0]", //
"mongoose.Query.1;Member[projection].WithArity[0,1].Argument[0].TypeVar[mongoose.ProjectionFields.0]", //
"mongoose.Query.1;Member[projection].WithArity[0,1].ReturnValue.TypeVar[mongoose.ProjectionFields.0]", //
"mongoose.Query.1;Member[remove].ReturnValue.TypeVar[mongoose.Query.1]", //
"mongoose.Query.1;Member[replaceOne,update,updateMany,updateOne].Argument[2].TypeVar[mongoose.QueryOptions.0]", //
"mongoose.Query.1;Member[replaceOne].Argument[1]", //
"mongoose.Query.1;Member[setUpdate].Argument[0].TypeVar[mongoose.UpdateQuery.0]", //
"mongoose.Query.1;Member[toConstructor].ReturnValue.Instance.TypeVar[mongoose.QueryWithHelpers.1]", //
"mongoose.QueryOptions.0;Member[projection].TypeVar[mongoose.ProjectionType.0]", //
"mongoose.QueryWithHelpers.0;TypeVar[mongoose.Query.0]", //
"mongoose.QueryWithHelpers.1;TypeVar[mongoose.Query.1]", //
"mongoose.Require_id.0;", //
"mongoose.Require_id.0;TypeVar[mongoose.IfAny.1,mongoose.IfAny.2]", //
"mongoose.RootQuerySelector.0;Member[$and,$nor,$or].ArrayElement.TypeVar[mongoose.FilterQuery.0]", //
"mongoose.Schema.1;Member[discriminator].ReturnValue.TypeVar[mongoose.DiscriminatorSchema.1]", //
"mongoose.Schema.1;Member[plugin].Argument[0].TypeVar[mongoose.PluginFunction.1]", //
"mongoose.Schema.1;Member[post].Argument[2].TypeVar[mongoose.ErrorHandlingMiddlewareFunction.0,mongoose.PostMiddlewareFunction.0,mongoose.PostMiddlewareFunction.1]", //
"mongoose.Schema.1;Member[post].WithArity[2].WithStringArgument[0=insertMany].Argument[1].TypeVar[mongoose.ErrorHandlingMiddlewareFunction.0,mongoose.PostMiddlewareFunction.0,mongoose.PostMiddlewareFunction.1]", //
"mongoose.Types.Array.0;Member[$pop,$shift,shift].ReturnValue", //
"mongoose.Types.Array.0;Member[set].Argument[1]", //
"mongoose.Types.DocumentArray.0;Member[create,id].ReturnValue", //
"mongoose.Types.DocumentArray.0;Member[create,id].ReturnValue.TypeVar[mongoose.Types.Subdocument.0].TypeVar[mongoose.InferId.0]", //
"mongoose.Types.DocumentArray.0;Member[push].Argument[0].ArrayElement.TypeVar[mongoose.AnyKeys.0]", //
"mongoose.Types.DocumentArray.0;TypeVar[mongoose.Types.Array.0]", //
"mongoose.Types.DocumentArray.0;TypeVar[mongoose.Types.Array.0].TypeVar[mongoose.Types.Subdocument.0].TypeVar[mongoose.InferId.0]", //
"mongoose.Types.Subdocument.0;TypeVar[mongoose.Document.0]", //
"mongoose.UnpackedIntersection.0;", //
"mongoose.UpdateQuery.0;TypeVar[mongoose._UpdateQuery.0].TypeVar[mongoose._UpdateQueryDef.0]", //
"mongoose.VirtualType.0;Member[get,set].Argument[0].Argument[1].TypeVar[mongoose.VirtualType.0]", //
"mongoose.VirtualType.0;Member[get,set].Argument[0].Argument[2]", //
"mongoose.VirtualTypeOptions.0;Member[foreignField,localField].Argument[0]", //
"mongoose._FilterQuery.0;TypeVar[mongoose.RootQuerySelector.0]", //
"mongoose._UpdateQuery.0;Member[$currentDate,$inc,$max,$min,$mul,$pop,$pull,$pullAll,$push,$set,$setOnInsert,$unset].TypeVar[mongoose.AnyKeys.0]", //
]
}
}

View File

@@ -0,0 +1,818 @@
{
"packages": {
"mongodb": "4.6.0",
"mongoose": "6.5.2"
},
"resolutions": {
"base64-js": "1.5.1",
"bson": "4.6.4",
"buffer": "5.7.1",
"denque": "2.0.1",
"ieee754": "1.2.1",
"sift": "16.0.0",
"smart-buffer": "4.2.0",
"socks": "2.6.2"
},
"language": "javascript",
"replaceTypeParameters": [
"mongoose;HydratedDocument;0;mongoose;Document",
"mongoose;HydratedDocument;0;mongoose;Query"
],
"usedTypes": {
"sinks": [
"mongoose;ConnectOptions",
"mongodb;Auth"
]
},
"ignoredTypes": {
"sourcesAndSinks": [
"mongoose;Schema",
"mongoose;SchemaType",
"mongoose;SchemaTypeOptions"
]
},
"model": {
"sinks": [
"mongodb;Collection;Member[aggregate,count,countDocuments,deleteMany,deleteOne,find,findOne,findOneAndDelete,findOneAndReplace,remove,replaceOne,watch].Argument[0];mongodb.sink",
"mongodb;Collection;Member[distinct].Argument[1];mongodb.sink",
"mongodb;Collection;Member[findOneAndUpdate,update,updateMany,updateOne].Argument[0,1];mongodb.sink",
"mongodb;Db;Member[aggregate,watch].Argument[0];mongodb.sink",
"mongodb;DeleteManyModel;Member[filter];mongodb.sink",
"mongodb;DeleteOneModel;Member[filter];mongodb.sink",
"mongodb;MongoClient;Member[watch].Argument[0];mongodb.sink",
"mongodb;UpdateManyModel;Member[filter,update];mongodb.sink",
"mongodb;UpdateOneModel;Member[filter,update];mongodb.sink",
"mongoose;CollectionBase;Member[findAndModify].Argument[0];mongodb.sink",
"mongoose;Connection;Member[watch].Argument[0];mongodb.sink",
"mongoose;Document;Member[update,updateOne].Argument[0];mongodb.sink",
"mongoose;Model;Member[$where,aggregate,exists,find,findById,findByIdAndDelete,findByIdAndRemove,findOne,findOneAndDelete,findOneAndRemove,findOneAndReplace,geoSearch,remove,replaceOne,watch].Argument[0];mongodb.sink",
"mongoose;Model;Member[count,where].WithArity[1,2].Argument[0];mongodb.sink",
"mongoose;Model;Member[countDocuments].WithArity[1,2,3].Argument[0];mongodb.sink",
"mongoose;Model;Member[deleteMany,deleteOne].WithArity[0,1,2,3].Argument[0];mongodb.sink",
"mongoose;Model;Member[distinct,where].Argument[1];mongodb.sink",
"mongoose;Model;Member[findByIdAndUpdate,findOneAndUpdate,update,updateMany,updateOne].Argument[0,1];mongodb.sink",
"mongoose;Model;Member[find].WithArity[1,2,3,4].Argument[0];mongodb.sink",
"mongoose;Query;Member[$where,and,find,findByIdAndDelete,findOne,findOneAndDelete,findOneAndRemove,nor,or,remove,replaceOne,setUpdate].Argument[0];mongodb.sink",
"mongoose;Query;Member[count,where].WithArity[1,2].Argument[0];mongodb.sink",
"mongoose;Query;Member[deleteMany,deleteOne].WithArity[0,1,2,3].Argument[0];mongodb.sink",
"mongoose;Query;Member[distinct,where].Argument[1];mongodb.sink",
"mongoose;Query;Member[findByIdAndUpdate,findOneAndUpdate,update,updateMany,updateOne].Argument[0,1];mongodb.sink",
"mongoose;Query;Member[find].WithArity[1,2,3,4].Argument[0];mongodb.sink",
"mongoose;QueryStatic;Argument[2];mongodb.sink"
]
},
"generatedModel": {
"//": "Autogenerated section. Manual edits in here will be lost.",
"typeDefinitions": [
"mongodb;;mongoose;;Member[mongodb]",
"mongodb;AbstractCursor;mongodb;FindCursor;",
"mongodb;AbstractCursor;mongodb;ListCollectionsCursor;",
"mongodb;AbstractCursor;mongodb;ListIndexesCursor;",
"mongodb;AbstractCursorOptions;mongodb/mongodb;AbstractCursorOptions;",
"mongodb;AbstractCursorOptions;mongodb;AggregationCursorOptions;",
"mongodb;AbstractCursorOptions;mongoose;mongodb.AbstractCursorOptions;",
"mongodb;AddUserOptions;mongodb/mongodb;AddUserOptions;",
"mongodb;AddUserOptions;mongodb;Admin;Member[addUser].Argument[1,2]",
"mongodb;AddUserOptions;mongodb;Db;Member[addUser].Argument[1,2]",
"mongodb;AddUserOptions;mongoose;mongodb.AddUserOptions;",
"mongodb;Admin;mongodb/mongodb;Admin;",
"mongodb;Admin;mongodb;AdminStatic;Instance",
"mongodb;Admin;mongodb;Db;Member[admin].ReturnValue",
"mongodb;Admin;mongoose;mongodb.Admin;",
"mongodb;AdminStatic;mongodb/mongodb;AdminStatic;",
"mongodb;AdminStatic;mongodb;;Member[Admin]",
"mongodb;AdminStatic;mongoose;mongodb.AdminStatic;",
"mongodb;AggregateOptions;mongodb/mongodb;AggregateOptions;",
"mongodb;AggregateOptions;mongodb;AggregationCursorOptions;",
"mongodb;AggregateOptions;mongodb;ChangeStreamOptions;",
"mongodb;AggregateOptions;mongodb;Collection;Member[aggregate].Argument[1]",
"mongodb;AggregateOptions;mongodb;CountDocumentsOptions;",
"mongodb;AggregateOptions;mongodb;Db;Member[aggregate].Argument[1]",
"mongodb;AggregateOptions;mongoose;mongodb.AggregateOptions;",
"mongodb;AggregationCursorOptions;mongodb/mongodb;AggregationCursorOptions;",
"mongodb;AggregationCursorOptions;mongoose;mongodb.AggregationCursorOptions;",
"mongodb;AnyBulkWriteOperation;mongodb/mongodb;AnyBulkWriteOperation;",
"mongodb;AnyBulkWriteOperation;mongodb;BulkOperationBase;Member[raw].Argument[0]",
"mongodb;AnyBulkWriteOperation;mongodb;Collection;Member[bulkWrite].Argument[0].ArrayElement",
"mongodb;AnyBulkWriteOperation;mongoose;mongodb.AnyBulkWriteOperation;",
"mongodb;Auth;mongodb/mongodb;Auth;",
"mongodb;Auth;mongodb;MongoClientOptions;Member[auth]",
"mongodb;Auth;mongoose;mongodb.Auth;",
"mongodb;AutoEncrypter;mongodb/mongodb;AutoEncrypter;",
"mongodb;AutoEncrypter;mongodb;AutoEncrypter;Instance",
"mongodb;AutoEncrypter;mongodb;ConnectionOptions;Member[autoEncrypter]",
"mongodb;AutoEncrypter;mongodb;MongoClient;Member[autoEncrypter]",
"mongodb;AutoEncrypter;mongodb;MongoOptions;Member[autoEncrypter]",
"mongodb;AutoEncrypter;mongoose;mongodb.AutoEncrypter;",
"mongodb;AutoEncryptionOptions;mongodb/mongodb;AutoEncryptionOptions;",
"mongodb;AutoEncryptionOptions;mongodb;AutoEncrypter;Argument[1]",
"mongodb;AutoEncryptionOptions;mongodb;MongoClientOptions;Member[autoEncryption]",
"mongodb;AutoEncryptionOptions;mongoose;mongodb.AutoEncryptionOptions;",
"mongodb;BulkOperationBase;mongodb/mongodb;BulkOperationBase;",
"mongodb;BulkOperationBase;mongodb;BulkOperationBase;Member[addToOperationsList,insert,raw].ReturnValue",
"mongodb;BulkOperationBase;mongodb;BulkOperationBaseStatic;Instance",
"mongodb;BulkOperationBase;mongodb;FindOperators;Member[bulkOperation]",
"mongodb;BulkOperationBase;mongodb;FindOperators;Member[delete,deleteOne,replaceOne,update,updateOne].ReturnValue",
"mongodb;BulkOperationBase;mongodb;OrderedBulkOperation;",
"mongodb;BulkOperationBase;mongodb;UnorderedBulkOperation;",
"mongodb;BulkOperationBase;mongoose;mongodb.BulkOperationBase;",
"mongodb;BulkOperationBaseStatic;mongodb/mongodb;BulkOperationBaseStatic;",
"mongodb;BulkOperationBaseStatic;mongodb;;Member[BulkOperationBase]",
"mongodb;BulkOperationBaseStatic;mongoose;mongodb.BulkOperationBaseStatic;",
"mongodb;BulkWriteOptions;mongodb/mongodb;BulkWriteOptions;",
"mongodb;BulkWriteOptions;mongodb;BulkOperationBase;Member[execute].WithArity[0,1,2].Argument[0]",
"mongodb;BulkWriteOptions;mongodb;Collection;Member[bulkWrite,insert,insertMany].Argument[1]",
"mongodb;BulkWriteOptions;mongodb;Collection;Member[initializeOrderedBulkOp,initializeUnorderedBulkOp].Argument[0]",
"mongodb;BulkWriteOptions;mongodb;OrderedBulkOperationStatic;Argument[1]",
"mongodb;BulkWriteOptions;mongodb;UnorderedBulkOperationStatic;Argument[1]",
"mongodb;BulkWriteOptions;mongoose;mongodb.BulkWriteOptions;",
"mongodb;ChangeStream;mongodb/mongodb;ChangeStream;",
"mongodb;ChangeStream;mongodb;ChangeStreamStatic;Instance",
"mongodb;ChangeStream;mongodb;Collection;Member[watch].ReturnValue",
"mongodb;ChangeStream;mongodb;Db;Member[watch].ReturnValue",
"mongodb;ChangeStream;mongodb;MongoClient;Member[watch].ReturnValue",
"mongodb;ChangeStream;mongoose;mongodb.ChangeStream;",
"mongodb;ChangeStreamOptions;mongodb/mongodb;ChangeStreamOptions;",
"mongodb;ChangeStreamOptions;mongodb;ChangeStream;Member[options]",
"mongodb;ChangeStreamOptions;mongodb;Collection;Member[watch].Argument[1]",
"mongodb;ChangeStreamOptions;mongodb;Db;Member[watch].Argument[1]",
"mongodb;ChangeStreamOptions;mongodb;MongoClient;Member[watch].Argument[1]",
"mongodb;ChangeStreamOptions;mongoose;mongodb.ChangeStreamOptions;",
"mongodb;ChangeStreamStatic;mongodb/mongodb;ChangeStreamStatic;",
"mongodb;ChangeStreamStatic;mongodb;;Member[ChangeStream]",
"mongodb;ChangeStreamStatic;mongoose;mongodb.ChangeStreamStatic;",
"mongodb;ClientSession;mongodb/mongodb;ClientSession;",
"mongodb;ClientSession;mongodb;AbstractCursorOptions;Member[session]",
"mongodb;ClientSession;mongodb;ClientSession;Member[equals].Argument[0]",
"mongodb;ClientSession;mongodb;ClientSessionEvents;Member[ended].Argument[0]",
"mongodb;ClientSession;mongodb;ClientSessionStatic;Instance",
"mongodb;ClientSession;mongodb;IndexInformationOptions;Member[session]",
"mongodb;ClientSession;mongodb;MongoClient;Member[startSession].ReturnValue",
"mongodb;ClientSession;mongodb;OperationOptions;Member[session]",
"mongodb;ClientSession;mongodb;ReadPreferenceFromOptions;Member[session]",
"mongodb;ClientSession;mongodb;SelectServerOptions;Member[session]",
"mongodb;ClientSession;mongodb;WithSessionCallback;Argument[0]",
"mongodb;ClientSession;mongodb;WithTransactionCallback;Argument[0]",
"mongodb;ClientSession;mongoose;mongodb.ClientSession;",
"mongodb;ClientSessionEvents;mongodb/mongodb;ClientSessionEvents;",
"mongodb;ClientSessionEvents;mongoose;mongodb.ClientSessionEvents;",
"mongodb;ClientSessionOptions;mongodb/mongodb;ClientSessionOptions;",
"mongodb;ClientSessionOptions;mongodb;MongoClient;Member[startSession].Argument[0]",
"mongodb;ClientSessionOptions;mongodb;MongoClient;Member[withSession].WithArity[2].Argument[0]",
"mongodb;ClientSessionOptions;mongoose;mongodb.ClientSessionOptions;",
"mongodb;ClientSessionStatic;mongodb/mongodb;ClientSessionStatic;",
"mongodb;ClientSessionStatic;mongodb;;Member[ClientSession]",
"mongodb;ClientSessionStatic;mongoose;mongodb.ClientSessionStatic;",
"mongodb;CollStatsOptions;mongodb/mongodb;CollStatsOptions;",
"mongodb;CollStatsOptions;mongodb;Collection;Member[stats].Argument[0]",
"mongodb;CollStatsOptions;mongoose;mongodb.CollStatsOptions;",
"mongodb;Collection;mongodb/mongodb;Collection;",
"mongodb;Collection;mongodb;ChangeStream;Member[parent]",
"mongodb;Collection;mongodb;Collection;Member[rename].Argument[1,2].TypeVar[mongodb.Callback.0]",
"mongodb;Collection;mongodb;Collection;Member[rename].WithArity[1,2].ReturnValue.Awaited",
"mongodb;Collection;mongodb;CollectionStatic;Instance",
"mongodb;Collection;mongodb;Db;Member[collection].ReturnValue",
"mongodb;Collection;mongodb;Db;Member[collections].Argument[0,1].TypeVar[mongodb.Callback.0].ArrayElement",
"mongodb;Collection;mongodb;Db;Member[collections].WithArity[0,1].ReturnValue.Awaited.ArrayElement",
"mongodb;Collection;mongodb;Db;Member[createCollection].Argument[2].TypeVar[mongodb.Callback.0]",
"mongodb;Collection;mongodb;Db;Member[createCollection].WithArity[1,2].ReturnValue.Awaited",
"mongodb;Collection;mongodb;Db;Member[createCollection].WithArity[2].Argument[1].TypeVar[mongodb.Callback.0]",
"mongodb;Collection;mongodb;Db;Member[renameCollection].Argument[2,3].TypeVar[mongodb.Callback.0]",
"mongodb;Collection;mongodb;Db;Member[renameCollection].WithArity[2,3].ReturnValue.Awaited",
"mongodb;Collection;mongodb;GridFSBucketWriteStream;Member[chunks,files]",
"mongodb;Collection;mongodb;ListIndexesCursor;Member[parent]",
"mongodb;Collection;mongodb;ListIndexesCursorStatic;Argument[0]",
"mongodb;Collection;mongodb;OrderedBulkOperationStatic;Argument[0]",
"mongodb;Collection;mongodb;UnorderedBulkOperationStatic;Argument[0]",
"mongodb;Collection;mongoose;mongodb.Collection;",
"mongodb;CollectionStatic;mongodb/mongodb;CollectionStatic;",
"mongodb;CollectionStatic;mongodb;;Member[Collection]",
"mongodb;CollectionStatic;mongoose;mongodb.CollectionStatic;",
"mongodb;CommandOperationOptions;mongodb/mongodb;CommandOperationOptions;",
"mongodb;CommandOperationOptions;mongodb;AddUserOptions;",
"mongodb;CommandOperationOptions;mongodb;Admin;Member[buildInfo,ping,replSetGetStatus,serverInfo,serverStatus].Argument[0]",
"mongodb;CommandOperationOptions;mongodb;AggregateOptions;",
"mongodb;CommandOperationOptions;mongodb;BulkWriteOptions;",
"mongodb;CommandOperationOptions;mongodb;CollStatsOptions;",
"mongodb;CommandOperationOptions;mongodb;CountOptions;",
"mongodb;CommandOperationOptions;mongodb;CreateCollectionOptions;",
"mongodb;CommandOperationOptions;mongodb;CreateIndexesOptions;",
"mongodb;CommandOperationOptions;mongodb;DbStatsOptions;",
"mongodb;CommandOperationOptions;mongodb;DeleteOptions;",
"mongodb;CommandOperationOptions;mongodb;DistinctOptions;",
"mongodb;CommandOperationOptions;mongodb;DropCollectionOptions;",
"mongodb;CommandOperationOptions;mongodb;DropDatabaseOptions;",
"mongodb;CommandOperationOptions;mongodb;DropIndexesOptions;",
"mongodb;CommandOperationOptions;mongodb;EstimatedDocumentCountOptions;",
"mongodb;CommandOperationOptions;mongodb;EvalOptions;",
"mongodb;CommandOperationOptions;mongodb;FindOneAndDeleteOptions;",
"mongodb;CommandOperationOptions;mongodb;FindOneAndReplaceOptions;",
"mongodb;CommandOperationOptions;mongodb;FindOneAndUpdateOptions;",
"mongodb;CommandOperationOptions;mongodb;FindOptions;",
"mongodb;CommandOperationOptions;mongodb;InsertOneOptions;",
"mongodb;CommandOperationOptions;mongodb;ListCollectionsOptions;",
"mongodb;CommandOperationOptions;mongodb;ListDatabasesOptions;",
"mongodb;CommandOperationOptions;mongodb;ListIndexesOptions;",
"mongodb;CommandOperationOptions;mongodb;MapReduceOptions;",
"mongodb;CommandOperationOptions;mongodb;ProfilingLevelOptions;",
"mongodb;CommandOperationOptions;mongodb;RemoveUserOptions;",
"mongodb;CommandOperationOptions;mongodb;RenameOptions;",
"mongodb;CommandOperationOptions;mongodb;ReplaceOptions;",
"mongodb;CommandOperationOptions;mongodb;RunCommandOptions;",
"mongodb;CommandOperationOptions;mongodb;SetProfilingLevelOptions;",
"mongodb;CommandOperationOptions;mongodb;TransactionOptions;",
"mongodb;CommandOperationOptions;mongodb;UpdateOptions;",
"mongodb;CommandOperationOptions;mongodb;ValidateCollectionOptions;",
"mongodb;CommandOperationOptions;mongoose;mongodb.CommandOperationOptions;",
"mongodb;ConnectionOptions;mongodb/mongodb;ConnectionOptions;",
"mongodb;ConnectionOptions;mongoose;mongodb.ConnectionOptions;",
"mongodb;CountDocumentsOptions;mongodb/mongodb;CountDocumentsOptions;",
"mongodb;CountDocumentsOptions;mongodb;Collection;Member[countDocuments].Argument[1]",
"mongodb;CountDocumentsOptions;mongoose;mongodb.CountDocumentsOptions;",
"mongodb;CountOptions;mongodb/mongodb;CountOptions;",
"mongodb;CountOptions;mongodb;Collection;Member[count].Argument[1]",
"mongodb;CountOptions;mongodb;FindCursor;Member[count].Argument[0]",
"mongodb;CountOptions;mongoose;mongodb.CountOptions;",
"mongodb;CreateCollectionOptions;mongodb/mongodb;CreateCollectionOptions;",
"mongodb;CreateCollectionOptions;mongodb;Db;Member[createCollection].WithArity[1,2,3].Argument[1]",
"mongodb;CreateCollectionOptions;mongoose;mongodb.CreateCollectionOptions;",
"mongodb;CreateIndexesOptions;mongodb/mongodb;CreateIndexesOptions;",
"mongodb;CreateIndexesOptions;mongodb;Collection;Member[createIndex,createIndexes].Argument[1]",
"mongodb;CreateIndexesOptions;mongodb;Db;Member[createIndex].Argument[2]",
"mongodb;CreateIndexesOptions;mongoose;mongodb.CreateIndexesOptions;",
"mongodb;Db;mongodb/mongodb;Db;",
"mongodb;Db;mongodb;ChangeStream;Member[parent]",
"mongodb;Db;mongodb;DbStatic;Instance",
"mongodb;Db;mongodb;GridFSBucketStatic;Argument[0]",
"mongodb;Db;mongodb;ListCollectionsCursor;Member[parent]",
"mongodb;Db;mongodb;ListCollectionsCursorStatic;Argument[0]",
"mongodb;Db;mongodb;MongoClient;Member[db].ReturnValue",
"mongodb;Db;mongoose;mongodb.Db;",
"mongodb;DbStatic;mongodb/mongodb;DbStatic;",
"mongodb;DbStatic;mongodb;;Member[Db]",
"mongodb;DbStatic;mongoose;mongodb.DbStatic;",
"mongodb;DbStatsOptions;mongodb/mongodb;DbStatsOptions;",
"mongodb;DbStatsOptions;mongodb;Db;Member[stats].Argument[0]",
"mongodb;DbStatsOptions;mongoose;mongodb.DbStatsOptions;",
"mongodb;DeleteManyModel;mongodb/mongodb;DeleteManyModel;",
"mongodb;DeleteManyModel;mongodb;AnyBulkWriteOperation;Member[deleteMany]",
"mongodb;DeleteManyModel;mongoose;mongodb.DeleteManyModel;",
"mongodb;DeleteOneModel;mongodb/mongodb;DeleteOneModel;",
"mongodb;DeleteOneModel;mongodb;AnyBulkWriteOperation;Member[deleteOne]",
"mongodb;DeleteOneModel;mongoose;mongodb.DeleteOneModel;",
"mongodb;DeleteOptions;mongodb/mongodb;DeleteOptions;",
"mongodb;DeleteOptions;mongodb;Collection;Member[deleteMany,deleteOne,remove].Argument[1]",
"mongodb;DeleteOptions;mongoose;mongodb.DeleteOptions;",
"mongodb;DistinctOptions;mongodb/mongodb;DistinctOptions;",
"mongodb;DistinctOptions;mongodb;Collection;Member[distinct].Argument[2]",
"mongodb;DistinctOptions;mongoose;mongodb.DistinctOptions;",
"mongodb;DropCollectionOptions;mongodb/mongodb;DropCollectionOptions;",
"mongodb;DropCollectionOptions;mongodb;Collection;Member[drop].Argument[0]",
"mongodb;DropCollectionOptions;mongodb;Db;Member[dropCollection].Argument[1]",
"mongodb;DropCollectionOptions;mongoose;mongodb.DropCollectionOptions;",
"mongodb;DropDatabaseOptions;mongodb/mongodb;DropDatabaseOptions;",
"mongodb;DropDatabaseOptions;mongodb;Db;Member[dropDatabase].Argument[0]",
"mongodb;DropDatabaseOptions;mongoose;mongodb.DropDatabaseOptions;",
"mongodb;DropIndexesOptions;mongodb/mongodb;DropIndexesOptions;",
"mongodb;DropIndexesOptions;mongodb;Collection;Member[dropIndex].Argument[1]",
"mongodb;DropIndexesOptions;mongodb;Collection;Member[dropIndexes].Argument[0]",
"mongodb;DropIndexesOptions;mongoose;mongodb.DropIndexesOptions;",
"mongodb;EstimatedDocumentCountOptions;mongodb/mongodb;EstimatedDocumentCountOptions;",
"mongodb;EstimatedDocumentCountOptions;mongodb;Collection;Member[estimatedDocumentCount].Argument[0]",
"mongodb;EstimatedDocumentCountOptions;mongoose;mongodb.EstimatedDocumentCountOptions;",
"mongodb;EvalOptions;mongodb/mongodb;EvalOptions;",
"mongodb;EvalOptions;mongoose;mongodb.EvalOptions;",
"mongodb;FindCursor;mongodb/mongodb;FindCursor;",
"mongodb;FindCursor;mongodb;Collection;Member[find].WithArity[0,1,2].ReturnValue",
"mongodb;FindCursor;mongodb;FindCursor;Member[addQueryModifier,allowDiskUse,clone,collation,comment,filter,hint,limit,map,max,maxAwaitTimeMS,maxTimeMS,min,project,returnKey,showRecordId,skip,sort].ReturnValue",
"mongodb;FindCursor;mongodb;FindCursorStatic;Instance",
"mongodb;FindCursor;mongodb;GridFSBucket;Member[find].ReturnValue",
"mongodb;FindCursor;mongoose;mongodb.FindCursor;",
"mongodb;FindCursorStatic;mongodb/mongodb;FindCursorStatic;",
"mongodb;FindCursorStatic;mongodb;;Member[FindCursor]",
"mongodb;FindCursorStatic;mongoose;mongodb.FindCursorStatic;",
"mongodb;FindOneAndDeleteOptions;mongodb/mongodb;FindOneAndDeleteOptions;",
"mongodb;FindOneAndDeleteOptions;mongodb;Collection;Member[findOneAndDelete].Argument[1]",
"mongodb;FindOneAndDeleteOptions;mongoose;mongodb.FindOneAndDeleteOptions;",
"mongodb;FindOneAndReplaceOptions;mongodb/mongodb;FindOneAndReplaceOptions;",
"mongodb;FindOneAndReplaceOptions;mongodb;Collection;Member[findOneAndReplace].Argument[2]",
"mongodb;FindOneAndReplaceOptions;mongoose;mongodb.FindOneAndReplaceOptions;",
"mongodb;FindOneAndUpdateOptions;mongodb/mongodb;FindOneAndUpdateOptions;",
"mongodb;FindOneAndUpdateOptions;mongodb;Collection;Member[findOneAndUpdate].Argument[2]",
"mongodb;FindOneAndUpdateOptions;mongoose;mongodb.FindOneAndUpdateOptions;",
"mongodb;FindOperators;mongodb/mongodb;FindOperators;",
"mongodb;FindOperators;mongodb;BulkOperationBase;Member[find].ReturnValue",
"mongodb;FindOperators;mongodb;FindOperators;Member[arrayFilters,collation,upsert].ReturnValue",
"mongodb;FindOperators;mongodb;FindOperatorsStatic;Instance",
"mongodb;FindOperators;mongoose;mongodb.FindOperators;",
"mongodb;FindOperatorsStatic;mongodb/mongodb;FindOperatorsStatic;",
"mongodb;FindOperatorsStatic;mongodb;;Member[FindOperators]",
"mongodb;FindOperatorsStatic;mongoose;mongodb.FindOperatorsStatic;",
"mongodb;FindOptions;mongodb/mongodb;FindOptions;",
"mongodb;FindOptions;mongodb;Collection;Member[find,findOne].Argument[1]",
"mongodb;FindOptions;mongodb;GridFSBucket;Member[find].Argument[1]",
"mongodb;FindOptions;mongoose;mongodb.FindOptions;",
"mongodb;GridFSBucket;mongodb/mongodb;GridFSBucket;",
"mongodb;GridFSBucket;mongodb;GridFSBucketStatic;Instance",
"mongodb;GridFSBucket;mongodb;GridFSBucketWriteStream;Member[bucket]",
"mongodb;GridFSBucket;mongoose;mongodb.GridFSBucket;",
"mongodb;GridFSBucketStatic;mongodb/mongodb;GridFSBucketStatic;",
"mongodb;GridFSBucketStatic;mongodb;;Member[GridFSBucket]",
"mongodb;GridFSBucketStatic;mongoose;mongodb.GridFSBucketStatic;",
"mongodb;GridFSBucketWriteStream;mongodb/mongodb;GridFSBucketWriteStream;",
"mongodb;GridFSBucketWriteStream;mongodb;GridFSBucket;Member[openUploadStream,openUploadStreamWithId].ReturnValue",
"mongodb;GridFSBucketWriteStream;mongodb;GridFSBucketWriteStream;Member[end].ReturnValue",
"mongodb;GridFSBucketWriteStream;mongodb;GridFSBucketWriteStreamStatic;Instance",
"mongodb;GridFSBucketWriteStream;mongoose;mongodb.GridFSBucketWriteStream;",
"mongodb;GridFSBucketWriteStreamStatic;mongodb/mongodb;GridFSBucketWriteStreamStatic;",
"mongodb;GridFSBucketWriteStreamStatic;mongodb;;Member[GridFSBucketWriteStream]",
"mongodb;GridFSBucketWriteStreamStatic;mongoose;mongodb.GridFSBucketWriteStreamStatic;",
"mongodb;IndexInformationOptions;mongodb/mongodb;IndexInformationOptions;",
"mongodb;IndexInformationOptions;mongodb;Collection;Member[indexExists].Argument[1]",
"mongodb;IndexInformationOptions;mongodb;Collection;Member[indexInformation,indexes].Argument[0]",
"mongodb;IndexInformationOptions;mongodb;Db;Member[indexInformation].Argument[1]",
"mongodb;IndexInformationOptions;mongoose;mongodb.IndexInformationOptions;",
"mongodb;InsertOneOptions;mongodb/mongodb;InsertOneOptions;",
"mongodb;InsertOneOptions;mongodb;Collection;Member[insertOne].Argument[1]",
"mongodb;InsertOneOptions;mongoose;mongodb.InsertOneOptions;",
"mongodb;ListCollectionsCursor;mongodb/mongodb;ListCollectionsCursor;",
"mongodb;ListCollectionsCursor;mongodb;Db;Member[listCollections].WithArity[0,1,2].ReturnValue",
"mongodb;ListCollectionsCursor;mongodb;ListCollectionsCursor;Member[clone].ReturnValue",
"mongodb;ListCollectionsCursor;mongodb;ListCollectionsCursorStatic;Instance",
"mongodb;ListCollectionsCursor;mongoose;mongodb.ListCollectionsCursor;",
"mongodb;ListCollectionsCursorStatic;mongodb/mongodb;ListCollectionsCursorStatic;",
"mongodb;ListCollectionsCursorStatic;mongodb;;Member[ListCollectionsCursor]",
"mongodb;ListCollectionsCursorStatic;mongoose;mongodb.ListCollectionsCursorStatic;",
"mongodb;ListCollectionsOptions;mongodb/mongodb;ListCollectionsOptions;",
"mongodb;ListCollectionsOptions;mongodb;Db;Member[collections].Argument[0]",
"mongodb;ListCollectionsOptions;mongodb;Db;Member[listCollections].WithArity[0,1,2].Argument[1]",
"mongodb;ListCollectionsOptions;mongodb;ListCollectionsCursor;Member[options]",
"mongodb;ListCollectionsOptions;mongodb;ListCollectionsCursorStatic;Argument[2]",
"mongodb;ListCollectionsOptions;mongoose;mongodb.ListCollectionsOptions;",
"mongodb;ListDatabasesOptions;mongodb/mongodb;ListDatabasesOptions;",
"mongodb;ListDatabasesOptions;mongodb;Admin;Member[listDatabases].Argument[0]",
"mongodb;ListDatabasesOptions;mongoose;mongodb.ListDatabasesOptions;",
"mongodb;ListIndexesCursor;mongodb/mongodb;ListIndexesCursor;",
"mongodb;ListIndexesCursor;mongodb;Collection;Member[listIndexes].ReturnValue",
"mongodb;ListIndexesCursor;mongodb;ListIndexesCursor;Member[clone].ReturnValue",
"mongodb;ListIndexesCursor;mongodb;ListIndexesCursorStatic;Instance",
"mongodb;ListIndexesCursor;mongoose;mongodb.ListIndexesCursor;",
"mongodb;ListIndexesCursorStatic;mongodb/mongodb;ListIndexesCursorStatic;",
"mongodb;ListIndexesCursorStatic;mongodb;;Member[ListIndexesCursor]",
"mongodb;ListIndexesCursorStatic;mongoose;mongodb.ListIndexesCursorStatic;",
"mongodb;ListIndexesOptions;mongodb/mongodb;ListIndexesOptions;",
"mongodb;ListIndexesOptions;mongodb;Collection;Member[listIndexes].Argument[0]",
"mongodb;ListIndexesOptions;mongodb;ListIndexesCursor;Member[options]",
"mongodb;ListIndexesOptions;mongodb;ListIndexesCursorStatic;Argument[1]",
"mongodb;ListIndexesOptions;mongoose;mongodb.ListIndexesOptions;",
"mongodb;MapReduceOptions;mongodb/mongodb;MapReduceOptions;",
"mongodb;MapReduceOptions;mongodb;Collection;Member[mapReduce].Argument[2]",
"mongodb;MapReduceOptions;mongoose;mongodb.MapReduceOptions;",
"mongodb;MongoClient;mongodb/mongodb;MongoClient;",
"mongodb;MongoClient;mongodb;AutoEncrypter;Argument[0]",
"mongodb;MongoClient;mongodb;AutoEncryptionOptions;Member[keyVaultClient]",
"mongodb;MongoClient;mongodb;ChangeStream;Member[parent]",
"mongodb;MongoClient;mongodb;DbStatic;Argument[0]",
"mongodb;MongoClient;mongodb;MongoClient;Member[connect].Argument[0].TypeVar[mongodb.Callback.0]",
"mongodb;MongoClient;mongodb;MongoClient;Member[connect].WithArity[0].ReturnValue.Awaited",
"mongodb;MongoClient;mongodb;MongoClientEvents;Member[open].Argument[0]",
"mongodb;MongoClient;mongodb;MongoClientStatic;Instance",
"mongodb;MongoClient;mongodb;MongoClientStatic;Member[connect].Argument[1,2].TypeVar[mongodb.Callback.0]",
"mongodb;MongoClient;mongodb;MongoClientStatic;Member[connect].WithArity[1,2].ReturnValue.Awaited",
"mongodb;MongoClient;mongoose;mongodb.MongoClient;",
"mongodb;MongoClientEvents;mongodb/mongodb;MongoClientEvents;",
"mongodb;MongoClientEvents;mongoose;mongodb.MongoClientEvents;",
"mongodb;MongoClientOptions;mongodb/mongodb;MongoClientOptions;",
"mongodb;MongoClientOptions;mongodb;MongoClientStatic;Argument[1]",
"mongodb;MongoClientOptions;mongodb;MongoClientStatic;Member[connect].Argument[1]",
"mongodb;MongoClientOptions;mongoose;mongodb.MongoClientOptions;",
"mongodb;MongoClientStatic;mongodb/mongodb;MongoClientStatic;",
"mongodb;MongoClientStatic;mongodb;;Member[MongoClient]",
"mongodb;MongoClientStatic;mongoose;mongodb.MongoClientStatic;",
"mongodb;MongoOptions;mongodb/mongodb;MongoOptions;",
"mongodb;MongoOptions;mongodb;ClientSession;Member[clientOptions]",
"mongodb;MongoOptions;mongodb;MongoClient;Member[options]",
"mongodb;MongoOptions;mongoose;mongodb.MongoOptions;",
"mongodb;OperationOptions;mongodb/mongodb;OperationOptions;",
"mongodb;OperationOptions;mongodb;Collection;Member[isCapped,options].Argument[0]",
"mongodb;OperationOptions;mongodb;CommandOperationOptions;",
"mongodb;OperationOptions;mongoose;mongodb.OperationOptions;",
"mongodb;OrderedBulkOperation;mongodb/mongodb;OrderedBulkOperation;",
"mongodb;OrderedBulkOperation;mongodb;Collection;Member[initializeOrderedBulkOp].ReturnValue",
"mongodb;OrderedBulkOperation;mongodb;OrderedBulkOperation;Member[addToOperationsList].ReturnValue",
"mongodb;OrderedBulkOperation;mongodb;OrderedBulkOperationStatic;Instance",
"mongodb;OrderedBulkOperation;mongoose;mongodb.OrderedBulkOperation;",
"mongodb;OrderedBulkOperationStatic;mongodb/mongodb;OrderedBulkOperationStatic;",
"mongodb;OrderedBulkOperationStatic;mongodb;;Member[OrderedBulkOperation]",
"mongodb;OrderedBulkOperationStatic;mongoose;mongodb.OrderedBulkOperationStatic;",
"mongodb;ProfilingLevelOptions;mongodb/mongodb;ProfilingLevelOptions;",
"mongodb;ProfilingLevelOptions;mongodb;Db;Member[profilingLevel].Argument[0]",
"mongodb;ProfilingLevelOptions;mongoose;mongodb.ProfilingLevelOptions;",
"mongodb;ReadPreferenceFromOptions;mongodb/mongodb;ReadPreferenceFromOptions;",
"mongodb;ReadPreferenceFromOptions;mongodb;ReadPreferenceStatic;Member[fromOptions].Argument[0]",
"mongodb;ReadPreferenceFromOptions;mongoose;mongodb.ReadPreferenceFromOptions;",
"mongodb;ReadPreferenceStatic;mongodb/mongodb;ReadPreferenceStatic;",
"mongodb;ReadPreferenceStatic;mongodb;;Member[ReadPreference]",
"mongodb;ReadPreferenceStatic;mongoose;mongodb.ReadPreferenceStatic;",
"mongodb;RemoveUserOptions;mongodb/mongodb;RemoveUserOptions;",
"mongodb;RemoveUserOptions;mongodb;Admin;Member[removeUser].Argument[1]",
"mongodb;RemoveUserOptions;mongodb;Db;Member[removeUser].Argument[1]",
"mongodb;RemoveUserOptions;mongoose;mongodb.RemoveUserOptions;",
"mongodb;RenameOptions;mongodb/mongodb;RenameOptions;",
"mongodb;RenameOptions;mongodb;Collection;Member[rename].Argument[1]",
"mongodb;RenameOptions;mongodb;Db;Member[renameCollection].Argument[2]",
"mongodb;RenameOptions;mongoose;mongodb.RenameOptions;",
"mongodb;ReplaceOptions;mongodb/mongodb;ReplaceOptions;",
"mongodb;ReplaceOptions;mongodb;Collection;Member[replaceOne].Argument[2]",
"mongodb;ReplaceOptions;mongoose;mongodb.ReplaceOptions;",
"mongodb;RunCommandOptions;mongodb/mongodb;RunCommandOptions;",
"mongodb;RunCommandOptions;mongodb;Admin;Member[command].Argument[1]",
"mongodb;RunCommandOptions;mongodb;Db;Member[command].Argument[1]",
"mongodb;RunCommandOptions;mongoose;mongodb.RunCommandOptions;",
"mongodb;SelectServerOptions;mongodb/mongodb;SelectServerOptions;",
"mongodb;SelectServerOptions;mongoose;mongodb.SelectServerOptions;",
"mongodb;SetProfilingLevelOptions;mongodb/mongodb;SetProfilingLevelOptions;",
"mongodb;SetProfilingLevelOptions;mongodb;Db;Member[setProfilingLevel].Argument[1]",
"mongodb;SetProfilingLevelOptions;mongoose;mongodb.SetProfilingLevelOptions;",
"mongodb;Transaction;mongodb/mongodb;Transaction;",
"mongodb;Transaction;mongodb;ClientSession;Member[transaction]",
"mongodb;Transaction;mongodb;TransactionStatic;Instance",
"mongodb;Transaction;mongoose;mongodb.Transaction;",
"mongodb;TransactionOptions;mongodb/mongodb;TransactionOptions;",
"mongodb;TransactionOptions;mongodb;ClientSession;Member[defaultTransactionOptions]",
"mongodb;TransactionOptions;mongodb;ClientSession;Member[startTransaction].Argument[0]",
"mongodb;TransactionOptions;mongodb;ClientSession;Member[withTransaction].Argument[1]",
"mongodb;TransactionOptions;mongodb;ClientSessionOptions;Member[defaultTransactionOptions]",
"mongodb;TransactionOptions;mongodb;Transaction;Member[options]",
"mongodb;TransactionOptions;mongoose;mongodb.TransactionOptions;",
"mongodb;TransactionStatic;mongodb/mongodb;TransactionStatic;",
"mongodb;TransactionStatic;mongodb;;Member[Transaction]",
"mongodb;TransactionStatic;mongoose;mongodb.TransactionStatic;",
"mongodb;TypedEventEmitter;mongodb;AbstractCursor;",
"mongodb;TypedEventEmitter;mongodb;ChangeStream;",
"mongodb;TypedEventEmitter;mongodb;ClientSession;",
"mongodb;TypedEventEmitter;mongodb;GridFSBucket;",
"mongodb;TypedEventEmitter;mongodb;MongoClient;",
"mongodb;UnorderedBulkOperation;mongodb/mongodb;UnorderedBulkOperation;",
"mongodb;UnorderedBulkOperation;mongodb;Collection;Member[initializeUnorderedBulkOp].ReturnValue",
"mongodb;UnorderedBulkOperation;mongodb;UnorderedBulkOperation;Member[addToOperationsList].ReturnValue",
"mongodb;UnorderedBulkOperation;mongodb;UnorderedBulkOperationStatic;Instance",
"mongodb;UnorderedBulkOperation;mongoose;mongodb.UnorderedBulkOperation;",
"mongodb;UnorderedBulkOperationStatic;mongodb/mongodb;UnorderedBulkOperationStatic;",
"mongodb;UnorderedBulkOperationStatic;mongodb;;Member[UnorderedBulkOperation]",
"mongodb;UnorderedBulkOperationStatic;mongoose;mongodb.UnorderedBulkOperationStatic;",
"mongodb;UpdateManyModel;mongodb/mongodb;UpdateManyModel;",
"mongodb;UpdateManyModel;mongodb;AnyBulkWriteOperation;Member[updateMany]",
"mongodb;UpdateManyModel;mongoose;mongodb.UpdateManyModel;",
"mongodb;UpdateOneModel;mongodb/mongodb;UpdateOneModel;",
"mongodb;UpdateOneModel;mongodb;AnyBulkWriteOperation;Member[updateOne]",
"mongodb;UpdateOneModel;mongoose;mongodb.UpdateOneModel;",
"mongodb;UpdateOptions;mongodb/mongodb;UpdateOptions;",
"mongodb;UpdateOptions;mongodb;Collection;Member[update,updateMany,updateOne].Argument[2]",
"mongodb;UpdateOptions;mongoose;mongodb.UpdateOptions;",
"mongodb;ValidateCollectionOptions;mongodb/mongodb;ValidateCollectionOptions;",
"mongodb;ValidateCollectionOptions;mongodb;Admin;Member[validateCollection].Argument[1]",
"mongodb;ValidateCollectionOptions;mongoose;mongodb.ValidateCollectionOptions;",
"mongodb;WithSessionCallback;mongodb/mongodb;WithSessionCallback;",
"mongodb;WithSessionCallback;mongodb;MongoClient;Member[withSession].Argument[1]",
"mongodb;WithSessionCallback;mongodb;MongoClient;Member[withSession].WithArity[1].Argument[0]",
"mongodb;WithSessionCallback;mongoose;mongodb.WithSessionCallback;",
"mongodb;WithTransactionCallback;mongodb/mongodb;WithTransactionCallback;",
"mongodb;WithTransactionCallback;mongodb;ClientSession;Member[withTransaction].Argument[0]",
"mongodb;WithTransactionCallback;mongoose;mongodb.WithTransactionCallback;",
"mongoose/inferschematype;ResolvePathType;mongoose/inferschematype;ObtainDocumentPathType;",
"mongoose/inferschematype;ResolvePathType;mongoose/inferschematype;ResolvePathType;TypeVar[mongoose.IfEquals.3].ArrayElement",
"mongoose/inferschematype;ResolvePathType;mongoose/inferschematype;ResolvePathType;TypeVar[mongoose.IfEquals.3].TypeVar[mongoose.Types.DocumentArray.0]",
"mongoose;;mongoose;;Member[mongoose]",
"mongoose;AcceptsDiscriminator;mongoose;Model;",
"mongoose;AcceptsDiscriminator;mongoose;Schema.Types.Array;",
"mongoose;AcceptsDiscriminator;mongoose;Schema.Types.DocumentArray;",
"mongoose;AcceptsDiscriminator;mongoose;Schema.Types.Subdocument;",
"mongoose;Aggregate;mongoose;Aggregate;Member[addCursorFlag,addFields,allowDiskUse,append,collation,count,facet,graphLookup,group,hint,limit,lookup,match,model,near,option,project,read,readConcern,redact,replaceRoot,sample,search,session,skip,sort,sortByCount,unionWith,unwind].ReturnValue",
"mongoose;Aggregate;mongoose;AggregateStatic;Instance",
"mongoose;Aggregate;mongoose;Model;Member[aggregate].ReturnValue",
"mongoose;AggregateStatic;mongoose;;Member[Aggregate]",
"mongoose;Collection;mongoose;;Member[Collection]",
"mongoose;Collection;mongoose;Collection;Instance",
"mongoose;Collection;mongoose;Connection;Member[collection].ReturnValue",
"mongoose;Collection;mongoose;Connection;Member[collections].AnyMember",
"mongoose;Collection;mongoose;Document;Member[collection]",
"mongoose;Collection;mongoose;Model;Member[collection]",
"mongoose;CollectionBase;mongoose;Collection;",
"mongoose;CompileModelOptions;mongoose;;Member[model].Argument[3]",
"mongoose;CompileModelOptions;mongoose;Connection;Member[model].Argument[3]",
"mongoose;ConnectOptions;mongoose;;Member[connect,createConnection].WithArity[1,2,3].Argument[1]",
"mongoose;ConnectOptions;mongoose;Connection;Member[openUri].WithArity[1,2,3].Argument[1]",
"mongoose;Connection;mongoose;;Member[connection]",
"mongoose;Connection;mongoose;;Member[connections].ArrayElement",
"mongoose;Connection;mongoose;;Member[createConnection].Argument[2].TypeVar[mongoose.Callback.0]",
"mongoose;Connection;mongoose;;Member[createConnection].WithArity[0,1,2].ReturnValue",
"mongoose;Connection;mongoose;;Member[createConnection].WithArity[2].Argument[1].TypeVar[mongoose.Callback.0]",
"mongoose;Connection;mongoose;Collection;Argument[1]",
"mongoose;Connection;mongoose;CollectionBase;Member[conn]",
"mongoose;Connection;mongoose;CompileModelOptions;Member[connection]",
"mongoose;Connection;mongoose;Connection;Member[asPromise].ReturnValue.Awaited",
"mongoose;Connection;mongoose;Connection;Member[deleteModel,plugin,setClient,useDb].ReturnValue",
"mongoose;Connection;mongoose;Connection;Member[openUri].Argument[2].TypeVar[mongoose.Callback.0]",
"mongoose;Connection;mongoose;Connection;Member[openUri].WithArity[1,2].ReturnValue.Awaited",
"mongoose;Connection;mongoose;Connection;Member[openUri].WithArity[2,3].ReturnValue",
"mongoose;Connection;mongoose;Connection;Member[openUri].WithArity[2].Argument[1].TypeVar[mongoose.Callback.0]",
"mongoose;Connection;mongoose;ConnectionStatic;Instance",
"mongoose;Connection;mongoose;Document;Member[db]",
"mongoose;Connection;mongoose;Model;Member[db]",
"mongoose;ConnectionStatic;mongoose;;Member[Connection]",
"mongoose;Cursor;mongoose;Query;Member[cursor].ReturnValue",
"mongoose;DiscriminatorModel;mongoose;DiscriminatorSchema;TypeVar[mongoose.Schema.1]",
"mongoose;Document;mongoose;Document;Member[$getAllSubdocs,$getPopulatedDocs].ReturnValue.ArrayElement",
"mongoose;Document;mongoose;Document;Member[$inc,$parent,$set,depopulate,increment,init,overwrite,set].ReturnValue",
"mongoose;Document;mongoose;Document;Member[delete,deleteOne].WithArity[0,1].ReturnValue.TypeVar[mongoose.QueryWithHelpers.1]",
"mongoose;Document;mongoose;Document;Member[equals].Argument[0]",
"mongoose;Document;mongoose;Document;Member[init].Argument[2].TypeVar[mongoose.Callback.0]",
"mongoose;Document;mongoose;Document;Member[remove,save].WithArity[0,1].ReturnValue.Awaited",
"mongoose;Document;mongoose;Document;Member[replaceOne,update,updateOne].ReturnValue.TypeVar[mongoose.Query.1]",
"mongoose;Document;mongoose;Document;Member[save].Argument[1].TypeVar[mongoose.Callback.0]",
"mongoose;Document;mongoose;Document;Member[save].WithArity[1].Argument[0].TypeVar[mongoose.Callback.0]",
"mongoose;Document;mongoose;DocumentStatic;Instance",
"mongoose;Document;mongoose;Error.VersionErrorStatic;Argument[0]",
"mongoose;Document;mongoose;HydratedDocument;",
"mongoose;Document;mongoose;HydratedDocument;TypeVar[mongoose.Require_id.0]",
"mongoose;Document;mongoose;Model;Member[bulkSave].Argument[0].ArrayElement",
"mongoose;Document;mongoose;TVirtualPathFN;Argument[2]",
"mongoose;Document;mongoose;Types.Subdocument;",
"mongoose;Document;mongoose;Types.Subdocument;Member[$parent,ownerDocument,parent].ReturnValue",
"mongoose;Document;mongoose;VirtualType;Member[applyGetters,applySetters].Argument[1]",
"mongoose;DocumentStatic;mongoose;;Member[Document]",
"mongoose;Error.VersionErrorStatic;mongoose;;Member[Error].Member[VersionError]",
"mongoose;HydratedDocument;mongoose;Model;Instance",
"mongoose;HydratedDocument;mongoose;Model;Member[$where,count,countDocuments,deleteMany,deleteOne,distinct,estimatedDocumentCount,find,geoSearch,remove,replaceOne,update,updateMany,updateOne,where].ReturnValue.TypeVar[mongoose.QueryWithHelpers.1]",
"mongoose;HydratedDocument;mongoose;Model;Member[$where,find,geoSearch,where].ReturnValue.TypeVar[mongoose.QueryWithHelpers.0].ArrayElement",
"mongoose;HydratedDocument;mongoose;Model;Member[create,insertMany].WithArity[2].Argument[1].TypeVar[mongoose.Callback.0].ArrayElement",
"mongoose;HydratedDocument;mongoose;Model;Member[create].WithArity[0..,1,2].ReturnValue.Awaited.ArrayElement",
"mongoose;HydratedDocument;mongoose;Model;Member[create].WithArity[1].ReturnValue.Awaited",
"mongoose;HydratedDocument;mongoose;Model;Member[create].WithArity[2].Argument[1].TypeVar[mongoose.Callback.0]",
"mongoose;HydratedDocument;mongoose;Model;Member[exists].WithArity[1,2].ReturnValue.TypeVar[mongoose.QueryWithHelpers.1]",
"mongoose;HydratedDocument;mongoose;Model;Member[find,insertMany].WithArity[3].Argument[2].TypeVar[mongoose.Callback.0].ArrayElement",
"mongoose;HydratedDocument;mongoose;Model;Member[findById,findByIdAndDelete,findByIdAndRemove,findOne,findOneAndDelete,findOneAndRemove].ReturnValue.TypeVar[mongoose.QueryWithHelpers.0,mongoose.QueryWithHelpers.1]",
"mongoose;HydratedDocument;mongoose;Model;Member[findById,findOne].Argument[3].TypeVar[mongoose.Callback.0]",
"mongoose;HydratedDocument;mongoose;Model;Member[findByIdAndDelete,findByIdAndRemove,findOneAndDelete,findOneAndRemove].Argument[2].Argument[1]",
"mongoose;HydratedDocument;mongoose;Model;Member[findByIdAndUpdate,findOneAndReplace,findOneAndUpdate].WithArity[0,1,2,3,4].ReturnValue.TypeVar[mongoose.QueryWithHelpers.0,mongoose.QueryWithHelpers.1]",
"mongoose;HydratedDocument;mongoose;Model;Member[findByIdAndUpdate,findOneAndReplace,findOneAndUpdate].WithArity[3,4].ReturnValue.TypeVar[mongoose.QueryWithHelpers.0].TypeVar[mongoose.ModifyResult.0]",
"mongoose;HydratedDocument;mongoose;Model;Member[findByIdAndUpdate].WithArity[0,1,2,4].Argument[3].Argument[1]",
"mongoose;HydratedDocument;mongoose;Model;Member[findByIdAndUpdate].WithArity[3].Argument[2,3].Argument[1]",
"mongoose;HydratedDocument;mongoose;Model;Member[findById].WithArity[1,2,3].Argument[2].TypeVar[mongoose.Callback.0]",
"mongoose;HydratedDocument;mongoose;Model;Member[findOneAndReplace].WithArity[0,1,2,3,4].Argument[3].Argument[1]",
"mongoose;HydratedDocument;mongoose;Model;Member[findOneAndUpdate].WithArity[3,4].Argument[3].Argument[1]",
"mongoose;HydratedDocument;mongoose;Model;Member[findOne].WithArity[0,1,2].Argument[1,2].TypeVar[mongoose.Callback.0]",
"mongoose;HydratedDocument;mongoose;Model;Member[findOne].WithArity[3].Argument[2].TypeVar[mongoose.Callback.0]",
"mongoose;HydratedDocument;mongoose;Model;Member[find].Argument[3].TypeVar[mongoose.Callback.0].ArrayElement",
"mongoose;HydratedDocument;mongoose;Model;Member[find].WithArity[0].Argument[0].TypeVar[mongoose.Callback.0].ArrayElement",
"mongoose;HydratedDocument;mongoose;Model;Member[find].WithArity[1].Argument[0,1,2].TypeVar[mongoose.Callback.0].ArrayElement",
"mongoose;HydratedDocument;mongoose;Model;Member[find].WithArity[2].Argument[1,2].TypeVar[mongoose.Callback.0].ArrayElement",
"mongoose;HydratedDocument;mongoose;Model;Member[geoSearch].Argument[2].TypeVar[mongoose.Callback.0].ArrayElement",
"mongoose;HydratedDocument;mongoose;Model;Member[hydrate].ReturnValue",
"mongoose;HydratedDocument;mongoose;Model;Member[init].ReturnValue.Awaited",
"mongoose;HydratedDocument;mongoose;Model;Member[insertMany].WithArity[1,2].ReturnValue.Awaited.ArrayElement",
"mongoose;HydratedDocument;mongoose;Model;Member[populate].WithArity[2,3].Argument[2].TypeVar[mongoose.Callback.0]",
"mongoose;HydratedDocument;mongoose;Model;Member[populate].WithArity[2,3].Argument[2].TypeVar[mongoose.Callback.0].ArrayElement",
"mongoose;HydratedDocument;mongoose;Model;Member[populate].WithArity[2,3].ReturnValue.Awaited",
"mongoose;HydratedDocument;mongoose;Model;Member[populate].WithArity[2,3].ReturnValue.Awaited.ArrayElement",
"mongoose;HydratedDocument;mongoose;TVirtualPathFN;Argument[1].TypeVar[mongoose.VirtualType.0]",
"mongoose;HydratedDocument;mongoose;VirtualPathFunctions;Member[options].TypeVar[mongoose.VirtualTypeOptions.0]",
"mongoose;InsertManyOptions;mongoose;Model;Member[insertMany].WithArity[2,3].Argument[1]",
"mongoose;Model;mongoose;;Member[Model]",
"mongoose;Model;mongoose;;Member[model].ReturnValue",
"mongoose;Model;mongoose;AcceptsDiscriminator;Member[discriminator].WithArity[2,3].ReturnValue",
"mongoose;Model;mongoose;Aggregate;Member[model].Argument[0]",
"mongoose;Model;mongoose;Connection;Member[model].WithArity[1,2,3,4].ReturnValue",
"mongoose;Model;mongoose;Connection;Member[models].AnyMember",
"mongoose;Model;mongoose;DiscriminatorModel;",
"mongoose;Model;mongoose;Document;Member[$model].ReturnValue",
"mongoose;Model;mongoose;Document;Member[populate].Argument[2]",
"mongoose;Model;mongoose;Model;Member[discriminators].AnyMember",
"mongoose;Model;mongoose;Models;AnyMember",
"mongoose;Model;mongoose;PopulateOptions;Member[model]",
"mongoose;Model;mongoose;Query;Member[cast].Argument[0]",
"mongoose;Model;mongoose;Query;Member[populate].Argument[2]",
"mongoose;Model;mongoose;Schema.Types.Array;Member[discriminator].WithArity[2,3].ReturnValue",
"mongoose;Model;mongoose;Schema.Types.DocumentArray;Member[discriminator].WithArity[2,3].ReturnValue",
"mongoose;Model;mongoose;Schema.Types.Subdocument;Member[discriminator].WithArity[2,3].ReturnValue",
"mongoose;Model;mongoose;SchemaStatic;Instance.TypeVar[mongoose.Schema.1]",
"mongoose;Models;mongoose;;Member[models]",
"mongoose;PopulateOption;mongoose;InsertManyOptions;",
"mongoose;PopulateOption;mongoose;QueryOptions;",
"mongoose;PopulateOptions;mongoose;Document;Member[populate].Argument[4]",
"mongoose;PopulateOptions;mongoose;Document;Member[populate].WithArity[1,2].Argument[0]",
"mongoose;PopulateOptions;mongoose;Document;Member[populate].WithArity[1,2].Argument[0].ArrayElement",
"mongoose;PopulateOptions;mongoose;Model;Member[populate].Argument[1]",
"mongoose;PopulateOptions;mongoose;Model;Member[populate].Argument[1].ArrayElement",
"mongoose;PopulateOptions;mongoose;PopulateOption;Member[populate]",
"mongoose;PopulateOptions;mongoose;PopulateOption;Member[populate].ArrayElement",
"mongoose;PopulateOptions;mongoose;PopulateOptions;Member[populate]",
"mongoose;PopulateOptions;mongoose;PopulateOptions;Member[populate].ArrayElement",
"mongoose;PopulateOptions;mongoose;Query;Member[populate].WithArity[1].Argument[0]",
"mongoose;PopulateOptions;mongoose;Query;Member[populate].WithArity[1].Argument[0].ArrayElement",
"mongoose;Query;mongoose;Document;Member[replaceOne,update,updateOne].ReturnValue",
"mongoose;Query;mongoose;HydratedDocument;TypeVar[mongoose.Require_id.0]",
"mongoose;Query;mongoose;Query;Member[all,allowDiskUse,and,batchSize,box,circle,clone,collation,comment,elemMatch,equals,exists,explain,geometry,gt,gte,hint,in,intersects,j,limit,lt,lte,maxDistance,maxScan,maxTimeMS,merge,mod,ne,near,nin,nor,or,polygon,read,readConcern,regex,remove,select,session,set,setOptions,size,skip,slice,snapshot,sort,tailable,w,where,within,wtimeout].ReturnValue",
"mongoose;Query;mongoose;Query;Member[error].WithArity[1].ReturnValue",
"mongoose;Query;mongoose;Query;Member[merge].Argument[0]",
"mongoose;Query;mongoose;QueryStatic;Instance",
"mongoose;Query;mongoose;QueryWithHelpers;",
"mongoose;QueryOptions;mongoose;Document;Member[delete,deleteOne,remove].WithArity[0,1,2].Argument[0]",
"mongoose;QueryOptions;mongoose;Document;Member[replaceOne,update,updateOne].Argument[1]",
"mongoose;QueryOptions;mongoose;Model;Member[countDocuments,findByIdAndDelete,findByIdAndRemove,findOneAndDelete,findOneAndRemove].Argument[1]",
"mongoose;QueryOptions;mongoose;Model;Member[deleteMany,deleteOne].WithArity[0,1,2,3].Argument[1]",
"mongoose;QueryOptions;mongoose;Model;Member[estimatedDocumentCount].Argument[0]",
"mongoose;QueryOptions;mongoose;Model;Member[find,findById].WithArity[1,2,3,4].Argument[2]",
"mongoose;QueryOptions;mongoose;Model;Member[findByIdAndUpdate,findOne,findOneAndReplace,findOneAndUpdate].WithArity[0,1,2,3,4].Argument[2]",
"mongoose;QueryOptions;mongoose;Model;Member[replaceOne,update,updateMany,updateOne].Argument[2]",
"mongoose;QueryOptions;mongoose;PopulateOptions;Member[options]",
"mongoose;QueryOptions;mongoose;Query;Member[countDocuments,findByIdAndDelete,findOneAndDelete,findOneAndRemove].Argument[1]",
"mongoose;QueryOptions;mongoose;Query;Member[cursor,estimatedDocumentCount,setOptions].Argument[0]",
"mongoose;QueryOptions;mongoose;Query;Member[cursor].ReturnValue.TypeVar[mongoose.Cursor.1]",
"mongoose;QueryOptions;mongoose;Query;Member[deleteMany,deleteOne].WithArity[0,1,2,3].Argument[1]",
"mongoose;QueryOptions;mongoose;Query;Member[findByIdAndUpdate,findOne,findOneAndUpdate].WithArity[0,1,2,3,4].Argument[2]",
"mongoose;QueryOptions;mongoose;Query;Member[find].WithArity[1,2,3,4].Argument[2]",
"mongoose;QueryOptions;mongoose;Query;Member[getOptions].ReturnValue",
"mongoose;QueryOptions;mongoose;Query;Member[replaceOne,update,updateMany,updateOne].Argument[2]",
"mongoose;QueryOptions;mongoose;VirtualTypeOptions;Member[options]",
"mongoose;QueryStatic;mongoose;;Member[Query]",
"mongoose;QueryWithHelpers;mongoose;Document;Member[delete,deleteOne].WithArity[0,1].ReturnValue",
"mongoose;QueryWithHelpers;mongoose;Model;Member[$where,count,countDocuments,deleteMany,deleteOne,distinct,estimatedDocumentCount,find,findById,findByIdAndDelete,findByIdAndRemove,findOne,findOneAndDelete,findOneAndRemove,geoSearch,remove,replaceOne,update,updateMany,updateOne,where].ReturnValue",
"mongoose;QueryWithHelpers;mongoose;Model;Member[exists].WithArity[1,2].ReturnValue",
"mongoose;QueryWithHelpers;mongoose;Model;Member[findByIdAndUpdate,findOneAndReplace,findOneAndUpdate].WithArity[0,1,2,3,4].ReturnValue",
"mongoose;QueryWithHelpers;mongoose;Query;Member[$where,count,countDocuments,deleteMany,deleteOne,distinct,estimatedDocumentCount,find,findByIdAndDelete,findOne,findOneAndDelete,findOneAndRemove,lean,orFail,populate,replaceOne,transform,update,updateMany,updateOne].ReturnValue",
"mongoose;QueryWithHelpers;mongoose;Query;Member[findByIdAndUpdate,findOneAndUpdate].WithArity[0,1,2,3,4].ReturnValue",
"mongoose;QueryWithHelpers;mongoose;Query;Member[toConstructor].ReturnValue.Instance",
"mongoose;Schema.Types.Array;mongoose;Schema.Types.Array;Member[enum].ReturnValue",
"mongoose;Schema.Types.Array;mongoose;Schema.Types.ArrayStatic;Instance",
"mongoose;Schema.Types.ArrayStatic;mongoose;;Member[Schema].Member[Types].Member[Array]",
"mongoose;Schema.Types.DocumentArray;mongoose;Schema.Types.DocumentArrayStatic;Instance",
"mongoose;Schema.Types.DocumentArrayStatic;mongoose;;Member[Schema].Member[Types].Member[DocumentArray]",
"mongoose;Schema.Types.Subdocument;mongoose;Schema.Types.SubdocumentStatic;Instance",
"mongoose;Schema.Types.SubdocumentStatic;mongoose;;Member[Schema].Member[Types].Member[Subdocument]",
"mongoose;Schema.Types.SubdocumentStatic;mongoose;Schema.Types.DocumentArray;Member[caster]",
"mongoose;SchemaStatic;mongoose;;Member[Schema]",
"mongoose;SessionOperation;mongoose;Aggregate;",
"mongoose;SessionOperation;mongoose;Query;",
"mongoose;TVirtualPathFN;mongoose;VirtualPathFunctions;Member[get,set]",
"mongoose;Types.Array;mongoose;Types.DocumentArray;",
"mongoose;Types.ArraySubdocument;mongoose;Types.ArraySubdocumentStatic;Instance",
"mongoose;Types.ArraySubdocumentStatic;mongoose;;Member[Types].Member[ArraySubdocument]",
"mongoose;Types.DocumentArray;mongoose/inferschematype;ResolvePathType;TypeVar[mongoose.IfEquals.3]",
"mongoose;Types.DocumentArray;mongoose;Types.ArraySubdocument;Member[parentArray].ReturnValue",
"mongoose;Types.DocumentArray;mongoose;Types.DocumentArrayStatic;Instance",
"mongoose;Types.DocumentArrayStatic;mongoose;;Member[Types].Member[DocumentArray]",
"mongoose;Types.ObjectId;mongoose/inferschematype;ResolvePathType;",
"mongoose;Types.Subdocument;mongoose;Types.ArraySubdocument;",
"mongoose;Types.Subdocument;mongoose;Types.DocumentArray;Member[create,id].ReturnValue",
"mongoose;Types.Subdocument;mongoose;Types.DocumentArray;TypeVar[mongoose.Types.Array.0]",
"mongoose;Types.Subdocument;mongoose;Types.SubdocumentStatic;Instance",
"mongoose;Types.SubdocumentStatic;mongoose;;Member[Types].Member[Subdocument]",
"mongoose;VirtualType;mongoose;TVirtualPathFN;Argument[1]",
"mongoose;VirtualType;mongoose;VirtualType;Member[get,set].Argument[0].Argument[1]",
"mongoose;VirtualType;mongoose;VirtualType;Member[get,set].ReturnValue",
"mongoose;VirtualType;mongoose;VirtualTypeStatic;Instance",
"mongoose;VirtualTypeOptions;mongoose;VirtualPathFunctions;Member[options]",
"mongoose;VirtualTypeStatic;mongoose;;Member[VirtualType]"
],
"summaries": [
"mongodb;AbstractCursor;;;Member[addCursorFlag,batchSize,maxTimeMS,withReadConcern,withReadPreference].ReturnValue;type",
"mongodb;BulkOperationBase;;;Member[addToOperationsList,raw].ReturnValue;type",
"mongodb;FindCursor;;;Member[addQueryModifier,allowDiskUse,collation,comment,filter,hint,limit,max,maxAwaitTimeMS,maxTimeMS,min,returnKey,showRecordId,skip,sort].ReturnValue;type",
"mongodb;FindOperators;;;Member[arrayFilters,collation,upsert].ReturnValue;type",
"mongodb;GridFSBucketWriteStream;;;Member[end].ReturnValue;type",
"mongodb;MongoClient;;;Member[connect].Argument[0].TypeVar[mongodb.Callback.0];type",
"mongodb;MongoClient;;;Member[connect].WithArity[0].ReturnValue.Awaited;type",
"mongodb;OrderedBulkOperation;;;Member[addToOperationsList].ReturnValue;type",
"mongodb;TypedEventEmitter;;;Member[addListener,off,on,once,prependListener,prependOnceListener,removeAllListeners,removeListener,setMaxListeners].ReturnValue;type",
"mongodb;UnorderedBulkOperation;;;Member[addToOperationsList].ReturnValue;type",
"mongoose;Aggregate;;;Member[addCursorFlag,addFields,allowDiskUse,append,collation,count,facet,graphLookup,group,hint,limit,lookup,match,model,near,option,project,read,readConcern,redact,replaceRoot,sample,search,session,skip,sort,sortByCount,unionWith,unwind].ReturnValue;type",
"mongoose;Connection;;;Member[asPromise].ReturnValue.Awaited;type",
"mongoose;Connection;;;Member[deleteModel,setClient].ReturnValue;type",
"mongoose;Cursor;;;Member[addCursorFlag].ReturnValue;type",
"mongoose;Document;;;Member[$inc,$set,depopulate,increment,init,overwrite,set].ReturnValue;type",
"mongoose;Document;;;Member[delete,deleteOne].WithArity[0,1].ReturnValue.TypeVar[mongoose.QueryWithHelpers.1];type",
"mongoose;Document;;;Member[getChanges].ReturnValue.TypeVar[mongoose.UpdateQuery.0];type",
"mongoose;Document;;;Member[init].Argument[2].TypeVar[mongoose.Callback.0];type",
"mongoose;Document;;;Member[populate].Argument[1,5].TypeVar[mongoose.Callback.0].TypeVar[mongoose.MergeType.0];type",
"mongoose;Document;;;Member[populate].WithArity[1,2,3,4,5].ReturnValue.Awaited.TypeVar[mongoose.MergeType.0];type",
"mongoose;Document;;;Member[remove,save].WithArity[0,1].ReturnValue.Awaited;type",
"mongoose;Document;;;Member[replaceOne,update,updateOne].ReturnValue.TypeVar[mongoose.Query.1];type",
"mongoose;Document;;;Member[save].Argument[1].TypeVar[mongoose.Callback.0];type",
"mongoose;Document;;;Member[save].WithArity[1].Argument[0].TypeVar[mongoose.Callback.0];type",
"mongoose;Document;;;Member[update,updateOne].Argument[0].TypeVar[mongoose.UpdateQuery.0];type",
"mongoose;Query;;;Member[all,allowDiskUse,and,batchSize,box,circle,clone,collation,comment,elemMatch,equals,exists,explain,geometry,gt,gte,hint,in,intersects,j,limit,lt,lte,maxDistance,maxScan,maxTimeMS,merge,mod,ne,near,nin,nor,or,polygon,read,readConcern,regex,select,session,set,setOptions,size,skip,slice,snapshot,sort,tailable,w,where,within,wtimeout].ReturnValue;type",
"mongoose;Query;;;Member[error].WithArity[1].ReturnValue;type",
"mongoose;Schema.Types.Array;;;Member[enum].ReturnValue;type",
"mongoose;SessionOperation;;;Member[session].ReturnValue;type",
"mongoose;Types.Array;;;Member[pull,remove,set].ReturnValue;type",
"mongoose;Types.ObjectId;;;Member[_id];type",
"mongoose;VirtualType;;;Member[get,set].ReturnValue;type"
],
"typeVariables": [
"mongodb.Callback.0;Argument[1]",
"mongoose.Callback.0;Argument[1]",
"mongoose.Cursor.0;Member[eachAsync].WithArity[1,2,3].Argument[0].Argument[0]",
"mongoose.Cursor.0;Member[eachAsync].WithArity[2,3].Argument[0].Argument[0].ArrayElement",
"mongoose.Cursor.0;Member[map].Argument[0].Argument[0]",
"mongoose.Cursor.0;Member[next].Argument[0].TypeVar[mongoose.Callback.0]",
"mongoose.Cursor.0;Member[next].WithArity[0].ReturnValue.Awaited",
"mongoose.Cursor.1;Member[map].ReturnValue.TypeVar[mongoose.Cursor.1]",
"mongoose.Cursor.1;Member[options]",
"mongoose.DiscriminatorSchema.1;TypeVar[mongoose.Schema.1]",
"mongoose.DiscriminatorSchema.1;TypeVar[mongoose.Schema.1].TypeVar[mongoose.DiscriminatorModel.1]",
"mongoose.Document.0;Member[_id]",
"mongoose.Document.0;Member[equals].Argument[0].TypeVar[mongoose.Document.0]",
"mongoose.FilterQuery.0;TypeVar[mongoose._FilterQuery.0]",
"mongoose.IfAny.1;",
"mongoose.IfAny.2;",
"mongoose.IfEquals.3;",
"mongoose.LeanDocumentOrArray.0;",
"mongoose.LeanDocumentOrArray.0;TypeVar[mongoose.LeanDocument.0]",
"mongoose.LeanDocumentOrArrayWithRawType.0;",
"mongoose.ModifyResult.0;Member[value].TypeVar[mongoose.Require_id.0]",
"mongoose.PluginFunction.1;Argument[0].TypeVar[mongoose.Schema.1]",
"mongoose.PostMiddlewareFunction.1;Argument[0]",
"mongoose.Query.0;Member[exec].Argument[0].TypeVar[mongoose.Callback.0]",
"mongoose.Query.0;Member[exec].WithArity[0].ReturnValue.Awaited",
"mongoose.Query.0;Member[lean].ReturnValue.TypeVar[mongoose.QueryWithHelpers.0].TypeVar[mongoose.LeanDocumentOrArray.0,mongoose.LeanDocumentOrArrayWithRawType.0]",
"mongoose.Query.0;Member[orFail].ReturnValue.TypeVar[mongoose.QueryWithHelpers.0]",
"mongoose.Query.0;Member[populate].ReturnValue.TypeVar[mongoose.QueryWithHelpers.0].TypeVar[mongoose.UnpackedIntersection.0]",
"mongoose.Query.0;Member[then,transform].Argument[0].Argument[0]",
"mongoose.Query.0;Member[toConstructor].ReturnValue.Instance.TypeVar[mongoose.QueryWithHelpers.0]",
"mongoose.Query.1;Member[$where,count,countDocuments,deleteMany,deleteOne,distinct,estimatedDocumentCount,find,lean,orFail,populate,replaceOne,transform,update,updateMany,updateOne].ReturnValue.TypeVar[mongoose.QueryWithHelpers.1]",
"mongoose.Query.1;Member[$where,find].ReturnValue.TypeVar[mongoose.QueryWithHelpers.0].ArrayElement",
"mongoose.Query.1;Member[_mongooseOptions].TypeVar[mongoose.MongooseQueryOptions.0]",
"mongoose.Query.1;Member[and,nor,or].Argument[0].ArrayElement.TypeVar[mongoose.FilterQuery.0]",
"mongoose.Query.1;Member[countDocuments,findByIdAndDelete,findOneAndDelete,findOneAndRemove].Argument[1].TypeVar[mongoose.QueryOptions.0]",
"mongoose.Query.1;Member[countDocuments].WithArity[1,2,3].Argument[0].TypeVar[mongoose.FilterQuery.0]",
"mongoose.Query.1;Member[count].WithArity[1,2].Argument[0].TypeVar[mongoose.FilterQuery.0]",
"mongoose.Query.1;Member[cursor,estimatedDocumentCount,setOptions].Argument[0].TypeVar[mongoose.QueryOptions.0]",
"mongoose.Query.1;Member[cursor].ReturnValue.TypeVar[mongoose.Cursor.0]",
"mongoose.Query.1;Member[cursor].ReturnValue.TypeVar[mongoose.Cursor.1].TypeVar[mongoose.QueryOptions.0]",
"mongoose.Query.1;Member[deleteMany,deleteOne].WithArity[0,1,2,3].Argument[0].TypeVar[mongoose.FilterQuery.0]",
"mongoose.Query.1;Member[deleteMany,deleteOne].WithArity[0,1,2,3].Argument[1].TypeVar[mongoose.QueryOptions.0]",
"mongoose.Query.1;Member[distinct].Argument[1].TypeVar[mongoose.FilterQuery.0]",
"mongoose.Query.1;Member[findByIdAndDelete,findOne,findOneAndDelete,findOneAndRemove].ReturnValue.TypeVar[mongoose.QueryWithHelpers.0,mongoose.QueryWithHelpers.1]",
"mongoose.Query.1;Member[findByIdAndDelete,findOneAndDelete,findOneAndRemove].Argument[2].Argument[1]",
"mongoose.Query.1;Member[findByIdAndUpdate,findOneAndUpdate,update,updateMany,updateOne].Argument[1].TypeVar[mongoose.UpdateQuery.0]",
"mongoose.Query.1;Member[findByIdAndUpdate,findOneAndUpdate].WithArity[0,1,2,3,4].Argument[2].TypeVar[mongoose.QueryOptions.0]",
"mongoose.Query.1;Member[findByIdAndUpdate,findOneAndUpdate].WithArity[0,1,2,3,4].ReturnValue.TypeVar[mongoose.QueryWithHelpers.0,mongoose.QueryWithHelpers.1]",
"mongoose.Query.1;Member[findByIdAndUpdate].WithArity[0,1,2,4].Argument[3].Argument[1]",
"mongoose.Query.1;Member[findByIdAndUpdate].WithArity[3].Argument[2,3].Argument[1]",
"mongoose.Query.1;Member[findOne,findOneAndDelete,findOneAndRemove,findOneAndUpdate,merge,remove,replaceOne,setQuery,update,updateMany,updateOne].Argument[0].TypeVar[mongoose.FilterQuery.0]",
"mongoose.Query.1;Member[findOneAndUpdate].Argument[3].Argument[1]",
"mongoose.Query.1;Member[findOneAndUpdate].Argument[3].Argument[2].TypeVar[mongoose.ModifyResult.0]",
"mongoose.Query.1;Member[findOneAndUpdate].WithArity[3,4].ReturnValue.TypeVar[mongoose.QueryWithHelpers.0].TypeVar[mongoose.ModifyResult.0]",
"mongoose.Query.1;Member[findOne].Argument[3].TypeVar[mongoose.Callback.0]",
"mongoose.Query.1;Member[findOne].WithArity[0,1,2,3].Argument[2].TypeVar[mongoose.Callback.0,mongoose.QueryOptions.0]",
"mongoose.Query.1;Member[findOne].WithArity[0,1,2].Argument[1].TypeVar[mongoose.Callback.0,mongoose.ProjectionType.0]",
"mongoose.Query.1;Member[findOne].WithArity[3,4].Argument[1].TypeVar[mongoose.ProjectionType.0]",
"mongoose.Query.1;Member[findOne].WithArity[4].Argument[2].TypeVar[mongoose.QueryOptions.0]",
"mongoose.Query.1;Member[find].Argument[3].TypeVar[mongoose.Callback.0].ArrayElement",
"mongoose.Query.1;Member[find].WithArity[0].Argument[0].TypeVar[mongoose.Callback.0].ArrayElement",
"mongoose.Query.1;Member[find].WithArity[1,2,3,4].Argument[0].TypeVar[mongoose.FilterQuery.0]",
"mongoose.Query.1;Member[find].WithArity[1,2,3,4].Argument[1].TypeVar[mongoose.ProjectionType.0]",
"mongoose.Query.1;Member[find].WithArity[1,2,3,4].Argument[2].TypeVar[mongoose.QueryOptions.0]",
"mongoose.Query.1;Member[find].WithArity[1].Argument[0,1,2].TypeVar[mongoose.Callback.0].ArrayElement",
"mongoose.Query.1;Member[find].WithArity[2].Argument[1,2].TypeVar[mongoose.Callback.0].ArrayElement",
"mongoose.Query.1;Member[find].WithArity[3].Argument[2].TypeVar[mongoose.Callback.0].ArrayElement",
"mongoose.Query.1;Member[getFilter,getQuery].ReturnValue.TypeVar[mongoose.FilterQuery.0]",
"mongoose.Query.1;Member[getOptions].ReturnValue.TypeVar[mongoose.QueryOptions.0]",
"mongoose.Query.1;Member[getUpdate].ReturnValue.TypeVar[mongoose.UpdateQuery.0]",
"mongoose.Query.1;Member[projection].WithArity[0,1].Argument[0].TypeVar[mongoose.ProjectionFields.0]",
"mongoose.Query.1;Member[projection].WithArity[0,1].ReturnValue.TypeVar[mongoose.ProjectionFields.0]",
"mongoose.Query.1;Member[remove].ReturnValue.TypeVar[mongoose.Query.1]",
"mongoose.Query.1;Member[replaceOne,update,updateMany,updateOne].Argument[2].TypeVar[mongoose.QueryOptions.0]",
"mongoose.Query.1;Member[replaceOne].Argument[1]",
"mongoose.Query.1;Member[setUpdate].Argument[0].TypeVar[mongoose.UpdateQuery.0]",
"mongoose.Query.1;Member[toConstructor].ReturnValue.Instance.TypeVar[mongoose.QueryWithHelpers.1]",
"mongoose.QueryOptions.0;Member[projection].TypeVar[mongoose.ProjectionType.0]",
"mongoose.QueryWithHelpers.0;TypeVar[mongoose.Query.0]",
"mongoose.QueryWithHelpers.1;TypeVar[mongoose.Query.1]",
"mongoose.Require_id.0;",
"mongoose.Require_id.0;TypeVar[mongoose.IfAny.1,mongoose.IfAny.2]",
"mongoose.RootQuerySelector.0;Member[$and,$nor,$or].ArrayElement.TypeVar[mongoose.FilterQuery.0]",
"mongoose.Schema.1;Member[discriminator].ReturnValue.TypeVar[mongoose.DiscriminatorSchema.1]",
"mongoose.Schema.1;Member[plugin].Argument[0].TypeVar[mongoose.PluginFunction.1]",
"mongoose.Schema.1;Member[post].Argument[2].TypeVar[mongoose.ErrorHandlingMiddlewareFunction.0,mongoose.PostMiddlewareFunction.0,mongoose.PostMiddlewareFunction.1]",
"mongoose.Schema.1;Member[post].WithArity[2].WithStringArgument[0=insertMany].Argument[1].TypeVar[mongoose.ErrorHandlingMiddlewareFunction.0,mongoose.PostMiddlewareFunction.0,mongoose.PostMiddlewareFunction.1]",
"mongoose.Types.Array.0;Member[$pop,$shift,shift].ReturnValue",
"mongoose.Types.Array.0;Member[set].Argument[1]",
"mongoose.Types.DocumentArray.0;Member[create,id].ReturnValue",
"mongoose.Types.DocumentArray.0;Member[create,id].ReturnValue.TypeVar[mongoose.Types.Subdocument.0].TypeVar[mongoose.InferId.0]",
"mongoose.Types.DocumentArray.0;Member[push].Argument[0].ArrayElement.TypeVar[mongoose.AnyKeys.0]",
"mongoose.Types.DocumentArray.0;TypeVar[mongoose.Types.Array.0]",
"mongoose.Types.DocumentArray.0;TypeVar[mongoose.Types.Array.0].TypeVar[mongoose.Types.Subdocument.0].TypeVar[mongoose.InferId.0]",
"mongoose.Types.Subdocument.0;TypeVar[mongoose.Document.0]",
"mongoose.UnpackedIntersection.0;",
"mongoose.UpdateQuery.0;TypeVar[mongoose._UpdateQuery.0].TypeVar[mongoose._UpdateQueryDef.0]",
"mongoose.VirtualType.0;Member[get,set].Argument[0].Argument[1].TypeVar[mongoose.VirtualType.0]",
"mongoose.VirtualType.0;Member[get,set].Argument[0].Argument[2]",
"mongoose.VirtualTypeOptions.0;Member[foreignField,localField].Argument[0]",
"mongoose._FilterQuery.0;TypeVar[mongoose.RootQuerySelector.0]",
"mongoose._UpdateQuery.0;Member[$currentDate,$inc,$max,$min,$mul,$pop,$pull,$pullAll,$push,$set,$setOnInsert,$unset].TypeVar[mongoose.AnyKeys.0]"
]
}
}

View File

@@ -0,0 +1,45 @@
/** Generated model file */
private import javascript
private class Types extends ModelInput::TypeModelCsv {
override predicate row(string row) {
row =
[
"mssql;ConnectionPool;mssql/msnodesqlv8;;Member[connect].ReturnValue.Awaited", //
"mssql;ConnectionPool;mssql/msnodesqlv8;;Member[pool]", //
"mssql;ConnectionPool;mssql;;Member[connect].ReturnValue.Awaited", //
"mssql;ConnectionPool;mssql;;Member[pool]", //
"mssql;ConnectionPool;mssql;ConnectionPool;Member[connect].WithArity[0].ReturnValue.Awaited", //
"mssql;ConnectionPool;mssql;ConnectionPoolStatic;Instance", //
"mssql;ConnectionPoolStatic;mssql/msnodesqlv8;;Member[ConnectionPool]", //
"mssql;ConnectionPoolStatic;mssql;;Member[ConnectionPool]", //
"mssql;PreparedStatement;mssql;PreparedStatement;Member[input,output].ReturnValue", //
"mssql;PreparedStatement;mssql;PreparedStatement;Member[prepare].WithArity[0,1,2].ReturnValue", //
"mssql;PreparedStatement;mssql;PreparedStatement;Member[unprepare].WithArity[1].ReturnValue", //
"mssql;PreparedStatement;mssql;PreparedStatementStatic;Instance", //
"mssql;PreparedStatement;mssql;Request;Member[pstatement]", //
"mssql;PreparedStatementStatic;mssql/msnodesqlv8;;Member[PreparedStatement]", //
"mssql;PreparedStatementStatic;mssql;;Member[PreparedStatement]", //
"mssql;Request;mssql;ConnectionPool;Member[request].ReturnValue", //
"mssql;Request;mssql;PreparedStatement;Member[execute].WithArity[2].ReturnValue", //
"mssql;Request;mssql;Request;Member[input,output,replaceInput].ReturnValue", //
"mssql;Request;mssql;Request;Member[replaceOutput].ReturnValue", //
"mssql;Request;mssql;RequestStatic;Instance", //
"mssql;Request;mssql;Transaction;Member[request].ReturnValue", //
"mssql;RequestStatic;mssql/msnodesqlv8;;Member[Request]", //
"mssql;RequestStatic;mssql;;Member[Request]", //
"mssql;Transaction;mssql;ConnectionPool;Member[transaction].ReturnValue", //
"mssql;Transaction;mssql;PreparedStatement;Member[transaction]", //
"mssql;Transaction;mssql;Request;Member[transaction]", //
"mssql;Transaction;mssql;Transaction;Member[begin].WithArity[0,1,2].ReturnValue", //
"mssql;Transaction;mssql;Transaction;Member[begin].WithArity[0,1].ReturnValue.Awaited", //
"mssql;Transaction;mssql;TransactionStatic;Instance", //
"mssql;TransactionStatic;mssql/msnodesqlv8;;Member[Transaction]", //
"mssql;TransactionStatic;mssql;;Member[Transaction]", //
"mssql;config;mssql/msnodesqlv8;;Member[connect].Argument[0]", //
"mssql;config;mssql;;Member[connect].Argument[0]", //
"mssql;config;mssql;ConnectionPoolStatic;WithArity[1,2].Argument[0]", //
]
}
}

View File

@@ -0,0 +1,66 @@
{
"packages": {
"@types/mssql": "8.0.1"
},
"resolutions": {
"@types/node": "17.0.35",
"@types/tedious": "4.0.7",
"tarn": "3.0.2"
},
"language": "javascript",
"usedTypes": {
"sources": [
"mssql;Request",
"mssql;ConnectionPool"
],
"sinks": [
"mssql;config"
]
},
"model": {
"typeDefinitions": [
"mssql;Request;mssql;Request;Member[replaceOutput].ReturnValue"
],
"sinks": []
},
"generatedModel": {
"//": "Autogenerated section. Manual edits in here will be lost.",
"typeDefinitions": [
"mssql;ConnectionPool;mssql/msnodesqlv8;;Member[connect].ReturnValue.Awaited",
"mssql;ConnectionPool;mssql/msnodesqlv8;;Member[pool]",
"mssql;ConnectionPool;mssql;;Member[connect].ReturnValue.Awaited",
"mssql;ConnectionPool;mssql;;Member[pool]",
"mssql;ConnectionPool;mssql;ConnectionPool;Member[connect].WithArity[0].ReturnValue.Awaited",
"mssql;ConnectionPool;mssql;ConnectionPoolStatic;Instance",
"mssql;ConnectionPoolStatic;mssql/msnodesqlv8;;Member[ConnectionPool]",
"mssql;ConnectionPoolStatic;mssql;;Member[ConnectionPool]",
"mssql;PreparedStatement;mssql;PreparedStatement;Member[input,output].ReturnValue",
"mssql;PreparedStatement;mssql;PreparedStatement;Member[prepare].WithArity[0,1,2].ReturnValue",
"mssql;PreparedStatement;mssql;PreparedStatement;Member[unprepare].WithArity[1].ReturnValue",
"mssql;PreparedStatement;mssql;PreparedStatementStatic;Instance",
"mssql;PreparedStatement;mssql;Request;Member[pstatement]",
"mssql;PreparedStatementStatic;mssql/msnodesqlv8;;Member[PreparedStatement]",
"mssql;PreparedStatementStatic;mssql;;Member[PreparedStatement]",
"mssql;Request;mssql;ConnectionPool;Member[request].ReturnValue",
"mssql;Request;mssql;PreparedStatement;Member[execute].WithArity[2].ReturnValue",
"mssql;Request;mssql;Request;Member[input,output,replaceInput].ReturnValue",
"mssql;Request;mssql;RequestStatic;Instance",
"mssql;Request;mssql;Transaction;Member[request].ReturnValue",
"mssql;RequestStatic;mssql/msnodesqlv8;;Member[Request]",
"mssql;RequestStatic;mssql;;Member[Request]",
"mssql;Transaction;mssql;ConnectionPool;Member[transaction].ReturnValue",
"mssql;Transaction;mssql;PreparedStatement;Member[transaction]",
"mssql;Transaction;mssql;Request;Member[transaction]",
"mssql;Transaction;mssql;Transaction;Member[begin].WithArity[0,1,2].ReturnValue",
"mssql;Transaction;mssql;Transaction;Member[begin].WithArity[0,1].ReturnValue.Awaited",
"mssql;Transaction;mssql;TransactionStatic;Instance",
"mssql;TransactionStatic;mssql/msnodesqlv8;;Member[Transaction]",
"mssql;TransactionStatic;mssql;;Member[Transaction]",
"mssql;config;mssql/msnodesqlv8;;Member[connect].Argument[0]",
"mssql;config;mssql;;Member[connect].Argument[0]",
"mssql;config;mssql;ConnectionPoolStatic;WithArity[1,2].Argument[0]"
],
"summaries": [],
"typeVariables": []
}
}

View File

@@ -0,0 +1,79 @@
/** Generated model file */
private import javascript
private class Types extends ModelInput::TypeModelCsv {
override predicate row(string row) {
row =
[
"mysql2/promise;Connection;mysql2/promise;;Member[createConnectionPromise].ReturnValue.Awaited", //
"mysql2/promise;Connection;mysql2/promise;;Member[createConnection].ReturnValue.Awaited", //
"mysql2/promise;Connection;mysql2/promise;PoolConnection;", //
"mysql2/promise;Connection;mysql2;;Member[createConnectionPromise].ReturnValue.Awaited", //
"mysql2/promise;Connection;mysql2;Connection;Member[promise].ReturnValue", //
"mysql2/promise;Pool;mysql2/promise;;Member[createPool].ReturnValue", //
"mysql2/promise;Pool;mysql2/promise;Pool;Member[addListener,on,once,prependListener,prependOnceListener].ReturnValue", //
"mysql2/promise;Pool;mysql2;Pool;Member[promise].ReturnValue", //
"mysql2/promise;PoolConnection;mysql2/promise;Pool;Member[addListener,on,once,prependListener,prependOnceListener].WithArity[2].WithStringArgument[0=acquire,0=connection,0=release].Argument[1].Argument[0]", //
"mysql2/promise;PoolConnection;mysql2/promise;Pool;Member[getConnection].ReturnValue.Awaited", //
"mysql2/promise;PoolConnection;mysql2;PoolConnection;Member[promise].ReturnValue", //
"mysql2/typings/mysql/lib/Connection;;mysql2/typings/mysql/lib/PoolConnection;;", //
"mysql2/typings/mysql/lib/Connection;;mysql2/typings/mysql;Connection;", //
"mysql2/typings/mysql/lib/PoolConnection;;mysql2/typings/mysql;PoolConnection;", //
"mysql2/typings/mysql;Connection;mysql2;Connection;", //
"mysql2/typings/mysql;Connection;mysql2;Pool;", //
"mysql2/typings/mysql;PoolConnection;mysql2;PoolConnection;", //
"mysql2;Connection;mysql2;;Member[createConnection].ReturnValue", //
"mysql2;Connection;mysql2;PoolConnection;", //
"mysql2;Connection;mysql2;authPlugins;Argument[0].Member[connection]", //
"mysql2;ConnectionOptions;mysql2/promise;;Member[createConnection].Argument[0]", //
"mysql2;ConnectionOptions;mysql2/promise;Connection;Member[changeUser].Argument[0]", //
"mysql2;ConnectionOptions;mysql2/promise;Connection;Member[config]", //
"mysql2;ConnectionOptions;mysql2;;Member[createConnection].Argument[0]", //
"mysql2;ConnectionOptions;mysql2;PoolOptions;", //
"mysql2;Pool;mysql2;;Member[createPool].ReturnValue", //
"mysql2;Pool;mysql2;Pool;Member[addListener,on,once,prependListener,prependOnceListener].ReturnValue", //
"mysql2;PoolConnection;mysql2;Pool;Member[addListener,on,once,prependListener,prependOnceListener].WithArity[2].WithStringArgument[0=acquire,0=connection,0=release].Argument[1].Argument[0]", //
"mysql2;PoolConnection;mysql2;Pool;Member[getConnection].Argument[0].Argument[1]", //
"mysql2;PoolOptions;mysql2/promise;;Member[createPool].Argument[0]", //
"mysql2;PoolOptions;mysql2;;Member[createPool].Argument[0]", //
"mysql2;authPlugins;mysql2;ConnectionOptions;Member[authPlugins].AnyMember", //
"mysql;Connection;mysql;;Member[createConnection].ReturnValue", //
"mysql;Connection;mysql;Pool;Member[on,addListener].WithStringArgument[0=acquire,0=connection,0=release].Argument[1].Argument[0]", //
"mysql;Connection;mysql;PoolConnection;", //
"mysql;Connection;mysql;Query;Member[RowDataPacket].Argument[2]", //
"mysql;ConnectionConfig;mysql;;Member[createConnection].Argument[0]", //
"mysql;ConnectionConfig;mysql;Connection;Member[config]", //
"mysql;ConnectionConfig;mysql;PoolConfig;", //
"mysql;ConnectionOptions;mysql;Connection;Member[changeUser].WithArity[1,2].Argument[0]", //
"mysql;ConnectionOptions;mysql;ConnectionConfig;", //
"mysql;Pool;mysql;;Member[createPool].ReturnValue", //
"mysql;Pool;mysql;PoolCluster;Member[of].ReturnValue", //
"mysql;PoolCluster;mysql;;Member[createPoolCluster].ReturnValue", //
"mysql;PoolConfig;mysql;;Member[createPool].Argument[0]", //
"mysql;PoolConfig;mysql;PoolCluster;Member[add].Argument[1]", //
"mysql;PoolConfig;mysql;PoolCluster;Member[add].WithArity[1].Argument[0]", //
"mysql;PoolConnection;mysql;Pool;Member[acquireConnection].Argument[0]", //
"mysql;PoolConnection;mysql;Pool;Member[acquireConnection].Argument[1].Argument[1]", //
"mysql;PoolConnection;mysql;Pool;Member[getConnection].Argument[0].Argument[1]", //
"mysql;PoolConnection;mysql;PoolCluster;Member[getConnection].Argument[1,2].Argument[1]", //
"mysql;PoolConnection;mysql;PoolCluster;Member[getConnection].WithArity[1].Argument[0].Argument[1]", //
"mysql;Query;mysql;Query;Member[on].ReturnValue", //
"mysql;Query;mysql;QueryFunction;ReturnValue", //
"mysql;Query;mysql;QueryFunction;WithArity[1].Argument[0]", //
"mysql;QueryFunction;mysql;Connection;Member[createQuery,query]", //
"mysql;QueryFunction;mysql;Pool;Member[query]", //
]
}
}
private class Summaries extends ModelInput::SummaryModelCsv {
override predicate row(string row) {
row =
[
"mysql2/promise;Pool;;;Member[addListener,on,once,prependListener,prependOnceListener].ReturnValue;type", //
"mysql2/typings/mysql/lib/Connection;;;;Member[addListener,on,once,prependListener,prependOnceListener].ReturnValue;type", //
"mysql2;Pool;;;Member[addListener,on,once,prependListener,prependOnceListener].ReturnValue;type", //
]
}
}

View File

@@ -0,0 +1,100 @@
{
"packages": {
"@types/mysql": "2.15.21",
"mysql2": "2.3.3"
},
"resolutions": {
"@types/node": "17.0.40",
"denque": "2.1.0",
"iconv-lite": "0.6.3"
},
"language": "javascript",
"usedTypes": {
"sources": [
"mysql;Pool",
"mysql;Connection",
"mysql2;Pool",
"mysql2;Connection",
"mysql2/promise;Pool",
"mysql2/promise;Connection"
],
"sinks": [
"mysql;ConnectionOptions",
"mysql2;ConnectionOptions",
"mysql2/promise;ConnectionOptions"
]
},
"model": {
"sinks": [],
"typeDefinitions": [
"mysql;Connection;mysql;Pool;Member[on,addListener].WithStringArgument[0=acquire,0=connection,0=release].Argument[1].Argument[0]",
"mysql2/promise;Connection;mysql2;;Member[createConnectionPromise].ReturnValue.Awaited",
"mysql2/promise;Connection;mysql2/promise;;Member[createConnectionPromise].ReturnValue.Awaited"
]
},
"generatedModel": {
"//": "Autogenerated section. Manual edits in here will be lost.",
"typeDefinitions": [
"mysql2/promise;Connection;mysql2/promise;;Member[createConnection].ReturnValue.Awaited",
"mysql2/promise;Connection;mysql2/promise;PoolConnection;",
"mysql2/promise;Connection;mysql2;Connection;Member[promise].ReturnValue",
"mysql2/promise;Pool;mysql2/promise;;Member[createPool].ReturnValue",
"mysql2/promise;Pool;mysql2/promise;Pool;Member[addListener,on,once,prependListener,prependOnceListener].ReturnValue",
"mysql2/promise;Pool;mysql2;Pool;Member[promise].ReturnValue",
"mysql2/promise;PoolConnection;mysql2/promise;Pool;Member[addListener,on,once,prependListener,prependOnceListener].WithArity[2].WithStringArgument[0=acquire,0=connection,0=release].Argument[1].Argument[0]",
"mysql2/promise;PoolConnection;mysql2/promise;Pool;Member[getConnection].ReturnValue.Awaited",
"mysql2/promise;PoolConnection;mysql2;PoolConnection;Member[promise].ReturnValue",
"mysql2/typings/mysql/lib/Connection;;mysql2/typings/mysql/lib/PoolConnection;;",
"mysql2/typings/mysql/lib/Connection;;mysql2/typings/mysql;Connection;",
"mysql2/typings/mysql/lib/PoolConnection;;mysql2/typings/mysql;PoolConnection;",
"mysql2/typings/mysql;Connection;mysql2;Connection;",
"mysql2/typings/mysql;Connection;mysql2;Pool;",
"mysql2/typings/mysql;PoolConnection;mysql2;PoolConnection;",
"mysql2;Connection;mysql2;;Member[createConnection].ReturnValue",
"mysql2;Connection;mysql2;PoolConnection;",
"mysql2;Connection;mysql2;authPlugins;Argument[0].Member[connection]",
"mysql2;ConnectionOptions;mysql2/promise;;Member[createConnection].Argument[0]",
"mysql2;ConnectionOptions;mysql2/promise;Connection;Member[changeUser].Argument[0]",
"mysql2;ConnectionOptions;mysql2/promise;Connection;Member[config]",
"mysql2;ConnectionOptions;mysql2;;Member[createConnection].Argument[0]",
"mysql2;ConnectionOptions;mysql2;PoolOptions;",
"mysql2;Pool;mysql2;;Member[createPool].ReturnValue",
"mysql2;Pool;mysql2;Pool;Member[addListener,on,once,prependListener,prependOnceListener].ReturnValue",
"mysql2;PoolConnection;mysql2;Pool;Member[addListener,on,once,prependListener,prependOnceListener].WithArity[2].WithStringArgument[0=acquire,0=connection,0=release].Argument[1].Argument[0]",
"mysql2;PoolConnection;mysql2;Pool;Member[getConnection].Argument[0].Argument[1]",
"mysql2;PoolOptions;mysql2/promise;;Member[createPool].Argument[0]",
"mysql2;PoolOptions;mysql2;;Member[createPool].Argument[0]",
"mysql2;authPlugins;mysql2;ConnectionOptions;Member[authPlugins].AnyMember",
"mysql;Connection;mysql;;Member[createConnection].ReturnValue",
"mysql;Connection;mysql;PoolConnection;",
"mysql;Connection;mysql;Query;Member[RowDataPacket].Argument[2]",
"mysql;ConnectionConfig;mysql;;Member[createConnection].Argument[0]",
"mysql;ConnectionConfig;mysql;Connection;Member[config]",
"mysql;ConnectionConfig;mysql;PoolConfig;",
"mysql;ConnectionOptions;mysql;Connection;Member[changeUser].WithArity[1,2].Argument[0]",
"mysql;ConnectionOptions;mysql;ConnectionConfig;",
"mysql;Pool;mysql;;Member[createPool].ReturnValue",
"mysql;Pool;mysql;PoolCluster;Member[of].ReturnValue",
"mysql;PoolCluster;mysql;;Member[createPoolCluster].ReturnValue",
"mysql;PoolConfig;mysql;;Member[createPool].Argument[0]",
"mysql;PoolConfig;mysql;PoolCluster;Member[add].Argument[1]",
"mysql;PoolConfig;mysql;PoolCluster;Member[add].WithArity[1].Argument[0]",
"mysql;PoolConnection;mysql;Pool;Member[acquireConnection].Argument[0]",
"mysql;PoolConnection;mysql;Pool;Member[acquireConnection].Argument[1].Argument[1]",
"mysql;PoolConnection;mysql;Pool;Member[getConnection].Argument[0].Argument[1]",
"mysql;PoolConnection;mysql;PoolCluster;Member[getConnection].Argument[1,2].Argument[1]",
"mysql;PoolConnection;mysql;PoolCluster;Member[getConnection].WithArity[1].Argument[0].Argument[1]",
"mysql;Query;mysql;Query;Member[on].ReturnValue",
"mysql;Query;mysql;QueryFunction;ReturnValue",
"mysql;Query;mysql;QueryFunction;WithArity[1].Argument[0]",
"mysql;QueryFunction;mysql;Connection;Member[createQuery,query]",
"mysql;QueryFunction;mysql;Pool;Member[query]"
],
"summaries": [
"mysql2/promise;Pool;;;Member[addListener,on,once,prependListener,prependOnceListener].ReturnValue;type",
"mysql2/typings/mysql/lib/Connection;;;;Member[addListener,on,once,prependListener,prependOnceListener].ReturnValue;type",
"mysql2;Pool;;;Member[addListener,on,once,prependListener,prependOnceListener].ReturnValue;type"
],
"typeVariables": []
}
}

View File

@@ -0,0 +1,120 @@
/** Generated model file */
private import javascript
private class Types extends ModelInput::TypeModelCsv {
override predicate row(string row) {
row =
[
"events;;pg-cursor;;", //
"events;;pg-promise/pg-subset;pg.IClient;", //
"events;;pg-promise/pg-subset;pg.IConnection;", //
"events;;pg-promise/pg-subset;pg.IPool;", //
"events;;pg;ClientBase;", //
"events;;pg;Events;", //
"events;;pg;Pool;", //
"global;NodeJS.EventEmitter;events;;", //
"pg-cursor;;pg-cursor;Static;Instance", //
"pg-cursor;Static;pg-cursor;;", //
"pg-pool;;pg-pool;;Member[addListener,on,once,prependListener,prependOnceListener].ReturnValue", //
"pg-pool;;pg-pool;Static;Instance", //
"pg-pool;Static;pg-pool;;", //
"pg-promise/pg-subset;pg.IClient;pg-promise/pg-subset;;Member[Client].Instance", //
"pg-promise/pg-subset;pg.IClient;pg-promise;;Argument[0].TypeVar[pg-promise.IInitOptions.1]", //
"pg-promise/pg-subset;pg.IClient;pg-promise;IMain;Argument[0].TypeVar[pg-promise/pg-subset.pg.IConnectionParameters.0]", //
"pg-promise/pg-subset;pg.IClient;pg-promise;IMain;ReturnValue.TypeVar[pg-promise.IDatabase.1]", //
"pg-promise/pg-subset;pg.IConnection;pg-promise/pg-subset;pg.IClient;Member[connection]", //
"pg-promise/pg-subset;pg.IPool;pg-promise;IDatabase;Member[$pool]", //
"pg-promise;IBaseProtocol;pg-promise/typescript/pg-promise;IBaseProtocol;", //
"pg-promise;IBaseProtocol;pg-promise;IConnected;", //
"pg-promise;IBaseProtocol;pg-promise;IDatabase;", //
"pg-promise;IBaseProtocol;pg-promise;ITask;", //
"pg-promise;IConnected;pg-promise/typescript/pg-promise;IConnected;", //
"pg-promise;IConnected;pg-promise;IDatabase;Member[connect].ReturnValue.Awaited", //
"pg-promise;IDatabase;pg-promise/typescript/pg-promise;IDatabase;", //
"pg-promise;IDatabase;pg-promise;IInitOptions;Member[extend].Argument[0]", //
"pg-promise;IDatabase;pg-promise;IMain;ReturnValue", //
"pg-promise;IInitOptions;pg-promise/typescript/pg-promise;IInitOptions;", //
"pg-promise;IInitOptions;pg-promise;;Argument[0]", //
"pg-promise;IInitOptions;pg-promise;ILibConfig;Member[options]", //
"pg-promise;ILibConfig;pg-promise/typescript/pg-promise;ILibConfig;", //
"pg-promise;ILibConfig;pg-promise;IDatabase;Member[$config]", //
"pg-promise;IMain;pg-promise/typescript/pg-promise;IMain;", //
"pg-promise;IMain;pg-promise;;ReturnValue", //
"pg-promise;IMain;pg-promise;ILibConfig;Member[pgp]", //
"pg-promise;ITask;pg-promise/typescript/pg-promise;ITask;", //
"pg-promise;ITask;pg-promise;IBaseProtocol;Member[task,taskIf,tx,txIf].Argument[1].Argument[0]", //
"pg-promise;ITask;pg-promise;IBaseProtocol;Member[task,taskIf,tx,txIf].WithArity[1].Argument[0].Argument[0]", //
"pg-promise;ITask;pg-promise;IBaseProtocol;Member[taskIf].WithArity[2].Argument[0].Member[cnd].Argument[0]", //
"pg-promise;ITask;pg-promise;IBaseProtocol;Member[txIf].WithArity[2].Argument[0].Member[cnd,reusable].Argument[0]", //
"pg;Client;pg-pool;Static;Instance.TypeVar[pg-pool..0]", //
"pg;Client;pg-promise/pg-subset;pg.IClient;", //
"pg;Client;pg;ClientStatic;Instance", //
"pg;Client;pg;Events;Member[addListener,on,once,prependListener,prependOnceListener].Argument[1].Argument[1]", //
"pg;ClientBase;pg;Client;", //
"pg;ClientBase;pg;PoolClient;", //
"pg;ClientStatic;pg;;Member[Client]", //
"pg;Connection;pg-promise/pg-subset;pg.IConnection;", //
"pg;Events;pg;Events;Member[addListener,on,once,prependListener,prependOnceListener].ReturnValue", //
"pg;Events;pg;EventsStatic;Instance", //
"pg;EventsStatic;pg;;Member[Events]", //
"pg;Pool;pg-pool;;", //
"pg;Pool;pg-promise/pg-subset;pg.IPool;", //
"pg;Pool;pg;Pool;Member[addListener,on,once,prependListener,prependOnceListener].ReturnValue", //
"pg;Pool;pg;PoolStatic;Instance", //
"pg;PoolClient;pg-pool;;Member[addListener,on,once,prependListener,prependOnceListener].WithArity[2].WithStringArgument[0=acquire,0=connect,0=remove].Argument[1].Argument[0]", //
"pg;PoolClient;pg-pool;;Member[addListener,on,once,prependListener,prependOnceListener].WithArity[2].WithStringArgument[0=error].Argument[1].Argument[1]", //
"pg;PoolClient;pg-pool;;Member[connect].Argument[0].Argument[1]", //
"pg;PoolClient;pg-pool;;Member[connect].WithArity[0].ReturnValue.Awaited", //
"pg;PoolClient;pg;Pool;Member[addListener,on,once,prependListener,prependOnceListener].WithArity[2].WithStringArgument[0=acquire,0=connect,0=remove].Argument[1].Argument[0]", //
"pg;PoolClient;pg;Pool;Member[addListener,on,once,prependListener,prependOnceListener].WithArity[2].WithStringArgument[0=error].Argument[1].Argument[1]", //
"pg;PoolClient;pg;Pool;Member[connect].Argument[0].Argument[1]", //
"pg;PoolClient;pg;Pool;Member[connect].WithArity[0].ReturnValue.Awaited", //
"pg;PoolStatic;pg;;Member[Pool]", //
]
}
}
private class Summaries extends ModelInput::SummaryModelCsv {
override predicate row(string row) {
row =
[
"global;NodeJS.EventEmitter;;;Member[addListener,off,on,once,prependListener,prependOnceListener,removeAllListeners,removeListener,setMaxListeners].ReturnValue;type", //
"pg-pool;;;;Member[addListener,on,once,prependListener,prependOnceListener].ReturnValue;type", //
"pg;ClientBase;;;Member[addListener,on,once,prependListener,prependOnceListener].ReturnValue;type", //
"pg;Events;;;Member[addListener,on,once,prependListener,prependOnceListener].ReturnValue;type", //
"pg;Pool;;;Member[addListener,on,once,prependListener,prependOnceListener].ReturnValue;type", //
]
}
}
private class TypeVariables extends ModelInput::TypeVariableModelCsv {
override predicate row(string row) {
row =
[
"pg-pool..0;Member[Client].TypeVar[pg-pool.ClientLikeCtr.0]", //
"pg-pool..0;Member[addListener,on,once,prependListener,prependOnceListener].WithArity[2].WithStringArgument[0=acquire,0=connect,0=remove].Argument[1].Argument[0]", //
"pg-pool..0;Member[addListener,on,once,prependListener,prependOnceListener].WithArity[2].WithStringArgument[0=error].Argument[1].Argument[1]", //
"pg-pool..0;Member[connect].Argument[0].Argument[1]", //
"pg-pool..0;Member[connect].WithArity[0].ReturnValue.Awaited", //
"pg-pool.ClientLikeCtr.0;Instance", //
"pg-promise.IConnected.1;Member[client]", //
"pg-promise.IConnectionOptions.0;Member[onLost].Argument[1].TypeVar[pg-promise.ILostContext.0]", //
"pg-promise.IDatabase.1;Member[$cn].TypeVar[pg-promise/pg-subset.pg.IConnectionParameters.0]", //
"pg-promise.IDatabase.1;Member[$config].TypeVar[pg-promise.ILibConfig.1]", //
"pg-promise.IDatabase.1;Member[connect].Argument[0].TypeVar[pg-promise.IConnectionOptions.0]", //
"pg-promise.IDatabase.1;Member[connect].ReturnValue.Awaited.TypeVar[pg-promise.IConnected.1]", //
"pg-promise.IEventContext.0;Member[client]", //
"pg-promise.IInitOptions.1;Member[connect,disconnect].Argument[0]", //
"pg-promise.IInitOptions.1;Member[error].Argument[1].TypeVar[pg-promise.IEventContext.0]", //
"pg-promise.IInitOptions.1;Member[extend].Argument[0].TypeVar[pg-promise.IDatabase.1]", //
"pg-promise.IInitOptions.1;Member[query,task,transact].Argument[0].TypeVar[pg-promise.IEventContext.0]", //
"pg-promise.IInitOptions.1;Member[receive].Argument[2].TypeVar[pg-promise.IEventContext.0]", //
"pg-promise.ILibConfig.1;Member[options].TypeVar[pg-promise.IInitOptions.1]", //
"pg-promise.ILibConfig.1;Member[pgp].TypeVar[pg-promise.IMain.1]", //
"pg-promise.ILostContext.0;Member[client]", //
"pg-promise/pg-promise.XPromise.0;Awaited", //
"pg-promise/pg-subset.pg.IConnectionParameters.0;Member[Client].Instance", //
]
}
}

View File

@@ -0,0 +1,138 @@
{
"packages": {
"@types/node": "18.6.5",
"@types/pg": "8.6.5",
"@types/pg-cursor": "2.7.0",
"@types/pg-pool": "2.0.3",
"pg-promise": "10.11.1"
},
"resolutions": {
"assert-options": "0.7.0",
"pg-minify": "1.6.2",
"pg-protocol": "1.5.0",
"pg-types": "2.2.0",
"postgres-array": "2.0.0",
"postgres-interval": "1.2.0",
"spex": "3.2.0"
},
"language": "javascript",
"usedTypes": {
"sources": [
"pg-cursor;",
"pg-pool;",
"pg-promise;IBaseProtocol",
"pg;Client",
"pg;ClientStatic",
"pg;Pool",
"pg;PoolClient",
"pg;PoolStatic"
]
},
"model": {
"typeDefinitions": [
"pg;Client;pg-promise/pg-subset;pg.IClient;",
"pg;Connection;pg-promise/pg-subset;pg.IConnection;",
"pg;Pool;pg-promise/pg-subset;pg.IPool;"
],
"sinks": []
},
"generatedModel": {
"//": "Autogenerated section. Manual edits in here will be lost.",
"typeDefinitions": [
"events;;pg-cursor;;",
"events;;pg-promise/pg-subset;pg.IClient;",
"events;;pg-promise/pg-subset;pg.IConnection;",
"events;;pg-promise/pg-subset;pg.IPool;",
"events;;pg;ClientBase;",
"events;;pg;Events;",
"events;;pg;Pool;",
"global;NodeJS.EventEmitter;events;;",
"pg-cursor;;pg-cursor;Static;Instance",
"pg-cursor;Static;pg-cursor;;",
"pg-pool;;pg-pool;;Member[addListener,on,once,prependListener,prependOnceListener].ReturnValue",
"pg-pool;;pg-pool;Static;Instance",
"pg-pool;Static;pg-pool;;",
"pg-promise/pg-subset;pg.IClient;pg-promise/pg-subset;;Member[Client].Instance",
"pg-promise/pg-subset;pg.IClient;pg-promise;;Argument[0].TypeVar[pg-promise.IInitOptions.1]",
"pg-promise/pg-subset;pg.IClient;pg-promise;IMain;Argument[0].TypeVar[pg-promise/pg-subset.pg.IConnectionParameters.0]",
"pg-promise/pg-subset;pg.IClient;pg-promise;IMain;ReturnValue.TypeVar[pg-promise.IDatabase.1]",
"pg-promise/pg-subset;pg.IConnection;pg-promise/pg-subset;pg.IClient;Member[connection]",
"pg-promise/pg-subset;pg.IPool;pg-promise;IDatabase;Member[$pool]",
"pg-promise;IBaseProtocol;pg-promise/typescript/pg-promise;IBaseProtocol;",
"pg-promise;IBaseProtocol;pg-promise;IConnected;",
"pg-promise;IBaseProtocol;pg-promise;IDatabase;",
"pg-promise;IBaseProtocol;pg-promise;ITask;",
"pg-promise;IConnected;pg-promise/typescript/pg-promise;IConnected;",
"pg-promise;IConnected;pg-promise;IDatabase;Member[connect].ReturnValue.Awaited",
"pg-promise;IDatabase;pg-promise/typescript/pg-promise;IDatabase;",
"pg-promise;IDatabase;pg-promise;IInitOptions;Member[extend].Argument[0]",
"pg-promise;IDatabase;pg-promise;IMain;ReturnValue",
"pg-promise;IInitOptions;pg-promise/typescript/pg-promise;IInitOptions;",
"pg-promise;IInitOptions;pg-promise;;Argument[0]",
"pg-promise;IInitOptions;pg-promise;ILibConfig;Member[options]",
"pg-promise;ILibConfig;pg-promise/typescript/pg-promise;ILibConfig;",
"pg-promise;ILibConfig;pg-promise;IDatabase;Member[$config]",
"pg-promise;IMain;pg-promise/typescript/pg-promise;IMain;",
"pg-promise;IMain;pg-promise;;ReturnValue",
"pg-promise;IMain;pg-promise;ILibConfig;Member[pgp]",
"pg-promise;ITask;pg-promise/typescript/pg-promise;ITask;",
"pg-promise;ITask;pg-promise;IBaseProtocol;Member[task,taskIf,tx,txIf].Argument[1].Argument[0]",
"pg-promise;ITask;pg-promise;IBaseProtocol;Member[task,taskIf,tx,txIf].WithArity[1].Argument[0].Argument[0]",
"pg-promise;ITask;pg-promise;IBaseProtocol;Member[taskIf].WithArity[2].Argument[0].Member[cnd].Argument[0]",
"pg-promise;ITask;pg-promise;IBaseProtocol;Member[txIf].WithArity[2].Argument[0].Member[cnd,reusable].Argument[0]",
"pg;Client;pg-pool;Static;Instance.TypeVar[pg-pool..0]",
"pg;Client;pg;ClientStatic;Instance",
"pg;Client;pg;Events;Member[addListener,on,once,prependListener,prependOnceListener].Argument[1].Argument[1]",
"pg;ClientBase;pg;Client;",
"pg;ClientBase;pg;PoolClient;",
"pg;ClientStatic;pg;;Member[Client]",
"pg;Events;pg;Events;Member[addListener,on,once,prependListener,prependOnceListener].ReturnValue",
"pg;Events;pg;EventsStatic;Instance",
"pg;EventsStatic;pg;;Member[Events]",
"pg;Pool;pg-pool;;",
"pg;Pool;pg;Pool;Member[addListener,on,once,prependListener,prependOnceListener].ReturnValue",
"pg;Pool;pg;PoolStatic;Instance",
"pg;PoolClient;pg-pool;;Member[addListener,on,once,prependListener,prependOnceListener].WithArity[2].WithStringArgument[0=acquire,0=connect,0=remove].Argument[1].Argument[0]",
"pg;PoolClient;pg-pool;;Member[addListener,on,once,prependListener,prependOnceListener].WithArity[2].WithStringArgument[0=error].Argument[1].Argument[1]",
"pg;PoolClient;pg-pool;;Member[connect].Argument[0].Argument[1]",
"pg;PoolClient;pg-pool;;Member[connect].WithArity[0].ReturnValue.Awaited",
"pg;PoolClient;pg;Pool;Member[addListener,on,once,prependListener,prependOnceListener].WithArity[2].WithStringArgument[0=acquire,0=connect,0=remove].Argument[1].Argument[0]",
"pg;PoolClient;pg;Pool;Member[addListener,on,once,prependListener,prependOnceListener].WithArity[2].WithStringArgument[0=error].Argument[1].Argument[1]",
"pg;PoolClient;pg;Pool;Member[connect].Argument[0].Argument[1]",
"pg;PoolClient;pg;Pool;Member[connect].WithArity[0].ReturnValue.Awaited",
"pg;PoolStatic;pg;;Member[Pool]"
],
"summaries": [
"global;NodeJS.EventEmitter;;;Member[addListener,off,on,once,prependListener,prependOnceListener,removeAllListeners,removeListener,setMaxListeners].ReturnValue;type",
"pg-pool;;;;Member[addListener,on,once,prependListener,prependOnceListener].ReturnValue;type",
"pg;ClientBase;;;Member[addListener,on,once,prependListener,prependOnceListener].ReturnValue;type",
"pg;Events;;;Member[addListener,on,once,prependListener,prependOnceListener].ReturnValue;type",
"pg;Pool;;;Member[addListener,on,once,prependListener,prependOnceListener].ReturnValue;type"
],
"typeVariables": [
"pg-pool..0;Member[Client].TypeVar[pg-pool.ClientLikeCtr.0]",
"pg-pool..0;Member[addListener,on,once,prependListener,prependOnceListener].WithArity[2].WithStringArgument[0=acquire,0=connect,0=remove].Argument[1].Argument[0]",
"pg-pool..0;Member[addListener,on,once,prependListener,prependOnceListener].WithArity[2].WithStringArgument[0=error].Argument[1].Argument[1]",
"pg-pool..0;Member[connect].Argument[0].Argument[1]",
"pg-pool..0;Member[connect].WithArity[0].ReturnValue.Awaited",
"pg-pool.ClientLikeCtr.0;Instance",
"pg-promise.IConnected.1;Member[client]",
"pg-promise.IConnectionOptions.0;Member[onLost].Argument[1].TypeVar[pg-promise.ILostContext.0]",
"pg-promise.IDatabase.1;Member[$cn].TypeVar[pg-promise/pg-subset.pg.IConnectionParameters.0]",
"pg-promise.IDatabase.1;Member[$config].TypeVar[pg-promise.ILibConfig.1]",
"pg-promise.IDatabase.1;Member[connect].Argument[0].TypeVar[pg-promise.IConnectionOptions.0]",
"pg-promise.IDatabase.1;Member[connect].ReturnValue.Awaited.TypeVar[pg-promise.IConnected.1]",
"pg-promise.IEventContext.0;Member[client]",
"pg-promise.IInitOptions.1;Member[connect,disconnect].Argument[0]",
"pg-promise.IInitOptions.1;Member[error].Argument[1].TypeVar[pg-promise.IEventContext.0]",
"pg-promise.IInitOptions.1;Member[extend].Argument[0].TypeVar[pg-promise.IDatabase.1]",
"pg-promise.IInitOptions.1;Member[query,task,transact].Argument[0].TypeVar[pg-promise.IEventContext.0]",
"pg-promise.IInitOptions.1;Member[receive].Argument[2].TypeVar[pg-promise.IEventContext.0]",
"pg-promise.ILibConfig.1;Member[options].TypeVar[pg-promise.IInitOptions.1]",
"pg-promise.ILibConfig.1;Member[pgp].TypeVar[pg-promise.IMain.1]",
"pg-promise.ILostContext.0;Member[client]",
"pg-promise/pg-promise.XPromise.0;Awaited",
"pg-promise/pg-subset.pg.IConnectionParameters.0;Member[Client].Instance"
]
}
}

View File

@@ -0,0 +1,297 @@
/** Generated model file */
private import javascript
private class Sinks extends ModelInput::SinkModelCsv {
override predicate row(string row) {
row =
[
"sequelize;;Argument[0..].Member[password];credentials[password]", //
"sequelize;;Argument[0..].Member[username];credentials[username]", //
"sequelize;;Argument[1];credentials[username]", //
"sequelize;;Argument[2];credentials[password]", //
"sequelize;Sequelize;Member[query].Argument[0].Member[query];sql-injection", //
"sequelize;Sequelize;Member[query].Argument[0];sql-injection", //
"sequelize;SequelizeStaticAndInstance;Member[asIs,literal].Argument[0];sql-injection", //
]
}
}
private class Types extends ModelInput::TypeModelCsv {
override predicate row(string row) {
row =
[
"sequelize-typescript/associations/foreign-key/foreign-key-meta;ForeignKeyMeta;sequelize-typescript/associations/foreign-key/foreign-key-service;;Member[getForeignKeys].ReturnValue.ArrayElement", //
"sequelize-typescript/model/model/association/association-create-options;AssociationCreateOptions;sequelize-typescript;Model;Member[$create].Argument[2]", //
"sequelize-typescript/model/shared/model-not-initialized-error;ModelNotInitializedErrorStatic;sequelize-typescript/model/shared/model-not-initialized-error;;Member[ModelNotInitializedError]", //
"sequelize-typescript;AssociationCountOptions;sequelize-typescript/model/model/association/association-count-options;AssociationCountOptions;", //
"sequelize-typescript;AssociationCountOptions;sequelize-typescript;Model;Member[$count].Argument[1]", //
"sequelize-typescript;AssociationGetOptions;sequelize-typescript/model/model/association/association-get-options;AssociationGetOptions;", //
"sequelize-typescript;AssociationGetOptions;sequelize-typescript;Model;Member[$get].Argument[1]", //
"sequelize-typescript;AssociationGetOptions;sequelize-typescript;Model;Member[$has].Argument[2]", //
"sequelize-typescript;BaseAssociation;sequelize-typescript/associations/shared/association-service;;Member[addAssociation].Argument[1]", //
"sequelize-typescript;BaseAssociation;sequelize-typescript/associations/shared/association-service;;Member[getAssociations,getAssociationsByRelation].ReturnValue.ArrayElement", //
"sequelize-typescript;BaseAssociation;sequelize-typescript/associations/shared/association-service;;Member[setAssociations].Argument[1].ArrayElement", //
"sequelize-typescript;BaseAssociation;sequelize-typescript/associations/shared/base-association;BaseAssociation;", //
"sequelize-typescript;BaseAssociation;sequelize-typescript;;Member[addAssociation].Argument[1]", //
"sequelize-typescript;BaseAssociation;sequelize-typescript;;Member[getAssociations,getAssociationsByRelation].ReturnValue.ArrayElement", //
"sequelize-typescript;BaseAssociation;sequelize-typescript;;Member[setAssociations].Argument[1].ArrayElement", //
"sequelize-typescript;BaseAssociation;sequelize-typescript;BaseAssociationStatic;Instance", //
"sequelize-typescript;BaseAssociation;sequelize-typescript;BelongsToAssociation;", //
"sequelize-typescript;BaseAssociation;sequelize-typescript;BelongsToManyAssociation;", //
"sequelize-typescript;BaseAssociation;sequelize-typescript;HasAssociation;", //
"sequelize-typescript;BaseAssociationStatic;sequelize-typescript/associations/shared/base-association;;Member[BaseAssociation]", //
"sequelize-typescript;BaseAssociationStatic;sequelize-typescript/associations/shared/base-association;BaseAssociationStatic;", //
"sequelize-typescript;BaseAssociationStatic;sequelize-typescript;;Member[BaseAssociation]", //
"sequelize-typescript;BelongsToAssociation;sequelize-typescript/associations/belongs-to/belongs-to-association;BelongsToAssociation;", //
"sequelize-typescript;BelongsToAssociation;sequelize-typescript;BelongsToAssociationStatic;Instance", //
"sequelize-typescript;BelongsToAssociationStatic;sequelize-typescript/associations/belongs-to/belongs-to-association;;Member[BelongsToAssociation]", //
"sequelize-typescript;BelongsToAssociationStatic;sequelize-typescript/associations/belongs-to/belongs-to-association;BelongsToAssociationStatic;", //
"sequelize-typescript;BelongsToAssociationStatic;sequelize-typescript;;Member[BelongsToAssociation]", //
"sequelize-typescript;BelongsToManyAssociation;sequelize-typescript/associations/belongs-to-many/belongs-to-many-association;BelongsToManyAssociation;", //
"sequelize-typescript;BelongsToManyAssociation;sequelize-typescript;BelongsToManyAssociationStatic;Instance", //
"sequelize-typescript;BelongsToManyAssociationStatic;sequelize-typescript/associations/belongs-to-many/belongs-to-many-association;;Member[BelongsToManyAssociation]", //
"sequelize-typescript;BelongsToManyAssociationStatic;sequelize-typescript/associations/belongs-to-many/belongs-to-many-association;BelongsToManyAssociationStatic;", //
"sequelize-typescript;BelongsToManyAssociationStatic;sequelize-typescript;;Member[BelongsToManyAssociation]", //
"sequelize-typescript;DefaultScopeGetter;sequelize-typescript/scopes/default-scope;;Member[DefaultScope].Argument[0]", //
"sequelize-typescript;DefaultScopeGetter;sequelize-typescript/scopes/scope-options;DefaultScopeGetter;", //
"sequelize-typescript;DefaultScopeGetter;sequelize-typescript;;Member[DefaultScope].Argument[0]", //
"sequelize-typescript;DefaultScopeGetter;sequelize-typescript;ScopeOptionsGetters;Member[getDefaultScope]", //
"sequelize-typescript;HasAssociation;sequelize-typescript/associations/has/has-association;HasAssociation;", //
"sequelize-typescript;HasAssociation;sequelize-typescript;HasAssociationStatic;Instance", //
"sequelize-typescript;HasAssociationStatic;sequelize-typescript/associations/has/has-association;;Member[HasAssociation]", //
"sequelize-typescript;HasAssociationStatic;sequelize-typescript/associations/has/has-association;HasAssociationStatic;", //
"sequelize-typescript;HasAssociationStatic;sequelize-typescript;;Member[HasAssociation]", //
"sequelize-typescript;Model;sequelize-typescript/model/model/model;Model;", //
"sequelize-typescript;Model;sequelize-typescript;Model;Member[$add,$has,$remove,$set].Argument[1]", //
"sequelize-typescript;Model;sequelize-typescript;Model;Member[$add,$has,$remove,$set].Argument[1].ArrayElement", //
"sequelize-typescript;Model;sequelize-typescript;Model;Member[$create,reload].ReturnValue.Awaited", //
"sequelize-typescript;Model;sequelize-typescript;ModelStatic~;Instance", //
"sequelize-typescript;Model;sequelize-typescript;ModelStatic~;Member[initialize].ReturnValue.TypeVar[sequelize-typescript.ModelStatic.0]", //
"sequelize-typescript;Model;sequelize-typescript;ModelType;Instance", //
"sequelize-typescript;Model;sequelize-typescript;Sequelize;Member[getRepository].Argument[0].Instance", //
"sequelize-typescript;Model;sequelize-typescript;Sequelize;Member[getRepository].ReturnValue.TypeVar[sequelize-typescript.Repository.0]", //
"sequelize-typescript;ModelClassGetter;sequelize-typescript/associations/belongs-to-many/belongs-to-many;;Member[BelongsToMany].Argument[0,1]", //
"sequelize-typescript;ModelClassGetter;sequelize-typescript/associations/belongs-to/belongs-to;;Member[BelongsTo].Argument[0]", //
"sequelize-typescript;ModelClassGetter;sequelize-typescript/associations/foreign-key/foreign-key-meta;ForeignKeyMeta;Member[relatedClassGetter]", //
"sequelize-typescript;ModelClassGetter;sequelize-typescript/associations/foreign-key/foreign-key-service;;Member[addForeignKey].Argument[1]", //
"sequelize-typescript;ModelClassGetter;sequelize-typescript/associations/foreign-key/foreign-key;;Member[ForeignKey].Argument[0]", //
"sequelize-typescript;ModelClassGetter;sequelize-typescript/associations/has/has-many;;Member[HasMany].Argument[0]", //
"sequelize-typescript;ModelClassGetter;sequelize-typescript/associations/has/has-one;;Member[HasOne].Argument[0]", //
"sequelize-typescript;ModelClassGetter;sequelize-typescript/model/shared/model-class-getter;ModelClassGetter;", //
"sequelize-typescript;ModelClassGetter;sequelize-typescript;;Member[BelongsTo,ForeignKey,HasMany,HasOne].Argument[0]", //
"sequelize-typescript;ModelClassGetter;sequelize-typescript;;Member[BelongsToMany].Argument[0,1]", //
"sequelize-typescript;ModelClassGetter;sequelize-typescript;BaseAssociationStatic;Argument[0]", //
"sequelize-typescript;ModelClassGetter;sequelize-typescript;BelongsToAssociationStatic;Argument[0]", //
"sequelize-typescript;ModelClassGetter;sequelize-typescript;BelongsToManyAssociationStatic;Argument[0]", //
"sequelize-typescript;ModelClassGetter;sequelize-typescript;HasAssociationStatic;Argument[0]", //
"sequelize-typescript;ModelStatic~;sequelize-typescript/model/model/model;;Member[Model]", //
"sequelize-typescript;ModelStatic~;sequelize-typescript/model/model/model;ModelStatic~;", //
"sequelize-typescript;ModelStatic~;sequelize-typescript/model/shared/model-not-initialized-error;ModelNotInitializedErrorStatic;Argument[0]", //
"sequelize-typescript;ModelStatic~;sequelize-typescript;;Member[Model]", //
"sequelize-typescript;ModelType;sequelize-typescript/associations/foreign-key/foreign-key-service;;Member[getForeignKeyOptions].Argument[0,1]", //
"sequelize-typescript;ModelType;sequelize-typescript/model/model/model;ModelType;", //
"sequelize-typescript;ModelType;sequelize-typescript;BaseAssociation;Member[getAssociatedClass].ReturnValue", //
"sequelize-typescript;ModelType;sequelize-typescript;BaseAssociation;Member[getSequelizeOptions].Argument[0]", //
"sequelize-typescript;ModelType;sequelize-typescript;BelongsToAssociation;Member[getSequelizeOptions].Argument[0]", //
"sequelize-typescript;ModelType;sequelize-typescript;BelongsToManyAssociation;Member[getSequelizeOptions].Argument[0]", //
"sequelize-typescript;ModelType;sequelize-typescript;HasAssociation;Member[getSequelizeOptions].Argument[0]", //
"sequelize-typescript;ModelType;sequelize-typescript;ModelClassGetter;ReturnValue", //
"sequelize-typescript;ModelType;sequelize-typescript;Sequelize;Member[model].Argument[0]", //
"sequelize-typescript;ScopeOptionsGetters;sequelize-typescript/scopes/scope-options;ScopeOptionsGetters;", //
"sequelize-typescript;ScopeOptionsGetters;sequelize-typescript/scopes/scope-service;;Member[addScopeOptionsGetter,setScopeOptionsGetters].Argument[1]", //
"sequelize-typescript;ScopeOptionsGetters;sequelize-typescript/scopes/scope-service;;Member[getScopeOptionsGetters].ReturnValue", //
"sequelize-typescript;ScopeOptionsGetters;sequelize-typescript;;Member[addScopeOptionsGetter,setScopeOptionsGetters].Argument[1]", //
"sequelize-typescript;ScopeOptionsGetters;sequelize-typescript;;Member[getScopeOptionsGetters].ReturnValue", //
"sequelize-typescript;ScopesOptions;sequelize-typescript/scopes/scope-options;ScopesOptions;", //
"sequelize-typescript;ScopesOptions;sequelize-typescript/scopes/scope-service;;Member[resolveScope].Argument[2]", //
"sequelize-typescript;ScopesOptions;sequelize-typescript;;Member[resolveScope].Argument[2]", //
"sequelize-typescript;ScopesOptions;sequelize-typescript;ScopesOptionsGetter;ReturnValue.AnyMember", //
"sequelize-typescript;ScopesOptionsGetter;sequelize-typescript/scopes/scope-options;ScopesOptionsGetter;", //
"sequelize-typescript;ScopesOptionsGetter;sequelize-typescript/scopes/scopes;;Member[Scopes].Argument[0]", //
"sequelize-typescript;ScopesOptionsGetter;sequelize-typescript;;Member[Scopes].Argument[0]", //
"sequelize-typescript;ScopesOptionsGetter;sequelize-typescript;ScopeOptionsGetters;Member[getScopes]", //
"sequelize-typescript;Sequelize;sequelize-typescript/sequelize/sequelize/sequelize;Sequelize;", //
"sequelize-typescript;Sequelize;sequelize-typescript;BaseAssociation;Member[getSequelizeOptions].Argument[1]", //
"sequelize-typescript;Sequelize;sequelize-typescript;BelongsToManyAssociation;Member[getSequelizeOptions].Argument[1]", //
"sequelize-typescript;Sequelize;sequelize-typescript;SequelizeStatic;Instance", //
"sequelize-typescript;SequelizeOptions;sequelize-typescript/sequelize/sequelize/sequelize-options;SequelizeOptions;", //
"sequelize-typescript;SequelizeOptions;sequelize-typescript/sequelize/sequelize/sequelize-service;;Member[prepareArgs].ReturnValue.Member[options]", //
"sequelize-typescript;SequelizeOptions;sequelize-typescript/sequelize/sequelize/sequelize-service;;Member[prepareOptions].Argument[0]", //
"sequelize-typescript;SequelizeOptions;sequelize-typescript/sequelize/sequelize/sequelize-service;;Member[prepareOptions].ReturnValue", //
"sequelize-typescript;SequelizeOptions;sequelize-typescript;;Member[prepareArgs].ReturnValue.Member[options]", //
"sequelize-typescript;SequelizeOptions;sequelize-typescript;;Member[prepareOptions].Argument[0]", //
"sequelize-typescript;SequelizeOptions;sequelize-typescript;;Member[prepareOptions].ReturnValue", //
"sequelize-typescript;SequelizeOptions;sequelize-typescript;Sequelize;Member[options]", //
"sequelize-typescript;SequelizeOptions;sequelize-typescript;SequelizeStatic;Argument[3]", //
"sequelize-typescript;SequelizeOptions;sequelize-typescript;SequelizeStatic;WithArity[0].Argument[0]", //
"sequelize-typescript;SequelizeOptions;sequelize-typescript;SequelizeStatic;WithArity[1].Argument[0,1]", //
"sequelize-typescript;SequelizeOptions;sequelize-typescript;SequelizeStatic;WithArity[2].Argument[1,2]", //
"sequelize-typescript;SequelizeOptions;sequelize-typescript;SequelizeStatic;WithArity[3].Argument[2]", //
"sequelize-typescript;SequelizeStatic;sequelize-typescript/sequelize/sequelize/sequelize;;Member[Sequelize]", //
"sequelize-typescript;SequelizeStatic;sequelize-typescript/sequelize/sequelize/sequelize;SequelizeStatic;", //
"sequelize-typescript;SequelizeStatic;sequelize-typescript;;Member[Sequelize]", //
"sequelize;AnyFindOptions;sequelize;BelongsToManyAddAssociationMixin;Argument[1]", //
"sequelize;AnyFindOptions;sequelize;BelongsToManyAddAssociationsMixin;Argument[1]", //
"sequelize;AnyFindOptions;sequelize;BelongsToManySetAssociationsMixin;Argument[1]", //
"sequelize;AnyFindOptions;sequelize;DefineOptions;Member[defaultScope]", //
"sequelize;AnyFindOptions;sequelize;DefineScopeOptions;AnyMember", //
"sequelize;AnyFindOptions;sequelize;HasManySetAssociationsMixin;Argument[1]", //
"sequelize;AnyFindOptions;sequelize;Instance;Member[reload].Argument[0]", //
"sequelize;AnyFindOptions;sequelize;Model;Member[addScope].Argument[1]", //
"sequelize;AssociationOptionsBelongsToMany;sequelize;Associations;Member[belongsToMany].Argument[1]", //
"sequelize;Associations;sequelize;Model;", //
"sequelize;Associations;sequelize;SequelizeStaticAndInstance.Model;", //
"sequelize;BuildOptions;sequelize-typescript;ModelStatic~;Argument[1]", //
"sequelize;BuildOptions;sequelize;CreateOptions;", //
"sequelize;BuildOptions;sequelize;Model;Member[build,bulkBuild].Argument[1]", //
"sequelize;CountOptions;sequelize;Model;Member[count].Argument[0]", //
"sequelize;CreateOptions;sequelize-typescript/model/model/association/association-create-options;AssociationCreateOptions;", //
"sequelize;CreateOptions;sequelize;BelongsToCreateAssociationMixin;Argument[1]", //
"sequelize;CreateOptions;sequelize;BelongsToManyCreateAssociationMixin;Argument[1]", //
"sequelize;CreateOptions;sequelize;HasManyCreateAssociationMixin;Argument[1]", //
"sequelize;CreateOptions;sequelize;HasOneCreateAssociationMixin;Argument[1]", //
"sequelize;CreateOptions;sequelize;Model;Member[create].Argument[1]", //
"sequelize;DefineAttributeColumnOptions;sequelize;DefineAttributes;AnyMember", //
"sequelize;DefineAttributeColumnOptions;sequelize;QueryInterface;Member[addColumn,changeColumn].Argument[2]", //
"sequelize;DefineAttributeColumnReferencesOptions;sequelize;DefineAttributeColumnOptions;Member[references]", //
"sequelize;DefineAttributes;sequelize;Hooks;Member[beforeDefine].Argument[1].Argument[0]", //
"sequelize;DefineAttributes;sequelize;Hooks;Member[beforeDefine].WithArity[1].Argument[0].Argument[0]", //
"sequelize;DefineAttributes;sequelize;QueryInterface;Member[createTable].Argument[1]", //
"sequelize;DefineOptions;sequelize;Options;Member[define]", //
"sequelize;DefineOptions;sequelize;Sequelize;Member[define].Argument[2]", //
"sequelize;DefineScopeOptions;sequelize;DefineOptions;Member[scopes]", //
"sequelize;FindCreateFindOptions;sequelize;Model;Member[findCreateFind].Argument[0]", //
"sequelize;FindOptions;sequelize-typescript;AssociationCountOptions;", //
"sequelize;FindOptions;sequelize-typescript;AssociationGetOptions;", //
"sequelize;FindOptions;sequelize-typescript;DefaultScopeGetter;ReturnValue", //
"sequelize;FindOptions;sequelize-typescript;Model;Member[reload].Argument[0]", //
"sequelize;FindOptions;sequelize-typescript;ScopesOptions;", //
"sequelize;FindOptions;sequelize-typescript;ScopesOptions;ReturnValue", //
"sequelize;FindOptions;sequelize;AnyFindOptions;", //
"sequelize;FindOptions;sequelize;FindCreateFindOptions;", //
"sequelize;FindOptions;sequelize;FindOrInitializeOptions;", //
"sequelize;FindOptions;sequelize;Model;Member[all,find,findAll,findAndCount,findAndCountAll,findOne].Argument[0]", //
"sequelize;FindOptionsOrderArray;sequelize;FindOptions;Member[order]", //
"sequelize;FindOptionsOrderArray;sequelize;FindOptions;Member[order].ArrayElement", //
"sequelize;FindOrInitializeOptions;sequelize;Model;Member[findOrBuild,findOrCreate,findOrInitialize].Argument[0]", //
"sequelize;HasManyGetAssociationsMixinOptions;sequelize;HasManyGetAssociationsMixin;Argument[0]", //
"sequelize;HasManyGetAssociationsMixinOptions;sequelize;HasManyHasAssociationMixin;Argument[1]", //
"sequelize;HasManyGetAssociationsMixinOptions;sequelize;HasManyHasAssociationsMixin;Argument[1]", //
"sequelize;Hooks;sequelize;Hooks;Member[addHook,hook,removeHook].ReturnValue", //
"sequelize;Hooks;sequelize;Model;", //
"sequelize;Hooks;sequelize;Sequelize;", //
"sequelize;Hooks;sequelize;SequelizeStaticAndInstance.Model;", //
"sequelize;IncludeAssociation;sequelize;Associations;Member[belongsTo,belongsToMany,hasMany,hasOne].ReturnValue", //
"sequelize;IncludeAssociation;sequelize;IncludeOptions;Member[association]", //
"sequelize;IncludeOptions;sequelize;BuildOptions;Member[include].ArrayElement", //
"sequelize;IncludeOptions;sequelize;CountOptions;Member[include]", //
"sequelize;IncludeOptions;sequelize;CountOptions;Member[include].ArrayElement", //
"sequelize;IncludeOptions;sequelize;FindOptions;Member[include]", //
"sequelize;IncludeOptions;sequelize;FindOptions;Member[include].ArrayElement", //
"sequelize;IncludeOptions;sequelize;HasManyGetAssociationsMixinOptions;Member[include]", //
"sequelize;IncludeOptions;sequelize;IncludeOptions;Member[include]", //
"sequelize;IncludeOptions;sequelize;IncludeOptions;Member[include].ArrayElement", //
"sequelize;Instance;sequelize;Instance;Member[decrement,increment,reload,save,update,updateAttributes].ReturnValue.Awaited", //
"sequelize;Instance;sequelize;Instance;Member[equalsOneOf].Argument[0].ArrayElement", //
"sequelize;Instance;sequelize;Instance;Member[equals].Argument[0]", //
"sequelize;Instance;sequelize;Instance;Member[set,setAttributes].ReturnValue", //
"sequelize;Instance;sequelize;Model;Member[Instance,build].ReturnValue", //
"sequelize;Instance;sequelize;Model;Member[all,bulkCreate,findAll].ReturnValue.Awaited.ArrayElement", //
"sequelize;Instance;sequelize;Model;Member[bulkBuild].ReturnValue.ArrayElement", //
"sequelize;Instance;sequelize;Model;Member[create,find,findById,findByPk,findByPrimary,findOne].ReturnValue.Awaited", //
"sequelize;Instance;sequelize;Model;Member[findAndCount,findAndCountAll].ReturnValue.Awaited.Member[rows].ArrayElement", //
"sequelize;Instance;sequelize;QueryInterface;Member[delete,increment,insert,update].Argument[0]", //
"sequelize;Instance;sequelize;QueryOptions;Member[instance]", //
"sequelize;Instance;sequelize;SequelizeStaticAndInstance;Member[Instance]", //
"sequelize;Model;sequelize;AssociationOptionsBelongsToMany;Member[through]", //
"sequelize;Model;sequelize;Associations;Member[belongsTo,belongsToMany,hasMany,hasOne].Argument[0]", //
"sequelize;Model;sequelize;BuildOptions;Member[include].ArrayElement", //
"sequelize;Model;sequelize;CountOptions;Member[include]", //
"sequelize;Model;sequelize;CountOptions;Member[include].ArrayElement", //
"sequelize;Model;sequelize;DefineAttributeColumnReferencesOptions;Member[model]", //
"sequelize;Model;sequelize;FindOptions;Member[include]", //
"sequelize;Model;sequelize;FindOptions;Member[include].ArrayElement", //
"sequelize;Model;sequelize;FindOptions;Member[lock].Member[of]", //
"sequelize;Model;sequelize;FindOptionsOrderArray;ArrayElement", //
"sequelize;Model;sequelize;FindOptionsOrderArray;ArrayElement.Member[model]", //
"sequelize;Model;sequelize;Hooks;Member[afterDefine].Argument[1].Argument[0]", //
"sequelize;Model;sequelize;Hooks;Member[afterDefine].WithArity[1].Argument[0].Argument[0]", //
"sequelize;Model;sequelize;IncludeAssociation;Member[source,target]", //
"sequelize;Model;sequelize;IncludeOptions;Member[include,model]", //
"sequelize;Model;sequelize;IncludeOptions;Member[include].ArrayElement", //
"sequelize;Model;sequelize;Instance;Member[Model]", //
"sequelize;Model;sequelize;Model;Member[schema,scope,unscoped].ReturnValue", //
"sequelize;Model;sequelize;Model;Member[sync].ReturnValue.Awaited", //
"sequelize;Model;sequelize;Models;AnyMember", //
"sequelize;Model;sequelize;ModelsHashInterface;AnyMember", //
"sequelize;Model;sequelize;QueryInterface;Member[bulkDelete,rawSelect,upsert].Argument[3]", //
"sequelize;Model;sequelize;QueryInterface;Member[select].Argument[0]", //
"sequelize;Model;sequelize;QueryOptions;Member[model]", //
"sequelize;Model;sequelize;Sequelize;Member[define,import,model].ReturnValue", //
"sequelize;Model;sequelize;Sequelize;Member[import].Argument[1].ReturnValue", //
"sequelize;Model;sequelize;SequelizeStaticAndInstance;Member[Model]", //
"sequelize;Model;sequelize;ThroughOptions;Member[model]", //
"sequelize;Model;sequelize;Utils;Member[mapOptionFieldNames].Argument[1]", //
"sequelize;Model;sequelize;Utils;Member[mapValueFieldNames].Argument[2]", //
"sequelize;Models;sequelize;Model;Member[associate].Argument[0]", //
"sequelize;ModelsHashInterface;sequelize;Sequelize;Member[models]", //
"sequelize;Options;sequelize-typescript;SequelizeOptions;", //
"sequelize;Options;sequelize;Sequelize;Member[options]", //
"sequelize;Options;sequelize;SequelizeStatic;Argument[3]", //
"sequelize;Options;sequelize;SequelizeStatic;WithArity[1].Argument[0,1]", //
"sequelize;Options;sequelize;SequelizeStatic;WithArity[2].Argument[1,2]", //
"sequelize;Options;sequelize;SequelizeStatic;WithArity[3].Argument[2]", //
"sequelize;QueryInterface;sequelize;Sequelize;Member[getQueryInterface].ReturnValue", //
"sequelize;QueryOptions;sequelize;Options;Member[query]", //
"sequelize;QueryOptions;sequelize;QueryInterface;Member[bulkDelete,bulkInsert,createTable,select,setAutocommit,setIsolationLevel].Argument[2]", //
"sequelize;QueryOptions;sequelize;QueryInterface;Member[bulkUpdate,delete,insert].Argument[3]", //
"sequelize;QueryOptions;sequelize;QueryInterface;Member[commitTransaction,deferConstraints,dropTable,rawSelect,rollbackTransaction,showIndex,startTransaction].Argument[1]", //
"sequelize;QueryOptions;sequelize;QueryInterface;Member[createFunction].Argument[5]", //
"sequelize;QueryOptions;sequelize;QueryInterface;Member[dropAllEnums,dropAllTables,showAllSchemas,showAllTables].Argument[0]", //
"sequelize;QueryOptions;sequelize;QueryInterface;Member[increment,update,upsert].Argument[4]", //
"sequelize;QueryOptions;sequelize;Sequelize;Member[authenticate,validate].Argument[0]", //
"sequelize;QueryOptions;sequelize;Sequelize;Member[query].Argument[1]", //
"sequelize;Sequelize;sequelize-typescript;Sequelize;", //
"sequelize;Sequelize;sequelize;Hooks;Member[afterInit].Argument[1].Argument[0]", //
"sequelize;Sequelize;sequelize;Hooks;Member[afterInit].WithArity[1].Argument[0].Argument[0]", //
"sequelize;Sequelize;sequelize;Instance;Member[sequelize]", //
"sequelize;Sequelize;sequelize;QueryInterface;Member[sequelize]", //
"sequelize;Sequelize;sequelize;Sequelize;Member[import].Argument[1].Argument[0]", //
"sequelize;Sequelize;sequelize;SequelizeStatic;Instance", //
"sequelize;Sequelize;sequelize;SequelizeStatic;Member[useCLS].ReturnValue", //
"sequelize;SequelizeStatic;sequelize-typescript;Sequelize;", //
"sequelize;SequelizeStatic;sequelize;;", //
"sequelize;SequelizeStatic;sequelize;Sequelize;Member[Sequelize]", //
"sequelize;SequelizeStatic;sequelize;SequelizeStatic;Member[Sequelize,default]", //
"sequelize;SequelizeStaticAndInstance.Model;sequelize-typescript;Model;", //
"sequelize;SequelizeStaticAndInstance;sequelize;Sequelize;", //
"sequelize;SequelizeStaticAndInstance;sequelize;SequelizeStatic;", //
"sequelize;ThroughOptions;sequelize;AssociationOptionsBelongsToMany;Member[through]", //
"sequelize;Utils;sequelize;SequelizeStaticAndInstance;Member[Utils]", //
]
}
}
private class Summaries extends ModelInput::SummaryModelCsv {
override predicate row(string row) {
row =
[
"sequelize-typescript;Model;;;Member[reload].ReturnValue.Awaited;type", //
"sequelize;Instance;;;Member[decrement,increment,reload,save,update,updateAttributes].ReturnValue.Awaited;type", //
"sequelize;Instance;;;Member[set,setAttributes].ReturnValue;type", //
"sequelize;Model;;;Member[schema,scope,unscoped].ReturnValue;type", //
"sequelize;Model;;;Member[sync].ReturnValue.Awaited;type", //
]
}
}
private class TypeVariables extends ModelInput::TypeVariableModelCsv {
override predicate row(string row) {
row =
[
"sequelize-typescript.ModelStatic.0;Instance", //
"sequelize-typescript.Repository.0;Instance", //
]
}
}

View File

@@ -0,0 +1,294 @@
{
"packages": {
"@types/sequelize": "4.28.13",
"sequelize-typescript": "2.1.3"
},
"resolutions": {
"@types/bluebird": "3.5.36",
"@types/continuation-local-storage": "3.2.4",
"@types/lodash": "4.14.182",
"@types/node": "17.0.35",
"@types/validator": "13.7.2"
},
"language": "javascript",
"replaceTypeParameters": [
"sequelize;Model;TInstance;sequelize;Instance"
],
"model": {
"sinks": [
"sequelize;;Argument[0..].Member[password];credentials[password]",
"sequelize;;Argument[0..].Member[username];credentials[username]",
"sequelize;;Argument[1];credentials[username]",
"sequelize;;Argument[2];credentials[password]",
"sequelize;Sequelize;Member[query].Argument[0].Member[query];sql-injection",
"sequelize;Sequelize;Member[query].Argument[0];sql-injection",
"sequelize;SequelizeStaticAndInstance;Member[asIs,literal].Argument[0];sql-injection"
],
"typeDefinitions": [
"sequelize;Sequelize;sequelize-typescript;Sequelize;"
]
},
"generatedModel": {
"//": "Autogenerated section. Manual edits in here will be lost.",
"typeDefinitions": [
"sequelize-typescript/associations/foreign-key/foreign-key-meta;ForeignKeyMeta;sequelize-typescript/associations/foreign-key/foreign-key-service;;Member[getForeignKeys].ReturnValue.ArrayElement",
"sequelize-typescript/model/model/association/association-create-options;AssociationCreateOptions;sequelize-typescript;Model;Member[$create].Argument[2]",
"sequelize-typescript/model/shared/model-not-initialized-error;ModelNotInitializedErrorStatic;sequelize-typescript/model/shared/model-not-initialized-error;;Member[ModelNotInitializedError]",
"sequelize-typescript;AssociationCountOptions;sequelize-typescript/model/model/association/association-count-options;AssociationCountOptions;",
"sequelize-typescript;AssociationCountOptions;sequelize-typescript;Model;Member[$count].Argument[1]",
"sequelize-typescript;AssociationGetOptions;sequelize-typescript/model/model/association/association-get-options;AssociationGetOptions;",
"sequelize-typescript;AssociationGetOptions;sequelize-typescript;Model;Member[$get].Argument[1]",
"sequelize-typescript;AssociationGetOptions;sequelize-typescript;Model;Member[$has].Argument[2]",
"sequelize-typescript;BaseAssociation;sequelize-typescript/associations/shared/association-service;;Member[addAssociation].Argument[1]",
"sequelize-typescript;BaseAssociation;sequelize-typescript/associations/shared/association-service;;Member[getAssociations,getAssociationsByRelation].ReturnValue.ArrayElement",
"sequelize-typescript;BaseAssociation;sequelize-typescript/associations/shared/association-service;;Member[setAssociations].Argument[1].ArrayElement",
"sequelize-typescript;BaseAssociation;sequelize-typescript/associations/shared/base-association;BaseAssociation;",
"sequelize-typescript;BaseAssociation;sequelize-typescript;;Member[addAssociation].Argument[1]",
"sequelize-typescript;BaseAssociation;sequelize-typescript;;Member[getAssociations,getAssociationsByRelation].ReturnValue.ArrayElement",
"sequelize-typescript;BaseAssociation;sequelize-typescript;;Member[setAssociations].Argument[1].ArrayElement",
"sequelize-typescript;BaseAssociation;sequelize-typescript;BaseAssociationStatic;Instance",
"sequelize-typescript;BaseAssociation;sequelize-typescript;BelongsToAssociation;",
"sequelize-typescript;BaseAssociation;sequelize-typescript;BelongsToManyAssociation;",
"sequelize-typescript;BaseAssociation;sequelize-typescript;HasAssociation;",
"sequelize-typescript;BaseAssociationStatic;sequelize-typescript/associations/shared/base-association;;Member[BaseAssociation]",
"sequelize-typescript;BaseAssociationStatic;sequelize-typescript/associations/shared/base-association;BaseAssociationStatic;",
"sequelize-typescript;BaseAssociationStatic;sequelize-typescript;;Member[BaseAssociation]",
"sequelize-typescript;BelongsToAssociation;sequelize-typescript/associations/belongs-to/belongs-to-association;BelongsToAssociation;",
"sequelize-typescript;BelongsToAssociation;sequelize-typescript;BelongsToAssociationStatic;Instance",
"sequelize-typescript;BelongsToAssociationStatic;sequelize-typescript/associations/belongs-to/belongs-to-association;;Member[BelongsToAssociation]",
"sequelize-typescript;BelongsToAssociationStatic;sequelize-typescript/associations/belongs-to/belongs-to-association;BelongsToAssociationStatic;",
"sequelize-typescript;BelongsToAssociationStatic;sequelize-typescript;;Member[BelongsToAssociation]",
"sequelize-typescript;BelongsToManyAssociation;sequelize-typescript/associations/belongs-to-many/belongs-to-many-association;BelongsToManyAssociation;",
"sequelize-typescript;BelongsToManyAssociation;sequelize-typescript;BelongsToManyAssociationStatic;Instance",
"sequelize-typescript;BelongsToManyAssociationStatic;sequelize-typescript/associations/belongs-to-many/belongs-to-many-association;;Member[BelongsToManyAssociation]",
"sequelize-typescript;BelongsToManyAssociationStatic;sequelize-typescript/associations/belongs-to-many/belongs-to-many-association;BelongsToManyAssociationStatic;",
"sequelize-typescript;BelongsToManyAssociationStatic;sequelize-typescript;;Member[BelongsToManyAssociation]",
"sequelize-typescript;DefaultScopeGetter;sequelize-typescript/scopes/default-scope;;Member[DefaultScope].Argument[0]",
"sequelize-typescript;DefaultScopeGetter;sequelize-typescript/scopes/scope-options;DefaultScopeGetter;",
"sequelize-typescript;DefaultScopeGetter;sequelize-typescript;;Member[DefaultScope].Argument[0]",
"sequelize-typescript;DefaultScopeGetter;sequelize-typescript;ScopeOptionsGetters;Member[getDefaultScope]",
"sequelize-typescript;HasAssociation;sequelize-typescript/associations/has/has-association;HasAssociation;",
"sequelize-typescript;HasAssociation;sequelize-typescript;HasAssociationStatic;Instance",
"sequelize-typescript;HasAssociationStatic;sequelize-typescript/associations/has/has-association;;Member[HasAssociation]",
"sequelize-typescript;HasAssociationStatic;sequelize-typescript/associations/has/has-association;HasAssociationStatic;",
"sequelize-typescript;HasAssociationStatic;sequelize-typescript;;Member[HasAssociation]",
"sequelize-typescript;Model;sequelize-typescript/model/model/model;Model;",
"sequelize-typescript;Model;sequelize-typescript;Model;Member[$add,$has,$remove,$set].Argument[1]",
"sequelize-typescript;Model;sequelize-typescript;Model;Member[$add,$has,$remove,$set].Argument[1].ArrayElement",
"sequelize-typescript;Model;sequelize-typescript;Model;Member[$create,reload].ReturnValue.Awaited",
"sequelize-typescript;Model;sequelize-typescript;ModelStatic~;Instance",
"sequelize-typescript;Model;sequelize-typescript;ModelStatic~;Member[initialize].ReturnValue.TypeVar[sequelize-typescript.ModelStatic.0]",
"sequelize-typescript;Model;sequelize-typescript;ModelType;Instance",
"sequelize-typescript;Model;sequelize-typescript;Sequelize;Member[getRepository].Argument[0].Instance",
"sequelize-typescript;Model;sequelize-typescript;Sequelize;Member[getRepository].ReturnValue.TypeVar[sequelize-typescript.Repository.0]",
"sequelize-typescript;ModelClassGetter;sequelize-typescript/associations/belongs-to-many/belongs-to-many;;Member[BelongsToMany].Argument[0,1]",
"sequelize-typescript;ModelClassGetter;sequelize-typescript/associations/belongs-to/belongs-to;;Member[BelongsTo].Argument[0]",
"sequelize-typescript;ModelClassGetter;sequelize-typescript/associations/foreign-key/foreign-key-meta;ForeignKeyMeta;Member[relatedClassGetter]",
"sequelize-typescript;ModelClassGetter;sequelize-typescript/associations/foreign-key/foreign-key-service;;Member[addForeignKey].Argument[1]",
"sequelize-typescript;ModelClassGetter;sequelize-typescript/associations/foreign-key/foreign-key;;Member[ForeignKey].Argument[0]",
"sequelize-typescript;ModelClassGetter;sequelize-typescript/associations/has/has-many;;Member[HasMany].Argument[0]",
"sequelize-typescript;ModelClassGetter;sequelize-typescript/associations/has/has-one;;Member[HasOne].Argument[0]",
"sequelize-typescript;ModelClassGetter;sequelize-typescript/model/shared/model-class-getter;ModelClassGetter;",
"sequelize-typescript;ModelClassGetter;sequelize-typescript;;Member[BelongsTo,ForeignKey,HasMany,HasOne].Argument[0]",
"sequelize-typescript;ModelClassGetter;sequelize-typescript;;Member[BelongsToMany].Argument[0,1]",
"sequelize-typescript;ModelClassGetter;sequelize-typescript;BaseAssociationStatic;Argument[0]",
"sequelize-typescript;ModelClassGetter;sequelize-typescript;BelongsToAssociationStatic;Argument[0]",
"sequelize-typescript;ModelClassGetter;sequelize-typescript;BelongsToManyAssociationStatic;Argument[0]",
"sequelize-typescript;ModelClassGetter;sequelize-typescript;HasAssociationStatic;Argument[0]",
"sequelize-typescript;ModelStatic~;sequelize-typescript/model/model/model;;Member[Model]",
"sequelize-typescript;ModelStatic~;sequelize-typescript/model/model/model;ModelStatic~;",
"sequelize-typescript;ModelStatic~;sequelize-typescript/model/shared/model-not-initialized-error;ModelNotInitializedErrorStatic;Argument[0]",
"sequelize-typescript;ModelStatic~;sequelize-typescript;;Member[Model]",
"sequelize-typescript;ModelType;sequelize-typescript/associations/foreign-key/foreign-key-service;;Member[getForeignKeyOptions].Argument[0,1]",
"sequelize-typescript;ModelType;sequelize-typescript/model/model/model;ModelType;",
"sequelize-typescript;ModelType;sequelize-typescript;BaseAssociation;Member[getAssociatedClass].ReturnValue",
"sequelize-typescript;ModelType;sequelize-typescript;BaseAssociation;Member[getSequelizeOptions].Argument[0]",
"sequelize-typescript;ModelType;sequelize-typescript;BelongsToAssociation;Member[getSequelizeOptions].Argument[0]",
"sequelize-typescript;ModelType;sequelize-typescript;BelongsToManyAssociation;Member[getSequelizeOptions].Argument[0]",
"sequelize-typescript;ModelType;sequelize-typescript;HasAssociation;Member[getSequelizeOptions].Argument[0]",
"sequelize-typescript;ModelType;sequelize-typescript;ModelClassGetter;ReturnValue",
"sequelize-typescript;ModelType;sequelize-typescript;Sequelize;Member[model].Argument[0]",
"sequelize-typescript;ScopeOptionsGetters;sequelize-typescript/scopes/scope-options;ScopeOptionsGetters;",
"sequelize-typescript;ScopeOptionsGetters;sequelize-typescript/scopes/scope-service;;Member[addScopeOptionsGetter,setScopeOptionsGetters].Argument[1]",
"sequelize-typescript;ScopeOptionsGetters;sequelize-typescript/scopes/scope-service;;Member[getScopeOptionsGetters].ReturnValue",
"sequelize-typescript;ScopeOptionsGetters;sequelize-typescript;;Member[addScopeOptionsGetter,setScopeOptionsGetters].Argument[1]",
"sequelize-typescript;ScopeOptionsGetters;sequelize-typescript;;Member[getScopeOptionsGetters].ReturnValue",
"sequelize-typescript;ScopesOptions;sequelize-typescript/scopes/scope-options;ScopesOptions;",
"sequelize-typescript;ScopesOptions;sequelize-typescript/scopes/scope-service;;Member[resolveScope].Argument[2]",
"sequelize-typescript;ScopesOptions;sequelize-typescript;;Member[resolveScope].Argument[2]",
"sequelize-typescript;ScopesOptions;sequelize-typescript;ScopesOptionsGetter;ReturnValue.AnyMember",
"sequelize-typescript;ScopesOptionsGetter;sequelize-typescript/scopes/scope-options;ScopesOptionsGetter;",
"sequelize-typescript;ScopesOptionsGetter;sequelize-typescript/scopes/scopes;;Member[Scopes].Argument[0]",
"sequelize-typescript;ScopesOptionsGetter;sequelize-typescript;;Member[Scopes].Argument[0]",
"sequelize-typescript;ScopesOptionsGetter;sequelize-typescript;ScopeOptionsGetters;Member[getScopes]",
"sequelize-typescript;Sequelize;sequelize-typescript/sequelize/sequelize/sequelize;Sequelize;",
"sequelize-typescript;Sequelize;sequelize-typescript;BaseAssociation;Member[getSequelizeOptions].Argument[1]",
"sequelize-typescript;Sequelize;sequelize-typescript;BelongsToManyAssociation;Member[getSequelizeOptions].Argument[1]",
"sequelize-typescript;Sequelize;sequelize-typescript;SequelizeStatic;Instance",
"sequelize-typescript;SequelizeOptions;sequelize-typescript/sequelize/sequelize/sequelize-options;SequelizeOptions;",
"sequelize-typescript;SequelizeOptions;sequelize-typescript/sequelize/sequelize/sequelize-service;;Member[prepareArgs].ReturnValue.Member[options]",
"sequelize-typescript;SequelizeOptions;sequelize-typescript/sequelize/sequelize/sequelize-service;;Member[prepareOptions].Argument[0]",
"sequelize-typescript;SequelizeOptions;sequelize-typescript/sequelize/sequelize/sequelize-service;;Member[prepareOptions].ReturnValue",
"sequelize-typescript;SequelizeOptions;sequelize-typescript;;Member[prepareArgs].ReturnValue.Member[options]",
"sequelize-typescript;SequelizeOptions;sequelize-typescript;;Member[prepareOptions].Argument[0]",
"sequelize-typescript;SequelizeOptions;sequelize-typescript;;Member[prepareOptions].ReturnValue",
"sequelize-typescript;SequelizeOptions;sequelize-typescript;Sequelize;Member[options]",
"sequelize-typescript;SequelizeOptions;sequelize-typescript;SequelizeStatic;Argument[3]",
"sequelize-typescript;SequelizeOptions;sequelize-typescript;SequelizeStatic;WithArity[0].Argument[0]",
"sequelize-typescript;SequelizeOptions;sequelize-typescript;SequelizeStatic;WithArity[1].Argument[0,1]",
"sequelize-typescript;SequelizeOptions;sequelize-typescript;SequelizeStatic;WithArity[2].Argument[1,2]",
"sequelize-typescript;SequelizeOptions;sequelize-typescript;SequelizeStatic;WithArity[3].Argument[2]",
"sequelize-typescript;SequelizeStatic;sequelize-typescript/sequelize/sequelize/sequelize;;Member[Sequelize]",
"sequelize-typescript;SequelizeStatic;sequelize-typescript/sequelize/sequelize/sequelize;SequelizeStatic;",
"sequelize-typescript;SequelizeStatic;sequelize-typescript;;Member[Sequelize]",
"sequelize;AnyFindOptions;sequelize;BelongsToManyAddAssociationMixin;Argument[1]",
"sequelize;AnyFindOptions;sequelize;BelongsToManyAddAssociationsMixin;Argument[1]",
"sequelize;AnyFindOptions;sequelize;BelongsToManySetAssociationsMixin;Argument[1]",
"sequelize;AnyFindOptions;sequelize;DefineOptions;Member[defaultScope]",
"sequelize;AnyFindOptions;sequelize;DefineScopeOptions;AnyMember",
"sequelize;AnyFindOptions;sequelize;HasManySetAssociationsMixin;Argument[1]",
"sequelize;AnyFindOptions;sequelize;Instance;Member[reload].Argument[0]",
"sequelize;AnyFindOptions;sequelize;Model;Member[addScope].Argument[1]",
"sequelize;AssociationOptionsBelongsToMany;sequelize;Associations;Member[belongsToMany].Argument[1]",
"sequelize;Associations;sequelize;Model;",
"sequelize;Associations;sequelize;SequelizeStaticAndInstance.Model;",
"sequelize;BuildOptions;sequelize-typescript;ModelStatic~;Argument[1]",
"sequelize;BuildOptions;sequelize;CreateOptions;",
"sequelize;BuildOptions;sequelize;Model;Member[build,bulkBuild].Argument[1]",
"sequelize;CountOptions;sequelize;Model;Member[count].Argument[0]",
"sequelize;CreateOptions;sequelize-typescript/model/model/association/association-create-options;AssociationCreateOptions;",
"sequelize;CreateOptions;sequelize;BelongsToCreateAssociationMixin;Argument[1]",
"sequelize;CreateOptions;sequelize;BelongsToManyCreateAssociationMixin;Argument[1]",
"sequelize;CreateOptions;sequelize;HasManyCreateAssociationMixin;Argument[1]",
"sequelize;CreateOptions;sequelize;HasOneCreateAssociationMixin;Argument[1]",
"sequelize;CreateOptions;sequelize;Model;Member[create].Argument[1]",
"sequelize;DefineAttributeColumnOptions;sequelize;DefineAttributes;AnyMember",
"sequelize;DefineAttributeColumnOptions;sequelize;QueryInterface;Member[addColumn,changeColumn].Argument[2]",
"sequelize;DefineAttributeColumnReferencesOptions;sequelize;DefineAttributeColumnOptions;Member[references]",
"sequelize;DefineAttributes;sequelize;Hooks;Member[beforeDefine].Argument[1].Argument[0]",
"sequelize;DefineAttributes;sequelize;Hooks;Member[beforeDefine].WithArity[1].Argument[0].Argument[0]",
"sequelize;DefineAttributes;sequelize;QueryInterface;Member[createTable].Argument[1]",
"sequelize;DefineOptions;sequelize;Options;Member[define]",
"sequelize;DefineOptions;sequelize;Sequelize;Member[define].Argument[2]",
"sequelize;DefineScopeOptions;sequelize;DefineOptions;Member[scopes]",
"sequelize;FindCreateFindOptions;sequelize;Model;Member[findCreateFind].Argument[0]",
"sequelize;FindOptions;sequelize-typescript;AssociationCountOptions;",
"sequelize;FindOptions;sequelize-typescript;AssociationGetOptions;",
"sequelize;FindOptions;sequelize-typescript;DefaultScopeGetter;ReturnValue",
"sequelize;FindOptions;sequelize-typescript;Model;Member[reload].Argument[0]",
"sequelize;FindOptions;sequelize-typescript;ScopesOptions;",
"sequelize;FindOptions;sequelize-typescript;ScopesOptions;ReturnValue",
"sequelize;FindOptions;sequelize;AnyFindOptions;",
"sequelize;FindOptions;sequelize;FindCreateFindOptions;",
"sequelize;FindOptions;sequelize;FindOrInitializeOptions;",
"sequelize;FindOptions;sequelize;Model;Member[all,find,findAll,findAndCount,findAndCountAll,findOne].Argument[0]",
"sequelize;FindOptionsOrderArray;sequelize;FindOptions;Member[order]",
"sequelize;FindOptionsOrderArray;sequelize;FindOptions;Member[order].ArrayElement",
"sequelize;FindOrInitializeOptions;sequelize;Model;Member[findOrBuild,findOrCreate,findOrInitialize].Argument[0]",
"sequelize;HasManyGetAssociationsMixinOptions;sequelize;HasManyGetAssociationsMixin;Argument[0]",
"sequelize;HasManyGetAssociationsMixinOptions;sequelize;HasManyHasAssociationMixin;Argument[1]",
"sequelize;HasManyGetAssociationsMixinOptions;sequelize;HasManyHasAssociationsMixin;Argument[1]",
"sequelize;Hooks;sequelize;Hooks;Member[addHook,hook,removeHook].ReturnValue",
"sequelize;Hooks;sequelize;Model;",
"sequelize;Hooks;sequelize;Sequelize;",
"sequelize;Hooks;sequelize;SequelizeStaticAndInstance.Model;",
"sequelize;IncludeAssociation;sequelize;Associations;Member[belongsTo,belongsToMany,hasMany,hasOne].ReturnValue",
"sequelize;IncludeAssociation;sequelize;IncludeOptions;Member[association]",
"sequelize;IncludeOptions;sequelize;BuildOptions;Member[include].ArrayElement",
"sequelize;IncludeOptions;sequelize;CountOptions;Member[include]",
"sequelize;IncludeOptions;sequelize;CountOptions;Member[include].ArrayElement",
"sequelize;IncludeOptions;sequelize;FindOptions;Member[include]",
"sequelize;IncludeOptions;sequelize;FindOptions;Member[include].ArrayElement",
"sequelize;IncludeOptions;sequelize;HasManyGetAssociationsMixinOptions;Member[include]",
"sequelize;IncludeOptions;sequelize;IncludeOptions;Member[include]",
"sequelize;IncludeOptions;sequelize;IncludeOptions;Member[include].ArrayElement",
"sequelize;Instance;sequelize;Instance;Member[decrement,increment,reload,save,update,updateAttributes].ReturnValue.Awaited",
"sequelize;Instance;sequelize;Instance;Member[equalsOneOf].Argument[0].ArrayElement",
"sequelize;Instance;sequelize;Instance;Member[equals].Argument[0]",
"sequelize;Instance;sequelize;Instance;Member[set,setAttributes].ReturnValue",
"sequelize;Instance;sequelize;Model;Member[Instance,build].ReturnValue",
"sequelize;Instance;sequelize;Model;Member[all,bulkCreate,findAll].ReturnValue.Awaited.ArrayElement",
"sequelize;Instance;sequelize;Model;Member[bulkBuild].ReturnValue.ArrayElement",
"sequelize;Instance;sequelize;Model;Member[create,find,findById,findByPk,findByPrimary,findOne].ReturnValue.Awaited",
"sequelize;Instance;sequelize;Model;Member[findAndCount,findAndCountAll].ReturnValue.Awaited.Member[rows].ArrayElement",
"sequelize;Instance;sequelize;QueryInterface;Member[delete,increment,insert,update].Argument[0]",
"sequelize;Instance;sequelize;QueryOptions;Member[instance]",
"sequelize;Instance;sequelize;SequelizeStaticAndInstance;Member[Instance]",
"sequelize;Model;sequelize;AssociationOptionsBelongsToMany;Member[through]",
"sequelize;Model;sequelize;Associations;Member[belongsTo,belongsToMany,hasMany,hasOne].Argument[0]",
"sequelize;Model;sequelize;BuildOptions;Member[include].ArrayElement",
"sequelize;Model;sequelize;CountOptions;Member[include]",
"sequelize;Model;sequelize;CountOptions;Member[include].ArrayElement",
"sequelize;Model;sequelize;DefineAttributeColumnReferencesOptions;Member[model]",
"sequelize;Model;sequelize;FindOptions;Member[include]",
"sequelize;Model;sequelize;FindOptions;Member[include].ArrayElement",
"sequelize;Model;sequelize;FindOptions;Member[lock].Member[of]",
"sequelize;Model;sequelize;FindOptionsOrderArray;ArrayElement",
"sequelize;Model;sequelize;FindOptionsOrderArray;ArrayElement.Member[model]",
"sequelize;Model;sequelize;Hooks;Member[afterDefine].Argument[1].Argument[0]",
"sequelize;Model;sequelize;Hooks;Member[afterDefine].WithArity[1].Argument[0].Argument[0]",
"sequelize;Model;sequelize;IncludeAssociation;Member[source,target]",
"sequelize;Model;sequelize;IncludeOptions;Member[include,model]",
"sequelize;Model;sequelize;IncludeOptions;Member[include].ArrayElement",
"sequelize;Model;sequelize;Instance;Member[Model]",
"sequelize;Model;sequelize;Model;Member[schema,scope,unscoped].ReturnValue",
"sequelize;Model;sequelize;Model;Member[sync].ReturnValue.Awaited",
"sequelize;Model;sequelize;Models;AnyMember",
"sequelize;Model;sequelize;ModelsHashInterface;AnyMember",
"sequelize;Model;sequelize;QueryInterface;Member[bulkDelete,rawSelect,upsert].Argument[3]",
"sequelize;Model;sequelize;QueryInterface;Member[select].Argument[0]",
"sequelize;Model;sequelize;QueryOptions;Member[model]",
"sequelize;Model;sequelize;Sequelize;Member[define,import,model].ReturnValue",
"sequelize;Model;sequelize;Sequelize;Member[import].Argument[1].ReturnValue",
"sequelize;Model;sequelize;SequelizeStaticAndInstance;Member[Model]",
"sequelize;Model;sequelize;ThroughOptions;Member[model]",
"sequelize;Model;sequelize;Utils;Member[mapOptionFieldNames].Argument[1]",
"sequelize;Model;sequelize;Utils;Member[mapValueFieldNames].Argument[2]",
"sequelize;Models;sequelize;Model;Member[associate].Argument[0]",
"sequelize;ModelsHashInterface;sequelize;Sequelize;Member[models]",
"sequelize;Options;sequelize-typescript;SequelizeOptions;",
"sequelize;Options;sequelize;Sequelize;Member[options]",
"sequelize;Options;sequelize;SequelizeStatic;Argument[3]",
"sequelize;Options;sequelize;SequelizeStatic;WithArity[1].Argument[0,1]",
"sequelize;Options;sequelize;SequelizeStatic;WithArity[2].Argument[1,2]",
"sequelize;Options;sequelize;SequelizeStatic;WithArity[3].Argument[2]",
"sequelize;QueryInterface;sequelize;Sequelize;Member[getQueryInterface].ReturnValue",
"sequelize;QueryOptions;sequelize;Options;Member[query]",
"sequelize;QueryOptions;sequelize;QueryInterface;Member[bulkDelete,bulkInsert,createTable,select,setAutocommit,setIsolationLevel].Argument[2]",
"sequelize;QueryOptions;sequelize;QueryInterface;Member[bulkUpdate,delete,insert].Argument[3]",
"sequelize;QueryOptions;sequelize;QueryInterface;Member[commitTransaction,deferConstraints,dropTable,rawSelect,rollbackTransaction,showIndex,startTransaction].Argument[1]",
"sequelize;QueryOptions;sequelize;QueryInterface;Member[createFunction].Argument[5]",
"sequelize;QueryOptions;sequelize;QueryInterface;Member[dropAllEnums,dropAllTables,showAllSchemas,showAllTables].Argument[0]",
"sequelize;QueryOptions;sequelize;QueryInterface;Member[increment,update,upsert].Argument[4]",
"sequelize;QueryOptions;sequelize;Sequelize;Member[authenticate,validate].Argument[0]",
"sequelize;QueryOptions;sequelize;Sequelize;Member[query].Argument[1]",
"sequelize;Sequelize;sequelize;Hooks;Member[afterInit].Argument[1].Argument[0]",
"sequelize;Sequelize;sequelize;Hooks;Member[afterInit].WithArity[1].Argument[0].Argument[0]",
"sequelize;Sequelize;sequelize;Instance;Member[sequelize]",
"sequelize;Sequelize;sequelize;QueryInterface;Member[sequelize]",
"sequelize;Sequelize;sequelize;Sequelize;Member[import].Argument[1].Argument[0]",
"sequelize;Sequelize;sequelize;SequelizeStatic;Instance",
"sequelize;Sequelize;sequelize;SequelizeStatic;Member[useCLS].ReturnValue",
"sequelize;SequelizeStatic;sequelize-typescript;Sequelize;",
"sequelize;SequelizeStatic;sequelize;;",
"sequelize;SequelizeStatic;sequelize;Sequelize;Member[Sequelize]",
"sequelize;SequelizeStatic;sequelize;SequelizeStatic;Member[Sequelize,default]",
"sequelize;SequelizeStaticAndInstance.Model;sequelize-typescript;Model;",
"sequelize;SequelizeStaticAndInstance;sequelize;Sequelize;",
"sequelize;SequelizeStaticAndInstance;sequelize;SequelizeStatic;",
"sequelize;ThroughOptions;sequelize;AssociationOptionsBelongsToMany;Member[through]",
"sequelize;Utils;sequelize;SequelizeStaticAndInstance;Member[Utils]"
],
"summaries": [
"sequelize-typescript;Model;;;Member[reload].ReturnValue.Awaited;type",
"sequelize;Instance;;;Member[decrement,increment,reload,save,update,updateAttributes].ReturnValue.Awaited;type",
"sequelize;Instance;;;Member[set,setAttributes].ReturnValue;type",
"sequelize;Model;;;Member[schema,scope,unscoped].ReturnValue;type",
"sequelize;Model;;;Member[sync].ReturnValue.Awaited;type"
],
"typeVariables": [
"sequelize-typescript.ModelStatic.0;Instance",
"sequelize-typescript.Repository.0;Instance"
]
}
}

View File

@@ -0,0 +1,198 @@
/** Generated model file */
private import javascript
private class Types extends ModelInput::TypeModelCsv {
override predicate row(string row) {
row =
[
"@google-cloud/spanner/batch-transaction;BatchTransaction;@google-cloud/spanner/batch-transaction;BatchTransactionStatic;Instance", //
"@google-cloud/spanner/batch-transaction;BatchTransaction;@google-cloud/spanner/database;CreateBatchTransactionCallback;TypeVar[@google-cloud/spanner/common.ResourceCallback.0]", //
"@google-cloud/spanner/batch-transaction;BatchTransaction;@google-cloud/spanner;Database;Member[batchTransaction].ReturnValue", //
"@google-cloud/spanner/batch-transaction;BatchTransactionStatic;@google-cloud/spanner/batch-transaction;;Member[BatchTransaction]", //
"@google-cloud/spanner/batch-transaction;TransactionIdentifier;@google-cloud/spanner/batch-transaction;BatchTransaction;Member[identifier].ReturnValue", //
"@google-cloud/spanner/batch-transaction;TransactionIdentifier;@google-cloud/spanner;Database;Member[batchTransaction].Argument[0]", //
"@google-cloud/spanner/database;BatchCreateSessionsCallback;@google-cloud/spanner;Database;Member[batchCreateSessions].Argument[1]", //
"@google-cloud/spanner/database;CreateBatchTransactionCallback;@google-cloud/spanner;Database;Member[createBatchTransaction].Argument[1]", //
"@google-cloud/spanner/database;CreateBatchTransactionCallback;@google-cloud/spanner;Database;Member[createBatchTransaction].WithArity[1].Argument[0]", //
"@google-cloud/spanner/database;CreateSessionCallback;@google-cloud/spanner;Database;Member[createSession].Argument[1]", //
"@google-cloud/spanner/database;CreateSessionCallback;@google-cloud/spanner;Database;Member[createSession].WithArity[1].Argument[0]", //
"@google-cloud/spanner/database;DatabaseCallback;@google-cloud/spanner;Database;Member[get].Argument[1]", //
"@google-cloud/spanner/database;DatabaseCallback;@google-cloud/spanner;Database;Member[get].WithArity[1].Argument[0]", //
"@google-cloud/spanner/database;GetSessionsCallback;@google-cloud/spanner;Database;Member[getSessions].Argument[1]", //
"@google-cloud/spanner/database;GetSessionsCallback;@google-cloud/spanner;Database;Member[getSessions].WithArity[1].Argument[0]", //
"@google-cloud/spanner/database;GetSnapshotCallback;@google-cloud/spanner;Database;Member[getSnapshot].Argument[1]", //
"@google-cloud/spanner/database;GetSnapshotCallback;@google-cloud/spanner;Database;Member[getSnapshot].WithArity[1].Argument[0]", //
"@google-cloud/spanner/database;GetTransactionCallback;@google-cloud/spanner;Database;Member[getTransaction].Argument[0]", //
"@google-cloud/spanner/database;PoolRequestCallback;@google-cloud/spanner;Database;Member[makePooledRequest_].Argument[1]", //
"@google-cloud/spanner/database;RestoreDatabaseCallback;@google-cloud/spanner;Database;Member[restore].Argument[1,2]", //
"@google-cloud/spanner/database;SessionPoolConstructor;@google-cloud/spanner;DatabaseStatic;Argument[2]", //
"@google-cloud/spanner/database;SessionPoolConstructor;@google-cloud/spanner;Instance;Member[database].Argument[1]", //
"@google-cloud/spanner/instance;CreateDatabaseCallback;@google-cloud/spanner;Instance;Member[createDatabase].Argument[2]", //
"@google-cloud/spanner/instance;CreateDatabaseCallback;@google-cloud/spanner;Instance;Member[createDatabase].WithArity[2].Argument[1]", //
"@google-cloud/spanner/instance;CreateDatabaseOptions;@google-cloud/spanner;Instance;Member[createDatabase].WithArity[1,2,3].Argument[1]", //
"@google-cloud/spanner/instance;CreateInstanceCallback;@google-cloud/spanner;Spanner;Member[createInstance].Argument[2]", //
"@google-cloud/spanner/instance;GetDatabasesCallback;@google-cloud/spanner;Instance;Member[getDatabases].Argument[1]", //
"@google-cloud/spanner/instance;GetDatabasesCallback;@google-cloud/spanner;Instance;Member[getDatabases].WithArity[1].Argument[0]", //
"@google-cloud/spanner/instance;GetInstanceCallback;@google-cloud/spanner;Instance;Member[get].Argument[1]", //
"@google-cloud/spanner/instance;GetInstanceCallback;@google-cloud/spanner;Instance;Member[get].WithArity[1].Argument[0]", //
"@google-cloud/spanner/session-pool;GetReadSessionCallback;@google-cloud/spanner/session-pool;SessionPoolInterface;Member[getReadSession].Argument[0]", //
"@google-cloud/spanner/session-pool;GetReadSessionCallback;@google-cloud/spanner;SessionPool;Member[getReadSession].Argument[0]", //
"@google-cloud/spanner/session-pool;GetWriteSessionCallback;@google-cloud/spanner/session-pool;SessionPoolInterface;Member[getWriteSession].Argument[0]", //
"@google-cloud/spanner/session-pool;GetWriteSessionCallback;@google-cloud/spanner;SessionPool;Member[getWriteSession].Argument[0]", //
"@google-cloud/spanner/session-pool;SessionPoolInterface;@google-cloud/spanner/database;SessionPoolConstructor;Instance", //
"@google-cloud/spanner/session-pool;SessionPoolInterface;@google-cloud/spanner;Database;Member[pool_]", //
"@google-cloud/spanner/session-pool;SessionPoolInterface;@google-cloud/spanner;SessionPool;", //
"@google-cloud/spanner/table;CreateTableCallback;@google-cloud/spanner;Database;Member[createTable].Argument[2]", //
"@google-cloud/spanner/table;CreateTableCallback;@google-cloud/spanner;Database;Member[createTable].WithArity[2].Argument[1]", //
"@google-cloud/spanner/table;CreateTableCallback;@google-cloud/spanner;Table;Member[create].Argument[2]", //
"@google-cloud/spanner/table;CreateTableCallback;@google-cloud/spanner;Table;Member[create].WithArity[2].Argument[1]", //
"@google-cloud/spanner/transaction-runner;AsyncRunTransactionCallback;@google-cloud/spanner/transaction-runner;AsyncTransactionRunnerStatic;Argument[2]", //
"@google-cloud/spanner/transaction-runner;AsyncRunTransactionCallback;@google-cloud/spanner;Database;Member[runTransactionAsync].Argument[1]", //
"@google-cloud/spanner/transaction-runner;AsyncRunTransactionCallback;@google-cloud/spanner;Database;Member[runTransactionAsync].WithArity[1].Argument[0]", //
"@google-cloud/spanner/transaction-runner;AsyncTransactionRunner;@google-cloud/spanner/transaction-runner;AsyncTransactionRunnerStatic;Instance", //
"@google-cloud/spanner/transaction-runner;AsyncTransactionRunnerStatic;@google-cloud/spanner/transaction-runner;;Member[AsyncTransactionRunner]", //
"@google-cloud/spanner/transaction-runner;RunTransactionCallback;@google-cloud/spanner/transaction-runner;TransactionRunnerStatic;Argument[2]", //
"@google-cloud/spanner/transaction-runner;RunTransactionCallback;@google-cloud/spanner;Database;Member[runTransaction].Argument[1]", //
"@google-cloud/spanner/transaction-runner;RunTransactionCallback;@google-cloud/spanner;Database;Member[runTransaction].WithArity[1].Argument[0]", //
"@google-cloud/spanner/transaction-runner;Runner;@google-cloud/spanner/transaction-runner;AsyncTransactionRunner;", //
"@google-cloud/spanner/transaction-runner;Runner;@google-cloud/spanner/transaction-runner;RunnerStatic;Instance", //
"@google-cloud/spanner/transaction-runner;Runner;@google-cloud/spanner/transaction-runner;TransactionRunner;", //
"@google-cloud/spanner/transaction-runner;RunnerStatic;@google-cloud/spanner/transaction-runner;;Member[Runner]", //
"@google-cloud/spanner/transaction-runner;TransactionRunner;@google-cloud/spanner/transaction-runner;TransactionRunnerStatic;Instance", //
"@google-cloud/spanner/transaction-runner;TransactionRunnerStatic;@google-cloud/spanner/transaction-runner;;Member[TransactionRunner]", //
"@google-cloud/spanner/transaction;Dml;@google-cloud/spanner/transaction;DmlStatic;Instance", //
"@google-cloud/spanner/transaction;Dml;@google-cloud/spanner;PartitionedDml;", //
"@google-cloud/spanner/transaction;Dml;@google-cloud/spanner;Transaction;", //
"@google-cloud/spanner/transaction;DmlStatic;@google-cloud/spanner/transaction;;Member[Dml]", //
"@google-cloud/spanner;BackupStatic;@google-cloud/spanner/backup;;Member[Backup]", //
"@google-cloud/spanner;BackupStatic;@google-cloud/spanner/backup;BackupStatic;", //
"@google-cloud/spanner;BackupStatic;@google-cloud/spanner;;Member[Backup]", //
"@google-cloud/spanner;BatchTransaction;@google-cloud/spanner/batch-transaction;BatchTransaction;", //
"@google-cloud/spanner;Database;@google-cloud/spanner/database;Database;", //
"@google-cloud/spanner;Database;@google-cloud/spanner/database;DatabaseCallback;TypeVar[@google-cloud/spanner/common.ResourceCallback.0]", //
"@google-cloud/spanner;Database;@google-cloud/spanner/database;RestoreDatabaseCallback;TypeVar[@google-cloud/spanner/common.LongRunningCallback.0]", //
"@google-cloud/spanner;Database;@google-cloud/spanner/database;SessionPoolConstructor;Argument[0]", //
"@google-cloud/spanner;Database;@google-cloud/spanner/instance;CreateDatabaseCallback;TypeVar[@google-cloud/spanner/common.LongRunningCallback.0]", //
"@google-cloud/spanner;Database;@google-cloud/spanner/instance;GetDatabasesCallback;TypeVar[@google-cloud/spanner/common.RequestCallback.0]", //
"@google-cloud/spanner;Database;@google-cloud/spanner;DatabaseStatic;Instance", //
"@google-cloud/spanner;Database;@google-cloud/spanner;Instance;Member[database].ReturnValue", //
"@google-cloud/spanner;Database;@google-cloud/spanner;SessionPool;Member[database]", //
"@google-cloud/spanner;Database;@google-cloud/spanner;SessionPoolStatic;Argument[0]", //
"@google-cloud/spanner;Database;@google-cloud/spanner;SessionStatic;Argument[0]", //
"@google-cloud/spanner;Database;@google-cloud/spanner;Table;Member[database]", //
"@google-cloud/spanner;Database;@google-cloud/spanner;TableStatic;Argument[0]", //
"@google-cloud/spanner;DatabaseStatic;@google-cloud/spanner/database;;Member[Database]", //
"@google-cloud/spanner;DatabaseStatic;@google-cloud/spanner/database;DatabaseStatic;", //
"@google-cloud/spanner;DatabaseStatic;@google-cloud/spanner;;Member[Database]", //
"@google-cloud/spanner;GetInstancesCallback;@google-cloud/spanner/build/src;GetInstancesCallback;", //
"@google-cloud/spanner;GetInstancesCallback;@google-cloud/spanner;Spanner;Member[getInstances].Argument[1]", //
"@google-cloud/spanner;GetInstancesCallback;@google-cloud/spanner;Spanner;Member[getInstances].WithArity[1].Argument[0]", //
"@google-cloud/spanner;Instance;@google-cloud/spanner/instance;CreateInstanceCallback;TypeVar[@google-cloud/spanner/common.LongRunningCallback.0]", //
"@google-cloud/spanner;Instance;@google-cloud/spanner/instance;GetInstanceCallback;TypeVar[@google-cloud/spanner/common.ResourceCallback.0]", //
"@google-cloud/spanner;Instance;@google-cloud/spanner/instance;Instance;", //
"@google-cloud/spanner;Instance;@google-cloud/spanner;BackupStatic;Argument[0]", //
"@google-cloud/spanner;Instance;@google-cloud/spanner;DatabaseStatic;Argument[0]", //
"@google-cloud/spanner;Instance;@google-cloud/spanner;GetInstancesCallback;TypeVar[@google-cloud/spanner/common.PagedCallback.0]", //
"@google-cloud/spanner;Instance;@google-cloud/spanner;InstanceStatic;Instance", //
"@google-cloud/spanner;Instance;@google-cloud/spanner;Spanner;Member[instance].ReturnValue", //
"@google-cloud/spanner;InstanceStatic;@google-cloud/spanner/instance;;Member[Instance]", //
"@google-cloud/spanner;InstanceStatic;@google-cloud/spanner/instance;InstanceStatic;", //
"@google-cloud/spanner;InstanceStatic;@google-cloud/spanner;;Member[Instance]", //
"@google-cloud/spanner;PartitionedDml;@google-cloud/spanner/transaction;PartitionedDml;", //
"@google-cloud/spanner;PartitionedDml;@google-cloud/spanner;PartitionedDmlStatic;Instance", //
"@google-cloud/spanner;PartitionedDml;@google-cloud/spanner;Session;Member[partitionedDml].ReturnValue", //
"@google-cloud/spanner;PartitionedDmlStatic;@google-cloud/spanner/transaction;;Member[PartitionedDml]", //
"@google-cloud/spanner;PartitionedDmlStatic;@google-cloud/spanner/transaction;PartitionedDmlStatic;", //
"@google-cloud/spanner;PartitionedDmlStatic;@google-cloud/spanner;;Member[PartitionedDml]", //
"@google-cloud/spanner;Session;@google-cloud/spanner/batch-transaction;TransactionIdentifier;Member[session]", //
"@google-cloud/spanner;Session;@google-cloud/spanner/database;BatchCreateSessionsCallback;TypeVar[@google-cloud/spanner/common.ResourceCallback.0].ArrayElement", //
"@google-cloud/spanner;Session;@google-cloud/spanner/database;CreateSessionCallback;TypeVar[@google-cloud/spanner/common.ResourceCallback.0]", //
"@google-cloud/spanner;Session;@google-cloud/spanner/database;GetSessionsCallback;TypeVar[@google-cloud/spanner/common.RequestCallback.0]", //
"@google-cloud/spanner;Session;@google-cloud/spanner/database;PoolRequestCallback;TypeVar[@google-cloud/spanner/common.RequestCallback.0]", //
"@google-cloud/spanner;Session;@google-cloud/spanner/session-pool;GetReadSessionCallback;TypeVar[@google-cloud/spanner/common.NormalCallback.0]", //
"@google-cloud/spanner;Session;@google-cloud/spanner/session-pool;GetWriteSessionCallback;Argument[1]", //
"@google-cloud/spanner;Session;@google-cloud/spanner/session-pool;SessionPoolInterface;Member[release].Argument[0]", //
"@google-cloud/spanner;Session;@google-cloud/spanner/session;Session;", //
"@google-cloud/spanner;Session;@google-cloud/spanner/transaction-runner;Runner;Member[session]", //
"@google-cloud/spanner;Session;@google-cloud/spanner;Database;Member[_runPartitionedUpdate].Argument[0]", //
"@google-cloud/spanner;Session;@google-cloud/spanner;Database;Member[makePooledRequest_].WithArity[1].ReturnValue.Awaited", //
"@google-cloud/spanner;Session;@google-cloud/spanner;Database;Member[session].ReturnValue", //
"@google-cloud/spanner;Session;@google-cloud/spanner;SessionPool;Member[_acquire,_getSession].ReturnValue.Awaited", //
"@google-cloud/spanner;Session;@google-cloud/spanner;SessionPool;Member[_borrow,_destroy,_isValidSession,_ping,_prepareTransaction,_release,release].Argument[0]", //
"@google-cloud/spanner;Session;@google-cloud/spanner;SessionPool;Member[_borrowFrom,_borrowNextAvailableSession].ReturnValue", //
"@google-cloud/spanner;Session;@google-cloud/spanner;SessionPool;Member[_getIdleSessions].ReturnValue.ArrayElement", //
"@google-cloud/spanner;Session;@google-cloud/spanner;SessionStatic;Instance", //
"@google-cloud/spanner;Session;@google-cloud/spanner;Snapshot;Member[session]", //
"@google-cloud/spanner;SessionPool;@google-cloud/spanner/instance;CreateDatabaseOptions;Member[poolCtor]", //
"@google-cloud/spanner;SessionPool;@google-cloud/spanner/session-pool;SessionPool;", //
"@google-cloud/spanner;SessionPool;@google-cloud/spanner;SessionPoolStatic;Instance", //
"@google-cloud/spanner;SessionPoolStatic;@google-cloud/spanner/session-pool;;Member[SessionPool]", //
"@google-cloud/spanner;SessionPoolStatic;@google-cloud/spanner/session-pool;SessionPoolStatic;", //
"@google-cloud/spanner;SessionPoolStatic;@google-cloud/spanner;;Member[SessionPool]", //
"@google-cloud/spanner;SessionStatic;@google-cloud/spanner/session;;Member[Session]", //
"@google-cloud/spanner;SessionStatic;@google-cloud/spanner/session;SessionStatic;", //
"@google-cloud/spanner;SessionStatic;@google-cloud/spanner;;Member[Session]", //
"@google-cloud/spanner;Snapshot;@google-cloud/spanner/batch-transaction;BatchTransaction;", //
"@google-cloud/spanner;Snapshot;@google-cloud/spanner/database;GetSnapshotCallback;TypeVar[@google-cloud/spanner/common.NormalCallback.0]", //
"@google-cloud/spanner;Snapshot;@google-cloud/spanner/transaction;Dml;", //
"@google-cloud/spanner;Snapshot;@google-cloud/spanner/transaction;Snapshot;", //
"@google-cloud/spanner;Snapshot;@google-cloud/spanner;Session;Member[snapshot].ReturnValue", //
"@google-cloud/spanner;Snapshot;@google-cloud/spanner;SnapshotStatic;Instance", //
"@google-cloud/spanner;SnapshotStatic;@google-cloud/spanner/transaction;;Member[Snapshot]", //
"@google-cloud/spanner;SnapshotStatic;@google-cloud/spanner/transaction;SnapshotStatic;", //
"@google-cloud/spanner;SnapshotStatic;@google-cloud/spanner;;Member[Snapshot]", //
"@google-cloud/spanner;Spanner;@google-cloud/spanner;InstanceStatic;Argument[0]", //
"@google-cloud/spanner;Spanner;@google-cloud/spanner;SpannerStatic;Instance", //
"@google-cloud/spanner;SpannerStatic;@google-cloud/spanner;;Member[Spanner]", //
"@google-cloud/spanner;Table;@google-cloud/spanner/table;CreateTableCallback;TypeVar[@google-cloud/spanner/common.LongRunningCallback.0]", //
"@google-cloud/spanner;Table;@google-cloud/spanner/table;Table;", //
"@google-cloud/spanner;Table;@google-cloud/spanner;Database;Member[table].ReturnValue", //
"@google-cloud/spanner;Table;@google-cloud/spanner;TableStatic;Instance", //
"@google-cloud/spanner;TableStatic;@google-cloud/spanner/table;;Member[Table]", //
"@google-cloud/spanner;TableStatic;@google-cloud/spanner/table;TableStatic;", //
"@google-cloud/spanner;TableStatic;@google-cloud/spanner;;Member[Table]", //
"@google-cloud/spanner;Transaction;@google-cloud/spanner/database;GetTransactionCallback;TypeVar[@google-cloud/spanner/common.NormalCallback.0]", //
"@google-cloud/spanner;Transaction;@google-cloud/spanner/session-pool;GetWriteSessionCallback;Argument[2]", //
"@google-cloud/spanner;Transaction;@google-cloud/spanner/transaction-runner;AsyncRunTransactionCallback;Argument[0]", //
"@google-cloud/spanner;Transaction;@google-cloud/spanner/transaction-runner;RunTransactionCallback;TypeVar[@google-cloud/spanner/common.NormalCallback.0]", //
"@google-cloud/spanner;Transaction;@google-cloud/spanner/transaction-runner;Runner;Member[getTransaction].ReturnValue.Awaited", //
"@google-cloud/spanner;Transaction;@google-cloud/spanner/transaction-runner;Runner;Member[transaction]", //
"@google-cloud/spanner;Transaction;@google-cloud/spanner/transaction;Transaction;", //
"@google-cloud/spanner;Transaction;@google-cloud/spanner;Session;Member[transaction].ReturnValue", //
"@google-cloud/spanner;Transaction;@google-cloud/spanner;Session;Member[txn]", //
"@google-cloud/spanner;Transaction;@google-cloud/spanner;TransactionStatic;Instance", //
"@google-cloud/spanner;TransactionStatic;@google-cloud/spanner/transaction;;Member[Transaction]", //
"@google-cloud/spanner;TransactionStatic;@google-cloud/spanner/transaction;TransactionStatic;", //
"@google-cloud/spanner;TransactionStatic;@google-cloud/spanner;;Member[Transaction]", //
"@google-cloud/spanner;v1.SpannerClient;@google-cloud/spanner/v1/spanner_client;SpannerClient;", //
"@google-cloud/spanner;v1.SpannerClient;@google-cloud/spanner;v1.SpannerClientStatic;Instance", //
"@google-cloud/spanner;v1.SpannerClientStatic;@google-cloud/spanner/v1/spanner_client;;Member[SpannerClient]", //
"@google-cloud/spanner;v1.SpannerClientStatic;@google-cloud/spanner/v1/spanner_client;SpannerClientStatic;", //
"@google-cloud/spanner;v1.SpannerClientStatic;@google-cloud/spanner;;Member[v1].Member[SpannerClient]", //
"@google-cloud/spanner;~SpannerObject;@google-cloud/spanner;Database;", //
"@google-cloud/spanner;~SpannerObject;@google-cloud/spanner;Snapshot;", //
"@google-cloud/spanner;~SpannerObject;@google-cloud/spanner;Transaction;", //
"@google-cloud/spanner;~SpannerObject;@google-cloud/spanner;v1.SpannerClient;", //
"@google-cloud/spanner;~SqlExecutorDirect;@google-cloud/spanner;BatchTransaction;Member[createQueryPartitions]", //
"@google-cloud/spanner;~SqlExecutorDirect;@google-cloud/spanner;Database;Member[run,runPartitionedUpdate,runStream]", //
"@google-cloud/spanner;~SqlExecutorDirect;@google-cloud/spanner;PartitionedDml;Member[runUpdate]", //
"@google-cloud/spanner;~SqlExecutorDirect;@google-cloud/spanner;Snapshot;Member[run,runStream]", //
"@google-cloud/spanner;~SqlExecutorDirect;@google-cloud/spanner;Transaction;Member[run,runStream,runUpdate]", //
"@google-cloud/spanner;~SqlExecutorDirect;@google-cloud/spanner;v1.SpannerClient;Member[executeSql,executeStreamingSql,partitionQuery]", //
]
}
}
private class TypeVariables extends ModelInput::TypeVariableModelCsv {
override predicate row(string row) {
row =
[
"@google-cloud/spanner/common.LongRunningCallback.0;Argument[1]", //
"@google-cloud/spanner/common.NormalCallback.0;Argument[1]", //
"@google-cloud/spanner/common.PagedCallback.0;Argument[1].ArrayElement", //
"@google-cloud/spanner/common.RequestCallback.0;TypeVar[@google-cloud/spanner/common.NormalCallback.0,@google-cloud/spanner/common.PagedCallback.0]", //
"@google-cloud/spanner/common.ResourceCallback.0;Argument[1]", //
]
}
}

View File

@@ -0,0 +1,249 @@
{
"packages": {
"@google-cloud/spanner": "5.18.0"
},
"resolutions": {
"@google-cloud/common": "3.10.0",
"@google-cloud/precise-date": "2.0.4",
"@google-cloud/projectify": "2.1.1",
"@google-cloud/promisify": "2.0.4",
"@grpc/grpc-js": "1.6.7",
"@grpc/proto-loader": "0.6.12",
"@protobufjs/aspromise": "1.1.2",
"@protobufjs/base64": "1.1.2",
"@protobufjs/codegen": "2.0.4",
"@protobufjs/eventemitter": "1.1.0",
"@protobufjs/fetch": "1.1.0",
"@protobufjs/float": "1.0.2",
"@protobufjs/inquire": "1.1.0",
"@protobufjs/path": "1.1.2",
"@protobufjs/pool": "1.1.0",
"@protobufjs/utf8": "1.1.0",
"@tootallnate/once": "2.0.0",
"@types/big.js": "6.1.3",
"@types/duplexify": "3.6.1",
"@types/long": "4.0.2",
"@types/node": "17.0.35",
"@types/pumpify": "1.4.1",
"@types/stack-trace": "0.0.29",
"agent-base": "6.0.2",
"arrify": "2.0.1",
"base64-js": "1.5.1",
"checkpoint-stream": "0.1.2",
"ecdsa-sig-formatter": "1.0.11",
"eventemitter3": "4.0.7",
"gaxios": "4.3.3",
"gcp-metadata": "4.3.1",
"google-auth-library": "7.14.1",
"google-gax": "2.30.5",
"google-p12-pem": "3.1.4",
"grpc-gcp": "0.3.3",
"gtoken": "5.3.2",
"http-proxy-agent": "5.0.0",
"https-proxy-agent": "5.0.1",
"is-stream": "2.0.1",
"is-stream-ended": "0.1.4",
"p-queue": "6.6.2",
"p-timeout": "3.2.0",
"proto3-json-serializer": "0.1.9",
"protobufjs": "6.11.3",
"retry-request": "4.2.2",
"safe-buffer": "5.2.1",
"split-array-stream": "2.0.0",
"stream-events": "1.0.5",
"teeny-request": "7.2.0"
},
"language": "javascript",
"model": {
"typeDefinitions": [
"@google-cloud/spanner;BatchTransaction;@google-cloud/spanner/batch-transaction;BatchTransaction;",
"@google-cloud/spanner;~SpannerObject;@google-cloud/spanner;Database;",
"@google-cloud/spanner;~SpannerObject;@google-cloud/spanner;Snapshot;",
"@google-cloud/spanner;~SpannerObject;@google-cloud/spanner;Transaction;",
"@google-cloud/spanner;~SpannerObject;@google-cloud/spanner;v1.SpannerClient;",
"@google-cloud/spanner;~SqlExecutorDirect;@google-cloud/spanner;BatchTransaction;Member[createQueryPartitions]",
"@google-cloud/spanner;~SqlExecutorDirect;@google-cloud/spanner;Database;Member[run,runPartitionedUpdate,runStream]",
"@google-cloud/spanner;~SqlExecutorDirect;@google-cloud/spanner;PartitionedDml;Member[runUpdate]",
"@google-cloud/spanner;~SqlExecutorDirect;@google-cloud/spanner;Snapshot;Member[run,runStream]",
"@google-cloud/spanner;~SqlExecutorDirect;@google-cloud/spanner;Transaction;Member[run,runStream,runUpdate]",
"@google-cloud/spanner;~SqlExecutorDirect;@google-cloud/spanner;v1.SpannerClient;Member[executeSql,executeStreamingSql,partitionQuery]"
],
"sinks": []
},
"generatedModel": {
"//": "Autogenerated section. Manual edits in here will be lost.",
"typeDefinitions": [
"@google-cloud/spanner/batch-transaction;BatchTransaction;@google-cloud/spanner/batch-transaction;BatchTransactionStatic;Instance",
"@google-cloud/spanner/batch-transaction;BatchTransaction;@google-cloud/spanner/database;CreateBatchTransactionCallback;TypeVar[@google-cloud/spanner/common.ResourceCallback.0]",
"@google-cloud/spanner/batch-transaction;BatchTransaction;@google-cloud/spanner;Database;Member[batchTransaction].ReturnValue",
"@google-cloud/spanner/batch-transaction;BatchTransactionStatic;@google-cloud/spanner/batch-transaction;;Member[BatchTransaction]",
"@google-cloud/spanner/batch-transaction;TransactionIdentifier;@google-cloud/spanner/batch-transaction;BatchTransaction;Member[identifier].ReturnValue",
"@google-cloud/spanner/batch-transaction;TransactionIdentifier;@google-cloud/spanner;Database;Member[batchTransaction].Argument[0]",
"@google-cloud/spanner/database;BatchCreateSessionsCallback;@google-cloud/spanner;Database;Member[batchCreateSessions].Argument[1]",
"@google-cloud/spanner/database;CreateBatchTransactionCallback;@google-cloud/spanner;Database;Member[createBatchTransaction].Argument[1]",
"@google-cloud/spanner/database;CreateBatchTransactionCallback;@google-cloud/spanner;Database;Member[createBatchTransaction].WithArity[1].Argument[0]",
"@google-cloud/spanner/database;CreateSessionCallback;@google-cloud/spanner;Database;Member[createSession].Argument[1]",
"@google-cloud/spanner/database;CreateSessionCallback;@google-cloud/spanner;Database;Member[createSession].WithArity[1].Argument[0]",
"@google-cloud/spanner/database;DatabaseCallback;@google-cloud/spanner;Database;Member[get].Argument[1]",
"@google-cloud/spanner/database;DatabaseCallback;@google-cloud/spanner;Database;Member[get].WithArity[1].Argument[0]",
"@google-cloud/spanner/database;GetSessionsCallback;@google-cloud/spanner;Database;Member[getSessions].Argument[1]",
"@google-cloud/spanner/database;GetSessionsCallback;@google-cloud/spanner;Database;Member[getSessions].WithArity[1].Argument[0]",
"@google-cloud/spanner/database;GetSnapshotCallback;@google-cloud/spanner;Database;Member[getSnapshot].Argument[1]",
"@google-cloud/spanner/database;GetSnapshotCallback;@google-cloud/spanner;Database;Member[getSnapshot].WithArity[1].Argument[0]",
"@google-cloud/spanner/database;GetTransactionCallback;@google-cloud/spanner;Database;Member[getTransaction].Argument[0]",
"@google-cloud/spanner/database;PoolRequestCallback;@google-cloud/spanner;Database;Member[makePooledRequest_].Argument[1]",
"@google-cloud/spanner/database;RestoreDatabaseCallback;@google-cloud/spanner;Database;Member[restore].Argument[1,2]",
"@google-cloud/spanner/database;SessionPoolConstructor;@google-cloud/spanner;DatabaseStatic;Argument[2]",
"@google-cloud/spanner/database;SessionPoolConstructor;@google-cloud/spanner;Instance;Member[database].Argument[1]",
"@google-cloud/spanner/instance;CreateDatabaseCallback;@google-cloud/spanner;Instance;Member[createDatabase].Argument[2]",
"@google-cloud/spanner/instance;CreateDatabaseCallback;@google-cloud/spanner;Instance;Member[createDatabase].WithArity[2].Argument[1]",
"@google-cloud/spanner/instance;CreateDatabaseOptions;@google-cloud/spanner;Instance;Member[createDatabase].WithArity[1,2,3].Argument[1]",
"@google-cloud/spanner/instance;CreateInstanceCallback;@google-cloud/spanner;Spanner;Member[createInstance].Argument[2]",
"@google-cloud/spanner/instance;GetDatabasesCallback;@google-cloud/spanner;Instance;Member[getDatabases].Argument[1]",
"@google-cloud/spanner/instance;GetDatabasesCallback;@google-cloud/spanner;Instance;Member[getDatabases].WithArity[1].Argument[0]",
"@google-cloud/spanner/instance;GetInstanceCallback;@google-cloud/spanner;Instance;Member[get].Argument[1]",
"@google-cloud/spanner/instance;GetInstanceCallback;@google-cloud/spanner;Instance;Member[get].WithArity[1].Argument[0]",
"@google-cloud/spanner/session-pool;GetReadSessionCallback;@google-cloud/spanner/session-pool;SessionPoolInterface;Member[getReadSession].Argument[0]",
"@google-cloud/spanner/session-pool;GetReadSessionCallback;@google-cloud/spanner;SessionPool;Member[getReadSession].Argument[0]",
"@google-cloud/spanner/session-pool;GetWriteSessionCallback;@google-cloud/spanner/session-pool;SessionPoolInterface;Member[getWriteSession].Argument[0]",
"@google-cloud/spanner/session-pool;GetWriteSessionCallback;@google-cloud/spanner;SessionPool;Member[getWriteSession].Argument[0]",
"@google-cloud/spanner/session-pool;SessionPoolInterface;@google-cloud/spanner/database;SessionPoolConstructor;Instance",
"@google-cloud/spanner/session-pool;SessionPoolInterface;@google-cloud/spanner;Database;Member[pool_]",
"@google-cloud/spanner/session-pool;SessionPoolInterface;@google-cloud/spanner;SessionPool;",
"@google-cloud/spanner/table;CreateTableCallback;@google-cloud/spanner;Database;Member[createTable].Argument[2]",
"@google-cloud/spanner/table;CreateTableCallback;@google-cloud/spanner;Database;Member[createTable].WithArity[2].Argument[1]",
"@google-cloud/spanner/table;CreateTableCallback;@google-cloud/spanner;Table;Member[create].Argument[2]",
"@google-cloud/spanner/table;CreateTableCallback;@google-cloud/spanner;Table;Member[create].WithArity[2].Argument[1]",
"@google-cloud/spanner/transaction-runner;AsyncRunTransactionCallback;@google-cloud/spanner/transaction-runner;AsyncTransactionRunnerStatic;Argument[2]",
"@google-cloud/spanner/transaction-runner;AsyncRunTransactionCallback;@google-cloud/spanner;Database;Member[runTransactionAsync].Argument[1]",
"@google-cloud/spanner/transaction-runner;AsyncRunTransactionCallback;@google-cloud/spanner;Database;Member[runTransactionAsync].WithArity[1].Argument[0]",
"@google-cloud/spanner/transaction-runner;AsyncTransactionRunner;@google-cloud/spanner/transaction-runner;AsyncTransactionRunnerStatic;Instance",
"@google-cloud/spanner/transaction-runner;AsyncTransactionRunnerStatic;@google-cloud/spanner/transaction-runner;;Member[AsyncTransactionRunner]",
"@google-cloud/spanner/transaction-runner;RunTransactionCallback;@google-cloud/spanner/transaction-runner;TransactionRunnerStatic;Argument[2]",
"@google-cloud/spanner/transaction-runner;RunTransactionCallback;@google-cloud/spanner;Database;Member[runTransaction].Argument[1]",
"@google-cloud/spanner/transaction-runner;RunTransactionCallback;@google-cloud/spanner;Database;Member[runTransaction].WithArity[1].Argument[0]",
"@google-cloud/spanner/transaction-runner;Runner;@google-cloud/spanner/transaction-runner;AsyncTransactionRunner;",
"@google-cloud/spanner/transaction-runner;Runner;@google-cloud/spanner/transaction-runner;RunnerStatic;Instance",
"@google-cloud/spanner/transaction-runner;Runner;@google-cloud/spanner/transaction-runner;TransactionRunner;",
"@google-cloud/spanner/transaction-runner;RunnerStatic;@google-cloud/spanner/transaction-runner;;Member[Runner]",
"@google-cloud/spanner/transaction-runner;TransactionRunner;@google-cloud/spanner/transaction-runner;TransactionRunnerStatic;Instance",
"@google-cloud/spanner/transaction-runner;TransactionRunnerStatic;@google-cloud/spanner/transaction-runner;;Member[TransactionRunner]",
"@google-cloud/spanner/transaction;Dml;@google-cloud/spanner/transaction;DmlStatic;Instance",
"@google-cloud/spanner/transaction;Dml;@google-cloud/spanner;PartitionedDml;",
"@google-cloud/spanner/transaction;Dml;@google-cloud/spanner;Transaction;",
"@google-cloud/spanner/transaction;DmlStatic;@google-cloud/spanner/transaction;;Member[Dml]",
"@google-cloud/spanner;BackupStatic;@google-cloud/spanner/backup;;Member[Backup]",
"@google-cloud/spanner;BackupStatic;@google-cloud/spanner/backup;BackupStatic;",
"@google-cloud/spanner;BackupStatic;@google-cloud/spanner;;Member[Backup]",
"@google-cloud/spanner;Database;@google-cloud/spanner/database;Database;",
"@google-cloud/spanner;Database;@google-cloud/spanner/database;DatabaseCallback;TypeVar[@google-cloud/spanner/common.ResourceCallback.0]",
"@google-cloud/spanner;Database;@google-cloud/spanner/database;RestoreDatabaseCallback;TypeVar[@google-cloud/spanner/common.LongRunningCallback.0]",
"@google-cloud/spanner;Database;@google-cloud/spanner/database;SessionPoolConstructor;Argument[0]",
"@google-cloud/spanner;Database;@google-cloud/spanner/instance;CreateDatabaseCallback;TypeVar[@google-cloud/spanner/common.LongRunningCallback.0]",
"@google-cloud/spanner;Database;@google-cloud/spanner/instance;GetDatabasesCallback;TypeVar[@google-cloud/spanner/common.RequestCallback.0]",
"@google-cloud/spanner;Database;@google-cloud/spanner;DatabaseStatic;Instance",
"@google-cloud/spanner;Database;@google-cloud/spanner;Instance;Member[database].ReturnValue",
"@google-cloud/spanner;Database;@google-cloud/spanner;SessionPool;Member[database]",
"@google-cloud/spanner;Database;@google-cloud/spanner;SessionPoolStatic;Argument[0]",
"@google-cloud/spanner;Database;@google-cloud/spanner;SessionStatic;Argument[0]",
"@google-cloud/spanner;Database;@google-cloud/spanner;Table;Member[database]",
"@google-cloud/spanner;Database;@google-cloud/spanner;TableStatic;Argument[0]",
"@google-cloud/spanner;DatabaseStatic;@google-cloud/spanner/database;;Member[Database]",
"@google-cloud/spanner;DatabaseStatic;@google-cloud/spanner/database;DatabaseStatic;",
"@google-cloud/spanner;DatabaseStatic;@google-cloud/spanner;;Member[Database]",
"@google-cloud/spanner;GetInstancesCallback;@google-cloud/spanner/build/src;GetInstancesCallback;",
"@google-cloud/spanner;GetInstancesCallback;@google-cloud/spanner;Spanner;Member[getInstances].Argument[1]",
"@google-cloud/spanner;GetInstancesCallback;@google-cloud/spanner;Spanner;Member[getInstances].WithArity[1].Argument[0]",
"@google-cloud/spanner;Instance;@google-cloud/spanner/instance;CreateInstanceCallback;TypeVar[@google-cloud/spanner/common.LongRunningCallback.0]",
"@google-cloud/spanner;Instance;@google-cloud/spanner/instance;GetInstanceCallback;TypeVar[@google-cloud/spanner/common.ResourceCallback.0]",
"@google-cloud/spanner;Instance;@google-cloud/spanner/instance;Instance;",
"@google-cloud/spanner;Instance;@google-cloud/spanner;BackupStatic;Argument[0]",
"@google-cloud/spanner;Instance;@google-cloud/spanner;DatabaseStatic;Argument[0]",
"@google-cloud/spanner;Instance;@google-cloud/spanner;GetInstancesCallback;TypeVar[@google-cloud/spanner/common.PagedCallback.0]",
"@google-cloud/spanner;Instance;@google-cloud/spanner;InstanceStatic;Instance",
"@google-cloud/spanner;Instance;@google-cloud/spanner;Spanner;Member[instance].ReturnValue",
"@google-cloud/spanner;InstanceStatic;@google-cloud/spanner/instance;;Member[Instance]",
"@google-cloud/spanner;InstanceStatic;@google-cloud/spanner/instance;InstanceStatic;",
"@google-cloud/spanner;InstanceStatic;@google-cloud/spanner;;Member[Instance]",
"@google-cloud/spanner;PartitionedDml;@google-cloud/spanner/transaction;PartitionedDml;",
"@google-cloud/spanner;PartitionedDml;@google-cloud/spanner;PartitionedDmlStatic;Instance",
"@google-cloud/spanner;PartitionedDml;@google-cloud/spanner;Session;Member[partitionedDml].ReturnValue",
"@google-cloud/spanner;PartitionedDmlStatic;@google-cloud/spanner/transaction;;Member[PartitionedDml]",
"@google-cloud/spanner;PartitionedDmlStatic;@google-cloud/spanner/transaction;PartitionedDmlStatic;",
"@google-cloud/spanner;PartitionedDmlStatic;@google-cloud/spanner;;Member[PartitionedDml]",
"@google-cloud/spanner;Session;@google-cloud/spanner/batch-transaction;TransactionIdentifier;Member[session]",
"@google-cloud/spanner;Session;@google-cloud/spanner/database;BatchCreateSessionsCallback;TypeVar[@google-cloud/spanner/common.ResourceCallback.0].ArrayElement",
"@google-cloud/spanner;Session;@google-cloud/spanner/database;CreateSessionCallback;TypeVar[@google-cloud/spanner/common.ResourceCallback.0]",
"@google-cloud/spanner;Session;@google-cloud/spanner/database;GetSessionsCallback;TypeVar[@google-cloud/spanner/common.RequestCallback.0]",
"@google-cloud/spanner;Session;@google-cloud/spanner/database;PoolRequestCallback;TypeVar[@google-cloud/spanner/common.RequestCallback.0]",
"@google-cloud/spanner;Session;@google-cloud/spanner/session-pool;GetReadSessionCallback;TypeVar[@google-cloud/spanner/common.NormalCallback.0]",
"@google-cloud/spanner;Session;@google-cloud/spanner/session-pool;GetWriteSessionCallback;Argument[1]",
"@google-cloud/spanner;Session;@google-cloud/spanner/session-pool;SessionPoolInterface;Member[release].Argument[0]",
"@google-cloud/spanner;Session;@google-cloud/spanner/session;Session;",
"@google-cloud/spanner;Session;@google-cloud/spanner/transaction-runner;Runner;Member[session]",
"@google-cloud/spanner;Session;@google-cloud/spanner;Database;Member[_runPartitionedUpdate].Argument[0]",
"@google-cloud/spanner;Session;@google-cloud/spanner;Database;Member[makePooledRequest_].WithArity[1].ReturnValue.Awaited",
"@google-cloud/spanner;Session;@google-cloud/spanner;Database;Member[session].ReturnValue",
"@google-cloud/spanner;Session;@google-cloud/spanner;SessionPool;Member[_acquire,_getSession].ReturnValue.Awaited",
"@google-cloud/spanner;Session;@google-cloud/spanner;SessionPool;Member[_borrow,_destroy,_isValidSession,_ping,_prepareTransaction,_release,release].Argument[0]",
"@google-cloud/spanner;Session;@google-cloud/spanner;SessionPool;Member[_borrowFrom,_borrowNextAvailableSession].ReturnValue",
"@google-cloud/spanner;Session;@google-cloud/spanner;SessionPool;Member[_getIdleSessions].ReturnValue.ArrayElement",
"@google-cloud/spanner;Session;@google-cloud/spanner;SessionStatic;Instance",
"@google-cloud/spanner;Session;@google-cloud/spanner;Snapshot;Member[session]",
"@google-cloud/spanner;SessionPool;@google-cloud/spanner/instance;CreateDatabaseOptions;Member[poolCtor]",
"@google-cloud/spanner;SessionPool;@google-cloud/spanner/session-pool;SessionPool;",
"@google-cloud/spanner;SessionPool;@google-cloud/spanner;SessionPoolStatic;Instance",
"@google-cloud/spanner;SessionPoolStatic;@google-cloud/spanner/session-pool;;Member[SessionPool]",
"@google-cloud/spanner;SessionPoolStatic;@google-cloud/spanner/session-pool;SessionPoolStatic;",
"@google-cloud/spanner;SessionPoolStatic;@google-cloud/spanner;;Member[SessionPool]",
"@google-cloud/spanner;SessionStatic;@google-cloud/spanner/session;;Member[Session]",
"@google-cloud/spanner;SessionStatic;@google-cloud/spanner/session;SessionStatic;",
"@google-cloud/spanner;SessionStatic;@google-cloud/spanner;;Member[Session]",
"@google-cloud/spanner;Snapshot;@google-cloud/spanner/batch-transaction;BatchTransaction;",
"@google-cloud/spanner;Snapshot;@google-cloud/spanner/database;GetSnapshotCallback;TypeVar[@google-cloud/spanner/common.NormalCallback.0]",
"@google-cloud/spanner;Snapshot;@google-cloud/spanner/transaction;Dml;",
"@google-cloud/spanner;Snapshot;@google-cloud/spanner/transaction;Snapshot;",
"@google-cloud/spanner;Snapshot;@google-cloud/spanner;Session;Member[snapshot].ReturnValue",
"@google-cloud/spanner;Snapshot;@google-cloud/spanner;SnapshotStatic;Instance",
"@google-cloud/spanner;SnapshotStatic;@google-cloud/spanner/transaction;;Member[Snapshot]",
"@google-cloud/spanner;SnapshotStatic;@google-cloud/spanner/transaction;SnapshotStatic;",
"@google-cloud/spanner;SnapshotStatic;@google-cloud/spanner;;Member[Snapshot]",
"@google-cloud/spanner;Spanner;@google-cloud/spanner;InstanceStatic;Argument[0]",
"@google-cloud/spanner;Spanner;@google-cloud/spanner;SpannerStatic;Instance",
"@google-cloud/spanner;SpannerStatic;@google-cloud/spanner;;Member[Spanner]",
"@google-cloud/spanner;Table;@google-cloud/spanner/table;CreateTableCallback;TypeVar[@google-cloud/spanner/common.LongRunningCallback.0]",
"@google-cloud/spanner;Table;@google-cloud/spanner/table;Table;",
"@google-cloud/spanner;Table;@google-cloud/spanner;Database;Member[table].ReturnValue",
"@google-cloud/spanner;Table;@google-cloud/spanner;TableStatic;Instance",
"@google-cloud/spanner;TableStatic;@google-cloud/spanner/table;;Member[Table]",
"@google-cloud/spanner;TableStatic;@google-cloud/spanner/table;TableStatic;",
"@google-cloud/spanner;TableStatic;@google-cloud/spanner;;Member[Table]",
"@google-cloud/spanner;Transaction;@google-cloud/spanner/database;GetTransactionCallback;TypeVar[@google-cloud/spanner/common.NormalCallback.0]",
"@google-cloud/spanner;Transaction;@google-cloud/spanner/session-pool;GetWriteSessionCallback;Argument[2]",
"@google-cloud/spanner;Transaction;@google-cloud/spanner/transaction-runner;AsyncRunTransactionCallback;Argument[0]",
"@google-cloud/spanner;Transaction;@google-cloud/spanner/transaction-runner;RunTransactionCallback;TypeVar[@google-cloud/spanner/common.NormalCallback.0]",
"@google-cloud/spanner;Transaction;@google-cloud/spanner/transaction-runner;Runner;Member[getTransaction].ReturnValue.Awaited",
"@google-cloud/spanner;Transaction;@google-cloud/spanner/transaction-runner;Runner;Member[transaction]",
"@google-cloud/spanner;Transaction;@google-cloud/spanner/transaction;Transaction;",
"@google-cloud/spanner;Transaction;@google-cloud/spanner;Session;Member[transaction].ReturnValue",
"@google-cloud/spanner;Transaction;@google-cloud/spanner;Session;Member[txn]",
"@google-cloud/spanner;Transaction;@google-cloud/spanner;TransactionStatic;Instance",
"@google-cloud/spanner;TransactionStatic;@google-cloud/spanner/transaction;;Member[Transaction]",
"@google-cloud/spanner;TransactionStatic;@google-cloud/spanner/transaction;TransactionStatic;",
"@google-cloud/spanner;TransactionStatic;@google-cloud/spanner;;Member[Transaction]",
"@google-cloud/spanner;v1.SpannerClient;@google-cloud/spanner/v1/spanner_client;SpannerClient;",
"@google-cloud/spanner;v1.SpannerClient;@google-cloud/spanner;v1.SpannerClientStatic;Instance",
"@google-cloud/spanner;v1.SpannerClientStatic;@google-cloud/spanner/v1/spanner_client;;Member[SpannerClient]",
"@google-cloud/spanner;v1.SpannerClientStatic;@google-cloud/spanner/v1/spanner_client;SpannerClientStatic;",
"@google-cloud/spanner;v1.SpannerClientStatic;@google-cloud/spanner;;Member[v1].Member[SpannerClient]"
],
"summaries": [],
"typeVariables": [
"@google-cloud/spanner/common.LongRunningCallback.0;Argument[1]",
"@google-cloud/spanner/common.NormalCallback.0;Argument[1]",
"@google-cloud/spanner/common.PagedCallback.0;Argument[1].ArrayElement",
"@google-cloud/spanner/common.RequestCallback.0;TypeVar[@google-cloud/spanner/common.NormalCallback.0,@google-cloud/spanner/common.PagedCallback.0]",
"@google-cloud/spanner/common.ResourceCallback.0;Argument[1]"
]
}
}

View File

@@ -0,0 +1,37 @@
/** Generated model file */
private import javascript
private class Types extends ModelInput::TypeModelCsv {
override predicate row(string row) {
row =
[
"sqlite3;Database;sqlite3;;Member[cached].Member[Database].ReturnValue", //
"sqlite3;Database;sqlite3;Database;Member[addListener,all,each,exec,get,on,once,prependListener,prependOnceListener,run].ReturnValue", //
"sqlite3;Database;sqlite3;DatabaseStatic;Instance", //
"sqlite3;Database;sqlite3;Statement;Member[finalize].ReturnValue", //
"sqlite3;DatabaseStatic;sqlite3;;Member[Database]", //
"sqlite3;DatabaseStatic;sqlite3;sqlite3;Member[Database]", //
"sqlite3;RunResult;sqlite3;sqlite3;Member[RunResult]", //
"sqlite3;Statement;sqlite3;Database;Member[prepare].ReturnValue", //
"sqlite3;Statement;sqlite3;RunResult;", //
"sqlite3;Statement;sqlite3;Statement;Member[all,bind,each,get,reset,run].ReturnValue", //
"sqlite3;Statement;sqlite3;StatementStatic;Instance", //
"sqlite3;StatementStatic;sqlite3;;Member[Statement]", //
"sqlite3;StatementStatic;sqlite3;sqlite3;Member[Statement]", //
"sqlite3;sqlite3;sqlite3;;Member[verbose].ReturnValue", //
"sqlite3;sqlite3;sqlite3;sqlite3;Member[verbose].ReturnValue", //
]
}
}
private class Summaries extends ModelInput::SummaryModelCsv {
override predicate row(string row) {
row =
[
"sqlite3;Database;;;Member[addListener,all,each,exec,get,on,once,prependListener,prependOnceListener,run].ReturnValue;type", //
"sqlite3;Statement;;;Member[all,bind,each,get,reset,run].ReturnValue;type", //
"sqlite3;sqlite3;;;Member[verbose].ReturnValue;type", //
]
}
}

View File

@@ -0,0 +1,43 @@
{
"packages": {
"@types/sqlite3": "3.1.8"
},
"resolutions": {
"@types/node": "17.0.35"
},
"language": "javascript",
"usedTypes": {
"sources": [
"sqlite3;Database"
]
},
"model": {
"sinks": []
},
"generatedModel": {
"//": "Autogenerated section. Manual edits in here will be lost.",
"typeDefinitions": [
"sqlite3;Database;sqlite3;;Member[cached].Member[Database].ReturnValue",
"sqlite3;Database;sqlite3;Database;Member[addListener,all,each,exec,get,on,once,prependListener,prependOnceListener,run].ReturnValue",
"sqlite3;Database;sqlite3;DatabaseStatic;Instance",
"sqlite3;Database;sqlite3;Statement;Member[finalize].ReturnValue",
"sqlite3;DatabaseStatic;sqlite3;;Member[Database]",
"sqlite3;DatabaseStatic;sqlite3;sqlite3;Member[Database]",
"sqlite3;RunResult;sqlite3;sqlite3;Member[RunResult]",
"sqlite3;Statement;sqlite3;Database;Member[prepare].ReturnValue",
"sqlite3;Statement;sqlite3;RunResult;",
"sqlite3;Statement;sqlite3;Statement;Member[all,bind,each,get,reset,run].ReturnValue",
"sqlite3;Statement;sqlite3;StatementStatic;Instance",
"sqlite3;StatementStatic;sqlite3;;Member[Statement]",
"sqlite3;StatementStatic;sqlite3;sqlite3;Member[Statement]",
"sqlite3;sqlite3;sqlite3;;Member[verbose].ReturnValue",
"sqlite3;sqlite3;sqlite3;sqlite3;Member[verbose].ReturnValue"
],
"summaries": [
"sqlite3;Database;;;Member[addListener,all,each,exec,get,on,once,prependListener,prependOnceListener,run].ReturnValue;type",
"sqlite3;Statement;;;Member[all,bind,each,get,reset,run].ReturnValue;type",
"sqlite3;sqlite3;;;Member[verbose].ReturnValue;type"
],
"typeVariables": []
}
}

View File

@@ -1,9 +1,30 @@
getANodeOfType
| body-parser | | index.ts:4:20:4:41 | require ... arser") |
| express | | index.ts:3:17:3:34 | require("express") |
| mongodb | | index.ts:1:8:1:19 | * as mongodb |
| mongodb | AbstractCursor | index.ts:14:3:14:33 | getColl ... d: v }) |
| mongodb | Collection | index.ts:14:3:14:17 | getCollection() |
| mongodb | FindCursor | index.ts:14:3:14:33 | getColl ... d: v }) |
| mongodb | TypedEventEmitter | index.ts:14:3:14:33 | getColl ... d: v }) |
| mongoose | | index.ts:17:8:17:20 | * as mongoose |
| mongoose | AcceptsDiscriminator | index.ts:22:3:22:20 | getMongooseModel() |
| mongoose | Document | index.ts:22:3:22:20 | getMongooseModel() |
| mongoose | HydratedDocument | index.ts:22:3:22:20 | getMongooseModel() |
| mongoose | Model | index.ts:22:3:22:20 | getMongooseModel() |
| mongoose | Query | index.ts:22:3:22:20 | getMongooseModel() |
| mongoose | Query | index.ts:22:3:22:36 | getMong ... d: v }) |
| mongoose | Query | index.ts:23:3:23:20 | getMongooseQuery() |
| mongoose | Query | index.ts:23:3:23:36 | getMong ... d: v }) |
| mongoose | QueryWithHelpers | index.ts:22:3:22:36 | getMong ... d: v }) |
| mongoose | QueryWithHelpers | index.ts:23:3:23:36 | getMong ... d: v }) |
| mongoose | SessionOperation | index.ts:22:3:22:20 | getMongooseModel() |
| mongoose | SessionOperation | index.ts:22:3:22:36 | getMong ... d: v }) |
| mongoose | SessionOperation | index.ts:23:3:23:20 | getMongooseQuery() |
| mongoose | SessionOperation | index.ts:23:3:23:36 | getMong ... d: v }) |
| puppeteer | | index.ts:26:8:26:21 | * as puppeteer |
| puppeteer | Browser | index.ts:30:22:30:33 | this.browser |
getANodeOfTypeRaw
| mongodb | Collection | index.ts:14:3:14:17 | getCollection() |
| mongoose | Model | index.ts:22:3:22:20 | getMongooseModel() |
| mongoose | Query | index.ts:23:3:23:20 | getMongooseQuery() |
| puppeteer | Browser | index.ts:30:22:30:33 | this.browser |

View File

@@ -1,4 +1,9 @@
import javascript
from string mod, string tp
select mod, tp, API::Node::ofType(mod, tp).asSource()
query DataFlow::Node getANodeOfType(string package, string type) {
result = API::Node::ofType(package, type).asSource()
}
query DataFlow::Node getANodeOfTypeRaw(string package, string type) {
result = API::Internal::getANodeOfTypeRaw(package, type).asSource()
}

View File

@@ -1,14 +1,14 @@
(function() {
const password = '1234';
sink(password); // NOT OK
const s = JSON.stringify();
sink(s); // NOT OK
})();
(async function() {
const knex = require('knex');
const users = knex().select('*').from('users');
users.then(function (users) {
sink(users); // NOT OK
@@ -23,13 +23,13 @@
(function() {
const pg = require('pg');
const pool = new pg.Pool({});
pool.connect(async function (err, client, done) {
client.query('SELECT * FROM users', function (err, users) {
sink(users);
});
const thenable = client.query('SELECT * FROM users')
thenable.then(function(users) {
sink(users); // NOT OK
@@ -79,7 +79,7 @@
db.all('SELECT * FROM users', function (err, users) {
sink(users); // NOT OK
});
const sqlitepromise = db.all('SELECT * FROM users');
sink(await sqlitepromise); // NOT OK
@@ -100,13 +100,13 @@
(async function () {
const sql = require('mssql');
await sql.connect('...');
sql.query('SELECT * FROM users', function (err, users) {
sink(users); // NOT OK
});
const mssqlthenable = sql.query('SELECT * FROM users');
mssqlthenable.then(function (users) {
sink(users); // NOT OK
});
@@ -120,7 +120,7 @@
})();
(async function () {
const {Spanner} = require('@google-cloud/spanner');
const {Spanner, v1} = require('@google-cloud/spanner');
const db = new Spanner({projectId: 'test'})
.instance('instanceid')
.database('databaseid');
@@ -131,7 +131,7 @@
const [users] = (await db.executeSql('SELECT * FROM users', {}));
sink(users); // NOT OK
const spannerpromise = db.run({
sql: 'SELECT * FROM users'
});
@@ -144,7 +144,7 @@
sink(rows); // NOT OK
});
const client = new Spanner.v1.SpannerClient({});
const client = new v1.SpannerClient({});
client.executeSql('SELECT * FROM users', {}, function (err, users) {
sink(users); // NOT OK
});
@@ -166,7 +166,7 @@
(function () {
const { MongoClient } = require('mongodb');
MongoClient.connect('mongodb://localhost:1234', async function (err, db) {
const collection = db.collection('users');
const users = await collection.find({});
@@ -209,11 +209,11 @@
(async function () {
const { Collection } = require('marsdb');
const doc = new Collection('users');
const users = await doc.find({});
sink(users); // NOT OK
})();

View File

@@ -41,7 +41,11 @@
| sequelize-types.ts:7:24:7:35 | 'SELECT 123' |
| sequelize.js:8:17:8:118 | 'SELECT ... Y name' |
| sequelizeImport.js:3:17:3:118 | 'SELECT ... Y name' |
| spanner2.js:4:19:4:59 | "not SQ ... anyway" |
| spanner2.js:5:19:5:37 | { sql: "SQL code" } |
| spanner2.js:5:26:5:35 | "SQL code" |
| spanner2.js:6:28:6:68 | "not SQ ... anyway" |
| spanner2.js:7:28:7:46 | { sql: "SQL code" } |
| spanner2.js:7:35:7:44 | "SQL code" |
| spanner-types.ts:4:12:4:23 | 'SELECT 123' |
| spanner.js:6:8:6:17 | "SQL code" |

View File

@@ -1,7 +1,7 @@
const spanner = require("@google-cloud/spanner");
const client = new spanner.v1.SpannerClient({});
client.executeSql("not SQL code", (err, rows) => {});
client.executeSql("not SQL code but treated as sink anyway", (err, rows) => {});
client.executeSql({ sql: "SQL code" }, (err, rows) => {});
client.executeStreamingSql("not SQL code", (err, rows) => {});
client.executeStreamingSql("not SQL code but treated as sink anyway", (err, rows) => {});
client.executeStreamingSql({ sql: "SQL code" }, (err, rows) => {});

View File

@@ -6,8 +6,8 @@
| json-schema-validator.js:55:13:55:27 | doc.find(query) |
| json-schema-validator.js:59:13:59:27 | doc.find(query) |
| json-schema-validator.js:61:13:61:27 | doc.find(query) |
| marsdb-flow-to.js:14:3:14:22 | db.myDoc.find(query) |
| marsdb.js:16:3:16:17 | doc.find(query) |
| marsdb-flow-to.js:14:3:14:41 | db.myDo ... => {}) |
| marsdb.js:16:3:16:36 | doc.fin ... => {}) |
| minimongo.js:18:3:18:17 | doc.find(query) |
| mongodb.js:18:7:18:21 | doc.find(query) |
| mongodb.js:21:7:21:48 | doc.fin ... itle }) |

View File

@@ -11,5 +11,5 @@ app.post("/documents/find", (req, res) => {
query.title = req.body.title;
// NOT OK: query is tainted by user-provided object value
db.myDoc.find(query);
db.myDoc.find(query, (err, data) => {});
});

View File

@@ -13,5 +13,5 @@ app.post("/documents/find", (req, res) => {
query.title = req.body.title;
// NOT OK: query is tainted by user-provided object value
doc.find(query);
doc.find(query, (err, data) => {});
});

View File

@@ -5,7 +5,7 @@ require('express')().get('/foo', (req, res) => {
var query = "SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY='"
+ req.params.category + "' ORDER BY PRICE";
db.any(query); // NOT OK
db.many(query); // NOT OK
db.manyOrNone(query); // NOT OK
@@ -17,7 +17,7 @@ require('express')().get('/foo', (req, res) => {
db.oneOrNone(query); // NOT OK
db.query(query); // NOT OK
db.result(query); // NOT OK
db.one({
text: query // NOT OK
});
@@ -59,7 +59,7 @@ require('express')().get('/foo', (req, res) => {
db.task(t => {
return t.one(query); // NOT OK
});
db.task(
db.taskIf(
{ cnd: t => t.one(query) }, // NOT OK
t => t.one(query) // NOT OK
);