@arcaelas/whatsapp 3.1.1 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/_index.d.ts +14 -0
- package/build/cjs/_index.js +366 -0
- package/build/cjs/_index.js.map +1 -0
- package/build/cjs/decorators.d.ts +9 -0
- package/build/cjs/decorators.js +26 -0
- package/build/cjs/decorators.js.map +1 -0
- package/build/cjs/index.d.ts +11 -0
- package/build/cjs/index.js +21 -0
- package/build/cjs/index.js.map +1 -0
- package/build/cjs/lib/bot/decorator.d.ts +77 -0
- package/build/cjs/lib/bot/decorator.js +219 -0
- package/build/cjs/lib/bot/decorator.js.map +1 -0
- package/build/cjs/lib/bot/decorators.d.ts +113 -0
- package/build/cjs/lib/bot/decorators.js +253 -0
- package/build/cjs/lib/bot/decorators.js.map +1 -0
- package/build/cjs/lib/bot/index.d.ts +3 -0
- package/build/cjs/lib/bot/index.js +20 -0
- package/build/cjs/lib/bot/index.js.map +1 -0
- package/build/cjs/lib/chat/index.d.ts +252 -0
- package/build/cjs/lib/chat/index.js +314 -0
- package/build/cjs/lib/chat/index.js.map +1 -0
- package/build/cjs/lib/contact/index.d.ts +203 -0
- package/build/cjs/lib/contact/index.js +226 -0
- package/build/cjs/lib/contact/index.js.map +1 -0
- package/build/cjs/lib/message/index.d.ts +277 -0
- package/build/cjs/lib/message/index.js +773 -0
- package/build/cjs/lib/message/index.js.map +1 -0
- package/build/cjs/lib/status/index.d.ts +85 -0
- package/build/cjs/lib/status/index.js +137 -0
- package/build/cjs/lib/status/index.js.map +1 -0
- package/build/cjs/lib/store/engine/index.d.ts +34 -0
- package/build/cjs/lib/store/engine/index.js +13 -0
- package/build/cjs/lib/store/engine/index.js.map +1 -0
- package/build/cjs/lib/store/engine/lib/file_system/index.d.ts +56 -0
- package/build/cjs/lib/store/engine/lib/file_system/index.js +160 -0
- package/build/cjs/lib/store/engine/lib/file_system/index.js.map +1 -0
- package/build/cjs/lib/store/engine/lib/redis/index.d.ts +82 -0
- package/build/cjs/lib/store/engine/lib/redis/index.js +132 -0
- package/build/cjs/lib/store/engine/lib/redis/index.js.map +1 -0
- package/build/cjs/lib/store/index.d.ts +22 -0
- package/build/cjs/lib/store/index.js +38 -0
- package/build/cjs/lib/store/index.js.map +1 -0
- package/build/cjs/lib/whatsapp/index.d.ts +185 -0
- package/build/cjs/lib/whatsapp/index.js +882 -0
- package/build/cjs/lib/whatsapp/index.js.map +1 -0
- package/build/cjs/package.json +1 -0
- package/build/esm/_index.d.ts +14 -0
- package/build/esm/_index.js +364 -0
- package/build/esm/_index.js.map +1 -0
- package/build/esm/decorators.d.ts +9 -0
- package/build/esm/decorators.js +9 -0
- package/build/esm/decorators.js.map +1 -0
- package/build/esm/index.d.ts +11 -0
- package/build/esm/index.js +9 -0
- package/build/esm/index.js.map +1 -0
- package/build/esm/lib/bot/decorator.d.ts +77 -0
- package/build/esm/lib/bot/decorator.js +210 -0
- package/build/esm/lib/bot/decorator.js.map +1 -0
- package/build/esm/lib/bot/decorators.d.ts +113 -0
- package/build/esm/lib/bot/decorators.js +242 -0
- package/build/esm/lib/bot/decorators.js.map +1 -0
- package/build/esm/lib/bot/index.d.ts +3 -0
- package/build/esm/lib/bot/index.js +3 -0
- package/build/esm/lib/bot/index.js.map +1 -0
- package/build/esm/lib/chat/index.d.ts +252 -0
- package/build/esm/lib/chat/index.js +309 -0
- package/build/esm/lib/chat/index.js.map +1 -0
- package/build/esm/lib/contact/index.d.ts +203 -0
- package/build/esm/lib/contact/index.js +221 -0
- package/build/esm/lib/contact/index.js.map +1 -0
- package/build/esm/lib/message/index.d.ts +277 -0
- package/build/esm/lib/message/index.js +761 -0
- package/build/esm/lib/message/index.js.map +1 -0
- package/build/esm/lib/status/index.d.ts +85 -0
- package/build/esm/lib/status/index.js +133 -0
- package/build/esm/lib/status/index.js.map +1 -0
- package/build/esm/lib/store/engine/index.d.ts +34 -0
- package/build/esm/lib/store/engine/index.js +8 -0
- package/build/esm/lib/store/engine/index.js.map +1 -0
- package/build/esm/lib/store/engine/lib/file_system/index.d.ts +56 -0
- package/build/esm/lib/store/engine/lib/file_system/index.js +156 -0
- package/build/esm/lib/store/engine/lib/file_system/index.js.map +1 -0
- package/build/esm/lib/store/engine/lib/redis/index.d.ts +82 -0
- package/build/esm/lib/store/engine/lib/redis/index.js +128 -0
- package/build/esm/lib/store/engine/lib/redis/index.js.map +1 -0
- package/build/esm/lib/store/index.d.ts +22 -0
- package/build/esm/lib/store/index.js +31 -0
- package/build/esm/lib/store/index.js.map +1 -0
- package/build/esm/lib/whatsapp/index.d.ts +185 -0
- package/build/esm/lib/whatsapp/index.js +842 -0
- package/build/esm/lib/whatsapp/index.js.map +1 -0
- package/build/esm/package.json +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/message/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACH,aAAa,EACb,oBAAoB,EACpB,6BAA6B,EAC7B,iBAAiB,EACjB,4BAA4B,EAC5B,8BAA8B,EAC9B,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,iBAAiB,EACjB,KAAK,EACL,MAAM,EACN,2BAA2B,GAE9B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,IAAI,EAAuB,MAAM,YAAY,CAAC;AAEvD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAYrD,MAAM,CAAN,IAAY,aAOX;AAPD,WAAY,aAAa;IACrB,mDAAS,CAAA;IACT,uDAAW,CAAA;IACX,6DAAc,CAAA;IACd,2DAAa,CAAA;IACb,iDAAQ,CAAA;IACR,qDAAU,CAAA;AACd,CAAC,EAPW,aAAa,KAAb,aAAa,QAOxB;AAwDD,MAAM,gBAAgB,GAAgC;IAClD,YAAY,EAAE,MAAM;IACpB,mBAAmB,EAAE,MAAM;IAC3B,YAAY,EAAE,OAAO;IACrB,YAAY,EAAE,OAAO;IACrB,YAAY,EAAE,OAAO;IACrB,eAAe,EAAE,UAAU;IAC3B,mBAAmB,EAAE,UAAU;IAC/B,mBAAmB,EAAE,MAAM;IAC3B,qBAAqB,EAAE,MAAM;IAC7B,qBAAqB,EAAE,MAAM;CAChC,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAc,EAAE,OAAgB,EAAE,MAAM,GAAG,KAAK;IAC9E,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;IAC1B,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;IAC9B,MAAM,SAAS,GACX,GAAG,CAAC,eAAe,EAAE,OAAO;QAC5B,GAAG,CAAC,iBAAiB,EAAE,OAAO;QAC9B,GAAG,CAAC,0BAA0B,EAAE,OAAO;QACvC,GAAG,CAAC;IACR,MAAM,YAAY,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,YAAY,IAAI,EAAE,CAAC,IAAI,MAAM,CAAC;IAChE,MAAM,WAAW,GAAG,SAAS,CAAC,YAAsC,CAGrD,CAAC;IAChB,MAAM,YAAY,GAAI,WAAgE;QAClF,EAAE,WAAW,CAAC;IAClB,MAAM,kBAAkB,GAAG,GAAG,CAAC,iBAAiB,IAAI,YAAY,EAAE,UAAU,CAAC;IAC7E,MAAM,UAAU,GACZ,GAAG,CAAC,uBAAuB,IAAI,IAAI,IAAI,kBAAkB,IAAI,IAAI;QAC7D,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,GAAG,kBAAkB,CAAC,GAAG,IAAI;QACnE,CAAC,CAAC,IAAI,CAAC;IAEf,IAAI,IAAI,GAAG,YAAY,CAAC;IACxB,IAAI,QAAQ,KAAK,UAAU,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACjD,IAAI,GAAG,kBAAkB,CAAC;IAC9B,CAAC;SAAM,IAAI,QAAQ,KAAK,MAAM,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QAChE,IAAI,GAAI,WAAW,EAAE,QAAmB,IAAI,0BAA0B,CAAC;IAC3E,CAAC;IAED,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,GAAG,WAAW,CAAC;IAC1B,CAAC;SAAM,IAAI,WAAW,EAAE,CAAC;QACrB,OAAO;YACF,WAAW,CAAC,OAAkB;gBAC9B,WAAW,CAAC,IAAe;gBAC3B,WAAW,CAAC,IAAe;gBAC5B,EAAE,CAAC;IACX,CAAC;IAED,MAAM,MAAM,GACR,GAAG,CAAC,MAAM,IAAI,OAAO;QACjB,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC;QAC5B,CAAC,CAAC,GAAG,CAAC,WAAW,IAAK,GAAiC,CAAC,YAAY,IAAI,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;IAEpG,OAAO;QACH,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE;QAChB,GAAG,EAAG,GAAiC,CAAC,YAAY,IAAI,GAAG,CAAC,SAAS,IAAI,EAAE;QAC3E,GAAG,EAAE,YAAY,EAAE,QAAQ,IAAI,IAAI;QACnC,EAAE,EAAE,GAAG,CAAC,MAAM,IAAI,KAAK;QACvB,IAAI,EAAE,QAAQ;QACd,MAAM;QACN,MAAM,EAAG,GAAG,CAAC,MAAmC,IAAI,aAAa,CAAC,OAAO;QACzE,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,KAAK;QAC7B,SAAS,EAAE,YAAY,EAAE,WAAW,IAAI,KAAK;QAC7C,UAAU,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI;QAClF,UAAU;QACV,IAAI;QACJ,OAAO;QACP,MAAM;QACN,GAAG;KACN,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,OAAO;IAUhB,YAAY,OAAwC;QALpD,4FAA4F;QACpF,kBAAa,GAAoC,IAAI,CAAC;QAC9D,0FAA0F;QAClF,gBAAW,GAAiC,IAAI,CAAC;QAGrD,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC;IAC5B,CAAC;IAED,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACxB,CAAC;IACD,IAAI,GAAG;QACH,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACzB,CAAC;IACD,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAC1B,CAAC;IACD,+EAA+E;IAC/E,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC5B,CAAC;IACD,yHAAyH;IACzH,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAC1B,CAAC;IACD,IAAI,GAAG;QACH,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACzB,CAAC;IACD,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACxB,CAAC;IACD,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IAC7B,CAAC;IACD,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAC/B,CAAC;IACD,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC;IACzC,CAAC;IACD,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;IAChC,CAAC;IACD,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;IAChC,CAAC;IACD,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC5B,CAAC;IACD,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM;QACR,OAAO,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,KAAK,IAAI,EAAE;YACvC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;YAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACxE,OAAO,CACH,OAAO;gBACP,IAAI,GAAG,CAAC,OAAO,CACX;oBACI,EAAE,EAAE,IAAI,CAAC,MAAM;oBACf,GAAG,EAAE,IAAI;oBACT,IAAI,EAAE,IAAI;oBACV,MAAM,EAAE,IAAI;oBACZ,aAAa,EAAE,IAAI;oBACnB,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,IAAI;iBACf,EACD,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CACrE,CACJ,CAAC;QACN,CAAC,CAAC,EAAE,CAAC,CAAC;IACV,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,IAAI;QACN,OAAO,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,KAAK,IAAI,EAAE;YACrC,MAAM,MAAM,GAAG,WAAW,CAAW,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAC1F,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACjG,CAAC,CAAC,EAAE,CAAC,CAAC;IACV,CAAC;IAED,uFAAuF;IACvF,KAAK,CAAC,OAAO;QACT,MAAM,MAAM,GAAG,WAAW,CACtB,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,YAAY,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CACtF,CAAC;QACF,OAAO,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM;QACR,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,uDAAuD;IACvD,KAAK,CAAC,KAAK,CAAC,KAAa;QACrB,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QAC3B,IAAI,EAAE,GAAG,KAAK,CAAC;QACf,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE;gBACpC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE;aACrF,CAAC,CAAC;YACH,EAAE,GAAG,IAAI,CAAC;QACd,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED,6DAA6D;IAC7D,KAAK,CAAC,OAAO,CAAC,MAAqB;QAC/B,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QAC3B,MAAM,MAAM,GACR,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,YAAY,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9F,IAAI,EAAE,GAAG,KAAK,CAAC;QACf,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAI,GAAG,EAAE,CAAC;gBACN,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;oBACnB,IAAI,CAAC;wBACD,MAAM,MAAM,GAAG,4BAA4B,CACvC,GAAG,EACH,6BAA6B,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,EAC9C,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAC1C,CAAC;wBACF,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC;4BACnC,MAAM,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;4BAClF,EAAE,GAAG,IAAI,CAAC;wBACd,CAAC;oBACL,CAAC;oBAAC,MAAM,CAAC;wBACL,oBAAoB;oBACxB,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,EAAE,EAAE,CAAC;oBACN,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;oBACjC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACjB,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;4BACvB,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;wBAChE,CAAC;6BAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;4BAC/B,EAAE;gCACE,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC,CAAC;oCAC3E,IAAI,CAAC;wBACb,CAAC;6BAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;4BAC/B,EAAE;gCACE,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC,CAAC;oCAC3E,IAAI,CAAC;wBACb,CAAC;6BAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;4BAC/B,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC;wBACtD,CAAC;6BAAM,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;4BAClC,IAAI,CAAC;gCACD,EAAE;oCACE,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,CACvB,GAAG,EACH,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAoB,CAChD,CAAC,KAAK,IAAI,CAAC;4BACpB,CAAC;4BAAC,MAAM,CAAC;gCACL,qBAAqB;4BACzB,CAAC;wBACL,CAAC;oBACL,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED,mCAAmC;IACnC,KAAK,CAAC,IAAI;QACN,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QAC3B,IAAI,EAAE,GAAG,KAAK,CAAC;QACf,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC5C,MAAM,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC;gBAC3B,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE;aACxF,CAAC,CAAC;YACH,EAAE,GAAG,IAAI,CAAC;QACd,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED,4CAA4C;IAC5C,KAAK,CAAC,IAAI,CAAC,KAAc;QACrB,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACpC,IAAI,EAAE,GAAG,KAAK,CAAC;QACf,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,EAAE,CAAC,OAAO,CAAC,UAAU,CACvB;gBACI,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;aACpE,EACD,GAAG,CAAC,GAAG,CACV,CAAC;YACF,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;YACpB,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1E,EAAE,GAAG,IAAI,CAAC;QACd,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED,2GAA2G;IAC3G,KAAK,CAAC,MAAM,CAAC,MAAe,IAAI;QAC5B,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACpC,IAAI,EAAE,GAAG,KAAK,CAAC;QACf,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,GAAG,EAAE,CAAC;gBACN,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE;oBAClC,MAAM,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE;iBAC7D,CAAC,CAAC;YACP,CAAC;iBAAM,CAAC;gBACJ,MAAM,EAAE,CAAC,OAAO,CAAC,UAAU,CACvB;oBACI,WAAW,EAAE;wBACT,WAAW,EAAE,KAAK;wBAClB,GAAG,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE;wBACvD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;qBACxB;iBACJ,EACD,GAAG,CAAC,GAAG,CACV,CAAC;YACN,CAAC;YACD,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5D,EAAE,GAAG,IAAI,CAAC;QACd,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED,mEAAmE;IACnE,KAAK,CAAC,IAAI,CAAC,IAAY;QACnB,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACpC,IAAI,EAAE,GAAG,KAAK,CAAC;QACf,IAAI,EAAE,CAAC,OAAO,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;YACvB,IAAI,CAAC;gBACD,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE;oBAClC,IAAI;oBACJ,IAAI,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;iBAChD,CAAC,CAAC;gBACZ,MAAM,YAAY,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;gBAC3D,IAAI,YAAY,KAAK,cAAc,EAAE,CAAC;oBAClC,GAAG,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;gBAC7C,CAAC;qBAAM,IAAI,YAAY,KAAK,qBAAqB,EAAE,CAAC;oBAChD,GAAG,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,mBAAmB,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;gBACxD,CAAC;gBACD,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;gBACnB,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;gBAClB,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC1E,EAAE,GAAG,IAAI,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBACL,EAAE,GAAG,KAAK,CAAC;YACf,CAAC;QACL,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED,4GAA4G;IAC5G,KAAK,CAAC,OAA+B;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,OAAO,EAAE,EAAE;YAC9C,IAAI,OAAO,CAAC,GAAG,KAAK,GAAG,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;gBAC3C,OAAO,CAAC,OAAO,CAAC,CAAC;YACrB,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,0BAA0B;IAC1B,KAAK,CAAC,IAAI,CAAC,OAAe,EAAE,OAAoB,EAAE;QAC9C,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,2BAA2B;IAC3B,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,OAAyB,EAAE;QAChD,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,0BAA0B;IAC1B,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,OAAyB,EAAE;QAChD,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,0BAA0B;IAC1B,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,OAAyB,EAAE;QAChD,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,8BAA8B;IAC9B,KAAK,CAAC,QAAQ,CAAC,GAAoB,EAAE,OAAoB,EAAE;QACvD,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,6BAA6B;IAC7B,KAAK,CAAC,IAAI,CAAC,IAAiB,EAAE,OAAwB,EAAE;QACpD,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5E,CAAC;CACJ;AAED;;;GAGG;AACH,MAAM,OAAO,IAAK,SAAQ,OAAO;IAC7B,KAAK,CAAC,OAAO;QACT,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;CACJ;AAED,4FAA4F;AAC5F,KAAK,UAAU,aAAa,CAAC,GAAY;IACrC,MAAM,EAAE,GAAI,GAAoC,CAAC,GAAG,CAAC;IACrD,MAAM,GAAG,GAAI,GAAqC,CAAC,IAAI,CAAC;IACxD,MAAM,MAAM,GAAG,WAAW,CACtB,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,EAAE,UAAU,CAAC,CACpE,CAAC;IACF,IAAI,MAAM,EAAE,IAAI,EAAE,CAAC;QACf,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QACb,IAAI,CAAC;YACD,OAAO,CAAC,MAAM,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAwB,CAAC;QACtF,CAAC;QAAC,MAAM,CAAC;YACL,oBAAoB;QACxB,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,+CAA+C;AAC/C,KAAK,UAAU,MAAM,CAAC,QAAkB;IACpC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,KAAM,SAAQ,OAAO;IAC9B,KAAK,CAAC,OAAO;QACT,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACvC,CAAC;CACJ;AAED;;;GAGG;AACH,MAAM,OAAO,KAAM,SAAQ,OAAO;IAC9B,KAAK,CAAC,OAAO;QACT,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACvC,CAAC;CACJ;AAED;;;;;GAKG;AACH,MAAM,OAAO,KAAM,SAAQ,OAAO;IAC9B,gFAAgF;IAChF,IAAI,GAAG;QACH,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,KAAK,IAAI,CAAC;IAC7D,CAAC;IACD,KAAK,CAAC,OAAO;QACT,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACvC,CAAC;CACJ;AAED;;;GAGG;AACH,MAAM,OAAO,GAAI,SAAQ,OAAO;IAC5B,IAAY,IAAI;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,mBAAmB,CAAC;IAChG,CAAC;IAED,gDAAgD;IAChD,IAAI,GAAG;QACH,OAAO,IAAI,CAAC,IAAI,EAAE,eAAe,IAAI,CAAC,CAAC;IAC3C,CAAC;IACD,kDAAkD;IAClD,IAAI,GAAG;QACH,OAAO,IAAI,CAAC,IAAI,EAAE,gBAAgB,IAAI,CAAC,CAAC;IAC5C,CAAC;IACD,0FAA0F;IAC1F,IAAI,IAAI;QACJ,OAAO,gCAAgC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,MAAM,CAAC;IACtE,CAAC;IACD,sEAAsE;IACtE,IAAI,IAAI;QACJ,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAC/D,CAAC;CACJ;AAED;;;GAGG;AACH,MAAM,OAAO,IAAK,SAAQ,OAAO;IAC7B,IAAY,KAAK;QACb,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;QAChC,OAAO,CAAC,EAAE,mBAAmB,IAAI,CAAC,EAAE,qBAAqB,IAAI,CAAC,EAAE,qBAAqB,CAAC;IAC1F,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,QAAQ;QACR,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC9B,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,sBAAsB,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;IAC3D,CAAC;IAED,uFAAuF;IACvF,IAAI,OAAO;QACP,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC;QACvC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;QACpD,+FAA+F;QAC/F,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACpC,GAAG,CAAC;YACJ,IAAI,EAAE,CAAC,CAAC,IAAI;gBACR,CAAC,CAAC;oBACE,GAAG,CAAC,CAAC,IAAI;oBACT,eAAe,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACtD,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CACvD;iBACJ;gBACD,CAAC,CAAC,CAAC,CAAC,IAAI;SACf,CAAC,CAAC,CAAC;QACJ,MAAM,UAAU,GAAG,8BAA8B,CAC7C,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,EACrE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAC7B,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACpB,OAAO,EAAE,CAAC,CAAC,UAAU,IAAI,EAAE;YAC3B,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC;SAC7C,CAAC,CAAC,CAAC;IACR,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,KAAwB;QACjC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC;QACvC,MAAM,gBAAgB,GAAG,OAAO;aAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;aACxC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAE/D,yFAAyF;QACzF,4DAA4D;QAC5D,iFAAiF;QACjF,8DAA8D;QAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,kBAAkB,EAAE,aAAa,CAAC;QACvE,MAAM,YAAY,GACd,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QACpF,IAAI,CAAC,YAAY,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjE,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,2EAA2E;QAC3E,2EAA2E;QAC3E,0EAA0E;QAC1E,8EAA8E;QAC9E,0EAA0E;QAC1E,0EAA0E;QAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAI,GAAG,CAAC,OAAO,CAAC,IAAyB,EAAE,GAAG,IAAI,EAAE,CAAC;QACnE,MAAM,SAAS,GAAG,iBAAiB,CAAC,QAAQ,IAAI,OAAO,CAAC,CAAC;QACzD,IAAI,gBAAwB,CAAC;QAC7B,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YAClB,gBAAgB,GAAG,QAAQ,IAAI,OAAO,CAAC;QAC3C,CAAC;aAAM,IAAI,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9C,gBAAgB,GAAG,QAAQ,CAAC,SAAS,CAAC;QAC1C,CAAC;aAAM,CAAC;YACJ,gBAAgB,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;QAC7D,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC;QAE5B,kFAAkF;QAClF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;YACxB,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;SACtB,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,EAAE,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC;YACjD,eAAe,EAAE,gBAAgB;SACpC,CAAC,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,OAAO,SAAS,EAAE,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;QAC/B,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAEjE,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;QACnC,MAAM,GAAG,CAAC,OAAO,CAAC,YAAY,CAC1B,IAAI,CAAC,GAAG,EACR;YACI,iBAAiB,EAAE;gBACf,sBAAsB,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG;gBACpC,IAAI,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE;gBAChD,iBAAiB,EAAE,IAAI,CAAC,GAAG,EAAE;aAChC;SACJ,EACD,EAAE,SAAS,EAAE,MAAM,EAAE,CACxB,CAAC;QACF,4EAA4E;QAC5E,2EAA2E;QAC3E,iFAAiF;QACjF,iFAAiF;QACjF,oFAAoF;QACpF,+EAA+E;QAC/E,MAAM,cAAc,GAAG;YACnB,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,IAAI,IAAI,CAAC,GAAG;YAC9C,MAAM,EAAE,IAAI;YACZ,EAAE,EAAE,MAAM;SACb,CAAC;QACF,2BAA2B,CAAC,IAAI,CAAC,GAAG,EAAE;YAClC,oBAAoB,EAAE,cAAc;YACpC,IAAI,EAAE,EAAE,eAAe,EAAE,gBAAgB,EAAE;YAC3C,iBAAiB,EAAE,IAAI,CAAC,GAAG,EAAE;SAChC,CAAC,CAAC;QACH,MAAM,GAAG,CAAC,MAAM,CAAC,GAAG,CAChB,SAAS,IAAI,CAAC,GAAG,YAAY,IAAI,CAAC,EAAE,EAAE,EACtC,SAAS,CAAC,IAAI,CAAC,CAClB,CAAC;QACF,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,EAAY;IAChC,KAAK,UAAU,cAAc,CAAC,GAAa;QACvC,MAAM,IAAI,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;QACzB,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACtB,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACvB,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACvB,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACvB,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC1B,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACtB,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,UAAU,IAAI,CACf,GAAW,EACX,OAAgC,EAChC,MAAe,EACf,QAAiB,EACjB,aAAiC;QAEjC,IAAI,MAAM,GAAmB,IAAI,CAAC;QAClC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,GAAG,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;YACpB,IAAI,MAA6B,CAAC;YAClC,IAAI,QAAQ,EAAE,CAAC;gBACX,MAAM,OAAO,GAAG,WAAW,CACvB,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,GAAG,YAAY,QAAQ,EAAE,CAAC,CAC1D,CAAC;gBACF,IAAI,OAAO,EAAE,CAAC;oBACV,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;gBACzB,CAAC;YACL,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE;gBAC1C,GAAG,OAAO;gBACV,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACvB,CAAC,CAAC;YACZ,MAAM,OAAO,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;YAC7B,IAAI,GAAG,IAAI,OAAO,EAAE,CAAC;gBACjB,MAAM,GAAG,GAAG,iBAAiB,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;gBACzD,IAAI,aAAa,EAAE,CAAC;oBAChB,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;gBACtC,CAAC;gBACD,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,GAAG,YAAY,OAAO,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvE,IAAI,MAAM,EAAE,CAAC;oBACT,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CACf,SAAS,GAAG,YAAY,OAAO,UAAU,EACzC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CACjD,CAAC;gBACN,CAAC;gBACD,MAAM,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;YACvC,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,MAAM,GAAG,GAAG;QACR,mCAAmC;QACnC,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,GAAG;QACH,IAAI;QAEJ,qDAAqD;QACrD,iBAAiB;QACjB,cAAc;QAEd,sCAAsC;QACtC,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,GAAW;YAC9B,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACP,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,MAAM,GAAG,GAAG,WAAW,CAAW,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,GAAG,YAAY,GAAG,EAAE,CAAC,CAAC,CAAC;YACtF,OAAO,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5C,CAAC;QAED,kCAAkC;QAClC,KAAK,CAAC,IAAI,CAAC,GAAW,EAAE,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE;YAC1C,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACvC,MAAM,MAAM,GAAc,EAAE,CAAC;YAC7B,IAAI,GAAG,EAAE,CAAC;gBACN,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;oBAC5E,MAAM,GAAG,GAAG,WAAW,CAAW,GAAG,CAAC,CAAC;oBACvC,IAAI,GAAG,EAAE,CAAC;wBACN,MAAM,CAAC,IAAI,CAAC,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC3C,CAAC;gBACL,CAAC;YACL,CAAC;YACD,OAAO,MAAM,CAAC;QAClB,CAAC;QAED,kCAAkC;QAClC,KAAK,CAAC,KAAK,CAAC,GAAW;YACnB,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACvC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,GAAW,EAAE,OAAe,EAAE,OAAoB,EAAE;YAC3D,OAAO,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7D,CAAC;QAED,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,GAAW,EAAE,OAAyB,EAAE;YAC7D,OAAO,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3E,CAAC;QAED,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,GAAW,EAAE,OAAyB,EAAE;YAC7D,OAAO,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3E,CAAC;QAED,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,GAAW,EAAE,OAAyB,EAAE;YAC7D,OAAO,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3E,CAAC;QAED,KAAK,CAAC,QAAQ,CAAC,GAAW,EAAE,GAAoB,EAAE,OAAoB,EAAE;YACpE,OAAO,IAAI,CACP,GAAG,EACH,EAAE,QAAQ,EAAE,EAAE,eAAe,EAAE,GAAG,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,EACrE,SAAS,EACT,IAAI,CAAC,GAAG,CACX,CAAC;QACN,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,GAAW,EAAE,CAAc,EAAE,OAAwB,EAAE;YAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC;YACxC,OAAO,IAAI,CACP,GAAG,EACH;gBACI,IAAI,EAAE;oBACF,IAAI,EAAE,CAAC,CAAC,OAAO;oBACf,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;oBACvC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACpC;aACJ,EACD,SAAS,EACT,IAAI,CAAC,GAAG,EACR,EAAE,QAAQ,EAAE,CACf,CAAC;QACN,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,GAAW,EAAE,GAAW,EAAE,IAAY;YAC7C,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAClC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACpC,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,GAAW,EAAE,GAAW,EAAE,GAAG,GAAG,IAAI;YAC7C,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAClC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACrC,CAAC;QAED,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,GAAW,EAAE,KAAa;YAC/C,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAClC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACtC,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,GAAW,EAAE,MAAqB;YACzD,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAClC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACzC,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,GAAW,EAAE,GAAW;YAC/B,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAClC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QAChC,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,GAAW,EAAE,GAAW,EAAE,KAAc;YAC/C,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAClC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACrC,CAAC;QAED,KAAK,CAAC,GAAW,EAAE,GAAW,EAAE,OAA+B;YAC3D,OAAO,EAAE,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,OAAO,EAAE,EAAE;gBACxC,IAAI,OAAO,CAAC,GAAG,KAAK,GAAG,IAAI,OAAO,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC;oBAC5C,OAAO,CAAC,OAAO,CAAC,CAAC;gBACrB,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;KACJ,CAAC;IAEF,OAAO,GAAG,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file status/index.ts
|
|
3
|
+
* @description Entidad `Feed` — representa una publicación del status broadcast
|
|
4
|
+
* (`status@broadcast`). Análoga a `Message` pero acotada al ciclo de vida de un
|
|
5
|
+
* status (24h, no se cita, no se edita, sin starring/forward).
|
|
6
|
+
* Status broadcast entry. Analogous to `Message` but scoped to the status
|
|
7
|
+
* lifecycle (24h TTL, no quoting, no editing, no starring/forward).
|
|
8
|
+
*/
|
|
9
|
+
import { type WAMessage } from 'baileys';
|
|
10
|
+
import { Readable } from 'node:stream';
|
|
11
|
+
import { Contact } from '../../lib/contact/index.js';
|
|
12
|
+
import type { WhatsApp } from '../../lib/whatsapp/index.js';
|
|
13
|
+
/** Tipos soportados por un status broadcast. / Status broadcast supported types. */
|
|
14
|
+
export type FeedType = 'text' | 'image' | 'video' | 'audio';
|
|
15
|
+
/**
|
|
16
|
+
* Documento persistido del status.
|
|
17
|
+
* Persisted status document.
|
|
18
|
+
*/
|
|
19
|
+
export interface IFeedRaw {
|
|
20
|
+
id: string;
|
|
21
|
+
author_jid: string;
|
|
22
|
+
type: FeedType;
|
|
23
|
+
caption: string;
|
|
24
|
+
mime: string;
|
|
25
|
+
created_at: number;
|
|
26
|
+
expires_at: number;
|
|
27
|
+
viewed: boolean;
|
|
28
|
+
raw: WAMessage;
|
|
29
|
+
}
|
|
30
|
+
/** Vida útil del status: 24 horas en ms. / Status lifetime: 24h in ms. */
|
|
31
|
+
export declare const TTL_MS: number;
|
|
32
|
+
/**
|
|
33
|
+
* Status broadcast — una publicación del feed `status@broadcast` con duración 24h.
|
|
34
|
+
*
|
|
35
|
+
* Status broadcast entry — a `status@broadcast` post with a 24h lifetime.
|
|
36
|
+
*/
|
|
37
|
+
export default class Feed {
|
|
38
|
+
/** @internal */
|
|
39
|
+
protected readonly _wa: WhatsApp;
|
|
40
|
+
/** @internal */
|
|
41
|
+
protected readonly _doc: IFeedRaw;
|
|
42
|
+
/** @internal Cache de la promesa de `author()` para evitar engine round-trips repetidos. */
|
|
43
|
+
private _author_cache;
|
|
44
|
+
constructor(options: {
|
|
45
|
+
wa: WhatsApp;
|
|
46
|
+
doc: IFeedRaw;
|
|
47
|
+
});
|
|
48
|
+
/** Identificador del status (mid). / Status id (mid). */
|
|
49
|
+
get id(): string;
|
|
50
|
+
/** Tipo de contenido. / Content type. */
|
|
51
|
+
get type(): FeedType;
|
|
52
|
+
/** true si ya enviamos read receipt sobre este status. / true once a read receipt was sent. */
|
|
53
|
+
get viewed(): boolean;
|
|
54
|
+
/** Texto / caption del status. / Status text or caption. */
|
|
55
|
+
get caption(): string;
|
|
56
|
+
/** Epoch ms de publicación. / Publication epoch ms. */
|
|
57
|
+
get created_at(): number;
|
|
58
|
+
/** Epoch ms de expiración (created_at + 24h). / Expiration epoch ms (created_at + 24h). */
|
|
59
|
+
get expires_at(): number;
|
|
60
|
+
/**
|
|
61
|
+
* Resuelve el autor del status. Memoizado a nivel de instancia: la primera
|
|
62
|
+
* llamada va al engine vía `wa.Contact.get`; las siguientes devuelven la misma
|
|
63
|
+
* instancia sin volver a leer.
|
|
64
|
+
* Resolves the status author. Instance-memoized: first call hits the engine
|
|
65
|
+
* via `wa.Contact.get`; subsequent calls return the cached instance.
|
|
66
|
+
*/
|
|
67
|
+
author(): Promise<Contact>;
|
|
68
|
+
/**
|
|
69
|
+
* Stream progresivo del contenido. Para texto envuelve el caption; para media
|
|
70
|
+
* lee del cache del engine y, si falta, descarga desde baileys.
|
|
71
|
+
* Progressive content stream. For text wraps the caption; for media reads the
|
|
72
|
+
* engine cache and falls back to baileys download.
|
|
73
|
+
*/
|
|
74
|
+
stream(): Promise<Readable>;
|
|
75
|
+
/**
|
|
76
|
+
* Acumula el stream del status en un Buffer.
|
|
77
|
+
* Drains the status stream into a Buffer.
|
|
78
|
+
*/
|
|
79
|
+
content(): Promise<Buffer>;
|
|
80
|
+
/**
|
|
81
|
+
* Marca el status como visto enviando read receipt. Persiste `viewed = true`.
|
|
82
|
+
* Marks the status as seen sending a read receipt. Persists `viewed = true`.
|
|
83
|
+
*/
|
|
84
|
+
view(): Promise<boolean>;
|
|
85
|
+
}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file status/index.ts
|
|
3
|
+
* @description Entidad `Feed` — representa una publicación del status broadcast
|
|
4
|
+
* (`status@broadcast`). Análoga a `Message` pero acotada al ciclo de vida de un
|
|
5
|
+
* status (24h, no se cita, no se edita, sin starring/forward).
|
|
6
|
+
* Status broadcast entry. Analogous to `Message` but scoped to the status
|
|
7
|
+
* lifecycle (24h TTL, no quoting, no editing, no starring/forward).
|
|
8
|
+
*/
|
|
9
|
+
import { downloadMediaMessage } from 'baileys';
|
|
10
|
+
import { Readable } from 'node:stream';
|
|
11
|
+
import { deserialize, serialize } from '../../lib/store/index.js';
|
|
12
|
+
/** Vida útil del status: 24 horas en ms. / Status lifetime: 24h in ms. */
|
|
13
|
+
export const TTL_MS = 24 * 60 * 60 * 1000;
|
|
14
|
+
/**
|
|
15
|
+
* Status broadcast — una publicación del feed `status@broadcast` con duración 24h.
|
|
16
|
+
*
|
|
17
|
+
* Status broadcast entry — a `status@broadcast` post with a 24h lifetime.
|
|
18
|
+
*/
|
|
19
|
+
export default class Feed {
|
|
20
|
+
constructor(options) {
|
|
21
|
+
/** @internal Cache de la promesa de `author()` para evitar engine round-trips repetidos. */
|
|
22
|
+
this._author_cache = null;
|
|
23
|
+
this._wa = options.wa;
|
|
24
|
+
this._doc = options.doc;
|
|
25
|
+
}
|
|
26
|
+
/** Identificador del status (mid). / Status id (mid). */
|
|
27
|
+
get id() {
|
|
28
|
+
return this._doc.id;
|
|
29
|
+
}
|
|
30
|
+
/** Tipo de contenido. / Content type. */
|
|
31
|
+
get type() {
|
|
32
|
+
return this._doc.type;
|
|
33
|
+
}
|
|
34
|
+
/** true si ya enviamos read receipt sobre este status. / true once a read receipt was sent. */
|
|
35
|
+
get viewed() {
|
|
36
|
+
return this._doc.viewed;
|
|
37
|
+
}
|
|
38
|
+
/** Texto / caption del status. / Status text or caption. */
|
|
39
|
+
get caption() {
|
|
40
|
+
return this._doc.caption;
|
|
41
|
+
}
|
|
42
|
+
/** Epoch ms de publicación. / Publication epoch ms. */
|
|
43
|
+
get created_at() {
|
|
44
|
+
return this._doc.created_at;
|
|
45
|
+
}
|
|
46
|
+
/** Epoch ms de expiración (created_at + 24h). / Expiration epoch ms (created_at + 24h). */
|
|
47
|
+
get expires_at() {
|
|
48
|
+
return this._doc.expires_at;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Resuelve el autor del status. Memoizado a nivel de instancia: la primera
|
|
52
|
+
* llamada va al engine vía `wa.Contact.get`; las siguientes devuelven la misma
|
|
53
|
+
* instancia sin volver a leer.
|
|
54
|
+
* Resolves the status author. Instance-memoized: first call hits the engine
|
|
55
|
+
* via `wa.Contact.get`; subsequent calls return the cached instance.
|
|
56
|
+
*/
|
|
57
|
+
async author() {
|
|
58
|
+
return (this._author_cache ??= (async () => {
|
|
59
|
+
const { _wa, _doc } = this;
|
|
60
|
+
const fetched = await _wa.Contact.get(_doc.author_jid);
|
|
61
|
+
return (fetched ??
|
|
62
|
+
new _wa.Contact({
|
|
63
|
+
id: _doc.author_jid,
|
|
64
|
+
lid: null,
|
|
65
|
+
name: null,
|
|
66
|
+
notify: null,
|
|
67
|
+
verified_name: null,
|
|
68
|
+
img_url: null,
|
|
69
|
+
status: null,
|
|
70
|
+
}, new _wa.Chat({
|
|
71
|
+
id: _doc.author_jid,
|
|
72
|
+
name: _doc.author_jid.split('@')[0],
|
|
73
|
+
})));
|
|
74
|
+
})());
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Stream progresivo del contenido. Para texto envuelve el caption; para media
|
|
78
|
+
* lee del cache del engine y, si falta, descarga desde baileys.
|
|
79
|
+
* Progressive content stream. For text wraps the caption; for media reads the
|
|
80
|
+
* engine cache and falls back to baileys download.
|
|
81
|
+
*/
|
|
82
|
+
async stream() {
|
|
83
|
+
const { _wa, _doc } = this;
|
|
84
|
+
if (_doc.type === 'text') {
|
|
85
|
+
return Readable.from(Buffer.from(_doc.caption, 'utf-8'));
|
|
86
|
+
}
|
|
87
|
+
const cached = deserialize(await _wa.engine.get(`/status/${_doc.id}/content`));
|
|
88
|
+
if (cached?.data) {
|
|
89
|
+
return Readable.from(Buffer.from(cached.data, 'base64'));
|
|
90
|
+
}
|
|
91
|
+
if (_wa._socket) {
|
|
92
|
+
try {
|
|
93
|
+
return (await downloadMediaMessage(_doc.raw, 'stream', {}));
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
/* fallback empty */
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return Readable.from(Buffer.alloc(0));
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Acumula el stream del status en un Buffer.
|
|
103
|
+
* Drains the status stream into a Buffer.
|
|
104
|
+
*/
|
|
105
|
+
async content() {
|
|
106
|
+
const chunks = [];
|
|
107
|
+
for await (const chunk of await this.stream()) {
|
|
108
|
+
chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
|
|
109
|
+
}
|
|
110
|
+
return Buffer.concat(chunks);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Marca el status como visto enviando read receipt. Persiste `viewed = true`.
|
|
114
|
+
* Marks the status as seen sending a read receipt. Persists `viewed = true`.
|
|
115
|
+
*/
|
|
116
|
+
async view() {
|
|
117
|
+
const { _wa, _doc } = this;
|
|
118
|
+
let ok = false;
|
|
119
|
+
if (_wa._socket) {
|
|
120
|
+
if (!_doc.viewed) {
|
|
121
|
+
await _wa._socket.readMessages([
|
|
122
|
+
{ remoteJid: 'status@broadcast', id: _doc.id, participant: _doc.author_jid },
|
|
123
|
+
]);
|
|
124
|
+
_doc.viewed = true;
|
|
125
|
+
await _wa.engine.set(`/status/${_doc.id}`, serialize(_doc));
|
|
126
|
+
}
|
|
127
|
+
_wa._event.emit('feed:updated', this, _wa);
|
|
128
|
+
ok = true;
|
|
129
|
+
}
|
|
130
|
+
return ok;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/status/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file store/engine/index.ts
|
|
3
|
+
* @description Contrato del motor de persistencia (string-based) y barrel de drivers.
|
|
4
|
+
* Engine contract (string-based) and drivers barrel.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Contrato de persistencia key-value de strings. El engine no conoce JSON; la serialización
|
|
8
|
+
* ocurre en la capa superior (ver `store/serialize` y `store/deserialize`).
|
|
9
|
+
*
|
|
10
|
+
* Key-value string persistence contract. The engine is unaware of JSON; serialization happens
|
|
11
|
+
* in the upper layer.
|
|
12
|
+
*
|
|
13
|
+
* Reglas / Rules:
|
|
14
|
+
* - Paths se normalizan quitando slashes redundantes. / Paths strip redundant slashes.
|
|
15
|
+
* - `set` refresca el mtime (drives `list` order). / `set` refreshes mtime.
|
|
16
|
+
* - `unset` hace cascade sobre el sub-árbol. / `unset` cascades the subtree.
|
|
17
|
+
* - `list` solo devuelve hijos directos ordenados por mtime DESC. / `list` yields direct children, mtime DESC.
|
|
18
|
+
*/
|
|
19
|
+
export interface Engine {
|
|
20
|
+
/** Lee un valor por path. Retorna null si no existe. / Reads a value by path; null if missing. */
|
|
21
|
+
get(path: string): Promise<string | null>;
|
|
22
|
+
/** Escribe un valor. Refresca el mtime. / Writes a value. Refreshes mtime. */
|
|
23
|
+
set(path: string, value: string): Promise<void>;
|
|
24
|
+
/** Elimina el valor y todos sus descendientes. Idempotente. / Cascade delete. Idempotent. */
|
|
25
|
+
unset(path: string): Promise<boolean>;
|
|
26
|
+
/** Lista valores de los hijos directos, paginados por mtime DESC. / Lists direct children values, mtime DESC. */
|
|
27
|
+
list(path: string, offset?: number, limit?: number): Promise<string[]>;
|
|
28
|
+
/** Cuenta hijos directos sin leer los valores. / Counts direct children without loading values. */
|
|
29
|
+
count(path: string): Promise<number>;
|
|
30
|
+
/** Vacía completamente el almacén. / Clears the entire store. */
|
|
31
|
+
clear(): Promise<void>;
|
|
32
|
+
}
|
|
33
|
+
export { FileSystemEngine } from '../../../lib/store/engine/lib/file_system/index.js';
|
|
34
|
+
export { RedisEngine, type RedisClient } from '../../../lib/store/engine/lib/redis/index.js';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file store/engine/index.ts
|
|
3
|
+
* @description Contrato del motor de persistencia (string-based) y barrel de drivers.
|
|
4
|
+
* Engine contract (string-based) and drivers barrel.
|
|
5
|
+
*/
|
|
6
|
+
export { FileSystemEngine } from '../../../lib/store/engine/lib/file_system/index.js';
|
|
7
|
+
export { RedisEngine } from '../../../lib/store/engine/lib/redis/index.js';
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/lib/store/engine/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAmCH,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,WAAW,EAAoB,MAAM,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file store/engine/lib/file_system/index.ts
|
|
3
|
+
* @description Driver de persistencia en sistema de archivos local.
|
|
4
|
+
* Local filesystem persistence driver.
|
|
5
|
+
*/
|
|
6
|
+
import type { Engine } from '../../../../../lib/store/engine/index.js';
|
|
7
|
+
/**
|
|
8
|
+
* Driver de persistencia en sistema de archivos.
|
|
9
|
+
* Cada documento se almacena como `<base>/<path>/index.json` de modo que un recurso pueda
|
|
10
|
+
* coexistir con sub-recursos anidados.
|
|
11
|
+
*
|
|
12
|
+
* Filesystem persistence driver. Each document lives at `<base>/<path>/index.json` so a
|
|
13
|
+
* resource can coexist with nested sub-resources.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* const engine = new FileSystemEngine('/tmp/wa');
|
|
17
|
+
* await engine.set('/chat/123', JSON.stringify({ name: 'John' }));
|
|
18
|
+
*/
|
|
19
|
+
export declare class FileSystemEngine implements Engine {
|
|
20
|
+
private readonly _base;
|
|
21
|
+
constructor(_base: string);
|
|
22
|
+
/** @internal */
|
|
23
|
+
private _dir;
|
|
24
|
+
/** @internal */
|
|
25
|
+
private _file;
|
|
26
|
+
/**
|
|
27
|
+
* Lee el valor de un documento.
|
|
28
|
+
* Reads a document's value.
|
|
29
|
+
*/
|
|
30
|
+
get(path: string): Promise<string | null>;
|
|
31
|
+
/**
|
|
32
|
+
* Escribe el valor de un documento, creando los directorios necesarios.
|
|
33
|
+
* Writes a document's value, creating directories as needed.
|
|
34
|
+
*/
|
|
35
|
+
set(path: string, value: string): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* Elimina el documento y todos sus descendientes. Idempotente.
|
|
38
|
+
* Deletes the document and every descendant. Idempotent.
|
|
39
|
+
*/
|
|
40
|
+
unset(path: string): Promise<boolean>;
|
|
41
|
+
/**
|
|
42
|
+
* Lista los valores de los hijos directos, ordenados por mtime DESC.
|
|
43
|
+
* Lists direct children values ordered by mtime DESC.
|
|
44
|
+
*/
|
|
45
|
+
list(path: string, offset?: number, limit?: number): Promise<string[]>;
|
|
46
|
+
/**
|
|
47
|
+
* Cuenta los hijos directos que tienen un documento válido.
|
|
48
|
+
* Counts direct children with a valid document.
|
|
49
|
+
*/
|
|
50
|
+
count(path: string): Promise<number>;
|
|
51
|
+
/**
|
|
52
|
+
* Vacía completamente el almacén.
|
|
53
|
+
* Clears the entire store.
|
|
54
|
+
*/
|
|
55
|
+
clear(): Promise<void>;
|
|
56
|
+
}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file store/engine/lib/file_system/index.ts
|
|
3
|
+
* @description Driver de persistencia en sistema de archivos local.
|
|
4
|
+
* Local filesystem persistence driver.
|
|
5
|
+
*/
|
|
6
|
+
import { mkdir, readdir, readFile, rm, stat, writeFile } from 'node:fs/promises';
|
|
7
|
+
import { join } from 'node:path';
|
|
8
|
+
const INDEX_FILE = 'index.json';
|
|
9
|
+
/**
|
|
10
|
+
* Normaliza un path colapsando slashes redundantes.
|
|
11
|
+
* Normalizes a path by collapsing redundant slashes.
|
|
12
|
+
*/
|
|
13
|
+
function normalize_path(path) {
|
|
14
|
+
return path.replace(/\/+/g, '/').replace(/^\/|\/$/g, '');
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Driver de persistencia en sistema de archivos.
|
|
18
|
+
* Cada documento se almacena como `<base>/<path>/index.json` de modo que un recurso pueda
|
|
19
|
+
* coexistir con sub-recursos anidados.
|
|
20
|
+
*
|
|
21
|
+
* Filesystem persistence driver. Each document lives at `<base>/<path>/index.json` so a
|
|
22
|
+
* resource can coexist with nested sub-resources.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* const engine = new FileSystemEngine('/tmp/wa');
|
|
26
|
+
* await engine.set('/chat/123', JSON.stringify({ name: 'John' }));
|
|
27
|
+
*/
|
|
28
|
+
export class FileSystemEngine {
|
|
29
|
+
constructor(_base) {
|
|
30
|
+
this._base = _base;
|
|
31
|
+
}
|
|
32
|
+
/** @internal */
|
|
33
|
+
_dir(path) {
|
|
34
|
+
return join(this._base, normalize_path(path));
|
|
35
|
+
}
|
|
36
|
+
/** @internal */
|
|
37
|
+
_file(path) {
|
|
38
|
+
return join(this._dir(path), INDEX_FILE);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Lee el valor de un documento.
|
|
42
|
+
* Reads a document's value.
|
|
43
|
+
*/
|
|
44
|
+
async get(path) {
|
|
45
|
+
try {
|
|
46
|
+
return await readFile(this._file(path), 'utf-8');
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Escribe el valor de un documento, creando los directorios necesarios.
|
|
54
|
+
* Writes a document's value, creating directories as needed.
|
|
55
|
+
*/
|
|
56
|
+
async set(path, value) {
|
|
57
|
+
const dir = this._dir(path);
|
|
58
|
+
await mkdir(dir, { recursive: true });
|
|
59
|
+
await writeFile(join(dir, INDEX_FILE), value, 'utf-8');
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Elimina el documento y todos sus descendientes. Idempotente.
|
|
63
|
+
* Deletes the document and every descendant. Idempotent.
|
|
64
|
+
*/
|
|
65
|
+
async unset(path) {
|
|
66
|
+
try {
|
|
67
|
+
await rm(this._dir(path), { recursive: true, force: true });
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
/* idempotent */
|
|
71
|
+
}
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Lista los valores de los hijos directos, ordenados por mtime DESC.
|
|
76
|
+
* Lists direct children values ordered by mtime DESC.
|
|
77
|
+
*/
|
|
78
|
+
async list(path, offset = 0, limit = 50) {
|
|
79
|
+
const dir = this._dir(path);
|
|
80
|
+
try {
|
|
81
|
+
const entries = await readdir(dir, { withFileTypes: true });
|
|
82
|
+
const stats = await Promise.all(entries
|
|
83
|
+
.filter((e) => e.isDirectory())
|
|
84
|
+
.map(async (entry) => {
|
|
85
|
+
const file = join(dir, entry.name, INDEX_FILE);
|
|
86
|
+
try {
|
|
87
|
+
const st = await stat(file);
|
|
88
|
+
return { file, mtime: st.mtimeMs };
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
}));
|
|
94
|
+
const valid = stats.filter((x) => x !== null);
|
|
95
|
+
valid.sort((a, b) => b.mtime - a.mtime);
|
|
96
|
+
const page = valid.slice(offset, offset + limit);
|
|
97
|
+
const values = await Promise.all(page.map(async ({ file }) => {
|
|
98
|
+
try {
|
|
99
|
+
return await readFile(file, 'utf-8');
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
return null;
|
|
103
|
+
}
|
|
104
|
+
}));
|
|
105
|
+
const result = [];
|
|
106
|
+
for (const value of values) {
|
|
107
|
+
if (value !== null) {
|
|
108
|
+
result.push(value);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return result;
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
return [];
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Cuenta los hijos directos que tienen un documento válido.
|
|
119
|
+
* Counts direct children with a valid document.
|
|
120
|
+
*/
|
|
121
|
+
async count(path) {
|
|
122
|
+
const dir = this._dir(path);
|
|
123
|
+
try {
|
|
124
|
+
const entries = await readdir(dir, { withFileTypes: true });
|
|
125
|
+
let total = 0;
|
|
126
|
+
await Promise.all(entries
|
|
127
|
+
.filter((e) => e.isDirectory())
|
|
128
|
+
.map(async (entry) => {
|
|
129
|
+
try {
|
|
130
|
+
await stat(join(dir, entry.name, INDEX_FILE));
|
|
131
|
+
total++;
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
/* not a valid child doc */
|
|
135
|
+
}
|
|
136
|
+
}));
|
|
137
|
+
return total;
|
|
138
|
+
}
|
|
139
|
+
catch {
|
|
140
|
+
return 0;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Vacía completamente el almacén.
|
|
145
|
+
* Clears the entire store.
|
|
146
|
+
*/
|
|
147
|
+
async clear() {
|
|
148
|
+
try {
|
|
149
|
+
await rm(this._base, { recursive: true, force: true });
|
|
150
|
+
}
|
|
151
|
+
catch {
|
|
152
|
+
/* idempotent */
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/lib/store/engine/lib/file_system/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file store/engine/lib/redis/index.ts
|
|
3
|
+
* @description Driver de persistencia con Redis.
|
|
4
|
+
* Redis persistence driver.
|
|
5
|
+
*/
|
|
6
|
+
import type { Engine } from '../../../../../lib/store/engine/index.js';
|
|
7
|
+
/**
|
|
8
|
+
* Interface mínima del cliente Redis (compatible con ioredis).
|
|
9
|
+
* Minimal Redis client interface (ioredis-compatible).
|
|
10
|
+
*/
|
|
11
|
+
export interface RedisClient {
|
|
12
|
+
get(key: string): Promise<string | null>;
|
|
13
|
+
set(key: string, value: string): Promise<unknown>;
|
|
14
|
+
del(keys: string | string[]): Promise<unknown>;
|
|
15
|
+
mget(keys: string[]): Promise<(string | null)[]>;
|
|
16
|
+
scan(cursor: number | string, ...args: unknown[]): Promise<[string, string[]]>;
|
|
17
|
+
zadd(key: string, score: number, member: string): Promise<unknown>;
|
|
18
|
+
zrem(key: string, members: string | string[]): Promise<unknown>;
|
|
19
|
+
zrevrange(key: string, start: number, stop: number): Promise<string[]>;
|
|
20
|
+
zcard(key: string): Promise<number>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Driver de persistencia con Redis.
|
|
24
|
+
*
|
|
25
|
+
* Keyspaces:
|
|
26
|
+
* - `<prefix>:doc:<path>` → string del documento.
|
|
27
|
+
* - `<prefix>:idx:<parent>` → sorted set (score=mtime, member=path completo).
|
|
28
|
+
*
|
|
29
|
+
* `list` combina ZREVRANGE + MGET → O(log N + M) en una sola round-trip.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* import IORedis from 'ioredis';
|
|
33
|
+
* const engine = new RedisEngine(new IORedis(), 'wa:5491112345678');
|
|
34
|
+
*/
|
|
35
|
+
export declare class RedisEngine implements Engine {
|
|
36
|
+
private readonly _client;
|
|
37
|
+
private readonly _prefix;
|
|
38
|
+
constructor(_client: RedisClient, _prefix?: string);
|
|
39
|
+
/** @internal */
|
|
40
|
+
private _doc_key;
|
|
41
|
+
/** @internal */
|
|
42
|
+
private _idx_key;
|
|
43
|
+
/** @internal */
|
|
44
|
+
private _split;
|
|
45
|
+
/**
|
|
46
|
+
* Lee el valor de un documento.
|
|
47
|
+
* Reads a document's value.
|
|
48
|
+
*/
|
|
49
|
+
get(path: string): Promise<string | null>;
|
|
50
|
+
/**
|
|
51
|
+
* Escribe el valor y actualiza el índice del padre con el timestamp actual.
|
|
52
|
+
* Writes the value and updates the parent's index with current timestamp.
|
|
53
|
+
*/
|
|
54
|
+
set(path: string, value: string): Promise<void>;
|
|
55
|
+
/**
|
|
56
|
+
* Elimina el doc, su índice y todo el sub-árbol.
|
|
57
|
+
* Deletes the doc, its index, and the entire subtree.
|
|
58
|
+
*/
|
|
59
|
+
unset(path: string): Promise<boolean>;
|
|
60
|
+
/**
|
|
61
|
+
* Lista valores de los hijos directos, ordenados por mtime DESC en una round-trip.
|
|
62
|
+
* Lists direct children values ordered by mtime DESC in a single round-trip.
|
|
63
|
+
*/
|
|
64
|
+
list(path: string, offset?: number, limit?: number): Promise<string[]>;
|
|
65
|
+
/**
|
|
66
|
+
* Cuenta hijos directos en O(1) usando ZCARD.
|
|
67
|
+
* Counts direct children in O(1) via ZCARD.
|
|
68
|
+
*/
|
|
69
|
+
count(path: string): Promise<number>;
|
|
70
|
+
/**
|
|
71
|
+
* Vacía todo el prefix del cliente.
|
|
72
|
+
* Clears the entire client prefix.
|
|
73
|
+
*/
|
|
74
|
+
clear(): Promise<void>;
|
|
75
|
+
/**
|
|
76
|
+
* Borra todas las keys que coinciden con un patrón usando SCAN + DEL por lotes.
|
|
77
|
+
* Deletes all keys matching a pattern via SCAN + DEL in batches.
|
|
78
|
+
*
|
|
79
|
+
* @internal
|
|
80
|
+
*/
|
|
81
|
+
private _delete_pattern;
|
|
82
|
+
}
|