@statuser/cli 0.0.0-stage → 0.1.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 (77) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +448 -2
  3. package/dist/client.js +163 -0
  4. package/dist/client.js.map +1 -0
  5. package/dist/commander-i18n.js +52 -0
  6. package/dist/commander-i18n.js.map +1 -0
  7. package/dist/commands/api.js +104 -0
  8. package/dist/commands/api.js.map +1 -0
  9. package/dist/commands/auth.js +104 -0
  10. package/dist/commands/auth.js.map +1 -0
  11. package/dist/commands/catalog.js +72 -0
  12. package/dist/commands/catalog.js.map +1 -0
  13. package/dist/commands/config.js +302 -0
  14. package/dist/commands/config.js.map +1 -0
  15. package/dist/commands/heartbeat.js +199 -0
  16. package/dist/commands/heartbeat.js.map +1 -0
  17. package/dist/commands/incidents.js +265 -0
  18. package/dist/commands/incidents.js.map +1 -0
  19. package/dist/commands/maintenance.js +211 -0
  20. package/dist/commands/maintenance.js.map +1 -0
  21. package/dist/commands/reports.js +170 -0
  22. package/dist/commands/reports.js.map +1 -0
  23. package/dist/commands/scenarios.js +361 -0
  24. package/dist/commands/scenarios.js.map +1 -0
  25. package/dist/commands/servers-add.js +152 -0
  26. package/dist/commands/servers-add.js.map +1 -0
  27. package/dist/commands/servers-checks.js +56 -0
  28. package/dist/commands/servers-checks.js.map +1 -0
  29. package/dist/commands/servers.js +424 -0
  30. package/dist/commands/servers.js.map +1 -0
  31. package/dist/config.js +107 -0
  32. package/dist/config.js.map +1 -0
  33. package/dist/confirm.js +34 -0
  34. package/dist/confirm.js.map +1 -0
  35. package/dist/context.js +27 -0
  36. package/dist/context.js.map +1 -0
  37. package/dist/duration.js +20 -0
  38. package/dist/duration.js.map +1 -0
  39. package/dist/errors.js +73 -0
  40. package/dist/errors.js.map +1 -0
  41. package/dist/files.js +36 -0
  42. package/dist/files.js.map +1 -0
  43. package/dist/generated/openapi.js +6 -0
  44. package/dist/generated/openapi.js.map +1 -0
  45. package/dist/i18n.js +757 -0
  46. package/dist/i18n.js.map +1 -0
  47. package/dist/index.js +58 -0
  48. package/dist/index.js.map +1 -0
  49. package/dist/json-error.js +10 -0
  50. package/dist/json-error.js.map +1 -0
  51. package/dist/output.js +43 -0
  52. package/dist/output.js.map +1 -0
  53. package/dist/scenarios/config.js +228 -0
  54. package/dist/scenarios/config.js.map +1 -0
  55. package/dist/scenarios/plan.js +159 -0
  56. package/dist/scenarios/plan.js.map +1 -0
  57. package/dist/servers-config/export.js +72 -0
  58. package/dist/servers-config/export.js.map +1 -0
  59. package/dist/servers-config/fields.js +172 -0
  60. package/dist/servers-config/fields.js.map +1 -0
  61. package/dist/servers-config/forbidden-host.js +75 -0
  62. package/dist/servers-config/forbidden-host.js.map +1 -0
  63. package/dist/servers-config/host-pattern.js +6 -0
  64. package/dist/servers-config/host-pattern.js.map +1 -0
  65. package/dist/servers-config/parse.js +260 -0
  66. package/dist/servers-config/parse.js.map +1 -0
  67. package/dist/servers-config/plan.js +492 -0
  68. package/dist/servers-config/plan.js.map +1 -0
  69. package/dist/servers-update.js +157 -0
  70. package/dist/servers-update.js.map +1 -0
  71. package/dist/status-page.js +15 -0
  72. package/dist/status-page.js.map +1 -0
  73. package/dist/text-length.js +8 -0
  74. package/dist/text-length.js.map +1 -0
  75. package/dist/write-failure.js +37 -0
  76. package/dist/write-failure.js.map +1 -0
  77. package/package.json +70 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,UAAU,UAAU,CAAC,MAAyB,OAAO,CAAC,GAAG;IAC7D,wEAAwE;IACxE,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IAC/D,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACvD,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC;QAC5D,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;IACvD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,EAAE,GAAG;IACT,UAAU;IACV,kBAAkB,EAChB,qGAAqG;IACvG,OAAO,EAAE,sBAAsB;IAC/B,SAAS,EAAE,qDAAqD;IAChE,QAAQ,EAAE,4CAA4C;IAEtD,OAAO;IACP,QAAQ,EAAE,uCAAuC;IACjD,SAAS,EAAE,8BAA8B;IACzC,SAAS,EAAE,6CAA6C;IACxD,YAAY,EAAE,0CAA0C;IACxD,YAAY,EAAE,+DAA+D;IAC7E,aAAa,EAAE,cAAc;IAC7B,UAAU,EACR,4FAA4F;IAC9F,UAAU,EAAE,CAAC,KAAa,EAAE,IAAY,EAAE,EAAE,CAC1C,WAAW,KAAK,qBAAqB,IAAI,EAAE;IAC7C,UAAU,EAAE,cAAc;IAC1B,aAAa,EAAE,yBAAyB;IACxC,MAAM,EAAE,CAAC,KAAa,EAAE,MAAc,EAAE,EAAE,CAAC,GAAG,KAAK,aAAa,MAAM,GAAG;IACzE,YAAY,EAAE,kBAAkB;IAChC,aAAa,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE;IAC1C,QAAQ,EACN,yEAAyE;IAC3E,cAAc,EAAE,CAAC,KAAa,EAAE,OAAe,EAAE,EAAE,CACjD,8BAA8B,KAAK,sBAAsB,OAAO,gDAAgD;IAClH,eAAe,EACb,mFAAmF;IACrF,YAAY,EACV,mFAAmF;IAErF,SAAS;IACT,aAAa,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,uBAAuB,GAAG,EAAE;IAC5D,cAAc,EAAE,CAAC,GAAW,EAAE,EAAE,CAC9B,qEAAqE,GAAG,EAAE;IAC5E,aAAa,EAAE,CAAC,GAAW,EAAE,EAAE,CAC7B,aAAa,GAAG,iDAAiD;IACnE,UAAU,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,KAAK,MAAM,UAAU;IACrD,YAAY,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,SAAS,OAAO,EAAE;IAErD,MAAM;IACN,MAAM,EAAE,oDAAoD;IAC5D,QAAQ,EACN,4EAA4E;IAC9E,WAAW,EAAE,wCAAwC;IACrD,QAAQ,EAAE,uCAAuC;IACjD,UAAU,EAAE,CAAC,IAAY,EAAE,QAAgB,EAAE,EAAE,CAC7C,GAAG,IAAI,KAAK,QAAQ,8CAA8C;IACpE,eAAe,EACb,8DAA8D;IAChE,kBAAkB,EAAE,gDAAgD;IACpE,gBAAgB,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,sBAAsB,MAAM,EAAE;IACpE,cAAc,EAAE,kDAAkD;IAElE,UAAU;IACV,UAAU,EAAE,qBAAqB;IACjC,cAAc,EAAE,iBAAiB;IACjC,aAAa,EAAE,cAAc;IAC7B,eAAe,EAAE,wBAAwB;IACzC,gBAAgB,EAAE,sBAAsB;IACxC,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,0BAA0B;IACvC,WAAW,EACT,gGAAgG;IAClG,gBAAgB,EAAE,oCAAoC;IACtD,YAAY,EAAE,eAAe;IAC7B,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,MAAM;IACf,WAAW,EAAE,UAAU;IACvB,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,EAAE,YAAY;IAC7C,UAAU,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,EAAE,yBAAyB;IAC3D,aAAa,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,EAAE,8BAA8B;IACnE,SAAS,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,EAAE,yBAAyB;IAC1D,UAAU,EAAE,CAAC,EAAU,EAAE,OAAe,EAAE,EAAE,CAAC,IAAI,EAAE,cAAc,OAAO,EAAE;IAC1E,WAAW,EAAE,CAAC,EAAU,EAAE,MAAc,EAAE,EAAE,CAC1C,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE,aAAa,MAAM,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE;IAC/D,SAAS,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,gBAAgB,GAAG,EAAE;IACjD,QAAQ,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,EAAE,YAAY;IAC5C,eAAe,EAAE,CAAC,IAAY,EAAE,EAAE,CAChC,KAAK,IAAI,kDAAkD;IAE7D,kBAAkB;IAClB,YAAY,EAAE,oBAAoB;IAClC,gBAAgB,EAAE,4BAA4B;IAC9C,OAAO,EAAE,oCAAoC;IAC7C,MAAM,EAAE,qDAAqD;IAC7D,iBAAiB,EACf,yEAAyE;IAC3E,kBAAkB,EAAE,qDAAqD;IACzE,gBAAgB,EACd,+EAA+E;IACjF,oBAAoB,EAAE,0CAA0C;IAChE,qBAAqB,EAAE,CAAC,EAAU,EAAE,QAAgB,EAAE,EAAE,CACtD,WAAW,EAAE,6BAA6B,QAAQ,IAAI;IACxD,aAAa,EAAE,mBAAmB;IAClC,iBAAiB,EAAE,uBAAuB;IAC1C,mBAAmB,EAAE,CAAC,OAAe,EAAE,EAAE,CACvC,mCAAmC,OAAO,EAAE;IAC9C,sBAAsB,EACpB,mFAAmF;IACrF,YAAY,EACV,2EAA2E;IAC7E,cAAc,EAAE,CAAC,GAAW,EAAE,OAAe,EAAE,EAAE,CAC/C,wBAAwB,GAAG,KAAK,OAAO,EAAE;IAE3C,cAAc;IACd,cAAc,EAAE,qCAAqC;IACrD,mBAAmB,EAAE,4CAA4C;IACjE,iBAAiB,EAAE,kCAAkC;IACrD,OAAO,EAAE,qBAAqB;IAC9B,QAAQ,EAAE,WAAW;IACrB,cAAc,EAAE,mCAAmC;IACnD,MAAM,EAAE,mCAAmC;IAC3C,UAAU,EAAE,oCAAoC;IAChD,aAAa,EAAE,sBAAsB;IACrC,UAAU,EAAE,4DAA4D;IACxE,oBAAoB,EAAE,6CAA6C;IACnE,sBAAsB,EAAE,mDAAmD;IAC3E,oBAAoB,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,gBAAgB,EAAE,gBAAgB;IACxE,kBAAkB,EAAE,CAAC,EAAU,EAAE,KAAa,EAAE,EAAE,CAChD,oBAAoB,EAAE,eAAe,KAAK,GAAG;IAC/C,gBAAgB,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,oBAAoB,EAAE,aAAa;IACrE,uBAAuB,EAAE,CAAC,EAAU,EAAE,EAAE,CACtC,oBAAoB,EAAE,+CAA+C;IACvE,cAAc,EAAE,CAAC,GAAW,EAAE,EAAE,CAC9B,gCAAgC,GAAG,YAAY;IACjD,wBAAwB,EAAE,CAAC,OAAe,EAAE,EAAE,CAC5C,uDAAuD,OAAO,EAAE;IAClE,eAAe,EAAE,CAAC,GAAW,EAAE,EAAE,CAC/B,0BAA0B,GAAG,2BAA2B;IAE1D,YAAY;IACZ,YAAY,EAAE,iCAAiC;IAC/C,gBAAgB,EACd,iEAAiE;IACnE,kBAAkB,EAAE,mDAAmD;IACvE,SAAS,EAAE,gBAAgB;IAC3B,SAAS,EAAE,gCAAgC;IAC3C,UAAU,EAAE,8CAA8C;IAC1D,WAAW,EAAE,oDAAoD;IACjE,MAAM,EAAE,2DAA2D;IACnE,eAAe,EAAE,oBAAoB;IACrC,cAAc,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,sBAAsB,OAAO,KAAK;IACvE,cAAc,EAAE,CAAC,KAAa,EAAU,EAAE,CACxC,KAAK,KAAK,WAAW;QACnB,CAAC,CAAC,iCAAiC;QACnC,CAAC,CAAC,qBAAqB;IAC3B,mBAAmB,EACjB,kFAAkF;IACpF,kBAAkB,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,SAAS,KAAK,EAAE;IACvD,aAAa,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,WAAW,OAAO,EAAE;IACxD,gBAAgB,EAAE,CAAC,IAAY,EAAE,GAAW,EAAE,EAAE,CAC9C,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,GAAG,EAAE;IACvF,cAAc,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,oBAAoB,IAAI,EAAE;IAC5D,aAAa,EAAE,CAAC,IAAY,EAAE,OAAe,EAAE,EAAE,CAAC,GAAG,IAAI,KAAK,OAAO,EAAE;IACvE,UAAU,EAAE,CAAC,IAAY,EAAE,QAAgB,EAAE,EAAE,CAC7C,wBAAwB,IAAI,yBAAyB,QAAQ,KAAK;IACpE,eAAe,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,qBAAqB,OAAO,GAAG;IACrE,YAAY,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,gBAAgB,IAAI,GAAG;IACvD,YAAY,EAAE,CAAC,IAAY,EAAE,EAAU,EAAE,MAAc,EAAE,EAAE,CACzD,iBAAiB,IAAI,OAAO,EAAE,MAAM,MAAM,EAAE;IAC9C,eAAe,EAAE,CAAC,IAAY,EAAE,EAAU,EAAE,EAAE,CAC5C,sBAAsB,IAAI,OAAO,EAAE,GAAG;IACxC,eAAe,EAAE,CAAC,IAAY,EAAE,EAAU,EAAE,EAAE,CAC5C,oCAAoC,IAAI,OAAO,EAAE,eAAe;IAClE,aAAa,EAAE,gBAAgB;IAC/B,gBAAgB,EAAE,2CAA2C;IAC7D,aAAa,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,YAAY,IAAI,GAAG;IACpD,aAAa,EAAE,CAAC,IAAY,EAAE,OAAe,EAAE,EAAE,CAC/C,mBAAmB,IAAI,MAAM,OAAO,8BAA8B;IACpE,mBAAmB,EAAE,CAAC,IAAY,EAAE,EAAE,CACpC,2CAA2C,IAAI,2BAA2B;IAC5E,qBAAqB,EAAE,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAC9C,MAAM,CAAC,QAAQ,CAAC,yDAAyD;IAC3E,iBAAiB,EAAE,CAAC,IAAY,EAAE,EAAU,EAAE,OAAe,EAAE,EAAE,CAC/D,WAAW,IAAI,0BAA0B,EAAE,eAAe,OAAO,GAAG;IACtE,gBAAgB,EAAE,CAAC,IAAY,EAAE,EAAU,EAAE,EAAE,CAC7C,aAAa,IAAI,cAAc,EAAE,sCAAsC;IACzE,oBAAoB,EAAE,CAAC,IAAY,EAAE,EAAU,EAAE,OAAe,EAAE,EAAE,CAClE,aAAa,IAAI,cAAc,EAAE,uBAAuB,OAAO,IAAI;IACrE,mBAAmB,EACjB,8FAA8F;IAEhG,YAAY;IACZ,YAAY,EAAE,WAAW;IACzB,gBAAgB,EAAE,mBAAmB;IACrC,eAAe,EAAE,gBAAgB;IACjC,cAAc,EAAE,8BAA8B;IAC9C,eAAe,EAAE,gCAAgC;IACjD,OAAO,EAAE,eAAe;IACxB,iBAAiB,EACf,+FAA+F;IACjG,YAAY,EAAE,2BAA2B;IACzC,QAAQ,EAAE,4CAA4C;IACtD,QAAQ,EAAE,+BAA+B;IACzC,SAAS,EAAE,qBAAqB;IAChC,QAAQ,EAAE,gCAAgC;IAC1C,uBAAuB,EAAE,2CAA2C;IACpE,qBAAqB,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,uBAAuB,MAAM,EAAE;IAC1E,WAAW,EAAE,CAAC,GAAW,EAAE,EAAE,CAC3B,kBAAkB,GAAG,gCAAgC;IACvD,cAAc,EAAE,iBAAiB;IACjC,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE,QAAQ;IACpB,WAAW,EAAE,cAAc;IAC3B,QAAQ,EAAE,QAAQ;IAClB,cAAc,EAAE,CAAC,MAAc,EAAU,EAAE,CACzC,CAAC;QACC,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE,UAAU;QACpB,SAAS,EAAE,UAAU;QACrB,mBAAmB,EAAE,6BAA6B;QAClD,mBAAmB,EAAE,iBAAiB;KACvC,CAAC,CAAC,MAAM,CAAC,IAAI,MAAM;IACtB,QAAQ,EACN,oFAAoF;IACtF,aAAa,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,aAAa,EAAE,EAAE;IAChD,cAAc,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,WAAW,IAAI,EAAE;IACnD,kBAAkB,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,WAAW,MAAM,EAAE;IAC3D,eAAe,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,WAAW,IAAI,EAAE;IACpD,aAAa,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,UAAU,IAAI,EAAE;IACjD,oBAAoB,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,iBAAiB,QAAQ,EAAE;IACvE,aAAa,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,WAAW,KAAK,EAAE;IACpD,mBAAmB,EAAE,CAAC,SAAiB,EAAE,EAAE,CACzC,gBAAgB,SAAS,wBAAwB;IACnD,QAAQ,EAAE,CAAC,IAAY,EAAE,KAAa,EAAE,OAAe,EAAU,EAAE,CACjE,IAAI;QACF,CAAC,CAAC,GAAG,IAAI,MAAM,KAAK,IAAI;QACxB,CAAC,CAAC,KAAK;YACL,CAAC,CAAC,GAAG,KAAK,MAAM,OAAO,MAAM;YAC7B,CAAC,CAAC,GAAG,OAAO,MAAM;IACxB,qBAAqB,EAAE,CAAC,IAAY,EAAE,EAAE,CACtC,wBAAwB,IAAI,IAAI,iBAAiB,GAAG;IACtD,SAAS,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,cAAc,IAAI,EAAE;IACjD,UAAU,EAAE,CAAC,IAAY,EAAE,EAAE,CAC3B,QAAQ,IAAI,kDAAkD;IAEhE,UAAU;IACV,UAAU,EAAE,0CAA0C;IACtD,cAAc,EAAE,iBAAiB;IACjC,gBAAgB,EAAE,iCAAiC;IACnD,gBAAgB,EAAE,4BAA4B;IAC9C,iBAAiB,EAAE,uCAAuC;IAC1D,gBAAgB,EACd,sEAAsE;IACxE,SAAS,EAAE,8CAA8C;IACzD,eAAe,EACb,oEAAoE;IACtE,kBAAkB,EAAE,sCAAsC;IAC1D,YAAY,EAAE,cAAc;IAC5B,QAAQ,EAAE,WAAW;IACrB,YAAY,EAAE,CAAC,MAAc,EAAU,EAAE,CACvC,CAAC;QACC,YAAY,EAAE,aAAa;QAC3B,QAAQ,EAAE,YAAY;QACtB,QAAQ,EAAE,qBAAqB;QAC/B,QAAQ,EAAE,QAAQ;KACnB,CAAC,CAAC,MAAM,CAAC,IAAI,MAAM;IACtB,YAAY,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,qBAAqB,OAAO,EAAE;IACjE,aAAa,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,UAAU,EAAE,eAAe;IAC1D,aAAa,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,gCAAgC,EAAE,GAAG;IACpE,cAAc,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,UAAU,EAAE,UAAU;IACtD,qBAAqB,EAAE,CAAC,EAAU,EAAE,EAAE,CACpC,UAAU,EAAE,uCAAuC;IACrD,eAAe,EAAE,CAAC,EAAU,EAAE,EAAE,CAC9B,aAAa,EAAE,8CAA8C;IAE/D,iBAAiB;IACjB,gBAAgB,EAAE,6BAA6B;IAC/C,WAAW,EAAE,2BAA2B;IACxC,iBAAiB,EAAE,0BAA0B;IAC7C,UAAU,EAAE,0DAA0D;IACtE,eAAe,EAAE,iDAAiD;IAClE,MAAM,EAAE,mCAAmC;IAC3C,QAAQ,EAAE,oCAAoC;IAC9C,SAAS,EAAE,gCAAgC;IAC3C,WAAW,EAAE,iCAAiC;IAC9C,YAAY,EAAE,sCAAsC;IACpD,cAAc,EAAE,uCAAuC;IACvD,eAAe,EAAE,2CAA2C;IAC5D,iBAAiB,EAAE,kCAAkC;IACrD,YAAY,EAAE,wBAAwB;IACtC,aAAa,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,wBAAwB,MAAM,EAAE;IACnE,aAAa,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,0BAA0B,GAAG,EAAE;IAC/D,WAAW,EAAE,CAAC,GAAW,EAAE,GAAW,EAAE,EAAE,CACxC,4BAA4B,GAAG,OAAO,GAAG,GAAG;IAC9C,aAAa,EAAE,6DAA6D;IAC5E,kBAAkB,EAAE,CAAC,EAAU,EAAE,OAAe,EAAE,EAAE,CAClD,IAAI,EAAE,mCAAmC,OAAO,yBAAyB;IAC3E,eAAe,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,EAAE,qBAAqB;IAC5D,mBAAmB,EAAE,CAAC,EAAU,EAAE,MAAc,EAAE,EAAE,CAClD,IAAI,EAAE,uCAAuC,MAAM,aAAa;IAClE,SAAS,EAAE,eAAe;IAC1B,iBAAiB,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,6BAA6B,MAAM,EAAE;IAE5E,wBAAwB;IACxB,SAAS,EAAE,2CAA2C;IACtD,OAAO,EAAE,6BAA6B;IACtC,QAAQ,EAAE,iCAAiC;IAC3C,eAAe,EAAE,gCAAgC;IACjD,qBAAqB,EAAE,CAAC,KAAa,EAAE,EAAE,CACvC,4EAA4E,KAAK,2BAA2B;IAC9G,oBAAoB,EAAE,CAAC,KAAa,EAAE,EAAE,CACtC,yDAAyD,KAAK,4EAA4E;IAC5I,YAAY,EAAE,CAAC,KAAa,EAAE,EAAE,CAC9B,sBAAsB,KAAK,iDAAiD;IAC9E,eAAe,EAAE,CAAC,KAAa,EAAE,EAAE,CACjC,wBAAwB,KAAK,6DAA6D;IAC5F,YAAY,EACV,qHAAqH;IACvH,oBAAoB,EAAE,4CAA4C;IAClE,iBAAiB,EAAE,CAAC,EAAU,EAAE,EAAU,EAAE,EAAE,CAC5C,GAAG,EAAE,aAAa,EAAE,8BAA8B;IACpD,mBAAmB,EAAE,CAAC,EAAU,EAAE,EAAU,EAAE,QAAgB,EAAE,EAAE,CAChE,GAAG,EAAE,gBAAgB,EAAE,aAAa,QAAQ,6FAA6F;IAC3I,eAAe,EAAE,CAAC,EAAU,EAAE,EAAU,EAAE,EAAE,CAC1C,GAAG,EAAE,aAAa,EAAE,aAAa;IACnC,mBAAmB,EAAE,CAAC,EAAU,EAAE,EAAU,EAAE,OAAe,EAAE,EAAE,CAC/D,GAAG,EAAE,aAAa,EAAE,uBAAuB,OAAO,IAAI;IACxD,kBAAkB,EAAE,CAAC,EAAU,EAAE,IAAY,EAAE,EAAE,CAC/C,GAAG,EAAE,4CAA4C,IAAI,iBAAiB;IACxE,kBAAkB,EAAE,CAAC,EAAU,EAAE,KAAa,EAAE,EAAE,CAChD,GAAG,EAAE,6BAA6B,KAAK,GAAG;IAC5C,oBAAoB,EAAE,CAAC,IAAY,EAAE,EAAE,CACrC,IAAI,IAAI,oFAAoF;IAC9F,cAAc,EAAE,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CACvC,IAAI,CAAC,iBAAiB,CAAC,6CAA6C;IACtE,iBAAiB,EAAE,CAAC,KAAa,EAAE,QAAgB,EAAE,QAAgB,EAAE,EAAE,CACvE,6BAA6B,KAAK,cAAc,QAAQ,oBAAoB,QAAQ,GAAG;IACzF,mBAAmB,EAAE,CAAC,EAAU,EAAE,GAAW,EAAE,EAAE,CAC/C,GAAG,EAAE,yCAAyC,GAAG,KAAK;IACxD,yBAAyB,EAAE,CAAC,EAAU,EAAE,SAAiB,EAAE,EAAE,CAC3D,GAAG,EAAE,uCAAuC,SAAS,GAAG;IAC1D,kBAAkB,EAAE,CAAC,EAAU,EAAE,KAAa,EAAE,IAAY,EAAE,EAAE,CAC9D,GAAG,EAAE,UAAU,IAAI,gBAAgB,KAAK,uCAAuC;IACjF,uBAAuB,EAAE,CAAC,EAAU,EAAE,KAAa,EAAE,IAAY,EAAE,EAAE,CACnE,GAAG,EAAE,KAAK,KAAK,iCAAiC,IAAI,4BAA4B;IAClF,uBAAuB,EAAE,CAAC,EAAU,EAAE,EAAE,CACtC,GAAG,EAAE,+DAA+D;IACtE,kBAAkB,EAAE,CAAC,IAAY,EAAE,OAAe,EAAE,EAAE,CACpD,GAAG,IAAI,sBAAsB,OAAO,sEAAsE;IAC5G,uBAAuB,EAAE,CAAC,EAAU,EAAE,OAAe,EAAE,EAAE,CACvD,GAAG,EAAE,gCAAgC,OAAO,GAAG;IACjD,mBAAmB,EAAE,CAAC,KAAa,EAAE,QAAgB,EAAE,QAAgB,EAAE,EAAE,CACzE,8BAA8B,KAAK,cAAc,QAAQ,oBAAoB,QAAQ,GAAG;IAC1F,2BAA2B,EAAE,CAAC,IAAY,EAAE,GAAW,EAAE,EAAE,CACzD,IAAI,IAAI,kDAAkD,GAAG,KAAK;IACpE,oBAAoB,EAAE,CAAC,EAAU,EAAE,GAAW,EAAE,EAAE,CAChD,GAAG,EAAE,mBAAmB,GAAG,GAAG,IAAI,GAAG,IAAI,yBAAyB;IACpE,mBAAmB,EAAE,CAAC,IAAY,EAAE,OAAe,EAAE,EAAE,CACrD,yBAAyB,IAAI,MAAM,OAAO,+EAA+E;IAE3H,wCAAwC;IACxC,SAAS,EAAE,cAAc;IACzB,QAAQ,EAAE,cAAc;IACxB,gBAAgB,EAAE,uBAAuB;IACzC,WAAW,EAAE,mBAAmB;IAChC,cAAc,EAAE,iCAAiC;IACjD,SAAS,EAAE,cAAc;IACzB,iBAAiB,EAAE,gCAAgC;IACnD,UAAU,EAAE,sBAAsB;IAClC,QAAQ,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,YAAY,IAAI,EAAE;IAC9C,SAAS,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,uBAAuB,IAAI,EAAE;IAC1D,UAAU,EAAE,oBAAoB;IAChC,QAAQ,EAAE,CAAC,GAAW,EAAE,GAAW,EAAE,EAAE,CAAC,kBAAkB,GAAG,OAAO,GAAG,EAAE;IACzE,YAAY,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,cAAc,GAAG,WAAW;IAC3D,YAAY,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,gBAAgB,IAAI,GAAG;IACvD,WAAW,EAAE,mBAAmB;IAChC,YAAY,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,8BAA8B,QAAQ,EAAE;IAC5E,WAAW,EAAE,CAAC,IAAY,EAAE,EAAE,CAC5B,YAAY,IAAI,kCAAkC;IACpD,UAAU,EAAE,iCAAiC;IAC7C,aAAa,EAAE,CAAC,IAAY,EAAE,EAAE,CAC9B,+BAA+B,IAAI,8CAA8C;IACnF,cAAc,EAAE,CAAC,IAAY,EAAE,EAAE,CAC/B,yBAAyB,IAAI,uBAAuB;IACtD,aAAa,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,wBAAwB,IAAI,EAAE;IAC/D,YAAY,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,GAAG,IAAI,SAAS;IAChD,eAAe,EAAE,cAAc;IAC/B,SAAS,EAAE,CAAC,IAAY,EAAE,EAAE,CAC1B,KAAK,IAAI,iEAAiE;IAC5E,uBAAuB,EAAE,oBAAoB;IAC7C,aAAa,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,aAAa,GAAG,aAAa;IAC7D,UAAU,EAAE,CAAC,IAAY,EAAE,EAAE,CAC3B,GAAG,IAAI,yDAAyD;IAClE,WAAW,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,GAAG,IAAI,wBAAwB;IAC9D,eAAe,EACb,8DAA8D;IAChE,cAAc,EAAE,uCAAuC;IACvD,gBAAgB,EAAE,kCAAkC;IACpD,eAAe,EAAE,iCAAiC;IAClD,eAAe,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,WAAW,GAAG,yBAAyB;IACzE,qBAAqB,EACnB,+FAA+F;IACjG,OAAO,EAAE,CAAC,QAAgB,EAAE,EAAE,CAC5B,QAAQ,CAAC,CAAC,CAAC,8BAA8B,QAAQ,GAAG,CAAC,CAAC,CAAC,mBAAmB;IAE5E,YAAY;IACZ,SAAS,EAAE,gBAAgB;IAC3B,aAAa,EAAE,YAAY;IAC3B,WAAW,EAAE,QAAQ;IACrB,iBAAiB,EAAE,cAAc;IACjC,YAAY,EAAE,UAAU;IACxB,WAAW,EAAE,cAAc;IAC3B,UAAU,EAAE,kBAAkB;IAC9B,WAAW,EAAE,oBAAoB;IACjC,aAAa,EAAE,iBAAiB;IAChC,gBAAgB,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,sBAAsB,MAAM,EAAE;IACpE,iBAAiB,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,wBAAwB,OAAO,EAAE;IACzE,gBAAgB,EAAE,CAAC,MAAc,EAAE,EAAE,CACnC,iCAAiC,MAAM,EAAE;IAC3C,kBAAkB,EAAE,CAAC,QAAgB,EAAE,EAAE,CACvC,mCAAmC,QAAQ,EAAE;IAC/C,cAAc,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,WAAW,MAAM,eAAe;IACpE,mBAAmB,EAAE,mBAAmB;IACxC,aAAa,EAAE,8BAA8B;IAC7C,gBAAgB,EAAE,gCAAgC;IAClD,oBAAoB,EAClB,0DAA0D;IAC5D,aAAa,EAAE,iDAAiD;IAChE,aAAa,EAAE,aAAa;IAC5B,aAAa,EAAE,qBAAqB;IACpC,oBAAoB,EAAE,qCAAqC;IAC3D,cAAc,EACZ,8FAA8F;IAChG,OAAO,EAAE,YAAY;IACrB,UAAU,EAAE,6BAA6B;IACzC,gBAAgB,EAAE,qDAAqD;IACvE,WAAW,EAAE,uDAAuD;IACpE,MAAM,EAAE,6BAA6B;IACrC,iBAAiB,EAAE,CAAC,IAAY,EAAE,EAAE,CAClC,iCAAiC,IAAI,wDAAwD;IAC/F,aAAa,EAAE,wBAAwB;IACvC,cAAc,EAAE,sDAAsD;IACtE,UAAU,EAAE,CAAC,EAAU,EAAE,KAAa,EAAE,EAAE,CACxC,WAAW,KAAK,gBAAgB,EAAE,GAAG;IACvC,SAAS,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,0BAA0B,KAAK,IAAI;IACjE,UAAU,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,EAAE,UAAU;IAC5C,oBAAoB,EAAE,CAAC,IAAY,EAAE,EAAE,CACrC,2BAA2B,IAAI,+DAA+D;IAChG,sBAAsB,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,qBAAqB,IAAI,UAAU;IAC7E,eAAe,EACb,sEAAsE;IACxE,SAAS,EAAE,+BAA+B;IAC1C,cAAc,EAAE,CAAC,EAAU,EAAE,EAAE,CAC7B,8BAA8B,EAAE,kCAAkC;IACpE,gBAAgB,EACd,2EAA2E;IAC7E,uBAAuB,EAAE,CAAC,EAAU,EAAE,QAAgB,EAAE,EAAE,CACxD,IAAI,EAAE,OAAO,QAAQ,kCAAkC;IACzD,eAAe,EAAE,CAAC,EAAU,EAAE,KAAa,EAAE,EAAE,CAC7C,IAAI,EAAE,8BAA8B,KAAK,GAAG;IAC9C,kBAAkB,EAAE,mBAAmB;IACvC,mBAAmB,EAAE,kCAAkC;IACvD,cAAc,EAAE,mBAAmB;IACnC,cAAc,EAAE,CAAC,GAAW,EAAE,EAAE,CAC9B,gDAAgD,GAAG,YAAY;IACjE,YAAY,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,qCAAqC,EAAE,GAAG;IACxE,WAAW,EAAE,kBAAkB;IAC/B,eAAe,EAAE,iBAAiB;IAClC,aAAa,EAAE,eAAe;IAC9B,QAAQ,EAAE,kBAAkB;IAC5B,YAAY,EAAE,wBAAwB;IACtC,UAAU,EAAE,sBAAsB;IAClC,OAAO,EAAE,MAAM;IACf,YAAY,EAAE,cAAc;IAC5B,GAAG,EAAE,IAAI;IACT,EAAE,EAAE,KAAK;IACT,eAAe,EACb,iFAAiF;IACnF,mBAAmB,EAAE,CAAC,KAAa,EAAE,EAAE,CACrC,iCAAiC,KAAK,kFAAkF;IAC1H,mBAAmB,EAAE,CAAC,EAAU,EAAE,QAAgB,EAAE,EAAE,CACpD,IAAI,EAAE,qBAAqB,QAAQ,GAAG;IACxC,gBAAgB,EAAE,4BAA4B;IAC9C,cAAc,EAAE,yDAAyD;IACzE,cAAc,EAAE,mCAAmC;IACnD,WAAW,EAAE,8BAA8B;IAC3C,OAAO,EAAE,OAAO;IAChB,YAAY,EAAE,SAAS;IACvB,sBAAsB,EAAE,kCAAkC;IAC1D,kBAAkB,EAAE,0BAA0B;IAC9C,oBAAoB,EAAE,qCAAqC;IAC3D,KAAK,EAAE,uDAAuD;IAC9D,oBAAoB,EAAE,CAAC,GAAW,EAAE,EAAE,CACpC,iCAAiC,GAAG,6DAA6D;IACnG,oBAAoB,EAAE,CAAC,EAAU,EAAE,KAAa,EAAE,GAAW,EAAE,EAAE,CAC/D,oBAAoB,EAAE,eAAe,KAAK,MAAM,GAAG,GAAG;IACxD,gBAAgB,EAAE,qBAAqB;IACvC,wBAAwB,EAAE,CAAC,EAAU,EAAE,KAAa,EAAE,EAAE,CACtD,4BAA4B,KAAK,OAAO,EAAE,uBAAuB;IACnE,MAAM,EAAE,OAAO;CAChB,CAAC;AAIF,MAAM,EAAE,GAAa;IACnB,kBAAkB,EAChB,kHAAkH;IACpH,OAAO,EAAE,4BAA4B;IACrC,SAAS,EAAE,kDAAkD;IAC7D,QAAQ,EAAE,2CAA2C;IAErD,QAAQ,EAAE,iCAAiC;IAC3C,SAAS,EAAE,0BAA0B;IACrC,SAAS,EAAE,qCAAqC;IAChD,YAAY,EAAE,8CAA8C;IAC5D,YAAY,EAAE,6DAA6D;IAC3E,aAAa,EAAE,mBAAmB;IAClC,UAAU,EACR,yFAAyF;IAC3F,UAAU,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,KAAK,kBAAkB,IAAI,EAAE;IACnE,UAAU,EAAE,cAAc;IAC1B,aAAa,EAAE,eAAe;IAC9B,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,KAAK,cAAc,MAAM,GAAG;IAC1D,YAAY,EAAE,kBAAkB;IAChC,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE;IAClC,QAAQ,EAAE,2DAA2D;IACrE,cAAc,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CACjC,gCAAgC,KAAK,6BAA6B,OAAO,6CAA6C;IACxH,eAAe,EACb,8EAA8E;IAChF,YAAY,EACV,mFAAmF;IAErF,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,wBAAwB,GAAG,EAAE;IACrD,cAAc,EAAE,CAAC,GAAG,EAAE,EAAE,CACtB,4DAA4D,GAAG,EAAE;IACnE,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CACrB,cAAc,GAAG,kDAAkD;IACrE,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,MAAM,YAAY;IAC/C,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,OAAO,EAAE;IAEhD,MAAM,EAAE,+CAA+C;IACvD,QAAQ,EACN,8EAA8E;IAChF,WAAW,EAAE,2CAA2C;IACxD,QAAQ,EAAE,yCAAyC;IACnD,UAAU,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAC7B,GAAG,IAAI,KAAK,QAAQ,+CAA+C;IACrE,eAAe,EAAE,uDAAuD;IACxE,kBAAkB,EAAE,wCAAwC;IAC5D,gBAAgB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,MAAM,EAAE;IACzD,cAAc,EAAE,8CAA8C;IAE9D,UAAU,EAAE,mBAAmB;IAC/B,cAAc,EAAE,cAAc;IAC9B,aAAa,EAAE,cAAc;IAC7B,eAAe,EAAE,cAAc;IAC/B,gBAAgB,EAAE,eAAe;IACjC,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,oBAAoB;IACjC,WAAW,EACT,uFAAuF;IACzF,gBAAgB,EAAE,+BAA+B;IACjD,YAAY,EAAE,aAAa;IAC3B,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,MAAM;IACf,OAAO,EAAE,MAAM;IACf,WAAW,EAAE,UAAU;IACvB,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE,SAAS;IACrB,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,UAAU;IACnC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,kBAAkB;IAC5C,aAAa,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,2BAA2B;IACxD,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,uBAAuB;IAChD,UAAU,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,EAAE,aAAa,OAAO,EAAE;IACzD,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAC1B,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,aAAa,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE;IAC3D,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,eAAe,GAAG,EAAE;IACxC,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,YAAY;IACpC,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,CACxB,GAAG,IAAI,mDAAmD;IAE5D,YAAY,EAAE,kBAAkB;IAChC,gBAAgB,EAAE,yBAAyB;IAC3C,OAAO,EAAE,qCAAqC;IAC9C,MAAM,EAAE,wDAAwD;IAChE,iBAAiB,EACf,uEAAuE;IACzE,kBAAkB,EAChB,6DAA6D;IAC/D,gBAAgB,EACd,sFAAsF;IACxF,oBAAoB,EAAE,4CAA4C;IAClE,qBAAqB,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,CACtC,WAAW,EAAE,iCAAiC,QAAQ,IAAI;IAC5D,aAAa,EAAE,cAAc;IAC7B,iBAAiB,EAAE,mBAAmB;IACtC,mBAAmB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,iCAAiC,OAAO,EAAE;IAC5E,sBAAsB,EACpB,sFAAsF;IACxF,YAAY,EACV,0EAA0E;IAC5E,cAAc,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,mBAAmB,GAAG,KAAK,OAAO,EAAE;IAEtE,cAAc,EAAE,sCAAsC;IACtD,mBAAmB,EAAE,uCAAuC;IAC5D,iBAAiB,EAAE,6BAA6B;IAChD,OAAO,EAAE,gBAAgB;IACzB,QAAQ,EAAE,OAAO;IACjB,cAAc,EAAE,+BAA+B;IAC/C,MAAM,EAAE,+BAA+B;IACvC,UAAU,EAAE,yCAAyC;IACrD,aAAa,EAAE,yBAAyB;IACxC,UAAU,EACR,kEAAkE;IACpE,oBAAoB,EAAE,yCAAyC;IAC/D,sBAAsB,EAAE,mDAAmD;IAC3E,oBAAoB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,gBAAgB,EAAE,kBAAkB;IAClE,kBAAkB,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAChC,wBAAwB,EAAE,kBAAkB,KAAK,GAAG;IACtD,gBAAgB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,wBAAwB,EAAE,SAAS;IAC7D,uBAAuB,EAAE,CAAC,EAAE,EAAE,EAAE,CAC9B,wBAAwB,EAAE,kDAAkD;IAC9E,cAAc,EAAE,CAAC,GAAG,EAAE,EAAE,CACtB,uCAAuC,GAAG,cAAc;IAC1D,wBAAwB,EAAE,CAAC,OAAO,EAAE,EAAE,CACpC,iEAAiE,OAAO,EAAE;IAC5E,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CACvB,qBAAqB,GAAG,4BAA4B;IAEtD,YAAY,EAAE,8BAA8B;IAC5C,gBAAgB,EACd,+DAA+D;IACjE,kBAAkB,EAAE,wDAAwD;IAC5E,SAAS,EAAE,aAAa;IACxB,SAAS,EAAE,yCAAyC;IACpD,UAAU,EAAE,2CAA2C;IACvD,WAAW,EAAE,iDAAiD;IAC9D,MAAM,EAAE,sDAAsD;IAC9D,eAAe,EAAE,uBAAuB;IACxC,cAAc,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,sBAAsB,OAAO,KAAK;IAC/D,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE,CACxB,KAAK,KAAK,WAAW;QACnB,CAAC,CAAC,+BAA+B;QACjC,CAAC,CAAC,4BAA4B;IAClC,mBAAmB,EACjB,mFAAmF;IACrF,kBAAkB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,KAAK,EAAE;IAC/C,aAAa,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,OAAO,EAAE;IAC/C,gBAAgB,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAC9B,GAAG,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,GAAG,EAAE;IACzF,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,IAAI,EAAE;IACrD,aAAa,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,IAAI,KAAK,OAAO,EAAE;IACvD,UAAU,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAC7B,wBAAwB,IAAI,0BAA0B,QAAQ,KAAK;IACrE,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,qBAAqB,OAAO,GAAG;IAC7D,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,IAAI,GAAG;IAC9C,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CACjC,eAAe,IAAI,OAAO,EAAE,MAAM,MAAM,EAAE;IAC5C,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,kBAAkB,IAAI,OAAO,EAAE,GAAG;IACjE,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAC5B,8CAA8C,IAAI,OAAO,EAAE,gBAAgB;IAC7E,aAAa,EAAE,oBAAoB;IACnC,gBAAgB,EAAE,kDAAkD;IACpE,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,IAAI,GAAG;IAC1C,aAAa,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAC/B,eAAe,IAAI,MAAM,OAAO,iCAAiC;IACnE,mBAAmB,EAAE,CAAC,IAAI,EAAE,EAAE,CAC5B,+CAA+C,IAAI,+BAA+B;IACpF,qBAAqB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC9B,IAAI,CAAC,UAAU,CAAC,mEAAmE;IACrF,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,CACvC,kBAAkB,IAAI,gCAAgC,EAAE,gBAAgB,OAAO,GAAG;IACpF,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAC7B,aAAa,IAAI,cAAc,EAAE,sCAAsC;IACzE,oBAAoB,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,CAC1C,aAAa,IAAI,cAAc,EAAE,4BAA4B,OAAO,IAAI;IAC1E,mBAAmB,EACjB,+EAA+E;IAEjF,YAAY,EAAE,WAAW;IACzB,gBAAgB,EAAE,gBAAgB;IAClC,eAAe,EAAE,gBAAgB;IACjC,cAAc,EAAE,oCAAoC;IACpD,eAAe,EAAE,wCAAwC;IACzD,OAAO,EAAE,cAAc;IACvB,iBAAiB,EACf,kGAAkG;IACpG,YAAY,EAAE,4BAA4B;IAC1C,QAAQ,EAAE,iDAAiD;IAC3D,QAAQ,EAAE,oCAAoC;IAC9C,SAAS,EAAE,wBAAwB;IACnC,QAAQ,EAAE,4BAA4B;IACtC,uBAAuB,EAAE,2CAA2C;IACpE,qBAAqB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,MAAM,EAAE;IAC9D,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAiB,GAAG,iCAAiC;IAC3E,cAAc,EAAE,eAAe;IAC/B,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE,SAAS;IACrB,WAAW,EAAE,UAAU;IACvB,QAAQ,EAAE,OAAO;IACjB,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CACzB,CAAC;QACC,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,UAAU;QACpB,SAAS,EAAE,WAAW;QACtB,mBAAmB,EAAE,4BAA4B;QACjD,mBAAmB,EAAE,mBAAmB;KACzC,CAAC,CAAC,MAAM,CAAC,IAAI,MAAM;IACtB,QAAQ,EACN,gFAAgF;IAClF,aAAa,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,aAAa,EAAE,EAAE;IACxC,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,IAAI,EAAE;IAC3C,kBAAkB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,WAAW,MAAM,EAAE;IACnD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,IAAI,EAAE;IAC7C,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,IAAI,EAAE;IACzC,oBAAoB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,aAAa,QAAQ,EAAE;IAC3D,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,KAAK,EAAE;IAC3C,mBAAmB,EAAE,CAAC,SAAS,EAAE,EAAE,CACjC,gBAAgB,SAAS,wBAAwB;IACnD,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CACjC,IAAI;QACF,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,GAAG;QACtB,CAAC,CAAC,KAAK;YACL,CAAC,CAAC,GAAG,KAAK,KAAK,OAAO,GAAG;YACzB,CAAC,CAAC,GAAG,OAAO,GAAG;IACrB,qBAAqB,EAAE,CAAC,IAAI,EAAE,EAAE,CAC9B,oBAAoB,IAAI,IAAI,iBAAiB,oBAAoB;IACnE,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,IAAI,EAAE;IACrC,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,+CAA+C;IAE5E,UAAU,EAAE,mCAAmC;IAC/C,cAAc,EAAE,mBAAmB;IACnC,gBAAgB,EAAE,4BAA4B;IAC9C,gBAAgB,EAAE,2BAA2B;IAC7C,iBAAiB,EAAE,sCAAsC;IACzD,gBAAgB,EACd,kEAAkE;IACpE,SAAS,EAAE,gDAAgD;IAC3D,eAAe,EACb,kEAAkE;IACpE,kBAAkB,EAAE,uCAAuC;IAC3D,YAAY,EAAE,aAAa;IAC3B,QAAQ,EAAE,OAAO;IACjB,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CACvB,CAAC;QACC,YAAY,EAAE,cAAc;QAC5B,QAAQ,EAAE,MAAM;QAChB,QAAQ,EAAE,UAAU;QACpB,QAAQ,EAAE,UAAU;KACrB,CAAC,CAAC,MAAM,CAAC,IAAI,MAAM;IACtB,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,0BAA0B,OAAO,EAAE;IAC9D,aAAa,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,EAAE,aAAa;IACjD,aAAa,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,4BAA4B,EAAE,GAAG;IACxD,cAAc,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,EAAE,UAAU;IAC/C,qBAAqB,EAAE,CAAC,EAAE,EAAE,EAAE,CAC5B,WAAW,EAAE,sCAAsC;IACrD,eAAe,EAAE,CAAC,EAAE,EAAE,EAAE,CACtB,WAAW,EAAE,+CAA+C;IAE9D,gBAAgB,EAAE,wBAAwB;IAC1C,WAAW,EAAE,yBAAyB;IACtC,iBAAiB,EAAE,wBAAwB;IAC3C,UAAU,EAAE,8DAA8D;IAC1E,eAAe,EAAE,uDAAuD;IACxE,MAAM,EAAE,mCAAmC;IAC3C,QAAQ,EAAE,oCAAoC;IAC9C,SAAS,EAAE,iCAAiC;IAC5C,WAAW,EAAE,kCAAkC;IAC/C,YAAY,EAAE,6BAA6B;IAC3C,cAAc,EAAE,8BAA8B;IAC9C,eAAe,EAAE,qCAAqC;IACtD,iBAAiB,EAAE,gCAAgC;IACnD,YAAY,EAAE,6BAA6B;IAC3C,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,qBAAqB,MAAM,EAAE;IACxD,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,4BAA4B,GAAG,EAAE;IACzD,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,uBAAuB,GAAG,OAAO,GAAG,cAAc;IAC7E,aAAa,EAAE,yDAAyD;IACxE,kBAAkB,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,CAClC,IAAI,EAAE,yCAAyC,OAAO,0BAA0B;IAClF,eAAe,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,wBAAwB;IACvD,mBAAmB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAClC,IAAI,EAAE,4CAA4C,MAAM,YAAY;IACtE,SAAS,EAAE,YAAY;IACvB,iBAAiB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,mCAAmC,MAAM,EAAE;IAE1E,SAAS,EAAE,+CAA+C;IAC1D,OAAO,EAAE,8BAA8B;IACvC,QAAQ,EAAE,8CAA8C;IACxD,eAAe,EAAE,mCAAmC;IACpD,qBAAqB,EAAE,CAAC,KAAK,EAAE,EAAE,CAC/B,4EAA4E,KAAK,0BAA0B;IAC7G,oBAAoB,EAAE,CAAC,KAAK,EAAE,EAAE,CAC9B,6EAA6E,KAAK,sEAAsE;IAC1J,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE,CACtB,mBAAmB,KAAK,4DAA4D;IACtF,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CACzB,6BAA6B,KAAK,wEAAwE;IAC5G,YAAY,EACV,qIAAqI;IACvI,oBAAoB,EAAE,2CAA2C;IACjE,iBAAiB,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAC5B,GAAG,EAAE,aAAa,EAAE,oCAAoC;IAC1D,mBAAmB,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,CACxC,GAAG,EAAE,aAAa,EAAE,SAAS,QAAQ,4FAA4F;IACnI,eAAe,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,aAAa,EAAE,aAAa;IAC9D,mBAAmB,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,CACvC,GAAG,EAAE,aAAa,EAAE,4BAA4B,OAAO,IAAI;IAC7D,kBAAkB,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAC/B,GAAG,EAAE,+CAA+C,IAAI,gBAAgB;IAC1E,kBAAkB,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAChC,GAAG,EAAE,KAAK,KAAK,4BAA4B;IAC7C,oBAAoB,EAAE,CAAC,IAAI,EAAE,EAAE,CAC7B,IAAI,IAAI,qFAAqF;IAC/F,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACvB,IAAI,CAAC,kBAAkB,CAAC,gDAAgD;IAC1E,iBAAiB,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAC/C,mBAAmB,KAAK,uBAAuB,QAAQ,mBAAmB,QAAQ,GAAG;IACvF,mBAAmB,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAC/B,GAAG,EAAE,2CAA2C,GAAG,KAAK;IAC1D,yBAAyB,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,CAC3C,GAAG,EAAE,eAAe,SAAS,kCAAkC;IACjE,kBAAkB,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CACtC,GAAG,EAAE,eAAe,IAAI,wBAAwB,KAAK,mCAAmC;IAC1F,uBAAuB,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAC3C,GAAG,EAAE,KAAK,KAAK,kCAAkC,IAAI,gCAAgC;IACvF,uBAAuB,EAAE,CAAC,EAAE,EAAE,EAAE,CAC9B,GAAG,EAAE,uEAAuE;IAC9E,kBAAkB,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CACpC,GAAG,IAAI,uBAAuB,OAAO,qEAAqE;IAC5G,uBAAuB,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,CACvC,GAAG,EAAE,qBAAqB,OAAO,GAAG;IACtC,mBAAmB,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CACjD,mBAAmB,KAAK,yBAAyB,QAAQ,mBAAmB,QAAQ,GAAG;IACzF,2BAA2B,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CACzC,IAAI,IAAI,mDAAmD,GAAG,KAAK;IACrE,oBAAoB,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAChC,GAAG,EAAE,yBAAyB,GAAG,GAAG,IAAI,GAAG,IAAI,yBAAyB;IAC1E,mBAAmB,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CACrC,gCAAgC,IAAI,MAAM,OAAO,2EAA2E;IAE9H,SAAS,EAAE,iBAAiB;IAC5B,QAAQ,EAAE,gBAAgB;IAC1B,gBAAgB,EAAE,0BAA0B;IAC5C,WAAW,EAAE,UAAU;IACvB,cAAc,EAAE,2BAA2B;IAC3C,SAAS,EAAE,iBAAiB;IAC5B,iBAAiB,EAAE,mCAAmC;IACtD,UAAU,EAAE,wBAAwB;IACpC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,IAAI,EAAE;IACrC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,sBAAsB,IAAI,EAAE;IACjD,UAAU,EAAE,0BAA0B;IACtC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,qBAAqB,GAAG,OAAO,GAAG,EAAE;IAC5D,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,GAAG,aAAa;IAClD,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,IAAI,GAAG;IAC7C,WAAW,EAAE,qBAAqB;IAClC,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,wBAAwB,QAAQ,EAAE;IAC9D,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CACpB,WAAW,IAAI,0CAA0C;IAC3D,UAAU,EAAE,qCAAqC;IACjD,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CACtB,wBAAwB,IAAI,oDAAoD;IAClF,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE,CACvB,8CAA8C,IAAI,GAAG;IACvD,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,IAAI,EAAE;IAC9C,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,WAAW;IAC1C,eAAe,EAAE,mBAAmB;IACpC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAClB,GAAG,IAAI,8DAA8D;IACvE,uBAAuB,EAAE,mCAAmC;IAC5D,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,gBAAgB,GAAG,YAAY;IACvD,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,gDAAgD;IAC7E,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,0BAA0B;IACxD,eAAe,EACb,sEAAsE;IACxE,cAAc,EAAE,8CAA8C;IAC9D,gBAAgB,EAAE,qCAAqC;IACvD,eAAe,EAAE,oCAAoC;IACrD,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,GAAG,wBAAwB;IAC7D,qBAAqB,EACnB,0FAA0F;IAC5F,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CACpB,QAAQ,CAAC,CAAC,CAAC,0BAA0B,QAAQ,GAAG,CAAC,CAAC,CAAC,cAAc;IAEnE,SAAS,EAAE,QAAQ;IACnB,aAAa,EAAE,YAAY;IAC3B,WAAW,EAAE,UAAU;IACvB,iBAAiB,EAAE,iBAAiB;IACpC,YAAY,EAAE,WAAW;IACzB,WAAW,EAAE,SAAS;IACtB,UAAU,EAAE,0BAA0B;IACtC,WAAW,EAAE,0BAA0B;IACvC,aAAa,EAAE,2BAA2B;IAC1C,gBAAgB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,MAAM,EAAE;IACzD,iBAAiB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,oBAAoB,OAAO,EAAE;IAC7D,gBAAgB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,MAAM,gBAAgB;IACvE,kBAAkB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,6BAA6B,QAAQ,EAAE;IACzE,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,MAAM,eAAe;IAC3D,mBAAmB,EAAE,qBAAqB;IAC1C,aAAa,EAAE,4BAA4B;IAC3C,gBAAgB,EAAE,gCAAgC;IAClD,oBAAoB,EAAE,6CAA6C;IACnE,aAAa,EAAE,oDAAoD;IACnE,aAAa,EAAE,aAAa;IAC5B,aAAa,EAAE,oBAAoB;IACnC,oBAAoB,EAAE,yCAAyC;IAC/D,cAAc,EACZ,8FAA8F;IAChG,OAAO,EAAE,YAAY;IACrB,UAAU,EAAE,4BAA4B;IACxC,gBAAgB,EACd,4DAA4D;IAC9D,WAAW,EAAE,sDAAsD;IACnE,MAAM,EAAE,6BAA6B;IACrC,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAC1B,kCAAkC,IAAI,qDAAqD;IAC7F,aAAa,EAAE,0BAA0B;IACzC,cAAc,EAAE,sDAAsD;IACtE,UAAU,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,KAAK,aAAa,EAAE,GAAG;IAC7D,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,KAAK,kBAAkB;IACxD,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,WAAW;IACrC,oBAAoB,EAAE,CAAC,IAAI,EAAE,EAAE,CAC7B,2BAA2B,IAAI,oDAAoD;IACrF,sBAAsB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAoB,IAAI,UAAU;IACpE,eAAe,EACb,sEAAsE;IACxE,SAAS,EAAE,6BAA6B;IACxC,cAAc,EAAE,CAAC,EAAE,EAAE,EAAE,CACrB,4BAA4B,EAAE,uCAAuC;IACvE,gBAAgB,EACd,0EAA0E;IAC5E,uBAAuB,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,CACxC,IAAI,EAAE,OAAO,QAAQ,6CAA6C;IACpE,eAAe,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAC7B,IAAI,EAAE,qCAAqC,KAAK,GAAG;IACrD,kBAAkB,EAAE,kBAAkB;IACtC,mBAAmB,EAAE,8BAA8B;IACnD,cAAc,EAAE,cAAc;IAC9B,cAAc,EAAE,CAAC,GAAG,EAAE,EAAE,CACtB,4CAA4C,GAAG,cAAc;IAC/D,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,8BAA8B,EAAE,GAAG;IACzD,WAAW,EAAE,yBAAyB;IACtC,eAAe,EAAE,eAAe;IAChC,aAAa,EAAE,cAAc;IAC7B,QAAQ,EAAE,cAAc;IACxB,YAAY,EAAE,mBAAmB;IACjC,UAAU,EAAE,kBAAkB;IAC9B,OAAO,EAAE,MAAM;IACf,YAAY,EAAE,WAAW;IACzB,GAAG,EAAE,KAAK;IACV,EAAE,EAAE,IAAI;IACR,eAAe,EACb,wEAAwE;IAC1E,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE,CAC7B,+DAA+D,KAAK,yFAAyF;IAC/J,mBAAmB,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,CACpC,IAAI,EAAE,0BAA0B,QAAQ,GAAG;IAC7C,gBAAgB,EAAE,kCAAkC;IACpD,cAAc,EAAE,0CAA0C;IAC1D,cAAc,EAAE,0BAA0B;IAC1C,WAAW,EAAE,2BAA2B;IACxC,OAAO,EAAE,MAAM;IACf,YAAY,EAAE,WAAW;IACzB,sBAAsB,EAAE,yCAAyC;IACjE,kBAAkB,EAAE,+BAA+B;IACnD,oBAAoB,EAAE,wCAAwC;IAC9D,KAAK,EAAE,qDAAqD;IAC5D,oBAAoB,EAAE,CAAC,GAAG,EAAE,EAAE,CAC5B,qCAAqC,GAAG,4DAA4D;IACtG,oBAAoB,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CACvC,wBAAwB,EAAE,eAAe,KAAK,MAAM,GAAG,GAAG;IAC5D,gBAAgB,EAAE,yBAAyB;IAC3C,wBAAwB,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CACtC,+BAA+B,KAAK,OAAO,EAAE,yBAAyB;IACxE,MAAM,EAAE,KAAK;CACd,CAAC;AAEF,MAAM,YAAY,GAA2B,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAExD,MAAM,CAAC,MAAM,CAAC,GAAa,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,58 @@
