@nifrajs/mcp-db 3.5.0 → 4.0.2

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/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,eAAe,EAAE,aAAa,EAAwC,MAAM,cAAc,CAAA;AAoEnG,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC,YAAY,OAAe;QACzB,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAA;QACpC,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAA;IAChC,CAAC;CACF;AAED,wFAAwF;AACxF,MAAM,eAAe,GAAG,0BAA0B,CAAA;AAElD,kGAAkG;AAClG,SAAS,cAAc,CAAC,OAA6B,EAAE,GAAG,WAA8B;IACtF,IAAI,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAC1B,KAAK,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;QACxD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,gBAAgB,CAAC,yBAAyB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;QACnF,CAAC;QACD,GAAG,IAAI,UAAU,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;IAChD,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,aAAa,GAAG,CAAC,GAAW,EAAU,EAAE,CAC5C,GAAG;IACD,gEAAgE;KAC/D,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC;KAChC,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC;KAChC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC;KACzB,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAA;AAEtC,qGAAqG;AACrG,oGAAoG;AACpG,MAAM,UAAU,GAAG,wBAAwB,CAAA;AAC3C,MAAM,SAAS,GAAG,4BAA4B,CAAA;AAY9C;;;;;;;;GAQG;AACH,SAAS,WAAW,CAAC,GAAW;IAC9B,MAAM,MAAM,GAAe,EAAE,CAAA;IAC7B,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,yGAAyG;IACzG,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,SAAkB,EAAQ,EAAE;QAC7D,IAAI,KAAK,GAAG,EAAE,CAAA;QACd,CAAC,EAAE,CAAA,CAAC,6BAA6B;QACjC,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;YACtB,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;gBACrB,IAAI,SAAS,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;oBACtC,KAAK,IAAI,KAAK,CAAA;oBACd,CAAC,IAAI,CAAC,CAAA;oBACN,SAAQ;gBACV,CAAC;gBACD,CAAC,EAAE,CAAA;gBACH,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;gBACjD,OAAM;YACR,CAAC;YACD,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,CAAA;YACf,CAAC,EAAE,CAAA;QACL,CAAC;QACD,6FAA6F;QAC7F,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IACnD,CAAC,CAAA;IACD,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAW,CAAA;QAC7B,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACrF,CAAC,EAAE,CAAA;QACL,CAAC;aAAM,IAAI,IAAI,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC9C,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;YAChC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAA;QACvC,CAAC;aAAM,IAAI,IAAI,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC9C,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;YACpC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAA;QACvC,CAAC;aAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACxB,2EAA2E;YAC3E,CAAC,EAAE,CAAA;YACH,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;gBACtB,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;oBACnB,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;wBACvB,CAAC,IAAI,CAAC,CAAA;wBACN,SAAQ;oBACV,CAAC;oBACD,CAAC,EAAE,CAAA;oBACH,MAAK;gBACP,CAAC;gBACD,CAAC,EAAE,CAAA;YACL,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACxB,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QACvB,CAAC;aAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACxB,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QACvB,CAAC;aAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACxB,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA,CAAC,8CAA8C;QACvE,CAAC;aAAM,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,CAAC,CAAA;YACf,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAW,CAAC;gBAAE,CAAC,EAAE,CAAA;YAC9D,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QACvE,CAAC;aAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;YACtC,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAW,CAAC;gBAAE,CAAC,EAAE,CAAA;QACtE,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;YACxD,CAAC,EAAE,CAAA;QACL,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,2EAA2E;AAC3E,MAAM,SAAS,GAAG,CAAC,KAA2B,EAAE,IAAY,EAAW,EAAE,CACvE,KAAK,EAAE,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,IAAI,CAAA;AAE5D;;;;GAIG;AACH,SAAS,aAAa,CAAC,GAAW;IAChC,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;IAC/B,kGAAkG;IAClG,wCAAwC;IACxC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAa,CAAA;QACtC,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACvF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAA;QACpC,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,MAAM,UAAU,GAAG,CACjB,KAAa,EACiD,EAAE;QAChE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;QAC3B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,SAAS,CAAA,CAAC,2CAA2C;QAC9G,mFAAmF;QACnF,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,KAAK,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,KAAK,MAAM,CAAA;QACxF,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAE,MAAM,CAAC,KAAK,GAAG,CAAC,CAAc,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAA;QAC7E,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAA;IAC/E,CAAC,CAAA;IACD,MAAM,WAAW,GAAG,CAAC,KAAa,EAAsB,EAAE;QACxD,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;QAClC,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,SAAS,CAAA;QAC5C,IAAI,QAAQ,CAAC,IAAI,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC/E,OAAO,QAAQ,CAAC,IAAI,CAAA;IACtB,CAAC,CAAA;IACD,iGAAiG;IACjG,kGAAkG;IAClG,kGAAkG;IAClG,2DAA2D;IAC3D,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;QAC7B,OAAO;QACP,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,WAAW;QACX,QAAQ;QACR,WAAW;KACZ,CAAC,CAAA;IACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;QACzC,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;QACzC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI;YAAE,SAAQ;QAC5B,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QAC/B,IAAI,IAAI,IAAI,IAAI,KAAK,SAAS;YAAE,SAAQ;QACxC,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;YACvB,IAAI,KAAK,KAAK,SAAS;gBAAE,MAAK;YAC9B,IAAI,KAAK,CAAC,KAAK,KAAK,GAAG,EAAE,CAAC;gBACxB,KAAK,EAAE,CAAA;gBACP,SAAQ;YACV,CAAC;YACD,IAAI,KAAK,CAAC,KAAK,KAAK,GAAG,EAAE,CAAC;gBACxB,IAAI,KAAK,KAAK,CAAC;oBAAE,MAAK;gBACtB,KAAK,EAAE,CAAA;gBACP,SAAQ;YACV,CAAC;YACD,IAAI,KAAK,KAAK,CAAC;gBAAE,SAAQ;YACzB,IAAI,KAAK,CAAC,IAAI,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;gBAAE,MAAK;YACtE,IAAI,KAAK,CAAC,KAAK,KAAK,GAAG;gBAAE,SAAQ;YACjC,+FAA+F;YAC/F,+FAA+F;YAC/F,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;YACrC,IAAI,UAAU,KAAK,SAAS;gBAAE,CAAC,GAAG,UAAU,GAAG,CAAC,CAAA;QAClD,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;AAC5B,CAAC;AAED,8FAA8F;AAC9F,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAAW,EAAE;IACjD,IAAI,KAAK,GAAqB,IAAI,CAAA;IAClC,IAAI,WAAW,GAAG,KAAK,CAAA;IACvB,IAAI,YAAY,GAAG,KAAK,CAAA;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;QACnB,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QACvB,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,IAAI,KAAK,IAAI;gBAAE,WAAW,GAAG,KAAK,CAAA;YACtC,SAAQ;QACV,CAAC;QACD,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACjC,YAAY,GAAG,KAAK,CAAA;gBACpB,CAAC,EAAE,CAAA;YACL,CAAC;YACD,SAAQ;QACV,CAAC;QACD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;gBACnB,IAAI,IAAI,KAAK,KAAK;oBAAE,CAAC,EAAE,CAAA;;oBAClB,KAAK,GAAG,IAAI,CAAA;YACnB,CAAC;YACD,SAAQ;QACV,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjC,KAAK,GAAG,IAAI,CAAA;YACZ,SAAQ;QACV,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjC,WAAW,GAAG,IAAI,CAAA;YAClB,CAAC,EAAE,CAAA;YACH,SAAQ;QACV,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjC,YAAY,GAAG,IAAI,CAAA;YACnB,CAAC,EAAE,CAAA;YACH,SAAQ;QACV,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAA;QACvC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,GAAW,EAAW,EAAE;IAC/C,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IACpD,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;AAC7D,CAAC,CAAA;AAED;;oCAEoC;AACpC,SAAS,aAAa,CAAC,GAAW;IAChC,IAAI,KAAK,GAAqB,IAAI,CAAA;IAClC,IAAI,WAAW,GAAG,KAAK,CAAA;IACvB,IAAI,gBAAgB,GAAG,CAAC,CAAC,CAAA;IACzB,IAAI,YAAY,GAAG,KAAK,CAAA;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;QACnB,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QACvB,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClB,WAAW,GAAG,KAAK,CAAA;gBACnB,gBAAgB,GAAG,CAAC,CAAC,CAAA;YACvB,CAAC;YACD,SAAQ;QACV,CAAC;QACD,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACjC,YAAY,GAAG,KAAK,CAAA;gBACpB,CAAC,EAAE,CAAA;YACL,CAAC;YACD,SAAQ;QACV,CAAC;QACD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;gBACnB,IAAI,IAAI,KAAK,KAAK;oBAAE,CAAC,EAAE,CAAA;;oBAClB,KAAK,GAAG,IAAI,CAAA;YACnB,CAAC;YACD,SAAQ;QACV,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjC,KAAK,GAAG,IAAI,CAAA;YACZ,SAAQ;QACV,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjC,WAAW,GAAG,IAAI,CAAA;YAClB,gBAAgB,GAAG,CAAC,CAAA;YACpB,CAAC,EAAE,CAAA;YACH,SAAQ;QACV,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjC,YAAY,GAAG,IAAI,CAAA;YACnB,CAAC,EAAE,CAAA;YACH,SAAQ;QACV,CAAC;QACD,IAAI,IAAI,KAAK,GAAG;YAAE,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IACjD,CAAC;IACD,IAAI,WAAW,IAAI,gBAAgB,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAA;IACtF,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;AACnB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa,EAAE,IAAY;IACpD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;QACnF,MAAM,IAAI,gBAAgB,CAAC,GAAG,IAAI,yCAAyC,CAAC,CAAA;IAC9E,CAAC;AACH,CAAC;AAED,MAAM,iBAAkB,SAAQ,KAAK;IACnC;QACE,KAAK,CAAC,+BAA+B,CAAC,CAAA;QACtC,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAA;IACjC,CAAC;CACF;AAQD;;;;;GAKG;AACH,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkC5B,CAAA;AAED,SAAS,iBAAiB;IACxB,OAAO,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,OAAO,GAAG,KAAK,WAAW,CAAA;AACnG,CAAC;AAED;oFACoF;AACpF,SAAS,kBAAkB,CAAC,EAAsB;IAChD,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAA;IAC5B,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,EAAE,IAAI,QAAQ,KAAK,UAAU;QAAE,OAAO,SAAS,CAAA;IAChG,OAAO,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAA;AACpE,CAAC;AAaD,MAAM,uBAAuB,GAAG,KAAK,CAAA;AAErC,SAAS,aAAa,CAAC,QAAgB;IACrC,IAAI,MAA0B,CAAA;IAC9B,IAAI,SAA6B,CAAA;IACjC,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,MAAM,OAAO,GAAG,IAAI,GAAG,EAAwB,CAAA;IAC/C,IAAI,IAAI,GAAqB,OAAO,CAAC,OAAO,EAAE,CAAA;IAC9C,IAAI,MAAM,GAAG,KAAK,CAAA;IAClB,IAAI,YAAuC,CAAA;IAC3C,IAAI,YAAsC,CAAA;IAE1C,MAAM,YAAY,GAAG,CAAC,SAA6B,MAAM,EAAQ,EAAE;QACjE,IAAI,MAAM,KAAK,SAAS;YAAE,OAAM;QAChC,IAAI,MAAM,KAAK,MAAM;YAAE,OAAM;QAC7B,MAAM,GAAG,SAAS,CAAA;QAClB,IAAI,SAAS,KAAK,SAAS;YAAE,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;QAC3D,SAAS,GAAG,SAAS,CAAA;IACvB,CAAC,CAAA;IAED,MAAM,aAAa,GAAG,CAAC,SAA6B,MAAM,EAAQ,EAAE;QAClE,IAAI,MAAM,KAAK,SAAS;YAAE,OAAM;QAChC,MAAM,CAAC,SAAS,EAAE,CAAA;QAClB,YAAY,CAAC,MAAM,CAAC,CAAA;IACtB,CAAC,CAAA;IAED,MAAM,aAAa,GAAG,CAAC,KAAY,EAAQ,EAAE;QAC3C,MAAM,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;QACrC,OAAO,CAAC,KAAK,EAAE,CAAA;QACf,KAAK,MAAM,MAAM,IAAI,OAAO;YAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACpD,CAAC,CAAA;IAED;qGACiG;IACjG,MAAM,OAAO,GAAG,CAAC,KAAY,EAAQ,EAAE;QACrC,MAAM,OAAO,GAAG,YAAY,CAAA;QAC5B,YAAY,GAAG,SAAS,CAAA;QACxB,aAAa,EAAE,CAAA;QACf,aAAa,CAAC,KAAK,CAAC,CAAA;QACpB,OAAO,EAAE,OAAO,EAAE,CAAA;IACpB,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,GAAW,EAAE;QAChC,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,MAAM,CAAA;QACvC,SAAS,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,CAAC,oBAAoB,CAAC,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAA;QAC9F,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,SAAS,CAAC,CAAA;QACrC,OAAO,CAAC,SAAS,GAAG,CAClB,KAME,EACF,EAAE;YACF,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,IAAI,CAAA;YAC1C,IAAI,OAAO,EAAE,KAAK,QAAQ;gBAAE,OAAM;YAClC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;gBAC/B,MAAM,OAAO,GAAG,YAAY,CAAA;gBAC5B,IAAI,OAAO,EAAE,EAAE,KAAK,EAAE;oBAAE,OAAM;gBAC9B,YAAY,GAAG,SAAS,CAAA;gBACxB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,CAAA;gBACvC,OAAM;YACR,CAAC;YACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAC9B,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAM;YAChC,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAClC,OAAO,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAA;gBAChC,OAAM;YACR,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YAClB,IAAI,EAAE,KAAK,IAAI;gBAAE,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;;gBACtC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,IAAI,wBAAwB,CAAC,CAAC,CAAA;QAClE,CAAC,CAAA;QACD,OAAO,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAGnE;QAAC,OAAkC,CAAC,KAAK,EAAE,EAAE,CAAA;QAC9C,MAAM,GAAG,OAAO,CAAA;QAChB,OAAO,OAAO,CAAA;IAChB,CAAC,CAAA;IAED,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,QAAgB,EAAsB,EAAE;QACrE,IAAI,MAAM;YAAE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAA;QACvE,MAAM,MAAM,GAAG,YAAY,EAAE,CAAA;QAC7B,MAAM,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACvC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAA;YAChC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAA;QAChD,CAAC;QACD,MAAM,EAAE,GAAG,EAAE,MAAM,CAAA;QACnB,OAAO,IAAI,OAAO,CAAY,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAChD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,iBAAiB,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;YAC3E,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE;gBACd,QAAQ;gBACR,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;oBAChB,YAAY,CAAC,KAAK,CAAC,CAAA;oBACnB,OAAO,CAAC,IAAI,CAAC,CAAA;gBACf,CAAC;gBACD,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;oBAChB,YAAY,CAAC,KAAK,CAAC,CAAA;oBACnB,MAAM,CAAC,KAAK,CAAC,CAAA;gBACf,CAAC;aACF,CAAC,CAAA;YACF,IAAI,CAAC;gBACH,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAA;YAC3C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;gBAClB,YAAY,CAAC,KAAK,CAAC,CAAA;gBACnB,MAAM,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YACnE,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,OAAO;QACL,GAAG,CAAC,GAAG,EAAE,QAAQ;YACf,2FAA2F;YAC3F,iCAAiC;YACjC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAA;YACvD,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;YACpC,OAAO,MAAM,CAAA;QACf,CAAC;QACD,KAAK;YACH,IAAI,YAAY,KAAK,SAAS;gBAAE,OAAO,YAAY,CAAA;YACnD,MAAM,GAAG,IAAI,CAAA;YACb,YAAY,GAAG,CAAC,KAAK,IAAI,EAAE;gBACzB,MAAM,MAAM,GAAG,MAAM,CAAA;gBACrB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACzB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;wBAClC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAA;wBACnB,IAAI,OAAO,GAAG,KAAK,CAAA;wBACnB,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,QAAQ,GAAG,KAAK,EAAQ,EAAE;4BACvD,IAAI,OAAO;gCAAE,OAAM;4BACnB,OAAO,GAAG,IAAI,CAAA;4BACd,YAAY,CAAC,KAAK,CAAC,CAAA;4BACnB,IAAI,YAAY,EAAE,EAAE,KAAK,EAAE;gCAAE,YAAY,GAAG,SAAS,CAAA;4BACrD,IAAI,KAAK,KAAK,SAAS;gCAAE,aAAa,CAAC,KAAK,CAAC,CAAA;4BAC7C,IAAI,QAAQ;gCAAE,YAAY,CAAC,MAAM,CAAC,CAAA;;gCAC7B,aAAa,CAAC,MAAM,CAAC,CAAA;4BAC1B,OAAO,EAAE,CAAA;wBACX,CAAC,CAAA;wBACD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;4BAC5B,MAAM,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAA;wBAC9C,CAAC,EAAE,uBAAuB,CAAC,CAAA;wBAC3B,YAAY,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAA;wBACzE,IAAI,CAAC;4BACH,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;wBAC3C,CAAC;wBAAC,MAAM,CAAC;4BACP,MAAM,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAA;wBAC9C,CAAC;oBACH,CAAC,CAAC,CAAA;gBACJ,CAAC;gBACD,MAAM,IAAI,CAAA;YACZ,CAAC,CAAC,EAAE,CAAA;YACJ,OAAO,YAAY,CAAA;QACrB,CAAC;KACF,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,EAAsB;IAC9C,OAAO;QACL,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ;YACrB,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ;gBAAE,MAAM,IAAI,iBAAiB,EAAE,CAAA;YACzD,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAA;YAClC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ;gBAAE,MAAM,IAAI,iBAAiB,EAAE,CAAA;YACxD,OAAO,IAAI,CAAA;QACb,CAAC;QACD,KAAK,CAAC,KAAK,KAAI,CAAC;KACjB,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,EAAsB;IAC9C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAA;IACvC,IAAI,QAAQ,KAAK,SAAS,IAAI,iBAAiB,EAAE;QAAE,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAA;IACjF,OAAO,gBAAgB,CAAC,EAAE,CAAC,CAAA;AAC7B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,EAAsB,EACtB,OAAkC;IAElC,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,gBAAgB,CACxB,iHAAiH,CAClH,CAAA;IACH,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,gBAAgB,CACxB,qBAAqB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,gCAAgC,CAC3E,CAAA;QACH,CAAC;IACH,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;IAE7E,IAAI,OAAO,CAAC,gBAAgB,KAAK,KAAK,EAAE,CAAC;QACvC,IAAI,CAAC;YACH,EAAE,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,gBAAgB,CACxB,sDAAsD,MAAM,CAAC,KAAK,CAAC,kGAAkG,CACtK,CAAA;QACH,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,OAAO,IAAI,GAAG,CAAA;IAChD,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,EAAE,cAAc,IAAI,GAAG,GAAG,IAAI,CAAA;IACrE,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,EAAE,cAAc,IAAI,KAAK,CAAA;IAChE,MAAM,oBAAoB,GAAG,OAAO,CAAC,QAAQ,EAAE,oBAAoB,IAAI,CAAC,CAAA;IACxE,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IACrC,iBAAiB,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAA;IACnD,iBAAiB,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAA;IACnD,iBAAiB,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,CAAA;IAC/D,IAAI,aAAa,GAAG,CAAC,CAAA;IACrB,IAAI,OAAiC,CAAA;IAErC,MAAM,UAAU,GAAG,aAAa,CAAC;QAC/B,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,uDAAuD;QACpE,OAAO,EAAE,GAAG,EAAE;YACZ,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBACxC,sJAAsJ;gBACtJ,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;qBACf,OAAO,CAAC,cAAc,CAAA,8BAA8B,KAAK,GAAG,CAAC;qBAC7D,GAAG,EAEJ,CAAA;gBACF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAA;YACvC,CAAC,CAAC,CAAA;YACF,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAA;QAC5E,CAAC;KACF,CAAC,CAAA;IAEF,MAAM,aAAa,GAAG,aAAa,CAAC;QAClC,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,sEAAsE;QACnF,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8BAA8B,EAAE,EAAE;YACtF,QAAQ,EAAE,CAAC,OAAO,CAAC;SACpB;QACD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YAChB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;YACtC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBACxC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAA;YACjF,CAAC;YACD,sFAAsF;YACtF,uCAAuC;YACvC,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,cAAc,CAAA,sBAAsB,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE,CAAA;YAC/E,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,iBAAiB,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAA;QACjF,CAAC;KACF,CAAC,CAAA;IAEF,MAAM,KAAK,GAAG,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;IAEzC,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACnC,6FAA6F;QAC7F,MAAM,YAAY,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAA;QACzC,OAAO,GAAG,YAAY,CAAA;QACtB,MAAM,QAAQ,GAAG,aAAa,CAAC;YAC7B,IAAI,EAAE,WAAW;YACjB,WAAW,EACT,4FAA4F;YAC9F,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4CAA4C,EAAE;iBACnF;gBACD,QAAQ,EAAE,CAAC,KAAK,CAAC;aAClB;YACD,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBACtB,IAAI,aAAa,IAAI,oBAAoB,EAAE,CAAC;oBAC1C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,6BAA6B,EAAE,CAAA;gBAC/D,CAAC;gBACD,aAAa,IAAI,CAAC,CAAA;gBAClB,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;oBACzC,IAAI,GAAG,KAAK,EAAE;wBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,CAAA;oBAC7D,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC5B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,oCAAoC,EAAE,CAAA;oBACtE,CAAC;oBACD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC1B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,qDAAqD,EAAE,CAAA;oBACvF,CAAC;oBAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,CAAA;oBAE5C,yFAAyF;oBACzF,2FAA2F;oBAC3F,iEAAiE;oBACjE,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;oBACrC,KAAK,MAAM,QAAQ,IAAI,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;wBACjD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;4BAC7B,OAAO;gCACL,OAAO,EAAE,IAAI;gCACb,IAAI,EAAE,iBAAiB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,wBAAwB;6BACxE,CAAA;wBACH,CAAC;oBACH,CAAC;oBAED,yFAAyF;oBACzF,+DAA+D;oBAC/D,MAAM,KAAK,GAAG,UAAU,CAAA;oBACxB,IAAI,QAAqC,CAAA;oBACzC,IAAI,CAAC;wBACH,QAAQ,GAAG,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,sBAAsB,KAAK,EAAE,EAAE,QAAQ,CAAC,CAEzE,CAAA;oBACJ,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,IAAI,KAAK,YAAY,iBAAiB;4BAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAA;wBACrF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,yBAAyB,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAA;oBAC1E,CAAC;oBACD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;wBAC3B,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;wBAC/D,sEAAsE;wBACtE,sEAAsE;wBACtE,oDAAoD;wBACpD,IACE,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;4BAC9C,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAC9C,CAAC;4BACD,SAAQ;wBACV,CAAC;wBACD,yFAAyF;wBACzF,2FAA2F;wBAC3F,MAAM,KAAK,GACT,uFAAuF,CAAC,IAAI,CAC1F,MAAM,CACP,CAAA;wBACH,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;4BACnB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;4BAC9C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gCAC7B,OAAO;oCACL,OAAO,EAAE,IAAI;oCACb,IAAI,EAAE,iBAAiB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,wBAAwB;iCACxE,CAAA;4BACH,CAAC;wBACH,CAAC;oBACH,CAAC;oBAED,IAAI,WAAsB,CAAA;oBAC1B,IAAI,CAAC;wBACH,oFAAoF;wBACpF,qFAAqF;wBACrF,2LAA2L;wBAC3L,WAAW,GAAG,MAAM,YAAY,CAAC,GAAG,CAClC,kBAAkB,KAAK,+BAA+B,OAAO,GAAG,CAAC,EAAE,EACnE,QAAQ,CACT,CAAA;oBACH,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,IAAI,KAAK,YAAY,iBAAiB;4BAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAA;wBACrF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,iBAAiB,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAA;oBAClE,CAAC;oBAED,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,GAAG,OAAO,CAAA;oBAC/C,IAAI,KAAK,GAAkB,WAAW,CAAC,MAAM,CAAA;oBAC7C,IAAI,UAAU,IAAI,OAAO,CAAC,QAAQ,EAAE,UAAU,KAAK,IAAI,EAAE,CAAC;wBACxD,IAAI,CAAC;4BACH,2LAA2L;4BAC3L,MAAM,SAAS,GAAG,CAAC,MAAM,YAAY,CAAC,GAAG,CACvC,4CAA4C,KAAK,sBAAsB,EACvE,QAAQ,CACT,CAAuC,CAAA;4BACxC,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,CAAA;4BACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,OAAO,EAAE,CAAC;gCACjF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,iCAAiC,EAAE,CAAA;4BACnE,CAAC;4BACD,KAAK,GAAG,KAAK,CAAA;wBACf,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACf,IAAI,KAAK,YAAY,iBAAiB;gCAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAA;4BACrF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,kCAAkC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAA;wBACnF,CAAC;oBACH,CAAC;yBAAM,IAAI,UAAU,EAAE,CAAC;wBACtB,KAAK,GAAG,IAAI,CAAA;oBACd,CAAC;oBACD,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;oBACjD,IAAI,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;oBACzC,IAAI,MAAM,GAA4B;wBACpC,IAAI,EAAE,OAAO;wBACb,GAAG,CAAC,UAAU,IAAI,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAChF,CAAA;oBACD,IAAI,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;oBACvC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;oBACjC,OAAO,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,UAAU,GAAG,cAAc,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;wBAC3E,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAA;wBAC1C,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;wBACrC,MAAM,GAAG;4BACP,IAAI,EAAE,OAAO;4BACb,GAAG,CAAC,UAAU,IAAI,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;yBAChF,CAAA;wBACD,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;oBACrC,CAAC;oBACD,IAAI,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,UAAU,GAAG,cAAc,EAAE,CAAC;wBAC3D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,qCAAqC,EAAE,CAAA;oBACvE,CAAC;oBACD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAA;gBACxD,CAAC;wBAAS,CAAC;oBACT,aAAa,IAAI,CAAC,CAAA;gBACpB,CAAC;YACH,CAAC;SACF,CAAC,CAAA;QACF,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACtB,CAAC;IAED,MAAM,MAAM,GAAG,eAAe,CAAC;QAC7B,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,UAAU;QAChC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,OAAO;QACnC,KAAK;KACN,CAAC,CAAA;IAEF,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAA;IACxC,IAAI,OAAO,KAAK,SAAS,IAAI,eAAe,KAAK,SAAS;QAAE,OAAO,MAAM,CAAA;IAEzE,+FAA+F;IAC/F,8FAA8F;IAC9F,kGAAkG;IAClG,MAAM,EAAE,SAAS,EAAE,GAAG,eAAe,CAAA;IAErC,OAAO;QACL,GAAG,MAAM;QACT,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE;QAC5B,KAAK,EAAE,CAAC,OAAgB,EAAE,EAAE,CAC1B,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE;YACpB,gBAAgB,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAC3C,OAAO,CAAC,MAAM,KAAK,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,IAAI,KAAK,WAAW;gBACrE,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;SAC7D,CAAC;QACJ,KAAK,CAAC,MAAM,CAAC,OAAO;YAClB,IAAI,OAAO,CAAC,MAAM,KAAK,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC5E,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,EAAE,EAAE,OAAO,OAAO,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;oBACxF,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;iBAC1D,CAAA;YACtB,CAAC;YACD,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC/B,CAAC;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,eAAe,EAAE,aAAa,EAAwC,MAAM,cAAc,CAAA;AACnG,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,UAAU,EACV,mBAAmB,EAEnB,qBAAqB,GACtB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,gBAAgB,EAEhB,iBAAiB,GAClB,MAAM,8BAA8B,CAAA;AAgErC,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC,YAAY,OAAe;QACzB,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAA;QACpC,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAA;IAChC,CAAC;CACF;AAED,wFAAwF;AACxF,MAAM,eAAe,GAAG,0BAA0B,CAAA;AAElD,kGAAkG;AAClG,SAAS,cAAc,CAAC,OAA6B,EAAE,GAAG,WAA8B;IACtF,IAAI,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAC1B,KAAK,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;QACxD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,gBAAgB,CAAC,yBAAyB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;QACnF,CAAC;QACD,GAAG,IAAI,UAAU,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;IAChD,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa,EAAE,IAAY;IACpD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;QACnF,MAAM,IAAI,gBAAgB,CAAC,GAAG,IAAI,yCAAyC,CAAC,CAAA;IAC9E,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,EAAsB,EACtB,OAAkC;IAElC,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,gBAAgB,CACxB,iHAAiH,CAClH,CAAA;IACH,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,gBAAgB,CACxB,qBAAqB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,gCAAgC,CAC3E,CAAA;QACH,CAAC;IACH,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;IAE7E,IAAI,OAAO,CAAC,gBAAgB,KAAK,KAAK,EAAE,CAAC;QACvC,IAAI,CAAC;YACH,EAAE,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,gBAAgB,CACxB,sDAAsD,MAAM,CAAC,KAAK,CAAC,kGAAkG,CACtK,CAAA;QACH,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,OAAO,IAAI,GAAG,CAAA;IAChD,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,EAAE,cAAc,IAAI,GAAG,GAAG,IAAI,CAAA;IACrE,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,EAAE,cAAc,IAAI,KAAK,CAAA;IAChE,MAAM,oBAAoB,GAAG,OAAO,CAAC,QAAQ,EAAE,oBAAoB,IAAI,CAAC,CAAA;IACxE,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IACrC,iBAAiB,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAA;IACnD,iBAAiB,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAA;IACnD,iBAAiB,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,CAAA;IAC/D,IAAI,aAAa,GAAG,CAAC,CAAA;IACrB,IAAI,OAAiC,CAAA;IAErC,MAAM,UAAU,GAAG,aAAa,CAAC;QAC/B,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,uDAAuD;QACpE,OAAO,EAAE,GAAG,EAAE;YACZ,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBACxC,sJAAsJ;gBACtJ,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;qBACf,OAAO,CAAC,cAAc,CAAA,8BAA8B,KAAK,GAAG,CAAC;qBAC7D,GAAG,EAEJ,CAAA;gBACF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAA;YACvC,CAAC,CAAC,CAAA;YACF,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAA;QAC5E,CAAC;KACF,CAAC,CAAA;IAEF,MAAM,aAAa,GAAG,aAAa,CAAC;QAClC,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,sEAAsE;QACnF,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8BAA8B,EAAE,EAAE;YACtF,QAAQ,EAAE,CAAC,OAAO,CAAC;SACpB;QACD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YAChB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;YACtC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBACxC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAA;YACjF,CAAC;YACD,sFAAsF;YACtF,uCAAuC;YACvC,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,cAAc,CAAA,sBAAsB,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE,CAAA;YAC/E,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,iBAAiB,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAA;QACjF,CAAC;KACF,CAAC,CAAA;IAEF,MAAM,KAAK,GAAG,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;IAEzC,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACnC,6FAA6F;QAC7F,MAAM,YAAY,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAA;QACzC,OAAO,GAAG,YAAY,CAAA;QACtB,MAAM,QAAQ,GAAG,aAAa,CAAC;YAC7B,IAAI,EAAE,WAAW;YACjB,WAAW,EACT,4FAA4F;YAC9F,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4CAA4C,EAAE;iBACnF;gBACD,QAAQ,EAAE,CAAC,KAAK,CAAC;aAClB;YACD,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBACtB,IAAI,aAAa,IAAI,oBAAoB,EAAE,CAAC;oBAC1C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,6BAA6B,EAAE,CAAA;gBAC/D,CAAC;gBACD,aAAa,IAAI,CAAC,CAAA;gBAClB,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CACpE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CACxB,CAAA;oBACD,IAAI,CAAC,IAAI,CAAC,EAAE;wBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAA;oBAEvD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,CAAA;oBAE5C,yFAAyF;oBACzF,+DAA+D;oBAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;oBACxB,IAAI,QAAqC,CAAA;oBACzC,IAAI,CAAC;wBACH,QAAQ,GAAG,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,sBAAsB,KAAK,EAAE,EAAE,QAAQ,CAAC,CAEzE,CAAA;oBACJ,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,IAAI,KAAK,YAAY,iBAAiB;4BAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAA;wBACrF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,yBAAyB,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAA;oBAC1E,CAAC;oBACD,MAAM,SAAS,GAAG,qBAAqB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;oBACxF,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;wBAC5B,OAAO;4BACL,OAAO,EAAE,IAAI;4BACb,IAAI,EAAE,iBAAiB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,wBAAwB;yBACzE,CAAA;oBACH,CAAC;oBAED,IAAI,WAAsB,CAAA;oBAC1B,IAAI,CAAC;wBACH,oFAAoF;wBACpF,qFAAqF;wBACrF,WAAW,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAA;oBACpF,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,IAAI,KAAK,YAAY,iBAAiB;4BAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAA;wBACrF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,iBAAiB,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAA;oBAClE,CAAC;oBAED,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,GAAG,OAAO,CAAA;oBAC/C,IAAI,KAAK,GAAkB,WAAW,CAAC,MAAM,CAAA;oBAC7C,IAAI,UAAU,IAAI,OAAO,CAAC,QAAQ,EAAE,UAAU,KAAK,IAAI,EAAE,CAAC;wBACxD,IAAI,CAAC;4BACH,MAAM,SAAS,GAAG,CAAC,MAAM,YAAY,CAAC,GAAG,CACvC,gBAAgB,CAAC,KAAK,CAAC,EACvB,QAAQ,CACT,CAAuC,CAAA;4BACxC,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,CAAA;4BACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,OAAO,EAAE,CAAC;gCACjF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,iCAAiC,EAAE,CAAA;4BACnE,CAAC;4BACD,KAAK,GAAG,KAAK,CAAA;wBACf,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACf,IAAI,KAAK,YAAY,iBAAiB;gCAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAA;4BACrF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,kCAAkC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAA;wBACnF,CAAC;oBACH,CAAC;yBAAM,IAAI,UAAU,EAAE,CAAC;wBACtB,KAAK,GAAG,IAAI,CAAA;oBACd,CAAC;oBACD,MAAM,GAAG,GAAG,UAAU,CACpB,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,CAAC,KAAK,EAA2B,EAAE,CAAC,CAAC;wBACnC,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;wBACjC,GAAG,CAAC,UAAU,IAAI,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAChF,CAAC,EACF,cAAc,CACf,CAAA;oBACD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;wBACtB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,qCAAqC,EAAE,CAAA;oBACvE,CAAC;oBACD,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,UAAU,EAAE,iBAAiB,EAAE,GAAG,CAAC,KAAK,EAAE,CAAA;gBAC/D,CAAC;wBAAS,CAAC;oBACT,aAAa,IAAI,CAAC,CAAA;gBACpB,CAAC;YACH,CAAC;SACF,CAAC,CAAA;QACF,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACtB,CAAC;IAED,MAAM,MAAM,GAAG,eAAe,CAAC;QAC7B,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,UAAU;QAChC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,OAAO;QACnC,KAAK;QACL,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtF,CAAC,CAAA;IAEF,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAA;IACxC,IAAI,OAAO,KAAK,SAAS,IAAI,eAAe,KAAK,SAAS;QAAE,OAAO,MAAM,CAAA;IAEzE,+FAA+F;IAC/F,8FAA8F;IAC9F,kGAAkG;IAClG,MAAM,EAAE,SAAS,EAAE,GAAG,eAAe,CAAA;IAErC,OAAO;QACL,GAAG,MAAM;QACT,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE;QAC5B,KAAK,EAAE,CAAC,OAAgB,EAAE,EAAE,CAC1B,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE;YACpB,gBAAgB,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAC3C,OAAO,CAAC,MAAM,KAAK,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,IAAI,KAAK,WAAW;gBACrE,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;SAC7D,CAAC;QACJ,KAAK,CAAC,MAAM,CAAC,OAAO;YAClB,IAAI,OAAO,CAAC,MAAM,KAAK,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC5E,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,EAAE,EAAE,OAAO,OAAO,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;oBACxF,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;iBAC1D,CAAA;YACtB,CAAC;YACD,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC/B,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * The server-enforced layers of `@nifrajs/mcp-db/postgres`: the read-only transaction with its
3
+ * timeouts, the extended-protocol statement, the cursor, and the plan-level table scope. Nothing here
4
+ * parses the caller's SQL - the refusals in this file come from the server, and the only text lexed
5
+ * is the expressions of the server's own verbose plan.
6
+ *
7
+ * Bun 1.4.2 sends `sql.unsafe(text)` and `sql.unsafe(text, [])` over the SIMPLE protocol, which runs
8
+ * several `;`-separated statements. Only a tagged-template call (or `unsafe` with a non-empty value
9
+ * list) uses the EXTENDED protocol, where the server refuses a second statement with "cannot insert
10
+ * multiple commands into a prepared statement". So every statement carrying caller text goes through
11
+ * {@link extended}; `unsafe` is used only for fixed text this file writes.
12
+ */
13
+ import { type DbRefusal } from "./shared.js";
14
+ /** A pending query: awaitable for object rows, or `.values()` for array rows (checked by readers). */
15
+ export interface PgQuery extends PromiseLike<readonly unknown[]> {
16
+ values(): PromiseLike<readonly unknown[]>;
17
+ }
18
+ /** Rows as records: a driver row that is not an object is dropped, never cast. */
19
+ export declare function records(rows: readonly unknown[]): Record<string, unknown>[];
20
+ /** One connection reserved from the pool (`Bun.SQL`'s `ReservedSQL`, structurally). */
21
+ export interface PgConnection {
22
+ (strings: TemplateStringsArray, ...values: unknown[]): PgQuery;
23
+ unsafe(text: string): PgQuery;
24
+ release(): void;
25
+ }
26
+ /** A Postgres client (`Bun.SQL`, structurally): the engine reserves one connection per call. */
27
+ export interface PostgresClient {
28
+ reserve(): Promise<PgConnection>;
29
+ close(options?: {
30
+ readonly timeout?: number;
31
+ }): Promise<void>;
32
+ }
33
+ /** Run caller text as ONE extended-protocol statement with no parameters. */
34
+ export declare function extended(connection: PgConnection, text: string): PgQuery;
35
+ /** Map a driver error to a refusal by its SQLSTATE; only a genuine query error is a failure. */
36
+ export declare function pgFailure(error: unknown, context?: string): DbRefusal;
37
+ /**
38
+ * Run `work` inside `BEGIN READ ONLY` on one reserved connection, with the statement, lock and
39
+ * idle-in-transaction timeouts set for this transaction only. Always rolls back, so nothing a call
40
+ * does (a `set_config`, a session setting) outlives it.
41
+ */
42
+ export declare function inReadOnlyTransaction<T>(client: PostgresClient, timeoutMs: number, work: (connection: PgConnection) => Promise<T | DbRefusal>): Promise<T | DbRefusal>;
43
+ /** A relation (or a function scanned as one) the plan reads, as the plan names it. */
44
+ export interface PlanRelation {
45
+ readonly schema: string;
46
+ readonly name: string;
47
+ }
48
+ /** A column of a scanned relation that a plan expression names; `*` is a whole-row reference. */
49
+ export interface PlanColumn {
50
+ readonly relation: PlanRelation;
51
+ readonly column: string;
52
+ }
53
+ /** What an `EXPLAIN (VERBOSE, FORMAT JSON)` plan reads, InitPlans and SubPlans included. */
54
+ export interface PlanReads {
55
+ readonly relations: readonly PlanRelation[];
56
+ /** Functions in FROM (Function Scan nodes): a system view such as `pg_stat_activity` plans as one. */
57
+ readonly functions: readonly PlanRelation[];
58
+ /**
59
+ * Every relation column an expression of the plan uses: output, filter, join, sort or index
60
+ * condition. A verbose plan qualifies each one with its scan's unique alias, so an alias or an
61
+ * expression in the query still names the column it reads.
62
+ */
63
+ readonly columns: readonly PlanColumn[];
64
+ /**
65
+ * Outputs left out of `columns` because they may be a physical target list: a node under an
66
+ * aggregate, join or result emitting plain columns of one relation. The planner emits every column
67
+ * there whether or not the parent uses it, and the parent's own expressions name what it does use.
68
+ * When the list is not the relation's full column list, it is exactly what was asked for and counts.
69
+ */
70
+ readonly outputs: readonly PlanOutput[];
71
+ }
72
+ /** Plain columns of one relation that a node outputs, as listed. */
73
+ export interface PlanOutput {
74
+ readonly relation: PlanRelation;
75
+ readonly columns: readonly string[];
76
+ }
77
+ /** Every relation and every FROM-clause function a verbose JSON plan scans, and the columns it uses. */
78
+ export declare function planReads(plan: unknown): PlanReads;
79
+ /** The JSON document an `EXPLAIN (FORMAT JSON)` row carries, whatever the driver parsed it into. */
80
+ export declare function planDocument(rows: readonly unknown[]): unknown;
81
+ /** Refuse when anything the plan reads (or a table it inherits from) is out of scope. */
82
+ export type ScopeCheck = (connection: PgConnection, reads: PlanReads) => Promise<DbRefusal | undefined>;
83
+ /** Options for {@link fetchThroughCursor}. */
84
+ export interface CursorOptions {
85
+ readonly maxRows: number;
86
+ readonly scope: ScopeCheck;
87
+ }
88
+ /**
89
+ * Declare the caller's query as a NO SCROLL cursor (the server accepts only SELECT/VALUES there and
90
+ * refuses a data-modifying WITH), check the plan's relations, then FETCH at most `maxRows + 1` rows.
91
+ *
92
+ * The query is wrapped as a subquery so each row also carries the result's column names: Bun returns
93
+ * array rows without names, and object rows lose a duplicated name. The wrapper's first column is a
94
+ * JSON array of the names, read from the first row.
95
+ */
96
+ export declare function fetchThroughCursor(connection: PgConnection, sql: string, options: CursorOptions): Promise<{
97
+ readonly columns: string[];
98
+ readonly rows: unknown[][];
99
+ } | DbRefusal>;
100
+ /** Options for {@link explainThroughServer}. */
101
+ export interface ExplainOptions {
102
+ readonly analyze: boolean;
103
+ readonly scope: ScopeCheck;
104
+ }
105
+ /**
106
+ * Plan the caller's query. The cursor declaration runs first purely as the statement gate (then is
107
+ * closed), the VERBOSE plan feeds the scope check, and the returned plan is plain `FORMAT JSON` -
108
+ * with `analyze`, executed inside the same read-only transaction and timeout.
109
+ */
110
+ export declare function explainThroughServer(connection: PgConnection, sql: string, options: ExplainOptions): Promise<{
111
+ readonly plan: unknown;
112
+ } | DbRefusal>;
113
+ //# sourceMappingURL=pg-exec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pg-exec.d.ts","sourceRoot":"","sources":["../../src/internal/pg-exec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,286 @@
1
+ /**
2
+ * The server-enforced layers of `@nifrajs/mcp-db/postgres`: the read-only transaction with its
3
+ * timeouts, the extended-protocol statement, the cursor, and the plan-level table scope. Nothing here
4
+ * parses the caller's SQL - the refusals in this file come from the server, and the only text lexed
5
+ * is the expressions of the server's own verbose plan.
6
+ *
7
+ * Bun 1.4.2 sends `sql.unsafe(text)` and `sql.unsafe(text, [])` over the SIMPLE protocol, which runs
8
+ * several `;`-separated statements. Only a tagged-template call (or `unsafe` with a non-empty value
9
+ * list) uses the EXTENDED protocol, where the server refuses a second statement with "cannot insert
10
+ * multiple commands into a prepared statement". So every statement carrying caller text goes through
11
+ * {@link extended}; `unsafe` is used only for fixed text this file writes.
12
+ */
13
+ import { lexPostgres } from "./pg-lexer.js";
14
+ import { dbRefusal } from "./shared.js";
15
+ /** Rows as records: a driver row that is not an object is dropped, never cast. */
16
+ export function records(rows) {
17
+ return rows.filter((row) => typeof row === "object" && row !== null && !Array.isArray(row));
18
+ }
19
+ /** Run caller text as ONE extended-protocol statement with no parameters. */
20
+ export function extended(connection, text) {
21
+ const strings = Object.assign([text], { raw: [text] });
22
+ return connection(strings);
23
+ }
24
+ const WRITE_KEYWORD = /at or near "(insert|update|delete|merge|call|do|copy|create|drop|alter|truncate|grant|revoke|lock|vacuum|analyze|cluster|reindex|refresh|comment|security|import|listen|notify|load|discard|reset|set|show|begin|commit|rollback|savepoint|release|prepare|execute|deallocate|declare|fetch|move|close|checkpoint|explain)"/i;
25
+ /** Map a driver error to a refusal by its SQLSTATE; only a genuine query error is a failure. */
26
+ export function pgFailure(error, context = "query failed") {
27
+ // Bun.SQL puts the SQLSTATE on `errno`.
28
+ const state = typeof error === "object" && error !== null && "errno" in error ? error.errno : undefined;
29
+ const message = `${context}: ${error instanceof Error ? error.message : String(error)}`;
30
+ if (typeof state !== "string" || !/^[0-9A-Z]{5}$/.test(state)) {
31
+ return dbRefusal("NIFRA_DB_DRIVER", message);
32
+ }
33
+ const text = error instanceof Error ? error.message : "";
34
+ if (state === "25006" || state === "25001")
35
+ return dbRefusal("NIFRA_DB_WRITE_REFUSED", message);
36
+ if (state === "0A000" && /data-modifying/i.test(text)) {
37
+ return dbRefusal("NIFRA_DB_WRITE_REFUSED", message);
38
+ }
39
+ if (state === "42601" &&
40
+ (/multiple commands/i.test(text) ||
41
+ /INTO is not allowed/i.test(text) ||
42
+ WRITE_KEYWORD.test(text))) {
43
+ return dbRefusal("NIFRA_DB_WRITE_REFUSED", message);
44
+ }
45
+ if (state === "57014" || state === "55P03" || state === "25P03") {
46
+ return dbRefusal("NIFRA_DB_TIMEOUT", message);
47
+ }
48
+ if (state === "42501") {
49
+ return dbRefusal(/for (table|view|relation|schema|sequence|materialized view|foreign table)\b/i.test(text)
50
+ ? "NIFRA_DB_TABLE_EXCLUDED"
51
+ : "NIFRA_DB_FUNCTION_REFUSED", message);
52
+ }
53
+ if (/^(08|28|3D|53|57P|XX)/.test(state))
54
+ return dbRefusal("NIFRA_DB_DRIVER", message);
55
+ return dbRefusal("NIFRA_DB_QUERY_FAILED", message);
56
+ }
57
+ /** Validated milliseconds for a `SET LOCAL` (an integer, so it can be written into the text). */
58
+ function millis(timeoutMs) {
59
+ if (!Number.isSafeInteger(timeoutMs) || timeoutMs < 1) {
60
+ throw new RangeError("timeoutMs must be a positive integer");
61
+ }
62
+ return timeoutMs;
63
+ }
64
+ /**
65
+ * Run `work` inside `BEGIN READ ONLY` on one reserved connection, with the statement, lock and
66
+ * idle-in-transaction timeouts set for this transaction only. Always rolls back, so nothing a call
67
+ * does (a `set_config`, a session setting) outlives it.
68
+ */
69
+ export async function inReadOnlyTransaction(client, timeoutMs, work) {
70
+ const ms = millis(timeoutMs);
71
+ let connection;
72
+ try {
73
+ connection = await client.reserve();
74
+ }
75
+ catch (error) {
76
+ return pgFailure(error, "could not connect");
77
+ }
78
+ try {
79
+ // nifra-expect sql-dynamic: fixed statements; the one interpolation is a validated integer of milliseconds
80
+ await connection.unsafe(`BEGIN READ ONLY; SET LOCAL statement_timeout = ${ms}; SET LOCAL lock_timeout = ${ms}; SET LOCAL idle_in_transaction_session_timeout = ${ms}`);
81
+ return await work(connection);
82
+ }
83
+ catch (error) {
84
+ return pgFailure(error);
85
+ }
86
+ finally {
87
+ try {
88
+ await connection.unsafe("ROLLBACK");
89
+ }
90
+ catch {
91
+ // A connection the server already closed has nothing to roll back.
92
+ }
93
+ connection.release();
94
+ }
95
+ }
96
+ // Nodes that pass their child's rows up unchanged: whether a child's output is used is decided above.
97
+ const PASS_THROUGH_NODES = new Set([
98
+ "Limit",
99
+ "Sort",
100
+ "Incremental Sort",
101
+ "Material",
102
+ "Memoize",
103
+ "Hash",
104
+ "Gather",
105
+ "Gather Merge",
106
+ "Unique",
107
+ "LockRows",
108
+ ]);
109
+ // Nodes whose own expressions a verbose plan prints in terms of the base columns they use.
110
+ const PROJECTING_NODES = new Set([
111
+ "Aggregate",
112
+ "Group",
113
+ "WindowAgg",
114
+ "Nested Loop",
115
+ "Hash Join",
116
+ "Merge Join",
117
+ "Result",
118
+ "ProjectSet",
119
+ ]);
120
+ // Fields that name a node or a relation rather than hold an expression.
121
+ const PLAN_NAME_FIELDS = new Set([
122
+ "Node Type",
123
+ "Relation Name",
124
+ "Schema",
125
+ "Alias",
126
+ "Index Name",
127
+ "CTE Name",
128
+ "Function Name",
129
+ "Subplan Name",
130
+ "Parent Relationship",
131
+ ]);
132
+ /** Every relation and every FROM-clause function a verbose JSON plan scans, and the columns it uses. */
133
+ export function planReads(plan) {
134
+ const relations = new Map();
135
+ const functions = new Map();
136
+ const aliases = new Map();
137
+ const expressions = [];
138
+ // Outputs under a projecting parent, resolved once every alias is known.
139
+ const underProjection = [];
140
+ const visit = (node, depth, projected) => {
141
+ if (depth > 256 || typeof node !== "object" || node === null)
142
+ return;
143
+ if (Array.isArray(node)) {
144
+ for (const item of node)
145
+ visit(item, depth + 1, projected);
146
+ return;
147
+ }
148
+ const field = (key) => Reflect.get(node, key);
149
+ const declared = field("Schema");
150
+ const schema = typeof declared === "string" ? declared : "";
151
+ for (const [key, found] of [
152
+ ["Relation Name", relations],
153
+ ["Function Name", functions],
154
+ ]) {
155
+ const name = field(key);
156
+ if (typeof name === "string")
157
+ found.set(`${schema}.${name}`, { schema, name });
158
+ }
159
+ const relation = field("Relation Name");
160
+ const alias = field("Alias");
161
+ if (typeof relation === "string") {
162
+ aliases.set(typeof alias === "string" ? alias : relation, { schema, name: relation });
163
+ }
164
+ // A SubPlan's or InitPlan's result reaches its parent as `(SubPlan n)`, not as base columns.
165
+ const role = field("Parent Relationship");
166
+ const own = projected && role !== "SubPlan" && role !== "InitPlan";
167
+ for (const [key, value] of Object.entries(node)) {
168
+ if (PLAN_NAME_FIELDS.has(key))
169
+ continue;
170
+ if (typeof value === "string")
171
+ expressions.push(value);
172
+ else if (Array.isArray(value)) {
173
+ const texts = value.filter((item) => typeof item === "string");
174
+ if (key === "Output" && own)
175
+ underProjection.push(texts);
176
+ else
177
+ expressions.push(...texts);
178
+ }
179
+ }
180
+ const type = String(field("Node Type"));
181
+ visit(field("Plan"), depth + 1, false);
182
+ visit(field("Plans"), depth + 1, PASS_THROUGH_NODES.has(type) ? own : PROJECTING_NODES.has(type));
183
+ };
184
+ visit(plan, 0, false);
185
+ const outputs = [];
186
+ for (const list of underProjection) {
187
+ // Plain `alias.column` items of one relation (a dropped column shows as a NULL constant).
188
+ let relation;
189
+ const listed = [];
190
+ for (const text of list) {
191
+ if (text.startsWith("NULL::"))
192
+ continue;
193
+ const tokens = lexPostgres(text).tokens;
194
+ const [qualifier, dot, column] = tokens;
195
+ const named = qualifier?.kind === "word" ? aliases.get(qualifier.value) : undefined;
196
+ if (tokens.length !== 3 ||
197
+ named === undefined ||
198
+ dot?.value !== "." ||
199
+ column?.kind !== "word" ||
200
+ (relation !== undefined && relation !== named)) {
201
+ relation = undefined;
202
+ break;
203
+ }
204
+ relation = named;
205
+ listed.push(column.value);
206
+ }
207
+ if (relation !== undefined)
208
+ outputs.push({ relation, columns: listed });
209
+ else
210
+ expressions.push(...list);
211
+ }
212
+ const columns = new Map();
213
+ for (const text of expressions) {
214
+ const { tokens } = lexPostgres(text);
215
+ for (let i = 0; i + 2 < tokens.length; i++) {
216
+ const [qualifier, dot, column] = [tokens[i], tokens[i + 1], tokens[i + 2]];
217
+ if (qualifier?.kind !== "word" || dot?.kind !== "punct" || dot.value !== ".")
218
+ continue;
219
+ const relation = aliases.get(qualifier.value);
220
+ if (relation === undefined || column === undefined)
221
+ continue;
222
+ if (column.kind === "word" || (column.kind === "punct" && column.value === "*")) {
223
+ columns.set(`${relation.schema}.${relation.name}.${column.value}`, {
224
+ relation,
225
+ column: column.value,
226
+ });
227
+ }
228
+ }
229
+ }
230
+ return {
231
+ relations: [...relations.values()],
232
+ functions: [...functions.values()],
233
+ columns: [...columns.values()],
234
+ outputs,
235
+ };
236
+ }
237
+ /** The JSON document an `EXPLAIN (FORMAT JSON)` row carries, whatever the driver parsed it into. */
238
+ export function planDocument(rows) {
239
+ const value = records(rows)[0]?.["QUERY PLAN"];
240
+ if (typeof value !== "string")
241
+ return value;
242
+ const parsed = JSON.parse(value);
243
+ return parsed;
244
+ }
245
+ /**
246
+ * Declare the caller's query as a NO SCROLL cursor (the server accepts only SELECT/VALUES there and
247
+ * refuses a data-modifying WITH), check the plan's relations, then FETCH at most `maxRows + 1` rows.
248
+ *
249
+ * The query is wrapped as a subquery so each row also carries the result's column names: Bun returns
250
+ * array rows without names, and object rows lose a duplicated name. The wrapper's first column is a
251
+ * JSON array of the names, read from the first row.
252
+ */
253
+ export async function fetchThroughCursor(connection, sql, options) {
254
+ const wrapped = `SELECT (SELECT json_agg(nifra_k)::text FROM json_object_keys(row_to_json(nifra_q)) AS nifra_k) AS nifra_columns, nifra_q.* FROM (\n${sql}\n) AS nifra_q`;
255
+ await extended(connection, `DECLARE nifra_c NO SCROLL CURSOR FOR ${wrapped}`);
256
+ const plan = planDocument(await extended(connection, `EXPLAIN (VERBOSE, FORMAT JSON) ${wrapped}`));
257
+ const refusal = await options.scope(connection, planReads(plan));
258
+ if (refusal !== undefined)
259
+ return refusal;
260
+ const rowCap = options.maxRows + 1;
261
+ const fetched =
262
+ // nifra-expect sql-dynamic: a fixed FETCH whose one interpolation is the integer row cap
263
+ (await connection.unsafe(`FETCH FORWARD ${rowCap} FROM nifra_c`).values()).filter((row) => Array.isArray(row));
264
+ const first = fetched[0]?.[0];
265
+ const names = typeof first === "string" ? JSON.parse(first) : [];
266
+ const columns = Array.isArray(names)
267
+ ? names.filter((name) => typeof name === "string")
268
+ : [];
269
+ return { columns, rows: fetched.map((row) => row.slice(1)) };
270
+ }
271
+ /**
272
+ * Plan the caller's query. The cursor declaration runs first purely as the statement gate (then is
273
+ * closed), the VERBOSE plan feeds the scope check, and the returned plan is plain `FORMAT JSON` -
274
+ * with `analyze`, executed inside the same read-only transaction and timeout.
275
+ */
276
+ export async function explainThroughServer(connection, sql, options) {
277
+ await extended(connection, `DECLARE nifra_c NO SCROLL CURSOR FOR ${sql}`);
278
+ await connection.unsafe("CLOSE nifra_c");
279
+ const verbose = planDocument(await extended(connection, `EXPLAIN (VERBOSE, FORMAT JSON) ${sql}`));
280
+ const refusal = await options.scope(connection, planReads(verbose));
281
+ if (refusal !== undefined)
282
+ return refusal;
283
+ const mode = options.analyze ? "ANALYZE, FORMAT JSON" : "FORMAT JSON";
284
+ return { plan: planDocument(await extended(connection, `EXPLAIN (${mode}) ${sql}`)) };
285
+ }
286
+ //# sourceMappingURL=pg-exec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pg-exec.js","sourceRoot":"","sources":["../../src/internal/pg-exec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * A Postgres tokenizer for the parser layer of `@nifrajs/mcp-db/postgres`. It is the SECOND layer: the
3
+ * server already refuses several statements (extended protocol), anything but a query (the cursor),
4
+ * and writes (the read-only transaction). This layer adds what the server allows but a dev agent must
5
+ * not do: call a function that reaches outside the query (server files, locks, other sessions,
6
+ * settings, notifications, another database), or one that runs SQL from a string where the plan check
7
+ * cannot see it (`query_to_xml`).
8
+ *
9
+ * The lexer follows Postgres with `standard_conforming_strings = on`, which the engine sets on every
10
+ * connection so the server reads string boundaries exactly as this lexer does.
11
+ */
12
+ /** One lexical unit. Strings, comments and dollar-quoted bodies produce nothing. */
13
+ export interface PgToken {
14
+ readonly kind: "word" | "punct" | "number" | "param";
15
+ /** Identifier text (quotes removed, `""` collapsed) or the punctuation character. */
16
+ readonly value: string;
17
+ /** An unquoted word - the only kind that can be a keyword. */
18
+ readonly bare: boolean;
19
+ /** Where the token starts in the source. */
20
+ readonly offset: number;
21
+ }
22
+ export interface PgLexResult {
23
+ readonly tokens: readonly PgToken[];
24
+ /** A string, quoted identifier, comment or dollar-quoted body never closed. */
25
+ readonly unterminated: boolean;
26
+ /** A `U&"..."` identifier: its escapes can spell any name, so it is refused outright. */
27
+ readonly unicodeIdentifier: boolean;
28
+ }
29
+ /** Tokenize Postgres SQL far enough to see statements, parentheses and function calls. */
30
+ export declare function lexPostgres(sql: string): PgLexResult;
31
+ /**
32
+ * Function-name prefixes the parser layer refuses. Each reaches outside a read-only query or runs SQL
33
+ * from a string the plan check cannot see; the server lets a read-only transaction call most of them.
34
+ */
35
+ export declare const DENIED_FUNCTION_PREFIXES: readonly string[];
36
+ /** Why the parser layer refused a statement. */
37
+ export type PgLintRefusal = {
38
+ readonly kind: "statement";
39
+ readonly message: string;
40
+ } | {
41
+ readonly kind: "function";
42
+ readonly message: string;
43
+ readonly name: string;
44
+ };
45
+ /**
46
+ * Lint one statement: a single read-only query with balanced parentheses, no unicode-escaped
47
+ * identifier and no denied function call. `undefined` when it passes.
48
+ */
49
+ export declare function lintPostgres(sql: string): PgLintRefusal | undefined;
50
+ /** The statement without a final `;` (comments after it included), ready to wrap in a subquery. */
51
+ export declare function withoutTerminator(sql: string): string;
52
+ //# sourceMappingURL=pg-lexer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pg-lexer.d.ts","sourceRoot":"","sources":["../../src/internal/pg-lexer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,oFAAoF;AACpF,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAA;IACpD,qFAAqF;IACrF,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,4CAA4C;IAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,CAAA;IACnC,+EAA+E;IAC/E,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;IAC9B,yFAAyF;IACzF,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAA;CACpC;AAMD,0FAA0F;AAC1F,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAkIpD;AAED;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,SAAS,MAAM,EA4BrD,CAAA;AAKD,gDAAgD;AAChD,MAAM,MAAM,aAAa,GACrB;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAElF;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CA0DnE;AAED,mGAAmG;AACnG,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGrD"}