@mostfeatured/dbi 0.1.19 → 0.1.20

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/DBI.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"DBI.js","sourceRoot":"","sources":["../src/DBI.ts"],"names":[],"mappings":";;;;AAAA,oEAAqD;AACrD,2DAGqC;AACrC,yEAAyE;AACzE,uEAAoE;AACpE,yCAAyE;AACzE,qDAAkD;AAClD,iFAA8E;AAC9E,qCAAkC;AAClC,iDAI8B;AAC9B,sDAAyE;AACzE,0EAG6C;AAC7C,yEAG0C;AAC1C,mEAGuC;AACvC,qEAAkE;AAClE,iFAA4C;AAC5C,oDAAsE;AACtE,0EAAoD;AACpD,4DAAuB;AACvB,uEAGyC;AAGzC,2DAGmC;AACnC,8EAAkC;AAClC,sEAG2C;AAC3C,oFAGkD;AAClD,4EAG8C;AAC9C,sEAG2C;AAC3C,2EAAwE;AAyLxE,MAAa,GAAG;IAId,SAAS,CAAa;IACtB,MAAM,CAAwB;IAC9B,IAAI,CAsBF;IACF,MAAM,CAAqB;IAC3B,OAAO,CAA0C;IACzC,OAAO,CAAU;IACjB,OAAO,CAAU;IACzB,YAAY,SAAqB,EAAE,MAAwC;QACzE,IAAI,CAAC,SAAS,GAAG,SAAgB,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,MAAM,CAAC,KAAK,GAAI,MAAM,CAAC,KAAa,IAAI,IAAI,yBAAW,EAAE,CAAC;QAC1D,MAAM,CAAC,QAAQ,GAAG;YAChB,MAAM,EAAE,IAAI;YACZ,wBAAwB,EAAE,EAAE;YAC5B,cAAc,EAAE,KAAK;YACrB,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;YAC1B,eAAe,EAAE,CAAC,GAAG,EAAE;gBACrB,IAAI,iBAAiB,GAAG,MAAM,CAAC,QAAQ,EAAE,eAAe,EAAE,iBAAiB,CAAA;gBAC3E,OAAO;oBACL,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,eAAe,IAAI,EAAE,CAAC;oBAC3C,iBAAiB,EAAE,CAAC,OAAO,iBAAiB,KAAK,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,iBAAiB,IAAI,YAAY,CAAQ;iBAClI,CAAA;YACH,CAAC,CAAC,EAAE;SACL,CAAC;QACF,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC;QAC3C,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC;QACtC,MAAM,CAAC,UAAU,GAAG;YAClB,SAAS,EAAE,SAAS;YACpB,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;SAC7B,CAAC;QACF,MAAM,CAAC,eAAe,GAAG;YACvB,SAAS,EAAE;gBACT,KAAK,EAAE,KAAK;gBACZ,GAAG,EAAE,MAAM;aACZ;YACD,GAAG,CAAC,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC;SAClC,CAAC;QAEF,IAAI,MAAM,CAAC,eAAe,EAAE;YAC1B,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,eAAe,CAAC;YAEzD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM;gBAC9D,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAE3C,MAAM,UAAU,GAAG,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC;YAE9E,MAAM,CAAC,eAAe,CAAC,QAAQ,GAAG,UAAU,CAAC;YAC7C,MAAM,CAAC,eAAe,CAAC,WAAW,GAAG;gBACnC,QAAQ,EAAE,WAAW,CAAC,QAAQ,IAAI;oBAChC,IAAI,EAAE,IAAI;oBACV,KAAK,EAAE,KAAK;oBACZ,GAAG,EAAE,IAAI;oBACT,EAAE,EAAE,KAAK;oBACT,CAAC,EAAE,IAAI;oBACP,CAAC,EAAE,KAAK;oBACR,GAAG,EAAE,IAAI;oBACT,GAAG,EAAE,KAAK;iBACX;aACF,CAAC;SACH;QAED,aAAa;QACb,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,IAAI,CAAC,IAAI,GAAG;YACV,YAAY,EAAE,IAAI,oBAAO,CAAC,UAAU,EAAE;YACtC,MAAM,EAAE,IAAI,oBAAO,CAAC,UAAU,EAAE;YAChC,OAAO,EAAE,IAAI,oBAAO,CAAC,UAAU,EAAE;YACjC,kBAAkB,EAAE,IAAI,oBAAO,CAAC,UAAU,EAAE;YAC5C,KAAK,EAAG,MAAM,CAAC,IAAI,EAAE,KAAa,IAAK,EAAiB;YACxD,QAAQ,EAAE,EAAE,GAAG,uBAAQ,EAAE;YACzB,gBAAgB,EAAE,IAAI,GAAG,EAAE;YAC3B,SAAS,EAAE,IAAI,GAAG,EAAE;YACpB,SAAS,EAAE,IAAI,GAAG,EAAE;YACpB,iBAAiB,EAAE,IAAI,GAAG,EAAE;YAC5B,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE;YACpC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE;gBACzB,IAAI,CAAC,GAAG,GAAG,QAAQ;oBACjB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;oBAClE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;gBACjC,CAAC;gBACD,MAAM,CAAC,IAAa;oBAClB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;wBAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;qBAC5D;yBAAM;wBACL,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;qBACtD;gBACH,CAAC;gBACD,KAAK;oBACH,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;gBACjB,CAAC;gBACD,GAAG,CAAC,SAAiB;oBACnB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;gBAC1D,CAAC;gBACD,OAAO,EAAE,EAAE;aACZ,CAAQ;SACV,CAAC;QAEF,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,IAAW,CAAC,CAAC;QAEtC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;YAC5C,CAAC,CAAC,MAAM,CAAC,OAAO;YAChB,CAAC,CAAC;gBACA;oBACE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK;oBAC3B,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO;oBAC/B,SAAS,EAAE,SAAS;iBACrB;aACF,CAAC;QAEJ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAI,MAAM,CAAC,OAAe,CAAC,CAAC;QACnD,KAAK,IAAI,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YAC3C,IAAI,MAAM,GAAG,IAAI,oBAAO,CAAC,MAAM,CAAC;gBAC9B,GAAI,CAAC,aAAa,CAAC,OAAO,IAAI,EAAE,CAAS;gBACzC,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,QAAQ;oBAC7B,CAAC,CAAC;wBACA,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,UAAU;wBACrC,UAAU,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,YAAY;qBAC5C;oBACD,CAAC,CAAC,EAAE,CAAC;aACR,CAAC,CAAC;YACH,aAAa,CAAC,MAAM,GAAG,MAA8B,CAAC;SACvD;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC5E,IACE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAC9B,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC;YAE/C,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAEtD,IAAI,CAAC,OAAO;YACV,MAAM,CAAC,QAAQ,IAAI,QAAQ;gBACzB,CAAC,CAAC,IAAI,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBACzD,CAAC,CAAC,SAAS,CAAC;QAChB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAA,mDAAwB,EAAC,IAAW,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAA,uCAAkB,EAAC,IAAW,CAAC,CAAC,CAAC;QACzD,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,KAAK,WAAW,EAAE;YAC3D,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CACrB,CAAC,GAAG,EAAE;gBACJ,IAAI,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;oBAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE;wBAC1C,IACE,IAAI,CAAC,GAAG,EAAE;4BACV,EAAE,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,EAClD;4BACA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;yBAC5B;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAC3C,OAAO,GAAG,EAAE;oBACV,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC1B,CAAC,CAAC;YACJ,CAAC,CAAC,EAAE,CACL,CAAC;SACH;QACD,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,KAAK,WAAW,EAAE;YAChE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CACrB,CAAC,GAAG,EAAE;gBACJ,IAAI,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;oBAC9B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;wBACxC,IACE,CAAC,CAAC,GAAG;4BACL,CAAC,IAAI,CAAC,GAAG,EAAE;gCACT,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAC9D;4BACA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;yBACpC;oBACH,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;wBAClC,IACE,CAAC,CAAC,GAAG;4BACL,CAAC,IAAI,CAAC,GAAG,EAAE;gCACT,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAC9D;4BACA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;yBAC9B;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAChD,OAAO,GAAG,EAAE;oBACV,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC1B,CAAC,CAAC;YACJ,CAAC,CAAC,EAAE,CACL,CAAC;SACH;QACD,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,KAAK,WAAW,EAAE;YACtD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CACrB,CAAC,GAAG,EAAE;gBACJ,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gBAEjC,SAAS,SAAS,CAAC,OAAwB;oBACzC,IAAA,6CAAqB,EAAC,IAAW,EAAE,OAAO,CAAC,CAAC;gBAC9C,CAAC;gBAED,MAAM,CAAC,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;gBACtC,OAAO,GAAG,EAAE;oBACV,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;gBACzC,CAAC,CAAC;YACJ,CAAC,CAAC,EAAE,CACL,CAAC;SACH;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAChC,CAAC,EAAE,CAAC;QACN,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,IAAI,KAAK,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAClD,MAAM,EAAE,EAAE,CAAC;SACZ;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAEvB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IACrC,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,QAAkB,EAAE;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,MAAM,gBAAgB,GAAG,IAAI,sCAAmB,CAAC,IAAI,CAAC,CAAC;QAEvD,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAE7E,IAAI,KAAK,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YAC1C,IAAI,SAAS,GAAG,UAAU,GAA6B;gBACrD,IAAI,YAAY,GAAG,IAAI,wBAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC/C,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC;oBAC/C,MAAM,IAAI,KAAK,CACb,iBAAiB,YAAY,CAAC,IAAI,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IACzG,IAAI,CACL,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;gBAChI,OAAO,YAAY,CAAC;YACtB,CAAC,CAAC;YACF,SAAS,GAAG,MAAM,CAAC,MAAM,CACvB,SAAS,EACT;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBAC5C,CAAC;aACF,CACF,CAAC;YAEF,IAAI,KAAK,GAAG,UAAU,GAAiC;gBACrD,IAAI,QAAQ,GAAG,IAAI,gBAAQ,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBAC9C,IACE,IAAI,CAAC,MAAM,CAAC,MAAM;oBAClB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;oBAElD,MAAM,IAAI,KAAK,CACb,aAAa,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,IAAI,mBAAmB,CAC7D,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBACjI,OAAO,QAAQ,CAAC;YAClB,CAAC,CAAC;YACF,KAAK,GAAG,MAAM,CAAC,MAAM,CACnB,KAAK,EACL;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBACxC,CAAC;aACF,CACF,CAAC;YAEF,IAAI,iBAAiB,GAAG,UAAU,GAA6C;gBAC7E,OAAO,KAAK,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,cAAc,EAAE,EAAS,CAAC,CAAC;YACrH,CAAC,CAAA;YAED,IAAI,MAAM,GAAG,UAAU,GAAkC;gBACvD,IAAI,SAAS,GAAG,IAAI,kBAAS,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBAChD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;oBAClE,MAAM,IAAI,KAAK,CACb,cAAc,SAAS,CAAC,IAAI,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAChG,IAAI,CACL,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,SAAgB,CAAC,CAAC;gBACjI,OAAO,SAAS,CAAC;YACnB,CAAC,CAAC;YACF,MAAM,GAAG,MAAM,CAAC,MAAM,CACpB,MAAM,EACN;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBACzC,CAAC;aACF,CACF,CAAC;YAEF,IAAI,kBAAkB,GAAG,UAAU,GAAuD;gBACxF,IAAI,EAAE,GAAG,cAAc,EAAE,CAAC;gBAC1B,OAAO,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAS,CAAC,CAAC;YAC9G,CAAC,CAAA;YAED,IAAI,gBAAgB,GAAG,UACrB,GAA4C;gBAE5C,IAAI,mBAAmB,GAAG,IAAI,sCAAmB,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBACpE,IACE,IAAI,CAAC,MAAM,CAAC,MAAM;oBAClB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC;oBAEpD,MAAM,IAAI,KAAK,CACb,wBAAwB,mBAAmB,CAAC,IAC5C,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAC9E,IAAI,CACL,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAC5F,mBAAmB,CAAC,IAAI,EACxB,mBAA0B,CAC3B,CAAC;gBACF,OAAO,mBAAmB,CAAC;YAC7B,CAAC,CAAC;YACF,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAC9B,gBAAgB,EAChB;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,gBAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBACnD,CAAC;aACF,CACF,CAAC;YAEF,IAAI,4BAA4B,GAAG,UAAU,GAAiE;gBAC5G,IAAI,EAAE,GAAG,cAAc,EAAE,CAAC;gBAC1B,OAAO,gBAAgB,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAS,CAAC,CAAC;YACxH,CAAC,CAAA;YAED,IAAI,cAAc,GAAG,UACnB,GAA0C;gBAE1C,IAAI,iBAAiB,GAAG,IAAI,kCAAiB,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBAChE,IACE,IAAI,CAAC,MAAM,CAAC,MAAM;oBAClB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC;oBAElD,MAAM,IAAI,KAAK,CACb,sBAAsB,iBAAiB,CAAC,IAAI,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,IACxH,IAAI,CACL,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAC5F,iBAAiB,CAAC,IAAI,EACtB,iBAAwB,CACzB,CAAC;gBACF,OAAO,iBAAiB,CAAC;YAC3B,CAAC,CAAC;YACF,cAAc,GAAG,MAAM,CAAC,MAAM,CAC5B,cAAc,EACd;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBACjD,CAAC;aACF,CACF,CAAC;YAEF,IAAI,0BAA0B,GAAG,UAAU,GAA+D;gBACxG,IAAI,EAAE,GAAG,cAAc,EAAE,CAAC;gBAC1B,OAAO,cAAc,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAS,CAAC,CAAC;YACtH,CAAC,CAAA;YAED,IAAI,cAAc,GAAG,UACnB,GAA0C;gBAE1C,IAAI,iBAAiB,GAAG,IAAI,kCAAiB,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBAChE,IACE,IAAI,CAAC,MAAM,CAAC,MAAM;oBAClB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC;oBAElD,MAAM,IAAI,KAAK,CACb,sBAAsB,iBAAiB,CAAC,IAAI,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,IACxH,IAAI,CACL,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAC5F,iBAAiB,CAAC,IAAI,EACtB,iBAAwB,CACzB,CAAC;gBACF,OAAO,iBAAiB,CAAC;YAC3B,CAAC,CAAC;YACF,cAAc,GAAG,MAAM,CAAC,MAAM,CAC5B,cAAc,EACd;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBACjD,CAAC;aACF,CACF,CAAC;YAEF,IAAI,0BAA0B,GAAG,UAAU,GAA+D;gBACxG,IAAI,EAAE,GAAG,cAAc,EAAE,CAAC;gBAC1B,OAAO,cAAc,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAS,CAAC,CAAC;YACtH,CAAC,CAAA;YAED,IAAI,iBAAiB,GAAG,UACtB,GAA6C;gBAE7C,IAAI,oBAAoB,GAAG,IAAI,wCAAoB,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBACtE,IACE,IAAI,CAAC,MAAM,CAAC,MAAM;oBAClB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC;oBAErD,MAAM,IAAI,KAAK,CACb,yBAAyB,oBAAoB,CAAC,IAC9C,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,IAC/E,IAAI,CACL,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAC5F,oBAAoB,CAAC,IAAI,EACzB,oBAA2B,CAC5B,CAAC;gBACF,OAAO,oBAAoB,CAAC;YAC9B,CAAC,CAAC;YACF,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAC/B,iBAAiB,EACjB;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBACpD,CAAC;aACF,CACF,CAAC;YAEF,IAAI,6BAA6B,GAAG,UAAU,GAAkE;gBAC9G,IAAI,EAAE,GAAG,cAAc,EAAE,CAAC;gBAC1B,OAAO,iBAAiB,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAS,CAAC,CAAC;YACzH,CAAC,CAAA;YAED,IAAI,qBAAqB,GAAG,UAC1B,GAAiD;gBAEjD,IAAI,wBAAwB,GAAG,IAAI,gDAAwB,CACzD,IAAW,EACX,GAAG,CACJ,CAAC;gBACF,IACE,IAAI,CAAC,MAAM,CAAC,MAAM;oBAClB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,CAAC;oBAEzD,MAAM,IAAI,KAAK,CACb,6BAA6B,wBAAwB,CAAC,IACtD,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,IACnF,IAAI,CACL,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAC5F,wBAAwB,CAAC,IAAI,EAC7B,wBAA+B,CAChC,CAAC;gBACF,OAAO,wBAAwB,CAAC;YAClC,CAAC,CAAC;YACF,qBAAqB,GAAG,MAAM,CAAC,MAAM,CACnC,qBAAqB,EACrB;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,qBAAqB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBACxD,CAAC;aACF,CACF,CAAC;YAEF,IAAI,iCAAiC,GAAG,UAAU,GAAsE;gBACtH,IAAI,EAAE,GAAG,cAAc,EAAE,CAAC;gBAC1B,OAAO,qBAAqB,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAS,CAAC,CAAC;YAC7H,CAAC,CAAA;YAED,IAAI,kBAAkB,GAAG,UACvB,GAA8C;gBAE9C,IAAI,qBAAqB,GAAG,IAAI,0CAAqB,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBACxE,IACE,IAAI,CAAC,MAAM,CAAC,MAAM;oBAClB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,CAAC;oBAEtD,MAAM,IAAI,KAAK,CACb,0BAA0B,qBAAqB,CAAC,IAChD,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,IAChF,IAAI,CACL,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAC5F,qBAAqB,CAAC,IAAI,EAC1B,qBAA4B,CAC7B,CAAC;gBACF,OAAO,qBAAqB,CAAC;YAC/B,CAAC,CAAC;YACF,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAChC,kBAAkB,EAClB;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBACrD,CAAC;aACF,CACF,CAAC;YAEF,IAAI,eAAe,GAAG,UACpB,GAA2C;gBAE3C,IAAI,kBAAkB,GAAG,IAAI,oCAAkB,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBAClE,IACE,IAAI,CAAC,MAAM,CAAC,MAAM;oBAClB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC;oBAEnD,MAAM,IAAI,KAAK,CACb,uBAAuB,kBAAkB,CAAC,IAC1C,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,IAC7E,IAAI,CACL,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAC5F,kBAAkB,CAAC,IAAI,EACvB,kBAAyB,CAC1B,CAAC;gBACF,OAAO,kBAAkB,CAAC;YAC5B,CAAC,CAAC;YACF,eAAe,GAAG,MAAM,CAAC,MAAM,CAC7B,eAAe,EACf;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBAClD,CAAC;aACF,CACF,CAAC;YAEF,IAAI,KAAK,GAAG,UAAU,GAAiC;gBACrD,IAAI,QAAQ,GAAG,IAAI,gBAAQ,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBAC9C,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACjE,MAAM,IAAI,KAAK,CACb,aAAa,QAAQ,CAAC,IAAI,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAC7F,IAAI,CACL,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAe,CAAC,CAAC;gBAC/H,OAAO,QAAQ,CAAC;YAClB,CAAC,CAAC;YACF,KAAK,GAAG,MAAM,CAAC,MAAM,CACnB,KAAK,EACL;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBACxC,CAAC;aACF,CACF,CAAC;YAEF,IAAI,iBAAiB,GAAG,UAAU,GAAsD;gBACtF,IAAI,EAAE,GAAG,cAAc,EAAE,CAAC;gBAC1B,OAAO,KAAK,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAS,CAAC,CAAC;YAC7G,CAAC,CAAA;YAED,IAAI,MAAM,GAAG,UAAU,GAAsC;gBAC3D,IAAI,SAAS,GAAG,IAAI,kBAAS,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBAChD,IACE,IAAI,CAAC,MAAM,CAAC,MAAM;oBAClB,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;oBAEhD,MAAM,IAAI,KAAK,CAAC,cAAc,SAAS,CAAC,IAAI,mBAAmB,CAAC,CAAC;gBACnE,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;oBACvC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC/D,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBACrH,OAAO,SAAS,CAAC;YACnB,CAAC,CAAC;YACF,MAAM,GAAG,MAAM,CAAC,MAAM,CACpB,MAAM,EACN;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBACzC,CAAC;aACF,CACF,CAAC;YAEF,IAAI,WAAW,GAAG,UAAU,GAAuC;gBACjE,IAAI,cAAc,GAAG,IAAI,4BAAc,CAAC,IAAI,EAAE,GAAG,CAAQ,CAAC;gBAC1D,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC;oBAC/D,MAAM,IAAI,KAAK,CACb,mBAAmB,cAAc,CAAC,IAAI,mBAAmB,CAC1D,CAAC;gBACJ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC;gBAC7D,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBACpD,OAAO,cAAc,CAAC;YACxB,CAAC,CAAC;YACF,WAAW,GAAG,MAAM,CAAC,MAAM,CACzB,WAAW,EACX;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBAC9C,CAAC;aACF,CACF,CAAC;YAEF,IAAI,iBAAiB,GAAG,UAAU,GAAiC;gBACjE,IAAI,oBAAoB,GAAG,IAAI,wCAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC/D,IACE,IAAI,CAAC,MAAM,CAAC,MAAM;oBAClB,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC;oBAE3D,MAAM,IAAI,KAAK,CACb,yBAAyB,oBAAoB,CAAC,IAAI,mBAAmB,CACtE,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAClG,oBAAoB,CAAC,IAAI,EACzB,oBAAoB,CACrB,CAAC;gBACF,OAAO,oBAAoB,CAAC;YAC9B,CAAC,CAAC;YACF,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAC/B,iBAAiB,EACjB;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBACpD,CAAC;aACF,CACF,CAAC;YAEF,MAAM,EAAE,CAAC;gBACP,SAAS;gBACT,KAAK;gBACL,gBAAgB;gBAChB,MAAM;gBACN,MAAM;gBACN,gBAAgB;gBAChB,cAAc;gBACd,cAAc;gBACd,iBAAiB;gBACjB,qBAAqB;gBACrB,kBAAkB;gBAClB,eAAe;gBACf,WAAW;gBACX,KAAK;gBACL,iBAAiB;gBACjB,kBAAkB;gBAClB,iBAAiB;gBACjB,4BAA4B;gBAC5B,0BAA0B;gBAC1B,0BAA0B;gBAC1B,6BAA6B;gBAC7B,iCAAiC;gBACjC,iBAAiB;gBACjB,QAAQ,CAAC,EAA4B;oBACnC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACtC,CAAC;aACF,CAAC,CAAC;SACJ;QACD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvE,CAAC;IAED,IAAI,CAIF,IAAgB,EAChB,IAA4E;QAE5E,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAW,EAAE,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAS,CAAC,CAC/D,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,WAAW,CAGT,IAAsB;QAEtB,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAW,CAAQ,CAAC;IACxD,CAAC;IAED,MAAM,CACJ,IAAkB;QAElB,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACxE,CAAC;IACD;;OAEG;IACH,KAAK,CACH,IAAgB;QAEhB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,MAAM,CACJ,IAAiB;QAEjB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAQ,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,GAAG,CACD,CAAI,EACJ,YAA4B;QAE5B,IAAI,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAQ,CAAC,EAAE;YACvC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;YAC1B,OAAO,YAAY,CAAC;SACrB;QACD,OAAO,gBAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,GAAG,CAA6B,CAAI,EAAE,CAAgB;QACpD,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,gBAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAY,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,CAAS;QACX,OAAO,gBAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAQ,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,CAAS;QACd,OAAO,gBAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,yBAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE;YAChE,MAAM,aAAa,CAAC,MAAM,CAAC,KAAK,CAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAC/D,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAA6C;QAC1D,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAG,KAAe;QAC3B,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAC/B,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,MAAM;QACV,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAChC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAKD,KAAK,CAAC,OAAO,CAAC,GAAG,IAAW;QAC1B,IAAI,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAC9C,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,IAAI,IAAI,WAAW;YACrB,CAAC,CAAC,IAAI,IAAI,oBAAoB;YAC9B,CAAC,CAAC,IAAI,IAAI,iBAAiB,CACvB,CAAC;QACT,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE;YACf,KAAK,QAAQ,CAAC,CAAC;gBACb,OAAO,MAAM,IAAA,yCAAmB,EAC9B,IAAI,CAAC,IAAI,CAAC,OAAO,EACjB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,oBAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,YAAY,EACjD,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAC5B,IAAI,CAAC,CAAC,CAAC,CACR,CAAC;aACH;YACD,KAAK,OAAO,CAAC,CAAC;gBACZ,OAAO,MAAM,IAAA,yCAAmB,EAC9B,IAAI,CAAC,IAAI,CAAC,OAAO,EACjB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,oBAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,YAAY,EACjD,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAC5B,IAAI,CAAC,CAAC,CAAC,EACP,IAAI,CAAC,CAAC,CAAC,CACR,CAAC;aACH;SACF;IACH,CAAC;CACF;AAzzBD,kBAyzBC","sourcesContent":["import Discord, { MessagePayload } from \"discord.js\";\r\nimport {\r\n DBIChatInput,\r\n TDBIChatInputOmitted,\r\n} from \"./types/ChatInput/ChatInput\";\r\nimport { DBIChatInputOptions } from \"./types/ChatInput/ChatInputOptions\";\r\nimport { publishInteractions } from \"./methods/publishInteractions\";\r\nimport { ClientEvents, DBIEvent, TDBIEventOmitted } from \"./types/Event\";\r\nimport { MemoryStore } from \"./utils/MemoryStore\";\r\nimport { hookInteractionListeners } from \"./methods/hookInteractionListeners\";\r\nimport { Events } from \"./Events\";\r\nimport {\r\n DBILocale,\r\n TDBILocaleConstructor,\r\n TDBILocaleString,\r\n} from \"./types/other/Locale\";\r\nimport { DBIButton, TDBIButtonOmitted } from \"./types/Components/Button\";\r\nimport {\r\n DBIStringSelectMenu,\r\n TDBIStringSelectMenuOmitted,\r\n} from \"./types/Components/StringSelectMenu\";\r\nimport {\r\n DBIMessageContextMenu,\r\n TDBIMessageContextMenuOmitted,\r\n} from \"./types/other/MessageContextMenu\";\r\nimport {\r\n DBIUserContextMenu,\r\n TDBIUserContextMenuOmitted,\r\n} from \"./types/other/UserContextMenu\";\r\nimport { hookEventListeners } from \"./methods/hookEventListeners\";\r\nimport eventMap from \"./data/eventMap.json\";\r\nimport { DBIModal, TDBIModalOmitted } from \"./types/Components/Modal\";\r\nimport * as Sharding from \"discord-hybrid-sharding\";\r\nimport _ from \"lodash\";\r\nimport {\r\n DBIInteractionLocale,\r\n TDBIInteractionLocaleOmitted,\r\n} from \"./types/other/InteractionLocale\";\r\nimport { TDBIInteractions } from \"./types/Interaction\";\r\nimport { NamespaceData, NamespaceEnums } from \"../generated/namespaceData\";\r\nimport {\r\n DBICustomEvent,\r\n TDBICustomEventOmitted,\r\n} from \"./types/other/CustomEvent\";\r\nimport aaq from \"async-and-quick\";\r\nimport {\r\n DBIUserSelectMenu,\r\n TDBIUserSelectMenuOmitted,\r\n} from \"./types/Components/UserSelectMenu\";\r\nimport {\r\n DBIMentionableSelectMenu,\r\n TDBIMentionableSelectMenuOmitted,\r\n} from \"./types/Components/MentionableSelectMenu\";\r\nimport {\r\n DBIChannelSelectMenu,\r\n TDBIChannelSelectMenuOmitted,\r\n} from \"./types/Components/ChannelSelectMenu\";\r\nimport {\r\n DBIRoleSelectMenu,\r\n TDBIRoleSelectMenuOmitted,\r\n} from \"./types/Components/RoleSelectMenu\";\r\nimport { handleMessageCommands } from \"./methods/handleMessageCommands\";\r\nimport { FakeMessageInteraction } from \"./types/other/FakeMessageInteraction\";\r\n\r\nexport interface DBIStore {\r\n get(key: string, defaultValue?: any): Promise<any>;\r\n set(key: string, value: any): Promise<void>;\r\n delete(key: string): Promise<void>;\r\n has(key: string): Promise<boolean>;\r\n}\r\n\r\nexport type TDBIClientData<TNamespace extends NamespaceEnums> = {\r\n namespace: NamespaceData[TNamespace][\"clientNamespaces\"];\r\n token: string;\r\n options: Discord.ClientOptions;\r\n client: Discord.Client<true>;\r\n};\r\n\r\nexport type TDBIMessageCommandsActionCtx<TNamespace extends NamespaceEnums> = {\r\n interaction: FakeMessageInteraction;\r\n dbiInteraction: DBIChatInput<TNamespace>;\r\n locale: { guild?: DBILocale<TNamespace>; user: DBILocale<TNamespace> };\r\n}\r\n\r\nexport type TDBIMessageCommandsPrefixesCtx = {\r\n message: Discord.Message;\r\n};\r\n\r\nexport interface DBIConfig<TNamespace extends NamespaceEnums> {\r\n discord: {\r\n namespace: string;\r\n token: string;\r\n options: Discord.ClientOptions;\r\n }[];\r\n defaults: {\r\n locale: TDBILocaleString;\r\n directMessages: boolean;\r\n defaultMemberPermissions: Discord.PermissionsString[];\r\n messageCommands: {\r\n deferReplyContent(ctx: TDBIMessageCommandsActionCtx<TNamespace>): MessagePayload | string | Promise<MessagePayload | string>;\r\n };\r\n };\r\n\r\n sharding: \"hybrid\" | \"default\" | \"off\";\r\n /**\r\n * Persist store. (Default to MemoryStore thats not persis tho.)\r\n */\r\n store: DBIStore;\r\n\r\n references: {\r\n autoClear?: {\r\n check: number;\r\n ttl: number;\r\n };\r\n };\r\n\r\n inlineListeners: {\r\n autoClear?: {\r\n check: number;\r\n ttl: number;\r\n };\r\n }\r\n\r\n strict: boolean;\r\n messageCommands?: {\r\n prefixes(ctx: TDBIMessageCommandsPrefixesCtx): string[] | Promise<string[]>;\r\n typeAliases: {\r\n booleans: Record<string, boolean>;\r\n };\r\n };\r\n}\r\n\r\nexport interface DBIConfigConstructor<TNamespace extends NamespaceEnums> {\r\n discord:\r\n | {\r\n token: string;\r\n options: Discord.ClientOptions;\r\n }\r\n | {\r\n namespace: string;\r\n token: string;\r\n options: Discord.ClientOptions;\r\n }[];\r\n\r\n defaults?: {\r\n locale?: TDBILocaleString;\r\n directMessages?: boolean;\r\n defaultMemberPermissions?: Discord.PermissionsString[];\r\n messageCommands?: {\r\n deferReplyContent?: MessagePayload | string | ((ctx: TDBIMessageCommandsActionCtx<TNamespace>) => MessagePayload | string | Promise<MessagePayload | string>);\r\n };\r\n };\r\n\r\n sharding?: \"hybrid\" | \"default\" | \"off\";\r\n /**\r\n * Persist store. (Default to MemoryStore thats not persis tho.)\r\n */\r\n store?: DBIStore;\r\n\r\n references?: {\r\n autoClear?: {\r\n check: number;\r\n ttl: number;\r\n };\r\n };\r\n\r\n inlineListeners?: {\r\n autoClear?: {\r\n check: number;\r\n ttl: number;\r\n };\r\n };\r\n\r\n data?: {\r\n other?: Record<string, any>;\r\n refs?: Map<string, { at: number; value: any; ttl?: number }>;\r\n };\r\n\r\n strict?: boolean;\r\n\r\n messageCommands?: {\r\n prefixes: string[] | ((ctx: TDBIMessageCommandsPrefixesCtx) => string[] | Promise<string[]>);\r\n typeAliases?: {\r\n /**\r\n * Example: {\"yes\": true, \"no\": false}\r\n */\r\n booleans?: Record<string, boolean>;\r\n };\r\n };\r\n}\r\n\r\nexport interface DBIRegisterAPI<TNamespace extends NamespaceEnums> {\r\n ChatInput(cfg: TDBIChatInputOmitted<TNamespace>): DBIChatInput<TNamespace>;\r\n ChatInputOptions: DBIChatInputOptions<TNamespace>;\r\n Event(cfg: TDBIEventOmitted<TNamespace>): DBIEvent<TNamespace>;\r\n Locale(cfg: TDBILocaleConstructor<TNamespace>): DBILocale<TNamespace>;\r\n Button(cfg: TDBIButtonOmitted<TNamespace>): DBIButton<TNamespace>;\r\n StringSelectMenu(\r\n cfg: TDBIStringSelectMenuOmitted<TNamespace>\r\n ): DBIStringSelectMenu<TNamespace>;\r\n UserSelectMenu(\r\n cfg: TDBIUserSelectMenuOmitted<TNamespace>\r\n ): DBIUserSelectMenu<TNamespace>;\r\n RoleSelectMenu(\r\n cfg: TDBIRoleSelectMenuOmitted<TNamespace>\r\n ): DBIRoleSelectMenu<TNamespace>;\r\n ChannelSelectMenu(\r\n cfg: TDBIChannelSelectMenuOmitted<TNamespace>\r\n ): DBIChannelSelectMenu<TNamespace>;\r\n MentionableSelectMenu(\r\n cfg: TDBIMentionableSelectMenuOmitted<TNamespace>\r\n ): DBIMentionableSelectMenu<TNamespace>;\r\n MessageContextMenu(\r\n cfg: TDBIMessageContextMenuOmitted<TNamespace>\r\n ): DBIMessageContextMenu<TNamespace>;\r\n UserContextMenu(\r\n cfg: TDBIUserContextMenuOmitted<TNamespace>\r\n ): DBIUserContextMenu<TNamespace>;\r\n InteractionLocale(cfg: TDBIInteractionLocaleOmitted): DBIInteractionLocale;\r\n Modal(cfg: TDBIModalOmitted<TNamespace>): DBIModal<TNamespace>;\r\n CustomEvent<T extends keyof NamespaceData[TNamespace][\"customEvents\"]>(\r\n cfg: TDBICustomEventOmitted<TNamespace, T>\r\n ): DBICustomEvent<TNamespace, T>;\r\n\r\n createInlineEvent(cfg: Omit<TDBIEventOmitted<TNamespace>, \"id\">): DBIEvent<TNamespace>;\r\n createInlineButton(cfg: Omit<TDBIButtonOmitted<TNamespace>, \"id\" | \"name\">): DBIButton<TNamespace>;\r\n createInlineStringSelectMenu(\r\n cfg: Omit<TDBIStringSelectMenuOmitted<TNamespace>, \"id\" | \"name\">\r\n ): DBIStringSelectMenu<TNamespace>;\r\n createInlineUserSelectMenu(\r\n cfg: Omit<TDBIUserSelectMenuOmitted<TNamespace>, \"id\" | \"name\">\r\n ): DBIUserSelectMenu<TNamespace>;\r\n createInlineRoleSelectMenu(\r\n cfg: Omit<TDBIRoleSelectMenuOmitted<TNamespace>, \"id\" | \"name\">\r\n ): DBIRoleSelectMenu<TNamespace>;\r\n createInlineChannelSelectMenu(\r\n cfg: Omit<TDBIChannelSelectMenuOmitted<TNamespace>, \"id\" | \"name\">\r\n ): DBIChannelSelectMenu<TNamespace>;\r\n createInlineMentionableSelectMenu(\r\n cfg: Omit<TDBIMentionableSelectMenuOmitted<TNamespace>, \"id\" | \"name\">\r\n ): DBIMentionableSelectMenu<TNamespace>;\r\n createInlineModal(cfg: Omit<TDBIModalOmitted<TNamespace>, \"id\" | \"name\">): DBIModal<TNamespace>;\r\n\r\n onUnload(cb: () => Promise<any> | any): any;\r\n}\r\n\r\nexport class DBI<\r\n TNamespace extends NamespaceEnums,\r\n TOtherData = Record<string, any>\r\n> {\r\n namespace: TNamespace;\r\n config: DBIConfig<TNamespace>;\r\n data: {\r\n interactions: Discord.Collection<string, TDBIInteractions<TNamespace>>;\r\n events: Discord.Collection<string, DBIEvent<TNamespace>>;\r\n locales: Discord.Collection<string, DBILocale<TNamespace>>;\r\n interactionLocales: Discord.Collection<string, DBIInteractionLocale>;\r\n other: TOtherData;\r\n eventMap: Record<string, string[] | { [k: string]: string }>;\r\n customEventNames: Set<string>;\r\n unloaders: Set<() => void>;\r\n registers: Set<(...args: any[]) => any>;\r\n registerUnloaders: Set<(...args: any[]) => any>;\r\n refs: Map<string, { at: number; value: any; ttl?: number }>;\r\n clients: TDBIClientData<TNamespace>[] & {\r\n next(key?: string): TDBIClientData<TNamespace>;\r\n random(): TDBIClientData<TNamespace>;\r\n random(size: number): TDBIClientData<TNamespace>[];\r\n first(): TDBIClientData<TNamespace>;\r\n get(\r\n namespace: NamespaceData[TNamespace][\"clientNamespaces\"]\r\n ): TDBIClientData<TNamespace>;\r\n indexes: Record<string, number>;\r\n };\r\n };\r\n events: Events<TNamespace>;\r\n cluster?: Sharding.ClusterClient<Discord.Client>;\r\n private _loaded: boolean;\r\n private _hooked: boolean;\r\n constructor(namespace: TNamespace, config: DBIConfigConstructor<TNamespace>) {\r\n this.namespace = namespace as any;\r\n const self = this;\r\n\r\n config.store = (config.store as any) || new MemoryStore();\r\n config.defaults = {\r\n locale: \"en\",\r\n defaultMemberPermissions: [],\r\n directMessages: false,\r\n ...(config.defaults || {}),\r\n messageCommands: (() => {\r\n let deferReplyContent = config.defaults?.messageCommands?.deferReplyContent\r\n return {\r\n ...(config.defaults?.messageCommands || {}),\r\n deferReplyContent: (typeof deferReplyContent === \"function\" ? deferReplyContent : () => deferReplyContent || \"Loading...\") as any\r\n }\r\n })(),\r\n };\r\n config.sharding = config.sharding ?? \"off\";\r\n config.strict = config.strict ?? true;\r\n config.references = {\r\n autoClear: undefined,\r\n ...(config.references || {}),\r\n };\r\n config.inlineListeners = {\r\n autoClear: {\r\n check: 60000,\r\n ttl: 900000,\r\n },\r\n ...(config.inlineListeners || {}),\r\n };\r\n\r\n if (config.messageCommands) {\r\n const { prefixes, typeAliases } = config.messageCommands;\r\n\r\n if (Array.isArray(prefixes) && config.strict && !prefixes.length)\r\n throw new Error(\"No prefixes provided.\");\r\n\r\n const prefixesFn = typeof prefixes === \"function\" ? prefixes : () => prefixes;\r\n\r\n config.messageCommands.prefixes = prefixesFn;\r\n config.messageCommands.typeAliases = {\r\n booleans: typeAliases.booleans ?? {\r\n true: true,\r\n false: false,\r\n yes: true,\r\n no: false,\r\n y: true,\r\n n: false,\r\n \"1\": true,\r\n \"0\": false,\r\n },\r\n };\r\n }\r\n\r\n // @ts-ignore\r\n this.config = config;\r\n\r\n this.data = {\r\n interactions: new Discord.Collection(),\r\n events: new Discord.Collection(),\r\n locales: new Discord.Collection(),\r\n interactionLocales: new Discord.Collection(),\r\n other: (config.data?.other as any) ?? ({} as TOtherData),\r\n eventMap: { ...eventMap },\r\n customEventNames: new Set(),\r\n unloaders: new Set(),\r\n registers: new Set(),\r\n registerUnloaders: new Set(),\r\n refs: config.data?.refs ?? new Map(),\r\n clients: Object.assign([], {\r\n next(key = \"global\") {\r\n this.indexes[key] = ((this.indexes[key] ?? -1) + 1) % this.length;\r\n return this[this.indexes[key]];\r\n },\r\n random(size?: number) {\r\n if (typeof size === \"number\") {\r\n return this.sort(() => Math.random() - 0.5).slice(0, size);\r\n } else {\r\n return this[Math.floor(Math.random() * this.length)];\r\n }\r\n },\r\n first() {\r\n return this[0];\r\n },\r\n get(namespace: string) {\r\n return this.find((i: any) => i.namespace === namespace);\r\n },\r\n indexes: {},\r\n }) as any,\r\n };\r\n\r\n this.events = new Events(this as any);\r\n\r\n config.discord = Array.isArray(config.discord)\r\n ? config.discord\r\n : [\r\n {\r\n token: config.discord.token,\r\n options: config.discord.options,\r\n namespace: \"default\",\r\n },\r\n ];\r\n\r\n this.data.clients.push(...(config.discord as any));\r\n for (let clientContext of this.data.clients) {\r\n let client = new Discord.Client({\r\n ...((clientContext.options || {}) as any),\r\n ...(config.sharding == \"hybrid\"\r\n ? {\r\n shards: Sharding.getInfo().SHARD_LIST,\r\n shardCount: Sharding.getInfo().TOTAL_SHARDS,\r\n }\r\n : {}),\r\n });\r\n clientContext.client = client as Discord.Client<true>;\r\n }\r\n\r\n if (this.data.clients.length === 0) throw new Error(\"No clients provided.\");\r\n if (\r\n this.data.clients.length !== 1 &&\r\n !(config.sharding && config.sharding === \"off\")\r\n )\r\n throw new Error(\"Sharding only supports 1 client.\");\r\n\r\n this.cluster =\r\n config.sharding == \"hybrid\"\r\n ? new Sharding.ClusterClient(this.data.clients[0].client)\r\n : undefined;\r\n this._loaded = false;\r\n this._hooked = false;\r\n }\r\n\r\n private async _hookListeners() {\r\n if (this._hooked) return;\r\n const self = this;\r\n this._hooked = true;\r\n this.data.unloaders.add(hookInteractionListeners(this as any));\r\n this.data.unloaders.add(hookEventListeners(this as any));\r\n if (typeof this.config.references.autoClear !== \"undefined\") {\r\n this.data.unloaders.add(\r\n (() => {\r\n let interval = setInterval(() => {\r\n this.data.refs.forEach(({ at, ttl }, key) => {\r\n if (\r\n Date.now() >\r\n at + (ttl || this.config.references.autoClear.ttl)\r\n ) {\r\n this.data.refs.delete(key);\r\n }\r\n });\r\n }, this.config.references.autoClear.check);\r\n return () => {\r\n clearInterval(interval);\r\n };\r\n })()\r\n );\r\n }\r\n if (typeof this.config.inlineListeners.autoClear !== \"undefined\") {\r\n this.data.unloaders.add(\r\n (() => {\r\n let interval = setInterval(() => {\r\n this.data.interactions.forEach((i, key) => {\r\n if (\r\n i.ttl &&\r\n (Date.now() >\r\n i.at + (i.ttl || this.config.inlineListeners.autoClear.ttl))\r\n ) {\r\n this.data.interactions.delete(key);\r\n }\r\n });\r\n this.data.events.forEach((i, key) => {\r\n if (\r\n i.ttl &&\r\n (Date.now() >\r\n i.at + (i.ttl || this.config.inlineListeners.autoClear.ttl))\r\n ) {\r\n this.data.events.delete(key);\r\n }\r\n });\r\n }, this.config.inlineListeners.autoClear.check);\r\n return () => {\r\n clearInterval(interval);\r\n };\r\n })()\r\n );\r\n }\r\n if (typeof this.config.messageCommands !== \"undefined\") {\r\n this.data.unloaders.add(\r\n (() => {\r\n const { client } = this.client();\r\n\r\n function onMessage(message: Discord.Message) {\r\n handleMessageCommands(self as any, message);\r\n }\r\n\r\n client.on(\"messageCreate\", onMessage);\r\n return () => {\r\n client.off(\"messageCreate\", onMessage);\r\n };\r\n })()\r\n );\r\n }\r\n }\r\n\r\n private async _unhookListeners() {\r\n if (!this._hooked) return;\r\n this._hooked = false;\r\n this.data.unloaders.forEach((f) => {\r\n f();\r\n });\r\n this.data.unloaders.clear();\r\n }\r\n\r\n private async _unregisterAll() {\r\n for await (const cb of this.data.registerUnloaders) {\r\n await cb();\r\n }\r\n this.data.events.clear();\r\n this.data.interactions.clear();\r\n this.data.interactionLocales.clear();\r\n this.data.locales.clear();\r\n this.data.registerUnloaders.clear();\r\n this.data.refs.clear();\r\n\r\n this.data.customEventNames.forEach((value) => {\r\n delete this.data.eventMap[value];\r\n });\r\n this.data.customEventNames.clear();\r\n }\r\n\r\n private async _registerAll(flags: string[] = []) {\r\n const self = this;\r\n const ChatInputOptions = new DBIChatInputOptions(self);\r\n\r\n const randomInlineId = () => `inline:${Math.random().toString(36).slice(2)}`;\r\n\r\n for await (const cb of this.data.registers) {\r\n let ChatInput = function (cfg: DBIChatInput<TNamespace>) {\r\n let dbiChatInput = new DBIChatInput(self, cfg);\r\n if (self.data.interactions.has(dbiChatInput.name))\r\n throw new Error(\r\n `DBIChatInput \"${dbiChatInput.name}\" already loaded as \"${self.data.interactions.get(dbiChatInput.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(dbiChatInput.name, dbiChatInput);\r\n return dbiChatInput;\r\n };\r\n ChatInput = Object.assign(\r\n ChatInput,\r\n class {\r\n constructor(...args: any[]) {\r\n return ChatInput.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let Event = function (cfg: TDBIEventOmitted<TNamespace>) {\r\n let dbiEvent = new DBIEvent(self as any, cfg);\r\n if (\r\n self.config.strict &&\r\n self.data.events.has(dbiEvent.id || dbiEvent.name)\r\n )\r\n throw new Error(\r\n `DBIEvent \"${dbiEvent.id || dbiEvent.name}\" already loaded!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.events.set(dbiEvent.id || dbiEvent.name, dbiEvent);\r\n return dbiEvent;\r\n };\r\n Event = Object.assign(\r\n Event,\r\n class {\r\n constructor(...args: any[]) {\r\n return Event.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let createInlineEvent = function (cfg: Omit<TDBIEventOmitted<TNamespace>, \"id\">) {\r\n return Event({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id: randomInlineId() } as any);\r\n }\r\n\r\n let Button = function (cfg: TDBIButtonOmitted<TNamespace>) {\r\n let dbiButton = new DBIButton(self as any, cfg);\r\n if (self.config.strict && self.data.interactions.has(dbiButton.name))\r\n throw new Error(\r\n `DBIButton \"${dbiButton.name}\" already loaded as \"${self.data.interactions.get(dbiButton.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(dbiButton.name, dbiButton as any);\r\n return dbiButton;\r\n };\r\n Button = Object.assign(\r\n Button,\r\n class {\r\n constructor(...args: any[]) {\r\n return Button.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let createInlineButton = function (cfg: Omit<TDBIButtonOmitted<TNamespace>, \"name\" | \"id\">) {\r\n let id = randomInlineId();\r\n return Button({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id, name: id } as any);\r\n }\r\n\r\n let StringSelectMenu = function (\r\n cfg: TDBIStringSelectMenuOmitted<TNamespace>\r\n ) {\r\n let dbiStringSelectMenu = new DBIStringSelectMenu(self as any, cfg);\r\n if (\r\n self.config.strict &&\r\n self.data.interactions.has(dbiStringSelectMenu.name)\r\n )\r\n throw new Error(\r\n `DBIStringSelectMenu \"${dbiStringSelectMenu.name\r\n }\" already loaded as \"${self.data.interactions.get(dbiStringSelectMenu.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(\r\n dbiStringSelectMenu.name,\r\n dbiStringSelectMenu as any\r\n );\r\n return dbiStringSelectMenu;\r\n };\r\n StringSelectMenu = Object.assign(\r\n StringSelectMenu,\r\n class {\r\n constructor(...args: any[]) {\r\n return StringSelectMenu.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let createInlineStringSelectMenu = function (cfg: Omit<TDBIStringSelectMenuOmitted<TNamespace>, \"id\" | \"name\">) {\r\n let id = randomInlineId();\r\n return StringSelectMenu({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id, name: id } as any);\r\n }\r\n\r\n let UserSelectMenu = function (\r\n cfg: TDBIUserSelectMenuOmitted<TNamespace>\r\n ) {\r\n let dbiUserSelectMenu = new DBIUserSelectMenu(self as any, cfg);\r\n if (\r\n self.config.strict &&\r\n self.data.interactions.has(dbiUserSelectMenu.name)\r\n )\r\n throw new Error(\r\n `DBIUserSelectMenu \"${dbiUserSelectMenu.name}\" already loaded as \"${self.data.interactions.get(dbiUserSelectMenu.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(\r\n dbiUserSelectMenu.name,\r\n dbiUserSelectMenu as any\r\n );\r\n return dbiUserSelectMenu;\r\n };\r\n UserSelectMenu = Object.assign(\r\n UserSelectMenu,\r\n class {\r\n constructor(...args: any[]) {\r\n return UserSelectMenu.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let createInlineUserSelectMenu = function (cfg: Omit<TDBIUserSelectMenuOmitted<TNamespace>, \"id\" | \"name\">) {\r\n let id = randomInlineId();\r\n return UserSelectMenu({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id, name: id } as any);\r\n }\r\n\r\n let RoleSelectMenu = function (\r\n cfg: TDBIRoleSelectMenuOmitted<TNamespace>\r\n ) {\r\n let dbiRoleSelectMenu = new DBIRoleSelectMenu(self as any, cfg);\r\n if (\r\n self.config.strict &&\r\n self.data.interactions.has(dbiRoleSelectMenu.name)\r\n )\r\n throw new Error(\r\n `DBIRoleSelectMenu \"${dbiRoleSelectMenu.name}\" already loaded as \"${self.data.interactions.get(dbiRoleSelectMenu.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(\r\n dbiRoleSelectMenu.name,\r\n dbiRoleSelectMenu as any\r\n );\r\n return dbiRoleSelectMenu;\r\n };\r\n RoleSelectMenu = Object.assign(\r\n RoleSelectMenu,\r\n class {\r\n constructor(...args: any[]) {\r\n return RoleSelectMenu.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let createInlineRoleSelectMenu = function (cfg: Omit<TDBIRoleSelectMenuOmitted<TNamespace>, \"id\" | \"name\">) {\r\n let id = randomInlineId();\r\n return RoleSelectMenu({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id, name: id } as any);\r\n }\r\n\r\n let ChannelSelectMenu = function (\r\n cfg: TDBIChannelSelectMenuOmitted<TNamespace>\r\n ) {\r\n let dbiChannelSelectMenu = new DBIChannelSelectMenu(self as any, cfg);\r\n if (\r\n self.config.strict &&\r\n self.data.interactions.has(dbiChannelSelectMenu.name)\r\n )\r\n throw new Error(\r\n `DBIChannelSelectMenu \"${dbiChannelSelectMenu.name\r\n }\" already loaded as \"${self.data.interactions.get(dbiChannelSelectMenu.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(\r\n dbiChannelSelectMenu.name,\r\n dbiChannelSelectMenu as any\r\n );\r\n return dbiChannelSelectMenu;\r\n };\r\n ChannelSelectMenu = Object.assign(\r\n ChannelSelectMenu,\r\n class {\r\n constructor(...args: any[]) {\r\n return ChannelSelectMenu.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let createInlineChannelSelectMenu = function (cfg: Omit<TDBIChannelSelectMenuOmitted<TNamespace>, \"id\" | \"name\">) {\r\n let id = randomInlineId();\r\n return ChannelSelectMenu({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id, name: id } as any);\r\n }\r\n\r\n let MentionableSelectMenu = function (\r\n cfg: TDBIMentionableSelectMenuOmitted<TNamespace>\r\n ) {\r\n let dbiMentionableSelectMenu = new DBIMentionableSelectMenu(\r\n self as any,\r\n cfg\r\n );\r\n if (\r\n self.config.strict &&\r\n self.data.interactions.has(dbiMentionableSelectMenu.name)\r\n )\r\n throw new Error(\r\n `DBIMentionableSelectMenu \"${dbiMentionableSelectMenu.name\r\n }\" already loaded as \"${self.data.interactions.get(dbiMentionableSelectMenu.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(\r\n dbiMentionableSelectMenu.name,\r\n dbiMentionableSelectMenu as any\r\n );\r\n return dbiMentionableSelectMenu;\r\n };\r\n MentionableSelectMenu = Object.assign(\r\n MentionableSelectMenu,\r\n class {\r\n constructor(...args: any[]) {\r\n return MentionableSelectMenu.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let createInlineMentionableSelectMenu = function (cfg: Omit<TDBIMentionableSelectMenuOmitted<TNamespace>, \"id\" | \"name\">) {\r\n let id = randomInlineId();\r\n return MentionableSelectMenu({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id, name: id } as any);\r\n }\r\n\r\n let MessageContextMenu = function (\r\n cfg: TDBIMessageContextMenuOmitted<TNamespace>\r\n ) {\r\n let dbiMessageContextMenu = new DBIMessageContextMenu(self as any, cfg);\r\n if (\r\n self.config.strict &&\r\n self.data.interactions.has(dbiMessageContextMenu.name)\r\n )\r\n throw new Error(\r\n `DBIMessageContextMenu \"${dbiMessageContextMenu.name\r\n }\" already loaded as \"${self.data.interactions.get(dbiMessageContextMenu.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(\r\n dbiMessageContextMenu.name,\r\n dbiMessageContextMenu as any\r\n );\r\n return dbiMessageContextMenu;\r\n };\r\n MessageContextMenu = Object.assign(\r\n MessageContextMenu,\r\n class {\r\n constructor(...args: any[]) {\r\n return MessageContextMenu.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let UserContextMenu = function (\r\n cfg: TDBIUserContextMenuOmitted<TNamespace>\r\n ) {\r\n let dbiUserContextMenu = new DBIUserContextMenu(self as any, cfg);\r\n if (\r\n self.config.strict &&\r\n self.data.interactions.has(dbiUserContextMenu.name)\r\n )\r\n throw new Error(\r\n `DBIUserContextMenu \"${dbiUserContextMenu.name\r\n }\" already loaded as \"${self.data.interactions.get(dbiUserContextMenu.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(\r\n dbiUserContextMenu.name,\r\n dbiUserContextMenu as any\r\n );\r\n return dbiUserContextMenu;\r\n };\r\n UserContextMenu = Object.assign(\r\n UserContextMenu,\r\n class {\r\n constructor(...args: any[]) {\r\n return UserContextMenu.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let Modal = function (cfg: TDBIModalOmitted<TNamespace>) {\r\n let dbiModal = new DBIModal(self as any, cfg);\r\n if (self.config.strict && self.data.interactions.has(dbiModal.name))\r\n throw new Error(\r\n `DBIModal \"${dbiModal.name}\" already loaded as \"${self.data.interactions.get(dbiModal.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(dbiModal.name, dbiModal as any);\r\n return dbiModal;\r\n };\r\n Modal = Object.assign(\r\n Modal,\r\n class {\r\n constructor(...args: any[]) {\r\n return Modal.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let createInlineModal = function (cfg: Omit<TDBIModalOmitted<TNamespace>, \"name\" | \"id\">) {\r\n let id = randomInlineId();\r\n return Modal({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id, name: id } as any);\r\n }\r\n\r\n let Locale = function (cfg: TDBILocaleConstructor<TNamespace>) {\r\n let dbiLocale = new DBILocale(self as any, cfg);\r\n if (\r\n self.config.strict &&\r\n self.data.interactionLocales.has(dbiLocale.name)\r\n )\r\n throw new Error(`DBILocale \"${dbiLocale.name}\" already loaded!`);\r\n if (self.data.locales.has(dbiLocale.name))\r\n dbiLocale.mergeLocale(self.data.locales.get(dbiLocale.name));\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.locales.set(dbiLocale.name, dbiLocale);\r\n return dbiLocale;\r\n };\r\n Locale = Object.assign(\r\n Locale,\r\n class {\r\n constructor(...args: any[]) {\r\n return Locale.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let CustomEvent = function (cfg: TDBICustomEventOmitted<TNamespace>) {\r\n let dbiCustomEvent = new DBICustomEvent(self, cfg) as any;\r\n if (self.config.strict && self.data.eventMap[dbiCustomEvent.name])\r\n throw new Error(\r\n `DBICustomEvent \"${dbiCustomEvent.name}\" already loaded!`\r\n );\r\n self.data.eventMap[dbiCustomEvent.name] = dbiCustomEvent.map;\r\n self.data.customEventNames.add(dbiCustomEvent.name);\r\n return dbiCustomEvent;\r\n };\r\n CustomEvent = Object.assign(\r\n CustomEvent,\r\n class {\r\n constructor(...args: any[]) {\r\n return CustomEvent.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let InteractionLocale = function (cfg: TDBIInteractionLocaleOmitted) {\r\n let dbiInteractionLocale = new DBIInteractionLocale(self, cfg);\r\n if (\r\n self.config.strict &&\r\n self.data.interactionLocales.has(dbiInteractionLocale.name)\r\n )\r\n throw new Error(\r\n `DBIInteractionLocale \"${dbiInteractionLocale.name}\" already loaded!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactionLocales.set(\r\n dbiInteractionLocale.name,\r\n dbiInteractionLocale\r\n );\r\n return dbiInteractionLocale;\r\n };\r\n InteractionLocale = Object.assign(\r\n InteractionLocale,\r\n class {\r\n constructor(...args: any[]) {\r\n return InteractionLocale.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n await cb({\r\n ChatInput,\r\n Event,\r\n ChatInputOptions,\r\n Locale,\r\n Button,\r\n StringSelectMenu,\r\n UserSelectMenu,\r\n RoleSelectMenu,\r\n ChannelSelectMenu,\r\n MentionableSelectMenu,\r\n MessageContextMenu,\r\n UserContextMenu,\r\n CustomEvent,\r\n Modal,\r\n InteractionLocale,\r\n createInlineButton,\r\n createInlineEvent,\r\n createInlineStringSelectMenu,\r\n createInlineUserSelectMenu,\r\n createInlineRoleSelectMenu,\r\n createInlineChannelSelectMenu,\r\n createInlineMentionableSelectMenu,\r\n createInlineModal,\r\n onUnload(cb: () => Promise<any> | any) {\r\n self.data.registerUnloaders.add(cb);\r\n },\r\n });\r\n }\r\n self.data.interactions.sort((a, b) => b.name.length - a.name.length);\r\n }\r\n\r\n emit<\r\n TEventName extends keyof (NamespaceData[TNamespace][\"customEvents\"] &\r\n ClientEvents)\r\n >(\r\n name: TEventName,\r\n args: (NamespaceData[TNamespace][\"customEvents\"] & ClientEvents)[TEventName]\r\n ): void {\r\n this.data.clients.forEach((d) =>\r\n d.client.emit(name as any, { ...args, _DIRECT_: true } as any)\r\n );\r\n }\r\n\r\n /**\r\n * this.data.interactions.get(name)\r\n */\r\n interaction<\r\n TInteractionName extends keyof NamespaceData[TNamespace][\"interactionMapping\"]\r\n >(\r\n name: TInteractionName\r\n ): NamespaceData[TNamespace][\"interactionMapping\"][TInteractionName] {\r\n return this.data.interactions.get(name as any) as any;\r\n }\r\n\r\n client<TClientName extends NamespaceData[TNamespace][\"clientNamespaces\"]>(\r\n name?: TClientName\r\n ): TDBIClientData<TNamespace> {\r\n return name ? this.data.clients.get(name) : this.data.clients.first();\r\n }\r\n /**\r\n * this.data.events.get(name)\r\n */\r\n event<TEventName extends NamespaceData[TNamespace][\"eventNames\"]>(\r\n name: TEventName\r\n ): DBIEvent<TNamespace> {\r\n return this.data.events.get(name);\r\n }\r\n\r\n /**\r\n * this.data.locales.get(name)\r\n */\r\n locale<TLocaleName extends NamespaceData[TNamespace][\"localeNames\"]>(\r\n name: TLocaleName\r\n ): DBILocale<TNamespace> {\r\n return this.data.locales.get(name) as any;\r\n }\r\n\r\n /**\r\n * Shorthands for modifying `dbi.data.other`\r\n */\r\n get<K extends keyof TOtherData>(\r\n k: K,\r\n defaultValue?: TOtherData[K]\r\n ): TOtherData[K] {\r\n if (defaultValue && !this.has(k as any)) {\r\n this.set(k, defaultValue);\r\n return defaultValue;\r\n }\r\n return _.get(this.data.other, k);\r\n }\r\n\r\n /**\r\n * Shorthands for modifying `dbi.data.other`\r\n */\r\n set<K extends keyof TOtherData>(k: K, v: TOtherData[K]): any {\r\n this.data.other = _.set(this.data.other as any, k, v);\r\n }\r\n\r\n /**\r\n * Shorthands for modifying `dbi.data.other`\r\n */\r\n has(k: string): boolean {\r\n return _.has(this.data.other, k as any);\r\n }\r\n\r\n /**\r\n * Shorthands for modifying `dbi.data.other`\r\n */\r\n delete(k: string): boolean {\r\n return _.unset(this.data.other, k);\r\n }\r\n\r\n async login(): Promise<any> {\r\n await aaq.quickForEach(this.data.clients, async (clientContext) => {\r\n await clientContext.client.login(\r\n this.config.sharding == \"default\" ? null : clientContext.token\r\n );\r\n });\r\n this.events.trigger(\"clientsReady\", undefined, true);\r\n }\r\n\r\n async register(cb: (api: DBIRegisterAPI<TNamespace>) => void): Promise<any> {\r\n this.data.registers.add(cb);\r\n }\r\n\r\n async load(...flags: string[]): Promise<boolean> {\r\n if (this._loaded) return false;\r\n await this._registerAll(flags);\r\n await this._hookListeners();\r\n this._loaded = true;\r\n return true;\r\n }\r\n\r\n async unload(): Promise<boolean> {\r\n if (!this._loaded) return false;\r\n await this._unregisterAll();\r\n await this._unhookListeners();\r\n this._loaded = false;\r\n return true;\r\n }\r\n\r\n get loaded(): boolean {\r\n return this._loaded;\r\n }\r\n\r\n async publish(type: \"Global\", clear?: boolean): Promise<any>;\r\n async publish(type: \"Guild\", guildId: string, clear?: boolean): Promise<any>;\r\n\r\n async publish(...args: any[]) {\r\n let interactions = this.data.interactions.filter(\r\n (i) =>\r\n i.type == \"ChatInput\" ||\r\n i.type == \"MessageContextMenu\" ||\r\n i.type == \"UserContextMenu\"\r\n ) as any;\r\n switch (args[0]) {\r\n case \"Global\": {\r\n return await publishInteractions(\r\n this.data.clients,\r\n args[1] ? new Discord.Collection() : interactions,\r\n this.data.interactionLocales,\r\n args[0]\r\n );\r\n }\r\n case \"Guild\": {\r\n return await publishInteractions(\r\n this.data.clients,\r\n args[2] ? new Discord.Collection() : interactions,\r\n this.data.interactionLocales,\r\n args[0],\r\n args[1]\r\n );\r\n }\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"DBI.js","sourceRoot":"","sources":["../src/DBI.ts"],"names":[],"mappings":";;;;AAAA,oEAAqD;AACrD,2DAGqC;AACrC,yEAAyE;AACzE,uEAAoE;AACpE,yCAAyE;AACzE,qDAAkD;AAClD,iFAA8E;AAC9E,qCAAkC;AAClC,iDAI8B;AAC9B,sDAAyE;AACzE,0EAG6C;AAC7C,yEAG0C;AAC1C,mEAGuC;AACvC,qEAAkE;AAClE,iFAA4C;AAC5C,oDAAsE;AACtE,0EAAoD;AACpD,4DAAuB;AACvB,uEAGyC;AAGzC,2DAGmC;AACnC,8EAAkC;AAClC,sEAG2C;AAC3C,oFAGkD;AAClD,4EAG8C;AAC9C,sEAG2C;AAC3C,2EAAwE;AAyLxE,MAAa,GAAG;IAId,SAAS,CAAa;IACtB,MAAM,CAAwB;IAC9B,IAAI,CAsBF;IACF,MAAM,CAAqB;IAC3B,OAAO,CAA0C;IACzC,OAAO,CAAU;IACjB,OAAO,CAAU;IACzB,YAAY,SAAqB,EAAE,MAAwC;QACzE,IAAI,CAAC,SAAS,GAAG,SAAgB,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,MAAM,CAAC,KAAK,GAAI,MAAM,CAAC,KAAa,IAAI,IAAI,yBAAW,EAAE,CAAC;QAC1D,MAAM,CAAC,QAAQ,GAAG;YAChB,MAAM,EAAE,IAAI;YACZ,wBAAwB,EAAE,EAAE;YAC5B,cAAc,EAAE,KAAK;YACrB,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;YAC1B,eAAe,EAAE,CAAC,GAAG,EAAE;gBACrB,IAAI,iBAAiB,GAAG,MAAM,CAAC,QAAQ,EAAE,eAAe,EAAE,iBAAiB,CAAA;gBAC3E,OAAO;oBACL,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,eAAe,IAAI,EAAE,CAAC;oBAC3C,iBAAiB,EAAE,CAAC,OAAO,iBAAiB,KAAK,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,iBAAiB,IAAI,YAAY,CAAQ;iBAClI,CAAA;YACH,CAAC,CAAC,EAAE;SACL,CAAC;QACF,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC;QAC3C,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC;QACtC,MAAM,CAAC,UAAU,GAAG;YAClB,SAAS,EAAE,SAAS;YACpB,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;SAC7B,CAAC;QACF,MAAM,CAAC,eAAe,GAAG;YACvB,SAAS,EAAE;gBACT,KAAK,EAAE,KAAK;gBACZ,GAAG,EAAE,MAAM;aACZ;YACD,GAAG,CAAC,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC;SAClC,CAAC;QAEF,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;YAC3B,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,eAAe,CAAC;YAEzD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM;gBAC9D,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAE3C,MAAM,UAAU,GAAG,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC;YAE9E,MAAM,CAAC,eAAe,CAAC,QAAQ,GAAG,UAAU,CAAC;YAC7C,MAAM,CAAC,eAAe,CAAC,WAAW,GAAG;gBACnC,QAAQ,EAAE,WAAW,CAAC,QAAQ,IAAI;oBAChC,IAAI,EAAE,IAAI;oBACV,KAAK,EAAE,KAAK;oBACZ,GAAG,EAAE,IAAI;oBACT,EAAE,EAAE,KAAK;oBACT,CAAC,EAAE,IAAI;oBACP,CAAC,EAAE,KAAK;oBACR,GAAG,EAAE,IAAI;oBACT,GAAG,EAAE,KAAK;iBACX;aACF,CAAC;QACJ,CAAC;QAED,aAAa;QACb,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,IAAI,CAAC,IAAI,GAAG;YACV,YAAY,EAAE,IAAI,oBAAO,CAAC,UAAU,EAAE;YACtC,MAAM,EAAE,IAAI,oBAAO,CAAC,UAAU,EAAE;YAChC,OAAO,EAAE,IAAI,oBAAO,CAAC,UAAU,EAAE;YACjC,kBAAkB,EAAE,IAAI,oBAAO,CAAC,UAAU,EAAE;YAC5C,KAAK,EAAG,MAAM,CAAC,IAAI,EAAE,KAAa,IAAK,EAAiB;YACxD,QAAQ,EAAE,EAAE,GAAG,uBAAQ,EAAE;YACzB,gBAAgB,EAAE,IAAI,GAAG,EAAE;YAC3B,SAAS,EAAE,IAAI,GAAG,EAAE;YACpB,SAAS,EAAE,IAAI,GAAG,EAAE;YACpB,iBAAiB,EAAE,IAAI,GAAG,EAAE;YAC5B,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE;YACpC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE;gBACzB,IAAI,CAAC,GAAG,GAAG,QAAQ;oBACjB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;oBAClE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;gBACjC,CAAC;gBACD,MAAM,CAAC,IAAa;oBAClB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;wBAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;oBAC7D,CAAC;yBAAM,CAAC;wBACN,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;oBACvD,CAAC;gBACH,CAAC;gBACD,KAAK;oBACH,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;gBACjB,CAAC;gBACD,GAAG,CAAC,SAAiB;oBACnB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;gBAC1D,CAAC;gBACD,OAAO,EAAE,EAAE;aACZ,CAAQ;SACV,CAAC;QAEF,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,IAAW,CAAC,CAAC;QAEtC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;YAC5C,CAAC,CAAC,MAAM,CAAC,OAAO;YAChB,CAAC,CAAC;gBACA;oBACE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK;oBAC3B,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO;oBAC/B,SAAS,EAAE,SAAS;iBACrB;aACF,CAAC;QAEJ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAI,MAAM,CAAC,OAAe,CAAC,CAAC;QACnD,KAAK,IAAI,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC5C,IAAI,MAAM,GAAG,IAAI,oBAAO,CAAC,MAAM,CAAC;gBAC9B,GAAI,CAAC,aAAa,CAAC,OAAO,IAAI,EAAE,CAAS;gBACzC,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,QAAQ;oBAC7B,CAAC,CAAC;wBACA,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,UAAU;wBACrC,UAAU,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,YAAY;qBAC5C;oBACD,CAAC,CAAC,EAAE,CAAC;aACR,CAAC,CAAC;YACH,aAAa,CAAC,MAAM,GAAG,MAA8B,CAAC;QACxD,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC5E,IACE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAC9B,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC;YAE/C,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAEtD,IAAI,CAAC,OAAO;YACV,MAAM,CAAC,QAAQ,IAAI,QAAQ;gBACzB,CAAC,CAAC,IAAI,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBACzD,CAAC,CAAC,SAAS,CAAC;QAChB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAA,mDAAwB,EAAC,IAAW,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAA,uCAAkB,EAAC,IAAW,CAAC,CAAC,CAAC;QACzD,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,KAAK,WAAW,EAAE,CAAC;YAC5D,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CACrB,CAAC,GAAG,EAAE;gBACJ,IAAI,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;oBAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE;wBAC1C,IACE,IAAI,CAAC,GAAG,EAAE;4BACV,EAAE,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,EAClD,CAAC;4BACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBAC7B,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAC3C,OAAO,GAAG,EAAE;oBACV,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC1B,CAAC,CAAC;YACJ,CAAC,CAAC,EAAE,CACL,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,KAAK,WAAW,EAAE,CAAC;YACjE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CACrB,CAAC,GAAG,EAAE;gBACJ,IAAI,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;oBAC9B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;wBACxC,IACE,CAAC,CAAC,GAAG;4BACL,CAAC,IAAI,CAAC,GAAG,EAAE;gCACT,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAC9D,CAAC;4BACD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBACrC,CAAC;oBACH,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;wBAClC,IACE,CAAC,CAAC,GAAG;4BACL,CAAC,IAAI,CAAC,GAAG,EAAE;gCACT,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAC9D,CAAC;4BACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBAC/B,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAChD,OAAO,GAAG,EAAE;oBACV,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC1B,CAAC,CAAC;YACJ,CAAC,CAAC,EAAE,CACL,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,KAAK,WAAW,EAAE,CAAC;YACvD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CACrB,CAAC,GAAG,EAAE;gBACJ,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gBAEjC,SAAS,SAAS,CAAC,OAAwB;oBACzC,IAAA,6CAAqB,EAAC,IAAW,EAAE,OAAO,CAAC,CAAC;gBAC9C,CAAC;gBAED,MAAM,CAAC,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;gBACtC,OAAO,GAAG,EAAE;oBACV,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;gBACzC,CAAC,CAAC;YACJ,CAAC,CAAC,EAAE,CACL,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAChC,CAAC,EAAE,CAAC;QACN,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,IAAI,KAAK,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACnD,MAAM,EAAE,EAAE,CAAC;QACb,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAEvB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IACrC,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,QAAkB,EAAE;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,MAAM,gBAAgB,GAAG,IAAI,sCAAmB,CAAC,IAAI,CAAC,CAAC;QAEvD,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAE7E,IAAI,KAAK,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAC3C,IAAI,SAAS,GAAG,UAAU,GAA6B;gBACrD,IAAI,YAAY,GAAG,IAAI,wBAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC/C,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC;oBAC/C,MAAM,IAAI,KAAK,CACb,iBAAiB,YAAY,CAAC,IAAI,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IACzG,IAAI,CACL,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;gBAChI,OAAO,YAAY,CAAC;YACtB,CAAC,CAAC;YACF,SAAS,GAAG,MAAM,CAAC,MAAM,CACvB,SAAS,EACT;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBAC5C,CAAC;aACF,CACF,CAAC;YAEF,IAAI,KAAK,GAAG,UAAU,GAAiC;gBACrD,IAAI,QAAQ,GAAG,IAAI,gBAAQ,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBAC9C,IACE,IAAI,CAAC,MAAM,CAAC,MAAM;oBAClB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;oBAElD,MAAM,IAAI,KAAK,CACb,aAAa,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,IAAI,mBAAmB,CAC7D,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBACjI,OAAO,QAAQ,CAAC;YAClB,CAAC,CAAC;YACF,KAAK,GAAG,MAAM,CAAC,MAAM,CACnB,KAAK,EACL;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBACxC,CAAC;aACF,CACF,CAAC;YAEF,IAAI,iBAAiB,GAAG,UAAU,GAA6C;gBAC7E,OAAO,KAAK,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,cAAc,EAAE,EAAS,CAAC,CAAC;YACrH,CAAC,CAAA;YAED,IAAI,MAAM,GAAG,UAAU,GAAkC;gBACvD,IAAI,SAAS,GAAG,IAAI,kBAAS,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBAChD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;oBAClE,MAAM,IAAI,KAAK,CACb,cAAc,SAAS,CAAC,IAAI,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAChG,IAAI,CACL,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,SAAgB,CAAC,CAAC;gBACjI,OAAO,SAAS,CAAC;YACnB,CAAC,CAAC;YACF,MAAM,GAAG,MAAM,CAAC,MAAM,CACpB,MAAM,EACN;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBACzC,CAAC;aACF,CACF,CAAC;YAEF,IAAI,kBAAkB,GAAG,UAAU,GAAuD;gBACxF,IAAI,EAAE,GAAG,cAAc,EAAE,CAAC;gBAC1B,OAAO,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAS,CAAC,CAAC;YAC9G,CAAC,CAAA;YAED,IAAI,gBAAgB,GAAG,UACrB,GAA4C;gBAE5C,IAAI,mBAAmB,GAAG,IAAI,sCAAmB,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBACpE,IACE,IAAI,CAAC,MAAM,CAAC,MAAM;oBAClB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC;oBAEpD,MAAM,IAAI,KAAK,CACb,wBAAwB,mBAAmB,CAAC,IAC5C,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAC9E,IAAI,CACL,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAC5F,mBAAmB,CAAC,IAAI,EACxB,mBAA0B,CAC3B,CAAC;gBACF,OAAO,mBAAmB,CAAC;YAC7B,CAAC,CAAC;YACF,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAC9B,gBAAgB,EAChB;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,gBAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBACnD,CAAC;aACF,CACF,CAAC;YAEF,IAAI,4BAA4B,GAAG,UAAU,GAAiE;gBAC5G,IAAI,EAAE,GAAG,cAAc,EAAE,CAAC;gBAC1B,OAAO,gBAAgB,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAS,CAAC,CAAC;YACxH,CAAC,CAAA;YAED,IAAI,cAAc,GAAG,UACnB,GAA0C;gBAE1C,IAAI,iBAAiB,GAAG,IAAI,kCAAiB,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBAChE,IACE,IAAI,CAAC,MAAM,CAAC,MAAM;oBAClB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC;oBAElD,MAAM,IAAI,KAAK,CACb,sBAAsB,iBAAiB,CAAC,IAAI,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,IACxH,IAAI,CACL,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAC5F,iBAAiB,CAAC,IAAI,EACtB,iBAAwB,CACzB,CAAC;gBACF,OAAO,iBAAiB,CAAC;YAC3B,CAAC,CAAC;YACF,cAAc,GAAG,MAAM,CAAC,MAAM,CAC5B,cAAc,EACd;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBACjD,CAAC;aACF,CACF,CAAC;YAEF,IAAI,0BAA0B,GAAG,UAAU,GAA+D;gBACxG,IAAI,EAAE,GAAG,cAAc,EAAE,CAAC;gBAC1B,OAAO,cAAc,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAS,CAAC,CAAC;YACtH,CAAC,CAAA;YAED,IAAI,cAAc,GAAG,UACnB,GAA0C;gBAE1C,IAAI,iBAAiB,GAAG,IAAI,kCAAiB,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBAChE,IACE,IAAI,CAAC,MAAM,CAAC,MAAM;oBAClB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC;oBAElD,MAAM,IAAI,KAAK,CACb,sBAAsB,iBAAiB,CAAC,IAAI,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,IACxH,IAAI,CACL,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAC5F,iBAAiB,CAAC,IAAI,EACtB,iBAAwB,CACzB,CAAC;gBACF,OAAO,iBAAiB,CAAC;YAC3B,CAAC,CAAC;YACF,cAAc,GAAG,MAAM,CAAC,MAAM,CAC5B,cAAc,EACd;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBACjD,CAAC;aACF,CACF,CAAC;YAEF,IAAI,0BAA0B,GAAG,UAAU,GAA+D;gBACxG,IAAI,EAAE,GAAG,cAAc,EAAE,CAAC;gBAC1B,OAAO,cAAc,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAS,CAAC,CAAC;YACtH,CAAC,CAAA;YAED,IAAI,iBAAiB,GAAG,UACtB,GAA6C;gBAE7C,IAAI,oBAAoB,GAAG,IAAI,wCAAoB,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBACtE,IACE,IAAI,CAAC,MAAM,CAAC,MAAM;oBAClB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC;oBAErD,MAAM,IAAI,KAAK,CACb,yBAAyB,oBAAoB,CAAC,IAC9C,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,IAC/E,IAAI,CACL,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAC5F,oBAAoB,CAAC,IAAI,EACzB,oBAA2B,CAC5B,CAAC;gBACF,OAAO,oBAAoB,CAAC;YAC9B,CAAC,CAAC;YACF,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAC/B,iBAAiB,EACjB;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBACpD,CAAC;aACF,CACF,CAAC;YAEF,IAAI,6BAA6B,GAAG,UAAU,GAAkE;gBAC9G,IAAI,EAAE,GAAG,cAAc,EAAE,CAAC;gBAC1B,OAAO,iBAAiB,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAS,CAAC,CAAC;YACzH,CAAC,CAAA;YAED,IAAI,qBAAqB,GAAG,UAC1B,GAAiD;gBAEjD,IAAI,wBAAwB,GAAG,IAAI,gDAAwB,CACzD,IAAW,EACX,GAAG,CACJ,CAAC;gBACF,IACE,IAAI,CAAC,MAAM,CAAC,MAAM;oBAClB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,CAAC;oBAEzD,MAAM,IAAI,KAAK,CACb,6BAA6B,wBAAwB,CAAC,IACtD,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,IACnF,IAAI,CACL,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAC5F,wBAAwB,CAAC,IAAI,EAC7B,wBAA+B,CAChC,CAAC;gBACF,OAAO,wBAAwB,CAAC;YAClC,CAAC,CAAC;YACF,qBAAqB,GAAG,MAAM,CAAC,MAAM,CACnC,qBAAqB,EACrB;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,qBAAqB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBACxD,CAAC;aACF,CACF,CAAC;YAEF,IAAI,iCAAiC,GAAG,UAAU,GAAsE;gBACtH,IAAI,EAAE,GAAG,cAAc,EAAE,CAAC;gBAC1B,OAAO,qBAAqB,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAS,CAAC,CAAC;YAC7H,CAAC,CAAA;YAED,IAAI,kBAAkB,GAAG,UACvB,GAA8C;gBAE9C,IAAI,qBAAqB,GAAG,IAAI,0CAAqB,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBACxE,IACE,IAAI,CAAC,MAAM,CAAC,MAAM;oBAClB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,CAAC;oBAEtD,MAAM,IAAI,KAAK,CACb,0BAA0B,qBAAqB,CAAC,IAChD,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,IAChF,IAAI,CACL,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAC5F,qBAAqB,CAAC,IAAI,EAC1B,qBAA4B,CAC7B,CAAC;gBACF,OAAO,qBAAqB,CAAC;YAC/B,CAAC,CAAC;YACF,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAChC,kBAAkB,EAClB;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBACrD,CAAC;aACF,CACF,CAAC;YAEF,IAAI,eAAe,GAAG,UACpB,GAA2C;gBAE3C,IAAI,kBAAkB,GAAG,IAAI,oCAAkB,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBAClE,IACE,IAAI,CAAC,MAAM,CAAC,MAAM;oBAClB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC;oBAEnD,MAAM,IAAI,KAAK,CACb,uBAAuB,kBAAkB,CAAC,IAC1C,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,IAC7E,IAAI,CACL,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAC5F,kBAAkB,CAAC,IAAI,EACvB,kBAAyB,CAC1B,CAAC;gBACF,OAAO,kBAAkB,CAAC;YAC5B,CAAC,CAAC;YACF,eAAe,GAAG,MAAM,CAAC,MAAM,CAC7B,eAAe,EACf;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBAClD,CAAC;aACF,CACF,CAAC;YAEF,IAAI,KAAK,GAAG,UAAU,GAAiC;gBACrD,IAAI,QAAQ,GAAG,IAAI,gBAAQ,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBAC9C,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACjE,MAAM,IAAI,KAAK,CACb,aAAa,QAAQ,CAAC,IAAI,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAC7F,IAAI,CACL,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAe,CAAC,CAAC;gBAC/H,OAAO,QAAQ,CAAC;YAClB,CAAC,CAAC;YACF,KAAK,GAAG,MAAM,CAAC,MAAM,CACnB,KAAK,EACL;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBACxC,CAAC;aACF,CACF,CAAC;YAEF,IAAI,iBAAiB,GAAG,UAAU,GAAsD;gBACtF,IAAI,EAAE,GAAG,cAAc,EAAE,CAAC;gBAC1B,OAAO,KAAK,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAS,CAAC,CAAC;YAC7G,CAAC,CAAA;YAED,IAAI,MAAM,GAAG,UAAU,GAAsC;gBAC3D,IAAI,SAAS,GAAG,IAAI,kBAAS,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBAChD,IACE,IAAI,CAAC,MAAM,CAAC,MAAM;oBAClB,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;oBAEhD,MAAM,IAAI,KAAK,CAAC,cAAc,SAAS,CAAC,IAAI,mBAAmB,CAAC,CAAC;gBACnE,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;oBACvC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC/D,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBACrH,OAAO,SAAS,CAAC;YACnB,CAAC,CAAC;YACF,MAAM,GAAG,MAAM,CAAC,MAAM,CACpB,MAAM,EACN;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBACzC,CAAC;aACF,CACF,CAAC;YAEF,IAAI,WAAW,GAAG,UAAU,GAAuC;gBACjE,IAAI,cAAc,GAAG,IAAI,4BAAc,CAAC,IAAI,EAAE,GAAG,CAAQ,CAAC;gBAC1D,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC;oBAC/D,MAAM,IAAI,KAAK,CACb,mBAAmB,cAAc,CAAC,IAAI,mBAAmB,CAC1D,CAAC;gBACJ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC;gBAC7D,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBACpD,OAAO,cAAc,CAAC;YACxB,CAAC,CAAC;YACF,WAAW,GAAG,MAAM,CAAC,MAAM,CACzB,WAAW,EACX;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBAC9C,CAAC;aACF,CACF,CAAC;YAEF,IAAI,iBAAiB,GAAG,UAAU,GAAiC;gBACjE,IAAI,oBAAoB,GAAG,IAAI,wCAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC/D,IACE,IAAI,CAAC,MAAM,CAAC,MAAM;oBAClB,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC;oBAE3D,MAAM,IAAI,KAAK,CACb,yBAAyB,oBAAoB,CAAC,IAAI,mBAAmB,CACtE,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAClG,oBAAoB,CAAC,IAAI,EACzB,oBAAoB,CACrB,CAAC;gBACF,OAAO,oBAAoB,CAAC;YAC9B,CAAC,CAAC;YACF,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAC/B,iBAAiB,EACjB;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBACpD,CAAC;aACF,CACF,CAAC;YAEF,MAAM,EAAE,CAAC;gBACP,SAAS;gBACT,KAAK;gBACL,gBAAgB;gBAChB,MAAM;gBACN,MAAM;gBACN,gBAAgB;gBAChB,cAAc;gBACd,cAAc;gBACd,iBAAiB;gBACjB,qBAAqB;gBACrB,kBAAkB;gBAClB,eAAe;gBACf,WAAW;gBACX,KAAK;gBACL,iBAAiB;gBACjB,kBAAkB;gBAClB,iBAAiB;gBACjB,4BAA4B;gBAC5B,0BAA0B;gBAC1B,0BAA0B;gBAC1B,6BAA6B;gBAC7B,iCAAiC;gBACjC,iBAAiB;gBACjB,QAAQ,CAAC,EAA4B;oBACnC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACtC,CAAC;aACF,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvE,CAAC;IAED,IAAI,CAIF,IAAgB,EAChB,IAA4E;QAE5E,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAW,EAAE,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAS,CAAC,CAC/D,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,WAAW,CAGT,IAAsB;QAEtB,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAW,CAAQ,CAAC;IACxD,CAAC;IAED,MAAM,CACJ,IAAkB;QAElB,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACxE,CAAC;IACD;;OAEG;IACH,KAAK,CACH,IAAgB;QAEhB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,MAAM,CACJ,IAAiB;QAEjB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAQ,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,GAAG,CACD,CAAI,EACJ,YAA4B;QAE5B,IAAI,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAQ,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;YAC1B,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,OAAO,gBAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,GAAG,CAA6B,CAAI,EAAE,CAAgB;QACpD,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,gBAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAY,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,CAAS;QACX,OAAO,gBAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAQ,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,CAAS;QACd,OAAO,gBAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,yBAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE;YAChE,MAAM,aAAa,CAAC,MAAM,CAAC,KAAK,CAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAC/D,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAA6C;QAC1D,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAG,KAAe;QAC3B,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAC/B,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,MAAM;QACV,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAChC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAKD,KAAK,CAAC,OAAO,CAAC,GAAG,IAAW;QAC1B,IAAI,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAC9C,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,IAAI,IAAI,WAAW;YACrB,CAAC,CAAC,IAAI,IAAI,oBAAoB;YAC9B,CAAC,CAAC,IAAI,IAAI,iBAAiB,CACvB,CAAC;QACT,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,OAAO,MAAM,IAAA,yCAAmB,EAC9B,IAAI,CAAC,IAAI,CAAC,OAAO,EACjB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,oBAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,YAAY,EACjD,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAC5B,IAAI,CAAC,CAAC,CAAC,CACR,CAAC;YACJ,CAAC;YACD,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,OAAO,MAAM,IAAA,yCAAmB,EAC9B,IAAI,CAAC,IAAI,CAAC,OAAO,EACjB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,oBAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,YAAY,EACjD,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAC5B,IAAI,CAAC,CAAC,CAAC,EACP,IAAI,CAAC,CAAC,CAAC,CACR,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAzzBD,kBAyzBC","sourcesContent":["import Discord, { MessagePayload } from \"discord.js\";\r\nimport {\r\n DBIChatInput,\r\n TDBIChatInputOmitted,\r\n} from \"./types/ChatInput/ChatInput\";\r\nimport { DBIChatInputOptions } from \"./types/ChatInput/ChatInputOptions\";\r\nimport { publishInteractions } from \"./methods/publishInteractions\";\r\nimport { ClientEvents, DBIEvent, TDBIEventOmitted } from \"./types/Event\";\r\nimport { MemoryStore } from \"./utils/MemoryStore\";\r\nimport { hookInteractionListeners } from \"./methods/hookInteractionListeners\";\r\nimport { Events } from \"./Events\";\r\nimport {\r\n DBILocale,\r\n TDBILocaleConstructor,\r\n TDBILocaleString,\r\n} from \"./types/other/Locale\";\r\nimport { DBIButton, TDBIButtonOmitted } from \"./types/Components/Button\";\r\nimport {\r\n DBIStringSelectMenu,\r\n TDBIStringSelectMenuOmitted,\r\n} from \"./types/Components/StringSelectMenu\";\r\nimport {\r\n DBIMessageContextMenu,\r\n TDBIMessageContextMenuOmitted,\r\n} from \"./types/other/MessageContextMenu\";\r\nimport {\r\n DBIUserContextMenu,\r\n TDBIUserContextMenuOmitted,\r\n} from \"./types/other/UserContextMenu\";\r\nimport { hookEventListeners } from \"./methods/hookEventListeners\";\r\nimport eventMap from \"./data/eventMap.json\";\r\nimport { DBIModal, TDBIModalOmitted } from \"./types/Components/Modal\";\r\nimport * as Sharding from \"discord-hybrid-sharding\";\r\nimport _ from \"lodash\";\r\nimport {\r\n DBIInteractionLocale,\r\n TDBIInteractionLocaleOmitted,\r\n} from \"./types/other/InteractionLocale\";\r\nimport { TDBIInteractions } from \"./types/Interaction\";\r\nimport { NamespaceData, NamespaceEnums } from \"../generated/namespaceData\";\r\nimport {\r\n DBICustomEvent,\r\n TDBICustomEventOmitted,\r\n} from \"./types/other/CustomEvent\";\r\nimport aaq from \"async-and-quick\";\r\nimport {\r\n DBIUserSelectMenu,\r\n TDBIUserSelectMenuOmitted,\r\n} from \"./types/Components/UserSelectMenu\";\r\nimport {\r\n DBIMentionableSelectMenu,\r\n TDBIMentionableSelectMenuOmitted,\r\n} from \"./types/Components/MentionableSelectMenu\";\r\nimport {\r\n DBIChannelSelectMenu,\r\n TDBIChannelSelectMenuOmitted,\r\n} from \"./types/Components/ChannelSelectMenu\";\r\nimport {\r\n DBIRoleSelectMenu,\r\n TDBIRoleSelectMenuOmitted,\r\n} from \"./types/Components/RoleSelectMenu\";\r\nimport { handleMessageCommands } from \"./methods/handleMessageCommands\";\r\nimport { FakeMessageInteraction } from \"./types/other/FakeMessageInteraction\";\r\n\r\nexport interface DBIStore {\r\n get(key: string, defaultValue?: any): Promise<any>;\r\n set(key: string, value: any): Promise<void>;\r\n delete(key: string): Promise<void>;\r\n has(key: string): Promise<boolean>;\r\n}\r\n\r\nexport type TDBIClientData<TNamespace extends NamespaceEnums> = {\r\n namespace: NamespaceData[TNamespace][\"clientNamespaces\"];\r\n token: string;\r\n options: Discord.ClientOptions;\r\n client: Discord.Client<true>;\r\n};\r\n\r\nexport type TDBIMessageCommandsActionCtx<TNamespace extends NamespaceEnums> = {\r\n interaction: FakeMessageInteraction;\r\n dbiInteraction: DBIChatInput<TNamespace>;\r\n locale: { guild?: DBILocale<TNamespace>; user: DBILocale<TNamespace> };\r\n}\r\n\r\nexport type TDBIMessageCommandsPrefixesCtx = {\r\n message: Discord.Message;\r\n};\r\n\r\nexport interface DBIConfig<TNamespace extends NamespaceEnums> {\r\n discord: {\r\n namespace: string;\r\n token: string;\r\n options: Discord.ClientOptions;\r\n }[];\r\n defaults: {\r\n locale: TDBILocaleString;\r\n directMessages: boolean;\r\n defaultMemberPermissions: Discord.PermissionsString[];\r\n messageCommands: {\r\n deferReplyContent(ctx: TDBIMessageCommandsActionCtx<TNamespace>): MessagePayload | string | Promise<MessagePayload | string>;\r\n };\r\n };\r\n\r\n sharding: \"hybrid\" | \"default\" | \"off\";\r\n /**\r\n * Persist store. (Default to MemoryStore thats not persis tho.)\r\n */\r\n store: DBIStore;\r\n\r\n references: {\r\n autoClear?: {\r\n check: number;\r\n ttl: number;\r\n };\r\n };\r\n\r\n inlineListeners: {\r\n autoClear?: {\r\n check: number;\r\n ttl: number;\r\n };\r\n }\r\n\r\n strict: boolean;\r\n messageCommands?: {\r\n prefixes(ctx: TDBIMessageCommandsPrefixesCtx): string[] | Promise<string[]>;\r\n typeAliases: {\r\n booleans: Record<string, boolean>;\r\n };\r\n };\r\n}\r\n\r\nexport interface DBIConfigConstructor<TNamespace extends NamespaceEnums> {\r\n discord:\r\n | {\r\n token: string;\r\n options: Discord.ClientOptions;\r\n }\r\n | {\r\n namespace: string;\r\n token: string;\r\n options: Discord.ClientOptions;\r\n }[];\r\n\r\n defaults?: {\r\n locale?: TDBILocaleString;\r\n directMessages?: boolean;\r\n defaultMemberPermissions?: Discord.PermissionsString[];\r\n messageCommands?: {\r\n deferReplyContent?: MessagePayload | string | ((ctx: TDBIMessageCommandsActionCtx<TNamespace>) => MessagePayload | string | Promise<MessagePayload | string>);\r\n };\r\n };\r\n\r\n sharding?: \"hybrid\" | \"default\" | \"off\";\r\n /**\r\n * Persist store. (Default to MemoryStore thats not persis tho.)\r\n */\r\n store?: DBIStore;\r\n\r\n references?: {\r\n autoClear?: {\r\n check: number;\r\n ttl: number;\r\n };\r\n };\r\n\r\n inlineListeners?: {\r\n autoClear?: {\r\n check: number;\r\n ttl: number;\r\n };\r\n };\r\n\r\n data?: {\r\n other?: Record<string, any>;\r\n refs?: Map<string, { at: number; value: any; ttl?: number }>;\r\n };\r\n\r\n strict?: boolean;\r\n\r\n messageCommands?: {\r\n prefixes: string[] | ((ctx: TDBIMessageCommandsPrefixesCtx) => string[] | Promise<string[]>);\r\n typeAliases?: {\r\n /**\r\n * Example: {\"yes\": true, \"no\": false}\r\n */\r\n booleans?: Record<string, boolean>;\r\n };\r\n };\r\n}\r\n\r\nexport interface DBIRegisterAPI<TNamespace extends NamespaceEnums> {\r\n ChatInput(cfg: TDBIChatInputOmitted<TNamespace>): DBIChatInput<TNamespace>;\r\n ChatInputOptions: DBIChatInputOptions<TNamespace>;\r\n Event(cfg: TDBIEventOmitted<TNamespace>): DBIEvent<TNamespace>;\r\n Locale(cfg: TDBILocaleConstructor<TNamespace>): DBILocale<TNamespace>;\r\n Button(cfg: TDBIButtonOmitted<TNamespace>): DBIButton<TNamespace>;\r\n StringSelectMenu(\r\n cfg: TDBIStringSelectMenuOmitted<TNamespace>\r\n ): DBIStringSelectMenu<TNamespace>;\r\n UserSelectMenu(\r\n cfg: TDBIUserSelectMenuOmitted<TNamespace>\r\n ): DBIUserSelectMenu<TNamespace>;\r\n RoleSelectMenu(\r\n cfg: TDBIRoleSelectMenuOmitted<TNamespace>\r\n ): DBIRoleSelectMenu<TNamespace>;\r\n ChannelSelectMenu(\r\n cfg: TDBIChannelSelectMenuOmitted<TNamespace>\r\n ): DBIChannelSelectMenu<TNamespace>;\r\n MentionableSelectMenu(\r\n cfg: TDBIMentionableSelectMenuOmitted<TNamespace>\r\n ): DBIMentionableSelectMenu<TNamespace>;\r\n MessageContextMenu(\r\n cfg: TDBIMessageContextMenuOmitted<TNamespace>\r\n ): DBIMessageContextMenu<TNamespace>;\r\n UserContextMenu(\r\n cfg: TDBIUserContextMenuOmitted<TNamespace>\r\n ): DBIUserContextMenu<TNamespace>;\r\n InteractionLocale(cfg: TDBIInteractionLocaleOmitted): DBIInteractionLocale;\r\n Modal(cfg: TDBIModalOmitted<TNamespace>): DBIModal<TNamespace>;\r\n CustomEvent<T extends keyof NamespaceData[TNamespace][\"customEvents\"]>(\r\n cfg: TDBICustomEventOmitted<TNamespace, T>\r\n ): DBICustomEvent<TNamespace, T>;\r\n\r\n createInlineEvent(cfg: Omit<TDBIEventOmitted<TNamespace>, \"id\">): DBIEvent<TNamespace>;\r\n createInlineButton(cfg: Omit<TDBIButtonOmitted<TNamespace>, \"id\" | \"name\">): DBIButton<TNamespace>;\r\n createInlineStringSelectMenu(\r\n cfg: Omit<TDBIStringSelectMenuOmitted<TNamespace>, \"id\" | \"name\">\r\n ): DBIStringSelectMenu<TNamespace>;\r\n createInlineUserSelectMenu(\r\n cfg: Omit<TDBIUserSelectMenuOmitted<TNamespace>, \"id\" | \"name\">\r\n ): DBIUserSelectMenu<TNamespace>;\r\n createInlineRoleSelectMenu(\r\n cfg: Omit<TDBIRoleSelectMenuOmitted<TNamespace>, \"id\" | \"name\">\r\n ): DBIRoleSelectMenu<TNamespace>;\r\n createInlineChannelSelectMenu(\r\n cfg: Omit<TDBIChannelSelectMenuOmitted<TNamespace>, \"id\" | \"name\">\r\n ): DBIChannelSelectMenu<TNamespace>;\r\n createInlineMentionableSelectMenu(\r\n cfg: Omit<TDBIMentionableSelectMenuOmitted<TNamespace>, \"id\" | \"name\">\r\n ): DBIMentionableSelectMenu<TNamespace>;\r\n createInlineModal(cfg: Omit<TDBIModalOmitted<TNamespace>, \"id\" | \"name\">): DBIModal<TNamespace>;\r\n\r\n onUnload(cb: () => Promise<any> | any): any;\r\n}\r\n\r\nexport class DBI<\r\n TNamespace extends NamespaceEnums,\r\n TOtherData = Record<string, any>\r\n> {\r\n namespace: TNamespace;\r\n config: DBIConfig<TNamespace>;\r\n data: {\r\n interactions: Discord.Collection<string, TDBIInteractions<TNamespace>>;\r\n events: Discord.Collection<string, DBIEvent<TNamespace>>;\r\n locales: Discord.Collection<string, DBILocale<TNamespace>>;\r\n interactionLocales: Discord.Collection<string, DBIInteractionLocale>;\r\n other: TOtherData;\r\n eventMap: Record<string, string[] | { [k: string]: string }>;\r\n customEventNames: Set<string>;\r\n unloaders: Set<() => void>;\r\n registers: Set<(...args: any[]) => any>;\r\n registerUnloaders: Set<(...args: any[]) => any>;\r\n refs: Map<string, { at: number; value: any; ttl?: number }>;\r\n clients: TDBIClientData<TNamespace>[] & {\r\n next(key?: string): TDBIClientData<TNamespace>;\r\n random(): TDBIClientData<TNamespace>;\r\n random(size: number): TDBIClientData<TNamespace>[];\r\n first(): TDBIClientData<TNamespace>;\r\n get(\r\n namespace: NamespaceData[TNamespace][\"clientNamespaces\"]\r\n ): TDBIClientData<TNamespace>;\r\n indexes: Record<string, number>;\r\n };\r\n };\r\n events: Events<TNamespace>;\r\n cluster?: Sharding.ClusterClient<Discord.Client>;\r\n private _loaded: boolean;\r\n private _hooked: boolean;\r\n constructor(namespace: TNamespace, config: DBIConfigConstructor<TNamespace>) {\r\n this.namespace = namespace as any;\r\n const self = this;\r\n\r\n config.store = (config.store as any) || new MemoryStore();\r\n config.defaults = {\r\n locale: \"en\",\r\n defaultMemberPermissions: [],\r\n directMessages: false,\r\n ...(config.defaults || {}),\r\n messageCommands: (() => {\r\n let deferReplyContent = config.defaults?.messageCommands?.deferReplyContent\r\n return {\r\n ...(config.defaults?.messageCommands || {}),\r\n deferReplyContent: (typeof deferReplyContent === \"function\" ? deferReplyContent : () => deferReplyContent || \"Loading...\") as any\r\n }\r\n })(),\r\n };\r\n config.sharding = config.sharding ?? \"off\";\r\n config.strict = config.strict ?? true;\r\n config.references = {\r\n autoClear: undefined,\r\n ...(config.references || {}),\r\n };\r\n config.inlineListeners = {\r\n autoClear: {\r\n check: 60000,\r\n ttl: 900000,\r\n },\r\n ...(config.inlineListeners || {}),\r\n };\r\n\r\n if (config.messageCommands) {\r\n const { prefixes, typeAliases } = config.messageCommands;\r\n\r\n if (Array.isArray(prefixes) && config.strict && !prefixes.length)\r\n throw new Error(\"No prefixes provided.\");\r\n\r\n const prefixesFn = typeof prefixes === \"function\" ? prefixes : () => prefixes;\r\n\r\n config.messageCommands.prefixes = prefixesFn;\r\n config.messageCommands.typeAliases = {\r\n booleans: typeAliases.booleans ?? {\r\n true: true,\r\n false: false,\r\n yes: true,\r\n no: false,\r\n y: true,\r\n n: false,\r\n \"1\": true,\r\n \"0\": false,\r\n },\r\n };\r\n }\r\n\r\n // @ts-ignore\r\n this.config = config;\r\n\r\n this.data = {\r\n interactions: new Discord.Collection(),\r\n events: new Discord.Collection(),\r\n locales: new Discord.Collection(),\r\n interactionLocales: new Discord.Collection(),\r\n other: (config.data?.other as any) ?? ({} as TOtherData),\r\n eventMap: { ...eventMap },\r\n customEventNames: new Set(),\r\n unloaders: new Set(),\r\n registers: new Set(),\r\n registerUnloaders: new Set(),\r\n refs: config.data?.refs ?? new Map(),\r\n clients: Object.assign([], {\r\n next(key = \"global\") {\r\n this.indexes[key] = ((this.indexes[key] ?? -1) + 1) % this.length;\r\n return this[this.indexes[key]];\r\n },\r\n random(size?: number) {\r\n if (typeof size === \"number\") {\r\n return this.sort(() => Math.random() - 0.5).slice(0, size);\r\n } else {\r\n return this[Math.floor(Math.random() * this.length)];\r\n }\r\n },\r\n first() {\r\n return this[0];\r\n },\r\n get(namespace: string) {\r\n return this.find((i: any) => i.namespace === namespace);\r\n },\r\n indexes: {},\r\n }) as any,\r\n };\r\n\r\n this.events = new Events(this as any);\r\n\r\n config.discord = Array.isArray(config.discord)\r\n ? config.discord\r\n : [\r\n {\r\n token: config.discord.token,\r\n options: config.discord.options,\r\n namespace: \"default\",\r\n },\r\n ];\r\n\r\n this.data.clients.push(...(config.discord as any));\r\n for (let clientContext of this.data.clients) {\r\n let client = new Discord.Client({\r\n ...((clientContext.options || {}) as any),\r\n ...(config.sharding == \"hybrid\"\r\n ? {\r\n shards: Sharding.getInfo().SHARD_LIST,\r\n shardCount: Sharding.getInfo().TOTAL_SHARDS,\r\n }\r\n : {}),\r\n });\r\n clientContext.client = client as Discord.Client<true>;\r\n }\r\n\r\n if (this.data.clients.length === 0) throw new Error(\"No clients provided.\");\r\n if (\r\n this.data.clients.length !== 1 &&\r\n !(config.sharding && config.sharding === \"off\")\r\n )\r\n throw new Error(\"Sharding only supports 1 client.\");\r\n\r\n this.cluster =\r\n config.sharding == \"hybrid\"\r\n ? new Sharding.ClusterClient(this.data.clients[0].client)\r\n : undefined;\r\n this._loaded = false;\r\n this._hooked = false;\r\n }\r\n\r\n private async _hookListeners() {\r\n if (this._hooked) return;\r\n const self = this;\r\n this._hooked = true;\r\n this.data.unloaders.add(hookInteractionListeners(this as any));\r\n this.data.unloaders.add(hookEventListeners(this as any));\r\n if (typeof this.config.references.autoClear !== \"undefined\") {\r\n this.data.unloaders.add(\r\n (() => {\r\n let interval = setInterval(() => {\r\n this.data.refs.forEach(({ at, ttl }, key) => {\r\n if (\r\n Date.now() >\r\n at + (ttl || this.config.references.autoClear.ttl)\r\n ) {\r\n this.data.refs.delete(key);\r\n }\r\n });\r\n }, this.config.references.autoClear.check);\r\n return () => {\r\n clearInterval(interval);\r\n };\r\n })()\r\n );\r\n }\r\n if (typeof this.config.inlineListeners.autoClear !== \"undefined\") {\r\n this.data.unloaders.add(\r\n (() => {\r\n let interval = setInterval(() => {\r\n this.data.interactions.forEach((i, key) => {\r\n if (\r\n i.ttl &&\r\n (Date.now() >\r\n i.at + (i.ttl || this.config.inlineListeners.autoClear.ttl))\r\n ) {\r\n this.data.interactions.delete(key);\r\n }\r\n });\r\n this.data.events.forEach((i, key) => {\r\n if (\r\n i.ttl &&\r\n (Date.now() >\r\n i.at + (i.ttl || this.config.inlineListeners.autoClear.ttl))\r\n ) {\r\n this.data.events.delete(key);\r\n }\r\n });\r\n }, this.config.inlineListeners.autoClear.check);\r\n return () => {\r\n clearInterval(interval);\r\n };\r\n })()\r\n );\r\n }\r\n if (typeof this.config.messageCommands !== \"undefined\") {\r\n this.data.unloaders.add(\r\n (() => {\r\n const { client } = this.client();\r\n\r\n function onMessage(message: Discord.Message) {\r\n handleMessageCommands(self as any, message);\r\n }\r\n\r\n client.on(\"messageCreate\", onMessage);\r\n return () => {\r\n client.off(\"messageCreate\", onMessage);\r\n };\r\n })()\r\n );\r\n }\r\n }\r\n\r\n private async _unhookListeners() {\r\n if (!this._hooked) return;\r\n this._hooked = false;\r\n this.data.unloaders.forEach((f) => {\r\n f();\r\n });\r\n this.data.unloaders.clear();\r\n }\r\n\r\n private async _unregisterAll() {\r\n for await (const cb of this.data.registerUnloaders) {\r\n await cb();\r\n }\r\n this.data.events.clear();\r\n this.data.interactions.clear();\r\n this.data.interactionLocales.clear();\r\n this.data.locales.clear();\r\n this.data.registerUnloaders.clear();\r\n this.data.refs.clear();\r\n\r\n this.data.customEventNames.forEach((value) => {\r\n delete this.data.eventMap[value];\r\n });\r\n this.data.customEventNames.clear();\r\n }\r\n\r\n private async _registerAll(flags: string[] = []) {\r\n const self = this;\r\n const ChatInputOptions = new DBIChatInputOptions(self);\r\n\r\n const randomInlineId = () => `inline:${Math.random().toString(36).slice(2)}`;\r\n\r\n for await (const cb of this.data.registers) {\r\n let ChatInput = function (cfg: DBIChatInput<TNamespace>) {\r\n let dbiChatInput = new DBIChatInput(self, cfg);\r\n if (self.data.interactions.has(dbiChatInput.name))\r\n throw new Error(\r\n `DBIChatInput \"${dbiChatInput.name}\" already loaded as \"${self.data.interactions.get(dbiChatInput.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(dbiChatInput.name, dbiChatInput);\r\n return dbiChatInput;\r\n };\r\n ChatInput = Object.assign(\r\n ChatInput,\r\n class {\r\n constructor(...args: any[]) {\r\n return ChatInput.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let Event = function (cfg: TDBIEventOmitted<TNamespace>) {\r\n let dbiEvent = new DBIEvent(self as any, cfg);\r\n if (\r\n self.config.strict &&\r\n self.data.events.has(dbiEvent.id || dbiEvent.name)\r\n )\r\n throw new Error(\r\n `DBIEvent \"${dbiEvent.id || dbiEvent.name}\" already loaded!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.events.set(dbiEvent.id || dbiEvent.name, dbiEvent);\r\n return dbiEvent;\r\n };\r\n Event = Object.assign(\r\n Event,\r\n class {\r\n constructor(...args: any[]) {\r\n return Event.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let createInlineEvent = function (cfg: Omit<TDBIEventOmitted<TNamespace>, \"id\">) {\r\n return Event({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id: randomInlineId() } as any);\r\n }\r\n\r\n let Button = function (cfg: TDBIButtonOmitted<TNamespace>) {\r\n let dbiButton = new DBIButton(self as any, cfg);\r\n if (self.config.strict && self.data.interactions.has(dbiButton.name))\r\n throw new Error(\r\n `DBIButton \"${dbiButton.name}\" already loaded as \"${self.data.interactions.get(dbiButton.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(dbiButton.name, dbiButton as any);\r\n return dbiButton;\r\n };\r\n Button = Object.assign(\r\n Button,\r\n class {\r\n constructor(...args: any[]) {\r\n return Button.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let createInlineButton = function (cfg: Omit<TDBIButtonOmitted<TNamespace>, \"name\" | \"id\">) {\r\n let id = randomInlineId();\r\n return Button({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id, name: id } as any);\r\n }\r\n\r\n let StringSelectMenu = function (\r\n cfg: TDBIStringSelectMenuOmitted<TNamespace>\r\n ) {\r\n let dbiStringSelectMenu = new DBIStringSelectMenu(self as any, cfg);\r\n if (\r\n self.config.strict &&\r\n self.data.interactions.has(dbiStringSelectMenu.name)\r\n )\r\n throw new Error(\r\n `DBIStringSelectMenu \"${dbiStringSelectMenu.name\r\n }\" already loaded as \"${self.data.interactions.get(dbiStringSelectMenu.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(\r\n dbiStringSelectMenu.name,\r\n dbiStringSelectMenu as any\r\n );\r\n return dbiStringSelectMenu;\r\n };\r\n StringSelectMenu = Object.assign(\r\n StringSelectMenu,\r\n class {\r\n constructor(...args: any[]) {\r\n return StringSelectMenu.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let createInlineStringSelectMenu = function (cfg: Omit<TDBIStringSelectMenuOmitted<TNamespace>, \"id\" | \"name\">) {\r\n let id = randomInlineId();\r\n return StringSelectMenu({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id, name: id } as any);\r\n }\r\n\r\n let UserSelectMenu = function (\r\n cfg: TDBIUserSelectMenuOmitted<TNamespace>\r\n ) {\r\n let dbiUserSelectMenu = new DBIUserSelectMenu(self as any, cfg);\r\n if (\r\n self.config.strict &&\r\n self.data.interactions.has(dbiUserSelectMenu.name)\r\n )\r\n throw new Error(\r\n `DBIUserSelectMenu \"${dbiUserSelectMenu.name}\" already loaded as \"${self.data.interactions.get(dbiUserSelectMenu.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(\r\n dbiUserSelectMenu.name,\r\n dbiUserSelectMenu as any\r\n );\r\n return dbiUserSelectMenu;\r\n };\r\n UserSelectMenu = Object.assign(\r\n UserSelectMenu,\r\n class {\r\n constructor(...args: any[]) {\r\n return UserSelectMenu.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let createInlineUserSelectMenu = function (cfg: Omit<TDBIUserSelectMenuOmitted<TNamespace>, \"id\" | \"name\">) {\r\n let id = randomInlineId();\r\n return UserSelectMenu({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id, name: id } as any);\r\n }\r\n\r\n let RoleSelectMenu = function (\r\n cfg: TDBIRoleSelectMenuOmitted<TNamespace>\r\n ) {\r\n let dbiRoleSelectMenu = new DBIRoleSelectMenu(self as any, cfg);\r\n if (\r\n self.config.strict &&\r\n self.data.interactions.has(dbiRoleSelectMenu.name)\r\n )\r\n throw new Error(\r\n `DBIRoleSelectMenu \"${dbiRoleSelectMenu.name}\" already loaded as \"${self.data.interactions.get(dbiRoleSelectMenu.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(\r\n dbiRoleSelectMenu.name,\r\n dbiRoleSelectMenu as any\r\n );\r\n return dbiRoleSelectMenu;\r\n };\r\n RoleSelectMenu = Object.assign(\r\n RoleSelectMenu,\r\n class {\r\n constructor(...args: any[]) {\r\n return RoleSelectMenu.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let createInlineRoleSelectMenu = function (cfg: Omit<TDBIRoleSelectMenuOmitted<TNamespace>, \"id\" | \"name\">) {\r\n let id = randomInlineId();\r\n return RoleSelectMenu({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id, name: id } as any);\r\n }\r\n\r\n let ChannelSelectMenu = function (\r\n cfg: TDBIChannelSelectMenuOmitted<TNamespace>\r\n ) {\r\n let dbiChannelSelectMenu = new DBIChannelSelectMenu(self as any, cfg);\r\n if (\r\n self.config.strict &&\r\n self.data.interactions.has(dbiChannelSelectMenu.name)\r\n )\r\n throw new Error(\r\n `DBIChannelSelectMenu \"${dbiChannelSelectMenu.name\r\n }\" already loaded as \"${self.data.interactions.get(dbiChannelSelectMenu.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(\r\n dbiChannelSelectMenu.name,\r\n dbiChannelSelectMenu as any\r\n );\r\n return dbiChannelSelectMenu;\r\n };\r\n ChannelSelectMenu = Object.assign(\r\n ChannelSelectMenu,\r\n class {\r\n constructor(...args: any[]) {\r\n return ChannelSelectMenu.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let createInlineChannelSelectMenu = function (cfg: Omit<TDBIChannelSelectMenuOmitted<TNamespace>, \"id\" | \"name\">) {\r\n let id = randomInlineId();\r\n return ChannelSelectMenu({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id, name: id } as any);\r\n }\r\n\r\n let MentionableSelectMenu = function (\r\n cfg: TDBIMentionableSelectMenuOmitted<TNamespace>\r\n ) {\r\n let dbiMentionableSelectMenu = new DBIMentionableSelectMenu(\r\n self as any,\r\n cfg\r\n );\r\n if (\r\n self.config.strict &&\r\n self.data.interactions.has(dbiMentionableSelectMenu.name)\r\n )\r\n throw new Error(\r\n `DBIMentionableSelectMenu \"${dbiMentionableSelectMenu.name\r\n }\" already loaded as \"${self.data.interactions.get(dbiMentionableSelectMenu.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(\r\n dbiMentionableSelectMenu.name,\r\n dbiMentionableSelectMenu as any\r\n );\r\n return dbiMentionableSelectMenu;\r\n };\r\n MentionableSelectMenu = Object.assign(\r\n MentionableSelectMenu,\r\n class {\r\n constructor(...args: any[]) {\r\n return MentionableSelectMenu.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let createInlineMentionableSelectMenu = function (cfg: Omit<TDBIMentionableSelectMenuOmitted<TNamespace>, \"id\" | \"name\">) {\r\n let id = randomInlineId();\r\n return MentionableSelectMenu({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id, name: id } as any);\r\n }\r\n\r\n let MessageContextMenu = function (\r\n cfg: TDBIMessageContextMenuOmitted<TNamespace>\r\n ) {\r\n let dbiMessageContextMenu = new DBIMessageContextMenu(self as any, cfg);\r\n if (\r\n self.config.strict &&\r\n self.data.interactions.has(dbiMessageContextMenu.name)\r\n )\r\n throw new Error(\r\n `DBIMessageContextMenu \"${dbiMessageContextMenu.name\r\n }\" already loaded as \"${self.data.interactions.get(dbiMessageContextMenu.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(\r\n dbiMessageContextMenu.name,\r\n dbiMessageContextMenu as any\r\n );\r\n return dbiMessageContextMenu;\r\n };\r\n MessageContextMenu = Object.assign(\r\n MessageContextMenu,\r\n class {\r\n constructor(...args: any[]) {\r\n return MessageContextMenu.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let UserContextMenu = function (\r\n cfg: TDBIUserContextMenuOmitted<TNamespace>\r\n ) {\r\n let dbiUserContextMenu = new DBIUserContextMenu(self as any, cfg);\r\n if (\r\n self.config.strict &&\r\n self.data.interactions.has(dbiUserContextMenu.name)\r\n )\r\n throw new Error(\r\n `DBIUserContextMenu \"${dbiUserContextMenu.name\r\n }\" already loaded as \"${self.data.interactions.get(dbiUserContextMenu.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(\r\n dbiUserContextMenu.name,\r\n dbiUserContextMenu as any\r\n );\r\n return dbiUserContextMenu;\r\n };\r\n UserContextMenu = Object.assign(\r\n UserContextMenu,\r\n class {\r\n constructor(...args: any[]) {\r\n return UserContextMenu.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let Modal = function (cfg: TDBIModalOmitted<TNamespace>) {\r\n let dbiModal = new DBIModal(self as any, cfg);\r\n if (self.config.strict && self.data.interactions.has(dbiModal.name))\r\n throw new Error(\r\n `DBIModal \"${dbiModal.name}\" already loaded as \"${self.data.interactions.get(dbiModal.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(dbiModal.name, dbiModal as any);\r\n return dbiModal;\r\n };\r\n Modal = Object.assign(\r\n Modal,\r\n class {\r\n constructor(...args: any[]) {\r\n return Modal.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let createInlineModal = function (cfg: Omit<TDBIModalOmitted<TNamespace>, \"name\" | \"id\">) {\r\n let id = randomInlineId();\r\n return Modal({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id, name: id } as any);\r\n }\r\n\r\n let Locale = function (cfg: TDBILocaleConstructor<TNamespace>) {\r\n let dbiLocale = new DBILocale(self as any, cfg);\r\n if (\r\n self.config.strict &&\r\n self.data.interactionLocales.has(dbiLocale.name)\r\n )\r\n throw new Error(`DBILocale \"${dbiLocale.name}\" already loaded!`);\r\n if (self.data.locales.has(dbiLocale.name))\r\n dbiLocale.mergeLocale(self.data.locales.get(dbiLocale.name));\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.locales.set(dbiLocale.name, dbiLocale);\r\n return dbiLocale;\r\n };\r\n Locale = Object.assign(\r\n Locale,\r\n class {\r\n constructor(...args: any[]) {\r\n return Locale.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let CustomEvent = function (cfg: TDBICustomEventOmitted<TNamespace>) {\r\n let dbiCustomEvent = new DBICustomEvent(self, cfg) as any;\r\n if (self.config.strict && self.data.eventMap[dbiCustomEvent.name])\r\n throw new Error(\r\n `DBICustomEvent \"${dbiCustomEvent.name}\" already loaded!`\r\n );\r\n self.data.eventMap[dbiCustomEvent.name] = dbiCustomEvent.map;\r\n self.data.customEventNames.add(dbiCustomEvent.name);\r\n return dbiCustomEvent;\r\n };\r\n CustomEvent = Object.assign(\r\n CustomEvent,\r\n class {\r\n constructor(...args: any[]) {\r\n return CustomEvent.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let InteractionLocale = function (cfg: TDBIInteractionLocaleOmitted) {\r\n let dbiInteractionLocale = new DBIInteractionLocale(self, cfg);\r\n if (\r\n self.config.strict &&\r\n self.data.interactionLocales.has(dbiInteractionLocale.name)\r\n )\r\n throw new Error(\r\n `DBIInteractionLocale \"${dbiInteractionLocale.name}\" already loaded!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactionLocales.set(\r\n dbiInteractionLocale.name,\r\n dbiInteractionLocale\r\n );\r\n return dbiInteractionLocale;\r\n };\r\n InteractionLocale = Object.assign(\r\n InteractionLocale,\r\n class {\r\n constructor(...args: any[]) {\r\n return InteractionLocale.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n await cb({\r\n ChatInput,\r\n Event,\r\n ChatInputOptions,\r\n Locale,\r\n Button,\r\n StringSelectMenu,\r\n UserSelectMenu,\r\n RoleSelectMenu,\r\n ChannelSelectMenu,\r\n MentionableSelectMenu,\r\n MessageContextMenu,\r\n UserContextMenu,\r\n CustomEvent,\r\n Modal,\r\n InteractionLocale,\r\n createInlineButton,\r\n createInlineEvent,\r\n createInlineStringSelectMenu,\r\n createInlineUserSelectMenu,\r\n createInlineRoleSelectMenu,\r\n createInlineChannelSelectMenu,\r\n createInlineMentionableSelectMenu,\r\n createInlineModal,\r\n onUnload(cb: () => Promise<any> | any) {\r\n self.data.registerUnloaders.add(cb);\r\n },\r\n });\r\n }\r\n self.data.interactions.sort((a, b) => b.name.length - a.name.length);\r\n }\r\n\r\n emit<\r\n TEventName extends keyof (NamespaceData[TNamespace][\"customEvents\"] &\r\n ClientEvents)\r\n >(\r\n name: TEventName,\r\n args: (NamespaceData[TNamespace][\"customEvents\"] & ClientEvents)[TEventName]\r\n ): void {\r\n this.data.clients.forEach((d) =>\r\n d.client.emit(name as any, { ...args, _DIRECT_: true } as any)\r\n );\r\n }\r\n\r\n /**\r\n * this.data.interactions.get(name)\r\n */\r\n interaction<\r\n TInteractionName extends keyof NamespaceData[TNamespace][\"interactionMapping\"]\r\n >(\r\n name: TInteractionName\r\n ): NamespaceData[TNamespace][\"interactionMapping\"][TInteractionName] {\r\n return this.data.interactions.get(name as any) as any;\r\n }\r\n\r\n client<TClientName extends NamespaceData[TNamespace][\"clientNamespaces\"]>(\r\n name?: TClientName\r\n ): TDBIClientData<TNamespace> {\r\n return name ? this.data.clients.get(name) : this.data.clients.first();\r\n }\r\n /**\r\n * this.data.events.get(name)\r\n */\r\n event<TEventName extends NamespaceData[TNamespace][\"eventNames\"]>(\r\n name: TEventName\r\n ): DBIEvent<TNamespace> {\r\n return this.data.events.get(name);\r\n }\r\n\r\n /**\r\n * this.data.locales.get(name)\r\n */\r\n locale<TLocaleName extends NamespaceData[TNamespace][\"localeNames\"]>(\r\n name: TLocaleName\r\n ): DBILocale<TNamespace> {\r\n return this.data.locales.get(name) as any;\r\n }\r\n\r\n /**\r\n * Shorthands for modifying `dbi.data.other`\r\n */\r\n get<K extends keyof TOtherData>(\r\n k: K,\r\n defaultValue?: TOtherData[K]\r\n ): TOtherData[K] {\r\n if (defaultValue && !this.has(k as any)) {\r\n this.set(k, defaultValue);\r\n return defaultValue;\r\n }\r\n return _.get(this.data.other, k);\r\n }\r\n\r\n /**\r\n * Shorthands for modifying `dbi.data.other`\r\n */\r\n set<K extends keyof TOtherData>(k: K, v: TOtherData[K]): any {\r\n this.data.other = _.set(this.data.other as any, k, v);\r\n }\r\n\r\n /**\r\n * Shorthands for modifying `dbi.data.other`\r\n */\r\n has(k: string): boolean {\r\n return _.has(this.data.other, k as any);\r\n }\r\n\r\n /**\r\n * Shorthands for modifying `dbi.data.other`\r\n */\r\n delete(k: string): boolean {\r\n return _.unset(this.data.other, k);\r\n }\r\n\r\n async login(): Promise<any> {\r\n await aaq.quickForEach(this.data.clients, async (clientContext) => {\r\n await clientContext.client.login(\r\n this.config.sharding == \"default\" ? null : clientContext.token\r\n );\r\n });\r\n this.events.trigger(\"clientsReady\", undefined, true);\r\n }\r\n\r\n async register(cb: (api: DBIRegisterAPI<TNamespace>) => void): Promise<any> {\r\n this.data.registers.add(cb);\r\n }\r\n\r\n async load(...flags: string[]): Promise<boolean> {\r\n if (this._loaded) return false;\r\n await this._registerAll(flags);\r\n await this._hookListeners();\r\n this._loaded = true;\r\n return true;\r\n }\r\n\r\n async unload(): Promise<boolean> {\r\n if (!this._loaded) return false;\r\n await this._unregisterAll();\r\n await this._unhookListeners();\r\n this._loaded = false;\r\n return true;\r\n }\r\n\r\n get loaded(): boolean {\r\n return this._loaded;\r\n }\r\n\r\n async publish(type: \"Global\", clear?: boolean): Promise<any>;\r\n async publish(type: \"Guild\", guildId: string, clear?: boolean): Promise<any>;\r\n\r\n async publish(...args: any[]) {\r\n let interactions = this.data.interactions.filter(\r\n (i) =>\r\n i.type == \"ChatInput\" ||\r\n i.type == \"MessageContextMenu\" ||\r\n i.type == \"UserContextMenu\"\r\n ) as any;\r\n switch (args[0]) {\r\n case \"Global\": {\r\n return await publishInteractions(\r\n this.data.clients,\r\n args[1] ? new Discord.Collection() : interactions,\r\n this.data.interactionLocales,\r\n args[0]\r\n );\r\n }\r\n case \"Guild\": {\r\n return await publishInteractions(\r\n this.data.clients,\r\n args[2] ? new Discord.Collection() : interactions,\r\n this.data.interactionLocales,\r\n args[0],\r\n args[1]\r\n );\r\n }\r\n }\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../src/Events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../src/Events.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Events.js","sourceRoot":"","sources":["../src/Events.ts"],"names":[],"mappings":";;;AAiCA,MAAa,MAAM;IACjB,GAAG,CAAkB;IACrB,QAAQ,CAAmE;IAC3E,YAAY,GAAoB;QAC9B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QAEf,IAAI,CAAC,QAAQ,GAAG;YACd,iBAAiB,EAAE,EAAE;YACrB,gBAAgB,EAAE,EAAE;YACpB,oBAAoB,EAAE,EAAE;YACxB,WAAW,EAAE,EAAE;YACf,UAAU,EAAE,EAAE;YACd,gBAAgB,EAAE,EAAE;YACpB,UAAU,EAAE,EAAE;SACf,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAoB,EAAE,IAAU,EAAE,cAAc,GAAG,KAAK;QACpE,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ,EAAE,MAAM;YAAE,OAAO,IAAI,CAAC;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,cAAc,EAAE;gBACnB,IAAI,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;gBACnC,IAAI,QAAQ,KAAK,IAAI;oBAAE,OAAO,KAAK,CAAC;aACrC;iBAAM;gBACL,OAAO,CAAC,IAAI,CAAC,CAAC;aACf;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IA8FD,EAAE,CACA,SAAyB,EACzB,OAAkD,EAClD,UAA6B,EAAE,IAAI,EAAE,KAAK,EAAE;QAE5C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC;YAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;QAC5E,IAAI,OAAO,CAAC,IAAI,EAAE;YAChB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE;gBACf,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;gBACvB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC,CAAC;YACF,IAAI,CAAC,EAAE,CAAC,SAAgB,EAAE,CAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACrD,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YACzB,CAAC,CAAC;SACH;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAC/B,CAAC,CAAC;SACH;IACH,CAAC;IAED,GAAG,CACD,SAAyB,EACzB,OAAkD;QAElD,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACjC,IAAI,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;QAClB,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;CACF;AA3JD,wBA2JC","sourcesContent":["import { NamespaceEnums, NamespaceData } from \"../generated/namespaceData\";\r\nimport { DBI } from \"./DBI\";\r\nimport { TDBIMessageCommandArgumentErrorTypes } from \"./methods/handleMessageCommands\";\r\nimport { DBIChatInput } from \"./types/ChatInput/ChatInput\";\r\nimport { TDBIValueName } from \"./types/ChatInput/ChatInputOptions\";\r\nimport { ClientEvents, DBIEvent } from \"./types/Event\";\r\nimport { IDBIBaseExecuteCtx, TDBIRateLimitTypes } from \"./types/Interaction\";\r\nimport { FakeMessageInteraction } from \"./types/other/FakeMessageInteraction\";\r\nimport { DBILocale } from \"./types/other/Locale\";\r\nimport Discord, { PermissionsString } from \"discord.js\";\r\n\r\nexport type TDBIEventNames =\r\n | \"beforeInteraction\"\r\n | \"afterInteraction\"\r\n | \"interactionRateLimit\"\r\n | \"beforeEvent\"\r\n | \"afterEvent\"\r\n | \"interactionError\"\r\n | \"eventError\"\r\n | \"messageCommandArgumentError\"\r\n | \"messageCommandDirectMessageUsageError\"\r\n | \"messageCommandDefaultMemberPermissionsError\"\r\n | \"clientsReady\";\r\n\r\nexport type TDBIEventHandlerCtx<TNamespace extends NamespaceEnums> = {\r\n [K in keyof (ClientEvents & NamespaceData[TNamespace][\"customEvents\"])]: {\r\n other: Record<string, any>;\r\n locale?: { guild: DBILocale<TNamespace> };\r\n eventName: K;\r\n dbiEvent: DBIEvent<TNamespace>;\r\n } & (ClientEvents & NamespaceData[TNamespace][\"customEvents\"])[K];\r\n}[keyof (ClientEvents & NamespaceData[TNamespace][\"customEvents\"])];\r\n\r\nexport class Events<TNamespace extends NamespaceEnums> {\r\n DBI: DBI<TNamespace>;\r\n handlers: Record<string, Array<(data: any) => boolean | Promise<boolean>>>;\r\n constructor(DBI: DBI<TNamespace>) {\r\n this.DBI = DBI;\r\n\r\n this.handlers = {\r\n beforeInteraction: [],\r\n afterInteraction: [],\r\n interactionRateLimit: [],\r\n beforeEvent: [],\r\n afterEvent: [],\r\n interactionError: [],\r\n eventError: [],\r\n };\r\n }\r\n\r\n async trigger(name: TDBIEventNames, data?: any, ignoreResponse = false): Promise<boolean> {\r\n let handlers = this.handlers[name];\r\n if (!handlers?.length) return true;\r\n for (let i = 0; i < handlers.length; i++) {\r\n const handler = handlers[i];\r\n if (!ignoreResponse) {\r\n let returned = await handler(data);\r\n if (returned !== true) return false;\r\n } else {\r\n handler(data);\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n on(\r\n eventName: \"clientsReady\",\r\n handler: () => any,\r\n options?: { once: boolean }\r\n ): () => any;\r\n\r\n on(\r\n eventName: \"beforeInteraction\" | \"afterInteraction\",\r\n handler: (\r\n data: IDBIBaseExecuteCtx<TNamespace>\r\n ) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): () => any;\r\n\r\n on(\r\n eventName: \"interactionError\",\r\n handler: (\r\n data: IDBIBaseExecuteCtx<TNamespace> & { error: any }\r\n ) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): () => any;\r\n\r\n on(\r\n eventName: \"beforeEvent\" | \"afterEvent\",\r\n handler: (\r\n data: TDBIEventHandlerCtx<TNamespace>\r\n ) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): () => any;\r\n\r\n on(\r\n eventName: \"eventError\",\r\n handler: (\r\n data: TDBIEventHandlerCtx<TNamespace> & {\r\n error: any;\r\n dbiEvent: DBIEvent<TNamespace>;\r\n }\r\n ) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): () => any;\r\n\r\n on(\r\n eventName: \"interactionRateLimit\",\r\n handler: (\r\n data: Omit<IDBIBaseExecuteCtx<TNamespace>, \"other\" | \"setRateLimit\"> & {\r\n rateLimit: { type: TDBIRateLimitTypes; duration: number; at: number };\r\n }\r\n ) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): () => any;\r\n\r\n on(\r\n eventName: \"messageCommandArgumentError\",\r\n handler: (data: {\r\n message: Discord.Message;\r\n interaction: FakeMessageInteraction;\r\n error: {\r\n type: TDBIMessageCommandArgumentErrorTypes;\r\n option: any;\r\n index: number;\r\n extra?: any;\r\n };\r\n value: any;\r\n locale: { guild?: DBILocale<TNamespace>; user: DBILocale<TNamespace> };\r\n dbiInteraction: DBIChatInput<TNamespace>;\r\n }) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): () => any;\r\n\r\n on(\r\n eventName: \"messageCommandDefaultMemberPermissionsError\",\r\n handler: (data: {\r\n message: Discord.Message;\r\n interaction: FakeMessageInteraction;\r\n locale: { guild?: DBILocale<TNamespace>; user: DBILocale<TNamespace> };\r\n permissions: PermissionsString[];\r\n dbiInteraction: DBIChatInput<TNamespace>;\r\n }) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): () => any;\r\n\r\n on(\r\n eventName: \"messageCommandDirectMessageUsageError\",\r\n handler: (data: {\r\n message: Discord.Message;\r\n interaction: FakeMessageInteraction;\r\n locale: { guild?: DBILocale<TNamespace>; user: DBILocale<TNamespace> };\r\n dbiInteraction: DBIChatInput<TNamespace>;\r\n }) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): () => any;\r\n\r\n on(\r\n eventName: TDBIEventNames,\r\n handler: (data: any) => Promise<boolean> | boolean,\r\n options: { once: boolean } = { once: false }\r\n ): () => any {\r\n if (!this.handlers.hasOwnProperty(eventName)) this.handlers[eventName] = [];\r\n if (options.once) {\r\n let h = (data) => {\r\n this.off(eventName, h);\r\n return handler(data);\r\n };\r\n this.on(eventName as any, h as any, { once: false });\r\n return () => {\r\n this.off(eventName, h);\r\n };\r\n } else {\r\n this.handlers[eventName].push(handler);\r\n return () => {\r\n this.off(eventName, handler);\r\n };\r\n }\r\n }\r\n\r\n off(\r\n eventName: TDBIEventNames,\r\n handler: (data: any) => Promise<boolean> | boolean\r\n ) {\r\n let l = this.handlers[eventName];\r\n if (!l) return [];\r\n return l.splice(l.indexOf(handler), 1);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"Events.js","sourceRoot":"","sources":["../src/Events.ts"],"names":[],"mappings":";;;AAiCA,MAAa,MAAM;IACjB,GAAG,CAAkB;IACrB,QAAQ,CAAmE;IAC3E,YAAY,GAAoB;QAC9B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QAEf,IAAI,CAAC,QAAQ,GAAG;YACd,iBAAiB,EAAE,EAAE;YACrB,gBAAgB,EAAE,EAAE;YACpB,oBAAoB,EAAE,EAAE;YACxB,WAAW,EAAE,EAAE;YACf,UAAU,EAAE,EAAE;YACd,gBAAgB,EAAE,EAAE;YACpB,UAAU,EAAE,EAAE;SACf,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAoB,EAAE,IAAU,EAAE,cAAc,GAAG,KAAK;QACpE,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ,EAAE,MAAM;YAAE,OAAO,IAAI,CAAC;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,IAAI,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;gBACnC,IAAI,QAAQ,KAAK,IAAI;oBAAE,OAAO,KAAK,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IA8FD,EAAE,CACA,SAAyB,EACzB,OAAkD,EAClD,UAA6B,EAAE,IAAI,EAAE,KAAK,EAAE;QAE5C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC;YAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;QAC5E,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE;gBACf,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;gBACvB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC,CAAC;YACF,IAAI,CAAC,EAAE,CAAC,SAAgB,EAAE,CAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACrD,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YACzB,CAAC,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAC/B,CAAC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,GAAG,CACD,SAAyB,EACzB,OAAkD;QAElD,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACjC,IAAI,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;QAClB,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;CACF;AA3JD,wBA2JC","sourcesContent":["import { NamespaceEnums, NamespaceData } from \"../generated/namespaceData\";\r\nimport { DBI } from \"./DBI\";\r\nimport { TDBIMessageCommandArgumentErrorTypes } from \"./methods/handleMessageCommands\";\r\nimport { DBIChatInput } from \"./types/ChatInput/ChatInput\";\r\nimport { TDBIValueName } from \"./types/ChatInput/ChatInputOptions\";\r\nimport { ClientEvents, DBIEvent } from \"./types/Event\";\r\nimport { IDBIBaseExecuteCtx, TDBIRateLimitTypes } from \"./types/Interaction\";\r\nimport { FakeMessageInteraction } from \"./types/other/FakeMessageInteraction\";\r\nimport { DBILocale } from \"./types/other/Locale\";\r\nimport Discord, { PermissionsString } from \"discord.js\";\r\n\r\nexport type TDBIEventNames =\r\n | \"beforeInteraction\"\r\n | \"afterInteraction\"\r\n | \"interactionRateLimit\"\r\n | \"beforeEvent\"\r\n | \"afterEvent\"\r\n | \"interactionError\"\r\n | \"eventError\"\r\n | \"messageCommandArgumentError\"\r\n | \"messageCommandDirectMessageUsageError\"\r\n | \"messageCommandDefaultMemberPermissionsError\"\r\n | \"clientsReady\";\r\n\r\nexport type TDBIEventHandlerCtx<TNamespace extends NamespaceEnums> = {\r\n [K in keyof (ClientEvents & NamespaceData[TNamespace][\"customEvents\"])]: {\r\n other: Record<string, any>;\r\n locale?: { guild: DBILocale<TNamespace> };\r\n eventName: K;\r\n dbiEvent: DBIEvent<TNamespace>;\r\n } & (ClientEvents & NamespaceData[TNamespace][\"customEvents\"])[K];\r\n}[keyof (ClientEvents & NamespaceData[TNamespace][\"customEvents\"])];\r\n\r\nexport class Events<TNamespace extends NamespaceEnums> {\r\n DBI: DBI<TNamespace>;\r\n handlers: Record<string, Array<(data: any) => boolean | Promise<boolean>>>;\r\n constructor(DBI: DBI<TNamespace>) {\r\n this.DBI = DBI;\r\n\r\n this.handlers = {\r\n beforeInteraction: [],\r\n afterInteraction: [],\r\n interactionRateLimit: [],\r\n beforeEvent: [],\r\n afterEvent: [],\r\n interactionError: [],\r\n eventError: [],\r\n };\r\n }\r\n\r\n async trigger(name: TDBIEventNames, data?: any, ignoreResponse = false): Promise<boolean> {\r\n let handlers = this.handlers[name];\r\n if (!handlers?.length) return true;\r\n for (let i = 0; i < handlers.length; i++) {\r\n const handler = handlers[i];\r\n if (!ignoreResponse) {\r\n let returned = await handler(data);\r\n if (returned !== true) return false;\r\n } else {\r\n handler(data);\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n on(\r\n eventName: \"clientsReady\",\r\n handler: () => any,\r\n options?: { once: boolean }\r\n ): () => any;\r\n\r\n on(\r\n eventName: \"beforeInteraction\" | \"afterInteraction\",\r\n handler: (\r\n data: IDBIBaseExecuteCtx<TNamespace>\r\n ) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): () => any;\r\n\r\n on(\r\n eventName: \"interactionError\",\r\n handler: (\r\n data: IDBIBaseExecuteCtx<TNamespace> & { error: any }\r\n ) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): () => any;\r\n\r\n on(\r\n eventName: \"beforeEvent\" | \"afterEvent\",\r\n handler: (\r\n data: TDBIEventHandlerCtx<TNamespace>\r\n ) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): () => any;\r\n\r\n on(\r\n eventName: \"eventError\",\r\n handler: (\r\n data: TDBIEventHandlerCtx<TNamespace> & {\r\n error: any;\r\n dbiEvent: DBIEvent<TNamespace>;\r\n }\r\n ) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): () => any;\r\n\r\n on(\r\n eventName: \"interactionRateLimit\",\r\n handler: (\r\n data: Omit<IDBIBaseExecuteCtx<TNamespace>, \"other\" | \"setRateLimit\"> & {\r\n rateLimit: { type: TDBIRateLimitTypes; duration: number; at: number };\r\n }\r\n ) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): () => any;\r\n\r\n on(\r\n eventName: \"messageCommandArgumentError\",\r\n handler: (data: {\r\n message: Discord.Message;\r\n interaction: FakeMessageInteraction;\r\n error: {\r\n type: TDBIMessageCommandArgumentErrorTypes;\r\n option: any;\r\n index: number;\r\n extra?: any;\r\n };\r\n value: any;\r\n locale: { guild?: DBILocale<TNamespace>; user: DBILocale<TNamespace> };\r\n dbiInteraction: DBIChatInput<TNamespace>;\r\n }) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): () => any;\r\n\r\n on(\r\n eventName: \"messageCommandDefaultMemberPermissionsError\",\r\n handler: (data: {\r\n message: Discord.Message;\r\n interaction: FakeMessageInteraction;\r\n locale: { guild?: DBILocale<TNamespace>; user: DBILocale<TNamespace> };\r\n permissions: PermissionsString[];\r\n dbiInteraction: DBIChatInput<TNamespace>;\r\n }) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): () => any;\r\n\r\n on(\r\n eventName: \"messageCommandDirectMessageUsageError\",\r\n handler: (data: {\r\n message: Discord.Message;\r\n interaction: FakeMessageInteraction;\r\n locale: { guild?: DBILocale<TNamespace>; user: DBILocale<TNamespace> };\r\n dbiInteraction: DBIChatInput<TNamespace>;\r\n }) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): () => any;\r\n\r\n on(\r\n eventName: TDBIEventNames,\r\n handler: (data: any) => Promise<boolean> | boolean,\r\n options: { once: boolean } = { once: false }\r\n ): () => any {\r\n if (!this.handlers.hasOwnProperty(eventName)) this.handlers[eventName] = [];\r\n if (options.once) {\r\n let h = (data) => {\r\n this.off(eventName, h);\r\n return handler(data);\r\n };\r\n this.on(eventName as any, h as any, { once: false });\r\n return () => {\r\n this.off(eventName, h);\r\n };\r\n } else {\r\n this.handlers[eventName].push(handler);\r\n return () => {\r\n this.off(eventName, handler);\r\n };\r\n }\r\n }\r\n\r\n off(\r\n eventName: TDBIEventNames,\r\n handler: (data: any) => Promise<boolean> | boolean\r\n ) {\r\n let l = this.handlers[eventName];\r\n if (!l) return [];\r\n return l.splice(l.indexOf(handler), 1);\r\n }\r\n}\r\n"]}
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Utils = exports.createDBI = exports.generatedPath = exports.MemoryStore = void 0;
3
+ exports.Utils = exports.generatedPath = exports.MemoryStore = void 0;
4
+ exports.createDBI = createDBI;
4
5
  const tslib_1 = require("tslib");
