@memberjunction/integration-connectors 5.11.0 → 5.13.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/dist/HubSpotConnector.d.ts +38 -2
- package/dist/HubSpotConnector.d.ts.map +1 -1
- package/dist/HubSpotConnector.js +78 -18
- package/dist/HubSpotConnector.js.map +1 -1
- package/dist/RasaConnector.d.ts +133 -0
- package/dist/RasaConnector.d.ts.map +1 -0
- package/dist/RasaConnector.js +596 -0
- package/dist/RasaConnector.js.map +1 -0
- package/dist/WicketConnector.d.ts +240 -0
- package/dist/WicketConnector.d.ts.map +1 -0
- package/dist/WicketConnector.js +861 -0
- package/dist/WicketConnector.js.map +1 -0
- package/dist/YourMembershipConnector.d.ts +58 -12
- package/dist/YourMembershipConnector.d.ts.map +1 -1
- package/dist/YourMembershipConnector.js +135 -57
- package/dist/YourMembershipConnector.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WicketConnector.js","sourceRoot":"","sources":["../src/WicketConnector.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAiB,MAAM,sBAAsB,CAAC;AAE/D,OAAO,EACH,wBAAwB,EACxB,4BAA4B,GAkB/B,MAAM,oCAAoC,CAAC;AA0D5C,wEAAwE;AAExE,2DAA2D;AAC3D,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAEnC,6DAA6D;AAC7D,MAAM,WAAW,GAAG,CAAC,CAAC;AAEtB,2CAA2C;AAC3C,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAElC,kFAAkF;AAClF,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAEpC,gDAAgD;AAChD,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B;;;GAGG;AACH,MAAM,oBAAoB,GAA2B;IACjD,MAAM,EAAE,QAAQ;IAChB,aAAa,EAAE,eAAe;IAC9B,WAAW,EAAE,aAAa;IAC1B,MAAM,EAAE,QAAQ;IAChB,aAAa,EAAE,eAAe;IAC9B,kBAAkB,EAAE,oBAAoB;IACxC,wBAAwB,EAAE,0BAA0B;IACpD,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,aAAa;IAC1B,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;IACtB,KAAK,EAAE,OAAO;IACd,eAAe,EAAE,iBAAiB;IAClC,aAAa,EAAE,eAAe;IAC9B,aAAa,EAAE,QAAQ;IACvB,aAAa,EAAE,QAAQ;IACvB,gBAAgB,EAAE,WAAW;IAC7B,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE,QAAQ;IACpB,aAAa,EAAE,WAAW;CAC7B,CAAC;AAEF;;;GAGG;AACH,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;IAC/B,QAAQ;IACR,eAAe;IACf,aAAa;IACb,QAAQ;IACR,eAAe;IACf,oBAAoB;IACpB,0BAA0B;CAC7B,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;AAEnD,wEAAwE;AAExE;;;GAGG;AACH,SAAS,SAAS,CAAC,KAAa;IAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC1D,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED,4CAA4C;AAC5C,SAAS,eAAe,CAAC,KAAa;IAClC,OAAO,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC/F,CAAC;AAED;;;;;;GAMG;AACH,wFAAwF;AACxF,SAAS,oBAAoB,CAAC,WAA8B;IACxD,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;QACrB,uCAAuC;QACvC,OAAO,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;QACzB,OAAO,WAAW,WAAW,CAAC,UAAU,sBAAsB,CAAC;IACnE,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC,CAAC;AAC1G,CAAC;AAED,SAAS,iBAAiB,CAAC,WAA8B;IACrD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAEjD,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;IAC5C,MAAM,OAAO,GAA4B;QACrC,GAAG,EAAE,GAAG,GAAG,sBAAsB;QACjC,GAAG,EAAE,WAAW,CAAC,aAAa;QAC9B,GAAG,EAAE,MAAM;KACd,CAAC;IAEF,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,YAAY,CAAC;IAC9C,CAAC;IAED,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,MAAM,cAAc,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,GAAG,aAAa,IAAI,cAAc,EAAE,CAAC;IAE1D,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,SAAS,CAAC;SACxD,MAAM,CAAC,YAAY,CAAC;SACpB,MAAM,EAAE,CAAC;IAEd,OAAO,GAAG,YAAY,IAAI,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;AAC3D,CAAC;AAED,wEAAwE;AAExE;;;;;;;;;;;;;;;;GAgBG;AAEI,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,4BAA4B;IAA1D;;QAEH,6DAA6D;QACrD,oBAAe,GAAG,CAAC,CAAC;QAE5B,qEAAqE;QAC7D,eAAU,GAA6B,IAAI,CAAC;QAEpD,iDAAiD;QACzC,wBAAmB,GAAG,CAAC,CAAC;IA+2BpC,CAAC;IA72BG,oEAAoE;IAEpE,IAAoB,cAAc,KAAc,OAAO,IAAI,CAAC,CAAC,CAAC;IAC9D,IAAoB,cAAc,KAAc,OAAO,IAAI,CAAC,CAAC,CAAC;IAC9D,IAAoB,cAAc,KAAc,OAAO,IAAI,CAAC,CAAC,CAAC;IAC9D,IAAoB,cAAc,KAAc,OAAO,IAAI,CAAC,CAAC,CAAC;IAE9D,oEAAoE;IAE1D,KAAK,CAAC,YAAY,CACxB,kBAA8C,EAC9C,WAAsB;QAEtB,6DAA6D;QAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,mBAAmB,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC;YACzD,OAAO,IAAI,CAAC,UAAU,CAAC;QAC3B,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;QAChF,MAAM,KAAK,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;QAElD,MAAM,IAAI,GAAsB;YAC5B,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,WAAW;YACxB,OAAO,EAAE,OAAO;SACnB,CAAC;QAEF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,mBAAmB,GAAG,GAAG,GAAG,sBAAsB,CAAC;QACxD,OAAO,IAAI,CAAC;IAChB,CAAC;IAES,YAAY,CAAC,IAAqB;QACxC,OAAO;YACH,eAAe,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE;YACvC,QAAQ,EAAE,kBAAkB;YAC5B,cAAc,EAAE,0BAA0B;SAC7C,CAAC;IACN,CAAC;IAES,KAAK,CAAC,eAAe,CAC3B,KAAsB,EACtB,GAAW,EACX,MAAc,EACd,OAA+B,EAC/B,IAAc;QAEd,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAE7B,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;YACtD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YACzE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAElC,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAC5D,OAAO,CAAC,IAAI,CACR,4CAA4C,OAAO,KAAK;oBACxD,YAAY,OAAO,GAAG,CAAC,IAAI,WAAW,GAAG,CAC5C,CAAC;gBACF,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC1B,SAAS;YACb,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAC5D,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,mCAAmC,WAAW,aAAa,GAAG,EAAE,CAAC,CAAC;IACtF,CAAC;IAED;;;;;;;;;;;;;OAaG;IACO,iBAAiB,CACvB,OAAgB,EAChB,eAA8B;QAE9B,MAAM,IAAI,GAAG,OAAkC,CAAC;QAEhD,gEAAgE;QAChE,MAAM,OAAO,GAAG,eAAe,IAAI,MAAM,CAAC;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QAE3B,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QAErB,0DAA0D;QAC1D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAA+B,CAAC,CAAC,CAAC;QACxE,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAA4B,CAAC,CAAC,CAAC;IAClF,CAAC;IAED;;;;;;;OAOG;IACO,qBAAqB,CAC3B,OAAgB,EAChB,eAA+B,EAC/B,WAAmB,EACnB,cAAsB,EACtB,QAAgB;QAEhB,MAAM,IAAI,GAAG,OAAkC,CAAC;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAwC,CAAC;QACjE,MAAM,QAAQ,GAAG,IAAI,EAAE,CAAC,MAAM,CAAyE,CAAC;QAExG,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC;YACzB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC9B,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC;QACjF,MAAM,OAAO,GAAG,WAAW,GAAG,UAAU,CAAC;QAEzC,OAAO;YACH,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;YAC/C,YAAY,EAAE,QAAQ,CAAC,WAAW;SACrC,CAAC;IACN,CAAC;IAES,UAAU,CAAC,kBAA8C;QAC/D,qDAAqD;QACrD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QACnC,CAAC;QAED,0CAA0C;QAC1C,MAAM,UAAU,GAAG,kBAAkB,CAAC,GAAG,CAAC,eAAe,CAAkB,CAAC;QAC5E,IAAI,UAAU,EAAE,CAAC;YACb,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAA2B,CAAC;gBAChE,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACpD,IAAI,MAAM;oBAAE,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC;gBAC5D,IAAI,MAAM;oBAAE,OAAO,WAAW,MAAM,sBAAsB,CAAC;YAC/D,CAAC;YAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,qGAAqG,CAAC,CAAC;IAC3H,CAAC;IAED,oEAAoE;IAEpE;;;OAGG;IACgB,iBAAiB,CAChC,QAAgB,EAChB,GAA8B,EAC9B,IAAY,EACZ,OAAe,EACf,OAAgB;QAEhB,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACrD,MAAM,QAAQ,GAAG,GAAG,CAAC,eAAe,IAAI,iBAAiB,CAAC;QAC1D,OAAO,GAAG,QAAQ,GAAG,SAAS,gBAAgB,IAAI,eAAe,QAAQ,EAAE,CAAC;IAChF,CAAC;IAED,oEAAoE;IAEpE;;;OAGG;IACa,KAAK,CAAC,YAAY,CAAC,GAAiB;QAChD,4DAA4D;QAC5D,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC;YACrB,MAAM,aAAa,GAAG,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,eAAe,CAAkB,CAAC;YACnF,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAA4B,CAAC,CAAC,CAAC,EAAE,CAAC;YAEzF,0DAA0D;YAC1D,MAAM,uBAAuB,GAAG,MAAM,CAAC,kBAAkB,CAAuB,CAAC;YACjF,MAAM,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC,cAAc,CAAC;YAChD,+DAA+D;QACnE,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAE7C,2DAA2D;QAC3D,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,iBAAiB,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACxD,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,oEAAoE;IAEpE,yEAAyE;IAClE,KAAK,CAAC,cAAc,CACvB,kBAA8C,EAC9C,WAAqB;QAErB,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;YACtE,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;YACpD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CACvC,IAAI,EACJ,GAAG,OAAO,sBAAsB,EAChC,KAAK,EACL,OAAO,CACV,CAAC;YAEF,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;gBAClD,OAAO;oBACH,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,sCAAsC;oBAC/C,aAAa,EAAE,oBAAoB;iBACtC,CAAC;YACN,CAAC;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1D,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,uBAAuB,QAAQ,CAAC,MAAM,KAAK,WAAW,EAAE;aACpE,CAAC;QACN,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,sBAAsB,OAAO,EAAE,EAAE,CAAC;QACxE,CAAC;IACL,CAAC;IAED,oEAAoE;IAEpD,uBAAuB,CACnC,UAAkB,EAClB,WAAmB;QAEnB,QAAQ,UAAU,EAAE,CAAC;YACjB,KAAK,QAAQ;gBACT,OAAO,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACzC,KAAK,eAAe;gBAChB,OAAO,IAAI,CAAC,4BAA4B,EAAE,CAAC;YAC/C,KAAK,oBAAoB;gBACrB,OAAO,IAAI,CAAC,gCAAgC,EAAE,CAAC;YACnD,KAAK,aAAa;gBACd,OAAO,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAC7C;gBACI,OAAO,EAAE,CAAC;QAClB,CAAC;IACL,CAAC;IAED,oEAAoE;IAEpD,uBAAuB;QACnC,OAAO;YACH,iBAAiB,EAAE,QAAQ;YAC3B,cAAc,EAAE,EAAE;SACrB,CAAC;IACN,CAAC;IAED,oEAAoE;IAEpE;;;;;;;;;OASG;IACI,KAAK,CAAC,YAAY,CAAC,GAAwB;QAC9C,MAAM,kBAAkB,GAAG,GAAG,CAAC,kBAAgD,CAAC;QAChF,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAEtC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,GAAG,CAAC,WAAuB,CAAC,CAAC;QACtF,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;QAElF,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CACvC,IAAI,EAAE,GAAG,OAAO,GAAG,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CACtD,CAAC;YACF,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC;IACL,CAAC;IAED;;;;;;;;;;OAUG;IACI,KAAK,CAAC,YAAY,CAAC,GAAwB;QAC9C,MAAM,kBAAkB,GAAG,GAAG,CAAC,kBAAgD,CAAC;QAChF,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAEtC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,GAAG,CAAC,WAAuB,CAAC,CAAC;QACtF,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QAElG,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CACvC,IAAI,EAAE,GAAG,OAAO,GAAG,OAAO,IAAI,GAAG,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CACzE,CAAC;YACF,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACI,KAAK,CAAC,YAAY,CAAC,GAAwB;QAC9C,MAAM,kBAAkB,GAAG,GAAG,CAAC,kBAAgD,CAAC;QAChF,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QACtC,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;QAEvC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,GAAG,CAAC,WAAuB,CAAC,CAAC;QACtF,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAEtD,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CACvC,IAAI,EAAE,GAAG,OAAO,GAAG,OAAO,IAAI,GAAG,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,OAAO,CACpE,CAAC;YACF,OAAO;gBACH,OAAO,EAAE,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC;gBACrF,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,UAAU,EAAE,QAAQ,CAAC,MAAM;aAC9B,CAAC;QACN,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACI,KAAK,CAAC,SAAS,CAAC,GAAqB;QACxC,MAAM,kBAAkB,GAAG,GAAG,CAAC,kBAAgD,CAAC;QAChF,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;QAElC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,GAAG,CAAC,WAAuB,CAAC,CAAC;QACtF,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAEtD,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CACvC,IAAI,EAAE,GAAG,OAAO,GAAG,OAAO,IAAI,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,OAAO,CACjE,CAAC;YAEF,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;gBAAE,OAAO,IAAI,CAAC;YACzC,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG;gBAAE,OAAO,IAAI,CAAC;YAEjE,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC9D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAEtC,OAAO;gBACH,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,UAAU,EAAE,UAAU;gBACtB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;aACrB,CAAC;QACN,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IAED,oEAAoE;IAEpE;;;;;;;;;;;;;;;OAeG;IACI,KAAK,CAAC,aAAa,CAAC,GAAkB;QACzC,MAAM,kBAAkB,GAAG,GAAG,CAAC,kBAAgD,CAAC;QAChF,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;QAElC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CACX,gCAAgC,UAAU,KAAK;gBAC/C,uBAAuB,CAAC,GAAG,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC9D,CAAC;QACN,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,GAAG,CAAC,WAAuB,CAAC,CAAC;QACtF,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;QAEpD,MAAM,aAAa,GAAwB;YACvC,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,QAAQ,EAAE,GAAG,CAAC,QAAQ;SACzB,CAAC;QACF,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;QAE3D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CACvC,IAAI,EACJ,GAAG,OAAO,IAAI,UAAU,QAAQ,EAChC,MAAM,EACN,OAAO,EACP,SAAS,CACZ,CAAC;QAEF,OAAO,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC1D,CAAC;IAED,oEAAoE;IAE5D,sBAAsB;QAC1B,OAAO;YACH,EAAE,eAAe,EAAE,MAAM,EAAE,oBAAoB,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE;YACjF,EAAE,eAAe,EAAE,YAAY,EAAE,oBAAoB,EAAE,WAAW,EAAE;YACpE,EAAE,eAAe,EAAE,aAAa,EAAE,oBAAoB,EAAE,UAAU,EAAE;YACpE,EAAE,eAAe,EAAE,WAAW,EAAE,oBAAoB,EAAE,UAAU,EAAE;YAClE,EAAE,eAAe,EAAE,WAAW,EAAE,oBAAoB,EAAE,UAAU,EAAE;YAClE,EAAE,eAAe,EAAE,QAAQ,EAAE,oBAAoB,EAAE,QAAQ,EAAE;YAC7D,EAAE,eAAe,EAAE,YAAY,EAAE,oBAAoB,EAAE,WAAW,EAAE;YACpE,EAAE,eAAe,EAAE,UAAU,EAAE,oBAAoB,EAAE,UAAU,EAAE;YACjE,EAAE,eAAe,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE;SACrF,CAAC;IACN,CAAC;IAEO,4BAA4B;QAChC,OAAO;YACH,EAAE,eAAe,EAAE,MAAM,EAAE,oBAAoB,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE;YACjF,EAAE,eAAe,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,EAAE;YAC/D,EAAE,eAAe,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,eAAe,EAAE;YAC5E,EAAE,eAAe,EAAE,aAAa,EAAE,oBAAoB,EAAE,aAAa,EAAE;YACvE,EAAE,eAAe,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE;YACpF,EAAE,eAAe,EAAE,MAAM,EAAE,oBAAoB,EAAE,kBAAkB,EAAE;SACxE,CAAC;IACN,CAAC;IAEO,gCAAgC;QACpC,OAAO;YACH,EAAE,eAAe,EAAE,MAAM,EAAE,oBAAoB,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE;YACjF,EAAE,eAAe,EAAE,WAAW,EAAE,oBAAoB,EAAE,WAAW,EAAE;YACnE,EAAE,eAAe,EAAE,SAAS,EAAE,oBAAoB,EAAE,SAAS,EAAE;SAClE,CAAC;IACN,CAAC;IAEO,0BAA0B;QAC9B,OAAO;YACH,EAAE,eAAe,EAAE,MAAM,EAAE,oBAAoB,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE;YACjF,EAAE,eAAe,EAAE,MAAM,EAAE,oBAAoB,EAAE,gBAAgB,EAAE;SACtE,CAAC;IACN,CAAC;IAED,oEAAoE;IAEpE;;;OAGG;IACK,KAAK,CAAC,eAAe,CACzB,kBAA8C,EAC9C,WAAsB;QAEtB,MAAM,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,cAAc,CAAkB,CAAC;QAC7E,IAAI,YAAY,EAAE,CAAC;YACf,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;YAC7E,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC;QAC5B,CAAC;QAED,MAAM,UAAU,GAAG,kBAAkB,CAAC,GAAG,CAAC,eAAe,CAAkB,CAAC;QAC5E,IAAI,UAAU,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;YACnD,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC;QAC5B,CAAC;QAED,MAAM,IAAI,KAAK,CACX,kFAAkF;YAClF,uFAAuF,CAC1F,CAAC;IACN,CAAC;IAED,wDAAwD;IAChD,KAAK,CAAC,wBAAwB,CAAC,YAAoB,EAAE,WAAsB;QAC/E,MAAM,EAAE,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC1B,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,eAAe,CAAqB,iBAAiB,EAAE,WAAW,CAAC,CAAC;QAChG,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAE/C,OAAO,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACvD,CAAC;IAED,mGAAmG;IAC3F,mBAAmB,CAAC,IAAY;QACpC,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA2B,CAAC;YAC1D,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC;YACrF,MAAM,SAAS,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,MAAM,CAAC,eAAe,CAAC,IAAI,MAAM,CAAC,iBAAiB,CAAC,CAAC;YAClG,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC;YAC7F,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;YAEjF,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS;gBAAE,OAAO,IAAI,CAAC;YAC1C,kEAAkE;YAClE,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YAEpC,OAAO;gBACH,SAAS,EAAE,SAAS;gBACpB,aAAa,EAAE,SAAS;gBACxB,UAAU,EAAE,MAAM;gBAClB,MAAM,EAAE,MAAM;gBACd,YAAY,EAAE,MAAM,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,IAAI;aACzE,CAAC;QACN,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IAED,oEAAoE;IAEpE;;;;;;;;;;;;;OAaG;IACK,gBAAgB,CACpB,UAAkB,EAClB,UAAmC,EACnC,aAAuC,EACvC,UAAmB;QAEnB,MAAM,WAAW,GAAG,oBAAoB,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC;QAEnE,MAAM,IAAI,GAA4B;YAClC,IAAI,EAAE,WAAW;YACjB,UAAU,EAAE,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC;SACjD,CAAC;QAEF,IAAI,UAAU,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;QAC5B,CAAC;QAED,IAAI,aAAa,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzD,IAAI,CAAC,eAAe,CAAC,GAAG,aAAa,CAAC;QAC1C,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,CAAC;IACpB,CAAC;IAED,8EAA8E;IACtE,iBAAiB,CAAC,UAAmC;QACzD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;QACjF,MAAM,OAAO,GAA4B,EAAE,CAAC;QAE5C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACzB,CAAC;QACL,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,gEAAgE;IACxD,oBAAoB,CAAC,OAA4B;QACrD,MAAM,IAAI,GAA4B;YAClC,MAAM,EAAE,OAAO,CAAC,OAAO;YACvB,IAAI,EAAE;gBACF,MAAM,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC;gBACzB,IAAI,EAAE,OAAO,CAAC,QAAQ,IAAI,iBAAiB;aAC9C;SACJ,CAAC;QAEF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;QAChC,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,oEAAoE;IAEpE;;;;;;OAMG;IACK,oBAAoB,CAAC,MAA+B;QACxD,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,CAAwC,CAAC;QAC/E,MAAM,MAAM,GAA4B,EAAE,CAAC;QAE3C,iCAAiC;QACjC,IAAI,UAAU,EAAE,CAAC;YACb,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBACpD,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACxB,CAAC;QACL,CAAC;QAED,oBAAoB;QACpB,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAEhC,2CAA2C;QAC3C,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAE1C,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;OAGG;IACK,oBAAoB,CACxB,MAA+B,EAC/B,MAA+B;QAE/B,MAAM,aAAa,GAAG,MAAM,CAAC,eAAe,CAAwC,CAAC;QACrF,IAAI,CAAC,aAAa;YAAE,OAAO;QAE3B,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YAC7D,MAAM,GAAG,GAAG,OAA8C,CAAC;YAC3D,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAE,SAAS;YAE7B,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;YACzB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtB,kCAAkC;gBAClC,MAAM,CAAC,GAAG,OAAO,MAAM,CAAC,GAAI,IAAkC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACrF,CAAC;iBAAM,CAAC;gBACJ,iCAAiC;gBACjC,MAAM,SAAS,GAAG,IAA+B,CAAC;gBAClD,MAAM,CAAC,GAAG,OAAO,KAAK,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YAC9C,CAAC;QACL,CAAC;IACL,CAAC;IAED,gEAAgE;IACxD,iBAAiB,CAAC,QAAsB,EAAE,SAAiB;QAC/D,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC;QAEhE,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1D,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,UAAU,SAAS,uBAAuB,QAAQ,CAAC,MAAM,KAAK,WAAW,EAAE;gBACzF,UAAU,EAAE,QAAQ,CAAC,MAAM;aAC9B,CAAC;QACN,CAAC;QAED,0DAA0D;QAC1D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAA+B,CAAC;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAwC,CAAC;QACjE,MAAM,UAAU,GAAG,IAAI,EAAE,CAAC,IAAI,CAAuB,CAAC;QAEtD,OAAO;YACH,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,UAAU;YACtB,UAAU,EAAE,QAAQ,CAAC,MAAM;SAC9B,CAAC;IACN,CAAC;IAED,0DAA0D;IAClD,mBAAmB,CAAC,QAAsB,EAAE,UAAkB;QAClE,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;YAClD,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1D,MAAM,IAAI,KAAK,CAAC,oCAAoC,QAAQ,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC,CAAC;QAC3F,CAAC;QAED,MAAM,IAAI,GAAG,QAAQ,CAAC,IAA+B,CAAC;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAwC,CAAC;QACjE,MAAM,QAAQ,GAAG,IAAI,EAAE,CAAC,MAAM,CAAyE,CAAC;QAExG,MAAM,UAAU,GAAG,QAAQ,EAAE,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;QAC3D,MAAM,WAAW,GAAG,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,QAAQ,EAAE,IAAI,IAAI,iBAAiB,CAAC;QACrD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC;QAEpD,OAAO;YACH,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACvB,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACnC,UAAU,EAAE,UAAU;gBACtB,MAAM,EAAE,CAAC;aACZ,CAAC,CAAC;YACH,UAAU,EAAE,UAAU;YACtB,OAAO,EAAE,WAAW,GAAG,UAAU;SACpC,CAAC;IACN,CAAC;IAED,oEAAoE;IAEpE,8DAA8D;IACtD,oBAAoB,CAAC,UAAkB;QAC3C,IAAI,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CACX,wCAAwC,UAAU,KAAK;gBACvD,gDAAgD,CACnD,CAAC;QACN,CAAC;IACL,CAAC;IAED,+DAA+D;IACvD,qBAAqB,CAAC,UAAkB;QAC5C,+DAA+D;QAC/D,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC;QAC/D,IAAI,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,4CAA4C,UAAU,IAAI,CAAC,CAAC;QAChF,CAAC;IACL,CAAC;IAED,oEAAoE;IAEpE;;;OAGG;IACK,oBAAoB,CAAC,UAAkB;QAC3C,2CAA2C;QAC3C,IAAI,UAAU,KAAK,eAAe;YAAE,OAAO,SAAS,CAAC;QACrD,IAAI,UAAU,KAAK,eAAe;YAAE,OAAO,SAAS,CAAC;QACrD,IAAI,UAAU,KAAK,kBAAkB;YAAE,OAAO,SAAS,CAAC;QACxD,IAAI,UAAU,KAAK,YAAY;YAAE,OAAO,gBAAgB,CAAC;QACzD,IAAI,UAAU,KAAK,YAAY;YAAE,OAAO,gBAAgB,CAAC;QACzD,IAAI,UAAU,KAAK,eAAe;YAAE,OAAO,gBAAgB,CAAC;QAE5D,sEAAsE;QACtE,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;YACnF,OAAO,IAAI,UAAU,EAAE,CAAC;QAC5B,CAAC;QAED,oBAAoB;QACpB,OAAO,IAAI,UAAU,EAAE,CAAC;IAC5B,CAAC;IAED,oEAAoE;IAEpE,4EAA4E;IACpE,KAAK,CAAC,eAAe;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC;QAClD,IAAI,OAAO,GAAG,uBAAuB,EAAE,CAAC;YACpC,MAAM,IAAI,CAAC,KAAK,CAAC,uBAAuB,GAAG,OAAO,CAAC,CAAC;QACxD,CAAC;IACL,CAAC;IAED,iEAAiE;IACzD,KAAK,CAAC,gBAAgB,CAC1B,GAAW,EACX,MAAc,EACd,OAA+B,EAC/B,IAAc;QAEd,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,kBAAkB,CAAC,CAAC;QAE3E,MAAM,YAAY,GAAgB;YAC9B,MAAM;YACN,OAAO;YACP,MAAM,EAAE,UAAU,CAAC,MAAM;SAC5B,CAAC;QAEF,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,KAAK,CAAC,EAAE,CAAC;YACxE,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,CAAC;YACD,OAAO,MAAM,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBACpD,MAAM,IAAI,KAAK,CAAC,sCAAsC,kBAAkB,GAAG,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC;YAChG,CAAC;YACD,MAAM,GAAG,CAAC;QACd,CAAC;gBAAS,CAAC;YACP,YAAY,CAAC,SAAS,CAAC,CAAC;QAC5B,CAAC;IACL,CAAC;IAED,mEAAmE;IAC3D,KAAK,CAAC,iBAAiB,CAAC,QAAkB;QAC9C,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC/D,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,OAAO,QAAQ,CAAC,IAAI,EAAsB,CAAC;QAC/C,CAAC;QACD,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,6EAA6E;IACrE,mBAAmB,CAAC,QAAkB,EAAE,OAAe;QAC3D,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACvD,IAAI,UAAU,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YACxC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;gBAAE,OAAO,MAAM,GAAG,IAAI,CAAC;QAC3D,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC;IAED,mEAAmE;IAC3D,iBAAiB,CAAC,QAAkB,EAAE,IAAa;QACvD,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IACrE,CAAC;IAED,wEAAwE;IAChE,iBAAiB,CAAC,IAAa;QACnC,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED,qDAAqD;IAC7C,cAAc,CAAC,GAAY;QAC/B,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;IACpE,CAAC;IAED,kFAAkF;IAC1E,KAAK,CAAC,EAAU;QACpB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;CACJ,CAAA;AAx3BY,eAAe;IAD3B,aAAa,CAAC,wBAAwB,EAAE,iBAAiB,CAAC;GAC9C,eAAe,CAw3B3B"}
|
|
@@ -10,6 +10,18 @@ export interface YMConnectionConfig {
|
|
|
10
10
|
APIKey: string;
|
|
11
11
|
/** YM API password (used as Password for session auth) */
|
|
12
12
|
APIPassword: string;
|
|
13
|
+
/** Maximum retries for rate-limited or failed requests. Default: 5 */
|
|
14
|
+
MaxRetries?: number;
|
|
15
|
+
/** HTTP request timeout in milliseconds. Default: 30000 */
|
|
16
|
+
RequestTimeoutMs?: number;
|
|
17
|
+
/** Minimum milliseconds between API requests to avoid rate limiting. Default: 600 */
|
|
18
|
+
MinRequestIntervalMs?: number;
|
|
19
|
+
/** Number of members to enrich per batch before writing to DB. Default: 500 */
|
|
20
|
+
EnrichBatchSize?: number;
|
|
21
|
+
/** JSON parsing timeout in milliseconds. Default: 30000 */
|
|
22
|
+
JsonTimeoutMs?: number;
|
|
23
|
+
/** Detail enrichment timeout per record in milliseconds. Default: 45000 */
|
|
24
|
+
EnrichTimeoutMs?: number;
|
|
13
25
|
}
|
|
14
26
|
/**
|
|
15
27
|
* Connector for the YourMembership (YM) AMS REST API.
|
|
@@ -22,19 +34,42 @@ export interface YMConnectionConfig {
|
|
|
22
34
|
* 2. Receive SessionId
|
|
23
35
|
* 3. Pass SessionId as X-SS-ID header on all data requests
|
|
24
36
|
*
|
|
25
|
-
* Configuration JSON
|
|
37
|
+
* Configuration JSON (required + optional overrides):
|
|
38
|
+
* {
|
|
39
|
+
* "ClientID": "25363",
|
|
40
|
+
* "APIKey": "...",
|
|
41
|
+
* "APIPassword": "...",
|
|
42
|
+
* "MaxRetries": 5, // optional, default: 5
|
|
43
|
+
* "RequestTimeoutMs": 30000, // optional, default: 30000
|
|
44
|
+
* "MinRequestIntervalMs": 600, // optional, default: 600
|
|
45
|
+
* "EnrichBatchSize": 500, // optional, default: 500
|
|
46
|
+
* "JsonTimeoutMs": 30000, // optional, default: 30000
|
|
47
|
+
* "EnrichTimeoutMs": 45000 // optional, default: 45000
|
|
48
|
+
* }
|
|
26
49
|
*/
|
|
27
50
|
export declare class YourMembershipConnector extends BaseRESTIntegrationConnector {
|
|
28
51
|
/** Session cache keyed by ClientID */
|
|
29
52
|
private sessionCache;
|
|
30
53
|
/** Timestamp of the last API request, used for throttling */
|
|
31
54
|
private lastRequestTime;
|
|
32
|
-
|
|
55
|
+
/** Resolved config (populated after first Authenticate call) */
|
|
56
|
+
private _config;
|
|
57
|
+
/** Current adaptive request interval — increases on 429, recovers toward resolved MIN */
|
|
58
|
+
private currentRequestIntervalMs;
|
|
59
|
+
private get effectiveMaxRetries();
|
|
60
|
+
private get effectiveRequestTimeoutMs();
|
|
61
|
+
private get effectiveMinRequestIntervalMs();
|
|
62
|
+
private get effectiveEnrichBatchSize();
|
|
63
|
+
private get effectiveJsonTimeoutMs();
|
|
64
|
+
private get effectiveEnrichTimeoutMs();
|
|
65
|
+
/** Cache of the filtered member list pending enrichment, shared across batch calls */
|
|
66
|
+
private memberFetchCache;
|
|
67
|
+
protected Authenticate(companyIntegration: MJCompanyIntegrationEntity, contextUser: UserInfo): Promise<RESTAuthContext>;
|
|
33
68
|
protected BuildHeaders(auth: RESTAuthContext): Record<string, string>;
|
|
34
69
|
protected MakeHTTPRequest(auth: RESTAuthContext, url: string, method: string, headers: Record<string, string>, _body?: unknown): Promise<RESTResponse>;
|
|
35
70
|
protected NormalizeResponse(rawBody: unknown, responseDataKey: string | null): Record<string, unknown>[];
|
|
36
71
|
protected ExtractPaginationInfo(rawBody: unknown, paginationType: PaginationType, currentPage: number, currentOffset: number, pageSize: number): PaginationState;
|
|
37
|
-
protected GetBaseURL(companyIntegration: MJCompanyIntegrationEntity): string;
|
|
72
|
+
protected GetBaseURL(companyIntegration: MJCompanyIntegrationEntity, auth: RESTAuthContext): string;
|
|
38
73
|
/**
|
|
39
74
|
* Overrides base pagination URL building to use YM's expected parameter names:
|
|
40
75
|
* - PageNumber type: `PageNumber` / `PageSize` (not `page` / `pageSize`)
|
|
@@ -45,20 +80,26 @@ export declare class YourMembershipConnector extends BaseRESTIntegrationConnecto
|
|
|
45
80
|
/**
|
|
46
81
|
* Overrides base FetchChanges to handle YM-specific edge cases:
|
|
47
82
|
* - Groups/GroupTypes: nested GroupTypeList response needs custom flattening
|
|
48
|
-
* - Members: client-side watermark filtering +
|
|
83
|
+
* - Members: client-side watermark filtering + batched detail enrichment
|
|
49
84
|
*
|
|
50
85
|
* The MemberList API returns all members every time (no server-side date filter),
|
|
51
|
-
* but each record includes a `LastUpdated` field. We pull the full list,
|
|
52
|
-
* to only records changed since the watermark,
|
|
53
|
-
*
|
|
86
|
+
* but each record includes a `LastUpdated` field. We pull the full list once,
|
|
87
|
+
* filter to only records changed since the watermark, cache that filtered list,
|
|
88
|
+
* and enrich + return ENRICH_BATCH_SIZE records per FetchChanges call so the
|
|
89
|
+
* engine writes each batch to the database before moving to the next.
|
|
54
90
|
*/
|
|
55
91
|
FetchChanges(ctx: FetchContext): Promise<FetchBatchResult>;
|
|
56
92
|
/**
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
93
|
+
* Fetches and enriches members in batches of ENRICH_BATCH_SIZE.
|
|
94
|
+
*
|
|
95
|
+
* On the first call (CurrentOffset = 0 or undefined), fetches the full member
|
|
96
|
+
* list via the base class, filters by watermark, and caches the result.
|
|
97
|
+
* On subsequent calls, uses the cached list and enriches the next slice.
|
|
98
|
+
* Returns HasMore=true until all records are enriched.
|
|
99
|
+
* Only sets NewWatermarkValue on the final batch so the watermark is only
|
|
100
|
+
* updated once all records have been written to the database.
|
|
60
101
|
*/
|
|
61
|
-
private
|
|
102
|
+
private FetchMemberBatch;
|
|
62
103
|
/**
|
|
63
104
|
* Filters records by comparing a date field against a watermark timestamp.
|
|
64
105
|
* Returns only records where the date field is newer than the watermark,
|
|
@@ -82,9 +123,14 @@ export declare class YourMembershipConnector extends BaseRESTIntegrationConnecto
|
|
|
82
123
|
/** Flattens nested GroupTypeList → Groups into flat group records. */
|
|
83
124
|
private FlattenGroupRecords;
|
|
84
125
|
/**
|
|
85
|
-
* Enriches
|
|
126
|
+
* Enriches a slice of member records with full profile data from the detail endpoint.
|
|
86
127
|
* The list endpoint returns sparse data (name, email); the detail endpoint
|
|
87
128
|
* returns full address, phone, custom fields, etc.
|
|
129
|
+
*
|
|
130
|
+
* @param ctx - Fetch context for auth
|
|
131
|
+
* @param records - The slice of records to enrich
|
|
132
|
+
* @param batchOffset - Starting index of this slice within the overall set (for progress logging)
|
|
133
|
+
* @param overallTotal - Total number of records being enriched across all batches (for progress logging)
|
|
88
134
|
*/
|
|
89
135
|
private EnrichMembersWithDetails;
|
|
90
136
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YourMembershipConnector.d.ts","sourceRoot":"","sources":["../src/YourMembershipConnector.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,0BAA0B,EAAsB,MAAM,+BAA+B,CAAC;AACpG,OAAO,EAEH,4BAA4B,EAC5B,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EAErB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAChC,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAI/E,iFAAiF;AACjF,MAAM,WAAW,kBAAkB;IAC/B,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,WAAW,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"YourMembershipConnector.d.ts","sourceRoot":"","sources":["../src/YourMembershipConnector.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,9 @@ const MAX_RETRIES = 5;
|
|
|
16
16
|
/** HTTP request timeout in milliseconds */
|
|
17
17
|
const REQUEST_TIMEOUT_MS = 30000;
|
|
18
18
|
/** Minimum milliseconds between API requests to avoid rate limiting */
|
|
19
|
-
const MIN_REQUEST_INTERVAL_MS =
|
|
19
|
+
const MIN_REQUEST_INTERVAL_MS = 600;
|
|
20
|
+
/** Number of members to enrich per batch before writing to DB */
|
|
21
|
+
const ENRICH_BATCH_SIZE = 500;
|
|
20
22
|
/** JSON parsing timeout in milliseconds */
|
|
21
23
|
const JSON_TIMEOUT_MS = 30000;
|
|
22
24
|
/** Detail enrichment timeout per record in milliseconds */
|
|
@@ -38,7 +40,18 @@ const METADATA_KEYS = new Set([
|
|
|
38
40
|
* 2. Receive SessionId
|
|
39
41
|
* 3. Pass SessionId as X-SS-ID header on all data requests
|
|
40
42
|
*
|
|
41
|
-
* Configuration JSON
|
|
43
|
+
* Configuration JSON (required + optional overrides):
|
|
44
|
+
* {
|
|
45
|
+
* "ClientID": "25363",
|
|
46
|
+
* "APIKey": "...",
|
|
47
|
+
* "APIPassword": "...",
|
|
48
|
+
* "MaxRetries": 5, // optional, default: 5
|
|
49
|
+
* "RequestTimeoutMs": 30000, // optional, default: 30000
|
|
50
|
+
* "MinRequestIntervalMs": 600, // optional, default: 600
|
|
51
|
+
* "EnrichBatchSize": 500, // optional, default: 500
|
|
52
|
+
* "JsonTimeoutMs": 30000, // optional, default: 30000
|
|
53
|
+
* "EnrichTimeoutMs": 45000 // optional, default: 45000
|
|
54
|
+
* }
|
|
42
55
|
*/
|
|
43
56
|
let YourMembershipConnector = class YourMembershipConnector extends BaseRESTIntegrationConnector {
|
|
44
57
|
constructor() {
|
|
@@ -47,11 +60,28 @@ let YourMembershipConnector = class YourMembershipConnector extends BaseRESTInte
|
|
|
47
60
|
this.sessionCache = new Map();
|
|
48
61
|
/** Timestamp of the last API request, used for throttling */
|
|
49
62
|
this.lastRequestTime = 0;
|
|
50
|
-
|
|
63
|
+
/** Resolved config (populated after first Authenticate call) */
|
|
64
|
+
this._config = null;
|
|
65
|
+
/** Current adaptive request interval — increases on 429, recovers toward resolved MIN */
|
|
66
|
+
this.currentRequestIntervalMs = MIN_REQUEST_INTERVAL_MS;
|
|
67
|
+
/** Cache of the filtered member list pending enrichment, shared across batch calls */
|
|
68
|
+
this.memberFetchCache = null;
|
|
69
|
+
}
|
|
70
|
+
// ── Per-instance config accessors (fall back to module-level defaults) ──
|
|
71
|
+
get effectiveMaxRetries() { return this._config?.MaxRetries ?? MAX_RETRIES; }
|
|
72
|
+
get effectiveRequestTimeoutMs() { return this._config?.RequestTimeoutMs ?? REQUEST_TIMEOUT_MS; }
|
|
73
|
+
get effectiveMinRequestIntervalMs() { return this._config?.MinRequestIntervalMs ?? MIN_REQUEST_INTERVAL_MS; }
|
|
74
|
+
get effectiveEnrichBatchSize() { return this._config?.EnrichBatchSize ?? ENRICH_BATCH_SIZE; }
|
|
75
|
+
get effectiveJsonTimeoutMs() { return this._config?.JsonTimeoutMs ?? JSON_TIMEOUT_MS; }
|
|
76
|
+
get effectiveEnrichTimeoutMs() { return this._config?.EnrichTimeoutMs ?? ENRICH_TIMEOUT_MS; }
|
|
51
77
|
// ─── Abstract method implementations (BaseRESTIntegrationConnector) ──
|
|
52
|
-
async Authenticate(companyIntegration) {
|
|
53
|
-
|
|
78
|
+
async Authenticate(companyIntegration, contextUser) {
|
|
79
|
+
console.log(`[YM] Authenticating...`);
|
|
80
|
+
const config = await this.ParseConfig(companyIntegration, contextUser);
|
|
81
|
+
this._config = config;
|
|
82
|
+
this.currentRequestIntervalMs = this.effectiveMinRequestIntervalMs;
|
|
54
83
|
const sessionId = await this.GetSession(config);
|
|
84
|
+
console.log(`[YM] Authenticated, sessionId length: ${sessionId.length}`);
|
|
55
85
|
const auth = { SessionID: sessionId, Config: config };
|
|
56
86
|
return auth;
|
|
57
87
|
}
|
|
@@ -61,19 +91,20 @@ let YourMembershipConnector = class YourMembershipConnector extends BaseRESTInte
|
|
|
61
91
|
async MakeHTTPRequest(auth, url, method, headers, _body) {
|
|
62
92
|
const ymAuth = auth;
|
|
63
93
|
const currentHeaders = { ...headers };
|
|
64
|
-
// Throttle: ensure minimum interval between requests
|
|
94
|
+
// Throttle: ensure adaptive minimum interval between requests
|
|
65
95
|
const elapsed = Date.now() - this.lastRequestTime;
|
|
66
|
-
if (elapsed <
|
|
67
|
-
await this.Sleep(
|
|
96
|
+
if (elapsed < this.currentRequestIntervalMs) {
|
|
97
|
+
await this.Sleep(this.currentRequestIntervalMs - elapsed);
|
|
68
98
|
}
|
|
69
|
-
|
|
99
|
+
const maxRetries = this.effectiveMaxRetries;
|
|
100
|
+
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
70
101
|
let response;
|
|
71
102
|
try {
|
|
72
103
|
response = await this.FetchWithTimeout(url, method, currentHeaders);
|
|
73
104
|
}
|
|
74
105
|
catch (err) {
|
|
75
106
|
if (this.IsTimeoutError(err)) {
|
|
76
|
-
console.warn(`YM timeout on ${url}, re-authenticating (attempt ${attempt + 1}/${
|
|
107
|
+
console.warn(`YM timeout on ${url}, re-authenticating (attempt ${attempt + 1}/${maxRetries})`);
|
|
77
108
|
await this.RefreshSession(ymAuth, currentHeaders);
|
|
78
109
|
continue;
|
|
79
110
|
}
|
|
@@ -85,15 +116,21 @@ let YourMembershipConnector = class YourMembershipConnector extends BaseRESTInte
|
|
|
85
116
|
}
|
|
86
117
|
if (response.status === 429) {
|
|
87
118
|
const delayMs = this.CalculateRetryDelay(response, attempt);
|
|
88
|
-
|
|
119
|
+
this.currentRequestIntervalMs = Math.min(this.currentRequestIntervalMs * 2, 10000);
|
|
120
|
+
console.warn(`YM rate limited (429), retrying in ${delayMs}ms (attempt ${attempt + 1}/${maxRetries}). Interval adjusted to ${this.currentRequestIntervalMs}ms`);
|
|
89
121
|
await this.Sleep(delayMs);
|
|
90
122
|
continue;
|
|
91
123
|
}
|
|
92
124
|
this.lastRequestTime = Date.now();
|
|
93
|
-
|
|
125
|
+
// Gradually recover interval toward configured minimum on successful requests
|
|
126
|
+
const minInterval = this.effectiveMinRequestIntervalMs;
|
|
127
|
+
if (this.currentRequestIntervalMs > minInterval) {
|
|
128
|
+
this.currentRequestIntervalMs = Math.max(this.currentRequestIntervalMs - 50, minInterval);
|
|
129
|
+
}
|
|
130
|
+
const body = await this.JsonWithTimeout(response, this.effectiveJsonTimeoutMs);
|
|
94
131
|
return this.BuildRESTResponse(response, body);
|
|
95
132
|
}
|
|
96
|
-
throw new Error(`YM API request failed after ${
|
|
133
|
+
throw new Error(`YM API request failed after ${maxRetries} retries: ${url}`);
|
|
97
134
|
}
|
|
98
135
|
NormalizeResponse(rawBody, responseDataKey) {
|
|
99
136
|
// Check for YM API-level errors in the response envelope
|
|
@@ -127,7 +164,11 @@ let YourMembershipConnector = class YourMembershipConnector extends BaseRESTInte
|
|
|
127
164
|
NextOffset: paginationType === 'Offset' ? currentOffset + recordCount : undefined,
|
|
128
165
|
};
|
|
129
166
|
}
|
|
130
|
-
GetBaseURL(companyIntegration) {
|
|
167
|
+
GetBaseURL(companyIntegration, auth) {
|
|
168
|
+
const ymAuth = auth;
|
|
169
|
+
if (ymAuth.Config?.ClientID) {
|
|
170
|
+
return `${YM_API_BASE}/Ams/${ymAuth.Config.ClientID}`;
|
|
171
|
+
}
|
|
131
172
|
const configJson = companyIntegration.Get('Configuration');
|
|
132
173
|
if (configJson) {
|
|
133
174
|
const parsed = JSON.parse(configJson);
|
|
@@ -163,45 +204,51 @@ let YourMembershipConnector = class YourMembershipConnector extends BaseRESTInte
|
|
|
163
204
|
/**
|
|
164
205
|
* Overrides base FetchChanges to handle YM-specific edge cases:
|
|
165
206
|
* - Groups/GroupTypes: nested GroupTypeList response needs custom flattening
|
|
166
|
-
* - Members: client-side watermark filtering +
|
|
207
|
+
* - Members: client-side watermark filtering + batched detail enrichment
|
|
167
208
|
*
|
|
168
209
|
* The MemberList API returns all members every time (no server-side date filter),
|
|
169
|
-
* but each record includes a `LastUpdated` field. We pull the full list,
|
|
170
|
-
* to only records changed since the watermark,
|
|
171
|
-
*
|
|
210
|
+
* but each record includes a `LastUpdated` field. We pull the full list once,
|
|
211
|
+
* filter to only records changed since the watermark, cache that filtered list,
|
|
212
|
+
* and enrich + return ENRICH_BATCH_SIZE records per FetchChanges call so the
|
|
213
|
+
* engine writes each batch to the database before moving to the next.
|
|
172
214
|
*/
|
|
173
215
|
async FetchChanges(ctx) {
|
|
216
|
+
console.log(`[YM] FetchChanges called for '${ctx.ObjectName}' (batchSize=${ctx.BatchSize}, watermark=${ctx.WatermarkValue ?? 'none'}, offset=${ctx.CurrentOffset ?? 'none'})`);
|
|
174
217
|
if (ctx.ObjectName === 'Groups' || ctx.ObjectName === 'GroupTypes') {
|
|
175
218
|
return this.FetchGroups(ctx);
|
|
176
219
|
}
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
return this.FetchMembersWithWatermark(ctx, result);
|
|
220
|
+
if (ctx.ObjectName === 'Members') {
|
|
221
|
+
return this.FetchMemberBatch(ctx);
|
|
180
222
|
}
|
|
181
|
-
return
|
|
223
|
+
return super.FetchChanges(ctx);
|
|
182
224
|
}
|
|
183
225
|
/**
|
|
184
|
-
*
|
|
185
|
-
*
|
|
186
|
-
*
|
|
226
|
+
* Fetches and enriches members in batches of ENRICH_BATCH_SIZE.
|
|
227
|
+
*
|
|
228
|
+
* On the first call (CurrentOffset = 0 or undefined), fetches the full member
|
|
229
|
+
* list via the base class, filters by watermark, and caches the result.
|
|
230
|
+
* On subsequent calls, uses the cached list and enriches the next slice.
|
|
231
|
+
* Returns HasMore=true until all records are enriched.
|
|
232
|
+
* Only sets NewWatermarkValue on the final batch so the watermark is only
|
|
233
|
+
* updated once all records have been written to the database.
|
|
187
234
|
*/
|
|
188
|
-
async
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
const enriched = await this.EnrichMembersWithDetails(ctx, {
|
|
199
|
-
Records: changedRecords,
|
|
200
|
-
HasMore: false,
|
|
201
|
-
});
|
|
235
|
+
async FetchMemberBatch(ctx) {
|
|
236
|
+
// Simple approach: fetch one page of member IDs, enrich them, return.
|
|
237
|
+
// The engine's outer loop handles pagination — it calls FetchChanges
|
|
238
|
+
// repeatedly with incrementing offsets until HasMore=false.
|
|
239
|
+
const pageResult = await super.FetchChanges(ctx);
|
|
240
|
+
if (pageResult.Records.length === 0) {
|
|
241
|
+
return pageResult;
|
|
242
|
+
}
|
|
243
|
+
console.log(`[YM Members] Fetched ${pageResult.Records.length} member IDs, enriching...`);
|
|
244
|
+
const enriched = await this.EnrichMembersWithDetails(ctx, pageResult.Records, ctx.CurrentOffset ?? 0, pageResult.Records.length);
|
|
202
245
|
return {
|
|
203
|
-
|
|
204
|
-
|
|
246
|
+
Records: enriched,
|
|
247
|
+
HasMore: pageResult.HasMore,
|
|
248
|
+
NextOffset: pageResult.NextOffset,
|
|
249
|
+
NextPage: pageResult.NextPage,
|
|
250
|
+
NextCursor: pageResult.NextCursor,
|
|
251
|
+
NewWatermarkValue: !pageResult.HasMore ? pageResult.NewWatermarkValue : undefined,
|
|
205
252
|
};
|
|
206
253
|
}
|
|
207
254
|
/**
|
|
@@ -361,7 +408,7 @@ let YourMembershipConnector = class YourMembershipConnector extends BaseRESTInte
|
|
|
361
408
|
* the type entries. When 'Groups', flattens into individual group records.
|
|
362
409
|
*/
|
|
363
410
|
async FetchGroups(ctx) {
|
|
364
|
-
const auth = await this.Authenticate(ctx.CompanyIntegration);
|
|
411
|
+
const auth = await this.Authenticate(ctx.CompanyIntegration, ctx.ContextUser);
|
|
365
412
|
const json = await this.MakeYMRequest(auth, 'Groups');
|
|
366
413
|
const typeList = json['GroupTypeList'];
|
|
367
414
|
if (!typeList || !Array.isArray(typeList)) {
|
|
@@ -398,20 +445,32 @@ let YourMembershipConnector = class YourMembershipConnector extends BaseRESTInte
|
|
|
398
445
|
}
|
|
399
446
|
// ─── Detail enrichment (Members) ─────────────────────────────────
|
|
400
447
|
/**
|
|
401
|
-
* Enriches
|
|
448
|
+
* Enriches a slice of member records with full profile data from the detail endpoint.
|
|
402
449
|
* The list endpoint returns sparse data (name, email); the detail endpoint
|
|
403
450
|
* returns full address, phone, custom fields, etc.
|
|
451
|
+
*
|
|
452
|
+
* @param ctx - Fetch context for auth
|
|
453
|
+
* @param records - The slice of records to enrich
|
|
454
|
+
* @param batchOffset - Starting index of this slice within the overall set (for progress logging)
|
|
455
|
+
* @param overallTotal - Total number of records being enriched across all batches (for progress logging)
|
|
404
456
|
*/
|
|
405
|
-
async EnrichMembersWithDetails(ctx,
|
|
406
|
-
const auth = await this.Authenticate(ctx.CompanyIntegration);
|
|
457
|
+
async EnrichMembersWithDetails(ctx, records, batchOffset, overallTotal) {
|
|
458
|
+
const auth = await this.Authenticate(ctx.CompanyIntegration, ctx.ContextUser);
|
|
407
459
|
const concurrency = 3;
|
|
408
460
|
const enriched = [];
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
const
|
|
461
|
+
let lastLoggedPct = Math.floor((batchOffset / overallTotal) * 100);
|
|
462
|
+
for (let i = 0; i < records.length; i += concurrency) {
|
|
463
|
+
const chunk = records.slice(i, i + concurrency);
|
|
464
|
+
const results = await Promise.all(chunk.map(record => this.EnrichSingleMember(auth, record)));
|
|
412
465
|
enriched.push(...results);
|
|
466
|
+
const doneOverall = batchOffset + enriched.length;
|
|
467
|
+
const pct = Math.floor((doneOverall / overallTotal) * 100);
|
|
468
|
+
if (pct >= lastLoggedPct + 1) {
|
|
469
|
+
lastLoggedPct = pct;
|
|
470
|
+
console.log(`[YM Members] Enriched ${doneOverall}/${overallTotal} (${pct}%)`);
|
|
471
|
+
}
|
|
413
472
|
}
|
|
414
|
-
return
|
|
473
|
+
return enriched;
|
|
415
474
|
}
|
|
416
475
|
/**
|
|
417
476
|
* Fetches full detail data for a single member and merges it.
|
|
@@ -421,13 +480,14 @@ let YourMembershipConnector = class YourMembershipConnector extends BaseRESTInte
|
|
|
421
480
|
try {
|
|
422
481
|
const detailPath = `Members/${record.ExternalID}`;
|
|
423
482
|
const fetchPromise = this.MakeYMRequest(auth, detailPath);
|
|
424
|
-
const timeoutPromise = new Promise((_, reject) => setTimeout(() => reject(new Error(`Detail fetch timed out for ${record.ExternalID}`)),
|
|
483
|
+
const timeoutPromise = new Promise((_, reject) => setTimeout(() => reject(new Error(`Detail fetch timed out for ${record.ExternalID}`)), this.effectiveEnrichTimeoutMs));
|
|
425
484
|
const json = await Promise.race([fetchPromise, timeoutPromise]);
|
|
426
485
|
const normalized = this.NormalizeMemberDetail(json);
|
|
427
486
|
record.Fields = { ...record.Fields, ...normalized };
|
|
428
487
|
}
|
|
429
|
-
catch {
|
|
430
|
-
|
|
488
|
+
catch (err) {
|
|
489
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
490
|
+
console.warn(`[YM Members] Failed to enrich member ${record.ExternalID}: ${message}`);
|
|
431
491
|
}
|
|
432
492
|
return record;
|
|
433
493
|
}
|
|
@@ -513,7 +573,24 @@ let YourMembershipConnector = class YourMembershipConnector extends BaseRESTInte
|
|
|
513
573
|
if (!clientId || !apiKey || !apiPassword) {
|
|
514
574
|
throw new Error('Configuration JSON must contain ClientID, APIKey, and APIPassword (any casing)');
|
|
515
575
|
}
|
|
516
|
-
|
|
576
|
+
const parseOptionalInt = (key) => {
|
|
577
|
+
const v = parsed[key];
|
|
578
|
+
if (v == null)
|
|
579
|
+
return undefined;
|
|
580
|
+
const n = Number(v);
|
|
581
|
+
return isNaN(n) ? undefined : Math.floor(n);
|
|
582
|
+
};
|
|
583
|
+
return {
|
|
584
|
+
ClientID: String(clientId),
|
|
585
|
+
APIKey: String(apiKey),
|
|
586
|
+
APIPassword: String(apiPassword),
|
|
587
|
+
MaxRetries: parseOptionalInt('MaxRetries'),
|
|
588
|
+
RequestTimeoutMs: parseOptionalInt('RequestTimeoutMs'),
|
|
589
|
+
MinRequestIntervalMs: parseOptionalInt('MinRequestIntervalMs'),
|
|
590
|
+
EnrichBatchSize: parseOptionalInt('EnrichBatchSize'),
|
|
591
|
+
JsonTimeoutMs: parseOptionalInt('JsonTimeoutMs'),
|
|
592
|
+
EnrichTimeoutMs: parseOptionalInt('EnrichTimeoutMs'),
|
|
593
|
+
};
|
|
517
594
|
}
|
|
518
595
|
// ─── Session management ──────────────────────────────────────────
|
|
519
596
|
/** Obtains or reuses a YM session for the given credentials. */
|
|
@@ -531,8 +608,8 @@ let YourMembershipConnector = class YourMembershipConnector extends BaseRESTInte
|
|
|
531
608
|
headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' },
|
|
532
609
|
body: JSON.stringify({
|
|
533
610
|
provider: 'credentials',
|
|
534
|
-
UserName: config.
|
|
535
|
-
Password: config.
|
|
611
|
+
UserName: config.APIKey,
|
|
612
|
+
Password: config.APIPassword,
|
|
536
613
|
UserType: 'Admin',
|
|
537
614
|
ClientID: Number(config.ClientID),
|
|
538
615
|
}),
|
|
@@ -581,13 +658,14 @@ let YourMembershipConnector = class YourMembershipConnector extends BaseRESTInte
|
|
|
581
658
|
/** Executes an HTTP request with a timeout. */
|
|
582
659
|
async FetchWithTimeout(url, method, headers) {
|
|
583
660
|
const controller = new AbortController();
|
|
584
|
-
const
|
|
661
|
+
const timeoutMs = this.effectiveRequestTimeoutMs;
|
|
662
|
+
const timeoutId = setTimeout(() => controller.abort(), timeoutMs);
|
|
585
663
|
try {
|
|
586
664
|
return await fetch(url, { method, headers, signal: controller.signal });
|
|
587
665
|
}
|
|
588
666
|
catch (err) {
|
|
589
667
|
if (err instanceof Error && err.name === 'AbortError') {
|
|
590
|
-
throw new Error(`YM API request timed out after ${
|
|
668
|
+
throw new Error(`YM API request timed out after ${timeoutMs / 1000}s: ${url}`);
|
|
591
669
|
}
|
|
592
670
|
throw err;
|
|
593
671
|
}
|