trivious 1.3.17 → 1.3.19

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 (129) hide show
  1. package/dist/core/client/trivious.client.cjs +90 -0
  2. package/dist/core/client/trivious.client.cjs.map +1 -0
  3. package/dist/core/client/trivious.client.d.cts +3 -0
  4. package/dist/core/client/trivious.client.d.ts +3 -0
  5. package/dist/core/client/trivious.client.js +88 -0
  6. package/dist/core/client/trivious.client.js.map +1 -0
  7. package/dist/core/commands/command.base.cjs +224 -0
  8. package/dist/core/commands/command.base.cjs.map +1 -0
  9. package/dist/core/commands/command.base.d.cts +3 -0
  10. package/dist/core/commands/command.base.d.ts +3 -0
  11. package/dist/core/commands/command.base.js +214 -0
  12. package/dist/core/commands/command.base.js.map +1 -0
  13. package/dist/core/commands/contextcommand.base.cjs +98 -0
  14. package/dist/core/commands/contextcommand.base.cjs.map +1 -0
  15. package/dist/core/commands/contextcommand.base.d.cts +3 -0
  16. package/dist/core/commands/contextcommand.base.d.ts +3 -0
  17. package/dist/core/commands/contextcommand.base.js +93 -0
  18. package/dist/core/commands/contextcommand.base.js.map +1 -0
  19. package/dist/core/commands/subcommand.base.cjs +96 -0
  20. package/dist/core/commands/subcommand.base.cjs.map +1 -0
  21. package/dist/core/commands/subcommand.base.d.cts +3 -0
  22. package/dist/core/commands/subcommand.base.d.ts +3 -0
  23. package/dist/core/commands/subcommand.base.js +91 -0
  24. package/dist/core/commands/subcommand.base.js.map +1 -0
  25. package/dist/core/components/component.base.cjs +111 -0
  26. package/dist/core/components/component.base.cjs.map +1 -0
  27. package/dist/core/components/component.base.d.cts +3 -0
  28. package/dist/core/components/component.base.d.ts +3 -0
  29. package/dist/core/components/component.base.js +106 -0
  30. package/dist/core/components/component.base.js.map +1 -0
  31. package/dist/core/events/interactionCreate.cjs +68 -0
  32. package/dist/core/events/interactionCreate.cjs.map +1 -0
  33. package/dist/core/events/interactionCreate.d.cts +10 -0
  34. package/dist/core/events/interactionCreate.d.ts +10 -0
  35. package/dist/core/events/interactionCreate.js +66 -0
  36. package/dist/core/events/interactionCreate.js.map +1 -0
  37. package/dist/core/registry/command.registry.cjs +56 -0
  38. package/dist/core/registry/command.registry.cjs.map +1 -0
  39. package/dist/core/registry/command.registry.d.cts +3 -0
  40. package/dist/core/registry/command.registry.d.ts +3 -0
  41. package/dist/core/registry/command.registry.js +54 -0
  42. package/dist/core/registry/command.registry.js.map +1 -0
  43. package/dist/core/registry/component.registry.cjs +42 -0
  44. package/dist/core/registry/component.registry.cjs.map +1 -0
  45. package/dist/core/registry/component.registry.d.cts +3 -0
  46. package/dist/core/registry/component.registry.d.ts +3 -0
  47. package/dist/core/registry/component.registry.js +40 -0
  48. package/dist/core/registry/component.registry.js.map +1 -0
  49. package/dist/core/registry/event.registry.cjs +57 -0
  50. package/dist/core/registry/event.registry.cjs.map +1 -0
  51. package/dist/core/registry/event.registry.d.cts +3 -0
  52. package/dist/core/registry/event.registry.d.ts +3 -0
  53. package/dist/core/registry/event.registry.js +51 -0
  54. package/dist/core/registry/event.registry.js.map +1 -0
  55. package/dist/core/registry/index.cjs +49 -0
  56. package/dist/core/registry/index.cjs.map +1 -0
  57. package/dist/core/registry/index.d.cts +19 -0
  58. package/dist/core/registry/index.d.ts +19 -0
  59. package/dist/core/registry/index.js +39 -0
  60. package/dist/core/registry/index.js.map +1 -0
  61. package/dist/core/registry/module.registry.cjs +57 -0
  62. package/dist/core/registry/module.registry.cjs.map +1 -0
  63. package/dist/core/registry/module.registry.d.cts +3 -0
  64. package/dist/core/registry/module.registry.d.ts +3 -0
  65. package/dist/core/registry/module.registry.js +55 -0
  66. package/dist/core/registry/module.registry.js.map +1 -0
  67. package/dist/index-BPaYmWRO.d.ts +927 -0
  68. package/dist/index-CU2Xl9Xo.d.cts +927 -0
  69. package/dist/index.cjs +67 -1446
  70. package/dist/index.cjs.map +1 -1
  71. package/dist/index.d.cts +2 -974
  72. package/dist/index.d.ts +2 -974
  73. package/dist/index.js +10 -1436
  74. package/dist/index.js.map +1 -1
  75. package/dist/shared/typings/client.cjs +4 -0
  76. package/dist/shared/typings/client.cjs.map +1 -0
  77. package/dist/shared/typings/client.d.cts +3 -0
  78. package/dist/shared/typings/client.d.ts +3 -0
  79. package/dist/shared/typings/client.js +3 -0
  80. package/dist/shared/typings/client.js.map +1 -0
  81. package/dist/shared/typings/commands.cjs +4 -0
  82. package/dist/shared/typings/commands.cjs.map +1 -0
  83. package/dist/shared/typings/commands.d.cts +3 -0
  84. package/dist/shared/typings/commands.d.ts +3 -0
  85. package/dist/shared/typings/commands.js +3 -0
  86. package/dist/shared/typings/commands.js.map +1 -0
  87. package/dist/shared/typings/components.cjs +22 -0
  88. package/dist/shared/typings/components.cjs.map +1 -0
  89. package/dist/shared/typings/components.d.cts +3 -0
  90. package/dist/shared/typings/components.d.ts +3 -0
  91. package/dist/shared/typings/components.js +19 -0
  92. package/dist/shared/typings/components.js.map +1 -0
  93. package/dist/shared/typings/events.cjs +4 -0
  94. package/dist/shared/typings/events.cjs.map +1 -0
  95. package/dist/shared/typings/events.d.cts +3 -0
  96. package/dist/shared/typings/events.d.ts +3 -0
  97. package/dist/shared/typings/events.js +3 -0
  98. package/dist/shared/typings/events.js.map +1 -0
  99. package/dist/shared/typings/index.cjs +56 -0
  100. package/dist/shared/typings/index.cjs.map +1 -0
  101. package/dist/shared/typings/index.d.cts +3 -0
  102. package/dist/shared/typings/index.d.ts +3 -0
  103. package/dist/shared/typings/index.js +9 -0
  104. package/dist/shared/typings/index.js.map +1 -0
  105. package/dist/shared/typings/module.cjs +4 -0
  106. package/dist/shared/typings/module.cjs.map +1 -0
  107. package/dist/shared/typings/module.d.cts +3 -0
  108. package/dist/shared/typings/module.d.ts +3 -0
  109. package/dist/shared/typings/module.js +3 -0
  110. package/dist/shared/typings/module.js.map +1 -0
  111. package/dist/shared/typings/permissions.cjs +22 -0
  112. package/dist/shared/typings/permissions.cjs.map +1 -0
  113. package/dist/shared/typings/permissions.d.cts +3 -0
  114. package/dist/shared/typings/permissions.d.ts +3 -0
  115. package/dist/shared/typings/permissions.js +19 -0
  116. package/dist/shared/typings/permissions.js.map +1 -0
  117. package/dist/shared/typings/registry.cjs +63 -0
  118. package/dist/shared/typings/registry.cjs.map +1 -0
  119. package/dist/shared/typings/registry.d.cts +51 -0
  120. package/dist/shared/typings/registry.d.ts +51 -0
  121. package/dist/shared/typings/registry.js +61 -0
  122. package/dist/shared/typings/registry.js.map +1 -0
  123. package/dist/shared/utility/functions.cjs +81 -0
  124. package/dist/shared/utility/functions.cjs.map +1 -0
  125. package/dist/shared/utility/functions.d.cts +56 -0
  126. package/dist/shared/utility/functions.d.ts +56 -0
  127. package/dist/shared/utility/functions.js +74 -0
  128. package/dist/shared/utility/functions.js.map +1 -0
  129. package/package.json +2 -2
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../node_modules/.pnpm/dotenv@17.2.3/node_modules/dotenv/package.json","../node_modules/.pnpm/dotenv@17.2.3/node_modules/dotenv/lib/main.js","../node_modules/.pnpm/dotenv@17.2.3/node_modules/dotenv/lib/env-options.js","../node_modules/.pnpm/dotenv@17.2.3/node_modules/dotenv/lib/cli-options.js","../node_modules/.pnpm/dotenv@17.2.3/node_modules/dotenv/config.js","../src/shared/typings/permissions.ts","../src/shared/utility/functions.ts","../src/shared/typings/registry.ts","../src/shared/typings/components.ts","../src/core/registry/command.registry.ts","../src/core/registry/component.registry.ts","../src/core/events/interactionCreate.ts","../src/core/registry/event.registry.ts","../src/core/registry/module.registry.ts","../src/core/registry/index.ts","../src/core/client/trivious.client.ts","../src/core/commands/contextcommand.base.ts","../src/core/commands/command.base.ts","../src/core/commands/subcommand.base.ts","../src/core/components/component.base.ts"],"names":["exports","fs","path","PermissionLevel","__filename","__dirname","ComponentType","join","Collection","hasPermission","registries","ContextMenuCommandBuilder","memberHasPermission","SlashCommandSubcommandBuilder"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,IAAA,eAAA,GAAA,UAAA,CAAA;AAAA,EAAA,mEAAA,CAAAA,SAAA,EAAA,MAAA,EAAA;AAAA,IAAA,MAAA,CAAA,OAAA,GAAA;AAAA,MACE,IAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAW,QAAA;AAAA,MACX,WAAA,EAAe,4CAAA;AAAA,MACf,IAAA,EAAQ,aAAA;AAAA,MACR,KAAA,EAAS,eAAA;AAAA,MACT,OAAA,EAAW;AAAA,QACT,GAAA,EAAK;AAAA,UACH,KAAA,EAAS,iBAAA;AAAA,UACT,OAAA,EAAW,eAAA;AAAA,UACX,OAAA,EAAW;AAAA,SACb;AAAA,QACA,UAAA,EAAY,aAAA;AAAA,QACZ,aAAA,EAAe,aAAA;AAAA,QACf,mBAAA,EAAqB,sBAAA;AAAA,QACrB,sBAAA,EAAwB,sBAAA;AAAA,QACxB,mBAAA,EAAqB,sBAAA;AAAA,QACrB,sBAAA,EAAwB,sBAAA;AAAA,QACxB,gBAAA,EAAkB;AAAA,OACpB;AAAA,MACA,OAAA,EAAW;AAAA,QACT,WAAA,EAAa,yCAAA;AAAA,QACb,IAAA,EAAQ,UAAA;AAAA,QACR,OAAA,EAAW,mCAAA;AAAA,QACX,IAAA,EAAQ,iFAAA;AAAA,QACR,eAAA,EAAiB,0GAAA;AAAA,QACjB,UAAA,EAAc,UAAA;AAAA,QACd,OAAA,EAAW;AAAA,OACb;AAAA,MACA,UAAA,EAAc;AAAA,QACZ,IAAA,EAAQ,KAAA;AAAA,QACR,GAAA,EAAO;AAAA,OACT;AAAA,MACA,QAAA,EAAY,2CAAA;AAAA,MACZ,OAAA,EAAW,qBAAA;AAAA,MACX,QAAA,EAAY;AAAA,QACV,QAAA;AAAA,QACA,KAAA;AAAA,QACA,MAAA;AAAA,QACA,aAAA;AAAA,QACA,WAAA;AAAA,QACA,QAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,cAAA,EAAkB,WAAA;AAAA,MAClB,OAAA,EAAW,cAAA;AAAA,MACX,eAAA,EAAmB;AAAA,QACjB,aAAA,EAAe,UAAA;AAAA,QACf,OAAA,EAAW,QAAA;AAAA,QACX,KAAA,EAAS,SAAA;AAAA,QACT,QAAA,EAAY,SAAA;AAAA,QACZ,kBAAA,EAAoB,QAAA;AAAA,QACpB,GAAA,EAAO,SAAA;AAAA,QACP,UAAA,EAAc;AAAA,OAChB;AAAA,MACA,OAAA,EAAW;AAAA,QACT,IAAA,EAAQ;AAAA,OACV;AAAA,MACA,OAAA,EAAW;AAAA,QACT,EAAA,EAAM;AAAA;AACR,KACF;AAAA,EAAA;AAAA,CAAA,CAAA;;;AC7DA,IAAA,YAAA,GAAA,UAAA,CAAA;AAAA,EAAA,kEAAA,CAAAA,SAAA,EAAA,MAAA,EAAA;AAAA,IAAA,IAAMC,GAAAA,GAAK,UAAQ,IAAI,CAAA;AACvB,IAAA,IAAMC,KAAAA,GAAO,UAAQ,MAAM,CAAA;AAC3B,IAAA,IAAM,EAAA,GAAK,UAAQ,IAAI,CAAA;AACvB,IAAA,IAAM,MAAA,GAAS,UAAQ,QAAQ,CAAA;AAC/B,IAAA,IAAM,WAAA,GAAc,eAAA,EAAA;AAEpB,IAAA,IAAM,UAAU,WAAA,CAAY,OAAA;AAG5B,IAAA,IAAM,IAAA,GAAO;AAAA,MACX,qDAAA;AAAA,MACA,0EAAA;AAAA,MACA,yEAAA;AAAA,MACA,iEAAA;AAAA,MACA,6EAAA;AAAA,MACA,qEAAA;AAAA,MACA,oEAAA;AAAA,MACA,qEAAA;AAAA,MACA,mEAAA;AAAA,MACA,iEAAA;AAAA,MACA,gFAAA;AAAA,MACA,yDAAA;AAAA,MACA,kEAAA;AAAA,MACA,sDAAA;AAAA,MACA,oEAAA;AAAA,MACA;AAAA,KACF;AAGA,IAAA,SAAS,aAAA,GAAiB;AACxB,MAAA,OAAO,IAAA,CAAK,KAAK,KAAA,CAAM,IAAA,CAAK,QAAO,GAAI,IAAA,CAAK,MAAM,CAAC,CAAA;AAAA,IACrD;AAEA,IAAA,SAAS,aAAc,KAAA,EAAO;AAC5B,MAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,QAAA,OAAO,CAAC,CAAC,OAAA,EAAS,GAAA,EAAK,IAAA,EAAM,KAAA,EAAO,EAAE,CAAA,CAAE,QAAA,CAAS,KAAA,CAAM,WAAA,EAAa,CAAA;AAAA,MACtE;AACA,MAAA,OAAO,QAAQ,KAAK,CAAA;AAAA,IACtB;AAEA,IAAA,SAAS,YAAA,GAAgB;AACvB,MAAA,OAAO,QAAQ,MAAA,CAAO,KAAA;AAAA,IACxB;AAEA,IAAA,SAAS,IAAK,IAAA,EAAM;AAClB,MAAA,OAAO,YAAA,EAAa,GAAI,CAAA,OAAA,EAAU,IAAI,CAAA,OAAA,CAAA,GAAY,IAAA;AAAA,IACpD;AAEA,IAAA,IAAM,IAAA,GAAO,8IAAA;AAGb,IAAA,SAAS,MAAO,GAAA,EAAK;AACnB,MAAA,MAAM,MAAM,EAAC;AAGb,MAAA,IAAI,KAAA,GAAQ,IAAI,QAAA,EAAS;AAGzB,MAAA,KAAA,GAAQ,KAAA,CAAM,OAAA,CAAQ,SAAA,EAAW,IAAI,CAAA;AAErC,MAAA,IAAI,KAAA;AACJ,MAAA,OAAA,CAAQ,KAAA,GAAQ,IAAA,CAAK,IAAA,CAAK,KAAK,MAAM,IAAA,EAAM;AACzC,QAAA,MAAM,GAAA,GAAM,MAAM,CAAC,CAAA;AAGnB,QAAA,IAAI,KAAA,GAAS,KAAA,CAAM,CAAC,CAAA,IAAK,EAAA;AAGzB,QAAA,KAAA,GAAQ,MAAM,IAAA,EAAK;AAGnB,QAAA,MAAM,UAAA,GAAa,MAAM,CAAC,CAAA;AAG1B,QAAA,KAAA,GAAQ,KAAA,CAAM,OAAA,CAAQ,wBAAA,EAA0B,IAAI,CAAA;AAGpD,QAAA,IAAI,eAAe,GAAA,EAAK;AACtB,UAAA,KAAA,GAAQ,KAAA,CAAM,OAAA,CAAQ,MAAA,EAAQ,IAAI,CAAA;AAClC,UAAA,KAAA,GAAQ,KAAA,CAAM,OAAA,CAAQ,MAAA,EAAQ,IAAI,CAAA;AAAA,QACpC;AAGA,QAAA,GAAA,CAAI,GAAG,CAAA,GAAI,KAAA;AAAA,MACb;AAEA,MAAA,OAAO,GAAA;AAAA,IACT;AAEA,IAAA,SAAS,YAAa,OAAA,EAAS;AAC7B,MAAA,OAAA,GAAU,WAAW,EAAC;AAEtB,MAAA,MAAM,SAAA,GAAY,WAAW,OAAO,CAAA;AACpC,MAAA,OAAA,CAAQ,IAAA,GAAO,SAAA;AACf,MAAA,MAAM,MAAA,GAAS,YAAA,CAAa,YAAA,CAAa,OAAO,CAAA;AAChD,MAAA,IAAI,CAAC,OAAO,MAAA,EAAQ;AAClB,QAAA,MAAM,GAAA,GAAM,IAAI,KAAA,CAAM,CAAA,2BAAA,EAA8B,SAAS,CAAA,sBAAA,CAAwB,CAAA;AACrF,QAAA,GAAA,CAAI,IAAA,GAAO,cAAA;AACX,QAAA,MAAM,GAAA;AAAA,MACR;AAIA,MAAA,MAAM,IAAA,GAAO,UAAA,CAAW,OAAO,CAAA,CAAE,MAAM,GAAG,CAAA;AAC1C,MAAA,MAAM,SAAS,IAAA,CAAK,MAAA;AAEpB,MAAA,IAAI,SAAA;AACJ,MAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,MAAA,EAAQ,CAAA,EAAA,EAAK;AAC/B,QAAA,IAAI;AAEF,UAAA,MAAM,GAAA,GAAM,IAAA,CAAK,CAAC,CAAA,CAAE,IAAA,EAAK;AAGzB,UAAA,MAAM,KAAA,GAAQ,aAAA,CAAc,MAAA,EAAQ,GAAG,CAAA;AAGvC,UAAA,SAAA,GAAY,YAAA,CAAa,OAAA,CAAQ,KAAA,CAAM,UAAA,EAAY,MAAM,GAAG,CAAA;AAE5D,UAAA;AAAA,QACF,SAAS,KAAA,EAAO;AAEd,UAAA,IAAI,CAAA,GAAI,KAAK,MAAA,EAAQ;AACnB,YAAA,MAAM,KAAA;AAAA,UACR;AAAA,QAEF;AAAA,MACF;AAGA,MAAA,OAAO,YAAA,CAAa,MAAM,SAAS,CAAA;AAAA,IACrC;AAEA,IAAA,SAAS,MAAO,OAAA,EAAS;AACvB,MAAA,OAAA,CAAQ,KAAA,CAAM,CAAA,QAAA,EAAW,OAAO,CAAA,QAAA,EAAW,OAAO,CAAA,CAAE,CAAA;AAAA,IACtD;AAEA,IAAA,SAAS,OAAQ,OAAA,EAAS;AACxB,MAAA,OAAA,CAAQ,GAAA,CAAI,CAAA,QAAA,EAAW,OAAO,CAAA,SAAA,EAAY,OAAO,CAAA,CAAE,CAAA;AAAA,IACrD;AAEA,IAAA,SAAS,KAAM,OAAA,EAAS;AACtB,MAAA,OAAA,CAAQ,GAAA,CAAI,CAAA,QAAA,EAAW,OAAO,CAAA,EAAA,EAAK,OAAO,CAAA,CAAE,CAAA;AAAA,IAC9C;AAEA,IAAA,SAAS,WAAY,OAAA,EAAS;AAE5B,MAAA,IAAI,WAAW,OAAA,CAAQ,UAAA,IAAc,OAAA,CAAQ,UAAA,CAAW,SAAS,CAAA,EAAG;AAClE,QAAA,OAAO,OAAA,CAAQ,UAAA;AAAA,MACjB;AAGA,MAAA,IAAI,QAAQ,GAAA,CAAI,UAAA,IAAc,QAAQ,GAAA,CAAI,UAAA,CAAW,SAAS,CAAA,EAAG;AAC/D,QAAA,OAAO,QAAQ,GAAA,CAAI,UAAA;AAAA,MACrB;AAGA,MAAA,OAAO,EAAA;AAAA,IACT;AAEA,IAAA,SAAS,aAAA,CAAe,QAAQ,SAAA,EAAW;AAEzC,MAAA,IAAI,GAAA;AACJ,MAAA,IAAI;AACF,QAAA,GAAA,GAAM,IAAI,IAAI,SAAS,CAAA;AAAA,MACzB,SAAS,KAAA,EAAO;AACd,QAAA,IAAI,KAAA,CAAM,SAAS,iBAAA,EAAmB;AACpC,UAAA,MAAM,GAAA,GAAM,IAAI,KAAA,CAAM,4IAA4I,CAAA;AAClK,UAAA,GAAA,CAAI,IAAA,GAAO,oBAAA;AACX,UAAA,MAAM,GAAA;AAAA,QACR;AAEA,QAAA,MAAM,KAAA;AAAA,MACR;AAGA,MAAA,MAAM,MAAM,GAAA,CAAI,QAAA;AAChB,MAAA,IAAI,CAAC,GAAA,EAAK;AACR,QAAA,MAAM,GAAA,GAAM,IAAI,KAAA,CAAM,sCAAsC,CAAA;AAC5D,QAAA,GAAA,CAAI,IAAA,GAAO,oBAAA;AACX,QAAA,MAAM,GAAA;AAAA,MACR;AAGA,MAAA,MAAM,WAAA,GAAc,GAAA,CAAI,YAAA,CAAa,GAAA,CAAI,aAAa,CAAA;AACtD,MAAA,IAAI,CAAC,WAAA,EAAa;AAChB,QAAA,MAAM,GAAA,GAAM,IAAI,KAAA,CAAM,8CAA8C,CAAA;AACpE,QAAA,GAAA,CAAI,IAAA,GAAO,oBAAA;AACX,QAAA,MAAM,GAAA;AAAA,MACR;AAGA,MAAA,MAAM,cAAA,GAAiB,CAAA,aAAA,EAAgB,WAAA,CAAY,WAAA,EAAa,CAAA,CAAA;AAChE,MAAA,MAAM,UAAA,GAAa,MAAA,CAAO,MAAA,CAAO,cAAc,CAAA;AAC/C,MAAA,IAAI,CAAC,UAAA,EAAY;AACf,QAAA,MAAM,GAAA,GAAM,IAAI,KAAA,CAAM,CAAA,wDAAA,EAA2D,cAAc,CAAA,yBAAA,CAA2B,CAAA;AAC1H,QAAA,GAAA,CAAI,IAAA,GAAO,8BAAA;AACX,QAAA,MAAM,GAAA;AAAA,MACR;AAEA,MAAA,OAAO,EAAE,YAAY,GAAA,EAAI;AAAA,IAC3B;AAEA,IAAA,SAAS,WAAY,OAAA,EAAS;AAC5B,MAAA,IAAI,iBAAA,GAAoB,IAAA;AAExB,MAAA,IAAI,WAAW,OAAA,CAAQ,IAAA,IAAQ,OAAA,CAAQ,IAAA,CAAK,SAAS,CAAA,EAAG;AACtD,QAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,OAAA,CAAQ,IAAI,CAAA,EAAG;AAC/B,UAAA,KAAA,MAAW,QAAA,IAAY,QAAQ,IAAA,EAAM;AACnC,YAAA,IAAID,GAAAA,CAAG,UAAA,CAAW,QAAQ,CAAA,EAAG;AAC3B,cAAA,iBAAA,GAAoB,SAAS,QAAA,CAAS,QAAQ,CAAA,GAAI,QAAA,GAAW,GAAG,QAAQ,CAAA,MAAA,CAAA;AAAA,YAC1E;AAAA,UACF;AAAA,QACF,CAAA,MAAO;AACL,UAAA,iBAAA,GAAoB,OAAA,CAAQ,KAAK,QAAA,CAAS,QAAQ,IAAI,OAAA,CAAQ,IAAA,GAAO,CAAA,EAAG,OAAA,CAAQ,IAAI,CAAA,MAAA,CAAA;AAAA,QACtF;AAAA,MACF,CAAA,MAAO;AACL,QAAA,iBAAA,GAAoBC,KAAAA,CAAK,OAAA,CAAQ,OAAA,CAAQ,GAAA,IAAO,YAAY,CAAA;AAAA,MAC9D;AAEA,MAAA,IAAID,GAAAA,CAAG,UAAA,CAAW,iBAAiB,CAAA,EAAG;AACpC,QAAA,OAAO,iBAAA;AAAA,MACT;AAEA,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,SAAS,aAAc,OAAA,EAAS;AAC9B,MAAA,OAAO,OAAA,CAAQ,CAAC,CAAA,KAAM,GAAA,GAAMC,KAAAA,CAAK,IAAA,CAAK,EAAA,CAAG,OAAA,EAAQ,EAAG,OAAA,CAAQ,KAAA,CAAM,CAAC,CAAC,CAAA,GAAI,OAAA;AAAA,IAC1E;AAEA,IAAA,SAAS,aAAc,OAAA,EAAS;AAC9B,MAAA,MAAM,QAAQ,YAAA,CAAa,OAAA,CAAQ,IAAI,mBAAA,IAAwB,OAAA,IAAW,QAAQ,KAAM,CAAA;AACxF,MAAA,MAAM,QAAQ,YAAA,CAAa,OAAA,CAAQ,IAAI,mBAAA,IAAwB,OAAA,IAAW,QAAQ,KAAM,CAAA;AAExF,MAAA,IAAI,KAAA,IAAS,CAAC,KAAA,EAAO;AACnB,QAAA,IAAA,CAAK,uCAAuC,CAAA;AAAA,MAC9C;AAEA,MAAA,MAAM,MAAA,GAAS,YAAA,CAAa,WAAA,CAAY,OAAO,CAAA;AAE/C,MAAA,IAAI,aAAa,OAAA,CAAQ,GAAA;AACzB,MAAA,IAAI,OAAA,IAAW,OAAA,CAAQ,UAAA,IAAc,IAAA,EAAM;AACzC,QAAA,UAAA,GAAa,OAAA,CAAQ,UAAA;AAAA,MACvB;AAEA,MAAA,YAAA,CAAa,QAAA,CAAS,UAAA,EAAY,MAAA,EAAQ,OAAO,CAAA;AAEjD,MAAA,OAAO,EAAE,MAAA,EAAO;AAAA,IAClB;AAEA,IAAA,SAAS,aAAc,OAAA,EAAS;AAC9B,MAAA,MAAM,aAAaA,KAAAA,CAAK,OAAA,CAAQ,OAAA,CAAQ,GAAA,IAAO,MAAM,CAAA;AACrD,MAAA,IAAI,QAAA,GAAW,MAAA;AACf,MAAA,IAAI,aAAa,OAAA,CAAQ,GAAA;AACzB,MAAA,IAAI,OAAA,IAAW,OAAA,CAAQ,UAAA,IAAc,IAAA,EAAM;AACzC,QAAA,UAAA,GAAa,OAAA,CAAQ,UAAA;AAAA,MACvB;AACA,MAAA,IAAI,QAAQ,YAAA,CAAa,UAAA,CAAW,mBAAA,IAAwB,OAAA,IAAW,QAAQ,KAAM,CAAA;AACrF,MAAA,IAAI,QAAQ,YAAA,CAAa,UAAA,CAAW,mBAAA,IAAwB,OAAA,IAAW,QAAQ,KAAM,CAAA;AAErF,MAAA,IAAI,OAAA,IAAW,QAAQ,QAAA,EAAU;AAC/B,QAAA,QAAA,GAAW,OAAA,CAAQ,QAAA;AAAA,MACrB,CAAA,MAAO;AACL,QAAA,IAAI,KAAA,EAAO;AACT,UAAA,MAAA,CAAO,oDAAoD,CAAA;AAAA,QAC7D;AAAA,MACF;AAEA,MAAA,IAAI,WAAA,GAAc,CAAC,UAAU,CAAA;AAC7B,MAAA,IAAI,OAAA,IAAW,QAAQ,IAAA,EAAM;AAC3B,QAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,OAAA,CAAQ,IAAI,CAAA,EAAG;AAChC,UAAA,WAAA,GAAc,CAAC,YAAA,CAAa,OAAA,CAAQ,IAAI,CAAC,CAAA;AAAA,QAC3C,CAAA,MAAO;AACL,UAAA,WAAA,GAAc,EAAC;AACf,UAAA,KAAA,MAAW,QAAA,IAAY,QAAQ,IAAA,EAAM;AACnC,YAAA,WAAA,CAAY,IAAA,CAAK,YAAA,CAAa,QAAQ,CAAC,CAAA;AAAA,UACzC;AAAA,QACF;AAAA,MACF;AAIA,MAAA,IAAI,SAAA;AACJ,MAAA,MAAM,YAAY,EAAC;AACnB,MAAA,KAAA,MAAWA,SAAQ,WAAA,EAAa;AAC9B,QAAA,IAAI;AAEF,UAAA,MAAM,MAAA,GAAS,aAAa,KAAA,CAAMD,GAAAA,CAAG,aAAaC,KAAAA,EAAM,EAAE,QAAA,EAAU,CAAC,CAAA;AAErE,UAAA,YAAA,CAAa,QAAA,CAAS,SAAA,EAAW,MAAA,EAAQ,OAAO,CAAA;AAAA,QAClD,SAAS,CAAA,EAAG;AACV,UAAA,IAAI,KAAA,EAAO;AACT,YAAA,MAAA,CAAO,CAAA,eAAA,EAAkBA,KAAI,CAAA,CAAA,EAAI,CAAA,CAAE,OAAO,CAAA,CAAE,CAAA;AAAA,UAC9C;AACA,UAAA,SAAA,GAAY,CAAA;AAAA,QACd;AAAA,MACF;AAEA,MAAA,MAAM,SAAA,GAAY,YAAA,CAAa,QAAA,CAAS,UAAA,EAAY,WAAW,OAAO,CAAA;AAGtE,MAAA,KAAA,GAAQ,YAAA,CAAa,UAAA,CAAW,mBAAA,IAAuB,KAAK,CAAA;AAC5D,MAAA,KAAA,GAAQ,YAAA,CAAa,UAAA,CAAW,mBAAA,IAAuB,KAAK,CAAA;AAE5D,MAAA,IAAI,KAAA,IAAS,CAAC,KAAA,EAAO;AACnB,QAAA,MAAM,SAAA,GAAY,MAAA,CAAO,IAAA,CAAK,SAAS,CAAA,CAAE,MAAA;AACzC,QAAA,MAAM,aAAa,EAAC;AACpB,QAAA,KAAA,MAAW,YAAY,WAAA,EAAa;AAClC,UAAA,IAAI;AACF,YAAA,MAAM,WAAWA,KAAAA,CAAK,QAAA,CAAS,OAAA,CAAQ,GAAA,IAAO,QAAQ,CAAA;AACtD,YAAA,UAAA,CAAW,KAAK,QAAQ,CAAA;AAAA,UAC1B,SAAS,CAAA,EAAG;AACV,YAAA,IAAI,KAAA,EAAO;AACT,cAAA,MAAA,CAAO,CAAA,eAAA,EAAkB,QAAQ,CAAA,CAAA,EAAI,CAAA,CAAE,OAAO,CAAA,CAAE,CAAA;AAAA,YAClD;AACA,YAAA,SAAA,GAAY,CAAA;AAAA,UACd;AAAA,QACF;AAEA,QAAA,IAAA,CAAK,CAAA,eAAA,EAAkB,SAAS,CAAA,OAAA,EAAU,UAAA,CAAW,KAAK,GAAG,CAAC,CAAA,CAAA,EAAI,GAAA,CAAI,CAAA,QAAA,EAAW,aAAA,EAAe,CAAA,CAAE,CAAC,CAAA,CAAE,CAAA;AAAA,MACvG;AAEA,MAAA,IAAI,SAAA,EAAW;AACb,QAAA,OAAO,EAAE,MAAA,EAAQ,SAAA,EAAW,KAAA,EAAO,SAAA,EAAU;AAAA,MAC/C,CAAA,MAAO;AACL,QAAA,OAAO,EAAE,QAAQ,SAAA,EAAU;AAAA,MAC7B;AAAA,IACF;AAGA,IAAA,SAAS,OAAQ,OAAA,EAAS;AAExB,MAAA,IAAI,UAAA,CAAW,OAAO,CAAA,CAAE,MAAA,KAAW,CAAA,EAAG;AACpC,QAAA,OAAO,YAAA,CAAa,aAAa,OAAO,CAAA;AAAA,MAC1C;AAEA,MAAA,MAAM,SAAA,GAAY,WAAW,OAAO,CAAA;AAGpC,MAAA,IAAI,CAAC,SAAA,EAAW;AACd,QAAA,KAAA,CAAM,CAAA,4DAAA,EAA+D,SAAS,CAAA,6BAAA,CAA+B,CAAA;AAE7G,QAAA,OAAO,YAAA,CAAa,aAAa,OAAO,CAAA;AAAA,MAC1C;AAEA,MAAA,OAAO,YAAA,CAAa,aAAa,OAAO,CAAA;AAAA,IAC1C;AAEA,IAAA,SAAS,OAAA,CAAS,WAAW,MAAA,EAAQ;AACnC,MAAA,MAAM,MAAM,MAAA,CAAO,IAAA,CAAK,OAAO,KAAA,CAAM,GAAG,GAAG,KAAK,CAAA;AAChD,MAAA,IAAI,UAAA,GAAa,MAAA,CAAO,IAAA,CAAK,SAAA,EAAW,QAAQ,CAAA;AAEhD,MAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,QAAA,CAAS,CAAA,EAAG,EAAE,CAAA;AACvC,MAAA,MAAM,OAAA,GAAU,UAAA,CAAW,QAAA,CAAS,GAAG,CAAA;AACvC,MAAA,UAAA,GAAa,UAAA,CAAW,QAAA,CAAS,EAAA,EAAI,GAAG,CAAA;AAExC,MAAA,IAAI;AACF,QAAA,MAAM,MAAA,GAAS,MAAA,CAAO,gBAAA,CAAiB,aAAA,EAAe,KAAK,KAAK,CAAA;AAChE,QAAA,MAAA,CAAO,WAAW,OAAO,CAAA;AACzB,QAAA,OAAO,CAAA,EAAG,OAAO,MAAA,CAAO,UAAU,CAAC,CAAA,EAAG,MAAA,CAAO,OAAO,CAAA,CAAA;AAAA,MACtD,SAAS,KAAA,EAAO;AACd,QAAA,MAAM,UAAU,KAAA,YAAiB,UAAA;AACjC,QAAA,MAAM,gBAAA,GAAmB,MAAM,OAAA,KAAY,oBAAA;AAC3C,QAAA,MAAM,gBAAA,GAAmB,MAAM,OAAA,KAAY,kDAAA;AAE3C,QAAA,IAAI,WAAW,gBAAA,EAAkB;AAC/B,UAAA,MAAM,GAAA,GAAM,IAAI,KAAA,CAAM,6DAA6D,CAAA;AACnF,UAAA,GAAA,CAAI,IAAA,GAAO,oBAAA;AACX,UAAA,MAAM,GAAA;AAAA,QACR,WAAW,gBAAA,EAAkB;AAC3B,UAAA,MAAM,GAAA,GAAM,IAAI,KAAA,CAAM,iDAAiD,CAAA;AACvE,UAAA,GAAA,CAAI,IAAA,GAAO,mBAAA;AACX,UAAA,MAAM,GAAA;AAAA,QACR,CAAA,MAAO;AACL,UAAA,MAAM,KAAA;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAGA,IAAA,SAAS,QAAA,CAAU,UAAA,EAAY,MAAA,EAAQ,OAAA,GAAU,EAAC,EAAG;AACnD,MAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,OAAA,IAAW,OAAA,CAAQ,KAAK,CAAA;AAC9C,MAAA,MAAM,QAAA,GAAW,OAAA,CAAQ,OAAA,IAAW,OAAA,CAAQ,QAAQ,CAAA;AACpD,MAAA,MAAM,YAAY,EAAC;AAEnB,MAAA,IAAI,OAAO,WAAW,QAAA,EAAU;AAC9B,QAAA,MAAM,GAAA,GAAM,IAAI,KAAA,CAAM,gFAAgF,CAAA;AACtG,QAAA,GAAA,CAAI,IAAA,GAAO,iBAAA;AACX,QAAA,MAAM,GAAA;AAAA,MACR;AAGA,MAAA,KAAA,MAAW,GAAA,IAAO,MAAA,CAAO,IAAA,CAAK,MAAM,CAAA,EAAG;AACrC,QAAA,IAAI,OAAO,SAAA,CAAU,cAAA,CAAe,IAAA,CAAK,UAAA,EAAY,GAAG,CAAA,EAAG;AACzD,UAAA,IAAI,aAAa,IAAA,EAAM;AACrB,YAAA,UAAA,CAAW,GAAG,CAAA,GAAI,MAAA,CAAO,GAAG,CAAA;AAC5B,YAAA,SAAA,CAAU,GAAG,CAAA,GAAI,MAAA,CAAO,GAAG,CAAA;AAAA,UAC7B;AAEA,UAAA,IAAI,KAAA,EAAO;AACT,YAAA,IAAI,aAAa,IAAA,EAAM;AACrB,cAAA,MAAA,CAAO,CAAA,CAAA,EAAI,GAAG,CAAA,wCAAA,CAA0C,CAAA;AAAA,YAC1D,CAAA,MAAO;AACL,cAAA,MAAA,CAAO,CAAA,CAAA,EAAI,GAAG,CAAA,4CAAA,CAA8C,CAAA;AAAA,YAC9D;AAAA,UACF;AAAA,QACF,CAAA,MAAO;AACL,UAAA,UAAA,CAAW,GAAG,CAAA,GAAI,MAAA,CAAO,GAAG,CAAA;AAC5B,UAAA,SAAA,CAAU,GAAG,CAAA,GAAI,MAAA,CAAO,GAAG,CAAA;AAAA,QAC7B;AAAA,MACF;AAEA,MAAA,OAAO,SAAA;AAAA,IACT;AAEA,IAAA,IAAM,YAAA,GAAe;AAAA,MACnB,YAAA;AAAA,MACA,YAAA;AAAA,MACA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,OAAA;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AAEA,IAAA,MAAA,CAAO,OAAA,CAAQ,eAAe,YAAA,CAAa,YAAA;AAC3C,IAAA,MAAA,CAAO,OAAA,CAAQ,eAAe,YAAA,CAAa,YAAA;AAC3C,IAAA,MAAA,CAAO,OAAA,CAAQ,cAAc,YAAA,CAAa,WAAA;AAC1C,IAAA,MAAA,CAAO,OAAA,CAAQ,SAAS,YAAA,CAAa,MAAA;AACrC,IAAA,MAAA,CAAO,OAAA,CAAQ,UAAU,YAAA,CAAa,OAAA;AACtC,IAAA,MAAA,CAAO,OAAA,CAAQ,QAAQ,YAAA,CAAa,KAAA;AACpC,IAAA,MAAA,CAAO,OAAA,CAAQ,WAAW,YAAA,CAAa,QAAA;AAEvC,IAAA,MAAA,CAAO,OAAA,GAAU,YAAA;AAAA,EAAA;AAAA,CAAA,CAAA;;;ACjbjB,IAAA,mBAAA,GAAA,UAAA,CAAA;AAAA,EAAA,yEAAA,CAAAF,SAAA,EAAA,MAAA,EAAA;AACA,IAAA,IAAM,UAAU,EAAC;AAEjB,IAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,sBAAA,IAA0B,IAAA,EAAM;AAC9C,MAAA,OAAA,CAAQ,QAAA,GAAW,QAAQ,GAAA,CAAI,sBAAA;AAAA,IACjC;AAEA,IAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,kBAAA,IAAsB,IAAA,EAAM;AAC1C,MAAA,OAAA,CAAQ,IAAA,GAAO,QAAQ,GAAA,CAAI,kBAAA;AAAA,IAC7B;AAEA,IAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,mBAAA,IAAuB,IAAA,EAAM;AAC3C,MAAA,OAAA,CAAQ,KAAA,GAAQ,QAAQ,GAAA,CAAI,mBAAA;AAAA,IAC9B;AAEA,IAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,mBAAA,IAAuB,IAAA,EAAM;AAC3C,MAAA,OAAA,CAAQ,KAAA,GAAQ,QAAQ,GAAA,CAAI,mBAAA;AAAA,IAC9B;AAEA,IAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,sBAAA,IAA0B,IAAA,EAAM;AAC9C,MAAA,OAAA,CAAQ,QAAA,GAAW,QAAQ,GAAA,CAAI,sBAAA;AAAA,IACjC;AAEA,IAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,wBAAA,IAA4B,IAAA,EAAM;AAChD,MAAA,OAAA,CAAQ,UAAA,GAAa,QAAQ,GAAA,CAAI,wBAAA;AAAA,IACnC;AAEA,IAAA,MAAA,CAAO,OAAA,GAAU,OAAA;AAAA,EAAA;AAAA,CAAA,CAAA;;;AC3BjB,IAAA,mBAAA,GAAA,UAAA,CAAA;AAAA,EAAA,yEAAA,CAAAA,SAAA,EAAA,MAAA,EAAA;AAAA,IAAA,IAAM,EAAA,GAAK,sEAAA;AAEX,IAAA,MAAA,CAAO,OAAA,GAAU,SAAS,aAAA,CAAe,IAAA,EAAM;AAC7C,MAAA,MAAM,OAAA,GAAU,IAAA,CAAK,MAAA,CAAO,SAAU,KAAK,GAAA,EAAK;AAC9C,QAAA,MAAM,OAAA,GAAU,GAAA,CAAI,KAAA,CAAM,EAAE,CAAA;AAC5B,QAAA,IAAI,OAAA,EAAS;AACX,UAAA,GAAA,CAAI,OAAA,CAAQ,CAAC,CAAC,CAAA,GAAI,QAAQ,CAAC,CAAA;AAAA,QAC7B;AACA,QAAA,OAAO,GAAA;AAAA,MACT,CAAA,EAAG,EAAE,CAAA;AAEL,MAAA,IAAI,EAAE,WAAW,OAAA,CAAA,EAAU;AACzB,QAAA,OAAA,CAAQ,KAAA,GAAQ,MAAA;AAAA,MAClB;AAEA,MAAA,OAAO,OAAA;AAAA,IACT,CAAA;AAAA,EAAA;AAAA,CAAA,CAAA;;;CChBC,WAAY;AACX,EAAA,YAAA,EAAA,CAAsB,MAAA;AAAA,IACpB,MAAA,CAAO,MAAA;AAAA,MACL,EAAC;AAAA,MACD,mBAAA,EAAA;AAAA,MACA,mBAAA,EAAA,CAA6B,QAAQ,IAAI;AAAA;AAC3C,GACF;AACF,CAAA,GAAG;;;ACCI,IAAK,eAAA,qBAAAG,gBAAAA,KAAL;AACN,EAAAA,gBAAAA,CAAAA,gBAAAA,CAAA,UAAO,CAAA,CAAA,GAAP,MAAA;AACA,EAAAA,gBAAAA,CAAAA,gBAAAA,CAAA,iBAAc,CAAA,CAAA,GAAd,aAAA;AACA,EAAAA,gBAAAA,CAAAA,gBAAAA,CAAA,qBAAkB,CAAA,CAAA,GAAlB,iBAAA;AACA,EAAAA,gBAAAA,CAAAA,gBAAAA,CAAA,yBAAsB,CAAA,CAAA,GAAtB,qBAAA;AACA,EAAAA,gBAAAA,CAAAA,gBAAAA,CAAA,iBAAc,CAAA,CAAA,GAAd,aAAA;AACA,EAAAA,gBAAAA,CAAAA,gBAAAA,CAAA,eAAY,CAAA,CAAA,GAAZ,WAAA;AANW,EAAA,OAAAA,gBAAAA;AAAA,CAAA,EAAA,eAAA,IAAA,EAAA;AAeL,IAAM,kBAAA,GAAqB,CAAC,MAAA,EAAwB,MAAA,KAAwB;AAClF,EAAA,MAAM,WAAA,GAAc,OAAO,KAAA,CAAM,OAAA;AACjC,EAAA,IAAI,OAAO,IAAA,CAAK,EAAA,KAAO,MAAA,CAAO,KAAA,CAAM,SAAS,OAAO,CAAA;AAEpD,EAAA,MAAM,kBAAkB,MAAA,CAAO,eAAA;AAC/B,EAAA,OAAO,eAAA,CAAgB,WAAA,CAAY,IAAI,CAAA,IAAK,CAAA;AAC7C;;;ACtBA,IAAMC,YAAA,GAAa,aAAA,CAAc,MAAA,CAAA,IAAA,CAAY,GAAG,CAAA;AAChD,IAAMC,WAAA,GAAY,QAAQD,YAAU,CAAA;AAOpC,IAAM,iBAAiB,MAAc;AACpC,EAAA,IAAI,GAAA,GAAMC,WAAA;AAEV,EAAA,OAAO,GAAA,KAAQ,OAAA,CAAQ,GAAG,CAAA,EAAG;AAC5B,IAAA,IAAI,UAAA,CAAW,IAAA,CAAK,GAAA,EAAK,cAAc,CAAC,CAAA,IAAK,UAAA,CAAW,IAAA,CAAK,GAAA,EAAK,cAAc,CAAC,CAAA,EAAG;AACnF,MAAA,OAAO,GAAA;AAAA,IACR;AACA,IAAA,GAAA,GAAM,QAAQ,GAAG,CAAA;AAAA,EAClB;AACA,EAAA,OAAOA,WAAA;AACR,CAAA;AAOO,IAAM,yBAAyB,cAAA,EAAe;AAS9C,SAAS,YAAY,OAAA,EAA+D;AAC1F,EAAA,MAAM,EAAE,QAAA,EAAU,aAAA,EAAc,GAAI,OAAA;AACpC,EAAA,IAAI,QAAA,EAAU;AACb,IAAA,OAAO,gBAAgB,QAAQ,CAAA;AAAA,EAChC;AAEA,EAAA,MAAM,iBAAA,GAAoB;AAAA,IACzB,IAAA,CAAK,sBAAA,EAAwB,KAAA,EAAO,aAAa,CAAA;AAAA,IACjD,IAAA,CAAK,sBAAA,EAAwB,MAAA,EAAQ,aAAa;AAAA,GACnD;AAEA,EAAA,KAAA,MAAW,aAAa,iBAAA,EAAmB;AAC1C,IAAA,IAAI,UAAA,CAAW,SAAS,CAAA,EAAG;AAC1B,MAAA,OAAO,SAAA;AAAA,IACR;AAAA,EACD;AAEA,EAAA,OAAO,IAAA,CAAK,sBAAA,EAAwB,KAAA,EAAO,aAAa,CAAA;AACzD;AASO,SAAS,gBAAgB,YAAA,EAA8B;AAC7D,EAAA,MAAM,UAAA,GAAa;AAAA,IAClB,IAAA,CAAK,OAAA,CAAQ,GAAA,EAAI,EAAG,YAAY,CAAA;AAAA,IAEhC,IAAA,CAAK,OAAA,CAAQ,GAAA,EAAI,EAAG,OAAO,YAAY,CAAA;AAAA,IACvC,IAAA,CAAK,OAAA,CAAQ,GAAA,EAAI,EAAG,QAAQ,YAAY,CAAA;AAAA,IAExC,IAAA,CAAK,wBAAwB,YAAY,CAAA;AAAA,IACzC,IAAA,CAAK,sBAAA,EAAwB,KAAA,EAAO,YAAY,CAAA;AAAA,IAChD,IAAA,CAAK,sBAAA,EAAwB,MAAA,EAAQ,YAAY;AAAA,GAClD;AAEA,EAAA,KAAA,MAAW,aAAa,UAAA,EAAY;AACnC,IAAA,MAAM,IAAA,GAAO,QAAQ,SAAS,CAAA;AAC9B,IAAA,IAAI,UAAA,CAAW,IAAI,CAAA,EAAG,OAAO,IAAA;AAAA,EAC9B;AAEA,EAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,GAAA,EAAI,EAAG,YAAY,CAAA;AACxC;AAUA,eAAsB,OAAOH,KAAAA,EAAc;AAC1C,EAAA,IAAI;AACH,IAAA,MAAMD,QAAA,CAAG,OAAOC,KAAI,CAAA;AACpB,IAAA,OAAO,IAAA;AAAA,EACR,CAAA,CAAA,MAAQ;AACP,IAAA,OAAO,KAAA;AAAA,EACR;AACD;AAaO,SAAS,aAAA,CACf,QACA,OAAA,EAKC;AACD,EAAA,MAAM,EAAE,UAAA,EAAY,IAAA,EAAM,MAAA,EAAO,GAAI,OAAA;AAErC,EAAA,IAAI,IAAA,EAAM;AACT,IAAA,IAAI,UAAA,KAAA,CAAA,kBAA0C,OAAO,IAAA,CAAK,EAAA,KAAO,oBAAA;AACjE,IAAA,OAAO,IAAA;AAAA,EACR;AAEA,EAAA,IAAI,MAAA,EAAQ;AACX,IAAA,MAAM,gBAAA,GAAmB,kBAAA,CAAmB,MAAA,EAAQ,MAAM,CAAA;AAC1D,IAAA,OAAO,gBAAA,IAAoB,UAAA;AAAA,EAC5B;AAEA,EAAA,OAAO,KAAA;AACR;AC9HO,IAAe,eAAf,MAA+B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBrC,GAAA,GAAM;AACL,IAAA,OAAO,IAAA,CAAK,KAAA;AAAA,EACb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAgB,WAAc,QAAA,EAAqC;AAClE,IAAA,IAAI;AACH,MAAA,MAAM,EAAE,SAAS,IAAA,EAAK,GAAI,MAAM,OAAO,aAAA,CAAc,QAAQ,CAAA,CAAE,IAAA,CAAA;AAC/D,MAAA,MAAM,OAAA,GAAU,KAAK,OAAA,IAAW,IAAA;AAEhC,MAAA,IAAI,CAAC,SAAS,OAAO,IAAA;AAErB,MAAA,IAAI,OAAO,OAAA,KAAY,UAAA,IAAc,OAAA,CAAQ,SAAA,EAAW;AACvD,QAAA,OAAO,IAAI,OAAA,EAAQ;AAAA,MACpB;AAEA,MAAA,IAAI,OAAO,YAAY,QAAA,EAAU;AAChC,QAAA,IAAI,OAAO,IAAA,CAAK,OAAO,CAAA,CAAE,MAAA,KAAW,GAAG,OAAO,IAAA;AAC9C,QAAA,OAAO,OAAA;AAAA,MACR;AAEA,MAAA,OAAA,CAAQ,KAAA,CAAM,CAAA,kBAAA,EAAqB,QAAQ,CAAA,0BAAA,CAA4B,CAAA;AACvE,MAAA,OAAO,IAAA;AAAA,IACR,SAAS,KAAA,EAAY;AACpB,MAAA,OAAA,CAAQ,KAAA,CAAM,mBAAA,EAAqB,QAAA,EAAU,KAAK,CAAA;AAClD,MAAA,OAAO,IAAA;AAAA,IACR;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAgB,WAAW,QAAA,EAAkB;AAC5C,IAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,YAAA,EAAc;AAC3C,IAAA,IAAI;AACH,MAAA,MAAM,QAAA,GAAW,SAAA,CAAQ,OAAA,CAAQ,QAAQ,CAAA;AACzC,MAAA,OAAO,SAAA,CAAQ,MAAM,QAAQ,CAAA;AAAA,IAC9B,CAAA,CAAA,MAAQ;AAAA,IAAC;AAAA,EACV;AACD;;;ACnDO,IAAK,aAAA,qBAAAI,cAAAA,KAAL;AACN,EAAAA,eAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,eAAA,YAAA,CAAA,GAAa,QAAA;AACb,EAAAA,eAAA,OAAA,CAAA,GAAQ,OAAA;AAHG,EAAA,OAAAA,cAAAA;AAAA,CAAA,EAAA,aAAA,IAAA,EAAA;AAwCL,IAAM,mBAAA,GAAsB,CAAC,QAAA,KAAqB;AACxD,EAAA,MAAM,CAAC,aAAA,EAAe,QAAQ,CAAA,GAAI,QAAA,CAAS,MAAM,GAAG,CAAA;AACpD,EAAA,MAAM,CAAC,IAAA,EAAM,GAAG,IAAI,CAAA,GAAI,QAAA,CAAS,MAAM,GAAG,CAAA;AAE1C,EAAA,OAAO;AAAA,IACN,aAAA;AAAA,IACA,IAAA;AAAA,IACA;AAAA,GACD;AACD;AChEA,IAAqB,eAAA,GAArB,cAA6C,YAAA,CAAyB;AAAA,EAC3D,KAAA,GAAQ,IAAI,UAAA,EAA+B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASrD,MAAM,KAAK,SAAA,GAAoB,WAAA,CAAY,EAAE,aAAA,EAAe,UAAA,EAAY,CAAA,EAAG;AAC1E,IAAA,IAAI,CAAE,MAAM,MAAA,CAAO,SAAS,CAAA,EAAI;AAC/B,MAAA,OAAO,IAAA;AAAA,IACR;AAEA,IAAA,MAAM,OAAA,GAAU,MAAML,QAAAA,CAAG,OAAA,CAAQ,WAAW,EAAE,aAAA,EAAe,MAAM,CAAA;AAEnE,IAAA,KAAA,MAAW,SAAS,OAAA,EAAS;AAC5B,MAAA,MAAM,QAAA,GAAWM,IAAAA,CAAK,SAAA,EAAW,KAAA,CAAM,IAAI,CAAA;AAC3C,MAAA,IAAI,CAAC,KAAA,CAAM,WAAA,EAAY,EAAG;AAE1B,MAAA,MAAM,SAAA,GAAYA,IAAAA,CAAK,QAAA,EAAU,UAAU,CAAA;AAC3C,MAAA,MAAM,OAAA,GAAUA,IAAAA,CAAK,QAAA,EAAU,UAAU,CAAA;AAEzC,MAAA,IAAI,WAAA,GAAc,EAAA;AAClB,MAAA,IAAI,MAAM,MAAA,CAAO,SAAS,CAAA,EAAG,WAAA,GAAc,SAAA;AAAA,WAAA,IAClC,MAAM,MAAA,CAAO,OAAO,CAAA,EAAG,WAAA,GAAc,OAAA;AAAA,WACzC;AAEL,MAAA,MAAM,OAAA,GAAU,MAAM,IAAA,CAAK,UAAA,CAAuB,WAAW,CAAA;AAC7D,MAAA,IAAI,CAAC,OAAA,EAAS;AACd,MAAA,IAAI,CAAC,OAAA,CAAQ,QAAA,CAAS,MAAA,EAAQ;AAE9B,MAAA,IAAI,OAAA,CAAQ,gBAAe,EAAG;AAC7B,QAAA,MAAM,eAAA,GAAA,CAAmB,MAAMN,QAAAA,CAAG,OAAA,CAAQ,QAAQ,CAAA,EAAG,MAAA;AAAA,UACpD,WACE,IAAA,CAAK,QAAA,CAAS,KAAK,CAAA,IAAK,KAAK,QAAA,CAAS,KAAK,CAAA,KAC5C,CAAC,KAAK,UAAA,CAAW,QAAQ,KACzB,CAAC,IAAA,CAAK,SAAS,OAAO;AAAA,SACxB;AAEA,QAAA,KAAA,MAAW,QAAQ,eAAA,EAAiB;AACnC,UAAA,MAAM,aAAa,MAAM,IAAA,CAAK,WAAuBM,IAAAA,CAAK,QAAA,EAAU,IAAI,CAAC,CAAA;AACzE,UAAA,IAAI,CAAC,UAAA,EAAY;AACjB,UAAA,IAAI,CAAC,UAAA,CAAW,IAAA,CAAK,IAAA,IAAQ,EAAE,WAAW,IAAA,YAAgB,6BAAA,CAAA;AACzD,YAAA;AAED,UAAA,OAAA,CAAQ,IAAA,CAAK,aAAA,CAAc,UAAA,CAAW,IAAI,CAAA;AAC1C,UAAA,OAAA,CAAQ,SAAS,WAAA,CAAY,GAAA,CAAI,UAAA,CAAW,IAAA,CAAK,MAAM,UAAU,CAAA;AAAA,QAClE;AAAA,MACD;AAEA,MAAA,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,OAAA,CAAQ,IAAA,CAAK,MAAM,OAAO,CAAA;AAAA,IAC1C;AAEA,IAAA,OAAO,IAAA;AAAA,EACR;AACD;AC1DA,IAAqB,iBAAA,GAArB,cAA+C,YAAA,CAAwB;AAAA,EAC5D,KAAA,GAAQ,IAAIC,UAAAA,EAA8B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASpD,MAAM,KAAK,SAAA,GAAoB,WAAA,CAAY,EAAE,aAAA,EAAe,YAAA,EAAc,CAAA,EAAkB;AAC3F,IAAA,IAAI,CAAE,MAAM,MAAA,CAAO,SAAS,CAAA,EAAI;AAC/B,MAAA,OAAO,IAAA;AAAA,IACR;AAEA,IAAA,MAAM,OAAA,GAAU,MAAMP,QAAAA,CAAG,OAAA,CAAQ,WAAW,EAAE,aAAA,EAAe,MAAM,CAAA;AAEnE,IAAA,KAAA,MAAW,SAAS,OAAA,EAAS;AAC5B,MAAA,MAAM,QAAA,GAAWM,IAAAA,CAAK,SAAA,EAAW,KAAA,CAAM,IAAI,CAAA;AAC3C,MAAA,IAAI,CAAC,KAAA,CAAM,WAAA,EAAY,EAAG;AAE1B,MAAA,MAAM,cAAA,GAAA,CAAkB,MAAMN,QAAAA,CAAG,OAAA,CAAQ,QAAQ,CAAA,EAAG,MAAA;AAAA,QACnD,WACE,IAAA,CAAK,QAAA,CAAS,KAAK,CAAA,IAAK,KAAK,QAAA,CAAS,KAAK,CAAA,KAC5C,CAAC,KAAK,UAAA,CAAW,QAAQ,KACzB,CAAC,IAAA,CAAK,SAAS,OAAO;AAAA,OACxB;AAEA,MAAA,KAAA,MAAW,QAAQ,cAAA,EAAgB;AAClC,QAAA,MAAM,YAAY,MAAM,IAAA,CAAK,WAAsBM,IAAAA,CAAK,QAAA,EAAU,IAAI,CAAC,CAAA;AACvE,QAAA,IAAI,CAAC,SAAA,EAAW;AAEhB,QAAA,MAAM,EAAE,IAAA,EAAK,GAAI,mBAAA,CAAoB,SAAA,CAAU,SAAS,QAAQ,CAAA;AAChE,QAAA,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,IAAA,EAAM,SAAS,CAAA;AAAA,MAC/B;AAAA,IACD;AAEA,IAAA,OAAO,IAAA;AAAA,EACR;AACD;ACjDA,IAAO,yBAAA,GAAQ;AAAA,EACd,IAAA,EAAM,mBAAA;AAAA,EACN,OAAA,EAAS,OAAO,MAAA,EAAQ,WAAA,KAAgB;AACvC,IAAA,IAAI,WAAA,CAAY,kBAAA,EAAmB,IAAK,WAAA,CAAY,sBAAqB,EAAG;AAC3E,MAAA,MAAM,EAAE,aAAY,GAAI,WAAA;AAExB,MAAA,MAAM,kBAAA,GAAqB,MAAA,CAAO,UAAA,CAAW,QAAA,CAAS,GAAA,EAAI;AAC1D,MAAA,MAAM,OAAA,GAAU,kBAAA,CAAmB,GAAA,CAAI,WAAW,CAAA;AAClD,MAAA,IAAI,CAAC,OAAA,EAAS;AACb,QAAA,MAAM,YAAY,KAAA,CAAM;AAAA,UACvB,OAAA,EAAS,CAAA,yDAAA,CAAA;AAAA,UACT,KAAA,EAAO,CAAC,WAAW;AAAA,SACnB,CAAA;AACD,QAAA;AAAA,MACD;AAEA,MAAA,MAAM,kBAAA,GAAqB,QAAQ,QAAA,CAAS,UAAA;AAC5C,MAAA,MAAME,cAAAA,GAAgB,MAAM,OAAA,CAAQ,uBAAA;AAAA,QACnC,MAAA;AAAA,QACA,WAAA;AAAA,QACA;AAAA,OACD;AACA,MAAA,IAAI,CAACA,cAAAA,EAAe;AAEpB,MAAA,IAAI,EAAE,aAAa,OAAA,CAAA,EAAU;AAC5B,QAAA,MAAO,QAAoB,KAAA,CAAM,WAAA,EAAa,EAAE,OAAA,EAAS,uGAAuG,CAAA;AAChK,QAAA;AAAA,MACD;AAEA,MAAA,MAAM,QAAQ,KAAA,CAAM,WAAA,EAAa,EAAE,OAAA,EAAS,yBAAyB,CAAA;AAErE,MAAA,IAAI,WAAA,CAAY,kBAAA,EAAmB,IAAK,OAAA,CAAQ,gBAAe,EAAG;AACjE,QAAA,MAAM,OAAA,CAAQ,OAAA,CAAQ,MAAA,EAAQ,WAAW,CAAA;AAAA,MAC1C,WAAW,WAAA,CAAY,oBAAA,EAAqB,IAAK,OAAA,CAAQ,sBAAqB,EAAG;AAChF,QAAA,MAAM,OAAA,CAAQ,OAAA,CAAQ,MAAA,EAAQ,WAAW,CAAA;AAAA,MAC1C;AAAA,IACD,WAAW,WAAA,CAAY,kBAAA,EAAmB,IAAK,WAAA,CAAY,eAAc,EAAG;AAC3E,MAAA,MAAM,EAAE,aAAA,EAAe,IAAA,EAAM,MAAK,GAAI,mBAAA,CAAoB,YAAY,QAAQ,CAAA;AAE9E,MAAA,IAAI,aAAA,KAAA,QAAA,iBAA0C,EAAE,WAAA,YAAuB,iBAAA,CAAA;AACtE,QAAA;AACD,MAAA,IAAI,aAAA,KAAA,OAAA,gBAAyC,EAAE,WAAA,YAAuB,sBAAA,CAAA;AACrE,QAAA;AAED,MAAA,IAAI,IAAA,CAAK,QAAA,CAAS,SAAS,CAAA,EAAG;AAE9B,MAAA,MAAM,oBAAA,GAAuB,MAAA,CAAO,UAAA,CAAW,UAAA,CAAW,GAAA,EAAI;AAC9D,MAAA,MAAM,SAAA,GAAY,oBAAA,CAAqB,GAAA,CAAI,IAAI,CAAA;AAC/C,MAAA,IAAI,CAAC,SAAA,EAAW;AACf,QAAA,MAAM,YAAY,KAAA,CAAM;AAAA,UACvB,OAAA,EAAS,CAAA,yDAAA,CAAA;AAAA,UACT,KAAA,EAAO,CAAC,WAAW;AAAA,SACnB,CAAA;AACD,QAAA;AAAA,MACD;AAEA,MAAA,MAAM,kBAAA,GAAqB,UAAU,QAAA,CAAS,UAAA;AAC9C,MAAA,MAAMA,cAAAA,GAAgB,MAAM,SAAA,CAAU,uBAAA;AAAA,QACrC,MAAA;AAAA,QACA,WAAA;AAAA,QACA;AAAA,OACD;AACA,MAAA,IAAI,CAACA,cAAAA,EAAe;AAEpB,MAAA,IAAI,CAAC,WAAA,CAAY,aAAA,EAAc,EAAG,MAAM,YAAY,WAAA,EAAY;AAChE,MAAA,MAAM,SAAA,CAAU,OAAA,CAAQ,MAAA,EAAQ,WAAW,CAAA;AAAA,IAC5C;AAAA,EACD;AACD,CAAA;;;ACzDA,IAAqB,aAAA,GAArB,cAA2C,YAAA,CAAoB;AAAA,EACpD,KAAA,GAAQ,IAAID,UAAAA,EAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAShD,MAAM,KAAK,SAAA,GAAoB,WAAA,CAAY,EAAE,aAAA,EAAe,QAAA,EAAU,CAAA,EAAkB;AACvF,IAAA,IAAI,CAAE,MAAM,MAAA,CAAO,SAAS,GAAI,OAAO,IAAA;AAEvC,IAAA,MAAM,OAAA,GAAU,MAAMP,QAAAA,CAAG,OAAA,CAAQ,WAAW,EAAE,aAAA,EAAe,MAAM,CAAA;AACnE,IAAA,KAAA,MAAW,SAAS,OAAA,EAAS;AAC5B,MAAA,MAAM,QAAA,GAAWM,IAAAA,CAAK,SAAA,EAAW,KAAA,CAAM,IAAI,CAAA;AAE3C,MAAA,IAAI,KAAA,CAAM,aAAY,EAAG;AACxB,QAAA,MAAM,IAAA,CAAK,KAAK,QAAQ,CAAA;AACxB,QAAA;AAAA,MACD;AAEA,MAAA,IAAI,MAAM,MAAA,EAAO,IAAK,MAAM,IAAA,CAAK,QAAA,CAAS,KAAK,CAAA,EAAG;AACjD,QAAA,MAAM,KAAA,GAAQ,MAAM,IAAA,CAAK,UAAA,CAAkB,QAAQ,CAAA;AACnD,QAAA,IAAI,CAAC,KAAA,EAAO;AAEZ,QAAA,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,KAAA,CAAM,IAAA,EAAM,KAAK,CAAA;AAAA,MACjC;AAAA,IACD;AAEA,IAAA,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,yBAAA,CAAkB,IAAA,EAAM,yBAA0B,CAAA;AACjE,IAAA,OAAO,IAAA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,KAAK,MAAA,EAAwB;AAC5B,IAAA,KAAA,MAAW,KAAA,IAAS,IAAA,CAAK,KAAA,CAAM,MAAA,EAAO,EAAG;AACxC,MAAA,MAAM,OAAA,GAAU,IAAI,IAAA,KACnB,KAAK,MAAM,OAAA,CAAQ,MAAA,EAAQ,GAAG,IAAI,CAAA;AAEnC,MAAA,IAAI,MAAM,IAAA,EAAM,MAAA,CAAO,IAAA,CAAK,KAAA,CAAM,MAAM,OAAO,CAAA;AAAA,WAC1C,MAAA,CAAO,EAAA,CAAG,KAAA,CAAM,IAAA,EAAM,OAAO,CAAA;AAAA,IACnC;AAAA,EACD;AACD,CAAA;ACjDA,IAAqB,cAAA,GAArB,cAA4C,YAAA,CAAqB;AAAA,EACtD,KAAA,GAAQ,IAAIC,UAAAA,EAA2B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASjD,MAAM,KAAK,SAAA,GAAoB,WAAA,CAAY,EAAE,aAAA,EAAe,QAAA,EAAU,CAAA,EAAkB;AACvF,IAAA,IAAI,CAAE,MAAM,MAAA,CAAO,SAAS,CAAA,EAAI;AAC/B,MAAA,OAAO,IAAA;AAAA,IACR;AAEA,IAAA,MAAM,OAAA,GAAU,MAAMP,QAAAA,CAAG,OAAA,CAAQ,WAAW,EAAE,aAAA,EAAe,MAAM,CAAA;AAEnE,IAAA,KAAA,MAAW,SAAS,OAAA,EAAS;AAC5B,MAAA,MAAM,QAAA,GAAWM,IAAAA,CAAK,SAAA,EAAW,KAAA,CAAM,IAAI,CAAA;AAC3C,MAAA,IAAI,CAAC,KAAA,CAAM,WAAA,EAAY,EAAG;AAE1B,MAAA,MAAM,WAAA,GAAA,CAAe,MAAMN,QAAAA,CAAG,OAAA,CAAQ,QAAQ,CAAA,EAAG,MAAA;AAAA,QAChD,WACE,IAAA,CAAK,QAAA,CAAS,KAAK,CAAA,IAAK,KAAK,QAAA,CAAS,KAAK,CAAA,KAC5C,CAAC,KAAK,UAAA,CAAW,QAAQ,KACzB,CAAC,IAAA,CAAK,SAAS,OAAO;AAAA,OACxB;AAEA,MAAA,KAAA,MAAW,QAAQ,WAAA,EAAa;AAC/B,QAAA,MAAM,cAAc,MAAM,IAAA,CAAK,WAAmBM,IAAAA,CAAK,QAAA,EAAU,IAAI,CAAC,CAAA;AACtE,QAAA,IAAI,CAAC,WAAA,IAAe,CAAC,WAAA,CAAY,MAAA,EAAQ;AAEzC,QAAA,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,WAAA,CAAY,IAAA,EAAM,WAAW,CAAA;AAAA,MAC7C;AAAA,IACD;AAEA,IAAA,OAAO,IAAA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,KAAK,MAAA,EAAwB;AAC5B,IAAA,KAAA,MAAW,GAAA,IAAO,IAAA,CAAK,KAAA,CAAM,MAAA,EAAO,EAAG;AACtC,MAAA,KAAA,MAAW,CAAC,WAAW,OAAO,CAAA,IAAK,OAAO,OAAA,CAAQ,GAAA,CAAI,MAAO,CAAA,EAAG;AAC/D,QAAA,IAAI,OAAO,YAAY,UAAA,EAAY;AAEnC,QAAA,MAAM,QAAA,GAAW,IAAI,IAAA,KAAoB;AACxC,UAAA,KAAM,OAAA,CAAgE,MAAA,EAAQ,GAAG,IAAI,CAAA;AAAA,QACtF,CAAA;AAEA,QAAC,MAAA,CAAO,EAAA,CAAW,SAAA,EAAW,QAAQ,CAAA;AAAA,MACvC;AAAA,IACD;AAAA,EACD;AACD,CAAA;AC1DO,IAAM,aAAa,OAAO;AAAA,EAChC,QAAA,EAAU,IAAI,eAAA,EAAgB;AAAA,EAC9B,UAAA,EAAY,IAAI,iBAAA,EAAkB;AAAA,EAClC,MAAA,EAAQ,IAAI,aAAA,EAAc;AAAA,EAC1B,OAAA,EAAS,IAAI,cAAA,EAAe;AAAA,EAE5B,MAAM,QAAQ,OAAA,EAAgC;AAC7C,IAAA,MAAM,YAAY,OAAA,CAAQ,SAAA;AAC1B,IAAA,MAAM,WAAW,OAAA,CAAQ,QAAA;AAEzB,IAAA,MAAM,QAAQ,GAAA,CAAI;AAAA,MACjB,KAAK,QAAA,CAAS,IAAA;AAAA,QACb,QAAA,GACG,eAAA,CAAgB,IAAA,CAAK,IAAA,CAAK,QAAA,EAAU,UAAU,CAAC,CAAA,GAC/C,SAAA,EAAW,YAAA,GACV,eAAA,CAAgB,SAAA,CAAU,YAAY,CAAA,GACtC;AAAA,OACL;AAAA,MACA,KAAK,UAAA,CAAW,IAAA;AAAA,QACf,QAAA,GACG,eAAA,CAAgB,IAAA,CAAK,IAAA,CAAK,QAAA,EAAU,YAAY,CAAC,CAAA,GACjD,SAAA,EAAW,cAAA,GACV,eAAA,CAAgB,SAAA,CAAU,cAAc,CAAA,GACxC;AAAA,OACL;AAAA,MACA,KAAK,MAAA,CAAO,IAAA;AAAA,QACX,QAAA,GACG,eAAA,CAAgB,IAAA,CAAK,IAAA,CAAK,QAAA,EAAU,QAAQ,CAAC,CAAA,GAC7C,SAAA,EAAW,UAAA,GACV,eAAA,CAAgB,SAAA,CAAU,UAAU,CAAA,GACpC;AAAA,OACL;AAAA,MACA,KAAK,OAAA,CAAQ,IAAA;AAAA,QACZ,QAAA,GACG,eAAA,CAAgB,IAAA,CAAK,IAAA,CAAK,QAAA,EAAU,SAAS,CAAC,CAAA,GAC9C,SAAA,EAAW,WAAA,GACV,eAAA,CAAgB,SAAA,CAAU,WAAW,CAAA,GACrC;AAAA;AACL,KACA,CAAA;AAAA,EACF,CAAA;AAAA,EAEA,KAAK,MAAA,EAAwB;AAC5B,IAAA,IAAA,CAAK,MAAA,CAAO,KAAK,MAAM,CAAA;AACvB,IAAA,IAAA,CAAK,OAAA,CAAQ,KAAK,MAAM,CAAA;AAAA,EACzB;AACD,CAAA,CAAA;;;AC/CA,IAAqB,cAAA,GAArB,cAA4C,MAAA,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQlC,aAAa,UAAA,EAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOhC,QAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQR,YAAY,OAAA,EAAgC;AAC3C,IAAA,KAAA,CAAM,OAAO,CAAA;AACb,IAAA,IAAA,CAAK,QAAA,GAAW,OAAA;AAAA,EACjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,QAAA,GAAW;AAChB,IAAA,MAAM,EAAE,UAAA,EAAAG,WAAAA,EAAW,GAAI,IAAA;AACvB,IAAA,MAAMA,WAAAA,CAAW,OAAA,CAAQ,IAAA,CAAK,QAAQ,CAAA;AACtC,IAAA,OAAA,CAAQ,GAAA;AAAA,MACP,CAAA,kCAAA,EAAqCA,YAAW,QAAA,CAAS,GAAA,GAAM,IAAI,CAAA,WAAA,EAAcA,WAAAA,CAAW,MAAA,CAAO,GAAA,EAAI,CAAE,IAAI,CAAA,SAAA,EAAYA,WAAAA,CAAW,UAAA,CAAW,GAAA,EAAI,CAAE,IAAI,gBAAgBA,WAAAA,CAAW,OAAA,CAAQ,GAAA,EAAI,CAAE,IAAI,CAAA,SAAA;AAAA,KACvM;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,KAAA,GAAQ;AACb,IAAA,IAAI,CAAC,OAAA,CAAQ,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,cAAc,CAAA,EAAG;AAC/C,MAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,YAAA,EAAc;AAAA,WACtC,MAAM,IAAI,KAAA,CAAM,oCAAoC,CAAA;AAAA,IAC1D;AAEA,IAAA,IAAA,CAAK,UAAA,CAAW,KAAK,IAAI,CAAA;AACzB,IAAA,MAAM,KAAK,KAAA,CAAM,OAAA,CAAQ,IAAI,IAAA,CAAK,QAAA,CAAS,cAAc,CAAC,CAAA;AAAA,EAC3D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,MAAA,GAAS;AACd,IAAA,MAAM,QAAA,GAAW,OAAA,CAAQ,GAAA,CAAI,IAAA,CAAK,SAAS,iBAAiB,CAAA;AAC5D,IAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,GAAA,CAAI,IAAA,CAAK,SAAS,cAAc,CAAA;AACtD,IAAA,IAAI,CAAC,QAAA,IAAY,CAAC,OAAO,MAAM,IAAI,MAAM,gDAAgD,CAAA;AAEzF,IAAA,MAAM,aAAA,GAAgB,MAAM,IAAA,CAAK,IAAA,CAAK,WAAW,QAAA,CAAS,GAAA,EAAI,CAAE,MAAA,EAAQ,CAAA;AACxE,IAAA,MAAM,IAAA,GAAO,CAAC,GAAG,aAAA,CAAc,IAAI,CAAA,OAAA,KAAW,OAAA,CAAQ,MAAA,EAAQ,CAAC,CAAA;AAE/D,IAAA,MAAM,IAAA,GAAO,IAAI,IAAA,CAAK,EAAE,SAAS,IAAA,EAAM,CAAA,CAAE,QAAA,CAAS,KAAK,CAAA;AACvD,IAAA,MAAM,IAAA,CAAK,IAAI,MAAA,CAAO,mBAAA,CAAoB,QAAQ,CAAA,EAAG,EAAE,MAAM,CAAA;AAC7D,IAAA,OAAA,CAAQ,GAAA,CAAI,CAAA,oBAAA,EAAuB,IAAA,CAAK,MAAM,CAAA,SAAA,CAAW,CAAA;AAAA,EAC1D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,mBAAmB,KAAA,EAAwC;AAC1D,IAAA,IAAA,CAAK,SAAS,eAAA,GAAkB,KAAA;AAAA,EACjC;AAAA,EAEA,IAAI,eAAA,GAAkB;AACrB,IAAA,OAAO,IAAA,CAAK,QAAA,CAAS,eAAA,IAAmB,EAAC;AAAA,EAC1C;AACD;ACvFA,IAA8B,kBAAA,GAA9B,cAAyD,OAAA,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA0BhE,MAAa,OAAA,CAAQ,MAAA,EAAwB,WAAA,EAA4C;AACxF,IAAA,MAAM,EAAE,GAAA,EAAK,QAAA,EAAS,GAAI,IAAA;AAE1B,IAAA,MAAM,mBAAA,GAAsB,MAAM,IAAA,CAAK,uBAAA;AAAA,MACtC,MAAA;AAAA,MACA,WAAA;AAAA,MACA,QAAA,CAAS,UAAA;AAAA,MACT;AAAA,KACD;AACA,IAAA,IAAI,mBAAA,EAAqB,MAAM,GAAA,CAAI,MAAA,EAAQ,WAAW,CAAA;AAAA,EACvD;AACD;AAUO,IAAM,kBAAA,GAAN,cAAiC,yBAAA,CAA0B;AAAA,EACzD,OAAA,GAAU,IAAA;AAAA,EACV,UAAA,GAAa,KAAA;AAAA,EACb,WAAA,GAAA,CAAA;AAAA,EACA,eAAA,GAAkB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQnB,OAAA,GAAgB;AACtB,IAAA,IAAA,CAAK,OAAA,GAAU,KAAA;AACf,IAAA,OAAO,IAAA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQO,YAAA,GAAqB;AAC3B,IAAA,IAAA,CAAK,WAAA,GAAA,CAAA;AACL,IAAA,IAAA,CAAK,UAAA,GAAa,IAAA;AAClB,IAAA,OAAO,IAAA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASO,cAAc,UAAA,EAAmC;AACvD,IAAA,IAAA,CAAK,WAAA,GAAc,UAAA;AACnB,IAAA,OAAO,IAAA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQO,iBAAA,GAA0B;AAChC,IAAA,IAAA,CAAK,eAAA,GAAkB,IAAA;AACvB,IAAA,OAAO,IAAA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQO,KAAA,GAAQ;AACd,IAAA,OAAO;AAAA,MACN,IAAA,EAAM,IAAA;AAAA,MACN,QAAA,EAAU;AAAA,QACT,QAAQ,IAAA,CAAK,OAAA;AAAA,QACb,WAAW,IAAA,CAAK,UAAA;AAAA,QAChB,YAAY,IAAA,CAAK,WAAA;AAAA,QACjB,gBAAgB,IAAA,CAAK;AAAA;AACtB,KACD;AAAA,EACD;AACD;;;ACrGA,IAA8B,UAA9B,MAAsC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAW9B,cAAA,GAAoD;AAC1D,IAAA,OAAO,IAAA,CAAK,IAAA,YAAgB,mBAAA,IAAuB,IAAA,YAAgB,YAAA;AAAA,EACpE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASO,oBAAA,GAAgE;AACtE,IAAA,OAAO,IAAA,CAAK,IAAA,YAAgBC,yBAAAA,IAA6B,IAAA,YAAgB,kBAAA;AAAA,EAC1E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQO,MAAA,GAAS;AACf,IAAA,OAAO,IAAA,CAAK,KAAK,MAAA,EAAO;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAa,KAAA,CACZ,WAAA,EACA,OAAA,EACC;AACD,IAAA,IAAI,YAAY,OAAA,EAAS;AACxB,MAAA,MAAM,WAAA,CAAY,UAAU,OAAsC,CAAA;AAClE,MAAA;AAAA,IACD;AAEA,IAAA,MAAM,UAAA,GAAa,EAAE,GAAG,OAAA,EAAQ;AAChC,IAAA,IAAI,KAAK,QAAA,CAAS,cAAA,EAAgB,UAAA,CAAW,KAAA,GAAQ,CAAC,WAAW,CAAA;AAEjE,IAAA,MAAM,WAAA,CAAY,MAAM,UAAU,CAAA;AAAA,EACnC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAM,uBAAA,CACL,MAAA,EACA,WAAA,EACA,UAAA,EACA,UAAmB,IAAA,EAClB;AACD,IAAA,MAAM,aAAA,GAAgB,YAAY,oBAAA,EAAqB;AACvD,IAAA,MAAM,WAAA,GAAc,YAAY,kBAAA,EAAmB;AAEnD,IAAA,MAAM,kBAAA,GACL,iBAAkB,WAAA,KAAgB,IAAA,CAAK,gBAAe,GAAI,IAAA,CAAK,SAAS,SAAA,GAAY,KAAA,CAAA;AACrF,IAAA,IAAI,CAAC,oBAAoB,OAAO,IAAA;AAEhC,IAAA,MAAM,SAAS,WAAA,CAAY,MAAA;AAC3B,IAAA,MAAM,sBAAsB,aAAA,CAAc,MAAA,EAAQ,EAAE,UAAA,EAAY,QAAQ,CAAA;AAExE,IAAA,IAAI,CAAC,uBAAuB,OAAA,EAAS;AACpC,MAAA,MAAM,IAAA,CAAK,MAAM,WAAA,EAAa;AAAA,QAC7B,OAAA,EAAS,CAAA,uEAAA,EAA0E,eAAA,CAAgB,UAAU,CAAC,CAAA,EAAA;AAAA,OAC9G,CAAA;AAAA,IACF;AAEA,IAAA,OAAO,mBAAA;AAAA,EACR;AACD;AAWO,IAAe,YAAA,GAAf,cAAoC,OAAA,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYlD,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcA,MAAa,OAAA,CAAQ,MAAA,EAAwB,WAAA,EAA0C;AACtF,IAAA,MAAM,EAAE,GAAA,EAAK,KAAA,EAAO,QAAA,EAAS,GAAI,IAAA;AACjC,IAAA,MAAM,EAAE,SAAQ,GAAI,WAAA;AAEpB,IAAA,IAAI,GAAA,EAAK;AACR,MAAA,MAAMC,oBAAAA,GAAsB,MAAM,IAAA,CAAK,uBAAA;AAAA,QACtC,MAAA;AAAA,QACA,WAAA;AAAA,QACA,QAAA,CAAS,UAAA;AAAA,QACT;AAAA,OACD;AACA,MAAA,IAAIA,oBAAAA,EAAqB,MAAM,GAAA,CAAI,MAAA,EAAQ,WAAW,CAAA;AAAA,IACvD;AAEA,IAAA,MAAM,cAAc,QAAA,CAAS,WAAA;AAC7B,IAAA,IAAI,WAAA,CAAY,QAAQ,CAAA,EAAG;AAE3B,IAAA,MAAM,UAAA,GAAa,SAAS,WAAA,CAAY,IAAA;AAAA,MACvC,CAAA,MAAA,KAAU,MAAA,CAAO,IAAA,CAAK,IAAA,KAAS,QAAQ,aAAA;AAAc,KACtD;AACA,IAAA,IAAI,CAAC,UAAA,EAAY;AAChB,MAAA,MAAM,MAAM,WAAA,EAAa;AAAA,QACxB,OAAA,EAAS;AAAA,OACT,CAAA;AACD,MAAA;AAAA,IACD;AAEA,IAAA,MAAM,mBAAA,GAAsB,MAAM,IAAA,CAAK,uBAAA;AAAA,MACtC,MAAA;AAAA,MACA,WAAA;AAAA,MACA,WAAW,QAAA,CAAS;AAAA,KACrB;AACA,IAAA,IAAI,CAAC,mBAAA,EAAqB;AAE1B,IAAA,MAAM,UAAA,CAAW,OAAA,CAAQ,MAAA,EAAQ,WAAW,CAAA;AAAA,EAC7C;AACD;AAUO,IAAM,cAAA,GAAN,cAA6B,mBAAA,CAAoB;AAAA,EAC/C,OAAA,GAAU,IAAA;AAAA,EACV,UAAA,GAAa,KAAA;AAAA,EACb,UAAA,GAAa,KAAA;AAAA,EACb,WAAA,GAAA,CAAA;AAAA,EACA,YAAA,GAAe,IAAIJ,UAAAA,EAA+B;AAAA,EAClD,eAAA,GAAkB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQnB,OAAA,GAAgB;AACtB,IAAA,IAAA,CAAK,OAAA,GAAU,KAAA;AACf,IAAA,OAAO,IAAA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQO,YAAA,GAAqB;AAC3B,IAAA,IAAA,CAAK,UAAA,GAAa,IAAA;AAClB,IAAA,IAAA,CAAK,WAAA,GAAA,CAAA;AACL,IAAA,IAAA,CAAK,WAAA,CAAY,uBAAuB,KAAK,CAAA;AAC7C,IAAA,OAAO,IAAA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQO,YAAA,GAAqB;AAC3B,IAAA,IAAA,CAAK,WAAA,GAAA,CAAA;AACL,IAAA,OAAO,IAAA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASO,cAAc,UAAA,EAAmC;AACvD,IAAA,IAAI,CAAC,IAAA,CAAK,UAAA,EAAY,OAAO,IAAA;AAE7B,IAAA,IAAA,CAAK,WAAA,GAAc,UAAA;AACnB,IAAA,OAAO,IAAA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQO,iBAAA,GAA0B;AAChC,IAAA,IAAA,CAAK,eAAA,GAAkB,IAAA;AACvB,IAAA,OAAO,IAAA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQO,KAAA,GAAQ;AACd,IAAA,OAAO;AAAA,MACN,IAAA,EAAM,IAAA;AAAA,MACN,QAAA,EAAU;AAAA,QACT,QAAQ,IAAA,CAAK,OAAA;AAAA,QACb,WAAW,IAAA,CAAK,UAAA;AAAA,QAChB,WAAW,IAAA,CAAK,UAAA;AAAA,QAChB,YAAY,IAAA,CAAK,WAAA;AAAA,QACjB,aAAa,IAAA,CAAK,YAAA;AAAA,QAClB,gBAAgB,IAAA,CAAK;AAAA;AACtB,KACD;AAAA,EACD;AACD;AClRO,IAAM,iBAAA,GAAN,cAAgCK,6BAAAA,CAA8B;AAAA,EAC5D,OAAA,GAAU,IAAA;AAAA,EACV,UAAA,GAAa,KAAA;AAAA,EACb,WAAA,GAAA,CAAA;AAAA,EACA,eAAA,GAAkB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQnB,OAAA,GAAgB;AACtB,IAAA,IAAA,CAAK,OAAA,GAAU,KAAA;AACf,IAAA,OAAO,IAAA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQO,YAAA,GAAqB;AAC3B,IAAA,IAAA,CAAK,WAAA,GAAA,CAAA;AACL,IAAA,IAAA,CAAK,UAAA,GAAa,IAAA;AAClB,IAAA,OAAO,IAAA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASO,cAAc,UAAA,EAAmC;AACvD,IAAA,IAAA,CAAK,WAAA,GAAc,UAAA;AACnB,IAAA,OAAO,IAAA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQO,iBAAA,GAA0B;AAChC,IAAA,IAAA,CAAK,eAAA,GAAkB,IAAA;AACvB,IAAA,OAAO,IAAA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQO,KAAA,GAAQ;AACd,IAAA,OAAO;AAAA,MACN,IAAA,EAAM,IAAA;AAAA,MACN,QAAA,EAAU;AAAA,QACT,QAAQ,IAAA,CAAK,OAAA;AAAA,QACb,WAAW,IAAA,CAAK,UAAA;AAAA,QAChB,YAAY,IAAA,CAAK,WAAA;AAAA,QACjB,gBAAgB,IAAA,CAAK;AAAA;AACtB,KACD;AAAA,EACD;AACD;AAUA,IAA8B,aAA9B,MAAyC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA0BxC,MAAM,KAAA,CACL,WAAA,EACA,OAAA,EACC;AACD,IAAA,IAAI,YAAY,OAAA,EAAS;AACxB,MAAA,MAAM,WAAA,CAAY,UAAU,OAAsC,CAAA;AAClE,MAAA;AAAA,IACD;AAEA,IAAA,MAAM,UAAA,GAAa,EAAE,GAAG,OAAA,EAAQ;AAChC,IAAA,IAAI,KAAK,QAAA,CAAS,cAAA,EAAgB,UAAA,CAAW,KAAA,GAAQ,CAAC,WAAW,CAAA;AAEjE,IAAA,MAAM,WAAA,CAAY,MAAM,UAAU,CAAA;AAAA,EACnC;AACD;;;ACnHO,IAAM,mBAAN,MAAuB;AAAA,EACrB,SAAA,GAAY,EAAA;AAAA,EACZ,WAAA,GAAA,CAAA;AAAA,EACA,eAAA,GAAkB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAanB,YAAY,OAAA,EAIV;AACR,IAAA,MAAM,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAK,GAAI,OAAA;AAC7B,IAAA,IAAA,CAAK,SAAA,GAAY,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,IAAI,CAAA,EAAG,IAAA,GAAO,CAAA,CAAA,EAAI,IAAA,CAAK,IAAA,CAAK,GAAG,CAAC,KAAK,EAAE,CAAA,CAAA;AACnE,IAAA,OAAO,IAAA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASO,cAAc,UAAA,EAAmC;AACvD,IAAA,IAAA,CAAK,WAAA,GAAc,UAAA;AACnB,IAAA,OAAO,IAAA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQO,iBAAA,GAA0B;AAChC,IAAA,IAAA,CAAK,eAAA,GAAkB,IAAA;AACvB,IAAA,OAAO,IAAA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQO,KAAA,GAAQ;AACd,IAAA,OAAO;AAAA,MACN,QAAA,EAAU;AAAA,QACT,UAAU,IAAA,CAAK,SAAA;AAAA,QACf,YAAY,IAAA,CAAK,WAAA;AAAA,QACjB,gBAAgB,IAAA,CAAK;AAAA;AACtB,KACD;AAAA,EACD;AACD;AAUA,IAA8B,YAA9B,MAAwC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmBvC,MAAM,uBAAA,CACL,MAAA,EACA,WAAA,EACA,UAAA,EACA,UAAmB,IAAA,EAClB;AACD,IAAA,IAAI,YAAY,KAAA,EAAO;AACtB,MAAA,MAAM,SAAS,WAAA,CAAY,MAAA;AAC3B,MAAA,MAAM,sBAAsB,aAAA,CAAc,MAAA,EAAQ,EAAE,UAAA,EAAY,QAAQ,CAAA;AAExE,MAAA,IAAI,CAAC,mBAAA,EAAqB;AACzB,QAAA,IAAI,OAAA;AACH,UAAA,MAAM,IAAA,CAAK,MAAM,WAAA,EAAa;AAAA,YAC7B,OAAA,EAAS,CAAA,uEAAA,EAA0E,eAAA,CAAgB,UAAU,CAAC,CAAA,EAAA;AAAA,WAC9G,CAAA;AACF,QAAA,OAAO,KAAA;AAAA,MACR;AAAA,IACD;AAEA,IAAA,OAAO,IAAA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAM,KAAA,CACL,WAAA,EACA,OAAA,EACC;AACD,IAAA,IAAI,YAAY,OAAA,EAAS;AACxB,MAAA,MAAM,WAAA,CAAY,UAAU,OAAsC,CAAA;AAClE,MAAA;AAAA,IACD;AAEA,IAAA,MAAM,UAAA,GAAa,EAAE,GAAG,OAAA,EAAQ;AAChC,IAAA,IAAI,KAAK,QAAA,CAAS,cAAA,EAAgB,UAAA,CAAW,KAAA,GAAQ,CAAC,WAAW,CAAA;AAEjE,IAAA,MAAM,WAAA,CAAY,MAAM,UAAU,CAAA;AAAA,EACnC;AACD","file":"index.js","sourcesContent":["{\n \"name\": \"dotenv\",\n \"version\": \"17.2.3\",\n \"description\": \"Loads environment variables from .env file\",\n \"main\": \"lib/main.js\",\n \"types\": \"lib/main.d.ts\",\n \"exports\": {\n \".\": {\n \"types\": \"./lib/main.d.ts\",\n \"require\": \"./lib/main.js\",\n \"default\": \"./lib/main.js\"\n },\n \"./config\": \"./config.js\",\n \"./config.js\": \"./config.js\",\n \"./lib/env-options\": \"./lib/env-options.js\",\n \"./lib/env-options.js\": \"./lib/env-options.js\",\n \"./lib/cli-options\": \"./lib/cli-options.js\",\n \"./lib/cli-options.js\": \"./lib/cli-options.js\",\n \"./package.json\": \"./package.json\"\n },\n \"scripts\": {\n \"dts-check\": \"tsc --project tests/types/tsconfig.json\",\n \"lint\": \"standard\",\n \"pretest\": \"npm run lint && npm run dts-check\",\n \"test\": \"tap run tests/**/*.js --allow-empty-coverage --disable-coverage --timeout=60000\",\n \"test:coverage\": \"tap run tests/**/*.js --show-full-coverage --timeout=60000 --coverage-report=text --coverage-report=lcov\",\n \"prerelease\": \"npm test\",\n \"release\": \"standard-version\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git://github.com/motdotla/dotenv.git\"\n },\n \"homepage\": \"https://github.com/motdotla/dotenv#readme\",\n \"funding\": \"https://dotenvx.com\",\n \"keywords\": [\n \"dotenv\",\n \"env\",\n \".env\",\n \"environment\",\n \"variables\",\n \"config\",\n \"settings\"\n ],\n \"readmeFilename\": \"README.md\",\n \"license\": \"BSD-2-Clause\",\n \"devDependencies\": {\n \"@types/node\": \"^18.11.3\",\n \"decache\": \"^4.6.2\",\n \"sinon\": \"^14.0.1\",\n \"standard\": \"^17.0.0\",\n \"standard-version\": \"^9.5.0\",\n \"tap\": \"^19.2.0\",\n \"typescript\": \"^4.8.4\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"browser\": {\n \"fs\": false\n }\n}\n","const fs = require('fs')\nconst path = require('path')\nconst os = require('os')\nconst crypto = require('crypto')\nconst packageJson = require('../package.json')\n\nconst version = packageJson.version\n\n// Array of tips to display randomly\nconst TIPS = [\n '🔐 encrypt with Dotenvx: https://dotenvx.com',\n '🔐 prevent committing .env to code: https://dotenvx.com/precommit',\n '🔐 prevent building .env in docker: https://dotenvx.com/prebuild',\n '📡 add observability to secrets: https://dotenvx.com/ops',\n '👥 sync secrets across teammates & machines: https://dotenvx.com/ops',\n '🗂️ backup and recover secrets: https://dotenvx.com/ops',\n '✅ audit secrets and track compliance: https://dotenvx.com/ops',\n '🔄 add secrets lifecycle management: https://dotenvx.com/ops',\n '🔑 add access controls to secrets: https://dotenvx.com/ops',\n '🛠️ run anywhere with `dotenvx run -- yourcommand`',\n '⚙️ specify custom .env file path with { path: \\'/custom/path/.env\\' }',\n '⚙️ enable debug logging with { debug: true }',\n '⚙️ override existing env vars with { override: true }',\n '⚙️ suppress all logs with { quiet: true }',\n '⚙️ write to custom object with { processEnv: myObject }',\n '⚙️ load multiple .env files with { path: [\\'.env.local\\', \\'.env\\'] }'\n]\n\n// Get a random tip from the tips array\nfunction _getRandomTip () {\n return TIPS[Math.floor(Math.random() * TIPS.length)]\n}\n\nfunction parseBoolean (value) {\n if (typeof value === 'string') {\n return !['false', '0', 'no', 'off', ''].includes(value.toLowerCase())\n }\n return Boolean(value)\n}\n\nfunction supportsAnsi () {\n return process.stdout.isTTY // && process.env.TERM !== 'dumb'\n}\n\nfunction dim (text) {\n return supportsAnsi() ? `\\x1b[2m${text}\\x1b[0m` : text\n}\n\nconst LINE = /(?:^|^)\\s*(?:export\\s+)?([\\w.-]+)(?:\\s*=\\s*?|:\\s+?)(\\s*'(?:\\\\'|[^'])*'|\\s*\"(?:\\\\\"|[^\"])*\"|\\s*`(?:\\\\`|[^`])*`|[^#\\r\\n]+)?\\s*(?:#.*)?(?:$|$)/mg\n\n// Parse src into an Object\nfunction parse (src) {\n const obj = {}\n\n // Convert buffer to string\n let lines = src.toString()\n\n // Convert line breaks to same format\n lines = lines.replace(/\\r\\n?/mg, '\\n')\n\n let match\n while ((match = LINE.exec(lines)) != null) {\n const key = match[1]\n\n // Default undefined or null to empty string\n let value = (match[2] || '')\n\n // Remove whitespace\n value = value.trim()\n\n // Check if double quoted\n const maybeQuote = value[0]\n\n // Remove surrounding quotes\n value = value.replace(/^(['\"`])([\\s\\S]*)\\1$/mg, '$2')\n\n // Expand newlines if double quoted\n if (maybeQuote === '\"') {\n value = value.replace(/\\\\n/g, '\\n')\n value = value.replace(/\\\\r/g, '\\r')\n }\n\n // Add to object\n obj[key] = value\n }\n\n return obj\n}\n\nfunction _parseVault (options) {\n options = options || {}\n\n const vaultPath = _vaultPath(options)\n options.path = vaultPath // parse .env.vault\n const result = DotenvModule.configDotenv(options)\n if (!result.parsed) {\n const err = new Error(`MISSING_DATA: Cannot parse ${vaultPath} for an unknown reason`)\n err.code = 'MISSING_DATA'\n throw err\n }\n\n // handle scenario for comma separated keys - for use with key rotation\n // example: DOTENV_KEY=\"dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=prod,dotenv://:key_7890@dotenvx.com/vault/.env.vault?environment=prod\"\n const keys = _dotenvKey(options).split(',')\n const length = keys.length\n\n let decrypted\n for (let i = 0; i < length; i++) {\n try {\n // Get full key\n const key = keys[i].trim()\n\n // Get instructions for decrypt\n const attrs = _instructions(result, key)\n\n // Decrypt\n decrypted = DotenvModule.decrypt(attrs.ciphertext, attrs.key)\n\n break\n } catch (error) {\n // last key\n if (i + 1 >= length) {\n throw error\n }\n // try next key\n }\n }\n\n // Parse decrypted .env string\n return DotenvModule.parse(decrypted)\n}\n\nfunction _warn (message) {\n console.error(`[dotenv@${version}][WARN] ${message}`)\n}\n\nfunction _debug (message) {\n console.log(`[dotenv@${version}][DEBUG] ${message}`)\n}\n\nfunction _log (message) {\n console.log(`[dotenv@${version}] ${message}`)\n}\n\nfunction _dotenvKey (options) {\n // prioritize developer directly setting options.DOTENV_KEY\n if (options && options.DOTENV_KEY && options.DOTENV_KEY.length > 0) {\n return options.DOTENV_KEY\n }\n\n // secondary infra already contains a DOTENV_KEY environment variable\n if (process.env.DOTENV_KEY && process.env.DOTENV_KEY.length > 0) {\n return process.env.DOTENV_KEY\n }\n\n // fallback to empty string\n return ''\n}\n\nfunction _instructions (result, dotenvKey) {\n // Parse DOTENV_KEY. Format is a URI\n let uri\n try {\n uri = new URL(dotenvKey)\n } catch (error) {\n if (error.code === 'ERR_INVALID_URL') {\n const err = new Error('INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n }\n\n throw error\n }\n\n // Get decrypt key\n const key = uri.password\n if (!key) {\n const err = new Error('INVALID_DOTENV_KEY: Missing key part')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n }\n\n // Get environment\n const environment = uri.searchParams.get('environment')\n if (!environment) {\n const err = new Error('INVALID_DOTENV_KEY: Missing environment part')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n }\n\n // Get ciphertext payload\n const environmentKey = `DOTENV_VAULT_${environment.toUpperCase()}`\n const ciphertext = result.parsed[environmentKey] // DOTENV_VAULT_PRODUCTION\n if (!ciphertext) {\n const err = new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${environmentKey} in your .env.vault file.`)\n err.code = 'NOT_FOUND_DOTENV_ENVIRONMENT'\n throw err\n }\n\n return { ciphertext, key }\n}\n\nfunction _vaultPath (options) {\n let possibleVaultPath = null\n\n if (options && options.path && options.path.length > 0) {\n if (Array.isArray(options.path)) {\n for (const filepath of options.path) {\n if (fs.existsSync(filepath)) {\n possibleVaultPath = filepath.endsWith('.vault') ? filepath : `${filepath}.vault`\n }\n }\n } else {\n possibleVaultPath = options.path.endsWith('.vault') ? options.path : `${options.path}.vault`\n }\n } else {\n possibleVaultPath = path.resolve(process.cwd(), '.env.vault')\n }\n\n if (fs.existsSync(possibleVaultPath)) {\n return possibleVaultPath\n }\n\n return null\n}\n\nfunction _resolveHome (envPath) {\n return envPath[0] === '~' ? path.join(os.homedir(), envPath.slice(1)) : envPath\n}\n\nfunction _configVault (options) {\n const debug = parseBoolean(process.env.DOTENV_CONFIG_DEBUG || (options && options.debug))\n const quiet = parseBoolean(process.env.DOTENV_CONFIG_QUIET || (options && options.quiet))\n\n if (debug || !quiet) {\n _log('Loading env from encrypted .env.vault')\n }\n\n const parsed = DotenvModule._parseVault(options)\n\n let processEnv = process.env\n if (options && options.processEnv != null) {\n processEnv = options.processEnv\n }\n\n DotenvModule.populate(processEnv, parsed, options)\n\n return { parsed }\n}\n\nfunction configDotenv (options) {\n const dotenvPath = path.resolve(process.cwd(), '.env')\n let encoding = 'utf8'\n let processEnv = process.env\n if (options && options.processEnv != null) {\n processEnv = options.processEnv\n }\n let debug = parseBoolean(processEnv.DOTENV_CONFIG_DEBUG || (options && options.debug))\n let quiet = parseBoolean(processEnv.DOTENV_CONFIG_QUIET || (options && options.quiet))\n\n if (options && options.encoding) {\n encoding = options.encoding\n } else {\n if (debug) {\n _debug('No encoding is specified. UTF-8 is used by default')\n }\n }\n\n let optionPaths = [dotenvPath] // default, look for .env\n if (options && options.path) {\n if (!Array.isArray(options.path)) {\n optionPaths = [_resolveHome(options.path)]\n } else {\n optionPaths = [] // reset default\n for (const filepath of options.path) {\n optionPaths.push(_resolveHome(filepath))\n }\n }\n }\n\n // Build the parsed data in a temporary object (because we need to return it). Once we have the final\n // parsed data, we will combine it with process.env (or options.processEnv if provided).\n let lastError\n const parsedAll = {}\n for (const path of optionPaths) {\n try {\n // Specifying an encoding returns a string instead of a buffer\n const parsed = DotenvModule.parse(fs.readFileSync(path, { encoding }))\n\n DotenvModule.populate(parsedAll, parsed, options)\n } catch (e) {\n if (debug) {\n _debug(`Failed to load ${path} ${e.message}`)\n }\n lastError = e\n }\n }\n\n const populated = DotenvModule.populate(processEnv, parsedAll, options)\n\n // handle user settings DOTENV_CONFIG_ options inside .env file(s)\n debug = parseBoolean(processEnv.DOTENV_CONFIG_DEBUG || debug)\n quiet = parseBoolean(processEnv.DOTENV_CONFIG_QUIET || quiet)\n\n if (debug || !quiet) {\n const keysCount = Object.keys(populated).length\n const shortPaths = []\n for (const filePath of optionPaths) {\n try {\n const relative = path.relative(process.cwd(), filePath)\n shortPaths.push(relative)\n } catch (e) {\n if (debug) {\n _debug(`Failed to load ${filePath} ${e.message}`)\n }\n lastError = e\n }\n }\n\n _log(`injecting env (${keysCount}) from ${shortPaths.join(',')} ${dim(`-- tip: ${_getRandomTip()}`)}`)\n }\n\n if (lastError) {\n return { parsed: parsedAll, error: lastError }\n } else {\n return { parsed: parsedAll }\n }\n}\n\n// Populates process.env from .env file\nfunction config (options) {\n // fallback to original dotenv if DOTENV_KEY is not set\n if (_dotenvKey(options).length === 0) {\n return DotenvModule.configDotenv(options)\n }\n\n const vaultPath = _vaultPath(options)\n\n // dotenvKey exists but .env.vault file does not exist\n if (!vaultPath) {\n _warn(`You set DOTENV_KEY but you are missing a .env.vault file at ${vaultPath}. Did you forget to build it?`)\n\n return DotenvModule.configDotenv(options)\n }\n\n return DotenvModule._configVault(options)\n}\n\nfunction decrypt (encrypted, keyStr) {\n const key = Buffer.from(keyStr.slice(-64), 'hex')\n let ciphertext = Buffer.from(encrypted, 'base64')\n\n const nonce = ciphertext.subarray(0, 12)\n const authTag = ciphertext.subarray(-16)\n ciphertext = ciphertext.subarray(12, -16)\n\n try {\n const aesgcm = crypto.createDecipheriv('aes-256-gcm', key, nonce)\n aesgcm.setAuthTag(authTag)\n return `${aesgcm.update(ciphertext)}${aesgcm.final()}`\n } catch (error) {\n const isRange = error instanceof RangeError\n const invalidKeyLength = error.message === 'Invalid key length'\n const decryptionFailed = error.message === 'Unsupported state or unable to authenticate data'\n\n if (isRange || invalidKeyLength) {\n const err = new Error('INVALID_DOTENV_KEY: It must be 64 characters long (or more)')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n } else if (decryptionFailed) {\n const err = new Error('DECRYPTION_FAILED: Please check your DOTENV_KEY')\n err.code = 'DECRYPTION_FAILED'\n throw err\n } else {\n throw error\n }\n }\n}\n\n// Populate process.env with parsed values\nfunction populate (processEnv, parsed, options = {}) {\n const debug = Boolean(options && options.debug)\n const override = Boolean(options && options.override)\n const populated = {}\n\n if (typeof parsed !== 'object') {\n const err = new Error('OBJECT_REQUIRED: Please check the processEnv argument being passed to populate')\n err.code = 'OBJECT_REQUIRED'\n throw err\n }\n\n // Set process.env\n for (const key of Object.keys(parsed)) {\n if (Object.prototype.hasOwnProperty.call(processEnv, key)) {\n if (override === true) {\n processEnv[key] = parsed[key]\n populated[key] = parsed[key]\n }\n\n if (debug) {\n if (override === true) {\n _debug(`\"${key}\" is already defined and WAS overwritten`)\n } else {\n _debug(`\"${key}\" is already defined and was NOT overwritten`)\n }\n }\n } else {\n processEnv[key] = parsed[key]\n populated[key] = parsed[key]\n }\n }\n\n return populated\n}\n\nconst DotenvModule = {\n configDotenv,\n _configVault,\n _parseVault,\n config,\n decrypt,\n parse,\n populate\n}\n\nmodule.exports.configDotenv = DotenvModule.configDotenv\nmodule.exports._configVault = DotenvModule._configVault\nmodule.exports._parseVault = DotenvModule._parseVault\nmodule.exports.config = DotenvModule.config\nmodule.exports.decrypt = DotenvModule.decrypt\nmodule.exports.parse = DotenvModule.parse\nmodule.exports.populate = DotenvModule.populate\n\nmodule.exports = DotenvModule\n","// ../config.js accepts options via environment variables\nconst options = {}\n\nif (process.env.DOTENV_CONFIG_ENCODING != null) {\n options.encoding = process.env.DOTENV_CONFIG_ENCODING\n}\n\nif (process.env.DOTENV_CONFIG_PATH != null) {\n options.path = process.env.DOTENV_CONFIG_PATH\n}\n\nif (process.env.DOTENV_CONFIG_QUIET != null) {\n options.quiet = process.env.DOTENV_CONFIG_QUIET\n}\n\nif (process.env.DOTENV_CONFIG_DEBUG != null) {\n options.debug = process.env.DOTENV_CONFIG_DEBUG\n}\n\nif (process.env.DOTENV_CONFIG_OVERRIDE != null) {\n options.override = process.env.DOTENV_CONFIG_OVERRIDE\n}\n\nif (process.env.DOTENV_CONFIG_DOTENV_KEY != null) {\n options.DOTENV_KEY = process.env.DOTENV_CONFIG_DOTENV_KEY\n}\n\nmodule.exports = options\n","const re = /^dotenv_config_(encoding|path|quiet|debug|override|DOTENV_KEY)=(.+)$/\n\nmodule.exports = function optionMatcher (args) {\n const options = args.reduce(function (acc, cur) {\n const matches = cur.match(re)\n if (matches) {\n acc[matches[1]] = matches[2]\n }\n return acc\n }, {})\n\n if (!('quiet' in options)) {\n options.quiet = 'true'\n }\n\n return options\n}\n","(function () {\n require('./lib/main').config(\n Object.assign(\n {},\n require('./lib/env-options'),\n require('./lib/cli-options')(process.argv)\n )\n )\n})()\n","import { GuildMember } from \"discord.js\";\nimport TriviousClient from \"src/core/client/trivious.client.js\";\n\n/**\n * User permission level enums\n *\n * @export\n * @enum {number}\n */\nexport enum PermissionLevel {\n\tUSER = 0,\n\tGUILD_STAFF = 1,\n\tGUILD_MODERATOR = 2,\n\tGUILD_ADMINISTRATOR = 3,\n\tGUILD_OWNER = 4,\n\tBOT_OWNER = 5,\n}\n\n/**\n * Get the permission level of a user.\n *\n * @param {GuildMember} member\n * @returns {*}\n */\nexport const getPermissionLevel = (client: TriviousClient, member: GuildMember) => {\n\tconst highestRole = member.roles.highest;\n\tif (member.user.id === member.guild.ownerId) return PermissionLevel.GUILD_OWNER;\n\n\tconst rolePermissions = client.rolePermissions;\n\treturn rolePermissions[highestRole.name] ?? PermissionLevel.USER;\n};\n","import { promises as fs, existsSync } from \"fs\";\nimport { join, resolve } from \"node:path\";\nimport { fileURLToPath } from \"url\";\nimport { dirname } from \"path\";\nimport { getPermissionLevel, PermissionLevel } from \"../typings/permissions.js\";\nimport { GuildMember, User } from \"discord.js\";\nimport TriviousClient from \"src/core/client/trivious.client.js\";\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = dirname(__filename);\n\n/**\n * Get the package root.\n *\n * @returns {string}\n */\nconst getPackageRoot = (): string => {\n\tlet dir = __dirname;\n\n\twhile (dir !== dirname(dir)) {\n\t\tif (existsSync(join(dir, \"package.json\")) || existsSync(join(dir, \"node_modules\"))) {\n\t\t\treturn dir;\n\t\t}\n\t\tdir = dirname(dir);\n\t}\n\treturn __dirname;\n};\n\n/**\n * Framework package root.\n *\n * @type {string}\n */\nexport const FRAMEWORK_PACKAGE_ROOT = getPackageRoot();\n\n/**\n * Get the core path.\n *\n * @export\n * @param {{ userPath?: string; coreDirectory: string }} options\n * @returns {string}\n */\nexport function getCorePath(options: { userPath?: string; coreDirectory: string }): string {\n\tconst { userPath, coreDirectory } = options;\n\tif (userPath) {\n\t\treturn resolveUserPath(userPath);\n\t}\n\n\tconst builtInCandidates = [\n\t\tjoin(FRAMEWORK_PACKAGE_ROOT, \"lib\", coreDirectory),\n\t\tjoin(FRAMEWORK_PACKAGE_ROOT, \"dist\", coreDirectory),\n\t];\n\n\tfor (const candidate of builtInCandidates) {\n\t\tif (existsSync(candidate)) {\n\t\t\treturn candidate;\n\t\t}\n\t}\n\n\treturn join(FRAMEWORK_PACKAGE_ROOT, \"lib\", coreDirectory);\n}\n\n/**\n * Resolve a user given core path.\n *\n * @export\n * @param {string} relativePath\n * @returns {string}\n */\nexport function resolveUserPath(relativePath: string): string {\n\tconst candidates = [\n\t\tjoin(process.cwd(), relativePath),\n\n\t\tjoin(process.cwd(), \"lib\", relativePath),\n\t\tjoin(process.cwd(), \"dist\", relativePath),\n\n\t\tjoin(FRAMEWORK_PACKAGE_ROOT, relativePath),\n\t\tjoin(FRAMEWORK_PACKAGE_ROOT, \"lib\", relativePath),\n\t\tjoin(FRAMEWORK_PACKAGE_ROOT, \"dist\", relativePath),\n\t];\n\n\tfor (const candidate of candidates) {\n\t\tconst full = resolve(candidate);\n\t\tif (existsSync(full)) return full;\n\t}\n\n\treturn join(process.cwd(), relativePath);\n}\n\n/**\n * Whether a directory or file exists.\n *\n * @export\n * @async\n * @param {string} path\n * @returns {unknown}\n */\nexport async function exists(path: string) {\n\ttry {\n\t\tawait fs.access(path);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\n/**\n * Whether a user/member has permission.\n *\n * @export\n * @param {{\n * \tpermission: PermissionLevel;\n * \tuser?: User;\n * \tmember?: GuildMember;\n * }} options\n * @returns {boolean}\n */\nexport function hasPermission(\n\tclient: TriviousClient,\n\toptions: {\n\t\tpermission: PermissionLevel;\n\t\tuser?: User;\n\t\tmember?: GuildMember;\n\t}\n) {\n\tconst { permission, user, member } = options;\n\n\tif (user) {\n\t\tif (permission === PermissionLevel.BOT_OWNER) return user.id === \"424764032667484171\";\n\t\treturn true;\n\t}\n\n\tif (member) {\n\t\tconst memberPermission = getPermissionLevel(client, member);\n\t\treturn memberPermission >= permission;\n\t}\n\n\treturn false;\n}\n","import { Collection } from \"discord.js\";\nimport { pathToFileURL } from \"url\";\n\n/**\n * Base registry for loading, getting and binding core events and functions.\n *\n * @export\n * @abstract\n * @class BaseRegistry\n * @typedef {BaseRegistry}\n * @template T\n */\nexport abstract class BaseRegistry<T> {\n\tprotected abstract items: Collection<string, T>;\n\t/**\n\t * Load all of T\n\t *\n\t * @protected\n\t * @abstract\n\t * @param {string} directory\n\t * @returns {Promise<this>}\n\t */\n\tprotected abstract load(directory: string): Promise<this>;\n\n\t/**\n\t * Get all of loaded T\n\t *\n\t * @returns {Collection<string, T>}\n\t */\n\tget() {\n\t\treturn this.items;\n\t}\n\n\t/**\n\t * Import a file from a path to be loaded.\n\t *\n\t * @protected\n\t * @async\n\t * @template T\n\t * @param {string} filePath\n\t * @returns {Promise<T | null>}\n\t */\n\tprotected async importFile<T>(filePath: string): Promise<T | null> {\n\t\ttry {\n\t\t\tconst { default: file } = await import(pathToFileURL(filePath).href);\n\t\t\tconst imports = file.default ?? file;\n\n\t\t\tif (!imports) return null;\n\n\t\t\tif (typeof imports === \"function\" && imports.prototype) {\n\t\t\t\treturn new imports();\n\t\t\t}\n\n\t\t\tif (typeof imports === \"object\") {\n\t\t\t\tif (Object.keys(imports).length === 0) return null;\n\t\t\t\treturn imports as T;\n\t\t\t}\n\n\t\t\tconsole.error(`Invalid export in ${filePath}: expected class or object`);\n\t\t\treturn null;\n\t\t} catch (error: any) {\n\t\t\tconsole.error(\"Failed to import:\", filePath, error);\n\t\t\treturn null;\n\t\t}\n\t}\n\n\t/**\n\t * Clear file path cache.\n\t * Does not run in production environment.\n\t *\n\t * @protected\n\t * @async\n\t * @param {string} filePath\n\t * @returns {*}\n\t */\n\tprotected async clearCache(filePath: string) {\n\t\tif (process.env.NODE_ENV === \"production\") return;\n\t\ttry {\n\t\t\tconst resvoled = require.resolve(filePath);\n\t\t\tdelete require.cache[resvoled];\n\t\t} catch {}\n\t}\n}\n","import {\n\tAnySelectMenuInteraction,\n\tButtonInteraction,\n\tCacheType,\n\tModalSubmitInteraction,\n} from \"discord.js\";\nimport { PermissionLevel } from \"./permissions.js\";\n\n/**\n * Tags for component customIds.\n *\n * @export\n * @typedef {ComponentCustomIdTag}\n */\nexport type ComponentCustomIdTag = \"awaited\";\n/**\n * Interaction types for components.\n *\n * @export\n * @typedef {ComponentInteraction}\n */\nexport type ComponentInteraction =\n\t| AnySelectMenuInteraction<CacheType>\n\t| ButtonInteraction<CacheType>\n\t| ModalSubmitInteraction<CacheType>;\n/**\n * What type of component is the componenty.\n *\n * @export\n * @enum {number}\n */\nexport enum ComponentType {\n\tButton = \"button\",\n\tSelectMenu = \"select\",\n\tModal = \"modal\",\n}\n\n/**\n * Metadata for Components.\n *\n * @export\n * @interface ComponentMetadata\n * @typedef {ComponentMetadata}\n */\nexport interface ComponentMetadata {\n\t/**\n\t * The customId of the component.\n\t *\n\t * @type {string}\n\t */\n\tcustomId: string;\n\t/**\n\t * The permission level required to use the component.\n\t *\n\t * @type {PermissionLevel}\n\t */\n\tpermission: PermissionLevel;\n\t/**\n\t * Whether the interaction reply is ephemeral.\n\t *\n\t * @type {boolean}\n\t */\n\tephemeralReply: boolean;\n}\n\n/**\n * Deconstruct a component customId into its parts.\n *\n * @param {string} customId\n * @returns {{ componentType: ComponentType; data: string; tags: {}; }}\n */\nexport const deconstructCustomId = (customId: string) => {\n\tconst [componentType, dataTags] = customId.split(\":\") as [ComponentType, string];\n\tconst [data, ...tags] = dataTags.split(\".\") as [string, ...ComponentCustomIdTag[]];\n\n\treturn {\n\t\tcomponentType,\n\t\tdata,\n\t\ttags,\n\t};\n};\n","import { Collection, SlashCommandSubcommandBuilder } from \"discord.js\";\nimport { exists, getCorePath } from \"src/shared/utility/functions.js\";\nimport { AnyCommand, BaseRegistry } from \"src/shared/typings/index.js\";\nimport { promises as fs } from \"fs\";\nimport { join } from \"node:path\";\n\nimport Subcommand from \"../commands/subcommand.base.js\";\n\n/**\n * Registry to load and get all commands.\n *\n * @export\n * @class CommandRegistry\n * @typedef {CommandRegistry}\n * @extends {BaseRegistry<AnyCommand>}\n */\nexport default class CommandRegistry extends BaseRegistry<AnyCommand> {\n\tprotected items = new Collection<string, AnyCommand>();\n\n\t/**\n\t * Load all commands and their subcommands\n\t *\n\t * @async\n\t * @param {string} [directory=getCorePath({ coreDirectory: \"commands\" })]\n\t * @returns {unknown}\n\t */\n\tasync load(directory: string = getCorePath({ coreDirectory: \"commands\" })) {\n\t\tif (!(await exists(directory))) {\n\t\t\treturn this;\n\t\t}\n\n\t\tconst entries = await fs.readdir(directory, { withFileTypes: true });\n\n\t\tfor (const entry of entries) {\n\t\t\tconst fullPath = join(directory, entry.name);\n\t\t\tif (!entry.isDirectory()) continue;\n\n\t\t\tconst indexFile = join(fullPath, \"index.ts\");\n\t\t\tconst indexJs = join(fullPath, \"index.js\");\n\n\t\t\tlet commandFile = \"\";\n\t\t\tif (await exists(indexFile)) commandFile = indexFile;\n\t\t\telse if (await exists(indexJs)) commandFile = indexJs;\n\t\t\telse continue;\n\n\t\t\tconst command = await this.importFile<AnyCommand>(commandFile);\n\t\t\tif (!command) continue;\n\t\t\tif (!command.metadata.active) continue;\n\n\t\t\tif (command.isSlashCommand()) {\n\t\t\t\tconst subcommandFiles = (await fs.readdir(fullPath)).filter(\n\t\t\t\t\tfile =>\n\t\t\t\t\t\t(file.endsWith(\".ts\") || file.endsWith(\".js\")) &&\n\t\t\t\t\t\t!file.startsWith(\"index.\") &&\n\t\t\t\t\t\t!file.endsWith(\".d.ts\")\n\t\t\t\t);\n\n\t\t\t\tfor (const file of subcommandFiles) {\n\t\t\t\t\tconst subcommand = await this.importFile<Subcommand>(join(fullPath, file));\n\t\t\t\t\tif (!subcommand) continue;\n\t\t\t\t\tif (!subcommand.data.name || !(subcommand.data instanceof SlashCommandSubcommandBuilder))\n\t\t\t\t\t\tcontinue;\n\n\t\t\t\t\tcommand.data.addSubcommand(subcommand.data);\n\t\t\t\t\tcommand.metadata.subcommands.set(subcommand.data.name, subcommand);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.items.set(command.data.name, command);\n\t\t}\n\n\t\treturn this;\n\t}\n}\n","import { Collection } from \"discord.js\";\nimport { exists, getCorePath } from \"src/shared/utility/functions.js\";\nimport { BaseRegistry, deconstructCustomId } from \"src/shared/typings/index.js\";\nimport { promises as fs } from \"fs\";\nimport { join } from \"node:path\";\nimport Component from \"../components/component.base.js\";\n\n/**\n * Registry to load and get all components.\n *\n * @export\n * @class ComponentRegistry\n * @typedef {ComponentRegistry}\n * @extends {BaseRegistry<Component>}\n */\nexport default class ComponentRegistry extends BaseRegistry<Component> {\n\tprotected items = new Collection<string, Component>();\n\n\t/**\n\t * Load all components.\n\t *\n\t * @async\n\t * @param {string} [directory=getCorePath({ coreDirectory: \"components\" })]\n\t * @returns {Promise<this>}\n\t */\n\tasync load(directory: string = getCorePath({ coreDirectory: \"components\" })): Promise<this> {\n\t\tif (!(await exists(directory))) {\n\t\t\treturn this;\n\t\t}\n\n\t\tconst entries = await fs.readdir(directory, { withFileTypes: true });\n\n\t\tfor (const entry of entries) {\n\t\t\tconst fullPath = join(directory, entry.name);\n\t\t\tif (!entry.isDirectory()) continue;\n\n\t\t\tconst componentFiles = (await fs.readdir(fullPath)).filter(\n\t\t\t\tfile =>\n\t\t\t\t\t(file.endsWith(\".ts\") || file.endsWith(\".js\")) &&\n\t\t\t\t\t!file.startsWith(\"index.\") &&\n\t\t\t\t\t!file.endsWith(\".d.ts\")\n\t\t\t);\n\n\t\t\tfor (const file of componentFiles) {\n\t\t\t\tconst component = await this.importFile<Component>(join(fullPath, file));\n\t\t\t\tif (!component) continue;\n\n\t\t\t\tconst { data } = deconstructCustomId(component.metadata.customId);\n\t\t\t\tthis.items.set(data, component);\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n}\n","import { ButtonInteraction, ModalSubmitInteraction } from \"discord.js\";\nimport { ComponentType, deconstructCustomId } from \"src/shared/typings/components.js\";\nimport { Event } from \"src/shared/typings/events.js\";\nimport Command from \"../commands/command.base.js\";\n\nexport default {\n\tname: \"interactionCreate\",\n\texecute: async (client, interaction) => {\n\t\tif (interaction.isChatInputCommand() || interaction.isContextMenuCommand()) {\n\t\t\tconst { commandName } = interaction;\n\n\t\t\tconst registeredCommands = client.registries.commands.get();\n\t\t\tconst command = registeredCommands.get(commandName);\n\t\t\tif (!command) {\n\t\t\t\tawait interaction.reply({\n\t\t\t\t\tcontent: `Command is outdated, inactive or does not have a handler!`,\n\t\t\t\t\tflags: [\"Ephemeral\"],\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst requiredPermission = command.metadata.permission;\n\t\t\tconst hasPermission = await command.validateGuildPermission(\n\t\t\t\tclient,\n\t\t\t\tinteraction,\n\t\t\t\trequiredPermission\n\t\t\t);\n\t\t\tif (!hasPermission) return;\n\n\t\t\tif (!(\"execute\" in command)) {\n\t\t\t\tawait (command as Command).reply(interaction, { content: \"Command does not have a way to execute! Ensure the command is a SlashCommand or ContextMenuCommand!\" });\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tawait command.reply(interaction, { content: \"Processing command...\" });\n\n\t\t\tif (interaction.isChatInputCommand() && command.isSlashCommand()) {\n\t\t\t\tawait command.execute(client, interaction);\n\t\t\t} else if (interaction.isContextMenuCommand() && command.isContextMenuCommand()) {\n\t\t\t\tawait command.execute(client, interaction);\n\t\t\t}\n\t\t} else if (interaction.isMessageComponent() || interaction.isModalSubmit()) {\n\t\t\tconst { componentType, tags, data } = deconstructCustomId(interaction.customId);\n\n\t\t\tif (componentType === ComponentType.Button && !(interaction instanceof ButtonInteraction))\n\t\t\t\treturn;\n\t\t\tif (componentType === ComponentType.Modal && !(interaction instanceof ModalSubmitInteraction))\n\t\t\t\treturn;\n\n\t\t\tif (tags.includes(\"awaited\")) return;\n\n\t\t\tconst registeredComponents = client.registries.components.get();\n\t\t\tconst component = registeredComponents.get(data);\n\t\t\tif (!component) {\n\t\t\t\tawait interaction.reply({\n\t\t\t\t\tcontent: `Command is outdated, inactive or does not have a handler!`,\n\t\t\t\t\tflags: [\"Ephemeral\"],\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst requiredPermission = component.metadata.permission;\n\t\t\tconst hasPermission = await component.validateGuildPermission(\n\t\t\t\tclient,\n\t\t\t\tinteraction,\n\t\t\t\trequiredPermission\n\t\t\t);\n\t\t\tif (!hasPermission) return;\n\n\t\t\tif (!interaction.isModalSubmit()) await interaction.deferUpdate();\n\t\t\tawait component.execute(client, interaction);\n\t\t}\n\t},\n} satisfies Event<\"interactionCreate\">;\n","import { ClientEvents, Collection } from \"discord.js\";\nimport { exists, getCorePath } from \"src/shared/utility/functions.js\";\nimport { BaseRegistry, Event } from \"src/shared/typings/index.js\";\nimport { promises as fs } from \"fs\";\nimport { join } from \"node:path\";\nimport TriviousClient from \"../client/trivious.client.js\";\nimport interactionCreate from \"../events/interactionCreate.js\";\n\n/**\n * Registry to load, get and bind events.\n *\n * @export\n * @class EventRegistry\n * @typedef {EventRegistry}\n * @extends {BaseRegistry<Event>}\n */\nexport default class EventRegistry extends BaseRegistry<Event> {\n\tprotected items = new Collection<string, Event>();\n\n\t/**\n\t * Load all events.\n\t *\n\t * @async\n\t * @param {string} [directory=getCorePath({ coreDirectory: \"events\" })]\n\t * @returns {Promise<this>}\n\t */\n\tasync load(directory: string = getCorePath({ coreDirectory: \"events\" })): Promise<this> {\n\t\tif (!(await exists(directory))) return this;\n\n\t\tconst entries = await fs.readdir(directory, { withFileTypes: true });\n\t\tfor (const entry of entries) {\n\t\t\tconst fullPath = join(directory, entry.name);\n\n\t\t\tif (entry.isDirectory()) {\n\t\t\t\tawait this.load(fullPath);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (entry.isFile() && entry.name.endsWith(\".js\")) {\n\t\t\t\tconst event = await this.importFile<Event>(fullPath);\n\t\t\t\tif (!event) continue;\n\n\t\t\t\tthis.items.set(event.name, event);\n\t\t\t}\n\t\t}\n\n\t\tthis.items.set(interactionCreate.name, interactionCreate as Event);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Bind loaded events to their client events respectively.\n\t *\n\t * @param {TriviousClient} client\n\t */\n\tbind(client: TriviousClient) {\n\t\tfor (const event of this.items.values()) {\n\t\t\tconst handler = (...args: ClientEvents[typeof event.name]) =>\n\t\t\t\tvoid event.execute(client, ...args);\n\n\t\t\tif (event.once) client.once(event.name, handler);\n\t\t\telse client.on(event.name, handler);\n\t\t}\n\t}\n}\n","import { Collection } from \"discord.js\";\nimport { exists, getCorePath } from \"src/shared/utility/functions.js\";\nimport { BaseRegistry, Module } from \"src/shared/typings/index.js\";\nimport { promises as fs } from \"fs\";\nimport { join } from \"node:path\";\nimport TriviousClient from \"../client/trivious.client.js\";\n\n/**\n * Registry to load, get and bind modules.\n *\n * @export\n * @class ModuleRegistry\n * @typedef {ModuleRegistry}\n * @extends {BaseRegistry<Module>}\n */\nexport default class ModuleRegistry extends BaseRegistry<Module> {\n\tprotected items = new Collection<string, Module>();\n\n\t/**\n\t * Load all modules.\n\t *\n\t * @async\n\t * @param {string} [directory=getCorePath({ coreDirectory: \"module\" })]\n\t * @returns {Promise<this>}\n\t */\n\tasync load(directory: string = getCorePath({ coreDirectory: \"module\" })): Promise<this> {\n\t\tif (!(await exists(directory))) {\n\t\t\treturn this;\n\t\t}\n\n\t\tconst entries = await fs.readdir(directory, { withFileTypes: true });\n\n\t\tfor (const entry of entries) {\n\t\t\tconst fullPath = join(directory, entry.name);\n\t\t\tif (!entry.isDirectory()) continue;\n\n\t\t\tconst moduleFiles = (await fs.readdir(fullPath)).filter(\n\t\t\t\tfile =>\n\t\t\t\t\t(file.endsWith(\".ts\") || file.endsWith(\".js\")) &&\n\t\t\t\t\t!file.startsWith(\"index.\") &&\n\t\t\t\t\t!file.endsWith(\".d.ts\")\n\t\t\t);\n\n\t\t\tfor (const file of moduleFiles) {\n\t\t\t\tconst moduleEvent = await this.importFile<Module>(join(fullPath, file));\n\t\t\t\tif (!moduleEvent || !moduleEvent.events) continue;\n\n\t\t\t\tthis.items.set(moduleEvent.name, moduleEvent);\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Bind all loaded modules to their client event respectively.\n\t *\n\t * @param {TriviousClient} client\n\t */\n\tbind(client: TriviousClient) {\n\t\tfor (const mod of this.items.values()) {\n\t\t\tfor (const [eventName, handler] of Object.entries(mod.events!)) {\n\t\t\t\tif (typeof handler !== \"function\") continue;\n\n\t\t\t\tconst listener = (...args: unknown[]) => {\n\t\t\t\t\tvoid (handler as (client: TriviousClient, ...args: unknown[]) => any)(client, ...args);\n\t\t\t\t};\n\n\t\t\t\t(client.on as any)(eventName, listener);\n\t\t\t}\n\t\t}\n\t}\n}\n","import { TriviousClientOptions } from \"src/shared/typings/client.js\";\nimport { resolveUserPath } from \"src/shared/utility/functions.js\";\nimport TriviousClient from \"../client/trivious.client.js\";\nimport CommandRegistry from \"./command.registry.js\";\nimport ComponentRegistry from \"./component.registry.js\";\nimport EventRegistry from \"./event.registry.js\";\nimport ModuleRegistry from \"./module.registry.js\";\nimport path from \"node:path\";\n\n/**\n * Create new registries.\n *\n * @returns {{ commands: CommandRegistry; components: ComponentRegistry; events: EventRegistry; modules: any; loadAll(options: TriviousClientOptions): any; bind(client: TriviousClient): void; }}\n */\nexport const registries = () => ({\n\tcommands: new CommandRegistry(),\n\tcomponents: new ComponentRegistry(),\n\tevents: new EventRegistry(),\n\tmodules: new ModuleRegistry(),\n\n\tasync loadAll(options: TriviousClientOptions) {\n\t\tconst corePaths = options.corePaths;\n\t\tconst corePath = options.corePath;\n\n\t\tawait Promise.all([\n\t\t\tthis.commands.load(\n\t\t\t\tcorePath\n\t\t\t\t\t? resolveUserPath(path.join(corePath, \"commands\"))\n\t\t\t\t\t: corePaths?.commandsPath\n\t\t\t\t\t\t? resolveUserPath(corePaths.commandsPath)\n\t\t\t\t\t\t: undefined\n\t\t\t),\n\t\t\tthis.components.load(\n\t\t\t\tcorePath\n\t\t\t\t\t? resolveUserPath(path.join(corePath, \"components\"))\n\t\t\t\t\t: corePaths?.componentsPath\n\t\t\t\t\t\t? resolveUserPath(corePaths.componentsPath)\n\t\t\t\t\t\t: undefined\n\t\t\t),\n\t\t\tthis.events.load(\n\t\t\t\tcorePath\n\t\t\t\t\t? resolveUserPath(path.join(corePath, \"events\"))\n\t\t\t\t\t: corePaths?.eventsPath\n\t\t\t\t\t\t? resolveUserPath(corePaths.eventsPath)\n\t\t\t\t\t\t: undefined\n\t\t\t),\n\t\t\tthis.modules.load(\n\t\t\t\tcorePath\n\t\t\t\t\t? resolveUserPath(path.join(corePath, \"modules\"))\n\t\t\t\t\t: corePaths?.modulesPath\n\t\t\t\t\t\t? resolveUserPath(corePaths.modulesPath)\n\t\t\t\t\t\t: undefined\n\t\t\t),\n\t\t]);\n\t},\n\n\tbind(client: TriviousClient) {\n\t\tthis.events.bind(client);\n\t\tthis.modules.bind(client);\n\t},\n});\n","import { Client, REST, Routes } from \"discord.js\";\nimport { TriviousClientOptions } from \"src/shared/typings/client.js\";\nimport { registries } from \"../registry/index.js\";\nimport { PermissionLevel } from \"src/shared/typings/permissions.js\";\n\n/**\n * Trivious base client.\n *\n * @export\n * @class TriviousClient\n * @typedef {TriviousClient}\n * @extends {Client}\n */\nexport default class TriviousClient extends Client {\n\t/**\n\t * Client registries.\n\t *\n\t * @public\n\t * @readonly\n\t * @type {*}\n\t */\n\tpublic readonly registries = registries();\n\t/**\n\t * Client copy of the constructor options.\n\t *\n\t * @private\n\t * @type {TriviousClientOptions}\n\t */\n\tprivate _options: TriviousClientOptions;\n\n\t/**\n\t * Creates an instance of TriviousClient.\n\t *\n\t * @constructor\n\t * @param {TriviousClientOptions} options\n\t */\n\tconstructor(options: TriviousClientOptions) {\n\t\tsuper(options);\n\t\tthis._options = options;\n\t}\n\n\t/**\n\t * Load all registries.\n\t *\n\t * @async\n\t * @returns {*}\n\t */\n\tasync register() {\n\t\tconst { registries } = this;\n\t\tawait registries.loadAll(this._options);\n\t\tconsole.log(\n\t\t\t`[Trivious] Loaded all registries (${registries.commands.get().size} commands, ${registries.events.get().size} events, ${registries.components.get().size} components, ${registries.modules.get().size} modules)`\n\t\t);\n\t}\n\n\t/**\n\t * Login and start the bot.\n\t *\n\t * @async\n\t * @returns {*}\n\t */\n\tasync start() {\n\t\tif (!process.env[this._options.tokenReference]) {\n\t\t\tif (process.env.NODE_ENV !== \"production\") return;\n\t\t\telse throw new Error(\"[Trivious] Invalid token reference\");\n\t\t}\n\n\t\tthis.registries.bind(this);\n\t\tawait this.login(process.env[this._options.tokenReference]);\n\t}\n\n\t/**\n\t * Deploy all commands.\n\t *\n\t * @async\n\t * @returns {*}\n\t */\n\tasync deploy() {\n\t\tconst clientId = process.env[this._options.clientIdReference];\n\t\tconst token = process.env[this._options.tokenReference];\n\t\tif (!clientId || !token) throw new Error(\"[Trivious] Invalid clientId or token reference\");\n\n\t\tconst slashCommands = Array.from(this.registries.commands.get().values());\n\t\tconst body = [...slashCommands.map(command => command.toJSON())];\n\n\t\tconst rest = new REST({ version: \"10\" }).setToken(token);\n\t\tawait rest.put(Routes.applicationCommands(clientId), { body });\n\t\tconsole.log(`[Trivious] Deployed ${body.length} commands`);\n\t}\n\n\t/**\n\t * Set the roles tied to a permission level.\n\t *\n\t * @param {Record<string, PermissionLevel>} roles\n\t */\n\tsetRolePermissions(roles: Record<string, PermissionLevel>) {\n\t\tthis._options.rolePermissions = roles;\n\t}\n\n\tget rolePermissions() {\n\t\treturn this._options.rolePermissions ?? {};\n\t}\n}\n","import { ContextMenuCommandBuilder } from \"discord.js\";\nimport { ContextMenuMetadata } from \"src/shared/typings/commands.js\";\nimport { ContextMenuCommandInteraction, PermissionLevel } from \"src/index.js\";\nimport TriviousClient from \"../client/trivious.client.js\";\nimport Command from \"./command.base.js\";\n\n/**\n * Base ContextMenuCommand.\n *\n * @export\n * @abstract\n * @class ContextMenuCommand\n * @typedef {ContextMenuCommand}\n * @extends {Command}\n */\nexport default abstract class ContextMenuCommand extends Command {\n\tabstract data: ContextMenuCommandBuilder;\n\tabstract metadata: ContextMenuMetadata;\n\t/**\n\t * Function to run when the command is used.\n\t *\n\t * @abstract\n\t * @type {(\n\t * \t\tclient: TriviousClient,\n\t * \t\tinteraction: ContextMenuCommandInteraction\n\t * \t) => Promise<void>}\n\t */\n\tabstract run: (\n\t\tclient: TriviousClient,\n\t\tinteraction: ContextMenuCommandInteraction\n\t) => Promise<void>;\n\n\t/**\n\t * Base command handler.\n\t *\n\t * @public\n\t * @async\n\t * @param {TriviousClient} client\n\t * @param {ContextMenuCommandInteraction} interaction\n\t * @returns {*}\n\t */\n\tpublic async execute(client: TriviousClient, interaction: ContextMenuCommandInteraction) {\n\t\tconst { run, metadata } = this;\n\n\t\tconst memberHasPermission = await this.validateGuildPermission(\n\t\t\tclient,\n\t\t\tinteraction,\n\t\t\tmetadata.permission,\n\t\t\tfalse\n\t\t);\n\t\tif (memberHasPermission) await run(client, interaction);\n\t}\n}\n\n/**\n * Base ContextMenuBuilder.\n *\n * @export\n * @class ContextMenuBuilder\n * @typedef {ContextMenuBuilder}\n * @extends {ContextMenuCommandBuilder}\n */\nexport class ContextMenuBuilder extends ContextMenuCommandBuilder {\n\tprivate _active = true;\n\tprivate _ownerOnly = false;\n\tprivate _permission = PermissionLevel.USER;\n\tprivate _ephemeralReply = false;\n\n\t/**\n\t * Set the command as disabled.\n\t *\n\t * @public\n\t * @returns {this}\n\t */\n\tpublic disable(): this {\n\t\tthis._active = false;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Set the command as owner only.\n\t *\n\t * @public\n\t * @returns {this}\n\t */\n\tpublic setOwnerOnly(): this {\n\t\tthis._permission = PermissionLevel.BOT_OWNER;\n\t\tthis._ownerOnly = true;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Set the permission level required to run the command.\n\t *\n\t * @public\n\t * @param {PermissionLevel} permission\n\t * @returns {this}\n\t */\n\tpublic setPermission(permission: PermissionLevel): this {\n\t\tthis._permission = permission;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Set the interaction as ephemeral.\n\t *\n\t * @public\n\t * @returns {this}\n\t */\n\tpublic setEphemeralReply(): this {\n\t\tthis._ephemeralReply = true;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Build the builder\n\t *\n\t * @public\n\t * @returns {{ data: ContextMenuBuilder; metadata: ContextMenuMetadata; }}\n\t */\n\tpublic build() {\n\t\treturn {\n\t\t\tdata: this as ContextMenuBuilder,\n\t\t\tmetadata: {\n\t\t\t\tactive: this._active,\n\t\t\t\townerOnly: this._ownerOnly,\n\t\t\t\tpermission: this._permission,\n\t\t\t\tephemeralReply: this._ephemeralReply,\n\t\t\t} satisfies ContextMenuMetadata,\n\t\t};\n\t}\n}\n","import {\n\tCollection,\n\tContextMenuCommandBuilder,\n\tGuildMember,\n\tInteractionContextType,\n\tInteractionEditReplyOptions,\n\tInteractionReplyOptions,\n\tMessagePayload,\n\tSlashCommandBuilder,\n} from \"discord.js\";\nimport {\n\tCommandInteraction,\n\tCommandMetadata,\n\tContextMenuMetadata,\n\tPermissionLevel,\n} from \"src/shared/typings/index.js\";\nimport { ChatInputCommandInteraction } from \"src/index.js\";\nimport { hasPermission } from \"src/shared/utility/functions.js\";\nimport ContextMenuCommand from \"./contextcommand.base.js\";\nimport TriviousClient from \"../client/trivious.client.js\";\nimport Subcommand from \"./subcommand.base.js\";\n\n/**\n * Base class for a Command.\n *\n * @export\n * @abstract\n * @class Command\n * @typedef {Command}\n */\nexport default abstract class Command {\n\tabstract data: SlashCommandBuilder | ContextMenuCommandBuilder;\n\tabstract metadata: CommandMetadata | ContextMenuMetadata;\n\n\t/**\n\t * Returns whether the command is a SlashCommand.\n\t *\n\t * @public\n\t * @param {Command} this\n\t * @returns {this is SlashCommand}\n\t */\n\tpublic isSlashCommand(this: Command): this is SlashCommand {\n\t\treturn this.data instanceof SlashCommandBuilder && this instanceof SlashCommand;\n\t}\n\n\t/**\n\t * Returns whether the command is a ContextMenuCommand.\n\t *\n\t * @public\n\t * @param {Command} this\n\t * @returns {this is ContextMenuCommand}\n\t */\n\tpublic isContextMenuCommand(this: Command): this is ContextMenuCommand {\n\t\treturn this.data instanceof ContextMenuCommandBuilder && this instanceof ContextMenuCommand;\n\t}\n\n\t/**\n\t * Returns JSON of the command builder.\n\t *\n\t * @public\n\t * @returns {*}\n\t */\n\tpublic toJSON() {\n\t\treturn this.data.toJSON();\n\t}\n\n\t/**\n\t * Reply to the interaction respecting command metadata and if the interaction has already been replied to.\n\t *\n\t * @public\n\t * @async\n\t * @param {CommandInteraction} interaction\n\t * @param {(MessagePayload | InteractionEditReplyOptions | InteractionReplyOptions)} options\n\t * @returns {*}\n\t */\n\tpublic async reply(\n\t\tinteraction: CommandInteraction,\n\t\toptions: MessagePayload | InteractionEditReplyOptions | InteractionReplyOptions\n\t) {\n\t\tif (interaction.replied) {\n\t\t\tawait interaction.editReply(options as InteractionEditReplyOptions);\n\t\t\treturn;\n\t\t}\n\n\t\tconst newOptions = { ...options } as InteractionReplyOptions;\n\t\tif (this.metadata.ephemeralReply) newOptions.flags = [\"Ephemeral\"];\n\n\t\tawait interaction.reply(newOptions);\n\t}\n\n\t/**\n\t * Validate permissions for a user/member in a guild.\n\t *\n\t * @async\n\t * @param {CommandInteraction} interaction\n\t * @param {PermissionLevel} permission\n\t * @param {boolean} [doReply=true]\n\t * @returns {unknown}\n\t */\n\tasync validateGuildPermission(\n\t\tclient: TriviousClient,\n\t\tinteraction: CommandInteraction,\n\t\tpermission: PermissionLevel,\n\t\tdoReply: boolean = true\n\t) {\n\t\tconst isContextMenu = interaction.isContextMenuCommand();\n\t\tconst isChatInput = interaction.isChatInputCommand();\n\n\t\tconst requiresGuildCheck =\n\t\t\tisContextMenu || (isChatInput && (this.isSlashCommand() ? this.metadata.guildOnly : false));\n\t\tif (!requiresGuildCheck) return true;\n\n\t\tconst member = interaction.member as GuildMember;\n\t\tconst memberHasPermission = hasPermission(client, { permission, member });\n\n\t\tif (!memberHasPermission && doReply) {\n\t\t\tawait this.reply(interaction, {\n\t\t\t\tcontent: `You do not have permission to run this command, required permission: \\`${PermissionLevel[permission]}\\``,\n\t\t\t});\n\t\t}\n\n\t\treturn memberHasPermission;\n\t}\n}\n\n/**\n * Base SlashCommand.\n *\n * @export\n * @abstract\n * @class SlashCommand\n * @typedef {SlashCommand}\n * @extends {Command}\n */\nexport abstract class SlashCommand extends Command {\n\tabstract data: SlashCommandBuilder;\n\tabstract metadata: CommandMetadata;\n\t/**\n\t * Optional function to run if the SlashCommand has no subcommands or for extra fuctionality.\n\t *\n\t * @abstract\n\t * @type {?(\n\t * \t\tclient: TriviousClient,\n\t * \t\tinteraction: ChatInputCommandInteraction\n\t * \t) => Promise<void>}\n\t */\n\trun?: (\n\t\tclient: TriviousClient,\n\t\tinteraction: ChatInputCommandInteraction\n\t) => Promise<void>;\n\n\t/**\n\t * General handler for the command and its subcommand, if applicable.\n\t *\n\t * @public\n\t * @async\n\t * @param {TriviousClient} client\n\t * @param {ChatInputCommandInteraction} interaction\n\t * @returns {*}\n\t */\n\tpublic async execute(client: TriviousClient, interaction: ChatInputCommandInteraction) {\n\t\tconst { run, reply, metadata } = this;\n\t\tconst { options } = interaction;\n\n\t\tif (run) {\n\t\t\tconst memberHasPermission = await this.validateGuildPermission(\n\t\t\t\tclient,\n\t\t\t\tinteraction,\n\t\t\t\tmetadata.permission,\n\t\t\t\tfalse\n\t\t\t);\n\t\t\tif (memberHasPermission) await run(client, interaction);\n\t\t}\n\n\t\tconst subcommands = metadata.subcommands;\n\t\tif (subcommands.size <= 0) return;\n\n\t\tconst subcommand = metadata.subcommands.find(\n\t\t\tsubcmd => subcmd.data.name === options.getSubcommand()\n\t\t);\n\t\tif (!subcommand) {\n\t\t\tawait reply(interaction, {\n\t\t\t\tcontent: \"Ran subcommand is outdated or does not have a handler!\",\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tconst memberHasPermission = await this.validateGuildPermission(\n\t\t\tclient,\n\t\t\tinteraction,\n\t\t\tsubcommand.metadata.permission\n\t\t);\n\t\tif (!memberHasPermission) return;\n\n\t\tawait subcommand.execute(client, interaction);\n\t}\n}\n\n/**\n * Base CommandBuilder.\n *\n * @export\n * @class CommandBuilder\n * @typedef {CommandBuilder}\n * @extends {SlashCommandBuilder}\n */\nexport class CommandBuilder extends SlashCommandBuilder {\n\tprivate _active = true;\n\tprivate _guildOnly = false;\n\tprivate _ownerOnly = false;\n\tprivate _permission = PermissionLevel.USER;\n\tprivate _subcommands = new Collection<string, Subcommand>();\n\tprivate _ephemeralReply = false;\n\n\t/**\n\t * Set the command as disabled.\n\t *\n\t * @public\n\t * @returns {this}\n\t */\n\tpublic disable(): this {\n\t\tthis._active = false;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Set the command as guild only.\n\t *\n\t * @public\n\t * @returns {this}\n\t */\n\tpublic setGuildOnly(): this {\n\t\tthis._guildOnly = true;\n\t\tthis._permission = PermissionLevel.USER;\n\t\tthis.setContexts(InteractionContextType.Guild);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Set the command as public only.\n\t *\n\t * @public\n\t * @returns {this}\n\t */\n\tpublic setOwnerOnly(): this {\n\t\tthis._permission = PermissionLevel.BOT_OWNER;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Set the permission level required to run the command.\n\t *\n\t * @public\n\t * @param {PermissionLevel} permission\n\t * @returns {this}\n\t */\n\tpublic setPermission(permission: PermissionLevel): this {\n\t\tif (!this._guildOnly) return this;\n\n\t\tthis._permission = permission;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Set the interaction as ephemeral.\n\t *\n\t * @public\n\t * @returns {this}\n\t */\n\tpublic setEphemeralReply(): this {\n\t\tthis._ephemeralReply = true;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Build the builder.\n\t *\n\t * @public\n\t * @returns {{ data: CommandBuilder; metadata: CommandMetadata; }}\n\t */\n\tpublic build() {\n\t\treturn {\n\t\t\tdata: this as CommandBuilder,\n\t\t\tmetadata: {\n\t\t\t\tactive: this._active,\n\t\t\t\tguildOnly: this._guildOnly,\n\t\t\t\townerOnly: this._ownerOnly,\n\t\t\t\tpermission: this._permission,\n\t\t\t\tsubcommands: this._subcommands,\n\t\t\t\tephemeralReply: this._ephemeralReply,\n\t\t\t} satisfies CommandMetadata,\n\t\t};\n\t}\n}\n","import {\n\tCacheType,\n\tChatInputCommandInteraction,\n\tInteractionEditReplyOptions,\n\tInteractionReplyOptions,\n\tMessagePayload,\n\tSlashCommandSubcommandBuilder,\n} from \"discord.js\";\nimport { PermissionLevel, SubcommandMetadata } from \"src/shared/typings/index.js\";\nimport TriviousClient from \"../client/trivious.client.js\";\n\n/**\n * Base SubcommandBuilder.\n *\n * @export\n * @class SubcommandBuilder\n * @typedef {SubcommandBuilder}\n * @extends {SlashCommandSubcommandBuilder}\n */\nexport class SubcommandBuilder extends SlashCommandSubcommandBuilder {\n\tprivate _active = true;\n\tprivate _ownerOnly = false;\n\tprivate _permission = PermissionLevel.USER;\n\tprivate _ephemeralReply = false;\n\n\t/**\n\t * Set the subcommand as disabled.\n\t *\n\t * @public\n\t * @returns {this}\n\t */\n\tpublic disable(): this {\n\t\tthis._active = false;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Set the subcommand as owner only.\n\t *\n\t * @public\n\t * @returns {this}\n\t */\n\tpublic setOwnerOnly(): this {\n\t\tthis._permission = PermissionLevel.BOT_OWNER;\n\t\tthis._ownerOnly = true;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Set the permission level required to run the subcommand.\n\t *\n\t * @public\n\t * @param {PermissionLevel} permission\n\t * @returns {this}\n\t */\n\tpublic setPermission(permission: PermissionLevel): this {\n\t\tthis._permission = permission;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Set the interaction as ephemeral\n\t *\n\t * @public\n\t * @returns {this}\n\t */\n\tpublic setEphemeralReply(): this {\n\t\tthis._ephemeralReply = true;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Build the builder.\n\t *\n\t * @public\n\t * @returns {{ data: SlashCommandSubcommandBuilder; metadata: SubcommandMetadata; }}\n\t */\n\tpublic build() {\n\t\treturn {\n\t\t\tdata: this as SlashCommandSubcommandBuilder,\n\t\t\tmetadata: {\n\t\t\t\tactive: this._active,\n\t\t\t\townerOnly: this._ownerOnly,\n\t\t\t\tpermission: this._permission,\n\t\t\t\tephemeralReply: this._ephemeralReply,\n\t\t\t} satisfies SubcommandMetadata,\n\t\t};\n\t}\n}\n\n/**\n * Base Subcommand\n *\n * @export\n * @abstract\n * @class Subcommand\n * @typedef {Subcommand}\n */\nexport default abstract class Subcommand {\n\tabstract data: SlashCommandSubcommandBuilder;\n\tabstract metadata: SubcommandMetadata;\n\t/**\n\t * Function to execute the subcommand.\n\t *\n\t * @abstract\n\t * @readonly\n\t * @type {(\n\t * \t\tclient: TriviousClient,\n\t * \t\tinteraction: ChatInputCommandInteraction<CacheType>\n\t * \t) => Promise<void>}\n\t */\n\tabstract readonly execute: (\n\t\tclient: TriviousClient,\n\t\tinteraction: ChatInputCommandInteraction<CacheType>\n\t) => Promise<void>;\n\n\t/**\n\t * Reply to the interaction respecting command metadata and if the interaction has already been replied to.\n\t *\n\t * @async\n\t * @param {ChatInputCommandInteraction<CacheType>} interaction\n\t * @param {(MessagePayload | InteractionEditReplyOptions | InteractionReplyOptions)} options\n\t * @returns {*}\n\t */\n\tasync reply(\n\t\tinteraction: ChatInputCommandInteraction<CacheType>,\n\t\toptions: MessagePayload | InteractionEditReplyOptions | InteractionReplyOptions\n\t) {\n\t\tif (interaction.replied) {\n\t\t\tawait interaction.editReply(options as InteractionEditReplyOptions);\n\t\t\treturn;\n\t\t}\n\n\t\tconst newOptions = { ...options } as InteractionReplyOptions;\n\t\tif (this.metadata.ephemeralReply) newOptions.flags = [\"Ephemeral\"];\n\n\t\tawait interaction.reply(newOptions);\n\t}\n}\n","import {\n\tComponentType,\n\tGuildMember,\n\tInteractionEditReplyOptions,\n\tInteractionReplyOptions,\n\tMessagePayload,\n} from \"discord.js\";\nimport {\n\tComponentCustomIdTag,\n\tComponentInteraction,\n\tComponentMetadata,\n\tPermissionLevel,\n} from \"src/shared/typings/index.js\";\nimport { hasPermission } from \"src/shared/utility/functions.js\";\nimport TriviousClient from \"../client/trivious.client.js\";\n\n/**\n * Base ComponentBuilder.\n *\n * @export\n * @class ComponentBuilder\n * @typedef {ComponentBuilder}\n */\nexport class ComponentBuilder {\n\tprivate _customId = \"\";\n\tprivate _permission = PermissionLevel.USER;\n\tprivate _ephemeralReply = false;\n\n\t/**\n\t * Set the customId for the component.\n\t *\n\t * @public\n\t * @param {{\n\t * \t\ttype: ComponentType;\n\t * \t\tdata: string;\n\t * \t\ttags?: ComponentCustomIdTag[];\n\t * \t}} options\n\t * @returns {this}\n\t */\n\tpublic setCustomId(options: {\n\t\ttype: ComponentType;\n\t\tdata: string;\n\t\ttags?: ComponentCustomIdTag[];\n\t}): this {\n\t\tconst { data, type, tags } = options;\n\t\tthis._customId = `${type}:${data}${tags ? `.${tags.join(\".\")}` : \"\"}`;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Set the permission required to use the component.\n\t *\n\t * @public\n\t * @param {PermissionLevel} permission\n\t * @returns {this}\n\t */\n\tpublic setPermission(permission: PermissionLevel): this {\n\t\tthis._permission = permission;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Set the interaction as ephemeral.\n\t *\n\t * @public\n\t * @returns {this}\n\t */\n\tpublic setEphemeralReply(): this {\n\t\tthis._ephemeralReply = true;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Builder the builder.\n\t *\n\t * @public\n\t * @returns {{ metadata: ComponentMetadata; }}\n\t */\n\tpublic build() {\n\t\treturn {\n\t\t\tmetadata: {\n\t\t\t\tcustomId: this._customId,\n\t\t\t\tpermission: this._permission,\n\t\t\t\tephemeralReply: this._ephemeralReply,\n\t\t\t} satisfies ComponentMetadata,\n\t\t};\n\t}\n}\n\n/**\n * Base Component.\n *\n * @export\n * @abstract\n * @class Component\n * @typedef {Component}\n */\nexport default abstract class Component {\n\tabstract metadata: ComponentMetadata;\n\t/**\n\t * Execute the component.\n\t *\n\t * @abstract\n\t * @type {(client: TriviousClient, interaction: ComponentInteraction) => Promise<void>}\n\t */\n\tabstract execute: (client: TriviousClient, interaction: ComponentInteraction) => Promise<void>;\n\n\t/**\n\t * Validate permissions for a user/member in a guild.\n\t *\n\t * @async\n\t * @param {ComponentInteraction} interaction\n\t * @param {PermissionLevel} permission\n\t * @param {boolean} [doReply=true] Defaults to `true`\n\t * @returns {unknown}\n\t */\n\tasync validateGuildPermission(\n\t\tclient: TriviousClient,\n\t\tinteraction: ComponentInteraction,\n\t\tpermission: PermissionLevel,\n\t\tdoReply: boolean = true\n\t) {\n\t\tif (interaction.guild) {\n\t\t\tconst member = interaction.member as GuildMember;\n\t\t\tconst memberHasPermission = hasPermission(client, { permission, member });\n\n\t\t\tif (!memberHasPermission) {\n\t\t\t\tif (doReply)\n\t\t\t\t\tawait this.reply(interaction, {\n\t\t\t\t\t\tcontent: `You do not have permission to run this command, required permission: \\`${PermissionLevel[permission]}\\``,\n\t\t\t\t\t});\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Reply to the interaction respecting command metadata and if the interaction has already been replied to.\n\t *\n\t * @async\n\t * @param {ComponentInteraction} interaction\n\t * @param {(MessagePayload | InteractionEditReplyOptions | InteractionReplyOptions)} options\n\t * @returns {*}\n\t */\n\tasync reply(\n\t\tinteraction: ComponentInteraction,\n\t\toptions: MessagePayload | InteractionEditReplyOptions | InteractionReplyOptions\n\t) {\n\t\tif (interaction.replied) {\n\t\t\tawait interaction.editReply(options as InteractionEditReplyOptions);\n\t\t\treturn;\n\t\t}\n\n\t\tconst newOptions = { ...options } as InteractionReplyOptions;\n\t\tif (this.metadata.ephemeralReply) newOptions.flags = [\"Ephemeral\"];\n\n\t\tawait interaction.reply(newOptions);\n\t}\n}\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js","sourcesContent":[]}
@@ -0,0 +1,4 @@
1
+ 'use strict';
2
+
3
+ //# sourceMappingURL=client.cjs.map
4
+ //# sourceMappingURL=client.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"client.cjs"}
@@ -0,0 +1,3 @@
1
+ import 'discord.js';
2
+ export { b as TriviousClientOptions } from '../../index-CU2Xl9Xo.cjs';
3
+ import './registry.cjs';
@@ -0,0 +1,3 @@
1
+ import 'discord.js';
2
+ export { b as TriviousClientOptions } from '../../index-BPaYmWRO.js';
3
+ import './registry.js';
@@ -0,0 +1,3 @@
1
+
2
+ //# sourceMappingURL=client.js.map
3
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"client.js"}
@@ -0,0 +1,4 @@
1
+ 'use strict';
2
+
3
+ //# sourceMappingURL=commands.cjs.map
4
+ //# sourceMappingURL=commands.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"commands.cjs"}
@@ -0,0 +1,3 @@
1
+ export { A as AnyCommand, o as CommandInteraction, p as CommandMetadata, r as ContextMenuMetadata, q as SubcommandMetadata } from '../../index-CU2Xl9Xo.cjs';
2
+ import 'discord.js';
3
+ import './registry.cjs';
@@ -0,0 +1,3 @@
1
+ export { A as AnyCommand, o as CommandInteraction, p as CommandMetadata, r as ContextMenuMetadata, q as SubcommandMetadata } from '../../index-BPaYmWRO.js';
2
+ import 'discord.js';
3
+ import './registry.js';
@@ -0,0 +1,3 @@
1
+
2
+ //# sourceMappingURL=commands.js.map
3
+ //# sourceMappingURL=commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"commands.js"}
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ var ComponentType = /* @__PURE__ */ ((ComponentType2) => {
4
+ ComponentType2["Button"] = "button";
5
+ ComponentType2["SelectMenu"] = "select";
6
+ ComponentType2["Modal"] = "modal";
7
+ return ComponentType2;
8
+ })(ComponentType || {});
9
+ const deconstructCustomId = (customId) => {
10
+ const [componentType, dataTags] = customId.split(":");
11
+ const [data, ...tags] = dataTags.split(".");
12
+ return {
13
+ componentType,
14
+ data,
15
+ tags
16
+ };
17
+ };
18
+
19
+ exports.ComponentType = ComponentType;
20
+ exports.deconstructCustomId = deconstructCustomId;
21
+ //# sourceMappingURL=components.cjs.map
22
+ //# sourceMappingURL=components.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/shared/typings/components.ts"],"names":["ComponentType"],"mappings":";;AA+BO,IAAK,aAAA,qBAAAA,cAAAA,KAAL;AACN,EAAAA,eAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,eAAA,YAAA,CAAA,GAAa,QAAA;AACb,EAAAA,eAAA,OAAA,CAAA,GAAQ,OAAA;AAHG,EAAA,OAAAA,cAAAA;AAAA,CAAA,EAAA,aAAA,IAAA,EAAA;AAwCL,MAAM,mBAAA,GAAsB,CAAC,QAAA,KAAqB;AACxD,EAAA,MAAM,CAAC,aAAA,EAAe,QAAQ,CAAA,GAAI,QAAA,CAAS,MAAM,GAAG,CAAA;AACpD,EAAA,MAAM,CAAC,IAAA,EAAM,GAAG,IAAI,CAAA,GAAI,QAAA,CAAS,MAAM,GAAG,CAAA;AAE1C,EAAA,OAAO;AAAA,IACN,aAAA;AAAA,IACA,IAAA;AAAA,IACA;AAAA,GACD;AACD","file":"components.cjs","sourcesContent":["import {\n\tAnySelectMenuInteraction,\n\tButtonInteraction,\n\tCacheType,\n\tModalSubmitInteraction,\n} from \"discord.js\";\nimport { PermissionLevel } from \"./permissions.js\";\n\n/**\n * Tags for component customIds.\n *\n * @export\n * @typedef {ComponentCustomIdTag}\n */\nexport type ComponentCustomIdTag = \"awaited\";\n/**\n * Interaction types for components.\n *\n * @export\n * @typedef {ComponentInteraction}\n */\nexport type ComponentInteraction =\n\t| AnySelectMenuInteraction<CacheType>\n\t| ButtonInteraction<CacheType>\n\t| ModalSubmitInteraction<CacheType>;\n/**\n * What type of component is the componenty.\n *\n * @export\n * @enum {number}\n */\nexport enum ComponentType {\n\tButton = \"button\",\n\tSelectMenu = \"select\",\n\tModal = \"modal\",\n}\n\n/**\n * Metadata for Components.\n *\n * @export\n * @interface ComponentMetadata\n * @typedef {ComponentMetadata}\n */\nexport interface ComponentMetadata {\n\t/**\n\t * The customId of the component.\n\t *\n\t * @type {string}\n\t */\n\tcustomId: string;\n\t/**\n\t * The permission level required to use the component.\n\t *\n\t * @type {PermissionLevel}\n\t */\n\tpermission: PermissionLevel;\n\t/**\n\t * Whether the interaction reply is ephemeral.\n\t *\n\t * @type {boolean}\n\t */\n\tephemeralReply: boolean;\n}\n\n/**\n * Deconstruct a component customId into its parts.\n *\n * @param {string} customId\n * @returns {{ componentType: ComponentType; data: string; tags: {}; }}\n */\nexport const deconstructCustomId = (customId: string) => {\n\tconst [componentType, dataTags] = customId.split(\":\") as [ComponentType, string];\n\tconst [data, ...tags] = dataTags.split(\".\") as [string, ...ComponentCustomIdTag[]];\n\n\treturn {\n\t\tcomponentType,\n\t\tdata,\n\t\ttags,\n\t};\n};\n"]}
@@ -0,0 +1,3 @@
1
+ import 'discord.js';
2
+ export { c as ComponentCustomIdTag, d as ComponentInteraction, f as ComponentMetadata, e as ComponentType, h as deconstructCustomId } from '../../index-CU2Xl9Xo.cjs';
3
+ import './registry.cjs';
@@ -0,0 +1,3 @@
1
+ import 'discord.js';
2
+ export { c as ComponentCustomIdTag, d as ComponentInteraction, f as ComponentMetadata, e as ComponentType, h as deconstructCustomId } from '../../index-BPaYmWRO.js';
3
+ import './registry.js';
@@ -0,0 +1,19 @@
1
+ var ComponentType = /* @__PURE__ */ ((ComponentType2) => {
2
+ ComponentType2["Button"] = "button";
3
+ ComponentType2["SelectMenu"] = "select";
4
+ ComponentType2["Modal"] = "modal";
5
+ return ComponentType2;
6
+ })(ComponentType || {});
7
+ const deconstructCustomId = (customId) => {
8
+ const [componentType, dataTags] = customId.split(":");
9
+ const [data, ...tags] = dataTags.split(".");
10
+ return {
11
+ componentType,
12
+ data,
13
+ tags
14
+ };
15
+ };
16
+
17
+ export { ComponentType, deconstructCustomId };
18
+ //# sourceMappingURL=components.js.map
19
+ //# sourceMappingURL=components.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/shared/typings/components.ts"],"names":["ComponentType"],"mappings":"AA+BO,IAAK,aAAA,qBAAAA,cAAAA,KAAL;AACN,EAAAA,eAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,eAAA,YAAA,CAAA,GAAa,QAAA;AACb,EAAAA,eAAA,OAAA,CAAA,GAAQ,OAAA;AAHG,EAAA,OAAAA,cAAAA;AAAA,CAAA,EAAA,aAAA,IAAA,EAAA;AAwCL,MAAM,mBAAA,GAAsB,CAAC,QAAA,KAAqB;AACxD,EAAA,MAAM,CAAC,aAAA,EAAe,QAAQ,CAAA,GAAI,QAAA,CAAS,MAAM,GAAG,CAAA;AACpD,EAAA,MAAM,CAAC,IAAA,EAAM,GAAG,IAAI,CAAA,GAAI,QAAA,CAAS,MAAM,GAAG,CAAA;AAE1C,EAAA,OAAO;AAAA,IACN,aAAA;AAAA,IACA,IAAA;AAAA,IACA;AAAA,GACD;AACD","file":"components.js","sourcesContent":["import {\n\tAnySelectMenuInteraction,\n\tButtonInteraction,\n\tCacheType,\n\tModalSubmitInteraction,\n} from \"discord.js\";\nimport { PermissionLevel } from \"./permissions.js\";\n\n/**\n * Tags for component customIds.\n *\n * @export\n * @typedef {ComponentCustomIdTag}\n */\nexport type ComponentCustomIdTag = \"awaited\";\n/**\n * Interaction types for components.\n *\n * @export\n * @typedef {ComponentInteraction}\n */\nexport type ComponentInteraction =\n\t| AnySelectMenuInteraction<CacheType>\n\t| ButtonInteraction<CacheType>\n\t| ModalSubmitInteraction<CacheType>;\n/**\n * What type of component is the componenty.\n *\n * @export\n * @enum {number}\n */\nexport enum ComponentType {\n\tButton = \"button\",\n\tSelectMenu = \"select\",\n\tModal = \"modal\",\n}\n\n/**\n * Metadata for Components.\n *\n * @export\n * @interface ComponentMetadata\n * @typedef {ComponentMetadata}\n */\nexport interface ComponentMetadata {\n\t/**\n\t * The customId of the component.\n\t *\n\t * @type {string}\n\t */\n\tcustomId: string;\n\t/**\n\t * The permission level required to use the component.\n\t *\n\t * @type {PermissionLevel}\n\t */\n\tpermission: PermissionLevel;\n\t/**\n\t * Whether the interaction reply is ephemeral.\n\t *\n\t * @type {boolean}\n\t */\n\tephemeralReply: boolean;\n}\n\n/**\n * Deconstruct a component customId into its parts.\n *\n * @param {string} customId\n * @returns {{ componentType: ComponentType; data: string; tags: {}; }}\n */\nexport const deconstructCustomId = (customId: string) => {\n\tconst [componentType, dataTags] = customId.split(\":\") as [ComponentType, string];\n\tconst [data, ...tags] = dataTags.split(\".\") as [string, ...ComponentCustomIdTag[]];\n\n\treturn {\n\t\tcomponentType,\n\t\tdata,\n\t\ttags,\n\t};\n};\n"]}
@@ -0,0 +1,4 @@
1
+ 'use strict';
2
+
3
+ //# sourceMappingURL=events.cjs.map
4
+ //# sourceMappingURL=events.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"events.cjs"}
@@ -0,0 +1,3 @@
1
+ import 'discord.js';
2
+ export { s as Event } from '../../index-CU2Xl9Xo.cjs';
3
+ import './registry.cjs';
@@ -0,0 +1,3 @@
1
+ import 'discord.js';
2
+ export { s as Event } from '../../index-BPaYmWRO.js';
3
+ import './registry.js';
@@ -0,0 +1,3 @@
1
+
2
+ //# sourceMappingURL=events.js.map
3
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"events.js"}
@@ -0,0 +1,56 @@
1
+ 'use strict';
2
+
3
+ var permissions_js = require('./permissions.js');
4
+ var registry_js = require('./registry.js');
5
+ var components_js = require('./components.js');
6
+ var commands_js = require('./commands.js');
7
+ var client_js = require('./client.js');
8
+ var events_js = require('./events.js');
9
+ var module_js = require('./module.js');
10
+
11
+
12
+
13
+ Object.keys(permissions_js).forEach(function (k) {
14
+ if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
15
+ enumerable: true,
16
+ get: function () { return permissions_js[k]; }
17
+ });
18
+ });
19
+ Object.keys(registry_js).forEach(function (k) {
20
+ if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
21
+ enumerable: true,
22
+ get: function () { return registry_js[k]; }
23
+ });
24
+ });
25
+ Object.keys(components_js).forEach(function (k) {
26
+ if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
27
+ enumerable: true,
28
+ get: function () { return components_js[k]; }
29
+ });
30
+ });
31
+ Object.keys(commands_js).forEach(function (k) {
32
+ if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
33
+ enumerable: true,
34
+ get: function () { return commands_js[k]; }
35
+ });
36
+ });
37
+ Object.keys(client_js).forEach(function (k) {
38
+ if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
39
+ enumerable: true,
40
+ get: function () { return client_js[k]; }
41
+ });
42
+ });
43
+ Object.keys(events_js).forEach(function (k) {
44
+ if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
45
+ enumerable: true,
46
+ get: function () { return events_js[k]; }
47
+ });
48
+ });
49
+ Object.keys(module_js).forEach(function (k) {
50
+ if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
51
+ enumerable: true,
52
+ get: function () { return module_js[k]; }
53
+ });
54
+ });
55
+ //# sourceMappingURL=index.cjs.map
56
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.cjs","sourcesContent":[]}
@@ -0,0 +1,3 @@
1
+ export { A as AnyCommand, o as CommandInteraction, p as CommandMetadata, c as ComponentCustomIdTag, d as ComponentInteraction, f as ComponentMetadata, e as ComponentType, r as ContextMenuMetadata, s as Event, t as Module, P as PermissionLevel, q as SubcommandMetadata, b as TriviousClientOptions, h as deconstructCustomId, g as getPermissionLevel } from '../../index-CU2Xl9Xo.cjs';
2
+ export { BaseRegistry } from './registry.cjs';
3
+ import 'discord.js';
@@ -0,0 +1,3 @@
1
+ export { A as AnyCommand, o as CommandInteraction, p as CommandMetadata, c as ComponentCustomIdTag, d as ComponentInteraction, f as ComponentMetadata, e as ComponentType, r as ContextMenuMetadata, s as Event, t as Module, P as PermissionLevel, q as SubcommandMetadata, b as TriviousClientOptions, h as deconstructCustomId, g as getPermissionLevel } from '../../index-BPaYmWRO.js';
2
+ export { BaseRegistry } from './registry.js';
3
+ import 'discord.js';
@@ -0,0 +1,9 @@
1
+ export * from './permissions.js';
2
+ export * from './registry.js';
3
+ export * from './components.js';
4
+ export * from './commands.js';
5
+ export * from './client.js';
6
+ export * from './events.js';
7
+ export * from './module.js';
8
+ //# sourceMappingURL=index.js.map
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js","sourcesContent":[]}
@@ -0,0 +1,4 @@
1
+ 'use strict';
2
+
3
+ //# sourceMappingURL=module.cjs.map
4
+ //# sourceMappingURL=module.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"module.cjs"}
@@ -0,0 +1,3 @@
1
+ import 'discord.js';
2
+ export { t as Module } from '../../index-CU2Xl9Xo.cjs';
3
+ import './registry.cjs';
@@ -0,0 +1,3 @@
1
+ import 'discord.js';
2
+ export { t as Module } from '../../index-BPaYmWRO.js';
3
+ import './registry.js';
@@ -0,0 +1,3 @@
1
+
2
+ //# sourceMappingURL=module.js.map
3
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"module.js"}
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ var PermissionLevel = /* @__PURE__ */ ((PermissionLevel2) => {
4
+ PermissionLevel2[PermissionLevel2["USER"] = 0] = "USER";
5
+ PermissionLevel2[PermissionLevel2["GUILD_STAFF"] = 1] = "GUILD_STAFF";
6
+ PermissionLevel2[PermissionLevel2["GUILD_MODERATOR"] = 2] = "GUILD_MODERATOR";
7
+ PermissionLevel2[PermissionLevel2["GUILD_ADMINISTRATOR"] = 3] = "GUILD_ADMINISTRATOR";
8
+ PermissionLevel2[PermissionLevel2["GUILD_OWNER"] = 4] = "GUILD_OWNER";
9
+ PermissionLevel2[PermissionLevel2["BOT_OWNER"] = 5] = "BOT_OWNER";
10
+ return PermissionLevel2;
11
+ })(PermissionLevel || {});
12
+ const getPermissionLevel = (client, member) => {
13
+ const highestRole = member.roles.highest;
14
+ if (member.user.id === member.guild.ownerId) return 4 /* GUILD_OWNER */;
15
+ const rolePermissions = client.rolePermissions;
16
+ return rolePermissions[highestRole.name] ?? 0 /* USER */;
17
+ };
18
+
19
+ exports.PermissionLevel = PermissionLevel;
20
+ exports.getPermissionLevel = getPermissionLevel;
21
+ //# sourceMappingURL=permissions.cjs.map
22
+ //# sourceMappingURL=permissions.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/shared/typings/permissions.ts"],"names":["PermissionLevel"],"mappings":";;AASO,IAAK,eAAA,qBAAAA,gBAAAA,KAAL;AACN,EAAAA,gBAAAA,CAAAA,gBAAAA,CAAA,UAAO,CAAA,CAAA,GAAP,MAAA;AACA,EAAAA,gBAAAA,CAAAA,gBAAAA,CAAA,iBAAc,CAAA,CAAA,GAAd,aAAA;AACA,EAAAA,gBAAAA,CAAAA,gBAAAA,CAAA,qBAAkB,CAAA,CAAA,GAAlB,iBAAA;AACA,EAAAA,gBAAAA,CAAAA,gBAAAA,CAAA,yBAAsB,CAAA,CAAA,GAAtB,qBAAA;AACA,EAAAA,gBAAAA,CAAAA,gBAAAA,CAAA,iBAAc,CAAA,CAAA,GAAd,aAAA;AACA,EAAAA,gBAAAA,CAAAA,gBAAAA,CAAA,eAAY,CAAA,CAAA,GAAZ,WAAA;AANW,EAAA,OAAAA,gBAAAA;AAAA,CAAA,EAAA,eAAA,IAAA,EAAA;AAeL,MAAM,kBAAA,GAAqB,CAAC,MAAA,EAAwB,MAAA,KAAwB;AAClF,EAAA,MAAM,WAAA,GAAc,OAAO,KAAA,CAAM,OAAA;AACjC,EAAA,IAAI,OAAO,IAAA,CAAK,EAAA,KAAO,MAAA,CAAO,KAAA,CAAM,SAAS,OAAO,CAAA;AAEpD,EAAA,MAAM,kBAAkB,MAAA,CAAO,eAAA;AAC/B,EAAA,OAAO,eAAA,CAAgB,WAAA,CAAY,IAAI,CAAA,IAAK,CAAA;AAC7C","file":"permissions.cjs","sourcesContent":["import { GuildMember } from \"discord.js\";\nimport TriviousClient from \"../../core/client/trivious.client.js\";\n\n/**\n * User permission level enums\n *\n * @export\n * @enum {number}\n */\nexport enum PermissionLevel {\n\tUSER = 0,\n\tGUILD_STAFF = 1,\n\tGUILD_MODERATOR = 2,\n\tGUILD_ADMINISTRATOR = 3,\n\tGUILD_OWNER = 4,\n\tBOT_OWNER = 5,\n}\n\n/**\n * Get the permission level of a user.\n *\n * @param {GuildMember} member\n * @returns {*}\n */\nexport const getPermissionLevel = (client: TriviousClient, member: GuildMember) => {\n\tconst highestRole = member.roles.highest;\n\tif (member.user.id === member.guild.ownerId) return PermissionLevel.GUILD_OWNER;\n\n\tconst rolePermissions = client.rolePermissions;\n\treturn rolePermissions[highestRole.name] ?? PermissionLevel.USER;\n};\n"]}
@@ -0,0 +1,3 @@
1
+ import 'discord.js';
2
+ export { P as PermissionLevel, g as getPermissionLevel } from '../../index-CU2Xl9Xo.cjs';
3
+ import './registry.cjs';
@@ -0,0 +1,3 @@
1
+ import 'discord.js';
2
+ export { P as PermissionLevel, g as getPermissionLevel } from '../../index-BPaYmWRO.js';
3
+ import './registry.js';
@@ -0,0 +1,19 @@
1
+ var PermissionLevel = /* @__PURE__ */ ((PermissionLevel2) => {
2
+ PermissionLevel2[PermissionLevel2["USER"] = 0] = "USER";
3
+ PermissionLevel2[PermissionLevel2["GUILD_STAFF"] = 1] = "GUILD_STAFF";
4
+ PermissionLevel2[PermissionLevel2["GUILD_MODERATOR"] = 2] = "GUILD_MODERATOR";
5
+ PermissionLevel2[PermissionLevel2["GUILD_ADMINISTRATOR"] = 3] = "GUILD_ADMINISTRATOR";
6
+ PermissionLevel2[PermissionLevel2["GUILD_OWNER"] = 4] = "GUILD_OWNER";
7
+ PermissionLevel2[PermissionLevel2["BOT_OWNER"] = 5] = "BOT_OWNER";
8
+ return PermissionLevel2;
9
+ })(PermissionLevel || {});
10
+ const getPermissionLevel = (client, member) => {
11
+ const highestRole = member.roles.highest;
12
+ if (member.user.id === member.guild.ownerId) return 4 /* GUILD_OWNER */;
13
+ const rolePermissions = client.rolePermissions;
14
+ return rolePermissions[highestRole.name] ?? 0 /* USER */;
15
+ };
16
+
17
+ export { PermissionLevel, getPermissionLevel };
18
+ //# sourceMappingURL=permissions.js.map
19
+ //# sourceMappingURL=permissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/shared/typings/permissions.ts"],"names":["PermissionLevel"],"mappings":"AASO,IAAK,eAAA,qBAAAA,gBAAAA,KAAL;AACN,EAAAA,gBAAAA,CAAAA,gBAAAA,CAAA,UAAO,CAAA,CAAA,GAAP,MAAA;AACA,EAAAA,gBAAAA,CAAAA,gBAAAA,CAAA,iBAAc,CAAA,CAAA,GAAd,aAAA;AACA,EAAAA,gBAAAA,CAAAA,gBAAAA,CAAA,qBAAkB,CAAA,CAAA,GAAlB,iBAAA;AACA,EAAAA,gBAAAA,CAAAA,gBAAAA,CAAA,yBAAsB,CAAA,CAAA,GAAtB,qBAAA;AACA,EAAAA,gBAAAA,CAAAA,gBAAAA,CAAA,iBAAc,CAAA,CAAA,GAAd,aAAA;AACA,EAAAA,gBAAAA,CAAAA,gBAAAA,CAAA,eAAY,CAAA,CAAA,GAAZ,WAAA;AANW,EAAA,OAAAA,gBAAAA;AAAA,CAAA,EAAA,eAAA,IAAA,EAAA;AAeL,MAAM,kBAAA,GAAqB,CAAC,MAAA,EAAwB,MAAA,KAAwB;AAClF,EAAA,MAAM,WAAA,GAAc,OAAO,KAAA,CAAM,OAAA;AACjC,EAAA,IAAI,OAAO,IAAA,CAAK,EAAA,KAAO,MAAA,CAAO,KAAA,CAAM,SAAS,OAAO,CAAA;AAEpD,EAAA,MAAM,kBAAkB,MAAA,CAAO,eAAA;AAC/B,EAAA,OAAO,eAAA,CAAgB,WAAA,CAAY,IAAI,CAAA,IAAK,CAAA;AAC7C","file":"permissions.js","sourcesContent":["import { GuildMember } from \"discord.js\";\nimport TriviousClient from \"../../core/client/trivious.client.js\";\n\n/**\n * User permission level enums\n *\n * @export\n * @enum {number}\n */\nexport enum PermissionLevel {\n\tUSER = 0,\n\tGUILD_STAFF = 1,\n\tGUILD_MODERATOR = 2,\n\tGUILD_ADMINISTRATOR = 3,\n\tGUILD_OWNER = 4,\n\tBOT_OWNER = 5,\n}\n\n/**\n * Get the permission level of a user.\n *\n * @param {GuildMember} member\n * @returns {*}\n */\nexport const getPermissionLevel = (client: TriviousClient, member: GuildMember) => {\n\tconst highestRole = member.roles.highest;\n\tif (member.user.id === member.guild.ownerId) return PermissionLevel.GUILD_OWNER;\n\n\tconst rolePermissions = client.rolePermissions;\n\treturn rolePermissions[highestRole.name] ?? PermissionLevel.USER;\n};\n"]}