@@ -435,16 +435,15 @@ private module MsSql {
435
435
API:: Node pool ( ) { result = mssqlClass ( "ConnectionPool" ) }
436
436
437
437
/** A tagged template evaluated as a query. */
438
- private class QueryTemplateExpr extends DatabaseAccess , DataFlow:: ValueNode {
438
+ private class QueryTemplateExpr extends DatabaseAccess , DataFlow:: ValueNode , DataFlow :: SourceNode {
439
439
override TaggedTemplateExpr astNode ;
440
440
441
441
QueryTemplateExpr ( ) {
442
442
mssql ( ) .getMember ( "query" ) .getAUse ( ) = DataFlow:: valueNode ( astNode .getTag ( ) )
443
443
}
444
444
445
445
override DataFlow:: Node getAResult ( ) {
446
- PromiseFlow:: loadStep ( this .( DataFlow:: SourceNode ) .getALocalUse ( ) , result ,
447
- Promises:: valueProp ( ) )
446
+ PromiseFlow:: loadStep ( this .getALocalUse ( ) , result , Promises:: valueProp ( ) )
448
447
}
449
448
450
449
override DataFlow:: Node getAQueryArgument ( ) {
@@ -524,31 +523,6 @@ private module Sequelize {
524
523
}
525
524
}
526
525
527
- /** Gets an import of the `sequelize` module or one that re-exports it. */
528
- API:: Node sequelize ( ) { result = API:: moduleImport ( [ "sequelize" , "sequelize-typescript" ] ) }
529
-
530
- /** Gets an expression that creates an instance of the `Sequelize` class. */
531
- API:: Node instance ( ) {
532
- result = [ sequelize ( ) , sequelize ( ) .getMember ( "Sequelize" ) ] .getInstance ( )
533
- or
534
- result = API:: Node:: ofType ( [ "sequelize" , "sequelize-typescript" ] , [ "Sequelize" , "default" ] )
535
- }
536
-
537
- /** A call to `Sequelize.query`. */
538
- private class QueryCall extends DatabaseAccess , DataFlow:: MethodCallNode {
539
- QueryCall ( ) { this = instance ( ) .getMember ( "query" ) .getACall ( ) }
540
-
541
- override DataFlow:: Node getAResult ( ) {
542
- PromiseFlow:: loadStep ( this .getALocalUse ( ) , result , Promises:: valueProp ( ) )
543
- }
544
-
545
- override DataFlow:: Node getAQueryArgument ( ) {
546
- result = this .getArgument ( 0 )
547
- or
548
- result = this .getOptionArgument ( 0 , "query" )
549
- }
550
- }
551
-
552
526
class SequelizeSink extends ModelInput:: SinkModelCsv {
553
527
override predicate row ( string row ) {
554
528
row =
@@ -563,6 +537,12 @@ private module Sequelize {
563
537
]
564
538
}
565
539
}
540
+
541
+ class SequelizeSource extends ModelInput:: SourceModelCsv {
542
+ override predicate row ( string row ) {
543
+ row = "sequelize;Sequelize;Member[query].ReturnValue.Awaited;database-access-result"
544
+ }
545
+ }
566
546
}
567
547
568
548
private module SpannerCsv {
@@ -615,7 +595,8 @@ private module SpannerCsv {
615
595
616
596
override predicate row ( string row ) {
617
597
row =
618
- "@google-cloud/spanner;" + spannerClass ( ) + ";" + resultPath ( ) + ";database-access-result"
598
+ "@google-cloud/spanner;" + this .spannerClass ( ) + ";" + this .resultPath ( ) +
599
+ ";database-access-result"
619
600
}
620
601
}
621
602
}
0 commit comments