@iebh/tera-fy 2.0.21 → 2.2.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 (75) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/api.md +68 -66
  3. package/dist/lib/projectFile.d.ts +182 -0
  4. package/dist/lib/projectFile.js +157 -0
  5. package/dist/lib/projectFile.js.map +1 -0
  6. package/dist/lib/syncro/entities.d.ts +28 -0
  7. package/dist/lib/syncro/entities.js +203 -0
  8. package/dist/lib/syncro/entities.js.map +1 -0
  9. package/dist/lib/syncro/keyed.d.ts +95 -0
  10. package/dist/lib/syncro/keyed.js +286 -0
  11. package/dist/lib/syncro/keyed.js.map +1 -0
  12. package/dist/lib/syncro/syncro.d.ts +328 -0
  13. package/dist/lib/syncro/syncro.js +633 -0
  14. package/dist/lib/syncro/syncro.js.map +1 -0
  15. package/dist/lib/terafy.bootstrapper.d.ts +42 -0
  16. package/dist/lib/terafy.bootstrapper.js +130 -0
  17. package/dist/lib/terafy.bootstrapper.js.map +1 -0
  18. package/dist/lib/terafy.client.d.ts +532 -0
  19. package/dist/lib/terafy.client.js +1110 -0
  20. package/dist/lib/terafy.client.js.map +1 -0
  21. package/dist/lib/terafy.proxy.d.ts +66 -0
  22. package/dist/lib/terafy.proxy.js +123 -0
  23. package/dist/lib/terafy.proxy.js.map +1 -0
  24. package/dist/lib/terafy.server.d.ts +607 -0
  25. package/dist/lib/terafy.server.js +1774 -0
  26. package/dist/lib/terafy.server.js.map +1 -0
  27. package/dist/plugin.vue2.es2019.js +30 -13
  28. package/dist/plugins/base.d.ts +20 -0
  29. package/dist/plugins/base.js +21 -0
  30. package/dist/plugins/base.js.map +1 -0
  31. package/dist/plugins/firebase.d.ts +62 -0
  32. package/dist/plugins/firebase.js +111 -0
  33. package/dist/plugins/firebase.js.map +1 -0
  34. package/dist/plugins/vite.d.ts +12 -0
  35. package/dist/plugins/vite.js +22 -0
  36. package/dist/plugins/vite.js.map +1 -0
  37. package/dist/plugins/vue2.d.ts +68 -0
  38. package/dist/plugins/vue2.js +96 -0
  39. package/dist/plugins/vue2.js.map +1 -0
  40. package/dist/plugins/vue3.d.ts +64 -0
  41. package/dist/plugins/vue3.js +96 -0
  42. package/dist/plugins/vue3.js.map +1 -0
  43. package/dist/terafy.bootstrapper.es2019.js +2 -2
  44. package/dist/terafy.bootstrapper.js +2 -2
  45. package/dist/terafy.es2019.js +2 -2
  46. package/dist/terafy.js +1 -1
  47. package/dist/utils/mixin.d.ts +11 -0
  48. package/dist/utils/mixin.js +15 -0
  49. package/dist/utils/mixin.js.map +1 -0
  50. package/dist/utils/pDefer.d.ts +12 -0
  51. package/dist/utils/pDefer.js +14 -0
  52. package/dist/utils/pDefer.js.map +1 -0
  53. package/dist/utils/pathTools.d.ts +70 -0
  54. package/dist/utils/pathTools.js +120 -0
  55. package/dist/utils/pathTools.js.map +1 -0
  56. package/eslint.config.js +44 -8
  57. package/lib/{projectFile.js → projectFile.ts} +83 -40
  58. package/lib/syncro/entities.ts +288 -0
  59. package/lib/syncro/{keyed.js → keyed.ts} +114 -57
  60. package/lib/syncro/{syncro.js → syncro.ts} +204 -169
  61. package/lib/{terafy.bootstrapper.js → terafy.bootstrapper.ts} +49 -31
  62. package/lib/{terafy.client.js → terafy.client.ts} +94 -86
  63. package/lib/{terafy.proxy.js → terafy.proxy.ts} +43 -16
  64. package/lib/{terafy.server.js → terafy.server.ts} +364 -223
  65. package/package.json +65 -26
  66. package/plugins/{base.js → base.ts} +3 -1
  67. package/plugins/{firebase.js → firebase.ts} +34 -16
  68. package/plugins/{vite.js → vite.ts} +3 -3
  69. package/plugins/{vue2.js → vue2.ts} +17 -10
  70. package/plugins/{vue3.js → vue3.ts} +11 -9
  71. package/tsconfig.json +30 -0
  72. package/utils/{mixin.js → mixin.ts} +1 -1
  73. package/utils/{pDefer.js → pDefer.ts} +10 -3
  74. package/utils/{pathTools.js → pathTools.ts} +11 -9
  75. package/lib/syncro/entities.js +0 -232
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terafy.client.js","sourceRoot":"","sources":["../../lib/terafy.client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,WAAW,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAC,MAAM,EAAC,MAAM,QAAQ,CAAC;AAC9B,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAE3C,wBAAwB;AAGxB;;;;EAIE;AACF,MAAM,CAAC,OAAO,OAAO,MAAM;IAsK1B,2DAA2D;IAE3D;;;;;MAKE;IACF,IAAI,CAAC,OAAY;QAChB,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;QAElB,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,gCAAgC;QAC/D,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAClE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE;gBACvC,OAAO,EAAE,MAAM;aACf,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC;gBACZ,EAAE;gBACF,GAAG,OAAO;aACV,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC;IACzC,CAAC;IAGD;;;;;MAKE;IACF,OAAO,CAAC,OAAY;QACnB,IAAI,OAAY,CAAC;QACjB,IAAI,CAAC;YACJ,OAAO,GAAG;gBACT,IAAI,EAAE,CAAC;gBACP,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,MAAM,EAAE;gBAC1B,GAAG,SAAS,CAAC,OAAO,CAAC,EAAE,2CAA2C;aAClE,CAAC;YAEF,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC;gBACpC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YAClE,CAAC;iBAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC;gBAC1C,IAAI,CAAC,GAAG,CAAC,MAAO,CAAC,aAAc,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YACpF,CAAC;iBAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC;gBAC1C,IAAI,CAAC,GAAG,CAAC,KAAM,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YACpE,CAAC;iBAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAC3C,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;YACjG,CAAC;iBAAM,CAAC;gBACP,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;YAC5E,CAAC;QACF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,iCAAiC,EAAE,CAAC,CAAC,CAAC;YAC7D,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,8CAA8C,EAAE,OAAO,CAAC,CAAC;YAChF,MAAM,CAAC,CAAC;QACT,CAAC;IACF,CAAC;IAGD;;;;;;;MAOE;IACF,GAAG,CAAC,MAAW,EAAE,GAAG,IAAW;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC;YAChB,MAAM,EAAE,KAAK;YACb,MAAM;YACN,IAAI;SACJ,CAAC,CAAC;IACJ,CAAC;IAGD;;;;;;MAME;IACF,aAAa,CAAC,UAAe;QAC5B,IAAI,UAAU,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM;YAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,uBAAuB;QAElG,IAAI,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE;YAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,kCAAkC;QAC9F,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC;QAEnD,IAAI,OAAO,EAAE,MAAM,IAAI,UAAU,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,4BAA4B;YACpG,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBAC9B,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC5D,CAAC;YACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC;aAAM,IAAI,OAAO,EAAE,MAAM,IAAI,KAAK,EAAE,CAAC;YACrC,OAAO,OAAO,CAAC,OAAO,EAAE;iBACtB,IAAI,CAAC,GAAE,EAAE,CAAE,IAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,IAAa,CAAC,CAAC;iBAC3E,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;gBACzB,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,MAAM,EAAE,UAAU;gBAClB,QAAQ,EAAE,GAAG;aACb,CAAC,CAAC;iBACF,KAAK,CAAC,CAAC,CAAC,EAAE;gBACV,OAAO,CAAC,IAAI,CAAC,+BAA+B,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;gBAClE,IAAI,CAAC,OAAO,CAAC;oBACZ,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,MAAM,EAAE,UAAU;oBAClB,OAAO,EAAE,IAAI;oBACb,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;iBAC9B,CAAC,CAAC;YACJ,CAAC,CAAC,CAAA;QACJ,CAAC;aAAM,IAAI,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,CAAC;YACvC,OAAO,OAAO,CAAC,OAAO,EAAE;iBACtB,IAAI,CAAC,GAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAI,OAAO,CAAC,OAAc,CAAC,CAAC;iBACtE,KAAK,CAAC,CAAC,CAAC,EAAE;gBACV,OAAO,CAAC,IAAI,CAAC,sDAAsD,OAAO,CAAC,KAAK,GAAG,EAAE,EAAC,OAAO,EAAC,CAAC,CAAC;gBAChG,MAAM,CAAC,CAAC;YACT,CAAC,CAAC,CAAA;QACJ,CAAC;aAAM,IAAI,OAAO,EAAE,EAAE,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,uBAAuB,OAAO,CAAC,EAAE,gCAAgC,CAAC,CAAC;YACzF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,4CAA4C,EAAE,EAAC,OAAO,EAAC,CAAC,CAAC;YAC/E,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC;IACF,CAAC;IAQD,MAAM;IAEN,+DAA+D;IAC/D;;;;;;;;MAQE;IACF,cAAc,CAAC,IAAS;QACvB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QACvG,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,kBAAkB;QAE5F,OAAO,OAAO,CAAC,OAAO,EAAE;aACtB,IAAI,CAAC,GAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;aACrC,IAAI,CAAC,GAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,0BAA0B,IAAI,+CAA+C,CAAC,CAAC,CAAA;IACpI,CAAC;IAGD;;;;;;;MAOE;IACF,eAAe,CAAC,IAAS;QACxB,OAAO,CAAC,IAAI,CAAC,sIAAsI,CAAC,CAAC;QACrJ,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC9D,CAAC;IAGD;;;;;;;;;MASE;IACF,gBAAgB,CAAC,IAAS;QACzB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,oBAAoB;QAC1E,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAGD;;;;;;;MAOE;IACF,iBAAiB,CAAC,IAAS;QAC1B,OAAO,CAAC,IAAI,CAAC,sIAAsI,CAAC,CAAC;IACtJ,CAAC;IACD,MAAM;IAEN,8CAA8C;IAE9C;;;;MAIE;IACF,YAAY,OAAa;QAtXzB;;;;;;;;;;;;;;;;;UAiBE;QACF,aAAQ,GAAG;YACV,OAAO,EAAE,IAAqB;YAC9B,2DAA2D;YAC3D,2DAA2D;YAC3D,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,CAAC;YACZ,IAAI,EAAE,QAAmD;YACzD,WAAW,EAAE,GAAG;YAChB,YAAY,EAAE,OAAO,EAAE,2DAA2D;YAClF,aAAa,EAAE;gBACd,KAAK,CAAC,MAAW;oBAChB,IAAI,MAAM,CAAC,OAAO,IAAI,8BAA8B,EAAE,CAAC,CAAC,yCAAyC;wBAChG,MAAM,CAAC,OAAO,GAAG,kCAAkC,CAAC,CAAC,0BAA0B;oBAChF,CAAC;gBACF,CAAC;aAC2C;YAC7C,OAAO,EAAE,8BAA8B;YACvC,cAAc,EAAE,GAAG;YACnB,YAAY,EAAE;gBACb,aAAa;gBACb,cAAc;gBACd,wBAAwB;gBACxB,oBAAoB;gBACpB,cAAc;gBACd,gCAAgC;gBAChC,oBAAoB;gBACpB,mBAAmB;gBACnB,eAAe;gBACf,sBAAsB;aACtB;YACD,iBAAiB,EAAE,IAAK,EAAE,MAAM;YAChC,gBAAgB,EAAE,KAAM,EAAE,OAAO;YACjC,UAAU,EAAE,IAA4C,EAAE,yEAAyE;SACnI,CAAC;QAGF;;;UAGE;QACF,aAAa;QACb,WAAM,GAAG,IAAI,EAAE,CAAC;QAGhB;;;;;;;;UAQE;QACF,QAAG,GAAG;YACL,EAAE,EAAE,IAA6B;YACjC,MAAM,EAAE,IAAgC;YACxC,KAAK,EAAE,IAAqB;YAC5B,UAAU,EAAE,IAA+B;SAC3C,CAAC;QAGF;;;;;UAKE;QACF,YAAO,GAAG;YACT,WAAW;YACX,WAAW;YACX,oBAAoB;YAEpB,UAAU;YACV,SAAS;YACT,aAAa;YACb,gBAAgB;YAEhB,WAAW;YACX,aAAa;YACb,YAAY;YACZ,aAAa;YACb,kBAAkB;YAClB,gBAAgB;YAChB,eAAe;YAEf,qBAAqB;YACrB,+CAA+C;YAC/C,iDAAiD;YACjD,cAAc;YACd,cAAc;YACd,gBAAgB;YAEhB,gBAAgB;YAChB,iBAAiB;YACjB,iBAAiB;YACjB,yBAAyB;YACzB,wBAAwB;YAExB,gBAAgB;YAChB,0FAA0F;YAC1F,wFAAwF;YACxF,4EAA4E;YAC5E,wBAAwB;YACxB,+EAA+E;YAC/E,mBAAmB;YACnB,wBAAwB;YAExB,oBAAoB;YACpB,sBAAsB;YACtB,mBAAmB;YACnB,mBAAmB;YAEnB,kBAAkB;YAClB,YAAY;YAEZ,WAAW;YACX,SAAS;YAET,KAAK;YACL,SAAS;YACT,WAAW;YACX,SAAS;YACT,YAAY;YACZ,UAAU;YACV,SAAS;YACT,SAAS;YACT,UAAU;SACD,CAAC;QAGX;;;UAGE;QACF,YAAO,GAAU,EAAE,CAAC;QAGpB;;;;;;UAME;QACF,eAAU,GAA2B,EAAE,CAAC;QAuIxC;;UAEE;QACF,oBAAe,GAA2B,EAAE,CAAC;QA8ErC,gBAAW,GAA2B,IAAI,CAAC;QAHlD,IAAI,OAAO;YAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAID;;;;;;MAME;IACF,IAAI,CAAC,OAAa;QACjB,IAAI,OAAO;YAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,2CAA2C;QAE1F,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAElE,MAAM,OAAO,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE;aAClC,IAAI,CAAC,GAAE,EAAE,wBAAC,IAAI,CAAC,QAAQ,EAAC,OAAO,QAAP,OAAO,GAAK,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,IAAA,CAAC;aACxE,IAAI,CAAC,GAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;aAClH,IAAI,CAAC,GAAE,EAAE;YACT,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO;gBAAE,OAAO,CAAC,kBAAkB;YACtD,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;gBAC9B,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAI,IAAI,CAAC,QAAQ,CAAC,UAAoB,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAChF,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,wCAAwC;oBAC7E,CAAC,CAAC,OAAO,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,oCAAoC;wBACrE,CAAC,CAAC,CAAC,GAAE,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAA,CAAC,CAAC,CAAC,EAAE,CACrG,CAAA;YACF,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC;YACjC,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,sBAAsB,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACzE,CAAC,CAAC;aACD,IAAI,CAAC,GAAE,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;aAC5B,IAAI,CAAC,IAAI,CAAC,EAAE;YACZ,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,8BAA8B,EAAE,IAAI,CAAC,CAAC;YAC5D,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;YAE1B,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,mDAAmD,EAAE,IAAI,CAAC,CAAC;gBACjF,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzD,CAAC;QACF,CAAC,CAAC;aACD,IAAI,CAAC,GAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,0CAA0C,CAAC,CAAC;aAC5E,IAAI,CAAC,GAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;YACtB,4BAA4B;YAC5B,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,aAAa,EAAE;SACpB,CAAC,CAAC;aACF,IAAI,CAAC,GAAE,EAAE;YACT,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAG,CAAC,EAAE,CAAC;gBACjC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,+CAA+C,CAAC,CAAC;gBACvE,OAAO;YACR,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,iCAAiC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;gBAClF,OAAO,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAChE,CAAC;QACF,CAAC,CAAC;aACD,IAAI,CAAC,GAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,6BAA6B,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;aACpF,IAAI,CAAC,GAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,+BAA+B;QACnE,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,UAAU;YAC1C,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,OAAO;gBAC1C,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO;oBACzC,CAAC,CAAC,CAAC,GAAE,EAAE,GAAG,MAAK,CAAC,wBAAwB,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAA,CAAC,CAAC,CAAC,EAAE,CACnE,CAAC;aACD,IAAI,CAAC,GAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,0BAA0B,CAAC,CAAC;aAC5D,IAAI,CAAC,GAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAE,2DAA2D;QAClF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CACzB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CACxC,CACD,CAAC;aACD,IAAI,CAAC,GAAE,EAAE;YACT,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,qBAAqB,CAAC,CAAC;YAC7C,OAAO,OAAO,CAAC,CAAC,4BAA4B;QAC7C,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,EAAE;YACV,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC;YAC/C,MAAM,CAAC,CAAC,CAAC,WAAW;QACrB,CAAC,CAAC,CAAC;QAEJ,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IAID;;;;;MAKE;IACF,UAAU;QACT,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC,CAAC,yCAAyC;YAC9E,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,mCAAmC;YAC9E,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAiC,CAAC,CAAC;QACzE,CAAC;aAAM,CAAC,CAAC,0BAA0B;YAClC,OAAO,OAAO,CAAC,OAAO,EAAE;iBACtB,IAAI,CAAC,GAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,2BAA2B;iBACpE,IAAI,CAAC,GAAE,EAAE,CAAC,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAChD,IAAI,aAAa,GAAG,UAAU,CAAC,GAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBAElF,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;qBACnB,IAAI,CAAC,GAAE,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;qBACtC,IAAI,CAAC,GAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;qBAC7B,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,uBAAuB;YACzC,CAAC,CAAC,CAAC;iBACF,IAAI,CAAC,GAAE,EAAE,CAAC,QAAoB,CAAC;iBAC/B,KAAK,CAAC,GAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAiC,CAAC,CAAA;QAC9D,CAAC;IACF,CAAC;IAGD;;;;MAIE;IACF,WAAW;QACV,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC5B,KAAK,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC,OAAO,EAAE;iBACpC,IAAI,CAAC,GAAE,EAAE,CAAC,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;gBACtC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,qCAAqC,CAAC,CAAC;gBAE7D,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;gBAC3C,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC;gBAC3B,IAAI,CAAC,GAAG,CAAC,EAAG,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACjE,IAAI,CAAC,GAAG,CAAC,EAAG,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACxC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAG,CAAC,CAAC;gBAEnC,IAAI,CAAC,GAAG,CAAC,EAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAG,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;gBAExF,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;gBAElD,2CAA2C;gBAC3C,IAAI,CAAC,GAAG,CAAC,MAAO,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC/E,IAAI,CAAC,GAAG,CAAC,MAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAE,EAAE;oBAC7C,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,sBAAsB,CAAC,CAAC;oBAC9C,OAAO,CAAC,SAAS,CAAC,CAAC;gBACpB,CAAC,CAAC,CAAC;gBAEH,+CAA+C;gBAC/C,IAAI,CAAC,GAAG,CAAC,MAAO,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAC7C,IAAI,CAAC,GAAG,CAAC,EAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAO,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;iBACF,IAAI,CAAC,GAAE,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAA;YAEjC,KAAK,QAAQ;gBACZ,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,0BAA0B,CAAC,CAAC;gBAClD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;YAE1B,KAAK,OAAO;gBACX,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,uCAAuC,CAAC,CAAC;gBAC/D,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,+EAA+E,CAAC,CAAC;gBAE/I,OAAO,IAAI,CAAC,aAAa,EAAE;qBACzB,IAAI,CAAC,GAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,iCAAiC,CAAC,CAAC,CAAA;YAEtE;gBACC,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,CAAC,QAAQ,CAAC,IAAI,8BAA8B,CAAC,CAAC;QACzF,CAAC;IACF,CAAC;IAGD;;;;;;;;MAQE;IACF,aAAa,CAAC,OAAa;QAC1B,IAAI,QAAQ,GAAG;YACd,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,iBAAiB;YAClD,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB;YAChD,GAAG,OAAO;SACV,CAAC;QAEF,oDAAoD;QACpD,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC5C,IAAI,cAAc,GAAG,CAAC,CAAC;YACvB,IAAI,cAAmB,CAAC;YAExB,IAAI,gBAAgB,GAAG,UAAU,CAAC,GAAE,EAAE;gBACrC,YAAY,CAAC,cAAc,CAAC,CAAC;gBAC7B,MAAM,CAAC,SAAS,CAAC,CAAC;YACnB,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;YAE9B,MAAM,YAAY,GAAG,GAAE,EAAE;gBACxB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,kBAAkB,EAAE,EAAE,cAAc,CAAC,CAAC;gBAE5D,YAAY,CAAC,cAAc,CAAC,CAAC;gBAC7B,cAAc,GAAG,UAAU,CAAC,YAAY,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC;gBAEtE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;qBACnB,IAAI,CAAC,GAAE,EAAE;oBACT,YAAY,CAAC,gBAAgB,CAAC,CAAC;oBAC/B,YAAY,CAAC,cAAc,CAAC,CAAC;gBAC9B,CAAC,CAAC;qBACD,IAAI,CAAC,GAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;qBAC7B,KAAK,CAAC,MAAM,CAAC,CAAA,CAAC,2BAA2B;YAC5C,CAAC,CAAC;YACF,YAAY,EAAE,CAAC,CAAC,6BAA6B;QAC9C,CAAC,CAAC,CAAC;IACJ,CAAC;IAGD;;;;MAIE;IACF,gBAAgB;QACf,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC5B,KAAK,OAAO;gBACX,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBACtD,IAAI,CAAC,GAAG,CAAC,UAAW,CAAC,SAAS,GAAG;oBAChC,SAAS;oBACR,yBAAyB;oBAC1B,GAAG;oBAEH,YAAY;oBACX,gBAAgB;oBAChB,kBAAkB;oBAClB,cAAc;oBACd,eAAe;oBACf,eAAe;oBACf,gBAAgB;oBAChB,0BAA0B;oBAE1B,2CAA2C;oBAC3C,iDAAiD;oBAChD,4CAA4C;oBAC5C,eAAe;oBACf,aAAa;oBACb,cAAc;oBACd,cAAc;oBACd,eAAe;oBACf,oCAAoC;oBAEpC,kBAAkB;oBAElB,eAAe;oBACf,+BAA+B;oBAC/B,2CAA2C;oBAC3C,4CAA4C;oBAE5C,gBAAgB;oBAChB,0BAA0B;oBAC1B,sBAAsB;oBAEtB,aAAa;oBACZ,oBAAoB;oBACpB,gBAAgB;oBAChB,cAAc;oBACf,GAAG;oBAEH,WAAW;oBACV,aAAa;oBACd,GAAG;oBAEH,cAAc;oBACb,gBAAgB;oBACjB,GAAG;oBACJ,GAAG;oBAEH,8CAA8C;oBAC7C,aAAa;oBACZ,gBAAgB;oBAChB,sBAAsB;oBACtB,0BAA0B;oBAE1B,kBAAkB;oBAElB,4CAA4C;oBAC5C,eAAe;oBACf,oCAAoC;oBAEpC,qBAAqB;oBACrB,aAAa;oBACb,cAAc;oBACd,cAAc;oBACd,eAAe;oBAEf,oBAAoB;oBACpB,eAAe;oBACf,cAAc;oBAEd,eAAe;oBACf,+BAA+B;oBAC/B,2CAA2C;oBAC3C,4CAA4C;oBAC7C,GAAG;oBAGH,mBAAmB;oBAClB,aAAa;oBACd,GAAG;oBACJ,GAAG;oBACH,MAAM;oBAEN,cAAc;oBACb,gBAAgB;oBAChB,uCAAuC;oBACvC,mBAAmB;oBACpB,GAAG;oBAEH,cAAc;oBACb,cAAc;oBACd,eAAe;oBAChB,GAAG;oBACJ,GAAG;oBAEH,+BAA+B;oBAC/B,sBAAsB;oBACrB,mBAAmB;oBAEnB,cAAc;oBACb,2BAA2B;oBAC3B,6BAA6B;oBAC7B,sBAAsB;oBACtB,0BAA0B;oBAC1B,2BAA2B;oBAC3B,uBAAuB;oBACvB,4BAA4B;oBAC7B,GAAG;oBACJ,GAAG;oBACH,MAAM;iBACN,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACb,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,UAAW,CAAC,CAAC;gBAChD,MAAM;YACP,KAAK,QAAQ,CAAC;YACd,KAAK,OAAO;gBACX,MAAM;YACP;gBACC,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,CAAC,QAAQ,CAAC,IAAI,2BAA2B,CAAC,CAAC;QACtF,CAAC;QAED,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;IAGD;;MAEE;IACF,aAAa;QACZ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAC5B,IAAY,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CACnD,CAAC;IACH,CAAC;IACD,MAAM;IAEN,gHAAgH;IAEhH,4CAA4C;IAC5C;;;;;;;MAOE;IACF,KAAK,CAAC,GAAG,GAAU;QAClB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,CAAC;YAAE,OAAO,CAAC,wBAAwB;QAC3F,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,4DAA4D;QAC5D,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,QAAQ,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACpF,MAAM,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC;QAED,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC;YAC/B,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YACtB,GAAG,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;QACD,MAAM;QAEN,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,YAAY;YAAE,OAAO,CAAC,gEAAgE;QAEnH,OAAe,CAAC,MAAM,CAAC,CACvB,oBAAoB,EACpB,oCAAoC,EACpC,GAAG,GAAG,CACN,CAAC;IACH,CAAC;IACD,mBAAmB;IAGnB;;;;;;;;;;;MAWE;IACF,GAAG,CAAC,GAAoB,EAAE,KAAW,EAAE,OAAqC;QAC3E,IAAI,QAAQ,GAAG;YACd,aAAa,EAAE,IAAI;YACnB,GAAG,OAAO;SACV,CAAC;QAEF,IAAI,OAAO,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC5B,IAAI,CAAC,QAAQ,CAAC,aAAa,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;gBACpE,IAAI,CAAC,QAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtC,CAAC;aAAM,CAAC;YACP,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACnC,CAAC;QAED,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAkB,CAAC,CAAC;IAC7D,CAAC;IAGD;;;;;;;;;MASE;IACF,QAAQ,CAAC,GAAQ,EAAE,KAAU,EAAE,OAAa;QAC3C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAC/D,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IAGD;;;;;;;MAOE;IACF,GAAG,CAAC,MAAW,EAAE,OAAa;QAC7B,IAAI,GAAG,GACN,OAAO,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC;YACvD,CAAC,CAAC,OAAO,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM;gBACpC,CAAC,CAAC,OAAO,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAE,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA,CAAC,CAAC,CAAC,EAAE;oBAC9F,CAAC,CAAC,CAAC,GAAE,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAA,CAAC,CAAC,CAAC,EAAE,CAAC;QAE9F,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAEtB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACb,CAAC;IAGD;;;;;MAKE;IACF,KAAK,CAAC,MAAW,EAAE,MAAW;QAC7B,sEAAsE;QACtE,IAAI,cAAc,GAAG,EAAE,CAAC;QACxB,IAAI,IAAI,GAAG,MAAM,CAAC;QAClB,GAAG,CAAC;YACH,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC,QAAQ,IAAI,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,6DAA6D;QAE3G,8DAA8D;QAC9D,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAC9B,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC;aAC/B,MAAM,CAAC,IAAI,CAAC,EAAE,CACd,CAAC,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,8BAA8B;eACxF,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,2CAA2C;SACrE;aACA,OAAO,CAAC,IAAI,CAAC,EAAE;YACf,IAAI,OAAQ,MAAc,CAAC,IAAI,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC,kFAAkF;gBACnI,MAAM,CAAC,cAAc,CACpB,MAAM,EACN,IAAI,EACJ;oBACC,UAAU,EAAE,KAAK;oBACjB,KAAK,EAAG,MAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,mBAAmB;iBAC9D,CACD,CAAC;YACH,CAAC;iBAAM,CAAC,CAAC,6CAA6C;gBACrD,MAAM,CAAC,IAAI,CAAC,GAAI,MAAc,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC;QACF,CAAC,CAAC,CACH,CAAA;IACF,CAAC;IAGD;;;;;;;;;;MAUE;IACF,aAAa,CAAC,iBAA+C,QAAQ;QACpE,IAAI,cAAc,KAAK,QAAQ,EAAE,CAAC;YACjC,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAChD,CAAC;aAAM,IAAI,cAAc,KAAK,OAAO,EAAE,CAAC;YACvC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAC5B,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,6BAA6B;gBACtC,IAAI,EAAE,OAAO;aACb,CAAC,CAAC;QACJ,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAE,cAAc,CAAC;QAC3C,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO;YACxB,IAAI,CAAC,QAAQ,CAAC,cAAc,GAAG,GAAG,CAAC,CAAC,6BAA6B;QAElE,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,+BAA+B;YAChD,IAAI,CAAC,GAAG,CAAC,EAAG,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAElE,OAAO,IAAI,CAAC;IACb,CAAC;IAGD;;;;;MAKE;IACF,WAAW,CAAC,YAAgC,QAAQ;QACnD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,eAAe,EAAE,EAAC,SAAS,EAAC,CAAC,CAAC;QACpD,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,EAAE,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC5G,CAAC;IAID;;;;;MAKE;IACF,iBAAiB,CAAC,SAAS,GAAG,EAAE;QAC/B,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;aAC/D,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,4BAA4B;aACjD,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA,CAAC,OAAO;IAC9B,CAAC;IACD,MAAM;IAEN,8DAA8D;IAC9D;;;;;;MAME;IAGF;;;;;MAKE;IAGF;;;;;;;;MAQE;IAGF;;;;;;;MAOE;IAGF;;;;;MAKE;IAGF;;;;;;;;;;;MAWE;IAGF;;;;;;MAME;IAGF;;;;;MAKE;IAGF;;;;;MAKE;IAGF;;;;;MAKE;IAGF;;;;;MAKE;IAGF;;;;;;;;;;;;MAYE;IAGF;;;;;;;;;;MAUE;IAGF;;;;;;;;MAQE;IAGF;;;;;;;;;;;MAWE;IAGF;;;;;;MAME;IAGF;;;;;;;;;MASE;IAGF;;;;;;;;;;;;;;;MAeE;IAGF;;;;;;;;;;MAUE;IAGF;;;;;;MAME;IAGF;;;;;;;;MAQE;IAGF;;;;;;;;;;;;;;;;;MAiBE;IACF,iBAAiB,CAAC,OAAa;QAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,OAAO,CAAC;aAC3C,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI;YACxB,CAAC,CAAC,IAAI,WAAW,CAAC;gBACjB,IAAI,EAAE,IAAI;gBACV,GAAG,IAAI;aACP,CAAC;YACF,CAAC,CAAC,IAAI,CACN,CAAA;IACH,CAAC;IAGD;;;;;;;;;;MAUE;IACF,eAAe,CAAC,OAAa;QAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC;aACzC,IAAI,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAC7C,IAAI,WAAW,CAAC;YACf,IAAI,EAAE,IAAI;YACV,GAAG,IAAI;SACP,CAAC,CACF,CAAC,CAAA;IACJ,CAAC;IAGD;;;;;;;;;MASE;IAGF;;;;;;;;;;;MAWE;IACF,cAAc,CAAC,EAAO,EAAE,OAAa;QACpC,OAAO,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,EAAE,OAAO,CAAC;aAC5C,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI;YACxB,CAAC,CAAC,IAAI,WAAW,CAAC;gBACjB,IAAI,EAAE,IAAI;gBACV,GAAG,IAAI;aACP,CAAC;YACF,CAAC,CAAC,IAAI,CACN,CAAA;IACH,CAAC;IAGD;;;;;;;MAOE;IACF,iBAAiB,CAAC,IAAS;QAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC;aACxC,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI;YACxB,CAAC,CAAC,IAAI,WAAW,CAAC;gBACjB,IAAI,EAAE,IAAI;gBACV,GAAG,IAAI;aACP,CAAC;YACF,CAAC,CAAC,IAAI,CACN,CAAA;IACH,CAAC;CAgOD"}
@@ -0,0 +1,66 @@
1
+ import Proxy from 'http-proxy';
2
+ interface TeraProxyOptions {
3
+ force?: boolean;
4
+ autoStart?: boolean;
5
+ host?: string;
6
+ port?: number;
7
+ targetProtocol?: string;
8
+ targetHost?: string;
9
+ targetPort?: number;
10
+ portConflict?: 'ignore' | 'throw';
11
+ onLog?: (level: 'INFO' | 'WARN', ...msg: any[]) => void;
12
+ }
13
+ export declare class TeraProxy {
14
+ /**
15
+ * Setup a local loopback proxy for TERA-tools.com
16
+ *
17
+ * @param {Object} [options] Additional options to mutate behaviour
18
+ * @param {Boolean} [options.force=false] Restart the server even if its apparently running
19
+ * @param {Boolean} [options.autoStart=true] Automatically start the proxy without calling `Plugin.start()`
20
+ * @param {String} [options.host='0.0.0.0'] Host IP to listen on
21
+ * @param {Number} [options.port=7334] Host port to listen on
22
+ * @param {String} [options.targetProtocol='https'] Target protocol to forward to
23
+ * @param {String} [options.targetHost='tera-tools.com'] Target host to forward to
24
+ * @param {Number} [options.targetPort=443] Target port to forward to
25
+ * @param {'ignore'|'throw'} [options.portConflict='ignore'] Action to take when something is already listening on the allocated port
26
+ * @param {Function} [options.onLog=console.log] Function to call with any logging output. Defaults to using console.log. Called as `(level:'INFO|'WARN', ...msg:any)`
27
+ *
28
+ * @returns {VitePlugin}
29
+ */
30
+ settings: {
31
+ autoStart: boolean;
32
+ force: boolean;
33
+ host: string;
34
+ port: number;
35
+ targetProtocol: string;
36
+ targetHost: string;
37
+ targetPort: number;
38
+ portConflict: "ignore" | "throw";
39
+ onLog: (level: "INFO" | "WARN", ...msg: any[]) => void;
40
+ };
41
+ /**
42
+ * Eventual proxy server when the plugin has booted
43
+ * @type {ProxyServer}
44
+ */
45
+ proxyServer: Proxy | undefined;
46
+ /**
47
+ * Boot the proxy
48
+ *
49
+ * @returns {Promise} A promise which resolves when the operation has completed
50
+ */
51
+ start(): Promise<boolean | void>;
52
+ /**
53
+ * Stop the proxy server
54
+ * @returns {Promise} A promise which will resolve when the close operation has completed
55
+ */
56
+ stop(): Promise<void | undefined>;
57
+ constructor(options?: TeraProxyOptions);
58
+ }
59
+ /**
60
+ * Utility function to return a new TeraProxy instance
61
+ *
62
+ * @param {Object} [options] Options to pass to the Proxy module
63
+ * @returns {TeraProxy} A TeraProxy instance
64
+ */
65
+ export default function (options?: TeraProxyOptions): TeraProxy;
66
+ export {};
@@ -0,0 +1,123 @@
1
+ import { create as createDomain } from 'node:domain';
2
+ import detectPort from 'detect-port';
3
+ import Proxy from 'http-proxy';
4
+ export class TeraProxy {
5
+ /**
6
+ * Boot the proxy
7
+ *
8
+ * @returns {Promise} A promise which resolves when the operation has completed
9
+ */
10
+ start() {
11
+ if (this.proxyServer && !this.settings.force)
12
+ return Promise.resolve(); // Server already running skip
13
+ return Promise.resolve()
14
+ .then(() => detectPort(this.settings.port))
15
+ .then(gotPort => {
16
+ if (gotPort != this.settings.port) {
17
+ return Promise.reject('PORT-CONFLICT');
18
+ }
19
+ // Only return void if the port is available
20
+ })
21
+ .then(() => this.proxyServer = Proxy.createProxyServer({
22
+ changeOrigin: true,
23
+ target: {
24
+ protocol: this.settings.targetProtocol + ':',
25
+ host: this.settings.targetHost,
26
+ port: this.settings.targetPort,
27
+ },
28
+ }))
29
+ .then(() => new Promise((resolve, reject) => {
30
+ // Wrap listener in a domain so we can correctly catch EADDRINUSE
31
+ let domain = createDomain();
32
+ domain.on('error', (err) => {
33
+ if (err.code == 'EADDRINUSE') {
34
+ reject('PORT-CONFLICT');
35
+ }
36
+ else {
37
+ reject(err);
38
+ }
39
+ });
40
+ // Run the server creation and listening within the domain
41
+ domain.run(() => {
42
+ if (!this.proxyServer)
43
+ return reject(new Error('Proxy server not initialized')); // Guard against undefined proxyServer
44
+ this.proxyServer.listen(this.settings.port, this.settings.host);
45
+ // Handle errors on the proxy server itself, although domain should catch listen errors
46
+ this.proxyServer.on('error', (err) => {
47
+ if (err.code == 'EADDRINUSE') {
48
+ reject('PORT-CONFLICT');
49
+ }
50
+ else {
51
+ reject(err);
52
+ }
53
+ });
54
+ });
55
+ }))
56
+ .catch(e => {
57
+ if (e === 'PORT-CONFLICT') {
58
+ if (this.settings.portConflict == 'ignore') {
59
+ this.settings.onLog('WARN', 'Port', this.settings.port, 'is already allocated - assuming TERA is already running locally and skipping proxy');
60
+ return false; // Do nothing
61
+ }
62
+ else {
63
+ throw e; // Throw the 'PORT-CONFLICT' string or a new Error
64
+ }
65
+ }
66
+ else {
67
+ throw e; // Re-throw everything else
68
+ }
69
+ });
70
+ }
71
+ /**
72
+ * Stop the proxy server
73
+ * @returns {Promise} A promise which will resolve when the close operation has completed
74
+ */
75
+ stop() {
76
+ return Promise.resolve()
77
+ .then(() => this.proxyServer && new Promise(resolve => this.proxyServer.close(() => resolve()))); // Use non-null assertion if sure it exists here
78
+ }
79
+ constructor(options) {
80
+ /**
81
+ * Setup a local loopback proxy for TERA-tools.com
82
+ *
83
+ * @param {Object} [options] Additional options to mutate behaviour
84
+ * @param {Boolean} [options.force=false] Restart the server even if its apparently running
85
+ * @param {Boolean} [options.autoStart=true] Automatically start the proxy without calling `Plugin.start()`
86
+ * @param {String} [options.host='0.0.0.0'] Host IP to listen on
87
+ * @param {Number} [options.port=7334] Host port to listen on
88
+ * @param {String} [options.targetProtocol='https'] Target protocol to forward to
89
+ * @param {String} [options.targetHost='tera-tools.com'] Target host to forward to
90
+ * @param {Number} [options.targetPort=443] Target port to forward to
91
+ * @param {'ignore'|'throw'} [options.portConflict='ignore'] Action to take when something is already listening on the allocated port
92
+ * @param {Function} [options.onLog=console.log] Function to call with any logging output. Defaults to using console.log. Called as `(level:'INFO|'WARN', ...msg:any)`
93
+ *
94
+ * @returns {VitePlugin}
95
+ */
96
+ this.settings = {
97
+ autoStart: true,
98
+ force: false,
99
+ host: '0.0.0.0',
100
+ port: 7334,
101
+ targetProtocol: 'https',
102
+ targetHost: 'dev.tera-tools.com',
103
+ targetPort: 443,
104
+ portConflict: 'ignore', // Add type assertion for stricter checking if needed elsewhere
105
+ onLog: (level, ...msg) => console.log(...msg),
106
+ };
107
+ if (options)
108
+ Object.assign(this.settings, options);
109
+ // Auto start?
110
+ if (this.settings.autoStart)
111
+ this.start(); // Use resolved settings.autoStart
112
+ }
113
+ }
114
+ /**
115
+ * Utility function to return a new TeraProxy instance
116
+ *
117
+ * @param {Object} [options] Options to pass to the Proxy module
118
+ * @returns {TeraProxy} A TeraProxy instance
119
+ */
120
+ export default function (options) {
121
+ return new TeraProxy(options);
122
+ }
123
+ //# sourceMappingURL=terafy.proxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terafy.proxy.js","sourceRoot":"","sources":["../../lib/terafy.proxy.ts"],"names":[],"mappings":"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"}