yuzuha 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (692) hide show
  1. package/CHANGELOG.md +29 -1
  2. package/README.md +22 -14
  3. package/VERSIONING.md +56 -7
  4. package/benchmarks/parser.mjs +1 -1
  5. package/benchmarks/run.mjs +3 -2
  6. package/dist/canvas/card.d.ts +10 -0
  7. package/dist/canvas/card.d.ts.map +1 -0
  8. package/dist/canvas/card.js +11 -0
  9. package/dist/canvas/card.js.map +1 -0
  10. package/dist/canvas.d.ts +30 -9
  11. package/dist/canvas.d.ts.map +1 -1
  12. package/dist/canvas.js +64 -9
  13. package/dist/canvas.js.map +1 -1
  14. package/dist/cli/config.d.ts.map +1 -1
  15. package/dist/cli/config.js +2 -1
  16. package/dist/cli/config.js.map +1 -1
  17. package/dist/cli/lint.d.ts.map +1 -1
  18. package/dist/cli/lint.js +1 -2
  19. package/dist/cli/lint.js.map +1 -1
  20. package/dist/cli/main.d.ts.map +1 -1
  21. package/dist/cli/main.js +8 -9
  22. package/dist/cli/main.js.map +1 -1
  23. package/dist/cli/scaffold.js +1 -1
  24. package/dist/cli/scaffold.js.map +1 -1
  25. package/dist/cli/scenarios.d.ts.map +1 -1
  26. package/dist/cli/scenarios.js +2 -1
  27. package/dist/cli/scenarios.js.map +1 -1
  28. package/dist/commands/context.d.ts.map +1 -1
  29. package/dist/commands/context.js +7 -2
  30. package/dist/commands/context.js.map +1 -1
  31. package/dist/domain/resource-batches.d.ts +6 -0
  32. package/dist/domain/resource-batches.d.ts.map +1 -1
  33. package/dist/domain/resource-batches.js +31 -0
  34. package/dist/domain/resource-batches.js.map +1 -1
  35. package/dist/framework/bot.d.ts +9 -5
  36. package/dist/framework/bot.d.ts.map +1 -1
  37. package/dist/framework/bot.js +51 -27
  38. package/dist/framework/bot.js.map +1 -1
  39. package/dist/framework/command-registry.d.ts +8 -7
  40. package/dist/framework/command-registry.d.ts.map +1 -1
  41. package/dist/framework/command-registry.js +14 -11
  42. package/dist/framework/command-registry.js.map +1 -1
  43. package/dist/framework/options.d.ts +3 -3
  44. package/dist/framework/options.d.ts.map +1 -1
  45. package/dist/framework/options.js.map +1 -1
  46. package/dist/{scripting → functions}/builtins/arguments.d.ts.map +1 -1
  47. package/dist/{scripting → functions}/builtins/arguments.js.map +1 -1
  48. package/dist/functions/builtins/canvas.d.ts +2 -0
  49. package/dist/functions/builtins/canvas.d.ts.map +1 -0
  50. package/dist/{scripting → functions}/builtins/canvas.js +1 -1
  51. package/dist/{scripting → functions}/builtins/canvas.js.map +1 -1
  52. package/dist/functions/builtins/context.d.ts +2 -0
  53. package/dist/functions/builtins/context.d.ts.map +1 -0
  54. package/dist/{scripting → functions}/builtins/context.js.map +1 -1
  55. package/dist/{scripting → functions}/builtins/definition.d.ts +1 -1
  56. package/dist/functions/builtins/definition.d.ts.map +1 -0
  57. package/dist/functions/builtins/definition.js.map +1 -0
  58. package/dist/functions/builtins/embeds.d.ts +3 -0
  59. package/dist/{scripting → functions}/builtins/embeds.d.ts.map +1 -1
  60. package/dist/{scripting → functions}/builtins/embeds.js +1 -1
  61. package/dist/functions/builtins/embeds.js.map +1 -0
  62. package/dist/functions/builtins/events.d.ts +2 -0
  63. package/dist/functions/builtins/events.d.ts.map +1 -0
  64. package/dist/{scripting → functions}/builtins/events.js.map +1 -1
  65. package/dist/functions/builtins/flow.d.ts +2 -0
  66. package/dist/functions/builtins/flow.d.ts.map +1 -0
  67. package/dist/{scripting → functions}/builtins/flow.js +2 -2
  68. package/dist/functions/builtins/flow.js.map +1 -0
  69. package/dist/functions/builtins/guards.d.ts +2 -0
  70. package/dist/functions/builtins/guards.d.ts.map +1 -0
  71. package/dist/{scripting → functions}/builtins/guards.js +1 -1
  72. package/dist/functions/builtins/guards.js.map +1 -0
  73. package/dist/functions/builtins/http.d.ts +2 -0
  74. package/dist/functions/builtins/http.d.ts.map +1 -0
  75. package/dist/{scripting → functions}/builtins/http.js +2 -2
  76. package/dist/functions/builtins/http.js.map +1 -0
  77. package/dist/functions/builtins/index.d.ts +5 -0
  78. package/dist/functions/builtins/index.d.ts.map +1 -0
  79. package/dist/functions/builtins/index.js.map +1 -0
  80. package/dist/functions/builtins/language/array-callbacks.d.ts +2 -0
  81. package/dist/functions/builtins/language/array-callbacks.d.ts.map +1 -0
  82. package/dist/{scripting → functions}/builtins/language/array-callbacks.js +1 -1
  83. package/dist/{scripting → functions}/builtins/language/array-callbacks.js.map +1 -1
  84. package/dist/functions/builtins/language/arrays.d.ts +2 -0
  85. package/dist/functions/builtins/language/arrays.d.ts.map +1 -0
  86. package/dist/{scripting → functions}/builtins/language/arrays.js +1 -1
  87. package/dist/{scripting → functions}/builtins/language/arrays.js.map +1 -1
  88. package/dist/{scripting → functions}/builtins/language/common.d.ts.map +1 -1
  89. package/dist/{scripting → functions}/builtins/language/common.js.map +1 -1
  90. package/dist/functions/builtins/language/decimals.d.ts +2 -0
  91. package/dist/functions/builtins/language/decimals.d.ts.map +1 -0
  92. package/dist/{scripting → functions}/builtins/language/decimals.js.map +1 -1
  93. package/dist/functions/builtins/language/index.d.ts +3 -0
  94. package/dist/functions/builtins/language/index.d.ts.map +1 -0
  95. package/dist/functions/builtins/language/index.js.map +1 -0
  96. package/dist/functions/builtins/language/loops.d.ts +4 -0
  97. package/dist/{scripting → functions}/builtins/language/loops.d.ts.map +1 -1
  98. package/dist/{scripting → functions}/builtins/language/loops.js +3 -3
  99. package/dist/{scripting → functions}/builtins/language/loops.js.map +1 -1
  100. package/dist/functions/builtins/language/numbers.d.ts +2 -0
  101. package/dist/functions/builtins/language/numbers.d.ts.map +1 -0
  102. package/dist/{scripting → functions}/builtins/language/numbers.js.map +1 -1
  103. package/dist/{scripting → functions}/builtins/language/objects.d.ts +1 -1
  104. package/dist/{scripting → functions}/builtins/language/objects.d.ts.map +1 -1
  105. package/dist/{scripting → functions}/builtins/language/objects.js.map +1 -1
  106. package/dist/functions/builtins/language/regex.d.ts +2 -0
  107. package/dist/functions/builtins/language/regex.d.ts.map +1 -0
  108. package/dist/{scripting → functions}/builtins/language/regex.js +1 -1
  109. package/dist/{scripting → functions}/builtins/language/regex.js.map +1 -1
  110. package/dist/functions/builtins/language/sort.d.ts +2 -0
  111. package/dist/functions/builtins/language/sort.d.ts.map +1 -0
  112. package/dist/{scripting → functions}/builtins/language/sort.js.map +1 -1
  113. package/dist/{scripting → functions}/builtins/language/state.d.ts +1 -1
  114. package/dist/{scripting → functions}/builtins/language/state.d.ts.map +1 -1
  115. package/dist/{scripting → functions}/builtins/language/state.js.map +1 -1
  116. package/dist/functions/builtins/language/texts.d.ts +2 -0
  117. package/dist/functions/builtins/language/texts.d.ts.map +1 -0
  118. package/dist/{scripting → functions}/builtins/language/texts.js.map +1 -1
  119. package/dist/functions/builtins/messages.d.ts +2 -0
  120. package/dist/functions/builtins/messages.d.ts.map +1 -0
  121. package/dist/{scripting → functions}/builtins/messages.js.map +1 -1
  122. package/dist/functions/builtins/moderation.d.ts +2 -0
  123. package/dist/functions/builtins/moderation.d.ts.map +1 -0
  124. package/dist/{scripting → functions}/builtins/moderation.js.map +1 -1
  125. package/dist/functions/builtins/native-channels.d.ts +2 -0
  126. package/dist/functions/builtins/native-channels.d.ts.map +1 -0
  127. package/dist/{scripting → functions}/builtins/native-channels.js.map +1 -1
  128. package/dist/functions/builtins/native-collectors.d.ts +2 -0
  129. package/dist/functions/builtins/native-collectors.d.ts.map +1 -0
  130. package/dist/{scripting → functions}/builtins/native-collectors.js.map +1 -1
  131. package/dist/functions/builtins/native-expressions.d.ts +2 -0
  132. package/dist/functions/builtins/native-expressions.d.ts.map +1 -0
  133. package/dist/{scripting → functions}/builtins/native-expressions.js.map +1 -1
  134. package/dist/functions/builtins/native-invites.d.ts +2 -0
  135. package/dist/functions/builtins/native-invites.d.ts.map +1 -0
  136. package/dist/{scripting → functions}/builtins/native-invites.js.map +1 -1
  137. package/dist/functions/builtins/native-messages.d.ts +2 -0
  138. package/dist/functions/builtins/native-messages.d.ts.map +1 -0
  139. package/dist/{scripting → functions}/builtins/native-messages.js.map +1 -1
  140. package/dist/functions/builtins/native-roles.d.ts +2 -0
  141. package/dist/functions/builtins/native-roles.d.ts.map +1 -0
  142. package/dist/{scripting → functions}/builtins/native-roles.js.map +1 -1
  143. package/dist/functions/builtins/native-threads.d.ts +2 -0
  144. package/dist/functions/builtins/native-threads.d.ts.map +1 -0
  145. package/dist/{scripting → functions}/builtins/native-threads.js.map +1 -1
  146. package/dist/functions/builtins/native-users.d.ts +2 -0
  147. package/dist/functions/builtins/native-users.d.ts.map +1 -0
  148. package/dist/{scripting → functions}/builtins/native-users.js.map +1 -1
  149. package/dist/functions/builtins/native-webhooks.d.ts +2 -0
  150. package/dist/functions/builtins/native-webhooks.d.ts.map +1 -0
  151. package/dist/{scripting → functions}/builtins/native-webhooks.js.map +1 -1
  152. package/dist/{scripting → functions}/builtins/payload.d.ts +2 -2
  153. package/dist/functions/builtins/payload.d.ts.map +1 -0
  154. package/dist/{scripting → functions}/builtins/payload.js +1 -1
  155. package/dist/functions/builtins/payload.js.map +1 -0
  156. package/dist/functions/builtins/resource-extras.d.ts +2 -0
  157. package/dist/functions/builtins/resource-extras.d.ts.map +1 -0
  158. package/dist/{scripting → functions}/builtins/resource-extras.js.map +1 -1
  159. package/dist/functions/builtins/schedule.d.ts +2 -0
  160. package/dist/functions/builtins/schedule.d.ts.map +1 -0
  161. package/dist/{scripting → functions}/builtins/schedule.js.map +1 -1
  162. package/dist/functions/builtins/storage.d.ts +2 -0
  163. package/dist/functions/builtins/storage.d.ts.map +1 -0
  164. package/dist/{scripting → functions}/builtins/storage.js.map +1 -1
  165. package/dist/functions/builtins/values.d.ts +2 -0
  166. package/dist/functions/builtins/values.d.ts.map +1 -0
  167. package/dist/{scripting → functions}/builtins/values.js +1 -1
  168. package/dist/functions/builtins/values.js.map +1 -0
  169. package/dist/functions/runtime/ast.d.ts.map +1 -0
  170. package/dist/functions/runtime/ast.js.map +1 -0
  171. package/dist/{scripting → functions/runtime}/canvas-execution.d.ts +1 -1
  172. package/dist/functions/runtime/canvas-execution.d.ts.map +1 -0
  173. package/dist/functions/runtime/canvas-execution.js.map +1 -0
  174. package/dist/functions/runtime/control-flow.d.ts.map +1 -0
  175. package/dist/functions/runtime/control-flow.js.map +1 -0
  176. package/dist/{scripting → functions/runtime}/evaluator.d.ts +1 -1
  177. package/dist/functions/runtime/evaluator.d.ts.map +1 -0
  178. package/dist/{scripting → functions/runtime}/evaluator.js +1 -1
  179. package/dist/functions/runtime/evaluator.js.map +1 -0
  180. package/dist/functions/runtime/limits.d.ts.map +1 -0
  181. package/dist/{scripting → functions/runtime}/limits.js +1 -1
  182. package/dist/functions/runtime/limits.js.map +1 -0
  183. package/dist/functions/runtime/parser.d.ts.map +1 -0
  184. package/dist/{scripting → functions/runtime}/parser.js +1 -1
  185. package/dist/functions/runtime/parser.js.map +1 -0
  186. package/dist/functions/runtime/regex.d.ts.map +1 -0
  187. package/dist/{scripting → functions/runtime}/regex.js +1 -1
  188. package/dist/functions/runtime/regex.js.map +1 -0
  189. package/dist/functions/runtime/registry.d.ts.map +1 -0
  190. package/dist/{scripting → functions/runtime}/registry.js +1 -1
  191. package/dist/functions/runtime/registry.js.map +1 -0
  192. package/dist/{scripting → functions/runtime}/runtime.d.ts +3 -1
  193. package/dist/functions/runtime/runtime.d.ts.map +1 -0
  194. package/dist/{scripting → functions/runtime}/runtime.js +3 -0
  195. package/dist/functions/runtime/runtime.js.map +1 -0
  196. package/dist/{scripting → functions/runtime}/types.d.ts +1 -1
  197. package/dist/functions/runtime/types.d.ts.map +1 -0
  198. package/dist/functions/runtime/types.js.map +1 -0
  199. package/dist/functions/runtime/values.d.ts.map +1 -0
  200. package/dist/functions/runtime/values.js.map +1 -0
  201. package/dist/functions.d.ts +19 -8
  202. package/dist/functions.d.ts.map +1 -1
  203. package/dist/functions.js +18 -6
  204. package/dist/functions.js.map +1 -1
  205. package/dist/index.d.ts +7 -2
  206. package/dist/index.d.ts.map +1 -1
  207. package/dist/index.js.map +1 -1
  208. package/dist/infrastructure/canvas/napi.d.ts +4 -0
  209. package/dist/infrastructure/canvas/napi.d.ts.map +1 -0
  210. package/dist/infrastructure/canvas/napi.js +17 -0
  211. package/dist/infrastructure/canvas/napi.js.map +1 -0
  212. package/dist/infrastructure/fluxer/resources/cache.d.ts +4 -0
  213. package/dist/infrastructure/fluxer/resources/cache.d.ts.map +1 -0
  214. package/dist/infrastructure/fluxer/resources/cache.js +68 -0
  215. package/dist/infrastructure/fluxer/resources/cache.js.map +1 -0
  216. package/dist/infrastructure/fluxer/resources/channels.d.ts +3 -2
  217. package/dist/infrastructure/fluxer/resources/channels.d.ts.map +1 -1
  218. package/dist/infrastructure/fluxer/resources/channels.js +54 -2
  219. package/dist/infrastructure/fluxer/resources/channels.js.map +1 -1
  220. package/dist/infrastructure/fluxer/resources/collectors.d.ts.map +1 -1
  221. package/dist/infrastructure/fluxer/resources/collectors.js +86 -4
  222. package/dist/infrastructure/fluxer/resources/collectors.js.map +1 -1
  223. package/dist/infrastructure/fluxer/resources/expressions.d.ts.map +1 -1
  224. package/dist/infrastructure/fluxer/resources/expressions.js +8 -1
  225. package/dist/infrastructure/fluxer/resources/expressions.js.map +1 -1
  226. package/dist/infrastructure/fluxer/resources/gateway.d.ts +4 -0
  227. package/dist/infrastructure/fluxer/resources/gateway.d.ts.map +1 -0
  228. package/dist/infrastructure/fluxer/resources/gateway.js +31 -0
  229. package/dist/infrastructure/fluxer/resources/gateway.js.map +1 -0
  230. package/dist/infrastructure/fluxer/resources/instance.d.ts +4 -0
  231. package/dist/infrastructure/fluxer/resources/instance.d.ts.map +1 -0
  232. package/dist/infrastructure/fluxer/resources/instance.js +96 -0
  233. package/dist/infrastructure/fluxer/resources/instance.js.map +1 -0
  234. package/dist/infrastructure/fluxer/resources/messages.d.ts +3 -1
  235. package/dist/infrastructure/fluxer/resources/messages.d.ts.map +1 -1
  236. package/dist/infrastructure/fluxer/resources/messages.js +91 -36
  237. package/dist/infrastructure/fluxer/resources/messages.js.map +1 -1
  238. package/dist/infrastructure/fluxer/resources/roles.d.ts.map +1 -1
  239. package/dist/infrastructure/fluxer/resources/roles.js +8 -0
  240. package/dist/infrastructure/fluxer/resources/roles.js.map +1 -1
  241. package/dist/infrastructure/fluxer/resources/self.d.ts +4 -0
  242. package/dist/infrastructure/fluxer/resources/self.d.ts.map +1 -0
  243. package/dist/infrastructure/fluxer/resources/self.js +36 -0
  244. package/dist/infrastructure/fluxer/resources/self.js.map +1 -0
  245. package/dist/infrastructure/fluxer/resources/threads.d.ts.map +1 -1
  246. package/dist/infrastructure/fluxer/resources/threads.js +15 -0
  247. package/dist/infrastructure/fluxer/resources/threads.js.map +1 -1
  248. package/dist/infrastructure/fluxer/resources/users.d.ts +5 -2
  249. package/dist/infrastructure/fluxer/resources/users.d.ts.map +1 -1
  250. package/dist/infrastructure/fluxer/resources/users.js +36 -3
  251. package/dist/infrastructure/fluxer/resources/users.js.map +1 -1
  252. package/dist/infrastructure/fluxer/resources/webhooks.d.ts.map +1 -1
  253. package/dist/infrastructure/fluxer/resources/webhooks.js +9 -0
  254. package/dist/infrastructure/fluxer/resources/webhooks.js.map +1 -1
  255. package/dist/infrastructure/fluxer/resources.d.ts +4 -0
  256. package/dist/infrastructure/fluxer/resources.d.ts.map +1 -1
  257. package/dist/infrastructure/fluxer/resources.js +12 -0
  258. package/dist/infrastructure/fluxer/resources.js.map +1 -1
  259. package/dist/ports/resources/cache.d.ts +74 -0
  260. package/dist/ports/resources/cache.d.ts.map +1 -0
  261. package/dist/ports/resources/cache.js +2 -0
  262. package/dist/ports/resources/cache.js.map +1 -0
  263. package/dist/ports/resources/channels.d.ts +17 -0
  264. package/dist/ports/resources/channels.d.ts.map +1 -1
  265. package/dist/ports/resources/channels.js.map +1 -1
  266. package/dist/ports/resources/collectors.d.ts +18 -0
  267. package/dist/ports/resources/collectors.d.ts.map +1 -1
  268. package/dist/ports/resources/collectors.js.map +1 -1
  269. package/dist/ports/resources/common.d.ts +2 -0
  270. package/dist/ports/resources/common.d.ts.map +1 -1
  271. package/dist/ports/resources/common.js.map +1 -1
  272. package/dist/ports/resources/expressions.d.ts +8 -0
  273. package/dist/ports/resources/expressions.d.ts.map +1 -1
  274. package/dist/ports/resources/expressions.js.map +1 -1
  275. package/dist/ports/resources/gateway.d.ts +48 -0
  276. package/dist/ports/resources/gateway.d.ts.map +1 -0
  277. package/dist/ports/resources/gateway.js +2 -0
  278. package/dist/ports/resources/gateway.js.map +1 -0
  279. package/dist/ports/resources/instance.d.ts +101 -0
  280. package/dist/ports/resources/instance.d.ts.map +1 -0
  281. package/dist/ports/resources/instance.js +2 -0
  282. package/dist/ports/resources/instance.js.map +1 -0
  283. package/dist/ports/resources/messages.d.ts +27 -0
  284. package/dist/ports/resources/messages.d.ts.map +1 -1
  285. package/dist/ports/resources/messages.js.map +1 -1
  286. package/dist/ports/resources/roles.d.ts +6 -0
  287. package/dist/ports/resources/roles.d.ts.map +1 -1
  288. package/dist/ports/resources/roles.js.map +1 -1
  289. package/dist/ports/resources/self.d.ts +30 -0
  290. package/dist/ports/resources/self.d.ts.map +1 -0
  291. package/dist/ports/resources/self.js +2 -0
  292. package/dist/ports/resources/self.js.map +1 -0
  293. package/dist/ports/resources/threads.d.ts +16 -0
  294. package/dist/ports/resources/threads.d.ts.map +1 -1
  295. package/dist/ports/resources/threads.js.map +1 -1
  296. package/dist/ports/resources/users.d.ts +30 -0
  297. package/dist/ports/resources/users.d.ts.map +1 -1
  298. package/dist/ports/resources/users.js.map +1 -1
  299. package/dist/ports/resources/webhooks.d.ts +5 -0
  300. package/dist/ports/resources/webhooks.d.ts.map +1 -1
  301. package/dist/ports/resources/webhooks.js.map +1 -1
  302. package/dist/ports/resources.d.ts +8 -0
  303. package/dist/ports/resources.d.ts.map +1 -1
  304. package/dist/ports/resources.js.map +1 -1
  305. package/dist/ports/script-engine.d.ts +45 -0
  306. package/dist/ports/script-engine.d.ts.map +1 -0
  307. package/dist/ports/script-engine.js +2 -0
  308. package/dist/ports/script-engine.js.map +1 -0
  309. package/dist/sdk/builders.d.ts +2 -0
  310. package/dist/sdk/builders.d.ts.map +1 -0
  311. package/dist/sdk/builders.js +2 -0
  312. package/dist/sdk/builders.js.map +1 -0
  313. package/dist/sdk/client.d.ts +2 -0
  314. package/dist/sdk/client.d.ts.map +1 -0
  315. package/dist/sdk/client.js +2 -0
  316. package/dist/sdk/client.js.map +1 -0
  317. package/dist/sdk/cluster.d.ts +2 -0
  318. package/dist/sdk/cluster.d.ts.map +1 -0
  319. package/dist/sdk/cluster.js +2 -0
  320. package/dist/sdk/cluster.js.map +1 -0
  321. package/dist/sdk/collection.d.ts +2 -0
  322. package/dist/sdk/collection.d.ts.map +1 -0
  323. package/dist/sdk/collection.js +2 -0
  324. package/dist/sdk/collection.js.map +1 -0
  325. package/dist/sdk/errors.d.ts +2 -0
  326. package/dist/sdk/errors.d.ts.map +1 -0
  327. package/dist/sdk/errors.js +2 -0
  328. package/dist/sdk/errors.js.map +1 -0
  329. package/dist/sdk/internal.d.ts +2 -0
  330. package/dist/sdk/internal.d.ts.map +1 -0
  331. package/dist/sdk/internal.js +2 -0
  332. package/dist/sdk/internal.js.map +1 -0
  333. package/dist/sdk/message.d.ts +2 -0
  334. package/dist/sdk/message.d.ts.map +1 -0
  335. package/dist/sdk/message.js +2 -0
  336. package/dist/sdk/message.js.map +1 -0
  337. package/dist/sdk/rest/request-manager.d.ts +2 -0
  338. package/dist/sdk/rest/request-manager.d.ts.map +1 -0
  339. package/dist/sdk/rest/request-manager.js +2 -0
  340. package/dist/sdk/rest/request-manager.js.map +1 -0
  341. package/dist/sdk/rest.d.ts +2 -0
  342. package/dist/sdk/rest.d.ts.map +1 -0
  343. package/dist/sdk/rest.js +2 -0
  344. package/dist/sdk/rest.js.map +1 -0
  345. package/dist/sdk/sharding.d.ts +2 -0
  346. package/dist/sdk/sharding.d.ts.map +1 -0
  347. package/dist/sdk/sharding.js +2 -0
  348. package/dist/sdk/sharding.js.map +1 -0
  349. package/dist/sdk/types/routes.d.ts +2 -0
  350. package/dist/sdk/types/routes.d.ts.map +1 -0
  351. package/dist/sdk/types/routes.js +2 -0
  352. package/dist/sdk/types/routes.js.map +1 -0
  353. package/dist/sdk/types.d.ts +2 -0
  354. package/dist/sdk/types.d.ts.map +1 -0
  355. package/dist/sdk/types.js +2 -0
  356. package/dist/sdk/types.js.map +1 -0
  357. package/dist/sdk/util.d.ts +2 -0
  358. package/dist/sdk/util.d.ts.map +1 -0
  359. package/dist/sdk/util.js +2 -0
  360. package/dist/sdk/util.js.map +1 -0
  361. package/dist/sdk/voice.d.ts +2 -0
  362. package/dist/sdk/voice.d.ts.map +1 -0
  363. package/dist/sdk/voice.js +2 -0
  364. package/dist/sdk/voice.js.map +1 -0
  365. package/dist/sdk/ws.d.ts +2 -0
  366. package/dist/sdk/ws.d.ts.map +1 -0
  367. package/dist/sdk/ws.js +2 -0
  368. package/dist/sdk/ws.js.map +1 -0
  369. package/dist/services/canvas-image.d.ts +12 -0
  370. package/dist/services/canvas-image.d.ts.map +1 -0
  371. package/dist/services/canvas-image.js +56 -0
  372. package/dist/services/canvas-image.js.map +1 -0
  373. package/dist/services/canvas.d.ts +12 -2
  374. package/dist/services/canvas.d.ts.map +1 -1
  375. package/dist/services/canvas.js +91 -5
  376. package/dist/services/canvas.js.map +1 -1
  377. package/dist/services/moderation.d.ts +1 -0
  378. package/dist/services/moderation.d.ts.map +1 -1
  379. package/dist/services/moderation.js +11 -0
  380. package/dist/services/moderation.js.map +1 -1
  381. package/dist/services/native-moderation.d.ts +6 -1
  382. package/dist/services/native-moderation.d.ts.map +1 -1
  383. package/dist/services/native-moderation.js +11 -1
  384. package/dist/services/native-moderation.js.map +1 -1
  385. package/dist/services/resource-authorization.d.ts.map +1 -1
  386. package/dist/services/resource-authorization.js +95 -3
  387. package/dist/services/resource-authorization.js.map +1 -1
  388. package/dist/testing.d.ts.map +1 -1
  389. package/dist/testing.js +4 -0
  390. package/dist/testing.js.map +1 -1
  391. package/docs/API.md +8 -7
  392. package/docs/ARCHITECTURE.md +14 -9
  393. package/docs/BENCHMARKS.md +1 -1
  394. package/docs/CANVAS.md +70 -15
  395. package/docs/EDITOR.md +1 -1
  396. package/docs/FRAMEWORK.md +2 -3
  397. package/docs/HTTP.md +1 -1
  398. package/docs/IMAGES.md +2 -1
  399. package/docs/NATIVE.md +45 -14
  400. package/docs/PARITY-MATRIX.md +853 -843
  401. package/docs/PARITY.md +24 -12
  402. package/docs/PLAN.md +14 -3
  403. package/docs/QUICKSTART.md +5 -5
  404. package/docs/README.md +7 -7
  405. package/docs/REPOSITORY.md +1 -1
  406. package/docs/SCHEDULER.md +1 -1
  407. package/docs/TROUBLESHOOTING.md +1 -1
  408. package/docs/VALIDATION.md +5 -5
  409. package/docs/{FUNCTION-GAPS.md → functions/FUNCTION-GAPS.md} +18 -13
  410. package/docs/{LANGUAGE.md → functions/LANGUAGE.md} +7 -7
  411. package/docs/functions/README.md +33 -0
  412. package/docs/tutorials/DATA.md +2 -2
  413. package/docs/tutorials/FUNCTION-MODE.md +2 -2
  414. package/examples/canvas/napi-style.ts +24 -0
  415. package/examples/canvas/output/napi-style.png +0 -0
  416. package/examples/canvas/profile.d.mts +1 -1
  417. package/examples/canvas/profile.mjs +2 -2
  418. package/examples/canvas/profile.ts +3 -3
  419. package/examples/canvas/ranking.d.mts +1 -1
  420. package/examples/canvas/ranking.mjs +2 -2
  421. package/examples/canvas/ranking.ts +3 -3
  422. package/examples/canvas/render.ts +2 -1
  423. package/examples/canvas/welcome.d.mts +1 -1
  424. package/examples/canvas/welcome.mjs +2 -2
  425. package/examples/canvas/welcome.ts +3 -3
  426. package/examples/embeds/complete-embed-functions.ts +2 -2
  427. package/examples/function-mode.ts +3 -3
  428. package/examples/yuzuha.config.js +2 -0
  429. package/package.json +26 -1
  430. package/src/canvas/card.ts +20 -0
  431. package/src/canvas.ts +69 -17
  432. package/src/cli/config.ts +2 -1
  433. package/src/cli/lint.ts +1 -2
  434. package/src/cli/main.ts +8 -9
  435. package/src/cli/scaffold.ts +1 -1
  436. package/src/cli/scenarios.ts +2 -1
  437. package/src/commands/context.ts +9 -2
  438. package/src/domain/resource-batches.ts +31 -0
  439. package/src/framework/bot.ts +44 -27
  440. package/src/framework/command-registry.ts +15 -10
  441. package/src/framework/options.ts +3 -3
  442. package/src/{scripting → functions}/builtins/canvas.ts +2 -2
  443. package/src/{scripting → functions}/builtins/context.ts +1 -1
  444. package/src/{scripting → functions}/builtins/definition.ts +1 -1
  445. package/src/{scripting → functions}/builtins/embeds.ts +1 -1
  446. package/src/{scripting → functions}/builtins/flow.ts +2 -2
  447. package/src/{scripting → functions}/builtins/guards.ts +1 -1
  448. package/src/{scripting → functions}/builtins/http.ts +2 -2
  449. package/src/{scripting → functions}/builtins/index.ts +2 -2
  450. package/src/{scripting → functions}/builtins/language/array-callbacks.ts +2 -2
  451. package/src/{scripting → functions}/builtins/language/arrays.ts +1 -1
  452. package/src/{scripting → functions}/builtins/language/index.ts +1 -1
  453. package/src/{scripting → functions}/builtins/language/loops.ts +4 -4
  454. package/src/{scripting → functions}/builtins/language/regex.ts +1 -1
  455. package/src/{scripting → functions}/builtins/moderation.ts +1 -1
  456. package/src/{scripting → functions}/builtins/native-channels.ts +1 -1
  457. package/src/{scripting → functions}/builtins/native-roles.ts +1 -1
  458. package/src/{scripting → functions}/builtins/native-users.ts +1 -1
  459. package/src/{scripting → functions}/builtins/payload.ts +2 -2
  460. package/src/{scripting → functions}/builtins/resource-extras.ts +1 -1
  461. package/src/{scripting → functions}/builtins/values.ts +1 -1
  462. package/src/{scripting → functions/runtime}/canvas-execution.ts +1 -1
  463. package/src/{scripting → functions/runtime}/evaluator.ts +2 -2
  464. package/src/{scripting → functions/runtime}/limits.ts +1 -1
  465. package/src/{scripting → functions/runtime}/parser.ts +1 -1
  466. package/src/{scripting → functions/runtime}/regex.ts +1 -1
  467. package/src/{scripting → functions/runtime}/registry.ts +1 -1
  468. package/src/{scripting → functions/runtime}/runtime.ts +6 -1
  469. package/src/{scripting → functions/runtime}/types.ts +1 -1
  470. package/src/functions.ts +28 -8
  471. package/src/index.ts +9 -2
  472. package/src/infrastructure/canvas/napi.ts +17 -0
  473. package/src/infrastructure/fluxer/resources/cache.ts +69 -0
  474. package/src/infrastructure/fluxer/resources/channels.ts +51 -3
  475. package/src/infrastructure/fluxer/resources/collectors.ts +87 -4
  476. package/src/infrastructure/fluxer/resources/expressions.ts +7 -1
  477. package/src/infrastructure/fluxer/resources/gateway.ts +33 -0
  478. package/src/infrastructure/fluxer/resources/instance.ts +105 -0
  479. package/src/infrastructure/fluxer/resources/messages.ts +84 -36
  480. package/src/infrastructure/fluxer/resources/roles.ts +8 -0
  481. package/src/infrastructure/fluxer/resources/self.ts +39 -0
  482. package/src/infrastructure/fluxer/resources/threads.ts +14 -0
  483. package/src/infrastructure/fluxer/resources/users.ts +40 -4
  484. package/src/infrastructure/fluxer/resources/webhooks.ts +9 -0
  485. package/src/infrastructure/fluxer/resources.ts +12 -0
  486. package/src/ports/resources/cache.ts +81 -0
  487. package/src/ports/resources/channels.ts +12 -0
  488. package/src/ports/resources/collectors.ts +20 -0
  489. package/src/ports/resources/common.ts +2 -0
  490. package/src/ports/resources/expressions.ts +6 -0
  491. package/src/ports/resources/gateway.ts +49 -0
  492. package/src/ports/resources/instance.ts +109 -0
  493. package/src/ports/resources/messages.ts +30 -0
  494. package/src/ports/resources/roles.ts +3 -0
  495. package/src/ports/resources/self.ts +30 -0
  496. package/src/ports/resources/threads.ts +15 -0
  497. package/src/ports/resources/users.ts +33 -0
  498. package/src/ports/resources/webhooks.ts +6 -0
  499. package/src/ports/resources.ts +8 -0
  500. package/src/ports/script-engine.ts +42 -0
  501. package/src/sdk/builders.ts +1 -0
  502. package/src/sdk/client.ts +1 -0
  503. package/src/sdk/cluster.ts +1 -0
  504. package/src/sdk/collection.ts +1 -0
  505. package/src/sdk/errors.ts +1 -0
  506. package/src/sdk/internal.ts +1 -0
  507. package/src/sdk/message.ts +1 -0
  508. package/src/sdk/rest/request-manager.ts +1 -0
  509. package/src/sdk/rest.ts +1 -0
  510. package/src/sdk/sharding.ts +1 -0
  511. package/src/sdk/types/routes.ts +1 -0
  512. package/src/sdk/types.ts +1 -0
  513. package/src/sdk/util.ts +1 -0
  514. package/src/sdk/voice.ts +1 -0
  515. package/src/sdk/ws.ts +1 -0
  516. package/src/services/canvas-image.ts +54 -0
  517. package/src/services/canvas.ts +89 -6
  518. package/src/services/moderation.ts +4 -0
  519. package/src/services/native-moderation.ts +11 -1
  520. package/src/services/resource-authorization.ts +89 -3
  521. package/src/testing.ts +4 -0
  522. package/dist/parser.d.ts +0 -3
  523. package/dist/parser.d.ts.map +0 -1
  524. package/dist/parser.js +0 -2
  525. package/dist/parser.js.map +0 -1
  526. package/dist/runtime.d.ts +0 -5
  527. package/dist/runtime.d.ts.map +0 -1
  528. package/dist/runtime.js +0 -4
  529. package/dist/runtime.js.map +0 -1
  530. package/dist/scripting/ast.d.ts.map +0 -1
  531. package/dist/scripting/ast.js.map +0 -1
  532. package/dist/scripting/builtins/canvas.d.ts +0 -2
  533. package/dist/scripting/builtins/canvas.d.ts.map +0 -1
  534. package/dist/scripting/builtins/context.d.ts +0 -2
  535. package/dist/scripting/builtins/context.d.ts.map +0 -1
  536. package/dist/scripting/builtins/definition.d.ts.map +0 -1
  537. package/dist/scripting/builtins/definition.js.map +0 -1
  538. package/dist/scripting/builtins/embeds.d.ts +0 -3
  539. package/dist/scripting/builtins/embeds.js.map +0 -1
  540. package/dist/scripting/builtins/events.d.ts +0 -2
  541. package/dist/scripting/builtins/events.d.ts.map +0 -1
  542. package/dist/scripting/builtins/flow.d.ts +0 -2
  543. package/dist/scripting/builtins/flow.d.ts.map +0 -1
  544. package/dist/scripting/builtins/flow.js.map +0 -1
  545. package/dist/scripting/builtins/guards.d.ts +0 -2
  546. package/dist/scripting/builtins/guards.d.ts.map +0 -1
  547. package/dist/scripting/builtins/guards.js.map +0 -1
  548. package/dist/scripting/builtins/http.d.ts +0 -2
  549. package/dist/scripting/builtins/http.d.ts.map +0 -1
  550. package/dist/scripting/builtins/http.js.map +0 -1
  551. package/dist/scripting/builtins/index.d.ts +0 -5
  552. package/dist/scripting/builtins/index.d.ts.map +0 -1
  553. package/dist/scripting/builtins/index.js.map +0 -1
  554. package/dist/scripting/builtins/language/array-callbacks.d.ts +0 -2
  555. package/dist/scripting/builtins/language/array-callbacks.d.ts.map +0 -1
  556. package/dist/scripting/builtins/language/arrays.d.ts +0 -2
  557. package/dist/scripting/builtins/language/arrays.d.ts.map +0 -1
  558. package/dist/scripting/builtins/language/decimals.d.ts +0 -2
  559. package/dist/scripting/builtins/language/decimals.d.ts.map +0 -1
  560. package/dist/scripting/builtins/language/index.d.ts +0 -3
  561. package/dist/scripting/builtins/language/index.d.ts.map +0 -1
  562. package/dist/scripting/builtins/language/index.js.map +0 -1
  563. package/dist/scripting/builtins/language/loops.d.ts +0 -4
  564. package/dist/scripting/builtins/language/numbers.d.ts +0 -2
  565. package/dist/scripting/builtins/language/numbers.d.ts.map +0 -1
  566. package/dist/scripting/builtins/language/regex.d.ts +0 -2
  567. package/dist/scripting/builtins/language/regex.d.ts.map +0 -1
  568. package/dist/scripting/builtins/language/sort.d.ts +0 -2
  569. package/dist/scripting/builtins/language/sort.d.ts.map +0 -1
  570. package/dist/scripting/builtins/language/texts.d.ts +0 -2
  571. package/dist/scripting/builtins/language/texts.d.ts.map +0 -1
  572. package/dist/scripting/builtins/messages.d.ts +0 -2
  573. package/dist/scripting/builtins/messages.d.ts.map +0 -1
  574. package/dist/scripting/builtins/moderation.d.ts +0 -2
  575. package/dist/scripting/builtins/moderation.d.ts.map +0 -1
  576. package/dist/scripting/builtins/native-channels.d.ts +0 -2
  577. package/dist/scripting/builtins/native-channels.d.ts.map +0 -1
  578. package/dist/scripting/builtins/native-collectors.d.ts +0 -2
  579. package/dist/scripting/builtins/native-collectors.d.ts.map +0 -1
  580. package/dist/scripting/builtins/native-expressions.d.ts +0 -2
  581. package/dist/scripting/builtins/native-expressions.d.ts.map +0 -1
  582. package/dist/scripting/builtins/native-invites.d.ts +0 -2
  583. package/dist/scripting/builtins/native-invites.d.ts.map +0 -1
  584. package/dist/scripting/builtins/native-messages.d.ts +0 -2
  585. package/dist/scripting/builtins/native-messages.d.ts.map +0 -1
  586. package/dist/scripting/builtins/native-roles.d.ts +0 -2
  587. package/dist/scripting/builtins/native-roles.d.ts.map +0 -1
  588. package/dist/scripting/builtins/native-threads.d.ts +0 -2
  589. package/dist/scripting/builtins/native-threads.d.ts.map +0 -1
  590. package/dist/scripting/builtins/native-users.d.ts +0 -2
  591. package/dist/scripting/builtins/native-users.d.ts.map +0 -1
  592. package/dist/scripting/builtins/native-webhooks.d.ts +0 -2
  593. package/dist/scripting/builtins/native-webhooks.d.ts.map +0 -1
  594. package/dist/scripting/builtins/payload.d.ts.map +0 -1
  595. package/dist/scripting/builtins/payload.js.map +0 -1
  596. package/dist/scripting/builtins/resource-extras.d.ts +0 -2
  597. package/dist/scripting/builtins/resource-extras.d.ts.map +0 -1
  598. package/dist/scripting/builtins/schedule.d.ts +0 -2
  599. package/dist/scripting/builtins/schedule.d.ts.map +0 -1
  600. package/dist/scripting/builtins/storage.d.ts +0 -2
  601. package/dist/scripting/builtins/storage.d.ts.map +0 -1
  602. package/dist/scripting/builtins/values.d.ts +0 -2
  603. package/dist/scripting/builtins/values.d.ts.map +0 -1
  604. package/dist/scripting/builtins/values.js.map +0 -1
  605. package/dist/scripting/canvas-execution.d.ts.map +0 -1
  606. package/dist/scripting/canvas-execution.js.map +0 -1
  607. package/dist/scripting/control-flow.d.ts.map +0 -1
  608. package/dist/scripting/control-flow.js.map +0 -1
  609. package/dist/scripting/evaluator.d.ts.map +0 -1
  610. package/dist/scripting/evaluator.js.map +0 -1
  611. package/dist/scripting/limits.d.ts.map +0 -1
  612. package/dist/scripting/limits.js.map +0 -1
  613. package/dist/scripting/parser.d.ts.map +0 -1
  614. package/dist/scripting/parser.js.map +0 -1
  615. package/dist/scripting/regex.d.ts.map +0 -1
  616. package/dist/scripting/regex.js.map +0 -1
  617. package/dist/scripting/registry.d.ts.map +0 -1
  618. package/dist/scripting/registry.js.map +0 -1
  619. package/dist/scripting/runtime.d.ts.map +0 -1
  620. package/dist/scripting/runtime.js.map +0 -1
  621. package/dist/scripting/types.d.ts.map +0 -1
  622. package/dist/scripting/types.js.map +0 -1
  623. package/dist/scripting/values.d.ts.map +0 -1
  624. package/dist/scripting/values.js.map +0 -1
  625. package/src/parser.ts +0 -2
  626. package/src/runtime.ts +0 -4
  627. /package/dist/{scripting → functions}/builtins/arguments.d.ts +0 -0
  628. /package/dist/{scripting → functions}/builtins/arguments.js +0 -0
  629. /package/dist/{scripting → functions}/builtins/context.js +0 -0
  630. /package/dist/{scripting → functions}/builtins/definition.js +0 -0
  631. /package/dist/{scripting → functions}/builtins/events.js +0 -0
  632. /package/dist/{scripting → functions}/builtins/index.js +0 -0
  633. /package/dist/{scripting → functions}/builtins/language/common.d.ts +0 -0
  634. /package/dist/{scripting → functions}/builtins/language/common.js +0 -0
  635. /package/dist/{scripting → functions}/builtins/language/decimals.js +0 -0
  636. /package/dist/{scripting → functions}/builtins/language/index.js +0 -0
  637. /package/dist/{scripting → functions}/builtins/language/numbers.js +0 -0
  638. /package/dist/{scripting → functions}/builtins/language/objects.js +0 -0
  639. /package/dist/{scripting → functions}/builtins/language/sort.js +0 -0
  640. /package/dist/{scripting → functions}/builtins/language/state.js +0 -0
  641. /package/dist/{scripting → functions}/builtins/language/texts.js +0 -0
  642. /package/dist/{scripting → functions}/builtins/messages.js +0 -0
  643. /package/dist/{scripting → functions}/builtins/moderation.js +0 -0
  644. /package/dist/{scripting → functions}/builtins/native-channels.js +0 -0
  645. /package/dist/{scripting → functions}/builtins/native-collectors.js +0 -0
  646. /package/dist/{scripting → functions}/builtins/native-expressions.js +0 -0
  647. /package/dist/{scripting → functions}/builtins/native-invites.js +0 -0
  648. /package/dist/{scripting → functions}/builtins/native-messages.js +0 -0
  649. /package/dist/{scripting → functions}/builtins/native-roles.js +0 -0
  650. /package/dist/{scripting → functions}/builtins/native-threads.js +0 -0
  651. /package/dist/{scripting → functions}/builtins/native-users.js +0 -0
  652. /package/dist/{scripting → functions}/builtins/native-webhooks.js +0 -0
  653. /package/dist/{scripting → functions}/builtins/resource-extras.js +0 -0
  654. /package/dist/{scripting → functions}/builtins/schedule.js +0 -0
  655. /package/dist/{scripting → functions}/builtins/storage.js +0 -0
  656. /package/dist/{scripting → functions/runtime}/ast.d.ts +0 -0
  657. /package/dist/{scripting → functions/runtime}/ast.js +0 -0
  658. /package/dist/{scripting → functions/runtime}/canvas-execution.js +0 -0
  659. /package/dist/{scripting → functions/runtime}/control-flow.d.ts +0 -0
  660. /package/dist/{scripting → functions/runtime}/control-flow.js +0 -0
  661. /package/dist/{scripting → functions/runtime}/limits.d.ts +0 -0
  662. /package/dist/{scripting → functions/runtime}/parser.d.ts +0 -0
  663. /package/dist/{scripting → functions/runtime}/regex-worker.mjs +0 -0
  664. /package/dist/{scripting → functions/runtime}/regex.d.ts +0 -0
  665. /package/dist/{scripting → functions/runtime}/registry.d.ts +0 -0
  666. /package/dist/{scripting → functions/runtime}/types.js +0 -0
  667. /package/dist/{scripting → functions/runtime}/values.d.ts +0 -0
  668. /package/dist/{scripting → functions/runtime}/values.js +0 -0
  669. /package/docs/{FUNCTIONS.md → functions/FUNCTIONS.md} +0 -0
  670. /package/docs/{LANGUAGE-EXTENSIONS.md → functions/LANGUAGE-EXTENSIONS.md} +0 -0
  671. /package/src/{scripting → functions}/builtins/arguments.ts +0 -0
  672. /package/src/{scripting → functions}/builtins/events.ts +0 -0
  673. /package/src/{scripting → functions}/builtins/language/common.ts +0 -0
  674. /package/src/{scripting → functions}/builtins/language/decimals.ts +0 -0
  675. /package/src/{scripting → functions}/builtins/language/numbers.ts +0 -0
  676. /package/src/{scripting → functions}/builtins/language/objects.ts +0 -0
  677. /package/src/{scripting → functions}/builtins/language/sort.ts +0 -0
  678. /package/src/{scripting → functions}/builtins/language/state.ts +0 -0
  679. /package/src/{scripting → functions}/builtins/language/texts.ts +0 -0
  680. /package/src/{scripting → functions}/builtins/messages.ts +0 -0
  681. /package/src/{scripting → functions}/builtins/native-collectors.ts +0 -0
  682. /package/src/{scripting → functions}/builtins/native-expressions.ts +0 -0
  683. /package/src/{scripting → functions}/builtins/native-invites.ts +0 -0
  684. /package/src/{scripting → functions}/builtins/native-messages.ts +0 -0
  685. /package/src/{scripting → functions}/builtins/native-threads.ts +0 -0
  686. /package/src/{scripting → functions}/builtins/native-webhooks.ts +0 -0
  687. /package/src/{scripting → functions}/builtins/schedule.ts +0 -0
  688. /package/src/{scripting → functions}/builtins/storage.ts +0 -0
  689. /package/src/{scripting → functions/runtime}/ast.ts +0 -0
  690. /package/src/{scripting → functions/runtime}/control-flow.ts +0 -0
  691. /package/src/{scripting → functions/runtime}/regex-worker.mjs +0 -0
  692. /package/src/{scripting → functions/runtime}/values.ts +0 -0
