@next-secure-check/rules 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/analysis-facts.d.ts +62 -0
- package/dist/analysis-facts.d.ts.map +1 -0
- package/dist/analysis-facts.js +29 -0
- package/dist/analysis-facts.js.map +1 -0
- package/dist/ast-utils.d.ts +5 -0
- package/dist/ast-utils.d.ts.map +1 -1
- package/dist/ast-utils.js +24 -8
- package/dist/ast-utils.js.map +1 -1
- package/dist/command-flow.d.ts +17 -1
- package/dist/command-flow.d.ts.map +1 -1
- package/dist/command-flow.js +124 -34
- package/dist/command-flow.js.map +1 -1
- package/dist/route-ast.d.ts +1 -0
- package/dist/route-ast.d.ts.map +1 -1
- package/dist/route-ast.js +218 -43
- package/dist/route-ast.js.map +1 -1
- package/dist/security-rules.d.ts.map +1 -1
- package/dist/security-rules.js +26 -21
- package/dist/security-rules.js.map +1 -1
- package/dist/sql-ast.d.ts +3 -0
- package/dist/sql-ast.d.ts.map +1 -1
- package/dist/sql-ast.js +177 -5
- package/dist/sql-ast.js.map +1 -1
- package/dist/xss-ast.d.ts +4 -1
- package/dist/xss-ast.d.ts.map +1 -1
- package/dist/xss-ast.js +65 -17
- package/dist/xss-ast.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security-rules.js","sourceRoot":"","sources":["../src/security-rules.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"security-rules.js","sourceRoot":"","sources":["../src/security-rules.ts"],"names":[],"mappings":"AACA,OAAO,EACL,2BAA2B,EAC3B,kCAAkC,EAClC,2BAA2B,EAC3B,uBAAuB,EACvB,uBAAuB,EACvB,6BAA6B,EAC7B,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,MAAM,CAAC,MAAM,oBAAoB,GAAS;IACxC,EAAE,EAAE,4BAA4B;IAChC,KAAK,EAAE,4BAA4B;IACnC,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,SAAS;IACnB,UAAU,EAAE,MAAM;IAClB,IAAI,CAAC,OAAO;QACV,OAAO,OAAO,CAAC,KAAK;aACjB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;aAC3E,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACZ,aAAa,CAAC;YACZ,IAAI,EAAE,oBAAoB;YAC1B,IAAI;YACJ,WAAW,EAAE,oEAAoE;YACjF,cAAc,EAAE,0GAA0G;YAC1H,QAAQ,EAAE,IAAI,CAAC,IAAI;SACpB,CAAC,CACH,CAAC;IACN,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAS;IACvC,EAAE,EAAE,0BAA0B;IAC9B,KAAK,EAAE,oCAAoC;IAC3C,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,SAAS;IACnB,UAAU,EAAE,QAAQ;IACpB,IAAI,CAAC,OAAO;QACV,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,MAAM,uBAAuB,GAC3B,yIAAyI,CAAC;QAC5I,MAAM,kBAAkB,GAAG,qEAAqE,CAAC;QAEjG,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YACtC,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,IAAI,EAAE,uBAAuB,CAAC,EAAE,CAAC;gBAC/D,kBAAkB,CAAC,SAAS,GAAG,CAAC,CAAC;gBACjC,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC5C,SAAS;gBACX,CAAC;gBAED,MAAM,YAAY,GAAG,4BAA4B,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAClE,IAAI,YAAY,IAAI,uBAAuB,CAAC,YAAY,CAAC,EAAE,CAAC;oBAC1D,SAAS;gBACX,CAAC;gBAED,QAAQ,CAAC,IAAI,CACX,aAAa,CAAC;oBACZ,IAAI,EAAE,mBAAmB;oBACzB,IAAI;oBACJ,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,WAAW,EAAE,4DAA4D;oBACzE,cAAc,EAAE,oGAAoG;iBACrH,CAAC,CACH,CAAC;YACJ,CAAC;YAED,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,IAAI,EAAE,kBAAkB,CAAC,EAAE,CAAC;gBAC1D,QAAQ,CAAC,IAAI,CACX,aAAa,CAAC;oBACZ,IAAI,EAAE,mBAAmB;oBACzB,IAAI;oBACJ,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,WAAW,EAAE,qDAAqD;oBAClE,cAAc,EAAE,iEAAiE;oBACjF,UAAU,EAAE,MAAM;iBACnB,CAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAS;IACrC,EAAE,EAAE,yBAAyB;IAC7B,KAAK,EAAE,0BAA0B;IACjC,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,SAAS;IACnB,UAAU,EAAE,MAAM;IAClB,IAAI,CAAC,OAAO;QACV,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC;QACrH,MAAM,OAAO,GAAG,yDAAyD,CAAC;QAE1E,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACjC,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;gBAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;gBACtG,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC/C,QAAQ,CAAC,IAAI,CACX,aAAa,CAAC;wBACZ,IAAI,EAAE,iBAAiB;wBACvB,IAAI;wBACJ,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,MAAM,EAAE,KAAK,CAAC,MAAM;wBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;wBACxB,WAAW,EAAE,iEAAiE;wBAC9E,cAAc,EAAE,gFAAgF;qBACjG,CAAC,CACH,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAS;IAC9B,EAAE,EAAE,mBAAmB;IACvB,KAAK,EAAE,uBAAuB;IAC9B,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,WAAW;IACrB,UAAU,EAAE,MAAM;IAClB,IAAI,CAAC,OAAO;QACV,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACzC,WAAW,CAAC,IAAI,EAAE,aAAa,CAAC;aAC7B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;aACvE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACb,aAAa,CAAC;YACZ,IAAI,EAAE,UAAU;YAChB,IAAI;YACJ,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,WAAW,EAAE,mEAAmE;YAChF,cAAc,EAAE,oFAAoF;SACrG,CAAC,CACH,CACJ,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAS;IAC/C,EAAE,EAAE,gCAAgC;IACpC,KAAK,EAAE,wCAAwC;IAC/C,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,UAAU,EAAE,MAAM;IAClB,IAAI,CAAC,OAAO;QACV,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACzC,kCAAkC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACrD,aAAa,CAAC;YACZ,IAAI,EAAE;gBACJ,GAAG,2BAA2B;gBAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;aACzB;YACD,IAAI;YACJ,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,WAAW,EAAE,yEAAyE;YACtF,cAAc,EAAE,8EAA8E;SAC/F,CAAC,CACH,CACF,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAS;IAC5C,EAAE,EAAE,+BAA+B;IACnC,KAAK,EAAE,+BAA+B;IACtC,QAAQ,EAAE,QAAQ;IAClB,QAAQ,EAAE,QAAQ;IAClB,UAAU,EAAE,MAAM;IAClB,IAAI,CAAC,OAAO;QACV,MAAM,OAAO,GAAG,iFAAiF,CAAC;QAElG,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACzC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACvC,aAAa,CAAC;YACZ,IAAI,EAAE,wBAAwB;YAC9B,IAAI;YACJ,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,WAAW,EAAE,yDAAyD;YACtE,cAAc,EAAE,uFAAuF;SACxG,CAAC,CACH,CACF,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAS;IAC7C,EAAE,EAAE,+BAA+B;IACnC,KAAK,EAAE,6CAA6C;IACpD,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,MAAM;IAChB,UAAU,EAAE,QAAQ;IACpB,IAAI,CAAC,OAAO;QACV,OAAO,SAAS,CAAC,OAAO,CAAC;aACtB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC/C,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;aAC1D,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,kCAAkC,CAAC,CAAC;aACpF,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;aACjD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,4BAA4B,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;aAC5F,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACZ,aAAa,CAAC;YACZ,IAAI,EAAE,yBAAyB;YAC/B,IAAI;YACJ,WAAW,EAAE,qFAAqF;YAClG,cAAc,EAAE,mEAAmE;SACpF,CAAC,CACH,CAAC;IACN,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAS;IAChD,EAAE,EAAE,kCAAkC;IACtC,KAAK,EAAE,gDAAgD;IACvD,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,MAAM;IAChB,UAAU,EAAE,QAAQ;IACpB,IAAI,CAAC,OAAO;QACV,OAAO,SAAS,CAAC,OAAO,CAAC;aACtB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC/C,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;aAC1D,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,+CAA+C,CAAC,CAAC;aACjG,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;aACjD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,4BAA4B,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;aAC5F,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACZ,aAAa,CAAC;YACZ,IAAI,EAAE,4BAA4B;YAClC,IAAI;YACJ,WAAW,EACT,yHAAyH;YAC3H,cAAc,EAAE,4EAA4E;SAC7F,CAAC,CACH,CAAC;IACN,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAS;IAC9C,EAAE,EAAE,uCAAuC;IAC3C,KAAK,EAAE,qDAAqD;IAC5D,QAAQ,EAAE,QAAQ;IAClB,QAAQ,EAAE,MAAM;IAChB,UAAU,EAAE,QAAQ;IACpB,IAAI,CAAC,OAAO;QACV,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACzC,2BAA2B,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAC9C,aAAa,CAAC;YACZ,IAAI,EAAE,0BAA0B;YAChC,IAAI;YACJ,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,WAAW,EAAE,oFAAoF;YACjG,cAAc,EAAE,0FAA0F;SAC3G,CAAC,CACH,CACF,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAS;IACpC,EAAE,EAAE,0BAA0B;IAC9B,KAAK,EAAE,gDAAgD;IACvD,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,WAAW;IACrB,UAAU,EAAE,QAAQ;IACpB,IAAI,CAAC,OAAO;QACV,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACzC,uBAAuB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAC1C,aAAa,CAAC;YACZ,IAAI,EAAE,gBAAgB;YACtB,IAAI;YACJ,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,WAAW,EAAE,iFAAiF;YAC9F,cAAc,EAAE,8EAA8E;SAC/F,CAAC,CACH,CACF,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAS;IAC9C,EAAE,EAAE,kCAAkC;IACtC,KAAK,EAAE,oCAAoC;IAC3C,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,SAAS;IACnB,UAAU,EAAE,KAAK;IACjB,IAAI,CAAC,OAAO;QACV,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC3C,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,iBAAiB,GAAG,4BAA4B,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACpH,IAAI,iBAAiB,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3C,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClG,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO;YACL,aAAa,CAAC;gBACZ,IAAI,EAAE,0BAA0B;gBAChC,IAAI,EAAE,UAAU;gBAChB,WAAW,EAAE,iDAAiD,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;gBACrG,cAAc,EACZ,uHAAuH;aAC1H,CAAC;SACH,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAS;IACxC,EAAE,EAAE,4BAA4B;IAChC,KAAK,EAAE,+CAA+C;IACtD,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,SAAS;IACnB,UAAU,EAAE,QAAQ;IACpB,IAAI,CAAC,OAAO;QACV,MAAM,OAAO,GAAG,iHAAiH,CAAC;QAElI,OAAO,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACpC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACvC,aAAa,CAAC;YACZ,IAAI,EAAE,oBAAoB;YAC1B,IAAI;YACJ,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,WAAW,EACT,0LAA0L;YAC5L,cAAc,EACZ,8NAA8N;SACjO,CAAC,CACH,CACF,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAS;IACrC,EAAE,EAAE,2BAA2B;IAC/B,KAAK,EAAE,+BAA+B;IACtC,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,WAAW;IACrB,UAAU,EAAE,MAAM;IAClB,IAAI,CAAC,OAAO;QACV,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACzC,WAAW,CAAC,IAAI,EAAE,uBAAuB,CAAC;aACvC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;aACvE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACb,aAAa,CAAC;YACZ,IAAI,EAAE,iBAAiB;YACvB,IAAI;YACJ,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,WAAW,EAAE,6GAA6G;YAC1H,cAAc,EAAE,mHAAmH;SACpI,CAAC,CACH,CACJ,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAS;IACnC,EAAE,EAAE,wBAAwB;IAC5B,KAAK,EAAE,kCAAkC;IACzC,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,WAAW;IACrB,UAAU,EAAE,QAAQ;IACpB,IAAI,CAAC,OAAO;QACV,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACzC,2BAA2B,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAC9C,aAAa,CAAC;YACZ,IAAI,EAAE,eAAe;YACrB,IAAI;YACJ,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,WAAW,EAAE,uGAAuG;YACpH,cAAc,EAAE,4IAA4I;SAC7J,CAAC,CACH,CACF,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAS;IACjD,EAAE,EAAE,qCAAqC;IACzC,KAAK,EAAE,qDAAqD;IAC5D,QAAQ,EAAE,QAAQ;IAClB,QAAQ,EAAE,QAAQ;IAClB,UAAU,EAAE,QAAQ;IACpB,IAAI,CAAC,OAAO;QACV,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACzC,IAAI,2BAA2B,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC9C,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,OAAO,6BAA6B,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACvD,aAAa,CAAC;gBACZ,IAAI,EAAE,6BAA6B;gBACnC,IAAI;gBACJ,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,WAAW,EAAE,qFAAqF;gBAClG,cAAc,EACZ,sGAAsG;aACzG,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAS;IAC5C,EAAE,EAAE,gCAAgC;IACpC,KAAK,EAAE,gDAAgD;IACvD,QAAQ,EAAE,QAAQ;IAClB,QAAQ,EAAE,QAAQ;IAClB,UAAU,EAAE,QAAQ;IACpB,IAAI,CAAC,OAAO;QACV,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACzC,IAAI,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzC,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,OAAO,6BAA6B,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACvD,aAAa,CAAC;gBACZ,IAAI,EAAE,wBAAwB;gBAC9B,IAAI;gBACJ,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,WAAW,EAAE,gGAAgG;gBAC7G,cAAc,EACZ,sGAAsG;aACzG,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAS;IACjD,EAAE,EAAE,yCAAyC;IAC7C,KAAK,EAAE,2CAA2C;IAClD,QAAQ,EAAE,QAAQ;IAClB,QAAQ,EAAE,YAAY;IACtB,UAAU,EAAE,QAAQ;IACpB,IAAI,CAAC,OAAO;QACV,MAAM,cAAc,GAAG,sHAAsH,CAAC;QAE9I,OAAO,SAAS,CAAC,OAAO,CAAC;aACtB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC/C,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;aAC1D,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACnD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;aAClD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACZ,aAAa,CAAC;YACZ,IAAI,EAAE,6BAA6B;YACnC,IAAI;YACJ,WAAW,EAAE,+EAA+E;YAC5F,cAAc,EAAE,uGAAuG;SACxH,CAAC,CACH,CAAC;IACN,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAS;IAC7C,EAAE,EAAE,+BAA+B;IACnC,KAAK,EAAE,4CAA4C;IACnD,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,MAAM;IAChB,UAAU,EAAE,QAAQ;IACpB,IAAI,CAAC,OAAO;QACV,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACzC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjE,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,IAAI,4BAA4B,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;gBACxE,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,MAAM,aAAa,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;YACpD,MAAM,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC;YAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,OAAO;gBACL,aAAa,CAAC;oBACZ,IAAI,EAAE,yBAAyB;oBAC/B,IAAI;oBACJ,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,WAAW,EAAE,sEAAsE;oBACnF,cAAc,EAAE,sGAAsG;iBACvH,CAAC;aACH,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAS;IACnD,EAAE,EAAE,uCAAuC;IAC3C,KAAK,EAAE,+CAA+C;IACtD,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,QAAQ;IAClB,UAAU,EAAE,MAAM;IAClB,IAAI,CAAC,OAAO;QACV,MAAM,eAAe,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gCAAgC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAChH,MAAM,QAAQ,GAAG,EAAE,CAAC;QAEpB,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;YACnC,IAAI,4CAA4C,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACpE,QAAQ,CAAC,IAAI,CACX,aAAa,CAAC;oBACZ,IAAI,EAAE,+BAA+B;oBACrC,IAAI;oBACJ,WAAW,EAAE,8GAA8G;oBAC3H,cAAc,EAAE,kGAAkG;iBACnH,CAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAS;IAC3C,EAAE,EAAE,+BAA+B;IACnC,KAAK,EAAE,oCAAoC;IAC3C,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,QAAQ;IAClB,UAAU,EAAE,QAAQ;IACpB,IAAI,CAAC,OAAO;QACV,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC3C,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,eAAe,GAAG,WAAW,CAAC,OAAO,CAAC;aACzC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gCAAgC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAClE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gCAAgC,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAEhF,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;YACnC,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACvD,QAAQ,CAAC,IAAI,CACX,aAAa,CAAC;oBACZ,IAAI,EAAE,uBAAuB;oBAC7B,IAAI;oBACJ,WAAW,EAAE,wGAAwG;oBACrH,cAAc,EAAE,kFAAkF;iBACnG,CAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAW;IAC1C,oBAAoB;IACpB,mBAAmB;IACnB,iBAAiB;IACjB,UAAU;IACV,iBAAiB;IACjB,eAAe;IACf,2BAA2B;IAC3B,wBAAwB;IACxB,yBAAyB;IACzB,0BAA0B;IAC1B,gBAAgB;IAChB,0BAA0B;IAC1B,oBAAoB;IACpB,4BAA4B;IAC5B,6BAA6B;IAC7B,wBAAwB;IACxB,6BAA6B;IAC7B,yBAAyB;IACzB,+BAA+B;IAC/B,uBAAuB;CACxB,CAAC;AAEF,SAAS,gCAAgC,CAAC,UAAkB,EAAE,KAA8B;IAC1F,MAAM,cAAc,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACrD,IAAI,yBAAyB,CAAC,cAAc,CAAC,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,sCAAsC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACzG,IAAI,UAAU,KAAK,cAAc,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,mBAAmB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,yBAAyB,CAAC,QAAgB;IACjD,OAAO,CACL,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC;QAChC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC/B,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC;QACjC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC;QAChC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC;QAChC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC/B,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC;QAC5B,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC3B,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC;QAChC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC3B,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAC7B,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,UAAkB,EAAE,KAA8B;IAC7E,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IACnE,MAAM,cAAc,GAAG,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,CAAC;IAEjE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QACzB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,QAAQ,KAAK,GAAG,cAAc,gBAAgB,EAAE,CAAC;YAC3F,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC3D,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAgB;IACzC,OAAO,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAY,EAAE,MAAc;IACzD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3D,IAAI,KAAmC,CAAC;IACxC,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,GAAG,KAAK,CAAC;YAChB,SAAS;QACX,CAAC;QAED,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAO,GAAG,IAAI,CAAC;YACf,SAAS;QACX,CAAC;QAED,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;gBACnB,KAAK,GAAG,SAAS,CAAC;YACpB,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YAClD,KAAK,GAAG,IAAI,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,KAAK,KAAK,SAAS,CAAC;AAC7B,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,MAAc;IAChD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3D,OAAO,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAgB;IAC9C,OAAO,6HAA6H,CAAC,IAAI,CACvI,QAAQ,CACT,CAAC;AACJ,CAAC;AAED,SAAS,4BAA4B,CAAC,OAAe;IACnD,MAAM,eAAe,GAAG;QACtB;YACE,IAAI,EAAE,yBAAyB;YAC/B,QAAQ,EAAE,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC;SACnD;QACD;YACE,IAAI,EAAE,kBAAkB;YACxB,QAAQ,EAAE,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;SAC/E;QACD;YACE,IAAI,EAAE,wBAAwB;YAC9B,QAAQ,EAAE,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC;SAClD;QACD;YACE,IAAI,EAAE,iBAAiB;YACvB,QAAQ,EAAE,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;SAC3C;QACD;YACE,IAAI,EAAE,oBAAoB;YAC1B,QAAQ,EAAE,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC;SAC9C;KACF,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;KAC3F,CAAC;AACJ,CAAC;AAED,SAAS,4BAA4B,CAAC,IAAY;IAChD,MAAM,KAAK,GAAG,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAa;IAC5C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,MAAM,WAAW,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IAE7G,IAAI,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,oDAAoD,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,GAAG,EAAE,IAAI,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAgB;IAC3C,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACpD,OAAO,CACL,wHAAwH,CAAC,IAAI,CAAC,cAAc,CAAC;QAC7I,mHAAmH,CAAC,IAAI,CAAC,cAAc,CAAC,CACzI,CAAC;AACJ,CAAC;AAED,SAAS,4BAA4B,CACnC,iBAAiD,EACjD,QAAgB,EAChB,UAAiC;IAEjC,MAAM,SAAS,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAClD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,cAAc,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAExD,OAAO,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QAC/C,MAAM,SAAS,GAAG,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC;QAC3F,OAAO,CACL,SAAS;YACT,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,KAAK,cAAc;YAC3C,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,4BAA4B,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CACpF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAgB;IAC7C,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACpD,MAAM,aAAa,GAAG,+EAA+E,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC3H,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IAChE,CAAC;IAED,MAAM,eAAe,GAAG,qEAAqE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACnH,IAAI,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzB,OAAO,QAAQ,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IACtC,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAgB;IAC9C,OAAO,+BAA+B,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACvF,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAgB,EAAE,cAAsB;IACnE,OAAO,QAAQ;SACZ,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,KAAK,CAAC,GAAG,CAAC;SACV,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AACrF,CAAC;AAED,SAAS,4BAA4B,CAAC,OAAe,EAAE,SAAiB;IACtE,MAAM,iBAAiB,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAC9D,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAC3D,OAAO,SAAS,KAAK,MAAM,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,0BAA0B,CAAC,OAAe;IACjD,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;AACnD,CAAC;AAED,SAAS,2BAA2B,CAAC,OAAe;IAClD,OAAO,2LAA2L,CAAC,IAAI,CACrM,OAAO,CACR,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAe;IAC7C,OAAO,mGAAmG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC3H,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAa;IAC1C,OAAO;QACL,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAChB,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;KAC3B,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;AAC3B,CAAC"}
|
package/dist/sql-ast.d.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
import ts from "typescript";
|
|
2
|
+
import type { BoundedFlowCallbacks } from "./command-flow.js";
|
|
3
|
+
export declare function createRawSqlFlowCallbacks(): BoundedFlowCallbacks;
|
|
2
4
|
export declare function findRawSqlConcatNodes(sourceFile: ts.SourceFile): ts.Node[];
|
|
5
|
+
export declare function isInterpolatedSqlExpression(node: ts.Node | undefined): boolean;
|
|
3
6
|
//# sourceMappingURL=sql-ast.d.ts.map
|
package/dist/sql-ast.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-ast.d.ts","sourceRoot":"","sources":["../src/sql-ast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"sql-ast.d.ts","sourceRoot":"","sources":["../src/sql-ast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,KAAK,EAAE,oBAAoB,EAAsB,MAAM,mBAAmB,CAAC;AAgBlF,wBAAgB,yBAAyB,IAAI,oBAAoB,CAqFhE;AAED,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,EAAE,CAkB1E;AAoDD,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,SAAS,GAAG,OAAO,CAW9E"}
|
package/dist/sql-ast.js
CHANGED
|
@@ -1,18 +1,100 @@
|
|
|
1
1
|
import ts from "typescript";
|
|
2
|
-
|
|
2
|
+
import { COMMAND_ALIAS_LIMIT } from "./command-ast.js";
|
|
3
|
+
const SQL_QUERY_METHOD_NAMES = new Set(["query", "execute", "$queryRaw", "$executeRaw"]);
|
|
3
4
|
const SQL_RAW_TAG_NAMES = new Set(["$queryRaw", "$executeRaw"]);
|
|
4
5
|
const SQL_KEYWORD_PATTERN = /\b(SELECT|INSERT|UPDATE|DELETE)\b/i;
|
|
6
|
+
export function createRawSqlFlowCallbacks() {
|
|
7
|
+
const states = new WeakMap();
|
|
8
|
+
return {
|
|
9
|
+
onVariableDeclaration: (node, context) => {
|
|
10
|
+
if (!ts.isIdentifier(node.name)) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
const state = rawSqlScopeState(states, context);
|
|
14
|
+
if (!node.initializer) {
|
|
15
|
+
state.values.delete(node.name.text);
|
|
16
|
+
state.initialized.delete(node.name.text);
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
state.initialized.add(node.name.text);
|
|
20
|
+
const value = rawSqlValueForExpression(node.initializer, node.name.text, state, context);
|
|
21
|
+
if (value) {
|
|
22
|
+
state.values.set(node.name.text, value);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
state.values.delete(node.name.text);
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
onAssignment: (node, context) => {
|
|
29
|
+
const target = rawSqlTargetIdentifier(node.left);
|
|
30
|
+
if (!target) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
const state = rawSqlScopeState(states, context);
|
|
34
|
+
if (node.operatorToken.kind !== ts.SyntaxKind.EqualsToken || state.initialized.has(target)) {
|
|
35
|
+
state.values.delete(target);
|
|
36
|
+
state.initialized.add(target);
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
state.initialized.add(target);
|
|
40
|
+
const value = rawSqlValueForExpression(node.right, target, state, context);
|
|
41
|
+
if (value) {
|
|
42
|
+
state.values.set(target, value);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
state.values.delete(target);
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
onCall: (node, context) => {
|
|
49
|
+
const state = rawSqlScopeState(states, context);
|
|
50
|
+
if (isSqlQuerySinkCall(node)) {
|
|
51
|
+
const [firstArgument] = node.arguments;
|
|
52
|
+
if (firstArgument) {
|
|
53
|
+
const directExpression = isInterpolatedSqlExpression(firstArgument);
|
|
54
|
+
const normalized = unwrapRawSqlExpression(firstArgument);
|
|
55
|
+
const aliasedValue = ts.isIdentifier(normalized) ? state.values.get(normalized.text) : undefined;
|
|
56
|
+
if (directExpression || aliasedValue) {
|
|
57
|
+
context.recordSink(node, "raw-sql");
|
|
58
|
+
const evidencePath = directExpression
|
|
59
|
+
? context.findSourcePathInExpression(firstArgument)
|
|
60
|
+
: aliasedValue?.path;
|
|
61
|
+
if (evidencePath) {
|
|
62
|
+
context.recordEvidencePath(node, evidencePath);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
if (!isSqlQuerySinkCall(node)) {
|
|
68
|
+
invalidateRawSqlReferences(node, state);
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
onTaggedTemplate: (node, context) => {
|
|
72
|
+
if (!isRawSqlTaggedTemplate(node)) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const evidencePath = context.findSourcePathInExpression(node.template);
|
|
76
|
+
if (evidencePath) {
|
|
77
|
+
context.recordEvidencePath(node, evidencePath);
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
onInvalidation: (identifier, _reason, context) => {
|
|
81
|
+
const state = rawSqlScopeState(states, context);
|
|
82
|
+
state.values.delete(identifier);
|
|
83
|
+
state.initialized.add(identifier);
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
}
|
|
5
87
|
export function findRawSqlConcatNodes(sourceFile) {
|
|
6
88
|
const matches = [];
|
|
7
89
|
visitSqlNodes(sourceFile, (node) => {
|
|
8
90
|
if (ts.isCallExpression(node) && isSqlQuerySinkCall(node)) {
|
|
9
91
|
const [firstArgument] = node.arguments;
|
|
10
|
-
if (
|
|
92
|
+
if (isInterpolatedSqlExpression(firstArgument)) {
|
|
11
93
|
matches.push(node);
|
|
12
94
|
}
|
|
13
95
|
return;
|
|
14
96
|
}
|
|
15
|
-
if (ts.isTaggedTemplateExpression(node) && isRawSqlTaggedTemplate(node) &&
|
|
97
|
+
if (ts.isTaggedTemplateExpression(node) && isRawSqlTaggedTemplate(node) && isInterpolatedSqlExpression(node.template)) {
|
|
16
98
|
matches.push(node);
|
|
17
99
|
}
|
|
18
100
|
});
|
|
@@ -26,8 +108,98 @@ function isRawSqlTaggedTemplate(node) {
|
|
|
26
108
|
const tag = node.tag;
|
|
27
109
|
return ts.isPropertyAccessExpression(tag) && SQL_RAW_TAG_NAMES.has(tag.name.text);
|
|
28
110
|
}
|
|
29
|
-
function
|
|
30
|
-
|
|
111
|
+
function rawSqlScopeState(states, context) {
|
|
112
|
+
const existing = states.get(context.scopeRoot);
|
|
113
|
+
if (existing) {
|
|
114
|
+
return existing;
|
|
115
|
+
}
|
|
116
|
+
const created = { values: new Map(), initialized: new Set() };
|
|
117
|
+
states.set(context.scopeRoot, created);
|
|
118
|
+
return created;
|
|
119
|
+
}
|
|
120
|
+
function rawSqlValueForExpression(expression, targetName, state, context) {
|
|
121
|
+
if (isInterpolatedSqlExpression(expression)) {
|
|
122
|
+
return {
|
|
123
|
+
path: context.findSourcePathInExpression(expression),
|
|
124
|
+
aliasDepth: 0
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
const normalized = unwrapRawSqlExpression(expression);
|
|
128
|
+
if (!ts.isIdentifier(normalized)) {
|
|
129
|
+
return undefined;
|
|
130
|
+
}
|
|
131
|
+
const existing = state.values.get(normalized.text);
|
|
132
|
+
if (!existing || existing.aliasDepth >= COMMAND_ALIAS_LIMIT) {
|
|
133
|
+
return undefined;
|
|
134
|
+
}
|
|
135
|
+
return {
|
|
136
|
+
path: existing.path ? `${existing.path} -> ${targetName}` : undefined,
|
|
137
|
+
aliasDepth: existing.aliasDepth + 1
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
export function isInterpolatedSqlExpression(node) {
|
|
141
|
+
const normalized = node && unwrapRawSqlExpression(node);
|
|
142
|
+
if (!normalized || !SQL_KEYWORD_PATTERN.test(normalized.getText())) {
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
145
|
+
if (ts.isTemplateExpression(normalized)) {
|
|
146
|
+
return true;
|
|
147
|
+
}
|
|
148
|
+
return ts.isBinaryExpression(normalized) && hasStringConcatenation(normalized);
|
|
149
|
+
}
|
|
150
|
+
function hasStringConcatenation(node) {
|
|
151
|
+
if (node.operatorToken.kind === ts.SyntaxKind.PlusToken) {
|
|
152
|
+
return !isStaticStringExpression(node.left) || !isStaticStringExpression(node.right);
|
|
153
|
+
}
|
|
154
|
+
return ((ts.isBinaryExpression(node.left) && hasStringConcatenation(node.left)) ||
|
|
155
|
+
(ts.isBinaryExpression(node.right) && hasStringConcatenation(node.right)));
|
|
156
|
+
}
|
|
157
|
+
function isStaticStringExpression(node) {
|
|
158
|
+
const normalized = unwrapRawSqlExpression(node);
|
|
159
|
+
if (ts.isStringLiteralLike(normalized) ||
|
|
160
|
+
ts.isNumericLiteral(normalized) ||
|
|
161
|
+
ts.isBigIntLiteral(normalized) ||
|
|
162
|
+
normalized.kind === ts.SyntaxKind.TrueKeyword ||
|
|
163
|
+
normalized.kind === ts.SyntaxKind.FalseKeyword ||
|
|
164
|
+
normalized.kind === ts.SyntaxKind.NullKeyword) {
|
|
165
|
+
return true;
|
|
166
|
+
}
|
|
167
|
+
return ts.isBinaryExpression(normalized) &&
|
|
168
|
+
normalized.operatorToken.kind === ts.SyntaxKind.PlusToken &&
|
|
169
|
+
isStaticStringExpression(normalized.left) &&
|
|
170
|
+
isStaticStringExpression(normalized.right);
|
|
171
|
+
}
|
|
172
|
+
function rawSqlTargetIdentifier(node) {
|
|
173
|
+
if (ts.isIdentifier(node)) {
|
|
174
|
+
return node.text;
|
|
175
|
+
}
|
|
176
|
+
if (ts.isPropertyAccessExpression(node) || ts.isElementAccessExpression(node)) {
|
|
177
|
+
return rawSqlTargetIdentifier(node.expression);
|
|
178
|
+
}
|
|
179
|
+
return undefined;
|
|
180
|
+
}
|
|
181
|
+
function invalidateRawSqlReferences(node, state) {
|
|
182
|
+
visitSqlNodes(node, (child) => {
|
|
183
|
+
if (!ts.isIdentifier(child) || !state.values.has(child.text)) {
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
if (ts.isPropertyAccessExpression(child.parent) && child.parent.name === child) {
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
state.values.delete(child.text);
|
|
190
|
+
state.initialized.add(child.text);
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
function unwrapRawSqlExpression(expression) {
|
|
194
|
+
let current = expression;
|
|
195
|
+
while (ts.isParenthesizedExpression(current) ||
|
|
196
|
+
ts.isAwaitExpression(current) ||
|
|
197
|
+
ts.isNonNullExpression(current) ||
|
|
198
|
+
ts.isAsExpression(current) ||
|
|
199
|
+
ts.isTypeAssertionExpression(current)) {
|
|
200
|
+
current = current.expression;
|
|
201
|
+
}
|
|
202
|
+
return current;
|
|
31
203
|
}
|
|
32
204
|
function visitSqlNodes(node, callback) {
|
|
33
205
|
callback(node);
|
package/dist/sql-ast.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-ast.js","sourceRoot":"","sources":["../src/sql-ast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"sql-ast.js","sourceRoot":"","sources":["../src/sql-ast.ts"],"names":[],"mappings":"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"}
|
package/dist/xss-ast.d.ts
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import ts from "typescript";
|
|
2
|
+
import type { BoundedFlowFacts } from "./analysis-facts.js";
|
|
2
3
|
export type XssSeverity = "LOW" | "MEDIUM";
|
|
3
4
|
export type XssAnalysisFacts = {
|
|
4
5
|
sanitizerIdentifiers: ReadonlySet<string>;
|
|
6
|
+
untrustedSanitizerIdentifiers: ReadonlySet<string>;
|
|
5
7
|
safeHtmlIdentifiers: ReadonlySet<string>;
|
|
6
8
|
};
|
|
7
9
|
export type DangerouslySetInnerHtmlNode = {
|
|
8
10
|
node: ts.JsxAttribute;
|
|
9
11
|
severity: XssSeverity;
|
|
12
|
+
evidencePath?: string;
|
|
10
13
|
};
|
|
11
14
|
export declare function createXssAnalysisFacts(sourceFile: ts.SourceFile): XssAnalysisFacts;
|
|
12
|
-
export declare function findDangerouslySetInnerHtmlNodes(sourceFile: ts.SourceFile, sanitizerIdentifiers: ReadonlySet<string>, safeHtmlIdentifiers: ReadonlySet<string>): DangerouslySetInnerHtmlNode[];
|
|
15
|
+
export declare function findDangerouslySetInnerHtmlNodes(sourceFile: ts.SourceFile, sanitizerIdentifiers: ReadonlySet<string>, safeHtmlIdentifiers: ReadonlySet<string>, boundedFlow: BoundedFlowFacts, untrustedSanitizerIdentifiers: ReadonlySet<string>): DangerouslySetInnerHtmlNode[];
|
|
13
16
|
//# sourceMappingURL=xss-ast.d.ts.map
|
package/dist/xss-ast.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xss-ast.d.ts","sourceRoot":"","sources":["../src/xss-ast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"xss-ast.d.ts","sourceRoot":"","sources":["../src/xss-ast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAM5D,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,QAAQ,CAAC;AAE3C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1C,6BAA6B,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnD,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC;IACtB,QAAQ,EAAE,WAAW,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,GAAG,gBAAgB,CAQlF;AAED,wBAAgB,gCAAgC,CAC9C,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAAC,EACzC,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAAC,EACxC,WAAW,EAAE,gBAAgB,EAC7B,6BAA6B,EAAE,WAAW,CAAC,MAAM,CAAC,GACjD,2BAA2B,EAAE,CAsB/B"}
|
package/dist/xss-ast.js
CHANGED
|
@@ -1,26 +1,31 @@
|
|
|
1
1
|
import ts from "typescript";
|
|
2
2
|
const SANITIZER_MODULE_PATTERN = /^(?:dompurify|sanitize-html)$/i;
|
|
3
|
+
const SANITIZER_FUNCTION_PATTERN = /^(?:sanitizeHtml|sanitizeMarkdown)$/i;
|
|
4
|
+
const SANITIZER_METHOD_NAME = "sanitize";
|
|
3
5
|
export function createXssAnalysisFacts(sourceFile) {
|
|
4
|
-
const sanitizerIdentifiers = collectSanitizerIdentifiers(sourceFile);
|
|
6
|
+
const { sanitizerIdentifiers, untrustedSanitizerIdentifiers } = collectSanitizerIdentifiers(sourceFile);
|
|
5
7
|
return {
|
|
6
8
|
sanitizerIdentifiers,
|
|
7
|
-
|
|
9
|
+
untrustedSanitizerIdentifiers,
|
|
10
|
+
safeHtmlIdentifiers: collectSafeHtmlIdentifiers(sourceFile, sanitizerIdentifiers, untrustedSanitizerIdentifiers)
|
|
8
11
|
};
|
|
9
12
|
}
|
|
10
|
-
export function findDangerouslySetInnerHtmlNodes(sourceFile, sanitizerIdentifiers, safeHtmlIdentifiers) {
|
|
13
|
+
export function findDangerouslySetInnerHtmlNodes(sourceFile, sanitizerIdentifiers, safeHtmlIdentifiers, boundedFlow, untrustedSanitizerIdentifiers) {
|
|
11
14
|
const matches = [];
|
|
12
15
|
visitXssNodes(sourceFile, (node) => {
|
|
13
16
|
if (!ts.isJsxAttribute(node) || !ts.isIdentifier(node.name) || node.name.text !== "dangerouslySetInnerHTML") {
|
|
14
17
|
return;
|
|
15
18
|
}
|
|
16
|
-
const severity = dangerouslySetInnerHtmlSeverity(node.initializer, sanitizerIdentifiers, safeHtmlIdentifiers);
|
|
19
|
+
const severity = dangerouslySetInnerHtmlSeverity(node.initializer, sanitizerIdentifiers, safeHtmlIdentifiers, untrustedSanitizerIdentifiers);
|
|
17
20
|
if (severity) {
|
|
18
|
-
|
|
21
|
+
const valueExpression = dangerouslySetInnerHtmlValueExpression(node.initializer);
|
|
22
|
+
const evidencePath = valueExpression ? findBoundedSourcePath(valueExpression, boundedFlow) : undefined;
|
|
23
|
+
matches.push({ node, severity, ...(evidencePath ? { evidencePath } : {}) });
|
|
19
24
|
}
|
|
20
25
|
});
|
|
21
26
|
return matches;
|
|
22
27
|
}
|
|
23
|
-
function dangerouslySetInnerHtmlSeverity(initializer, sanitizerIdentifiers, safeHtmlIdentifiers) {
|
|
28
|
+
function dangerouslySetInnerHtmlSeverity(initializer, sanitizerIdentifiers, safeHtmlIdentifiers, untrustedSanitizerIdentifiers) {
|
|
24
29
|
if (!initializer || ts.isStringLiteral(initializer)) {
|
|
25
30
|
return undefined;
|
|
26
31
|
}
|
|
@@ -34,39 +39,50 @@ function dangerouslySetInnerHtmlSeverity(initializer, sanitizerIdentifiers, safe
|
|
|
34
39
|
const htmlExpression = expression.properties
|
|
35
40
|
.filter(ts.isPropertyAssignment)
|
|
36
41
|
.find((property) => propertyNameText(property.name) === "__html")?.initializer;
|
|
37
|
-
if (!htmlExpression ||
|
|
42
|
+
if (!htmlExpression ||
|
|
43
|
+
isStaticHtmlExpression(htmlExpression, safeHtmlIdentifiers) ||
|
|
44
|
+
isSanitizedHtmlExpression(htmlExpression, sanitizerIdentifiers, untrustedSanitizerIdentifiers)) {
|
|
38
45
|
return undefined;
|
|
39
46
|
}
|
|
40
47
|
return "MEDIUM";
|
|
41
48
|
}
|
|
42
49
|
function collectSanitizerIdentifiers(sourceFile) {
|
|
43
50
|
const sanitizerIdentifiers = new Set();
|
|
51
|
+
const untrustedSanitizerIdentifiers = new Set();
|
|
44
52
|
visitXssNodes(sourceFile, (node) => {
|
|
45
53
|
if (!ts.isImportDeclaration(node) || !ts.isStringLiteralLike(node.moduleSpecifier)) {
|
|
46
54
|
return;
|
|
47
55
|
}
|
|
48
56
|
const moduleName = node.moduleSpecifier.text;
|
|
57
|
+
const isKnownSanitizerModule = SANITIZER_MODULE_PATTERN.test(moduleName);
|
|
49
58
|
const importClause = node.importClause;
|
|
50
59
|
if (!importClause) {
|
|
51
60
|
return;
|
|
52
61
|
}
|
|
53
|
-
if (importClause.name &&
|
|
62
|
+
if (importClause.name && isKnownSanitizerModule) {
|
|
54
63
|
sanitizerIdentifiers.add(importClause.name.text);
|
|
55
64
|
}
|
|
65
|
+
else if (importClause.name && isSanitizerFunctionName(importClause.name.text)) {
|
|
66
|
+
untrustedSanitizerIdentifiers.add(importClause.name.text);
|
|
67
|
+
}
|
|
56
68
|
const namedBindings = importClause.namedBindings;
|
|
57
69
|
if (!namedBindings || !ts.isNamedImports(namedBindings)) {
|
|
58
70
|
return;
|
|
59
71
|
}
|
|
60
72
|
for (const importSpecifier of namedBindings.elements) {
|
|
73
|
+
const localName = importSpecifier.name.text;
|
|
61
74
|
const importedName = importSpecifier.propertyName?.text ?? importSpecifier.name.text;
|
|
62
|
-
if (isSanitizerFunctionName(importedName)) {
|
|
63
|
-
sanitizerIdentifiers.add(
|
|
75
|
+
if (isKnownSanitizerModule && isSanitizerFunctionName(importedName)) {
|
|
76
|
+
sanitizerIdentifiers.add(localName);
|
|
77
|
+
}
|
|
78
|
+
else if (!isKnownSanitizerModule && isSanitizerFunctionName(localName)) {
|
|
79
|
+
untrustedSanitizerIdentifiers.add(localName);
|
|
64
80
|
}
|
|
65
81
|
}
|
|
66
82
|
});
|
|
67
|
-
return sanitizerIdentifiers;
|
|
83
|
+
return { sanitizerIdentifiers, untrustedSanitizerIdentifiers };
|
|
68
84
|
}
|
|
69
|
-
function collectSafeHtmlIdentifiers(sourceFile, sanitizerIdentifiers) {
|
|
85
|
+
function collectSafeHtmlIdentifiers(sourceFile, sanitizerIdentifiers, untrustedSanitizerIdentifiers) {
|
|
70
86
|
const safeHtmlIdentifiers = new Set();
|
|
71
87
|
visitXssNodes(sourceFile, (node) => {
|
|
72
88
|
if (!ts.isVariableStatement(node) || (node.declarationList.flags & ts.NodeFlags.Const) === 0) {
|
|
@@ -76,7 +92,8 @@ function collectSafeHtmlIdentifiers(sourceFile, sanitizerIdentifiers) {
|
|
|
76
92
|
if (!ts.isIdentifier(declaration.name) || !declaration.initializer) {
|
|
77
93
|
continue;
|
|
78
94
|
}
|
|
79
|
-
if (isStaticHtmlExpression(declaration.initializer, safeHtmlIdentifiers) ||
|
|
95
|
+
if (isStaticHtmlExpression(declaration.initializer, safeHtmlIdentifiers) ||
|
|
96
|
+
isSanitizedHtmlExpression(declaration.initializer, sanitizerIdentifiers, untrustedSanitizerIdentifiers)) {
|
|
80
97
|
safeHtmlIdentifiers.add(declaration.name.text);
|
|
81
98
|
}
|
|
82
99
|
}
|
|
@@ -92,20 +109,51 @@ function propertyNameText(name) {
|
|
|
92
109
|
function isStaticHtmlExpression(expression, safeHtmlIdentifiers) {
|
|
93
110
|
return ts.isStringLiteralLike(expression) || ts.isNoSubstitutionTemplateLiteral(expression) || (ts.isIdentifier(expression) && safeHtmlIdentifiers.has(expression.text));
|
|
94
111
|
}
|
|
95
|
-
function isSanitizedHtmlExpression(expression, sanitizerIdentifiers) {
|
|
112
|
+
function isSanitizedHtmlExpression(expression, sanitizerIdentifiers, untrustedSanitizerIdentifiers) {
|
|
96
113
|
if (!ts.isCallExpression(expression)) {
|
|
97
114
|
return false;
|
|
98
115
|
}
|
|
99
116
|
if (ts.isIdentifier(expression.expression)) {
|
|
100
|
-
return sanitizerIdentifiers.has(expression.expression.text) ||
|
|
117
|
+
return (sanitizerIdentifiers.has(expression.expression.text) ||
|
|
118
|
+
(!untrustedSanitizerIdentifiers.has(expression.expression.text) && isSanitizerFunctionName(expression.expression.text)));
|
|
101
119
|
}
|
|
102
120
|
if (ts.isPropertyAccessExpression(expression.expression)) {
|
|
103
|
-
|
|
121
|
+
const receiver = expression.expression.expression;
|
|
122
|
+
return (expression.expression.name.text === SANITIZER_METHOD_NAME &&
|
|
123
|
+
ts.isIdentifier(receiver) &&
|
|
124
|
+
(receiver.text === "DOMPurify" || sanitizerIdentifiers.has(receiver.text)));
|
|
104
125
|
}
|
|
105
126
|
return false;
|
|
106
127
|
}
|
|
107
128
|
function isSanitizerFunctionName(name) {
|
|
108
|
-
return
|
|
129
|
+
return SANITIZER_FUNCTION_PATTERN.test(name);
|
|
130
|
+
}
|
|
131
|
+
function dangerouslySetInnerHtmlValueExpression(initializer) {
|
|
132
|
+
if (!initializer || !ts.isJsxExpression(initializer) || !initializer.expression) {
|
|
133
|
+
return undefined;
|
|
134
|
+
}
|
|
135
|
+
if (!ts.isObjectLiteralExpression(initializer.expression)) {
|
|
136
|
+
return initializer.expression;
|
|
137
|
+
}
|
|
138
|
+
return initializer.expression.properties
|
|
139
|
+
.filter(ts.isPropertyAssignment)
|
|
140
|
+
.find((property) => propertyNameText(property.name) === "__html")?.initializer;
|
|
141
|
+
}
|
|
142
|
+
function findBoundedSourcePath(expression, boundedFlow) {
|
|
143
|
+
const directSource = boundedFlow.sources.find((source) => source.node === expression);
|
|
144
|
+
if (directSource) {
|
|
145
|
+
return directSource.path;
|
|
146
|
+
}
|
|
147
|
+
if (ts.isFunctionLike(expression)) {
|
|
148
|
+
return undefined;
|
|
149
|
+
}
|
|
150
|
+
let evidencePath;
|
|
151
|
+
ts.forEachChild(expression, (child) => {
|
|
152
|
+
if (!evidencePath) {
|
|
153
|
+
evidencePath = findBoundedSourcePath(child, boundedFlow);
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
return evidencePath;
|
|
109
157
|
}
|
|
110
158
|
function visitXssNodes(node, callback) {
|
|
111
159
|
callback(node);
|
package/dist/xss-ast.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xss-ast.js","sourceRoot":"","sources":["../src/xss-ast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"xss-ast.js","sourceRoot":"","sources":["../src/xss-ast.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@next-secure-check/rules",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Security rules for next-secure-check",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"nextjs",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"typescript": "^5.9.0",
|
|
37
|
-
"@next-secure-check/core": "0.
|
|
37
|
+
"@next-secure-check/core": "0.5.0"
|
|
38
38
|
},
|
|
39
39
|
"scripts": {
|
|
40
40
|
"build": "tsc -p tsconfig.json",
|