From 7ca2412ba28f321639fcaa6ab3a939521f1bc77a Mon Sep 17 00:00:00 2001 From: Nick Rolfe Date: Tue, 10 Nov 2026 11:30:56 +0000 Subject: [PATCH 1/3] DO NOT MERGE: JS enumerate all extensible predicates --- javascript/ql/test/modelconversion/Empty.js | 0 .../modelconversion/EnumerateModels.expected | 1770 +++++++++++++++++ .../test/modelconversion/EnumerateModels.ql | 44 + 3 files changed, 1814 insertions(+) create mode 100644 javascript/ql/test/modelconversion/Empty.js create mode 100644 javascript/ql/test/modelconversion/EnumerateModels.expected create mode 100644 javascript/ql/test/modelconversion/EnumerateModels.ql diff --git a/javascript/ql/test/modelconversion/Empty.js b/javascript/ql/test/modelconversion/Empty.js new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/javascript/ql/test/modelconversion/EnumerateModels.expected b/javascript/ql/test/modelconversion/EnumerateModels.expected new file mode 100644 index 000000000000..a051c769ece5 --- /dev/null +++ b/javascript/ql/test/modelconversion/EnumerateModels.expected @@ -0,0 +1,1770 @@ +requiredHelmetSecuritySettings +| contentSecurityPolicy | +| frameguard | +isCdnDomainWithCheckingRequireds +| cdnjs.cloudflare.com | +| cdnjs.com | +| code.jquery.com | +isUntrustedDomains +| bootcdn.net | +| bootcss.com | +| polyfill.com | +| polyfill.io | +| polyfillcache.com | +| staticfile.net | +| staticfile.org | +typeModels +| 'underscore.string'.Wrapper | 'underscore.string' | ReturnValue | +| 'underscore.string'.Wrapper | 'underscore.string'.Wrapper | Member[insert,replaceAll,join,splice,prune,pad,lpad,rpad,repeat,surround,quote,q,rjust,ljust].ReturnValue | +| 'underscore.string'.Wrapper | 'underscore.string'.Wrapper | Member[slugify,capitalize,decapitalize,clean,cleanDiacritics,swapCase,escapeHTML,unescapeHTML,wrap,dedent,reverse,pred,succ,titleize,camelize,classify,underscored,dasherize,humanize,trim,ltrim,rtrim,truncate,sprintf,strRight,strRightBack,strLeft,strLeftBack,stripTags,unquote,strip,lstrip,rstrip,camelcase].ReturnValue | +| 'underscore.string'.Wrapper | 'underscore.string'.Wrapper | Member[tap].ReturnValue | +| 'underscore.string'.Wrapper | 'underscore.string'.Wrapper | Member[toUpperCase,toLowerCase,replace,slice,substring,substr,concat].ReturnValue | +| @apollo/server | @apollo/apollo-server-core | | +| @apollo/server | @apollo/apollo-server-express | | +| @apollo/server | @apollo/server | | +| @apollo/server | @apollo/server/standalone | | +| @apollo/server | apollo-server | | +| @apollo/server | apollo-server-core | | +| @apollo/server | apollo-server-express | | +| @aws-sdk/client.Client | @aws-sdk/client-athena | Member[AthenaClient] | +| @aws-sdk/client.Client | @aws-sdk/client-dynamodb | Member[DynamoDBClient,DynamoDB] | +| @aws-sdk/client.Client | @aws-sdk/client-rds-data | Member[RDSDataClient] | +| @aws-sdk/client.Client | @aws-sdk/client-s3 | Member[S3Client] | +| @google-cloud/spanner.BackupStatic | @google-cloud/spanner | Member[Backup] | +| @google-cloud/spanner.BackupStatic | @google-cloud/spanner/backup | Member[Backup] | +| @google-cloud/spanner.BackupStatic | @google-cloud/spanner/backup.BackupStatic | | +| @google-cloud/spanner.BatchTransaction | @google-cloud/spanner/batch-transaction.BatchTransaction | | +| @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.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.DatabaseStatic | @google-cloud/spanner | Member[Database] | +| @google-cloud/spanner.DatabaseStatic | @google-cloud/spanner/database | Member[Database] | +| @google-cloud/spanner.DatabaseStatic | @google-cloud/spanner/database.DatabaseStatic | | +| @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.GetInstancesCallback | @google-cloud/spanner/build/src.GetInstancesCallback | | +| @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.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.InstanceStatic | @google-cloud/spanner | Member[Instance] | +| @google-cloud/spanner.InstanceStatic | @google-cloud/spanner/instance | Member[Instance] | +| @google-cloud/spanner.InstanceStatic | @google-cloud/spanner/instance.InstanceStatic | | +| @google-cloud/spanner.PartitionedDml | @google-cloud/spanner.PartitionedDmlStatic | Instance | +| @google-cloud/spanner.PartitionedDml | @google-cloud/spanner.Session | Member[partitionedDml].ReturnValue | +| @google-cloud/spanner.PartitionedDml | @google-cloud/spanner/transaction.PartitionedDml | | +| @google-cloud/spanner.PartitionedDmlStatic | @google-cloud/spanner | Member[PartitionedDml] | +| @google-cloud/spanner.PartitionedDmlStatic | @google-cloud/spanner/transaction | Member[PartitionedDml] | +| @google-cloud/spanner.PartitionedDmlStatic | @google-cloud/spanner/transaction.PartitionedDmlStatic | | +| @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.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.SessionPool | @google-cloud/spanner.SessionPoolStatic | Instance | +| @google-cloud/spanner.SessionPool | @google-cloud/spanner/instance.CreateDatabaseOptions | Member[poolCtor] | +| @google-cloud/spanner.SessionPool | @google-cloud/spanner/session-pool.SessionPool | | +| @google-cloud/spanner.SessionPoolStatic | @google-cloud/spanner | Member[SessionPool] | +| @google-cloud/spanner.SessionPoolStatic | @google-cloud/spanner/session-pool | Member[SessionPool] | +| @google-cloud/spanner.SessionPoolStatic | @google-cloud/spanner/session-pool.SessionPoolStatic | | +| @google-cloud/spanner.SessionStatic | @google-cloud/spanner | Member[Session] | +| @google-cloud/spanner.SessionStatic | @google-cloud/spanner/session | Member[Session] | +| @google-cloud/spanner.SessionStatic | @google-cloud/spanner/session.SessionStatic | | +| @google-cloud/spanner.Snapshot | @google-cloud/spanner.Session | Member[snapshot].ReturnValue | +| @google-cloud/spanner.Snapshot | @google-cloud/spanner.SnapshotStatic | Instance | +| @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.SnapshotStatic | @google-cloud/spanner | Member[Snapshot] | +| @google-cloud/spanner.SnapshotStatic | @google-cloud/spanner/transaction | Member[Snapshot] | +| @google-cloud/spanner.SnapshotStatic | @google-cloud/spanner/transaction.SnapshotStatic | | +| @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.Database | Member[table].ReturnValue | +| @google-cloud/spanner.Table | @google-cloud/spanner.TableStatic | Instance | +| @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.TableStatic | @google-cloud/spanner | Member[Table] | +| @google-cloud/spanner.TableStatic | @google-cloud/spanner/table | Member[Table] | +| @google-cloud/spanner.TableStatic | @google-cloud/spanner/table.TableStatic | | +| @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.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.TransactionStatic | @google-cloud/spanner | Member[Transaction] | +| @google-cloud/spanner.TransactionStatic | @google-cloud/spanner/transaction | Member[Transaction] | +| @google-cloud/spanner.TransactionStatic | @google-cloud/spanner/transaction.TransactionStatic | | +| @google-cloud/spanner.v1.SpannerClient | @google-cloud/spanner.v1.SpannerClientStatic | Instance | +| @google-cloud/spanner.v1.SpannerClient | @google-cloud/spanner/v1/spanner_client.SpannerClient | | +| @google-cloud/spanner.v1.SpannerClientStatic | @google-cloud/spanner | Member[v1].Member[SpannerClient] | +| @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.~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] | +| @google-cloud/spanner/batch-transaction.BatchTransaction | @google-cloud/spanner.Database | Member[batchTransaction].ReturnValue | +| @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.BatchTransactionStatic | @google-cloud/spanner/batch-transaction | Member[BatchTransaction] | +| @google-cloud/spanner/batch-transaction.TransactionIdentifier | @google-cloud/spanner.Database | Member[batchTransaction].Argument[0] | +| @google-cloud/spanner/batch-transaction.TransactionIdentifier | @google-cloud/spanner/batch-transaction.BatchTransaction | Member[identifier].ReturnValue | +| @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.SessionPool | Member[getReadSession].Argument[0] | +| @google-cloud/spanner/session-pool.GetReadSessionCallback | @google-cloud/spanner/session-pool.SessionPoolInterface | Member[getReadSession].Argument[0] | +| @google-cloud/spanner/session-pool.GetWriteSessionCallback | @google-cloud/spanner.SessionPool | Member[getWriteSession].Argument[0] | +| @google-cloud/spanner/session-pool.GetWriteSessionCallback | @google-cloud/spanner/session-pool.SessionPoolInterface | Member[getWriteSession].Argument[0] | +| @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/session-pool.SessionPoolInterface | @google-cloud/spanner/database.SessionPoolConstructor | Instance | +| @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.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.AsyncRunTransactionCallback | @google-cloud/spanner/transaction-runner.AsyncTransactionRunnerStatic | Argument[2] | +| @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.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.RunTransactionCallback | @google-cloud/spanner/transaction-runner.TransactionRunnerStatic | Argument[2] | +| @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.PartitionedDml | | +| @google-cloud/spanner/transaction.Dml | @google-cloud/spanner.Transaction | | +| @google-cloud/spanner/transaction.Dml | @google-cloud/spanner/transaction.DmlStatic | Instance | +| @google-cloud/spanner/transaction.DmlStatic | @google-cloud/spanner/transaction | Member[Dml] | +| @modelcontextprotocol/sdk.McpServer | '@modelcontextprotocol/sdk/server/mcp.js' | Member[McpServer].Instance | +| @modelcontextprotocol/sdk.McpServer | '@modelcontextprotocol/sdk/server/mcp.js'.McpServer | | +| @modelcontextprotocol/sdk.McpServer | @modelcontextprotocol/sdk/server/mcp | Member[McpServer].Instance | +| @modelcontextprotocol/sdk.McpServer | @modelcontextprotocol/server | Member[McpServer].Instance | +| @modelcontextprotocol/sdk.Server | '@modelcontextprotocol/sdk/server/index.js' | Member[Server].Instance | +| @modelcontextprotocol/sdk.Server | @modelcontextprotocol/sdk.McpServer | Member[server] | +| @modelcontextprotocol/sdk.Server | @modelcontextprotocol/sdk/server/index | Member[Server].Instance | +| @modelcontextprotocol/sdk.Server | @modelcontextprotocol/server | Member[Server].Instance | +| ApolloServer | @apollo/server | Member[ApolloServer] | +| GraphQLApollo | @apollo/server | Member[gql] | +| anthropic.Client | @anthropic-ai/sdk | Instance | +| aws-sdk.Athena | aws-sdk | Member[Athena] | +| aws-sdk.DynamoDB | aws-sdk | Member[DynamoDB] | +| aws-sdk.RDSDataService | aws-sdk | Member[RDSDataService] | +| aws-sdk.S3 | aws-sdk | Member[S3] | +| 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 | | +| fastmcp.FastMCP | fastmcp | Member[FastMCP].Instance | +| global.NodeJS.EventEmitter | events | | +| google-genai.Client | @google/genai | Member[GoogleGenAI].Instance | +| hdb.Client | @sap/hdbext | Member[middleware].ReturnValue.GuardedRouteHandler.Parameter[0].Member[db] | +| hdb.Client | hdb | Member[createClient].ReturnValue | +| langchain.Agent | langchain | Member[createAgent].ReturnValue | +| langchain.AgentExecutor | langchain/agents | Member[AgentExecutor].Instance | +| langchain.AgentExecutor | langchain/agents | Member[AgentExecutor].Member[fromAgentAndTools].ReturnValue | +| langchain.ChatModel | @langchain/anthropic | Member[ChatAnthropic].Instance | +| langchain.ChatModel | @langchain/aws | Member[BedrockChat,ChatBedrockConverse].Instance | +| langchain.ChatModel | @langchain/cohere | Member[ChatCohere].Instance | +| langchain.ChatModel | @langchain/community/chat_models/fireworks | Member[ChatFireworks].Instance | +| langchain.ChatModel | @langchain/community/chat_models/togetherai | Member[ChatTogetherAI].Instance | +| langchain.ChatModel | @langchain/google-genai | Member[ChatGoogleGenerativeAI].Instance | +| langchain.ChatModel | @langchain/groq | Member[ChatGroq].Instance | +| langchain.ChatModel | @langchain/mistralai | Member[ChatMistralAI].Instance | +| langchain.ChatModel | @langchain/ollama | Member[ChatOllama].Instance | +| langchain.ChatModel | @langchain/openai | Member[ChatOpenAI].Instance | +| langchain.ChatModel | @langchain/openrouter | Member[ChatOpenRouter].Instance | +| langchain.ChatModel | @langchain/xai | Member[ChatXAI].Instance | +| langchain.ChatModel | langchain | Member[initChatModel].ReturnValue.Awaited | +| langchain.LLMChain | langchain/chains | Member[LLMChain].Instance | +| minimongo.HybridCollection | minimongo.HybridCollectionStatic | Instance | +| minimongo.HybridCollection | minimongo/lib/HybridDb.HybridCollection | | +| minimongo.HybridCollection | minimongo/lib/HybridDb.default | Member[collections].AnyMember | +| minimongo.HybridCollectionStatic | minimongo | Member[HybridCollection] | +| minimongo.HybridCollectionStatic | minimongo/lib/HybridDb | Member[HybridCollection] | +| minimongo.HybridCollectionStatic | minimongo/lib/HybridDb.HybridCollectionStatic | | +| minimongo.MinimongoBaseCollection | minimongo.HybridCollection | | +| minimongo.MinimongoBaseCollection | minimongo.MinimongoCollection | | +| minimongo.MinimongoBaseCollection | minimongo.MinimongoDb | AnyMember | +| minimongo.MinimongoBaseCollection | minimongo.MinimongoLocalCollection | | +| minimongo.MinimongoBaseCollection | minimongo/RemoteDb.Collection | | +| minimongo.MinimongoBaseCollection | minimongo/lib/types.MinimongoBaseCollection | | +| minimongo.MinimongoCollection | minimongo.HybridCollection | Member[remoteCol] | +| minimongo.MinimongoCollection | minimongo.MinimongoDb | Member[collections].AnyMember | +| 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.MinimongoDb | minimongo.MinimongoDb | Member[remoteDb] | +| minimongo.MinimongoDb | minimongo.MinimongoLocalDb | | +| 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.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.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.MinimongoLocalDb | minimongo.MinimongoDb | Member[localDb] | +| 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/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 | Member[HybridDb] | +| minimongo/lib/HybridDb.defaultStatic | minimongo/lib/HybridDb | Member[default] | +| minimongo/lib/IndexedDb.default | minimongo | Member[utils].Member[autoselectLocalDb].ReturnValue | +| minimongo/lib/IndexedDb.default | minimongo/lib/IndexedDb.defaultStatic | Instance | +| minimongo/lib/IndexedDb.defaultStatic | minimongo | Member[IndexedDb] | +| minimongo/lib/IndexedDb.defaultStatic | minimongo/lib/IndexedDb | Member[default] | +| minimongo/lib/LocalStorageDb.default | minimongo | Member[utils].Member[autoselectLocalDb].ReturnValue | +| minimongo/lib/LocalStorageDb.default | minimongo/lib/LocalStorageDb.defaultStatic | Instance | +| minimongo/lib/LocalStorageDb.defaultStatic | minimongo | Member[LocalStorageDb] | +| minimongo/lib/LocalStorageDb.defaultStatic | minimongo/lib/LocalStorageDb | Member[default] | +| minimongo/lib/MemoryDb.default | minimongo | Member[utils].Member[autoselectLocalDb].ReturnValue | +| minimongo/lib/MemoryDb.default | minimongo/lib/MemoryDb.defaultStatic | Instance | +| minimongo/lib/MemoryDb.defaultStatic | minimongo | Member[MemoryDb] | +| minimongo/lib/MemoryDb.defaultStatic | minimongo/lib/MemoryDb | Member[default] | +| minimongo/lib/RemoteDb.default | minimongo/lib/RemoteDb.defaultStatic | Instance | +| minimongo/lib/RemoteDb.defaultStatic | minimongo | Member[RemoteDb] | +| minimongo/lib/RemoteDb.defaultStatic | minimongo/lib/RemoteDb | Member[default] | +| minimongo/lib/ReplicatingDb.default | minimongo/lib/ReplicatingDb.defaultStatic | Instance | +| minimongo/lib/ReplicatingDb.defaultStatic | minimongo | Member[ReplicatingDb] | +| minimongo/lib/ReplicatingDb.defaultStatic | minimongo/lib/ReplicatingDb | Member[default] | +| minimongo/lib/WebSQLDb.default | minimongo | Member[utils].Member[autoselectLocalDb].ReturnValue | +| minimongo/lib/WebSQLDb.default | minimongo/lib/WebSQLDb.defaultStatic | Instance | +| minimongo/lib/WebSQLDb.defaultStatic | minimongo | Member[WebSQLDb] | +| minimongo/lib/WebSQLDb.defaultStatic | minimongo/lib/WebSQLDb | Member[default] | +| mongodb | mongoose | Member[mongodb] | +| mongodb.AbstractCursor | mongodb.FindCursor | | +| mongodb.AbstractCursor | mongodb.ListCollectionsCursor | | +| mongodb.AbstractCursor | mongodb.ListIndexesCursor | | +| mongodb.AbstractCursorOptions | mongodb.AggregationCursorOptions | | +| mongodb.AbstractCursorOptions | mongodb/mongodb.AbstractCursorOptions | | +| mongodb.AbstractCursorOptions | mongoose.mongodb.AbstractCursorOptions | | +| mongodb.AddUserOptions | mongodb.Admin | Member[addUser].Argument[1,2] | +| mongodb.AddUserOptions | mongodb.Db | Member[addUser].Argument[1,2] | +| mongodb.AddUserOptions | mongodb/mongodb.AddUserOptions | | +| mongodb.AddUserOptions | mongoose.mongodb.AddUserOptions | | +| mongodb.Admin | mongodb.AdminStatic | Instance | +| mongodb.Admin | mongodb.Db | Member[admin].ReturnValue | +| mongodb.Admin | mongodb/mongodb.Admin | | +| mongodb.Admin | mongoose.mongodb.Admin | | +| mongodb.AdminStatic | mongodb | Member[Admin] | +| mongodb.AdminStatic | mongodb/mongodb.AdminStatic | | +| mongodb.AdminStatic | mongoose.mongodb.AdminStatic | | +| 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 | mongodb/mongodb.AggregateOptions | | +| mongodb.AggregateOptions | mongoose.mongodb.AggregateOptions | | +| mongodb.AggregationCursorOptions | mongodb/mongodb.AggregationCursorOptions | | +| mongodb.AggregationCursorOptions | mongoose.mongodb.AggregationCursorOptions | | +| mongodb.AnyBulkWriteOperation | mongodb.BulkOperationBase | Member[raw].Argument[0] | +| mongodb.AnyBulkWriteOperation | mongodb.Collection | Member[bulkWrite].Argument[0].ArrayElement | +| mongodb.AnyBulkWriteOperation | mongodb/mongodb.AnyBulkWriteOperation | | +| mongodb.AnyBulkWriteOperation | mongoose.mongodb.AnyBulkWriteOperation | | +| mongodb.Auth | mongodb.MongoClientOptions | Member[auth] | +| mongodb.Auth | mongodb/mongodb.Auth | | +| mongodb.Auth | mongoose.mongodb.Auth | | +| 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 | mongodb/mongodb.AutoEncrypter | | +| mongodb.AutoEncrypter | mongoose.mongodb.AutoEncrypter | | +| mongodb.AutoEncryptionOptions | mongodb.AutoEncrypter | Argument[1] | +| mongodb.AutoEncryptionOptions | mongodb.MongoClientOptions | Member[autoEncryption] | +| mongodb.AutoEncryptionOptions | mongodb/mongodb.AutoEncryptionOptions | | +| mongodb.AutoEncryptionOptions | mongoose.mongodb.AutoEncryptionOptions | | +| 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 | mongodb/mongodb.BulkOperationBase | | +| mongodb.BulkOperationBase | mongoose.mongodb.BulkOperationBase | | +| mongodb.BulkOperationBaseStatic | mongodb | Member[BulkOperationBase] | +| mongodb.BulkOperationBaseStatic | mongodb/mongodb.BulkOperationBaseStatic | | +| mongodb.BulkOperationBaseStatic | mongoose.mongodb.BulkOperationBaseStatic | | +| 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 | mongodb/mongodb.BulkWriteOptions | | +| mongodb.BulkWriteOptions | mongoose.mongodb.BulkWriteOptions | | +| 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 | mongodb/mongodb.ChangeStream | | +| mongodb.ChangeStream | mongoose.mongodb.ChangeStream | | +| 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 | mongodb/mongodb.ChangeStreamOptions | | +| mongodb.ChangeStreamOptions | mongoose.mongodb.ChangeStreamOptions | | +| mongodb.ChangeStreamStatic | mongodb | Member[ChangeStream] | +| mongodb.ChangeStreamStatic | mongodb/mongodb.ChangeStreamStatic | | +| mongodb.ChangeStreamStatic | mongoose.mongodb.ChangeStreamStatic | | +| 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 | mongodb/mongodb.ClientSession | | +| mongodb.ClientSession | mongoose.mongodb.ClientSession | | +| mongodb.ClientSessionEvents | mongodb/mongodb.ClientSessionEvents | | +| mongodb.ClientSessionEvents | mongoose.mongodb.ClientSessionEvents | | +| mongodb.ClientSessionOptions | mongodb.MongoClient | Member[startSession].Argument[0] | +| mongodb.ClientSessionOptions | mongodb.MongoClient | Member[withSession].WithArity[2].Argument[0] | +| mongodb.ClientSessionOptions | mongodb/mongodb.ClientSessionOptions | | +| mongodb.ClientSessionOptions | mongoose.mongodb.ClientSessionOptions | | +| mongodb.ClientSessionStatic | mongodb | Member[ClientSession] | +| mongodb.ClientSessionStatic | mongodb/mongodb.ClientSessionStatic | | +| mongodb.ClientSessionStatic | mongoose.mongodb.ClientSessionStatic | | +| mongodb.CollStatsOptions | mongodb.Collection | Member[stats].Argument[0] | +| mongodb.CollStatsOptions | mongodb/mongodb.CollStatsOptions | | +| mongodb.CollStatsOptions | mongoose.mongodb.CollStatsOptions | | +| mongodb.Collection | minimongo.MinimongoBaseCollection | | +| 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 | mongodb/mongodb.Collection | | +| mongodb.Collection | mongoose.mongodb.Collection | | +| mongodb.CollectionStatic | mongodb | Member[Collection] | +| mongodb.CollectionStatic | mongodb/mongodb.CollectionStatic | | +| mongodb.CollectionStatic | mongoose.mongodb.CollectionStatic | | +| 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 | mongodb/mongodb.CommandOperationOptions | | +| mongodb.CommandOperationOptions | mongoose.mongodb.CommandOperationOptions | | +| mongodb.ConnectionOptions | mongodb/mongodb.ConnectionOptions | | +| mongodb.ConnectionOptions | mongoose.mongodb.ConnectionOptions | | +| mongodb.CountDocumentsOptions | mongodb.Collection | Member[countDocuments].Argument[1] | +| mongodb.CountDocumentsOptions | mongodb/mongodb.CountDocumentsOptions | | +| mongodb.CountDocumentsOptions | mongoose.mongodb.CountDocumentsOptions | | +| mongodb.CountOptions | mongodb.Collection | Member[count].Argument[1] | +| mongodb.CountOptions | mongodb.FindCursor | Member[count].Argument[0] | +| mongodb.CountOptions | mongodb/mongodb.CountOptions | | +| mongodb.CountOptions | mongoose.mongodb.CountOptions | | +| mongodb.CreateCollectionOptions | mongodb.Db | Member[createCollection].WithArity[1,2,3].Argument[1] | +| mongodb.CreateCollectionOptions | mongodb/mongodb.CreateCollectionOptions | | +| mongodb.CreateCollectionOptions | mongoose.mongodb.CreateCollectionOptions | | +| mongodb.CreateIndexesOptions | mongodb.Collection | Member[createIndex,createIndexes].Argument[1] | +| mongodb.CreateIndexesOptions | mongodb.Db | Member[createIndex].Argument[2] | +| mongodb.CreateIndexesOptions | mongodb/mongodb.CreateIndexesOptions | | +| mongodb.CreateIndexesOptions | mongoose.mongodb.CreateIndexesOptions | | +| 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 | | +| mongodb.Db | mongodb.MongoClient | Member[db].ReturnValue | +| mongodb.Db | mongodb/mongodb.Db | | +| mongodb.Db | mongoose.mongodb.Db | | +| mongodb.DbStatic | mongodb | Member[Db] | +| mongodb.DbStatic | mongodb/mongodb.DbStatic | | +| mongodb.DbStatic | mongoose.mongodb.DbStatic | | +| mongodb.DbStatsOptions | mongodb.Db | Member[stats].Argument[0] | +| mongodb.DbStatsOptions | mongodb/mongodb.DbStatsOptions | | +| mongodb.DbStatsOptions | mongoose.mongodb.DbStatsOptions | | +| mongodb.DeleteManyModel | mongodb.AnyBulkWriteOperation | Member[deleteMany] | +| mongodb.DeleteManyModel | mongodb/mongodb.DeleteManyModel | | +| mongodb.DeleteManyModel | mongoose.mongodb.DeleteManyModel | | +| mongodb.DeleteOneModel | mongodb.AnyBulkWriteOperation | Member[deleteOne] | +| mongodb.DeleteOneModel | mongodb/mongodb.DeleteOneModel | | +| mongodb.DeleteOneModel | mongoose.mongodb.DeleteOneModel | | +| mongodb.DeleteOptions | mongodb.Collection | Member[deleteMany,deleteOne,remove].Argument[1] | +| mongodb.DeleteOptions | mongodb/mongodb.DeleteOptions | | +| mongodb.DeleteOptions | mongoose.mongodb.DeleteOptions | | +| mongodb.DistinctOptions | mongodb.Collection | Member[distinct].Argument[2] | +| mongodb.DistinctOptions | mongodb/mongodb.DistinctOptions | | +| mongodb.DistinctOptions | mongoose.mongodb.DistinctOptions | | +| mongodb.DropCollectionOptions | mongodb.Collection | Member[drop].Argument[0] | +| mongodb.DropCollectionOptions | mongodb.Db | Member[dropCollection].Argument[1] | +| mongodb.DropCollectionOptions | mongodb/mongodb.DropCollectionOptions | | +| mongodb.DropCollectionOptions | mongoose.mongodb.DropCollectionOptions | | +| mongodb.DropDatabaseOptions | mongodb.Db | Member[dropDatabase].Argument[0] | +| mongodb.DropDatabaseOptions | mongodb/mongodb.DropDatabaseOptions | | +| mongodb.DropDatabaseOptions | mongoose.mongodb.DropDatabaseOptions | | +| mongodb.DropIndexesOptions | mongodb.Collection | Member[dropIndex].Argument[1] | +| mongodb.DropIndexesOptions | mongodb.Collection | Member[dropIndexes].Argument[0] | +| mongodb.DropIndexesOptions | mongodb/mongodb.DropIndexesOptions | | +| mongodb.DropIndexesOptions | mongoose.mongodb.DropIndexesOptions | | +| mongodb.EstimatedDocumentCountOptions | mongodb.Collection | Member[estimatedDocumentCount].Argument[0] | +| mongodb.EstimatedDocumentCountOptions | mongodb/mongodb.EstimatedDocumentCountOptions | | +| mongodb.EstimatedDocumentCountOptions | mongoose.mongodb.EstimatedDocumentCountOptions | | +| mongodb.EvalOptions | mongodb/mongodb.EvalOptions | | +| mongodb.EvalOptions | mongoose.mongodb.EvalOptions | | +| 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 | mongodb/mongodb.FindCursor | | +| mongodb.FindCursor | mongoose.mongodb.FindCursor | | +| mongodb.FindCursorStatic | mongodb | Member[FindCursor] | +| mongodb.FindCursorStatic | mongodb/mongodb.FindCursorStatic | | +| mongodb.FindCursorStatic | mongoose.mongodb.FindCursorStatic | | +| mongodb.FindOneAndDeleteOptions | mongodb.Collection | Member[findOneAndDelete].Argument[1] | +| mongodb.FindOneAndDeleteOptions | mongodb/mongodb.FindOneAndDeleteOptions | | +| mongodb.FindOneAndDeleteOptions | mongoose.mongodb.FindOneAndDeleteOptions | | +| mongodb.FindOneAndReplaceOptions | mongodb.Collection | Member[findOneAndReplace].Argument[2] | +| mongodb.FindOneAndReplaceOptions | mongodb/mongodb.FindOneAndReplaceOptions | | +| mongodb.FindOneAndReplaceOptions | mongoose.mongodb.FindOneAndReplaceOptions | | +| mongodb.FindOneAndUpdateOptions | mongodb.Collection | Member[findOneAndUpdate].Argument[2] | +| mongodb.FindOneAndUpdateOptions | mongodb/mongodb.FindOneAndUpdateOptions | | +| mongodb.FindOneAndUpdateOptions | mongoose.mongodb.FindOneAndUpdateOptions | | +| mongodb.FindOperators | mongodb.BulkOperationBase | Member[find].ReturnValue | +| mongodb.FindOperators | mongodb.FindOperators | Member[arrayFilters,collation,upsert].ReturnValue | +| mongodb.FindOperators | mongodb.FindOperatorsStatic | Instance | +| mongodb.FindOperators | mongodb/mongodb.FindOperators | | +| mongodb.FindOperators | mongoose.mongodb.FindOperators | | +| mongodb.FindOperatorsStatic | mongodb | Member[FindOperators] | +| mongodb.FindOperatorsStatic | mongodb/mongodb.FindOperatorsStatic | | +| mongodb.FindOperatorsStatic | mongoose.mongodb.FindOperatorsStatic | | +| mongodb.FindOptions | mongodb.Collection | Member[find,findOne].Argument[1] | +| mongodb.FindOptions | mongodb.GridFSBucket | Member[find].Argument[1] | +| mongodb.FindOptions | mongodb/mongodb.FindOptions | | +| mongodb.FindOptions | mongoose.mongodb.FindOptions | | +| mongodb.GridFSBucket | mongodb.GridFSBucketStatic | Instance | +| mongodb.GridFSBucket | mongodb.GridFSBucketWriteStream | Member[bucket] | +| mongodb.GridFSBucket | mongodb/mongodb.GridFSBucket | | +| mongodb.GridFSBucket | mongoose.mongodb.GridFSBucket | | +| mongodb.GridFSBucketStatic | mongodb | Member[GridFSBucket] | +| mongodb.GridFSBucketStatic | mongodb/mongodb.GridFSBucketStatic | | +| mongodb.GridFSBucketStatic | mongoose.mongodb.GridFSBucketStatic | | +| mongodb.GridFSBucketWriteStream | mongodb.GridFSBucket | Member[openUploadStream,openUploadStreamWithId].ReturnValue | +| mongodb.GridFSBucketWriteStream | mongodb.GridFSBucketWriteStream | Member[end].ReturnValue | +| mongodb.GridFSBucketWriteStream | mongodb.GridFSBucketWriteStreamStatic | Instance | +| mongodb.GridFSBucketWriteStream | mongodb/mongodb.GridFSBucketWriteStream | | +| mongodb.GridFSBucketWriteStream | mongoose.mongodb.GridFSBucketWriteStream | | +| mongodb.GridFSBucketWriteStreamStatic | mongodb | Member[GridFSBucketWriteStream] | +| mongodb.GridFSBucketWriteStreamStatic | mongodb/mongodb.GridFSBucketWriteStreamStatic | | +| mongodb.GridFSBucketWriteStreamStatic | mongoose.mongodb.GridFSBucketWriteStreamStatic | | +| 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 | mongodb/mongodb.IndexInformationOptions | | +| mongodb.IndexInformationOptions | mongoose.mongodb.IndexInformationOptions | | +| mongodb.InsertOneOptions | mongodb.Collection | Member[insertOne].Argument[1] | +| mongodb.InsertOneOptions | mongodb/mongodb.InsertOneOptions | | +| mongodb.InsertOneOptions | mongoose.mongodb.InsertOneOptions | | +| 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 | mongodb/mongodb.ListCollectionsCursor | | +| mongodb.ListCollectionsCursor | mongoose.mongodb.ListCollectionsCursor | | +| mongodb.ListCollectionsCursorStatic | mongodb | Member[ListCollectionsCursor] | +| mongodb.ListCollectionsCursorStatic | mongodb/mongodb.ListCollectionsCursorStatic | | +| mongodb.ListCollectionsCursorStatic | mongoose.mongodb.ListCollectionsCursorStatic | | +| 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 | mongodb/mongodb.ListCollectionsOptions | | +| mongodb.ListCollectionsOptions | mongoose.mongodb.ListCollectionsOptions | | +| mongodb.ListDatabasesOptions | mongodb.Admin | Member[listDatabases].Argument[0] | +| mongodb.ListDatabasesOptions | mongodb/mongodb.ListDatabasesOptions | | +| mongodb.ListDatabasesOptions | mongoose.mongodb.ListDatabasesOptions | | +| mongodb.ListIndexesCursor | mongodb.Collection | Member[listIndexes].ReturnValue | +| mongodb.ListIndexesCursor | mongodb.ListIndexesCursor | Member[clone].ReturnValue | +| mongodb.ListIndexesCursor | mongodb.ListIndexesCursorStatic | Instance | +| mongodb.ListIndexesCursor | mongodb/mongodb.ListIndexesCursor | | +| mongodb.ListIndexesCursor | mongoose.mongodb.ListIndexesCursor | | +| mongodb.ListIndexesCursorStatic | mongodb | Member[ListIndexesCursor] | +| mongodb.ListIndexesCursorStatic | mongodb/mongodb.ListIndexesCursorStatic | | +| mongodb.ListIndexesCursorStatic | mongoose.mongodb.ListIndexesCursorStatic | | +| mongodb.ListIndexesOptions | mongodb.Collection | Member[listIndexes].Argument[0] | +| mongodb.ListIndexesOptions | mongodb.ListIndexesCursor | Member[options] | +| mongodb.ListIndexesOptions | mongodb.ListIndexesCursorStatic | Argument[1] | +| mongodb.ListIndexesOptions | mongodb/mongodb.ListIndexesOptions | | +| mongodb.ListIndexesOptions | mongoose.mongodb.ListIndexesOptions | | +| mongodb.MapReduceOptions | mongodb.Collection | Member[mapReduce].Argument[2] | +| mongodb.MapReduceOptions | mongodb/mongodb.MapReduceOptions | | +| mongodb.MapReduceOptions | mongoose.mongodb.MapReduceOptions | | +| 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 | mongodb/mongodb.MongoClient | | +| mongodb.MongoClient | mongoose.mongodb.MongoClient | | +| mongodb.MongoClientEvents | mongodb/mongodb.MongoClientEvents | | +| mongodb.MongoClientEvents | mongoose.mongodb.MongoClientEvents | | +| mongodb.MongoClientOptions | mongodb.MongoClientStatic | Argument[1] | +| mongodb.MongoClientOptions | mongodb.MongoClientStatic | Member[connect].Argument[1] | +| mongodb.MongoClientOptions | mongodb/mongodb.MongoClientOptions | | +| mongodb.MongoClientOptions | mongoose.mongodb.MongoClientOptions | | +| mongodb.MongoClientStatic | mongodb | Member[MongoClient] | +| mongodb.MongoClientStatic | mongodb/mongodb.MongoClientStatic | | +| mongodb.MongoClientStatic | mongoose.mongodb.MongoClientStatic | | +| mongodb.MongoOptions | mongodb.ClientSession | Member[clientOptions] | +| mongodb.MongoOptions | mongodb.MongoClient | Member[options] | +| mongodb.MongoOptions | mongodb/mongodb.MongoOptions | | +| mongodb.MongoOptions | mongoose.mongodb.MongoOptions | | +| mongodb.OperationOptions | mongodb.Collection | Member[isCapped,options].Argument[0] | +| mongodb.OperationOptions | mongodb.CommandOperationOptions | | +| mongodb.OperationOptions | mongodb/mongodb.OperationOptions | | +| mongodb.OperationOptions | mongoose.mongodb.OperationOptions | | +| mongodb.OrderedBulkOperation | mongodb.Collection | Member[initializeOrderedBulkOp].ReturnValue | +| mongodb.OrderedBulkOperation | mongodb.OrderedBulkOperation | Member[addToOperationsList].ReturnValue | +| mongodb.OrderedBulkOperation | mongodb.OrderedBulkOperationStatic | Instance | +| mongodb.OrderedBulkOperation | mongodb/mongodb.OrderedBulkOperation | | +| mongodb.OrderedBulkOperation | mongoose.mongodb.OrderedBulkOperation | | +| mongodb.OrderedBulkOperationStatic | mongodb | Member[OrderedBulkOperation] | +| mongodb.OrderedBulkOperationStatic | mongodb/mongodb.OrderedBulkOperationStatic | | +| mongodb.OrderedBulkOperationStatic | mongoose.mongodb.OrderedBulkOperationStatic | | +| mongodb.ProfilingLevelOptions | mongodb.Db | Member[profilingLevel].Argument[0] | +| mongodb.ProfilingLevelOptions | mongodb/mongodb.ProfilingLevelOptions | | +| mongodb.ProfilingLevelOptions | mongoose.mongodb.ProfilingLevelOptions | | +| mongodb.ReadPreferenceFromOptions | mongodb.ReadPreferenceStatic | Member[fromOptions].Argument[0] | +| mongodb.ReadPreferenceFromOptions | mongodb/mongodb.ReadPreferenceFromOptions | | +| mongodb.ReadPreferenceFromOptions | mongoose.mongodb.ReadPreferenceFromOptions | | +| mongodb.ReadPreferenceStatic | mongodb | Member[ReadPreference] | +| mongodb.ReadPreferenceStatic | mongodb/mongodb.ReadPreferenceStatic | | +| mongodb.ReadPreferenceStatic | mongoose.mongodb.ReadPreferenceStatic | | +| mongodb.RemoveUserOptions | mongodb.Admin | Member[removeUser].Argument[1] | +| mongodb.RemoveUserOptions | mongodb.Db | Member[removeUser].Argument[1] | +| mongodb.RemoveUserOptions | mongodb/mongodb.RemoveUserOptions | | +| mongodb.RemoveUserOptions | mongoose.mongodb.RemoveUserOptions | | +| mongodb.RenameOptions | mongodb.Collection | Member[rename].Argument[1] | +| mongodb.RenameOptions | mongodb.Db | Member[renameCollection].Argument[2] | +| mongodb.RenameOptions | mongodb/mongodb.RenameOptions | | +| mongodb.RenameOptions | mongoose.mongodb.RenameOptions | | +| mongodb.ReplaceOptions | mongodb.Collection | Member[replaceOne].Argument[2] | +| mongodb.ReplaceOptions | mongodb/mongodb.ReplaceOptions | | +| mongodb.ReplaceOptions | mongoose.mongodb.ReplaceOptions | | +| mongodb.RunCommandOptions | mongodb.Admin | Member[command].Argument[1] | +| mongodb.RunCommandOptions | mongodb.Db | Member[command].Argument[1] | +| mongodb.RunCommandOptions | mongodb/mongodb.RunCommandOptions | | +| mongodb.RunCommandOptions | mongoose.mongodb.RunCommandOptions | | +| mongodb.SelectServerOptions | mongodb/mongodb.SelectServerOptions | | +| mongodb.SelectServerOptions | mongoose.mongodb.SelectServerOptions | | +| mongodb.SetProfilingLevelOptions | mongodb.Db | Member[setProfilingLevel].Argument[1] | +| mongodb.SetProfilingLevelOptions | mongodb/mongodb.SetProfilingLevelOptions | | +| mongodb.SetProfilingLevelOptions | mongoose.mongodb.SetProfilingLevelOptions | | +| mongodb.Transaction | mongodb.ClientSession | Member[transaction] | +| mongodb.Transaction | mongodb.TransactionStatic | Instance | +| mongodb.Transaction | mongodb/mongodb.Transaction | | +| mongodb.Transaction | mongoose.mongodb.Transaction | | +| 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 | mongodb/mongodb.TransactionOptions | | +| mongodb.TransactionOptions | mongoose.mongodb.TransactionOptions | | +| mongodb.TransactionStatic | mongodb | Member[Transaction] | +| mongodb.TransactionStatic | mongodb/mongodb.TransactionStatic | | +| 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.Collection | Member[initializeUnorderedBulkOp].ReturnValue | +| mongodb.UnorderedBulkOperation | mongodb.UnorderedBulkOperation | Member[addToOperationsList].ReturnValue | +| mongodb.UnorderedBulkOperation | mongodb.UnorderedBulkOperationStatic | Instance | +| mongodb.UnorderedBulkOperation | mongodb/mongodb.UnorderedBulkOperation | | +| mongodb.UnorderedBulkOperation | mongoose.mongodb.UnorderedBulkOperation | | +| mongodb.UnorderedBulkOperationStatic | mongodb | Member[UnorderedBulkOperation] | +| mongodb.UnorderedBulkOperationStatic | mongodb/mongodb.UnorderedBulkOperationStatic | | +| mongodb.UnorderedBulkOperationStatic | mongoose.mongodb.UnorderedBulkOperationStatic | | +| mongodb.UpdateManyModel | mongodb.AnyBulkWriteOperation | Member[updateMany] | +| mongodb.UpdateManyModel | mongodb/mongodb.UpdateManyModel | | +| mongodb.UpdateManyModel | mongoose.mongodb.UpdateManyModel | | +| mongodb.UpdateOneModel | mongodb.AnyBulkWriteOperation | Member[updateOne] | +| mongodb.UpdateOneModel | mongodb/mongodb.UpdateOneModel | | +| mongodb.UpdateOneModel | mongoose.mongodb.UpdateOneModel | | +| mongodb.UpdateOptions | mongodb.Collection | Member[update,updateMany,updateOne].Argument[2] | +| mongodb.UpdateOptions | mongodb/mongodb.UpdateOptions | | +| mongodb.UpdateOptions | mongoose.mongodb.UpdateOptions | | +| mongodb.ValidateCollectionOptions | mongodb.Admin | Member[validateCollection].Argument[1] | +| mongodb.ValidateCollectionOptions | mongodb/mongodb.ValidateCollectionOptions | | +| mongodb.ValidateCollectionOptions | mongoose.mongodb.ValidateCollectionOptions | | +| mongodb.WithSessionCallback | mongodb.MongoClient | Member[withSession].Argument[1] | +| mongodb.WithSessionCallback | mongodb.MongoClient | Member[withSession].WithArity[1].Argument[0] | +| mongodb.WithSessionCallback | mongodb/mongodb.WithSessionCallback | | +| mongodb.WithSessionCallback | mongoose.mongodb.WithSessionCallback | | +| mongodb.WithTransactionCallback | mongodb.ClientSession | Member[withTransaction].Argument[0] | +| mongodb.WithTransactionCallback | mongodb/mongodb.WithTransactionCallback | | +| mongodb.WithTransactionCallback | mongoose.mongodb.WithTransactionCallback | | +| 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 | marsdb | Member[Collection].Instance | +| 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 | marsdb | Member[Collection].Instance | +| 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.Query | Member[sortFunc].ReturnValue | +| 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.Types.ArraySubdocument | Member[parentArray].ReturnValue | +| mongoose.Types.DocumentArray | mongoose.Types.DocumentArrayStatic | Instance | +| mongoose.Types.DocumentArray | mongoose/inferschematype.ResolvePathType | TypeVar[mongoose.IfEquals.3] | +| 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] | +| 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] | +| 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.ConnectionPool | mssql/msnodesqlv8 | Member[connect].ReturnValue.Awaited | +| mssql.ConnectionPool | mssql/msnodesqlv8 | Member[pool] | +| mssql.ConnectionPoolStatic | mssql | Member[ConnectionPool] | +| mssql.ConnectionPoolStatic | mssql/msnodesqlv8 | 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 | Member[PreparedStatement] | +| mssql.PreparedStatementStatic | mssql/msnodesqlv8 | 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 | Member[Request] | +| mssql.RequestStatic | mssql/msnodesqlv8 | 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 | Member[Transaction] | +| mssql.TransactionStatic | mssql/msnodesqlv8 | Member[Transaction] | +| mssql.config | mssql | Member[connect].Argument[0] | +| mssql.config | mssql.ConnectionPoolStatic | WithArity[1,2].Argument[0] | +| mssql.config | mssql/msnodesqlv8 | Member[connect].Argument[0] | +| mysql2.Connection | mysql2 | Member[createConnection].ReturnValue | +| mysql2.Connection | mysql2.PoolConnection | | +| mysql2.Connection | mysql2.authPlugins | Argument[0].Member[connection] | +| mysql2.ConnectionOptions | mysql2 | Member[createConnection].Argument[0] | +| mysql2.ConnectionOptions | mysql2.PoolOptions | | +| 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.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 | Member[createPool].Argument[0] | +| mysql2.PoolOptions | mysql2/promise | Member[createPool].Argument[0] | +| mysql2.authPlugins | mysql2.ConnectionOptions | Member[authPlugins].AnyMember | +| mysql2/promise.Connection | mysql2 | Member[createConnectionPromise].ReturnValue.Awaited | +| mysql2/promise.Connection | mysql2.Connection | Member[promise].ReturnValue | +| 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.Pool | mysql2.Pool | 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.PoolConnection | mysql2.PoolConnection | 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/typings/mysql.Connection | mysql2.Connection | | +| mysql2/typings/mysql.Connection | mysql2.Pool | | +| mysql2/typings/mysql.PoolConnection | mysql2.PoolConnection | | +| mysql2/typings/mysql/lib/Connection | mysql2/typings/mysql.Connection | | +| mysql2/typings/mysql/lib/Connection | mysql2/typings/mysql/lib/PoolConnection | | +| mysql2/typings/mysql/lib/PoolConnection | mysql2/typings/mysql.PoolConnection | | +| 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] | +| openai.Client | @openai/guardrails | Member[GuardrailsOpenAI,GuardrailsAzureOpenAI].Member[create].ReturnValue.Awaited | +| openai.Client | openai | Instance | +| openai.Client | openai | Member[OpenAI,AzureOpenAI].Instance | +| openrouter.Agent | @openrouter/agent | Member[OpenRouter].Instance | +| openrouter.Client | @openrouter/sdk | Instance | +| openrouter.Client | @openrouter/sdk | Member[OpenRouter].Instance | +| 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.IBaseProtocol | pg-promise.IConnected | | +| pg-promise.IBaseProtocol | pg-promise.IDatabase | | +| pg-promise.IBaseProtocol | pg-promise.ITask | | +| pg-promise.IBaseProtocol | pg-promise/typescript/pg-promise.IBaseProtocol | | +| pg-promise.IConnected | pg-promise.IDatabase | Member[connect].ReturnValue.Awaited | +| pg-promise.IConnected | pg-promise/typescript/pg-promise.IConnected | | +| pg-promise.IDatabase | pg-promise.IInitOptions | Member[extend].Argument[0] | +| pg-promise.IDatabase | pg-promise.IMain | ReturnValue | +| pg-promise.IDatabase | pg-promise/typescript/pg-promise.IDatabase | | +| pg-promise.IInitOptions | pg-promise | Argument[0] | +| pg-promise.IInitOptions | pg-promise.ILibConfig | Member[options] | +| pg-promise.IInitOptions | pg-promise/typescript/pg-promise.IInitOptions | | +| pg-promise.ILibConfig | pg-promise.IDatabase | Member[$config] | +| pg-promise.ILibConfig | pg-promise/typescript/pg-promise.ILibConfig | | +| pg-promise.IMain | pg-promise | ReturnValue | +| pg-promise.IMain | pg-promise.ILibConfig | Member[pgp] | +| pg-promise.IMain | pg-promise/typescript/pg-promise.IMain | | +| 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-promise.ITask | pg-promise/typescript/pg-promise.ITask | | +| 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.IClient | pg-promise/pg-subset | Member[Client].Instance | +| 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.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] | +| sequelize-typescript.AssociationCountOptions | sequelize-typescript.Model | Member[$count].Argument[1] | +| sequelize-typescript.AssociationCountOptions | sequelize-typescript/model/model/association/association-count-options.AssociationCountOptions | | +| sequelize-typescript.AssociationGetOptions | sequelize-typescript.Model | Member[$get].Argument[1] | +| sequelize-typescript.AssociationGetOptions | sequelize-typescript.Model | Member[$has].Argument[2] | +| sequelize-typescript.AssociationGetOptions | sequelize-typescript/model/model/association/association-get-options.AssociationGetOptions | | +| 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.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.BaseAssociationStatic | sequelize-typescript | Member[BaseAssociation] | +| sequelize-typescript.BaseAssociationStatic | sequelize-typescript/associations/shared/base-association | Member[BaseAssociation] | +| sequelize-typescript.BaseAssociationStatic | sequelize-typescript/associations/shared/base-association.BaseAssociationStatic | | +| sequelize-typescript.BelongsToAssociation | sequelize-typescript.BelongsToAssociationStatic | Instance | +| sequelize-typescript.BelongsToAssociation | sequelize-typescript/associations/belongs-to/belongs-to-association.BelongsToAssociation | | +| sequelize-typescript.BelongsToAssociationStatic | sequelize-typescript | Member[BelongsToAssociation] | +| 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.BelongsToManyAssociation | sequelize-typescript.BelongsToManyAssociationStatic | Instance | +| sequelize-typescript.BelongsToManyAssociation | sequelize-typescript/associations/belongs-to-many/belongs-to-many-association.BelongsToManyAssociation | | +| sequelize-typescript.BelongsToManyAssociationStatic | sequelize-typescript | Member[BelongsToManyAssociation] | +| 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.DefaultScopeGetter | sequelize-typescript | Member[DefaultScope].Argument[0] | +| sequelize-typescript.DefaultScopeGetter | sequelize-typescript.ScopeOptionsGetters | Member[getDefaultScope] | +| sequelize-typescript.DefaultScopeGetter | sequelize-typescript/scopes/default-scope | Member[DefaultScope].Argument[0] | +| sequelize-typescript.DefaultScopeGetter | sequelize-typescript/scopes/scope-options.DefaultScopeGetter | | +| sequelize-typescript.HasAssociation | sequelize-typescript.HasAssociationStatic | Instance | +| sequelize-typescript.HasAssociation | sequelize-typescript/associations/has/has-association.HasAssociation | | +| sequelize-typescript.HasAssociationStatic | sequelize-typescript | Member[HasAssociation] | +| sequelize-typescript.HasAssociationStatic | sequelize-typescript/associations/has/has-association | Member[HasAssociation] | +| sequelize-typescript.HasAssociationStatic | sequelize-typescript/associations/has/has-association.HasAssociationStatic | | +| 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.Model | sequelize-typescript/model/model/model.Model | | +| 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.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 | Member[ForeignKey].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/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.ModelStatic~ | sequelize-typescript | Member[Model] | +| 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.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.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.ScopeOptionsGetters | sequelize-typescript | Member[addScopeOptionsGetter,setScopeOptionsGetters].Argument[1] | +| sequelize-typescript.ScopeOptionsGetters | sequelize-typescript | Member[getScopeOptionsGetters].ReturnValue | +| 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.ScopesOptions | sequelize-typescript | Member[resolveScope].Argument[2] | +| sequelize-typescript.ScopesOptions | sequelize-typescript.ScopesOptionsGetter | ReturnValue.AnyMember | +| sequelize-typescript.ScopesOptions | sequelize-typescript/scopes/scope-options.ScopesOptions | | +| sequelize-typescript.ScopesOptions | sequelize-typescript/scopes/scope-service | Member[resolveScope].Argument[2] | +| sequelize-typescript.ScopesOptionsGetter | sequelize-typescript | Member[Scopes].Argument[0] | +| sequelize-typescript.ScopesOptionsGetter | sequelize-typescript.ScopeOptionsGetters | Member[getScopes] | +| sequelize-typescript.ScopesOptionsGetter | sequelize-typescript/scopes/scope-options.ScopesOptionsGetter | | +| sequelize-typescript.ScopesOptionsGetter | sequelize-typescript/scopes/scopes | Member[Scopes].Argument[0] | +| 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.Sequelize | sequelize-typescript/sequelize/sequelize/sequelize.Sequelize | | +| 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.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.SequelizeStatic | sequelize-typescript | Member[Sequelize] | +| sequelize-typescript.SequelizeStatic | sequelize-typescript/sequelize/sequelize/sequelize | Member[Sequelize] | +| sequelize-typescript.SequelizeStatic | sequelize-typescript/sequelize/sequelize/sequelize.SequelizeStatic | | +| 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.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 | | +| sequelize.SequelizeStatic | sequelize-typescript.Sequelize | | +| sequelize.SequelizeStatic | sequelize.Sequelize | Member[Sequelize] | +| sequelize.SequelizeStatic | sequelize.SequelizeStatic | Member[Sequelize,default] | +| sequelize.SequelizeStaticAndInstance | sequelize.Sequelize | | +| sequelize.SequelizeStaticAndInstance | sequelize.SequelizeStatic | | +| sequelize.SequelizeStaticAndInstance.Model | sequelize-typescript.Model | | +| sequelize.ThroughOptions | sequelize.AssociationOptionsBelongsToMany | Member[through] | +| sequelize.Utils | sequelize.SequelizeStaticAndInstance | Member[Utils] | +| 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 | +| zod | zod/v3 | | +| zod | zod/v4 | | +typeVariableModels +| @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] | +| 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] | +| 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 | +| sequelize-typescript.ModelStatic.0 | Instance | +| sequelize-typescript.Repository.0 | Instance | +barrierGuardModels +barrierModels +neutralModels +sinkModels +| @apollo/server | Member[ApolloServer,ApolloServerBase].Argument[0].Member[cors].Member[origin] | cors-origin | +| @apollo/server | Member[gql].Argument[0] | sql-injection | +| @aws-sdk/client.Client | ReturnValue.Member[send].Argument[0] | 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.~SqlExecutorDirect | Argument[0] | sql-injection | +| @google-cloud/spanner.~SqlExecutorDirect | Argument[0].Member[sql] | sql-injection | +| @langchain/core/messages | Member[HumanMessage].Argument[0] | user-prompt-injection | +| @langchain/core/messages | Member[HumanMessage].Argument[0].Member[content] | user-prompt-injection | +| @langchain/core/messages | Member[SystemMessage].Argument[0] | system-prompt-injection | +| @langchain/core/messages | Member[SystemMessage].Argument[0].Member[content] | system-prompt-injection | +| @langchain/core/prompts | Member[ChatPromptTemplate].Member[fromMessages].Argument[0].ArrayElement.ArrayElement | user-prompt-injection | +| @langchain/core/prompts | Member[PromptTemplate].Instance.Member[format].Argument[0] | user-prompt-injection | +| @openai/agents | Member[Agent].Argument[0].Member[instructions,handoffDescription] | system-prompt-injection | +| @openai/agents | Member[Agent].Instance.Member[asTool].Argument[0].Member[toolDescription] | system-prompt-injection | +| @openai/agents | Member[Runner].Instance.Member[run].Argument[1] | user-prompt-injection | +| @openai/agents | Member[run].Argument[1] | user-prompt-injection | +| @openai/agents | Member[tool].Argument[0].Member[description] | system-prompt-injection | +| @openai/guardrails | Member[Agent].Argument[0].Member[instructions,handoffDescription] | system-prompt-injection | +| @openai/guardrails | Member[Agent].Instance.Member[asTool].Argument[0].Member[toolDescription] | system-prompt-injection | +| @openai/guardrails | Member[GuardrailAgent].Member[create].Argument[2] | system-prompt-injection | +| @openai/guardrails | Member[tool].Argument[0].Member[description] | system-prompt-injection | +| @openrouter/agent | Member[callModel].Argument[0].Member[input] | user-prompt-injection | +| @openrouter/agent | Member[callModel].Argument[0].Member[instructions] | system-prompt-injection | +| @openrouter/agent | Member[tool].Argument[0].Member[description] | system-prompt-injection | +| @sap/hana-client | Member[createConnection].ReturnValue.Member[exec,prepare].Argument[0] | sql-injection | +| @sap/hana-client/extension/Stream | Member[createProcStatement].Argument[1] | sql-injection | +| @sap/hdbext | Member[loadProcedure].Argument[2] | sql-injection | +| anthropic.Client | Member[beta].Member[agents].Member[create].Argument[0].Member[system] | system-prompt-injection | +| anthropic.Client | Member[beta].Member[agents].Member[update].Argument[1].Member[system] | system-prompt-injection | +| anthropic.Client | Member[beta].Member[messages].Member[create].Argument[0].Member[system] | system-prompt-injection | +| anthropic.Client | Member[beta].Member[messages].Member[create].Argument[0].Member[system].ArrayElement.Member[text] | system-prompt-injection | +| anthropic.Client | Member[completions].Member[create].Argument[0].Member[prompt] | user-prompt-injection | +| anthropic.Client | Member[messages].Member[create].Argument[0].Member[system] | system-prompt-injection | +| anthropic.Client | Member[messages].Member[create].Argument[0].Member[system].ArrayElement.Member[text] | system-prompt-injection | +| aws-sdk | AnyMember.Argument[0].Member[secretAccessKey,accessKeyId] | credentials-key | +| aws-sdk | AnyMember.Member[secretAccessKey,accessKeyId] | credentials-key | +| aws-sdk | Member[Credentials].Argument[0,1] | credentials-key | +| aws-sdk.Athena | ReturnValue.Member[startQueryExecution,createNamedQuery,updateNamedQuery].Argument[0].Member[QueryString] | sql-injection | +| aws-sdk.DynamoDB | ReturnValue.Member[batchExecuteStatement].Argument[0].Member[Statements].ArrayElement.Member[Statement] | sql-injection | +| aws-sdk.DynamoDB | ReturnValue.Member[executeStatement].Argument[0].Member[Statement] | sql-injection | +| aws-sdk.RDSDataService | ReturnValue.Member[batchExecuteStatement].Argument[0].Member[parameterSets].ArrayElement.Member[sql] | sql-injection | +| aws-sdk.RDSDataService | ReturnValue.Member[executeStatement,batchExecuteStatement].Argument[0].Member[sql] | sql-injection | +| aws-sdk.S3 | ReturnValue.Member[selectObjectContent].Argument[0].Member[Expression] | sql-injection | +| axios | Member[interceptors].Member[request].Member[use].Argument[0].Parameter[0].Member[url] | request-forgery | +| cors | Argument[0].Member[origin] | cors-origin | +| google-genai.Client | Member[caches].Member[create].Argument[0].Member[config].Member[contents] | user-prompt-injection | +| google-genai.Client | Member[caches].Member[create].Argument[0].Member[config].Member[systemInstruction] | system-prompt-injection | +| google-genai.Client | Member[chats].Member[create].Argument[0].Member[config].Member[systemInstruction] | system-prompt-injection | +| google-genai.Client | Member[chats].Member[create].ReturnValue.Member[sendMessage,sendMessageStream].Argument[0].Member[content] | user-prompt-injection | +| google-genai.Client | Member[chats].Member[create].ReturnValue.Member[sendMessage,sendMessageStream].Argument[0].Member[message] | user-prompt-injection | +| google-genai.Client | Member[chats].Member[create].ReturnValue.Member[sendMessage].Argument[0].Member[config].Member[systemInstruction] | system-prompt-injection | +| google-genai.Client | Member[interactions].Member[create].Argument[0].Member[input] | user-prompt-injection | +| google-genai.Client | Member[live].Member[connect].Argument[0].Member[config].Member[systemInstruction] | system-prompt-injection | +| google-genai.Client | Member[models].Member[editImage].Argument[0].Member[prompt] | user-prompt-injection | +| google-genai.Client | Member[models].Member[generateContent,generateContentStream].Argument[0].Member[config].Member[systemInstruction] | system-prompt-injection | +| google-genai.Client | Member[models].Member[generateContent,generateContentStream].Argument[0].Member[contents] | user-prompt-injection | +| google-genai.Client | Member[models].Member[generateImages].Argument[0].Member[prompt] | user-prompt-injection | +| google-genai.Client | Member[models].Member[generateVideos].Argument[0].Member[prompt] | user-prompt-injection | +| hdb.Client | Member[exec,prepare,execute].Argument[0] | sql-injection | +| langchain | Member[HumanMessage].Argument[0] | user-prompt-injection | +| langchain | Member[HumanMessage].Argument[0].Member[content] | user-prompt-injection | +| langchain | Member[SystemMessage].Argument[0] | system-prompt-injection | +| langchain | Member[SystemMessage].Argument[0].Member[content] | system-prompt-injection | +| langchain | Member[createAgent].Argument[0].Member[systemPrompt] | system-prompt-injection | +| langchain.Agent | Member[invoke].Argument[0].Member[messages].ArrayElement.Member[content] | user-prompt-injection | +| langchain.Agent | Member[stream].Argument[0].Member[messages].ArrayElement.Member[content] | user-prompt-injection | +| langchain.AgentExecutor | Member[invoke].Argument[0].Member[input] | user-prompt-injection | +| langchain.ChatModel | Member[batch].Argument[0].ArrayElement | user-prompt-injection | +| langchain.ChatModel | Member[call].Argument[0] | user-prompt-injection | +| langchain.ChatModel | Member[generate].Argument[0].ArrayElement.ArrayElement | user-prompt-injection | +| langchain.ChatModel | Member[invoke].Argument[0] | user-prompt-injection | +| langchain.ChatModel | Member[predict].Argument[0] | user-prompt-injection | +| langchain.ChatModel | Member[stream].Argument[0] | user-prompt-injection | +| langchain.LLMChain | Member[call,invoke].Argument[0].Member[input] | user-prompt-injection | +| make-dir | Member[makeDirectory,makeDirectorySync].Argument[0] | path-injection | +| mkdirp | Argument[0] | path-injection | +| mkdirp | Member[nativeSync,native,manual,manualSync,mkdirpNative,mkdirpManual,mkdirpManualSync,mkdirpNativeSync,mkdirpSync,sync].Argument[0] | path-injection | +| 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 | +| open | Argument[0] | path-injection | +| open | Member[openApp].Argument[0] | path-injection | +| openai.Client | Member[beta].Member[assistants].Member[create].Argument[0].Member[instructions] | system-prompt-injection | +| openai.Client | Member[beta].Member[assistants].Member[update].Argument[1].Member[instructions] | system-prompt-injection | +| openai.Client | Member[beta].Member[realtime].Member[sessions].Member[create].Argument[0].Member[instructions] | system-prompt-injection | +| openai.Client | Member[beta].Member[threads].Member[runs].Member[create].Argument[1].Member[instructions,additional_instructions] | system-prompt-injection | +| openai.Client | Member[responses].Member[create].Argument[0].Member[instructions] | system-prompt-injection | +| openai.Client | Member[videos].Member[create,edit,extend].Argument[0].Member[prompt] | user-prompt-injection | +| openai.Client | Member[videos].Member[remix].Argument[1].Member[prompt] | user-prompt-injection | +| openrouter.Agent | Member[callModel].Argument[0].Member[input] | user-prompt-injection | +| openrouter.Agent | Member[callModel].Argument[0].Member[instructions] | system-prompt-injection | +| openrouter.Client | Member[embeddings].Member[create].Argument[0].Member[input] | user-prompt-injection | +| rimraf | Member[native,manual,windows,moveRemove,posix].Member[sync].Argument[0] | path-injection | +| rimraf | Member[rimrafSync,nativeSync,manualSync,windowsSync,moveRemoveSync,posixSync].Argument[0] | path-injection | +| rimraf | Member[sync,native,manual,windows,moveRemove,posix].Argument[0] | path-injection | +| 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] | sql-injection | +| sequelize.Sequelize | Member[query].Argument[0].Member[query] | sql-injection | +| sequelize.SequelizeStaticAndInstance | Member[asIs,literal].Argument[0] | sql-injection | +sourceModels +| @apollo/server | Member[ApolloServer,ApolloServerBase].Argument[0].AnyMember.AnyMember.AnyMember.Parameter[1] | remote | +| @aws-sdk/client.Client | ReturnValue.Member[send].ReturnValue.Awaited | database-access-result | +| @google-cloud/spanner.~SpannerObject | Member[executeSql].Argument[0..].Parameter[1] | database-access-result | +| @google-cloud/spanner.~SpannerObject | Member[executeSql].ReturnValue.Awaited.Member[0] | database-access-result | +| @google-cloud/spanner.~SpannerObject | Member[run].Argument[0..].Parameter[1] | database-access-result | +| @google-cloud/spanner.~SpannerObject | Member[run].ReturnValue.Awaited | database-access-result | +| @modelcontextprotocol/sdk.McpServer | Member[resource,registerResource].Argument[1..].Parameter[0,1] | ai | +| @modelcontextprotocol/sdk.McpServer | Member[tool,registerTool,prompt,registerPrompt].Argument[1..].Parameter[0] | ai | +| @modelcontextprotocol/sdk.McpServer | Member[tool,registerTool,prompt,registerPrompt].Argument[1..].Parameter[1,2].Member[authInfo].Member[token] | remote | +| @modelcontextprotocol/sdk.McpServer | Member[tool,registerTool,prompt,registerPrompt].Argument[1..].Parameter[1,2].Member[http].Member[authInfo].Member[token] | remote | +| @modelcontextprotocol/sdk.McpServer | Member[tool,registerTool,prompt,registerPrompt].Argument[1..].Parameter[1,2].Member[http].Member[req].Member[headers].Member[get].ReturnValue | remote | +| @modelcontextprotocol/sdk.McpServer | Member[tool,registerTool,prompt,registerPrompt].Argument[1..].Parameter[1,2].Member[requestInfo].Member[headers] | remote | +| @modelcontextprotocol/sdk.Server | Member[setRequestHandler].Argument[1].Parameter[0].Member[params] | ai | +| @modelcontextprotocol/sdk.Server | Member[setRequestHandler].Argument[2].Parameter[0] | ai | +| @sap/hana-client | Member[createConnection].ReturnValue.Member[exec].Argument[1].Parameter[1] | database-access-result | +| @sap/hana-client | Member[createConnection].ReturnValue.Member[prepare].ReturnValue.Member[execBatch,exec,execQuery].Argument[1].Parameter[1] | database-access-result | +| @sap/hana-client/extension/Stream | Member[createProcStatement].Argument[2].Parameter[1].Member[exec].Argument[1].Parameter[2..] | database-access-result | +| @sap/hdbext | Member[loadProcedure].Argument[3].Parameter[1].Argument[2].Parameter[2..] | database-access-result | +| aws-sdk.Athena | ReturnValue.Member[getQueryResults].Argument[1].Parameter[1] | database-access-result | +| aws-sdk.Athena | ReturnValue.Member[getQueryResults].ReturnValue.Member[promise].ReturnValue.Awaited | database-access-result | +| aws-sdk.DynamoDB | ReturnValue.Member[executeStatement,batchExecuteStatement,query,scan,getItem,batchGetItem].Argument[1].Parameter[1] | database-access-result | +| aws-sdk.DynamoDB | ReturnValue.Member[executeStatement,batchExecuteStatement,query,scan,getItem,batchGetItem].ReturnValue.Member[promise].ReturnValue.Awaited | database-access-result | +| aws-sdk.RDSDataService | ReturnValue.Member[executeStatement,batchExecuteStatement].Argument[1].Parameter[1] | database-access-result | +| aws-sdk.RDSDataService | ReturnValue.Member[executeStatement,batchExecuteStatement].ReturnValue.Member[promise].ReturnValue.Awaited | database-access-result | +| aws-sdk.S3 | ReturnValue.Member[getObject].Argument[1].Parameter[1] | database-access-result | +| aws-sdk.S3 | ReturnValue.Member[getObject].ReturnValue.Member[promise].ReturnValue.Awaited | database-access-result | +| axios | Member[interceptors].Member[response].Member[use].Argument[0].Parameter[0] | response | +| fastmcp.FastMCP | Member[addResourceTemplate,addPrompt].Argument[0].Member[load].Parameter[0] | ai | +| fastmcp.FastMCP | Member[addTool].Argument[0].Member[execute].Parameter[0] | ai | +| fs | Member[promises].Member[readFile].ReturnValue.Member[then].Argument[0].Parameter[0] | file | +| global | Member[process].Member[stdin].Member[on,addListener].WithStringArgument[0=data].Argument[1].Parameter[0] | stdin | +| global | Member[process].Member[stdin].Member[read].ReturnValue | stdin | +| graphql | Member[GraphQLObjectType].Argument[0].Member[fields].AnyMember.Member[resolve].Parameter[1] | remote | +| hdb.Client | Member[exec,execute].Argument[1..2].Parameter[1] | database-access-result | +| hdb.Client | Member[prepare].Argument[1].Parameter[1].Member[exec].Argument[1].Parameter[2..] | database-access-result | +| react-relay | Member[fetchQuery].ReturnValue.Member[subscribe].Argument[0].Member[next].Parameter[0] | response | +| react-relay | Member[useClientQuery].ReturnValue | response | +| react-relay | Member[useFragment].ReturnValue | response | +| react-relay | Member[useLazyLoadQuery].ReturnValue | response | +| react-relay | Member[useMutation].ReturnValue.Member[0].Argument[0].Member[onCompleted].Parameter[0] | response | +| react-relay | Member[usePaginationFragment].ReturnValue.Member[data] | response | +| react-relay | Member[usePreloadedQuery].ReturnValue | response | +| react-relay | Member[useRefetchableFragment].ReturnValue.Member[0] | response | +| react-relay | Member[useSubscription].Argument[0].Member[onNext].Parameter[0] | response | +| readline | Member[createInterface].ReturnValue.Member[on,addListener].WithStringArgument[0=line].Argument[1].Parameter[0] | stdin | +| readline | Member[createInterface].ReturnValue.Member[question].Argument[1].Parameter[0] | stdin | +| relay-runtime | Member[readFragment].ReturnValue | response | +| sequelize.Sequelize | Member[query].ReturnValue.Awaited | database-access-result | +| shelljs | Member[env] | environment | +| vue-router | Member[useRoute].ReturnValue.Member[hash] | browser-url-fragment | +| vue-router | Member[useRoute].ReturnValue.Member[params,path,fullPath] | browser-url-path | +| vue-router | Member[useRoute].ReturnValue.Member[query] | browser-url-query | +summaryModels +| 'underscore.string' | | Argument[0] | ReturnValue | taint | +| 'underscore.string' | Member[chop,chars,words,lines] | Argument[0] | ReturnValue.ArrayElement | taint | +| 'underscore.string' | Member[insert,replaceAll,splice,prune,pad,lpad,rpad,repeat,rjust,ljust] | Argument[0,2] | ReturnValue | taint | +| 'underscore.string' | Member[join] | Argument[0..] | ReturnValue | taint | +| 'underscore.string' | Member[map] | Argument[0] | Argument[1].Parameter[0] | taint | +| 'underscore.string' | Member[map] | Argument[1].ReturnValue | ReturnValue | taint | +| 'underscore.string' | Member[slugify,capitalize,decapitalize,clean,cleanDiacritics,swapCase,escapeHTML,unescapeHTML,wrap,dedent,reverse,pred,succ,titleize,camelize,classify,underscored,dasherize,humanize,trim,ltrim,rtrim,truncate,sprintf,strRight,strRightBack,strLeft,strLeftBack,stripTags,unquote,strip,lstrip,rstrip,camelcase] | Argument[0] | ReturnValue | taint | +| 'underscore.string' | Member[splice] | Argument[0,3] | ReturnValue | taint | +| 'underscore.string' | Member[surround,quote,q] | Argument[0,1] | ReturnValue | taint | +| 'underscore.string' | Member[toSentence,toSentenceSerial] | Argument[0].ArrayElement | ReturnValue | taint | +| 'underscore.string'.Wrapper | Member[insert,replaceAll,join,splice,prune,pad,lpad,rpad,repeat,surround,quote,q,rjust,ljust] | Argument[this] | ReturnValue | taint | +| 'underscore.string'.Wrapper | Member[insert,replaceAll,prune,pad,lpad,rpad,repeat,rjust,ljust] | Argument[1] | ReturnValue | taint | +| 'underscore.string'.Wrapper | Member[join,concat] | Argument[0..] | ReturnValue | taint | +| 'underscore.string'.Wrapper | Member[slugify,capitalize,decapitalize,clean,cleanDiacritics,swapCase,escapeHTML,unescapeHTML,wrap,dedent,reverse,pred,succ,titleize,camelize,classify,underscored,dasherize,humanize,trim,ltrim,rtrim,truncate,sprintf,strRight,strRightBack,strLeft,strLeftBack,stripTags,unquote,value,strip,lstrip,rstrip,camelcase] | Argument[this] | ReturnValue | taint | +| 'underscore.string'.Wrapper | Member[splice] | Argument[2] | ReturnValue | taint | +| 'underscore.string'.Wrapper | Member[surround,quote,q] | Argument[0] | ReturnValue | taint | +| 'underscore.string'.Wrapper | Member[tap] | Argument[0].ReturnValue | ReturnValue | taint | +| 'underscore.string'.Wrapper | Member[tap] | Argument[this] | Argument[0].Parameter[1] | taint | +| 'underscore.string'.Wrapper | Member[tap] | Argument[this] | ReturnValue | taint | +| 'underscore.string'.Wrapper | Member[toUpperCase,toLowerCase,replace,slice,substring,substr,split] | Argument[this] | ReturnValue | taint | +| @aws-sdk/client-athena | Member[CreatePreparedStatementCommand] | Argument[0].Member[QueryStatement] | ReturnValue | taint | +| @aws-sdk/client-athena | Member[StartQueryExecutionCommand,CreateNamedQueryCommand,UpdateNamedQueryCommand] | Argument[0].Member[QueryString] | ReturnValue | taint | +| @aws-sdk/client-dynamodb | Member[BatchExecuteStatementCommand] | Argument[0].Member[Statements].ArrayElement.Member[Statement] | ReturnValue | taint | +| @aws-sdk/client-dynamodb | Member[ExecuteStatementCommand] | Argument[0].Member[Statement] | ReturnValue | taint | +| @aws-sdk/client-rds-data | Member[BatchExecuteStatementCommand] | Argument[0].Member[parameterSets].ArrayElement.Member[sql] | ReturnValue | taint | +| @aws-sdk/client-rds-data | Member[ExecuteSqlCommand] | Argument[0].Member[sqlStatements] | ReturnValue | taint | +| @aws-sdk/client-rds-data | Member[ExecuteStatementCommand,BatchExecuteStatementCommand] | Argument[0].Member[sql] | ReturnValue | taint | +| @aws-sdk/client-s3 | Member[SelectObjectContentCommand] | Argument[0].Member[Expression] | ReturnValue | taint | +| @tanstack/angular-query | Member[injectQuery] | Argument[0].ReturnValue.Member[queryFn].ReturnValue | ReturnValue.Member[data].Awaited | value | +| @tanstack/angular-query-experimental | Member[injectQuery] | Argument[0].ReturnValue.Member[queryFn].ReturnValue | ReturnValue.Member[data].Awaited | value | +| @tanstack/react-query | Member[useQueries] | Argument[0].Member[queries].ArrayElement.Member[queryFn].ReturnValue.Awaited | ReturnValue.ArrayElement.Member[data] | value | +| @tanstack/react-query | Member[useQuery] | Argument[0].Member[queryFn].ReturnValue.Awaited | ReturnValue.Member[data] | value | +| @tanstack/vue-query | Member[useQueries] | Argument[0].Member[queries].ArrayElement.Member[queryFn].ReturnValue.Awaited | ReturnValue.ArrayElement.Member[data] | value | +| @tanstack/vue-query | Member[useQuery] | Argument[0].Member[queryFn].ReturnValue.Awaited | ReturnValue.Member[data] | value | +| call-me-maybe | | Argument[1] | ReturnValue | value | +| global.NodeJS.EventEmitter | | | Member[addListener,off,on,once,prependListener,prependOnceListener,removeAllListeners,removeListener,setMaxListeners].ReturnValue | type | +| graphql | Member[graphql] | Argument[0].Member[source,variableValues] | Argument[0].Member[rootValue].AnyMember.Parameter[0] | taint | +| markdown-table | | Argument[0].ArrayElement.ArrayElement | ReturnValue | taint | +| 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 | +| mysql2.Pool | | | Member[addListener,on,once,prependListener,prependOnceListener].ReturnValue | type | +| mysql2/promise.Pool | | | Member[addListener,on,once,prependListener,prependOnceListener].ReturnValue | type | +| mysql2/typings/mysql/lib/Connection | | | Member[addListener,on,once,prependListener,prependOnceListener].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 | +| react | Member[use] | Argument[0].Awaited | ReturnValue | value | +| 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 | +| 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 | +| vue | Member[computed] | Argument[0].Member[get].ReturnValue | ReturnValue.Member[value] | value | +| vue | Member[computed] | Argument[0].ReturnValue | ReturnValue.Member[value] | value | +| vue | Member[reactive] | Argument[0] | ReturnValue | taint | +| vue | Member[ref,shallowRef,toRef] | Argument[0] | ReturnValue.Member[value] | value | +| zod | Fuzzy.Member[parseAsync] | Argument[0] | ReturnValue.Awaited | value | +| zod | Fuzzy.Member[parse] | Argument[0] | ReturnValue | value | +| zod | Fuzzy.Member[safeParseAsync] | Argument[0] | ReturnValue.Awaited.Member[data] | value | +| zod | Fuzzy.Member[safeParse] | Argument[0] | ReturnValue.Member[data] | value | diff --git a/javascript/ql/test/modelconversion/EnumerateModels.ql b/javascript/ql/test/modelconversion/EnumerateModels.ql new file mode 100644 index 000000000000..c4594ca106e7 --- /dev/null +++ b/javascript/ql/test/modelconversion/EnumerateModels.ql @@ -0,0 +1,44 @@ +import semmle.javascript.frameworks.data.internal.ApiGraphModelsExtensions +import semmle.javascript.frameworks.helmet.Helmet +import semmle.javascript.security.FunctionalityFromUntrustedSource + +/* + * Note: madId columns are ignored, since renaming extension files causes them to be loaded in a + * different order, and the generated values in that column do not match as a result. + */ + +query predicate requiredHelmetSecuritySettings(string name) { requiredHelmetSecuritySetting(name) } + +query predicate isCdnDomainWithCheckingRequireds(string hostname) { + isCdnDomainWithCheckingRequired(hostname) +} + +query predicate isUntrustedDomains(string domain) { isUntrustedDomain(domain) } + +query predicate typeModels(string type1, string type2, string path) { + typeModel(type1, type2, path) +} + +query predicate typeVariableModels(string name, string path) { typeVariableModel(name, path) } + +query predicate barrierGuardModels(string type, string path, string acceptingValue, string kind) { + barrierGuardModel(type, path, acceptingValue, kind, _) +} + +query predicate barrierModels(string type, string path, string kind) { + barrierModel(type, path, kind, _) +} + +query predicate neutralModels(string type, string path, string kind) { + neutralModel(type, path, kind) +} + +query predicate sinkModels(string type, string path, string kind) { sinkModel(type, path, kind, _) } + +query predicate sourceModels(string type, string path, string kind) { + sourceModel(type, path, kind, _) +} + +query predicate summaryModels(string type, string path, string input, string output, string kind) { + summaryModel(type, path, input, output, kind, _) +} From 18f0e6b8feab058542b261a11880851c7fb23c78 Mon Sep 17 00:00:00 2001 From: Nick Rolfe Date: Tue, 10 Nov 2026 12:07:52 +0000 Subject: [PATCH 2/3] JS: rename framework model.yml extension files In preparation for converting data extensions to JSON, these model.yml files need to be renamed to avoid clashes with existing model.json files in the same directories. --- javascript/ql/lib/qlpack.yml | 1 - .../frameworks/minimongo/{model.yml => minimongo.model.yml} | 0 .../frameworks/mongodb/{model.yml => mongodb.model.yml} | 0 .../javascript/frameworks/mssql/{model.yml => mssql.model.yml} | 0 .../javascript/frameworks/mysql/{model.yml => mysql.model.yml} | 0 .../semmle/javascript/frameworks/pg/{model.yml => pg.model.yml} | 0 .../frameworks/sequelize/{model.yml => sequelize.model.yml} | 0 .../frameworks/spanner/{model.yml => spanner.model.yml} | 0 .../frameworks/sqlite3/{model.yml => sqlite3.model.yml} | 0 9 files changed, 1 deletion(-) rename javascript/ql/lib/semmle/javascript/frameworks/minimongo/{model.yml => minimongo.model.yml} (100%) rename javascript/ql/lib/semmle/javascript/frameworks/mongodb/{model.yml => mongodb.model.yml} (100%) rename javascript/ql/lib/semmle/javascript/frameworks/mssql/{model.yml => mssql.model.yml} (100%) rename javascript/ql/lib/semmle/javascript/frameworks/mysql/{model.yml => mysql.model.yml} (100%) rename javascript/ql/lib/semmle/javascript/frameworks/pg/{model.yml => pg.model.yml} (100%) rename javascript/ql/lib/semmle/javascript/frameworks/sequelize/{model.yml => sequelize.model.yml} (100%) rename javascript/ql/lib/semmle/javascript/frameworks/spanner/{model.yml => spanner.model.yml} (100%) rename javascript/ql/lib/semmle/javascript/frameworks/sqlite3/{model.yml => sqlite3.model.yml} (100%) diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index d42fdd6cb52e..d5907d887fd7 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -18,7 +18,6 @@ dependencies: codeql/xml: ${workspace} codeql/yaml: ${workspace} dataExtensions: - - semmle/javascript/frameworks/**/model.yml - semmle/javascript/frameworks/**/*.model.yml - semmle/javascript/security/domains/**/*.model.yml - ext/*.model.yml diff --git a/javascript/ql/lib/semmle/javascript/frameworks/minimongo/model.yml b/javascript/ql/lib/semmle/javascript/frameworks/minimongo/minimongo.model.yml similarity index 100% rename from javascript/ql/lib/semmle/javascript/frameworks/minimongo/model.yml rename to javascript/ql/lib/semmle/javascript/frameworks/minimongo/minimongo.model.yml diff --git a/javascript/ql/lib/semmle/javascript/frameworks/mongodb/model.yml b/javascript/ql/lib/semmle/javascript/frameworks/mongodb/mongodb.model.yml similarity index 100% rename from javascript/ql/lib/semmle/javascript/frameworks/mongodb/model.yml rename to javascript/ql/lib/semmle/javascript/frameworks/mongodb/mongodb.model.yml diff --git a/javascript/ql/lib/semmle/javascript/frameworks/mssql/model.yml b/javascript/ql/lib/semmle/javascript/frameworks/mssql/mssql.model.yml similarity index 100% rename from javascript/ql/lib/semmle/javascript/frameworks/mssql/model.yml rename to javascript/ql/lib/semmle/javascript/frameworks/mssql/mssql.model.yml diff --git a/javascript/ql/lib/semmle/javascript/frameworks/mysql/model.yml b/javascript/ql/lib/semmle/javascript/frameworks/mysql/mysql.model.yml similarity index 100% rename from javascript/ql/lib/semmle/javascript/frameworks/mysql/model.yml rename to javascript/ql/lib/semmle/javascript/frameworks/mysql/mysql.model.yml diff --git a/javascript/ql/lib/semmle/javascript/frameworks/pg/model.yml b/javascript/ql/lib/semmle/javascript/frameworks/pg/pg.model.yml similarity index 100% rename from javascript/ql/lib/semmle/javascript/frameworks/pg/model.yml rename to javascript/ql/lib/semmle/javascript/frameworks/pg/pg.model.yml diff --git a/javascript/ql/lib/semmle/javascript/frameworks/sequelize/model.yml b/javascript/ql/lib/semmle/javascript/frameworks/sequelize/sequelize.model.yml similarity index 100% rename from javascript/ql/lib/semmle/javascript/frameworks/sequelize/model.yml rename to javascript/ql/lib/semmle/javascript/frameworks/sequelize/sequelize.model.yml diff --git a/javascript/ql/lib/semmle/javascript/frameworks/spanner/model.yml b/javascript/ql/lib/semmle/javascript/frameworks/spanner/spanner.model.yml similarity index 100% rename from javascript/ql/lib/semmle/javascript/frameworks/spanner/model.yml rename to javascript/ql/lib/semmle/javascript/frameworks/spanner/spanner.model.yml diff --git a/javascript/ql/lib/semmle/javascript/frameworks/sqlite3/model.yml b/javascript/ql/lib/semmle/javascript/frameworks/sqlite3/sqlite3.model.yml similarity index 100% rename from javascript/ql/lib/semmle/javascript/frameworks/sqlite3/model.yml rename to javascript/ql/lib/semmle/javascript/frameworks/sqlite3/sqlite3.model.yml From 4943a2c6e49d31e786759f6598c4166d4938e610 Mon Sep 17 00:00:00 2001 From: Nick Rolfe Date: Tue, 10 Nov 2026 12:20:23 +0000 Subject: [PATCH 3/3] JS: convert data extensions to JSON --- javascript/ql/lib/ext/anthropic.model.json | 28 + javascript/ql/lib/ext/anthropic.model.yml | 18 - .../ql/lib/ext/apollo-server.model.json | 41 + javascript/ql/lib/ext/apollo-server.model.yml | 28 - javascript/ql/lib/ext/aws-sdk.model.json | 71 ++ javascript/ql/lib/ext/aws-sdk.model.yml | 52 -- javascript/ql/lib/ext/axios.model.json | 22 + javascript/ql/lib/ext/axios.model.yml | 12 - .../ql/lib/ext/call-me-maybe.model.json | 13 + javascript/ql/lib/ext/call-me-maybe.model.yml | 6 - javascript/ql/lib/ext/cors.model.json | 13 + javascript/ql/lib/ext/cors.model.yml | 6 - .../default-threat-models-fixup.model.json | 15 + .../ext/default-threat-models-fixup.model.yml | 8 - javascript/ql/lib/ext/fastmcp.model.json | 25 + javascript/ql/lib/ext/fastmcp.model.yml | 15 - javascript/ql/lib/ext/google-genai.model.json | 34 + javascript/ql/lib/ext/google-genai.model.yml | 24 - javascript/ql/lib/ext/graph-ql.model.json | 22 + javascript/ql/lib/ext/graph-ql.model.yml | 11 - .../ql/lib/ext/hana-db-client.model.json | 40 + .../ql/lib/ext/hana-db-client.model.yml | 27 - javascript/ql/lib/ext/langchain.model.json | 58 ++ javascript/ql/lib/ext/langchain.model.yml | 48 -- javascript/ql/lib/ext/make-dir.model.json | 13 + javascript/ql/lib/ext/make-dir.model.yml | 6 - .../ql/lib/ext/markdown-table.model.json | 13 + .../ql/lib/ext/markdown-table.model.yml | 6 - javascript/ql/lib/ext/mcp.model.json | 46 + javascript/ql/lib/ext/mcp.model.yml | 36 - javascript/ql/lib/ext/mkdirp.model.json | 14 + javascript/ql/lib/ext/mkdirp.model.yml | 7 - javascript/ql/lib/ext/open.model.json | 14 + javascript/ql/lib/ext/open.model.yml | 7 - javascript/ql/lib/ext/openai.model.json | 39 + javascript/ql/lib/ext/openai.model.yml | 29 - javascript/ql/lib/ext/openrouter.model.json | 29 + javascript/ql/lib/ext/openrouter.model.yml | 19 - .../ql/lib/ext/react-relay-threat.model.json | 22 + .../ql/lib/ext/react-relay-threat.model.yml | 15 - javascript/ql/lib/ext/react.model.json | 13 + javascript/ql/lib/ext/react.model.yml | 6 - javascript/ql/lib/ext/rimraf.model.json | 15 + javascript/ql/lib/ext/rimraf.model.yml | 8 - javascript/ql/lib/ext/shelljs.model.json | 13 + javascript/ql/lib/ext/shelljs.model.yml | 6 - javascript/ql/lib/ext/tanstack.model.json | 18 + javascript/ql/lib/ext/tanstack.model.yml | 11 - .../ql/lib/ext/underscore.string.model.json | 45 + .../ql/lib/ext/underscore.string.model.yml | 35 - javascript/ql/lib/ext/vue.model.json | 33 + javascript/ql/lib/ext/vue.model.yml | 22 - javascript/ql/lib/ext/zod.model.json | 26 + javascript/ql/lib/ext/zod.model.yml | 16 - javascript/ql/lib/qlpack.yml | 3 + .../javascript/frameworks/NoSQL.model.json | 20 + .../javascript/frameworks/NoSQL.model.yml | 13 - .../frameworks/NodeJSLib.model.json | 17 + .../javascript/frameworks/NodeJSLib.model.yml | 10 - .../javascript/frameworks/SQL.model.json | 29 + .../javascript/frameworks/SQL.model.yml | 19 - .../frameworks/data/internal/empty.model.json | 62 ++ .../frameworks/data/internal/empty.model.yml | 42 - .../helmet/Helmet.Required.Setting.model.json | 14 + .../helmet/Helmet.Required.Setting.model.yml | 7 - .../frameworks/minimongo/minimongo.model.json | 87 ++ .../frameworks/minimongo/minimongo.model.yml | 80 -- .../frameworks/mongodb/mongodb.model.json | 807 ++++++++++++++++++ .../frameworks/mongodb/mongodb.model.yml | 791 ----------------- .../frameworks/mssql/mssql.model.json | 46 + .../frameworks/mssql/mssql.model.yml | 39 - .../frameworks/mysql/mysql.model.json | 80 ++ .../frameworks/mysql/mysql.model.yml | 70 -- .../javascript/frameworks/pg/pg.model.json | 121 +++ .../javascript/frameworks/pg/pg.model.yml | 108 --- .../frameworks/sequelize/sequelize.model.json | 298 +++++++ .../frameworks/sequelize/sequelize.model.yml | 282 ------ .../frameworks/spanner/spanner.model.json | 199 +++++ .../frameworks/spanner/spanner.model.yml | 189 ---- .../frameworks/sqlite3/sqlite3.model.json | 38 + .../frameworks/sqlite3/sqlite3.model.yml | 28 - .../integrity_checking_required.model.json | 15 + .../integrity_checking_required.model.yml | 8 - .../compromised_domains.model.json | 13 + .../compromised/compromised_domains.model.yml | 6 - .../untrusted/untrusted_domains.model.json | 20 + .../untrusted/untrusted_domains.model.yml | 14 - 87 files changed, 2604 insertions(+), 2190 deletions(-) create mode 100644 javascript/ql/lib/ext/anthropic.model.json delete mode 100644 javascript/ql/lib/ext/anthropic.model.yml create mode 100644 javascript/ql/lib/ext/apollo-server.model.json delete mode 100644 javascript/ql/lib/ext/apollo-server.model.yml create mode 100644 javascript/ql/lib/ext/aws-sdk.model.json delete mode 100644 javascript/ql/lib/ext/aws-sdk.model.yml create mode 100644 javascript/ql/lib/ext/axios.model.json delete mode 100644 javascript/ql/lib/ext/axios.model.yml create mode 100644 javascript/ql/lib/ext/call-me-maybe.model.json delete mode 100644 javascript/ql/lib/ext/call-me-maybe.model.yml create mode 100644 javascript/ql/lib/ext/cors.model.json delete mode 100644 javascript/ql/lib/ext/cors.model.yml create mode 100644 javascript/ql/lib/ext/default-threat-models-fixup.model.json delete mode 100644 javascript/ql/lib/ext/default-threat-models-fixup.model.yml create mode 100644 javascript/ql/lib/ext/fastmcp.model.json delete mode 100644 javascript/ql/lib/ext/fastmcp.model.yml create mode 100644 javascript/ql/lib/ext/google-genai.model.json delete mode 100644 javascript/ql/lib/ext/google-genai.model.yml create mode 100644 javascript/ql/lib/ext/graph-ql.model.json delete mode 100644 javascript/ql/lib/ext/graph-ql.model.yml create mode 100644 javascript/ql/lib/ext/hana-db-client.model.json delete mode 100644 javascript/ql/lib/ext/hana-db-client.model.yml create mode 100644 javascript/ql/lib/ext/langchain.model.json delete mode 100644 javascript/ql/lib/ext/langchain.model.yml create mode 100644 javascript/ql/lib/ext/make-dir.model.json delete mode 100644 javascript/ql/lib/ext/make-dir.model.yml create mode 100644 javascript/ql/lib/ext/markdown-table.model.json delete mode 100644 javascript/ql/lib/ext/markdown-table.model.yml create mode 100644 javascript/ql/lib/ext/mcp.model.json delete mode 100644 javascript/ql/lib/ext/mcp.model.yml create mode 100644 javascript/ql/lib/ext/mkdirp.model.json delete mode 100644 javascript/ql/lib/ext/mkdirp.model.yml create mode 100644 javascript/ql/lib/ext/open.model.json delete mode 100644 javascript/ql/lib/ext/open.model.yml create mode 100644 javascript/ql/lib/ext/openai.model.json delete mode 100644 javascript/ql/lib/ext/openai.model.yml create mode 100644 javascript/ql/lib/ext/openrouter.model.json delete mode 100644 javascript/ql/lib/ext/openrouter.model.yml create mode 100644 javascript/ql/lib/ext/react-relay-threat.model.json delete mode 100644 javascript/ql/lib/ext/react-relay-threat.model.yml create mode 100644 javascript/ql/lib/ext/react.model.json delete mode 100644 javascript/ql/lib/ext/react.model.yml create mode 100644 javascript/ql/lib/ext/rimraf.model.json delete mode 100644 javascript/ql/lib/ext/rimraf.model.yml create mode 100644 javascript/ql/lib/ext/shelljs.model.json delete mode 100644 javascript/ql/lib/ext/shelljs.model.yml create mode 100644 javascript/ql/lib/ext/tanstack.model.json delete mode 100644 javascript/ql/lib/ext/tanstack.model.yml create mode 100644 javascript/ql/lib/ext/underscore.string.model.json delete mode 100644 javascript/ql/lib/ext/underscore.string.model.yml create mode 100644 javascript/ql/lib/ext/vue.model.json delete mode 100644 javascript/ql/lib/ext/vue.model.yml create mode 100644 javascript/ql/lib/ext/zod.model.json delete mode 100644 javascript/ql/lib/ext/zod.model.yml create mode 100644 javascript/ql/lib/semmle/javascript/frameworks/NoSQL.model.json delete mode 100644 javascript/ql/lib/semmle/javascript/frameworks/NoSQL.model.yml create mode 100644 javascript/ql/lib/semmle/javascript/frameworks/NodeJSLib.model.json delete mode 100644 javascript/ql/lib/semmle/javascript/frameworks/NodeJSLib.model.yml create mode 100644 javascript/ql/lib/semmle/javascript/frameworks/SQL.model.json delete mode 100644 javascript/ql/lib/semmle/javascript/frameworks/SQL.model.yml create mode 100644 javascript/ql/lib/semmle/javascript/frameworks/data/internal/empty.model.json delete mode 100644 javascript/ql/lib/semmle/javascript/frameworks/data/internal/empty.model.yml create mode 100644 javascript/ql/lib/semmle/javascript/frameworks/helmet/Helmet.Required.Setting.model.json delete mode 100644 javascript/ql/lib/semmle/javascript/frameworks/helmet/Helmet.Required.Setting.model.yml create mode 100644 javascript/ql/lib/semmle/javascript/frameworks/minimongo/minimongo.model.json delete mode 100644 javascript/ql/lib/semmle/javascript/frameworks/minimongo/minimongo.model.yml create mode 100644 javascript/ql/lib/semmle/javascript/frameworks/mongodb/mongodb.model.json delete mode 100644 javascript/ql/lib/semmle/javascript/frameworks/mongodb/mongodb.model.yml create mode 100644 javascript/ql/lib/semmle/javascript/frameworks/mssql/mssql.model.json delete mode 100644 javascript/ql/lib/semmle/javascript/frameworks/mssql/mssql.model.yml create mode 100644 javascript/ql/lib/semmle/javascript/frameworks/mysql/mysql.model.json delete mode 100644 javascript/ql/lib/semmle/javascript/frameworks/mysql/mysql.model.yml create mode 100644 javascript/ql/lib/semmle/javascript/frameworks/pg/pg.model.json delete mode 100644 javascript/ql/lib/semmle/javascript/frameworks/pg/pg.model.yml create mode 100644 javascript/ql/lib/semmle/javascript/frameworks/sequelize/sequelize.model.json delete mode 100644 javascript/ql/lib/semmle/javascript/frameworks/sequelize/sequelize.model.yml create mode 100644 javascript/ql/lib/semmle/javascript/frameworks/spanner/spanner.model.json delete mode 100644 javascript/ql/lib/semmle/javascript/frameworks/spanner/spanner.model.yml create mode 100644 javascript/ql/lib/semmle/javascript/frameworks/sqlite3/sqlite3.model.json delete mode 100644 javascript/ql/lib/semmle/javascript/frameworks/sqlite3/sqlite3.model.yml create mode 100644 javascript/ql/lib/semmle/javascript/security/domains/IntegrityCheckingRequired/integrity_checking_required.model.json delete mode 100644 javascript/ql/lib/semmle/javascript/security/domains/IntegrityCheckingRequired/integrity_checking_required.model.yml create mode 100644 javascript/ql/lib/semmle/javascript/security/domains/compromised/compromised_domains.model.json delete mode 100644 javascript/ql/lib/semmle/javascript/security/domains/compromised/compromised_domains.model.yml create mode 100644 javascript/ql/lib/semmle/javascript/security/domains/untrusted/untrusted_domains.model.json delete mode 100644 javascript/ql/lib/semmle/javascript/security/domains/untrusted/untrusted_domains.model.yml diff --git a/javascript/ql/lib/ext/anthropic.model.json b/javascript/ql/lib/ext/anthropic.model.json new file mode 100644 index 000000000000..565cb230d515 --- /dev/null +++ b/javascript/ql/lib/ext/anthropic.model.json @@ -0,0 +1,28 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "typeModel" + }, + "data": [ + ["anthropic.Client", "@anthropic-ai/sdk", "Instance"] + ] + }, + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "sinkModel" + }, + "data": [ + ["anthropic.Client", "Member[messages].Member[create].Argument[0].Member[system]", "system-prompt-injection"], + ["anthropic.Client", "Member[completions].Member[create].Argument[0].Member[prompt]", "user-prompt-injection"], + ["anthropic.Client", "Member[messages].Member[create].Argument[0].Member[system].ArrayElement.Member[text]", "system-prompt-injection"], + ["anthropic.Client", "Member[beta].Member[messages].Member[create].Argument[0].Member[system]", "system-prompt-injection"], + ["anthropic.Client", "Member[beta].Member[messages].Member[create].Argument[0].Member[system].ArrayElement.Member[text]", "system-prompt-injection"], + ["anthropic.Client", "Member[beta].Member[agents].Member[create].Argument[0].Member[system]", "system-prompt-injection"], + ["anthropic.Client", "Member[beta].Member[agents].Member[update].Argument[1].Member[system]", "system-prompt-injection"] + ] + } + ] +} diff --git a/javascript/ql/lib/ext/anthropic.model.yml b/javascript/ql/lib/ext/anthropic.model.yml deleted file mode 100644 index 80e829256971..000000000000 --- a/javascript/ql/lib/ext/anthropic.model.yml +++ /dev/null @@ -1,18 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: typeModel - data: - - ["anthropic.Client", "@anthropic-ai/sdk", "Instance"] - - - addsTo: - pack: codeql/javascript-all - extensible: sinkModel - data: - - ["anthropic.Client", "Member[messages].Member[create].Argument[0].Member[system]", "system-prompt-injection"] - - ["anthropic.Client", "Member[completions].Member[create].Argument[0].Member[prompt]", "user-prompt-injection"] - - ["anthropic.Client", "Member[messages].Member[create].Argument[0].Member[system].ArrayElement.Member[text]", "system-prompt-injection"] - - ["anthropic.Client", "Member[beta].Member[messages].Member[create].Argument[0].Member[system]", "system-prompt-injection"] - - ["anthropic.Client", "Member[beta].Member[messages].Member[create].Argument[0].Member[system].ArrayElement.Member[text]", "system-prompt-injection"] - - ["anthropic.Client", "Member[beta].Member[agents].Member[create].Argument[0].Member[system]", "system-prompt-injection"] - - ["anthropic.Client", "Member[beta].Member[agents].Member[update].Argument[1].Member[system]", "system-prompt-injection"] diff --git a/javascript/ql/lib/ext/apollo-server.model.json b/javascript/ql/lib/ext/apollo-server.model.json new file mode 100644 index 000000000000..927b48a109ac --- /dev/null +++ b/javascript/ql/lib/ext/apollo-server.model.json @@ -0,0 +1,41 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "sourceModel" + }, + "data": [ + ["@apollo/server", "Member[ApolloServer,ApolloServerBase].Argument[0].AnyMember.AnyMember.AnyMember.Parameter[1]", "remote"] + ] + }, + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "sinkModel" + }, + "data": [ + ["@apollo/server", "Member[gql].Argument[0]", "sql-injection"], + ["@apollo/server", "Member[ApolloServer,ApolloServerBase].Argument[0].Member[cors].Member[origin]", "cors-origin"] + ] + }, + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "typeModel" + }, + "data": [ + ["@apollo/server", "@apollo/server/standalone", ""], + ["@apollo/server", "apollo-server-express", ""], + ["@apollo/server", "apollo-server-core", ""], + ["@apollo/server", "apollo-server", ""], + ["@apollo/server", "@apollo/apollo-server-express", ""], + ["@apollo/server", "apollo-server-express", ""], + ["@apollo/server", "@apollo/server", ""], + ["@apollo/server", "@apollo/apollo-server-core", ""], + ["ApolloServer", "@apollo/server", "Member[ApolloServer]"], + ["GraphQLApollo", "@apollo/server", "Member[gql]"] + ] + } + ] +} diff --git a/javascript/ql/lib/ext/apollo-server.model.yml b/javascript/ql/lib/ext/apollo-server.model.yml deleted file mode 100644 index aa9755265b27..000000000000 --- a/javascript/ql/lib/ext/apollo-server.model.yml +++ /dev/null @@ -1,28 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: sourceModel - data: - - ["@apollo/server", "Member[ApolloServer,ApolloServerBase].Argument[0].AnyMember.AnyMember.AnyMember.Parameter[1]", "remote"] - - - addsTo: - pack: codeql/javascript-all - extensible: sinkModel - data: - - ["@apollo/server", "Member[gql].Argument[0]", "sql-injection"] - - ["@apollo/server", "Member[ApolloServer,ApolloServerBase].Argument[0].Member[cors].Member[origin]", "cors-origin"] - - - addsTo: - pack: codeql/javascript-all - extensible: typeModel - data: - - ["@apollo/server", "@apollo/server/standalone", ""] - - ["@apollo/server", "apollo-server-express", ""] - - ["@apollo/server", "apollo-server-core", ""] - - ["@apollo/server", "apollo-server", ""] - - ["@apollo/server", "@apollo/apollo-server-express", ""] - - ["@apollo/server", "apollo-server-express", ""] - - ["@apollo/server", "@apollo/server", ""] - - ["@apollo/server", "@apollo/apollo-server-core", ""] - - ["ApolloServer", "@apollo/server", "Member[ApolloServer]"] - - ["GraphQLApollo", "@apollo/server", "Member[gql]"] diff --git a/javascript/ql/lib/ext/aws-sdk.model.json b/javascript/ql/lib/ext/aws-sdk.model.json new file mode 100644 index 000000000000..eddc1d5a31f9 --- /dev/null +++ b/javascript/ql/lib/ext/aws-sdk.model.json @@ -0,0 +1,71 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "typeModel" + }, + "data": [ + ["aws-sdk.Athena", "aws-sdk", "Member[Athena]"], + ["aws-sdk.S3", "aws-sdk", "Member[S3]"], + ["aws-sdk.RDSDataService", "aws-sdk", "Member[RDSDataService]"], + ["aws-sdk.DynamoDB", "aws-sdk", "Member[DynamoDB]"], + ["@aws-sdk/client.Client", "@aws-sdk/client-athena", "Member[AthenaClient]"], + ["@aws-sdk/client.Client", "@aws-sdk/client-s3", "Member[S3Client]"], + ["@aws-sdk/client.Client", "@aws-sdk/client-dynamodb", "Member[DynamoDBClient,DynamoDB]"], + ["@aws-sdk/client.Client", "@aws-sdk/client-rds-data", "Member[RDSDataClient]"] + ] + }, + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "sinkModel" + }, + "data": [ + ["aws-sdk", "AnyMember.Argument[0].Member[secretAccessKey,accessKeyId]", "credentials-key"], + ["aws-sdk", "AnyMember.Member[secretAccessKey,accessKeyId]", "credentials-key"], + ["aws-sdk", "Member[Credentials].Argument[0,1]", "credentials-key"], + ["@aws-sdk/client.Client", "ReturnValue.Member[send].Argument[0]", "sql-injection"], + ["aws-sdk.Athena", "ReturnValue.Member[startQueryExecution,createNamedQuery,updateNamedQuery].Argument[0].Member[QueryString]", "sql-injection"], + ["aws-sdk.S3", "ReturnValue.Member[selectObjectContent].Argument[0].Member[Expression]", "sql-injection"], + ["aws-sdk.RDSDataService", "ReturnValue.Member[executeStatement,batchExecuteStatement].Argument[0].Member[sql]", "sql-injection"], + ["aws-sdk.RDSDataService", "ReturnValue.Member[batchExecuteStatement].Argument[0].Member[parameterSets].ArrayElement.Member[sql]", "sql-injection"], + ["aws-sdk.DynamoDB", "ReturnValue.Member[executeStatement].Argument[0].Member[Statement]", "sql-injection"], + ["aws-sdk.DynamoDB", "ReturnValue.Member[batchExecuteStatement].Argument[0].Member[Statements].ArrayElement.Member[Statement]", "sql-injection"] + ] + }, + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "summaryModel" + }, + "data": [ + ["@aws-sdk/client-athena", "Member[StartQueryExecutionCommand,CreateNamedQueryCommand,UpdateNamedQueryCommand]", "Argument[0].Member[QueryString]", "ReturnValue", "taint"], + ["@aws-sdk/client-athena", "Member[CreatePreparedStatementCommand]", "Argument[0].Member[QueryStatement]", "ReturnValue", "taint"], + ["@aws-sdk/client-s3", "Member[SelectObjectContentCommand]", "Argument[0].Member[Expression]", "ReturnValue", "taint"], + ["@aws-sdk/client-rds-data", "Member[ExecuteStatementCommand,BatchExecuteStatementCommand]", "Argument[0].Member[sql]", "ReturnValue", "taint"], + ["@aws-sdk/client-rds-data", "Member[BatchExecuteStatementCommand]", "Argument[0].Member[parameterSets].ArrayElement.Member[sql]", "ReturnValue", "taint"], + ["@aws-sdk/client-rds-data", "Member[ExecuteSqlCommand]", "Argument[0].Member[sqlStatements]", "ReturnValue", "taint"], + ["@aws-sdk/client-dynamodb", "Member[ExecuteStatementCommand]", "Argument[0].Member[Statement]", "ReturnValue", "taint"], + ["@aws-sdk/client-dynamodb", "Member[BatchExecuteStatementCommand]", "Argument[0].Member[Statements].ArrayElement.Member[Statement]", "ReturnValue", "taint"] + ] + }, + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "sourceModel" + }, + "data": [ + ["@aws-sdk/client.Client", "ReturnValue.Member[send].ReturnValue.Awaited", "database-access-result"], + ["aws-sdk.Athena", "ReturnValue.Member[getQueryResults].ReturnValue.Member[promise].ReturnValue.Awaited", "database-access-result"], + ["aws-sdk.Athena", "ReturnValue.Member[getQueryResults].Argument[1].Parameter[1]", "database-access-result"], + ["aws-sdk.S3", "ReturnValue.Member[getObject].ReturnValue.Member[promise].ReturnValue.Awaited", "database-access-result"], + ["aws-sdk.S3", "ReturnValue.Member[getObject].Argument[1].Parameter[1]", "database-access-result"], + ["aws-sdk.RDSDataService", "ReturnValue.Member[executeStatement,batchExecuteStatement].ReturnValue.Member[promise].ReturnValue.Awaited", "database-access-result"], + ["aws-sdk.RDSDataService", "ReturnValue.Member[executeStatement,batchExecuteStatement].Argument[1].Parameter[1]", "database-access-result"], + ["aws-sdk.DynamoDB", "ReturnValue.Member[executeStatement,batchExecuteStatement,query,scan,getItem,batchGetItem].ReturnValue.Member[promise].ReturnValue.Awaited", "database-access-result"], + ["aws-sdk.DynamoDB", "ReturnValue.Member[executeStatement,batchExecuteStatement,query,scan,getItem,batchGetItem].Argument[1].Parameter[1]", "database-access-result"] + ] + } + ] +} diff --git a/javascript/ql/lib/ext/aws-sdk.model.yml b/javascript/ql/lib/ext/aws-sdk.model.yml deleted file mode 100644 index 40fa4b8b703a..000000000000 --- a/javascript/ql/lib/ext/aws-sdk.model.yml +++ /dev/null @@ -1,52 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: typeModel - data: - - ["aws-sdk.Athena", "aws-sdk", "Member[Athena]"] - - ["aws-sdk.S3", "aws-sdk", "Member[S3]"] - - ["aws-sdk.RDSDataService", "aws-sdk", "Member[RDSDataService]"] - - ["aws-sdk.DynamoDB", "aws-sdk", "Member[DynamoDB]"] - - ["@aws-sdk/client.Client", "@aws-sdk/client-athena", "Member[AthenaClient]"] - - ["@aws-sdk/client.Client", "@aws-sdk/client-s3", "Member[S3Client]"] - - ["@aws-sdk/client.Client", "@aws-sdk/client-dynamodb", "Member[DynamoDBClient,DynamoDB]"] - - ["@aws-sdk/client.Client", "@aws-sdk/client-rds-data", "Member[RDSDataClient]"] - - addsTo: - pack: codeql/javascript-all - extensible: sinkModel - data: - - ["aws-sdk", "AnyMember.Argument[0].Member[secretAccessKey,accessKeyId]", "credentials-key"] - - ["aws-sdk", "AnyMember.Member[secretAccessKey,accessKeyId]", "credentials-key"] - - ["aws-sdk", "Member[Credentials].Argument[0,1]", "credentials-key"] - - ["@aws-sdk/client.Client", "ReturnValue.Member[send].Argument[0]", "sql-injection"] - - ["aws-sdk.Athena", "ReturnValue.Member[startQueryExecution,createNamedQuery,updateNamedQuery].Argument[0].Member[QueryString]", "sql-injection"] - - ["aws-sdk.S3", "ReturnValue.Member[selectObjectContent].Argument[0].Member[Expression]", "sql-injection"] - - ["aws-sdk.RDSDataService", "ReturnValue.Member[executeStatement,batchExecuteStatement].Argument[0].Member[sql]", "sql-injection"] - - ["aws-sdk.RDSDataService", "ReturnValue.Member[batchExecuteStatement].Argument[0].Member[parameterSets].ArrayElement.Member[sql]", "sql-injection"] - - ["aws-sdk.DynamoDB", "ReturnValue.Member[executeStatement].Argument[0].Member[Statement]", "sql-injection"] - - ["aws-sdk.DynamoDB", "ReturnValue.Member[batchExecuteStatement].Argument[0].Member[Statements].ArrayElement.Member[Statement]", "sql-injection"] - - addsTo: - pack: codeql/javascript-all - extensible: summaryModel - data: - - ["@aws-sdk/client-athena", "Member[StartQueryExecutionCommand,CreateNamedQueryCommand,UpdateNamedQueryCommand]", "Argument[0].Member[QueryString]", "ReturnValue", "taint"] - - ["@aws-sdk/client-athena", "Member[CreatePreparedStatementCommand]", "Argument[0].Member[QueryStatement]", "ReturnValue", "taint"] - - ["@aws-sdk/client-s3", "Member[SelectObjectContentCommand]", "Argument[0].Member[Expression]", "ReturnValue", "taint"] - - ["@aws-sdk/client-rds-data", "Member[ExecuteStatementCommand,BatchExecuteStatementCommand]", "Argument[0].Member[sql]", "ReturnValue", "taint"] - - ["@aws-sdk/client-rds-data", "Member[BatchExecuteStatementCommand]", "Argument[0].Member[parameterSets].ArrayElement.Member[sql]", "ReturnValue", "taint"] - - ["@aws-sdk/client-rds-data", "Member[ExecuteSqlCommand]", "Argument[0].Member[sqlStatements]", "ReturnValue", "taint"] - - ["@aws-sdk/client-dynamodb", "Member[ExecuteStatementCommand]", "Argument[0].Member[Statement]", "ReturnValue", "taint"] - - ["@aws-sdk/client-dynamodb", "Member[BatchExecuteStatementCommand]", "Argument[0].Member[Statements].ArrayElement.Member[Statement]", "ReturnValue", "taint"] - - addsTo: - pack: codeql/javascript-all - extensible: sourceModel - data: - - ["@aws-sdk/client.Client", "ReturnValue.Member[send].ReturnValue.Awaited", "database-access-result"] - - ["aws-sdk.Athena", "ReturnValue.Member[getQueryResults].ReturnValue.Member[promise].ReturnValue.Awaited", "database-access-result"] - - ["aws-sdk.Athena", "ReturnValue.Member[getQueryResults].Argument[1].Parameter[1]", "database-access-result"] - - ["aws-sdk.S3", "ReturnValue.Member[getObject].ReturnValue.Member[promise].ReturnValue.Awaited", "database-access-result"] - - ["aws-sdk.S3", "ReturnValue.Member[getObject].Argument[1].Parameter[1]", "database-access-result"] - - ["aws-sdk.RDSDataService", "ReturnValue.Member[executeStatement,batchExecuteStatement].ReturnValue.Member[promise].ReturnValue.Awaited", "database-access-result"] - - ["aws-sdk.RDSDataService", "ReturnValue.Member[executeStatement,batchExecuteStatement].Argument[1].Parameter[1]", "database-access-result"] - - ["aws-sdk.DynamoDB", "ReturnValue.Member[executeStatement,batchExecuteStatement,query,scan,getItem,batchGetItem].ReturnValue.Member[promise].ReturnValue.Awaited", "database-access-result"] - - ["aws-sdk.DynamoDB", "ReturnValue.Member[executeStatement,batchExecuteStatement,query,scan,getItem,batchGetItem].Argument[1].Parameter[1]", "database-access-result"] diff --git a/javascript/ql/lib/ext/axios.model.json b/javascript/ql/lib/ext/axios.model.json new file mode 100644 index 000000000000..94e0bd719775 --- /dev/null +++ b/javascript/ql/lib/ext/axios.model.json @@ -0,0 +1,22 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "sinkModel" + }, + "data": [ + ["axios", "Member[interceptors].Member[request].Member[use].Argument[0].Parameter[0].Member[url]", "request-forgery"] + ] + }, + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "sourceModel" + }, + "data": [ + ["axios", "Member[interceptors].Member[response].Member[use].Argument[0].Parameter[0]", "response"] + ] + } + ] +} diff --git a/javascript/ql/lib/ext/axios.model.yml b/javascript/ql/lib/ext/axios.model.yml deleted file mode 100644 index 69740c31e299..000000000000 --- a/javascript/ql/lib/ext/axios.model.yml +++ /dev/null @@ -1,12 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: sinkModel - data: - - ["axios", "Member[interceptors].Member[request].Member[use].Argument[0].Parameter[0].Member[url]", "request-forgery"] - - - addsTo: - pack: codeql/javascript-all - extensible: sourceModel - data: - - ["axios", "Member[interceptors].Member[response].Member[use].Argument[0].Parameter[0]", "response"] diff --git a/javascript/ql/lib/ext/call-me-maybe.model.json b/javascript/ql/lib/ext/call-me-maybe.model.json new file mode 100644 index 000000000000..4c892e7384ad --- /dev/null +++ b/javascript/ql/lib/ext/call-me-maybe.model.json @@ -0,0 +1,13 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "summaryModel" + }, + "data": [ + ["call-me-maybe", "", "Argument[1]", "ReturnValue", "value"] + ] + } + ] +} diff --git a/javascript/ql/lib/ext/call-me-maybe.model.yml b/javascript/ql/lib/ext/call-me-maybe.model.yml deleted file mode 100644 index ceda3e8b0922..000000000000 --- a/javascript/ql/lib/ext/call-me-maybe.model.yml +++ /dev/null @@ -1,6 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: summaryModel - data: - - ["call-me-maybe", "", "Argument[1]", "ReturnValue", "value"] diff --git a/javascript/ql/lib/ext/cors.model.json b/javascript/ql/lib/ext/cors.model.json new file mode 100644 index 000000000000..f6a2f4623476 --- /dev/null +++ b/javascript/ql/lib/ext/cors.model.json @@ -0,0 +1,13 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "sinkModel" + }, + "data": [ + ["cors", "Argument[0].Member[origin]", "cors-origin"] + ] + } + ] +} diff --git a/javascript/ql/lib/ext/cors.model.yml b/javascript/ql/lib/ext/cors.model.yml deleted file mode 100644 index 31125d454b9b..000000000000 --- a/javascript/ql/lib/ext/cors.model.yml +++ /dev/null @@ -1,6 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: sinkModel - data: - - ["cors", "Argument[0].Member[origin]", "cors-origin"] diff --git a/javascript/ql/lib/ext/default-threat-models-fixup.model.json b/javascript/ql/lib/ext/default-threat-models-fixup.model.json new file mode 100644 index 000000000000..5a15fb203014 --- /dev/null +++ b/javascript/ql/lib/ext/default-threat-models-fixup.model.json @@ -0,0 +1,15 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/threat-models", + "extensible": "threatModelConfiguration" + }, + "data": [ + // Since responses are enabled by default in the shared threat-models configuration, + // we need to disable it here to keep existing behavior for the javascript analysis. + ["response", false, -2147483647] + ] + } + ] +} diff --git a/javascript/ql/lib/ext/default-threat-models-fixup.model.yml b/javascript/ql/lib/ext/default-threat-models-fixup.model.yml deleted file mode 100644 index 31363571544b..000000000000 --- a/javascript/ql/lib/ext/default-threat-models-fixup.model.yml +++ /dev/null @@ -1,8 +0,0 @@ -extensions: - - addsTo: - pack: codeql/threat-models - extensible: threatModelConfiguration - data: - # Since responses are enabled by default in the shared threat-models configuration, - # we need to disable it here to keep existing behavior for the javascript analysis. - - ["response", false, -2147483647] diff --git a/javascript/ql/lib/ext/fastmcp.model.json b/javascript/ql/lib/ext/fastmcp.model.json new file mode 100644 index 000000000000..9454219ef982 --- /dev/null +++ b/javascript/ql/lib/ext/fastmcp.model.json @@ -0,0 +1,25 @@ +// Sources for MCP servers built with the npm package "fastmcp": the arguments of tools, resource +// templates and prompts. +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "typeModel" + }, + "data": [ + ["fastmcp.FastMCP", "fastmcp", "Member[FastMCP].Instance"] + ] + }, + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "sourceModel" + }, + "data": [ + ["fastmcp.FastMCP", "Member[addTool].Argument[0].Member[execute].Parameter[0]", "ai"], + ["fastmcp.FastMCP", "Member[addResourceTemplate,addPrompt].Argument[0].Member[load].Parameter[0]", "ai"] + ] + } + ] +} diff --git a/javascript/ql/lib/ext/fastmcp.model.yml b/javascript/ql/lib/ext/fastmcp.model.yml deleted file mode 100644 index bc784820c864..000000000000 --- a/javascript/ql/lib/ext/fastmcp.model.yml +++ /dev/null @@ -1,15 +0,0 @@ -# Sources for MCP servers built with the npm package "fastmcp": the arguments of tools, resource -# templates and prompts. -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: typeModel - data: - - ["fastmcp.FastMCP", "fastmcp", "Member[FastMCP].Instance"] - - - addsTo: - pack: codeql/javascript-all - extensible: sourceModel - data: - - ["fastmcp.FastMCP", "Member[addTool].Argument[0].Member[execute].Parameter[0]", "ai"] - - ["fastmcp.FastMCP", "Member[addResourceTemplate,addPrompt].Argument[0].Member[load].Parameter[0]", "ai"] diff --git a/javascript/ql/lib/ext/google-genai.model.json b/javascript/ql/lib/ext/google-genai.model.json new file mode 100644 index 000000000000..4a5a8ffa3b39 --- /dev/null +++ b/javascript/ql/lib/ext/google-genai.model.json @@ -0,0 +1,34 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "typeModel" + }, + "data": [ + ["google-genai.Client", "@google/genai", "Member[GoogleGenAI].Instance"] + ] + }, + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "sinkModel" + }, + "data": [ + ["google-genai.Client", "Member[models].Member[generateContent,generateContentStream].Argument[0].Member[config].Member[systemInstruction]", "system-prompt-injection"], + ["google-genai.Client", "Member[chats].Member[create].Argument[0].Member[config].Member[systemInstruction]", "system-prompt-injection"], + ["google-genai.Client", "Member[chats].Member[create].ReturnValue.Member[sendMessage].Argument[0].Member[config].Member[systemInstruction]", "system-prompt-injection"], + ["google-genai.Client", "Member[live].Member[connect].Argument[0].Member[config].Member[systemInstruction]", "system-prompt-injection"], + ["google-genai.Client", "Member[caches].Member[create].Argument[0].Member[config].Member[systemInstruction]", "system-prompt-injection"], + ["google-genai.Client", "Member[models].Member[generateContent,generateContentStream].Argument[0].Member[contents]", "user-prompt-injection"], + ["google-genai.Client", "Member[models].Member[generateImages].Argument[0].Member[prompt]", "user-prompt-injection"], + ["google-genai.Client", "Member[models].Member[editImage].Argument[0].Member[prompt]", "user-prompt-injection"], + ["google-genai.Client", "Member[models].Member[generateVideos].Argument[0].Member[prompt]", "user-prompt-injection"], + ["google-genai.Client", "Member[chats].Member[create].ReturnValue.Member[sendMessage,sendMessageStream].Argument[0].Member[message]", "user-prompt-injection"], + ["google-genai.Client", "Member[chats].Member[create].ReturnValue.Member[sendMessage,sendMessageStream].Argument[0].Member[content]", "user-prompt-injection"], + ["google-genai.Client", "Member[interactions].Member[create].Argument[0].Member[input]", "user-prompt-injection"], + ["google-genai.Client", "Member[caches].Member[create].Argument[0].Member[config].Member[contents]", "user-prompt-injection"] + ] + } + ] +} diff --git a/javascript/ql/lib/ext/google-genai.model.yml b/javascript/ql/lib/ext/google-genai.model.yml deleted file mode 100644 index 9b9796d4fa9a..000000000000 --- a/javascript/ql/lib/ext/google-genai.model.yml +++ /dev/null @@ -1,24 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: typeModel - data: - - ["google-genai.Client", "@google/genai", "Member[GoogleGenAI].Instance"] - - - addsTo: - pack: codeql/javascript-all - extensible: sinkModel - data: - - ["google-genai.Client", "Member[models].Member[generateContent,generateContentStream].Argument[0].Member[config].Member[systemInstruction]", "system-prompt-injection"] - - ["google-genai.Client", "Member[chats].Member[create].Argument[0].Member[config].Member[systemInstruction]", "system-prompt-injection"] - - ["google-genai.Client", "Member[chats].Member[create].ReturnValue.Member[sendMessage].Argument[0].Member[config].Member[systemInstruction]", "system-prompt-injection"] - - ["google-genai.Client", "Member[live].Member[connect].Argument[0].Member[config].Member[systemInstruction]", "system-prompt-injection"] - - ["google-genai.Client", "Member[caches].Member[create].Argument[0].Member[config].Member[systemInstruction]", "system-prompt-injection"] - - ["google-genai.Client", "Member[models].Member[generateContent,generateContentStream].Argument[0].Member[contents]", "user-prompt-injection"] - - ["google-genai.Client", "Member[models].Member[generateImages].Argument[0].Member[prompt]", "user-prompt-injection"] - - ["google-genai.Client", "Member[models].Member[editImage].Argument[0].Member[prompt]", "user-prompt-injection"] - - ["google-genai.Client", "Member[models].Member[generateVideos].Argument[0].Member[prompt]", "user-prompt-injection"] - - ["google-genai.Client", "Member[chats].Member[create].ReturnValue.Member[sendMessage,sendMessageStream].Argument[0].Member[message]", "user-prompt-injection"] - - ["google-genai.Client", "Member[chats].Member[create].ReturnValue.Member[sendMessage,sendMessageStream].Argument[0].Member[content]", "user-prompt-injection"] - - ["google-genai.Client", "Member[interactions].Member[create].Argument[0].Member[input]", "user-prompt-injection"] - - ["google-genai.Client", "Member[caches].Member[create].Argument[0].Member[config].Member[contents]", "user-prompt-injection"] diff --git a/javascript/ql/lib/ext/graph-ql.model.json b/javascript/ql/lib/ext/graph-ql.model.json new file mode 100644 index 000000000000..dfff94f001a5 --- /dev/null +++ b/javascript/ql/lib/ext/graph-ql.model.json @@ -0,0 +1,22 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "summaryModel" + }, + "data": [ + ["graphql", "Member[graphql]", "Argument[0].Member[source,variableValues]", "Argument[0].Member[rootValue].AnyMember.Parameter[0]", "taint"] + ] + }, + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "sourceModel" + }, + "data": [ + ["graphql", "Member[GraphQLObjectType].Argument[0].Member[fields].AnyMember.Member[resolve].Parameter[1]", "remote"] + ] + } + ] +} diff --git a/javascript/ql/lib/ext/graph-ql.model.yml b/javascript/ql/lib/ext/graph-ql.model.yml deleted file mode 100644 index 2ea1c41ed9fc..000000000000 --- a/javascript/ql/lib/ext/graph-ql.model.yml +++ /dev/null @@ -1,11 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: summaryModel - data: - - ["graphql", "Member[graphql]", "Argument[0].Member[source,variableValues]", "Argument[0].Member[rootValue].AnyMember.Parameter[0]", "taint"] - - addsTo: - pack: codeql/javascript-all - extensible: sourceModel - data: - - ["graphql", "Member[GraphQLObjectType].Argument[0].Member[fields].AnyMember.Member[resolve].Parameter[1]", "remote"] diff --git a/javascript/ql/lib/ext/hana-db-client.model.json b/javascript/ql/lib/ext/hana-db-client.model.json new file mode 100644 index 000000000000..917478818763 --- /dev/null +++ b/javascript/ql/lib/ext/hana-db-client.model.json @@ -0,0 +1,40 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "sinkModel" + }, + "data": [ + ["@sap/hana-client", "Member[createConnection].ReturnValue.Member[exec,prepare].Argument[0]", "sql-injection"], + ["hdb.Client", "Member[exec,prepare,execute].Argument[0]", "sql-injection"], + ["@sap/hdbext", "Member[loadProcedure].Argument[2]", "sql-injection"], + ["@sap/hana-client/extension/Stream", "Member[createProcStatement].Argument[1]", "sql-injection"] + ] + }, + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "typeModel" + }, + "data": [ + ["hdb.Client", "hdb", "Member[createClient].ReturnValue"], + ["hdb.Client", "@sap/hdbext", "Member[middleware].ReturnValue.GuardedRouteHandler.Parameter[0].Member[db]"] + ] + }, + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "sourceModel" + }, + "data": [ + ["@sap/hana-client", "Member[createConnection].ReturnValue.Member[exec].Argument[1].Parameter[1]", "database-access-result"], + ["@sap/hana-client", "Member[createConnection].ReturnValue.Member[prepare].ReturnValue.Member[execBatch,exec,execQuery].Argument[1].Parameter[1]", "database-access-result"], + ["hdb.Client", "Member[exec,execute].Argument[1..2].Parameter[1]", "database-access-result"], + ["hdb.Client", "Member[prepare].Argument[1].Parameter[1].Member[exec].Argument[1].Parameter[2..]", "database-access-result"], + ["@sap/hana-client/extension/Stream", "Member[createProcStatement].Argument[2].Parameter[1].Member[exec].Argument[1].Parameter[2..]", "database-access-result"], + ["@sap/hdbext", "Member[loadProcedure].Argument[3].Parameter[1].Argument[2].Parameter[2..]", "database-access-result"] + ] + } + ] +} diff --git a/javascript/ql/lib/ext/hana-db-client.model.yml b/javascript/ql/lib/ext/hana-db-client.model.yml deleted file mode 100644 index 1a6b1e8425a6..000000000000 --- a/javascript/ql/lib/ext/hana-db-client.model.yml +++ /dev/null @@ -1,27 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: sinkModel - data: - - ["@sap/hana-client", "Member[createConnection].ReturnValue.Member[exec,prepare].Argument[0]", "sql-injection"] - - ["hdb.Client", "Member[exec,prepare,execute].Argument[0]", "sql-injection"] - - ["@sap/hdbext", "Member[loadProcedure].Argument[2]", "sql-injection"] - - ["@sap/hana-client/extension/Stream", "Member[createProcStatement].Argument[1]", "sql-injection"] - - - addsTo: - pack: codeql/javascript-all - extensible: typeModel - data: - - ["hdb.Client", "hdb", "Member[createClient].ReturnValue"] - - ["hdb.Client", "@sap/hdbext", "Member[middleware].ReturnValue.GuardedRouteHandler.Parameter[0].Member[db]"] - - - addsTo: - pack: codeql/javascript-all - extensible: sourceModel - data: - - ['@sap/hana-client', 'Member[createConnection].ReturnValue.Member[exec].Argument[1].Parameter[1]', 'database-access-result'] - - ['@sap/hana-client', 'Member[createConnection].ReturnValue.Member[prepare].ReturnValue.Member[execBatch,exec,execQuery].Argument[1].Parameter[1]', 'database-access-result'] - - ['hdb.Client', 'Member[exec,execute].Argument[1..2].Parameter[1]', 'database-access-result'] - - ['hdb.Client', 'Member[prepare].Argument[1].Parameter[1].Member[exec].Argument[1].Parameter[2..]', 'database-access-result'] - - ["@sap/hana-client/extension/Stream", "Member[createProcStatement].Argument[2].Parameter[1].Member[exec].Argument[1].Parameter[2..]", "database-access-result"] - - ['@sap/hdbext', 'Member[loadProcedure].Argument[3].Parameter[1].Argument[2].Parameter[2..]', 'database-access-result'] diff --git a/javascript/ql/lib/ext/langchain.model.json b/javascript/ql/lib/ext/langchain.model.json new file mode 100644 index 000000000000..2ce8b53704ac --- /dev/null +++ b/javascript/ql/lib/ext/langchain.model.json @@ -0,0 +1,58 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "typeModel" + }, + "data": [ + ["langchain.ChatModel", "@langchain/openai", "Member[ChatOpenAI].Instance"], + ["langchain.ChatModel", "@langchain/anthropic", "Member[ChatAnthropic].Instance"], + ["langchain.ChatModel", "@langchain/google-genai", "Member[ChatGoogleGenerativeAI].Instance"], + ["langchain.ChatModel", "@langchain/mistralai", "Member[ChatMistralAI].Instance"], + ["langchain.ChatModel", "@langchain/groq", "Member[ChatGroq].Instance"], + ["langchain.ChatModel", "@langchain/cohere", "Member[ChatCohere].Instance"], + ["langchain.ChatModel", "@langchain/community/chat_models/fireworks", "Member[ChatFireworks].Instance"], + ["langchain.ChatModel", "@langchain/ollama", "Member[ChatOllama].Instance"], + ["langchain.ChatModel", "@langchain/aws", "Member[BedrockChat,ChatBedrockConverse].Instance"], + ["langchain.ChatModel", "@langchain/community/chat_models/togetherai", "Member[ChatTogetherAI].Instance"], + ["langchain.ChatModel", "@langchain/xai", "Member[ChatXAI].Instance"], + ["langchain.ChatModel", "@langchain/openrouter", "Member[ChatOpenRouter].Instance"], + ["langchain.ChatModel", "langchain", "Member[initChatModel].ReturnValue.Awaited"], + ["langchain.AgentExecutor", "langchain/agents", "Member[AgentExecutor].Instance"], + ["langchain.AgentExecutor", "langchain/agents", "Member[AgentExecutor].Member[fromAgentAndTools].ReturnValue"], + ["langchain.Agent", "langchain", "Member[createAgent].ReturnValue"], + ["langchain.LLMChain", "langchain/chains", "Member[LLMChain].Instance"] + ] + }, + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "sinkModel" + }, + "data": [ + ["@langchain/core/messages", "Member[HumanMessage].Argument[0]", "user-prompt-injection"], + ["@langchain/core/messages", "Member[HumanMessage].Argument[0].Member[content]", "user-prompt-injection"], + ["langchain", "Member[HumanMessage].Argument[0]", "user-prompt-injection"], + ["langchain", "Member[HumanMessage].Argument[0].Member[content]", "user-prompt-injection"], + ["@langchain/core/messages", "Member[SystemMessage].Argument[0]", "system-prompt-injection"], + ["@langchain/core/messages", "Member[SystemMessage].Argument[0].Member[content]", "system-prompt-injection"], + ["langchain", "Member[SystemMessage].Argument[0]", "system-prompt-injection"], + ["langchain", "Member[SystemMessage].Argument[0].Member[content]", "system-prompt-injection"], + ["langchain.ChatModel", "Member[invoke].Argument[0]", "user-prompt-injection"], + ["langchain.ChatModel", "Member[stream].Argument[0]", "user-prompt-injection"], + ["langchain.ChatModel", "Member[call].Argument[0]", "user-prompt-injection"], + ["langchain.ChatModel", "Member[predict].Argument[0]", "user-prompt-injection"], + ["langchain.ChatModel", "Member[batch].Argument[0].ArrayElement", "user-prompt-injection"], + ["langchain.ChatModel", "Member[generate].Argument[0].ArrayElement.ArrayElement", "user-prompt-injection"], + ["langchain.AgentExecutor", "Member[invoke].Argument[0].Member[input]", "user-prompt-injection"], + ["langchain.Agent", "Member[invoke].Argument[0].Member[messages].ArrayElement.Member[content]", "user-prompt-injection"], + ["langchain.Agent", "Member[stream].Argument[0].Member[messages].ArrayElement.Member[content]", "user-prompt-injection"], + ["langchain", "Member[createAgent].Argument[0].Member[systemPrompt]", "system-prompt-injection"], + ["langchain.LLMChain", "Member[call,invoke].Argument[0].Member[input]", "user-prompt-injection"], + ["@langchain/core/prompts", "Member[ChatPromptTemplate].Member[fromMessages].Argument[0].ArrayElement.ArrayElement", "user-prompt-injection"], + ["@langchain/core/prompts", "Member[PromptTemplate].Instance.Member[format].Argument[0]", "user-prompt-injection"] + ] + } + ] +} diff --git a/javascript/ql/lib/ext/langchain.model.yml b/javascript/ql/lib/ext/langchain.model.yml deleted file mode 100644 index 76c3f5359a08..000000000000 --- a/javascript/ql/lib/ext/langchain.model.yml +++ /dev/null @@ -1,48 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: typeModel - data: - - ["langchain.ChatModel", "@langchain/openai", "Member[ChatOpenAI].Instance"] - - ["langchain.ChatModel", "@langchain/anthropic", "Member[ChatAnthropic].Instance"] - - ["langchain.ChatModel", "@langchain/google-genai", "Member[ChatGoogleGenerativeAI].Instance"] - - ["langchain.ChatModel", "@langchain/mistralai", "Member[ChatMistralAI].Instance"] - - ["langchain.ChatModel", "@langchain/groq", "Member[ChatGroq].Instance"] - - ["langchain.ChatModel", "@langchain/cohere", "Member[ChatCohere].Instance"] - - ["langchain.ChatModel", "@langchain/community/chat_models/fireworks", "Member[ChatFireworks].Instance"] - - ["langchain.ChatModel", "@langchain/ollama", "Member[ChatOllama].Instance"] - - ["langchain.ChatModel", "@langchain/aws", "Member[BedrockChat,ChatBedrockConverse].Instance"] - - ["langchain.ChatModel", "@langchain/community/chat_models/togetherai", "Member[ChatTogetherAI].Instance"] - - ["langchain.ChatModel", "@langchain/xai", "Member[ChatXAI].Instance"] - - ["langchain.ChatModel", "@langchain/openrouter", "Member[ChatOpenRouter].Instance"] - - ["langchain.ChatModel", "langchain", "Member[initChatModel].ReturnValue.Awaited"] - - ["langchain.AgentExecutor", "langchain/agents", "Member[AgentExecutor].Instance"] - - ["langchain.AgentExecutor", "langchain/agents", "Member[AgentExecutor].Member[fromAgentAndTools].ReturnValue"] - - ["langchain.Agent", "langchain", "Member[createAgent].ReturnValue"] - - ["langchain.LLMChain", "langchain/chains", "Member[LLMChain].Instance"] - - - addsTo: - pack: codeql/javascript-all - extensible: sinkModel - data: - - ["@langchain/core/messages", "Member[HumanMessage].Argument[0]", "user-prompt-injection"] - - ["@langchain/core/messages", "Member[HumanMessage].Argument[0].Member[content]", "user-prompt-injection"] - - ["langchain", "Member[HumanMessage].Argument[0]", "user-prompt-injection"] - - ["langchain", "Member[HumanMessage].Argument[0].Member[content]", "user-prompt-injection"] - - ["@langchain/core/messages", "Member[SystemMessage].Argument[0]", "system-prompt-injection"] - - ["@langchain/core/messages", "Member[SystemMessage].Argument[0].Member[content]", "system-prompt-injection"] - - ["langchain", "Member[SystemMessage].Argument[0]", "system-prompt-injection"] - - ["langchain", "Member[SystemMessage].Argument[0].Member[content]", "system-prompt-injection"] - - ["langchain.ChatModel", "Member[invoke].Argument[0]", "user-prompt-injection"] - - ["langchain.ChatModel", "Member[stream].Argument[0]", "user-prompt-injection"] - - ["langchain.ChatModel", "Member[call].Argument[0]", "user-prompt-injection"] - - ["langchain.ChatModel", "Member[predict].Argument[0]", "user-prompt-injection"] - - ["langchain.ChatModel", "Member[batch].Argument[0].ArrayElement", "user-prompt-injection"] - - ["langchain.ChatModel", "Member[generate].Argument[0].ArrayElement.ArrayElement", "user-prompt-injection"] - - ["langchain.AgentExecutor", "Member[invoke].Argument[0].Member[input]", "user-prompt-injection"] - - ["langchain.Agent", "Member[invoke].Argument[0].Member[messages].ArrayElement.Member[content]", "user-prompt-injection"] - - ["langchain.Agent", "Member[stream].Argument[0].Member[messages].ArrayElement.Member[content]", "user-prompt-injection"] - - ["langchain", "Member[createAgent].Argument[0].Member[systemPrompt]", "system-prompt-injection"] - - ["langchain.LLMChain", "Member[call,invoke].Argument[0].Member[input]", "user-prompt-injection"] - - ["@langchain/core/prompts", "Member[ChatPromptTemplate].Member[fromMessages].Argument[0].ArrayElement.ArrayElement", "user-prompt-injection"] - - ["@langchain/core/prompts", "Member[PromptTemplate].Instance.Member[format].Argument[0]", "user-prompt-injection"] diff --git a/javascript/ql/lib/ext/make-dir.model.json b/javascript/ql/lib/ext/make-dir.model.json new file mode 100644 index 000000000000..74a21c84ac84 --- /dev/null +++ b/javascript/ql/lib/ext/make-dir.model.json @@ -0,0 +1,13 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "sinkModel" + }, + "data": [ + ["make-dir", "Member[makeDirectory,makeDirectorySync].Argument[0]", "path-injection"] + ] + } + ] +} diff --git a/javascript/ql/lib/ext/make-dir.model.yml b/javascript/ql/lib/ext/make-dir.model.yml deleted file mode 100644 index 512259126a66..000000000000 --- a/javascript/ql/lib/ext/make-dir.model.yml +++ /dev/null @@ -1,6 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: sinkModel - data: - - ["make-dir", "Member[makeDirectory,makeDirectorySync].Argument[0]", "path-injection"] diff --git a/javascript/ql/lib/ext/markdown-table.model.json b/javascript/ql/lib/ext/markdown-table.model.json new file mode 100644 index 000000000000..2d7e21867eb3 --- /dev/null +++ b/javascript/ql/lib/ext/markdown-table.model.json @@ -0,0 +1,13 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "summaryModel" + }, + "data": [ + ["markdown-table", "", "Argument[0].ArrayElement.ArrayElement", "ReturnValue", "taint"] + ] + } + ] +} diff --git a/javascript/ql/lib/ext/markdown-table.model.yml b/javascript/ql/lib/ext/markdown-table.model.yml deleted file mode 100644 index 4dcf36164c99..000000000000 --- a/javascript/ql/lib/ext/markdown-table.model.yml +++ /dev/null @@ -1,6 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: summaryModel - data: - - ["markdown-table", "", "Argument[0].ArrayElement.ArrayElement", "ReturnValue", "taint"] diff --git a/javascript/ql/lib/ext/mcp.model.json b/javascript/ql/lib/ext/mcp.model.json new file mode 100644 index 000000000000..79018cd4382e --- /dev/null +++ b/javascript/ql/lib/ext/mcp.model.json @@ -0,0 +1,46 @@ +// Sources for MCP servers built with the TypeScript SDK: "@modelcontextprotocol/sdk" (1.x) and +// "@modelcontextprotocol/server" (2.x). The arguments of tool, prompt and resource callbacks are +// input the server receives through MCP, and so are the transport headers and the bearer token the +// SDK hands to a callback. +// +// A package name that contains a dot must be quoted with single quotes; otherwise CodeQL reads the +// text after the first dot as a type name. +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "typeModel" + }, + "data": [ + ["@modelcontextprotocol/sdk.McpServer", "'@modelcontextprotocol/sdk/server/mcp.js'", "Member[McpServer].Instance"], + ["@modelcontextprotocol/sdk.McpServer", "@modelcontextprotocol/sdk/server/mcp", "Member[McpServer].Instance"], + ["@modelcontextprotocol/sdk.McpServer", "@modelcontextprotocol/server", "Member[McpServer].Instance"], + ["@modelcontextprotocol/sdk.McpServer", "'@modelcontextprotocol/sdk/server/mcp.js'.McpServer", ""], + ["@modelcontextprotocol/sdk.Server", "'@modelcontextprotocol/sdk/server/index.js'", "Member[Server].Instance"], + ["@modelcontextprotocol/sdk.Server", "@modelcontextprotocol/sdk/server/index", "Member[Server].Instance"], + ["@modelcontextprotocol/sdk.Server", "@modelcontextprotocol/server", "Member[Server].Instance"], + ["@modelcontextprotocol/sdk.Server", "@modelcontextprotocol/sdk.McpServer", "Member[server]"] + ] + }, + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "sourceModel" + }, + "data": [ + // High-level server: the callback is the last argument; its first parameter holds the arguments + ["@modelcontextprotocol/sdk.McpServer", "Member[tool,registerTool,prompt,registerPrompt].Argument[1..].Parameter[0]", "ai"], + ["@modelcontextprotocol/sdk.McpServer", "Member[resource,registerResource].Argument[1..].Parameter[0,1]", "ai"], + // Transport headers and the bearer token: `extra` in 1.x, `ctx` in 2.x + ["@modelcontextprotocol/sdk.McpServer", "Member[tool,registerTool,prompt,registerPrompt].Argument[1..].Parameter[1,2].Member[requestInfo].Member[headers]", "remote"], + ["@modelcontextprotocol/sdk.McpServer", "Member[tool,registerTool,prompt,registerPrompt].Argument[1..].Parameter[1,2].Member[authInfo].Member[token]", "remote"], + ["@modelcontextprotocol/sdk.McpServer", "Member[tool,registerTool,prompt,registerPrompt].Argument[1..].Parameter[1,2].Member[http].Member[req].Member[headers].Member[get].ReturnValue", "remote"], + ["@modelcontextprotocol/sdk.McpServer", "Member[tool,registerTool,prompt,registerPrompt].Argument[1..].Parameter[1,2].Member[http].Member[authInfo].Member[token]", "remote"], + // Low-level server: request handlers receive the request; custom methods (2.x) its params + ["@modelcontextprotocol/sdk.Server", "Member[setRequestHandler].Argument[1].Parameter[0].Member[params]", "ai"], + ["@modelcontextprotocol/sdk.Server", "Member[setRequestHandler].Argument[2].Parameter[0]", "ai"] + ] + } + ] +} diff --git a/javascript/ql/lib/ext/mcp.model.yml b/javascript/ql/lib/ext/mcp.model.yml deleted file mode 100644 index 30b3bb599947..000000000000 --- a/javascript/ql/lib/ext/mcp.model.yml +++ /dev/null @@ -1,36 +0,0 @@ -# Sources for MCP servers built with the TypeScript SDK: "@modelcontextprotocol/sdk" (1.x) and -# "@modelcontextprotocol/server" (2.x). The arguments of tool, prompt and resource callbacks are -# input the server receives through MCP, and so are the transport headers and the bearer token the -# SDK hands to a callback. -# -# A package name that contains a dot must be quoted with single quotes; otherwise CodeQL reads the -# text after the first dot as a type name. -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: typeModel - data: - - ["@modelcontextprotocol/sdk.McpServer", "'@modelcontextprotocol/sdk/server/mcp.js'", "Member[McpServer].Instance"] - - ["@modelcontextprotocol/sdk.McpServer", "@modelcontextprotocol/sdk/server/mcp", "Member[McpServer].Instance"] - - ["@modelcontextprotocol/sdk.McpServer", "@modelcontextprotocol/server", "Member[McpServer].Instance"] - - ["@modelcontextprotocol/sdk.McpServer", "'@modelcontextprotocol/sdk/server/mcp.js'.McpServer", ""] - - ["@modelcontextprotocol/sdk.Server", "'@modelcontextprotocol/sdk/server/index.js'", "Member[Server].Instance"] - - ["@modelcontextprotocol/sdk.Server", "@modelcontextprotocol/sdk/server/index", "Member[Server].Instance"] - - ["@modelcontextprotocol/sdk.Server", "@modelcontextprotocol/server", "Member[Server].Instance"] - - ["@modelcontextprotocol/sdk.Server", "@modelcontextprotocol/sdk.McpServer", "Member[server]"] - - - addsTo: - pack: codeql/javascript-all - extensible: sourceModel - data: - # High-level server: the callback is the last argument; its first parameter holds the arguments - - ["@modelcontextprotocol/sdk.McpServer", "Member[tool,registerTool,prompt,registerPrompt].Argument[1..].Parameter[0]", "ai"] - - ["@modelcontextprotocol/sdk.McpServer", "Member[resource,registerResource].Argument[1..].Parameter[0,1]", "ai"] - # Transport headers and the bearer token: `extra` in 1.x, `ctx` in 2.x - - ["@modelcontextprotocol/sdk.McpServer", "Member[tool,registerTool,prompt,registerPrompt].Argument[1..].Parameter[1,2].Member[requestInfo].Member[headers]", "remote"] - - ["@modelcontextprotocol/sdk.McpServer", "Member[tool,registerTool,prompt,registerPrompt].Argument[1..].Parameter[1,2].Member[authInfo].Member[token]", "remote"] - - ["@modelcontextprotocol/sdk.McpServer", "Member[tool,registerTool,prompt,registerPrompt].Argument[1..].Parameter[1,2].Member[http].Member[req].Member[headers].Member[get].ReturnValue", "remote"] - - ["@modelcontextprotocol/sdk.McpServer", "Member[tool,registerTool,prompt,registerPrompt].Argument[1..].Parameter[1,2].Member[http].Member[authInfo].Member[token]", "remote"] - # Low-level server: request handlers receive the request; custom methods (2.x) its params - - ["@modelcontextprotocol/sdk.Server", "Member[setRequestHandler].Argument[1].Parameter[0].Member[params]", "ai"] - - ["@modelcontextprotocol/sdk.Server", "Member[setRequestHandler].Argument[2].Parameter[0]", "ai"] diff --git a/javascript/ql/lib/ext/mkdirp.model.json b/javascript/ql/lib/ext/mkdirp.model.json new file mode 100644 index 000000000000..a22222e9cb91 --- /dev/null +++ b/javascript/ql/lib/ext/mkdirp.model.json @@ -0,0 +1,14 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "sinkModel" + }, + "data": [ + ["mkdirp", "Member[nativeSync,native,manual,manualSync,mkdirpNative,mkdirpManual,mkdirpManualSync,mkdirpNativeSync,mkdirpSync,sync].Argument[0]", "path-injection"], + ["mkdirp", "Argument[0]", "path-injection"] + ] + } + ] +} diff --git a/javascript/ql/lib/ext/mkdirp.model.yml b/javascript/ql/lib/ext/mkdirp.model.yml deleted file mode 100644 index 1a3bcce767c5..000000000000 --- a/javascript/ql/lib/ext/mkdirp.model.yml +++ /dev/null @@ -1,7 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: sinkModel - data: - - ["mkdirp", "Member[nativeSync,native,manual,manualSync,mkdirpNative,mkdirpManual,mkdirpManualSync,mkdirpNativeSync,mkdirpSync,sync].Argument[0]", "path-injection"] - - ["mkdirp", "Argument[0]", "path-injection"] diff --git a/javascript/ql/lib/ext/open.model.json b/javascript/ql/lib/ext/open.model.json new file mode 100644 index 000000000000..88cc25a5e197 --- /dev/null +++ b/javascript/ql/lib/ext/open.model.json @@ -0,0 +1,14 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "sinkModel" + }, + "data": [ + ["open", "Argument[0]", "path-injection"], + ["open", "Member[openApp].Argument[0]", "path-injection"] + ] + } + ] +} diff --git a/javascript/ql/lib/ext/open.model.yml b/javascript/ql/lib/ext/open.model.yml deleted file mode 100644 index 2159fe794d74..000000000000 --- a/javascript/ql/lib/ext/open.model.yml +++ /dev/null @@ -1,7 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: sinkModel - data: - - ["open", "Argument[0]", "path-injection"] - - ["open", "Member[openApp].Argument[0]", "path-injection"] diff --git a/javascript/ql/lib/ext/openai.model.json b/javascript/ql/lib/ext/openai.model.json new file mode 100644 index 000000000000..680868dc46aa --- /dev/null +++ b/javascript/ql/lib/ext/openai.model.json @@ -0,0 +1,39 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "typeModel" + }, + "data": [ + ["openai.Client", "openai", "Instance"], + ["openai.Client", "openai", "Member[OpenAI,AzureOpenAI].Instance"], + ["openai.Client", "@openai/guardrails", "Member[GuardrailsOpenAI,GuardrailsAzureOpenAI].Member[create].ReturnValue.Awaited"] + ] + }, + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "sinkModel" + }, + "data": [ + ["openai.Client", "Member[responses].Member[create].Argument[0].Member[instructions]", "system-prompt-injection"], + ["openai.Client", "Member[beta].Member[realtime].Member[sessions].Member[create].Argument[0].Member[instructions]", "system-prompt-injection"], + ["openai.Client", "Member[beta].Member[assistants].Member[create].Argument[0].Member[instructions]", "system-prompt-injection"], + ["openai.Client", "Member[beta].Member[assistants].Member[update].Argument[1].Member[instructions]", "system-prompt-injection"], + ["openai.Client", "Member[beta].Member[threads].Member[runs].Member[create].Argument[1].Member[instructions,additional_instructions]", "system-prompt-injection"], + ["@openai/agents", "Member[Agent].Argument[0].Member[instructions,handoffDescription]", "system-prompt-injection"], + ["@openai/guardrails", "Member[Agent].Argument[0].Member[instructions,handoffDescription]", "system-prompt-injection"], + ["@openai/agents", "Member[Agent].Instance.Member[asTool].Argument[0].Member[toolDescription]", "system-prompt-injection"], + ["@openai/guardrails", "Member[Agent].Instance.Member[asTool].Argument[0].Member[toolDescription]", "system-prompt-injection"], + ["@openai/agents", "Member[tool].Argument[0].Member[description]", "system-prompt-injection"], + ["@openai/guardrails", "Member[tool].Argument[0].Member[description]", "system-prompt-injection"], + ["@openai/guardrails", "Member[GuardrailAgent].Member[create].Argument[2]", "system-prompt-injection"], + ["@openai/agents", "Member[run].Argument[1]", "user-prompt-injection"], + ["@openai/agents", "Member[Runner].Instance.Member[run].Argument[1]", "user-prompt-injection"], + ["openai.Client", "Member[videos].Member[create,edit,extend].Argument[0].Member[prompt]", "user-prompt-injection"], + ["openai.Client", "Member[videos].Member[remix].Argument[1].Member[prompt]", "user-prompt-injection"] + ] + } + ] +} diff --git a/javascript/ql/lib/ext/openai.model.yml b/javascript/ql/lib/ext/openai.model.yml deleted file mode 100644 index bbccbe5a8020..000000000000 --- a/javascript/ql/lib/ext/openai.model.yml +++ /dev/null @@ -1,29 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: typeModel - data: - - ["openai.Client", "openai", "Instance"] - - ["openai.Client", "openai", "Member[OpenAI,AzureOpenAI].Instance"] - - ["openai.Client", "@openai/guardrails", "Member[GuardrailsOpenAI,GuardrailsAzureOpenAI].Member[create].ReturnValue.Awaited"] - - - addsTo: - pack: codeql/javascript-all - extensible: sinkModel - data: - - ["openai.Client", "Member[responses].Member[create].Argument[0].Member[instructions]", "system-prompt-injection"] - - ["openai.Client", "Member[beta].Member[realtime].Member[sessions].Member[create].Argument[0].Member[instructions]", "system-prompt-injection"] - - ["openai.Client", "Member[beta].Member[assistants].Member[create].Argument[0].Member[instructions]", "system-prompt-injection"] - - ["openai.Client", "Member[beta].Member[assistants].Member[update].Argument[1].Member[instructions]", "system-prompt-injection"] - - ["openai.Client", "Member[beta].Member[threads].Member[runs].Member[create].Argument[1].Member[instructions,additional_instructions]", "system-prompt-injection"] - - ["@openai/agents", "Member[Agent].Argument[0].Member[instructions,handoffDescription]", "system-prompt-injection"] - - ["@openai/guardrails", "Member[Agent].Argument[0].Member[instructions,handoffDescription]", "system-prompt-injection"] - - ["@openai/agents", "Member[Agent].Instance.Member[asTool].Argument[0].Member[toolDescription]", "system-prompt-injection"] - - ["@openai/guardrails", "Member[Agent].Instance.Member[asTool].Argument[0].Member[toolDescription]", "system-prompt-injection"] - - ["@openai/agents", "Member[tool].Argument[0].Member[description]", "system-prompt-injection"] - - ["@openai/guardrails", "Member[tool].Argument[0].Member[description]", "system-prompt-injection"] - - ["@openai/guardrails", "Member[GuardrailAgent].Member[create].Argument[2]", "system-prompt-injection"] - - ["@openai/agents", "Member[run].Argument[1]", "user-prompt-injection"] - - ["@openai/agents", "Member[Runner].Instance.Member[run].Argument[1]", "user-prompt-injection"] - - ["openai.Client", "Member[videos].Member[create,edit,extend].Argument[0].Member[prompt]", "user-prompt-injection"] - - ["openai.Client", "Member[videos].Member[remix].Argument[1].Member[prompt]", "user-prompt-injection"] diff --git a/javascript/ql/lib/ext/openrouter.model.json b/javascript/ql/lib/ext/openrouter.model.json new file mode 100644 index 000000000000..59fc7f643130 --- /dev/null +++ b/javascript/ql/lib/ext/openrouter.model.json @@ -0,0 +1,29 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "typeModel" + }, + "data": [ + ["openrouter.Client", "@openrouter/sdk", "Instance"], + ["openrouter.Client", "@openrouter/sdk", "Member[OpenRouter].Instance"], + ["openrouter.Agent", "@openrouter/agent", "Member[OpenRouter].Instance"] + ] + }, + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "sinkModel" + }, + "data": [ + ["@openrouter/agent", "Member[callModel].Argument[0].Member[instructions]", "system-prompt-injection"], + ["openrouter.Agent", "Member[callModel].Argument[0].Member[instructions]", "system-prompt-injection"], + ["@openrouter/agent", "Member[tool].Argument[0].Member[description]", "system-prompt-injection"], + ["openrouter.Client", "Member[embeddings].Member[create].Argument[0].Member[input]", "user-prompt-injection"], + ["@openrouter/agent", "Member[callModel].Argument[0].Member[input]", "user-prompt-injection"], + ["openrouter.Agent", "Member[callModel].Argument[0].Member[input]", "user-prompt-injection"] + ] + } + ] +} diff --git a/javascript/ql/lib/ext/openrouter.model.yml b/javascript/ql/lib/ext/openrouter.model.yml deleted file mode 100644 index 44cf6c9759a6..000000000000 --- a/javascript/ql/lib/ext/openrouter.model.yml +++ /dev/null @@ -1,19 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: typeModel - data: - - ["openrouter.Client", "@openrouter/sdk", "Instance"] - - ["openrouter.Client", "@openrouter/sdk", "Member[OpenRouter].Instance"] - - ["openrouter.Agent", "@openrouter/agent", "Member[OpenRouter].Instance"] - - - addsTo: - pack: codeql/javascript-all - extensible: sinkModel - data: - - ["@openrouter/agent", "Member[callModel].Argument[0].Member[instructions]", "system-prompt-injection"] - - ["openrouter.Agent", "Member[callModel].Argument[0].Member[instructions]", "system-prompt-injection"] - - ["@openrouter/agent", "Member[tool].Argument[0].Member[description]", "system-prompt-injection"] - - ["openrouter.Client", "Member[embeddings].Member[create].Argument[0].Member[input]", "user-prompt-injection"] - - ["@openrouter/agent", "Member[callModel].Argument[0].Member[input]", "user-prompt-injection"] - - ["openrouter.Agent", "Member[callModel].Argument[0].Member[input]", "user-prompt-injection"] diff --git a/javascript/ql/lib/ext/react-relay-threat.model.json b/javascript/ql/lib/ext/react-relay-threat.model.json new file mode 100644 index 000000000000..321df292532a --- /dev/null +++ b/javascript/ql/lib/ext/react-relay-threat.model.json @@ -0,0 +1,22 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "sourceModel" + }, + "data": [ + ["react-relay", "Member[useFragment].ReturnValue", "response"], + ["react-relay", "Member[useLazyLoadQuery].ReturnValue", "response"], + ["react-relay", "Member[usePreloadedQuery].ReturnValue", "response"], + ["react-relay", "Member[useClientQuery].ReturnValue", "response"], + ["react-relay", "Member[useRefetchableFragment].ReturnValue.Member[0]", "response"], + ["react-relay", "Member[usePaginationFragment].ReturnValue.Member[data]", "response"], + ["react-relay", "Member[useMutation].ReturnValue.Member[0].Argument[0].Member[onCompleted].Parameter[0]", "response"], + ["react-relay", "Member[useSubscription].Argument[0].Member[onNext].Parameter[0]", "response"], + ["react-relay", "Member[fetchQuery].ReturnValue.Member[subscribe].Argument[0].Member[next].Parameter[0]", "response"], + ["relay-runtime", "Member[readFragment].ReturnValue", "response"] + ] + } + ] +} diff --git a/javascript/ql/lib/ext/react-relay-threat.model.yml b/javascript/ql/lib/ext/react-relay-threat.model.yml deleted file mode 100644 index 47b1d086533e..000000000000 --- a/javascript/ql/lib/ext/react-relay-threat.model.yml +++ /dev/null @@ -1,15 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: sourceModel - data: - - ["react-relay", "Member[useFragment].ReturnValue", "response"] - - ["react-relay", "Member[useLazyLoadQuery].ReturnValue", "response"] - - ["react-relay", "Member[usePreloadedQuery].ReturnValue", "response"] - - ["react-relay", "Member[useClientQuery].ReturnValue", "response"] - - ["react-relay", "Member[useRefetchableFragment].ReturnValue.Member[0]", "response"] - - ["react-relay", "Member[usePaginationFragment].ReturnValue.Member[data]", "response"] - - ["react-relay", "Member[useMutation].ReturnValue.Member[0].Argument[0].Member[onCompleted].Parameter[0]", "response"] - - ["react-relay", "Member[useSubscription].Argument[0].Member[onNext].Parameter[0]", "response"] - - ["react-relay", "Member[fetchQuery].ReturnValue.Member[subscribe].Argument[0].Member[next].Parameter[0]", "response"] - - ["relay-runtime", "Member[readFragment].ReturnValue", "response"] diff --git a/javascript/ql/lib/ext/react.model.json b/javascript/ql/lib/ext/react.model.json new file mode 100644 index 000000000000..ee7e7129bcbb --- /dev/null +++ b/javascript/ql/lib/ext/react.model.json @@ -0,0 +1,13 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "summaryModel" + }, + "data": [ + ["react", "Member[use]", "Argument[0].Awaited", "ReturnValue", "value"] + ] + } + ] +} diff --git a/javascript/ql/lib/ext/react.model.yml b/javascript/ql/lib/ext/react.model.yml deleted file mode 100644 index 51b6aaefc46d..000000000000 --- a/javascript/ql/lib/ext/react.model.yml +++ /dev/null @@ -1,6 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: summaryModel - data: - - ["react", "Member[use]", "Argument[0].Awaited", "ReturnValue", "value"] diff --git a/javascript/ql/lib/ext/rimraf.model.json b/javascript/ql/lib/ext/rimraf.model.json new file mode 100644 index 000000000000..a08d65f28f39 --- /dev/null +++ b/javascript/ql/lib/ext/rimraf.model.json @@ -0,0 +1,15 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "sinkModel" + }, + "data": [ + ["rimraf", "Member[sync,native,manual,windows,moveRemove,posix].Argument[0]", "path-injection"], + ["rimraf", "Member[rimrafSync,nativeSync,manualSync,windowsSync,moveRemoveSync,posixSync].Argument[0]", "path-injection"], + ["rimraf", "Member[native,manual,windows,moveRemove,posix].Member[sync].Argument[0]", "path-injection"] + ] + } + ] +} diff --git a/javascript/ql/lib/ext/rimraf.model.yml b/javascript/ql/lib/ext/rimraf.model.yml deleted file mode 100644 index 8afd53e47efe..000000000000 --- a/javascript/ql/lib/ext/rimraf.model.yml +++ /dev/null @@ -1,8 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: sinkModel - data: - - ["rimraf", "Member[sync,native,manual,windows,moveRemove,posix].Argument[0]", "path-injection"] - - ["rimraf", "Member[rimrafSync,nativeSync,manualSync,windowsSync,moveRemoveSync,posixSync].Argument[0]", "path-injection"] - - ["rimraf", "Member[native,manual,windows,moveRemove,posix].Member[sync].Argument[0]", "path-injection"] diff --git a/javascript/ql/lib/ext/shelljs.model.json b/javascript/ql/lib/ext/shelljs.model.json new file mode 100644 index 000000000000..1d5392d05112 --- /dev/null +++ b/javascript/ql/lib/ext/shelljs.model.json @@ -0,0 +1,13 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "sourceModel" + }, + "data": [ + ["shelljs", "Member[env]", "environment"] + ] + } + ] +} diff --git a/javascript/ql/lib/ext/shelljs.model.yml b/javascript/ql/lib/ext/shelljs.model.yml deleted file mode 100644 index 8d2c8db645d8..000000000000 --- a/javascript/ql/lib/ext/shelljs.model.yml +++ /dev/null @@ -1,6 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: sourceModel - data: - - ["shelljs", "Member[env]", "environment"] diff --git a/javascript/ql/lib/ext/tanstack.model.json b/javascript/ql/lib/ext/tanstack.model.json new file mode 100644 index 000000000000..375bd2a63b5b --- /dev/null +++ b/javascript/ql/lib/ext/tanstack.model.json @@ -0,0 +1,18 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "summaryModel" + }, + "data": [ + ["@tanstack/angular-query-experimental", "Member[injectQuery]", "Argument[0].ReturnValue.Member[queryFn].ReturnValue", "ReturnValue.Member[data].Awaited", "value"], + ["@tanstack/angular-query", "Member[injectQuery]", "Argument[0].ReturnValue.Member[queryFn].ReturnValue", "ReturnValue.Member[data].Awaited", "value"], + ["@tanstack/vue-query", "Member[useQuery]", "Argument[0].Member[queryFn].ReturnValue.Awaited", "ReturnValue.Member[data]", "value"], + ["@tanstack/vue-query", "Member[useQueries]", "Argument[0].Member[queries].ArrayElement.Member[queryFn].ReturnValue.Awaited", "ReturnValue.ArrayElement.Member[data]", "value"], + ["@tanstack/react-query", "Member[useQueries]", "Argument[0].Member[queries].ArrayElement.Member[queryFn].ReturnValue.Awaited", "ReturnValue.ArrayElement.Member[data]", "value"], + ["@tanstack/react-query", "Member[useQuery]", "Argument[0].Member[queryFn].ReturnValue.Awaited", "ReturnValue.Member[data]", "value"] + ] + } + ] +} diff --git a/javascript/ql/lib/ext/tanstack.model.yml b/javascript/ql/lib/ext/tanstack.model.yml deleted file mode 100644 index 2c07fcf9727c..000000000000 --- a/javascript/ql/lib/ext/tanstack.model.yml +++ /dev/null @@ -1,11 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: summaryModel - data: - - ["@tanstack/angular-query-experimental", "Member[injectQuery]", "Argument[0].ReturnValue.Member[queryFn].ReturnValue", "ReturnValue.Member[data].Awaited", "value"] - - ["@tanstack/angular-query", "Member[injectQuery]", "Argument[0].ReturnValue.Member[queryFn].ReturnValue", "ReturnValue.Member[data].Awaited", "value"] - - ["@tanstack/vue-query", "Member[useQuery]", "Argument[0].Member[queryFn].ReturnValue.Awaited", "ReturnValue.Member[data]", "value"] - - ["@tanstack/vue-query", "Member[useQueries]", "Argument[0].Member[queries].ArrayElement.Member[queryFn].ReturnValue.Awaited", "ReturnValue.ArrayElement.Member[data]", "value"] - - ["@tanstack/react-query", "Member[useQueries]", "Argument[0].Member[queries].ArrayElement.Member[queryFn].ReturnValue.Awaited", "ReturnValue.ArrayElement.Member[data]", "value"] - - ["@tanstack/react-query", "Member[useQuery]", "Argument[0].Member[queryFn].ReturnValue.Awaited", "ReturnValue.Member[data]", "value"] diff --git a/javascript/ql/lib/ext/underscore.string.model.json b/javascript/ql/lib/ext/underscore.string.model.json new file mode 100644 index 000000000000..243d822f6e5f --- /dev/null +++ b/javascript/ql/lib/ext/underscore.string.model.json @@ -0,0 +1,45 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "typeModel" + }, + "data": [ + ["'underscore.string'.Wrapper", "'underscore.string'", "ReturnValue"], + ["'underscore.string'.Wrapper", "'underscore.string'.Wrapper", "Member[slugify,capitalize,decapitalize,clean,cleanDiacritics,swapCase,escapeHTML,unescapeHTML,wrap,dedent,reverse,pred,succ,titleize,camelize,classify,underscored,dasherize,humanize,trim,ltrim,rtrim,truncate,sprintf,strRight,strRightBack,strLeft,strLeftBack,stripTags,unquote,strip,lstrip,rstrip,camelcase].ReturnValue"], + ["'underscore.string'.Wrapper", "'underscore.string'.Wrapper", "Member[insert,replaceAll,join,splice,prune,pad,lpad,rpad,repeat,surround,quote,q,rjust,ljust].ReturnValue"], + ["'underscore.string'.Wrapper", "'underscore.string'.Wrapper", "Member[toUpperCase,toLowerCase,replace,slice,substring,substr,concat].ReturnValue"], + ["'underscore.string'.Wrapper", "'underscore.string'.Wrapper", "Member[tap].ReturnValue"] + ] + }, + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "summaryModel" + }, + "data": [ + ["'underscore.string'", "Member[slugify,capitalize,decapitalize,clean,cleanDiacritics,swapCase,escapeHTML,unescapeHTML,wrap,dedent,reverse,pred,succ,titleize,camelize,classify,underscored,dasherize,humanize,trim,ltrim,rtrim,truncate,sprintf,strRight,strRightBack,strLeft,strLeftBack,stripTags,unquote,strip,lstrip,rstrip,camelcase]", "Argument[0]", "ReturnValue", "taint"], + ["'underscore.string'", "Member[chop,chars,words,lines]", "Argument[0]", "ReturnValue.ArrayElement", "taint"], + ["'underscore.string'", "Member[toSentence,toSentenceSerial]", "Argument[0].ArrayElement", "ReturnValue", "taint"], + ["'underscore.string'", "Member[insert,replaceAll,splice,prune,pad,lpad,rpad,repeat,rjust,ljust]", "Argument[0,2]", "ReturnValue", "taint"], + ["'underscore.string'", "Member[splice]", "Argument[0,3]", "ReturnValue", "taint"], + ["'underscore.string'", "Member[join]", "Argument[0..]", "ReturnValue", "taint"], + ["'underscore.string'", "Member[surround,quote,q]", "Argument[0,1]", "ReturnValue", "taint"], + ["'underscore.string'", "", "Argument[0]", "ReturnValue", "taint"], + ["'underscore.string'.Wrapper", "Member[slugify,capitalize,decapitalize,clean,cleanDiacritics,swapCase,escapeHTML,unescapeHTML,wrap,dedent,reverse,pred,succ,titleize,camelize,classify,underscored,dasherize,humanize,trim,ltrim,rtrim,truncate,sprintf,strRight,strRightBack,strLeft,strLeftBack,stripTags,unquote,value,strip,lstrip,rstrip,camelcase]", "Argument[this]", "ReturnValue", "taint"], + ["'underscore.string'.Wrapper", "Member[insert,replaceAll,join,splice,prune,pad,lpad,rpad,repeat,surround,quote,q,rjust,ljust]", "Argument[this]", "ReturnValue", "taint"], + ["'underscore.string'.Wrapper", "Member[insert,replaceAll,prune,pad,lpad,rpad,repeat,rjust,ljust]", "Argument[1]", "ReturnValue", "taint"], + ["'underscore.string'.Wrapper", "Member[surround,quote,q]", "Argument[0]", "ReturnValue", "taint"], + ["'underscore.string'.Wrapper", "Member[splice]", "Argument[2]", "ReturnValue", "taint"], + ["'underscore.string'.Wrapper", "Member[join,concat]", "Argument[0..]", "ReturnValue", "taint"], + ["'underscore.string'.Wrapper", "Member[toUpperCase,toLowerCase,replace,slice,substring,substr,split]", "Argument[this]", "ReturnValue", "taint"], + ["'underscore.string'.Wrapper", "Member[tap]", "Argument[this]", "ReturnValue", "taint"], + ["'underscore.string'.Wrapper", "Member[tap]", "Argument[0].ReturnValue", "ReturnValue", "taint"], + ["'underscore.string'.Wrapper", "Member[tap]", "Argument[this]", "Argument[0].Parameter[1]", "taint"], + ["'underscore.string'", "Member[map]", "Argument[0]", "Argument[1].Parameter[0]", "taint"], + ["'underscore.string'", "Member[map]", "Argument[1].ReturnValue", "ReturnValue", "taint"] + ] + } + ] +} diff --git a/javascript/ql/lib/ext/underscore.string.model.yml b/javascript/ql/lib/ext/underscore.string.model.yml deleted file mode 100644 index d1330279f74b..000000000000 --- a/javascript/ql/lib/ext/underscore.string.model.yml +++ /dev/null @@ -1,35 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: typeModel - data: - - ["'underscore.string'.Wrapper", "'underscore.string'", "ReturnValue"] - - ["'underscore.string'.Wrapper", "'underscore.string'.Wrapper", "Member[slugify,capitalize,decapitalize,clean,cleanDiacritics,swapCase,escapeHTML,unescapeHTML,wrap,dedent,reverse,pred,succ,titleize,camelize,classify,underscored,dasherize,humanize,trim,ltrim,rtrim,truncate,sprintf,strRight,strRightBack,strLeft,strLeftBack,stripTags,unquote,strip,lstrip,rstrip,camelcase].ReturnValue"] - - ["'underscore.string'.Wrapper", "'underscore.string'.Wrapper", "Member[insert,replaceAll,join,splice,prune,pad,lpad,rpad,repeat,surround,quote,q,rjust,ljust].ReturnValue"] - - ["'underscore.string'.Wrapper", "'underscore.string'.Wrapper", "Member[toUpperCase,toLowerCase,replace,slice,substring,substr,concat].ReturnValue"] - - ["'underscore.string'.Wrapper", "'underscore.string'.Wrapper", "Member[tap].ReturnValue"] - - - addsTo: - pack: codeql/javascript-all - extensible: summaryModel - data: - - ["'underscore.string'", "Member[slugify,capitalize,decapitalize,clean,cleanDiacritics,swapCase,escapeHTML,unescapeHTML,wrap,dedent,reverse,pred,succ,titleize,camelize,classify,underscored,dasherize,humanize,trim,ltrim,rtrim,truncate,sprintf,strRight,strRightBack,strLeft,strLeftBack,stripTags,unquote,strip,lstrip,rstrip,camelcase]", "Argument[0]", "ReturnValue", "taint"] - - ["'underscore.string'", "Member[chop,chars,words,lines]", "Argument[0]", "ReturnValue.ArrayElement", "taint"] - - ["'underscore.string'", "Member[toSentence,toSentenceSerial]", "Argument[0].ArrayElement", "ReturnValue", "taint"] - - ["'underscore.string'", "Member[insert,replaceAll,splice,prune,pad,lpad,rpad,repeat,rjust,ljust]", "Argument[0,2]", "ReturnValue", "taint"] - - ["'underscore.string'", "Member[splice]", "Argument[0,3]", "ReturnValue", "taint"] - - ["'underscore.string'", "Member[join]", "Argument[0..]", "ReturnValue", "taint"] - - ["'underscore.string'", "Member[surround,quote,q]", "Argument[0,1]", "ReturnValue", "taint"] - - ["'underscore.string'", "", "Argument[0]", "ReturnValue", "taint"] - - ["'underscore.string'.Wrapper", "Member[slugify,capitalize,decapitalize,clean,cleanDiacritics,swapCase,escapeHTML,unescapeHTML,wrap,dedent,reverse,pred,succ,titleize,camelize,classify,underscored,dasherize,humanize,trim,ltrim,rtrim,truncate,sprintf,strRight,strRightBack,strLeft,strLeftBack,stripTags,unquote,value,strip,lstrip,rstrip,camelcase]", "Argument[this]", "ReturnValue", "taint"] - - ["'underscore.string'.Wrapper", "Member[insert,replaceAll,join,splice,prune,pad,lpad,rpad,repeat,surround,quote,q,rjust,ljust]", "Argument[this]", "ReturnValue", "taint"] - - ["'underscore.string'.Wrapper", "Member[insert,replaceAll,prune,pad,lpad,rpad,repeat,rjust,ljust]", "Argument[1]", "ReturnValue", "taint"] - - ["'underscore.string'.Wrapper", "Member[surround,quote,q]", "Argument[0]", "ReturnValue", "taint"] - - ["'underscore.string'.Wrapper", "Member[splice]", "Argument[2]", "ReturnValue", "taint"] - - ["'underscore.string'.Wrapper", "Member[join,concat]", "Argument[0..]", "ReturnValue", "taint"] - - ["'underscore.string'.Wrapper", "Member[toUpperCase,toLowerCase,replace,slice,substring,substr,split]", "Argument[this]", "ReturnValue", "taint"] - - ["'underscore.string'.Wrapper", "Member[tap]", "Argument[this]", "ReturnValue", "taint"] - - ["'underscore.string'.Wrapper", "Member[tap]", "Argument[0].ReturnValue", "ReturnValue", "taint"] - - ["'underscore.string'.Wrapper", "Member[tap]", "Argument[this]", "Argument[0].Parameter[1]", "taint"] - - ["'underscore.string'", "Member[map]", "Argument[0]", "Argument[1].Parameter[0]", "taint"] - - ["'underscore.string'", "Member[map]", "Argument[1].ReturnValue", "ReturnValue", "taint"] diff --git a/javascript/ql/lib/ext/vue.model.json b/javascript/ql/lib/ext/vue.model.json new file mode 100644 index 000000000000..93a120284ed2 --- /dev/null +++ b/javascript/ql/lib/ext/vue.model.json @@ -0,0 +1,33 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "sourceModel" + }, + "data": [ + // `useRoute()` — Vue Router's Composition API returns a route object whose URL-derived + // members are client-side remote flow sources. + ["vue-router", "Member[useRoute].ReturnValue.Member[params,path,fullPath]", "browser-url-path"], + ["vue-router", "Member[useRoute].ReturnValue.Member[query]", "browser-url-query"], + ["vue-router", "Member[useRoute].ReturnValue.Member[hash]", "browser-url-fragment"] + ] + }, + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "summaryModel" + }, + "data": [ + // `ref`, `shallowRef`, `toRef` — the wrapped argument flows to `.value`. + ["vue", "Member[ref,shallowRef,toRef]", "Argument[0]", "ReturnValue.Member[value]", "value"], + // `reactive` — the wrapped argument taints the returned reactive object. + ["vue", "Member[reactive]", "Argument[0]", "ReturnValue", "taint"], + // `computed(() => ...)` — function overload: the getter's return value flows to `.value`. + ["vue", "Member[computed]", "Argument[0].ReturnValue", "ReturnValue.Member[value]", "value"], + // `computed({ get() { ... } })` — object overload: the `get` getter's return value flows to `.value`. + ["vue", "Member[computed]", "Argument[0].Member[get].ReturnValue", "ReturnValue.Member[value]", "value"] + ] + } + ] +} diff --git a/javascript/ql/lib/ext/vue.model.yml b/javascript/ql/lib/ext/vue.model.yml deleted file mode 100644 index 17d473210335..000000000000 --- a/javascript/ql/lib/ext/vue.model.yml +++ /dev/null @@ -1,22 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: sourceModel - data: - # `useRoute()` — Vue Router's Composition API returns a route object whose URL-derived - # members are client-side remote flow sources. - - ["vue-router", "Member[useRoute].ReturnValue.Member[params,path,fullPath]", "browser-url-path"] - - ["vue-router", "Member[useRoute].ReturnValue.Member[query]", "browser-url-query"] - - ["vue-router", "Member[useRoute].ReturnValue.Member[hash]", "browser-url-fragment"] - - addsTo: - pack: codeql/javascript-all - extensible: summaryModel - data: - # `ref`, `shallowRef`, `toRef` — the wrapped argument flows to `.value`. - - ["vue", "Member[ref,shallowRef,toRef]", "Argument[0]", "ReturnValue.Member[value]", "value"] - # `reactive` — the wrapped argument taints the returned reactive object. - - ["vue", "Member[reactive]", "Argument[0]", "ReturnValue", "taint"] - # `computed(() => ...)` — function overload: the getter's return value flows to `.value`. - - ["vue", "Member[computed]", "Argument[0].ReturnValue", "ReturnValue.Member[value]", "value"] - # `computed({ get() { ... } })` — object overload: the `get` getter's return value flows to `.value`. - - ["vue", "Member[computed]", "Argument[0].Member[get].ReturnValue", "ReturnValue.Member[value]", "value"] diff --git a/javascript/ql/lib/ext/zod.model.json b/javascript/ql/lib/ext/zod.model.json new file mode 100644 index 000000000000..e38d8543a8ca --- /dev/null +++ b/javascript/ql/lib/ext/zod.model.json @@ -0,0 +1,26 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "typeModel" + }, + "data": [ + ["zod", "zod/v3", ""], + ["zod", "zod/v4", ""] + ] + }, + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "summaryModel" + }, + "data": [ + ["zod", "Fuzzy.Member[parse]", "Argument[0]", "ReturnValue", "value"], + ["zod", "Fuzzy.Member[safeParse]", "Argument[0]", "ReturnValue.Member[data]", "value"], + ["zod", "Fuzzy.Member[parseAsync]", "Argument[0]", "ReturnValue.Awaited", "value"], + ["zod", "Fuzzy.Member[safeParseAsync]", "Argument[0]", "ReturnValue.Awaited.Member[data]", "value"] + ] + } + ] +} diff --git a/javascript/ql/lib/ext/zod.model.yml b/javascript/ql/lib/ext/zod.model.yml deleted file mode 100644 index 234a0aec9d01..000000000000 --- a/javascript/ql/lib/ext/zod.model.yml +++ /dev/null @@ -1,16 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: typeModel - data: - - ["zod", "zod/v3", ""] - - ["zod", "zod/v4", ""] - - - addsTo: - pack: codeql/javascript-all - extensible: summaryModel - data: - - ["zod", "Fuzzy.Member[parse]", "Argument[0]", "ReturnValue", "value"] - - ["zod", "Fuzzy.Member[safeParse]", "Argument[0]", "ReturnValue.Member[data]", "value"] - - ["zod", "Fuzzy.Member[parseAsync]", "Argument[0]", "ReturnValue.Awaited", "value"] - - ["zod", "Fuzzy.Member[safeParseAsync]", "Argument[0]", "ReturnValue.Awaited.Member[data]", "value"] diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index d5907d887fd7..7b53f67e2a96 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -21,5 +21,8 @@ dataExtensions: - semmle/javascript/frameworks/**/*.model.yml - semmle/javascript/security/domains/**/*.model.yml - ext/*.model.yml + - semmle/javascript/frameworks/**/*.model.json + - semmle/javascript/security/domains/**/*.model.json + - ext/*.model.json warnOnImplicitThis: true compileForOverlayEval: true diff --git a/javascript/ql/lib/semmle/javascript/frameworks/NoSQL.model.json b/javascript/ql/lib/semmle/javascript/frameworks/NoSQL.model.json new file mode 100644 index 000000000000..6b6992a28917 --- /dev/null +++ b/javascript/ql/lib/semmle/javascript/frameworks/NoSQL.model.json @@ -0,0 +1,20 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "typeModel" + }, + "data": [ + // 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. + ["mongodb.Db", "mongodb.MongoClient", ""], + // 'marsdb' has no typings and is archived. + // We just model is as a variant of 'mongoose'. + ["mongoose.Model", "marsdb", "Member[Collection].Instance"], + ["mongoose.Query", "marsdb", "Member[Collection].Instance"], + ["mongoose.Query", "mongoose.Query", "Member[sortFunc].ReturnValue"] + ] + } + ] +} diff --git a/javascript/ql/lib/semmle/javascript/frameworks/NoSQL.model.yml b/javascript/ql/lib/semmle/javascript/frameworks/NoSQL.model.yml deleted file mode 100644 index e1b47704c30c..000000000000 --- a/javascript/ql/lib/semmle/javascript/frameworks/NoSQL.model.yml +++ /dev/null @@ -1,13 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: typeModel - data: - # 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. - - ['mongodb.Db', 'mongodb.MongoClient', ''] - # 'marsdb' has no typings and is archived. - # We just model is as a variant of 'mongoose'. - - ['mongoose.Model', 'marsdb', 'Member[Collection].Instance'] - - ['mongoose.Query', 'marsdb', 'Member[Collection].Instance'] - - ['mongoose.Query', 'mongoose.Query', 'Member[sortFunc].ReturnValue'] diff --git a/javascript/ql/lib/semmle/javascript/frameworks/NodeJSLib.model.json b/javascript/ql/lib/semmle/javascript/frameworks/NodeJSLib.model.json new file mode 100644 index 000000000000..6caceccb18d2 --- /dev/null +++ b/javascript/ql/lib/semmle/javascript/frameworks/NodeJSLib.model.json @@ -0,0 +1,17 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "sourceModel" + }, + "data": [ + ["fs", "Member[promises].Member[readFile].ReturnValue.Member[then].Argument[0].Parameter[0]", "file"], + ["global", "Member[process].Member[stdin].Member[read].ReturnValue", "stdin"], + ["global", "Member[process].Member[stdin].Member[on,addListener].WithStringArgument[0=data].Argument[1].Parameter[0]", "stdin"], + ["readline", "Member[createInterface].ReturnValue.Member[question].Argument[1].Parameter[0]", "stdin"], + ["readline", "Member[createInterface].ReturnValue.Member[on,addListener].WithStringArgument[0=line].Argument[1].Parameter[0]", "stdin"] + ] + } + ] +} diff --git a/javascript/ql/lib/semmle/javascript/frameworks/NodeJSLib.model.yml b/javascript/ql/lib/semmle/javascript/frameworks/NodeJSLib.model.yml deleted file mode 100644 index 43035615a126..000000000000 --- a/javascript/ql/lib/semmle/javascript/frameworks/NodeJSLib.model.yml +++ /dev/null @@ -1,10 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: sourceModel - data: - - ['fs', 'Member[promises].Member[readFile].ReturnValue.Member[then].Argument[0].Parameter[0]', 'file'] - - ['global', 'Member[process].Member[stdin].Member[read].ReturnValue', 'stdin'] - - ['global', 'Member[process].Member[stdin].Member[on,addListener].WithStringArgument[0=data].Argument[1].Parameter[0]', 'stdin'] - - ['readline', 'Member[createInterface].ReturnValue.Member[question].Argument[1].Parameter[0]', 'stdin'] - - ['readline', 'Member[createInterface].ReturnValue.Member[on,addListener].WithStringArgument[0=line].Argument[1].Parameter[0]', 'stdin'] diff --git a/javascript/ql/lib/semmle/javascript/frameworks/SQL.model.json b/javascript/ql/lib/semmle/javascript/frameworks/SQL.model.json new file mode 100644 index 000000000000..1f1e59138ade --- /dev/null +++ b/javascript/ql/lib/semmle/javascript/frameworks/SQL.model.json @@ -0,0 +1,29 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "sourceModel" + }, + "data": [ + ["@google-cloud/spanner.~SpannerObject", "Member[executeSql].Argument[0..].Parameter[1]", "database-access-result"], + ["@google-cloud/spanner.~SpannerObject", "Member[executeSql].ReturnValue.Awaited.Member[0]", "database-access-result"], + ["@google-cloud/spanner.~SpannerObject", "Member[run].Argument[0..].Parameter[1]", "database-access-result"], + ["@google-cloud/spanner.~SpannerObject", "Member[run].ReturnValue.Awaited", "database-access-result"], + ["sequelize.Sequelize", "Member[query].ReturnValue.Awaited", "database-access-result"] + ] + }, + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "sinkModel" + }, + "data": [ + ["@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.~SqlExecutorDirect", "Argument[0]", "sql-injection"], + ["@google-cloud/spanner.~SqlExecutorDirect", "Argument[0].Member[sql]", "sql-injection"] + ] + } + ] +} diff --git a/javascript/ql/lib/semmle/javascript/frameworks/SQL.model.yml b/javascript/ql/lib/semmle/javascript/frameworks/SQL.model.yml deleted file mode 100644 index c7a7aa0aee3f..000000000000 --- a/javascript/ql/lib/semmle/javascript/frameworks/SQL.model.yml +++ /dev/null @@ -1,19 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: sourceModel - data: - - ['@google-cloud/spanner.~SpannerObject', 'Member[executeSql].Argument[0..].Parameter[1]', 'database-access-result'] - - ['@google-cloud/spanner.~SpannerObject', 'Member[executeSql].ReturnValue.Awaited.Member[0]', 'database-access-result'] - - ['@google-cloud/spanner.~SpannerObject', 'Member[run].Argument[0..].Parameter[1]', 'database-access-result'] - - ['@google-cloud/spanner.~SpannerObject', 'Member[run].ReturnValue.Awaited', 'database-access-result'] - - ['sequelize.Sequelize', 'Member[query].ReturnValue.Awaited', 'database-access-result'] - - - addsTo: - pack: codeql/javascript-all - extensible: sinkModel - data: - - ['@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.~SqlExecutorDirect', 'Argument[0]', 'sql-injection'] - - ['@google-cloud/spanner.~SqlExecutorDirect', 'Argument[0].Member[sql]', 'sql-injection'] diff --git a/javascript/ql/lib/semmle/javascript/frameworks/data/internal/empty.model.json b/javascript/ql/lib/semmle/javascript/frameworks/data/internal/empty.model.json new file mode 100644 index 000000000000..f9c094a70615 --- /dev/null +++ b/javascript/ql/lib/semmle/javascript/frameworks/data/internal/empty.model.json @@ -0,0 +1,62 @@ +{ + "extensions": [ + // Make sure that the extensible model predicates have at least one definition + // to avoid errors about undefined extensionals. + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "sourceModel" + }, + "data": [] + }, + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "sinkModel" + }, + "data": [] + }, + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "summaryModel" + }, + "data": [] + }, + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "barrierModel" + }, + "data": [] + }, + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "barrierGuardModel" + }, + "data": [] + }, + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "neutralModel" + }, + "data": [] + }, + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "typeModel" + }, + "data": [] + }, + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "typeVariableModel" + }, + "data": [] + } + ] +} diff --git a/javascript/ql/lib/semmle/javascript/frameworks/data/internal/empty.model.yml b/javascript/ql/lib/semmle/javascript/frameworks/data/internal/empty.model.yml deleted file mode 100644 index 6542a1194cab..000000000000 --- a/javascript/ql/lib/semmle/javascript/frameworks/data/internal/empty.model.yml +++ /dev/null @@ -1,42 +0,0 @@ -extensions: - # Make sure that the extensible model predicates have at least one definition - # to avoid errors about undefined extensionals. - - addsTo: - pack: codeql/javascript-all - extensible: sourceModel - data: [] - - - addsTo: - pack: codeql/javascript-all - extensible: sinkModel - data: [] - - - addsTo: - pack: codeql/javascript-all - extensible: summaryModel - data: [] - - - addsTo: - pack: codeql/javascript-all - extensible: barrierModel - data: [] - - - addsTo: - pack: codeql/javascript-all - extensible: barrierGuardModel - data: [] - - - addsTo: - pack: codeql/javascript-all - extensible: neutralModel - data: [] - - - addsTo: - pack: codeql/javascript-all - extensible: typeModel - data: [] - - - addsTo: - pack: codeql/javascript-all - extensible: typeVariableModel - data: [] diff --git a/javascript/ql/lib/semmle/javascript/frameworks/helmet/Helmet.Required.Setting.model.json b/javascript/ql/lib/semmle/javascript/frameworks/helmet/Helmet.Required.Setting.model.json new file mode 100644 index 000000000000..c6fd6450cc66 --- /dev/null +++ b/javascript/ql/lib/semmle/javascript/frameworks/helmet/Helmet.Required.Setting.model.json @@ -0,0 +1,14 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "requiredHelmetSecuritySetting" + }, + "data": [ + ["frameguard"], + ["contentSecurityPolicy"] + ] + } + ] +} diff --git a/javascript/ql/lib/semmle/javascript/frameworks/helmet/Helmet.Required.Setting.model.yml b/javascript/ql/lib/semmle/javascript/frameworks/helmet/Helmet.Required.Setting.model.yml deleted file mode 100644 index a8c145321520..000000000000 --- a/javascript/ql/lib/semmle/javascript/frameworks/helmet/Helmet.Required.Setting.model.yml +++ /dev/null @@ -1,7 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: requiredHelmetSecuritySetting - data: - - ["frameguard"] - - ["contentSecurityPolicy"] diff --git a/javascript/ql/lib/semmle/javascript/frameworks/minimongo/minimongo.model.json b/javascript/ql/lib/semmle/javascript/frameworks/minimongo/minimongo.model.json new file mode 100644 index 000000000000..92d96ab3b918 --- /dev/null +++ b/javascript/ql/lib/semmle/javascript/frameworks/minimongo/minimongo.model.json @@ -0,0 +1,87 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "typeModel" + }, + "data": [ + ["minimongo.HybridCollection", "minimongo.HybridCollectionStatic", "Instance"], + ["minimongo.HybridCollection", "minimongo/lib/HybridDb.HybridCollection", ""], + ["minimongo.HybridCollection", "minimongo/lib/HybridDb.default", "Member[collections].AnyMember"], + ["minimongo.HybridCollectionStatic", "minimongo/lib/HybridDb.HybridCollectionStatic", ""], + ["minimongo.HybridCollectionStatic", "minimongo/lib/HybridDb", "Member[HybridCollection]"], + ["minimongo.HybridCollectionStatic", "minimongo", "Member[HybridCollection]"], + ["minimongo.MinimongoBaseCollection", "minimongo.HybridCollection", ""], + ["minimongo.MinimongoBaseCollection", "minimongo.MinimongoCollection", ""], + ["minimongo.MinimongoBaseCollection", "minimongo.MinimongoDb", "AnyMember"], + ["minimongo.MinimongoBaseCollection", "minimongo.MinimongoLocalCollection", ""], + ["minimongo.MinimongoBaseCollection", "minimongo/RemoteDb.Collection", ""], + ["minimongo.MinimongoBaseCollection", "minimongo/lib/types.MinimongoBaseCollection", ""], + ["minimongo.MinimongoCollection", "minimongo.HybridCollection", "Member[remoteCol]"], + ["minimongo.MinimongoCollection", "minimongo.MinimongoDb", "Member[collections].AnyMember"], + ["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.MinimongoDb", "minimongo.MinimongoDb", "Member[remoteDb]"], + ["minimongo.MinimongoDb", "minimongo.MinimongoLocalDb", ""], + ["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.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.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.MinimongoLocalDb", "minimongo.MinimongoDb", "Member[localDb]"], + ["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/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]"], + ["mongodb.Collection", "minimongo.MinimongoBaseCollection", ""] + ] + } + ] +} diff --git a/javascript/ql/lib/semmle/javascript/frameworks/minimongo/minimongo.model.yml b/javascript/ql/lib/semmle/javascript/frameworks/minimongo/minimongo.model.yml deleted file mode 100644 index 0c0d443fc3f1..000000000000 --- a/javascript/ql/lib/semmle/javascript/frameworks/minimongo/minimongo.model.yml +++ /dev/null @@ -1,80 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: typeModel - data: - - [minimongo.HybridCollection, minimongo.HybridCollectionStatic, Instance] - - [minimongo.HybridCollection, "minimongo/lib/HybridDb.HybridCollection", ""] - - [minimongo.HybridCollection, "minimongo/lib/HybridDb.default", "Member[collections].AnyMember"] - - [minimongo.HybridCollectionStatic, "minimongo/lib/HybridDb.HybridCollectionStatic", ""] - - [minimongo.HybridCollectionStatic, "minimongo/lib/HybridDb", "Member[HybridCollection]"] - - [minimongo.HybridCollectionStatic, minimongo, "Member[HybridCollection]"] - - [minimongo.MinimongoBaseCollection, minimongo.HybridCollection, ""] - - [minimongo.MinimongoBaseCollection, minimongo.MinimongoCollection, ""] - - [minimongo.MinimongoBaseCollection, minimongo.MinimongoDb, AnyMember] - - [minimongo.MinimongoBaseCollection, minimongo.MinimongoLocalCollection, ""] - - [minimongo.MinimongoBaseCollection, "minimongo/RemoteDb.Collection", ""] - - [minimongo.MinimongoBaseCollection, "minimongo/lib/types.MinimongoBaseCollection", ""] - - [minimongo.MinimongoCollection, minimongo.HybridCollection, "Member[remoteCol]"] - - [minimongo.MinimongoCollection, minimongo.MinimongoDb, "Member[collections].AnyMember"] - - [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.MinimongoDb, minimongo.MinimongoDb, "Member[remoteDb]"] - - [minimongo.MinimongoDb, minimongo.MinimongoLocalDb, ""] - - [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.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.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.MinimongoLocalDb, minimongo.MinimongoDb, "Member[localDb]"] - - [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/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]"] - - [mongodb.Collection, minimongo.MinimongoBaseCollection, ""] diff --git a/javascript/ql/lib/semmle/javascript/frameworks/mongodb/mongodb.model.json b/javascript/ql/lib/semmle/javascript/frameworks/mongodb/mongodb.model.json new file mode 100644 index 000000000000..64d22ebff0e5 --- /dev/null +++ b/javascript/ql/lib/semmle/javascript/frameworks/mongodb/mongodb.model.json @@ -0,0 +1,807 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "sinkModel" + }, + "data": [ + ["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"] + ] + }, + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "typeModel" + }, + "data": [ + ["mongodb.AbstractCursor", "mongodb.FindCursor", ""], + ["mongodb.AbstractCursor", "mongodb.ListCollectionsCursor", ""], + ["mongodb.AbstractCursor", "mongodb.ListIndexesCursor", ""], + ["mongodb.AbstractCursorOptions", "mongodb.AggregationCursorOptions", ""], + ["mongodb.AbstractCursorOptions", "mongodb/mongodb.AbstractCursorOptions", ""], + ["mongodb.AbstractCursorOptions", "mongoose.mongodb.AbstractCursorOptions", ""], + ["mongodb.AddUserOptions", "mongodb.Admin", "Member[addUser].Argument[1,2]"], + ["mongodb.AddUserOptions", "mongodb.Db", "Member[addUser].Argument[1,2]"], + ["mongodb.AddUserOptions", "mongodb/mongodb.AddUserOptions", ""], + ["mongodb.AddUserOptions", "mongoose.mongodb.AddUserOptions", ""], + ["mongodb.Admin", "mongodb.AdminStatic", "Instance"], + ["mongodb.Admin", "mongodb.Db", "Member[admin].ReturnValue"], + ["mongodb.Admin", "mongodb/mongodb.Admin", ""], + ["mongodb.Admin", "mongoose.mongodb.Admin", ""], + ["mongodb.AdminStatic", "mongodb/mongodb.AdminStatic", ""], + ["mongodb.AdminStatic", "mongodb", "Member[Admin]"], + ["mongodb.AdminStatic", "mongoose.mongodb.AdminStatic", ""], + ["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", "mongodb/mongodb.AggregateOptions", ""], + ["mongodb.AggregateOptions", "mongoose.mongodb.AggregateOptions", ""], + ["mongodb.AggregationCursorOptions", "mongodb/mongodb.AggregationCursorOptions", ""], + ["mongodb.AggregationCursorOptions", "mongoose.mongodb.AggregationCursorOptions", ""], + ["mongodb.AnyBulkWriteOperation", "mongodb.BulkOperationBase", "Member[raw].Argument[0]"], + ["mongodb.AnyBulkWriteOperation", "mongodb.Collection", "Member[bulkWrite].Argument[0].ArrayElement"], + ["mongodb.AnyBulkWriteOperation", "mongodb/mongodb.AnyBulkWriteOperation", ""], + ["mongodb.AnyBulkWriteOperation", "mongoose.mongodb.AnyBulkWriteOperation", ""], + ["mongodb.Auth", "mongodb.MongoClientOptions", "Member[auth]"], + ["mongodb.Auth", "mongodb/mongodb.Auth", ""], + ["mongodb.Auth", "mongoose.mongodb.Auth", ""], + ["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", "mongodb/mongodb.AutoEncrypter", ""], + ["mongodb.AutoEncrypter", "mongoose.mongodb.AutoEncrypter", ""], + ["mongodb.AutoEncryptionOptions", "mongodb.AutoEncrypter", "Argument[1]"], + ["mongodb.AutoEncryptionOptions", "mongodb.MongoClientOptions", "Member[autoEncryption]"], + ["mongodb.AutoEncryptionOptions", "mongodb/mongodb.AutoEncryptionOptions", ""], + ["mongodb.AutoEncryptionOptions", "mongoose.mongodb.AutoEncryptionOptions", ""], + ["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", "mongodb/mongodb.BulkOperationBase", ""], + ["mongodb.BulkOperationBase", "mongoose.mongodb.BulkOperationBase", ""], + ["mongodb.BulkOperationBaseStatic", "mongodb/mongodb.BulkOperationBaseStatic", ""], + ["mongodb.BulkOperationBaseStatic", "mongodb", "Member[BulkOperationBase]"], + ["mongodb.BulkOperationBaseStatic", "mongoose.mongodb.BulkOperationBaseStatic", ""], + ["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", "mongodb/mongodb.BulkWriteOptions", ""], + ["mongodb.BulkWriteOptions", "mongoose.mongodb.BulkWriteOptions", ""], + ["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", "mongodb/mongodb.ChangeStream", ""], + ["mongodb.ChangeStream", "mongoose.mongodb.ChangeStream", ""], + ["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", "mongodb/mongodb.ChangeStreamOptions", ""], + ["mongodb.ChangeStreamOptions", "mongoose.mongodb.ChangeStreamOptions", ""], + ["mongodb.ChangeStreamStatic", "mongodb/mongodb.ChangeStreamStatic", ""], + ["mongodb.ChangeStreamStatic", "mongodb", "Member[ChangeStream]"], + ["mongodb.ChangeStreamStatic", "mongoose.mongodb.ChangeStreamStatic", ""], + ["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", "mongodb/mongodb.ClientSession", ""], + ["mongodb.ClientSession", "mongoose.mongodb.ClientSession", ""], + ["mongodb.ClientSessionEvents", "mongodb/mongodb.ClientSessionEvents", ""], + ["mongodb.ClientSessionEvents", "mongoose.mongodb.ClientSessionEvents", ""], + ["mongodb.ClientSessionOptions", "mongodb.MongoClient", "Member[startSession].Argument[0]"], + ["mongodb.ClientSessionOptions", "mongodb.MongoClient", "Member[withSession].WithArity[2].Argument[0]"], + ["mongodb.ClientSessionOptions", "mongodb/mongodb.ClientSessionOptions", ""], + ["mongodb.ClientSessionOptions", "mongoose.mongodb.ClientSessionOptions", ""], + ["mongodb.ClientSessionStatic", "mongodb/mongodb.ClientSessionStatic", ""], + ["mongodb.ClientSessionStatic", "mongodb", "Member[ClientSession]"], + ["mongodb.ClientSessionStatic", "mongoose.mongodb.ClientSessionStatic", ""], + ["mongodb.CollStatsOptions", "mongodb.Collection", "Member[stats].Argument[0]"], + ["mongodb.CollStatsOptions", "mongodb/mongodb.CollStatsOptions", ""], + ["mongodb.CollStatsOptions", "mongoose.mongodb.CollStatsOptions", ""], + ["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", "mongodb/mongodb.Collection", ""], + ["mongodb.Collection", "mongoose.mongodb.Collection", ""], + ["mongodb.CollectionStatic", "mongodb/mongodb.CollectionStatic", ""], + ["mongodb.CollectionStatic", "mongodb", "Member[Collection]"], + ["mongodb.CollectionStatic", "mongoose.mongodb.CollectionStatic", ""], + ["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", "mongodb/mongodb.CommandOperationOptions", ""], + ["mongodb.CommandOperationOptions", "mongoose.mongodb.CommandOperationOptions", ""], + ["mongodb.ConnectionOptions", "mongodb/mongodb.ConnectionOptions", ""], + ["mongodb.ConnectionOptions", "mongoose.mongodb.ConnectionOptions", ""], + ["mongodb.CountDocumentsOptions", "mongodb.Collection", "Member[countDocuments].Argument[1]"], + ["mongodb.CountDocumentsOptions", "mongodb/mongodb.CountDocumentsOptions", ""], + ["mongodb.CountDocumentsOptions", "mongoose.mongodb.CountDocumentsOptions", ""], + ["mongodb.CountOptions", "mongodb.Collection", "Member[count].Argument[1]"], + ["mongodb.CountOptions", "mongodb.FindCursor", "Member[count].Argument[0]"], + ["mongodb.CountOptions", "mongodb/mongodb.CountOptions", ""], + ["mongodb.CountOptions", "mongoose.mongodb.CountOptions", ""], + ["mongodb.CreateCollectionOptions", "mongodb.Db", "Member[createCollection].WithArity[1,2,3].Argument[1]"], + ["mongodb.CreateCollectionOptions", "mongodb/mongodb.CreateCollectionOptions", ""], + ["mongodb.CreateCollectionOptions", "mongoose.mongodb.CreateCollectionOptions", ""], + ["mongodb.CreateIndexesOptions", "mongodb.Collection", "Member[createIndex,createIndexes].Argument[1]"], + ["mongodb.CreateIndexesOptions", "mongodb.Db", "Member[createIndex].Argument[2]"], + ["mongodb.CreateIndexesOptions", "mongodb/mongodb.CreateIndexesOptions", ""], + ["mongodb.CreateIndexesOptions", "mongoose.mongodb.CreateIndexesOptions", ""], + ["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", "mongodb/mongodb.Db", ""], + ["mongodb.Db", "mongoose.mongodb.Db", ""], + ["mongodb.DbStatic", "mongodb/mongodb.DbStatic", ""], + ["mongodb.DbStatic", "mongodb", "Member[Db]"], + ["mongodb.DbStatic", "mongoose.mongodb.DbStatic", ""], + ["mongodb.DbStatsOptions", "mongodb.Db", "Member[stats].Argument[0]"], + ["mongodb.DbStatsOptions", "mongodb/mongodb.DbStatsOptions", ""], + ["mongodb.DbStatsOptions", "mongoose.mongodb.DbStatsOptions", ""], + ["mongodb.DeleteManyModel", "mongodb.AnyBulkWriteOperation", "Member[deleteMany]"], + ["mongodb.DeleteManyModel", "mongodb/mongodb.DeleteManyModel", ""], + ["mongodb.DeleteManyModel", "mongoose.mongodb.DeleteManyModel", ""], + ["mongodb.DeleteOneModel", "mongodb.AnyBulkWriteOperation", "Member[deleteOne]"], + ["mongodb.DeleteOneModel", "mongodb/mongodb.DeleteOneModel", ""], + ["mongodb.DeleteOneModel", "mongoose.mongodb.DeleteOneModel", ""], + ["mongodb.DeleteOptions", "mongodb.Collection", "Member[deleteMany,deleteOne,remove].Argument[1]"], + ["mongodb.DeleteOptions", "mongodb/mongodb.DeleteOptions", ""], + ["mongodb.DeleteOptions", "mongoose.mongodb.DeleteOptions", ""], + ["mongodb.DistinctOptions", "mongodb.Collection", "Member[distinct].Argument[2]"], + ["mongodb.DistinctOptions", "mongodb/mongodb.DistinctOptions", ""], + ["mongodb.DistinctOptions", "mongoose.mongodb.DistinctOptions", ""], + ["mongodb.DropCollectionOptions", "mongodb.Collection", "Member[drop].Argument[0]"], + ["mongodb.DropCollectionOptions", "mongodb.Db", "Member[dropCollection].Argument[1]"], + ["mongodb.DropCollectionOptions", "mongodb/mongodb.DropCollectionOptions", ""], + ["mongodb.DropCollectionOptions", "mongoose.mongodb.DropCollectionOptions", ""], + ["mongodb.DropDatabaseOptions", "mongodb.Db", "Member[dropDatabase].Argument[0]"], + ["mongodb.DropDatabaseOptions", "mongodb/mongodb.DropDatabaseOptions", ""], + ["mongodb.DropDatabaseOptions", "mongoose.mongodb.DropDatabaseOptions", ""], + ["mongodb.DropIndexesOptions", "mongodb.Collection", "Member[dropIndex].Argument[1]"], + ["mongodb.DropIndexesOptions", "mongodb.Collection", "Member[dropIndexes].Argument[0]"], + ["mongodb.DropIndexesOptions", "mongodb/mongodb.DropIndexesOptions", ""], + ["mongodb.DropIndexesOptions", "mongoose.mongodb.DropIndexesOptions", ""], + ["mongodb.EstimatedDocumentCountOptions", "mongodb.Collection", "Member[estimatedDocumentCount].Argument[0]"], + ["mongodb.EstimatedDocumentCountOptions", "mongodb/mongodb.EstimatedDocumentCountOptions", ""], + ["mongodb.EstimatedDocumentCountOptions", "mongoose.mongodb.EstimatedDocumentCountOptions", ""], + ["mongodb.EvalOptions", "mongodb/mongodb.EvalOptions", ""], + ["mongodb.EvalOptions", "mongoose.mongodb.EvalOptions", ""], + ["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", "mongodb/mongodb.FindCursor", ""], + ["mongodb.FindCursor", "mongoose.mongodb.FindCursor", ""], + ["mongodb.FindCursorStatic", "mongodb/mongodb.FindCursorStatic", ""], + ["mongodb.FindCursorStatic", "mongodb", "Member[FindCursor]"], + ["mongodb.FindCursorStatic", "mongoose.mongodb.FindCursorStatic", ""], + ["mongodb.FindOneAndDeleteOptions", "mongodb.Collection", "Member[findOneAndDelete].Argument[1]"], + ["mongodb.FindOneAndDeleteOptions", "mongodb/mongodb.FindOneAndDeleteOptions", ""], + ["mongodb.FindOneAndDeleteOptions", "mongoose.mongodb.FindOneAndDeleteOptions", ""], + ["mongodb.FindOneAndReplaceOptions", "mongodb.Collection", "Member[findOneAndReplace].Argument[2]"], + ["mongodb.FindOneAndReplaceOptions", "mongodb/mongodb.FindOneAndReplaceOptions", ""], + ["mongodb.FindOneAndReplaceOptions", "mongoose.mongodb.FindOneAndReplaceOptions", ""], + ["mongodb.FindOneAndUpdateOptions", "mongodb.Collection", "Member[findOneAndUpdate].Argument[2]"], + ["mongodb.FindOneAndUpdateOptions", "mongodb/mongodb.FindOneAndUpdateOptions", ""], + ["mongodb.FindOneAndUpdateOptions", "mongoose.mongodb.FindOneAndUpdateOptions", ""], + ["mongodb.FindOperators", "mongodb.BulkOperationBase", "Member[find].ReturnValue"], + ["mongodb.FindOperators", "mongodb.FindOperators", "Member[arrayFilters,collation,upsert].ReturnValue"], + ["mongodb.FindOperators", "mongodb.FindOperatorsStatic", "Instance"], + ["mongodb.FindOperators", "mongodb/mongodb.FindOperators", ""], + ["mongodb.FindOperators", "mongoose.mongodb.FindOperators", ""], + ["mongodb.FindOperatorsStatic", "mongodb/mongodb.FindOperatorsStatic", ""], + ["mongodb.FindOperatorsStatic", "mongodb", "Member[FindOperators]"], + ["mongodb.FindOperatorsStatic", "mongoose.mongodb.FindOperatorsStatic", ""], + ["mongodb.FindOptions", "mongodb.Collection", "Member[find,findOne].Argument[1]"], + ["mongodb.FindOptions", "mongodb.GridFSBucket", "Member[find].Argument[1]"], + ["mongodb.FindOptions", "mongodb/mongodb.FindOptions", ""], + ["mongodb.FindOptions", "mongoose.mongodb.FindOptions", ""], + ["mongodb.GridFSBucket", "mongodb.GridFSBucketStatic", "Instance"], + ["mongodb.GridFSBucket", "mongodb.GridFSBucketWriteStream", "Member[bucket]"], + ["mongodb.GridFSBucket", "mongodb/mongodb.GridFSBucket", ""], + ["mongodb.GridFSBucket", "mongoose.mongodb.GridFSBucket", ""], + ["mongodb.GridFSBucketStatic", "mongodb/mongodb.GridFSBucketStatic", ""], + ["mongodb.GridFSBucketStatic", "mongodb", "Member[GridFSBucket]"], + ["mongodb.GridFSBucketStatic", "mongoose.mongodb.GridFSBucketStatic", ""], + ["mongodb.GridFSBucketWriteStream", "mongodb.GridFSBucket", "Member[openUploadStream,openUploadStreamWithId].ReturnValue"], + ["mongodb.GridFSBucketWriteStream", "mongodb.GridFSBucketWriteStream", "Member[end].ReturnValue"], + ["mongodb.GridFSBucketWriteStream", "mongodb.GridFSBucketWriteStreamStatic", "Instance"], + ["mongodb.GridFSBucketWriteStream", "mongodb/mongodb.GridFSBucketWriteStream", ""], + ["mongodb.GridFSBucketWriteStream", "mongoose.mongodb.GridFSBucketWriteStream", ""], + ["mongodb.GridFSBucketWriteStreamStatic", "mongodb/mongodb.GridFSBucketWriteStreamStatic", ""], + ["mongodb.GridFSBucketWriteStreamStatic", "mongodb", "Member[GridFSBucketWriteStream]"], + ["mongodb.GridFSBucketWriteStreamStatic", "mongoose.mongodb.GridFSBucketWriteStreamStatic", ""], + ["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", "mongodb/mongodb.IndexInformationOptions", ""], + ["mongodb.IndexInformationOptions", "mongoose.mongodb.IndexInformationOptions", ""], + ["mongodb.InsertOneOptions", "mongodb.Collection", "Member[insertOne].Argument[1]"], + ["mongodb.InsertOneOptions", "mongodb/mongodb.InsertOneOptions", ""], + ["mongodb.InsertOneOptions", "mongoose.mongodb.InsertOneOptions", ""], + ["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", "mongodb/mongodb.ListCollectionsCursor", ""], + ["mongodb.ListCollectionsCursor", "mongoose.mongodb.ListCollectionsCursor", ""], + ["mongodb.ListCollectionsCursorStatic", "mongodb/mongodb.ListCollectionsCursorStatic", ""], + ["mongodb.ListCollectionsCursorStatic", "mongodb", "Member[ListCollectionsCursor]"], + ["mongodb.ListCollectionsCursorStatic", "mongoose.mongodb.ListCollectionsCursorStatic", ""], + ["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", "mongodb/mongodb.ListCollectionsOptions", ""], + ["mongodb.ListCollectionsOptions", "mongoose.mongodb.ListCollectionsOptions", ""], + ["mongodb.ListDatabasesOptions", "mongodb.Admin", "Member[listDatabases].Argument[0]"], + ["mongodb.ListDatabasesOptions", "mongodb/mongodb.ListDatabasesOptions", ""], + ["mongodb.ListDatabasesOptions", "mongoose.mongodb.ListDatabasesOptions", ""], + ["mongodb.ListIndexesCursor", "mongodb.Collection", "Member[listIndexes].ReturnValue"], + ["mongodb.ListIndexesCursor", "mongodb.ListIndexesCursor", "Member[clone].ReturnValue"], + ["mongodb.ListIndexesCursor", "mongodb.ListIndexesCursorStatic", "Instance"], + ["mongodb.ListIndexesCursor", "mongodb/mongodb.ListIndexesCursor", ""], + ["mongodb.ListIndexesCursor", "mongoose.mongodb.ListIndexesCursor", ""], + ["mongodb.ListIndexesCursorStatic", "mongodb/mongodb.ListIndexesCursorStatic", ""], + ["mongodb.ListIndexesCursorStatic", "mongodb", "Member[ListIndexesCursor]"], + ["mongodb.ListIndexesCursorStatic", "mongoose.mongodb.ListIndexesCursorStatic", ""], + ["mongodb.ListIndexesOptions", "mongodb.Collection", "Member[listIndexes].Argument[0]"], + ["mongodb.ListIndexesOptions", "mongodb.ListIndexesCursor", "Member[options]"], + ["mongodb.ListIndexesOptions", "mongodb.ListIndexesCursorStatic", "Argument[1]"], + ["mongodb.ListIndexesOptions", "mongodb/mongodb.ListIndexesOptions", ""], + ["mongodb.ListIndexesOptions", "mongoose.mongodb.ListIndexesOptions", ""], + ["mongodb.MapReduceOptions", "mongodb.Collection", "Member[mapReduce].Argument[2]"], + ["mongodb.MapReduceOptions", "mongodb/mongodb.MapReduceOptions", ""], + ["mongodb.MapReduceOptions", "mongoose.mongodb.MapReduceOptions", ""], + ["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", "mongodb/mongodb.MongoClient", ""], + ["mongodb.MongoClient", "mongoose.mongodb.MongoClient", ""], + ["mongodb.MongoClientEvents", "mongodb/mongodb.MongoClientEvents", ""], + ["mongodb.MongoClientEvents", "mongoose.mongodb.MongoClientEvents", ""], + ["mongodb.MongoClientOptions", "mongodb.MongoClientStatic", "Argument[1]"], + ["mongodb.MongoClientOptions", "mongodb.MongoClientStatic", "Member[connect].Argument[1]"], + ["mongodb.MongoClientOptions", "mongodb/mongodb.MongoClientOptions", ""], + ["mongodb.MongoClientOptions", "mongoose.mongodb.MongoClientOptions", ""], + ["mongodb.MongoClientStatic", "mongodb/mongodb.MongoClientStatic", ""], + ["mongodb.MongoClientStatic", "mongodb", "Member[MongoClient]"], + ["mongodb.MongoClientStatic", "mongoose.mongodb.MongoClientStatic", ""], + ["mongodb.MongoOptions", "mongodb.ClientSession", "Member[clientOptions]"], + ["mongodb.MongoOptions", "mongodb.MongoClient", "Member[options]"], + ["mongodb.MongoOptions", "mongodb/mongodb.MongoOptions", ""], + ["mongodb.MongoOptions", "mongoose.mongodb.MongoOptions", ""], + ["mongodb.OperationOptions", "mongodb.Collection", "Member[isCapped,options].Argument[0]"], + ["mongodb.OperationOptions", "mongodb.CommandOperationOptions", ""], + ["mongodb.OperationOptions", "mongodb/mongodb.OperationOptions", ""], + ["mongodb.OperationOptions", "mongoose.mongodb.OperationOptions", ""], + ["mongodb.OrderedBulkOperation", "mongodb.Collection", "Member[initializeOrderedBulkOp].ReturnValue"], + ["mongodb.OrderedBulkOperation", "mongodb.OrderedBulkOperation", "Member[addToOperationsList].ReturnValue"], + ["mongodb.OrderedBulkOperation", "mongodb.OrderedBulkOperationStatic", "Instance"], + ["mongodb.OrderedBulkOperation", "mongodb/mongodb.OrderedBulkOperation", ""], + ["mongodb.OrderedBulkOperation", "mongoose.mongodb.OrderedBulkOperation", ""], + ["mongodb.OrderedBulkOperationStatic", "mongodb/mongodb.OrderedBulkOperationStatic", ""], + ["mongodb.OrderedBulkOperationStatic", "mongodb", "Member[OrderedBulkOperation]"], + ["mongodb.OrderedBulkOperationStatic", "mongoose.mongodb.OrderedBulkOperationStatic", ""], + ["mongodb.ProfilingLevelOptions", "mongodb.Db", "Member[profilingLevel].Argument[0]"], + ["mongodb.ProfilingLevelOptions", "mongodb/mongodb.ProfilingLevelOptions", ""], + ["mongodb.ProfilingLevelOptions", "mongoose.mongodb.ProfilingLevelOptions", ""], + ["mongodb.ReadPreferenceFromOptions", "mongodb.ReadPreferenceStatic", "Member[fromOptions].Argument[0]"], + ["mongodb.ReadPreferenceFromOptions", "mongodb/mongodb.ReadPreferenceFromOptions", ""], + ["mongodb.ReadPreferenceFromOptions", "mongoose.mongodb.ReadPreferenceFromOptions", ""], + ["mongodb.ReadPreferenceStatic", "mongodb/mongodb.ReadPreferenceStatic", ""], + ["mongodb.ReadPreferenceStatic", "mongodb", "Member[ReadPreference]"], + ["mongodb.ReadPreferenceStatic", "mongoose.mongodb.ReadPreferenceStatic", ""], + ["mongodb.RemoveUserOptions", "mongodb.Admin", "Member[removeUser].Argument[1]"], + ["mongodb.RemoveUserOptions", "mongodb.Db", "Member[removeUser].Argument[1]"], + ["mongodb.RemoveUserOptions", "mongodb/mongodb.RemoveUserOptions", ""], + ["mongodb.RemoveUserOptions", "mongoose.mongodb.RemoveUserOptions", ""], + ["mongodb.RenameOptions", "mongodb.Collection", "Member[rename].Argument[1]"], + ["mongodb.RenameOptions", "mongodb.Db", "Member[renameCollection].Argument[2]"], + ["mongodb.RenameOptions", "mongodb/mongodb.RenameOptions", ""], + ["mongodb.RenameOptions", "mongoose.mongodb.RenameOptions", ""], + ["mongodb.ReplaceOptions", "mongodb.Collection", "Member[replaceOne].Argument[2]"], + ["mongodb.ReplaceOptions", "mongodb/mongodb.ReplaceOptions", ""], + ["mongodb.ReplaceOptions", "mongoose.mongodb.ReplaceOptions", ""], + ["mongodb.RunCommandOptions", "mongodb.Admin", "Member[command].Argument[1]"], + ["mongodb.RunCommandOptions", "mongodb.Db", "Member[command].Argument[1]"], + ["mongodb.RunCommandOptions", "mongodb/mongodb.RunCommandOptions", ""], + ["mongodb.RunCommandOptions", "mongoose.mongodb.RunCommandOptions", ""], + ["mongodb.SelectServerOptions", "mongodb/mongodb.SelectServerOptions", ""], + ["mongodb.SelectServerOptions", "mongoose.mongodb.SelectServerOptions", ""], + ["mongodb.SetProfilingLevelOptions", "mongodb.Db", "Member[setProfilingLevel].Argument[1]"], + ["mongodb.SetProfilingLevelOptions", "mongodb/mongodb.SetProfilingLevelOptions", ""], + ["mongodb.SetProfilingLevelOptions", "mongoose.mongodb.SetProfilingLevelOptions", ""], + ["mongodb.Transaction", "mongodb.ClientSession", "Member[transaction]"], + ["mongodb.Transaction", "mongodb.TransactionStatic", "Instance"], + ["mongodb.Transaction", "mongodb/mongodb.Transaction", ""], + ["mongodb.Transaction", "mongoose.mongodb.Transaction", ""], + ["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", "mongodb/mongodb.TransactionOptions", ""], + ["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.Collection", "Member[initializeUnorderedBulkOp].ReturnValue"], + ["mongodb.UnorderedBulkOperation", "mongodb.UnorderedBulkOperation", "Member[addToOperationsList].ReturnValue"], + ["mongodb.UnorderedBulkOperation", "mongodb.UnorderedBulkOperationStatic", "Instance"], + ["mongodb.UnorderedBulkOperation", "mongodb/mongodb.UnorderedBulkOperation", ""], + ["mongodb.UnorderedBulkOperation", "mongoose.mongodb.UnorderedBulkOperation", ""], + ["mongodb.UnorderedBulkOperationStatic", "mongodb/mongodb.UnorderedBulkOperationStatic", ""], + ["mongodb.UnorderedBulkOperationStatic", "mongodb", "Member[UnorderedBulkOperation]"], + ["mongodb.UnorderedBulkOperationStatic", "mongoose.mongodb.UnorderedBulkOperationStatic", ""], + ["mongodb.UpdateManyModel", "mongodb.AnyBulkWriteOperation", "Member[updateMany]"], + ["mongodb.UpdateManyModel", "mongodb/mongodb.UpdateManyModel", ""], + ["mongodb.UpdateManyModel", "mongoose.mongodb.UpdateManyModel", ""], + ["mongodb.UpdateOneModel", "mongodb.AnyBulkWriteOperation", "Member[updateOne]"], + ["mongodb.UpdateOneModel", "mongodb/mongodb.UpdateOneModel", ""], + ["mongodb.UpdateOneModel", "mongoose.mongodb.UpdateOneModel", ""], + ["mongodb.UpdateOptions", "mongodb.Collection", "Member[update,updateMany,updateOne].Argument[2]"], + ["mongodb.UpdateOptions", "mongodb/mongodb.UpdateOptions", ""], + ["mongodb.UpdateOptions", "mongoose.mongodb.UpdateOptions", ""], + ["mongodb.ValidateCollectionOptions", "mongodb.Admin", "Member[validateCollection].Argument[1]"], + ["mongodb.ValidateCollectionOptions", "mongodb/mongodb.ValidateCollectionOptions", ""], + ["mongodb.ValidateCollectionOptions", "mongoose.mongodb.ValidateCollectionOptions", ""], + ["mongodb.WithSessionCallback", "mongodb.MongoClient", "Member[withSession].Argument[1]"], + ["mongodb.WithSessionCallback", "mongodb.MongoClient", "Member[withSession].WithArity[1].Argument[0]"], + ["mongodb.WithSessionCallback", "mongodb/mongodb.WithSessionCallback", ""], + ["mongodb.WithSessionCallback", "mongoose.mongodb.WithSessionCallback", ""], + ["mongodb.WithTransactionCallback", "mongodb.ClientSession", "Member[withTransaction].Argument[0]"], + ["mongodb.WithTransactionCallback", "mongodb/mongodb.WithTransactionCallback", ""], + ["mongodb.WithTransactionCallback", "mongoose.mongodb.WithTransactionCallback", ""], + ["mongodb", "mongoose", "Member[mongodb]"], + ["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.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.Collection", "mongoose", "Member[Collection]"], + ["mongoose.CollectionBase", "mongoose.Collection", ""], + ["mongoose.CompileModelOptions", "mongoose.Connection", "Member[model].Argument[3]"], + ["mongoose.CompileModelOptions", "mongoose", "Member[model].Argument[3]"], + ["mongoose.ConnectOptions", "mongoose.Connection", "Member[openUri].WithArity[1,2,3].Argument[1]"], + ["mongoose.ConnectOptions", "mongoose", "Member[connect,createConnection].WithArity[1,2,3].Argument[1]"], + ["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.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.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.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.Model", "mongoose", "Member[Model]"], + ["mongoose.Model", "mongoose", "Member[model].ReturnValue"], + ["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.Schema.Types.DocumentArray", "Member[caster]"], + ["mongoose.Schema.Types.SubdocumentStatic", "mongoose", "Member[Schema].Member[Types].Member[Subdocument]"], + ["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.Types.ArraySubdocument", "Member[parentArray].ReturnValue"], + ["mongoose.Types.DocumentArray", "mongoose.Types.DocumentArrayStatic", "Instance"], + ["mongoose.Types.DocumentArray", "mongoose/inferschematype.ResolvePathType", "TypeVar[mongoose.IfEquals.3]"], + ["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]"], + ["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]"] + ] + }, + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "summaryModel" + }, + "data": [ + ["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"] + ] + }, + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "typeVariableModel" + }, + "data": [ + ["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]"] + ] + } + ] +} diff --git a/javascript/ql/lib/semmle/javascript/frameworks/mongodb/mongodb.model.yml b/javascript/ql/lib/semmle/javascript/frameworks/mongodb/mongodb.model.yml deleted file mode 100644 index e2f3f20ee29c..000000000000 --- a/javascript/ql/lib/semmle/javascript/frameworks/mongodb/mongodb.model.yml +++ /dev/null @@ -1,791 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: sinkModel - data: - - [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] - - - addsTo: - pack: codeql/javascript-all - extensible: typeModel - data: - - [mongodb.AbstractCursor, mongodb.FindCursor, ""] - - [mongodb.AbstractCursor, mongodb.ListCollectionsCursor, ""] - - [mongodb.AbstractCursor, mongodb.ListIndexesCursor, ""] - - [mongodb.AbstractCursorOptions, mongodb.AggregationCursorOptions, ""] - - [mongodb.AbstractCursorOptions, "mongodb/mongodb.AbstractCursorOptions", ""] - - [mongodb.AbstractCursorOptions, mongoose.mongodb.AbstractCursorOptions, ""] - - [mongodb.AddUserOptions, mongodb.Admin, "Member[addUser].Argument[1,2]"] - - [mongodb.AddUserOptions, mongodb.Db, "Member[addUser].Argument[1,2]"] - - [mongodb.AddUserOptions, "mongodb/mongodb.AddUserOptions", ""] - - [mongodb.AddUserOptions, mongoose.mongodb.AddUserOptions, ""] - - [mongodb.Admin, mongodb.AdminStatic, Instance] - - [mongodb.Admin, mongodb.Db, "Member[admin].ReturnValue"] - - [mongodb.Admin, "mongodb/mongodb.Admin", ""] - - [mongodb.Admin, mongoose.mongodb.Admin, ""] - - [mongodb.AdminStatic, "mongodb/mongodb.AdminStatic", ""] - - [mongodb.AdminStatic, mongodb, "Member[Admin]"] - - [mongodb.AdminStatic, mongoose.mongodb.AdminStatic, ""] - - [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, "mongodb/mongodb.AggregateOptions", ""] - - [mongodb.AggregateOptions, mongoose.mongodb.AggregateOptions, ""] - - [mongodb.AggregationCursorOptions, "mongodb/mongodb.AggregationCursorOptions", ""] - - [mongodb.AggregationCursorOptions, mongoose.mongodb.AggregationCursorOptions, ""] - - [mongodb.AnyBulkWriteOperation, mongodb.BulkOperationBase, "Member[raw].Argument[0]"] - - [mongodb.AnyBulkWriteOperation, mongodb.Collection, "Member[bulkWrite].Argument[0].ArrayElement"] - - [mongodb.AnyBulkWriteOperation, "mongodb/mongodb.AnyBulkWriteOperation", ""] - - [mongodb.AnyBulkWriteOperation, mongoose.mongodb.AnyBulkWriteOperation, ""] - - [mongodb.Auth, mongodb.MongoClientOptions, "Member[auth]"] - - [mongodb.Auth, "mongodb/mongodb.Auth", ""] - - [mongodb.Auth, mongoose.mongodb.Auth, ""] - - [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, "mongodb/mongodb.AutoEncrypter", ""] - - [mongodb.AutoEncrypter, mongoose.mongodb.AutoEncrypter, ""] - - [mongodb.AutoEncryptionOptions, mongodb.AutoEncrypter, "Argument[1]"] - - [mongodb.AutoEncryptionOptions, mongodb.MongoClientOptions, "Member[autoEncryption]"] - - [mongodb.AutoEncryptionOptions, "mongodb/mongodb.AutoEncryptionOptions", ""] - - [mongodb.AutoEncryptionOptions, mongoose.mongodb.AutoEncryptionOptions, ""] - - [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, "mongodb/mongodb.BulkOperationBase", ""] - - [mongodb.BulkOperationBase, mongoose.mongodb.BulkOperationBase, ""] - - [mongodb.BulkOperationBaseStatic, "mongodb/mongodb.BulkOperationBaseStatic", ""] - - [mongodb.BulkOperationBaseStatic, mongodb, "Member[BulkOperationBase]"] - - [mongodb.BulkOperationBaseStatic, mongoose.mongodb.BulkOperationBaseStatic, ""] - - [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, "mongodb/mongodb.BulkWriteOptions", ""] - - [mongodb.BulkWriteOptions, mongoose.mongodb.BulkWriteOptions, ""] - - [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, "mongodb/mongodb.ChangeStream", ""] - - [mongodb.ChangeStream, mongoose.mongodb.ChangeStream, ""] - - [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, "mongodb/mongodb.ChangeStreamOptions", ""] - - [mongodb.ChangeStreamOptions, mongoose.mongodb.ChangeStreamOptions, ""] - - [mongodb.ChangeStreamStatic, "mongodb/mongodb.ChangeStreamStatic", ""] - - [mongodb.ChangeStreamStatic, mongodb, "Member[ChangeStream]"] - - [mongodb.ChangeStreamStatic, mongoose.mongodb.ChangeStreamStatic, ""] - - [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, "mongodb/mongodb.ClientSession", ""] - - [mongodb.ClientSession, mongoose.mongodb.ClientSession, ""] - - [mongodb.ClientSessionEvents, "mongodb/mongodb.ClientSessionEvents", ""] - - [mongodb.ClientSessionEvents, mongoose.mongodb.ClientSessionEvents, ""] - - [mongodb.ClientSessionOptions, mongodb.MongoClient, "Member[startSession].Argument[0]"] - - [mongodb.ClientSessionOptions, mongodb.MongoClient, "Member[withSession].WithArity[2].Argument[0]"] - - [mongodb.ClientSessionOptions, "mongodb/mongodb.ClientSessionOptions", ""] - - [mongodb.ClientSessionOptions, mongoose.mongodb.ClientSessionOptions, ""] - - [mongodb.ClientSessionStatic, "mongodb/mongodb.ClientSessionStatic", ""] - - [mongodb.ClientSessionStatic, mongodb, "Member[ClientSession]"] - - [mongodb.ClientSessionStatic, mongoose.mongodb.ClientSessionStatic, ""] - - [mongodb.CollStatsOptions, mongodb.Collection, "Member[stats].Argument[0]"] - - [mongodb.CollStatsOptions, "mongodb/mongodb.CollStatsOptions", ""] - - [mongodb.CollStatsOptions, mongoose.mongodb.CollStatsOptions, ""] - - [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, "mongodb/mongodb.Collection", ""] - - [mongodb.Collection, mongoose.mongodb.Collection, ""] - - [mongodb.CollectionStatic, "mongodb/mongodb.CollectionStatic", ""] - - [mongodb.CollectionStatic, mongodb, "Member[Collection]"] - - [mongodb.CollectionStatic, mongoose.mongodb.CollectionStatic, ""] - - [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, "mongodb/mongodb.CommandOperationOptions", ""] - - [mongodb.CommandOperationOptions, mongoose.mongodb.CommandOperationOptions, ""] - - [mongodb.ConnectionOptions, "mongodb/mongodb.ConnectionOptions", ""] - - [mongodb.ConnectionOptions, mongoose.mongodb.ConnectionOptions, ""] - - [mongodb.CountDocumentsOptions, mongodb.Collection, "Member[countDocuments].Argument[1]"] - - [mongodb.CountDocumentsOptions, "mongodb/mongodb.CountDocumentsOptions", ""] - - [mongodb.CountDocumentsOptions, mongoose.mongodb.CountDocumentsOptions, ""] - - [mongodb.CountOptions, mongodb.Collection, "Member[count].Argument[1]"] - - [mongodb.CountOptions, mongodb.FindCursor, "Member[count].Argument[0]"] - - [mongodb.CountOptions, "mongodb/mongodb.CountOptions", ""] - - [mongodb.CountOptions, mongoose.mongodb.CountOptions, ""] - - [mongodb.CreateCollectionOptions, mongodb.Db, "Member[createCollection].WithArity[1,2,3].Argument[1]"] - - [mongodb.CreateCollectionOptions, "mongodb/mongodb.CreateCollectionOptions", ""] - - [mongodb.CreateCollectionOptions, mongoose.mongodb.CreateCollectionOptions, ""] - - [mongodb.CreateIndexesOptions, mongodb.Collection, "Member[createIndex,createIndexes].Argument[1]"] - - [mongodb.CreateIndexesOptions, mongodb.Db, "Member[createIndex].Argument[2]"] - - [mongodb.CreateIndexesOptions, "mongodb/mongodb.CreateIndexesOptions", ""] - - [mongodb.CreateIndexesOptions, mongoose.mongodb.CreateIndexesOptions, ""] - - [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, "mongodb/mongodb.Db", ""] - - [mongodb.Db, mongoose.mongodb.Db, ""] - - [mongodb.DbStatic, "mongodb/mongodb.DbStatic", ""] - - [mongodb.DbStatic, mongodb, "Member[Db]"] - - [mongodb.DbStatic, mongoose.mongodb.DbStatic, ""] - - [mongodb.DbStatsOptions, mongodb.Db, "Member[stats].Argument[0]"] - - [mongodb.DbStatsOptions, "mongodb/mongodb.DbStatsOptions", ""] - - [mongodb.DbStatsOptions, mongoose.mongodb.DbStatsOptions, ""] - - [mongodb.DeleteManyModel, mongodb.AnyBulkWriteOperation, "Member[deleteMany]"] - - [mongodb.DeleteManyModel, "mongodb/mongodb.DeleteManyModel", ""] - - [mongodb.DeleteManyModel, mongoose.mongodb.DeleteManyModel, ""] - - [mongodb.DeleteOneModel, mongodb.AnyBulkWriteOperation, "Member[deleteOne]"] - - [mongodb.DeleteOneModel, "mongodb/mongodb.DeleteOneModel", ""] - - [mongodb.DeleteOneModel, mongoose.mongodb.DeleteOneModel, ""] - - [mongodb.DeleteOptions, mongodb.Collection, "Member[deleteMany,deleteOne,remove].Argument[1]"] - - [mongodb.DeleteOptions, "mongodb/mongodb.DeleteOptions", ""] - - [mongodb.DeleteOptions, mongoose.mongodb.DeleteOptions, ""] - - [mongodb.DistinctOptions, mongodb.Collection, "Member[distinct].Argument[2]"] - - [mongodb.DistinctOptions, "mongodb/mongodb.DistinctOptions", ""] - - [mongodb.DistinctOptions, mongoose.mongodb.DistinctOptions, ""] - - [mongodb.DropCollectionOptions, mongodb.Collection, "Member[drop].Argument[0]"] - - [mongodb.DropCollectionOptions, mongodb.Db, "Member[dropCollection].Argument[1]"] - - [mongodb.DropCollectionOptions, "mongodb/mongodb.DropCollectionOptions", ""] - - [mongodb.DropCollectionOptions, mongoose.mongodb.DropCollectionOptions, ""] - - [mongodb.DropDatabaseOptions, mongodb.Db, "Member[dropDatabase].Argument[0]"] - - [mongodb.DropDatabaseOptions, "mongodb/mongodb.DropDatabaseOptions", ""] - - [mongodb.DropDatabaseOptions, mongoose.mongodb.DropDatabaseOptions, ""] - - [mongodb.DropIndexesOptions, mongodb.Collection, "Member[dropIndex].Argument[1]"] - - [mongodb.DropIndexesOptions, mongodb.Collection, "Member[dropIndexes].Argument[0]"] - - [mongodb.DropIndexesOptions, "mongodb/mongodb.DropIndexesOptions", ""] - - [mongodb.DropIndexesOptions, mongoose.mongodb.DropIndexesOptions, ""] - - [mongodb.EstimatedDocumentCountOptions, mongodb.Collection, "Member[estimatedDocumentCount].Argument[0]"] - - [mongodb.EstimatedDocumentCountOptions, "mongodb/mongodb.EstimatedDocumentCountOptions", ""] - - [mongodb.EstimatedDocumentCountOptions, mongoose.mongodb.EstimatedDocumentCountOptions, ""] - - [mongodb.EvalOptions, "mongodb/mongodb.EvalOptions", ""] - - [mongodb.EvalOptions, mongoose.mongodb.EvalOptions, ""] - - [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, "mongodb/mongodb.FindCursor", ""] - - [mongodb.FindCursor, mongoose.mongodb.FindCursor, ""] - - [mongodb.FindCursorStatic, "mongodb/mongodb.FindCursorStatic", ""] - - [mongodb.FindCursorStatic, mongodb, "Member[FindCursor]"] - - [mongodb.FindCursorStatic, mongoose.mongodb.FindCursorStatic, ""] - - [mongodb.FindOneAndDeleteOptions, mongodb.Collection, "Member[findOneAndDelete].Argument[1]"] - - [mongodb.FindOneAndDeleteOptions, "mongodb/mongodb.FindOneAndDeleteOptions", ""] - - [mongodb.FindOneAndDeleteOptions, mongoose.mongodb.FindOneAndDeleteOptions, ""] - - [mongodb.FindOneAndReplaceOptions, mongodb.Collection, "Member[findOneAndReplace].Argument[2]"] - - [mongodb.FindOneAndReplaceOptions, "mongodb/mongodb.FindOneAndReplaceOptions", ""] - - [mongodb.FindOneAndReplaceOptions, mongoose.mongodb.FindOneAndReplaceOptions, ""] - - [mongodb.FindOneAndUpdateOptions, mongodb.Collection, "Member[findOneAndUpdate].Argument[2]"] - - [mongodb.FindOneAndUpdateOptions, "mongodb/mongodb.FindOneAndUpdateOptions", ""] - - [mongodb.FindOneAndUpdateOptions, mongoose.mongodb.FindOneAndUpdateOptions, ""] - - [mongodb.FindOperators, mongodb.BulkOperationBase, "Member[find].ReturnValue"] - - [mongodb.FindOperators, mongodb.FindOperators, "Member[arrayFilters,collation,upsert].ReturnValue"] - - [mongodb.FindOperators, mongodb.FindOperatorsStatic, Instance] - - [mongodb.FindOperators, "mongodb/mongodb.FindOperators", ""] - - [mongodb.FindOperators, mongoose.mongodb.FindOperators, ""] - - [mongodb.FindOperatorsStatic, "mongodb/mongodb.FindOperatorsStatic", ""] - - [mongodb.FindOperatorsStatic, mongodb, "Member[FindOperators]"] - - [mongodb.FindOperatorsStatic, mongoose.mongodb.FindOperatorsStatic, ""] - - [mongodb.FindOptions, mongodb.Collection, "Member[find,findOne].Argument[1]"] - - [mongodb.FindOptions, mongodb.GridFSBucket, "Member[find].Argument[1]"] - - [mongodb.FindOptions, "mongodb/mongodb.FindOptions", ""] - - [mongodb.FindOptions, mongoose.mongodb.FindOptions, ""] - - [mongodb.GridFSBucket, mongodb.GridFSBucketStatic, Instance] - - [mongodb.GridFSBucket, mongodb.GridFSBucketWriteStream, "Member[bucket]"] - - [mongodb.GridFSBucket, "mongodb/mongodb.GridFSBucket", ""] - - [mongodb.GridFSBucket, mongoose.mongodb.GridFSBucket, ""] - - [mongodb.GridFSBucketStatic, "mongodb/mongodb.GridFSBucketStatic", ""] - - [mongodb.GridFSBucketStatic, mongodb, "Member[GridFSBucket]"] - - [mongodb.GridFSBucketStatic, mongoose.mongodb.GridFSBucketStatic, ""] - - [mongodb.GridFSBucketWriteStream, mongodb.GridFSBucket, "Member[openUploadStream,openUploadStreamWithId].ReturnValue"] - - [mongodb.GridFSBucketWriteStream, mongodb.GridFSBucketWriteStream, "Member[end].ReturnValue"] - - [mongodb.GridFSBucketWriteStream, mongodb.GridFSBucketWriteStreamStatic, Instance] - - [mongodb.GridFSBucketWriteStream, "mongodb/mongodb.GridFSBucketWriteStream", ""] - - [mongodb.GridFSBucketWriteStream, mongoose.mongodb.GridFSBucketWriteStream, ""] - - [mongodb.GridFSBucketWriteStreamStatic, "mongodb/mongodb.GridFSBucketWriteStreamStatic", ""] - - [mongodb.GridFSBucketWriteStreamStatic, mongodb, "Member[GridFSBucketWriteStream]"] - - [mongodb.GridFSBucketWriteStreamStatic, mongoose.mongodb.GridFSBucketWriteStreamStatic, ""] - - [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, "mongodb/mongodb.IndexInformationOptions", ""] - - [mongodb.IndexInformationOptions, mongoose.mongodb.IndexInformationOptions, ""] - - [mongodb.InsertOneOptions, mongodb.Collection, "Member[insertOne].Argument[1]"] - - [mongodb.InsertOneOptions, "mongodb/mongodb.InsertOneOptions", ""] - - [mongodb.InsertOneOptions, mongoose.mongodb.InsertOneOptions, ""] - - [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, "mongodb/mongodb.ListCollectionsCursor", ""] - - [mongodb.ListCollectionsCursor, mongoose.mongodb.ListCollectionsCursor, ""] - - [mongodb.ListCollectionsCursorStatic, "mongodb/mongodb.ListCollectionsCursorStatic", ""] - - [mongodb.ListCollectionsCursorStatic, mongodb, "Member[ListCollectionsCursor]"] - - [mongodb.ListCollectionsCursorStatic, mongoose.mongodb.ListCollectionsCursorStatic, ""] - - [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, "mongodb/mongodb.ListCollectionsOptions", ""] - - [mongodb.ListCollectionsOptions, mongoose.mongodb.ListCollectionsOptions, ""] - - [mongodb.ListDatabasesOptions, mongodb.Admin, "Member[listDatabases].Argument[0]"] - - [mongodb.ListDatabasesOptions, "mongodb/mongodb.ListDatabasesOptions", ""] - - [mongodb.ListDatabasesOptions, mongoose.mongodb.ListDatabasesOptions, ""] - - [mongodb.ListIndexesCursor, mongodb.Collection, "Member[listIndexes].ReturnValue"] - - [mongodb.ListIndexesCursor, mongodb.ListIndexesCursor, "Member[clone].ReturnValue"] - - [mongodb.ListIndexesCursor, mongodb.ListIndexesCursorStatic, Instance] - - [mongodb.ListIndexesCursor, "mongodb/mongodb.ListIndexesCursor", ""] - - [mongodb.ListIndexesCursor, mongoose.mongodb.ListIndexesCursor, ""] - - [mongodb.ListIndexesCursorStatic, "mongodb/mongodb.ListIndexesCursorStatic", ""] - - [mongodb.ListIndexesCursorStatic, mongodb, "Member[ListIndexesCursor]"] - - [mongodb.ListIndexesCursorStatic, mongoose.mongodb.ListIndexesCursorStatic, ""] - - [mongodb.ListIndexesOptions, mongodb.Collection, "Member[listIndexes].Argument[0]"] - - [mongodb.ListIndexesOptions, mongodb.ListIndexesCursor, "Member[options]"] - - [mongodb.ListIndexesOptions, mongodb.ListIndexesCursorStatic, "Argument[1]"] - - [mongodb.ListIndexesOptions, "mongodb/mongodb.ListIndexesOptions", ""] - - [mongodb.ListIndexesOptions, mongoose.mongodb.ListIndexesOptions, ""] - - [mongodb.MapReduceOptions, mongodb.Collection, "Member[mapReduce].Argument[2]"] - - [mongodb.MapReduceOptions, "mongodb/mongodb.MapReduceOptions", ""] - - [mongodb.MapReduceOptions, mongoose.mongodb.MapReduceOptions, ""] - - [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, "mongodb/mongodb.MongoClient", ""] - - [mongodb.MongoClient, mongoose.mongodb.MongoClient, ""] - - [mongodb.MongoClientEvents, "mongodb/mongodb.MongoClientEvents", ""] - - [mongodb.MongoClientEvents, mongoose.mongodb.MongoClientEvents, ""] - - [mongodb.MongoClientOptions, mongodb.MongoClientStatic, "Argument[1]"] - - [mongodb.MongoClientOptions, mongodb.MongoClientStatic, "Member[connect].Argument[1]"] - - [mongodb.MongoClientOptions, "mongodb/mongodb.MongoClientOptions", ""] - - [mongodb.MongoClientOptions, mongoose.mongodb.MongoClientOptions, ""] - - [mongodb.MongoClientStatic, "mongodb/mongodb.MongoClientStatic", ""] - - [mongodb.MongoClientStatic, mongodb, "Member[MongoClient]"] - - [mongodb.MongoClientStatic, mongoose.mongodb.MongoClientStatic, ""] - - [mongodb.MongoOptions, mongodb.ClientSession, "Member[clientOptions]"] - - [mongodb.MongoOptions, mongodb.MongoClient, "Member[options]"] - - [mongodb.MongoOptions, "mongodb/mongodb.MongoOptions", ""] - - [mongodb.MongoOptions, mongoose.mongodb.MongoOptions, ""] - - [mongodb.OperationOptions, mongodb.Collection, "Member[isCapped,options].Argument[0]"] - - [mongodb.OperationOptions, mongodb.CommandOperationOptions, ""] - - [mongodb.OperationOptions, "mongodb/mongodb.OperationOptions", ""] - - [mongodb.OperationOptions, mongoose.mongodb.OperationOptions, ""] - - [mongodb.OrderedBulkOperation, mongodb.Collection, "Member[initializeOrderedBulkOp].ReturnValue"] - - [mongodb.OrderedBulkOperation, mongodb.OrderedBulkOperation, "Member[addToOperationsList].ReturnValue"] - - [mongodb.OrderedBulkOperation, mongodb.OrderedBulkOperationStatic, Instance] - - [mongodb.OrderedBulkOperation, "mongodb/mongodb.OrderedBulkOperation", ""] - - [mongodb.OrderedBulkOperation, mongoose.mongodb.OrderedBulkOperation, ""] - - [mongodb.OrderedBulkOperationStatic, "mongodb/mongodb.OrderedBulkOperationStatic", ""] - - [mongodb.OrderedBulkOperationStatic, mongodb, "Member[OrderedBulkOperation]"] - - [mongodb.OrderedBulkOperationStatic, mongoose.mongodb.OrderedBulkOperationStatic, ""] - - [mongodb.ProfilingLevelOptions, mongodb.Db, "Member[profilingLevel].Argument[0]"] - - [mongodb.ProfilingLevelOptions, "mongodb/mongodb.ProfilingLevelOptions", ""] - - [mongodb.ProfilingLevelOptions, mongoose.mongodb.ProfilingLevelOptions, ""] - - [mongodb.ReadPreferenceFromOptions, mongodb.ReadPreferenceStatic, "Member[fromOptions].Argument[0]"] - - [mongodb.ReadPreferenceFromOptions, "mongodb/mongodb.ReadPreferenceFromOptions", ""] - - [mongodb.ReadPreferenceFromOptions, mongoose.mongodb.ReadPreferenceFromOptions, ""] - - [mongodb.ReadPreferenceStatic, "mongodb/mongodb.ReadPreferenceStatic", ""] - - [mongodb.ReadPreferenceStatic, mongodb, "Member[ReadPreference]"] - - [mongodb.ReadPreferenceStatic, mongoose.mongodb.ReadPreferenceStatic, ""] - - [mongodb.RemoveUserOptions, mongodb.Admin, "Member[removeUser].Argument[1]"] - - [mongodb.RemoveUserOptions, mongodb.Db, "Member[removeUser].Argument[1]"] - - [mongodb.RemoveUserOptions, "mongodb/mongodb.RemoveUserOptions", ""] - - [mongodb.RemoveUserOptions, mongoose.mongodb.RemoveUserOptions, ""] - - [mongodb.RenameOptions, mongodb.Collection, "Member[rename].Argument[1]"] - - [mongodb.RenameOptions, mongodb.Db, "Member[renameCollection].Argument[2]"] - - [mongodb.RenameOptions, "mongodb/mongodb.RenameOptions", ""] - - [mongodb.RenameOptions, mongoose.mongodb.RenameOptions, ""] - - [mongodb.ReplaceOptions, mongodb.Collection, "Member[replaceOne].Argument[2]"] - - [mongodb.ReplaceOptions, "mongodb/mongodb.ReplaceOptions", ""] - - [mongodb.ReplaceOptions, mongoose.mongodb.ReplaceOptions, ""] - - [mongodb.RunCommandOptions, mongodb.Admin, "Member[command].Argument[1]"] - - [mongodb.RunCommandOptions, mongodb.Db, "Member[command].Argument[1]"] - - [mongodb.RunCommandOptions, "mongodb/mongodb.RunCommandOptions", ""] - - [mongodb.RunCommandOptions, mongoose.mongodb.RunCommandOptions, ""] - - [mongodb.SelectServerOptions, "mongodb/mongodb.SelectServerOptions", ""] - - [mongodb.SelectServerOptions, mongoose.mongodb.SelectServerOptions, ""] - - [mongodb.SetProfilingLevelOptions, mongodb.Db, "Member[setProfilingLevel].Argument[1]"] - - [mongodb.SetProfilingLevelOptions, "mongodb/mongodb.SetProfilingLevelOptions", ""] - - [mongodb.SetProfilingLevelOptions, mongoose.mongodb.SetProfilingLevelOptions, ""] - - [mongodb.Transaction, mongodb.ClientSession, "Member[transaction]"] - - [mongodb.Transaction, mongodb.TransactionStatic, Instance] - - [mongodb.Transaction, "mongodb/mongodb.Transaction", ""] - - [mongodb.Transaction, mongoose.mongodb.Transaction, ""] - - [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, "mongodb/mongodb.TransactionOptions", ""] - - [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.Collection, "Member[initializeUnorderedBulkOp].ReturnValue"] - - [mongodb.UnorderedBulkOperation, mongodb.UnorderedBulkOperation, "Member[addToOperationsList].ReturnValue"] - - [mongodb.UnorderedBulkOperation, mongodb.UnorderedBulkOperationStatic, Instance] - - [mongodb.UnorderedBulkOperation, "mongodb/mongodb.UnorderedBulkOperation", ""] - - [mongodb.UnorderedBulkOperation, mongoose.mongodb.UnorderedBulkOperation, ""] - - [mongodb.UnorderedBulkOperationStatic, "mongodb/mongodb.UnorderedBulkOperationStatic", ""] - - [mongodb.UnorderedBulkOperationStatic, mongodb, "Member[UnorderedBulkOperation]"] - - [mongodb.UnorderedBulkOperationStatic, mongoose.mongodb.UnorderedBulkOperationStatic, ""] - - [mongodb.UpdateManyModel, mongodb.AnyBulkWriteOperation, "Member[updateMany]"] - - [mongodb.UpdateManyModel, "mongodb/mongodb.UpdateManyModel", ""] - - [mongodb.UpdateManyModel, mongoose.mongodb.UpdateManyModel, ""] - - [mongodb.UpdateOneModel, mongodb.AnyBulkWriteOperation, "Member[updateOne]"] - - [mongodb.UpdateOneModel, "mongodb/mongodb.UpdateOneModel", ""] - - [mongodb.UpdateOneModel, mongoose.mongodb.UpdateOneModel, ""] - - [mongodb.UpdateOptions, mongodb.Collection, "Member[update,updateMany,updateOne].Argument[2]"] - - [mongodb.UpdateOptions, "mongodb/mongodb.UpdateOptions", ""] - - [mongodb.UpdateOptions, mongoose.mongodb.UpdateOptions, ""] - - [mongodb.ValidateCollectionOptions, mongodb.Admin, "Member[validateCollection].Argument[1]"] - - [mongodb.ValidateCollectionOptions, "mongodb/mongodb.ValidateCollectionOptions", ""] - - [mongodb.ValidateCollectionOptions, mongoose.mongodb.ValidateCollectionOptions, ""] - - [mongodb.WithSessionCallback, mongodb.MongoClient, "Member[withSession].Argument[1]"] - - [mongodb.WithSessionCallback, mongodb.MongoClient, "Member[withSession].WithArity[1].Argument[0]"] - - [mongodb.WithSessionCallback, "mongodb/mongodb.WithSessionCallback", ""] - - [mongodb.WithSessionCallback, mongoose.mongodb.WithSessionCallback, ""] - - [mongodb.WithTransactionCallback, mongodb.ClientSession, "Member[withTransaction].Argument[0]"] - - [mongodb.WithTransactionCallback, "mongodb/mongodb.WithTransactionCallback", ""] - - [mongodb.WithTransactionCallback, mongoose.mongodb.WithTransactionCallback, ""] - - [mongodb, mongoose, "Member[mongodb]"] - - [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.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.Collection, mongoose, "Member[Collection]"] - - [mongoose.CollectionBase, mongoose.Collection, ""] - - [mongoose.CompileModelOptions, mongoose.Connection, "Member[model].Argument[3]"] - - [mongoose.CompileModelOptions, mongoose, "Member[model].Argument[3]"] - - [mongoose.ConnectOptions, mongoose.Connection, "Member[openUri].WithArity[1,2,3].Argument[1]"] - - [mongoose.ConnectOptions, mongoose, "Member[connect,createConnection].WithArity[1,2,3].Argument[1]"] - - [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.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.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.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.Model, mongoose, "Member[Model]"] - - [mongoose.Model, mongoose, "Member[model].ReturnValue"] - - [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.Schema.Types.DocumentArray, "Member[caster]"] - - [mongoose.Schema.Types.SubdocumentStatic, mongoose, "Member[Schema].Member[Types].Member[Subdocument]"] - - [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.Types.ArraySubdocument, "Member[parentArray].ReturnValue"] - - [mongoose.Types.DocumentArray, mongoose.Types.DocumentArrayStatic, Instance] - - [mongoose.Types.DocumentArray, "mongoose/inferschematype.ResolvePathType", "TypeVar[mongoose.IfEquals.3]"] - - [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]"] - - ["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]"] - - - addsTo: - pack: codeql/javascript-all - extensible: summaryModel - data: - - [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] - - - addsTo: - pack: codeql/javascript-all - extensible: typeVariableModel - data: - - [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]"] diff --git a/javascript/ql/lib/semmle/javascript/frameworks/mssql/mssql.model.json b/javascript/ql/lib/semmle/javascript/frameworks/mssql/mssql.model.json new file mode 100644 index 000000000000..d2247521f5cc --- /dev/null +++ b/javascript/ql/lib/semmle/javascript/frameworks/mssql/mssql.model.json @@ -0,0 +1,46 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "typeModel" + }, + "data": [ + ["mssql.ConnectionPool", "mssql.ConnectionPool", "Member[connect].WithArity[0].ReturnValue.Awaited"], + ["mssql.ConnectionPool", "mssql.ConnectionPoolStatic", "Instance"], + ["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.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.ConnectionPoolStatic", "WithArity[1,2].Argument[0]"], + ["mssql.config", "mssql/msnodesqlv8", "Member[connect].Argument[0]"], + ["mssql.config", "mssql", "Member[connect].Argument[0]"] + ] + } + ] +} diff --git a/javascript/ql/lib/semmle/javascript/frameworks/mssql/mssql.model.yml b/javascript/ql/lib/semmle/javascript/frameworks/mssql/mssql.model.yml deleted file mode 100644 index bbc3279b81d3..000000000000 --- a/javascript/ql/lib/semmle/javascript/frameworks/mssql/mssql.model.yml +++ /dev/null @@ -1,39 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: typeModel - data: - - [mssql.ConnectionPool, mssql.ConnectionPool, "Member[connect].WithArity[0].ReturnValue.Awaited"] - - [mssql.ConnectionPool, mssql.ConnectionPoolStatic, Instance] - - [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.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.ConnectionPoolStatic, "WithArity[1,2].Argument[0]"] - - [mssql.config, "mssql/msnodesqlv8", "Member[connect].Argument[0]"] - - [mssql.config, mssql, "Member[connect].Argument[0]"] diff --git a/javascript/ql/lib/semmle/javascript/frameworks/mysql/mysql.model.json b/javascript/ql/lib/semmle/javascript/frameworks/mysql/mysql.model.json new file mode 100644 index 000000000000..41cbd1549f75 --- /dev/null +++ b/javascript/ql/lib/semmle/javascript/frameworks/mysql/mysql.model.json @@ -0,0 +1,80 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "typeModel" + }, + "data": [ + ["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.Connection", "mysql", "Member[createConnection].ReturnValue"], + ["mysql.ConnectionConfig", "mysql.Connection", "Member[config]"], + ["mysql.ConnectionConfig", "mysql.PoolConfig", ""], + ["mysql.ConnectionConfig", "mysql", "Member[createConnection].Argument[0]"], + ["mysql.ConnectionOptions", "mysql.Connection", "Member[changeUser].WithArity[1,2].Argument[0]"], + ["mysql.ConnectionOptions", "mysql.ConnectionConfig", ""], + ["mysql.Pool", "mysql.PoolCluster", "Member[of].ReturnValue"], + ["mysql.Pool", "mysql", "Member[createPool].ReturnValue"], + ["mysql.PoolCluster", "mysql", "Member[createPoolCluster].ReturnValue"], + ["mysql.PoolConfig", "mysql.PoolCluster", "Member[add].Argument[1]"], + ["mysql.PoolConfig", "mysql.PoolCluster", "Member[add].WithArity[1].Argument[0]"], + ["mysql.PoolConfig", "mysql", "Member[createPool].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]"], + ["mysql2.Connection", "mysql2.PoolConnection", ""], + ["mysql2.Connection", "mysql2.authPlugins", "Argument[0].Member[connection]"], + ["mysql2.Connection", "mysql2", "Member[createConnection].ReturnValue"], + ["mysql2.ConnectionOptions", "mysql2.PoolOptions", ""], + ["mysql2.ConnectionOptions", "mysql2/promise.Connection", "Member[changeUser].Argument[0]"], + ["mysql2.ConnectionOptions", "mysql2/promise.Connection", "Member[config]"], + ["mysql2.ConnectionOptions", "mysql2/promise", "Member[createConnection].Argument[0]"], + ["mysql2.ConnectionOptions", "mysql2", "Member[createConnection].Argument[0]"], + ["mysql2.Pool", "mysql2.Pool", "Member[addListener,on,once,prependListener,prependOnceListener].ReturnValue"], + ["mysql2.Pool", "mysql2", "Member[createPool].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"], + ["mysql2/promise.Connection", "mysql2.Connection", "Member[promise].ReturnValue"], + ["mysql2/promise.Connection", "mysql2/promise.PoolConnection", ""], + ["mysql2/promise.Connection", "mysql2/promise", "Member[createConnectionPromise].ReturnValue.Awaited"], + ["mysql2/promise.Connection", "mysql2/promise", "Member[createConnection].ReturnValue.Awaited"], + ["mysql2/promise.Connection", "mysql2", "Member[createConnectionPromise].ReturnValue.Awaited"], + ["mysql2/promise.Pool", "mysql2.Pool", "Member[promise].ReturnValue"], + ["mysql2/promise.Pool", "mysql2/promise.Pool", "Member[addListener,on,once,prependListener,prependOnceListener].ReturnValue"], + ["mysql2/promise.Pool", "mysql2/promise", "Member[createPool].ReturnValue"], + ["mysql2/promise.PoolConnection", "mysql2.PoolConnection", "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/typings/mysql.Connection", "mysql2.Connection", ""], + ["mysql2/typings/mysql.Connection", "mysql2.Pool", ""], + ["mysql2/typings/mysql.PoolConnection", "mysql2.PoolConnection", ""], + ["mysql2/typings/mysql/lib/Connection", "mysql2/typings/mysql.Connection", ""], + ["mysql2/typings/mysql/lib/Connection", "mysql2/typings/mysql/lib/PoolConnection", ""], + ["mysql2/typings/mysql/lib/PoolConnection", "mysql2/typings/mysql.PoolConnection", ""] + ] + }, + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "summaryModel" + }, + "data": [ + ["mysql2.Pool", "", "", "Member[addListener,on,once,prependListener,prependOnceListener].ReturnValue", "type"], + ["mysql2/promise.Pool", "", "", "Member[addListener,on,once,prependListener,prependOnceListener].ReturnValue", "type"], + ["mysql2/typings/mysql/lib/Connection", "", "", "Member[addListener,on,once,prependListener,prependOnceListener].ReturnValue", "type"] + ] + } + ] +} diff --git a/javascript/ql/lib/semmle/javascript/frameworks/mysql/mysql.model.yml b/javascript/ql/lib/semmle/javascript/frameworks/mysql/mysql.model.yml deleted file mode 100644 index 506dc42b7c3b..000000000000 --- a/javascript/ql/lib/semmle/javascript/frameworks/mysql/mysql.model.yml +++ /dev/null @@ -1,70 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: typeModel - data: - - [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.Connection, mysql, "Member[createConnection].ReturnValue"] - - [mysql.ConnectionConfig, mysql.Connection, "Member[config]"] - - [mysql.ConnectionConfig, mysql.PoolConfig, ""] - - [mysql.ConnectionConfig, mysql, "Member[createConnection].Argument[0]"] - - [mysql.ConnectionOptions, mysql.Connection, "Member[changeUser].WithArity[1,2].Argument[0]"] - - [mysql.ConnectionOptions, mysql.ConnectionConfig, ""] - - [mysql.Pool, mysql.PoolCluster, "Member[of].ReturnValue"] - - [mysql.Pool, mysql, "Member[createPool].ReturnValue"] - - [mysql.PoolCluster, mysql, "Member[createPoolCluster].ReturnValue"] - - [mysql.PoolConfig, mysql.PoolCluster, "Member[add].Argument[1]"] - - [mysql.PoolConfig, mysql.PoolCluster, "Member[add].WithArity[1].Argument[0]"] - - [mysql.PoolConfig, mysql, "Member[createPool].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]"] - - [mysql2.Connection, mysql2.PoolConnection, ""] - - [mysql2.Connection, mysql2.authPlugins, "Argument[0].Member[connection]"] - - [mysql2.Connection, mysql2, "Member[createConnection].ReturnValue"] - - [mysql2.ConnectionOptions, mysql2.PoolOptions, ""] - - [mysql2.ConnectionOptions, "mysql2/promise.Connection", "Member[changeUser].Argument[0]"] - - [mysql2.ConnectionOptions, "mysql2/promise.Connection", "Member[config]"] - - [mysql2.ConnectionOptions, "mysql2/promise", "Member[createConnection].Argument[0]"] - - [mysql2.ConnectionOptions, mysql2, "Member[createConnection].Argument[0]"] - - [mysql2.Pool, mysql2.Pool, "Member[addListener,on,once,prependListener,prependOnceListener].ReturnValue"] - - [mysql2.Pool, mysql2, "Member[createPool].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"] - - ["mysql2/promise.Connection", mysql2.Connection, "Member[promise].ReturnValue"] - - ["mysql2/promise.Connection", "mysql2/promise.PoolConnection", ""] - - ["mysql2/promise.Connection", "mysql2/promise", "Member[createConnectionPromise].ReturnValue.Awaited"] - - ["mysql2/promise.Connection", "mysql2/promise", "Member[createConnection].ReturnValue.Awaited"] - - ["mysql2/promise.Connection", mysql2, "Member[createConnectionPromise].ReturnValue.Awaited"] - - ["mysql2/promise.Pool", mysql2.Pool, "Member[promise].ReturnValue"] - - ["mysql2/promise.Pool", "mysql2/promise.Pool", "Member[addListener,on,once,prependListener,prependOnceListener].ReturnValue"] - - ["mysql2/promise.Pool", "mysql2/promise", "Member[createPool].ReturnValue"] - - ["mysql2/promise.PoolConnection", mysql2.PoolConnection, "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/typings/mysql.Connection", mysql2.Connection, ""] - - ["mysql2/typings/mysql.Connection", mysql2.Pool, ""] - - ["mysql2/typings/mysql.PoolConnection", mysql2.PoolConnection, ""] - - ["mysql2/typings/mysql/lib/Connection", "mysql2/typings/mysql.Connection", ""] - - ["mysql2/typings/mysql/lib/Connection", "mysql2/typings/mysql/lib/PoolConnection", ""] - - ["mysql2/typings/mysql/lib/PoolConnection", "mysql2/typings/mysql.PoolConnection", ""] - - - addsTo: - pack: codeql/javascript-all - extensible: summaryModel - data: - - [mysql2.Pool, "", "", "Member[addListener,on,once,prependListener,prependOnceListener].ReturnValue", type] - - ["mysql2/promise.Pool", "", "", "Member[addListener,on,once,prependListener,prependOnceListener].ReturnValue", type] - - ["mysql2/typings/mysql/lib/Connection", "", "", "Member[addListener,on,once,prependListener,prependOnceListener].ReturnValue", type] diff --git a/javascript/ql/lib/semmle/javascript/frameworks/pg/pg.model.json b/javascript/ql/lib/semmle/javascript/frameworks/pg/pg.model.json new file mode 100644 index 000000000000..be02435a7dbc --- /dev/null +++ b/javascript/ql/lib/semmle/javascript/frameworks/pg/pg.model.json @@ -0,0 +1,121 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "typeModel" + }, + "data": [ + ["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.Static", "pg-cursor", ""], + ["pg-cursor", "pg-cursor.Static", "Instance"], + ["pg-pool.Static", "pg-pool", ""], + ["pg-pool", "pg-pool.Static", "Instance"], + ["pg-pool", "pg-pool", "Member[addListener,on,once,prependListener,prependOnceListener].ReturnValue"], + ["pg-promise.IBaseProtocol", "pg-promise.IConnected", ""], + ["pg-promise.IBaseProtocol", "pg-promise.IDatabase", ""], + ["pg-promise.IBaseProtocol", "pg-promise.ITask", ""], + ["pg-promise.IBaseProtocol", "pg-promise/typescript/pg-promise.IBaseProtocol", ""], + ["pg-promise.IConnected", "pg-promise.IDatabase", "Member[connect].ReturnValue.Awaited"], + ["pg-promise.IConnected", "pg-promise/typescript/pg-promise.IConnected", ""], + ["pg-promise.IDatabase", "pg-promise.IInitOptions", "Member[extend].Argument[0]"], + ["pg-promise.IDatabase", "pg-promise.IMain", "ReturnValue"], + ["pg-promise.IDatabase", "pg-promise/typescript/pg-promise.IDatabase", ""], + ["pg-promise.IInitOptions", "pg-promise.ILibConfig", "Member[options]"], + ["pg-promise.IInitOptions", "pg-promise/typescript/pg-promise.IInitOptions", ""], + ["pg-promise.IInitOptions", "pg-promise", "Argument[0]"], + ["pg-promise.ILibConfig", "pg-promise.IDatabase", "Member[$config]"], + ["pg-promise.ILibConfig", "pg-promise/typescript/pg-promise.ILibConfig", ""], + ["pg-promise.IMain", "pg-promise.ILibConfig", "Member[pgp]"], + ["pg-promise.IMain", "pg-promise/typescript/pg-promise.IMain", ""], + ["pg-promise.IMain", "pg-promise", "ReturnValue"], + ["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-promise.ITask", "pg-promise/typescript/pg-promise.ITask", ""], + ["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.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.IConnection", "pg-promise/pg-subset.pg.IClient", "Member[connection]"], + ["pg-promise/pg-subset.pg.IPool", "pg-promise.IDatabase", "Member[$pool]"], + ["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]"] + ] + }, + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "summaryModel" + }, + "data": [ + ["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"] + ] + }, + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "typeVariableModel" + }, + "data": [ + ["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"] + ] + } + ] +} diff --git a/javascript/ql/lib/semmle/javascript/frameworks/pg/pg.model.yml b/javascript/ql/lib/semmle/javascript/frameworks/pg/pg.model.yml deleted file mode 100644 index 27207b6aff9c..000000000000 --- a/javascript/ql/lib/semmle/javascript/frameworks/pg/pg.model.yml +++ /dev/null @@ -1,108 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: typeModel - data: - - [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.Static", "pg-cursor", ""] - - ["pg-cursor", "pg-cursor.Static", Instance] - - ["pg-pool.Static", "pg-pool", ""] - - ["pg-pool", "pg-pool.Static", Instance] - - ["pg-pool", "pg-pool", "Member[addListener,on,once,prependListener,prependOnceListener].ReturnValue"] - - ["pg-promise.IBaseProtocol", "pg-promise.IConnected", ""] - - ["pg-promise.IBaseProtocol", "pg-promise.IDatabase", ""] - - ["pg-promise.IBaseProtocol", "pg-promise.ITask", ""] - - ["pg-promise.IBaseProtocol", "pg-promise/typescript/pg-promise.IBaseProtocol", ""] - - ["pg-promise.IConnected", "pg-promise.IDatabase", "Member[connect].ReturnValue.Awaited"] - - ["pg-promise.IConnected", "pg-promise/typescript/pg-promise.IConnected", ""] - - ["pg-promise.IDatabase", "pg-promise.IInitOptions", "Member[extend].Argument[0]"] - - ["pg-promise.IDatabase", "pg-promise.IMain", ReturnValue] - - ["pg-promise.IDatabase", "pg-promise/typescript/pg-promise.IDatabase", ""] - - ["pg-promise.IInitOptions", "pg-promise.ILibConfig", "Member[options]"] - - ["pg-promise.IInitOptions", "pg-promise/typescript/pg-promise.IInitOptions", ""] - - ["pg-promise.IInitOptions", "pg-promise", "Argument[0]"] - - ["pg-promise.ILibConfig", "pg-promise.IDatabase", "Member[$config]"] - - ["pg-promise.ILibConfig", "pg-promise/typescript/pg-promise.ILibConfig", ""] - - ["pg-promise.IMain", "pg-promise.ILibConfig", "Member[pgp]"] - - ["pg-promise.IMain", "pg-promise/typescript/pg-promise.IMain", ""] - - ["pg-promise.IMain", "pg-promise", ReturnValue] - - ["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-promise.ITask", "pg-promise/typescript/pg-promise.ITask", ""] - - ["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.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.IConnection", "pg-promise/pg-subset.pg.IClient", "Member[connection]"] - - ["pg-promise/pg-subset.pg.IPool", "pg-promise.IDatabase", "Member[$pool]"] - - [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]"] - - - addsTo: - pack: codeql/javascript-all - extensible: summaryModel - data: - - [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] - - - addsTo: - pack: codeql/javascript-all - extensible: typeVariableModel - data: - - ["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"] diff --git a/javascript/ql/lib/semmle/javascript/frameworks/sequelize/sequelize.model.json b/javascript/ql/lib/semmle/javascript/frameworks/sequelize/sequelize.model.json new file mode 100644 index 000000000000..fc6b15f31c87 --- /dev/null +++ b/javascript/ql/lib/semmle/javascript/frameworks/sequelize/sequelize.model.json @@ -0,0 +1,298 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "sinkModel" + }, + "data": [ + ["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"], + ["sequelize", "Argument[0..].Member[password]", "credentials-password"], + ["sequelize", "Argument[0..].Member[username]", "credentials-username"], + ["sequelize", "Argument[1]", "credentials-username"], + ["sequelize", "Argument[2]", "credentials-password"] + ] + }, + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "typeModel" + }, + "data": [ + ["sequelize-typescript.AssociationCountOptions", "sequelize-typescript.Model", "Member[$count].Argument[1]"], + ["sequelize-typescript.AssociationCountOptions", "sequelize-typescript/model/model/association/association-count-options.AssociationCountOptions", ""], + ["sequelize-typescript.AssociationGetOptions", "sequelize-typescript.Model", "Member[$get].Argument[1]"], + ["sequelize-typescript.AssociationGetOptions", "sequelize-typescript.Model", "Member[$has].Argument[2]"], + ["sequelize-typescript.AssociationGetOptions", "sequelize-typescript/model/model/association/association-get-options.AssociationGetOptions", ""], + ["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.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.BaseAssociationStatic", "sequelize-typescript/associations/shared/base-association.BaseAssociationStatic", ""], + ["sequelize-typescript.BaseAssociationStatic", "sequelize-typescript/associations/shared/base-association", "Member[BaseAssociation]"], + ["sequelize-typescript.BaseAssociationStatic", "sequelize-typescript", "Member[BaseAssociation]"], + ["sequelize-typescript.BelongsToAssociation", "sequelize-typescript.BelongsToAssociationStatic", "Instance"], + ["sequelize-typescript.BelongsToAssociation", "sequelize-typescript/associations/belongs-to/belongs-to-association.BelongsToAssociation", ""], + ["sequelize-typescript.BelongsToAssociationStatic", "sequelize-typescript/associations/belongs-to/belongs-to-association.BelongsToAssociationStatic", ""], + ["sequelize-typescript.BelongsToAssociationStatic", "sequelize-typescript/associations/belongs-to/belongs-to-association", "Member[BelongsToAssociation]"], + ["sequelize-typescript.BelongsToAssociationStatic", "sequelize-typescript", "Member[BelongsToAssociation]"], + ["sequelize-typescript.BelongsToManyAssociation", "sequelize-typescript.BelongsToManyAssociationStatic", "Instance"], + ["sequelize-typescript.BelongsToManyAssociation", "sequelize-typescript/associations/belongs-to-many/belongs-to-many-association.BelongsToManyAssociation", ""], + ["sequelize-typescript.BelongsToManyAssociationStatic", "sequelize-typescript/associations/belongs-to-many/belongs-to-many-association.BelongsToManyAssociationStatic", ""], + ["sequelize-typescript.BelongsToManyAssociationStatic", "sequelize-typescript/associations/belongs-to-many/belongs-to-many-association", "Member[BelongsToManyAssociation]"], + ["sequelize-typescript.BelongsToManyAssociationStatic", "sequelize-typescript", "Member[BelongsToManyAssociation]"], + ["sequelize-typescript.DefaultScopeGetter", "sequelize-typescript.ScopeOptionsGetters", "Member[getDefaultScope]"], + ["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.HasAssociation", "sequelize-typescript.HasAssociationStatic", "Instance"], + ["sequelize-typescript.HasAssociation", "sequelize-typescript/associations/has/has-association.HasAssociation", ""], + ["sequelize-typescript.HasAssociationStatic", "sequelize-typescript/associations/has/has-association.HasAssociationStatic", ""], + ["sequelize-typescript.HasAssociationStatic", "sequelize-typescript/associations/has/has-association", "Member[HasAssociation]"], + ["sequelize-typescript.HasAssociationStatic", "sequelize-typescript", "Member[HasAssociation]"], + ["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.Model", "sequelize-typescript/model/model/model.Model", ""], + ["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.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.ModelStatic~", "sequelize-typescript/model/model/model.ModelStatic~", ""], + ["sequelize-typescript.ModelStatic~", "sequelize-typescript/model/model/model", "Member[Model]"], + ["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.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.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.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.ScopesOptionsGetter", "ReturnValue.AnyMember"], + ["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.ScopesOptionsGetter", "sequelize-typescript.ScopeOptionsGetters", "Member[getScopes]"], + ["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.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.Sequelize", "sequelize-typescript/sequelize/sequelize/sequelize.Sequelize", ""], + ["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.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.SequelizeStatic", "sequelize-typescript/sequelize/sequelize/sequelize.SequelizeStatic", ""], + ["sequelize-typescript.SequelizeStatic", "sequelize-typescript/sequelize/sequelize/sequelize", "Member[Sequelize]"], + ["sequelize-typescript.SequelizeStatic", "sequelize-typescript", "Member[Sequelize]"], + ["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.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", "Member[Sequelize]"], + ["sequelize.SequelizeStatic", "sequelize.SequelizeStatic", "Member[Sequelize,default]"], + ["sequelize.SequelizeStatic", "sequelize", ""], + ["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]"] + ] + }, + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "summaryModel" + }, + "data": [ + ["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"] + ] + }, + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "typeVariableModel" + }, + "data": [ + ["sequelize-typescript.ModelStatic.0", "Instance"], + ["sequelize-typescript.Repository.0", "Instance"] + ] + } + ] +} diff --git a/javascript/ql/lib/semmle/javascript/frameworks/sequelize/sequelize.model.yml b/javascript/ql/lib/semmle/javascript/frameworks/sequelize/sequelize.model.yml deleted file mode 100644 index b25152b37642..000000000000 --- a/javascript/ql/lib/semmle/javascript/frameworks/sequelize/sequelize.model.yml +++ /dev/null @@ -1,282 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: sinkModel - data: - - [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"] - - [sequelize, "Argument[0..].Member[password]", "credentials-password"] - - [sequelize, "Argument[0..].Member[username]", "credentials-username"] - - [sequelize, "Argument[1]", "credentials-username"] - - [sequelize, "Argument[2]", "credentials-password"] - - - addsTo: - pack: codeql/javascript-all - extensible: typeModel - data: - - ["sequelize-typescript.AssociationCountOptions", "sequelize-typescript.Model", "Member[$count].Argument[1]"] - - ["sequelize-typescript.AssociationCountOptions", "sequelize-typescript/model/model/association/association-count-options.AssociationCountOptions", ""] - - ["sequelize-typescript.AssociationGetOptions", "sequelize-typescript.Model", "Member[$get].Argument[1]"] - - ["sequelize-typescript.AssociationGetOptions", "sequelize-typescript.Model", "Member[$has].Argument[2]"] - - ["sequelize-typescript.AssociationGetOptions", "sequelize-typescript/model/model/association/association-get-options.AssociationGetOptions", ""] - - ["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.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.BaseAssociationStatic", "sequelize-typescript/associations/shared/base-association.BaseAssociationStatic", ""] - - ["sequelize-typescript.BaseAssociationStatic", "sequelize-typescript/associations/shared/base-association", "Member[BaseAssociation]"] - - ["sequelize-typescript.BaseAssociationStatic", "sequelize-typescript", "Member[BaseAssociation]"] - - ["sequelize-typescript.BelongsToAssociation", "sequelize-typescript.BelongsToAssociationStatic", Instance] - - ["sequelize-typescript.BelongsToAssociation", "sequelize-typescript/associations/belongs-to/belongs-to-association.BelongsToAssociation", ""] - - ["sequelize-typescript.BelongsToAssociationStatic", "sequelize-typescript/associations/belongs-to/belongs-to-association.BelongsToAssociationStatic", ""] - - ["sequelize-typescript.BelongsToAssociationStatic", "sequelize-typescript/associations/belongs-to/belongs-to-association", "Member[BelongsToAssociation]"] - - ["sequelize-typescript.BelongsToAssociationStatic", "sequelize-typescript", "Member[BelongsToAssociation]"] - - ["sequelize-typescript.BelongsToManyAssociation", "sequelize-typescript.BelongsToManyAssociationStatic", Instance] - - ["sequelize-typescript.BelongsToManyAssociation", "sequelize-typescript/associations/belongs-to-many/belongs-to-many-association.BelongsToManyAssociation", ""] - - ["sequelize-typescript.BelongsToManyAssociationStatic", "sequelize-typescript/associations/belongs-to-many/belongs-to-many-association.BelongsToManyAssociationStatic", ""] - - ["sequelize-typescript.BelongsToManyAssociationStatic", "sequelize-typescript/associations/belongs-to-many/belongs-to-many-association", "Member[BelongsToManyAssociation]"] - - ["sequelize-typescript.BelongsToManyAssociationStatic", "sequelize-typescript", "Member[BelongsToManyAssociation]"] - - ["sequelize-typescript.DefaultScopeGetter", "sequelize-typescript.ScopeOptionsGetters", "Member[getDefaultScope]"] - - ["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.HasAssociation", "sequelize-typescript.HasAssociationStatic", Instance] - - ["sequelize-typescript.HasAssociation", "sequelize-typescript/associations/has/has-association.HasAssociation", ""] - - ["sequelize-typescript.HasAssociationStatic", "sequelize-typescript/associations/has/has-association.HasAssociationStatic", ""] - - ["sequelize-typescript.HasAssociationStatic", "sequelize-typescript/associations/has/has-association", "Member[HasAssociation]"] - - ["sequelize-typescript.HasAssociationStatic", "sequelize-typescript", "Member[HasAssociation]"] - - ["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.Model", "sequelize-typescript/model/model/model.Model", ""] - - ["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.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.ModelStatic~", "sequelize-typescript/model/model/model.ModelStatic~", ""] - - ["sequelize-typescript.ModelStatic~", "sequelize-typescript/model/model/model", "Member[Model]"] - - ["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.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.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.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.ScopesOptionsGetter", ReturnValue.AnyMember] - - ["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.ScopesOptionsGetter", "sequelize-typescript.ScopeOptionsGetters", "Member[getScopes]"] - - ["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.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.Sequelize", "sequelize-typescript/sequelize/sequelize/sequelize.Sequelize", ""] - - ["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.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.SequelizeStatic", "sequelize-typescript/sequelize/sequelize/sequelize.SequelizeStatic", ""] - - ["sequelize-typescript.SequelizeStatic", "sequelize-typescript/sequelize/sequelize/sequelize", "Member[Sequelize]"] - - ["sequelize-typescript.SequelizeStatic", "sequelize-typescript", "Member[Sequelize]"] - - ["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.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, "Member[Sequelize]"] - - [sequelize.SequelizeStatic, sequelize.SequelizeStatic, "Member[Sequelize,default]"] - - [sequelize.SequelizeStatic, sequelize, ""] - - [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]"] - - - addsTo: - pack: codeql/javascript-all - extensible: summaryModel - data: - - ["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] - - - addsTo: - pack: codeql/javascript-all - extensible: typeVariableModel - data: - - ["sequelize-typescript.ModelStatic.0", Instance] - - ["sequelize-typescript.Repository.0", Instance] diff --git a/javascript/ql/lib/semmle/javascript/frameworks/spanner/spanner.model.json b/javascript/ql/lib/semmle/javascript/frameworks/spanner/spanner.model.json new file mode 100644 index 000000000000..2dd6f3ab0f47 --- /dev/null +++ b/javascript/ql/lib/semmle/javascript/frameworks/spanner/spanner.model.json @@ -0,0 +1,199 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "typeModel" + }, + "data": [ + ["@google-cloud/spanner.BackupStatic", "@google-cloud/spanner/backup.BackupStatic", ""], + ["@google-cloud/spanner.BackupStatic", "@google-cloud/spanner/backup", "Member[Backup]"], + ["@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.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.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.DatabaseStatic", "@google-cloud/spanner/database.DatabaseStatic", ""], + ["@google-cloud/spanner.DatabaseStatic", "@google-cloud/spanner/database", "Member[Database]"], + ["@google-cloud/spanner.DatabaseStatic", "@google-cloud/spanner", "Member[Database]"], + ["@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.GetInstancesCallback", "@google-cloud/spanner/build/src.GetInstancesCallback", ""], + ["@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.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.InstanceStatic", "@google-cloud/spanner/instance.InstanceStatic", ""], + ["@google-cloud/spanner.InstanceStatic", "@google-cloud/spanner/instance", "Member[Instance]"], + ["@google-cloud/spanner.InstanceStatic", "@google-cloud/spanner", "Member[Instance]"], + ["@google-cloud/spanner.PartitionedDml", "@google-cloud/spanner.PartitionedDmlStatic", "Instance"], + ["@google-cloud/spanner.PartitionedDml", "@google-cloud/spanner.Session", "Member[partitionedDml].ReturnValue"], + ["@google-cloud/spanner.PartitionedDml", "@google-cloud/spanner/transaction.PartitionedDml", ""], + ["@google-cloud/spanner.PartitionedDmlStatic", "@google-cloud/spanner/transaction.PartitionedDmlStatic", ""], + ["@google-cloud/spanner.PartitionedDmlStatic", "@google-cloud/spanner/transaction", "Member[PartitionedDml]"], + ["@google-cloud/spanner.PartitionedDmlStatic", "@google-cloud/spanner", "Member[PartitionedDml]"], + ["@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.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.SessionPool", "@google-cloud/spanner.SessionPoolStatic", "Instance"], + ["@google-cloud/spanner.SessionPool", "@google-cloud/spanner/instance.CreateDatabaseOptions", "Member[poolCtor]"], + ["@google-cloud/spanner.SessionPool", "@google-cloud/spanner/session-pool.SessionPool", ""], + ["@google-cloud/spanner.SessionPoolStatic", "@google-cloud/spanner/session-pool.SessionPoolStatic", ""], + ["@google-cloud/spanner.SessionPoolStatic", "@google-cloud/spanner/session-pool", "Member[SessionPool]"], + ["@google-cloud/spanner.SessionPoolStatic", "@google-cloud/spanner", "Member[SessionPool]"], + ["@google-cloud/spanner.SessionStatic", "@google-cloud/spanner/session.SessionStatic", ""], + ["@google-cloud/spanner.SessionStatic", "@google-cloud/spanner/session", "Member[Session]"], + ["@google-cloud/spanner.SessionStatic", "@google-cloud/spanner", "Member[Session]"], + ["@google-cloud/spanner.Snapshot", "@google-cloud/spanner.Session", "Member[snapshot].ReturnValue"], + ["@google-cloud/spanner.Snapshot", "@google-cloud/spanner.SnapshotStatic", "Instance"], + ["@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.SnapshotStatic", "@google-cloud/spanner/transaction.SnapshotStatic", ""], + ["@google-cloud/spanner.SnapshotStatic", "@google-cloud/spanner/transaction", "Member[Snapshot]"], + ["@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.Database", "Member[table].ReturnValue"], + ["@google-cloud/spanner.Table", "@google-cloud/spanner.TableStatic", "Instance"], + ["@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.TableStatic", "@google-cloud/spanner/table.TableStatic", ""], + ["@google-cloud/spanner.TableStatic", "@google-cloud/spanner/table", "Member[Table]"], + ["@google-cloud/spanner.TableStatic", "@google-cloud/spanner", "Member[Table]"], + ["@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.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.TransactionStatic", "@google-cloud/spanner/transaction.TransactionStatic", ""], + ["@google-cloud/spanner.TransactionStatic", "@google-cloud/spanner/transaction", "Member[Transaction]"], + ["@google-cloud/spanner.TransactionStatic", "@google-cloud/spanner", "Member[Transaction]"], + ["@google-cloud/spanner.v1.SpannerClient", "@google-cloud/spanner.v1.SpannerClientStatic", "Instance"], + ["@google-cloud/spanner.v1.SpannerClient", "@google-cloud/spanner/v1/spanner_client.SpannerClient", ""], + ["@google-cloud/spanner.v1.SpannerClientStatic", "@google-cloud/spanner/v1/spanner_client.SpannerClientStatic", ""], + ["@google-cloud/spanner.v1.SpannerClientStatic", "@google-cloud/spanner/v1/spanner_client", "Member[SpannerClient]"], + ["@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]"], + ["@google-cloud/spanner/batch-transaction.BatchTransaction", "@google-cloud/spanner.Database", "Member[batchTransaction].ReturnValue"], + ["@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.BatchTransactionStatic", "@google-cloud/spanner/batch-transaction", "Member[BatchTransaction]"], + ["@google-cloud/spanner/batch-transaction.TransactionIdentifier", "@google-cloud/spanner.Database", "Member[batchTransaction].Argument[0]"], + ["@google-cloud/spanner/batch-transaction.TransactionIdentifier", "@google-cloud/spanner/batch-transaction.BatchTransaction", "Member[identifier].ReturnValue"], + ["@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.SessionPool", "Member[getReadSession].Argument[0]"], + ["@google-cloud/spanner/session-pool.GetReadSessionCallback", "@google-cloud/spanner/session-pool.SessionPoolInterface", "Member[getReadSession].Argument[0]"], + ["@google-cloud/spanner/session-pool.GetWriteSessionCallback", "@google-cloud/spanner.SessionPool", "Member[getWriteSession].Argument[0]"], + ["@google-cloud/spanner/session-pool.GetWriteSessionCallback", "@google-cloud/spanner/session-pool.SessionPoolInterface", "Member[getWriteSession].Argument[0]"], + ["@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/session-pool.SessionPoolInterface", "@google-cloud/spanner/database.SessionPoolConstructor", "Instance"], + ["@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.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.AsyncRunTransactionCallback", "@google-cloud/spanner/transaction-runner.AsyncTransactionRunnerStatic", "Argument[2]"], + ["@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.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.RunTransactionCallback", "@google-cloud/spanner/transaction-runner.TransactionRunnerStatic", "Argument[2]"], + ["@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.PartitionedDml", ""], + ["@google-cloud/spanner/transaction.Dml", "@google-cloud/spanner.Transaction", ""], + ["@google-cloud/spanner/transaction.Dml", "@google-cloud/spanner/transaction.DmlStatic", "Instance"], + ["@google-cloud/spanner/transaction.DmlStatic", "@google-cloud/spanner/transaction", "Member[Dml]"] + ] + }, + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "typeVariableModel" + }, + "data": [ + ["@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]"] + ] + } + ] +} diff --git a/javascript/ql/lib/semmle/javascript/frameworks/spanner/spanner.model.yml b/javascript/ql/lib/semmle/javascript/frameworks/spanner/spanner.model.yml deleted file mode 100644 index bf6e3fa4e5a3..000000000000 --- a/javascript/ql/lib/semmle/javascript/frameworks/spanner/spanner.model.yml +++ /dev/null @@ -1,189 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: typeModel - data: - - ["@google-cloud/spanner.BackupStatic", "@google-cloud/spanner/backup.BackupStatic", ""] - - ["@google-cloud/spanner.BackupStatic", "@google-cloud/spanner/backup", "Member[Backup]"] - - ["@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.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.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.DatabaseStatic", "@google-cloud/spanner/database.DatabaseStatic", ""] - - ["@google-cloud/spanner.DatabaseStatic", "@google-cloud/spanner/database", "Member[Database]"] - - ["@google-cloud/spanner.DatabaseStatic", "@google-cloud/spanner", "Member[Database]"] - - ["@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.GetInstancesCallback", "@google-cloud/spanner/build/src.GetInstancesCallback", ""] - - ["@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.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.InstanceStatic", "@google-cloud/spanner/instance.InstanceStatic", ""] - - ["@google-cloud/spanner.InstanceStatic", "@google-cloud/spanner/instance", "Member[Instance]"] - - ["@google-cloud/spanner.InstanceStatic", "@google-cloud/spanner", "Member[Instance]"] - - ["@google-cloud/spanner.PartitionedDml", "@google-cloud/spanner.PartitionedDmlStatic", Instance] - - ["@google-cloud/spanner.PartitionedDml", "@google-cloud/spanner.Session", "Member[partitionedDml].ReturnValue"] - - ["@google-cloud/spanner.PartitionedDml", "@google-cloud/spanner/transaction.PartitionedDml", ""] - - ["@google-cloud/spanner.PartitionedDmlStatic", "@google-cloud/spanner/transaction.PartitionedDmlStatic", ""] - - ["@google-cloud/spanner.PartitionedDmlStatic", "@google-cloud/spanner/transaction", "Member[PartitionedDml]"] - - ["@google-cloud/spanner.PartitionedDmlStatic", "@google-cloud/spanner", "Member[PartitionedDml]"] - - ["@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.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.SessionPool", "@google-cloud/spanner.SessionPoolStatic", Instance] - - ["@google-cloud/spanner.SessionPool", "@google-cloud/spanner/instance.CreateDatabaseOptions", "Member[poolCtor]"] - - ["@google-cloud/spanner.SessionPool", "@google-cloud/spanner/session-pool.SessionPool", ""] - - ["@google-cloud/spanner.SessionPoolStatic", "@google-cloud/spanner/session-pool.SessionPoolStatic", ""] - - ["@google-cloud/spanner.SessionPoolStatic", "@google-cloud/spanner/session-pool", "Member[SessionPool]"] - - ["@google-cloud/spanner.SessionPoolStatic", "@google-cloud/spanner", "Member[SessionPool]"] - - ["@google-cloud/spanner.SessionStatic", "@google-cloud/spanner/session.SessionStatic", ""] - - ["@google-cloud/spanner.SessionStatic", "@google-cloud/spanner/session", "Member[Session]"] - - ["@google-cloud/spanner.SessionStatic", "@google-cloud/spanner", "Member[Session]"] - - ["@google-cloud/spanner.Snapshot", "@google-cloud/spanner.Session", "Member[snapshot].ReturnValue"] - - ["@google-cloud/spanner.Snapshot", "@google-cloud/spanner.SnapshotStatic", Instance] - - ["@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.SnapshotStatic", "@google-cloud/spanner/transaction.SnapshotStatic", ""] - - ["@google-cloud/spanner.SnapshotStatic", "@google-cloud/spanner/transaction", "Member[Snapshot]"] - - ["@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.Database", "Member[table].ReturnValue"] - - ["@google-cloud/spanner.Table", "@google-cloud/spanner.TableStatic", Instance] - - ["@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.TableStatic", "@google-cloud/spanner/table.TableStatic", ""] - - ["@google-cloud/spanner.TableStatic", "@google-cloud/spanner/table", "Member[Table]"] - - ["@google-cloud/spanner.TableStatic", "@google-cloud/spanner", "Member[Table]"] - - ["@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.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.TransactionStatic", "@google-cloud/spanner/transaction.TransactionStatic", ""] - - ["@google-cloud/spanner.TransactionStatic", "@google-cloud/spanner/transaction", "Member[Transaction]"] - - ["@google-cloud/spanner.TransactionStatic", "@google-cloud/spanner", "Member[Transaction]"] - - ["@google-cloud/spanner.v1.SpannerClient", "@google-cloud/spanner.v1.SpannerClientStatic", Instance] - - ["@google-cloud/spanner.v1.SpannerClient", "@google-cloud/spanner/v1/spanner_client.SpannerClient", ""] - - ["@google-cloud/spanner.v1.SpannerClientStatic", "@google-cloud/spanner/v1/spanner_client.SpannerClientStatic", ""] - - ["@google-cloud/spanner.v1.SpannerClientStatic", "@google-cloud/spanner/v1/spanner_client", "Member[SpannerClient]"] - - ["@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]"] - - ["@google-cloud/spanner/batch-transaction.BatchTransaction", "@google-cloud/spanner.Database", "Member[batchTransaction].ReturnValue"] - - ["@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.BatchTransactionStatic", "@google-cloud/spanner/batch-transaction", "Member[BatchTransaction]"] - - ["@google-cloud/spanner/batch-transaction.TransactionIdentifier", "@google-cloud/spanner.Database", "Member[batchTransaction].Argument[0]"] - - ["@google-cloud/spanner/batch-transaction.TransactionIdentifier", "@google-cloud/spanner/batch-transaction.BatchTransaction", "Member[identifier].ReturnValue"] - - ["@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.SessionPool", "Member[getReadSession].Argument[0]"] - - ["@google-cloud/spanner/session-pool.GetReadSessionCallback", "@google-cloud/spanner/session-pool.SessionPoolInterface", "Member[getReadSession].Argument[0]"] - - ["@google-cloud/spanner/session-pool.GetWriteSessionCallback", "@google-cloud/spanner.SessionPool", "Member[getWriteSession].Argument[0]"] - - ["@google-cloud/spanner/session-pool.GetWriteSessionCallback", "@google-cloud/spanner/session-pool.SessionPoolInterface", "Member[getWriteSession].Argument[0]"] - - ["@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/session-pool.SessionPoolInterface", "@google-cloud/spanner/database.SessionPoolConstructor", Instance] - - ["@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.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.AsyncRunTransactionCallback", "@google-cloud/spanner/transaction-runner.AsyncTransactionRunnerStatic", "Argument[2]"] - - ["@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.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.RunTransactionCallback", "@google-cloud/spanner/transaction-runner.TransactionRunnerStatic", "Argument[2]"] - - ["@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.PartitionedDml", ""] - - ["@google-cloud/spanner/transaction.Dml", "@google-cloud/spanner.Transaction", ""] - - ["@google-cloud/spanner/transaction.Dml", "@google-cloud/spanner/transaction.DmlStatic", Instance] - - ["@google-cloud/spanner/transaction.DmlStatic", "@google-cloud/spanner/transaction", "Member[Dml]"] - - - addsTo: - pack: codeql/javascript-all - extensible: typeVariableModel - data: - - ["@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]"] diff --git a/javascript/ql/lib/semmle/javascript/frameworks/sqlite3/sqlite3.model.json b/javascript/ql/lib/semmle/javascript/frameworks/sqlite3/sqlite3.model.json new file mode 100644 index 000000000000..b3accb0c11e7 --- /dev/null +++ b/javascript/ql/lib/semmle/javascript/frameworks/sqlite3/sqlite3.model.json @@ -0,0 +1,38 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "typeModel" + }, + "data": [ + ["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.Database", "sqlite3", "Member[cached].Member[Database].ReturnValue"], + ["sqlite3.DatabaseStatic", "sqlite3.sqlite3", "Member[Database]"], + ["sqlite3.DatabaseStatic", "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.sqlite3", "Member[Statement]"], + ["sqlite3.StatementStatic", "sqlite3", "Member[Statement]"], + ["sqlite3.sqlite3", "sqlite3.sqlite3", "Member[verbose].ReturnValue"], + ["sqlite3.sqlite3", "sqlite3", "Member[verbose].ReturnValue"] + ] + }, + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "summaryModel" + }, + "data": [ + ["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"] + ] + } + ] +} diff --git a/javascript/ql/lib/semmle/javascript/frameworks/sqlite3/sqlite3.model.yml b/javascript/ql/lib/semmle/javascript/frameworks/sqlite3/sqlite3.model.yml deleted file mode 100644 index 643ef4efb259..000000000000 --- a/javascript/ql/lib/semmle/javascript/frameworks/sqlite3/sqlite3.model.yml +++ /dev/null @@ -1,28 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: typeModel - data: - - [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.Database, sqlite3, "Member[cached].Member[Database].ReturnValue"] - - [sqlite3.DatabaseStatic, sqlite3.sqlite3, "Member[Database]"] - - [sqlite3.DatabaseStatic, 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.sqlite3, "Member[Statement]"] - - [sqlite3.StatementStatic, sqlite3, "Member[Statement]"] - - [sqlite3.sqlite3, sqlite3.sqlite3, "Member[verbose].ReturnValue"] - - [sqlite3.sqlite3, sqlite3, "Member[verbose].ReturnValue"] - - - addsTo: - pack: codeql/javascript-all - extensible: summaryModel - data: - - [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] diff --git a/javascript/ql/lib/semmle/javascript/security/domains/IntegrityCheckingRequired/integrity_checking_required.model.json b/javascript/ql/lib/semmle/javascript/security/domains/IntegrityCheckingRequired/integrity_checking_required.model.json new file mode 100644 index 000000000000..3afbac37f816 --- /dev/null +++ b/javascript/ql/lib/semmle/javascript/security/domains/IntegrityCheckingRequired/integrity_checking_required.model.json @@ -0,0 +1,15 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "isCdnDomainWithCheckingRequired" + }, + "data": [ + ["code.jquery.com"], + ["cdnjs.cloudflare.com"], + ["cdnjs.com"] + ] + } + ] +} diff --git a/javascript/ql/lib/semmle/javascript/security/domains/IntegrityCheckingRequired/integrity_checking_required.model.yml b/javascript/ql/lib/semmle/javascript/security/domains/IntegrityCheckingRequired/integrity_checking_required.model.yml deleted file mode 100644 index f2d39bf86e6e..000000000000 --- a/javascript/ql/lib/semmle/javascript/security/domains/IntegrityCheckingRequired/integrity_checking_required.model.yml +++ /dev/null @@ -1,8 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: isCdnDomainWithCheckingRequired - data: - - ["code.jquery.com"] - - ["cdnjs.cloudflare.com"] - - ["cdnjs.com"] diff --git a/javascript/ql/lib/semmle/javascript/security/domains/compromised/compromised_domains.model.json b/javascript/ql/lib/semmle/javascript/security/domains/compromised/compromised_domains.model.json new file mode 100644 index 000000000000..f5085d2149e8 --- /dev/null +++ b/javascript/ql/lib/semmle/javascript/security/domains/compromised/compromised_domains.model.json @@ -0,0 +1,13 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "isUntrustedDomain" + }, + "data": [ + ["polyfill.io"] + ] + } + ] +} diff --git a/javascript/ql/lib/semmle/javascript/security/domains/compromised/compromised_domains.model.yml b/javascript/ql/lib/semmle/javascript/security/domains/compromised/compromised_domains.model.yml deleted file mode 100644 index cc148c16eb78..000000000000 --- a/javascript/ql/lib/semmle/javascript/security/domains/compromised/compromised_domains.model.yml +++ /dev/null @@ -1,6 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: isUntrustedDomain - data: - - ["polyfill.io"] diff --git a/javascript/ql/lib/semmle/javascript/security/domains/untrusted/untrusted_domains.model.json b/javascript/ql/lib/semmle/javascript/security/domains/untrusted/untrusted_domains.model.json new file mode 100644 index 000000000000..c3f3b4867aee --- /dev/null +++ b/javascript/ql/lib/semmle/javascript/security/domains/untrusted/untrusted_domains.model.json @@ -0,0 +1,20 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/javascript-all", + "extensible": "isUntrustedDomain" + }, + "data": [ + // new location of the polyfill.io CDN, which was used to serve malware. See: https://www.cside.dev/blog/the-polyfill-attack-explained + ["polyfill.com"], + ["polyfillcache.com"], + // domains operated by the same owner as polyfill.io, which was used to serve malware. See: https://www.cside.dev/blog/the-polyfill-attack-explained + ["bootcdn.net"], + ["bootcss.com"], + ["staticfile.net"], + ["staticfile.org"] + ] + } + ] +} diff --git a/javascript/ql/lib/semmle/javascript/security/domains/untrusted/untrusted_domains.model.yml b/javascript/ql/lib/semmle/javascript/security/domains/untrusted/untrusted_domains.model.yml deleted file mode 100644 index 4782dfbdceb3..000000000000 --- a/javascript/ql/lib/semmle/javascript/security/domains/untrusted/untrusted_domains.model.yml +++ /dev/null @@ -1,14 +0,0 @@ -extensions: - - addsTo: - pack: codeql/javascript-all - extensible: isUntrustedDomain - data: - # new location of the polyfill.io CDN, which was used to serve malware. See: https://www.cside.dev/blog/the-polyfill-attack-explained - - ["polyfill.com"] - - ["polyfillcache.com"] - - # domains operated by the same owner as polyfill.io, which was used to serve malware. See: https://www.cside.dev/blog/the-polyfill-attack-explained - - ["bootcdn.net"] - - ["bootcss.com"] - - ["staticfile.net"] - - ["staticfile.org"]