@@ -1,4 +1,4 @@
1
- import { runRegex } from '../../regex.js';
1
+ import { runRegex } from '../../runtime/regex.js';
2
2
  import { defineFunctions } from '../definition.js';
3
3
  import { integer } from './common.js';
4
4
  export const regexFunctions = defineFunctions(fn => {
@@ -1 +1 @@
1
- {"version":3,"file":"regex.js","sourceRoot":"","sources":["../../../../src/scripting/builtins/language/regex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAAC,EAAE,CAAC,EAAE;IACjD,KAAK,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC,EAAE,CAAC,cAAc,EAAE,SAAS,CAAC,CAAU,EAAE,CAAC;QACvH,MAAM,SAAS,GAAG,SAAS,KAAK,SAAS,CAAC;QAC1C,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACvD,SAAS,CAAC,CAAC,CAAC,+CAA+C,CAAC,CAAC,CAAC,kCAAkC,EAChG,wGAAwG,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;YAClH,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,OAAO,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC1E,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;gBACpD,KAAK,EAAE,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;gBACzD,SAAS,EAAE,CAAC,CAAC,KAAK,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;gBAC9F,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACP,CAAC;AACH,CAAC,CAAC,CAAC","sourcesContent":["import { runRegex } from '../../regex.js';\nimport { defineFunctions } from '../definition.js';\nimport { integer } from './common.js';\n\nexport const regexFunctions = defineFunctions(fn => {\n for (const [name, operation] of [['regexTest', 'test'], ['regexMatch', 'match'], ['regexReplace', 'replace']] as const) {\n const replacing = operation === 'replace';\n fn(name, 'language', replacing ? 3 : 2, replacing ? 5 : 4,\n replacing ? '[texto;padrão;substituição;flags?;timeoutMs?]' : '[texto;padrão;flags?;timeoutMs?]',\n 'Regex em worker isolado; flags gimsu, prazo padrão 500 ms, até 1000 correspondências e saída limitada.', async c => {\n const flagIndex = replacing ? 3 : 2;\n return runRegex({ operation, text: await c.text(0), pattern: await c.text(1),\n replacement: replacing ? await c.text(2) : undefined,\n flags: c.count > flagIndex ? await c.text(flagIndex) : '',\n timeoutMs: c.count > flagIndex + 1 ? integer(await c.text(flagIndex + 1), 'Prazo') : undefined,\n signal: c.ctx.signal });\n });\n }\n});\n"]}
1
+ {"version":3,"file":"regex.js","sourceRoot":"","sources":["../../../../src/functions/builtins/language/regex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAAC,EAAE,CAAC,EAAE;IACjD,KAAK,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC,EAAE,CAAC,cAAc,EAAE,SAAS,CAAC,CAAU,EAAE,CAAC;QACvH,MAAM,SAAS,GAAG,SAAS,KAAK,SAAS,CAAC;QAC1C,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACvD,SAAS,CAAC,CAAC,CAAC,+CAA+C,CAAC,CAAC,CAAC,kCAAkC,EAChG,wGAAwG,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;YAClH,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,OAAO,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC1E,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;gBACpD,KAAK,EAAE,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;gBACzD,SAAS,EAAE,CAAC,CAAC,KAAK,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;gBAC9F,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACP,CAAC;AACH,CAAC,CAAC,CAAC","sourcesContent":["import { runRegex } from '../../runtime/regex.js';\nimport { defineFunctions } from '../definition.js';\nimport { integer } from './common.js';\n\nexport const regexFunctions = defineFunctions(fn => {\n for (const [name, operation] of [['regexTest', 'test'], ['regexMatch', 'match'], ['regexReplace', 'replace']] as const) {\n const replacing = operation === 'replace';\n fn(name, 'language', replacing ? 3 : 2, replacing ? 5 : 4,\n replacing ? '[texto;padrão;substituição;flags?;timeoutMs?]' : '[texto;padrão;flags?;timeoutMs?]',\n 'Regex em worker isolado; flags gimsu, prazo padrão 500 ms, até 1000 correspondências e saída limitada.', async c => {\n const flagIndex = replacing ? 3 : 2;\n return runRegex({ operation, text: await c.text(0), pattern: await c.text(1),\n replacement: replacing ? await c.text(2) : undefined,\n flags: c.count > flagIndex ? await c.text(flagIndex) : '',\n timeoutMs: c.count > flagIndex + 1 ? integer(await c.text(flagIndex + 1), 'Prazo') : undefined,\n signal: c.ctx.signal });\n });\n }\n});\n"]}
@@ -0,0 +1,2 @@
1
+ export declare const comparatorFunctions: import("../../runtime/types.js").FunctionDefinition[];
2
+ //# sourceMappingURL=sort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sort.d.ts","sourceRoot":"","sources":["../../../../src/functions/builtins/language/sort.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,mBAAmB,uDAwC9B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sort.js","sourceRoot":"","sources":["../../../../src/scripting/builtins/language/sort.ts"],"names":[],"mappings":"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","sourcesContent":["import { YuzuhaError } from '../../../errors.js';\nimport { defineFunctions } from '../definition.js';\nimport { requireArray } from './common.js';\nimport { withLoopState } from './loops.js';\nimport { LOOP_MAX } from './state.js';\n\nconst LEFT = '__sortLeft';\nconst RIGHT = '__sortRight';\n\nexport const comparatorFunctions = defineFunctions(fn => {\n fn('sortLeft', 'language', 0, 0, '', 'Item da esquerda no comparador de arraySortWith; vazio fora dele.', c => c.ctx.vars.has(LEFT) ? c.ctx.vars.get(LEFT) : '');\n fn('sortRight', 'language', 0, 0, '', 'Item da direita no comparador de arraySortWith; vazio fora dele.', c => c.ctx.vars.has(RIGHT) ? c.ctx.vars.get(RIGHT) : '');\n fn('arraySortWith', 'language', 2, 2, '[array;comparador]', 'Ordenação estável com expressão numérica negativa/zero/positiva; máximo 1000 itens e 10000 comparações.', async c => {\n const input = requireArray(await c.arg(0));\n if (input.length > LOOP_MAX) throw new YuzuhaError('EXECUTION_LIMIT', `Array excede ${LOOP_MAX} itens.`);\n const saved = new Map([LEFT, RIGHT].filter(key => c.ctx.vars.has(key)).map(key => [key, c.ctx.vars.get(key)]));\n return withLoopState(c, async () => {\n let values = [...input];\n let comparisons = 0;\n try {\n for (let width = 1; width < values.length; width *= 2) {\n const merged: unknown[] = [];\n for (let start = 0; start < values.length; start += 2 * width) {\n const middle = Math.min(start + width, values.length);\n const end = Math.min(start + 2 * width, values.length);\n let left = start, right = middle;\n while (left < middle && right < end) {\n if (++comparisons > 10_000) throw new YuzuhaError('EXECUTION_LIMIT', 'Limite de comparações excedido.');\n c.ctx.vars.set(LEFT, values[left]);\n c.ctx.vars.set(RIGHT, values[right]);\n const raw = await c.fresh(1);\n const order = typeof raw === 'number' || (typeof raw === 'string' && raw.trim()) ? Number(raw) : NaN;\n if (!Number.isFinite(order)) throw new YuzuhaError('SORT_COMPARATOR', 'Comparador deve retornar um número finito.');\n merged.push(order <= 0 ? values[left++] : values[right++]);\n }\n merged.push(...values.slice(left, middle), ...values.slice(right, end));\n }\n values = merged;\n }\n c.checkOutput(values);\n return values;\n } finally {\n for (const key of [LEFT, RIGHT]) {\n if (saved.has(key)) c.ctx.vars.set(key, saved.get(key));\n else c.ctx.vars.delete(key);\n }\n }\n });\n });\n});\n"]}
1
+ {"version":3,"file":"sort.js","sourceRoot":"","sources":["../../../../src/functions/builtins/language/sort.ts"],"names":[],"mappings":"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","sourcesContent":["import { YuzuhaError } from '../../../errors.js';\nimport { defineFunctions } from '../definition.js';\nimport { requireArray } from './common.js';\nimport { withLoopState } from './loops.js';\nimport { LOOP_MAX } from './state.js';\n\nconst LEFT = '__sortLeft';\nconst RIGHT = '__sortRight';\n\nexport const comparatorFunctions = defineFunctions(fn => {\n fn('sortLeft', 'language', 0, 0, '', 'Item da esquerda no comparador de arraySortWith; vazio fora dele.', c => c.ctx.vars.has(LEFT) ? c.ctx.vars.get(LEFT) : '');\n fn('sortRight', 'language', 0, 0, '', 'Item da direita no comparador de arraySortWith; vazio fora dele.', c => c.ctx.vars.has(RIGHT) ? c.ctx.vars.get(RIGHT) : '');\n fn('arraySortWith', 'language', 2, 2, '[array;comparador]', 'Ordenação estável com expressão numérica negativa/zero/positiva; máximo 1000 itens e 10000 comparações.', async c => {\n const input = requireArray(await c.arg(0));\n if (input.length > LOOP_MAX) throw new YuzuhaError('EXECUTION_LIMIT', `Array excede ${LOOP_MAX} itens.`);\n const saved = new Map([LEFT, RIGHT].filter(key => c.ctx.vars.has(key)).map(key => [key, c.ctx.vars.get(key)]));\n return withLoopState(c, async () => {\n let values = [...input];\n let comparisons = 0;\n try {\n for (let width = 1; width < values.length; width *= 2) {\n const merged: unknown[] = [];\n for (let start = 0; start < values.length; start += 2 * width) {\n const middle = Math.min(start + width, values.length);\n const end = Math.min(start + 2 * width, values.length);\n let left = start, right = middle;\n while (left < middle && right < end) {\n if (++comparisons > 10_000) throw new YuzuhaError('EXECUTION_LIMIT', 'Limite de comparações excedido.');\n c.ctx.vars.set(LEFT, values[left]);\n c.ctx.vars.set(RIGHT, values[right]);\n const raw = await c.fresh(1);\n const order = typeof raw === 'number' || (typeof raw === 'string' && raw.trim()) ? Number(raw) : NaN;\n if (!Number.isFinite(order)) throw new YuzuhaError('SORT_COMPARATOR', 'Comparador deve retornar um número finito.');\n merged.push(order <= 0 ? values[left++] : values[right++]);\n }\n merged.push(...values.slice(left, middle), ...values.slice(right, end));\n }\n values = merged;\n }\n c.checkOutput(values);\n return values;\n } finally {\n for (const key of [LEFT, RIGHT]) {\n if (saved.has(key)) c.ctx.vars.set(key, saved.get(key));\n else c.ctx.vars.delete(key);\n }\n }\n });\n });\n});\n"]}
@@ -2,5 +2,5 @@ export declare const LOOP_INDEX_KEY = "__loopIndex";
2
2
  export declare const LOOP_VALUE_KEY = "__loopValue";
3
3
  export declare const LOOP_ACCUMULATOR_KEY = "__loopAccumulator";
4
4
  export declare const LOOP_MAX = 1000;
5
- export declare const stateFunctions: import("../../types.js").FunctionDefinition[];
5
+ export declare const stateFunctions: import("../../runtime/types.js").FunctionDefinition[];
6
6
  //# sourceMappingURL=state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../../src/scripting/builtins/language/state.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,cAAc,gBAAgB,CAAC;AAC5C,eAAO,MAAM,cAAc,gBAAgB,CAAC;AAC5C,eAAO,MAAM,oBAAoB,sBAAsB,CAAC;AACxD,eAAO,MAAM,QAAQ,OAAO,CAAC;AAE7B,eAAO,MAAM,cAAc,+CA2DzB,CAAC"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../../src/functions/builtins/language/state.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,cAAc,gBAAgB,CAAC;AAC5C,eAAO,MAAM,cAAc,gBAAgB,CAAC;AAC5C,eAAO,MAAM,oBAAoB,sBAAsB,CAAC;AACxD,eAAO,MAAM,QAAQ,OAAO,CAAC;AAE7B,eAAO,MAAM,cAAc,uDA2DzB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../../src/scripting/builtins/language/state.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAC;AAC5C,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAC;AAC5C,MAAM,CAAC,MAAM,oBAAoB,GAAG,mBAAmB,CAAC;AACxD,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC;AAE7B,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAAC,EAAE,CAAC,EAAE;IACjD,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,CAAU,EAAE,CAAC;QAC1G,EAAE,CAAC,YAAY,MAAM,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,uEAAuE,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;YAC7I,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,MAAM,IAAI,WAAW,CAAC,WAAW,EAAE,kCAAkC,CAAC,CAAC;YACpG,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;gBACjD,MAAM,IAAI,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBACzJ,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAAE,MAAM,IAAI,WAAW,CAAC,WAAW,EAAE,iCAAiC,CAAC,CAAC;gBAC9H,MAAM,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAAE,MAAM,IAAI,WAAW,CAAC,WAAW,EAAE,mCAAmC,CAAC,CAAC;gBACpG,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACpB,OAAO,IAAI,CAAC;YACd,CAAC,EAAE,IAAI,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,OAAO,MAAM,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,cAAc,EAAE,qDAAqD,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;YACrH,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAc,CAAC;YAC9D,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;gBACjD,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;oBAAE,MAAM,IAAI,WAAW,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAC;gBACjH,MAAM,IAAI,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,CAAC,CAAC;gBAC5D,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACpB,OAAO,IAAI,CAAC;YACd,CAAC,EAAE,IAAI,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,OAAO,MAAM,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,cAAc,EAAE,4DAA4D,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;YAC5H,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAc,CAAC;YAChE,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;gBACjD,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;oBAAE,MAAM,IAAI,WAAW,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAC;gBACjH,MAAM,IAAI,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;gBACtF,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACpB,OAAO,IAAI,CAAC;YACd,CAAC,EAAE,IAAI,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,MAAM,MAAM,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,qBAAqB,EAAE,+GAA+G,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;YACzL,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;gBACjD,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;gBACnD,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACpB,OAAO,IAAI,CAAC;YACd,CAAC,EAAE,IAAI,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC;IACD,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,oBAAoB,EAAE,yEAAyE,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;QAC1I,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,IAAI,IAAI,GAAG,CAAC;YAAE,MAAM,IAAI,WAAW,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;QACxE,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,GAAG;YAAE,MAAM,IAAI,WAAW,CAAC,WAAW,EAAE,mCAAmC,CAAC,CAAC;QACpG,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5E,OAAO,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,wCAAwC,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;QACxF,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QACrC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import type { JsonValue } from '../../../domain/state.js';\nimport { YuzuhaError } from '../../../errors.js';\nimport { toJson } from '../arguments.js';\nimport { defineFunctions } from '../definition.js';\nimport { deepEqual, integer, typedScalar } from './common.js';\nimport { parsePath, setJsonPath } from './objects.js';\n\nexport const LOOP_INDEX_KEY = '__loopIndex';\nexport const LOOP_VALUE_KEY = '__loopValue';\nexport const LOOP_ACCUMULATOR_KEY = '__loopAccumulator';\nexport const LOOP_MAX = 1000;\n\nexport const stateFunctions = defineFunctions(fn => {\n for (const [suffix, property] of [['Var', 'global'], ['GuildVar', 'guild'], ['UserVar', 'user']] as const) {\n fn(`increment${suffix}`, 'language', 1, 2, '[nome;delta?]', 'Incrementa número persistente de forma atômica; retorna o novo valor.', async c => {\n const name = await c.text(0);\n const delta = c.count > 1 ? Number(await c.text(1)) : 1;\n if (!Number.isFinite(delta)) throw new YuzuhaError('INCREMENT', 'Delta deve ser um número finito.');\n return c.ctx.data[property].update(name, current => {\n const base = current === null ? 0 : typeof current === 'string' && current.trim() !== '' && Number.isFinite(Number(current)) ? Number(current) : current;\n if (typeof base !== 'number' || !Number.isFinite(base)) throw new YuzuhaError('INCREMENT', 'Variável atual não é um número.');\n const next = base + delta;\n if (!Number.isFinite(next)) throw new YuzuhaError('INCREMENT', 'Resultado não é um número finito.');\n c.checkOutput(next);\n return next;\n }, null);\n });\n fn(`push${suffix}`, 'language', 2, 2, '[nome;valor]', 'Adiciona item a array persistente; cria se ausente.', async c => {\n const name = await c.text(0);\n const item = typedScalar(toJson(await c.arg(1))) as JsonValue;\n return c.ctx.data[property].update(name, current => {\n if (current !== null && !Array.isArray(current)) throw new YuzuhaError('PUSH', 'Variável atual não é um array.');\n const next = current === null ? [item] : [...current, item];\n c.checkOutput(next);\n return next;\n }, null);\n });\n fn(`pull${suffix}`, 'language', 2, 2, '[nome;valor]', 'Remove todas as ocorrências do valor em array persistente.', async c => {\n const name = await c.text(0);\n const target = typedScalar(toJson(await c.arg(1))) as JsonValue;\n return c.ctx.data[property].update(name, current => {\n if (current !== null && !Array.isArray(current)) throw new YuzuhaError('PULL', 'Variável atual não é um array.');\n const next = current === null ? [] : current.filter(item => !deepEqual(item, target));\n c.checkOutput(next);\n return next;\n }, null);\n });\n fn(`set${suffix}Path`, 'language', 3, 3, '[nome;caminho;novo]', 'Atualiza caminho em objeto persistente de forma atômica; cria a estrutura ausente e retorna o valor completo.', async c => {\n const name = await c.text(0);\n const segments = parsePath(await c.text(1));\n const fresh = typedScalar(toJson(await c.arg(2)));\n return c.ctx.data[property].update(name, current => {\n const next = setJsonPath(current, segments, fresh);\n c.checkOutput(next);\n return next;\n }, null);\n });\n }\n fn('caseList', 'language', 0, 2, '[página?;tamanho?]', 'Lista casos do servidor; página 1-based, tamanho padrão 10, máximo 100.', async c => {\n const page = c.count > 0 ? integer(await c.text(0), 'Página') : 1;\n const size = c.count > 1 ? integer(await c.text(1), 'Tamanho') : 10;\n if (page < 1) throw new YuzuhaError('CASE_LIST', 'Página começa em 1.');\n if (size < 1 || size > 100) throw new YuzuhaError('CASE_LIST', 'Tamanho deve estar entre 1 e 100.');\n const guildID = c.ctx.requireGuild();\n const records = await c.ctx.store.read(state => state.cases[guildID] ?? []);\n return structuredClone(records.slice((page - 1) * size, page * size));\n });\n fn('caseCount', 'language', 0, 0, '', 'Quantidade de casos do servidor atual.', async c => {\n const guildID = c.ctx.requireGuild();\n return c.ctx.store.read(state => (state.cases[guildID] ?? []).length);\n });\n});\n"]}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../../src/functions/builtins/language/state.ts"],"names":[],"mappings":"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","sourcesContent":["import type { JsonValue } from '../../../domain/state.js';\nimport { YuzuhaError } from '../../../errors.js';\nimport { toJson } from '../arguments.js';\nimport { defineFunctions } from '../definition.js';\nimport { deepEqual, integer, typedScalar } from './common.js';\nimport { parsePath, setJsonPath } from './objects.js';\n\nexport const LOOP_INDEX_KEY = '__loopIndex';\nexport const LOOP_VALUE_KEY = '__loopValue';\nexport const LOOP_ACCUMULATOR_KEY = '__loopAccumulator';\nexport const LOOP_MAX = 1000;\n\nexport const stateFunctions = defineFunctions(fn => {\n for (const [suffix, property] of [['Var', 'global'], ['GuildVar', 'guild'], ['UserVar', 'user']] as const) {\n fn(`increment${suffix}`, 'language', 1, 2, '[nome;delta?]', 'Incrementa número persistente de forma atômica; retorna o novo valor.', async c => {\n const name = await c.text(0);\n const delta = c.count > 1 ? Number(await c.text(1)) : 1;\n if (!Number.isFinite(delta)) throw new YuzuhaError('INCREMENT', 'Delta deve ser um número finito.');\n return c.ctx.data[property].update(name, current => {\n const base = current === null ? 0 : typeof current === 'string' && current.trim() !== '' && Number.isFinite(Number(current)) ? Number(current) : current;\n if (typeof base !== 'number' || !Number.isFinite(base)) throw new YuzuhaError('INCREMENT', 'Variável atual não é um número.');\n const next = base + delta;\n if (!Number.isFinite(next)) throw new YuzuhaError('INCREMENT', 'Resultado não é um número finito.');\n c.checkOutput(next);\n return next;\n }, null);\n });\n fn(`push${suffix}`, 'language', 2, 2, '[nome;valor]', 'Adiciona item a array persistente; cria se ausente.', async c => {\n const name = await c.text(0);\n const item = typedScalar(toJson(await c.arg(1))) as JsonValue;\n return c.ctx.data[property].update(name, current => {\n if (current !== null && !Array.isArray(current)) throw new YuzuhaError('PUSH', 'Variável atual não é um array.');\n const next = current === null ? [item] : [...current, item];\n c.checkOutput(next);\n return next;\n }, null);\n });\n fn(`pull${suffix}`, 'language', 2, 2, '[nome;valor]', 'Remove todas as ocorrências do valor em array persistente.', async c => {\n const name = await c.text(0);\n const target = typedScalar(toJson(await c.arg(1))) as JsonValue;\n return c.ctx.data[property].update(name, current => {\n if (current !== null && !Array.isArray(current)) throw new YuzuhaError('PULL', 'Variável atual não é um array.');\n const next = current === null ? [] : current.filter(item => !deepEqual(item, target));\n c.checkOutput(next);\n return next;\n }, null);\n });\n fn(`set${suffix}Path`, 'language', 3, 3, '[nome;caminho;novo]', 'Atualiza caminho em objeto persistente de forma atômica; cria a estrutura ausente e retorna o valor completo.', async c => {\n const name = await c.text(0);\n const segments = parsePath(await c.text(1));\n const fresh = typedScalar(toJson(await c.arg(2)));\n return c.ctx.data[property].update(name, current => {\n const next = setJsonPath(current, segments, fresh);\n c.checkOutput(next);\n return next;\n }, null);\n });\n }\n fn('caseList', 'language', 0, 2, '[página?;tamanho?]', 'Lista casos do servidor; página 1-based, tamanho padrão 10, máximo 100.', async c => {\n const page = c.count > 0 ? integer(await c.text(0), 'Página') : 1;\n const size = c.count > 1 ? integer(await c.text(1), 'Tamanho') : 10;\n if (page < 1) throw new YuzuhaError('CASE_LIST', 'Página começa em 1.');\n if (size < 1 || size > 100) throw new YuzuhaError('CASE_LIST', 'Tamanho deve estar entre 1 e 100.');\n const guildID = c.ctx.requireGuild();\n const records = await c.ctx.store.read(state => state.cases[guildID] ?? []);\n return structuredClone(records.slice((page - 1) * size, page * size));\n });\n fn('caseCount', 'language', 0, 0, '', 'Quantidade de casos do servidor atual.', async c => {\n const guildID = c.ctx.requireGuild();\n return c.ctx.store.read(state => (state.cases[guildID] ?? []).length);\n });\n});\n"]}
@@ -0,0 +1,2 @@
1
+ export declare const textFunctions: import("../../runtime/types.js").FunctionDefinition[];
2
+ //# sourceMappingURL=texts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"texts.d.ts","sourceRoot":"","sources":["../../../../src/functions/builtins/language/texts.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,aAAa,uDAgExB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"texts.js","sourceRoot":"","sources":["../../../../src/scripting/builtins/language/texts.ts"],"names":[],"mappings":"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","sourcesContent":["import { YuzuhaError } from '../../../errors.js';\nimport { defineFunctions } from '../definition.js';\nimport { integer } from './common.js';\n\nconst MENTION_TYPES = new Set(['user', 'role', 'channel']);\nconst MARKDOWN_SPECIALS = new Set(['\\\\', '*', '_', '~', '`', '>', '|']);\n\nexport const textFunctions = defineFunctions(fn => {\n fn('split', 'language', 2, 2, '[texto;separador]', 'Divide texto; separador vazio retorna caracteres.', async c => {\n const value = await c.text(0), separator = await c.text(1);\n if (separator === '') return [...value];\n const parts = value.split(separator);\n if (parts.length > 1000) throw new YuzuhaError('SPLIT', 'Resultado excede 1000 partes.');\n return parts;\n });\n fn('sliceText', 'language', 2, 3, '[texto;início;fim?]', 'Fatia caracteres; fim exclusivo.', async c => {\n const value = [...await c.text(0)];\n const start = integer(await c.text(1));\n const end = c.count > 2 ? integer(await c.text(2)) : value.length;\n if (start < 0 || start > value.length) throw new YuzuhaError('INDEX', 'Início fora do intervalo.');\n if (end < start || end > value.length) throw new YuzuhaError('INDEX', 'Fim fora do intervalo.');\n return value.slice(start, end).join('');\n });\n fn('includes', 'language', 2, 2, '[texto;busca]', 'Verifica se o texto contém a busca.', async c => (await c.text(0)).includes(await c.text(1)));\n fn('startsWith', 'language', 2, 2, '[texto;prefixo]', 'Verifica prefixo do texto.', async c => (await c.text(0)).startsWith(await c.text(1)));\n fn('endsWith', 'language', 2, 2, '[texto;sufixo]', 'Verifica sufixo do texto.', async c => (await c.text(0)).endsWith(await c.text(1)));\n fn('padStart', 'language', 2, 3, '[texto;tamanho;preenchimento?]', 'Preenche à esquerda até o tamanho.', async c => {\n const value = await c.text(0);\n const size = integer(await c.text(1));\n const filling = c.count > 2 ? await c.text(2) : ' ';\n if (size < 0 || size > 100_000) throw new YuzuhaError('PAD', 'Tamanho deve estar entre 0 e 100000.');\n if (!filling) throw new YuzuhaError('PAD', 'Preenchimento não pode ser vazio.');\n return value.padStart(size, filling);\n });\n fn('padEnd', 'language', 2, 3, '[texto;tamanho;preenchimento?]', 'Preenche à direita até o tamanho.', async c => {\n const value = await c.text(0);\n const size = integer(await c.text(1));\n const filling = c.count > 2 ? await c.text(2) : ' ';\n if (size < 0 || size > 100_000) throw new YuzuhaError('PAD', 'Tamanho deve estar entre 0 e 100000.');\n if (!filling) throw new YuzuhaError('PAD', 'Preenchimento não pode ser vazio.');\n return value.padEnd(size, filling);\n });\n fn('repeatText', 'language', 2, 2, '[texto;vezes]', 'Repete texto; no máximo 100000 caracteres.', async c => {\n const value = await c.text(0);\n const times = integer(await c.text(1));\n if (times < 0) throw new YuzuhaError('REPEAT', 'Vezes deve ser ao menos 0.');\n if (value.length * times > 100_000) throw new YuzuhaError('REPEAT', 'Resultado excede 100000 caracteres.');\n return value.repeat(times);\n });\n fn('truncate', 'language', 2, 3, '[texto;limite;sufixo?]', 'Corta texto no limite e adiciona sufixo.', async c => {\n const value = await c.text(0);\n const limit = integer(await c.text(1));\n const suffix = c.count > 2 ? await c.text(2) : '…';\n if (limit < 0) throw new YuzuhaError('TRUNCATE', 'Limite deve ser ao menos 0.');\n const chars = [...value];\n if (chars.length <= limit) return value;\n return chars.slice(0, limit).join('') + suffix;\n });\n fn('escapeMarkdown', 'language', 1, 1, '[texto]', 'Escapa caracteres especiais de Markdown.', async c => {\n const value = await c.text(0);\n return [...value].map(char => MARKDOWN_SPECIALS.has(char) ? `\\\\${char}` : char).join('');\n });\n fn('mention', 'language', 1, 2, '[id;tipo?]', 'Menciona user, role ou channel; ID deve ser numérico.', async c => {\n const id = (await c.text(0)).trim();\n const kind = c.count > 1 ? (await c.text(1)).trim().toLowerCase() : 'user';\n if (!/^\\d+$/.test(id)) throw new YuzuhaError('MENTION', 'ID deve ser numérico.');\n if (!MENTION_TYPES.has(kind)) throw new YuzuhaError('MENTION', 'Tipo deve ser user, role ou channel.');\n if (kind === 'user') return `<@${id}>`;\n if (kind === 'role') return `<@&${id}>`;\n return `<#${id}>`;\n });\n});\n"]}
1
+ {"version":3,"file":"texts.js","sourceRoot":"","sources":["../../../../src/functions/builtins/language/texts.ts"],"names":[],"mappings":"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","sourcesContent":["import { YuzuhaError } from '../../../errors.js';\nimport { defineFunctions } from '../definition.js';\nimport { integer } from './common.js';\n\nconst MENTION_TYPES = new Set(['user', 'role', 'channel']);\nconst MARKDOWN_SPECIALS = new Set(['\\\\', '*', '_', '~', '`', '>', '|']);\n\nexport const textFunctions = defineFunctions(fn => {\n fn('split', 'language', 2, 2, '[texto;separador]', 'Divide texto; separador vazio retorna caracteres.', async c => {\n const value = await c.text(0), separator = await c.text(1);\n if (separator === '') return [...value];\n const parts = value.split(separator);\n if (parts.length > 1000) throw new YuzuhaError('SPLIT', 'Resultado excede 1000 partes.');\n return parts;\n });\n fn('sliceText', 'language', 2, 3, '[texto;início;fim?]', 'Fatia caracteres; fim exclusivo.', async c => {\n const value = [...await c.text(0)];\n const start = integer(await c.text(1));\n const end = c.count > 2 ? integer(await c.text(2)) : value.length;\n if (start < 0 || start > value.length) throw new YuzuhaError('INDEX', 'Início fora do intervalo.');\n if (end < start || end > value.length) throw new YuzuhaError('INDEX', 'Fim fora do intervalo.');\n return value.slice(start, end).join('');\n });\n fn('includes', 'language', 2, 2, '[texto;busca]', 'Verifica se o texto contém a busca.', async c => (await c.text(0)).includes(await c.text(1)));\n fn('startsWith', 'language', 2, 2, '[texto;prefixo]', 'Verifica prefixo do texto.', async c => (await c.text(0)).startsWith(await c.text(1)));\n fn('endsWith', 'language', 2, 2, '[texto;sufixo]', 'Verifica sufixo do texto.', async c => (await c.text(0)).endsWith(await c.text(1)));\n fn('padStart', 'language', 2, 3, '[texto;tamanho;preenchimento?]', 'Preenche à esquerda até o tamanho.', async c => {\n const value = await c.text(0);\n const size = integer(await c.text(1));\n const filling = c.count > 2 ? await c.text(2) : ' ';\n if (size < 0 || size > 100_000) throw new YuzuhaError('PAD', 'Tamanho deve estar entre 0 e 100000.');\n if (!filling) throw new YuzuhaError('PAD', 'Preenchimento não pode ser vazio.');\n return value.padStart(size, filling);\n });\n fn('padEnd', 'language', 2, 3, '[texto;tamanho;preenchimento?]', 'Preenche à direita até o tamanho.', async c => {\n const value = await c.text(0);\n const size = integer(await c.text(1));\n const filling = c.count > 2 ? await c.text(2) : ' ';\n if (size < 0 || size > 100_000) throw new YuzuhaError('PAD', 'Tamanho deve estar entre 0 e 100000.');\n if (!filling) throw new YuzuhaError('PAD', 'Preenchimento não pode ser vazio.');\n return value.padEnd(size, filling);\n });\n fn('repeatText', 'language', 2, 2, '[texto;vezes]', 'Repete texto; no máximo 100000 caracteres.', async c => {\n const value = await c.text(0);\n const times = integer(await c.text(1));\n if (times < 0) throw new YuzuhaError('REPEAT', 'Vezes deve ser ao menos 0.');\n if (value.length * times > 100_000) throw new YuzuhaError('REPEAT', 'Resultado excede 100000 caracteres.');\n return value.repeat(times);\n });\n fn('truncate', 'language', 2, 3, '[texto;limite;sufixo?]', 'Corta texto no limite e adiciona sufixo.', async c => {\n const value = await c.text(0);\n const limit = integer(await c.text(1));\n const suffix = c.count > 2 ? await c.text(2) : '…';\n if (limit < 0) throw new YuzuhaError('TRUNCATE', 'Limite deve ser ao menos 0.');\n const chars = [...value];\n if (chars.length <= limit) return value;\n return chars.slice(0, limit).join('') + suffix;\n });\n fn('escapeMarkdown', 'language', 1, 1, '[texto]', 'Escapa caracteres especiais de Markdown.', async c => {\n const value = await c.text(0);\n return [...value].map(char => MARKDOWN_SPECIALS.has(char) ? `\\\\${char}` : char).join('');\n });\n fn('mention', 'language', 1, 2, '[id;tipo?]', 'Menciona user, role ou channel; ID deve ser numérico.', async c => {\n const id = (await c.text(0)).trim();\n const kind = c.count > 1 ? (await c.text(1)).trim().toLowerCase() : 'user';\n if (!/^\\d+$/.test(id)) throw new YuzuhaError('MENTION', 'ID deve ser numérico.');\n if (!MENTION_TYPES.has(kind)) throw new YuzuhaError('MENTION', 'Tipo deve ser user, role ou channel.');\n if (kind === 'user') return `<@${id}>`;\n if (kind === 'role') return `<@&${id}>`;\n return `<#${id}>`;\n });\n});\n"]}
@@ -0,0 +1,2 @@
1
+ export declare const messageFunctions: import("../runtime/types.js").FunctionDefinition[];
2
+ //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/functions/builtins/messages.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,gBAAgB,oDAM3B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/scripting/builtins/messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,CAAC,MAAM,gBAAgB,GAAG,eAAe,CAAC,EAAE,CAAC,EAAE;IACnD,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,kBAAkB,EAAE,oDAAoD,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACxL,EAAE,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,0BAA0B,EAAE,mCAAmC,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzL,EAAE,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,qCAAqC,EAAE,iBAAiB,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACzN,EAAE,CAAC,eAAe,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5K,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,0CAA0C,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3M,CAAC,CAAC,CAAC","sourcesContent":["import { defineFunctions } from './definition.js';\nimport { payload } from './payload.js';\n\nexport const messageFunctions = defineFunctions(fn => {\n fn('reply', 'messages', 1, 1, '[texto ou embed]', 'Responde sem pings e sem produzir texto adicional.', async c => { await c.ctx.reply(await payload(c, await c.arg(0))); return ''; });\n fn('sendMessage', 'messages', 2, 2, '[canalID;texto ou embed]', 'Envia e retorna o ID da mensagem.', async c => c.ctx.transport.send(await c.text(0), await payload(c, await c.arg(1))));\n fn('editMessage', 'messages', 3, 3, '[canalID;mensagemID;texto ou embed]', 'Edita mensagem.', async c => { await c.ctx.transport.edit(await c.text(0), await c.text(1), await payload(c, await c.arg(2))); return ''; });\n fn('deleteMessage', 'messages', 2, 2, '[canalID;mensagemID]', 'Apaga mensagem.', async c => { await c.ctx.transport.delete(await c.text(0), await c.text(1)); return ''; });\n fn('react', 'messages', 1, 1, '[emoji]', 'Reage à mensagem que executou o comando.', async c => { await c.ctx.transport.react(c.ctx.message.channelID, c.ctx.message.id, await c.text(0)); return ''; });\n});\n"]}
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/functions/builtins/messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,CAAC,MAAM,gBAAgB,GAAG,eAAe,CAAC,EAAE,CAAC,EAAE;IACnD,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,kBAAkB,EAAE,oDAAoD,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACxL,EAAE,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,0BAA0B,EAAE,mCAAmC,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzL,EAAE,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,qCAAqC,EAAE,iBAAiB,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACzN,EAAE,CAAC,eAAe,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5K,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,0CAA0C,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3M,CAAC,CAAC,CAAC","sourcesContent":["import { defineFunctions } from './definition.js';\nimport { payload } from './payload.js';\n\nexport const messageFunctions = defineFunctions(fn => {\n fn('reply', 'messages', 1, 1, '[texto ou embed]', 'Responde sem pings e sem produzir texto adicional.', async c => { await c.ctx.reply(await payload(c, await c.arg(0))); return ''; });\n fn('sendMessage', 'messages', 2, 2, '[canalID;texto ou embed]', 'Envia e retorna o ID da mensagem.', async c => c.ctx.transport.send(await c.text(0), await payload(c, await c.arg(1))));\n fn('editMessage', 'messages', 3, 3, '[canalID;mensagemID;texto ou embed]', 'Edita mensagem.', async c => { await c.ctx.transport.edit(await c.text(0), await c.text(1), await payload(c, await c.arg(2))); return ''; });\n fn('deleteMessage', 'messages', 2, 2, '[canalID;mensagemID]', 'Apaga mensagem.', async c => { await c.ctx.transport.delete(await c.text(0), await c.text(1)); return ''; });\n fn('react', 'messages', 1, 1, '[emoji]', 'Reage à mensagem que executou o comando.', async c => { await c.ctx.transport.react(c.ctx.message.channelID, c.ctx.message.id, await c.text(0)); return ''; });\n});\n"]}
@@ -0,0 +1,2 @@
1
+ export declare const moderationFunctions: import("../runtime/types.js").FunctionDefinition[];
2
+ //# sourceMappingURL=moderation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"moderation.d.ts","sourceRoot":"","sources":["../../../src/functions/builtins/moderation.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,mBAAmB,oDA+B9B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"moderation.js","sourceRoot":"","sources":["../../../src/scripting/builtins/moderation.ts"],"names":[],"mappings":"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","sourcesContent":["import { parseDuration } from '../../domain/values.js';\nimport type { FunctionCall } from '../types.js';\nimport { finite } from './arguments.js';\nimport { defineFunctions } from './definition.js';\nimport { YuzuhaError } from '../../shared/errors.js';\n\nexport const moderationFunctions = defineFunctions(fn => {\n for (const [name, action] of [['moveMember', 'move'], ['muteMember', 'mute'], ['deafenMember', 'deafen']] as const) {\n for (const record of [false, true]) {\n fn(record ? `mod${name[0]!.toUpperCase()}${name.slice(1)}` : name, 'moderation', 3, 3,\n action === 'move' ? '[usuário;canalOuVazio;motivo]' : '[usuário;ativar;motivo]',\n `Modera voz com permissões e hierarquia${record ? ', registra caso e define $caseID' : ''}.`, async c => {\n const target = await c.text(0), raw = (await c.text(1)).trim();\n let options;\n if (action === 'move') options = { record, channelID: raw ? /^<#(\\d+)>$/.exec(raw)?.[1] ?? raw : null };\n else {\n if (raw !== 'true' && raw !== 'false') throw new YuzuhaError('VOICE_STATE', 'Ativar deve ser true ou false.');\n options = { record, enabled: raw === 'true' };\n }\n await c.ctx.moderate(action, target, await c.text(2), options);\n return '';\n });\n }\n }\n for (const action of ['ban', 'kick', 'timeout', 'unban'] as const) {\n const timeout = action === 'timeout';\n const execute = (record: boolean) => async (c: FunctionCall) => {\n const target = await c.text(0);\n const duration = timeout ? parseDuration(await c.text(1)) : undefined;\n const reason = await c.text(timeout ? 2 : 1);\n await c.ctx.moderate(action, target, reason, { record, duration, deleteMessageDays: action === 'ban' && c.count > 2 ? finite(await c.text(2)) : 0 });\n return '';\n };\n const usage = timeout ? '[usuário;duração;motivo]' : action === 'ban' ? '[usuário;motivo;diasDeHistórico?]' : '[usuário;motivo]';\n fn(action, 'moderation', timeout ? 3 : 2, timeout || action === 'ban' ? 3 : 2, usage, 'Modera com guards e hierarquia, sem criar caso.', execute(false));\n fn(`mod${action[0]!.toUpperCase()}${action.slice(1)}`, 'moderation', timeout ? 3 : 2, timeout || action === 'ban' ? 3 : 2, usage, 'Modera com guards e hierarquia e cria caso; define $caseID.', execute(true));\n }\n});\n"]}
1
+ {"version":3,"file":"moderation.js","sourceRoot":"","sources":["../../../src/functions/builtins/moderation.ts"],"names":[],"mappings":"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","sourcesContent":["import { parseDuration } from '../../domain/values.js';\nimport type { FunctionCall } from '../runtime/types.js';\nimport { finite } from './arguments.js';\nimport { defineFunctions } from './definition.js';\nimport { YuzuhaError } from '../../shared/errors.js';\n\nexport const moderationFunctions = defineFunctions(fn => {\n for (const [name, action] of [['moveMember', 'move'], ['muteMember', 'mute'], ['deafenMember', 'deafen']] as const) {\n for (const record of [false, true]) {\n fn(record ? `mod${name[0]!.toUpperCase()}${name.slice(1)}` : name, 'moderation', 3, 3,\n action === 'move' ? '[usuário;canalOuVazio;motivo]' : '[usuário;ativar;motivo]',\n `Modera voz com permissões e hierarquia${record ? ', registra caso e define $caseID' : ''}.`, async c => {\n const target = await c.text(0), raw = (await c.text(1)).trim();\n let options;\n if (action === 'move') options = { record, channelID: raw ? /^<#(\\d+)>$/.exec(raw)?.[1] ?? raw : null };\n else {\n if (raw !== 'true' && raw !== 'false') throw new YuzuhaError('VOICE_STATE', 'Ativar deve ser true ou false.');\n options = { record, enabled: raw === 'true' };\n }\n await c.ctx.moderate(action, target, await c.text(2), options);\n return '';\n });\n }\n }\n for (const action of ['ban', 'kick', 'timeout', 'unban'] as const) {\n const timeout = action === 'timeout';\n const execute = (record: boolean) => async (c: FunctionCall) => {\n const target = await c.text(0);\n const duration = timeout ? parseDuration(await c.text(1)) : undefined;\n const reason = await c.text(timeout ? 2 : 1);\n await c.ctx.moderate(action, target, reason, { record, duration, deleteMessageDays: action === 'ban' && c.count > 2 ? finite(await c.text(2)) : 0 });\n return '';\n };\n const usage = timeout ? '[usuário;duração;motivo]' : action === 'ban' ? '[usuário;motivo;diasDeHistórico?]' : '[usuário;motivo]';\n fn(action, 'moderation', timeout ? 3 : 2, timeout || action === 'ban' ? 3 : 2, usage, 'Modera com guards e hierarquia, sem criar caso.', execute(false));\n fn(`mod${action[0]!.toUpperCase()}${action.slice(1)}`, 'moderation', timeout ? 3 : 2, timeout || action === 'ban' ? 3 : 2, usage, 'Modera com guards e hierarquia e cria caso; define $caseID.', execute(true));\n }\n});\n"]}
@@ -0,0 +1,2 @@
1
+ export declare const channelFunctions: import("../runtime/types.js").FunctionDefinition[];
2
+ //# sourceMappingURL=native-channels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-channels.d.ts","sourceRoot":"","sources":["../../../src/functions/builtins/native-channels.ts"],"names":[],"mappings":"AAwFA,eAAO,MAAM,gBAAgB,oDAwG3B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"native-channels.js","sourceRoot":"","sources":["../../../src/scripting/builtins/native-channels.ts"],"names":[],"mappings":"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","sourcesContent":["import { YuzuhaError } from '../../errors.js';\nimport { defineFunctions } from './definition.js';\nimport { integer } from './language/common.js';\nimport type { FunctionCall } from '../types.js';\nimport { GuardError } from '../../shared/errors.js';\n\nconst channelTypes: Record<string, number> = {\n texto: 0, text: 0,\n voz: 2, voice: 2,\n categoria: 4, category: 4,\n anuncio: 5, 'anúncio': 5, announcement: 5,\n forum: 15, 'fórum': 15,\n midia: 16, 'mídia': 16, media: 16,\n};\n\nconst channelTypeNames = 'texto, voz, categoria, anuncio, forum ou midia';\n\nfunction linkURL(value: string): string {\n let url: URL;\n try { url = new URL(value); } catch { throw new YuzuhaError('CHANNEL_URL', 'Informe uma URL HTTP(S).'); }\n if (!['http:', 'https:'].includes(url.protocol) || url.username || url.password) {\n throw new YuzuhaError('CHANNEL_URL', 'Informe uma URL HTTP(S) sem credenciais.');\n }\n return value;\n}\n\nasync function managedChannel(c: FunctionCall, id: string) {\n const guildID = c.ctx.requireGuild();\n const channel = await c.ctx.resources.channels.get(id);\n if (channel.guildID !== guildID) throw new GuardError('O canal deve pertencer ao servidor atual.');\n return channel;\n}\n\nfunction channelID(raw: string): string {\n const value = raw.trim();\n const mention = /^<#(\\S+)>$/.exec(value);\n const id = mention?.[1] ?? value;\n if (!id) throw new YuzuhaError('CHANNEL', 'Informe o ID do canal.');\n return id;\n}\n\nfunction channelType(raw: string): number {\n const key = raw.trim().toLowerCase();\n const mapped = Object.hasOwn(channelTypes, key) ? channelTypes[key] : undefined;\n if (mapped !== undefined) return mapped;\n if (/^\\d+$/.test(key)) {\n const numeric = Number(key);\n if (numeric === 0 || numeric === 2 || numeric === 4 || numeric === 5 || numeric === 15 || numeric === 16) return numeric;\n }\n throw new YuzuhaError('CHANNEL_TYPE', `Tipo de canal inválido. Use ${channelTypeNames}.`);\n}\n\nfunction slowmodeSeconds(raw: string): number {\n const value = raw.trim();\n const seconds = /^\\d+$/.test(value) ? Number(value) : NaN;\n if (!Number.isSafeInteger(seconds) || seconds < 0 || seconds > 21600) {\n throw new YuzuhaError('SLOWMODE', 'Slowmode deve ser um inteiro entre 0 e 21600 segundos.');\n }\n return seconds;\n}\n\nfunction optionalText(raw: string): string | undefined {\n const value = raw.trim();\n return value ? value : undefined;\n}\n\nfunction permissionList(raw: string): string[] {\n return raw.split(',').map(entry => entry.trim()).filter(entry => entry.length > 0);\n}\n\nfunction overwriteTarget(raw: string): { id: string; type?: 'role' | 'member' } {\n const value = raw.trim();\n const role = /^<@&(\\S+)>$/.exec(value);\n if (role?.[1]) return { id: role[1], type: 'role' };\n const member = /^<@!?(\\S+)>$/.exec(value);\n if (member?.[1]) return { id: member[1], type: 'member' };\n if (!value) throw new YuzuhaError('PERMS', 'Informe o cargo ou usuário alvo.');\n return { id: value };\n}\n\nfunction userTarget(raw: string): string {\n const value = raw.trim();\n const mention = /^<@!?(\\S+)>$/.exec(value);\n const id = mention?.[1] ?? value;\n if (!id) throw new YuzuhaError('USER', 'Informe o usuário.');\n return id;\n}\n\nexport const channelFunctions = defineFunctions(fn => {\n fn('createLinkChannel', 'channels', 2, 3, '[nome;url;categoria?]', 'Cria um canal de link com autorização do autor e do bot.', async c => {\n const guildID = c.ctx.requireGuild();\n const name = (await c.text(0)).trim(), url = linkURL(await c.text(1));\n if (!name || name.length > 100) throw new YuzuhaError('CHANNEL_NAME', 'Nome deve ter de 1 a 100 caracteres.');\n const rawParent = c.count > 2 ? (await c.text(2)).trim() : '';\n const parentID = rawParent ? channelID(rawParent) : undefined;\n if (parentID) {\n const parent = await managedChannel(c, parentID);\n if (parent.type !== 4) throw new GuardError('O canal pai deve ser uma categoria.');\n }\n return c.ctx.resources.channels.create(guildID, { name, type: 998, url, ...(parentID ? { parentID } : {}) });\n });\n fn('editLinkChannel', 'channels', 2, 3, '[canal;url;motivo?]', 'Altera a URL de um canal de link do servidor atual.', async c => {\n const id = channelID(await c.text(0)), url = linkURL(await c.text(1));\n if ((await managedChannel(c, id)).type !== 998) throw new GuardError('O canal informado deve ser de link.');\n return c.ctx.resources.channels.edit(id, { url, ...(c.count > 2 ? { reason: await c.text(2) } : {}) });\n });\n fn('setContentWarning', 'channels', 2, 4, '[canal;nível;texto?;motivo?]', 'Define aviso de conteúdo: 0 herda, 1 ativa, vazio remove o override.', async c => {\n const id = channelID(await c.text(0)), raw = (await c.text(1)).trim();\n const contentWarningLevel = raw === '' ? null : Number(raw);\n if (contentWarningLevel !== null && contentWarningLevel !== 0 && contentWarningLevel !== 1) {\n throw new YuzuhaError('CONTENT_WARNING', 'Nível deve ser 0, 1 ou vazio.');\n }\n const contentWarningText = c.count > 2 ? await c.text(2) : undefined;\n if (contentWarningText !== undefined && contentWarningText.length > 1000) throw new YuzuhaError('CONTENT_WARNING', 'Texto deve ter até 1000 caracteres.');\n await managedChannel(c, id);\n return c.ctx.resources.channels.edit(id, { contentWarningLevel,\n ...(contentWarningText === undefined ? {} : { contentWarningText: contentWarningText || null }),\n ...(c.count > 3 ? { reason: await c.text(3) } : {}) });\n });\n fn('moveChannel', 'channels', 2, 2, '[canal;posição]', 'Move um canal para a posição indicada, a partir de 0.', async c => {\n c.ctx.requireGuild();\n const id = channelID(await c.text(0));\n const position = integer(await c.text(1), 'Posição');\n if (position < 0) throw new YuzuhaError('POSITION', 'Posição deve ser um inteiro a partir de 0.');\n await c.ctx.resources.channels.move(id, position);\n return '';\n });\n fn('setCategory', 'channels', 2, 3, '[canal;categoria;motivo?]', 'Define a categoria do canal; categoria vazia remove o vínculo.', async c => {\n c.ctx.requireGuild();\n const id = channelID(await c.text(0));\n const raw = (await c.text(1)).trim();\n return c.ctx.resources.channels.setCategory(id, raw ? channelID(raw) : null, c.count > 2 ? await c.text(2) : undefined);\n });\n fn('channel', 'channels', 1, 2, '[canal;propriedade?]', 'Mostra um canal; com propriedade, mostra só ela.', async c => {\n const info = await c.ctx.resources.channels.get(channelID(await c.text(0)));\n if (c.count < 2) return info;\n const key = (await c.text(1)).trim();\n if (!key || !Object.hasOwn(info, key)) return key ? '' : info;\n return (info as unknown as Record<string, unknown>)[key];\n });\n fn('channels', 'channels', 0, 0, '', 'Lista os canais do servidor atual por posição.', async c => {\n return c.ctx.resources.channels.list(c.ctx.requireGuild());\n });\n fn('createChannel', 'channels', 1, 3, '[nome;tipo?;categoria?]', 'Cria um canal e mostra os dados.', async c => {\n const name = (await c.text(0)).trim();\n if (!name) throw new YuzuhaError('CHANNEL', 'Informe o nome do canal.');\n const type = c.count > 1 ? channelType(await c.text(1)) : 0;\n const parentID = c.count > 2 ? optionalText(await c.text(2)) : undefined;\n return c.ctx.resources.channels.create(c.ctx.requireGuild(), {\n name, type, ...(parentID !== undefined ? { parentID } : {}),\n });\n });\n fn('editChannel', 'channels', 1, 4, '[canal;nome?;topico?;slowmode?]', 'Edita um canal; vazio mantém.', async c => {\n const id = channelID(await c.text(0));\n const name = c.count > 1 ? optionalText(await c.text(1)) : undefined;\n const topic = c.count > 2 ? optionalText(await c.text(2)) : undefined;\n const slowRaw = c.count > 3 ? (await c.text(3)).trim() : '';\n const slowmode = slowRaw ? slowmodeSeconds(slowRaw) : undefined;\n return c.ctx.resources.channels.edit(id, {\n ...(name !== undefined ? { name } : {}),\n ...(topic !== undefined ? { topic } : {}),\n ...(slowmode !== undefined ? { slowmode } : {}),\n });\n });\n fn('deleteChannel', 'channels', 1, 1, '[canal]', 'Apaga um canal.', async c => {\n await c.ctx.resources.channels.delete(channelID(await c.text(0)));\n return '';\n });\n fn('slowmode', 'channels', 1, 2, '[segundos;canal?]', 'Define o modo lento (0 a 21600s).', async c => {\n const seconds = slowmodeSeconds(await c.text(0));\n const raw = c.count > 1 ? (await c.text(1)).trim() : '';\n const id = raw ? channelID(raw) : c.ctx.message.channelID;\n await c.ctx.resources.channels.setSlowmode(id, seconds);\n return '';\n });\n fn('channelPerms', 'channels', 2, 4, '[canal;alvo;permitir?;negar?]', 'Define permissões locais; listas separadas por vírgula.', async c => {\n c.ctx.requireGuild();\n const id = channelID(await c.text(0));\n const target = overwriteTarget(await c.text(1));\n const allow = c.count > 2 ? permissionList(await c.text(2)) : [];\n const deny = c.count > 3 ? permissionList(await c.text(3)) : [];\n await c.ctx.resources.channels.overwrite(id, target.id, {\n ...(target.type !== undefined ? { type: target.type } : {}),\n ...(allow.length > 0 ? { allow } : {}),\n ...(deny.length > 0 ? { deny } : {}),\n });\n return '';\n });\n fn('channelPermsOf', 'channels', 2, 2, '[canal;usuario]', 'Permissões efetivas do usuário no canal.', async c => {\n const guildID = c.ctx.requireGuild();\n return c.ctx.resources.channels.permissionsFor(guildID, channelID(await c.text(0)), userTarget(await c.text(1)));\n });\n});\n"]}
1
+ {"version":3,"file":"native-channels.js","sourceRoot":"","sources":["../../../src/functions/builtins/native-channels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,MAAM,YAAY,GAA2B;IAC3C,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;IACjB,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;IAChB,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC;IACzB,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC;IACzC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE;IACtB,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;CAClC,CAAC;AAEF,MAAM,gBAAgB,GAAG,gDAAgD,CAAC;AAE1E,SAAS,OAAO,CAAC,KAAa;IAC5B,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QAAC,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,MAAM,IAAI,WAAW,CAAC,aAAa,EAAE,0BAA0B,CAAC,CAAC;IAAC,CAAC;IACzG,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QAChF,MAAM,IAAI,WAAW,CAAC,aAAa,EAAE,0CAA0C,CAAC,CAAC;IACnF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,CAAe,EAAE,EAAU;IACvD,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACvD,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO;QAAE,MAAM,IAAI,UAAU,CAAC,2CAA2C,CAAC,CAAC;IACnG,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,SAAS,CAAC,GAAW;IAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACzB,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;IACjC,IAAI,CAAC,EAAE;QAAE,MAAM,IAAI,WAAW,CAAC,SAAS,EAAE,wBAAwB,CAAC,CAAC;IACpE,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChF,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACxC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,EAAE;YAAE,OAAO,OAAO,CAAC;IAC3H,CAAC;IACD,MAAM,IAAI,WAAW,CAAC,cAAc,EAAE,+BAA+B,gBAAgB,GAAG,CAAC,CAAC;AAC5F,CAAC;AAED,SAAS,eAAe,CAAC,GAAW;IAClC,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACzB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC1D,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,KAAK,EAAE,CAAC;QACrE,MAAM,IAAI,WAAW,CAAC,UAAU,EAAE,wDAAwD,CAAC,CAAC;IAC9F,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,YAAY,CAAC,GAAW;IAC/B,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACzB,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACnC,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IACjC,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACrF,CAAC;AAED,SAAS,eAAe,CAAC,GAAW;IAClC,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACpD,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC1D,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,WAAW,CAAC,OAAO,EAAE,kCAAkC,CAAC,CAAC;IAC/E,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;AACvB,CAAC;AAED,SAAS,UAAU,CAAC,GAAW;IAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACzB,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;IACjC,IAAI,CAAC,EAAE;QAAE,MAAM,IAAI,WAAW,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAC7D,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,eAAe,CAAC,EAAE,CAAC,EAAE;IACnD,EAAE,CAAC,mBAAmB,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,uBAAuB,EAAE,0DAA0D,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;QACvI,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG;YAAE,MAAM,IAAI,WAAW,CAAC,cAAc,EAAE,sCAAsC,CAAC,CAAC;QAC9G,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9D,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;YACjD,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;gBAAE,MAAM,IAAI,UAAU,CAAC,qCAAqC,CAAC,CAAC;QACrF,CAAC;QACD,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC/G,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,iBAAiB,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,qBAAqB,EAAE,qDAAqD,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;QAC9H,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,cAAc,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG;YAAE,MAAM,IAAI,UAAU,CAAC,qCAAqC,CAAC,CAAC;QAC5G,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACzG,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,mBAAmB,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,8BAA8B,EAAE,sEAAsE,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;QAC1J,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACtE,MAAM,mBAAmB,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC5D,IAAI,mBAAmB,KAAK,IAAI,IAAI,mBAAmB,KAAK,CAAC,IAAI,mBAAmB,KAAK,CAAC,EAAE,CAAC;YAC3F,MAAM,IAAI,WAAW,CAAC,iBAAiB,EAAE,+BAA+B,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACrE,IAAI,kBAAkB,KAAK,SAAS,IAAI,kBAAkB,CAAC,MAAM,GAAG,IAAI;YAAE,MAAM,IAAI,WAAW,CAAC,iBAAiB,EAAE,qCAAqC,CAAC,CAAC;QAC1J,MAAM,cAAc,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5B,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,mBAAmB;YAC5D,GAAG,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,kBAAkB,IAAI,IAAI,EAAE,CAAC;YAC/F,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,iBAAiB,EAAE,uDAAuD,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;QACxH,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QACrB,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QACrD,IAAI,QAAQ,GAAG,CAAC;YAAE,MAAM,IAAI,WAAW,CAAC,UAAU,EAAE,4CAA4C,CAAC,CAAC;QAClG,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAClD,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,2BAA2B,EAAE,gEAAgE,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;QAC3I,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QACrB,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACrC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC1H,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,sBAAsB,EAAE,kDAAkD,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;QACpH,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAC7B,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9D,OAAQ,IAA2C,CAAC,GAAG,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,gDAAgD,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;QAC/F,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,eAAe,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,yBAAyB,EAAE,kCAAkC,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;QAC7G,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACtC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,WAAW,CAAC,SAAS,EAAE,0BAA0B,CAAC,CAAC;QACxE,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACzE,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE;YAC3D,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5D,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,iCAAiC,EAAE,+BAA+B,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;QAChH,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACrE,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACtE,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAChE,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE;YACvC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChD,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,eAAe,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;QAC5E,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,mBAAmB,EAAE,mCAAmC,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;QACnG,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC;QAC1D,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACxD,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,cAAc,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,+BAA+B,EAAE,yDAAyD,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;QACzI,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QACrB,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;YACtD,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrC,CAAC,CAAC;QACH,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,gBAAgB,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,iBAAiB,EAAE,0CAA0C,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;QAC9G,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QACrC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { YuzuhaError } from '../../errors.js';\nimport { defineFunctions } from './definition.js';\nimport { integer } from './language/common.js';\nimport type { FunctionCall } from '../runtime/types.js';\nimport { GuardError } from '../../shared/errors.js';\n\nconst channelTypes: Record<string, number> = {\n texto: 0, text: 0,\n voz: 2, voice: 2,\n categoria: 4, category: 4,\n anuncio: 5, 'anúncio': 5, announcement: 5,\n forum: 15, 'fórum': 15,\n midia: 16, 'mídia': 16, media: 16,\n};\n\nconst channelTypeNames = 'texto, voz, categoria, anuncio, forum ou midia';\n\nfunction linkURL(value: string): string {\n let url: URL;\n try { url = new URL(value); } catch { throw new YuzuhaError('CHANNEL_URL', 'Informe uma URL HTTP(S).'); }\n if (!['http:', 'https:'].includes(url.protocol) || url.username || url.password) {\n throw new YuzuhaError('CHANNEL_URL', 'Informe uma URL HTTP(S) sem credenciais.');\n }\n return value;\n}\n\nasync function managedChannel(c: FunctionCall, id: string) {\n const guildID = c.ctx.requireGuild();\n const channel = await c.ctx.resources.channels.get(id);\n if (channel.guildID !== guildID) throw new GuardError('O canal deve pertencer ao servidor atual.');\n return channel;\n}\n\nfunction channelID(raw: string): string {\n const value = raw.trim();\n const mention = /^<#(\\S+)>$/.exec(value);\n const id = mention?.[1] ?? value;\n if (!id) throw new YuzuhaError('CHANNEL', 'Informe o ID do canal.');\n return id;\n}\n\nfunction channelType(raw: string): number {\n const key = raw.trim().toLowerCase();\n const mapped = Object.hasOwn(channelTypes, key) ? channelTypes[key] : undefined;\n if (mapped !== undefined) return mapped;\n if (/^\\d+$/.test(key)) {\n const numeric = Number(key);\n if (numeric === 0 || numeric === 2 || numeric === 4 || numeric === 5 || numeric === 15 || numeric === 16) return numeric;\n }\n throw new YuzuhaError('CHANNEL_TYPE', `Tipo de canal inválido. Use ${channelTypeNames}.`);\n}\n\nfunction slowmodeSeconds(raw: string): number {\n const value = raw.trim();\n const seconds = /^\\d+$/.test(value) ? Number(value) : NaN;\n if (!Number.isSafeInteger(seconds) || seconds < 0 || seconds > 21600) {\n throw new YuzuhaError('SLOWMODE', 'Slowmode deve ser um inteiro entre 0 e 21600 segundos.');\n }\n return seconds;\n}\n\nfunction optionalText(raw: string): string | undefined {\n const value = raw.trim();\n return value ? value : undefined;\n}\n\nfunction permissionList(raw: string): string[] {\n return raw.split(',').map(entry => entry.trim()).filter(entry => entry.length > 0);\n}\n\nfunction overwriteTarget(raw: string): { id: string; type?: 'role' | 'member' } {\n const value = raw.trim();\n const role = /^<@&(\\S+)>$/.exec(value);\n if (role?.[1]) return { id: role[1], type: 'role' };\n const member = /^<@!?(\\S+)>$/.exec(value);\n if (member?.[1]) return { id: member[1], type: 'member' };\n if (!value) throw new YuzuhaError('PERMS', 'Informe o cargo ou usuário alvo.');\n return { id: value };\n}\n\nfunction userTarget(raw: string): string {\n const value = raw.trim();\n const mention = /^<@!?(\\S+)>$/.exec(value);\n const id = mention?.[1] ?? value;\n if (!id) throw new YuzuhaError('USER', 'Informe o usuário.');\n return id;\n}\n\nexport const channelFunctions = defineFunctions(fn => {\n fn('createLinkChannel', 'channels', 2, 3, '[nome;url;categoria?]', 'Cria um canal de link com autorização do autor e do bot.', async c => {\n const guildID = c.ctx.requireGuild();\n const name = (await c.text(0)).trim(), url = linkURL(await c.text(1));\n if (!name || name.length > 100) throw new YuzuhaError('CHANNEL_NAME', 'Nome deve ter de 1 a 100 caracteres.');\n const rawParent = c.count > 2 ? (await c.text(2)).trim() : '';\n const parentID = rawParent ? channelID(rawParent) : undefined;\n if (parentID) {\n const parent = await managedChannel(c, parentID);\n if (parent.type !== 4) throw new GuardError('O canal pai deve ser uma categoria.');\n }\n return c.ctx.resources.channels.create(guildID, { name, type: 998, url, ...(parentID ? { parentID } : {}) });\n });\n fn('editLinkChannel', 'channels', 2, 3, '[canal;url;motivo?]', 'Altera a URL de um canal de link do servidor atual.', async c => {\n const id = channelID(await c.text(0)), url = linkURL(await c.text(1));\n if ((await managedChannel(c, id)).type !== 998) throw new GuardError('O canal informado deve ser de link.');\n return c.ctx.resources.channels.edit(id, { url, ...(c.count > 2 ? { reason: await c.text(2) } : {}) });\n });\n fn('setContentWarning', 'channels', 2, 4, '[canal;nível;texto?;motivo?]', 'Define aviso de conteúdo: 0 herda, 1 ativa, vazio remove o override.', async c => {\n const id = channelID(await c.text(0)), raw = (await c.text(1)).trim();\n const contentWarningLevel = raw === '' ? null : Number(raw);\n if (contentWarningLevel !== null && contentWarningLevel !== 0 && contentWarningLevel !== 1) {\n throw new YuzuhaError('CONTENT_WARNING', 'Nível deve ser 0, 1 ou vazio.');\n }\n const contentWarningText = c.count > 2 ? await c.text(2) : undefined;\n if (contentWarningText !== undefined && contentWarningText.length > 1000) throw new YuzuhaError('CONTENT_WARNING', 'Texto deve ter até 1000 caracteres.');\n await managedChannel(c, id);\n return c.ctx.resources.channels.edit(id, { contentWarningLevel,\n ...(contentWarningText === undefined ? {} : { contentWarningText: contentWarningText || null }),\n ...(c.count > 3 ? { reason: await c.text(3) } : {}) });\n });\n fn('moveChannel', 'channels', 2, 2, '[canal;posição]', 'Move um canal para a posição indicada, a partir de 0.', async c => {\n c.ctx.requireGuild();\n const id = channelID(await c.text(0));\n const position = integer(await c.text(1), 'Posição');\n if (position < 0) throw new YuzuhaError('POSITION', 'Posição deve ser um inteiro a partir de 0.');\n await c.ctx.resources.channels.move(id, position);\n return '';\n });\n fn('setCategory', 'channels', 2, 3, '[canal;categoria;motivo?]', 'Define a categoria do canal; categoria vazia remove o vínculo.', async c => {\n c.ctx.requireGuild();\n const id = channelID(await c.text(0));\n const raw = (await c.text(1)).trim();\n return c.ctx.resources.channels.setCategory(id, raw ? channelID(raw) : null, c.count > 2 ? await c.text(2) : undefined);\n });\n fn('channel', 'channels', 1, 2, '[canal;propriedade?]', 'Mostra um canal; com propriedade, mostra só ela.', async c => {\n const info = await c.ctx.resources.channels.get(channelID(await c.text(0)));\n if (c.count < 2) return info;\n const key = (await c.text(1)).trim();\n if (!key || !Object.hasOwn(info, key)) return key ? '' : info;\n return (info as unknown as Record<string, unknown>)[key];\n });\n fn('channels', 'channels', 0, 0, '', 'Lista os canais do servidor atual por posição.', async c => {\n return c.ctx.resources.channels.list(c.ctx.requireGuild());\n });\n fn('createChannel', 'channels', 1, 3, '[nome;tipo?;categoria?]', 'Cria um canal e mostra os dados.', async c => {\n const name = (await c.text(0)).trim();\n if (!name) throw new YuzuhaError('CHANNEL', 'Informe o nome do canal.');\n const type = c.count > 1 ? channelType(await c.text(1)) : 0;\n const parentID = c.count > 2 ? optionalText(await c.text(2)) : undefined;\n return c.ctx.resources.channels.create(c.ctx.requireGuild(), {\n name, type, ...(parentID !== undefined ? { parentID } : {}),\n });\n });\n fn('editChannel', 'channels', 1, 4, '[canal;nome?;topico?;slowmode?]', 'Edita um canal; vazio mantém.', async c => {\n const id = channelID(await c.text(0));\n const name = c.count > 1 ? optionalText(await c.text(1)) : undefined;\n const topic = c.count > 2 ? optionalText(await c.text(2)) : undefined;\n const slowRaw = c.count > 3 ? (await c.text(3)).trim() : '';\n const slowmode = slowRaw ? slowmodeSeconds(slowRaw) : undefined;\n return c.ctx.resources.channels.edit(id, {\n ...(name !== undefined ? { name } : {}),\n ...(topic !== undefined ? { topic } : {}),\n ...(slowmode !== undefined ? { slowmode } : {}),\n });\n });\n fn('deleteChannel', 'channels', 1, 1, '[canal]', 'Apaga um canal.', async c => {\n await c.ctx.resources.channels.delete(channelID(await c.text(0)));\n return '';\n });\n fn('slowmode', 'channels', 1, 2, '[segundos;canal?]', 'Define o modo lento (0 a 21600s).', async c => {\n const seconds = slowmodeSeconds(await c.text(0));\n const raw = c.count > 1 ? (await c.text(1)).trim() : '';\n const id = raw ? channelID(raw) : c.ctx.message.channelID;\n await c.ctx.resources.channels.setSlowmode(id, seconds);\n return '';\n });\n fn('channelPerms', 'channels', 2, 4, '[canal;alvo;permitir?;negar?]', 'Define permissões locais; listas separadas por vírgula.', async c => {\n c.ctx.requireGuild();\n const id = channelID(await c.text(0));\n const target = overwriteTarget(await c.text(1));\n const allow = c.count > 2 ? permissionList(await c.text(2)) : [];\n const deny = c.count > 3 ? permissionList(await c.text(3)) : [];\n await c.ctx.resources.channels.overwrite(id, target.id, {\n ...(target.type !== undefined ? { type: target.type } : {}),\n ...(allow.length > 0 ? { allow } : {}),\n ...(deny.length > 0 ? { deny } : {}),\n });\n return '';\n });\n fn('channelPermsOf', 'channels', 2, 2, '[canal;usuario]', 'Permissões efetivas do usuário no canal.', async c => {\n const guildID = c.ctx.requireGuild();\n return c.ctx.resources.channels.permissionsFor(guildID, channelID(await c.text(0)), userTarget(await c.text(1)));\n });\n});\n"]}
@@ -0,0 +1,2 @@
1
+ export declare const collectorFunctions: import("../runtime/types.js").FunctionDefinition[];
2
+ //# sourceMappingURL=native-collectors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-collectors.d.ts","sourceRoot":"","sources":["../../../src/functions/builtins/native-collectors.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,kBAAkB,oDAyC7B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"native-collectors.js","sourceRoot":"","sources":["../../../src/scripting/builtins/native-collectors.ts"],"names":[],"mappings":"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","sourcesContent":["import { parseDuration } from '../../domain/values.js';\nimport { defineFunctions } from './definition.js';\n\n/** Duração em ms: segundos puros (\"10\" = 10s) ou formato parseDuration (\"500ms\", \"5s\"...). */\nfunction durationMs(raw: string): number {\n const value = raw.trim();\n if (/^\\d+(?:\\.\\d+)?$/.test(value)) return parseDuration(Number(value) * 1000);\n return parseDuration(value);\n}\n\nexport const collectorFunctions = defineFunctions(fn => {\n fn('awaitMessage', 'collectors', 1, 3, '[segundos;usuario?;canal?]', 'Aguarda mensagem e retorna o conteúdo ou vazio em timeout.', async c => {\n const timeMs = durationMs(await c.text(0));\n const userID = c.count > 1 ? (await c.text(1)).trim() : '';\n const channelArg = c.count > 2 ? (await c.text(2)).trim() : '';\n const collected = await c.wait(c.ctx.resources.collectors.awaitMessage(channelArg ? channelArg : c.ctx.message.channelID, {\n userID: userID ? userID : undefined, timeMs,\n }));\n return collected?.content ?? '';\n });\n fn('awaitReaction', 'collectors', 1, 3, '[segundos;emoji?;mensagem?]', 'Aguarda reação e retorna o userID ou vazio em timeout.', async c => {\n const timeMs = durationMs(await c.text(0));\n const emojiArg = c.count > 1 ? (await c.text(1)).trim() : '';\n const messageArg = c.count > 2 ? (await c.text(2)).trim() : '';\n const selected = await c.wait(c.ctx.resources.collectors.awaitReaction(\n c.ctx.message.channelID, messageArg ? messageArg : c.ctx.message.id,\n emojiArg ? emojiArg : '✅', timeMs));\n return selected?.userID ?? '';\n });\n fn('confirm', 'collectors', 1, 2, '[segundos;texto?]', 'Pede confirmação com ✅/❌ e retorna boolean.', async c => {\n const timeMs = durationMs(await c.text(0));\n const textArg = c.count > 1 ? (await c.text(1)).trim() : '';\n const channelID = c.ctx.message.channelID;\n const promptID = await c.ctx.reply(textArg ? textArg : 'Confirme reagindo abaixo.');\n try {\n await c.ctx.react('✅', promptID);\n await c.ctx.react('❌', promptID);\n const selected = await c.wait(c.ctx.resources.collectors.awaitReaction(\n channelID, promptID, ['✅', '❌'], timeMs, c.ctx.message.authorID));\n return selected !== null && (selected.emoji === '✅' || selected.emoji.toLowerCase() === 'white_check_mark');\n } finally {\n // Limpeza best-effort das reações do bot; nunca propaga erro.\n try {\n const native = c.ctx.nativeMessage;\n if (native !== undefined && native !== null && native.id === promptID && native.channelId === channelID) {\n await native.removeReaction('✅');\n await native.removeReaction('❌');\n }\n } catch { /* limpeza nunca falha o comando */ }\n }\n });\n});\n"]}
1
+ {"version":3,"file":"native-collectors.js","sourceRoot":"","sources":["../../../src/functions/builtins/native-collectors.ts"],"names":[],"mappings":"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","sourcesContent":["import { parseDuration } from '../../domain/values.js';\nimport { defineFunctions } from './definition.js';\n\n/** Duração em ms: segundos puros (\"10\" = 10s) ou formato parseDuration (\"500ms\", \"5s\"...). */\nfunction durationMs(raw: string): number {\n const value = raw.trim();\n if (/^\\d+(?:\\.\\d+)?$/.test(value)) return parseDuration(Number(value) * 1000);\n return parseDuration(value);\n}\n\nexport const collectorFunctions = defineFunctions(fn => {\n fn('awaitMessage', 'collectors', 1, 3, '[segundos;usuario?;canal?]', 'Aguarda mensagem e retorna o conteúdo ou vazio em timeout.', async c => {\n const timeMs = durationMs(await c.text(0));\n const userID = c.count > 1 ? (await c.text(1)).trim() : '';\n const channelArg = c.count > 2 ? (await c.text(2)).trim() : '';\n const collected = await c.wait(c.ctx.resources.collectors.awaitMessage(channelArg ? channelArg : c.ctx.message.channelID, {\n userID: userID ? userID : undefined, timeMs,\n }));\n return collected?.content ?? '';\n });\n fn('awaitReaction', 'collectors', 1, 3, '[segundos;emoji?;mensagem?]', 'Aguarda reação e retorna o userID ou vazio em timeout.', async c => {\n const timeMs = durationMs(await c.text(0));\n const emojiArg = c.count > 1 ? (await c.text(1)).trim() : '';\n const messageArg = c.count > 2 ? (await c.text(2)).trim() : '';\n const selected = await c.wait(c.ctx.resources.collectors.awaitReaction(\n c.ctx.message.channelID, messageArg ? messageArg : c.ctx.message.id,\n emojiArg ? emojiArg : '✅', timeMs));\n return selected?.userID ?? '';\n });\n fn('confirm', 'collectors', 1, 2, '[segundos;texto?]', 'Pede confirmação com ✅/❌ e retorna boolean.', async c => {\n const timeMs = durationMs(await c.text(0));\n const textArg = c.count > 1 ? (await c.text(1)).trim() : '';\n const channelID = c.ctx.message.channelID;\n const promptID = await c.ctx.reply(textArg ? textArg : 'Confirme reagindo abaixo.');\n try {\n await c.ctx.react('✅', promptID);\n await c.ctx.react('❌', promptID);\n const selected = await c.wait(c.ctx.resources.collectors.awaitReaction(\n channelID, promptID, ['✅', '❌'], timeMs, c.ctx.message.authorID));\n return selected !== null && (selected.emoji === '✅' || selected.emoji.toLowerCase() === 'white_check_mark');\n } finally {\n // Limpeza best-effort das reações do bot; nunca propaga erro.\n try {\n const native = c.ctx.nativeMessage;\n if (native !== undefined && native !== null && native.id === promptID && native.channelId === channelID) {\n await native.removeReaction('✅');\n await native.removeReaction('❌');\n }\n } catch { /* limpeza nunca falha o comando */ }\n }\n });\n});\n"]}
@@ -0,0 +1,2 @@
1
+ export declare const expressionFunctions: import("../runtime/types.js").FunctionDefinition[];
2
+ //# sourceMappingURL=native-expressions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-expressions.d.ts","sourceRoot":"","sources":["../../../src/functions/builtins/native-expressions.ts"],"names":[],"mappings":"AAsCA,eAAO,MAAM,mBAAmB,oDA2E9B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"native-expressions.js","sourceRoot":"","sources":["../../../src/scripting/builtins/native-expressions.ts"],"names":[],"mappings":"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","sourcesContent":["import type { EmojiInfo, StickerInfo } from '../../ports/resources/expressions.js';\nimport { YuzuhaError } from '../../errors.js';\nimport { defineFunctions } from './definition.js';\nimport { emojiBatch } from '../../domain/resource-batches.js';\n\nconst EMOJI_PROPERTIES = new Set(['id', 'name', 'animated', 'url', 'mention']);\nconst STICKER_PROPERTIES = new Set(['id', 'name', 'description', 'tags']);\n\nfunction emojiProperty(emoji: EmojiInfo, property?: string): unknown {\n if (property === undefined || property === '') return emoji;\n const key = property.toLowerCase();\n if (!EMOJI_PROPERTIES.has(key)) throw new YuzuhaError('EMOJI_PROPERTY', `Propriedade de emoji inválida: ${property}.`);\n if (key === 'mention') return `<${emoji.animated ? 'a' : ''}:${emoji.name}:${emoji.id}>`;\n return emoji[key as 'id' | 'name' | 'animated' | 'url'];\n}\n\nfunction stickerProperty(sticker: StickerInfo, property?: string): unknown {\n if (property === undefined || property === '') return sticker;\n const key = property.toLowerCase();\n if (!STICKER_PROPERTIES.has(key)) throw new YuzuhaError('STICKER_PROPERTY', `Propriedade de sticker inválida: ${property}.`);\n return sticker[key as 'id' | 'name' | 'description' | 'tags'];\n}\n\nfunction validEmojiName(name: string): string {\n if (!/^\\S{2,32}$/.test(name)) throw new YuzuhaError('EMOJI_NAME', 'Nome de emoji deve ter de 2 a 32 caracteres sem espaços.');\n return name;\n}\n\nfunction validImageURL(url: string): string {\n try {\n const parsed = new URL(url);\n if (!['http:', 'https:'].includes(parsed.protocol)) throw new Error();\n return url;\n } catch {\n throw new YuzuhaError('EMOJI_URL', 'URL da imagem deve ser HTTP/HTTPS.');\n }\n}\n\nexport const expressionFunctions = defineFunctions(fn => {\n fn('createEmojisBulk', 'expressions', 1, 1, '[emojis]', 'Cria de 1 a 50 emojis com name e image em base64; retorna success e failed sem ocultar falhas parciais.', async c => {\n const batch = emojiBatch(await c.arg(0));\n return c.ctx.resources.expressions.createEmojisBulk(c.ctx.requireGuild(), batch);\n });\n fn('editEmoji', 'expressions', 2, 3, '[nomeOuID;novoNome;motivo?]', 'Renomeia um emoji do servidor e retorna suas informações.', async c => {\n const guildID = c.ctx.requireGuild();\n const query = (await c.text(0)).trim();\n if (!query) throw new YuzuhaError('EMOJI_QUERY', 'Informe o nome, ID ou menção do emoji.');\n return c.ctx.resources.expressions.editEmoji(guildID, query, validEmojiName(await c.text(1)), c.count > 2 ? await c.text(2) : undefined);\n });\n fn('createSticker', 'expressions', 2, 5, '[nome;imagemBase64;descrição?;tags?;motivo?]', 'Cria sticker com imagem em base64; tags separadas por vírgula.', async c => {\n const guildID = c.ctx.requireGuild();\n const name = stickerName(await c.text(0));\n const image = (await c.text(1)).trim();\n if (!image || !/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(image)) {\n throw new YuzuhaError('STICKER_IMAGE', 'Imagem do sticker deve ser base64 válido, sem prefixo data:.');\n }\n const description = c.count > 2 ? await c.text(2) : undefined;\n if (description !== undefined && description.length > 100) throw new YuzuhaError('STICKER_DESCRIPTION', 'Descrição deve ter no máximo 100 caracteres.');\n const tags = c.count > 3 ? (await c.text(3)).split(',').map(tag => tag.trim()).filter(Boolean) : undefined;\n const reason = c.count > 4 ? await c.text(4) : undefined;\n return c.ctx.resources.expressions.createSticker(guildID, { name, image, description, tags, reason });\n });\n fn('editSticker', 'expressions', 1, 4, '[nomeOuID;novoNome?;descrição?;motivo?]', 'Edita sticker; nome vazio mantém e descrição vazia limpa.', async c => {\n const guildID = c.ctx.requireGuild();\n const query = (await c.text(0)).trim();\n if (!query) throw new YuzuhaError('STICKER_QUERY', 'Informe o nome ou ID do sticker.');\n const rawName = c.count > 1 ? (await c.text(1)).trim() : '';\n const name = rawName ? stickerName(rawName) : undefined;\n const description = c.count > 2 ? await c.text(2) : undefined;\n if (description !== undefined && description.length > 100) throw new YuzuhaError('STICKER_DESCRIPTION', 'Descrição deve ter no máximo 100 caracteres.');\n return c.ctx.resources.expressions.editSticker(guildID, query, {\n name, description, reason: c.count > 3 ? await c.text(3) : undefined,\n });\n });\n fn('deleteSticker', 'expressions', 1, 2, '[nomeOuID;motivo?]', 'Apaga um sticker do servidor.', async c => {\n const guildID = c.ctx.requireGuild();\n const query = (await c.text(0)).trim();\n if (!query) throw new YuzuhaError('STICKER_QUERY', 'Informe o nome ou ID do sticker.');\n await c.ctx.resources.expressions.deleteSticker(guildID, query, c.count > 1 ? await c.text(1) : undefined);\n return '';\n });\n fn('emoji', 'expressions', 1, 2, '[nomeOuID;propriedade?]', 'Busca emoji do servidor por ID, nome ou menção.', async c => {\n const query = await c.text(0);\n if (!query.trim()) throw new YuzuhaError('EMOJI_QUERY', 'Informe o nome, ID ou menção do emoji.');\n const emoji = await c.ctx.resources.expressions.emoji(c.ctx.requireGuild(), query);\n return emojiProperty(emoji, c.count > 1 ? await c.text(1) : undefined);\n });\n fn('emojis', 'expressions', 0, 0, '', 'Lista emojis do servidor atual.', async c =>\n c.ctx.resources.expressions.emojis(c.ctx.requireGuild()));\n fn('createEmoji', 'expressions', 2, 2, '[nome;url]', 'Exige ManageExpressions de autor e bot antes de baixar a imagem por HTTP, converter para base64 e criar emoji no servidor.', async c => {\n const guildID = c.ctx.requireGuild();\n const name = validEmojiName(await c.text(0));\n const url = validImageURL(await c.text(1));\n await c.ctx.requirePermission('ManageExpressions');\n await c.ctx.requirePermission('ManageExpressions', true);\n const response = await c.wait(c.ctx.http.requestBytes({ method: 'GET', url }));\n if (!response.ok) throw new YuzuhaError('EMOJI_IMAGE', `Não foi possível baixar a imagem: HTTP ${response.status}.`);\n return c.ctx.resources.expressions.createEmoji(guildID, name, Buffer.from(response.body).toString('base64'));\n });\n fn('deleteEmoji', 'expressions', 1, 1, '[nomeOuID]', 'Apaga emoji do servidor.', async c => {\n const query = await c.text(0);\n if (!query.trim()) throw new YuzuhaError('EMOJI_QUERY', 'Informe o nome, ID ou menção do emoji.');\n await c.ctx.resources.expressions.deleteEmoji(c.ctx.requireGuild(), query);\n return '';\n });\n fn('sticker', 'expressions', 1, 2, '[nomeOuID;propriedade?]', 'Busca sticker do servidor por ID ou nome.', async c => {\n const query = await c.text(0);\n if (!query.trim()) throw new YuzuhaError('STICKER_QUERY', 'Informe o nome ou ID do sticker.');\n const sticker = await c.ctx.resources.expressions.sticker(c.ctx.requireGuild(), query);\n return stickerProperty(sticker, c.count > 1 ? await c.text(1) : undefined);\n });\n fn('stickers', 'expressions', 0, 0, '', 'Lista stickers do servidor atual.', async c =>\n c.ctx.resources.expressions.stickers(c.ctx.requireGuild()));\n});\n\nfunction stickerName(raw: string): string {\n const value = raw.trim();\n if (value.length < 2 || value.length > 30) throw new YuzuhaError('STICKER_NAME', 'Nome do sticker deve ter de 2 a 30 caracteres.');\n return value;\n}\n"]}
1
+ {"version":3,"file":"native-expressions.js","sourceRoot":"","sources":["../../../src/functions/builtins/native-expressions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAE9D,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;AAC/E,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;AAE1E,SAAS,aAAa,CAAC,KAAgB,EAAE,QAAiB;IACxD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IAC5D,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACnC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,WAAW,CAAC,gBAAgB,EAAE,kCAAkC,QAAQ,GAAG,CAAC,CAAC;IACvH,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,GAAG,CAAC;IACzF,OAAO,KAAK,CAAC,GAAyC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,eAAe,CAAC,OAAoB,EAAE,QAAiB;IAC9D,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,EAAE;QAAE,OAAO,OAAO,CAAC;IAC9D,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACnC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,WAAW,CAAC,kBAAkB,EAAE,oCAAoC,QAAQ,GAAG,CAAC,CAAC;IAC7H,OAAO,OAAO,CAAC,GAA6C,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,WAAW,CAAC,YAAY,EAAE,0DAA0D,CAAC,CAAC;IAC9H,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CAAC,GAAW;IAChC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,KAAK,EAAE,CAAC;QACtE,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,WAAW,CAAC,WAAW,EAAE,oCAAoC,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,eAAe,CAAC,EAAE,CAAC,EAAE;IACtD,EAAE,CAAC,kBAAkB,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,yGAAyG,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;QAC3K,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,KAAK,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,EAAE,6BAA6B,EAAE,2DAA2D,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;QACzI,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,WAAW,CAAC,aAAa,EAAE,wCAAwC,CAAC,CAAC;QAC3F,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC3I,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,eAAe,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,EAAE,8CAA8C,EAAE,gEAAgE,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;QACnK,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,KAAK,IAAI,CAAC,kEAAkE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9F,MAAM,IAAI,WAAW,CAAC,eAAe,EAAE,8DAA8D,CAAC,CAAC;QACzG,CAAC;QACD,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9D,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,CAAC,MAAM,GAAG,GAAG;YAAE,MAAM,IAAI,WAAW,CAAC,qBAAqB,EAAE,8CAA8C,CAAC,CAAC;QACxJ,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3G,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACzD,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACxG,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,EAAE,yCAAyC,EAAE,2DAA2D,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;QACvJ,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,WAAW,CAAC,eAAe,EAAE,kCAAkC,CAAC,CAAC;QACvF,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACxD,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9D,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,CAAC,MAAM,GAAG,GAAG;YAAE,MAAM,IAAI,WAAW,CAAC,qBAAqB,EAAE,8CAA8C,CAAC,CAAC;QACxJ,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE;YAC7D,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;SACrE,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,eAAe,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,EAAE,oBAAoB,EAAE,+BAA+B,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;QACxG,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,WAAW,CAAC,eAAe,EAAE,kCAAkC,CAAC,CAAC;QACvF,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC3G,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,EAAE,yBAAyB,EAAE,iDAAiD,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;QACvH,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YAAE,MAAM,IAAI,WAAW,CAAC,aAAa,EAAE,wCAAwC,CAAC,CAAC;QAClG,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,KAAK,CAAC,CAAC;QACnF,OAAO,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,iCAAiC,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE,CACjF,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IAC5D,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,4HAA4H,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;QAC3L,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;QACnD,MAAM,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAC/E,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,MAAM,IAAI,WAAW,CAAC,aAAa,EAAE,0CAA0C,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QACrH,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/G,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,0BAA0B,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;QACzF,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YAAE,MAAM,IAAI,WAAW,CAAC,aAAa,EAAE,wCAAwC,CAAC,CAAC;QAClG,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,KAAK,CAAC,CAAC;QAC3E,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,EAAE,yBAAyB,EAAE,2CAA2C,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;QACnH,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YAAE,MAAM,IAAI,WAAW,CAAC,eAAe,EAAE,kCAAkC,CAAC,CAAC;QAC9F,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,KAAK,CAAC,CAAC;QACvF,OAAO,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,mCAAmC,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE,CACrF,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;AAChE,CAAC,CAAC,CAAC;AAEH,SAAS,WAAW,CAAC,GAAW;IAC9B,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACzB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE;QAAE,MAAM,IAAI,WAAW,CAAC,cAAc,EAAE,gDAAgD,CAAC,CAAC;IACnI,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["import type { EmojiInfo, StickerInfo } from '../../ports/resources/expressions.js';\nimport { YuzuhaError } from '../../errors.js';\nimport { defineFunctions } from './definition.js';\nimport { emojiBatch } from '../../domain/resource-batches.js';\n\nconst EMOJI_PROPERTIES = new Set(['id', 'name', 'animated', 'url', 'mention']);\nconst STICKER_PROPERTIES = new Set(['id', 'name', 'description', 'tags']);\n\nfunction emojiProperty(emoji: EmojiInfo, property?: string): unknown {\n if (property === undefined || property === '') return emoji;\n const key = property.toLowerCase();\n if (!EMOJI_PROPERTIES.has(key)) throw new YuzuhaError('EMOJI_PROPERTY', `Propriedade de emoji inválida: ${property}.`);\n if (key === 'mention') return `<${emoji.animated ? 'a' : ''}:${emoji.name}:${emoji.id}>`;\n return emoji[key as 'id' | 'name' | 'animated' | 'url'];\n}\n\nfunction stickerProperty(sticker: StickerInfo, property?: string): unknown {\n if (property === undefined || property === '') return sticker;\n const key = property.toLowerCase();\n if (!STICKER_PROPERTIES.has(key)) throw new YuzuhaError('STICKER_PROPERTY', `Propriedade de sticker inválida: ${property}.`);\n return sticker[key as 'id' | 'name' | 'description' | 'tags'];\n}\n\nfunction validEmojiName(name: string): string {\n if (!/^\\S{2,32}$/.test(name)) throw new YuzuhaError('EMOJI_NAME', 'Nome de emoji deve ter de 2 a 32 caracteres sem espaços.');\n return name;\n}\n\nfunction validImageURL(url: string): string {\n try {\n const parsed = new URL(url);\n if (!['http:', 'https:'].includes(parsed.protocol)) throw new Error();\n return url;\n } catch {\n throw new YuzuhaError('EMOJI_URL', 'URL da imagem deve ser HTTP/HTTPS.');\n }\n}\n\nexport const expressionFunctions = defineFunctions(fn => {\n fn('createEmojisBulk', 'expressions', 1, 1, '[emojis]', 'Cria de 1 a 50 emojis com name e image em base64; retorna success e failed sem ocultar falhas parciais.', async c => {\n const batch = emojiBatch(await c.arg(0));\n return c.ctx.resources.expressions.createEmojisBulk(c.ctx.requireGuild(), batch);\n });\n fn('editEmoji', 'expressions', 2, 3, '[nomeOuID;novoNome;motivo?]', 'Renomeia um emoji do servidor e retorna suas informações.', async c => {\n const guildID = c.ctx.requireGuild();\n const query = (await c.text(0)).trim();\n if (!query) throw new YuzuhaError('EMOJI_QUERY', 'Informe o nome, ID ou menção do emoji.');\n return c.ctx.resources.expressions.editEmoji(guildID, query, validEmojiName(await c.text(1)), c.count > 2 ? await c.text(2) : undefined);\n });\n fn('createSticker', 'expressions', 2, 5, '[nome;imagemBase64;descrição?;tags?;motivo?]', 'Cria sticker com imagem em base64; tags separadas por vírgula.', async c => {\n const guildID = c.ctx.requireGuild();\n const name = stickerName(await c.text(0));\n const image = (await c.text(1)).trim();\n if (!image || !/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(image)) {\n throw new YuzuhaError('STICKER_IMAGE', 'Imagem do sticker deve ser base64 válido, sem prefixo data:.');\n }\n const description = c.count > 2 ? await c.text(2) : undefined;\n if (description !== undefined && description.length > 100) throw new YuzuhaError('STICKER_DESCRIPTION', 'Descrição deve ter no máximo 100 caracteres.');\n const tags = c.count > 3 ? (await c.text(3)).split(',').map(tag => tag.trim()).filter(Boolean) : undefined;\n const reason = c.count > 4 ? await c.text(4) : undefined;\n return c.ctx.resources.expressions.createSticker(guildID, { name, image, description, tags, reason });\n });\n fn('editSticker', 'expressions', 1, 4, '[nomeOuID;novoNome?;descrição?;motivo?]', 'Edita sticker; nome vazio mantém e descrição vazia limpa.', async c => {\n const guildID = c.ctx.requireGuild();\n const query = (await c.text(0)).trim();\n if (!query) throw new YuzuhaError('STICKER_QUERY', 'Informe o nome ou ID do sticker.');\n const rawName = c.count > 1 ? (await c.text(1)).trim() : '';\n const name = rawName ? stickerName(rawName) : undefined;\n const description = c.count > 2 ? await c.text(2) : undefined;\n if (description !== undefined && description.length > 100) throw new YuzuhaError('STICKER_DESCRIPTION', 'Descrição deve ter no máximo 100 caracteres.');\n return c.ctx.resources.expressions.editSticker(guildID, query, {\n name, description, reason: c.count > 3 ? await c.text(3) : undefined,\n });\n });\n fn('deleteSticker', 'expressions', 1, 2, '[nomeOuID;motivo?]', 'Apaga um sticker do servidor.', async c => {\n const guildID = c.ctx.requireGuild();\n const query = (await c.text(0)).trim();\n if (!query) throw new YuzuhaError('STICKER_QUERY', 'Informe o nome ou ID do sticker.');\n await c.ctx.resources.expressions.deleteSticker(guildID, query, c.count > 1 ? await c.text(1) : undefined);\n return '';\n });\n fn('emoji', 'expressions', 1, 2, '[nomeOuID;propriedade?]', 'Busca emoji do servidor por ID, nome ou menção.', async c => {\n const query = await c.text(0);\n if (!query.trim()) throw new YuzuhaError('EMOJI_QUERY', 'Informe o nome, ID ou menção do emoji.');\n const emoji = await c.ctx.resources.expressions.emoji(c.ctx.requireGuild(), query);\n return emojiProperty(emoji, c.count > 1 ? await c.text(1) : undefined);\n });\n fn('emojis', 'expressions', 0, 0, '', 'Lista emojis do servidor atual.', async c =>\n c.ctx.resources.expressions.emojis(c.ctx.requireGuild()));\n fn('createEmoji', 'expressions', 2, 2, '[nome;url]', 'Exige ManageExpressions de autor e bot antes de baixar a imagem por HTTP, converter para base64 e criar emoji no servidor.', async c => {\n const guildID = c.ctx.requireGuild();\n const name = validEmojiName(await c.text(0));\n const url = validImageURL(await c.text(1));\n await c.ctx.requirePermission('ManageExpressions');\n await c.ctx.requirePermission('ManageExpressions', true);\n const response = await c.wait(c.ctx.http.requestBytes({ method: 'GET', url }));\n if (!response.ok) throw new YuzuhaError('EMOJI_IMAGE', `Não foi possível baixar a imagem: HTTP ${response.status}.`);\n return c.ctx.resources.expressions.createEmoji(guildID, name, Buffer.from(response.body).toString('base64'));\n });\n fn('deleteEmoji', 'expressions', 1, 1, '[nomeOuID]', 'Apaga emoji do servidor.', async c => {\n const query = await c.text(0);\n if (!query.trim()) throw new YuzuhaError('EMOJI_QUERY', 'Informe o nome, ID ou menção do emoji.');\n await c.ctx.resources.expressions.deleteEmoji(c.ctx.requireGuild(), query);\n return '';\n });\n fn('sticker', 'expressions', 1, 2, '[nomeOuID;propriedade?]', 'Busca sticker do servidor por ID ou nome.', async c => {\n const query = await c.text(0);\n if (!query.trim()) throw new YuzuhaError('STICKER_QUERY', 'Informe o nome ou ID do sticker.');\n const sticker = await c.ctx.resources.expressions.sticker(c.ctx.requireGuild(), query);\n return stickerProperty(sticker, c.count > 1 ? await c.text(1) : undefined);\n });\n fn('stickers', 'expressions', 0, 0, '', 'Lista stickers do servidor atual.', async c =>\n c.ctx.resources.expressions.stickers(c.ctx.requireGuild()));\n});\n\nfunction stickerName(raw: string): string {\n const value = raw.trim();\n if (value.length < 2 || value.length > 30) throw new YuzuhaError('STICKER_NAME', 'Nome do sticker deve ter de 2 a 30 caracteres.');\n return value;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export declare const inviteFunctions: import("../runtime/types.js").FunctionDefinition[];
2
+ //# sourceMappingURL=native-invites.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-invites.d.ts","sourceRoot":"","sources":["../../../src/functions/builtins/native-invites.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,eAAe,oDAyB1B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"native-invites.js","sourceRoot":"","sources":["../../../src/scripting/builtins/native-invites.ts"],"names":[],"mappings":"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","sourcesContent":["import { parseDuration } from '../../domain/values.js';\nimport { YuzuhaError } from '../../errors.js';\nimport { defineFunctions } from './definition.js';\n\nfunction inviteCode(raw: string): string {\n const path = raw.trim().split(/[?#]/)[0]!.replace(/\\/+$/, '');\n const code = path.includes('/') ? path.slice(path.lastIndexOf('/') + 1) : path;\n if (!code) throw new YuzuhaError('INVITE', 'Informe o código ou a URL do convite.');\n return code;\n}\n\nfunction channelID(raw: string): string {\n const value = raw.trim();\n const mention = /^<#(\\S+)>$/.exec(value);\n const id = mention?.[1] ?? value;\n if (!id) throw new YuzuhaError('CHANNEL', 'Informe o ID do canal.');\n return id;\n}\n\nexport const inviteFunctions = defineFunctions(fn => {\n fn('invite', 'invites', 1, 1, '[codigo]', 'Mostra um convite por código ou URL.', async c => {\n return c.ctx.resources.invites.get(inviteCode(await c.text(0)));\n });\n fn('createInvite', 'invites', 1, 3, '[canal;maxUsos?;duracao?]', 'Cria um convite; duração como 1h, 0 nunca expira.', async c => {\n const id = channelID(await c.text(0));\n const maxRaw = c.count > 1 ? (await c.text(1)).trim() : '';\n let maxUses: number | undefined;\n if (maxRaw) {\n maxUses = /^\\d+$/.test(maxRaw) ? Number(maxRaw) : NaN;\n if (!Number.isSafeInteger(maxUses) || (maxUses as number) < 0) {\n throw new YuzuhaError('INVITE', 'Máximo de usos deve ser um inteiro maior ou igual a 0.');\n }\n }\n const durationRaw = c.count > 2 ? (await c.text(2)).trim() : '';\n const maxAge = !durationRaw || durationRaw === '0' ? 0 : Math.floor(parseDuration(durationRaw) / 1000);\n return c.ctx.resources.invites.create(id, {\n ...(maxUses !== undefined ? { maxUses } : {}),\n maxAge,\n });\n });\n fn('deleteInvite', 'invites', 1, 1, '[codigo]', 'Apaga um convite por código ou URL.', async c => {\n await c.ctx.resources.invites.delete(inviteCode(await c.text(0)));\n return '';\n });\n});\n"]}
1
+ {"version":3,"file":"native-invites.js","sourceRoot":"","sources":["../../../src/functions/builtins/native-invites.ts"],"names":[],"mappings":"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","sourcesContent":["import { parseDuration } from '../../domain/values.js';\nimport { YuzuhaError } from '../../errors.js';\nimport { defineFunctions } from './definition.js';\n\nfunction inviteCode(raw: string): string {\n const path = raw.trim().split(/[?#]/)[0]!.replace(/\\/+$/, '');\n const code = path.includes('/') ? path.slice(path.lastIndexOf('/') + 1) : path;\n if (!code) throw new YuzuhaError('INVITE', 'Informe o código ou a URL do convite.');\n return code;\n}\n\nfunction channelID(raw: string): string {\n const value = raw.trim();\n const mention = /^<#(\\S+)>$/.exec(value);\n const id = mention?.[1] ?? value;\n if (!id) throw new YuzuhaError('CHANNEL', 'Informe o ID do canal.');\n return id;\n}\n\nexport const inviteFunctions = defineFunctions(fn => {\n fn('invite', 'invites', 1, 1, '[codigo]', 'Mostra um convite por código ou URL.', async c => {\n return c.ctx.resources.invites.get(inviteCode(await c.text(0)));\n });\n fn('createInvite', 'invites', 1, 3, '[canal;maxUsos?;duracao?]', 'Cria um convite; duração como 1h, 0 nunca expira.', async c => {\n const id = channelID(await c.text(0));\n const maxRaw = c.count > 1 ? (await c.text(1)).trim() : '';\n let maxUses: number | undefined;\n if (maxRaw) {\n maxUses = /^\\d+$/.test(maxRaw) ? Number(maxRaw) : NaN;\n if (!Number.isSafeInteger(maxUses) || (maxUses as number) < 0) {\n throw new YuzuhaError('INVITE', 'Máximo de usos deve ser um inteiro maior ou igual a 0.');\n }\n }\n const durationRaw = c.count > 2 ? (await c.text(2)).trim() : '';\n const maxAge = !durationRaw || durationRaw === '0' ? 0 : Math.floor(parseDuration(durationRaw) / 1000);\n return c.ctx.resources.invites.create(id, {\n ...(maxUses !== undefined ? { maxUses } : {}),\n maxAge,\n });\n });\n fn('deleteInvite', 'invites', 1, 1, '[codigo]', 'Apaga um convite por código ou URL.', async c => {\n await c.ctx.resources.invites.delete(inviteCode(await c.text(0)));\n return '';\n });\n});\n"]}
@@ -0,0 +1,2 @@
1
+ export declare const resourceMessageFunctions: import("../runtime/types.js").FunctionDefinition[];
2
+ //# sourceMappingURL=native-messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-messages.d.ts","sourceRoot":"","sources":["../../../src/functions/builtins/native-messages.ts"],"names":[],"mappings":"AAmDA,eAAO,MAAM,wBAAwB,oDAgGnC,CAAC"}