dfx 0.126.1 → 1.0.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 (342) hide show
  1. package/.babel.cjs.json +11 -0
  2. package/.babel.mjs.json +10 -0
  3. package/.envrc +1 -0
  4. package/.gitmodules +3 -0
  5. package/.husky/pre-commit +2 -0
  6. package/.oxlintrc.json +72 -0
  7. package/.prettierignore +0 -0
  8. package/.prettierrc.json +5 -0
  9. package/.tool-versions +1 -0
  10. package/.vscode/debug.cjs +8 -0
  11. package/.vscode/launch.json +23 -0
  12. package/.vscode/settings.json +29 -0
  13. package/.vscode/tasks.json +44 -0
  14. package/AGENTS.md +15 -0
  15. package/CHANGELOG.md +1554 -0
  16. package/examples/.env.example +5 -0
  17. package/examples/interactions.ts +79 -0
  18. package/examples/readme.ts +56 -0
  19. package/examples/registry.ts +66 -0
  20. package/flake.lock +27 -0
  21. package/flake.nix +21 -0
  22. package/lerna.json +12 -0
  23. package/package.json +79 -36
  24. package/pnpm-workspace.yaml +7 -0
  25. package/scripts/generate-client.sh +10 -0
  26. package/scripts/worktree-setup.sh +8 -0
  27. package/src/Cache/memory.ts +5 -5
  28. package/src/Cache/memoryTTL.ts +11 -7
  29. package/src/Cache/prelude.ts +10 -8
  30. package/src/Cache.ts +31 -35
  31. package/src/DiscordConfig.ts +12 -16
  32. package/src/DiscordGateway/DiscordWS.ts +58 -32
  33. package/src/DiscordGateway/Messaging.ts +13 -15
  34. package/src/DiscordGateway/Shard/StateStore.ts +30 -25
  35. package/src/DiscordGateway/Shard/heartbeats.ts +25 -28
  36. package/src/DiscordGateway/Shard/identify.ts +11 -6
  37. package/src/DiscordGateway/Shard/sendEvents.ts +1 -1
  38. package/src/DiscordGateway/Shard/utils.ts +1 -1
  39. package/src/DiscordGateway/Shard.ts +39 -35
  40. package/src/DiscordGateway/ShardStore.ts +6 -7
  41. package/src/DiscordGateway/Sharder.ts +31 -29
  42. package/src/DiscordGateway.ts +15 -14
  43. package/src/DiscordREST/Generated.ts +660 -341
  44. package/src/DiscordREST/utils.ts +6 -3
  45. package/src/DiscordREST.ts +37 -41
  46. package/src/Helpers/flags.ts +10 -5
  47. package/src/Helpers/intents.ts +2 -2
  48. package/src/Helpers/interactions.ts +16 -14
  49. package/src/Helpers/members.ts +3 -3
  50. package/src/Helpers/permissions.ts +5 -5
  51. package/src/Helpers/ui.ts +16 -16
  52. package/src/Interactions/builder.ts +10 -10
  53. package/src/Interactions/commandHelper.ts +18 -29
  54. package/src/Interactions/context.ts +51 -65
  55. package/src/Interactions/definitions.ts +3 -3
  56. package/src/Interactions/gateway.ts +33 -45
  57. package/src/Interactions/handlers.ts +8 -5
  58. package/src/Interactions/index.ts +5 -5
  59. package/src/Interactions/utils.ts +6 -6
  60. package/src/Interactions/webhook.ts +31 -38
  61. package/src/RateLimit/memory.ts +3 -3
  62. package/src/RateLimit.ts +18 -15
  63. package/src/gateway.ts +21 -21
  64. package/src/index.ts +17 -17
  65. package/src/types.ts +18 -16
  66. package/src/utils/Effect.ts +38 -27
  67. package/src/webhooks.ts +7 -7
  68. package/test/index.test.ts +5 -0
  69. package/tsconfig.base.json +12 -6
  70. package/tsconfig.examples.json +0 -1
  71. package/vitest.config.ts +22 -0
  72. package/Cache/driver.d.ts +0 -24
  73. package/Cache/driver.d.ts.map +0 -1
  74. package/Cache/driver.js +0 -11
  75. package/Cache/driver.js.map +0 -1
  76. package/Cache/memory.d.ts +0 -5
  77. package/Cache/memory.d.ts.map +0 -1
  78. package/Cache/memory.js +0 -57
  79. package/Cache/memory.js.map +0 -1
  80. package/Cache/memoryTTL.d.ts +0 -23
  81. package/Cache/memoryTTL.d.ts.map +0 -1
  82. package/Cache/memoryTTL.js +0 -128
  83. package/Cache/memoryTTL.js.map +0 -1
  84. package/Cache/prelude.d.ts +0 -32
  85. package/Cache/prelude.d.ts.map +0 -1
  86. package/Cache/prelude.js +0 -143
  87. package/Cache/prelude.js.map +0 -1
  88. package/Cache.d.ts +0 -82
  89. package/Cache.d.ts.map +0 -1
  90. package/Cache.js +0 -144
  91. package/Cache.js.map +0 -1
  92. package/DiscordConfig.d.ts +0 -35
  93. package/DiscordConfig.d.ts.map +0 -1
  94. package/DiscordConfig.js +0 -42
  95. package/DiscordConfig.js.map +0 -1
  96. package/DiscordGateway/DiscordWS.d.ts +0 -37
  97. package/DiscordGateway/DiscordWS.d.ts.map +0 -1
  98. package/DiscordGateway/DiscordWS.js +0 -73
  99. package/DiscordGateway/DiscordWS.js.map +0 -1
  100. package/DiscordGateway/Messaging.d.ts +0 -393
  101. package/DiscordGateway/Messaging.d.ts.map +0 -1
  102. package/DiscordGateway/Messaging.js +0 -40
  103. package/DiscordGateway/Messaging.js.map +0 -1
  104. package/DiscordGateway/Shard/StateStore.d.ts +0 -24
  105. package/DiscordGateway/Shard/StateStore.d.ts.map +0 -1
  106. package/DiscordGateway/Shard/StateStore.js +0 -48
  107. package/DiscordGateway/Shard/StateStore.js.map +0 -1
  108. package/DiscordGateway/Shard/heartbeats.d.ts +0 -8
  109. package/DiscordGateway/Shard/heartbeats.d.ts.map +0 -1
  110. package/DiscordGateway/Shard/heartbeats.js +0 -28
  111. package/DiscordGateway/Shard/heartbeats.js.map +0 -1
  112. package/DiscordGateway/Shard/identify.d.ts +0 -12
  113. package/DiscordGateway/Shard/identify.d.ts.map +0 -1
  114. package/DiscordGateway/Shard/identify.js +0 -38
  115. package/DiscordGateway/Shard/identify.js.map +0 -1
  116. package/DiscordGateway/Shard/sendEvents.d.ts +0 -8
  117. package/DiscordGateway/Shard/sendEvents.d.ts.map +0 -1
  118. package/DiscordGateway/Shard/sendEvents.js +0 -39
  119. package/DiscordGateway/Shard/sendEvents.js.map +0 -1
  120. package/DiscordGateway/Shard/utils.d.ts +0 -6
  121. package/DiscordGateway/Shard/utils.d.ts.map +0 -1
  122. package/DiscordGateway/Shard/utils.js +0 -11
  123. package/DiscordGateway/Shard/utils.js.map +0 -1
  124. package/DiscordGateway/Shard.d.ts +0 -28
  125. package/DiscordGateway/Shard.d.ts.map +0 -1
  126. package/DiscordGateway/Shard.js +0 -149
  127. package/DiscordGateway/Shard.js.map +0 -1
  128. package/DiscordGateway/ShardStore.d.ts +0 -18
  129. package/DiscordGateway/ShardStore.d.ts.map +0 -1
  130. package/DiscordGateway/ShardStore.js +0 -31
  131. package/DiscordGateway/ShardStore.js.map +0 -1
  132. package/DiscordGateway/Sharder.d.ts +0 -13
  133. package/DiscordGateway/Sharder.d.ts.map +0 -1
  134. package/DiscordGateway/Sharder.js +0 -73
  135. package/DiscordGateway/Sharder.js.map +0 -1
  136. package/DiscordGateway.d.ts +0 -32
  137. package/DiscordGateway.d.ts.map +0 -1
  138. package/DiscordGateway.js +0 -28
  139. package/DiscordGateway.js.map +0 -1
  140. package/DiscordREST/Generated.d.ts +0 -5399
  141. package/DiscordREST/Generated.d.ts.map +0 -1
  142. package/DiscordREST/Generated.js +0 -2405
  143. package/DiscordREST/Generated.js.map +0 -1
  144. package/DiscordREST/utils.d.ts +0 -14
  145. package/DiscordREST/utils.d.ts.map +0 -1
  146. package/DiscordREST/utils.js +0 -31
  147. package/DiscordREST/utils.js.map +0 -1
  148. package/DiscordREST.d.ts +0 -23
  149. package/DiscordREST.d.ts.map +0 -1
  150. package/DiscordREST.js +0 -132
  151. package/DiscordREST.js.map +0 -1
  152. package/Helpers/flags.d.ts +0 -28
  153. package/Helpers/flags.d.ts.map +0 -1
  154. package/Helpers/flags.js +0 -48
  155. package/Helpers/flags.js.map +0 -1
  156. package/Helpers/intents.d.ts +0 -25
  157. package/Helpers/intents.d.ts.map +0 -1
  158. package/Helpers/intents.js +0 -34
  159. package/Helpers/intents.js.map +0 -1
  160. package/Helpers/interactions.d.ts +0 -116
  161. package/Helpers/interactions.d.ts.map +0 -1
  162. package/Helpers/interactions.js +0 -143
  163. package/Helpers/interactions.js.map +0 -1
  164. package/Helpers/members.d.ts +0 -10
  165. package/Helpers/members.d.ts.map +0 -1
  166. package/Helpers/members.js +0 -17
  167. package/Helpers/members.js.map +0 -1
  168. package/Helpers/permissions.d.ts +0 -42
  169. package/Helpers/permissions.d.ts.map +0 -1
  170. package/Helpers/permissions.js +0 -97
  171. package/Helpers/permissions.js.map +0 -1
  172. package/Helpers/ui.d.ts +0 -105
  173. package/Helpers/ui.d.ts.map +0 -1
  174. package/Helpers/ui.js +0 -162
  175. package/Helpers/ui.js.map +0 -1
  176. package/Interactions/builder.d.ts +0 -48
  177. package/Interactions/builder.d.ts.map +0 -1
  178. package/Interactions/builder.js +0 -64
  179. package/Interactions/builder.js.map +0 -1
  180. package/Interactions/commandHelper.d.ts +0 -99
  181. package/Interactions/commandHelper.d.ts.map +0 -1
  182. package/Interactions/commandHelper.js +0 -53
  183. package/Interactions/commandHelper.js.map +0 -1
  184. package/Interactions/context.d.ts +0 -54
  185. package/Interactions/context.d.ts.map +0 -1
  186. package/Interactions/context.js +0 -42
  187. package/Interactions/context.js.map +0 -1
  188. package/Interactions/definitions.d.ts +0 -44
  189. package/Interactions/definitions.d.ts.map +0 -1
  190. package/Interactions/definitions.js +0 -67
  191. package/Interactions/definitions.js.map +0 -1
  192. package/Interactions/error.d.ts +0 -2
  193. package/Interactions/error.d.ts.map +0 -1
  194. package/Interactions/error.js +0 -8
  195. package/Interactions/error.js.map +0 -1
  196. package/Interactions/gateway.d.ts +0 -21
  197. package/Interactions/gateway.d.ts.map +0 -1
  198. package/Interactions/gateway.js +0 -90
  199. package/Interactions/gateway.js.map +0 -1
  200. package/Interactions/handlers.d.ts +0 -15
  201. package/Interactions/handlers.d.ts.map +0 -1
  202. package/Interactions/handlers.js +0 -72
  203. package/Interactions/handlers.js.map +0 -1
  204. package/Interactions/index.d.ts +0 -16
  205. package/Interactions/index.d.ts.map +0 -1
  206. package/Interactions/index.js +0 -94
  207. package/Interactions/index.js.map +0 -1
  208. package/Interactions/utils.d.ts +0 -61
  209. package/Interactions/utils.d.ts.map +0 -1
  210. package/Interactions/utils.js +0 -35
  211. package/Interactions/utils.js.map +0 -1
  212. package/Interactions/webhook.d.ts +0 -73
  213. package/Interactions/webhook.d.ts.map +0 -1
  214. package/Interactions/webhook.js +0 -89
  215. package/Interactions/webhook.js.map +0 -1
  216. package/RateLimit/memory.d.ts +0 -3
  217. package/RateLimit/memory.d.ts.map +0 -1
  218. package/RateLimit/memory.js +0 -47
  219. package/RateLimit/memory.js.map +0 -1
  220. package/RateLimit/utils.d.ts +0 -3
  221. package/RateLimit/utils.d.ts.map +0 -1
  222. package/RateLimit/utils.js +0 -25
  223. package/RateLimit/utils.js.map +0 -1
  224. package/RateLimit.d.ts +0 -30
  225. package/RateLimit.d.ts.map +0 -1
  226. package/RateLimit.js +0 -35
  227. package/RateLimit.js.map +0 -1
  228. package/gateway.d.ts +0 -19
  229. package/gateway.d.ts.map +0 -1
  230. package/gateway.js +0 -72
  231. package/gateway.js.map +0 -1
  232. package/index.d.ts +0 -18
  233. package/index.d.ts.map +0 -1
  234. package/index.js +0 -71
  235. package/index.js.map +0 -1
  236. package/mjs/Cache/driver.mjs +0 -3
  237. package/mjs/Cache/driver.mjs.map +0 -1
  238. package/mjs/Cache/memory.mjs +0 -48
  239. package/mjs/Cache/memory.mjs.map +0 -1
  240. package/mjs/Cache/memoryTTL.mjs +0 -119
  241. package/mjs/Cache/memoryTTL.mjs.map +0 -1
  242. package/mjs/Cache/prelude.mjs +0 -131
  243. package/mjs/Cache/prelude.mjs.map +0 -1
  244. package/mjs/Cache.mjs +0 -89
  245. package/mjs/Cache.mjs.map +0 -1
  246. package/mjs/DiscordConfig.mjs +0 -32
  247. package/mjs/DiscordConfig.mjs.map +0 -1
  248. package/mjs/DiscordGateway/DiscordWS.mjs +0 -66
  249. package/mjs/DiscordGateway/DiscordWS.mjs.map +0 -1
  250. package/mjs/DiscordGateway/Messaging.mjs +0 -33
  251. package/mjs/DiscordGateway/Messaging.mjs.map +0 -1
  252. package/mjs/DiscordGateway/Shard/StateStore.mjs +0 -40
  253. package/mjs/DiscordGateway/Shard/StateStore.mjs.map +0 -1
  254. package/mjs/DiscordGateway/Shard/heartbeats.mjs +0 -20
  255. package/mjs/DiscordGateway/Shard/heartbeats.mjs.map +0 -1
  256. package/mjs/DiscordGateway/Shard/identify.mjs +0 -30
  257. package/mjs/DiscordGateway/Shard/identify.mjs.map +0 -1
  258. package/mjs/DiscordGateway/Shard/sendEvents.mjs +0 -26
  259. package/mjs/DiscordGateway/Shard/sendEvents.mjs.map +0 -1
  260. package/mjs/DiscordGateway/Shard/utils.mjs +0 -3
  261. package/mjs/DiscordGateway/Shard/utils.mjs.map +0 -1
  262. package/mjs/DiscordGateway/Shard.mjs +0 -142
  263. package/mjs/DiscordGateway/Shard.mjs.map +0 -1
  264. package/mjs/DiscordGateway/ShardStore.mjs +0 -24
  265. package/mjs/DiscordGateway/ShardStore.mjs.map +0 -1
  266. package/mjs/DiscordGateway/Sharder.mjs +0 -66
  267. package/mjs/DiscordGateway/Sharder.mjs.map +0 -1
  268. package/mjs/DiscordGateway.mjs +0 -21
  269. package/mjs/DiscordGateway.mjs.map +0 -1
  270. package/mjs/DiscordREST/Generated.mjs +0 -2396
  271. package/mjs/DiscordREST/Generated.mjs.map +0 -1
  272. package/mjs/DiscordREST/utils.mjs +0 -20
  273. package/mjs/DiscordREST/utils.mjs.map +0 -1
  274. package/mjs/DiscordREST.mjs +0 -124
  275. package/mjs/DiscordREST.mjs.map +0 -1
  276. package/mjs/Helpers/flags.mjs +0 -36
  277. package/mjs/Helpers/flags.mjs.map +0 -1
  278. package/mjs/Helpers/intents.mjs +0 -27
  279. package/mjs/Helpers/intents.mjs.map +0 -1
  280. package/mjs/Helpers/interactions.mjs +0 -115
  281. package/mjs/Helpers/interactions.mjs.map +0 -1
  282. package/mjs/Helpers/members.mjs +0 -9
  283. package/mjs/Helpers/members.mjs.map +0 -1
  284. package/mjs/Helpers/permissions.mjs +0 -84
  285. package/mjs/Helpers/permissions.mjs.map +0 -1
  286. package/mjs/Helpers/ui.mjs +0 -137
  287. package/mjs/Helpers/ui.mjs.map +0 -1
  288. package/mjs/Interactions/builder.mjs +0 -56
  289. package/mjs/Interactions/builder.mjs.map +0 -1
  290. package/mjs/Interactions/commandHelper.mjs +0 -45
  291. package/mjs/Interactions/commandHelper.mjs.map +0 -1
  292. package/mjs/Interactions/context.mjs +0 -29
  293. package/mjs/Interactions/context.mjs.map +0 -1
  294. package/mjs/Interactions/definitions.mjs +0 -51
  295. package/mjs/Interactions/definitions.mjs.map +0 -1
  296. package/mjs/Interactions/error.mjs +0 -2
  297. package/mjs/Interactions/error.mjs.map +0 -1
  298. package/mjs/Interactions/gateway.mjs +0 -81
  299. package/mjs/Interactions/gateway.mjs.map +0 -1
  300. package/mjs/Interactions/handlers.mjs +0 -63
  301. package/mjs/Interactions/handlers.mjs.map +0 -1
  302. package/mjs/Interactions/index.mjs +0 -11
  303. package/mjs/Interactions/index.mjs.map +0 -1
  304. package/mjs/Interactions/utils.mjs +0 -26
  305. package/mjs/Interactions/utils.mjs.map +0 -1
  306. package/mjs/Interactions/webhook.mjs +0 -76
  307. package/mjs/Interactions/webhook.mjs.map +0 -1
  308. package/mjs/RateLimit/memory.mjs +0 -39
  309. package/mjs/RateLimit/memory.mjs.map +0 -1
  310. package/mjs/RateLimit/utils.mjs +0 -18
  311. package/mjs/RateLimit/utils.mjs.map +0 -1
  312. package/mjs/RateLimit.mjs +0 -28
  313. package/mjs/RateLimit.mjs.map +0 -1
  314. package/mjs/gateway.mjs +0 -19
  315. package/mjs/gateway.mjs.map +0 -1
  316. package/mjs/index.mjs +0 -18
  317. package/mjs/index.mjs.map +0 -1
  318. package/mjs/types.mjs +0 -356
  319. package/mjs/types.mjs.map +0 -1
  320. package/mjs/utils/Effect.mjs +0 -18
  321. package/mjs/utils/Effect.mjs.map +0 -1
  322. package/mjs/version.mjs +0 -2
  323. package/mjs/version.mjs.map +0 -1
  324. package/mjs/webhooks.mjs +0 -6
  325. package/mjs/webhooks.mjs.map +0 -1
  326. package/src/version.ts +0 -1
  327. package/types.d.ts +0 -2457
  328. package/types.d.ts.map +0 -1
  329. package/types.js +0 -408
  330. package/types.js.map +0 -1
  331. package/utils/Effect.d.ts +0 -5
  332. package/utils/Effect.d.ts.map +0 -1
  333. package/utils/Effect.js +0 -27
  334. package/utils/Effect.js.map +0 -1
  335. package/version.d.ts +0 -2
  336. package/version.d.ts.map +0 -1
  337. package/version.js +0 -8
  338. package/version.js.map +0 -1
  339. package/webhooks.d.ts +0 -8
  340. package/webhooks.d.ts.map +0 -1
  341. package/webhooks.js +0 -55
  342. package/webhooks.js.map +0 -1
