prostgles-server 2.0.308 → 2.0.310

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.
@@ -1 +1 @@
1
- {"version":3,"file":"Prostgles.js","sourceRoot":"","sources":["../lib/Prostgles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Prostgles.js","sourceRoot":"","sources":["../lib/Prostgles.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;AAEhG,oCAAoC;AACpC,wCAAwC;AAExC,+CAAiF;AAEjF,MAAM,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AACxC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;AAC7B,+CAA8D;AAC9D,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;AAE/E,+CAA+D;AAE/D,mCAA8B;AAC9B,6CAAkH;AAClH,mDAA4F;AAI5F,qDAA0J;AAC1J,mDAAwF;AACxF,uDAAoD;AAKvC,QAAA,aAAa,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC;AAClG,SAAS,eAAe,CAAC,YAA0B,EAAE,OAAqC,EAAE,YAAY,GAAG,KAAK,EAAE,QAA0C;IAC1J,IAAI,GAAG,GAAQ,SAAS,CAAC;QAEvB,UAAU,EAAE,OAAO;QACnB,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;YACjB,KAAK,EAAE,UAAU,GAAG;gBAClB,OAAO,CAAC,GAAG,CAAC;oBACV,GAAG,IAAA,wBAAQ,EAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;iBACtC,CAAC,CAAC;YACL,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBACpB,OAAO,CAAC,GAAG,CAAC;oBACV,GAAG,IAAA,wBAAQ,EAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACrC,KAAK;iBACN,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,CAAC,QAAQ,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;YAC/B,OAAO,EAAE,UAAU,MAAM,EAAE,EAAE,EAAE,OAAO;gBACpC,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE;oBACjD,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,GAAG;wBAC/B,IAAI,QAAQ,EAAE;4BACZ,QAAQ,CAAC,GAAG,EAAE,IAAA,WAAG,EAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;yBACpC;6BAAM;4BACL,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,IAAA,WAAG,EAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;yBAChD;oBACH,CAAC,CAAC,CAAC;iBACJ;gBACD,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE;oBAChD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,GAAG;wBAC9B,IAAI,QAAQ,EAAE;4BACZ,QAAQ,CAAC,GAAG,EAAE,IAAA,WAAG,EAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;yBACpC;6BAAM;4BACL,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAA,WAAG,EAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;yBAC/C;oBACH,CAAC,CAAC,CAAC;iBACJ;YACH,CAAC;SACF,CAAC,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAC;IACH,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,GAAG,EAAE,CAAC;IAEzB,iGAAiG;IACjG,0CAA0C;IAE1C,IAAI,OAAO,EAAE;QACX,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;KACzC;IAED,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,YAAY,CAAC;QACrB,GAAG;KACJ,CAAC;AACJ,CAAC;AAEY,QAAA,UAAU,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,CAAU,CAAC;AA2MpF,MAAM,gBAAgB,GAAG;IACvB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;CACb,CAAC;AAEF,yBAAyB;AAEzB,MAAa,SAAS;IAmDpB,YAAY,MAA4B;QAjDxC,SAAI,GAAyB;YAC3B,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE;gBACZ,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,IAAI;gBACV,gBAAgB,EAAE,eAAe;aAClC;YACD,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC;YAClB,MAAM,EAAE,QAAQ;YAChB,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,aAAa;SAC/B,CAAC;QAwBF,aAAQ,GAAG,gBAAgB,CAAC;QACpB,WAAM,GAAG,KAAK,CAAC;QA4CvB,cAAS,GAAG,KAAK,CAAC;QAuElB,eAAU,GAAG,KAAK,IAAI,EAAE;YACtB,IAAI,IAAI,CAAC,WAAW,EAAE;gBACpB,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;gBAC/B,8BAA8B;aAC/B;iBAAM;gBACL,IAAI,CAAC,UAAU,GAAG,MAAM,uBAAU,CAAC,MAAM,CAAC,IAAW,CAAQ,CAAC;aAC/D;YACD,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,MAAM,iBAAiB,CAAA;YAC7C,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAU,CAAC;YACtC,OAAO,IAAI,CAAC,GAAG,CAAC;QAClB,CAAC,CAAA;QAEO,oBAAe,GAAG,CAAC,OAAwB,EAAE,EAAE;YAErD,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,KAAK,eAAe,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;gBAC/E,MAAM,8EAA8E,CAAC;aACtF;iBAAM,IACL,IAAI,CAAC,IAAI,CAAC,WAAW;gBACrB,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,KAAK,QAAQ;gBAC7C,qBAAqB,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe;gBAClD,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,mBAAmB,KAAK,QAAQ,EACjE;gBAEA,IAAI,IAAI,CAAC,0BAA0B,EAAE;oBACnC,aAAa,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;iBAChD;gBACD,IAAI,CAAC,0BAA0B,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;oBACvD,IAAG,CAAC,IAAI,CAAC,MAAM;wBAAE,OAAO;oBACxB,MAAM,QAAQ,GAAG,MAAM,uBAAU,CAAC,MAAM,CAAC,IAAW,CAAC,CAAC;oBACtD,IAAI,QAAQ,CAAC,iBAAiB,KAAK,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE;wBACpE,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;wBACxB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;qBACpB;gBACH,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAA;aAClD;QAEH,CAAC,CAAA;QAED,gBAAW,GAAG,KAAK,CAAC;QAgLpB,qBAAgB,GAAU,EAAE,CAAC;QAsG7B,qBAAgB,GAAG,KAAK,EAAE,MAAW,EAAE,EAAE;YAEvC,IAAI,IAAI,GAAQ,MAAM,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAErE,iFAAiF;YACjF,0FAA0F;YAC1F,uHAAuH;YAEvH,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;YAC7C,IAAI,UAGS,CAAC;YACd,IAAI,sBAAsB,CAAC;YAC3B,IAAI,MAAM,GAAG,KAAK,CAAC;YAEnB,IAAI;gBACF,IAAI,CAAC,aAAa;oBAAE,MAAM,yBAAyB,CAAC;gBACpD,UAAU,GAAG,MAAM,aAAa,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;aAC/D;YAAC,OAAO,CAAC,EAAE;gBACV,sBAAsB,GAAG,wCAAwC,CAAC;gBAClE,OAAO,CAAC,KAAK,CAAC,wEAAwE,EAAE,CAAC,CAAC,CAAC;aAC5F;YACD,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;YAC1C,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,EAAE,MAAM,CAAC;YAC7C;cACE;YAEF,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,KAAK,UAAU,EAAE;gBAC5E,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;oBAC3B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;oBAC5E,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,aAAoB,CAAC,CAAC;oBAChE,OAAO,OAAO,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC;gBACjE,CAAC,CAAA;gBAED,IAAI,MAAM,SAAS,EAAE,EAAE;oBACrB,MAAM,CAAC,kBAAkB,CAAC,0BAAQ,CAAC,GAAG,CAAC,CAAA;oBACvC,MAAM,CAAC,EAAE,CAAC,0BAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAc,EAAE,KAAK,CAAC,GAAG,QAAa,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE;wBAEvG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG;4BAAE,MAAM,qCAAqC,CAAC;wBAEhE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;4BAC1D,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;wBACf,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;4BACb,eAAe,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;wBAC3B,CAAC,CAAC,CAAA;oBACJ,CAAC,CAAC,CAAC;oBACH,IAAI,EAAE,EAAE;wBACN,uEAAuE;wBACvE,+BAA+B;wBAC/B,MAAM,GAAG,IAAI,CAAC;qBACf;;wBAAM,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;iBACpC;aACF;YAED,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;YACpE,IAAI,WAAW,GAAe,EAAE,CAAC;YACjC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;gBACnB,IAAI,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE;qBAC9C,MAAM,CAAC,EAAE,CAAC,EAAE,CACX,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAC5D,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBACrC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;oBACpB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE;wBACtD,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;qBACtB;gBACH,CAAC,CAAC,CAAC;aACJ;YAED,MAAM,OAAO,GAAG,MAAM,aAAa,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;YACxD,MAAM,YAAY,GAAiB;gBACjC,MAAM;gBACN,OAAO,EAAE,IAAA,yBAAO,EAAC,OAAO,CAAC;gBACzB,WAAW,EAAE,MAAM;gBACnB,MAAM;gBACN,UAAU,EAAE,WAAW;gBACvB,IAAI;gBACJ,OAAO;gBACP,GAAG,EAAE,sBAAsB;aAC5B,CAAA;YACD,MAAM,CAAC,IAAI,CAAC,0BAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC7C,CAAC,CAAA;QAlfC,IAAI,CAAC,MAAM;YAAE,MAAM,8BAA8B,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,EAAE;YAAE,OAAO,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;QAE1E,uDAAuD;QACvD,IAAI,MAAM,GAAsC;YAC9C,cAAc,EAAE,OAAO,EAAE,qBAAqB;YAC9C,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,gBAAgB,EAAE,IAAI;YAC9D,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,qBAAqB,EAAE,iBAAiB;YAC9E,oBAAoB,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,iBAAiB;YAC3F,WAAW,EAAE,aAAa;SAC3B,CAAC;QACF,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,CAAE,MAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;QACtG,IAAI,aAAa,CAAC,MAAM,EAAE;YACxB,OAAO,CAAC,KAAK,CAAC,6CAA6C,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;SACpF;QAED,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAEjC,kBAAkB;QAClB,IAAI,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE;YACxB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,IAAI,OAAO,CAAC;SAC5E;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC;QAEhD,IAAI,CAAC,QAAQ,GAAG;YACd,GAAG,gBAAgB;YACnB,GAAG,MAAM,CAAC,QAAQ;SACnB,CAAA;IACH,CAAC;IAvDD,IAAI,UAAU;QACZ,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,MAAM,gCAAgC,CAAA;QAC7D,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IACD,IAAI,UAAU,CAAC,CAAa;QAC1B,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;IACvB,CAAC;IAgBD,OAAO,CAAC,SAAiB;QACvB,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,KAAK,SAAS,CAAC;IACvD,CAAC;IAmCD,KAAK,CAAC,cAAc,CAAC,KAAyC;QAC5D,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,OAAO,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QACjF,IAAI,WAAW,IAAI,IAAI,CAAC,MAAM,EAAE;YAC9B,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAC9B,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;YACxB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,6BAAa,CAAC,kCAAkC,CAAC,EAAE;gBACjG,OAAO,CAAC,GAAG,CAAC,sFAAsF,CAAC,CAAC;gBACpG,OAAO;aACR;YAED,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;gBACrC,iCAAiC;gBACjC,WAAW,CAAC,KAAK,CAAC,CAAC;aAEpB;iBAAM,IAAI,WAAW,KAAK,eAAe,EAAE;gBAC1C,IAAI,mBAAmB,EAAE;oBACvB,iEAAiE;oBACjE,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;oBAEjD,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;oBACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;iBAC1B;aAEF;iBAAM,IAAI,WAAW,KAAK,IAAI,IAAI,IAAA,0BAAa,EAAC,eAAe,CAAC,IAAI,qBAAqB,IAAI,eAAe,EAAE;gBAC7G,0CAA0C;gBAC1C,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAA;gBAClD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACpB;SACF;IACH,CAAC;IAED,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO;YAAE,MAAM,8CAA8C,CAAC;IACzF,CAAC;IAED,aAAa;QACX,MAAM,QAAQ,GAAG,mBAAmB,CAAA,CAAC,gCAAgC;QACrE,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,EAAE,CAAC,GAAG,QAAQ,CAAC;QAClE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAA;IAC/B,CAAC;IAEO,WAAW,CAAC,QAAgB,EAAE,MAAM,GAAG,MAAM;QACnD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAG,EAAE,IAAI;gBAC/C,IAAI,GAAG;oBAAE,MAAM,CAAC,GAAG,CAAC,CAAC;;oBAChB,OAAO,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,aAAa,CAAC,KAAK,GAAG,KAAK;QAEzB,IAAI,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;YACjC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACpD,MAAM,MAAM,GAAG,4CAA4C;gBACzD,sCAAsC;gBACtC,UAAU,CAAC;YACb,MAAM,WAAW,GAAG,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;YAC/D,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAG,EAAE,IAAI;gBAC/C,IAAI,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,KAAK,WAAW,CAAC,EAAE;oBAC1C,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;oBACxC,OAAO,CAAC,GAAG,CAAC,2DAA2D,GAAG,QAAQ,CAAC,CAAA;iBACpF;YACH,CAAC,CAAC,CAAC;SACJ;aAAM,IAAI,KAAK,EAAE;YAChB,OAAO,CAAC,KAAK,CAAC,sEAAsE,CAAC,CAAA;SACtF;IACH,CAAC;IA0CD,KAAK,CAAC,IAAI,CAAC,OAAwB;QAOjC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAE9B,sBAAsB;QACtB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;YACZ,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EACnG,MAAM,CAAC,EAAE;gBACP,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ;oBAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACnD,IAAI,IAAI,CAAC,eAAe,EAAE;oBACxB,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;iBACtC;YACH,CAAC,CACF,CAAC;YACF,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;YACf,IAAI,CAAC,WAAW,GAAG,MAAM,WAAW,CAAC,EAAE,CAAC,CAAC;SAC1C;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,MAAM,EAAE,GAAG,IAAI,CAAC,EAAG,CAAC;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAI,CAAC;QAEtB,yCAAyC;QACzC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACzB,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC9C;QAED,IAAI;YAEF,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBACzB,IAAI,CAAC,iBAAiB,GAAG,IAAI,qBAAiB,CAAC,IAAW,CAAC,CAAC;gBAC5D,IAAI;oBACF,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;iBACrC;gBAAC,OAAO,CAAC,EAAE;oBACV,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;oBACxC,MAAM,CAAC,CAAC;iBACT;aACF;YAED,kDAAkD;YAClD,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YAExB,oCAAoC;YACpC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBACvB,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;gBACvE,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;gBACxB,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW;oBAAE,MAAM,kEAAkE,CAAC;gBAC3G,YAAY;gBACZ,IAAI,CAAC,WAAW,GAAG,IAAI,qBAAW,CAAC,WAAW,IAAI,WAAW,EAAE,YAAY,CAAC,CAAC;gBAE7E,IAAI;oBACF,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAW,CAAC,CAAC;iBAC1C;gBAAC,OAAO,CAAC,EAAE;oBACV,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;oBAClC,MAAM,CAAC,CAAC;iBACT;aACF;YACD,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YAGxB,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBAErB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBAAE,OAAO,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;gBAEhF,2BAA2B;gBAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,qBAAW,CAAC,IAAW,CAAC,CAAC;gBAChD,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;gBAE9B,IAAI,CAAC,aAAa,GAAG,IAAI,6BAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,GAAI,EAAE,IAAI,CAAC,EAAE,EAAE,IAAW,CAAC,CAAC;gBAC9I,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;gBAEnD,uCAAuC;gBACvC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;aAE9B;iBAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI;gBAAE,MAAM,2CAA2C,CAAC;YAE7E,wBAAwB;YACxB,0IAA0I;YAC1I,IAAI;YAEJ,IAAI,CAAC,eAAe,GAAG,IAAI,iCAAe,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YAGpD,IAAI,CAAC,aAAa,EAAE,CAAC;YAErB,2CAA2C;YAC3C,IAAI;gBACF,IAAI,IAAI,CAAC,SAAS,EAAE;oBAClB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;iBACjB;gBACD,OAAO,CAAC,IAAI,CAAC,GAAU,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;aACnC;YAAC,OAAO,GAAG,EAAE;gBACZ,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,GAAG,CAAC,CAAA;aAC1D;YAED,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,OAAO;gBACL,EAAE,EAAE,IAAI,CAAC,GAAW;gBACpB,GAAG,EAAE,EAAE;gBACP,GAAG;gBACH,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;gBAChB,OAAO,EAAE,KAAK,IAAI,EAAE;oBAClB,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;oBACvC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;wBAChB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;4BACjC,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAA;wBACvD,CAAC,CAAC,CAAC;wBAEH,mDAAmD;wBACnD,IAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,WAAW,EAAC;4BACvD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE;gCAC1D,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;6BACzC;yBACF;wBACD,IAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAC;4BACnD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;yBAC7B;wBACD,kDAAkD;wBAClD,0BAA0B;wBAC1B,iCAAiC;wBACjC,IAAI;qBACL;oBACD,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;oBAC5B,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC;oBAC3B,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;oBAC5B,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;oBACrB,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC;oBACpB,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;oBACrB,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;oBAClB,OAAO,IAAI,CAAC;gBACd,CAAC;aACF,CAAC;SACH;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAChB,aAAa;YACb,MAAM,eAAe,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;SACtC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,QAAgB;QAE/B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAA,qBAAqB;QAE1E,OAAO,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YAC/C,OAAO,CAAC,GAAG,CAAC,oDAAoD,GAAG,QAAQ,CAAC,CAAC;YAC7E,OAAO,IAAI,CAAA;QACb,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACf,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,GAAG,EAC9B,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;YAEnC,IAAI,QAAQ,IAAI,MAAM,IAAI,WAAW,EAAE;gBACrC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,EACtF,OAAO,GAAG,SAAS,GAAG,CAAC,CAAC;gBAE1B,MAAM,IAAI,MAAM,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7H,MAAM,IAAI,MAAM,CAAC;aAClB;YACD,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC3B,MAAM,GAAG,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC;IAID,KAAK,CAAC,eAAe;QACnB,IAAI,CAAC,OAAO,EAAE,CAAC;QAEf,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,MAAM,aAAa,CAAC;QAEnC,IAAI,aAAa,GAAG,IAAI,6BAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAG,EAAE,IAAW,CAAC,CAAC;QAC7I,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QAEnC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QAE1B,iDAAiD;QACjD,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;YAChC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,EAAE;gBACvC,CAAC,CAAC,IAAI,CAAC,0BAAQ,CAAC,cAAc,CAAC,CAAC;gBAChC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;YACH,OAAO;SACR;QAED,gBAAgB;QAChB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,MAAoB,EAAE,EAAE;YAC3D,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;gBACtD,MAAM,CAAC,UAAU,EAAE,CAAC;gBACpB,OAAM;aACP;YACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAEnC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG;gBAAE,MAAM,gBAAgB,CAAC;YAClD,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;YAE5B,IAAI;gBACF,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe;oBAAE,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,GAAU,EAAE,EAAE,CAAC,CAAC;gBAGvF;;kBAEE;gBACF,MAAM,CAAC,kBAAkB,CAAC,0BAAQ,CAAC,OAAO,CAAC,CAAA;gBAC3C,MAAM,CAAC,EAAE,CAAC,0BAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAuB,EAAE,KAAK,CAAC,GAAG,QAAe,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE;oBAE1I,IAAI,EAAE,gGAAgG;wBACpG,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;4BACpE,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAA;4BAClD,MAAM,mCAAmC,CAAC;yBAC3C;wBAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;wBACpE,IAAI,yBAAyB,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC;wBAC9I,IAAI,yBAAyB,EAAE;4BAC7B,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,CAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,yBAAyB,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;4BACpI,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;yBACf;;4BAAM,MAAM,kCAAkC,SAAS,IAAI,OAAO,GAAG,CAAC;qBAExE;oBAAC,OAAO,GAAG,EAAE;wBACZ,mCAAmC;wBACnC,8BAA8B;wBAC9B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBACnB,EAAE,CAAC,GAAG,CAAC,CAAA;wBACP,kEAAkE;qBACnE;gBACH,CAAC,CAAC,CAAC;gBAEH,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;oBAC3B,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;oBAC3C,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;oBACtD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;oBAC9E,4EAA4E;oBAC5E,IAAI,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;wBAChC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,GAAU,CAAC,CAAC;qBAClD;oBAAA,CAAC;gBACJ,CAAC,CAAC,CAAC;gBAEH,MAAM,CAAC,kBAAkB,CAAC,0BAAQ,CAAC,MAAM,CAAC,CAAA;gBAC1C,MAAM,CAAC,EAAE,CAAC,0BAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAuB,EAAE,KAAK,CAAC,GAAG,QAAa,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE;oBAC3G,IAAI;wBACF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,MAAM,CAAQ,CAAC;wBAEpE,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;4BAChC,EAAE,CAAC,4BAA4B,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;yBAC3D;6BAAM;4BACL,IAAI;gCACF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;gCAC7C,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;6BACf;4BAAC,OAAO,GAAG,EAAE;gCACZ,eAAe,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;6BAC1B;yBACF;qBACF;oBAAC,OAAO,GAAG,EAAE;wBACZ,eAAe,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;wBACzB,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;qBACnD;gBACH,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;aAC/B;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAA;aACtC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CAoFF;AAviBD,8BAuiBC;AACD,SAAS,eAAe,CAAC,EAAY,EAAE,GAAQ;IAC7C,MAAM,OAAO,GAAG,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC;QACtC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChB,IAAA,0BAAa,EAAC,GAAG,CAAC,CAAC,CAAC;YAClB,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7B,GAAW,CAAC,QAAQ,EAAE,EACzB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IACvB,EAAE,CAAC,CAAC,CAAC,CAAC;AACR,CAAC;AAcD,mJAAmJ;AACnJ,0EAA0E;AAE1E,6BAA6B;AAC7B,qEAAqE;AACrE,yDAAyD;AACzD,sFAAsF;AACtF,gBAAgB;AAEhB,kBAAkB;AAClB,IAAI;AAIG,KAAK,UAAU,WAAW,CAAC,EAAM;IACtC,OAAO,EAAE,CAAC,SAAS,CAAC,4DAA4D,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC1G,CAAC;AAFD,kCAEC;AAGD,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"makeSelectQuery.d.ts","sourceRoot":"","sources":["makeSelectQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAU,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAc,MAAM,gBAAgB,CAAC;AAGtD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,YAAY,EACnB,CAAC,EAAE,QAAQ,EACX,KAAK,GAAE,MAAU,EACjB,UAAU,GAAE,MAAM,EAAO,EACzB,YAAY,GAAE,YAAiB,GAC9B,MAAM,CAqRR"}
1
+ {"version":3,"file":"makeSelectQuery.d.ts","sourceRoot":"","sources":["makeSelectQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAU,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAc,MAAM,gBAAgB,CAAC;AAGtD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,YAAY,EACnB,CAAC,EAAE,QAAQ,EACX,KAAK,GAAE,MAAU,EACjB,UAAU,GAAE,MAAM,EAAO,EACzB,YAAY,GAAE,YAAiB,GAC9B,MAAM,CA2RR"}
@@ -7,18 +7,23 @@ const prostgles_types_1 = require("prostgles-types");
7
7
  function makeSelectQuery(_this, q, depth = 0, joinFields = [], selectParams = {}) {
8
8
  const PREF = `prostgles`, joins = q.joins || [],
9
9
  // aggs = q.aggs || [],
10
- makePref = (q) => !q.tableAlias ? q.table : `${q.tableAlias || ""}_${q.table}`, makePrefANON = (joinAlias, table) => (0, prostgles_types_1.asName)(!joinAlias ? table : `${joinAlias || ""}_${table}`), makePrefAN = (q) => (0, prostgles_types_1.asName)(makePref(q));
11
- const indentLine = (numInd, str, indentStr = " ") => new Array(numInd).fill(indentStr).join("") + str;
12
- const indStr = (numInd, str) => str.split("\n").map(s => indentLine(numInd, s)).join("\n");
13
- const indjArr = (numInd, strArr, indentStr = " ") => strArr.map(str => indentLine(numInd, str));
14
- const indJ = (numInd, strArr, separator = " \n ", indentStr = " ") => indjArr(numInd, strArr, indentStr).join(separator);
15
- const selectArrComma = (strArr) => strArr.map((s, i, arr) => s + (i < arr.length - 1 ? " , " : " "));
16
- const prefJCAN = (q, str) => (0, prostgles_types_1.asName)(`${q.tableAlias || q.table}_${PREF}_${str}`);
10
+ getTableAlias = (q) => !q.tableAlias ? q.table : `${q.tableAlias || ""}_${q.table}`, getTableJoinAliasAsName = (joinAlias, table) => (0, prostgles_types_1.asName)(!joinAlias ? table : `${joinAlias || ""}_${table}`), getTableAliasAsName = (q) => (0, prostgles_types_1.asName)(getTableAlias(q));
11
+ const indentLine = (numberOfSpaces, str, indentStr = " ") => new Array(numberOfSpaces).fill(indentStr).join("") + str;
12
+ const indentArray = (numberOfSpaces, strArr, indentStr = " ") => strArr.map(str => indentLine(numberOfSpaces, str, indentStr));
13
+ const indentArrayAndJoin = (numberOfSpaces, strArr, separator = " \n ", indentStr = " ") => indentArray(numberOfSpaces, strArr, indentStr).join(separator);
14
+ const appendCommas = (strArr) => strArr.map((s, i, arr) => s + (i < arr.length - 1 ? " , " : " "));
15
+ const createAlias = (q, str) => (0, prostgles_types_1.asName)(`${q.tableAlias || q.table}_${PREF}_${str}`);
17
16
  // const indent = (a, b) => a;
18
17
  const joinTables = (q1, q2) => {
19
18
  const joinInfo = _this.getJoins(q1.table, q2.table, q2.$path, true);
20
19
  const paths = joinInfo.paths;
21
- return paths.flatMap(({ table, on }, i) => {
20
+ let rowidSortedColName = "";
21
+ let rowidDupesColName = "";
22
+ let jsonColName = "";
23
+ let t2Alias = "";
24
+ let limitColName = "";
25
+ const t1Alias = q.table;
26
+ const queries = paths.flatMap(({ table, on }, i) => {
22
27
  const getColName = (col, q) => {
23
28
  if (table === q.table) {
24
29
  const colFromSelect = q.select.find(s => s.getQuery() === (0, prostgles_types_1.asName)(col));
@@ -37,44 +42,36 @@ function makeSelectQuery(_this, q, depth = 0, joinFields = [], selectParams = {}
37
42
  return getColName(col, q2);
38
43
  };
39
44
  // console.log(JSON.stringify({i, table, on, q1, q2}, null, 2));
40
- const prevTable = i === 0 ? q1.table : (paths[i - 1].table);
41
- const thisAlias = makePrefANON(q2.tableAlias, table);
42
- // const prevAlias = i === 0? makePrefAN(q1) : thisAlias;
43
- const prevAlias = i === 0 ? makePrefAN(q1) : makePrefANON(q2.tableAlias, prevTable);
44
- // If root then prev table is aliased from root query. Alias from join otherwise
45
+ const prevTable = i === 0 ? t1Alias : (paths[i - 1].table);
46
+ const thisAlias = getTableJoinAliasAsName(q2.tableAlias, table);
47
+ const prevAlias = i === 0 ? getTableAliasAsName(q1) : getTableJoinAliasAsName(q2.tableAlias, prevTable);
48
+ /* If root then prev table is aliased from root query. Alias from join otherwise */
45
49
  let iQ = [
46
50
  (0, prostgles_types_1.asName)(table) + ` ${thisAlias}`
47
51
  ];
48
52
  /* If target table then add filters, options, etc */
49
53
  if (i === paths.length - 1) {
50
- // const targetSelect = (
51
- // q2.select.concat(
52
- // (q2.joins || []).map(j => j.tableAlias || j.table)
53
- // ).concat(
54
- // /* Rename aggs to avoid collision with join cols */
55
- // (q2.aggs || []).map(a => asName(`agg_${a.alias}`) + " AS " + asName(a.alias)) || [])
56
- // ).filter(s => s).join(", ");
57
54
  const targetSelect = q2.select.filter(s => s.selected).map(s => {
58
55
  /* Rename aggs to avoid collision with join cols */
59
56
  if (s.type === "aggregation")
60
57
  return (0, prostgles_types_1.asName)(`agg_${s.alias}`) + " AS " + (0, prostgles_types_1.asName)(s.alias);
61
58
  return (0, prostgles_types_1.asName)(s.alias);
62
59
  }).concat(q2.joins?.map(j => (0, prostgles_types_1.asName)(j.table)) ?? []).join(", ");
63
- const _iiQ = makeSelectQuery(_this, q2, depth + 1,
64
- // on.map(([c1, c2]) => asName(c2)),
65
- on.flatMap(cond => cond.map(([c1, c2]) => (0, prostgles_types_1.asName)(c2))), selectParams);
66
- // const iiQ = flat(_iiQ.split("\n")); // prettify for debugging
67
- // console.log(_iiQ)
68
- const iiQ = [_iiQ];
60
+ const leafSelect = makeSelectQuery(_this, q2, depth + 1, on.flatMap(cond => cond.map(([c1, c2]) => (0, prostgles_types_1.asName)(c2))), selectParams).split("\n");
61
+ t2Alias = thisAlias;
62
+ rowidSortedColName = createAlias(q2, `rowid_sorted`);
63
+ rowidDupesColName = createAlias(q2, `dupes_rowid`);
64
+ limitColName = createAlias(q2, `limit`);
65
+ jsonColName = createAlias(q2, `json`);
69
66
  iQ = [
70
67
  "(",
71
- ...indjArr(depth + 1, [
68
+ ...indentArray(depth + 1, [
72
69
  `-- 4. [target table] `,
73
70
  `SELECT *,`,
74
- `row_number() over() as ${prefJCAN(q2, `rowid_sorted`)},`,
75
- `row_to_json((select x from (SELECT ${targetSelect}) as x)) AS ${prefJCAN(q2, `json`)}`,
71
+ `row_number() over() as ${rowidSortedColName},`,
72
+ `row_to_json((select x from (SELECT ${targetSelect}) as x)) AS ${jsonColName}`,
76
73
  `FROM (`,
77
- ...iiQ,
74
+ ...indentArray(depth + 2, leafSelect),
78
75
  `) ${(0, prostgles_types_1.asName)(q2.table)} `
79
76
  ]),
80
77
  `) ${thisAlias}`
@@ -83,13 +80,14 @@ function makeSelectQuery(_this, q, depth = 0, joinFields = [], selectParams = {}
83
80
  const getJoinCondition = (t1Alias, t2Alias, on) => {
84
81
  return on.map(cond => cond.map(([c1, c2]) => `${t1Alias}.${(0, prostgles_types_1.asName)(getPrevColName(c1))} = ${t2Alias}.${(0, prostgles_types_1.asName)(getThisColName(c2))} `).join(" AND ")).join(" OR ");
85
82
  };
86
- let jres = [
83
+ let query = [
87
84
  `${q2.isLeftJoin ? "LEFT" : "INNER"} JOIN `,
88
85
  ...iQ,
89
86
  `ON ${getJoinCondition(prevAlias, thisAlias, on)}`
90
87
  ];
91
- return jres;
88
+ return { query, prevTable, thisAlias };
92
89
  });
90
+ return { q: q2, query: queries.flatMap(q => q.query), t1Alias: q.table, t2Alias, rowidSortedColName: rowidSortedColName, jsonColName, rowidDupesColName, limitColName };
93
91
  };
94
92
  const getGroupBy = (rootSelectItems, groupByItems) => {
95
93
  if (groupByItems.length) {
@@ -103,7 +101,7 @@ function makeSelectQuery(_this, q, depth = 0, joinFields = [], selectParams = {}
103
101
  }
104
102
  return "";
105
103
  };
106
- /* Leaf query -> no joins -> return simple query */
104
+ /* Leaf query with no joins -> return simple query */
107
105
  const aggs = q.select.filter(s => s.type === "aggregation");
108
106
  const nonAggs = q.select.filter(s => depth || s.selected).filter(s => s.type !== "aggregation");
109
107
  if (!joins.length) {
@@ -112,20 +110,12 @@ function makeSelectQuery(_this, q, depth = 0, joinFields = [], selectParams = {}
112
110
  const rootSelectItems = q.select.filter(s => joinFields.includes(s.getQuery()) || s.selected);
113
111
  /* If aggs exist need to set groupBy add joinFields into select */
114
112
  if (aggs.length || selectParams?.groupBy) {
115
- // const missingFields = joinFields.filter(jf => !q.select.find(s => s.type === "column" && s.alias === jf));
116
- // if(depth && missingFields.length){
117
- // // select = Array.from(new Set(missingFields.concat(select)));
118
- // }
119
113
  if (nonAggs.length) {
120
114
  let groupByFields = nonAggs.filter(sf => !depth || joinFields.includes(sf.getQuery()));
121
115
  groupBy = getGroupBy(rootSelectItems, groupByFields);
122
- // if(groupByFields.length){
123
- // groupBy = `GROUP BY ${groupByFields.map(sf => sf.type === "function"? sf.getQuery() : asName(sf.alias)).join(", ")}\n`;
124
- // }
125
116
  }
126
117
  }
127
- // console.log(q.select, joinFields)
128
- let simpleQuery = indJ(depth, [
118
+ let simpleQuery = indentArrayAndJoin(depth, [
129
119
  `-- 0. or 5. [leaf query] `
130
120
  /* Group by selected fields + any join fields */
131
121
  ,
@@ -174,43 +164,48 @@ function makeSelectQuery(_this, q, depth = 0, joinFields = [], selectParams = {}
174
164
  });
175
165
  rootGroupBy = `GROUP BY ${groupByItems.join(", ")} `;
176
166
  }
167
+ const parsedJoins = joins.map(j => joinTables(q, j));
177
168
  /* Joined query */
178
169
  const joinedQuery = [
179
170
  " \n",
180
171
  `-- 0. [joined root] `,
181
172
  "SELECT ",
182
- ...selectArrComma(rootSelectItems.map(s => s.getQuery() + " AS " + (0, prostgles_types_1.asName)(s.alias)).concat(joins.map((j, i) => {
173
+ ...appendCommas(rootSelectItems.map(s => s.getQuery() + " AS " + (0, prostgles_types_1.asName)(s.alias)).concat(parsedJoins.map((j, i) => {
183
174
  /** Apply LIMIT to joined items */
184
- const jsq = `json_agg(${prefJCAN(j, `json`)}::jsonb ORDER BY ${prefJCAN(j, `rowid_sorted`)}) FILTER (WHERE ${prefJCAN(j, `limit`)} <= ${j.limit} AND ${prefJCAN(j, `dupes_rowid`)} = 1 AND ${prefJCAN(j, `json`)} IS NOT NULL)`;
185
- const resAlias = (0, prostgles_types_1.asName)(j.tableAlias || j.table);
186
- // If limit = 1 then return a single json object (first one)
187
- return (j.limit === 1 ? `${jsq}->0 ` : `COALESCE(${jsq}, '[]') `) + ` AS ${resAlias}`;
175
+ const jsq = `json_agg(${j.jsonColName}::jsonb ORDER BY ${j.rowidSortedColName}) FILTER (WHERE ${j.limitColName} <= ${j.q.limit} AND ${j.rowidDupesColName} = 1 AND ${j.jsonColName} IS NOT NULL)`;
176
+ const resAlias = (0, prostgles_types_1.asName)(j.q.tableAlias || j.q.table);
177
+ /* If limit = 1 then return a single json object (first one) */
178
+ return (j.q.limit === 1 ? `${jsq}->0 ` : `COALESCE(${jsq}, '[]') `) + ` AS ${resAlias}`;
188
179
  }))),
189
180
  `FROM ( `,
190
- ...indjArr(depth + 1, [
181
+ ...indentArray(depth + 1, [
191
182
  "-- 1. [subquery limit + dupes] ",
192
183
  "SELECT ",
193
- ...selectArrComma([`t1.*`].concat(joins.map((j, i) => {
194
- return `row_number() over(partition by ${prefJCAN(j, `dupes_rowid`)}, ` +
195
- `ctid order by ${prefJCAN(j, `rowid_sorted`)}) AS ${prefJCAN(j, `limit`)} `;
184
+ ...appendCommas([`t1.*`].concat(parsedJoins.map((j, i) => {
185
+ return `row_number() over(partition by ${j.rowidDupesColName}, ` +
186
+ `ctid order by ${j.rowidDupesColName}) AS ${j.limitColName} `;
196
187
  }))),
197
- `FROM ( ----------- ${makePrefAN(q)}`,
198
- ...indjArr(depth + 1, [
188
+ `FROM ( ----------- ${getTableAliasAsName(q)}`,
189
+ ...indentArray(depth + 1, [
199
190
  "-- 2. [source full select + ctid to group by] ",
200
191
  "SELECT ",
201
- ...selectArrComma(q.allFields.concat(["ctid"])
202
- .map(field => `${makePrefAN(q)}.${(0, prostgles_types_1.asName)(field)} `)
203
- .concat(joins.map((j, i) => makePrefAN(j) + "." + prefJCAN(j, `json`) + ", " + makePrefAN(j) + "." + prefJCAN(j, `rowid_sorted`)).concat(joins.map(j => `row_number() over(partition by ${makePrefAN(j)}.${prefJCAN(j, `rowid_sorted`)}, ${makePrefAN(q)}.ctid ) AS ${prefJCAN(j, `dupes_rowid`)}`)))),
192
+ ...appendCommas(q.allFields.concat(["ctid"])
193
+ .map(field => `${getTableAliasAsName(q)}.${(0, prostgles_types_1.asName)(field)} `)
194
+ .concat(parsedJoins.map((j, i) => j.t2Alias + "." + j.jsonColName + ", " +
195
+ j.t2Alias + "." + j.rowidSortedColName + ", " +
196
+ `row_number() over(partition by ` +
197
+ `${j.t2Alias}.${j.rowidSortedColName}, ` +
198
+ `${getTableAliasAsName(q)}.ctid ) AS ${j.rowidDupesColName}`))),
204
199
  `FROM ( `,
205
- ...indjArr(depth + 1, [
200
+ ...indentArray(depth + 1, [
206
201
  "-- 3. [source table] ",
207
202
  "SELECT ",
208
203
  "*, row_number() over() as ctid ",
209
204
  `FROM ${(0, prostgles_types_1.asName)(q.table)} `,
210
205
  `${q.where} `
211
206
  ]),
212
- `) ${makePrefAN(q)} `,
213
- ...joins.flatMap((j, i) => joinTables(q, j))
207
+ `) ${getTableAliasAsName(q)} `,
208
+ ...joins.flatMap((j, i) => joinTables(q, j).query)
214
209
  ]),
215
210
  ") t1"
216
211
  ]),
@@ -222,7 +217,7 @@ function makeSelectQuery(_this, q, depth = 0, joinFields = [], selectParams = {}
222
217
  "-- EOF 0. joined root",
223
218
  " \n"
224
219
  ].filter(v => v);
225
- let res = indJ(depth, joinedQuery);
220
+ let res = indentArrayAndJoin(depth, joinedQuery);
226
221
  // res = indent(res, depth);
227
222
  // console.log(res);
228
223
  return res;
@@ -14,23 +14,33 @@ export function makeSelectQuery(
14
14
  const PREF = `prostgles`,
15
15
  joins = q.joins || [],
16
16
  // aggs = q.aggs || [],
17
- makePref = (q: NewQuery) => !q.tableAlias? q.table : `${q.tableAlias || ""}_${q.table}`,
18
- makePrefANON = (joinAlias: string | undefined, table: string) => asName(!joinAlias? table : `${joinAlias || ""}_${table}`),
19
- makePrefAN = (q: NewQuery) => asName(makePref(q));
17
+ getTableAlias = (q: NewQuery) => !q.tableAlias? q.table : `${q.tableAlias || ""}_${q.table}`,
18
+ getTableJoinAliasAsName = (joinAlias: string | undefined, table: string) => asName(!joinAlias? table : `${joinAlias || ""}_${table}`),
19
+ getTableAliasAsName = (q: NewQuery) => asName(getTableAlias(q));
20
20
 
21
- const indentLine = (numInd: number, str: string, indentStr = " ") => new Array(numInd).fill(indentStr).join("") + str;
22
- const indStr = (numInd: number, str: string) => str.split("\n").map(s => indentLine(numInd, s)).join("\n");
23
- const indjArr = (numInd: number, strArr: string[], indentStr = " "): string[] => strArr.map(str => indentLine(numInd, str) );
24
- const indJ = (numInd: number, strArr: string[], separator = " \n ", indentStr = " ") => indjArr(numInd, strArr, indentStr).join(separator);
25
- const selectArrComma = (strArr: string[]): string[] => strArr.map((s, i, arr)=> s + (i < arr.length - 1? " , " : " "));
26
- const prefJCAN = (q: NewQuery, str: string) => asName(`${q.tableAlias || q.table}_${PREF}_${str}`);
21
+ const indentLine = (numberOfSpaces: number, str: string, indentStr = " "): string => new Array(numberOfSpaces).fill(indentStr).join("") + str;
22
+
23
+ const indentArray = (numberOfSpaces: number, strArr: string[], indentStr = " "): string[] => strArr.map(str => indentLine(numberOfSpaces, str, indentStr) );
24
+
25
+ const indentArrayAndJoin = (numberOfSpaces: number, strArr: string[], separator = " \n ", indentStr = " ") => indentArray(numberOfSpaces, strArr, indentStr).join(separator);
26
+
27
+ const appendCommas = (strArr: string[]): string[] => strArr.map((s, i, arr)=> s + (i < arr.length - 1? " , " : " "));
28
+
29
+ const createAlias = (q: NewQuery, str: string) => asName(`${q.tableAlias || q.table}_${PREF}_${str}`);
27
30
 
28
31
  // const indent = (a, b) => a;
29
- const joinTables = (q1: NewQuery, q2: NewQuery): string[] => {
32
+ const joinTables = (q1: NewQuery, q2: NewQuery): { t1Alias: string; t2Alias: string; query: string[]; rowidSortedColName: string; rowidDupesColName: string; jsonColName: string; limitColName: string; q: NewQuery }=> {
30
33
  const joinInfo = _this.getJoins(q1.table, q2.table, q2.$path, true);
31
34
  const paths = joinInfo.paths;
32
35
 
33
- return paths.flatMap(({ table, on }, i) => {
36
+ let rowidSortedColName = "";
37
+ let rowidDupesColName = "";
38
+ let jsonColName = "";
39
+ let t2Alias = "";
40
+ let limitColName = "";
41
+ const t1Alias = q.table;
42
+
43
+ const queries = paths.flatMap(({ table, on }, i): { query: string[]; prevTable: string; thisAlias: string; } => {
34
44
  const getColName = (col: string, q: NewQuery) => {
35
45
  if(table === q.table){
36
46
  const colFromSelect = q.select.find(s => s.getQuery() === asName(col));
@@ -43,6 +53,7 @@ export function makeSelectQuery(
43
53
 
44
54
  return col;
45
55
  }
56
+
46
57
  const getPrevColName = (col: string) => {
47
58
  return getColName(col, q1);
48
59
  }
@@ -52,26 +63,18 @@ export function makeSelectQuery(
52
63
 
53
64
  // console.log(JSON.stringify({i, table, on, q1, q2}, null, 2));
54
65
 
55
- const prevTable = i === 0? q1.table : (paths[i - 1].table);
56
- const thisAlias = makePrefANON(q2.tableAlias, table);
57
- // const prevAlias = i === 0? makePrefAN(q1) : thisAlias;
58
- const prevAlias = i === 0? makePrefAN(q1) : makePrefANON(q2.tableAlias, prevTable)
59
- // If root then prev table is aliased from root query. Alias from join otherwise
66
+ const prevTable = i === 0? t1Alias : (paths[i - 1].table);
67
+ const thisAlias = getTableJoinAliasAsName(q2.tableAlias, table);
68
+
69
+ const prevAlias = i === 0? getTableAliasAsName(q1) : getTableJoinAliasAsName(q2.tableAlias, prevTable);
60
70
 
71
+ /* If root then prev table is aliased from root query. Alias from join otherwise */
61
72
  let iQ = [
62
73
  asName(table) + ` ${thisAlias}`
63
74
  ];
64
75
 
65
76
  /* If target table then add filters, options, etc */
66
77
  if(i === paths.length - 1){
67
-
68
- // const targetSelect = (
69
- // q2.select.concat(
70
- // (q2.joins || []).map(j => j.tableAlias || j.table)
71
- // ).concat(
72
- // /* Rename aggs to avoid collision with join cols */
73
- // (q2.aggs || []).map(a => asName(`agg_${a.alias}`) + " AS " + asName(a.alias)) || [])
74
- // ).filter(s => s).join(", ");
75
78
 
76
79
  const targetSelect = q2.select.filter(s => s.selected).map(s => {
77
80
  /* Rename aggs to avoid collision with join cols */
@@ -79,30 +82,32 @@ export function makeSelectQuery(
79
82
  return asName(s.alias);
80
83
  }).concat(q2.joins?.map(j => asName(j.table)) ?? []).join(", ");
81
84
 
82
- const _iiQ = makeSelectQuery(
85
+ const leafSelect = makeSelectQuery(
83
86
  _this,
84
87
  q2,
85
- depth + 1,
86
- // on.map(([c1, c2]) => asName(c2)),
88
+ depth + 1,
87
89
  on.flatMap(cond => cond.map(([c1, c2]) => asName(c2))),
88
90
  selectParams,
89
- );
90
- // const iiQ = flat(_iiQ.split("\n")); // prettify for debugging
91
- // console.log(_iiQ)
92
- const iiQ = [_iiQ];
91
+ ).split("\n");
92
+
93
+ t2Alias = thisAlias;
94
+ rowidSortedColName = createAlias(q2, `rowid_sorted`);
95
+ rowidDupesColName = createAlias(q2, `dupes_rowid`);
96
+ limitColName = createAlias(q2, `limit`);
97
+ jsonColName = createAlias(q2, `json`)
93
98
 
94
99
  iQ = [
95
- "("
96
- , ...indjArr(depth + 1, [
100
+ "("
101
+ ,...indentArray(depth + 1, [
97
102
  `-- 4. [target table] `
98
103
  , `SELECT *,`
99
- , `row_number() over() as ${prefJCAN(q2, `rowid_sorted`)},`
100
- , `row_to_json((select x from (SELECT ${targetSelect}) as x)) AS ${prefJCAN(q2, `json`)}`
104
+ , `row_number() over() as ${rowidSortedColName},`
105
+ , `row_to_json((select x from (SELECT ${targetSelect}) as x)) AS ${jsonColName}`
101
106
  , `FROM (`
102
- , ...iiQ
107
+ , ...indentArray(depth + 2, leafSelect)
103
108
  , `) ${asName(q2.table)} `
104
- ])
105
- , `) ${thisAlias}`
109
+ ]),
110
+ `) ${thisAlias}`
106
111
  ]
107
112
  }
108
113
 
@@ -113,19 +118,21 @@ export function makeSelectQuery(
113
118
  ).join(" OR ")
114
119
  }
115
120
 
116
- let jres: string[] = [
121
+ let query: string[] = [
117
122
  `${q2.isLeftJoin? "LEFT" : "INNER"} JOIN `
118
123
  , ...iQ
119
124
  , `ON ${getJoinCondition(prevAlias, thisAlias, on)}`
120
125
  ];
121
- return jres;
126
+ return { query, prevTable, thisAlias };
122
127
  });
128
+
129
+ return { q: q2, query: queries.flatMap(q => q.query), t1Alias: q.table, t2Alias, rowidSortedColName: rowidSortedColName, jsonColName, rowidDupesColName, limitColName }
123
130
  }
124
131
 
125
132
  const getGroupBy = (rootSelectItems: SelectItem[], groupByItems: SelectItem[]): string => {
126
133
  if(groupByItems.length){
127
- /** Root Select column index number is used where possible to prevent "non-integer constant in GROUP BY" error */
128
134
 
135
+ /** Root Select column index number is used where possible to prevent "non-integer constant in GROUP BY" error */
129
136
  return `GROUP BY ` + groupByItems.map(gi => {
130
137
  const idx = rootSelectItems.findIndex(si => si.alias === gi.alias);
131
138
  if(idx < 0) throw `Could not find GROUP BY column ${gi.alias} in ROOT SELECT ${rootSelectItems.map(s => s.alias)}`;
@@ -133,13 +140,14 @@ export function makeSelectQuery(
133
140
  }).join(", ")
134
141
  }
135
142
 
136
- return ""
143
+ return "";
137
144
  }
138
145
 
139
- /* Leaf query -> no joins -> return simple query */
146
+ /* Leaf query with no joins -> return simple query */
140
147
  const aggs = q.select.filter(s => s.type === "aggregation");
141
148
  const nonAggs = q.select.filter(s => depth || s.selected).filter(s => s.type !== "aggregation");
142
149
  if(!joins.length){
150
+
143
151
  /* Nested queries contain all fields to allow joining */
144
152
  let groupBy = "";
145
153
 
@@ -147,22 +155,14 @@ export function makeSelectQuery(
147
155
 
148
156
  /* If aggs exist need to set groupBy add joinFields into select */
149
157
  if(aggs.length || selectParams?.groupBy){
150
- // const missingFields = joinFields.filter(jf => !q.select.find(s => s.type === "column" && s.alias === jf));
151
- // if(depth && missingFields.length){
152
- // // select = Array.from(new Set(missingFields.concat(select)));
153
- // }
154
158
 
155
159
  if(nonAggs.length){
156
160
  let groupByFields = nonAggs.filter(sf => !depth || joinFields.includes(sf.getQuery()));
157
161
  groupBy = getGroupBy(rootSelectItems, groupByFields);
158
- // if(groupByFields.length){
159
- // groupBy = `GROUP BY ${groupByFields.map(sf => sf.type === "function"? sf.getQuery() : asName(sf.alias)).join(", ")}\n`;
160
- // }
161
162
  }
162
163
  }
163
164
 
164
- // console.log(q.select, joinFields)
165
- let simpleQuery = indJ(depth, [
165
+ let simpleQuery = indentArrayAndJoin(depth, [
166
166
  `-- 0. or 5. [leaf query] `
167
167
 
168
168
  /* Group by selected fields + any join fields */
@@ -221,56 +221,62 @@ export function makeSelectQuery(
221
221
  rootGroupBy = `GROUP BY ${groupByItems.join(", ")} `
222
222
  }
223
223
 
224
+ const parsedJoins = joins.map(j => joinTables(q, j));
225
+
224
226
  /* Joined query */
225
227
  const joinedQuery = [
226
228
  " \n"
227
229
  , `-- 0. [joined root] `
228
230
  , "SELECT "
229
- ,...selectArrComma(rootSelectItems.map(s => s.getQuery() + " AS " + asName(s.alias)).concat(
230
- joins.map((j, i)=> {
231
+ ,...appendCommas(rootSelectItems.map(s => s.getQuery() + " AS " + asName(s.alias)).concat(
232
+ parsedJoins.map((j, i)=> {
231
233
 
232
234
  /** Apply LIMIT to joined items */
233
- const jsq = `json_agg(${prefJCAN(j, `json`)}::jsonb ORDER BY ${prefJCAN(j, `rowid_sorted`)}) FILTER (WHERE ${prefJCAN(j, `limit`)} <= ${j.limit} AND ${prefJCAN(j, `dupes_rowid`)} = 1 AND ${prefJCAN(j, `json`)} IS NOT NULL)`;
234
- const resAlias = asName(j.tableAlias || j.table)
235
+ const jsq = `json_agg(${j.jsonColName}::jsonb ORDER BY ${j.rowidSortedColName}) FILTER (WHERE ${j.limitColName} <= ${j.q.limit} AND ${j.rowidDupesColName} = 1 AND ${j.jsonColName} IS NOT NULL)`;
236
+ const resAlias = asName(j.q.tableAlias || j.q.table)
235
237
 
236
- // If limit = 1 then return a single json object (first one)
237
- return (j.limit === 1? `${jsq}->0 ` : `COALESCE(${jsq}, '[]') `) + ` AS ${resAlias}`;
238
+ /* If limit = 1 then return a single json object (first one) */
239
+ return (j.q.limit === 1? `${jsq}->0 ` : `COALESCE(${jsq}, '[]') `) + ` AS ${resAlias}`;
238
240
  })
239
241
  ))
240
242
  , `FROM ( `
241
- , ...indjArr(depth + 1, [
243
+ , ...indentArray(depth + 1, [
242
244
  "-- 1. [subquery limit + dupes] "
243
245
  , "SELECT "
244
- , ...selectArrComma([`t1.*`].concat(
245
- joins.map((j, i)=> {
246
- return `row_number() over(partition by ${prefJCAN(j, `dupes_rowid`)}, ` +
247
- `ctid order by ${prefJCAN(j, `rowid_sorted`)}) AS ${prefJCAN(j, `limit`)} `
246
+ , ...appendCommas([`t1.*`].concat(
247
+ parsedJoins.map((j, i)=> {
248
+ return `row_number() over(partition by ${j.rowidDupesColName}, ` +
249
+ `ctid order by ${j.rowidDupesColName}) AS ${j.limitColName} `
248
250
  }))
249
251
  )
250
- , `FROM ( ----------- ${makePrefAN(q)}`
251
- , ...indjArr(depth + 1, [
252
+ , `FROM ( ----------- ${getTableAliasAsName(q)}`
253
+ , ...indentArray(depth + 1, [
252
254
  "-- 2. [source full select + ctid to group by] "
253
255
  , "SELECT "
254
- , ...selectArrComma(
256
+ , ...appendCommas(
255
257
  q.allFields.concat(["ctid"])
256
- .map(field => `${makePrefAN(q)}.${asName(field)} `)
258
+ .map(field => `${getTableAliasAsName(q)}.${asName(field)} `)
257
259
  .concat(
258
- joins.map((j, i)=>
259
- makePrefAN(j) + "." + prefJCAN(j, `json`) + ", " + makePrefAN(j) + "." + prefJCAN(j, `rowid_sorted`)
260
- ).concat(
261
- joins.map(j => `row_number() over(partition by ${makePrefAN(j)}.${prefJCAN(j, `rowid_sorted`)}, ${makePrefAN(q)}.ctid ) AS ${prefJCAN(j, `dupes_rowid`)}`)
262
- )
263
- ))
260
+ parsedJoins.map((j, i) =>
261
+ j.t2Alias + "." + j.jsonColName + ", " +
262
+ j.t2Alias + "." + j.rowidSortedColName + ", " +
263
+ `row_number() over(partition by ` +
264
+ `${j.t2Alias}.${j.rowidSortedColName}, ` +
265
+ `${getTableAliasAsName(q)}.ctid ) AS ${j.rowidDupesColName}`
266
+ )
267
+ )
268
+
269
+ )
264
270
  , `FROM ( `
265
- , ...indjArr(depth + 1, [
271
+ , ...indentArray(depth + 1, [
266
272
  "-- 3. [source table] "
267
273
  , "SELECT "
268
274
  , "*, row_number() over() as ctid "
269
275
  , `FROM ${asName(q.table)} `
270
276
  , `${q.where} `
271
277
  ])
272
- , `) ${makePrefAN(q)} `
273
- , ...joins.flatMap((j, i)=> joinTables(q, j))
278
+ , `) ${getTableAliasAsName(q)} `
279
+ , ...joins.flatMap((j, i) => joinTables(q, j).query)
274
280
  ])
275
281
  , ") t1"
276
282
  ])
@@ -283,7 +289,7 @@ export function makeSelectQuery(
283
289
  , " \n"
284
290
  ].filter(v => v)
285
291
 
286
- let res = indJ(depth, joinedQuery as unknown as string[]);
292
+ let res = indentArrayAndJoin(depth, joinedQuery as unknown as string[]);
287
293
  // res = indent(res, depth);
288
294
  // console.log(res);
289
295
  return res;
@@ -386,7 +386,6 @@ export declare class DboBuilder {
386
386
  getPubSubManager: () => Promise<PubSubManager>;
387
387
  pojoDefinitions?: string[];
388
388
  tsTypesDefinition?: string;
389
- joins?: Join[];
390
389
  joinGraph?: Graph;
391
390
  joinPaths: JoinPaths;
392
391
  prostgles: Prostgles;
@@ -399,7 +398,9 @@ export declare class DboBuilder {
399
398
  private init;
400
399
  static create: (prostgles: Prostgles) => Promise<DboBuilder>;
401
400
  destroy(): void;
402
- getJoins(): Join[];
401
+ _joins?: Join[];
402
+ get joins(): Join[];
403
+ set joins(j: Join[]);
403
404
  getJoinPaths(): JoinPaths;
404
405
  parseJoins(): Promise<JoinPaths>;
405
406
  private runSQL;