@memberjunction/core-entities-server 5.15.0 → 5.17.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.
Files changed (37) hide show
  1. package/dist/custom/MJQueryEntityServer.server.d.ts +10 -89
  2. package/dist/custom/MJQueryEntityServer.server.d.ts.map +1 -1
  3. package/dist/custom/MJQueryEntityServer.server.js +68 -1089
  4. package/dist/custom/MJQueryEntityServer.server.js.map +1 -1
  5. package/dist/custom/query-extraction/dialect.d.ts +23 -0
  6. package/dist/custom/query-extraction/dialect.d.ts.map +1 -0
  7. package/dist/custom/query-extraction/dialect.js +45 -0
  8. package/dist/custom/query-extraction/dialect.js.map +1 -0
  9. package/dist/custom/query-extraction/enrich.d.ts +51 -0
  10. package/dist/custom/query-extraction/enrich.d.ts.map +1 -0
  11. package/dist/custom/query-extraction/enrich.js +180 -0
  12. package/dist/custom/query-extraction/enrich.js.map +1 -0
  13. package/dist/custom/query-extraction/index.d.ts +9 -0
  14. package/dist/custom/query-extraction/index.d.ts.map +1 -0
  15. package/dist/custom/query-extraction/index.js +15 -0
  16. package/dist/custom/query-extraction/index.js.map +1 -0
  17. package/dist/custom/query-extraction/parse.d.ts +7 -0
  18. package/dist/custom/query-extraction/parse.d.ts.map +1 -0
  19. package/dist/custom/query-extraction/parse.js +13 -0
  20. package/dist/custom/query-extraction/parse.js.map +1 -0
  21. package/dist/custom/query-extraction/pipeline.d.ts +24 -0
  22. package/dist/custom/query-extraction/pipeline.d.ts.map +1 -0
  23. package/dist/custom/query-extraction/pipeline.js +101 -0
  24. package/dist/custom/query-extraction/pipeline.js.map +1 -0
  25. package/dist/custom/query-extraction/resolve.d.ts +110 -0
  26. package/dist/custom/query-extraction/resolve.d.ts.map +1 -0
  27. package/dist/custom/query-extraction/resolve.js +677 -0
  28. package/dist/custom/query-extraction/resolve.js.map +1 -0
  29. package/dist/custom/query-extraction/sync.d.ts +30 -0
  30. package/dist/custom/query-extraction/sync.d.ts.map +1 -0
  31. package/dist/custom/query-extraction/sync.js +456 -0
  32. package/dist/custom/query-extraction/sync.js.map +1 -0
  33. package/dist/custom/query-extraction/types.d.ts +114 -0
  34. package/dist/custom/query-extraction/types.d.ts.map +1 -0
  35. package/dist/custom/query-extraction/types.js +2 -0
  36. package/dist/custom/query-extraction/types.js.map +1 -0
  37. package/package.json +19 -19
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../src/custom/query-extraction/resolve.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAiC,QAAQ,EAAkD,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAC1J,OAAO,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAWvD,sDAAsD;AACtD,mCAAmC;AACnC,sDAAsD;AAEtD;;;;;;;;GAQG;AACH,MAAM,UAAU,4BAA4B,CACxC,GAAW,EACX,SAAiB,EACjB,UAAuB;IAEvB,MAAM,iBAAiB,GAAG,IAAI,sBAAsB,EAAE,CAAC;IACvD,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAE5D,MAAM,MAAM,GAAG,iBAAiB,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAC7D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEnC,MAAM,QAAQ,GAAmC,EAAE,CAAC;IAEpD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,6BAA6B,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;QAEpG,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CACX,UAAU,SAAS,iBAAiB,KAAK,CAAC,QAAQ,gCAAgC;gBAClF,mDAAmD;gBACnD,uFAAuF,CAC1F,CAAC;QACN,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACX,UAAU,SAAS,iBAAiB,KAAK,CAAC,QAAQ,4BAA4B;gBAC9E,QAAQ,QAAQ,CAAC,IAAI,+BAA+B;gBACpD,yBAAyB,QAAQ,CAAC,IAAI,kDAAkD,CAC3F,CAAC;QACN,CAAC;QAED,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACxD,MAAM,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,GAAG,sBAAsB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAE3F,QAAQ,CAAC,IAAI,CAAC;YACV,QAAQ;YACR,aAAa,EAAE,KAAK,CAAC,QAAQ;YAC7B,KAAK;YACL,gBAAgB;YAChB,mBAAmB;SACtB,CAAC,CAAC;IACP,CAAC;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,6BAA6B,CACzC,SAAiB,EACjB,gBAA0B,EAC1B,UAAuB;IAEvB,MAAM,cAAc,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IAE/C,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,YAAY,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;QACvD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAC9B,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,cAAc;YACvC,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC,WAAW,EAAE,CAC9D,CAAC;QACF,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;IAC5B,CAAC;IAED,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC,CAAC;IACpF,OAAO,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACjE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAClC,MAA2F;IAK3F,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,CAAC;IAEpF,MAAM,gBAAgB,GAA2B,EAAE,CAAC;IACpD,MAAM,mBAAmB,GAA6D,EAAE,CAAC;IAEzF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YAC7B,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC;QACrD,CAAC;aAAM,IAAI,KAAK,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;YACxC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;YAC3D,mBAAmB,CAAC,IAAI,CAAC;gBACrB,eAAe,EAAE,KAAK,CAAC,eAAe;gBACtC,YAAY,EAAE,KAAK,CAAC,IAAI;aAC3B,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,OAAO;QACH,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI;QACpF,mBAAmB;KACtB,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAW,EAAE,SAAiB;IAC9D,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1C,IAAI,UAAU,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAEhC,MAAM,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAChE,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAEjD,IAAI,UAAU,EAAE,CAAC;QACb,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC;YACrB,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;YACrE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ;YAC9D,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO;SAC1C,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAC7C,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAGD,sDAAsD;AACtD,mCAAmC;AACnC,sDAAsD;AAEtD;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAClC,YAA4C;IAK5C,MAAM,iBAAiB,GAAsB,EAAE,CAAC;IAChD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAmC,CAAC;IAC9D,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IAEzC,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC7B,KAAK,MAAM,OAAO,IAAI,GAAG,CAAC,mBAAmB,EAAE,CAAC;YAC5C,MAAM,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;YACxD,IAAI,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC;gBAAE,SAAS;YAC5C,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAE9B,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CACzC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE,CACnE,CAAC;YAEF,iBAAiB,CAAC,IAAI,CAAC;gBACnB,IAAI,EAAE,OAAO,CAAC,eAAe;gBAC7B,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,6BAA6B,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ;gBACxE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI;gBACjD,YAAY,EAAE,QAAQ,EAAE,YAAY,IAAI,IAAI;gBAC5C,OAAO,EAAE,EAAE;gBACX,cAAc,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC;aACtC,CAAC,CAAC;YAEH,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE;gBACtB,WAAW,EAAE,QAAQ,EAAE,WAAW,IAAI,IAAI;gBAC1C,WAAW,EAAE,QAAQ,EAAE,WAAW,IAAI,IAAI;gBAC1C,YAAY,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI;gBAC/B,YAAY,EAAE,OAAO,CAAC,YAAY;aACrC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC;AACrD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAClC,mBAAsC,EACtC,iBAAoC;IAEpC,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,mBAAmB,CAAC;IAE/D,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAClF,MAAM,MAAM,GAAG,CAAC,GAAG,mBAAmB,CAAC,CAAC;IAExC,KAAK,MAAM,EAAE,IAAI,iBAAiB,EAAE,CAAC;QACjC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAC5C,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAChB,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC7C,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,6BAA6B,CACzC,IAAwD;IAExD,MAAM,UAAU,GAAG,IAAI,GAAG,CAA0B,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IACtG,OAAO,UAAU,CAAC,GAAG,CAAC,IAA+B,CAAC,CAAC,CAAC,CAAE,IAAgC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC1G,CAAC;AAGD,sDAAsD;AACtD,mBAAmB;AACnB,sDAAsD;AAEtD;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CACpC,GAAW,EACX,SAA8B,EAC9B,aAAgC,EAChC,EAAqB;IAErB,MAAM,eAAe,GAAG,oEAAoE,CAAC;IAC7F,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAE5C,MAAM,cAAc,GAAG,wBAAwB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAE/D,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,+BAA+B,CAAC,GAAG,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7D,CAAC;AAED;;GAEG;AACH,SAAS,wBAAwB,CAC7B,SAA8B,EAC9B,EAAqB;IAErB,MAAM,cAAc,GAAqB,EAAE,CAAC;IAE5C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QAC/B,MAAM,cAAc,GAAG,oBAAoB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAE1D,IAAI,cAAc,EAAE,CAAC;YACjB,KAAK,MAAM,WAAW,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;gBAC9C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;oBACzD,cAAc,CAAC,IAAI,CAAC,yBAAyB,CAAC,WAAW,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;gBACrF,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,cAAc,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,SAAS,+BAA+B,CACpC,GAAW,EACX,cAAgC,EAChC,EAAqB;IAErB,MAAM,eAAe,GAAG,SAAS,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAE9D,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QAChC,MAAM,eAAe,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACvD,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CACvD,CAAC;QAEF,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvD,KAAK,MAAM,MAAM,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;gBAC1C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;oBACpD,cAAc,CAAC,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC9D,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,yBAAyB,CAC9B,WAAyC,EACzC,UAAkB;IAElB,OAAO;QACH,IAAI,EAAE,WAAW,CAAC,IAAI;QACtB,WAAW,EAAE,WAAW,CAAC,WAAW,IAAI,GAAG,WAAW,CAAC,IAAI,eAAe,UAAU,EAAE;QACtF,IAAI,EAAE,yBAAyB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,WAAW,EAA4B;QACzF,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,UAAU;QACxB,eAAe,EAAE,WAAW,CAAC,IAAI;QACjC,UAAU,EAAE,KAAK;QACjB,SAAS,EAAE,KAAK;KACnB,CAAC;AACN,CAAC;AAED;;GAEG;AACH,SAAS,wBAAwB,CAC7B,MAAsB,EACtB,EAAqB;IAErB,MAAM,gBAAgB,GAAG,MAAM,CAAC,cAAc;QAC1C,CAAC,CAAC,kBAAkB,CAAC,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC;QAC/C,CAAC,CAAC,IAAI,CAAC;IAEX,OAAO;QACH,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,GAAG,MAAM,CAAC,IAAI,aAAa;QAC9D,IAAI,EAAE,yBAAyB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAA4B;QAC3F,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,gBAAgB;QAC9B,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,IAAI;QAC/C,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,KAAK;QACtC,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,KAAK;KACvC,CAAC;AACN,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gCAAgC,CAC5C,MAAwB,EACxB,YAA4C,EAC5C,aAAgC;IAEhC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAEpE,MAAM,UAAU,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;IACpD,MAAM,eAAe,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;IAC5D,MAAM,YAAY,GAAG,0BAA0B,CAAC,YAAY,CAAC,CAAC;IAE9D,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QACtB,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW;YAAE,OAAO,KAAK,CAAC;QAEzD,MAAM,YAAY,GAAG,6BAA6B,CAAC,KAAK,CAAC,IAAI,EAAE,eAAe,EAAE,UAAU,CAAC;eACpF,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAElD,IAAI,YAAY,EAAE,CAAC;YACf,OAAO,uBAAuB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kCAAkC,CAC9C,MAAwB,EACxB,aAAgC,EAChC,SAA8B,EAC9B,EAAqB;IAErB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAEjE,MAAM,aAAa,GAAG,qBAAqB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC3D,IAAI,aAAa,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAE5C,MAAM,eAAe,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;IAC5D,MAAM,UAAU,GAAG,0BAA0B,CAAC,aAAa,CAAC,CAAC;IAE7D,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QACtB,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW;YAAE,OAAO,KAAK,CAAC;QAEzD,MAAM,OAAO,GAAG,0BAA0B,CAAC,KAAK,CAAC,IAAI,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;QACnG,IAAI,OAAO,EAAE,CAAC;YACV,OAAO;gBACH,GAAG,KAAK;gBACR,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI;gBAC/B,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW;gBACtC,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,OAAO,CAAC,UAAU;gBACtD,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI;aAC/D,CAAC;QACN,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAChC,MAAwB,EACxB,EAAqB;IAErB,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC,eAAe,KAAK,GAAG,CAAC,CAAC;IAClF,IAAI,CAAC,WAAW;QAAE,OAAO,MAAM,CAAC;IAEhC,MAAM,cAAc,GAAqB,EAAE,CAAC;IAE5C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,eAAe,KAAK,GAAG,CAAC;QACvE,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3B,SAAS;QACb,CAAC;QAED,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACrB,MAAM,QAAQ,GAAG,wBAAwB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACrD,cAAc,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACJ,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACL,CAAC;IAED,OAAO,cAAc,CAAC;AAC1B,CAAC;AAGD,sDAAsD;AACtD,6BAA6B;AAC7B,sDAAsD;AAEtD;;;GAGG;AACH,MAAM,UAAU,4BAA4B,CACxC,GAAW,EACX,SAA8B,EAC9B,EAAqB;IAErB,MAAM,OAAO,GAA0B,EAAE,CAAC;IAE1C,IAAI,CAAC;QACD,MAAM,UAAU,GAAG,SAAS,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAEpD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YAC/B,MAAM,cAAc,GAAG,oBAAoB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YAE1D,IAAI,cAAc,EAAE,CAAC;gBACjB,MAAM,cAAc,GAAG,qBAAqB,CAAC,cAAc,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gBAEnF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5B,OAAO,CAAC,IAAI,CAAC;wBACT,IAAI,EAAE,cAAc,CAAC,IAAI;wBACzB,UAAU,EAAE,cAAc,CAAC,UAAU;wBACrC,QAAQ,EAAE,cAAc,CAAC,QAAQ;wBACjC,MAAM,EAAE,cAAc;qBACzB,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,0CAA0C,KAAK,EAAE,CAAC,CAAC;QAChE,OAAO,OAAO,CAAC;IACnB,CAAC;AACL,CAAC;AAGD,sDAAsD;AACtD,wBAAwB;AACxB,sDAAsD;AAEtD;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAClC,OAAe,EACf,SAAiB,EACjB,YAAiD,EACjD,eAAsC,EACtC,UAAuB;IAEvB,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,iBAAiB,CAC5B,GAAG,CAAC,gBAAgB,EACpB,OAAO,EACP,SAAS,EACT,CAAC,SAAS,CAAC,EACX,IAAI,GAAG,EAAU,EACjB,eAAe,EACf,UAAU,CACb,CAAC;QACF,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;IAC9B,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CACtB,SAAiB,EACjB,QAAgB,EAChB,UAAkB,EAClB,IAAc,EACd,OAAoB,EACpB,eAAsC,EACtC,UAAuB;IAEvB,IAAI,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEvB,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,EAAE,IAAI,IAAI,SAAS,CAAC;IACvF,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,EAAE,SAAS,CAAC,CAAC;IAEzC,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC;IAClE,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,iBAAiB,CAC5B,CAAC,CAAC,gBAAgB,EAClB,QAAQ,EACR,UAAU,EACV,WAAW,EACX,OAAO,EACP,eAAe,EACf,UAAU,CACb,CAAC;QACF,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;IAC9B,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAGD,sDAAsD;AACtD,iDAAiD;AACjD,sDAAsD;AAEtD;;;;;;;;;GASG;AACH,SAAS,6BAA6B,CAClC,SAAiB,EACjB,eAA6C,EAC7C,UAAqD;IAErD,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/D,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,YAAY;QAAE,OAAO,SAAS,CAAC;IAE3D,IAAI,SAAS,CAAC,cAAc,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC;QACnE,IAAI,GAAG,EAAE,CAAC;YACN,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAClC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,YAAY,CAAC,WAAW,EAAE,CACrE,CAAC;YACF,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC;QAC5B,CAAC;IACL,CAAC;IAED,gDAAgD;IAChD,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAClC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,YAAY,CAAC,WAAW,EAAE,CACrE,CAAC;QACF,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;IAC5B,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED;;;GAGG;AACH,SAAS,0BAA0B,CAC/B,YAA4C;IAE5C,MAAM,MAAM,GAAG,IAAI,GAAG,EAA0B,CAAC;IAEjD,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC7B,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACtC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzB,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACjC,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAC5B,KAAqB,EACrB,YAA4B;IAE5B,OAAO;QACH,GAAG,KAAK;QACR,WAAW,EAAE,YAAY,CAAC,WAAW;QACrC,WAAW,EAAE,YAAY,CAAC,WAAW;QACrC,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,cAAc;YAC5D,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,cAAc,CAAC;YACpE,CAAC,CAAC,IAAI,CAAC;QACX,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,YAAY,CAAC,eAAe;QACtE,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,YAAY,CAAC,UAAU,IAAI,KAAK;QAChE,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,YAAY,CAAC,SAAS,IAAI,KAAK;KAChE,CAAC;AACN,CAAC;AAaD;;GAEG;AACH,SAAS,qBAAqB,CAC1B,SAA8B,EAC9B,EAAqB;IAErB,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkC,CAAC;IAEhE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QAC/B,MAAM,cAAc,GAAG,oBAAoB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC1D,IAAI,cAAc,EAAE,CAAC;YACjB,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;QAChF,CAAC;IACL,CAAC;IAED,OAAO,aAAa,CAAC;AACzB,CAAC;AAED;;;GAGG;AACH,SAAS,0BAA0B,CAC/B,aAAkD;IAElD,MAAM,UAAU,GAAG,IAAI,GAAG,EAA4B,CAAC;IAEvD,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;QAC1D,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACvC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7B,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACrE,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC;AACtB,CAAC;AAED;;;GAGG;AACH,SAAS,0BAA0B,CAC/B,SAAiB,EACjB,eAA6C,EAC7C,aAAkD,EAClD,UAAyC;IAEzC,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/D,IAAI,OAAqC,CAAC;IAE1C,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;QACvC,OAAO,GAAG,sBAAsB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAC3D,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;QACnE,CAAC;IACL,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAC3B,SAA0B,EAC1B,aAAkD;IAElD,IAAI,CAAC,SAAS,CAAC,cAAc;QAAE,OAAO,SAAS,CAAC;IAEhD,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9E,IAAI,CAAC,WAAW;QAAE,OAAO,SAAS,CAAC;IAEnC,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAC9C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,YAAY,CAAC,WAAW,EAAE,CACrE,CAAC;IAEF,IAAI,WAAW,EAAE,CAAC;QACd,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACvE,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAGD,sDAAsD;AACtD,uCAAuC;AACvC,sDAAsD;AAEtD;;;GAGG;AACH,SAAS,wBAAwB,CAC7B,KAAqB,EACrB,EAAqB;IAErB,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,EAAE,EAAE,KAAK,CAAC,YAAa,CAAC,CAAC;IACnE,IAAI,gBAAgB,EAAE,CAAC;QACnB,OAAO,oBAAoB,CAAC,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACrD,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,YAAa,CAAC,WAAW,EAAE,CAC7D,CAAC;IACF,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnD,OAAO,uBAAuB,CAAC,aAAa,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CACzB,MAAkB,EAClB,QAAiB;IAEjB,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACrC,IAAI,EAAE,WAAW,CAAC,IAAI;QACtB,WAAW,EAAE,WAAW,CAAC,WAAW,IAAI,GAAG,WAAW,CAAC,IAAI,eAAe,MAAM,CAAC,IAAI,EAAE;QACvF,IAAI,EAAE,yBAAyB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,WAAW,EAA4B;QACzF,QAAQ;QACR,YAAY,EAAE,MAAM,CAAC,IAAI;QACzB,eAAe,EAAE,WAAW,CAAC,IAAI;QACjC,UAAU,EAAE,KAAK;QACjB,SAAS,EAAE,KAAK;KACnB,CAAC,CAAC,CAAC;AACR,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAC5B,KAAgB,EAChB,QAAiB,EACjB,EAAqB;IAErB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/B,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,GAAG,MAAM,CAAC,IAAI,gBAAgB,KAAK,CAAC,IAAI,GAAG;QAC9E,IAAI,EAAE,yBAAyB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAA4B;QAC3F,QAAQ;QACR,YAAY,EAAE,MAAM,CAAC,cAAc;YAC/B,CAAC,CAAC,kBAAkB,CAAC,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC;YAC/C,CAAC,CAAC,IAAI;QACV,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,IAAI;QAC/C,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,KAAK;QACtC,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,KAAK;KACvC,CAAC,CAAC,CAAC;AACR,CAAC;AAGD,sDAAsD;AACtD,+CAA+C;AAC/C,sDAAsD;AAEtD;;;;GAIG;AACH,SAAS,qBAAqB,CAC1B,MAAkB,EAClB,QAA2B,EAC3B,UAAwE;IAExE,OAAO,MAAM,CAAC,MAAM;SACf,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;SAC5D,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;SACZ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,YAAY,EAAE,CAAC,CAAC,YAAY;KAC/B,CAAC,CAAC,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAC3B,KAAmC,EACnC,QAA2B,EAC3B,UAAwE;IAExE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IAE5C,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QACjD,IAAI,QAAQ,KAAK,UAAU;YAAE,OAAO,IAAI,CAAC;QACzC,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;YACtD,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE;gBAC1C,SAAS,KAAK,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;gBAChD,QAAQ,KAAK,UAAU,EAAE,CAAC;gBAC1B,OAAO,IAAI,CAAC;YAChB,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC,YAAY,CAAC;AAC9B,CAAC;AAGD,sDAAsD;AACtD,qCAAqC;AACrC,sDAAsD;AAEtD;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAAqB,EAAE,IAAY;IAChE,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACxB,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAC7F,CAAC;AACN,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,EAAqB,EAAE,QAAgB;IAC/D,MAAM,MAAM,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;IACjE,OAAO,MAAM,EAAE,IAAI,IAAI,IAAI,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,EAAqB,EAAE,QAA2B;IAC5E,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACxB,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE;QAC7D,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QAChE,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,CACnE,CAAC;AACN,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,aAAgC;IAC1D,MAAM,GAAG,GAAG,IAAI,GAAG,EAA2B,CAAC;IAC/C,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAC9B,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CACvB,YAA4C;IAE5C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAwC,CAAC;IACnE,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC7B,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACZ,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,CAAC;QACjD,CAAC;IACL,CAAC;IACD,OAAO,UAAU,CAAC;AACtB,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { IMetadataProvider, IRunViewProvider, UserInfo } from "@memberjunction/core";
2
+ import type { ExtractedField, ExtractedParameter, EntityMetadataEntry, ResolvedCompositionReference } from "./types.js";
3
+ /**
4
+ * Synchronizes extracted query parameters with the database.
5
+ * Filters out "query" params (composition token safety net), handles add/update/remove,
6
+ * and maps types to database-supported types.
7
+ */
8
+ export declare function SyncParameters(queryID: string, extractedParams: ExtractedParameter[], contextUser: UserInfo, metadataProvider: IMetadataProvider, runViewProvider: IRunViewProvider, isSaved: boolean): Promise<void>;
9
+ /**
10
+ * Synchronizes extracted query fields with the database.
11
+ * Expands wildcards, maps ExtractedField to MJQueryFieldEntity with sqlBaseType/sqlFullType override,
12
+ * handles add/update/remove.
13
+ */
14
+ export declare function SyncFields(queryID: string, extractedFields: ExtractedField[], contextUser: UserInfo, metadataProvider: IMetadataProvider, runViewProvider: IRunViewProvider, isSaved: boolean): Promise<void>;
15
+ /**
16
+ * Synchronizes extracted entity metadata entries with QueryEntity records in the database.
17
+ * Matches by entity ID, handles add/remove.
18
+ */
19
+ export declare function SyncEntities(queryID: string, entityMetadata: EntityMetadataEntry[], contextUser: UserInfo, metadataProvider: IMetadataProvider, runViewProvider: IRunViewProvider, isSaved: boolean): Promise<void>;
20
+ /**
21
+ * Converts ResolvedCompositionReference[] to dependency records, checks for cycles, and syncs.
22
+ * Matches by DependsOnQueryID + ReferencePath for uniqueness.
23
+ */
24
+ export declare function SyncDependencies(queryID: string, resolvedRefs: ResolvedCompositionReference[], contextUser: UserInfo, metadataProvider: IMetadataProvider, runViewProvider: IRunViewProvider, isSaved: boolean): Promise<void>;
25
+ /**
26
+ * Generic removal: deletes all records of a given entity type that belong to a query.
27
+ * Used for cleanup when SQL is empty or when no items of a type remain.
28
+ */
29
+ export declare function RemoveAllRecords(queryID: string, entityName: string, contextUser: UserInfo, runViewProvider: IRunViewProvider, isSaved: boolean): Promise<void>;
30
+ //# sourceMappingURL=sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../src/custom/query-extraction/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAY,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAQ/F,OAAO,KAAK,EACR,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,4BAA4B,EAC/B,MAAM,SAAS,CAAC;AAoEjB;;;;GAIG;AACH,wBAAsB,cAAc,CAChC,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,kBAAkB,EAAE,EACrC,WAAW,EAAE,QAAQ,EACrB,gBAAgB,EAAE,iBAAiB,EACnC,eAAe,EAAE,gBAAgB,EACjC,OAAO,EAAE,OAAO,GACjB,OAAO,CAAC,IAAI,CAAC,CAsDf;AAuED;;;;GAIG;AACH,wBAAsB,UAAU,CAC5B,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,cAAc,EAAE,EACjC,WAAW,EAAE,QAAQ,EACrB,gBAAgB,EAAE,iBAAiB,EACnC,eAAe,EAAE,gBAAgB,EACjC,OAAO,EAAE,OAAO,GACjB,OAAO,CAAC,IAAI,CAAC,CAuDf;AAuHD;;;GAGG;AACH,wBAAsB,YAAY,CAC9B,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,mBAAmB,EAAE,EACrC,WAAW,EAAE,QAAQ,EACrB,gBAAgB,EAAE,iBAAiB,EACnC,eAAe,EAAE,gBAAgB,EACjC,OAAO,EAAE,OAAO,GACjB,OAAO,CAAC,IAAI,CAAC,CAmDf;AAMD;;;GAGG;AACH,wBAAsB,gBAAgB,CAClC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,4BAA4B,EAAE,EAC5C,WAAW,EAAE,QAAQ,EACrB,gBAAgB,EAAE,iBAAiB,EACnC,eAAe,EAAE,gBAAgB,EACjC,OAAO,EAAE,OAAO,GACjB,OAAO,CAAC,IAAI,CAAC,CA6Ef;AA8BD;;;GAGG;AACH,wBAAsB,gBAAgB,CAClC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,QAAQ,EACrB,eAAe,EAAE,gBAAgB,EACjC,OAAO,EAAE,OAAO,GACjB,OAAO,CAAC,IAAI,CAAC,CAwBf"}
@@ -0,0 +1,456 @@
1
+ import { LogError } from "@memberjunction/core";
2
+ import { UUIDsEqual } from "@memberjunction/global";
3
+ // =============================================================================
4
+ // Database sync engine for the query extraction pipeline.
5
+ //
6
+ // Each function loads existing records via RunView, computes the add/update/remove
7
+ // delta, and executes all mutations in parallel via Promise.all.
8
+ // =============================================================================
9
+ // ---------------------------------------------------------------------------
10
+ // Helpers
11
+ // ---------------------------------------------------------------------------
12
+ /**
13
+ * Finds an entity by name, checking both Name (which may have "MJ: " prefix) and DisplayName.
14
+ * The AI often returns entity names without the "MJ: " prefix, so we need to match both.
15
+ */
16
+ function findEntityByName(md, name) {
17
+ const lower = name.toLowerCase();
18
+ return md.Entities.find(e => e.Name.toLowerCase() === lower || (e.DisplayName && e.DisplayName.toLowerCase() === lower));
19
+ }
20
+ /**
21
+ * Normalizes an extracted parameter type to the set of values the database schema supports.
22
+ * Returns the normalized type and a boolean indicating whether a warning should be logged.
23
+ */
24
+ function normalizeParamType(rawType) {
25
+ const normalized = rawType?.toLowerCase();
26
+ const validTypes = new Set([
27
+ 'array', 'boolean', 'string', 'date', 'number',
28
+ ]);
29
+ if (normalized && validTypes.has(normalized)) {
30
+ return { type: normalized, isObject: false, isUnknown: false };
31
+ }
32
+ if (normalized === 'object') {
33
+ return { type: 'string', isObject: true, isUnknown: false };
34
+ }
35
+ return { type: 'string', isObject: false, isUnknown: true };
36
+ }
37
+ /**
38
+ * Maps a generic field type to a SQL base/full type pair.
39
+ */
40
+ function defaultSQLTypesForField(fieldType) {
41
+ switch (fieldType) {
42
+ case 'number':
43
+ return { baseType: 'decimal', fullType: 'decimal(18,2)' };
44
+ case 'date':
45
+ return { baseType: 'datetime', fullType: 'datetime' };
46
+ case 'boolean':
47
+ return { baseType: 'bit', fullType: 'bit' };
48
+ default:
49
+ return { baseType: 'nvarchar', fullType: 'nvarchar(MAX)' };
50
+ }
51
+ }
52
+ // ---------------------------------------------------------------------------
53
+ // SyncParameters
54
+ // ---------------------------------------------------------------------------
55
+ /**
56
+ * Synchronizes extracted query parameters with the database.
57
+ * Filters out "query" params (composition token safety net), handles add/update/remove,
58
+ * and maps types to database-supported types.
59
+ */
60
+ export async function SyncParameters(queryID, extractedParams, contextUser, metadataProvider, runViewProvider, isSaved) {
61
+ // Filter out any parameter named "query" that came from {{query:"..."}} composition tokens.
62
+ const filteredParams = extractedParams.filter(p => p.name !== 'query');
63
+ try {
64
+ const existingParams = await loadExistingRecords('MJ: Query Parameters', queryID, runViewProvider, contextUser, isSaved);
65
+ const extractedParamNames = filteredParams.map(p => p.name.toLowerCase());
66
+ const paramsToAdd = filteredParams.filter(p => !existingParams.some(ep => ep.Name.toLowerCase() === p.name.toLowerCase()));
67
+ const paramsToUpdate = existingParams.filter(ep => filteredParams.some(p => p.name.toLowerCase() === ep.Name.toLowerCase()));
68
+ const paramsToRemove = existingParams.filter(ep => !extractedParamNames.includes(ep.Name.toLowerCase()));
69
+ const promises = [];
70
+ // Add new parameters
71
+ for (const param of paramsToAdd) {
72
+ const newParam = await metadataProvider.GetEntityObject('MJ: Query Parameters', contextUser);
73
+ applyParameterValues(newParam, queryID, param);
74
+ promises.push(newParam.Save());
75
+ }
76
+ // Update existing parameters if properties changed
77
+ for (const existingParam of paramsToUpdate) {
78
+ const extractedParam = filteredParams.find(p => p.name.toLowerCase() === existingParam.Name.toLowerCase());
79
+ if (extractedParam && updateParameterIfChanged(existingParam, extractedParam)) {
80
+ promises.push(existingParam.Save());
81
+ }
82
+ }
83
+ // Remove stale parameters
84
+ for (const paramToRemove of paramsToRemove) {
85
+ promises.push(paramToRemove.Delete());
86
+ }
87
+ if (promises.length > 0) {
88
+ await Promise.all(promises);
89
+ }
90
+ }
91
+ catch (e) {
92
+ LogError(`Failed to sync parameters for query ${queryID}:`, e);
93
+ throw e;
94
+ }
95
+ }
96
+ /**
97
+ * Applies extracted parameter values to a new MJQueryParameterEntity.
98
+ */
99
+ function applyParameterValues(entity, queryID, param) {
100
+ entity.QueryID = queryID;
101
+ entity.Name = param.name;
102
+ const { type, isObject, isUnknown } = normalizeParamType(param.type);
103
+ if (isObject) {
104
+ console.log(`Parameter "${param.name}" is type "object", storing as "string" (runtime will handle object validation)`);
105
+ }
106
+ else if (isUnknown) {
107
+ console.warn(`Unknown parameter type "${param.type}" for parameter "${param.name}", defaulting to "string"`);
108
+ }
109
+ entity.Type = type;
110
+ entity.IsRequired = param.isRequired;
111
+ entity.DefaultValue = param.defaultValue;
112
+ entity.Description = param.description;
113
+ entity.SampleValue = param.sampleValue;
114
+ entity.DetectionMethod = 'AI';
115
+ }
116
+ /**
117
+ * Updates an existing parameter entity from extracted data if any property changed.
118
+ * Returns true if changes were detected (and the entity was mutated).
119
+ */
120
+ function updateParameterIfChanged(existing, extracted) {
121
+ let hasChanges = false;
122
+ const { type: targetType } = normalizeParamType(extracted.type);
123
+ if (existing.Type !== targetType) {
124
+ existing.Type = targetType;
125
+ hasChanges = true;
126
+ }
127
+ if (existing.IsRequired !== extracted.isRequired) {
128
+ existing.IsRequired = extracted.isRequired;
129
+ hasChanges = true;
130
+ }
131
+ if (existing.DefaultValue !== extracted.defaultValue) {
132
+ existing.DefaultValue = extracted.defaultValue;
133
+ hasChanges = true;
134
+ }
135
+ if (existing.Description !== extracted.description) {
136
+ existing.Description = extracted.description;
137
+ hasChanges = true;
138
+ }
139
+ if (existing.SampleValue !== extracted.sampleValue) {
140
+ existing.SampleValue = extracted.sampleValue;
141
+ hasChanges = true;
142
+ }
143
+ if (existing.DetectionMethod !== 'AI') {
144
+ existing.DetectionMethod = 'AI';
145
+ hasChanges = true;
146
+ }
147
+ return hasChanges;
148
+ }
149
+ // ---------------------------------------------------------------------------
150
+ // SyncFields
151
+ // ---------------------------------------------------------------------------
152
+ /**
153
+ * Synchronizes extracted query fields with the database.
154
+ * Expands wildcards, maps ExtractedField to MJQueryFieldEntity with sqlBaseType/sqlFullType override,
155
+ * handles add/update/remove.
156
+ */
157
+ export async function SyncFields(queryID, extractedFields, contextUser, metadataProvider, runViewProvider, isSaved) {
158
+ try {
159
+ const existingFields = await loadExistingRecords('MJ: Query Fields', queryID, runViewProvider, contextUser, isSaved);
160
+ const fieldNamesToSync = extractedFields.map(f => f.name.toLowerCase());
161
+ const fieldsToAdd = extractedFields.filter(f => !existingFields.some(ef => ef.Name.toLowerCase() === f.name.toLowerCase()));
162
+ const fieldsToUpdate = existingFields.filter(ef => extractedFields.some(f => f.name.toLowerCase() === ef.Name.toLowerCase()));
163
+ const fieldsToRemove = existingFields.filter(ef => !fieldNamesToSync.includes(ef.Name.toLowerCase()));
164
+ const promises = [];
165
+ // Add new fields
166
+ for (let i = 0; i < fieldsToAdd.length; i++) {
167
+ const field = fieldsToAdd[i];
168
+ const newField = await metadataProvider.GetEntityObject('MJ: Query Fields', contextUser);
169
+ applyFieldValues(newField, queryID, field, i + 1, metadataProvider);
170
+ promises.push(newField.Save());
171
+ }
172
+ // Update existing fields if properties changed
173
+ for (const existingField of fieldsToUpdate) {
174
+ const extractedField = extractedFields.find(f => f.name.toLowerCase() === existingField.Name.toLowerCase());
175
+ if (extractedField) {
176
+ const globalIndex = extractedFields.indexOf(extractedField);
177
+ if (updateFieldIfChanged(existingField, extractedField, globalIndex + 1, metadataProvider)) {
178
+ promises.push(existingField.Save());
179
+ }
180
+ }
181
+ }
182
+ // Remove stale fields
183
+ for (const fieldToRemove of fieldsToRemove) {
184
+ promises.push(fieldToRemove.Delete());
185
+ }
186
+ if (promises.length > 0) {
187
+ await Promise.all(promises);
188
+ }
189
+ }
190
+ catch (e) {
191
+ LogError(`Failed to sync fields for query ${queryID}:`, e);
192
+ throw e;
193
+ }
194
+ }
195
+ /**
196
+ * Applies extracted field values to a new MJQueryFieldEntity.
197
+ */
198
+ function applyFieldValues(entity, queryID, field, sequence, md) {
199
+ entity.QueryID = queryID;
200
+ entity.Name = field.name;
201
+ entity.Description = field.description;
202
+ entity.Sequence = sequence;
203
+ // Use deterministic SQL types when available, otherwise fall back to generic type mapping.
204
+ if (field.sqlBaseType && field.sqlFullType) {
205
+ entity.SQLBaseType = field.sqlBaseType;
206
+ entity.SQLFullType = field.sqlFullType;
207
+ }
208
+ else {
209
+ const { baseType, fullType } = defaultSQLTypesForField(field.type);
210
+ entity.SQLBaseType = baseType;
211
+ entity.SQLFullType = fullType;
212
+ }
213
+ entity.IsComputed = field.isComputed || field.dynamicName || false;
214
+ entity.IsSummary = field.isSummary || false;
215
+ if (field.computationDescription) {
216
+ entity.ComputationDescription = field.computationDescription;
217
+ }
218
+ // Set source entity tracking
219
+ if (field.sourceEntity) {
220
+ const sourceEntityInfo = findEntityByName(md, field.sourceEntity);
221
+ if (sourceEntityInfo) {
222
+ entity.SourceEntityID = sourceEntityInfo.ID;
223
+ }
224
+ }
225
+ entity.SourceFieldName = field.sourceFieldName || (field.dynamicName ? field.name : null);
226
+ }
227
+ /**
228
+ * Updates an existing field entity from extracted data if any property changed.
229
+ * Returns true if changes were detected (and the entity was mutated).
230
+ */
231
+ function updateFieldIfChanged(existing, extracted, sequence, md) {
232
+ let hasChanges = false;
233
+ if (existing.Description !== extracted.description) {
234
+ existing.Description = extracted.description;
235
+ hasChanges = true;
236
+ }
237
+ const newIsComputed = extracted.isComputed || extracted.dynamicName || false;
238
+ if (existing.IsComputed !== newIsComputed) {
239
+ existing.IsComputed = newIsComputed;
240
+ hasChanges = true;
241
+ }
242
+ const newIsSummary = extracted.isSummary || false;
243
+ if (existing.IsSummary !== newIsSummary) {
244
+ existing.IsSummary = newIsSummary;
245
+ hasChanges = true;
246
+ }
247
+ if (extracted.computationDescription && existing.ComputationDescription !== extracted.computationDescription) {
248
+ existing.ComputationDescription = extracted.computationDescription;
249
+ hasChanges = true;
250
+ }
251
+ // Update source entity tracking
252
+ if (extracted.sourceEntity) {
253
+ const sourceEntityInfo = findEntityByName(md, extracted.sourceEntity);
254
+ if (sourceEntityInfo && !UUIDsEqual(existing.SourceEntityID, sourceEntityInfo.ID)) {
255
+ existing.SourceEntityID = sourceEntityInfo.ID;
256
+ hasChanges = true;
257
+ }
258
+ }
259
+ else if (existing.SourceEntityID != null) {
260
+ existing.SourceEntityID = null;
261
+ hasChanges = true;
262
+ }
263
+ const newSourceFieldName = extracted.sourceFieldName || (extracted.dynamicName ? extracted.name : null);
264
+ if (existing.SourceFieldName !== newSourceFieldName) {
265
+ existing.SourceFieldName = newSourceFieldName;
266
+ hasChanges = true;
267
+ }
268
+ if (existing.Sequence !== sequence) {
269
+ existing.Sequence = sequence;
270
+ hasChanges = true;
271
+ }
272
+ // Update SQL types if deterministic types are available
273
+ if (extracted.sqlBaseType && extracted.sqlFullType) {
274
+ if (existing.SQLBaseType !== extracted.sqlBaseType) {
275
+ existing.SQLBaseType = extracted.sqlBaseType;
276
+ hasChanges = true;
277
+ }
278
+ if (existing.SQLFullType !== extracted.sqlFullType) {
279
+ existing.SQLFullType = extracted.sqlFullType;
280
+ hasChanges = true;
281
+ }
282
+ }
283
+ return hasChanges;
284
+ }
285
+ // ---------------------------------------------------------------------------
286
+ // SyncEntities
287
+ // ---------------------------------------------------------------------------
288
+ /**
289
+ * Synchronizes extracted entity metadata entries with QueryEntity records in the database.
290
+ * Matches by entity ID, handles add/remove.
291
+ */
292
+ export async function SyncEntities(queryID, entityMetadata, contextUser, metadataProvider, runViewProvider, isSaved) {
293
+ try {
294
+ const existingEntities = await loadExistingRecords('MJ: Query Entities', queryID, runViewProvider, contextUser, isSaved);
295
+ // Map extracted entries to MJ entity IDs
296
+ const entityMappings = entityMetadata
297
+ .map(extracted => {
298
+ const matchingEntity = metadataProvider.Entities.find(e => e.Name === extracted.name &&
299
+ e.SchemaName.toLowerCase() === extracted.schemaName.toLowerCase());
300
+ if (matchingEntity) {
301
+ return { extracted, entityID: matchingEntity.ID, entityName: matchingEntity.Name };
302
+ }
303
+ return null;
304
+ })
305
+ .filter((m) => m !== null);
306
+ const entitiesToAdd = entityMappings.filter(mapping => !existingEntities.some(ee => UUIDsEqual(ee.EntityID, mapping.entityID)));
307
+ const entitiesToRemove = existingEntities.filter(ee => !entityMappings.some(mapping => UUIDsEqual(mapping.entityID, ee.EntityID)));
308
+ const promises = [];
309
+ for (const mapping of entitiesToAdd) {
310
+ const newEntity = await metadataProvider.GetEntityObject('MJ: Query Entities', contextUser);
311
+ newEntity.QueryID = queryID;
312
+ newEntity.EntityID = mapping.entityID;
313
+ newEntity.DetectionMethod = 'AI';
314
+ newEntity.AutoDetectConfidenceScore = 1.0;
315
+ promises.push(newEntity.Save());
316
+ }
317
+ for (const entityToRemove of entitiesToRemove) {
318
+ promises.push(entityToRemove.Delete());
319
+ }
320
+ if (promises.length > 0) {
321
+ await Promise.all(promises);
322
+ }
323
+ }
324
+ catch (e) {
325
+ LogError(`Failed to sync entities for query ${queryID}:`, e);
326
+ throw e;
327
+ }
328
+ }
329
+ // ---------------------------------------------------------------------------
330
+ // SyncDependencies
331
+ // ---------------------------------------------------------------------------
332
+ /**
333
+ * Converts ResolvedCompositionReference[] to dependency records, checks for cycles, and syncs.
334
+ * Matches by DependsOnQueryID + ReferencePath for uniqueness.
335
+ */
336
+ export async function SyncDependencies(queryID, resolvedRefs, contextUser, metadataProvider, runViewProvider, isSaved) {
337
+ if (resolvedRefs.length === 0) {
338
+ await RemoveAllRecords(queryID, 'MJ: Query Dependencies', contextUser, runViewProvider, isSaved);
339
+ return;
340
+ }
341
+ // Map resolved refs to the shape needed for sync
342
+ const extractedDeps = resolvedRefs.map(ref => ({
343
+ dependsOnQueryID: ref.depQuery.ID,
344
+ referencePath: ref.referencePath,
345
+ alias: ref.alias,
346
+ parameterMapping: ref.parameterMapping,
347
+ }));
348
+ try {
349
+ const existingDeps = await loadExistingRecords('MJ: Query Dependencies', queryID, runViewProvider, contextUser, isSaved);
350
+ const depsToAdd = extractedDeps.filter(d => !existingDeps.some(ed => UUIDsEqual(ed.DependsOnQueryID, d.dependsOnQueryID) &&
351
+ ed.ReferencePath === d.referencePath));
352
+ const depsToUpdate = existingDeps.filter(ed => extractedDeps.some(d => UUIDsEqual(ed.DependsOnQueryID, d.dependsOnQueryID) &&
353
+ ed.ReferencePath === d.referencePath));
354
+ const depsToRemove = existingDeps.filter(ed => !extractedDeps.some(d => UUIDsEqual(ed.DependsOnQueryID, d.dependsOnQueryID) &&
355
+ ed.ReferencePath === d.referencePath));
356
+ const promises = [];
357
+ // Add new dependencies
358
+ for (const dep of depsToAdd) {
359
+ const newDep = await metadataProvider.GetEntityObject('MJ: Query Dependencies', contextUser);
360
+ newDep.QueryID = queryID;
361
+ newDep.DependsOnQueryID = dep.dependsOnQueryID;
362
+ newDep.ReferencePath = dep.referencePath;
363
+ newDep.Alias = dep.alias;
364
+ newDep.ParameterMapping = dep.parameterMapping ? JSON.stringify(dep.parameterMapping) : null;
365
+ newDep.DetectionMethod = 'Auto';
366
+ promises.push(newDep.Save());
367
+ }
368
+ // Update existing dependencies if properties changed
369
+ for (const existingDep of depsToUpdate) {
370
+ const extractedDep = extractedDeps.find(d => UUIDsEqual(existingDep.DependsOnQueryID, d.dependsOnQueryID) &&
371
+ existingDep.ReferencePath === d.referencePath);
372
+ if (extractedDep && updateDependencyIfChanged(existingDep, extractedDep)) {
373
+ promises.push(existingDep.Save());
374
+ }
375
+ }
376
+ // Remove stale dependencies
377
+ for (const depToRemove of depsToRemove) {
378
+ promises.push(depToRemove.Delete());
379
+ }
380
+ if (promises.length > 0) {
381
+ await Promise.all(promises);
382
+ }
383
+ }
384
+ catch (e) {
385
+ LogError(`Failed to sync dependencies for query ${queryID}:`, e);
386
+ throw e;
387
+ }
388
+ }
389
+ /**
390
+ * Updates an existing dependency entity from extracted data if any property changed.
391
+ * Returns true if changes were detected (and the entity was mutated).
392
+ */
393
+ function updateDependencyIfChanged(existing, extracted) {
394
+ let hasChanges = false;
395
+ if (existing.Alias !== extracted.alias) {
396
+ existing.Alias = extracted.alias;
397
+ hasChanges = true;
398
+ }
399
+ const newMapping = extracted.parameterMapping ? JSON.stringify(extracted.parameterMapping) : null;
400
+ if (existing.ParameterMapping !== newMapping) {
401
+ existing.ParameterMapping = newMapping;
402
+ hasChanges = true;
403
+ }
404
+ return hasChanges;
405
+ }
406
+ // ---------------------------------------------------------------------------
407
+ // RemoveAllRecords
408
+ // ---------------------------------------------------------------------------
409
+ /**
410
+ * Generic removal: deletes all records of a given entity type that belong to a query.
411
+ * Used for cleanup when SQL is empty or when no items of a type remain.
412
+ */
413
+ export async function RemoveAllRecords(queryID, entityName, contextUser, runViewProvider, isSaved) {
414
+ try {
415
+ if (!isSaved)
416
+ return;
417
+ const existingResult = await runViewProvider.RunView({
418
+ EntityName: entityName,
419
+ ExtraFilter: `QueryID='${queryID}'`,
420
+ ResultType: 'entity_object'
421
+ }, contextUser);
422
+ if (!existingResult.Success) {
423
+ throw new Error(`Failed to load existing ${entityName}: ${existingResult.ErrorMessage}`);
424
+ }
425
+ const records = existingResult.Results || [];
426
+ const deletePromises = records.map((record) => record.Delete());
427
+ if (deletePromises.length > 0) {
428
+ await Promise.all(deletePromises);
429
+ }
430
+ }
431
+ catch (e) {
432
+ LogError(`Failed to remove ${entityName} for query ${queryID}:`, e);
433
+ throw e;
434
+ }
435
+ }
436
+ // ---------------------------------------------------------------------------
437
+ // Shared utilities
438
+ // ---------------------------------------------------------------------------
439
+ /**
440
+ * Loads all existing records of a given entity type for a query.
441
+ * Returns an empty array if the query has not been saved yet.
442
+ */
443
+ async function loadExistingRecords(entityName, queryID, runViewProvider, contextUser, isSaved) {
444
+ if (!isSaved)
445
+ return [];
446
+ const result = await runViewProvider.RunView({
447
+ EntityName: entityName,
448
+ ExtraFilter: `QueryID='${queryID}'`,
449
+ ResultType: 'entity_object'
450
+ }, contextUser);
451
+ if (!result.Success) {
452
+ throw new Error(`Failed to load existing ${entityName}: ${result.ErrorMessage}`);
453
+ }
454
+ return result.Results || [];
455
+ }
456
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/custom/query-extraction/sync.ts"],"names":[],"mappings":"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"}