1
+ #!/usr/bin/env node
2
+ import { Command, CommanderError } from 'commander';
3
+ import { CLI_VERSION } from './client.js';
4
+ import { registerApiCommand } from './commands/api.js';
5
+ import { registerAuthCommands } from './commands/auth.js';
6
+ import { registerCatalogCommands } from './commands/catalog.js';
7
+ import { registerConfigCommands } from './commands/config.js';
8
+ import { registerHeartbeatCommands } from './commands/heartbeat.js';
9
+ import { registerIncidentsCommands } from './commands/incidents.js';
10
+ import { registerReportsCommands } from './commands/reports.js';
11
+ import { registerMaintenanceCommands } from './commands/maintenance.js';
12
+ import { registerScenariosCommands } from './commands/scenarios.js';
13
+ import { registerServersCommands } from './commands/servers.js';
14
+ import { CliError, ExitCode, StatuserApiError } from './errors.js';
15
+ import { localizeCommander } from './commander-i18n.js';
16
+ import { t } from './i18n.js';
17
+ import { printErr } from './output.js';
18
+ const program = new Command()
19
+ .name('statuser')
20
+ .description(t.programDescription)
21
+ .version(CLI_VERSION, '-V, --version', t.versionOption)
22
+ .option('--json', t.optJson)
23
+ .option('--api-url <url>', t.optApiUrl)
24
+ .option('--debug', t.optDebug)
25
+ .showHelpAfterError()
26
+ .exitOverride();
27
+ localizeCommander(program);
28
+ registerAuthCommands(program);
29
+ registerApiCommand(program);
30
+ registerServersCommands(program);
31
+ registerCatalogCommands(program);
32
+ registerMaintenanceCommands(program);
33
+ registerScenariosCommands(program);
34
+ registerConfigCommands(program);
35
+ registerIncidentsCommands(program);
36
+ registerReportsCommands(program);
37
+ registerHeartbeatCommands(program);
38
+ // No top-level await: the standalone binary runs this as CommonJS.
39
+ program.parseAsync(process.argv).catch((error) => {
40
+ process.exitCode = handleError(error);
41
+ });
42
+ function handleError(error) {
43
+ if (error instanceof CommanderError) {
44
+ // Help and version also come through here, with exit code 0.
45
+ return error.exitCode === 0 ? ExitCode.Ok : ExitCode.Usage;
46
+ }
47
+ if (error instanceof StatuserApiError) {
48
+ printErr(error.status === 401 ? t.unauthorized : error.format());
49
+ return error.exitCode;
50
+ }
51
+ if (error instanceof CliError) {
52
+ printErr(error.message);
53
+ return error.exitCode;
54
+ }
55
+ printErr(error instanceof Error ? (error.stack ?? error.message) : String(error));
56
+ return ExitCode.Failure;
57
+ }
58
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,CAAC,EAAE,MAAM,WAAW,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;KAC1B,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC;KACjC,OAAO,CAAC,WAAW,EAAE,eAAe,EAAE,CAAC,CAAC,aAAa,CAAC;KACtD,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC;KAC3B,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,SAAS,CAAC;KACtC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC;KAC7B,kBAAkB,EAAE;KACpB,YAAY,EAAE,CAAC;AAClB,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAE3B,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC5B,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,2BAA2B,CAAC,OAAO,CAAC,CAAC;AACrC,yBAAyB,CAAC,OAAO,CAAC,CAAC;AACnC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,yBAAyB,CAAC,OAAO,CAAC,CAAC;AACnC,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,yBAAyB,CAAC,OAAO,CAAC,CAAC;AAEnC,mEAAmE;AACnE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IACxD,OAAO,CAAC,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC;AAEH,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,KAAK,YAAY,cAAc,EAAE,CAAC;QACpC,6DAA6D;QAC7D,OAAO,KAAK,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;IAC7D,CAAC;IACD,IAAI,KAAK,YAAY,gBAAgB,EAAE,CAAC;QACtC,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QACjE,OAAO,KAAK,CAAC,QAAQ,CAAC;IACxB,CAAC;IACD,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;QAC9B,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACxB,OAAO,KAAK,CAAC,QAAQ,CAAC;IACxB,CAAC;IACD,QAAQ,CACN,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACxE,CAAC;IACF,OAAO,QAAQ,CAAC,OAAO,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Where a JSON document broke, without quoting it: Node puts a fragment of
3
+ * the input into the SyntaxError message, and the input may be a config or
4
+ * a request body with passwords in it.
5
+ */
6
+ export function jsonErrorPosition(error) {
7
+ const match = /position (\d+)/.exec(String(error?.message ?? ''));
8
+ return match?.[1] ?? '';
9
+ }
10
+ //# sourceMappingURL=json-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-error.js","sourceRoot":"","sources":["../src/json-error.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAE,KAAe,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7E,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAC1B,CAAC"}
package/dist/output.js ADDED
@@ -0,0 +1,43 @@
1
+ import { t } from './i18n.js';
2
+ export function printJson(value) {
3
+ process.stdout.write(`${JSON.stringify(value, null, 2)}\n`);
4
+ }
5
+ export function printLine(line = '') {
6
+ process.stdout.write(`${line}\n`);
7
+ }
8
+ /** Progress and diagnostics go to stderr so `--json` stdout stays parseable. */
9
+ export function printErr(line) {
10
+ process.stderr.write(`${line}\n`);
11
+ }
12
+ export function printTable(headers, rows) {
13
+ const cells = rows.map((row) => row.map((cell) => cleanCell(cell)));
14
+ const widths = headers.map((header, i) => Math.max(header.length, ...cells.map((row) => row[i]?.length ?? 0)));
15
+ const format = (row) => row
16
+ .map((cell, i) => cell.padEnd(widths[i] ?? 0))
17
+ .join(' ')
18
+ .trimEnd();
19
+ printLine(format(headers));
20
+ for (const row of cells)
21
+ printLine(format(row));
22
+ }
23
+ /** Names are free text: a newline in one would break the table. */
24
+ function cleanCell(cell) {
25
+ if (cell === null || cell === undefined)
26
+ return '';
27
+ return String(cell).replace(/\s+/g, ' ');
28
+ }
29
+ const pad = (n) => String(n).padStart(2, '0');
30
+ /** Local time without seconds: a table cell, not a log timestamp. */
31
+ export function formatTime(iso) {
32
+ const d = new Date(iso);
33
+ if (Number.isNaN(d.getTime()))
34
+ return iso;
35
+ return `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())} ${pad(d.getHours())}:${pad(d.getMinutes())}`;
36
+ }
37
+ /** From start to end, or to now while still going. */
38
+ export function formatDuration(startIso, endIso, now = Date.now()) {
39
+ const end = endIso ? Date.parse(endIso) : now;
40
+ const minutes = Math.max(0, Math.round((end - Date.parse(startIso)) / 60_000));
41
+ return t.duration(Math.floor(minutes / 1440), Math.floor((minutes % 1440) / 60), minutes % 60);
42
+ }
43
+ //# sourceMappingURL=output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,228 @@
1
+ import { readFile } from 'node:fs/promises';
2
+ import { dirname, resolve } from 'node:path';
3
+ import { CliError, ExitCode } from '../errors.js';
4
+ import { t } from '../i18n.js';
5
+ import { jsonErrorPosition } from '../json-error.js';
6
+ import { textLength } from '../text-length.js';
7
+ // Mirrors the backend limits (`scenario.constants.ts`, `LocationCode`): the
8
+ // whole config is checked before the first write, so a typo in the fifth
9
+ // scenario does not leave the first four applied.
10
+ export const SCENARIO_TIMEOUTS = [15, 30, 45, 60, 120];
11
+ export const SCENARIO_LOCATIONS = [
12
+ 'msk-1',
13
+ 'spb-1',
14
+ 'ala-1',
15
+ 'nyc-1',
16
+ 'ams-1',
17
+ ];
18
+ // Hand-copied lists are pinned to the spec: a value the API adds or drops
19
+ // fails `tsc` on the next spec sync instead of silently falling behind.
20
+ const _timeoutsMatchApi = true;
21
+ const _locationsMatchApi = true;
22
+ void _timeoutsMatchApi;
23
+ void _locationsMatchApi;
24
+ export const SCENARIO_MIN_INTERVAL = 60;
25
+ export const SCENARIO_MAX_INTERVAL = 86_400;
26
+ export const SCENARIO_DEFAULT_TIMEOUT = 30;
27
+ export const SCENARIO_DEFAULT_INTERVAL = 300;
28
+ export const SCENARIO_DEFAULT_LOCATION = 'msk-1';
29
+ export const SCENARIO_SCRIPT_MAX_BYTES = 64 * 1024;
30
+ // `MaxLength` of a server name in the API.
31
+ const SCENARIO_NAME_MAX = 150;
32
+ // Same check as `assertScenarioScript` in the backend.
33
+ export const SCENARIO_HAS_TEST = /\btest(?:\.\w+)?\s*\(/;
34
+ const ENV_MAX_VARS = 20;
35
+ const ENV_VALUE_MAX_BYTES = 4 * 1024;
36
+ const ENV_NAME = /^[A-Z_][A-Z0-9_]{0,63}$/;
37
+ // Names the sandbox sets itself or that Node and Playwright read.
38
+ const ENV_RESERVED_PREFIXES = [
39
+ 'PLAYWRIGHT_',
40
+ 'PW_',
41
+ 'PWTEST_',
42
+ 'PWDEBUG',
43
+ 'DEBUG',
44
+ 'NODE_',
45
+ 'LD_',
46
+ 'STATUSER_',
47
+ ];
48
+ const ENV_RESERVED_NAMES = [
49
+ 'PATH',
50
+ 'HOME',
51
+ 'TMPDIR',
52
+ 'CI',
53
+ 'FORCE_COLOR',
54
+ 'HTTP_PROXY',
55
+ 'HTTPS_PROXY',
56
+ 'NO_PROXY',
57
+ 'ALL_PROXY',
58
+ ];
59
+ const ENV_REFERENCE = /^\$(?:\{([A-Za-z_][A-Za-z0-9_]*)\}|([A-Za-z_][A-Za-z0-9_]*))$/;
60
+ export async function loadScenarioConfig(path, env = process.env,
61
+ // `scenarios deploy` needs the section; `apply` leaves scenarios alone
62
+ // when the file has none.
63
+ options = { required: true }) {
64
+ let text;
65
+ try {
66
+ text = await readFile(path, 'utf8');
67
+ }
68
+ catch {
69
+ throw new CliError(t.configNotFound(path), ExitCode.Usage);
70
+ }
71
+ const fail = (problem) => {
72
+ throw new CliError(t.configInvalid(path, problem), ExitCode.Usage);
73
+ };
74
+ let raw;
75
+ try {
76
+ raw = JSON.parse(text);
77
+ }
78
+ catch (error) {
79
+ return fail(t.cfgJson(jsonErrorPosition(error)));
80
+ }
81
+ if (!isObject(raw))
82
+ return fail(t.cfgObject);
83
+ if (!isPositiveInt(raw.project_id)) {
84
+ return fail(`project_id: ${t.cfgPositiveInt}`);
85
+ }
86
+ // Without `required`, a missing or empty section means "do not manage".
87
+ if (!options.required &&
88
+ (raw.scenarios === undefined ||
89
+ (Array.isArray(raw.scenarios) && !raw.scenarios.length))) {
90
+ return { projectId: raw.project_id, scenarios: [] };
91
+ }
92
+ if (!Array.isArray(raw.scenarios) || !raw.scenarios.length) {
93
+ return fail(`scenarios: ${t.cfgNonEmptyArray}`);
94
+ }
95
+ const baseDir = dirname(resolve(path));
96
+ const names = new Set();
97
+ const scenarios = [];
98
+ for (const [index, item] of raw.scenarios.entries()) {
99
+ const at = `scenarios[${index}]`;
100
+ if (!isObject(item))
101
+ return fail(`${at}: ${t.cfgObject}`);
102
+ const name = typeof item.name === 'string' ? item.name.trim() : '';
103
+ if (!name)
104
+ return fail(`${at}.name: ${t.cfgRequired}`);
105
+ if (textLength(name) > SCENARIO_NAME_MAX) {
106
+ return fail(`${at}.name: ${t.cfgMaxLength(SCENARIO_NAME_MAX)}`);
107
+ }
108
+ if (names.has(name))
109
+ return fail(`${at}.name: ${t.cfgDuplicate(name)}`);
110
+ names.add(name);
111
+ if (item.id !== undefined && !isPositiveInt(item.id)) {
112
+ return fail(`${at}.id: ${t.cfgPositiveInt}`);
113
+ }
114
+ if (typeof item.file !== 'string' || !item.file) {
115
+ return fail(`${at}.file: ${t.cfgRequired}`);
116
+ }
117
+ const timeout = item.timeout ?? SCENARIO_DEFAULT_TIMEOUT;
118
+ if (!SCENARIO_TIMEOUTS.includes(timeout)) {
119
+ return fail(`${at}.timeout: ${t.cfgOneOf(SCENARIO_TIMEOUTS.join(', '))}`);
120
+ }
121
+ const interval = item.interval ?? SCENARIO_DEFAULT_INTERVAL;
122
+ if (!Number.isInteger(interval) ||
123
+ interval < SCENARIO_MIN_INTERVAL ||
124
+ interval > SCENARIO_MAX_INTERVAL) {
125
+ return fail(`${at}.interval: ${t.cfgRange(SCENARIO_MIN_INTERVAL, SCENARIO_MAX_INTERVAL)}`);
126
+ }
127
+ if (interval < timeout) {
128
+ return fail(`${at}.interval: ${t.cfgIntervalBelowTimeout}`);
129
+ }
130
+ const location = item.location ?? SCENARIO_DEFAULT_LOCATION;
131
+ if (!SCENARIO_LOCATIONS.includes(location)) {
132
+ return fail(`${at}.location: ${t.cfgOneOf(SCENARIO_LOCATIONS.join(', '))}`);
133
+ }
134
+ const file = resolve(baseDir, item.file);
135
+ let script;
136
+ try {
137
+ script = await readFile(file, 'utf8');
138
+ }
139
+ catch {
140
+ return fail(`${at}.file: ${t.cfgCannotRead(item.file)}`);
141
+ }
142
+ if (!script.trim())
143
+ return fail(`${at}.file: ${t.cfgFileEmpty(item.file)}`);
144
+ if (Buffer.byteLength(script, 'utf8') > SCENARIO_SCRIPT_MAX_BYTES) {
145
+ return fail(`${at}.file: ${t.cfgFileTooLarge}`);
146
+ }
147
+ // The backend rejects a script without any test(): the runner would
148
+ // report zero tests and the monitor stay green checking nothing.
149
+ if (!SCENARIO_HAS_TEST.test(script)) {
150
+ return fail(`${at}.file: ${t.cfgNoTest(item.file)}`);
151
+ }
152
+ let resolvedEnv;
153
+ if (item.env !== undefined) {
154
+ if (!isObject(item.env))
155
+ return fail(`${at}.env: ${t.cfgObject}`);
156
+ // No prototype: `__proto__` from the file must stay a key and fail the
157
+ // name check, not vanish — an empty env deletes every saved variable.
158
+ resolvedEnv = Object.create(null);
159
+ for (const [key, value] of Object.entries(item.env)) {
160
+ if (typeof value !== 'string') {
161
+ return fail(`${at}.env.${key}: ${t.cfgString}`);
162
+ }
163
+ resolvedEnv[key] = resolveEnvValue(value, name, env);
164
+ }
165
+ const problem = scenarioEnvProblem(resolvedEnv);
166
+ if (problem)
167
+ return fail(`${at}.env: ${problem}`);
168
+ }
169
+ scenarios.push({
170
+ id: item.id,
171
+ name,
172
+ file: item.file,
173
+ script,
174
+ interval: interval,
175
+ timeout: timeout,
176
+ location: location,
177
+ env: resolvedEnv,
178
+ });
179
+ }
180
+ return { projectId: raw.project_id, scenarios };
181
+ }
182
+ /**
183
+ * The backend rules for scenario variables (`mergeScenarioEnv`). Checked
184
+ * before any write: a rejected name mid-deploy would leave earlier scenarios
185
+ * applied. Returns the problem or null.
186
+ */
187
+ export function scenarioEnvProblem(env) {
188
+ const names = Object.keys(env);
189
+ if (names.length > ENV_MAX_VARS) {
190
+ return t.cfgEnvTooMany(ENV_MAX_VARS);
191
+ }
192
+ for (const name of names) {
193
+ if (!ENV_NAME.test(name) ||
194
+ ENV_RESERVED_NAMES.includes(name) ||
195
+ ENV_RESERVED_PREFIXES.some((prefix) => name.startsWith(prefix))) {
196
+ return t.cfgEnvName(name);
197
+ }
198
+ if (Buffer.byteLength(env[name], 'utf8') > ENV_VALUE_MAX_BYTES) {
199
+ return t.cfgEnvValue(name);
200
+ }
201
+ }
202
+ return null;
203
+ }
204
+ /**
205
+ * `"$NAME"` / `"${NAME}"` reads the CI environment; `"$$…"` is a literal
206
+ * value starting with `$`; anything else is a
207
+ * literal. Secrets belong in CI variables, not in the committed config.
208
+ */
209
+ export function resolveEnvValue(value, scenario, env) {
210
+ if (value.startsWith('$$'))
211
+ return value.slice(1);
212
+ const match = ENV_REFERENCE.exec(value);
213
+ if (!match)
214
+ return value;
215
+ const name = (match[1] ?? match[2]);
216
+ const resolved = env[name];
217
+ if (resolved === undefined) {
218
+ throw new CliError(t.envMissing(name, scenario), ExitCode.Usage);
219
+ }
220
+ return resolved;
221
+ }
222
+ function isObject(value) {
223
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
224
+ }
225
+ function isPositiveInt(value) {
226
+ return Number.isInteger(value) && value > 0;
227
+ }
228
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/scenarios/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,159 @@
1
+ import { CliError, ExitCode } from '../errors.js';
2
+ import { t } from '../i18n.js';
3
+ /**
4
+ * Pure: compares the config with the account's scenario servers. Every
5
+ * conflict the API would reject mid-way is raised here, before any write.
6
+ *
7
+ * `servers` must hold ALL scenario servers of the account: the backend
8
+ * rejects a script already used anywhere in the account, not only in the
9
+ * project.
10
+ */
11
+ export function buildDeployPlan(config, servers) {
12
+ const scenarios = servers.filter((s) => s.protocol === 'scenario');
13
+ const inProject = scenarios.filter((s) => s.project_id === config.projectId);
14
+ const matched = new Map();
15
+ const claimed = new Set();
16
+ for (const scenario of config.scenarios) {
17
+ const server = matchServer(scenario, scenarios, inProject, config.projectId);
18
+ if (server) {
19
+ // Two entries resolved to one server: an id pin plus a name match.
20
+ if (claimed.has(server.id))
21
+ fail(t.deployDuplicateName(scenario.name));
22
+ claimed.add(server.id);
23
+ }
24
+ matched.set(scenario, server);
25
+ }
26
+ // The backend checks the script only when it is set: on a create or a
27
+ // real change. Duplicates saved earlier stay editable, as on the API.
28
+ const writesScript = (scenario) => matched.get(scenario)?.scenario_script !== scenario.script;
29
+ const byScript = new Map();
30
+ for (const scenario of config.scenarios) {
31
+ const other = byScript.get(scenario.script);
32
+ if (other && (writesScript(other) || writesScript(scenario))) {
33
+ fail(t.deployDuplicateScript(other.name, scenario.name));
34
+ }
35
+ byScript.set(scenario.script, scenario);
36
+ }
37
+ // Who holds each script, replayed in execution order (the config's): a
38
+ // script freed by an earlier step may be taken by a later one, as on the
39
+ // API. A swap between two servers still clashes on its first PATCH and is
40
+ // left to two deploys.
41
+ const holders = new Map();
42
+ for (const server of scenarios) {
43
+ const list = holders.get(server.scenario_script ?? '') ?? [];
44
+ list.push(server);
45
+ holders.set(server.scenario_script ?? '', list);
46
+ }
47
+ for (const scenario of config.scenarios) {
48
+ if (!writesScript(scenario))
49
+ continue;
50
+ const own = matched.get(scenario);
51
+ const holder = (holders.get(scenario.script) ?? []).find((s) => s.id !== own?.id);
52
+ if (holder) {
53
+ fail(t.deployScriptTaken(scenario.name, holder.id, holder.project_id));
54
+ }
55
+ if (own) {
56
+ const old = own.scenario_script ?? '';
57
+ holders.set(old, (holders.get(old) ?? []).filter((s) => s.id !== own.id));
58
+ }
59
+ const taker = own ?? { id: -1, project_id: config.projectId };
60
+ holders.set(scenario.script, [
61
+ ...(holders.get(scenario.script) ?? []),
62
+ taker,
63
+ ]);
64
+ }
65
+ const steps = config.scenarios.map((scenario) => {
66
+ const server = matched.get(scenario);
67
+ if (!server) {
68
+ return {
69
+ kind: 'create',
70
+ scenario,
71
+ body: {
72
+ project_id: config.projectId,
73
+ protocol: 'scenario',
74
+ // The backend replaces it with a system host; any non-empty string.
75
+ host: 'scenario',
76
+ name: scenario.name,
77
+ scenario_script: scenario.script,
78
+ check_interval: scenario.interval,
79
+ request_timeout: scenario.timeout,
80
+ locations: [scenario.location],
81
+ is_follow_redirects: true,
82
+ is_ssl_check: false,
83
+ is_domain_check: false,
84
+ ...(scenario.env ? { scenario_env: scenario.env } : {}),
85
+ },
86
+ };
87
+ }
88
+ return diff(scenario, server);
89
+ });
90
+ const unmanaged = inProject
91
+ .filter((s) => !claimed.has(s.id))
92
+ .map((s) => ({ id: s.id, name: s.name }));
93
+ return { projectId: config.projectId, steps, unmanaged };
94
+ }
95
+ function matchServer(scenario, scenarios, inProject, projectId) {
96
+ if (scenario.id !== undefined) {
97
+ const pinned = scenarios.find((s) => s.id === scenario.id);
98
+ if (!pinned)
99
+ fail(t.deployIdNotFound(scenario.name, scenario.id));
100
+ if (pinned.project_id !== projectId) {
101
+ fail(t.deployIdOtherProject(scenario.name, pinned.id, pinned.project_id));
102
+ }
103
+ return pinned;
104
+ }
105
+ const byName = inProject.filter((s) => s.name === scenario.name);
106
+ if (byName.length > 1)
107
+ fail(t.deployDuplicateName(scenario.name));
108
+ return byName[0];
109
+ }
110
+ function diff(scenario, server) {
111
+ const body = {};
112
+ const fields = [];
113
+ if (server.name !== scenario.name) {
114
+ body.name = scenario.name;
115
+ fields.push('name');
116
+ }
117
+ if (server.scenario_script !== scenario.script) {
118
+ body.scenario_script = scenario.script;
119
+ fields.push('script');
120
+ }
121
+ if (server.check_interval !== scenario.interval) {
122
+ body.check_interval = scenario.interval;
123
+ // Older backends cap a PATCHed interval at an hour unless `protocol` is
124
+ // in the body; sending the unchanged protocol is harmless on newer ones.
125
+ body.protocol = 'scenario';
126
+ fields.push('interval');
127
+ }
128
+ if (server.request_timeout !== scenario.timeout) {
129
+ body.request_timeout = scenario.timeout;
130
+ fields.push('timeout');
131
+ }
132
+ if (server.locations.length !== 1 ||
133
+ server.locations[0] !== scenario.location) {
134
+ body.locations = [scenario.location];
135
+ fields.push('location');
136
+ }
137
+ if (scenario.env) {
138
+ // Values never come back from the API, so a set env is always sent.
139
+ // `scenario_env` is a merge patch: names absent from the config are
140
+ // deleted explicitly with null.
141
+ const patch = { ...scenario.env };
142
+ for (const key of server.scenario_env_keys ?? []) {
143
+ if (!(key in scenario.env))
144
+ patch[key] = null;
145
+ }
146
+ if (Object.keys(patch).length) {
147
+ body.scenario_env = patch;
148
+ fields.push('env');
149
+ }
150
+ }
151
+ if (!fields.length) {
152
+ return { kind: 'unchanged', scenario, serverId: server.id };
153
+ }
154
+ return { kind: 'update', scenario, serverId: server.id, fields, body };
155
+ }
156
+ function fail(message) {
157
+ throw new CliError(message, ExitCode.Usage);
158
+ }
159
+ //# sourceMappingURL=plan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/scenarios/plan.ts"],"names":[],"mappings":"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"}