@@ -1,11 +0,0 @@
1
- export { response } from "dfx/Helpers/interactions";
2
- export * from "dfx/Interactions/builder";
3
- export * from "dfx/Interactions/context";
4
- export { autocomplete, global, guild, messageComponent, modalSubmit } from "dfx/Interactions/definitions";
5
- // Filters
6
- export const id = query => customId => query === customId;
7
- export const idStartsWith = query => customId => customId.startsWith(query);
8
- export const idRegex = query => customId => query.test(customId);
9
- export const option = (command, optionName) => (data, focusedOption) => data.name === command && focusedOption.name === optionName;
10
- export const optionOnly = optionName => (_, focusedOption) => focusedOption.name === optionName;
11
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","names":["response","autocomplete","global","guild","messageComponent","modalSubmit","id","query","customId","idStartsWith","startsWith","idRegex","test","option","command","optionName","data","focusedOption","name","optionOnly","_"],"sources":["../../src/Interactions/index.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAQ,QAAQ,0BAA0B;AACnD,cAAc,0BAA0B;AACxC,cAAc,0BAA0B;AACxC,SACEC,YAAY,EACZC,MAAM,EACNC,KAAK,EAELC,gBAAgB,EAChBC,WAAW,QACN,8BAA8B;AAErC;AACA,OAAO,MAAMC,EAAE,GAAIC,KAAa,IAAMC,QAAgB,IAAKD,KAAK,KAAKC,QAAQ;AAE7E,OAAO,MAAMC,YAAY,GAAIF,KAAa,IAAMC,QAAgB,IAC9DA,QAAQ,CAACE,UAAU,CAACH,KAAK,CAAC;AAE5B,OAAO,MAAMI,OAAO,GAAIJ,KAAa,IAAMC,QAAgB,IACzDD,KAAK,CAACK,IAAI,CAACJ,QAAQ,CAAC;AAEtB,OAAO,MAAMK,MAAM,GACjBA,CAACC,OAAe,EAAEC,UAAkB,KACpC,CAACC,IAA+B,EAAEC,aAAwC,KACxED,IAAI,CAACE,IAAI,KAAKJ,OAAO,IAAIG,aAAa,CAACC,IAAI,KAAKH,UAAU;AAE9D,OAAO,MAAMI,UAAU,GACpBJ,UAAkB,IACnB,CAACK,CAAU,EAAEH,aAAwC,KACnDA,aAAa,CAACC,IAAI,KAAKH,UAAU","ignoreList":[]}
@@ -1,26 +0,0 @@
1
- import * as Chunk from "effect/Chunk";
2
- import * as Effect from "effect/Effect";
3
- import * as Array from "effect/Array";
4
- import { CommandHelper } from "dfx/Interactions/commandHelper";
5
- export const flattenDefinitions = (definitions, handleResponse) => Array.map(Chunk.toReadonlyArray(definitions), ([definition, transform]) => ({
6
- ...definition,
7
- handle: Effect.isEffect(definition.handle) ? i => Effect.scoped(transform(Effect.flatMap(definition.handle, _ => handleResponse(i, _)))) : i => Effect.scoped(transform(Effect.flatMap(definition.handle(new CommandHelper(i)), _ => handleResponse(i, _))))
8
- }));
9
- export const splitDefinitions = definitions => {
10
- const grouped = Array.reduce(definitions, {
11
- Autocomplete: [],
12
- GlobalApplicationCommand: [],
13
- GuildApplicationCommand: [],
14
- MessageComponent: [],
15
- ModalSubmit: [],
16
- Commands: {}
17
- }, (acc, d) => {
18
- acc[d._tag].push(d);
19
- if (d._tag === "GlobalApplicationCommand" || d._tag === "GuildApplicationCommand") {
20
- acc.Commands[d.command.name] = d;
21
- }
22
- return acc;
23
- });
24
- return grouped;
25
- };
26
- //# sourceMappingURL=utils.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.mjs","names":["Chunk","Effect","Array","CommandHelper","flattenDefinitions","definitions","handleResponse","map","toReadonlyArray","definition","transform","handle","isEffect","i","scoped","flatMap","_","splitDefinitions","grouped","reduce","Autocomplete","GlobalApplicationCommand","GuildApplicationCommand","MessageComponent","ModalSubmit","Commands","acc","d","_tag","push","command","name"],"sources":["../../src/Interactions/utils.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AAGvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,SAASC,aAAa,QAAQ,gCAAgC;AAgB9D,OAAO,MAAMC,kBAAkB,GAAGA,CAChCC,WAKC,EACDC,cAG2B,KAE3BJ,KAAK,CAACK,GAAG,CAACP,KAAK,CAACQ,eAAe,CAACH,WAAW,CAAC,EAAE,CAAC,CAACI,UAAU,EAAEC,SAAS,CAAC,MAAM;EAC1E,GAAGD,UAAU;EACbE,MAAM,EAAEV,MAAM,CAACW,QAAQ,CAACH,UAAU,CAACE,MAAM,CAAC,GACrCE,CAAyB,IACxBZ,MAAM,CAACa,MAAM,CACXJ,SAAS,CACPT,MAAM,CAACc,OAAO,CACZN,UAAU,CAACE,MAAiE,EAC5EK,CAAC,IAAIV,cAAc,CAACO,CAAC,EAAEG,CAAC,CAAC,CAC1B,CACF,CACF,GACFH,CAAyB,IACxBZ,MAAM,CAACa,MAAM,CACXJ,SAAS,CACPT,MAAM,CAACc,OAAO,CAEVN,UAAU,CAACE,MAGZ,CAAC,IAAIR,aAAa,CAACU,CAAC,CAAC,CAAC,EACvBG,CAAC,IAAIV,cAAc,CAACO,CAAC,EAAEG,CAAC,CAAC,CAC1B,CACF;CAEV,CAAC,CAAC;AAEL,OAAO,MAAMC,gBAAgB,GAC3BZ,WAA4D,IAC1D;EACF,MAAMa,OAAO,GAAGhB,KAAK,CAACiB,MAAM,CAC1Bd,WAAW,EACX;IACEe,YAAY,EAAE,EAAE;IAChBC,wBAAwB,EAAE,EAAE;IAC5BC,uBAAuB,EAAE,EAAE;IAC3BC,gBAAgB,EAAE,EAAE;IACpBC,WAAW,EAAE,EAAE;IACfC,QAAQ,EAAE;GAOX,EACD,CAACC,GAAG,EAAEC,CAAC,KAAI;IACTD,GAAG,CAACC,CAAC,CAACC,IAAI,CAAC,CAACC,IAAI,CAACF,CAAQ,CAAC;IAC1B,IACEA,CAAC,CAACC,IAAI,KAAK,0BAA0B,IACrCD,CAAC,CAACC,IAAI,KAAK,yBAAyB,EACpC;MACAF,GAAG,CAACD,QAAQ,CAACE,CAAC,CAACG,OAAO,CAACC,IAAI,CAAC,GAAGJ,CAAQ;IACzC;IACA,OAAOD,GAAG;EACZ,CAAC,CACF;EAED,OAAOR,OAAO;AAChB,CAAC","ignoreList":[]}
@@ -1,76 +0,0 @@
1
- import * as Chunk from "effect/Chunk";
2
- import { GenericTag } from "effect/Context";
3
- import { identity } from "effect/Function";
4
- import * as Option from "effect/Option";
5
- import * as Redacted from "effect/Redacted";
6
- import * as Effect from "effect/Effect";
7
- import * as Layer from "effect/Layer";
8
- import { handlers } from "dfx/Interactions/handlers";
9
- import { Interaction } from "dfx/Interactions/index";
10
- import * as Verify from "discord-verify";
11
- import { TypeIdError } from "@effect/platform/Error";
12
- import { InteractionsErrorTypeId } from "dfx/Interactions/error";
13
- export class BadWebhookSignature {
14
- _tag = "BadWebhookSignature";
15
- }
16
- const checkSignature = (publicKey, headers, body, crypto, algorithm) => Option.all({
17
- signature: Option.fromNullable(headers["x-signature-ed25519"]),
18
- timestamp: Option.fromNullable(headers["x-signature-timestamp"])
19
- }).pipe(Effect.flatMap(_ => Effect.promise(() => Verify.verify(body, _.signature, _.timestamp, publicKey, crypto, algorithm))), Effect.filterOrFail(identity, () => new BadWebhookSignature()), Effect.catchAllCause(() => Effect.fail(new BadWebhookSignature())), Effect.asVoid);
20
- const makeConfig = ({
21
- algorithm,
22
- applicationId,
23
- crypto,
24
- publicKey
25
- }) => ({
26
- applicationId,
27
- publicKey: Redacted.value(publicKey),
28
- crypto,
29
- algorithm: Verify.PlatformAlgorithm[algorithm]
30
- });
31
- export const WebhookConfig = /*#__PURE__*/GenericTag("dfx/Interactions/WebhookConfig");
32
- export const layer = opts => Layer.succeed(WebhookConfig, makeConfig(opts));
33
- export const layerConfig = config => Layer.effect(WebhookConfig, Effect.map(config, makeConfig));
34
- export class WebhookParseError extends /*#__PURE__*/TypeIdError(InteractionsErrorTypeId, "WebhookParseError") {}
35
- const fromHeadersAndBody = (headers, body) => Effect.tap(WebhookConfig, ({
36
- algorithm,
37
- crypto,
38
- publicKey
39
- }) => checkSignature(publicKey, headers, body, crypto, algorithm)).pipe(Effect.flatMap(() => Effect.try({
40
- try: () => JSON.parse(body),
41
- catch: cause => new WebhookParseError({
42
- cause
43
- })
44
- })));
45
- const run = (definitions, handleResponse) => {
46
- const handler = handlers(definitions, handleResponse);
47
- return (headers, body) => Effect.flatMap(fromHeadersAndBody(headers, body), interaction => Effect.withSpan(Effect.provideService(handler[interaction.type](interaction), Interaction, interaction), "dfx.Interaction", {
48
- attributes: {
49
- interactionId: interaction.id
50
- },
51
- captureStackTrace: false
52
- }));
53
- };
54
- /**
55
- * @tsplus getter dfx/InteractionBuilder webhookHandler
56
- */
57
- export const makeHandler = ix => {
58
- const handle = run(Chunk.map(ix.definitions, ([d]) => [d, identity]), (_i, r) => Effect.succeed(r));
59
- return ({
60
- body,
61
- error,
62
- headers,
63
- success
64
- }) => handle(headers, body).pipe(Effect.flatMap(success), Effect.catchAllCause(error));
65
- };
66
- /**
67
- * @tsplus getter dfx/InteractionBuilder simpleWebhookHandler
68
- */
69
- export const makeSimpleHandler = ix => {
70
- const handle = run(Chunk.map(ix.definitions, ([d]) => [d, identity]), (_i, r) => Effect.succeed(r));
71
- return ({
72
- body,
73
- headers
74
- }) => handle(headers, body);
75
- };
76
- //# sourceMappingURL=webhook.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"webhook.mjs","names":["Chunk","GenericTag","identity","Option","Redacted","Effect","Layer","handlers","Interaction","Verify","TypeIdError","InteractionsErrorTypeId","BadWebhookSignature","_tag","checkSignature","publicKey","headers","body","crypto","algorithm","all","signature","fromNullable","timestamp","pipe","flatMap","_","promise","verify","filterOrFail","catchAllCause","fail","asVoid","makeConfig","applicationId","value","PlatformAlgorithm","WebhookConfig","layer","opts","succeed","layerConfig","config","effect","map","WebhookParseError","fromHeadersAndBody","tap","try","JSON","parse","catch","cause","run","definitions","handleResponse","handler","interaction","withSpan","provideService","type","attributes","interactionId","id","captureStackTrace","makeHandler","ix","handle","d","_i","r","error","success","makeSimpleHandler"],"sources":["../../src/Interactions/webhook.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,39 +0,0 @@
1
- import * as Option from "effect/Option";
2
- import * as Effect from "effect/Effect";
3
- export const make = () => {
4
- const buckets = new Map();
5
- const routes = new Map();
6
- const counters = new Map();
7
- const getCounter = key => Option.filter(Option.fromNullable(counters.get(key)), c => c.expires > Date.now());
8
- const getBucketForRoute = route => Effect.sync(() => Option.fromNullable(buckets.get(routes.get(route))));
9
- return {
10
- hasBucket: key => Effect.sync(() => buckets.has(key)),
11
- putBucket: bucket => Effect.sync(() => {
12
- buckets.set(bucket.key, bucket);
13
- }),
14
- getBucketForRoute,
15
- putBucketRoute: (route, bucket) => Effect.sync(() => {
16
- routes.set(route, bucket);
17
- }),
18
- removeCounter: key => Effect.sync(() => {
19
- counters.delete(key);
20
- }),
21
- incrementCounter: (key, window, limit) => Effect.sync(() => {
22
- const now = Date.now();
23
- const perRequest = Math.ceil(window / limit);
24
- const counter = Option.getOrElse(getCounter(key), () => ({
25
- expires: now,
26
- count: 0
27
- }));
28
- const count = counter.count + 1;
29
- const expires = counter.expires + perRequest;
30
- counters.set(key, {
31
- ...counter,
32
- count,
33
- expires
34
- });
35
- return [count, expires - now];
36
- })
37
- };
38
- };
39
- //# sourceMappingURL=memory.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory.mjs","names":["Option","Effect","make","buckets","Map","routes","counters","getCounter","key","filter","fromNullable","get","c","expires","Date","now","getBucketForRoute","route","sync","hasBucket","has","putBucket","bucket","set","putBucketRoute","removeCounter","delete","incrementCounter","window","limit","perRequest","Math","ceil","counter","getOrElse","count"],"sources":["../../src/RateLimit/memory.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,MAAM,MAAM,eAAe;AAQvC,OAAO,MAAMC,IAAI,GAAGA,CAAA,KAA4B;EAC9C,MAAMC,OAAO,GAAG,IAAIC,GAAG,EAAyB;EAChD,MAAMC,MAAM,GAAG,IAAID,GAAG,EAAkB;EACxC,MAAME,QAAQ,GAAG,IAAIF,GAAG,EAAmB;EAE3C,MAAMG,UAAU,GAAIC,GAAW,IAC7BR,MAAM,CAACS,MAAM,CACXT,MAAM,CAACU,YAAY,CAACJ,QAAQ,CAACK,GAAG,CAACH,GAAG,CAAC,CAAC,EACtCI,CAAC,IAAIA,CAAC,CAACC,OAAO,GAAGC,IAAI,CAACC,GAAG,EAAE,CAC5B;EAEH,MAAMC,iBAAiB,GAAIC,KAAa,IACtChB,MAAM,CAACiB,IAAI,CAAC,MAAMlB,MAAM,CAACU,YAAY,CAACP,OAAO,CAACQ,GAAG,CAACN,MAAM,CAACM,GAAG,CAACM,KAAK,CAAE,CAAC,CAAC,CAAC;EAEzE,OAAO;IACLE,SAAS,EAAEX,GAAG,IAAIP,MAAM,CAACiB,IAAI,CAAC,MAAMf,OAAO,CAACiB,GAAG,CAACZ,GAAG,CAAC,CAAC;IAErDa,SAAS,EAAEC,MAAM,IACfrB,MAAM,CAACiB,IAAI,CAAC,MAAK;MACff,OAAO,CAACoB,GAAG,CAACD,MAAM,CAACd,GAAG,EAAEc,MAAM,CAAC;IACjC,CAAC,CAAC;IAEJN,iBAAiB;IAEjBQ,cAAc,EAAEA,CAACP,KAAK,EAAEK,MAAM,KAC5BrB,MAAM,CAACiB,IAAI,CAAC,MAAK;MACfb,MAAM,CAACkB,GAAG,CAACN,KAAK,EAAEK,MAAM,CAAC;IAC3B,CAAC,CAAC;IAEJG,aAAa,EAAEjB,GAAG,IAChBP,MAAM,CAACiB,IAAI,CAAC,MAAK;MACfZ,QAAQ,CAACoB,MAAM,CAAClB,GAAG,CAAC;IACtB,CAAC,CAAC;IAEJmB,gBAAgB,EAAEA,CAACnB,GAAG,EAAEoB,MAAM,EAAEC,KAAK,KACnC5B,MAAM,CAACiB,IAAI,CAAC,MAAK;MACf,MAAMH,GAAG,GAAGD,IAAI,CAACC,GAAG,EAAE;MACtB,MAAMe,UAAU,GAAGC,IAAI,CAACC,IAAI,CAACJ,MAAM,GAAGC,KAAK,CAAC;MAC5C,MAAMI,OAAO,GAAGjC,MAAM,CAACkC,SAAS,CAC9B3B,UAAU,CAACC,GAAG,CAAC,EACf,OAAgB;QACdK,OAAO,EAAEE,GAAG;QACZoB,KAAK,EAAE;OACR,CAAC,CACH;MAED,MAAMA,KAAK,GAAGF,OAAO,CAACE,KAAK,GAAG,CAAC;MAC/B,MAAMtB,OAAO,GAAGoB,OAAO,CAACpB,OAAO,GAAGiB,UAAU;MAC5CxB,QAAQ,CAACiB,GAAG,CAACf,GAAG,EAAE;QAAE,GAAGyB,OAAO;QAAEE,KAAK;QAAEtB;MAAO,CAAE,CAAC;MAEjD,OAAO,CAACsB,KAAK,EAAEtB,OAAO,GAAGE,GAAG,CAAC;IAC/B,CAAC;GACJ;AACH,CAAC","ignoreList":[]}
@@ -1,18 +0,0 @@
1
- import { millis, zero } from "effect/Duration";
2
- export const delayFrom = (window, limit, count, ttl) => {
3
- const perRequest = Math.ceil(window / limit);
4
- const totalTime = count * perRequest;
5
- const elapsedTime = totalTime - ttl;
6
- const elapsedWindows = Math.floor(elapsedTime / window);
7
- const completedRequests = elapsedWindows * limit;
8
- const remainingRequests = count - completedRequests;
9
- const remainingWindows = Math.floor((remainingRequests - 1) / limit);
10
- const delayRemainder = elapsedTime % window;
11
- const requestRemainder = count % limit;
12
- const staggerDelay = requestRemainder * 50;
13
- if (remainingWindows === 0) {
14
- return zero;
15
- }
16
- return millis(remainingWindows * window - delayRemainder + staggerDelay);
17
- };
18
- //# sourceMappingURL=utils.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.mjs","names":["millis","zero","delayFrom","window","limit","count","ttl","perRequest","Math","ceil","totalTime","elapsedTime","elapsedWindows","floor","completedRequests","remainingRequests","remainingWindows","delayRemainder","requestRemainder","staggerDelay"],"sources":["../../src/RateLimit/utils.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,MAAM,EAAEC,IAAI,QAAQ,iBAAiB;AAE9C,OAAO,MAAMC,SAAS,GAAGA,CACvBC,MAAc,EACdC,KAAa,EACbC,KAAa,EACbC,GAAW,KACC;EACZ,MAAMC,UAAU,GAAGC,IAAI,CAACC,IAAI,CAACN,MAAM,GAAGC,KAAK,CAAC;EAE5C,MAAMM,SAAS,GAAGL,KAAK,GAAGE,UAAU;EACpC,MAAMI,WAAW,GAAGD,SAAS,GAAGJ,GAAG;EACnC,MAAMM,cAAc,GAAGJ,IAAI,CAACK,KAAK,CAACF,WAAW,GAAGR,MAAM,CAAC;EACvD,MAAMW,iBAAiB,GAAGF,cAAc,GAAGR,KAAK;EAChD,MAAMW,iBAAiB,GAAGV,KAAK,GAAGS,iBAAiB;EACnD,MAAME,gBAAgB,GAAGR,IAAI,CAACK,KAAK,CAAC,CAACE,iBAAiB,GAAG,CAAC,IAAIX,KAAK,CAAC;EACpE,MAAMa,cAAc,GAAGN,WAAW,GAAGR,MAAM;EAE3C,MAAMe,gBAAgB,GAAGb,KAAK,GAAGD,KAAK;EACtC,MAAMe,YAAY,GAAGD,gBAAgB,GAAG,EAAE;EAE1C,IAAIF,gBAAgB,KAAK,CAAC,EAAE;IAC1B,OAAOf,IAAI;EACb;EAEA,OAAOD,MAAM,CAACgB,gBAAgB,GAAGb,MAAM,GAAGc,cAAc,GAAGE,YAAY,CAAC;AAC1E,CAAC","ignoreList":[]}
package/mjs/RateLimit.mjs DELETED
@@ -1,28 +0,0 @@
1
- import { GenericTag } from "effect/Context";
2
- import * as Duration from "effect/Duration";
3
- import * as Effect from "effect/Effect";
4
- import * as Layer from "effect/Layer";
5
- import * as Memory from "dfx/RateLimit/memory";
6
- import { delayFrom } from "dfx/RateLimit/utils";
7
- export const RateLimitStore = /*#__PURE__*/GenericTag("dfx/RateLimit/RateLimitStore");
8
- export const MemoryRateLimitStoreLive = /*#__PURE__*/Layer.sync(RateLimitStore, Memory.make);
9
- const makeLimiter = /*#__PURE__*/Effect.gen(function* () {
10
- const store = yield* RateLimitStore;
11
- const maybeWait = (key, window, limit, multiplier = 1.05) => {
12
- const windowMs = Duration.toMillis(window) * multiplier;
13
- return store.incrementCounter(key, windowMs, limit).pipe(Effect.map(([count, ttl]) => delayFrom(windowMs, limit, count, ttl)), Effect.tap(d => Effect.annotateLogs(Effect.logTrace("maybeWait"), {
14
- service: "RateLimit",
15
- key,
16
- window: Duration.toMillis(window),
17
- windowMs,
18
- limit,
19
- delay: Duration.toMillis(d)
20
- })), Effect.tap(_ => Duration.toMillis(_) === 0 ? Effect.void : Effect.sleep(_)), Effect.asVoid);
21
- };
22
- return {
23
- maybeWait
24
- };
25
- });
26
- export const RateLimiter = /*#__PURE__*/GenericTag("dfx/RateLimit/RateLimiter");
27
- export const RateLimiterLive = /*#__PURE__*/Layer.effect(RateLimiter, makeLimiter);
28
- //# sourceMappingURL=RateLimit.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RateLimit.mjs","names":["GenericTag","Duration","Effect","Layer","Memory","delayFrom","RateLimitStore","MemoryRateLimitStoreLive","sync","make","makeLimiter","gen","store","maybeWait","key","window","limit","multiplier","windowMs","toMillis","incrementCounter","pipe","map","count","ttl","tap","d","annotateLogs","logTrace","service","delay","_","void","sleep","asVoid","RateLimiter","RateLimiterLive","effect"],"sources":["../src/RateLimit.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAU,QAAQ,gBAAgB;AAC3C,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAE3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,sBAAsB;AAC9C,SAASC,SAAS,QAAQ,qBAAqB;AAmC/C,OAAO,MAAMC,cAAc,gBAAGN,UAAU,CACtC,8BAA8B,CAC/B;AACD,OAAO,MAAMO,wBAAwB,gBAAGJ,KAAK,CAACK,IAAI,CAACF,cAAc,EAAEF,MAAM,CAACK,IAAI,CAAC;AAE/E,MAAMC,WAAW,gBAAGR,MAAM,CAACS,GAAG,CAAC,aAAS;EACtC,MAAMC,KAAK,GAAG,OAAON,cAAc;EAEnC,MAAMO,SAAS,GAAGA,CAChBC,GAAW,EACXC,MAAyB,EACzBC,KAAa,EACbC,UAAU,GAAG,IAAI,KACf;IACF,MAAMC,QAAQ,GAAGjB,QAAQ,CAACkB,QAAQ,CAACJ,MAAM,CAAC,GAAGE,UAAU;IAEvD,OAAOL,KAAK,CAACQ,gBAAgB,CAACN,GAAG,EAAEI,QAAQ,EAAEF,KAAK,CAAC,CAACK,IAAI,CACtDnB,MAAM,CAACoB,GAAG,CAAC,CAAC,CAACC,KAAK,EAAEC,GAAG,CAAC,KAAKnB,SAAS,CAACa,QAAQ,EAAEF,KAAK,EAAEO,KAAK,EAAEC,GAAG,CAAC,CAAC,EACpEtB,MAAM,CAACuB,GAAG,CAACC,CAAC,IACVxB,MAAM,CAACyB,YAAY,CAACzB,MAAM,CAAC0B,QAAQ,CAAC,WAAW,CAAC,EAAE;MAChDC,OAAO,EAAE,WAAW;MACpBf,GAAG;MACHC,MAAM,EAAEd,QAAQ,CAACkB,QAAQ,CAACJ,MAAM,CAAC;MACjCG,QAAQ;MACRF,KAAK;MACLc,KAAK,EAAE7B,QAAQ,CAACkB,QAAQ,CAACO,CAAC;KAC3B,CAAC,CACH,EACDxB,MAAM,CAACuB,GAAG,CAACM,CAAC,IACV9B,QAAQ,CAACkB,QAAQ,CAACY,CAAC,CAAC,KAAK,CAAC,GAAG7B,MAAM,CAAC8B,IAAI,GAAG9B,MAAM,CAAC+B,KAAK,CAACF,CAAC,CAAC,CAC3D,EACD7B,MAAM,CAACgC,MAAM,CACd;EACH,CAAC;EAED,OAAO;IAAErB;EAAS,CAAE;AACtB,CAAC,CAAC;AAKF,OAAO,MAAMsB,WAAW,gBAAGnC,UAAU,CAGnC,2BAA2B,CAAC;AAC9B,OAAO,MAAMoC,eAAe,gBAAGjC,KAAK,CAACkC,MAAM,CAACF,WAAW,EAAEzB,WAAW,CAAC","ignoreList":[]}
package/mjs/gateway.mjs DELETED
@@ -1,19 +0,0 @@
1
- import * as CachePrelude from "dfx/Cache/prelude";
2
- import { DiscordGatewayLive } from "dfx/DiscordGateway";
3
- import * as DiscordWS from "dfx/DiscordGateway/DiscordWS";
4
- import { JsonDiscordWSCodecLive } from "dfx/DiscordGateway/DiscordWS";
5
- import * as Shard from "dfx/DiscordGateway/Shard";
6
- import { ShardStateStore } from "dfx/DiscordGateway/Shard/StateStore";
7
- import * as SendEvent from "dfx/DiscordGateway/Shard/sendEvents";
8
- import * as ShardStore from "dfx/DiscordGateway/ShardStore";
9
- import { MemoryShardStoreLive } from "dfx/DiscordGateway/ShardStore";
10
- import { DiscordRESTLive } from "dfx/DiscordREST";
11
- import { InteractionsRegistryLive } from "dfx/Interactions/gateway";
12
- import { MemoryRateLimitStoreLive, RateLimiterLive } from "dfx/RateLimit";
13
- import * as Layer from "effect/Layer";
14
- export { DiscordGateway, DiscordGatewayLive } from "dfx/DiscordGateway";
15
- export { InteractionsRegistry, InteractionsRegistryLive, interactionsSync, run as runIx, setInteractionsSync } from "dfx/Interactions/gateway";
16
- export { CachePrelude, DiscordWS, SendEvent, Shard, ShardStore };
17
- export const DiscordLive = /*#__PURE__*/Layer.mergeAll(RateLimiterLive, DiscordGatewayLive).pipe(/*#__PURE__*/Layer.provideMerge(DiscordRESTLive), /*#__PURE__*/Layer.provide(JsonDiscordWSCodecLive), /*#__PURE__*/Layer.provide(MemoryRateLimitStoreLive), /*#__PURE__*/Layer.provide(MemoryShardStoreLive), /*#__PURE__*/Layer.provide(ShardStateStore.MemoryLive));
18
- export const DiscordIxLive = /*#__PURE__*/InteractionsRegistryLive.pipe(/*#__PURE__*/Layer.provideMerge(DiscordLive));
19
- //# sourceMappingURL=gateway.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gateway.mjs","names":["CachePrelude","DiscordGatewayLive","DiscordWS","JsonDiscordWSCodecLive","Shard","ShardStateStore","SendEvent","ShardStore","MemoryShardStoreLive","DiscordRESTLive","InteractionsRegistryLive","MemoryRateLimitStoreLive","RateLimiterLive","Layer","DiscordGateway","InteractionsRegistry","interactionsSync","run","runIx","setInteractionsSync","DiscordLive","mergeAll","pipe","provideMerge","provide","MemoryLive","DiscordIxLive"],"sources":["../src/gateway.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,YAAY,MAAM,mBAAmB;AAEjD,SAASC,kBAAkB,QAAQ,oBAAoB;AACvD,OAAO,KAAKC,SAAS,MAAM,8BAA8B;AACzD,SAASC,sBAAsB,QAAQ,8BAA8B;AACrE,OAAO,KAAKC,KAAK,MAAM,0BAA0B;AACjD,SAASC,eAAe,QAAQ,qCAAqC;AACrE,OAAO,KAAKC,SAAS,MAAM,qCAAqC;AAChE,OAAO,KAAKC,UAAU,MAAM,+BAA+B;AAC3D,SAASC,oBAAoB,QAAQ,+BAA+B;AAEpE,SAASC,eAAe,QAAQ,iBAAiB;AAEjD,SAASC,wBAAwB,QAAQ,0BAA0B;AAEnE,SAASC,wBAAwB,EAAEC,eAAe,QAAQ,eAAe;AACzE,OAAO,KAAKC,KAAK,MAAM,cAAc;AAKrC,SAASC,cAAc,EAAEb,kBAAkB,QAAQ,oBAAoB;AAEvE,SACEc,oBAAoB,EACpBL,wBAAwB,EACxBM,gBAAgB,EAChBC,GAAG,IAAIC,KAAK,EACZC,mBAAmB,QACd,0BAA0B;AAEjC,SAASnB,YAAY,EAAEE,SAAS,EAAEI,SAAS,EAAEF,KAAK,EAAEG,UAAU;AAE9D,OAAO,MAAMa,WAAW,gBAIpBP,KAAK,CAACQ,QAAQ,CAACT,eAAe,EAAEX,kBAAkB,CAAC,CAACqB,IAAI,cAC1DT,KAAK,CAACU,YAAY,CAACd,eAAe,CAAC,eACnCI,KAAK,CAACW,OAAO,CAACrB,sBAAsB,CAAC,eACrCU,KAAK,CAACW,OAAO,CAACb,wBAAwB,CAAC,eACvCE,KAAK,CAACW,OAAO,CAAChB,oBAAoB,CAAC,eACnCK,KAAK,CAACW,OAAO,CAACnB,eAAe,CAACoB,UAAU,CAAC,CAC1C;AAED,OAAO,MAAMC,aAAa,gBAItBhB,wBAAwB,CAACY,IAAI,cAACT,KAAK,CAACU,YAAY,CAACH,WAAW,CAAC,CAAC","ignoreList":[]}
package/mjs/index.mjs DELETED
@@ -1,18 +0,0 @@
1
- import * as Cache from "dfx/Cache";
2
- import * as DiscordConfig from "dfx/DiscordConfig";
3
- import { DiscordRESTLive } from "dfx/DiscordREST";
4
- import * as Flags from "dfx/Helpers/flags";
5
- import * as Intents from "dfx/Helpers/intents";
6
- import * as IxHelpers from "dfx/Helpers/interactions";
7
- import * as Members from "dfx/Helpers/members";
8
- import * as Perms from "dfx/Helpers/permissions";
9
- import * as UI from "dfx/Helpers/ui";
10
- import * as Ix from "dfx/Interactions/index";
11
- import { MemoryRateLimitStoreLive } from "dfx/RateLimit";
12
- import * as Discord from "dfx/types";
13
- import * as Layer from "effect/Layer";
14
- export { DiscordREST, DiscordRESTLive } from "dfx/DiscordREST";
15
- export { MemoryRateLimitStoreLive, RateLimitStore, RateLimiter, RateLimiterLive } from "dfx/RateLimit";
16
- export { Cache, Discord, DiscordConfig, Flags, Intents, Ix, IxHelpers, Members, Perms, UI };
17
- export const DiscordRESTMemoryLive = /*#__PURE__*/DiscordRESTLive.pipe(/*#__PURE__*/Layer.provide(MemoryRateLimitStoreLive));
18
- //# sourceMappingURL=index.mjs.map
package/mjs/index.mjs.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","names":["Cache","DiscordConfig","DiscordRESTLive","Flags","Intents","IxHelpers","Members","Perms","UI","Ix","MemoryRateLimitStoreLive","Discord","Layer","DiscordREST","RateLimitStore","RateLimiter","RateLimiterLive","DiscordRESTMemoryLive","pipe","provide"],"sources":["../src/index.ts"],"sourcesContent":[null],"mappings":"AACA,OAAO,KAAKA,KAAK,MAAM,WAAW;AAClC,OAAO,KAAKC,aAAa,MAAM,mBAAmB;AAElD,SAASC,eAAe,QAAQ,iBAAiB;AACjD,OAAO,KAAKC,KAAK,MAAM,mBAAmB;AAC1C,OAAO,KAAKC,OAAO,MAAM,qBAAqB;AAC9C,OAAO,KAAKC,SAAS,MAAM,0BAA0B;AACrD,OAAO,KAAKC,OAAO,MAAM,qBAAqB;AAC9C,OAAO,KAAKC,KAAK,MAAM,yBAAyB;AAChD,OAAO,KAAKC,EAAE,MAAM,gBAAgB;AACpC,OAAO,KAAKC,EAAE,MAAM,wBAAwB;AAC5C,SAASC,wBAAwB,QAAQ,eAAe;AACxD,OAAO,KAAKC,OAAO,MAAM,WAAW;AACpC,OAAO,KAAKC,KAAK,MAAM,cAAc;AAErC,SAASC,WAAW,EAAEX,eAAe,QAAQ,iBAAiB;AAE9D,SAEEQ,wBAAwB,EACxBI,cAAc,EACdC,WAAW,EACXC,eAAe,QACV,eAAe;AAEtB,SACEhB,KAAK,EACLW,OAAO,EACPV,aAAa,EACbE,KAAK,EACLC,OAAO,EACPK,EAAE,EACFJ,SAAS,EACTC,OAAO,EACPC,KAAK,EACLC,EAAE;AAGJ,OAAO,MAAMS,qBAAqB,gBAI9Bf,eAAe,CAACgB,IAAI,cAACN,KAAK,CAACO,OAAO,CAACT,wBAAwB,CAAC,CAAC","ignoreList":[]}