5
6
  const DBI_1 = require("./DBI");
6
7
  const recursiveImport_1 = require("./utils/recursiveImport");
@@ -14,7 +15,6 @@ exports.generatedPath = path_1.default.resolve(__dirname, "../generated");
14
15
  function createDBI(namespace, cfg) {
15
16
  return new DBI_1.DBI(namespace, cfg);
16
17
  }
17
- exports.createDBI = createDBI;
18
18
  ;
19
19
  exports.Utils = {
20
20
  parseCustomId: customId_1.parseCustomId,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AACA,+BAAkD;AAClD,6DAA0D;AAC1D,mDAAkD;AAAzC,0GAAA,WAAW,OAAA;AAEpB,wDAAwB;AACxB,+CAAgE;AAChE,uDAAoD;AACpD,6DAA0D;AAE7C,QAAA,aAAa,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AAErE,SAAgB,SAAS,CAAsE,SAAqB,EAAE,GAAqC;IACzJ,OAAO,IAAI,SAAG,CAAyB,SAAS,EAAE,GAAG,CAAC,CAAC;AACzD,CAAC;AAFD,8BAEC;AAAA,CAAC;AAEW,QAAA,KAAK,GAAG;IACnB,aAAa,EAAb,wBAAa;IACb,aAAa,EAAb,wBAAa;IACb,eAAe,EAAf,iCAAe;IACf,YAAY,EAAZ,2BAAY;IACZ,eAAe,EAAf,iCAAe;CAChB,CAAC","sourcesContent":["import { NamespaceEnums } from \"../generated/namespaceData\";\r\nimport { DBI, DBIConfigConstructor } from \"./DBI\";\r\nimport { recursiveImport } from \"./utils/recursiveImport\";\r\nexport { MemoryStore } from \"./utils/MemoryStore\";\r\n\r\nimport path from \"path\";\r\nimport { parseCustomId, buildCustomId } from \"./utils/customId\";\r\nimport { unloadModule } from \"./utils/unloadModule\";\r\nimport { recursiveUnload } from \"./utils/recursiveUnload\";\r\n\r\nexport const generatedPath = path.resolve(__dirname, \"../generated\");\r\n\r\nexport function createDBI<TNamespace extends NamespaceEnums, TOtherType = Record<string, any>>(namespace: TNamespace, cfg: DBIConfigConstructor<TNamespace>): DBI<TNamespace, TOtherType> {\r\n return new DBI<TNamespace, TOtherType>(namespace, cfg);\r\n};\r\n\r\nexport const Utils = {\r\n parseCustomId,\r\n buildCustomId,\r\n recursiveImport,\r\n unloadModule,\r\n recursiveUnload\r\n};"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAYA,8BAEC;;AAbD,+BAAkD;AAClD,6DAA0D;AAC1D,mDAAkD;AAAzC,0GAAA,WAAW,OAAA;AAEpB,wDAAwB;AACxB,+CAAgE;AAChE,uDAAoD;AACpD,6DAA0D;AAE7C,QAAA,aAAa,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AAErE,SAAgB,SAAS,CAAsE,SAAqB,EAAE,GAAqC;IACzJ,OAAO,IAAI,SAAG,CAAyB,SAAS,EAAE,GAAG,CAAC,CAAC;AACzD,CAAC;AAAA,CAAC;AAEW,QAAA,KAAK,GAAG;IACnB,aAAa,EAAb,wBAAa;IACb,aAAa,EAAb,wBAAa;IACb,eAAe,EAAf,iCAAe;IACf,YAAY,EAAZ,2BAAY;IACZ,eAAe,EAAf,iCAAe;CAChB,CAAC","sourcesContent":["import { NamespaceEnums } from \"../generated/namespaceData\";\r\nimport { DBI, DBIConfigConstructor } from \"./DBI\";\r\nimport { recursiveImport } from \"./utils/recursiveImport\";\r\nexport { MemoryStore } from \"./utils/MemoryStore\";\r\n\r\nimport path from \"path\";\r\nimport { parseCustomId, buildCustomId } from \"./utils/customId\";\r\nimport { unloadModule } from \"./utils/unloadModule\";\r\nimport { recursiveUnload } from \"./utils/recursiveUnload\";\r\n\r\nexport const generatedPath = path.resolve(__dirname, \"../generated\");\r\n\r\nexport function createDBI<TNamespace extends NamespaceEnums, TOtherType = Record<string, any>>(namespace: TNamespace, cfg: DBIConfigConstructor<TNamespace>): DBI<TNamespace, TOtherType> {\r\n return new DBI<TNamespace, TOtherType>(namespace, cfg);\r\n};\r\n\r\nexport const Utils = {\r\n parseCustomId,\r\n buildCustomId,\r\n recursiveImport,\r\n unloadModule,\r\n recursiveUnload\r\n};"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handleMessageCommands = void 0;
3
+ exports.handleMessageCommands = handleMessageCommands;
4
4
  const discord_js_1 = require("discord.js");
5
5
  const FakeMessageInteraction_1 = require("../types/other/FakeMessageInteraction");
6
6
  const INTEGER_REGEX = /^-?\d+$/;
@@ -380,5 +380,4 @@ async function handleMessageCommands(dbi, message) {
380
380
  interaction.init();
381
381
  dbi.data.clients.first().client.emit("interactionCreate", interaction);
382
382
  }
383
- exports.handleMessageCommands = handleMessageCommands;
384
383
  //# sourceMappingURL=handleMessageCommands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handleMessageCommands.js","sourceRoot":"","sources":["../../src/methods/handleMessageCommands.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n ApplicationCommandType,\r\n ChatInputCommandInteraction,\r\n Message,\r\n MessagePayload,\r\n ApplicationCommandOptionType,\r\n} from \"discord.js\";\r\nimport { NamespaceEnums } from \"../../generated/namespaceData\";\r\nimport { DBI } from \"../DBI\";\r\nimport { FakeMessageInteraction } from \"../types/other/FakeMessageInteraction\";\r\nimport { TDBILocaleString } from \"../types/other/Locale\";\r\n\r\nconst INTEGER_REGEX = /^-?\\d+$/;\r\nconst NUMBER_REGEX = /^-?\\d+(?:\\.\\d+)?$/;\r\n\r\nexport type TDBIMessageCommandArgumentErrorTypes =\r\n | \"MissingRequiredOption\"\r\n | \"MinLength\"\r\n | \"MaxLength\"\r\n | \"InvalidChoice\"\r\n | \"InvalidInteger\"\r\n | \"MinInteger\"\r\n | \"MaxInteger\"\r\n | \"InvalidNumber\"\r\n | \"MinNumber\"\r\n | \"MaxNumber\"\r\n | \"InvalidBoolean\"\r\n | \"InvalidUser\"\r\n | \"InvalidChannel\"\r\n | \"InvalidRole\"\r\n | \"InvalidMentionable\"\r\n | \"InvalidCompleteChoice\";\r\n\r\nexport async function handleMessageCommands(\r\n dbi: DBI<NamespaceEnums>,\r\n message: Message\r\n) {\r\n const chatInputs = dbi.data.interactions.filter(\r\n (i) => i.type === \"ChatInput\"\r\n );\r\n const prefixes = await dbi.config.messageCommands.prefixes({ message });\r\n if (!prefixes?.length) return;\r\n const content = message.content;\r\n const usedPrefix = prefixes.find((p) => content.startsWith(p));\r\n if (!usedPrefix) return;\r\n const contentWithoutPrefix = content.slice(usedPrefix?.length ?? 0);\r\n const contentLower = contentWithoutPrefix.toLowerCase();\r\n\r\n let locale: string =\r\n message.guild.preferredLocale?.split(\"-\")?.at(0) ||\r\n (dbi.config.defaults.locale as any);\r\n let usedAlias: string | undefined;\r\n let chatInput = chatInputs.find((i) => {\r\n let found = contentLower.startsWith(i.name);\r\n if (found) return true;\r\n let alias = i.other?.messageCommand?.aliases?.find((a) =>\r\n contentLower.startsWith(a)\r\n );\r\n if (alias) {\r\n usedAlias = alias;\r\n return true;\r\n }\r\n return false;\r\n });\r\n let commandName = usedAlias ?? chatInput?.name;\r\n\r\n if (!chatInput) {\r\n fLoop: for (const [localeInterName, localeData] of dbi.data\r\n .interactionLocales) {\r\n for (const [localeName, translation] of Object.entries(\r\n localeData.data || {}\r\n )) {\r\n if (contentLower.startsWith(translation.name)) {\r\n commandName = translation.name;\r\n locale = localeName;\r\n chatInput = chatInputs.find((i) => i.name === localeData.name);\r\n break fLoop;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (!chatInput) return;\r\n\r\n const interaction = new FakeMessageInteraction(\r\n dbi,\r\n message,\r\n chatInput as any,\r\n locale,\r\n commandName,\r\n usedPrefix\r\n );\r\n\r\n const builtLocale = {\r\n user:\r\n dbi.data.locales.get(interaction.locale) ||\r\n dbi.data.locales.get(dbi.config.defaults.locale),\r\n guild: message.guild?.preferredLocale\r\n ? dbi.data.locales.get(\r\n message.guild?.preferredLocale?.split(\"-\")?.at(0)\r\n ) || dbi.data.locales.get(dbi.config.defaults.locale)\r\n : null,\r\n };\r\n\r\n const { defaultMemberPermissions, directMessages } = chatInput as any;\r\n\r\n if (typeof directMessages !== \"undefined\" && !directMessages && !message.guild) {\r\n const res = await dbi.events.trigger(\r\n \"messageCommandDirectMessageUsageError\", {\r\n interaction,\r\n message,\r\n locale: builtLocale,\r\n dbiInteraction: chatInput\r\n });\r\n if (!res) return;\r\n }\r\n\r\n if (Array.isArray(defaultMemberPermissions) && message.guild && message.member) {\r\n const perms = message.member.permissions.toArray();\r\n if (!defaultMemberPermissions.every((p) => perms.includes(p))) {\r\n const res = await dbi.events.trigger(\r\n \"messageCommandDefaultMemberPermissionsError\", {\r\n interaction,\r\n message,\r\n locale: builtLocale,\r\n dbiInteraction: chatInput,\r\n permissions: defaultMemberPermissions\r\n });\r\n if (!res) return;\r\n }\r\n }\r\n\r\n if (chatInput.options.length) {\r\n let errorType: TDBIMessageCommandArgumentErrorTypes;\r\n let lastOption: any;\r\n let lastValue: any;\r\n let lastExtra: any;\r\n let lastIndex: number;\r\n for (let i = 0; i < chatInput.options.length; i++) {\r\n lastIndex = i;\r\n const option: any = interaction.dbiChatInputOptions[i];\r\n const value = interaction.parsedArgs.get(option.name)?.value;\r\n\r\n lastOption = option;\r\n lastValue = value;\r\n\r\n switch (option.type) {\r\n case ApplicationCommandOptionType.String: {\r\n if (!option.required && !value) break;\r\n\r\n if (option.autocomplete && option.onComplete) {\r\n let choices = await option.onComplete({\r\n interaction,\r\n value,\r\n });\r\n if (!choices.length)\r\n choices = await option.onComplete({\r\n interaction,\r\n value: \"\",\r\n });\r\n if (choices.length > 20)\r\n throw new Error(\"Autocomplete returned more than 20 choices.\");\r\n lastExtra = choices;\r\n if (!choices.find((c) => c.name === value || c.value === value)) {\r\n if (value) {\r\n errorType = \"InvalidCompleteChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n option._choices = choices;\r\n }\r\n\r\n if (option.choices) {\r\n const localeData = dbi.data.interactionLocales.get(\r\n chatInput.name\r\n )?.data;\r\n const choicesLocaleData =\r\n localeData?.[locale as TDBILocaleString]?.options?.[option.name]\r\n ?.choices;\r\n if (\r\n !option.choices.find(\r\n (c) =>\r\n c.name === value ||\r\n c.value === value ||\r\n (choicesLocaleData?.[c.value] &&\r\n choicesLocaleData?.[c.value] === value)\r\n )\r\n ) {\r\n lastExtra = option.choices.map((c) => ({\r\n name: choicesLocaleData?.[c.value] ?? c.name,\r\n value: c.value,\r\n }));\r\n if (value) {\r\n errorType = \"InvalidChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n\r\n if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n if (option.minLength && value?.length < option.minLength) {\r\n errorType = \"MinLength\";\r\n break;\r\n }\r\n if (option.maxLength && value?.length > option.maxLength) {\r\n errorType = \"MaxLength\";\r\n break;\r\n }\r\n\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Integer: {\r\n if (!option.required && !value) break;\r\n\r\n let parsedInt = parseInt(value);\r\n\r\n if (option.autocomplete && option.onComplete) {\r\n let choices = await option.onComplete({\r\n interaction,\r\n value,\r\n });\r\n if (!choices.length)\r\n choices = await option.onComplete({\r\n interaction,\r\n value: \"\",\r\n });\r\n if (choices.length > 20)\r\n throw new Error(\"Autocomplete returned more than 20 choices.\");\r\n lastExtra = choices;\r\n if (\r\n !choices.find((c) => c.value === parsedInt || c.name === value)\r\n ) {\r\n if (value) {\r\n errorType = \"InvalidCompleteChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n option._choices = choices;\r\n break;\r\n }\r\n\r\n if (option.choices) {\r\n const localeData = dbi.data.interactionLocales.get(\r\n chatInput.name\r\n )?.data;\r\n const choicesLocaleData =\r\n localeData?.[locale as TDBILocaleString]?.options?.[option.name]\r\n ?.choices;\r\n if (\r\n !option.choices.find(\r\n (c) =>\r\n c.value === parsedInt ||\r\n c.name === value ||\r\n (choicesLocaleData?.[c.value] &&\r\n choicesLocaleData?.[c.value] === value)\r\n )\r\n ) {\r\n lastExtra = option.choices.map((c) => ({\r\n name: choicesLocaleData?.[c.value] ?? c.name,\r\n value: c.value,\r\n }));\r\n if (value) {\r\n errorType = \"InvalidChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n\r\n if (!INTEGER_REGEX.test(value)) {\r\n errorType = \"InvalidInteger\";\r\n break;\r\n }\r\n\r\n if (option.minValue && parsedInt < option.minValue) {\r\n errorType = \"MinInteger\";\r\n break;\r\n }\r\n\r\n if (option.maxValue && parsedInt > option.maxValue) {\r\n errorType = \"MaxInteger\";\r\n break;\r\n }\r\n\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Number: {\r\n if (!option.required && !value) break;\r\n\r\n let parsedFloat = parseFloat(value);\r\n\r\n if (option.autocomplete && option.onComplete) {\r\n let choices = await option.onComplete({\r\n interaction,\r\n value,\r\n });\r\n if (!choices.length)\r\n choices = await option.onComplete({\r\n interaction,\r\n value: \"\",\r\n });\r\n if (choices.length > 20)\r\n throw new Error(\"Autocomplete returned more than 20 choices.\");\r\n lastExtra = choices;\r\n if (\r\n !choices.find((c) => c.value === parsedFloat || c.name === value)\r\n ) {\r\n if (value) {\r\n errorType = \"InvalidCompleteChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n option._choices = choices;\r\n break;\r\n }\r\n\r\n if (option.choices) {\r\n const localeData = dbi.data.interactionLocales.get(\r\n chatInput.name\r\n )?.data;\r\n const choicesLocaleData =\r\n localeData?.[locale as TDBILocaleString]?.options?.[option.name]\r\n ?.choices;\r\n if (\r\n !option.choices.find(\r\n (c) =>\r\n c.value === parsedFloat ||\r\n c.name === value ||\r\n (choicesLocaleData?.[c.value] &&\r\n choicesLocaleData?.[c.value] === value)\r\n )\r\n ) {\r\n lastExtra = option.choices.map((c) => ({\r\n name: choicesLocaleData?.[c.value] ?? c.name,\r\n value: c.value,\r\n }));\r\n if (value) {\r\n errorType = \"InvalidChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n\r\n if (!NUMBER_REGEX.test(value)) {\r\n errorType = \"InvalidNumber\";\r\n break;\r\n }\r\n\r\n if (option.minValue && parsedFloat < option.minValue) {\r\n errorType = \"MinNumber\";\r\n break;\r\n }\r\n\r\n if (option.maxValue && parsedFloat > option.maxValue) {\r\n errorType = \"MaxNumber\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Boolean: {\r\n let boolKeys = Object.keys(\r\n dbi.config.messageCommands.typeAliases.booleans\r\n );\r\n if (option.required && !boolKeys.includes(value?.toLowerCase?.())) {\r\n errorType = \"InvalidBoolean\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.User: {\r\n await message.client.users\r\n .fetch(interaction.options.getUserId(option.name))\r\n .catch(() => { });\r\n if (option.required && !interaction.options.getUser(option.name)) {\r\n errorType = \"InvalidUser\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Channel: {\r\n await message.client.channels\r\n .fetch(interaction.options.getChannelId(option.name))\r\n .catch(() => { });\r\n if (\r\n option.required &&\r\n !interaction.options.getChannel(\r\n option.name,\r\n null,\r\n option.channelTypes\r\n )\r\n ) {\r\n errorType = \"InvalidChannel\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Role: {\r\n await message.guild.roles\r\n .fetch(interaction.options.getRoleId(option.name))\r\n .catch(() => { });\r\n if (option.required && !interaction.options.getRole(option.name)) {\r\n errorType = \"InvalidRole\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Mentionable: {\r\n let mentionableId = interaction.options.getMentionableId(option.name);\r\n await message.guild.roles.fetch(mentionableId).catch(() => { });\r\n await message.client.channels.fetch(mentionableId).catch(() => { });\r\n await message.client.users.fetch(mentionableId).catch(() => { });\r\n if (\r\n option.required &&\r\n !interaction.options.getMentionable(option.name)\r\n ) {\r\n errorType = \"InvalidMentionable\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Attachment: {\r\n if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n }\r\n break;\r\n }\r\n }\r\n\r\n if (errorType) {\r\n break;\r\n } else {\r\n lastExtra = null;\r\n lastIndex = null;\r\n lastOption = null;\r\n lastValue = null;\r\n }\r\n }\r\n\r\n if (errorType) {\r\n let res = await dbi.events.trigger(\"messageCommandArgumentError\", {\r\n interaction,\r\n message,\r\n locale: builtLocale,\r\n error: {\r\n type: errorType,\r\n option: lastOption,\r\n extra: lastExtra,\r\n index: lastIndex,\r\n },\r\n value: lastValue,\r\n dbiInteraction: chatInput,\r\n });\r\n if (!res) return;\r\n }\r\n }\r\n\r\n interaction.init();\r\n dbi.data.clients.first().client.emit(\"interactionCreate\", interaction as any);\r\n}\r\n"]}
1
+ {"version":3,"file":"handleMessageCommands.js","sourceRoot":"","sources":["../../src/methods/handleMessageCommands.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n ApplicationCommandType,\r\n ChatInputCommandInteraction,\r\n Message,\r\n MessagePayload,\r\n ApplicationCommandOptionType,\r\n} from \"discord.js\";\r\nimport { NamespaceEnums } from \"../../generated/namespaceData\";\r\nimport { DBI } from \"../DBI\";\r\nimport { FakeMessageInteraction } from \"../types/other/FakeMessageInteraction\";\r\nimport { TDBILocaleString } from \"../types/other/Locale\";\r\n\r\nconst INTEGER_REGEX = /^-?\\d+$/;\r\nconst NUMBER_REGEX = /^-?\\d+(?:\\.\\d+)?$/;\r\n\r\nexport type TDBIMessageCommandArgumentErrorTypes =\r\n | \"MissingRequiredOption\"\r\n | \"MinLength\"\r\n | \"MaxLength\"\r\n | \"InvalidChoice\"\r\n | \"InvalidInteger\"\r\n | \"MinInteger\"\r\n | \"MaxInteger\"\r\n | \"InvalidNumber\"\r\n | \"MinNumber\"\r\n | \"MaxNumber\"\r\n | \"InvalidBoolean\"\r\n | \"InvalidUser\"\r\n | \"InvalidChannel\"\r\n | \"InvalidRole\"\r\n | \"InvalidMentionable\"\r\n | \"InvalidCompleteChoice\";\r\n\r\nexport async function handleMessageCommands(\r\n dbi: DBI<NamespaceEnums>,\r\n message: Message\r\n) {\r\n const chatInputs = dbi.data.interactions.filter(\r\n (i) => i.type === \"ChatInput\"\r\n );\r\n const prefixes = await dbi.config.messageCommands.prefixes({ message });\r\n if (!prefixes?.length) return;\r\n const content = message.content;\r\n const usedPrefix = prefixes.find((p) => content.startsWith(p));\r\n if (!usedPrefix) return;\r\n const contentWithoutPrefix = content.slice(usedPrefix?.length ?? 0);\r\n const contentLower = contentWithoutPrefix.toLowerCase();\r\n\r\n let locale: string =\r\n message.guild.preferredLocale?.split(\"-\")?.at(0) ||\r\n (dbi.config.defaults.locale as any);\r\n let usedAlias: string | undefined;\r\n let chatInput = chatInputs.find((i) => {\r\n let found = contentLower.startsWith(i.name);\r\n if (found) return true;\r\n let alias = i.other?.messageCommand?.aliases?.find((a) =>\r\n contentLower.startsWith(a)\r\n );\r\n if (alias) {\r\n usedAlias = alias;\r\n return true;\r\n }\r\n return false;\r\n });\r\n let commandName = usedAlias ?? chatInput?.name;\r\n\r\n if (!chatInput) {\r\n fLoop: for (const [localeInterName, localeData] of dbi.data\r\n .interactionLocales) {\r\n for (const [localeName, translation] of Object.entries(\r\n localeData.data || {}\r\n )) {\r\n if (contentLower.startsWith(translation.name)) {\r\n commandName = translation.name;\r\n locale = localeName;\r\n chatInput = chatInputs.find((i) => i.name === localeData.name);\r\n break fLoop;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (!chatInput) return;\r\n\r\n const interaction = new FakeMessageInteraction(\r\n dbi,\r\n message,\r\n chatInput as any,\r\n locale,\r\n commandName,\r\n usedPrefix\r\n );\r\n\r\n const builtLocale = {\r\n user:\r\n dbi.data.locales.get(interaction.locale) ||\r\n dbi.data.locales.get(dbi.config.defaults.locale),\r\n guild: message.guild?.preferredLocale\r\n ? dbi.data.locales.get(\r\n message.guild?.preferredLocale?.split(\"-\")?.at(0)\r\n ) || dbi.data.locales.get(dbi.config.defaults.locale)\r\n : null,\r\n };\r\n\r\n const { defaultMemberPermissions, directMessages } = chatInput as any;\r\n\r\n if (typeof directMessages !== \"undefined\" && !directMessages && !message.guild) {\r\n const res = await dbi.events.trigger(\r\n \"messageCommandDirectMessageUsageError\", {\r\n interaction,\r\n message,\r\n locale: builtLocale,\r\n dbiInteraction: chatInput\r\n });\r\n if (!res) return;\r\n }\r\n\r\n if (Array.isArray(defaultMemberPermissions) && message.guild && message.member) {\r\n const perms = message.member.permissions.toArray();\r\n if (!defaultMemberPermissions.every((p) => perms.includes(p))) {\r\n const res = await dbi.events.trigger(\r\n \"messageCommandDefaultMemberPermissionsError\", {\r\n interaction,\r\n message,\r\n locale: builtLocale,\r\n dbiInteraction: chatInput,\r\n permissions: defaultMemberPermissions\r\n });\r\n if (!res) return;\r\n }\r\n }\r\n\r\n if (chatInput.options.length) {\r\n let errorType: TDBIMessageCommandArgumentErrorTypes;\r\n let lastOption: any;\r\n let lastValue: any;\r\n let lastExtra: any;\r\n let lastIndex: number;\r\n for (let i = 0; i < chatInput.options.length; i++) {\r\n lastIndex = i;\r\n const option: any = interaction.dbiChatInputOptions[i];\r\n const value = interaction.parsedArgs.get(option.name)?.value;\r\n\r\n lastOption = option;\r\n lastValue = value;\r\n\r\n switch (option.type) {\r\n case ApplicationCommandOptionType.String: {\r\n if (!option.required && !value) break;\r\n\r\n if (option.autocomplete && option.onComplete) {\r\n let choices = await option.onComplete({\r\n interaction,\r\n value,\r\n });\r\n if (!choices.length)\r\n choices = await option.onComplete({\r\n interaction,\r\n value: \"\",\r\n });\r\n if (choices.length > 20)\r\n throw new Error(\"Autocomplete returned more than 20 choices.\");\r\n lastExtra = choices;\r\n if (!choices.find((c) => c.name === value || c.value === value)) {\r\n if (value) {\r\n errorType = \"InvalidCompleteChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n option._choices = choices;\r\n }\r\n\r\n if (option.choices) {\r\n const localeData = dbi.data.interactionLocales.get(\r\n chatInput.name\r\n )?.data;\r\n const choicesLocaleData =\r\n localeData?.[locale as TDBILocaleString]?.options?.[option.name]\r\n ?.choices;\r\n if (\r\n !option.choices.find(\r\n (c) =>\r\n c.name === value ||\r\n c.value === value ||\r\n (choicesLocaleData?.[c.value] &&\r\n choicesLocaleData?.[c.value] === value)\r\n )\r\n ) {\r\n lastExtra = option.choices.map((c) => ({\r\n name: choicesLocaleData?.[c.value] ?? c.name,\r\n value: c.value,\r\n }));\r\n if (value) {\r\n errorType = \"InvalidChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n\r\n if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n if (option.minLength && value?.length < option.minLength) {\r\n errorType = \"MinLength\";\r\n break;\r\n }\r\n if (option.maxLength && value?.length > option.maxLength) {\r\n errorType = \"MaxLength\";\r\n break;\r\n }\r\n\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Integer: {\r\n if (!option.required && !value) break;\r\n\r\n let parsedInt = parseInt(value);\r\n\r\n if (option.autocomplete && option.onComplete) {\r\n let choices = await option.onComplete({\r\n interaction,\r\n value,\r\n });\r\n if (!choices.length)\r\n choices = await option.onComplete({\r\n interaction,\r\n value: \"\",\r\n });\r\n if (choices.length > 20)\r\n throw new Error(\"Autocomplete returned more than 20 choices.\");\r\n lastExtra = choices;\r\n if (\r\n !choices.find((c) => c.value === parsedInt || c.name === value)\r\n ) {\r\n if (value) {\r\n errorType = \"InvalidCompleteChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n option._choices = choices;\r\n break;\r\n }\r\n\r\n if (option.choices) {\r\n const localeData = dbi.data.interactionLocales.get(\r\n chatInput.name\r\n )?.data;\r\n const choicesLocaleData =\r\n localeData?.[locale as TDBILocaleString]?.options?.[option.name]\r\n ?.choices;\r\n if (\r\n !option.choices.find(\r\n (c) =>\r\n c.value === parsedInt ||\r\n c.name === value ||\r\n (choicesLocaleData?.[c.value] &&\r\n choicesLocaleData?.[c.value] === value)\r\n )\r\n ) {\r\n lastExtra = option.choices.map((c) => ({\r\n name: choicesLocaleData?.[c.value] ?? c.name,\r\n value: c.value,\r\n }));\r\n if (value) {\r\n errorType = \"InvalidChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n\r\n if (!INTEGER_REGEX.test(value)) {\r\n errorType = \"InvalidInteger\";\r\n break;\r\n }\r\n\r\n if (option.minValue && parsedInt < option.minValue) {\r\n errorType = \"MinInteger\";\r\n break;\r\n }\r\n\r\n if (option.maxValue && parsedInt > option.maxValue) {\r\n errorType = \"MaxInteger\";\r\n break;\r\n }\r\n\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Number: {\r\n if (!option.required && !value) break;\r\n\r\n let parsedFloat = parseFloat(value);\r\n\r\n if (option.autocomplete && option.onComplete) {\r\n let choices = await option.onComplete({\r\n interaction,\r\n value,\r\n });\r\n if (!choices.length)\r\n choices = await option.onComplete({\r\n interaction,\r\n value: \"\",\r\n });\r\n if (choices.length > 20)\r\n throw new Error(\"Autocomplete returned more than 20 choices.\");\r\n lastExtra = choices;\r\n if (\r\n !choices.find((c) => c.value === parsedFloat || c.name === value)\r\n ) {\r\n if (value) {\r\n errorType = \"InvalidCompleteChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n option._choices = choices;\r\n break;\r\n }\r\n\r\n if (option.choices) {\r\n const localeData = dbi.data.interactionLocales.get(\r\n chatInput.name\r\n )?.data;\r\n const choicesLocaleData =\r\n localeData?.[locale as TDBILocaleString]?.options?.[option.name]\r\n ?.choices;\r\n if (\r\n !option.choices.find(\r\n (c) =>\r\n c.value === parsedFloat ||\r\n c.name === value ||\r\n (choicesLocaleData?.[c.value] &&\r\n choicesLocaleData?.[c.value] === value)\r\n )\r\n ) {\r\n lastExtra = option.choices.map((c) => ({\r\n name: choicesLocaleData?.[c.value] ?? c.name,\r\n value: c.value,\r\n }));\r\n if (value) {\r\n errorType = \"InvalidChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n\r\n if (!NUMBER_REGEX.test(value)) {\r\n errorType = \"InvalidNumber\";\r\n break;\r\n }\r\n\r\n if (option.minValue && parsedFloat < option.minValue) {\r\n errorType = \"MinNumber\";\r\n break;\r\n }\r\n\r\n if (option.maxValue && parsedFloat > option.maxValue) {\r\n errorType = \"MaxNumber\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Boolean: {\r\n let boolKeys = Object.keys(\r\n dbi.config.messageCommands.typeAliases.booleans\r\n );\r\n if (option.required && !boolKeys.includes(value?.toLowerCase?.())) {\r\n errorType = \"InvalidBoolean\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.User: {\r\n await message.client.users\r\n .fetch(interaction.options.getUserId(option.name))\r\n .catch(() => { });\r\n if (option.required && !interaction.options.getUser(option.name)) {\r\n errorType = \"InvalidUser\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Channel: {\r\n await message.client.channels\r\n .fetch(interaction.options.getChannelId(option.name))\r\n .catch(() => { });\r\n if (\r\n option.required &&\r\n !interaction.options.getChannel(\r\n option.name,\r\n null,\r\n option.channelTypes\r\n )\r\n ) {\r\n errorType = \"InvalidChannel\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Role: {\r\n await message.guild.roles\r\n .fetch(interaction.options.getRoleId(option.name))\r\n .catch(() => { });\r\n if (option.required && !interaction.options.getRole(option.name)) {\r\n errorType = \"InvalidRole\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Mentionable: {\r\n let mentionableId = interaction.options.getMentionableId(option.name);\r\n await message.guild.roles.fetch(mentionableId).catch(() => { });\r\n await message.client.channels.fetch(mentionableId).catch(() => { });\r\n await message.client.users.fetch(mentionableId).catch(() => { });\r\n if (\r\n option.required &&\r\n !interaction.options.getMentionable(option.name)\r\n ) {\r\n errorType = \"InvalidMentionable\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Attachment: {\r\n if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n }\r\n break;\r\n }\r\n }\r\n\r\n if (errorType) {\r\n break;\r\n } else {\r\n lastExtra = null;\r\n lastIndex = null;\r\n lastOption = null;\r\n lastValue = null;\r\n }\r\n }\r\n\r\n if (errorType) {\r\n let res = await dbi.events.trigger(\"messageCommandArgumentError\", {\r\n interaction,\r\n message,\r\n locale: builtLocale,\r\n error: {\r\n type: errorType,\r\n option: lastOption,\r\n extra: lastExtra,\r\n index: lastIndex,\r\n },\r\n value: lastValue,\r\n dbiInteraction: chatInput,\r\n });\r\n if (!res) return;\r\n }\r\n }\r\n\r\n interaction.init();\r\n dbi.data.clients.first().client.emit(\"interactionCreate\", interaction as any);\r\n}\r\n"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.hookEventListeners = void 0;
3
+ exports.hookEventListeners = hookEventListeners;
4
4
  const discord_js_1 = require("discord.js");
5
5
  function hookEventListeners(dbi) {
6
6
  function getClientByEvent(value) {
@@ -108,5 +108,4 @@ function hookEventListeners(dbi) {
108
108
  firstClient.emit = originalEmit;
109
109
  };
110
110
  }
111
- exports.hookEventListeners = hookEventListeners;
112
111
  //# sourceMappingURL=hookEventListeners.js.map