@nommos/core 0.0.40 → 0.0.43

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popup-viewer.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/popup-viewer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,0BAA0B,EAC1B,oBAAoB,EACpB,eAAe,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,eAAe,EAAe,MAAM,QAAQ,CAAC;AA0CtD,MAAM,OAAO,GAAG,mBAAmB,CAAC;AACpC,MAAM,gBAAgB,GAAG,uBAAuB,CAAC;AAEjD,gGAAgG;AAChG,MAAM,YAAY,GAAG,GAAG,CAAC;AAEzB,yGAAyG;AACzG,IAAI,qBAAqB,GAAG,KAAK,CAAC;AAElC;;;;GAIG;AACH,MAAM,SAAS,GAAG;;;SAGT,CAAC;AAcV;;;;;;;;;;GAUG;AACH,MAAM,UAAU,GAAmC;IACjD,EAAE,EAAE;QACF,KAAK,EAAE,OAAO;QACd,OAAO,EAAE,kBAAkB;QAC3B,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,SAAS;QACjB,YAAY,EAAE,sBAAsB;QACpC,QAAQ,EAAE,eAAe;QACzB,cAAc,EAAE,gCAAgC;KACjD;IACD,EAAE,EAAE;QACF,KAAK,EAAE,QAAQ;QACf,OAAO,EAAE,kBAAkB;QAC3B,IAAI,EAAE,mBAAmB;QACzB,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE,SAAS;QACjB,YAAY,EAAE,gCAAgC;QAC9C,QAAQ,EAAE,qBAAqB;QAC/B,cAAc,EAAE,uCAAuC;KACxD;IACD,EAAE,EAAE;QACF,KAAK,EAAE,QAAQ;QACf,OAAO,EAAE,qBAAqB;QAC9B,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,mBAAmB;QACzB,MAAM,EAAE,SAAS;QACjB,YAAY,EAAE,8BAA8B;QAC5C,QAAQ,EAAE,gBAAgB;QAC1B,cAAc,EAAE,mCAAmC;KACpD;CACF,CAAC;AAEF,MAAM,OAAO,WAAW;IAoCtB,YAA6B,SAA+B;QAA/B,cAAS,GAAT,SAAS,CAAsB;QAnCpD,SAAI,GAAuB,IAAI,CAAC;QAChC,SAAI,GAAsB,IAAI,CAAC;QAC/B,UAAK,GAAgB,QAAQ,CAAC;QAE9B,iBAAY,GAAuB,IAAI,CAAC;QACxC,iBAAY,GAAsB,IAAI,CAAC;QAC/C,8FAA8F;QACtF,WAAM,GAAmB,IAAI,CAAC;QAC9B,gBAAW,GAA4B,IAAI,CAAC;QAC5C,kBAAa,GAAG,KAAK,CAAC;QAE9B,iFAAiF;QAChE,SAAI,GAAc,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC;QAEzD,UAAK,GAAmB,EAAE,CAAC;QACnC,8EAA8E;QACtE,UAAK,GAAG,CAAC,CAAC;QAClB;;;;WAIG;QACK,iBAAY,GAAG,CAAC,CAAC;QACzB,gGAAgG;QACxF,cAAS,GAAG,CAAC,CAAC;QACd,gBAAW,GAAmB,IAAI,CAAC;QACnC,gBAAW,GAAkB,IAAI,CAAC;QAClC,UAAK,GAAwB,IAAI,CAAC;QAEzB,cAAS,GAAG,CAAC,KAAoB,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAChE,qBAAgB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACrE,+FAA+F;QAC/F,2CAA2C;QAC1B,eAAU,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;IAEK,CAAC;IAEhE,8EAA8E;IAE9E,QAAQ,CAAC,KAAqB;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC7E,6EAA6E;QAC7E,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;QAE/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,4FAA4F;YAC5F,6FAA6F;YAC7F,sFAAsF;YACtF,IAAI,IAAI,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE,CAAC;gBAClC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,OAAO;YACT,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;YACtB,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,6FAA6F;IAC7F,QAAQ;QACN,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;YACpC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC5D,MAAM,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACvE,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QACpB,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAClB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAsB,EAAE,OAA0B;QAC3D,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO;QAE5F,MAAM,MAAM,GAAG,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACrF,IAAI,MAAM,GAAG,CAAC;YAAE,OAAO;QAEvB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;QACpB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;QAC3B,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,OAAO,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;QAEnF,8FAA8F;QAC9F,+FAA+F;QAC/F,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACjE,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;YACtB,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,OAAO;YAAE,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QACtB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,WAAW,YAAY,WAAW,EAAE,CAAC;YAC5C,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAC3B,CAAC;QACD,0FAA0F;QAC1F,iFAAiF;QACjF,kBAAkB;QAClB,IAAI,IAAI;YAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,8EAA8E;IAEtE,UAAU;QAChB,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,QAAQ,KAAK,WAAW;YAAE,OAAO;QAEzD,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC;QACvB,uFAAuF;QACvF,2EAA2E;QAC3E,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QACjD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,UAAU,UAAU,yCAAyC,CAAC;QAEpF,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAmB,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACnH,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAmB,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/G,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACrD,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACzD,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACpE,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACvD,CAAC;IAEO,cAAc;QACpB,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,IAAI;YAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;;OAOG;IACK,kBAAkB;QACxB,IAAI,IAAI,CAAC,YAAY,IAAI,OAAO,QAAQ,KAAK,WAAW;YAAE,OAAO;QAEjE,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,gBAAgB,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,UAAU,YAAY,wCAAwC,CAAC;QAC7F,2FAA2F;QAC3F,oDAAoD;QACpD,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QAChF,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED;;OAEG;IACK,aAAa;QACnB,IAAI,OAAO,QAAQ,KAAK,WAAW;YAAE,OAAO,IAAI,CAAC;QACjD,MAAM,OAAO,GAAG,QAAQ,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;QACjE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACjD,qBAAqB,GAAG,IAAI,CAAC;YAC7B,2FAA2F;YAC3F,6FAA6F;YAC7F,OAAO,CAAC,IAAI,CACV,qBAAqB,qBAAqB,yCAAyC,CACpF,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAC5B,CAAC;IAED,6FAA6F;IACrF,aAAa;QACnB,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,OAAO,QAAQ,KAAK,WAAW;YAAE,OAAO;QAClE,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC;QACvC,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,KAAK,MAAM;YAAE,OAAO;QAE9E,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,MAAM;YAAE,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;;YAC3D,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;QACxD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,mDAAmD;IAC5F,CAAC;IAED;;;;;;;OAOG;IACK,UAAU;QAChB,IAAI,IAAI,CAAC,WAAW,IAAI,OAAO,gBAAgB,KAAK,WAAW;YAAE,OAAO;QACxE,IAAI,CAAC,WAAW,GAAG,IAAI,gBAAgB,CAAC,GAAG,EAAE;YAC3C,IAAI,IAAI,CAAC,aAAa;gBAAE,OAAO;YAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,MAAM,GAAG,GAAG,GAAG,EAAE;gBACf,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,IAAI,CAAC,YAAY;oBAAE,OAAO;gBAC/B,IAAI,IAAI,CAAC,aAAa,EAAE,KAAK,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;oBAC3E,uFAAuF;oBACvF,8EAA8E;oBAC9E,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,CAAC;YACH,CAAC,CAAC;YACF,IAAI,OAAO,qBAAqB,KAAK,UAAU;gBAAE,qBAAqB,CAAC,GAAG,CAAC,CAAC;;gBACvE,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACK,cAAc;QACpB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,eAAe,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;QAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC;QAEtC,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC;YACzD,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QACD,2FAA2F;QAC3F,wFAAwF;QACxF,MAAM,IAAI,GAAG,QAAQ;YACnB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,sEAAsE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC;QAC3H,4FAA4F;QAC5F,2EAA2E;QAC3E,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QACxF,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,MAAM,KAAK,GACT,MAAM,GAAG,CAAC;YACR,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAC7D,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QAEzB,IAAI,CAAC,SAAS,GAAG;;+CAE0B,SAAS,gBAAgB,UAAU,CAAC,KAAK,CAAC;YAC7E,SAAS;YACT,KAAK;;UAEP,IAAI;aACD,CAAC;IACZ,CAAC;IAED;;;;OAIG;IACK,cAAc;QACpB,IAAI,CAAC;YACH,OAAO,cAAc,CAAC,OAAO,CAAC,yBAAyB,CAAC,KAAK,GAAG,CAAC;QACnE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAEO,iBAAiB,CAAC,MAAe;QACvC,IAAI,CAAC;YACH,IAAI,MAAM;gBAAE,cAAc,CAAC,OAAO,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;;gBAC9D,cAAc,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC;QAC5D,CAAC;QAAC,MAAM,CAAC;YACP,yDAAyD;QAC3D,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,aAAa;QACX,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;QAC/D,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACnC,QAAQ,CAAC,gBAAgB,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;gBACrF,IAAI,EAAE,IAAI;aACX,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACtE,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED;;;;;;;OAOG;IACK,KAAK;QACX,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;YAAE,OAAO;QACxC,IAAI,CAAC;YACH,MAAM,IAAI,GACP,MAAsG;iBACpG,YAAY;gBACd,MAAkE,CAAC,kBAAkB,CAAC;YACzF,IAAI,CAAC,IAAI;gBAAE,OAAO;YAClB,IAAI,CAAC,KAAK,KAAV,IAAI,CAAC,KAAK,GAAK,IAAI,IAAI,EAAE,EAAC;YAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,IAAI,GAAG,CAAC,KAAK,KAAK,WAAW;gBAAE,OAAO;YAEtC,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;YAC9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;YAClD,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,IAAI,EAAE,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;YACrE,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,MAAM,EAAE,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;YAEvE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;gBACnC,MAAM,GAAG,GAAG,GAAG,CAAC,gBAAgB,EAAE,CAAC;gBACnC,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC;gBAClB,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC;gBAChC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAClB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;gBACtC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,0EAA0E;QAC5E,CAAC;IACH,CAAC;IAED,MAAM,CAAC,YAAY;QACjB,IAAI,CAAC;YACH,OAAO,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,GAAG,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,OAAgB;QACrC,IAAI,CAAC;YACH,YAAY,CAAC,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC7D,CAAC;QAAC,MAAM,CAAC;YACP,4DAA4D;QAC9D,CAAC;IACH,CAAC;IAED,yFAAyF;IACjF,KAAK,CAAC,aAAa;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAEpC,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAClC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,4CAA4C,CAAC,CAAC;QAEnF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,sEAAsE;YACtE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;YAC3D,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;QAC3E,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,mBAAmB;QACzB,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;YAAE,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;IAC1D,CAAC;IAED;;;OAGG;IACK,OAAO,CAAC,IAAkB,EAAE,OAAwB;QAC1D,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,IAAI,oBAAoB,CAAC;QAC9D,IAAI,OAAO,KAAK,oBAAoB,EAAE,CAAC;YACrC,mFAAmF;YACnF,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,sBAAsB,OAAO,EAAE,CAAC,CAAC;YACrE,OAAO,uCAAuC,UAAU,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC;QACtG,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM;YACnB,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,WAAW;YAC3C,CAAC,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,UAAU,CAAC;QAC9C,OAAO,wBAAwB,MAAM,IAAI,EAAE,QAAQ,CAAC;IACtD,CAAC;IAEO,eAAe,CAAC,OAAwB;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC;QACzD,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACvC,OAAO,CAAC,WAAW,GAAG,CAAC,MAAM;YAC3B,CAAC,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,UAAU;YACzC,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IACrD,CAAC;IAEO,KAAK,CAAC,IAAkB,EAAE,IAAY,EAAE,OAAyB;QACvE,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QACvD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QACpB,OAAO;;;0EAG+D,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;2EAC5B,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;UACpF,IAAI,CAAC,CAAC,CAAC,yEAAyE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;gCAC/F,IAAI;UAC1B,IAAI,CAAC,CAAC,CAAC,yEAAyE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;;YAEnH,IAAI,CAAC,CAAC,CAAC,wBAAwB,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE;YAC7D,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;6DAC0B,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;;aAErE,CAAC;IACZ,CAAC;IAEO,SAAS,CAAC,OAAyB;QACzC,OAAO,OAAO;aACX,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjB,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACpC,IAAI,CAAC,GAAG;gBAAE,OAAO,EAAE,CAAC;YACpB,OAAO,mDAAmD,CAAC,WAAW,UAAU,CAAC,GAAG,CAAC;+DAC9B,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QACxF,CAAC,CAAC;aACD,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,CAAC;IAEO,UAAU;QAChB,OAAO,IAAI,CAAC,KAAK;aACd,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,sBAAsB,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC;aACpF,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,CAAC;IAEO,gBAAgB;QACtB,OAAO,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,UAAU,GAAG,0BAA0B,CAAC;IACzF,CAAC;IAED,8EAA8E;IAE9E;;;OAGG;IACK,WAAW,CAAC,KAAY;QAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEpC,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,CAAC,IAAI,YAAY,WAAW,CAAC;gBAAE,SAAS;YAE7C,IAAI,IAAI,CAAC,EAAE,KAAK,UAAU,EAAE,CAAC;gBAC3B,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBACpC,OAAO;YACT,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACtC,IAAI,MAAM,KAAK,eAAe,EAAE,CAAC;gBAC/B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBAC7B,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,OAAO;YACT,CAAC;YACD,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBACvB,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,IAAI,IAAI;oBAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC3C,OAAO;YACT,CAAC;YACD,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC3C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAClB,OAAO;YACT,CAAC;YACD,IAAI,MAAM,KAAK,KAAK,IAAI,IAAI,EAAE,CAAC;gBAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBACjD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBACxE,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC3B,OAAO,CAAC,mDAAmD;YAC7D,CAAC;YACD,IAAI,IAAI,CAAC,OAAO,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;gBACjC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBAClE,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC3B,OAAO;YACT,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;;;;OAUG;IACK,mBAAmB;QACzB,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED;;;;;;;;OAQG;IACK,IAAI,CAAC,SAA0B;QACrC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO;QAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,2FAA2F;QAC3F,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QACtF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAC9B,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC/C,+FAA+F;QAC/F,MAAM,KAAK,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC;QAE/B,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YACxD,IAAI,KAAK,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;gBAAE,OAAO;YACjE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,uFAAuF;gBACvF,oFAAoF;gBACpF,kFAAkF;gBAClF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;gBAC/B,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;gBAC3D,OAAO;YACT,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;YACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YACxC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACK,QAAQ,CAAC,IAAkB,EAAE,OAAwB,EAAE,SAA0B;QACvF,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa,CAAc,WAAW,CAAC,CAAC;QACjE,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC/C,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,QAAQ,CAAC,iBAAuC,CAAC;QAClE,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,0FAA0F;QAC1F,KAAK,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAc,UAAU,CAAC,CAAC;QAE9D,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC;gBAChC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,2FAA2F;gBAC3F,yEAAyE;gBACzE,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACrC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;gBAC9F,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACrC,QAAQ,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBAChE,wFAAwF;gBACxF,oFAAoF;gBACpF,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC;YACjC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;QACpF,CAAC;QACD,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE5B,+FAA+F;QAC/F,8FAA8F;QAC9F,oFAAoF;QACpF,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,2FAA2F;IACnF,QAAQ;QACd,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAc,SAAS,CAAC,CAAC;QACjE,IAAI,EAAE,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACjF,CAAC;IAEO,oBAAoB;QAC1B,OAAO,CACL,OAAO,MAAM,KAAK,WAAW;YAC7B,OAAO,MAAM,CAAC,UAAU,KAAK,UAAU;YACvC,MAAM,CAAC,UAAU,CAAC,kCAAkC,CAAC,CAAC,OAAO,CAC9D,CAAC;IACJ,CAAC;IAEO,aAAa,CAAC,KAAoB;QACxC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO;QACrC,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC3B,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QACD,IAAI,KAAK,CAAC,GAAG,KAAK,YAAY;YAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW;YAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK;YAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;IAED,+DAA+D;IACvD,SAAS,CAAC,KAAoB;QACpC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAC3C,2FAA2F,CAC5F,CAAC;QACF,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACjD,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC;QACxC,IAAI,KAAK,CAAC,QAAQ,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACvC,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;aAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YAC9C,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAEO,WAAW;QACjB,IAAI,CAAC,IAAI,EAAE,aAAa,CAAc,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC;IAC9D,CAAC;IAEO,gBAAgB,CAAC,KAAiB;QACxC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC;IACvD,CAAC;IAEO,cAAc,CAAC,KAAiB;QACtC,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO;QAC/D,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;QACxF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE;YAAE,OAAO;QACjC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8FlB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmEpB,CAAC"}
@@ -46,6 +46,7 @@ export declare class SessionTracker {
46
46
  /**
47
47
  * Public API to completely stop the tracker (unmount/cleanup).
48
48
  */
49
- stop(): void;
49
+ stop(discardPending?: boolean): void;
50
+ purge(): void;
50
51
  private flush;
51
52
  }
