overmind
Version:
Frictionless state management
1 lines • 55.1 kB
Source Map (JSON)
{"version":3,"file":"Overmind.js","sourceRoot":"","sources":["../src/Overmind.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AACpC,OAAO,aAAa,MAAM,cAAc,CAAA;AACxC,OAAO,KAAK,cAAc,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AACvE,OAAO,EAAE,QAAQ,EAAmB,MAAM,YAAY,CAAA;AACtD,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAA;AAEhC,MAAM,iBAAiB,GAAG,EAAE,CAAA;AAE5B,MAAM,OAAO,QAAQ;IAyBnB,YACE,aAAyB,EACzB,UAAiC,EAAE,EACnC,OAG4B;QAC1B,IAAI,EAAE,KAAK,CAAC,YAAY;KACI;QA9BxB,qBAAgB,GAAiC,EAAE,CAAA;QACnD,oBAAe,GAAW,CAAC,CAAA;QAM3B,qCAAgC,GAA+B,EAAE,CAAA;QAEjE,aAAQ,GAAG,KAAK,CAAA;QAw0BxB,aAAQ,GAAoC,CAC1C,aAAa,EACb,cAAc,EACd,OAAO,GAAG,EAAE,EACZ,EAAE;YACF,IAAI,QAAQ,CAAA;YAEZ,IAAI,OAAO,CAAC,MAAM,EAAE;gBAClB,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBAEvC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;oBAC7C,MAAM,IAAI,KAAK,CACb,8FAA8F,CAC/F,CAAA;iBACF;gBAED,MAAM,IAAI,GAAG,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;gBAEvC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,SAAS,EAAE,EAAE;oBAC7C,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;wBAC7B,IAAI,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;4BAClC,cAAc,CACZ,IAAI;gCACF,CAAC,CAAC,IAAI;qCACD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;qCACrB,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC;gCACjD,CAAC,CAAC,IAAI,CAAC,KAAK,CACf,CAAA;yBACF;oBACH,CAAC,CAAC,CAAA;gBACJ,CAAC,CAAC,CAAA;aACH;iBAAM;gBACL,MAAM,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,CAAA;gBAC5D,IAAI,WAAW,CAAA;gBACf,MAAM,cAAc,GAAG,GAAG,EAAE;oBAC1B,IAAI,CAAC,UAAU,CACb,GAAG,EAAE,CAAC,CAAC,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,KAAY,CAAC,CAAC,EACtD,GAAG,EAAE;wBACH,cAAc,EAAE,CAAA;wBAChB,cAAc,CAAC,WAAW,CAAC,CAAA;oBAC7B,CAAC,CACF,CAAA;gBACH,CAAC,CAAA;gBAED,cAAc,EAAE,CAAA;gBAEhB,QAAQ,GAAG,GAAG,EAAE;oBACd,IAAI,CAAC,OAAO,EAAE,CAAA;gBAChB,CAAC,CAAA;aACF;YAED,IAAI,OAAO,CAAC,SAAS,EAAE;gBACrB,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,KAAY,CAAC,CAAC,CAAA;aACjD;YAED,OAAO,QAAQ,CAAA;QACjB,CAAC,CAAA;QAED,wBAAmB,GAAG,CAAC,EAAoC,EAAE,EAAE;YAC7D,OAAO,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;QACnD,CAAC,CAAA;QAED,qBAAgB,GAAG,CAAC,EAAiC,EAAE,EAAE;YACvD,OAAO,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAChD,CAAC,CAAA;QAj3BC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,aAAa,CAAA;QAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,aAAa,CAAA;QAC9C,MAAM,MAAM,GACV,OAAO,OAAO,KAAK,WAAW;YAC9B,OAAO,CAAC,KAAK;YACb,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAEhC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,GAAG,CAAA;QACzC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAEvC,IACE,KAAK,CAAC,WAAW,KAAK,MAAM;YAC5B,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,YAAY;YAChC,OAAO,CAAC,YAAY,KAAK,KAAK;YAC9B,CAAC,MAAM,EACP;YACA,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE;gBAC3B,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,CAAA;aAC1D;iBAAM;gBACL,iBAAiB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;aAC/B;SACF;QAED;;UAEE;QACF,MAAM,QAAQ,GACZ,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,QAAQ;YAC1B,CAAC,CAAC,IAAI,KAAK,CAAC,kBAAkB,EAAE;YAChC,CAAC,CAAC,IAAI,YAAY,EAAwB,CAAA;QAE9C;;;UAGE;QACF,MAAM,sBAAsB,GAAG,IAAI,CAAC,oBAAoB,CACtD,aAAa,EACb,QAAQ,EACR,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,EAC7D,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,QAAQ,CAC7B,CAAA;QACD,IAAI,CAAC,qBAAqB,GAAG,aAAa,CAAA;QAC1C,IAAI,CAAC,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAA;QACzC,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,OAAO,IAAI,EAAE,CAAA;QAC1C,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAA;QACpD,IAAI,CAAC,QAAQ,GAAG,QAA8C,CAAA;QAC9D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAEhB;;UAEE;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAErD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,QAAQ,EAAE;YAChC,OAAM;SACP;QAED,IACE,KAAK,CAAC,WAAW,KAAK,MAAM;YAC5B,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,YAAY;YAChC,OAAO,MAAM,KAAK,WAAW,EAC7B;YACA,IAAI,OAAO,GAAG,gDAAgD,CAAA;YAC9D,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI,EAAE;gBAC/B,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAA;gBAEtC,OAAO,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,CACxB,kBAAkB,CAAC,KAAK,CACtB,OAAO,EACP,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACf,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC;oBACjC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC;oBAC3B,CAAC,CAAC,GAAG,CACR,CACF,CAAA;gBACH,OAAO;oBACL,2JAA2J,CAAA;aAC9J;YAED,IACE,OAAO,CAAC,QAAQ;gBAChB,CAAC,OAAO,QAAQ,KAAK,WAAW;oBAC9B,QAAQ,CAAC,QAAQ,KAAK,WAAW;oBACjC,OAAO,CAAC,QAAQ,KAAK,KAAK,CAAC,EAC7B;gBACA,MAAM,IAAI,GACR,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAA;gBACjE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI;oBACvB,CAAC,CAAC,OAAO,CAAC,IAAI;oBACd,CAAC,CAAC,OAAO,QAAQ,KAAK,WAAW;wBACjC,CAAC,CAAC,QAAQ;wBACV,CAAC,CAAC,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAA;gBAE9B,IAAI,CAAC,kBAAkB,CACrB,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,sBAAsB,CAAC,WAAW,EAClC,aAAa,CAAC,OAAO,EACrB,OAAO,CAAC,gBAAgB,CACzB,CAAA;aACF;iBAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE;gBACrC,OAAO;oBACL,0GAA0G,CAAA;aAC7G;YAED,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAClB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;aACtB;SACF;QAED,IACE,KAAK,CAAC,WAAW,KAAK,YAAY;YAClC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,YAAY,EAChC;YACA,QAAQ,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,SAAS,EAAE,EAAE;gBAChE,IACE,CAAC,SAAS,CAAC,eAAe;oBAC1B,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,EACpC;oBACA,sBAAsB,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;iBACrD;YACH,CAAC,CAAC,CAAA;YACF,QAAQ,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,EAAE;gBAC5D,IAAI,CAAC,SAAS,CAAC,eAAe,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS;oBACpE,sBAAsB,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,CAAA;YACpD,CAAC,CAAC,CAAA;YAEF,IAAI,QAAQ,CAAA;YACZ,MAAM,SAAS,GAAG,GAAG,EAAE;gBACrB,sBAAsB,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YACtD,CAAC,CAAA;YAED,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,GAAG,EAAE;gBAC1C,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAA;gBAClC,QAAQ,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;YACrC,CAAC,CAAC,CAAA;SACH;aAAM,IACL,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,YAAY;YAChC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,SAAS,EAC7B;YACA,IACE,KAAK,CAAC,WAAW,KAAK,MAAM;gBAC5B,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,YAAY,KAAK,KAAK,CAAC,EACjD;gBACA,QAAQ,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,EAAE;oBAC3D,IAAI,CAAC,gCAAgC,GAAG,IAAI,CAAC,gCAAgC,CAAC,MAAM,CAClF,SAAS,CAAC,SAAS,CACpB,CAAA;gBACH,CAAC,CAAC,CAAA;aACH;YACD,QAAQ,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,SAAS,EAAE,EAAE;gBAChE,IACE,CAAC,SAAS,CAAC,eAAe;oBAC1B,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,EACpC;oBACA,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;oBACvC,IAAI,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE;wBAC/C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;4BACjB,IAAI,EAAE,OAAO;4BACb,IAAI,EAAE;gCACJ,GAAG,SAAS;gCACZ,GAAG,SAAS;6BACb;yBACF,CAAC,CAAA;qBACH;iBACF;YACH,CAAC,CAAC,CAAA;YACF,QAAQ,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,EAAE;gBAC5D,IACE,CAAC,SAAS,CAAC,eAAe;oBAC1B,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,EACpC;oBACA,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,EAAE,CAAA;oBAEnC,IAAI,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE;wBAC/C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;4BACjB,IAAI,EAAE,OAAO;4BACb,IAAI,EAAE;gCACJ,GAAG,SAAS;gCACZ,GAAG,SAAS;6BACb;yBACF,CAAC,CAAA;qBACH;iBACF;YACH,CAAC,CAAC,CAAA;SACH;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,YAAY,EAAE;YACpC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CACpC,cAAc,EACd,KAAK,CAAC,kBAAkB,EAAE,CACpB,CAAA;YAER,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAA;SACvD;aAAM;YACL,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;SACzC;IACH,CAAC;IAEO,oBAAoB,CAC1B,aAA6B,EAC7B,QAAsD,EACtD,OAAgB,EAChB,GAAY;QAEZ,MAAM,sBAAsB,GAAG,IAAI,cAAc,CAAC,cAAc,CAC9D,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAQ,EACnC;YACE,OAAO,EAAE,OAAO,IAAI,CAAC,GAAG;YACxB,GAAG;YACH,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;gBAChD,IAAI,IAAI,CAAC,sBAAsB,CAAC,EAAE;oBAChC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAQ,CAAA;iBAChC;gBAED,OAAO,IAAI,CAAA;YACb,CAAC;YACD,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;gBAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;gBAEzB,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE;oBACpB,OAAO,IAAI,CACT,QAAQ,EACR,IAAI,EACJ,sBAAsB,EACtB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAC3B,CAAA;iBACF;gBAED,IAAI,IAAI,CAAC,sBAAsB,CAAC,EAAE;oBAChC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAQ,CAAA;oBACxC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAA;oBAEtB,OAAO,OAAO,CACZ,QAAQ,EACR,IAAI,EACJ,sBAAsB,EACtB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAC3B,CAAA;iBACF;gBAED,OAAO,IAAI,CAAA;YACb,CAAC;YACD,QAAQ,EAAE,OAAO;gBACf,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;oBACd,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE;wBACtD,IAAI;wBACJ,KAAK;qBACN,CAAC,CAAA;gBACJ,CAAC;gBACH,CAAC,CAAC,SAAS;SACd,CACF,CAAA;QAED,OAAO,sBAAsB,CAAA;IAC/B,CAAC;IAEO,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe;QACnD,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAErC,aAAa,CAAC,GAAG,EAAE,CAAA;QAEnB,IAAI,KAAK,CAAC,WAAW,KAAK,YAAY,EAAE;YACtC,OAAQ;gBACN,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI;gBACvB,eAAe;gBACf,aAAa;gBACb,UAAU,EAAE,IAAI;gBAChB,eAAe,EAAE,GAAG,EAAE;oBACpB,OAAO,IAAI,CAAC,sBAAsB,CAAC,eAAe,EAAE,CAAA;gBACtD,CAAC;gBACD,iBAAiB,EAAE,GAAG,EAAE;oBACtB,OAAO,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,CAAA;gBACxD,CAAC;gBACD,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;aACV,CAAA;SACrC;QAED,MAAM,aAAa,GAAU,EAAE,CAAA;QAC/B,MAAM,SAAS,GAAG;YAChB,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI;YACvB,aAAa;YACb,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE;YACnC,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,CAAC;YACb,SAAS,EAAE,IAAI;YACf,eAAe;YACf,IAAI,EAAE,EAAE;YACR,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC5C,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAE,CAAC;YACvE,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC;YACxD,iBAAiB,EAAE,CAAC,GAAG,EAAE;gBACvB,IAAI,iBAAiB,GAAG,CAAC,CAAA;gBACzB,OAAO,GAAG,EAAE,CAAC,EAAE,iBAAiB,CAAA;YAClC,CAAC,CAAC,EAAE;YACJ,KAAK,EAAE,eAAe;gBACpB,CAAC,CAAC,eAAe,CAAC,KAAK;gBACvB,CAAC,CAAC,CAAC,OAAiB,EAAE,EAAE;oBACpB,OAAO,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;gBAClE,CAAC;YACL,eAAe,EAAE,eAAe;gBAC9B,CAAC,CAAC,eAAe,CAAC,eAAe;gBACjC,CAAC,CAAC,GAAG,EAAE;oBACH,MAAM,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAAC,eAAe,EAAE,CAAA;oBAElE,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;oBAEhC,OAAO,YAAY,CAAA;gBACrB,CAAC;YACL,iBAAiB,EAAE,GAAG,EAAE;gBACtB,OAAO,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,CAAA;YACxD,CAAC;YACD,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE;gBACd,OAAO,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;YAChD,CAAC;YACD,UAAU,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;gBAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;YACrC,CAAC;SACF,CAAA;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAEO,aAAa,CAAC,SAAS,EAAE,IAAI;QACnC,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE;gBACzD,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YACzE,CAAC,CAAC;YACF,SAAS;YACT,cAAc,EAAE,IAAI,CAAC,sBAAsB;YAC3C,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;YACnD,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1C,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YAClC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;YACxD,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;SACnD,CAAA;IACH,CAAC;IAEO,YAAY,CAClB,aAA6B,EAC7B,IAAc,EACd,aAAmB;QAEnB,MAAM,KAAK,GAAG,aAAa,IAAI,IAAI,CAAC,KAAK,CAAA;QACzC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAG,CAAA;QAEhC,IAAI,aAAa,CAAC,KAAK,EAAE;YACvB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;YAChE,WAAW,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;SACpE;QACD,IAAI,aAAa,CAAC,OAAO,EAAE;YACzB,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;YACzE,aAAa,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;SACrE;QACD,IAAI,aAAa,CAAC,OAAO,EAAE;YACzB,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;YACzE,aAAa,CAAC,YAAY,CAAC,GAAG,aAAa,CAAC,OAAO,CAAA;SACpD;IACH,CAAC;IAEO,UAAU,CAAC,KAAU,EAAE,IAA0B;QACvD,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,KAAK,CAAA;SACb;QACD,IAAI,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;YAClC,OAAO,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;SACxD;aAAM,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE;YAC/B,OAAO,MAAM,CAAC,MAAM,CAClB,EAAE,EACF,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAClC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;aAC7D,CAAC,CAAC,CACJ,CAAA;SACF;aAAM;YACL,OAAO,KAAK,CAAA;SACb;IACH,CAAC;IAEO,oBAAoB,CAAC,QAAkC;QAC7D,CAAC;QAAC,IAAY,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACzC,CAAC;IAEO,YAAY,CAAC,IAAI,EAAE,cAAc;QACvC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,cAAc,CAAA;QAC5C,MAAM,UAAU,GAAG,CAAC,KAAM,EAAE,cAAwC,EAAE,EAAE;YACtE,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;YAC1C,yEAAyE;YACzE,iCAAiC;YACjC,cAAc;gBACZ,cAAc,IAAI,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC;oBAC/C,CAAC,CAAC,cAAc;oBAChB,CAAC,CAAC,SAAS,CAAA;YAEf,IACE,KAAK,CAAC,WAAW,KAAK,YAAY;gBAClC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,QAAQ,EACjC;gBACA,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,CAAA;gBACpE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,YAAY,EAAE;oBACvD,GAAG,SAAS;oBACZ,KAAK;iBACN,CAAC,CAAA;gBAEF,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;oBAC7B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;wBACrC,MAAM,CACJ,IAAI,EACJ;4BACE,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,sBAAsB,CAAC;4BAC7D,KAAK;yBACN,EACD,CAAC,GAAG,EAAE,YAAY,EAAE,EAAE;4BACpB,SAAS,CAAC,SAAS,GAAG,KAAK,CAAA;4BAC3B,YAAY;gCACV,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,UAAU,EAAE;oCACrD,GAAG,YAAY,CAAC,SAAS;oCACzB,UAAU,EAAE,YAAY,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC;iCAClD,CAAC,CAAA;4BACJ,IAAI,GAAG;gCAAE,MAAM,CAAC,GAAG,CAAC,CAAA;iCACf;gCACH,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;6BAC5B;wBACH,CAAC,CACF,CAAA;oBACH,CAAC,CAAC,CAAA;iBACH;qBAAM;oBACL,MAAM,YAAY,GAAG,SAAS,CAAC,eAAe,EAAE,CAAA;oBAChD,IAAI,IAAI,CAAC,QAAQ,EAAE;wBACjB,YAAY,CAAC,cAAc,EAAE,CAAA;qBAC9B;oBACD,MAAM,WAAW,GAAG,MAAM,CACxB,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,YAAY,CAAC,EAC3C,KAAK,CACN,CAAA;oBAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;oBAEjE,OAAO,WAAW,CAAA;iBACnB;aACF;iBAAM;gBACL,MAAM,SAAS,GAAG;oBAChB,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC;oBACrD,UAAU,EAAE,CAAC;oBACb,IAAI,EAAE,QAAQ;iBACf,CAAA;gBACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,YAAY,EAAE;oBACvD,GAAG,SAAS;oBACZ,KAAK;iBACN,CAAC,CAAA;gBACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,cAAc,EAAE,SAAS,CAAC,CAAA;gBAErE,MAAM,YAAY,GAAG,SAAS,CAAC,eAAe,EAAE,CAAA;gBAChD,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACjB,YAAY,CAAC,cAAc,EAAE,CAAA;iBAC9B;gBACD,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,EAAE;oBACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,EAAE;wBACpD,GAAG,SAAS;wBACZ,SAAS,EAAE,CAAC,QAAQ,CAAC;qBACtB,CAAC,CAAA;gBACJ,CAAC,CAAC,CAAA;gBAEF,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,YAAY,CAAC,CAAA;gBACxD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;gBAE3D,IAAI;oBACF,IAAI,YAAY,CAAA;oBAChB,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,EAAE;wBACnC,IAAI,YAAY,EAAE;4BAChB,YAAY,CAAC,YAAY,CAAC,CAAA;yBAC3B;wBAED,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,SAAS,EAAE;4BACtC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAA;yBACpC;6BAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,YAAY,EAAE;4BAChD,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE;gCAC7B,YAAY,GAAG,IAAI,CAAA;gCACnB,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gCAEvC,IAAI,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE;oCAC/C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;wCACjB,IAAI,EAAE,OAAO;wCACb,IAAI,EAAE;4CACJ,GAAG,SAAS;4CACZ,GAAG,SAAS;4CACZ,SAAS,EAAE,SAAS,CAAC,SAAS;yCAC/B;qCACF,CAAC,CAAA;iCACH;4BACH,CAAC,CAAC,CAAA;yBACH;oBACH,CAAC,CAAC,CAAA;oBAEF,IAAI,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;oBAEzC,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;wBAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,aAAa,CAAC,SAAS,CAAC,cAAc,EACtC,SAAS,CACV,CAAA;wBACD,MAAM,GAAG,MAAM;6BACZ,IAAI,CAAC,CAAC,aAAa,EAAE,EAAE;4BACtB,SAAS,CAAC,SAAS,GAAG,KAAK,CAAA;4BAC3B,IAAI,CAAC,cAAc,EAAE;gCACnB,YAAY,CAAC,OAAO,EAAE,CAAA;6BACvB;4BACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,YAAY,EAAE;gCACvD,GAAG,SAAS;gCACZ,OAAO,EAAE,IAAI;gCACb,MAAM,EAAE,SAAS;6BAClB,CAAC,CAAA;4BACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,aAAa,CAAC,SAAS,CAAC,UAAU,EAClC,SAAS,CACV,CAAA;4BAED,OAAO,aAAa,CAAA;wBACtB,CAAC,CAAC;6BACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;4BACf,SAAS,CAAC,SAAS,GAAG,KAAK,CAAA;4BAC3B,IAAI,CAAC,cAAc,EAAE;gCACnB,YAAY,CAAC,OAAO,EAAE,CAAA;6BACvB;4BACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,YAAY,EAAE;gCACvD,GAAG,SAAS;gCACZ,OAAO,EAAE,IAAI;gCACb,MAAM,EAAE,SAAS;gCACjB,KAAK,EAAE,KAAK,CAAC,OAAO;6BACrB,CAAC,CAAA;4BACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,aAAa,CAAC,SAAS,CAAC,UAAU,EAClC,SAAS,CACV,CAAA;4BAED,MAAM,KAAK,CAAA;wBACb,CAAC,CAAC,CAAA;qBACL;yBAAM;wBACL,SAAS,CAAC,SAAS,GAAG,KAAK,CAAA;wBAC3B,IAAI,CAAC,cAAc,EAAE;4BACnB,YAAY,CAAC,OAAO,EAAE,CAAA;yBACvB;wBACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,YAAY,EAAE;4BACvD,GAAG,SAAS;4BACZ,OAAO,EAAE,KAAK;4BACd,MAAM,EAAE,SAAS;yBAClB,CAAC,CAAA;wBACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;qBAClE;oBAED,OAAO,MAAM,CAAA;iBACd;gBAAC,OAAO,GAAG,EAAE;oBACZ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,YAAY,EAAE;wBACvD,GAAG,SAAS;wBACZ,OAAO,EAAE,KAAK;wBACd,MAAM,EAAE,SAAS;wBACjB,KAAK,EAAE,GAAG,CAAC,OAAO;qBACnB,CAAC,CAAA;oBACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;oBACjE,MAAM,GAAG,CAAA;iBACV;aACF;QACH,CAAC,CAAA;QAED,OAAO,UAAU,CAAA;IACnB,CAAC;IAEO,YAAY,CAAC,OAAO,GAAG,EAAE,EAAE,SAAS;QAC1C,IAAI,KAAK,CAAC,WAAW,KAAK,YAAY,EAAE;YACtC,OAAO,OAAO,CAAA;SACf;QAED,OAAO,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE;YAC7C,IAAI,MAAM,CAAA;YACV,IAAI;gBACF,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,SAAS,EAAE;oBACtC,MAAM,IAAI,GAAG,IAAI,CAAC,IAA8B,CAAA;oBAChD,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;iBAC9C;qBAAM;oBACL,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE;wBACjD,GAAG,SAAS;wBACZ,GAAG,MAAM;wBACT,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,SAAS,EAAE,IAAI;wBACf,KAAK,EAAE,KAAK;qBACb,CAAC,CAAA;oBACF,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;iBAC9C;aACF;YAAC,OAAO,KAAK,EAAE;gBACd,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE;oBACjD,GAAG,SAAS;oBACZ,GAAG,MAAM;oBACT,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,SAAS,EAAE,KAAK;oBAChB,KAAK,EAAE,KAAK,CAAC,OAAO;iBACrB,CAAC,CAAA;gBACF,MAAM,KAAK,CAAA;aACZ;YAED,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;gBAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE;oBACjD,GAAG,SAAS;oBACZ,GAAG,MAAM;oBACT,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,KAAK;iBACb,CAAC,CAAA;gBAEF,OAAO,MAAM;qBACV,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE;oBACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE;wBACjD,GAAG,SAAS;wBACZ,GAAG,MAAM;wBACT,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,MAAM,EAAE,cAAc;wBACtB,SAAS,EAAE,KAAK;wBAChB,KAAK,EAAE,KAAK;qBACb,CAAC,CAAA;oBAEF,OAAO,cAAc,CAAA;gBACvB,CAAC,CAAC;qBACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;oBACf,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE;wBACjD,GAAG,SAAS;wBACZ,GAAG,MAAM;wBACT,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,SAAS,EAAE,KAAK;wBAChB,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC,OAAO;qBAC9B,CAAC,CAAA;oBACF,MAAM,KAAK,CAAA;gBACb,CAAC,CAAC,CAAA;aACL;YAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE;gBACjD,GAAG,SAAS;gBACZ,GAAG,MAAM;gBACT,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,MAAM,EAAE,MAAM;gBACd,SAAS,EAAE,KAAK;gBAChB,KAAK,EAAE,KAAK;aACb,CAAC,CAAA;YAEF,OAAO,MAAM,CAAA;QACf,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,kBAAkB,CACxB,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,WAAmC,OAAO;QAE1C,IAAI,KAAK,CAAC,WAAW,KAAK,YAAY;YAAE,OAAM;QAC9C,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QAC7C,QAAQ,CAAC,OAAO,CACd,IAAI,EACJ,CAAC,OAAwB,EAAE,EAAE;YAC3B,QAAQ,OAAO,CAAC,IAAI,EAAE;gBACpB,KAAK,SAAS,CAAC,CAAC;oBACd,QAAQ,CAAC,MAAM,EAAE,CAAA;oBACjB,MAAK;iBACN;gBACD,KAAK,eAAe,CAAC,CAAC;oBACpB,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI;yBAC7B,KAAK,CAAC,GAAG,CAAC;yBACV,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;oBACjD,OAAO,CAAC,IAAI,CAAC,OAAO;wBAClB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBAC1C,CAAC,CAAC,MAAM,EAAE,CAAA;oBACZ,MAAK;iBACN;gBACD,KAAK,UAAU,CAAC,CAAC;oBACf,MAAM,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC,eAAe,EAAE,CAAA;oBAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAA;oBACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAA;oBACpE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;oBACtB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;oBAE/D,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;oBAClB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;oBAChB,IAAI,CAAC,OAAO,EAAE,CAAA;oBACd,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;wBACjB,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE;4BACJ,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI;4BACvB,KAAK;yBACN;qBACF,CAAC,CAAA;oBACF,MAAK;iBACN;aACF;QACH,CAAC,CACF,CAAA;QACD,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,SAAS,EAAE;YAC1C,QAAQ,CAAC,EAAE,CACT,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,EAC7B,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE;gBACvB,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC;oBACnC,IAAI;iBACL,CAAC,CAAA;gBAEF,IAAI,SAAS,KAAK,aAAa,CAAC,SAAS,CAAC,SAAS,EAAE;oBACnD,+FAA+F;oBAC/F,uCAAuC;oBACvC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;wBAClC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI;6BACxB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;6BACrB,MAAM,CACL,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EACxB,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAClC,CAAA;wBACH,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE;4BACxB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;yBAChD;6BAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;4BAC/B,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gCACrB,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE;oCACvB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;iCAC9C;4BACH,CAAC,CAAC,CAAA;yBACH;oBACH,CAAC,CAAC,CAAA;iBACH;gBAED,iEAAiE;gBACjE,IAAI,SAAS,KAAK,aAAa,CAAC,SAAS,CAAC,aAAa,EAAE;oBACvD,IAAI,CAAC,WAAW,CAAC,MAAM,CACrB,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EACxB,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAClC,CAAA;iBACF;YACH,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAClC,CAAA;SACF;QACD,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE;gBACJ,KAAK,EAAE,IAAI,CAAC,sBAAsB,CAAC,KAAK;gBACxC,OAAO,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC;gBACtC,SAAS,EAAE,IAAI,CAAC,SAAS;aAC1B;SACF,CAAC,CAAA;QACF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAEO,QAAQ,CAAC,aAA6B;QAC5C,IAAI,KAAK,GAAG,EAAE,CAAA;QACd,IAAI,aAAa,CAAC,KAAK,EAAE;YACvB,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;SAChD;QAED,OAAO,KAAK,CAAA;IACd,CAAC;IAEO,UAAU,CAAC,UAAe,EAAE,EAAE,OAAiB,EAAE;QACvD,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;YAChD,IAAI,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,UAAU,EAAE;gBACvC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAC3B,OAAO,CAAC,IAAI,CAAC,CACP,CAAA;gBAER,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBAEhD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;oBACzB,CAAC,IAAI,CAAC,EAAE,MAAM;iBACf,CAAC,CAAA;aACH;YAED,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;gBACzB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aAC1D,CAAC,CAAA;QACJ,CAAC,EAAE,EAAE,CAAQ,CAAA;IACf,CAAC;IAED;;;MAGE;IACM,aAAa,CAAC,UAAe,EAAE,EAAE,OAAiB,EAAE;QAC1D,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACpC,IAAI,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,UAAU,EAAE;gBACvC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBAC9C,IAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE;oBACrC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;iBAClD;qBAAM;oBACL,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;wBACvC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;4BACd,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA;yBACf;wBAED,OAAO,IAAI,CAAC,GAAG,CAAC,CAAA;oBAClB,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;oBAChB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAQ,CAAA;oBAElE,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;iBACvD;aACF;iBAAM;gBACL,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;aACrD;QACH,CAAC,EAAE,EAAE,CAAQ,CAAA;IACf,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,CAAA;IACxD,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,sBAAsB,CAAC,eAAe,EAAE,CAAA;IACtD,CAAC;IAoED,WAAW,CAAC,aAA6B;QACvC,MAAM,eAAe,GAAG,KAAK,CAAC,kBAAkB,CAC9C,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAChC,aAAa,CAAC,KAAK,IAAI,EAAE,CAC1B,CAAA;QAED,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QACzC,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,OAAO,IAAI,EAAE,CAAA;QAE1C,MAAM,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAAC,eAAe,EAAE,CAAA;QAClE,iDAAiD;QACjD,SAAS,CAAC,YAAY,CAAC,KAAY,EAAE,eAAe,CAAC,CAAA;QAErD,oEAAoE;QACpE,oEAAoE;QACpE,cAAc;QACd,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YACzD,IAAI;gBACF,SAAS,CAAC,YAAY,CAAC,KAAY,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;aACjD;YAAC,OAAO,KAAK,EAAE;gBACd,qEAAqE;aACtE;QACH,CAAC,CAAC,CAAA;QAEF,YAAY,CAAC,KAAK,EAAE,CAAA;QACpB,YAAY,CAAC,OAAO,EAAE,CAAA;QAEtB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACjB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE;oBACJ,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,OAAO,EAAE,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC;iBACrD;aACF,CAAC,CAAA;SACH;QAED,OAAO,IAAI,CAAA;IACb,CAAC;CACF","sourcesContent":["import { EventEmitter } from 'betsy'\nimport isPlainObject from 'is-plain-obj'\nimport * as proxyStateTree from 'proxy-state-tree'\nimport { Derived, IS_DERIVED, IS_DERIVED_CONSTRUCTOR } from './derived'\nimport { Devtools, DevtoolsMessage } from './Devtools'\nimport * as internalTypes from './internalTypes'\nimport { proxifyEffects } from './proxyfyEffects'\nimport { rehydrate } from './rehydrate'\nimport { IConfiguration, IContext, IReaction } from './types'\nimport * as utils from './utils'\n\nconst hotReloadingCache = {}\n\nexport class Overmind<ThisConfig extends IConfiguration>\n implements IConfiguration {\n private proxyStateTreeInstance: proxyStateTree.ProxyStateTree<object>\n private actionReferences: { [path: string]: Function } = {}\n private nextExecutionId: number = 0\n private mode:\n | internalTypes.DefaultMode\n | internalTypes.TestMode\n | internalTypes.SSRMode\n\n private reydrateMutationsForHotReloading: proxyStateTree.IMutation[] = []\n private originalConfiguration\n private isStrict = false\n initialized: Promise<any>\n eventHub: EventEmitter<internalTypes.Events>\n devtools: Devtools\n actions: {\n [K in keyof ThisConfig['actions']]: internalTypes.ResolveAction<\n ThisConfig['actions'][K]\n >\n }\n\n state: ThisConfig['state']\n effects: ThisConfig['effects'] & {}\n delimiter: string\n constructor(\n configuration: ThisConfig,\n options: internalTypes.Options = {},\n mode:\n | internalTypes.DefaultMode\n | internalTypes.TestMode\n | internalTypes.SSRMode = {\n mode: utils.MODE_DEFAULT,\n } as internalTypes.DefaultMode\n ) {\n const name = options.name || 'OvermindApp'\n const devEnv = options.devEnv || 'development'\n const isNode =\n typeof process !== 'undefined' &&\n process.title &&\n process.title.includes('node')\n\n this.delimiter = options.delimiter || '.'\n this.isStrict = Boolean(options.strict)\n\n if (\n utils.ENVIRONMENT === devEnv &&\n mode.mode === utils.MODE_DEFAULT &&\n options.hotReloading !== false &&\n !isNode\n ) {\n if (hotReloadingCache[name]) {\n return hotReloadingCache[name].reconfigure(configuration)\n } else {\n hotReloadingCache[name] = this\n }\n }\n\n /*\n Set up an eventHub to trigger information from derived, computed and reactions\n */\n const eventHub =\n mode.mode === utils.MODE_SSR\n ? new utils.MockedEventEmitter()\n : new EventEmitter<internalTypes.Events>()\n\n /*\n Create the proxy state tree instance with the state and a wrapper to expose\n the eventHub\n */\n const proxyStateTreeInstance = this.createProxyStateTree(\n configuration,\n eventHub,\n mode.mode === utils.MODE_TEST || utils.ENVIRONMENT === devEnv,\n mode.mode === utils.MODE_SSR\n )\n this.originalConfiguration = configuration\n this.state = proxyStateTreeInstance.state\n this.effects = configuration.effects || {}\n this.proxyStateTreeInstance = proxyStateTreeInstance\n this.eventHub = eventHub as EventEmitter<internalTypes.Events>\n this.mode = mode\n\n /*\n Expose the created actions\n */\n this.actions = this.getActions(configuration.actions)\n\n if (mode.mode === utils.MODE_SSR) {\n return\n }\n\n if (\n utils.ENVIRONMENT === devEnv &&\n mode.mode === utils.MODE_DEFAULT &&\n typeof window !== 'undefined'\n ) {\n let warning = 'OVERMIND: You are running in DEVELOPMENT mode.'\n if (options.logProxies !== true) {\n const originalConsoleLog = console.log\n\n console.log = (...args) =>\n originalConsoleLog.apply(\n console,\n args.map((arg) =>\n arg && arg[proxyStateTree.IS_PROXY]\n ? arg[proxyStateTree.VALUE]\n : arg\n )\n )\n warning +=\n '\\n\\n - To improve debugging experience \"console.log\" will NOT log proxies from Overmind, but the actual value. Please see docs to turn off this behaviour'\n }\n\n if (\n options.devtools ||\n (typeof location !== 'undefined' &&\n location.hostname === 'localhost' &&\n options.devtools !== false)\n ) {\n const host =\n options.devtools === true ? 'localhost:3031' : options.devtools\n const name = options.name\n ? options.name\n : typeof document === 'undefined'\n ? 'NoName'\n : document.title || 'NoName'\n\n this.initializeDevtools(\n host,\n name,\n eventHub,\n proxyStateTreeInstance.sourceState,\n configuration.actions,\n options.devtoolsLogLevel\n )\n } else if (options.devtools !== false) {\n warning +=\n '\\n\\n - You are not running on localhost. You will have to manually define the devtools option to connect'\n }\n\n if (!utils.IS_TEST) {\n console.warn(warning)\n }\n }\n\n if (\n utils.ENVIRONMENT === 'production' &&\n mode.mode === utils.MODE_DEFAULT\n ) {\n eventHub.on(internalTypes.EventType.OPERATOR_ASYNC, (execution) => {\n if (\n !execution.parentExecution ||\n !execution.parentExecution.isRunning\n ) {\n proxyStateTreeInstance.getMutationTree().flush(true)\n }\n })\n eventHub.on(internalTypes.EventType.ACTION_END, (execution) => {\n if (!execution.parentExecution || !execution.parentExecution.isRunning)\n proxyStateTreeInstance.getMutationTree().flush()\n })\n\n let nextTick\n const flushTree = () => {\n proxyStateTreeInstance.getMutationTree().flush(true)\n }\n\n this.proxyStateTreeInstance.onMutation(() => {\n nextTick && clearTimeout(nextTick)\n nextTick = setTimeout(flushTree, 0)\n })\n } else if (\n mode.mode === utils.MODE_DEFAULT ||\n mode.mode === utils.MODE_TEST\n ) {\n if (\n utils.ENVIRONMENT === 'test' ||\n (this.devtools && options.hotReloading !== false)\n ) {\n eventHub.on(internalTypes.EventType.MUTATIONS, (execution) => {\n this.reydrateMutationsForHotReloading = this.reydrateMutationsForHotReloading.concat(\n execution.mutations\n )\n })\n }\n eventHub.on(internalTypes.EventType.OPERATOR_ASYNC, (execution) => {\n if (\n !execution.parentExecution ||\n !execution.parentExecution.isRunning\n ) {\n const flushData = execution.flush(true)\n if (this.devtools && flushData.mutations.length) {\n this.devtools.send({\n type: 'flush',\n data: {\n ...execution,\n ...flushData,\n },\n })\n }\n }\n })\n eventHub.on(internalTypes.EventType.ACTION_END, (execution) => {\n if (\n !execution.parentExecution ||\n !execution.parentExecution.isRunning\n ) {\n const flushData = execution.flush()\n\n if (this.devtools && flushData.mutations.length) {\n this.devtools.send({\n type: 'flush',\n data: {\n ...execution,\n ...flushData,\n },\n })\n }\n }\n })\n }\n\n if (mode.mode === utils.MODE_DEFAULT) {\n const onInitialize = this.createAction(\n 'onInitialize',\n utils.createOnInitialize()\n ) as any\n\n this.initialized = Promise.resolve(onInitialize(this))\n } else {\n this.initialized = Promise.resolve(null)\n }\n }\n\n private createProxyStateTree(\n configuration: IConfiguration,\n eventHub: EventEmitter<any> | utils.MockedEventEmitter,\n devmode: boolean,\n ssr: boolean\n ) {\n const proxyStateTreeInstance = new proxyStateTree.ProxyStateTree(\n this.getState(configuration) as any,\n {\n devmode: devmode && !ssr,\n ssr,\n delimiter: this.delimiter,\n onSetFunction: (tree, path, target, prop, func) => {\n if (func[IS_DERIVED_CONSTRUCTOR]) {\n return new Derived(func) as any\n }\n\n return func\n },\n onGetFunction: (tree, path, target, prop) => {\n const func = target[prop]\n\n if (func[IS_DERIVED]) {\n return func(\n eventHub,\n tree,\n proxyStateTreeInstance,\n path.split(this.delimiter)\n )\n }\n\n if (func[IS_DERIVED_CONSTRUCTOR]) {\n const derived = new Derived(func) as any\n target[prop] = derived\n\n return derived(\n eventHub,\n tree,\n proxyStateTreeInstance,\n path.split(this.delimiter)\n )\n }\n\n return func\n },\n onGetter: devmode\n ? (path, value) => {\n this.eventHub.emitAsync(internalTypes.EventType.GETTER, {\n path,\n value,\n })\n }\n : undefined,\n }\n )\n\n return proxyStateTreeInstance\n }\n\n private createExecution(name, action, parentExecution) {\n const namespacePath = name.split('.')\n\n namespacePath.pop()\n\n if (utils.ENVIRONMENT === 'production') {\n return ({\n [utils.EXECUTION]: true,\n parentExecution,\n namespacePath,\n actionName: name,\n getMutationTree: () => {\n return this.proxyStateTreeInstance.getMutationTree()\n },\n getTrackStateTree: () => {\n return this.proxyStateTreeInstance.getTrackStateTree()\n },\n emit: this.eventHub.emit.bind(this.eventHub),\n } as any) as internalTypes.Execution\n }\n\n const mutationTrees: any[] = []\n const execution = {\n [utils.EXECUTION]: true,\n namespacePath,\n actionId: name,\n executionId: this.nextExecutionId++,\n actionName: name,\n operatorId: 0,\n isRunning: true,\n parentExecution,\n path: [],\n emit: this.eventHub.emit.bind(this.eventHub),\n send: this.devtools ? this.devtools.send.bind(this.devtools) : () => {},\n trackEffects: this.trackEffects.bind(this, this.effects),\n getNextOperatorId: (() => {\n let currentOperatorId = 0\n return () => ++currentOperatorId\n })(),\n flush: parentExecution\n ? parentExecution.flush\n : (isAsync?: boolean) => {\n return this.proxyStateTreeInstance.flush(mutationTrees, isAsync)\n },\n getMutationTree: parentExecution\n ? parentExecution.getMutationTree\n : () => {\n const mutationTree = this.proxyStateTreeInstance.getMutationTree()\n\n mutationTrees.push(mutationTree)\n\n return mutationTree\n },\n getTrackStateTree: () => {\n return this.proxyStateTreeInstance.getTrackStateTree()\n },\n onFlush: (cb) => {\n return this.proxyStateTreeInstance.onFlush(cb)\n },\n scopeValue: (value, tree) => {\n return this.scopeValue(value, tree)\n },\n }\n\n return execution\n }\n\n private createContext(execution, tree) {\n return {\n state: tree.state,\n actions: utils.createActionsProxy(this.actions, (action) => {\n return (value) => action(value, execution.isRunning ? execution : null)\n }),\n execution,\n proxyStateTree: this.proxyStateTreeInstance,\n effects: this.trackEffects(this.effects, execution),\n addNamespace: this.addNamespace.bind(this),\n reaction: this.reaction.bind(this),\n addMutationListener: this.addMutationListener.bind(this),\n addFlushListener: this.addFlushListener.bind(this),\n }\n }\n\n private addNamespace(\n configuration: IConfiguration,\n path: string[],\n existingState?: any\n ) {\n const state = existingState || this.state\n const namespaceKey = path.pop()!\n\n if (configuration.state) {\n const stateTarget = path.reduce((aggr, key) => aggr[key], state)\n stateTarget[namespaceKey] = utils.processState(configuration.state)\n }\n if (configuration.actions) {\n const actionsTarget = path.reduce((aggr, key) => aggr[key], this.actions)\n actionsTarget[namespaceKey] = this.getActions(configuration.actions)\n }\n if (configuration.effects) {\n const effectsTarget = path.reduce((aggr, key) => aggr[key], this.effects)\n effectsTarget[namespaceKey] = configuration.effects\n }\n }\n\n private scopeValue(value: any, tree: proxyStateTree.TTree) {\n if (!value) {\n return value\n }\n if (value[proxyStateTree.IS_PROXY]) {\n return this.proxyStateTreeInstance.rescope(value, tree)\n } else if (isPlainObject(value)) {\n return Object.assign(\n {},\n ...Object.keys(value).map((key) => ({\n [key]: this.proxyStateTreeInstance.rescope(value[key], tree),\n }))\n )\n } else {\n return value\n }\n }\n\n private addExecutionMutation(mutation: proxyStateTree.IMutation) {\n ;(this as any).mutations.push(mutation)\n }\n\n private createAction(name, originalAction) {\n this.actionReferences[name] = originalAction\n const actionFunc = (value?, boundExecution?: internalTypes.Execution) => {\n const action = this.actionReferences[name]\n // Developer might unintentionally pass more arguments, so have to ensure\n // that it is an actual execution\n boundExecution =\n boundExecution && boundExecution[utils.EXECUTION]\n ? boundExecution\n : undefined\n\n if (\n utils.ENVIRONMENT === 'production' ||\n action[utils.IS_OPERATOR] ||\n this.mode.mode === utils.MODE_SSR\n ) {\n const execution = this.createExecution(name, action, boundExecution)\n this.eventHub.emit(internalTypes.EventType.ACTION_START, {\n ...execution,\n value,\n })\n\n if (action[utils.IS_OPERATOR]) {\n return new Promise((resolve, reject) => {\n action(\n null,\n {\n ...this.createContext(execution, this.proxyStateTreeInstance),\n value,\n },\n (err, finalContext) => {\n execution.isRunning = false\n finalContext &&\n this.eventHub.emit(internalTypes.EventType.ACTION_END, {\n ...finalContext.execution,\n operatorId: finalContext.execution.operatorId - 1,\n })\n if (err) reject(err)\n else {\n resolve(finalContext.value)\n }\n }\n )\n })\n } else {\n const mutationTree = execution.getMutationTree()\n if (this.isStrict) {\n mutationTree.blockMutations()\n }\n const returnValue = action(\n this.createContext(execution, mutationTree),\n value\n )\n\n this.eventHub.emit(internalTypes.EventType.ACTION_END, execution)\n\n return returnValue\n }\n } else {\n const execution = {\n ...this.createExecution(name, action, boundExecution),\n operatorId: 0,\n type: 'action',\n }\n this.eventHub.emit(internalTypes.EventType.ACTION_START, {\n ...execution,\n value,\n })\n this.eventHub.emit(internalTypes.EventType.OPERATOR_START, execution)\n\n const mutationTree = execution.getMutationTree()\n if (this.isStrict) {\n mutationTree.blockMutations()\n }\n mutationTree.onMutation((mutation) => {\n this.eventHub.emit(internalTypes.EventType.MUTATIONS, {\n ...execution,\n mutations: [mutation],\n })\n })\n\n const scopedValue = this.scopeValue(value, mutationTree)\n const context = this.createContext(execution, mutationTree)\n\n try {\n let pendingFlush\n mutationTree.onMutation((mutation) => {\n if (pendingFlush) {\n clearTimeout(pendingFlush)\n }\n\n if (this.mode.mode === utils.MODE_TEST) {\n this.addExecutionMutation(mutation)\n } else if (this.mode.mode === utils.MODE_DEFAULT) {\n pendingFlush = setTimeout(() => {\n pendingFlush = null\n const flushData = execution.flush(true)\n\n if (this.devtools && flushData.mutations.length) {\n this.devtools.send({\n type: 'flush',\n data: {\n ...execution,\n ...flushData,\n mutations: flushData.mutations,\n },\n })\n }\n })\n }\n })\n\n let result = action(context, scopedValue)\n\n if (utils.isPromise(result)) {\n this.eventHub.emit(\n internalTypes.EventType.OPERATOR_ASYNC,\n execution\n )\n result = result\n .then((promiseResult) => {\n execution.isRunning = false\n if (!boundExecution) {\n mutationTree.dispose()\n }\n this.eventHub.emit(internalTypes.EventType.OPERATOR_END, {\n ...execution,\n isAsync: true,\n result: undefined,\n })\n this.eventHub.emit(\n internalTypes.EventType.ACTION_END,\n execution\n )\n\n return promiseResult\n })\n .catch((error) => {\n execution.isRunning = false\n if (!boundExecution) {\n mutationTree.dispose()\n }\n this.eventHub.emit(internalTypes.EventType.OPERATOR_END, {\n ...execution,\n isAsync: true,\n result: undefined,\n error: error.message,\n })\n this.eventHub.emit(\n internalTypes.EventType.ACTION_END,\n execution\n )\n\n throw error\n })\n } else {\n execution.isRunning = false\n if (!boundExecution) {\n mutationTree.dispose()\n }\n this.eventHub.emit(internalTypes.EventType.OPERATOR_END, {\n ...execution,\n isAsync: false,\n result: undefined,\n })\n this.eventHub.emit(internalTypes.EventType.ACTION_END, execution)\n }\n\n return result\n } catch (err) {\n this.eventHub.emit(internalTypes.EventType.OPERATOR_END, {\n ...execution,\n isAsync: false,\n result: undefined,\n error: err.message,\n })\n this.eventHub.emit(internalTypes.EventType.ACTION_END, execution)\n throw err\n }\n }\n }\n\n return actionFunc\n }\n\n private trackEffects(effects = {}, execution) {\n if (utils.ENVIRONMENT === 'production') {\n return effects\n }\n\n return proxifyEffects(this.effects, (effect) => {\n let result\n try {\n if (this.mode.mode === utils.MODE_TEST) {\n const mode = this.mode as internalTypes.TestMode\n result = mode.options.effectsCallback(effect)\n } else {\n this.eventHub.emit(internalTypes.EventType.EFFECT, {\n ...execution,\n ...effect,\n args: effect.args,\n isPending: true,\n error: false,\n })\n result = effect.func.apply(this, effect.args)\n }\n } catch (error) {\n this.eventHub.emit(internalTypes.EventType.EFFECT, {\n ...execution,\n ...effect,\n args: effect.args,\n isPending: false,\n error: error.message,\n })\n throw error\n }\n\n if (utils.isPromise(result)) {\n this.eventHub.emit(internalTypes.EventType.EFFECT, {\n ...execution,\n ...effect,\n args: effect.args,\n isPending: true,\n error: false,\n })\n\n return result\n .then((promisedResult) => {\n this.eventHub.emit(internalTypes.EventType.EFFECT, {\n ...execution,\n ...effect,\n args: effect.args,\n result: promisedResult,\n isPending: false,\n error: false,\n })\n\n return promisedResult\n })\n .catch((error) => {\n this.eventHub.emit(internalTypes.EventType.EFFECT, {\n ...execution,\n ...effect,\n args: effect.args,\n isPending: false,\n error: error && error.message,\n })\n throw error\n })\n }\n\n this.eventHub.emit(internalTypes.EventType.EFFECT, {\n ...execution,\n ...effect,\n args: effect.args,\n result: result,\n isPending: false,\n error: false,\n })\n\n return result\n })\n }\n\n private initializeDevtools(\n host,\n name,\n eventHub,\n initialState,\n actions,\n logLevel: internalTypes.LogLevel = 'error'\n ) {\n if (utils.ENVIRONMENT === 'production') return\n const devtools = new Devtools(name, logLevel)\n devtools.connect(\n host,\n (message: DevtoolsMessage) => {\n switch (message.type) {\n case 'refresh': {\n location.reload()\n break\n }\n case 'executeAction': {\n const action = message.data.name\n .split('.')\n .reduce((aggr, key) => aggr[key], this.actions)\n message.data.payload\n ? action(JSON.parse(message.data.payload))\n : action()\n break\n }\n case 'mutation': {\n const tree = this.proxyStateTreeInstance.getMutationTree()\n const path = message.data.path.slice()\n const value = JSON.parse(`{ \"value\": ${message.data.value} }`).value\n const key = path.pop()\n const state = path.reduce((aggr, key) => aggr[key], tree.state)\n\n state[key] = value\n tree.flush(true)\n tree.dispose()\n this.devtools.send({\n type: 'state',\n data: {\n path: message.data.path,\n value,\n },\n })\n break\n }\n }\n }\n )\n for (const type in internalTypes.EventType) {\n eventHub.on(\n internalTypes.EventType[type],\n ((eventType) => (data) => {\n devtools.send({\n type: internalTypes.EventType[type],\n data,\n })\n\n if (eventType === internalTypes.EventType.MUTATIONS) {\n // We want to trigger property access when setting objects and arrays, as any derived set would\n // then trigger and update the devtools\n data.mutations.forEach((mutation) => {\n const value = mutation.path\n .split(this.delimiter)\n .reduce(\n (aggr, key) => aggr[key],\n this.proxyStateTreeInstance.state\n )\n if (isPlainObject(value)) {\n Object.keys(value).forEach((key) => value[key])\n } else if (Array.isArray(value)) {\n value.forEach((item) => {\n if (isPlainObject(item)) {\n Object.keys(item).forEach((key) => item[key])\n }\n })\n }\n })\n }\n\n // Access the derived which will trigger calculation and devtools\n if (eventType === internalTypes.EventType.DERIVED_DIRTY) {\n data.derivedPath.reduce(\n (aggr, key) => aggr[key],\n this.proxyStateTreeInstance.state\n )\n }\n })(internalTypes.EventType[type])\n )\n }\n devtools.send({\n type: 'init',\n data: {\n state: t