@explita/tunnel-server-plugin 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 (94) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/LICENSE +21 -0
  3. package/README.md +63 -2
  4. package/bin/cli.js +100 -0
  5. package/dist/generated/prisma/browser.d.ts +25 -0
  6. package/dist/generated/prisma/browser.d.ts.map +1 -0
  7. package/dist/generated/prisma/browser.js +18 -0
  8. package/dist/generated/prisma/browser.js.map +1 -0
  9. package/dist/generated/prisma/client.d.ts +44 -0
  10. package/dist/generated/prisma/client.d.ts.map +1 -0
  11. package/dist/generated/prisma/client.js +35 -0
  12. package/dist/generated/prisma/client.js.map +1 -0
  13. package/dist/generated/prisma/commonInputTypes.d.ts +278 -0
  14. package/dist/generated/prisma/commonInputTypes.d.ts.map +1 -0
  15. package/dist/generated/prisma/commonInputTypes.js +11 -0
  16. package/dist/generated/prisma/commonInputTypes.js.map +1 -0
  17. package/dist/generated/prisma/enums.d.ts +2 -0
  18. package/dist/generated/prisma/enums.d.ts.map +1 -0
  19. package/dist/generated/prisma/enums.js +11 -0
  20. package/dist/generated/prisma/enums.js.map +1 -0
  21. package/dist/generated/prisma/internal/class.d.ts +166 -0
  22. package/dist/generated/prisma/internal/class.d.ts.map +1 -0
  23. package/dist/generated/prisma/internal/class.js +50 -0
  24. package/dist/generated/prisma/internal/class.js.map +1 -0
  25. package/dist/generated/prisma/internal/prismaNamespace.d.ts +867 -0
  26. package/dist/generated/prisma/internal/prismaNamespace.d.ts.map +1 -0
  27. package/dist/generated/prisma/internal/prismaNamespace.js +128 -0
  28. package/dist/generated/prisma/internal/prismaNamespace.js.map +1 -0
  29. package/dist/generated/prisma/internal/prismaNamespaceBrowser.d.ts +92 -0
  30. package/dist/generated/prisma/internal/prismaNamespaceBrowser.d.ts.map +1 -0
  31. package/dist/generated/prisma/internal/prismaNamespaceBrowser.js +99 -0
  32. package/dist/generated/prisma/internal/prismaNamespaceBrowser.js.map +1 -0
  33. package/dist/generated/prisma/models/DailyMetric.d.ts +1152 -0
  34. package/dist/generated/prisma/models/DailyMetric.d.ts.map +1 -0
  35. package/dist/generated/prisma/models/DailyMetric.js +2 -0
  36. package/dist/generated/prisma/models/DailyMetric.js.map +1 -0
  37. package/dist/generated/prisma/models/Developer.d.ts +1134 -0
  38. package/dist/generated/prisma/models/Developer.d.ts.map +1 -0
  39. package/dist/generated/prisma/models/Developer.js +2 -0
  40. package/dist/generated/prisma/models/Developer.js.map +1 -0
  41. package/dist/generated/prisma/models/SystemMetric.d.ts +1048 -0
  42. package/dist/generated/prisma/models/SystemMetric.d.ts.map +1 -0
  43. package/dist/generated/prisma/models/SystemMetric.js +2 -0
  44. package/dist/generated/prisma/models/SystemMetric.js.map +1 -0
  45. package/dist/generated/prisma/models/Token.d.ts +1214 -0
  46. package/dist/generated/prisma/models/Token.d.ts.map +1 -0
  47. package/dist/generated/prisma/models/Token.js +2 -0
  48. package/dist/generated/prisma/models/Token.js.map +1 -0
  49. package/dist/generated/prisma/models.d.ts +6 -0
  50. package/dist/generated/prisma/models.d.ts.map +1 -0
  51. package/dist/generated/prisma/models.js +2 -0
  52. package/dist/generated/prisma/models.js.map +1 -0
  53. package/dist/index.d.ts +21 -0
  54. package/dist/index.d.ts.map +1 -0
  55. package/dist/index.js +45 -0
  56. package/dist/index.js.map +1 -0
  57. package/dist/issue.d.ts +3 -0
  58. package/dist/issue.d.ts.map +1 -0
  59. package/dist/issue.js +102 -0
  60. package/dist/issue.js.map +1 -0
  61. package/dist/lib/cache.d.ts +2 -0
  62. package/dist/lib/cache.d.ts.map +1 -0
  63. package/dist/lib/cache.js +6 -0
  64. package/dist/lib/cache.js.map +1 -0
  65. package/dist/lib/mailer.d.ts +28 -0
  66. package/dist/lib/mailer.d.ts.map +1 -0
  67. package/dist/lib/mailer.js +116 -0
  68. package/dist/lib/mailer.js.map +1 -0
  69. package/dist/lib/metrics.d.ts +27 -0
  70. package/dist/lib/metrics.d.ts.map +1 -0
  71. package/dist/lib/metrics.js +93 -0
  72. package/dist/lib/metrics.js.map +1 -0
  73. package/dist/lib/prisma.d.ts +3 -0
  74. package/dist/lib/prisma.d.ts.map +1 -0
  75. package/dist/lib/prisma.js +20 -0
  76. package/dist/lib/prisma.js.map +1 -0
  77. package/dist/lib/utils.d.ts +2 -0
  78. package/dist/lib/utils.d.ts.map +1 -0
  79. package/dist/lib/utils.js +5 -0
  80. package/dist/lib/utils.js.map +1 -0
  81. package/dist/request.d.ts +4 -0
  82. package/dist/request.d.ts.map +1 -0
  83. package/dist/request.js +29 -0
  84. package/dist/request.js.map +1 -0
  85. package/dist/validate.d.ts +2 -0
  86. package/dist/validate.d.ts.map +1 -0
  87. package/dist/validate.js +48 -0
  88. package/dist/validate.js.map +1 -0
  89. package/dist/verify.d.ts +3 -0
  90. package/dist/verify.d.ts.map +1 -0
  91. package/dist/verify.js +53 -0
  92. package/dist/verify.js.map +1 -0
  93. package/package.json +52 -4
  94. package/prisma/schema.prisma +62 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Token.d.ts","sourceRoot":"","sources":["../../../../src/generated/prisma/models/Token.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,KAAK,OAAO,MAAM,+BAA+B,CAAA;AAE7D,OAAO,KAAK,KAAK,MAAM,MAAM,gCAAgC,CAAA;AAE7D;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;AAEpF,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,6BAA6B,GAAG,IAAI,CAAA;IAC5C,IAAI,EAAE,2BAA2B,GAAG,IAAI,CAAA;IACxC,IAAI,EAAE,2BAA2B,GAAG,IAAI,CAAA;CACzC,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;IACjB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAA;IACtB,UAAU,EAAE,IAAI,GAAG,IAAI,CAAA;IACvB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;IACjB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAA;IACtB,UAAU,EAAE,IAAI,GAAG,IAAI,CAAA;IACvB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,6BAA6B,GAAG;IAC1C,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAGD,MAAM,MAAM,0BAA0B,GAAG;IACvC,EAAE,CAAC,EAAE,IAAI,CAAA;IACT,WAAW,CAAC,EAAE,IAAI,CAAA;IAClB,KAAK,CAAC,EAAE,IAAI,CAAA;IACZ,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,UAAU,CAAC,EAAE,IAAI,CAAA;IACjB,SAAS,CAAC,EAAE,IAAI,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,EAAE,CAAC,EAAE,IAAI,CAAA;IACT,WAAW,CAAC,EAAE,IAAI,CAAA;IAClB,KAAK,CAAC,EAAE,IAAI,CAAA;IACZ,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,UAAU,CAAC,EAAE,IAAI,CAAA;IACjB,SAAS,CAAC,EAAE,IAAI,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,4BAA4B,GAAG;IACzC,EAAE,CAAC,EAAE,IAAI,CAAA;IACT,WAAW,CAAC,EAAE,IAAI,CAAA;IAClB,KAAK,CAAC,EAAE,IAAI,CAAA;IACZ,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,UAAU,CAAC,EAAE,IAAI,CAAA;IACjB,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,IAAI,CAAC,EAAE,IAAI,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,kBAAkB,CAAC,OAAO,SAAS,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,IAAI;IAC7H;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,eAAe,CAAA;IAC9B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,6BAA6B,GAAG,MAAM,CAAC,6BAA6B,EAAE,CAAA;IACvF;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,qBAAqB,CAAA;IACrC;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;OAIG;IACH,MAAM,CAAC,EAAE,IAAI,GAAG,4BAA4B,CAAA;IAC5C;;;;OAIG;IACH,IAAI,CAAC,EAAE,0BAA0B,CAAA;IACjC;;;;OAIG;IACH,IAAI,CAAC,EAAE,0BAA0B,CAAA;CAClC,CAAA;AAED,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,kBAAkB,IAAI;KAC3D,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,cAAc,GAAG,CAAC,SAAS,QAAQ,GAAG,OAAO,GACnE,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GACf,MAAM,GACN,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,GAC/C,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;CAClD,CAAA;AAKD,MAAM,MAAM,gBAAgB,CAAC,OAAO,SAAS,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,IAAI;IAC3H,KAAK,CAAC,EAAE,MAAM,CAAC,eAAe,CAAA;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC,gCAAgC,GAAG,MAAM,CAAC,gCAAgC,EAAE,CAAA;IAC7F,EAAE,EAAE,MAAM,CAAC,oBAAoB,EAAE,GAAG,MAAM,CAAC,oBAAoB,CAAA;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC,mCAAmC,CAAA;IACnD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,4BAA4B,GAAG,IAAI,CAAA;IAC5C,IAAI,CAAC,EAAE,0BAA0B,CAAA;IACjC,IAAI,CAAC,EAAE,0BAA0B,CAAA;CAClC,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,IAAI,CAAA;IACf,UAAU,EAAE,IAAI,GAAG,IAAI,CAAA;IACvB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAA;IACtB,MAAM,EAAE,6BAA6B,GAAG,IAAI,CAAA;IAC5C,IAAI,EAAE,2BAA2B,GAAG,IAAI,CAAA;IACxC,IAAI,EAAE,2BAA2B,GAAG,IAAI,CAAA;CACzC,CAAA;AAED,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,gBAAgB,IAAI,MAAM,CAAC,aAAa,CACnF,KAAK,CACH,MAAM,CAAC,cAAc,CAAC,sBAAsB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GACpD;KACG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,sBAAsB,CAAC,CAAC,GAAG,CAAC,SAAS,QAAQ,GACnE,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,GAClB,MAAM,GACN,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC,GACvD,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC;CAC1D,CACF,CACF,CAAA;AAIH,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,EAAE,CAAA;IACvD,EAAE,CAAC,EAAE,MAAM,CAAC,eAAe,EAAE,CAAA;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,EAAE,CAAA;IACvD,EAAE,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,MAAM,CAAA;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,MAAM,CAAA;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,MAAM,CAAA;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,MAAM,CAAA;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,6BAA6B,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAA;CACzF,CAAA;AAED,MAAM,MAAM,6BAA6B,GAAG;IAC1C,EAAE,CAAC,EAAE,MAAM,CAAC,SAAS,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC,SAAS,CAAA;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,SAAS,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC,SAAS,CAAA;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,SAAS,CAAA;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,SAAS,CAAA;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC,iCAAiC,CAAA;CACrD,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,OAAO,CAAC;IACjD,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,EAAE,CAAA;IACvD,EAAE,CAAC,EAAE,MAAM,CAAC,eAAe,EAAE,CAAA;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,EAAE,CAAA;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,MAAM,CAAA;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,MAAM,CAAA;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,6BAA6B,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAA;CACzF,EAAE,IAAI,GAAG,OAAO,CAAC,CAAA;AAElB,MAAM,MAAM,gCAAgC,GAAG;IAC7C,EAAE,CAAC,EAAE,MAAM,CAAC,SAAS,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC,SAAS,CAAA;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,SAAS,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC,SAAS,CAAA;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,SAAS,CAAA;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,SAAS,CAAA;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC,+BAA+B,CAAA;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC,6BAA6B,CAAA;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC,6BAA6B,CAAA;CAC5C,CAAA;AAED,MAAM,MAAM,mCAAmC,GAAG;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC,mCAAmC,GAAG,MAAM,CAAC,mCAAmC,EAAE,CAAA;IAC/F,EAAE,CAAC,EAAE,MAAM,CAAC,mCAAmC,EAAE,CAAA;IACjD,GAAG,CAAC,EAAE,MAAM,CAAC,mCAAmC,GAAG,MAAM,CAAC,mCAAmC,EAAE,CAAA;IAC/F,EAAE,CAAC,EAAE,MAAM,CAAC,0BAA0B,CAAC,OAAO,CAAC,GAAG,MAAM,CAAA;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC,0BAA0B,CAAC,OAAO,CAAC,GAAG,MAAM,CAAA;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC,0BAA0B,CAAC,OAAO,CAAC,GAAG,MAAM,CAAA;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC,4BAA4B,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,MAAM,CAAA;IACxE,UAAU,CAAC,EAAE,MAAM,CAAC,oCAAoC,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;IACxF,SAAS,CAAC,EAAE,MAAM,CAAC,oCAAoC,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;CACxF,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;IACzB,UAAU,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;IACjC,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;IAChC,SAAS,EAAE,MAAM,CAAC,0CAA0C,CAAA;CAC7D,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;IACzB,UAAU,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;IACjC,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;CACjC,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC,gCAAgC,GAAG,MAAM,CAAA;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC,gCAAgC,GAAG,MAAM,CAAA;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC,kCAAkC,GAAG,IAAI,GAAG,MAAM,CAAA;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC,0CAA0C,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;IACrF,SAAS,CAAC,EAAE,MAAM,CAAC,0CAA0C,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;IACpF,SAAS,CAAC,EAAE,MAAM,CAAC,kDAAkD,CAAA;CACtE,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,EAAE,CAAC,EAAE,MAAM,CAAC,gCAAgC,GAAG,MAAM,CAAA;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC,gCAAgC,GAAG,MAAM,CAAA;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC,gCAAgC,GAAG,MAAM,CAAA;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC,kCAAkC,GAAG,IAAI,GAAG,MAAM,CAAA;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC,0CAA0C,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;IACrF,SAAS,CAAC,EAAE,MAAM,CAAC,0CAA0C,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;CACrF,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;IACzB,UAAU,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;IACjC,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;CACjC,CAAA;AAED,MAAM,MAAM,4BAA4B,GAAG;IACzC,EAAE,CAAC,EAAE,MAAM,CAAC,gCAAgC,GAAG,MAAM,CAAA;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC,gCAAgC,GAAG,MAAM,CAAA;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC,kCAAkC,GAAG,IAAI,GAAG,MAAM,CAAA;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC,0CAA0C,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;IACrF,SAAS,CAAC,EAAE,MAAM,CAAC,0CAA0C,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;CACrF,CAAA;AAED,MAAM,MAAM,6BAA6B,GAAG;IAC1C,EAAE,CAAC,EAAE,MAAM,CAAC,gCAAgC,GAAG,MAAM,CAAA;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC,gCAAgC,GAAG,MAAM,CAAA;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC,gCAAgC,GAAG,MAAM,CAAA;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC,kCAAkC,GAAG,IAAI,GAAG,MAAM,CAAA;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC,0CAA0C,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;IACrF,SAAS,CAAC,EAAE,MAAM,CAAC,0CAA0C,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;CACrF,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC,eAAe,CAAA;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC,eAAe,CAAA;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC,eAAe,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,kCAAkC,GAAG;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC,SAAS,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,+BAA+B,GAAG;IAC5C,EAAE,CAAC,EAAE,MAAM,CAAC,SAAS,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC,SAAS,CAAA;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,SAAS,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC,SAAS,CAAA;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC,SAAS,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC,SAAS,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,6BAA6B,GAAG;IAC1C,EAAE,CAAC,EAAE,MAAM,CAAC,SAAS,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC,SAAS,CAAA;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,SAAS,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC,SAAS,CAAA;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC,SAAS,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC,SAAS,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,6BAA6B,GAAG;IAC1C,EAAE,CAAC,EAAE,MAAM,CAAC,SAAS,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC,SAAS,CAAA;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,SAAS,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC,SAAS,CAAA;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC,SAAS,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC,SAAS,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,0CAA0C,GAAG;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,gCAAgC,EAAE,MAAM,CAAC,yCAAyC,CAAC,GAAG,MAAM,CAAC,gCAAgC,EAAE,GAAG,MAAM,CAAC,yCAAyC,EAAE,CAAA;IAC/M,eAAe,CAAC,EAAE,MAAM,CAAC,yCAAyC,GAAG,MAAM,CAAC,yCAAyC,EAAE,CAAA;IACvH,UAAU,CAAC,EAAE,MAAM,CAAC,qCAAqC,CAAA;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAA;CACxE,CAAA;AAED,MAAM,MAAM,mDAAmD,GAAG;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,gCAAgC,EAAE,MAAM,CAAC,yCAAyC,CAAC,GAAG,MAAM,CAAC,gCAAgC,EAAE,GAAG,MAAM,CAAC,yCAAyC,EAAE,CAAA;IAC/M,eAAe,CAAC,EAAE,MAAM,CAAC,yCAAyC,GAAG,MAAM,CAAC,yCAAyC,EAAE,CAAA;IACvH,UAAU,CAAC,EAAE,MAAM,CAAC,qCAAqC,CAAA;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAA;CACxE,CAAA;AAED,MAAM,MAAM,0CAA0C,GAAG;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,gCAAgC,EAAE,MAAM,CAAC,yCAAyC,CAAC,GAAG,MAAM,CAAC,gCAAgC,EAAE,GAAG,MAAM,CAAC,yCAAyC,EAAE,CAAA;IAC/M,eAAe,CAAC,EAAE,MAAM,CAAC,yCAAyC,GAAG,MAAM,CAAC,yCAAyC,EAAE,CAAA;IACvH,MAAM,CAAC,EAAE,MAAM,CAAC,+CAA+C,GAAG,MAAM,CAAC,+CAA+C,EAAE,CAAA;IAC1H,UAAU,CAAC,EAAE,MAAM,CAAC,qCAAqC,CAAA;IACzD,GAAG,CAAC,EAAE,MAAM,CAAC,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAA;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAA;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAA;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAA;IACvE,MAAM,CAAC,EAAE,MAAM,CAAC,+CAA+C,GAAG,MAAM,CAAC,+CAA+C,EAAE,CAAA;IAC1H,UAAU,CAAC,EAAE,MAAM,CAAC,6CAA6C,GAAG,MAAM,CAAC,6CAA6C,EAAE,CAAA;IAC1H,UAAU,CAAC,EAAE,MAAM,CAAC,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAA;CAC3E,CAAA;AAED,MAAM,MAAM,mDAAmD,GAAG;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,gCAAgC,EAAE,MAAM,CAAC,yCAAyC,CAAC,GAAG,MAAM,CAAC,gCAAgC,EAAE,GAAG,MAAM,CAAC,yCAAyC,EAAE,CAAA;IAC/M,eAAe,CAAC,EAAE,MAAM,CAAC,yCAAyC,GAAG,MAAM,CAAC,yCAAyC,EAAE,CAAA;IACvH,MAAM,CAAC,EAAE,MAAM,CAAC,+CAA+C,GAAG,MAAM,CAAC,+CAA+C,EAAE,CAAA;IAC1H,UAAU,CAAC,EAAE,MAAM,CAAC,qCAAqC,CAAA;IACzD,GAAG,CAAC,EAAE,MAAM,CAAC,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAA;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAA;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAA;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAA;IACvE,MAAM,CAAC,EAAE,MAAM,CAAC,+CAA+C,GAAG,MAAM,CAAC,+CAA+C,EAAE,CAAA;IAC1H,UAAU,CAAC,EAAE,MAAM,CAAC,6CAA6C,GAAG,MAAM,CAAC,6CAA6C,EAAE,CAAA;IAC1H,UAAU,CAAC,EAAE,MAAM,CAAC,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAA;CAC3E,CAAA;AAED,MAAM,MAAM,0CAA0C,GAAG;IACvD,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,gCAAgC,GAAG;IAC7C,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;IACzB,UAAU,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;IACjC,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;CACjC,CAAA;AAED,MAAM,MAAM,yCAAyC,GAAG;IACtD,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;IACzB,UAAU,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;IACjC,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;CACjC,CAAA;AAED,MAAM,MAAM,yCAAyC,GAAG;IACtD,KAAK,EAAE,MAAM,CAAC,qBAAqB,CAAA;IACnC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,gCAAgC,EAAE,MAAM,CAAC,yCAAyC,CAAC,CAAA;CAC9G,CAAA;AAED,MAAM,MAAM,qCAAqC,GAAG;IAClD,IAAI,EAAE,MAAM,CAAC,6BAA6B,GAAG,MAAM,CAAC,6BAA6B,EAAE,CAAA;IACnF,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,+CAA+C,GAAG;IAC5D,KAAK,EAAE,MAAM,CAAC,qBAAqB,CAAA;IACnC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,gCAAgC,EAAE,MAAM,CAAC,yCAAyC,CAAC,CAAA;IAC7G,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,gCAAgC,EAAE,MAAM,CAAC,yCAAyC,CAAC,CAAA;CAC9G,CAAA;AAED,MAAM,MAAM,+CAA+C,GAAG;IAC5D,KAAK,EAAE,MAAM,CAAC,qBAAqB,CAAA;IACnC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,gCAAgC,EAAE,MAAM,CAAC,yCAAyC,CAAC,CAAA;CAC5G,CAAA;AAED,MAAM,MAAM,6CAA6C,GAAG;IAC1D,KAAK,EAAE,MAAM,CAAC,qBAAqB,CAAA;IACnC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,4BAA4B,EAAE,MAAM,CAAC,6CAA6C,CAAC,CAAA;CAC5G,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAA;IACnE,EAAE,CAAC,EAAE,MAAM,CAAC,qBAAqB,EAAE,CAAA;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAA;IACnE,EAAE,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,MAAM,CAAA;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,MAAM,CAAA;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,MAAM,CAAA;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,MAAM,CAAA;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;CAC1E,CAAA;AAED,MAAM,MAAM,6BAA6B,GAAG;IAC1C,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;IACzB,UAAU,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;IACjC,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;CACjC,CAAA;AAED,MAAM,MAAM,gCAAgC,GAAG;IAC7C,EAAE,CAAC,EAAE,MAAM,CAAC,gCAAgC,GAAG,MAAM,CAAA;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC,gCAAgC,GAAG,MAAM,CAAA;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC,kCAAkC,GAAG,IAAI,GAAG,MAAM,CAAA;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC,0CAA0C,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;IACrF,SAAS,CAAC,EAAE,MAAM,CAAC,0CAA0C,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;CACrF,CAAA;AAED,MAAM,MAAM,yCAAyC,GAAG;IACtD,EAAE,CAAC,EAAE,MAAM,CAAC,gCAAgC,GAAG,MAAM,CAAA;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC,gCAAgC,GAAG,MAAM,CAAA;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC,kCAAkC,GAAG,IAAI,GAAG,MAAM,CAAA;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC,0CAA0C,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;IACrF,SAAS,CAAC,EAAE,MAAM,CAAC,0CAA0C,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;CACrF,CAAA;AAED,MAAM,MAAM,6CAA6C,GAAG;IAC1D,EAAE,CAAC,EAAE,MAAM,CAAC,gCAAgC,GAAG,MAAM,CAAA;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC,gCAAgC,GAAG,MAAM,CAAA;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC,kCAAkC,GAAG,IAAI,GAAG,MAAM,CAAA;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC,0CAA0C,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;IACrF,SAAS,CAAC,EAAE,MAAM,CAAC,0CAA0C,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;CACrF,CAAA;AAID,MAAM,MAAM,WAAW,CAAC,OAAO,SAAS,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;IACzJ,EAAE,CAAC,EAAE,OAAO,CAAA;IACZ,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAA;CAC3D,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;AAE9B,MAAM,MAAM,8BAA8B,CAAC,OAAO,SAAS,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;IAC5K,EAAE,CAAC,EAAE,OAAO,CAAA;IACZ,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAA;CAC3D,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;AAE9B,MAAM,MAAM,8BAA8B,CAAC,OAAO,SAAS,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;IAC5K,EAAE,CAAC,EAAE,OAAO,CAAA;IACZ,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAA;CAC3D,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;AAE9B,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,CAAC,EAAE,OAAO,CAAA;IACZ,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,SAAS,CAAC,OAAO,SAAS,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,aAAa,GAAG,OAAO,GAAG,WAAW,GAAG,YAAY,GAAG,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;AAC7P,MAAM,MAAM,YAAY,CAAC,OAAO,SAAS,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,IAAI;IACvH,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAA;CAC3D,CAAA;AACD,MAAM,MAAM,+BAA+B,CAAC,OAAO,SAAS,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,IAAI;IAC1I,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAA;CAC3D,CAAA;AACD,MAAM,MAAM,+BAA+B,CAAC,OAAO,SAAS,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,IAAI;IAC1I,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAA;CAC3D,CAAA;AAED,MAAM,MAAM,aAAa,CAAC,OAAO,SAAS,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,IAAI;IACxH,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;KAC7C,CAAA;IACD,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC;QACjD,EAAE,EAAE,MAAM,CAAA;QACV,WAAW,EAAE,MAAM,CAAA;QACnB,KAAK,EAAE,MAAM,CAAA;QACb,SAAS,EAAE,IAAI,CAAA;QACf,UAAU,EAAE,IAAI,GAAG,IAAI,CAAA;QACvB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAA;KACvB,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;IAC9B,UAAU,EAAE,EAAE,CAAA;CACf,CAAA;AAED,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,gBAAgB,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAA;AAE9I,MAAM,MAAM,cAAc,CAAC,OAAO,SAAS,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,IACrH,IAAI,CAAC,iBAAiB,EAAE,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC,GAAG;IACpE,MAAM,CAAC,EAAE,4BAA4B,GAAG,IAAI,CAAA;CAC7C,CAAA;AAEH,MAAM,WAAW,aAAa,CAAC,OAAO,SAAS,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,iBAAiB,GAAG,EAAE;IACjJ,CAAC,CAAC,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;QAAC,IAAI,EAAE;YAAE,IAAI,EAAE,OAAO,CAAA;SAAE,CAAA;KAAE,CAAA;IAC1F;;;;;;;;;;OAUG;IACH,UAAU,CAAC,CAAC,SAAS,mBAAmB,EAAE,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,iBAAiB,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAA;IAE7Q;;;;;;;;;;;OAWG;IACH,iBAAiB,CAAC,CAAC,SAAS,0BAA0B,EAAE,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,0BAA0B,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,mBAAmB,EAAE,iBAAiB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAA;IAEnS;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,CAAC,SAAS,kBAAkB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,iBAAiB,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAA;IAE1Q;;;;;;;;;;;;;OAaG;IACH,gBAAgB,CAAC,CAAC,SAAS,yBAAyB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,kBAAkB,EAAE,iBAAiB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAA;IAEhS;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,CAAC,SAAS,iBAAiB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAA;IAEvN;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,CAAC,SAAS,eAAe,EAAE,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,iBAAiB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAA;IAEvP;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,CAAC,SAAS,mBAAmB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IAEjJ;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,mBAAmB,CAAC,CAAC,SAAS,4BAA4B,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,4BAA4B,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,qBAAqB,EAAE,iBAAiB,CAAC,CAAC,CAAA;IAEnQ;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,CAAC,SAAS,eAAe,EAAE,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,iBAAiB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAA;IAEvP;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,CAAC,SAAS,eAAe,EAAE,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,iBAAiB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAA;IAEvP;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,CAAC,SAAS,mBAAmB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IAEjJ;;;;;;;;;;;;;;;;OAgBG;IACH,UAAU,CAAC,CAAC,SAAS,mBAAmB,EAAE,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IAEhJ;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,mBAAmB,CAAC,CAAC,SAAS,4BAA4B,EAAE,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,4BAA4B,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,qBAAqB,EAAE,iBAAiB,CAAC,CAAC,CAAA;IAElQ;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,CAAC,SAAS,eAAe,EAAE,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,iBAAiB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAA;IAGvP;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,CAAC,SAAS,cAAc,EAC5B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,cAAc,CAAC,GACtC,MAAM,CAAC,aAAa,CACrB,CAAC,SAAS,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,GAC/C,CAAC,CAAC,QAAQ,CAAC,SAAS,IAAI,GACtB,MAAM,GACN,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,6BAA6B,CAAC,GAClE,MAAM,CACX,CAAA;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,SAAS,CAAC,CAAC,SAAS,kBAAkB,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,kBAAkB,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAA;IAEnI;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CACL,CAAC,SAAS,gBAAgB,EAC1B,eAAe,SAAS,MAAM,CAAC,EAAE,CAC/B,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EACtC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CACvC,EACD,UAAU,SAAS,MAAM,CAAC,IAAI,SAAS,eAAe,GAClD;QAAE,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAA;KAAE,GACxC;QAAE,OAAO,CAAC,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAA;KAAE,EAC7C,WAAW,SAAS,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EACrG,QAAQ,SAAS,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAClD,OAAO,SAAS,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,EACjD,YAAY,SAAS,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EACxD,WAAW,SAAS,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,EACtD,OAAO,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,EAAE,GAAG,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,EACpE,WAAW,SAAS,OAAO,SAAS,MAAM,CAAC,IAAI,GAC7C,gCAAgC,GAChC,WAAW,SAAS,MAAM,CAAC,KAAK,GAChC;SACG,CAAC,IAAI,YAAY,GAAG,CAAC,SAAS,QAAQ,GACnC,KAAK,GACL,CAAC,SAAS,MAAM,GAChB,iBAAiB,CAAC,kDAAkD,GACpE;YACE,KAAK;YACL,QAAQ;YACR,CAAC;YACD,2CAA2C;SAC5C;KACN,CAAC,YAAY,CAAC,GACf,MAAM,SAAS,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAC7B,SAAS,SAAS,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAC9B,OAAO,SAAS,MAAM,CAAC,IAAI,GACzB,EAAE,GACF;SACG,CAAC,IAAI,WAAW,GAAG,CAAC,SAAS,QAAQ,GAClC,KAAK,GACL,iBAAiB,CAAC,6CAA6C;KACpE,CAAC,WAAW,CAAC,GAChB,kEAAkE,GACpE,MAAM,SAAS,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAC7B,SAAS,SAAS,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAC9B,OAAO,SAAS,MAAM,CAAC,IAAI,GACzB,EAAE,GACF;SACG,CAAC,IAAI,WAAW,GAAG,CAAC,SAAS,QAAQ,GAClC,KAAK,GACL,iBAAiB,CAAC,6CAA6C;KACpE,CAAC,WAAW,CAAC,GAChB,kEAAkE,GACpE,OAAO,SAAS,MAAM,CAAC,IAAI,GAC3B,EAAE,GACF;SACG,CAAC,IAAI,WAAW,GAAG,CAAC,SAAS,QAAQ,GAClC,KAAK,GACL,iBAAiB,CAAC,6CAA6C;KACpE,CAAC,WAAW,CAAC,EAChB,IAAI,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE,gBAAgB,EAAE,UAAU,CAAC,GAAG,WAAW,GAAG,EAAE,SAAS,WAAW,GAAG,sBAAsB,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAA;IAC3K;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;CAC/B;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,OAAO,SAAS,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,iBAAiB,GAAG,EAAE,CAAE,SAAQ,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;IACzM,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,eAAe,CAAA;IAC9C,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,uBAAuB,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,mBAAmB,EAAE,iBAAiB,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAA;IACpT;;;;;OAKG;IACH,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAA;IAChQ;;;;OAIG;IACH,KAAK,CAAC,OAAO,GAAG,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,OAAO,CAAC,CAAA;IACrJ;;;;;OAKG;IACH,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;CACvF;AAKD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IAC/C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IACxD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IAClD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;IACxD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;IACzD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;CACzD;AAID;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAAC,OAAO,SAAS,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,IAAI;IAC9H;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IAC3C;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IACvC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IAC7C;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC,qBAAqB,CAAA;CACpC,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,0BAA0B,CAAC,OAAO,SAAS,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,IAAI;IACrI;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IAC3C;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IACvC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IAC7C;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC,qBAAqB,CAAA;CACpC,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,CAAC,OAAO,SAAS,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,IAAI;IAC7H;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IAC3C;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IACvC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IAC7C;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,eAAe,CAAA;IAC9B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,6BAA6B,GAAG,MAAM,CAAC,6BAA6B,EAAE,CAAA;IACvF;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,qBAAqB,CAAA;IACrC;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,EAAE,CAAA;CACvE,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,yBAAyB,CAAC,OAAO,SAAS,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,IAAI;IACpI;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IAC3C;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IACvC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IAC7C;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,eAAe,CAAA;IAC9B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,6BAA6B,GAAG,MAAM,CAAC,6BAA6B,EAAE,CAAA;IACvF;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,qBAAqB,CAAA;IACrC;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,EAAE,CAAA;CACvE,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,OAAO,SAAS,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,IAAI;IAC5H;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IAC3C;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IACvC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IAC7C;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,eAAe,CAAA;IAC9B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,6BAA6B,GAAG,MAAM,CAAC,6BAA6B,EAAE,CAAA;IACvF;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,qBAAqB,CAAA;IACrC;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,EAAE,CAAA;CACvE,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,OAAO,SAAS,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,IAAI;IAC1H;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IAC3C;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IACvC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IAC7C;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,yBAAyB,CAAC,CAAA;CAC5E,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAAC,OAAO,SAAS,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,IAAI;IAC9H;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,EAAE,CAAA;IACjE,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,4BAA4B,CAAC,OAAO,SAAS,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,IAAI;IACvI;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,8BAA8B,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IAC9D;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IACvC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,EAAE,CAAA;IACjE,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,+BAA+B,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;CACjE,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,OAAO,SAAS,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,IAAI;IAC1H;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IAC3C;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IACvC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IAC7C;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,yBAAyB,CAAC,CAAA;IAC3E;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC,qBAAqB,CAAA;CACpC,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAAC,OAAO,SAAS,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,IAAI;IAC9H;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,4BAA4B,EAAE,MAAM,CAAC,6BAA6B,CAAC,CAAA;IAC3F;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,eAAe,CAAA;IAC9B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,4BAA4B,CAAC,OAAO,SAAS,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,IAAI;IACvI;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,8BAA8B,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IAC9D;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IACvC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,4BAA4B,EAAE,MAAM,CAAC,6BAA6B,CAAC,CAAA;IAC3F;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,eAAe,CAAA;IAC9B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,+BAA+B,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;CACjE,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,OAAO,SAAS,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,IAAI;IAC1H;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IAC3C;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IACvC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IAC7C;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC,qBAAqB,CAAA;IACnC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,yBAAyB,CAAC,CAAA;IAC7E;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,yBAAyB,CAAC,CAAA;CAC9E,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,OAAO,SAAS,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,IAAI;IAC1H;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IAC3C;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IACvC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IAC7C;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC,qBAAqB,CAAA;CACpC,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAAC,OAAO,SAAS,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,IAAI;IAC9H;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,eAAe,CAAA;IAC9B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,OAAO,SAAS,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,IAAI;IAC3H;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IAC3C;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IACvC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;CAC9C,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Token.js","sourceRoot":"","sources":["../../../../src/generated/prisma/models/Token.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ export type * from './models/Developer.js';