@@ -1,5 +1,5 @@
1
1
  import { SESSION_CHUNK_DURATION_MS, SESSION_INACTIVITY_TIMEOUT_MS, MAX_SESSION_CHUNK_BYTES } from './constants';
2
- import pako from 'pako';
2
+ import { gzip } from 'pako';
3
3
  /**
4
4
  * SessionTracker
5
5
  * --------------
@@ -142,7 +142,7 @@ export class SessionTracker {
142
142
  /**
143
143
  * Public API to completely stop the tracker (unmount/cleanup).
144
144
  */
145
- stop() {
145
+ stop(discardPending = false) {
146
146
  if (typeof window === 'undefined')
147
147
  return;
148
148
  window.removeEventListener('beforeunload', this.boundBeforeUnload);
@@ -152,9 +152,24 @@ export class SessionTracker {
152
152
  if (this.inactivityTimer) {
153
153
  clearTimeout(this.inactivityTimer);
154
154
  }
155
- this.stopRecording();
155
+ if (discardPending) {
156
+ if (this.stopFn) {
157
+ this.stopFn();
158
+ this.stopFn = null;
159
+ }
160
+ this.isRecording = false;
161
+ this.events = [];
162
+ this.currentChunkSizeBytes = 0;
163
+ }
164
+ else {
165
+ this.stopRecording();
166
+ }
156
167
  this.seq = 0; // Truly end the session sequence
157
168
  }
169
+ purge() {
170
+ this.events = [];
171
+ this.currentChunkSizeBytes = 0;
172
+ }
158
173
  flush() {
159
174
  if (this.events.length === 0)
160
175
  return;
@@ -172,7 +187,7 @@ export class SessionTracker {
172
187
  console.log('[Nommos Tracker] Flushing Session Recording Chunk:', payload.events.length, 'events (seq:', payload.seq, ')');
173
188
  }
174
189
  try {
175
- const compressed = pako.gzip(JSON.stringify(payload));
190
+ const compressed = gzip(JSON.stringify(payload));
176
191
  // Send raw binary Body instead of Base64 string for production efficiency
177
192
  this.ws.publishSessionRecordingMessage(compressed);
178
193
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session-tracker.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/session-tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-tracker.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/session-tracker.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,19 @@
1
1
  import { ANALYTICS_ACTION, ANALYTICS_ACTION_STATE, SITE_SOURCE } from './enums';
2
2
  export interface ConnectionConfig {
3
3
  token: string;
4
+ /**
5
+ * Selects the backend stack and the logging level together: `'dev'` points at the test
6
+ * deployment and turns on console diagnostics, anything else points at production and stays
7
+ * silent. Tokens are issued per stack, so this must match where the token came from.
8
+ */
4
9
  mode: string;
10
+ /** Escape hatch for a local or self-hosted backend. Overrides whatever `mode` would resolve to. */
11
+ baseUrl?: string;
5
12
  }
6
13
  export interface TrackingControls {
7
14
  action_tracking_enabled: boolean;
8
15
  session_tracking_enabled: boolean;
16
+ heatmap_tracking_enabled?: boolean;
9
17
  session_chunk_duration_ms?: number;
10
18
  session_inactivity_timeout_ms?: number;
11
19
  }
@@ -31,6 +39,8 @@ export interface FullConfig extends ConnectionConfig {
31
39
  rabbitUrl?: string;
32
40
  username?: string;
33
41
  password?: string;
42
+ wsUrl?: string;
43
+ wsToken?: string;
34
44
  brand_id?: number | string;
35
45
  appId?: string;
36
46
  reconnectDelay?: number;
@@ -38,6 +48,115 @@ export interface FullConfig extends ConnectionConfig {
38
48
  masterEnabled?: boolean;
39
49
  controls?: TrackingControls;
40
50
  ads_events?: AdsEventsConfig;
51
+ consentRef?: string;
52
+ consentReceiptId?: string;
53
+ consentVersion?: string;
54
+ consentPermission?: ConsentPermission;
55
+ }
56
+ export type ConsentPermission = 'necessary' | 'analytics' | 'session-recording' | 'marketing';
57
+ /** The categories a visitor can refuse. `necessary` is not among them. */
58
+ export type OptionalConsentCategory = 'analytics' | 'sessionRecording' | 'marketing';
59
+ export interface ConsentPermissionState {
60
+ necessary: true;
61
+ analytics: boolean;
62
+ sessionRecording: boolean;
63
+ marketing: boolean;
64
+ }
65
+ export interface ConsentStoredState {
66
+ receiptId: string;
67
+ consentRef: string;
68
+ configVersion: string;
69
+ policyHash: string;
70
+ permissions: ConsentPermissionState;
71
+ effectiveAt: string;
72
+ /** ISO timestamp after which consent must be collected again. Absent means it never expires. */
73
+ expiresAt?: string | null;
74
+ gpcApplied?: boolean;
75
+ }
76
+ export interface ConsentConfig {
77
+ enabled: boolean;
78
+ siteKey: string;
79
+ version: string;
80
+ policyHash: string;
81
+ brand_id?: number | string;
82
+ tenantId?: number | string;
83
+ branding: {
84
+ companyName: string;
85
+ logoUrl?: string;
86
+ primaryColor?: string;
87
+ secondaryColor?: string;
88
+ fontFamily?: string;
89
+ };
90
+ /** Per-category definition keyed by category name, e.g. `{ analytics: { enabled, required, defaultState } }`. */
91
+ permissions: Record<string, {
92
+ enabled?: boolean;
93
+ required?: boolean;
94
+ defaultState?: boolean;
95
+ }>;
96
+ /** @deprecated CMP copy is SDK-owned. Kept optional only for older config responses. */
97
+ content?: Record<string, Record<string, string> | string>;
98
+ privacyPolicyUrl?: string;
99
+ cookiePolicyUrl?: string;
100
+ expiresInDays?: number | null;
101
+ settings?: {
102
+ honorGlobalPrivacyControl?: boolean;
103
+ storageStrategy?: string;
104
+ cookiePrefix?: string;
105
+ showFloatingPrivacyControl?: boolean;
106
+ floatingButtonPosition?: string;
107
+ };
108
+ }
109
+ export interface ConsentAwareModule {
110
+ id: 'tracking' | 'session-recording' | 'marketing';
111
+ initialize(): Promise<void>;
112
+ shutdown(): Promise<void>;
113
+ purge?(): Promise<void>;
114
+ isInitialized(): boolean;
115
+ supportsRuntimeShutdown: boolean;
116
+ }
117
+ /** One CTA button. Rendered by the SDK as chrome rather than as part of the popup body. */
118
+ export interface WebPopupButton {
119
+ label: string;
120
+ url: string;
121
+ style?: string;
122
+ }
123
+ /**
124
+ * Inbox metadata for one popup. Deliberately without the body: three full popups would be over
125
+ * a megabyte on every SDK init, on the tenant's own page.
126
+ */
127
+ export interface WebPopupItem {
128
+ id: number;
129
+ title?: string;
130
+ thumbnailUrl?: string;
131
+ layout?: string;
132
+ schemaVersion?: number;
133
+ priority?: string;
134
+ status?: string;
135
+ deliveredAt?: string;
136
+ expiresAt?: string;
137
+ templateId?: number;
138
+ /** Which send produced this popup: BROADCAST, JOURNEY, AUTOMATION, STAGE_ACTION or DIRECT. */
139
+ source?: string;
140
+ /** The campaign behind the send, echoed back on every analytics event for attribution. */
141
+ sourceCampaignId?: number;
142
+ buttons?: WebPopupButton[];
143
+ }
144
+ /** The renderable body, fetched only when a popup is about to open. */
145
+ export interface WebPopupContent {
146
+ id: number;
147
+ schemaVersion?: number;
148
+ layout?: string;
149
+ title?: string;
150
+ desktopHtml?: string;
151
+ desktopCss?: string;
152
+ mobileHtml?: string;
153
+ mobileCss?: string;
154
+ buttons?: WebPopupButton[];
155
+ }
156
+ export interface WebPopupInboxState {
157
+ items: WebPopupItem[];
158
+ /** Popups the visitor has not opened yet — what the launcher badge counts. */
159
+ unreadCount: number;
41
160
  }
42
161
  export interface UrlTrackingKey {
43
162
  source: string;
@@ -1,4 +1,4 @@
1
- import { AnalyticsEvent, FullConfig, SessionRecordingPayload } from './types';
1
+ import { AnalyticsEvent, ConsentStoredState, FullConfig, SessionRecordingPayload } from './types';
2
2
  /**
3
3
  * WebSocketClient
4
4
  * ----------------
@@ -19,6 +19,9 @@ export declare class WebSocketClient {
19
19
  */
20
20
  private analyticsClient;
21
21
  private cfg;
22
+ private manualDisconnect;
23
+ private onConnectionClosed;
24
+ private consentState;
22
25
  /**
23
26
  * Buffer containing analytics events produced before the socket
24
27
  * becomes connected. They are automatically flushed on connection.
@@ -26,6 +29,17 @@ export declare class WebSocketClient {
26
29
  */
27
30
  private _pendingEvents;
28
31
  private _pendingSessions;
32
+ /**
33
+ * Topics to (re)subscribe on every connect. STOMP subscriptions do not survive a reconnect, so
34
+ * they are held here rather than registered once against a client instance that may be replaced.
35
+ */
36
+ private readonly topicHandlers;
37
+ /**
38
+ * Consecutive broker rejections. A token the broker refuses will be refused again, so retrying
39
+ * past this point is a reconnect loop rather than resilience.
40
+ */
41
+ private authFailures;
42
+ private static readonly MAX_AUTH_FAILURES;
29
43
  /** Readonly view of buffered analytics events — do not mutate directly. */
30
44
  get pendingEvents(): ReadonlyArray<AnalyticsEvent>;
31
45
  private readonly stompAnalyticsConnected;
@@ -55,7 +69,7 @@ export declare class WebSocketClient {
55
69
  *
56
70
  * @param cfg Configuration including URL, credentials, mode etc.
57
71
  */
58
- connectAnalyticsStomp(cfg: FullConfig): void;
72
+ connectAnalyticsStomp(cfg: FullConfig, onConnectionClosed?: () => void): void;
59
73
  /**
60
74
  * Publishes an analytics event to a RabbitMQ queue.
61
75
  *
@@ -72,6 +86,21 @@ export declare class WebSocketClient {
72
86
  * @param payload The session recording data to send.
73
87
  */
74
88
  publishSessionRecordingMessage(payload: SessionRecordingPayload | string | Uint8Array): void;
89
+ /**
90
+ * Subscribes to a broker topic, re-establishing it automatically after a reconnect.
91
+ *
92
+ * <p>Registering the handler even while disconnected is deliberate: the popup module subscribes
93
+ * during marketing-consent setup, which can easily run before the socket is up.
94
+ */
95
+ subscribeTopic(destination: string, handler: (body: string) => void): void;
96
+ unsubscribeTopic(destination: string): void;
97
+ private resubscribeTopics;
98
+ private applySubscription;
99
+ setConsentState(state: ConsentStoredState | null): void;
100
+ clearPendingSessionRecordings(): void;
101
+ private hasSessionRecordingConsent;
102
+ private hasAnalyticsConsent;
103
+ private consentHeaders;
75
104
  /**
76
105
  * Enriches all buffered (pending) analytics events with IP and brand_id
77
106
  * once they become available after bootstrap. This is called after the
@@ -1,6 +1,6 @@
1
1
  import { Client } from '@stomp/stompjs';
2
2
  import { BehaviorSubject } from 'rxjs';
3
- import { ANALYTICS_QUEUE, MAX_BUFFERED_CHUNKS, MAX_BUFFERED_EVENTS, SESSION_RECORDING_QUEUE } from './constants';
3
+ import { MAX_BUFFERED_CHUNKS, MAX_BUFFERED_EVENTS, TRACKING_ACTIVITY_DESTINATION, TRACKING_SESSION_DESTINATION } from './constants';
4
4
  /**
5
5
  * WebSocketClient
6
6
  * ----------------
@@ -22,6 +22,9 @@ export class WebSocketClient {
22
22
  */
23
23
  this.analyticsClient = null;
24
24
  this.cfg = null;
25
+ this.manualDisconnect = false;
26
+ this.onConnectionClosed = null;
27
+ this.consentState = null;
25
28
  /**
26
29
  * Buffer containing analytics events produced before the socket
27
30
  * becomes connected. They are automatically flushed on connection.
@@ -29,6 +32,16 @@ export class WebSocketClient {
29
32
  */
30
33
  this._pendingEvents = [];
31
34
  this._pendingSessions = [];
35
+ /**
36
+ * Topics to (re)subscribe on every connect. STOMP subscriptions do not survive a reconnect, so
37
+ * they are held here rather than registered once against a client instance that may be replaced.
38
+ */
39
+ this.topicHandlers = new Map();
40
+ /**
41
+ * Consecutive broker rejections. A token the broker refuses will be refused again, so retrying
42
+ * past this point is a reconnect loop rather than resilience.
43
+ */
44
+ this.authFailures = 0;
32
45
  this.stompAnalyticsConnected = new BehaviorSubject(false);
33
46
  /**
34
47
  * Reactive connection state for consumers who want to listen for
@@ -51,11 +64,18 @@ export class WebSocketClient {
51
64
  */
52
65
  createStompClient(cfg) {
53
66
  const client = new Client({
54
- brokerURL: cfg.rabbitUrl ?? '',
67
+ brokerURL: cfg.wsUrl ?? cfg.rabbitUrl ?? '',
55
68
  connectHeaders: {
56
- login: cfg.username ?? '',
57
- passcode: cfg.password ?? '',
69
+ ...(cfg.wsToken
70
+ ? { Authorization: `Bearer ${cfg.wsToken}` }
71
+ : {
72
+ login: cfg.username ?? '',
73
+ passcode: cfg.password ?? '',
74
+ }),
58
75
  },
76
+ // Reconnection used to be switched off outright whenever a wsToken was present, so a single
77
+ // dropped socket left a long-lived SPA with no live channel for the rest of the page's life.
78
+ // It stays on now; `authFailures` is the backstop that stops a rejected token retrying forever.
59
79
  reconnectDelay: cfg.reconnectDelay ?? 5000,
60
80
  });
61
81
  if (cfg.mode === 'dev') {
@@ -83,14 +103,23 @@ export class WebSocketClient {
83
103
  *
84
104
  * @param cfg Configuration including URL, credentials, mode etc.
85
105
  */
86
- connectAnalyticsStomp(cfg) {
106
+ connectAnalyticsStomp(cfg, onConnectionClosed) {
107
+ this.manualDisconnect = false;
87
108
  this.cfg = cfg;
109
+ this.onConnectionClosed = onConnectionClosed ?? null;
110
+ if (this.analyticsClient) {
111
+ this.analyticsClient.deactivate();
112
+ }
88
113
  this.analyticsClient = this.createStompClient(cfg);
114
+ const activeClient = this.analyticsClient;
89
115
  this.analyticsClient.onConnect = () => {
116
+ this.manualDisconnect = false;
117
+ this.authFailures = 0;
90
118
  if (this.cfg?.mode === 'dev') {
91
119
  console.log('[Nommos Tracker] Connected');
92
120
  }
93
121
  this.stompAnalyticsConnected.next(true);
122
+ this.resubscribeTopics();
94
123
  // flush pending analytics events
95
124
  for (const m of this._pendingEvents) {
96
125
  this.publishAnalyticsMessage(m);
@@ -106,6 +135,22 @@ export class WebSocketClient {
106
135
  if (this.cfg?.mode === 'dev') {
107
136
  console.error('[Nommos Tracker] Broker error:', frame.headers['message']);
108
137
  }
138
+ // An ERROR frame at this point means the broker refused us — almost always the token. It
139
+ // will refuse the same token again, so give up rather than reconnect in a tight loop.
140
+ this.authFailures += 1;
141
+ if (this.authFailures >= WebSocketClient.MAX_AUTH_FAILURES) {
142
+ if (this.cfg?.mode === 'dev') {
143
+ console.error('[Nommos Tracker] Giving up reconnecting after repeated broker rejections.');
144
+ }
145
+ this.manualDisconnect = true;
146
+ activeClient.deactivate();
147
+ }
148
+ };
149
+ this.analyticsClient.onWebSocketClose = () => {
150
+ this.stompAnalyticsConnected.next(false);
151
+ if (this.analyticsClient === activeClient && !this.manualDisconnect && this.onConnectionClosed) {
152
+ this.onConnectionClosed();
153
+ }
109
154
  };
110
155
  if (this.cfg?.mode === 'dev') {
111
156
  console.log('[Nommos Tracker] Activating STOMP client...');
@@ -122,6 +167,12 @@ export class WebSocketClient {
122
167
  * @param payload The analytics event to send.
123
168
  */
124
169
  publishAnalyticsMessage(payload) {
170
+ if (this.cfg?.wsToken && !this.hasAnalyticsConsent()) {
171
+ if (this.cfg?.mode === 'dev') {
172
+ console.warn('[Nommos Tracker] Analytics event blocked because consent proof is missing.');
173
+ }
174
+ return;
175
+ }
125
176
  if (!this.analyticsClient || !this.analyticsClient.connected) {
126
177
  this._pendingEvents.push(payload);
127
178
  // Memory Guard: Drop oldest events if buffer exceeds limit
@@ -134,8 +185,11 @@ export class WebSocketClient {
134
185
  return;
135
186
  }
136
187
  this.analyticsClient.publish({
137
- destination: ANALYTICS_QUEUE,
138
- headers: { 'content-type': 'application/json' },
188
+ destination: this.cfg?.wsToken ? TRACKING_ACTIVITY_DESTINATION : '/queue/user.activity',
189
+ headers: {
190
+ 'content-type': 'application/json',
191
+ ...(this.cfg?.wsToken ? this.consentHeaders('analytics') : {}),
192
+ },
139
193
  body: JSON.stringify(payload),
140
194
  });
141
195
  }
@@ -145,6 +199,12 @@ export class WebSocketClient {
145
199
  * @param payload The session recording data to send.
146
200
  */
147
201
  publishSessionRecordingMessage(payload) {
202
+ if (this.cfg?.wsToken && !this.hasSessionRecordingConsent()) {
203
+ if (this.cfg?.mode === 'dev') {
204
+ console.warn('[Nommos Tracker] Session recording chunk blocked because consent proof is missing.');
205
+ }
206
+ return;
207
+ }
148
208
  if (!this.analyticsClient || !this.analyticsClient.connected) {
149
209
  this._pendingSessions.push(payload);
150
210
  // Memory Guard: Drop oldest chunks if buffer exceeds limit
@@ -159,14 +219,84 @@ export class WebSocketClient {
159
219
  const isCompressed = typeof payload === 'string' || payload instanceof Uint8Array;
160
220
  const isBinary = payload instanceof Uint8Array;
161
221
  this.analyticsClient.publish({
162
- destination: SESSION_RECORDING_QUEUE,
222
+ destination: this.cfg?.wsToken ? TRACKING_SESSION_DESTINATION : '/queue/user.session.recording',
163
223
  headers: {
164
224
  'content-type': isBinary ? 'application/octet-stream' : isCompressed ? 'text/plain' : 'application/json',
165
225
  ...(isCompressed && { 'content-encoding': 'gzip' }),
226
+ ...(this.cfg?.wsToken ? this.consentHeaders() : {}),
166
227
  },
167
228
  ...(isBinary ? { binaryBody: payload } : { body: isCompressed ? payload : JSON.stringify(payload) }),
168
229
  });
169
230
  }
231
+ /**
232
+ * Subscribes to a broker topic, re-establishing it automatically after a reconnect.
233
+ *
234
+ * <p>Registering the handler even while disconnected is deliberate: the popup module subscribes
235
+ * during marketing-consent setup, which can easily run before the socket is up.
236
+ */
237
+ subscribeTopic(destination, handler) {
238
+ this.topicHandlers.set(destination, handler);
239
+ if (this.analyticsClient?.connected) {
240
+ this.applySubscription(destination, handler);
241
+ }
242
+ }
243
+ unsubscribeTopic(destination) {
244
+ this.topicHandlers.delete(destination);
245
+ // stompjs has no unsubscribe-by-destination; dropping the handler stops delivery, and the
246
+ // subscription itself dies with the next reconnect. Popups are per-page, so this is enough.
247
+ }
248
+ resubscribeTopics() {
249
+ for (const [destination, handler] of this.topicHandlers) {
250
+ this.applySubscription(destination, handler);
251
+ }
252
+ }
253
+ applySubscription(destination, handler) {
254
+ try {
255
+ this.analyticsClient?.subscribe(destination, (message) => {
256
+ // A handler that throws must not take down the STOMP message loop with it.
257
+ try {
258
+ handler(message.body);
259
+ }
260
+ catch (error) {
261
+ if (this.cfg?.mode === 'dev') {
262
+ console.error('[Nommos Tracker] Topic handler failed:', error);
263
+ }
264
+ }
265
+ }, this.cfg?.wsToken ? this.consentHeaders('marketing') : {});
266
+ }
267
+ catch (error) {
268
+ if (this.cfg?.mode === 'dev') {
269
+ console.error('[Nommos Tracker] Could not subscribe to', destination, error);
270
+ }
271
+ }
272
+ }
273
+ setConsentState(state) {
274
+ this.consentState = state;
275
+ if (!this.hasSessionRecordingConsent()) {
276
+ this.clearPendingSessionRecordings();
277
+ }
278
+ }
279
+ clearPendingSessionRecordings() {
280
+ this._pendingSessions = [];
281
+ }
282
+ hasSessionRecordingConsent() {
283
+ return Boolean(this.consentState?.consentRef &&
284
+ this.consentState?.receiptId &&
285
+ this.consentState?.permissions?.sessionRecording);
286
+ }
287
+ hasAnalyticsConsent() {
288
+ return Boolean(this.consentState?.consentRef &&
289
+ this.consentState?.receiptId &&
290
+ this.consentState?.permissions?.analytics);
291
+ }
292
+ consentHeaders(permission = 'session-recording') {
293
+ return {
294
+ 'x-nommos-consent-ref': this.consentState?.consentRef ?? '',
295
+ 'x-nommos-consent-receipt-id': this.consentState?.receiptId ?? '',
296
+ 'x-nommos-consent-version': this.consentState?.configVersion ?? '',
297
+ 'x-nommos-consent-permission': permission,
298
+ };
299
+ }
170
300
  /**
171
301
  * Enriches all buffered (pending) analytics events with IP and brand_id
172
302
  * once they become available after bootstrap. This is called after the
@@ -188,8 +318,10 @@ export class WebSocketClient {
188
318
  */
189
319
  disconnect() {
190
320
  if (this.analyticsClient) {
321
+ this.manualDisconnect = true;
191
322
  this.analyticsClient.deactivate().then(() => {
192
323
  this.stompAnalyticsConnected.next(false);
324
+ this.manualDisconnect = false;
193
325
  if (this.cfg?.mode === 'dev') {
194
326
  console.log('[Nommos Tracker] Disconnected');
195
327
  }
@@ -197,4 +329,5 @@ export class WebSocketClient {
197
329
  }
198
330
  }
199
331
  }
332
+ WebSocketClient.MAX_AUTH_FAILURES = 3;
200
333
  //# sourceMappingURL=webSocket-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"webSocket-client.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/webSocket-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webSocket-client.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/webSocket-client.ts"],"names":[],"mappings":"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"}