2
+ export type * from './models/Token.js';
3
+ export type * from './models/DailyMetric.js';
4
+ export type * from './models/SystemMetric.js';
5
+ export type * from './commonInputTypes.js';
6
+ //# sourceMappingURL=models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/generated/prisma/models.ts"],"names":[],"mappings":"AAUA,mBAAmB,uBAAuB,CAAA;AAC1C,mBAAmB,mBAAmB,CAAA;AACtC,mBAAmB,yBAAyB,CAAA;AAC5C,mBAAmB,0BAA0B,CAAA;AAC7C,mBAAmB,uBAAuB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/generated/prisma/models.ts"],"names":[],"mappings":""}
@@ -0,0 +1,21 @@
1
+ import { requestOtp } from "./request.js";
2
+ import { verifyOtp } from "./verify.js";
3
+ import { issueInstantToken } from "./issue.js";
4
+ import { validateToken } from "./validate.js";
5
+ import { sendOTP, getOtpHtml, type SendOtpOptions, type SmtpOptions } from "./lib/mailer.js";
6
+ import { flushMetrics, getStatsSummary, type MetricsFlushDeltas, type StatsSummary } from "./lib/metrics.js";
7
+ export type TunnelPluginOptions = SendOtpOptions & {
8
+ internalSecret?: string;
9
+ metricsCollector?: {
10
+ setPersister?: (persister: {
11
+ flush: (deltas: MetricsFlushDeltas) => Promise<void>;
12
+ getStats: (activeCount: number, deltas?: MetricsFlushDeltas) => Promise<StatsSummary>;
13
+ }) => void;
14
+ getActiveTunnelsCount?: () => number;
15
+ getSnapshot?: () => MetricsFlushDeltas;
16
+ getStats?: (activeCount: number) => Promise<StatsSummary> | StatsSummary;
17
+ };
18
+ };
19
+ export declare function registerTunnelPlugin(app: any, options?: TunnelPluginOptions): void;
20
+ export { sendOTP, getOtpHtml, requestOtp, verifyOtp, issueInstantToken, validateToken, flushMetrics, getStatsSummary, type SendOtpOptions, type SmtpOptions, type MetricsFlushDeltas, type StatsSummary, };
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EACL,OAAO,EACP,UAAU,EACV,KAAK,cAAc,EACnB,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,KAAK,kBAAkB,EACvB,KAAK,YAAY,EAClB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,MAAM,mBAAmB,GAAG,cAAc,GAAG;IACjD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE;QACjB,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE;YACzB,KAAK,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;YACrD,QAAQ,EAAE,CACR,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,kBAAkB,KACxB,OAAO,CAAC,YAAY,CAAC,CAAC;SAC5B,KAAK,IAAI,CAAC;QACX,qBAAqB,CAAC,EAAE,MAAM,MAAM,CAAC;QACrC,WAAW,CAAC,EAAE,MAAM,kBAAkB,CAAC;QACvC,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;KAC1E,CAAC;CACH,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,mBAAmB,QAgD3E;AAED,OAAO,EACL,OAAO,EACP,UAAU,EACV,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,eAAe,EACf,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,YAAY,GAClB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,45 @@
1
+ import { requestOtp } from "./request.js";
2
+ import { verifyOtp } from "./verify.js";
3
+ import { issueInstantToken } from "./issue.js";
4
+ import { validateToken } from "./validate.js";
5
+ import { sendOTP, getOtpHtml, } from "./lib/mailer.js";
6
+ import { flushMetrics, getStatsSummary, } from "./lib/metrics.js";
7
+ export function registerTunnelPlugin(app, options) {
8
+ if (process.env.DATABASE_URL) {
9
+ // 1. Auth & Token endpoints
10
+ app.register(async (instance) => {
11
+ instance.post("/request-otp", async (req, reply) => {
12
+ return requestOtp(req, reply, options);
13
+ });
14
+ instance.post("/verify-otp", async (req, reply) => {
15
+ return verifyOtp(req, reply);
16
+ });
17
+ instance.post("/issue", async (req, reply) => {
18
+ return issueInstantToken(req, reply);
19
+ });
20
+ }, { prefix: "/_api/token" });
21
+ // 2. Hook metrics persistence into collector if provided
22
+ if (options?.metricsCollector?.setPersister) {
23
+ options.metricsCollector.setPersister({
24
+ flush: flushMetrics,
25
+ getStats: getStatsSummary,
26
+ });
27
+ }
28
+ }
29
+ // 3. Stats endpoint
30
+ app.get("/_api/stats", {
31
+ onRequest: async (req, reply) => {
32
+ const secret = req.headers["x-internal-secret"];
33
+ const expected = options?.internalSecret || process.env.INTERNAL_SECRET;
34
+ if (expected && secret !== expected) {
35
+ return reply.code(401).send({ error: "Unauthorized" });
36
+ }
37
+ },
38
+ }, async () => {
39
+ const activeCount = options?.metricsCollector?.getActiveTunnelsCount?.() ?? 0;
40
+ const snapshot = options?.metricsCollector?.getSnapshot?.();
41
+ return getStatsSummary(activeCount, snapshot);
42
+ });
43
+ }
44
+ export { sendOTP, getOtpHtml, requestOtp, verifyOtp, issueInstantToken, validateToken, flushMetrics, getStatsSummary, };
45
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EACL,OAAO,EACP,UAAU,GAGX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,YAAY,EACZ,eAAe,GAGhB,MAAM,kBAAkB,CAAC;AAkB1B,MAAM,UAAU,oBAAoB,CAAC,GAAQ,EAAE,OAA6B;IAC1E,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC7B,4BAA4B;QAC5B,GAAG,CAAC,QAAQ,CACV,KAAK,EAAE,QAAa,EAAE,EAAE;YACtB,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,GAAQ,EAAE,KAAU,EAAE,EAAE;gBAC3D,OAAO,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,GAAQ,EAAE,KAAU,EAAE,EAAE;gBAC1D,OAAO,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAQ,EAAE,KAAU,EAAE,EAAE;gBACrD,OAAO,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;QACL,CAAC,EACD,EAAE,MAAM,EAAE,aAAa,EAAE,CAC1B,CAAC;QAEF,yDAAyD;QACzD,IAAI,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,CAAC;YAC5C,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC;gBACpC,KAAK,EAAE,YAAY;gBACnB,QAAQ,EAAE,eAAe;aAC1B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,oBAAoB;IACpB,GAAG,CAAC,GAAG,CACL,aAAa,EACb;QACE,SAAS,EAAE,KAAK,EAAE,GAAQ,EAAE,KAAU,EAAE,EAAE;YACxC,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;YAChD,MAAM,QAAQ,GAAG,OAAO,EAAE,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;YACxE,IAAI,QAAQ,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACpC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;KACF,EACD,KAAK,IAAI,EAAE;QACT,MAAM,WAAW,GACf,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,EAAE,IAAI,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,EAAE,CAAC;QAC5D,OAAO,eAAe,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC,CACF,CAAC;AACJ,CAAC;AAED,OAAO,EACL,OAAO,EACP,UAAU,EACV,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,eAAe,GAKhB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { FastifyRequest, FastifyReply } from "fastify";
2
+ export declare function issueInstantToken(request: FastifyRequest, reply: FastifyReply): Promise<never>;
3
+ //# sourceMappingURL=issue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issue.d.ts","sourceRoot":"","sources":["../src/issue.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAM5D,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,YAAY,kBAgHpB"}
package/dist/issue.js ADDED
@@ -0,0 +1,102 @@
1
+ import { parseRequestBody } from "@explita/infra-protocol";
2
+ import { cache } from "./lib/cache.js";
3
+ import { getPrisma } from "./lib/prisma.js";
4
+ import { generateToken } from "./lib/utils.js";
5
+ export async function issueInstantToken(request, reply) {
6
+ const parsed = parseRequestBody(request.body);
7
+ const rawIp = parsed.ip ||
8
+ request.headers["x-forwarded-for"]?.split(",")[0]?.trim() ||
9
+ request.headers["x-real-ip"]?.trim() ||
10
+ request.headers["cf-connecting-ip"]?.trim() ||
11
+ request.ip ||
12
+ "127.0.0.1";
13
+ // Sanitize IP
14
+ const clientIp = rawIp.replace(/^::ffff:/, "").trim();
15
+ // Extract optional machine ID or hostname
16
+ const machineId = parsed.machineId?.trim();
17
+ const identifier = machineId
18
+ ? `m_${machineId.replace(/[^a-zA-Z0-9_-]/g, "").slice(0, 36)}`
19
+ : `ip_${clientIp.replace(/[^a-zA-Z0-9_.-]/g, "_")}`;
20
+ const syntheticEmail = `${identifier}@device.explita.local`;
21
+ // Rate limit: max 30 instant issuances per hour per IP to prevent spamming
22
+ const rateKey = `rate:token:issue:${clientIp}`;
23
+ try {
24
+ const attempts = await cache.get(rateKey);
25
+ if (attempts && attempts >= 30) {
26
+ return reply.code(429).send({
27
+ success: false,
28
+ error: "Too many token requests from this IP. Please try again later.",
29
+ });
30
+ }
31
+ await cache
32
+ .set(rateKey, (attempts || 0) + 1, { ttl: "1h" })
33
+ .catch(() => { });
34
+ }
35
+ catch {
36
+ // Non-blocking if cache is temporarily unavailable
37
+ }
38
+ const prisma = getPrisma();
39
+ if (prisma) {
40
+ try {
41
+ // 1. If this machine/IP already has an active unrevoked token, return it
42
+ const existing = await prisma.developer.findUnique({
43
+ where: { email: syntheticEmail },
44
+ include: {
45
+ tokens: {
46
+ where: { revokedAt: null },
47
+ orderBy: { createdAt: "desc" },
48
+ take: 1,
49
+ },
50
+ },
51
+ });
52
+ if (existing && existing.tokens.length > 0) {
53
+ const existingToken = existing.tokens[0].token;
54
+ await cache
55
+ .set(`token:verified:${existingToken}`, existingToken, { ttl: "30d" })
56
+ .catch(() => { });
57
+ return reply.code(200).send({
58
+ success: true,
59
+ token: existingToken,
60
+ message: "Existing active tunnel token retrieved",
61
+ });
62
+ }
63
+ // 2. Issue a new token for this server / device
64
+ const token = generateToken();
65
+ await prisma.$transaction(async (trx) => {
66
+ const developer = await trx.developer.upsert({
67
+ where: { email: syntheticEmail },
68
+ create: { email: syntheticEmail },
69
+ update: {},
70
+ });
71
+ await trx.token.create({
72
+ data: {
73
+ token,
74
+ developerId: developer.id,
75
+ },
76
+ });
77
+ });
78
+ await cache
79
+ .set(`token:verified:${token}`, token, { ttl: "30d" })
80
+ .catch(() => { });
81
+ return reply.code(200).send({
82
+ success: true,
83
+ token,
84
+ message: "Tunnel token issued successfully",
85
+ });
86
+ }
87
+ catch (error) {
88
+ console.error("[tunnel-auth] Error issuing instant token via DB:", error);
89
+ }
90
+ }
91
+ // 3. Fallback: issue cached ephemeral token if DB is unavailable
92
+ const fallbackToken = generateToken();
93
+ await cache
94
+ .set(`token:verified:${fallbackToken}`, fallbackToken, { ttl: "7d" })
95
+ .catch(() => { });
96
+ return reply.code(200).send({
97
+ success: true,
98
+ token: fallbackToken,
99
+ message: "Tunnel token issued successfully",
100
+ });
101
+ }
102
+ //# sourceMappingURL=issue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issue.js","sourceRoot":"","sources":["../src/issue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const cache: import("@explita/cache").CacheInstance;
2
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/lib/cache.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK,wCAA0D,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { createCache } from "@explita/cache";
2
+ export const cache = createCache("_tunnel_auth:", { loggingEnabled: false });
3
+ cache.on("error", (err) => {
4
+ console.warn("[tunnel-auth] Cache notice:", err?.message || err);
5
+ });
6
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/lib/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,CAAC,MAAM,KAAK,GAAG,WAAW,CAAC,eAAe,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;AAE7E,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;IACxB,OAAO,CAAC,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE,OAAO,IAAI,GAAG,CAAC,CAAC;AACnE,CAAC,CAAC,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { type Transporter } from "nodemailer";
2
+ export type SmtpHostOptions = {
3
+ host: string;
4
+ port?: number;
5
+ secure?: boolean;
6
+ auth?: {
7
+ user: string;
8
+ pass: string;
9
+ };
10
+ url?: never;
11
+ from: string;
12
+ };
13
+ export type SmtpUrlOptions = {
14
+ url: string;
15
+ host?: never;
16
+ port?: never;
17
+ secure?: never;
18
+ auth?: never;
19
+ from: string;
20
+ };
21
+ export type SmtpOptions = SmtpHostOptions | SmtpUrlOptions;
22
+ export type SendOtpOptions = {
23
+ smtp?: SmtpOptions;
24
+ };
25
+ export declare function getTransporter(options?: SmtpOptions): Transporter | null;
26
+ export declare function sendOTP(email: string, otp: string, options?: SendOtpOptions): Promise<boolean>;
27
+ export declare function getOtpHtml(otp: string): string;
28
+ //# sourceMappingURL=mailer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mailer.d.ts","sourceRoot":"","sources":["../../src/lib/mailer.ts"],"names":[],"mappings":"AAAA,OAAmB,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAG1D,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,GAAG,CAAC,EAAE,KAAK,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG,cAAc,CAAC;AAE3D,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB,CAAC;AAIF,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,WAAW,GAAG,IAAI,CA2BxE;AAED,wBAAsB,OAAO,CAC3B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,OAAO,CAAC,CAuClB;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAsD9C"}
@@ -0,0 +1,116 @@
1
+ import nodemailer from "nodemailer";
2
+ import { PRODUCT_NAME } from "@explita/infra-protocol";
3
+ let transportInstance = null;
4
+ export function getTransporter(options) {
5
+ if (transportInstance)
6
+ return transportInstance;
7
+ if (options) {
8
+ if ("url" in options && options.url) {
9
+ transportInstance = nodemailer.createTransport(options.url);
10
+ return transportInstance;
11
+ }
12
+ if ("host" in options && options.host) {
13
+ const port = Number(options.port || 587);
14
+ const secure = options.secure ?? port === 465;
15
+ transportInstance = nodemailer.createTransport({
16
+ host: options.host,
17
+ port,
18
+ secure,
19
+ auth: options.auth
20
+ ? {
21
+ user: options.auth.user,
22
+ pass: options.auth.pass,
23
+ }
24
+ : undefined,
25
+ });
26
+ return transportInstance;
27
+ }
28
+ }
29
+ return null;
30
+ }
31
+ export async function sendOTP(email, otp, options) {
32
+ const from = options?.smtp?.from;
33
+ const transporter = getTransporter(options?.smtp);
34
+ if (!transporter) {
35
+ // If running without an explicit SMTP configuration, log to console for instant DX
36
+ if (process.env.NODE_ENV !== "production") {
37
+ console.log(`\n======================================================`);
38
+ console.log(`[tunnel-auth] 🔑 DEV OTP CODE FOR ${email}: ${otp}`);
39
+ console.log(`[tunnel-auth] (Pass 'smtp' options to registerTunnelPlugin for email delivery)`);
40
+ console.log(`======================================================\n`);
41
+ return true;
42
+ }
43
+ console.error("[tunnel-auth] No SMTP options provided to registerTunnelPlugin.");
44
+ return false;
45
+ }
46
+ try {
47
+ await transporter.sendMail({
48
+ from,
49
+ to: email,
50
+ subject: `${otp} is your ${PRODUCT_NAME.tunnel} verification code`,
51
+ text: `Your ${PRODUCT_NAME.tunnel} verification code is: ${otp}\n\nThis code is valid for 10 minutes.\nEnter it in your terminal to complete verification.`,
52
+ html: getOtpHtml(otp),
53
+ });
54
+ return true;
55
+ }
56
+ catch (err) {
57
+ console.error("[tunnel-auth] Failed to send OTP email via nodemailer:", err);
58
+ return false;
59
+ }
60
+ }
61
+ export function getOtpHtml(otp) {
62
+ return `<!DOCTYPE html>
63
+ <html lang="en">
64
+ <head>
65
+ <meta charset="utf-8">
66
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
67
+ <title>${PRODUCT_NAME.tunnel} Verification Code</title>
68
+ </head>
69
+ <body style="margin: 0; padding: 0; background-color: #0c0d0e; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; color: #f4f4f5;">
70
+ <table role="presentation" width="100%" cellspacing="0" cellpadding="0" style="background-color: #0c0d0e; padding: 40px 16px;">
71
+ <tr>
72
+ <td align="center">
73
+ <table role="presentation" width="100%" style="max-width: 480px; background-color: #18181b; border: 1px solid #27272a; border-radius: 12px; padding: 36px 32px; box-shadow: 0 4px 24px rgba(0, 0, 0, 0.4);">
74
+ <!-- Header -->
75
+ <tr>
76
+ <td style="padding-bottom: 24px;">
77
+ <span style="font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: 1.5px; color: #06b6d4;">${PRODUCT_NAME.tunnel}</span>
78
+ <h1 style="margin: 8px 0 0; font-size: 22px; font-weight: 700; color: #ffffff;">Your Verification Code</h1>
79
+ </td>
80
+ </tr>
81
+ <!-- Body Text -->
82
+ <tr>
83
+ <td style="font-size: 14px; line-height: 22px; color: #a1a1aa; padding-bottom: 24px;">
84
+ Enter this 6-digit code in your terminal to authenticate your <code style="background-color: #27272a; color: #e4e4e7; padding: 2px 6px; border-radius: 4px; font-family: monospace;">eta</code> CLI session:
85
+ </td>
86
+ </tr>
87
+ <!-- OTP Code Box -->
88
+ <tr>
89
+ <td align="center" style="padding-bottom: 24px;">
90
+ <div style="background-color: #09090b; border: 1px solid #3f3f46; border-radius: 8px; padding: 18px 24px; display: inline-block;">
91
+ <span style="font-family: 'SF Mono', Monaco, Consolas, 'Liberation Mono', monospace; font-size: 32px; font-weight: 700; letter-spacing: 8px; color: #38bdf8;">${otp}</span>
92
+ </div>
93
+ </td>
94
+ </tr>
95
+ <!-- Expiration Notice -->
96
+ <tr>
97
+ <td style="font-size: 13px; line-height: 20px; color: #71717a; border-top: 1px solid #27272a; padding-top: 20px;">
98
+ ⏱ This code is valid for <strong>10 minutes</strong>. If you did not request this verification, you can safely ignore this email.
99
+ </td>
100
+ </tr>
101
+ </table>
102
+ <!-- Footer -->
103
+ <table role="presentation" width="100%" style="max-width: 480px; padding-top: 20px;">
104
+ <tr>
105
+ <td align="center" style="font-size: 12px; color: #52525b;">
106
+ © ${new Date().getFullYear()} Explita. Encrypted reverse tunnels for developers.
107
+ </td>
108
+ </tr>
109
+ </table>
110
+ </td>
111
+ </tr>
112
+ </table>
113
+ </body>
114
+ </html>`;
115
+ }
116
+ //# sourceMappingURL=mailer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mailer.js","sourceRoot":"","sources":["../../src/lib/mailer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ export type MetricsFlushDeltas = {
2
+ tunnels: number;
3
+ requests: number;
4
+ bytes: bigint;
5
+ todayDevTokens?: Set<string>;
6
+ };
7
+ export type StatsSummary = {
8
+ success: boolean;
9
+ data: {
10
+ active_tunnels: number;
11
+ today: {
12
+ date: string;
13
+ tunnels_opened: number;
14
+ requests_routed: number;
15
+ bytes_transferred: number;
16
+ active_developers: number;
17
+ };
18
+ all_time: {
19
+ total_tunnels: number;
20
+ total_requests: number;
21
+ total_bytes: number;
22
+ };
23
+ };
24
+ };
25
+ export declare function flushMetrics(deltas: MetricsFlushDeltas): Promise<void>;
26
+ export declare function getStatsSummary(activeTunnelsCount: number, currentDeltas?: MetricsFlushDeltas): Promise<StatsSummary>;
27
+ //# sourceMappingURL=metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/lib/metrics.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE;QACJ,cAAc,EAAE,MAAM,CAAC;QACvB,KAAK,EAAE;YACL,IAAI,EAAE,MAAM,CAAC;YACb,cAAc,EAAE,MAAM,CAAC;YACvB,eAAe,EAAE,MAAM,CAAC;YACxB,iBAAiB,EAAE,MAAM,CAAC;YAC1B,iBAAiB,EAAE,MAAM,CAAC;SAC3B,CAAC;QACF,QAAQ,EAAE;YACR,aAAa,EAAE,MAAM,CAAC;YACtB,cAAc,EAAE,MAAM,CAAC;YACvB,WAAW,EAAE,MAAM,CAAC;SACrB,CAAC;KACH,CAAC;CACH,CAAC;AAEF,wBAAsB,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4C5E;AAED,wBAAsB,eAAe,CACnC,kBAAkB,EAAE,MAAM,EAC1B,aAAa,CAAC,EAAE,kBAAkB,GACjC,OAAO,CAAC,YAAY,CAAC,CAkEvB"}
@@ -0,0 +1,93 @@
1
+ import { getPrisma } from "./prisma.js";
2
+ export async function flushMetrics(deltas) {
3
+ const prisma = getPrisma();
4
+ if (!prisma)
5
+ return;
6
+ const today = new Date().toISOString().split("T")[0];
7
+ const devCount = deltas.todayDevTokens ? deltas.todayDevTokens.size : 0;
8
+ try {
9
+ await prisma.$transaction([
10
+ prisma.dailyMetric.upsert({
11
+ where: { date: today },
12
+ create: {
13
+ date: today,
14
+ tunnelsOpened: deltas.tunnels,
15
+ requestsRouted: BigInt(deltas.requests),
16
+ bytesTransferred: deltas.bytes,
17
+ activeDevelopers: devCount,
18
+ },
19
+ update: {
20
+ tunnelsOpened: { increment: deltas.tunnels },
21
+ requestsRouted: { increment: BigInt(deltas.requests) },
22
+ bytesTransferred: { increment: deltas.bytes },
23
+ activeDevelopers: devCount,
24
+ },
25
+ }),
26
+ prisma.systemMetric.upsert({
27
+ where: { id: "global" },
28
+ create: {
29
+ id: "global",
30
+ totalTunnels: BigInt(deltas.tunnels),
31
+ totalRequests: BigInt(deltas.requests),
32
+ totalBytes: deltas.bytes,
33
+ },
34
+ update: {
35
+ totalTunnels: { increment: BigInt(deltas.tunnels) },
36
+ totalRequests: { increment: BigInt(deltas.requests) },
37
+ totalBytes: { increment: deltas.bytes },
38
+ },
39
+ }),
40
+ ]);
41
+ }
42
+ catch (err) {
43
+ console.error("[tunnel-plugin] Failed to flush metrics to database:", err);
44
+ throw err;
45
+ }
46
+ }
47
+ export async function getStatsSummary(activeTunnelsCount, currentDeltas) {
48
+ const prisma = getPrisma();
49
+ const today = new Date().toISOString().split("T")[0];
50
+ let dbDaily = null;
51
+ let dbSystem = null;
52
+ if (prisma) {
53
+ try {
54
+ [dbDaily, dbSystem] = await Promise.all([
55
+ prisma.dailyMetric.findUnique({ where: { date: today } }),
56
+ prisma.systemMetric.findUnique({ where: { id: "global" } }),
57
+ ]);
58
+ }
59
+ catch (err) {
60
+ console.error("[tunnel-plugin] Error fetching stats from database:", err);
61
+ }
62
+ }
63
+ const deltaTunnels = currentDeltas?.tunnels ?? 0;
64
+ const deltaRequests = currentDeltas?.requests ?? 0;
65
+ const deltaBytes = currentDeltas?.bytes ?? 0n;
66
+ const devCount = currentDeltas?.todayDevTokens?.size ?? 0;
67
+ const todayTunnels = (dbDaily?.tunnelsOpened ?? 0) + deltaTunnels;
68
+ const todayRequests = Number((dbDaily?.requestsRouted ?? 0n) + BigInt(deltaRequests));
69
+ const todayBytes = Number((dbDaily?.bytesTransferred ?? 0n) + deltaBytes);
70
+ const todayDevs = Math.max(dbDaily?.activeDevelopers ?? 0, devCount);
71
+ const allTimeTunnels = Number((dbSystem?.totalTunnels ?? 0n) + BigInt(deltaTunnels));
72
+ const allTimeRequests = Number((dbSystem?.totalRequests ?? 0n) + BigInt(deltaRequests));
73
+ const allTimeBytes = Number((dbSystem?.totalBytes ?? 0n) + deltaBytes);
74
+ return {
75
+ success: true,
76
+ data: {
77
+ active_tunnels: activeTunnelsCount,
78
+ today: {
79
+ date: today,
80
+ tunnels_opened: todayTunnels,
81
+ requests_routed: todayRequests,
82
+ bytes_transferred: todayBytes,
83
+ active_developers: todayDevs,
84
+ },
85
+ all_time: {
86
+ total_tunnels: allTimeTunnels,
87
+ total_requests: allTimeRequests,
88
+ total_bytes: allTimeBytes,
89
+ },
90
+ },
91
+ };
92
+ }
93
+ //# sourceMappingURL=metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/lib/metrics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { PrismaClient } from "../generated/prisma/client.js";
2
+ export declare function getPrisma(): PrismaClient | null;
3
+ //# sourceMappingURL=prisma.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prisma.d.ts","sourceRoot":"","sources":["../../src/lib/prisma.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAI7D,wBAAgB,SAAS,IAAI,YAAY,GAAG,IAAI,CAiB/C"}