dfx 1.0.1 → 1.0.3

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 (299) 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 +1566 -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 -35
  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/test/index.test.ts +5 -0
  28. package/vitest.config.ts +22 -0
  29. package/Cache/driver.d.ts +0 -24
  30. package/Cache/driver.d.ts.map +0 -1
  31. package/Cache/driver.js +0 -11
  32. package/Cache/driver.js.map +0 -1
  33. package/Cache/memory.d.ts +0 -5
  34. package/Cache/memory.d.ts.map +0 -1
  35. package/Cache/memory.js +0 -57
  36. package/Cache/memory.js.map +0 -1
  37. package/Cache/memoryTTL.d.ts +0 -23
  38. package/Cache/memoryTTL.d.ts.map +0 -1
  39. package/Cache/memoryTTL.js +0 -128
  40. package/Cache/memoryTTL.js.map +0 -1
  41. package/Cache/prelude.d.ts +0 -32
  42. package/Cache/prelude.d.ts.map +0 -1
  43. package/Cache/prelude.js +0 -143
  44. package/Cache/prelude.js.map +0 -1
  45. package/Cache.d.ts +0 -81
  46. package/Cache.d.ts.map +0 -1
  47. package/Cache.js +0 -145
  48. package/Cache.js.map +0 -1
  49. package/DiscordConfig.d.ts +0 -35
  50. package/DiscordConfig.d.ts.map +0 -1
  51. package/DiscordConfig.js +0 -43
  52. package/DiscordConfig.js.map +0 -1
  53. package/DiscordGateway/DiscordWS.d.ts +0 -37
  54. package/DiscordGateway/DiscordWS.d.ts.map +0 -1
  55. package/DiscordGateway/DiscordWS.js +0 -86
  56. package/DiscordGateway/DiscordWS.js.map +0 -1
  57. package/DiscordGateway/Messaging.d.ts +0 -587
  58. package/DiscordGateway/Messaging.d.ts.map +0 -1
  59. package/DiscordGateway/Messaging.js +0 -43
  60. package/DiscordGateway/Messaging.js.map +0 -1
  61. package/DiscordGateway/Shard/StateStore.d.ts +0 -24
  62. package/DiscordGateway/Shard/StateStore.d.ts.map +0 -1
  63. package/DiscordGateway/Shard/StateStore.js +0 -49
  64. package/DiscordGateway/Shard/StateStore.js.map +0 -1
  65. package/DiscordGateway/Shard/heartbeats.d.ts +0 -8
  66. package/DiscordGateway/Shard/heartbeats.d.ts.map +0 -1
  67. package/DiscordGateway/Shard/heartbeats.js +0 -33
  68. package/DiscordGateway/Shard/heartbeats.js.map +0 -1
  69. package/DiscordGateway/Shard/identify.d.ts +0 -12
  70. package/DiscordGateway/Shard/identify.d.ts.map +0 -1
  71. package/DiscordGateway/Shard/identify.js +0 -37
  72. package/DiscordGateway/Shard/identify.js.map +0 -1
  73. package/DiscordGateway/Shard/sendEvents.d.ts +0 -8
  74. package/DiscordGateway/Shard/sendEvents.d.ts.map +0 -1
  75. package/DiscordGateway/Shard/sendEvents.js +0 -39
  76. package/DiscordGateway/Shard/sendEvents.js.map +0 -1
  77. package/DiscordGateway/Shard/utils.d.ts +0 -6
  78. package/DiscordGateway/Shard/utils.d.ts.map +0 -1
  79. package/DiscordGateway/Shard/utils.js +0 -11
  80. package/DiscordGateway/Shard/utils.js.map +0 -1
  81. package/DiscordGateway/Shard.d.ts +0 -29
  82. package/DiscordGateway/Shard.d.ts.map +0 -1
  83. package/DiscordGateway/Shard.js +0 -155
  84. package/DiscordGateway/Shard.js.map +0 -1
  85. package/DiscordGateway/ShardStore.d.ts +0 -19
  86. package/DiscordGateway/ShardStore.d.ts.map +0 -1
  87. package/DiscordGateway/ShardStore.js +0 -32
  88. package/DiscordGateway/ShardStore.js.map +0 -1
  89. package/DiscordGateway/Sharder.d.ts +0 -14
  90. package/DiscordGateway/Sharder.d.ts.map +0 -1
  91. package/DiscordGateway/Sharder.js +0 -75
  92. package/DiscordGateway/Sharder.js.map +0 -1
  93. package/DiscordGateway.d.ts +0 -33
  94. package/DiscordGateway.d.ts.map +0 -1
  95. package/DiscordGateway.js +0 -28
  96. package/DiscordGateway.js.map +0 -1
  97. package/DiscordREST/Generated.d.ts +0 -5577
  98. package/DiscordREST/Generated.d.ts.map +0 -1
  99. package/DiscordREST/Generated.js +0 -2480
  100. package/DiscordREST/Generated.js.map +0 -1
  101. package/DiscordREST/utils.d.ts +0 -14
  102. package/DiscordREST/utils.d.ts.map +0 -1
  103. package/DiscordREST/utils.js +0 -32
  104. package/DiscordREST/utils.js.map +0 -1
  105. package/DiscordREST.d.ts +0 -22
  106. package/DiscordREST.d.ts.map +0 -1
  107. package/DiscordREST.js +0 -128
  108. package/DiscordREST.js.map +0 -1
  109. package/Helpers/flags.d.ts +0 -28
  110. package/Helpers/flags.d.ts.map +0 -1
  111. package/Helpers/flags.js +0 -57
  112. package/Helpers/flags.js.map +0 -1
  113. package/Helpers/intents.d.ts +0 -25
  114. package/Helpers/intents.d.ts.map +0 -1
  115. package/Helpers/intents.js +0 -34
  116. package/Helpers/intents.js.map +0 -1
  117. package/Helpers/interactions.d.ts +0 -116
  118. package/Helpers/interactions.d.ts.map +0 -1
  119. package/Helpers/interactions.js +0 -143
  120. package/Helpers/interactions.js.map +0 -1
  121. package/Helpers/members.d.ts +0 -10
  122. package/Helpers/members.d.ts.map +0 -1
  123. package/Helpers/members.js +0 -17
  124. package/Helpers/members.js.map +0 -1
  125. package/Helpers/permissions.d.ts +0 -42
  126. package/Helpers/permissions.d.ts.map +0 -1
  127. package/Helpers/permissions.js +0 -97
  128. package/Helpers/permissions.js.map +0 -1
  129. package/Helpers/ui.d.ts +0 -105
  130. package/Helpers/ui.d.ts.map +0 -1
  131. package/Helpers/ui.js +0 -162
  132. package/Helpers/ui.js.map +0 -1
  133. package/Interactions/builder.d.ts +0 -48
  134. package/Interactions/builder.d.ts.map +0 -1
  135. package/Interactions/builder.js +0 -64
  136. package/Interactions/builder.js.map +0 -1
  137. package/Interactions/commandHelper.d.ts +0 -83
  138. package/Interactions/commandHelper.d.ts.map +0 -1
  139. package/Interactions/commandHelper.js +0 -57
  140. package/Interactions/commandHelper.js.map +0 -1
  141. package/Interactions/context.d.ts +0 -53
  142. package/Interactions/context.d.ts.map +0 -1
  143. package/Interactions/context.js +0 -47
  144. package/Interactions/context.js.map +0 -1
  145. package/Interactions/definitions.d.ts +0 -43
  146. package/Interactions/definitions.d.ts.map +0 -1
  147. package/Interactions/definitions.js +0 -67
  148. package/Interactions/definitions.js.map +0 -1
  149. package/Interactions/error.d.ts +0 -2
  150. package/Interactions/error.d.ts.map +0 -1
  151. package/Interactions/error.js +0 -8
  152. package/Interactions/error.js.map +0 -1
  153. package/Interactions/gateway.d.ts +0 -20
  154. package/Interactions/gateway.d.ts.map +0 -1
  155. package/Interactions/gateway.js +0 -92
  156. package/Interactions/gateway.js.map +0 -1
  157. package/Interactions/handlers.d.ts +0 -15
  158. package/Interactions/handlers.d.ts.map +0 -1
  159. package/Interactions/handlers.js +0 -73
  160. package/Interactions/handlers.js.map +0 -1
  161. package/Interactions/index.d.ts +0 -17
  162. package/Interactions/index.d.ts.map +0 -1
  163. package/Interactions/index.js +0 -94
  164. package/Interactions/index.js.map +0 -1
  165. package/Interactions/utils.d.ts +0 -61
  166. package/Interactions/utils.d.ts.map +0 -1
  167. package/Interactions/utils.js +0 -35
  168. package/Interactions/utils.js.map +0 -1
  169. package/Interactions/webhook.d.ts +0 -71
  170. package/Interactions/webhook.d.ts.map +0 -1
  171. package/Interactions/webhook.js +0 -89
  172. package/Interactions/webhook.js.map +0 -1
  173. package/RateLimit/memory.d.ts +0 -3
  174. package/RateLimit/memory.d.ts.map +0 -1
  175. package/RateLimit/memory.js +0 -47
  176. package/RateLimit/memory.js.map +0 -1
  177. package/RateLimit/utils.d.ts +0 -3
  178. package/RateLimit/utils.d.ts.map +0 -1
  179. package/RateLimit/utils.js +0 -25
  180. package/RateLimit/utils.js.map +0 -1
  181. package/RateLimit.d.ts +0 -30
  182. package/RateLimit.d.ts.map +0 -1
  183. package/RateLimit.js +0 -37
  184. package/RateLimit.js.map +0 -1
  185. package/gateway.d.ts +0 -19
  186. package/gateway.d.ts.map +0 -1
  187. package/gateway.js +0 -72
  188. package/gateway.js.map +0 -1
  189. package/index.d.ts +0 -18
  190. package/index.d.ts.map +0 -1
  191. package/index.js +0 -71
  192. package/index.js.map +0 -1
  193. package/mjs/Cache/driver.mjs +0 -3
  194. package/mjs/Cache/driver.mjs.map +0 -1
  195. package/mjs/Cache/memory.mjs +0 -48
  196. package/mjs/Cache/memory.mjs.map +0 -1
  197. package/mjs/Cache/memoryTTL.mjs +0 -119
  198. package/mjs/Cache/memoryTTL.mjs.map +0 -1
  199. package/mjs/Cache/prelude.mjs +0 -131
  200. package/mjs/Cache/prelude.mjs.map +0 -1
  201. package/mjs/Cache.mjs +0 -90
  202. package/mjs/Cache.mjs.map +0 -1
  203. package/mjs/DiscordConfig.mjs +0 -32
  204. package/mjs/DiscordConfig.mjs.map +0 -1
  205. package/mjs/DiscordGateway/DiscordWS.mjs +0 -77
  206. package/mjs/DiscordGateway/DiscordWS.mjs.map +0 -1
  207. package/mjs/DiscordGateway/Messaging.mjs +0 -35
  208. package/mjs/DiscordGateway/Messaging.mjs.map +0 -1
  209. package/mjs/DiscordGateway/Shard/StateStore.mjs +0 -41
  210. package/mjs/DiscordGateway/Shard/StateStore.mjs.map +0 -1
  211. package/mjs/DiscordGateway/Shard/heartbeats.mjs +0 -25
  212. package/mjs/DiscordGateway/Shard/heartbeats.mjs.map +0 -1
  213. package/mjs/DiscordGateway/Shard/identify.mjs +0 -29
  214. package/mjs/DiscordGateway/Shard/identify.mjs.map +0 -1
  215. package/mjs/DiscordGateway/Shard/sendEvents.mjs +0 -26
  216. package/mjs/DiscordGateway/Shard/sendEvents.mjs.map +0 -1
  217. package/mjs/DiscordGateway/Shard/utils.mjs +0 -3
  218. package/mjs/DiscordGateway/Shard/utils.mjs.map +0 -1
  219. package/mjs/DiscordGateway/Shard.mjs +0 -147
  220. package/mjs/DiscordGateway/Shard.mjs.map +0 -1
  221. package/mjs/DiscordGateway/ShardStore.mjs +0 -24
  222. package/mjs/DiscordGateway/ShardStore.mjs.map +0 -1
  223. package/mjs/DiscordGateway/Sharder.mjs +0 -67
  224. package/mjs/DiscordGateway/Sharder.mjs.map +0 -1
  225. package/mjs/DiscordGateway.mjs +0 -21
  226. package/mjs/DiscordGateway.mjs.map +0 -1
  227. package/mjs/DiscordREST/Generated.mjs +0 -2471
  228. package/mjs/DiscordREST/Generated.mjs.map +0 -1
  229. package/mjs/DiscordREST/utils.mjs +0 -21
  230. package/mjs/DiscordREST/utils.mjs.map +0 -1
  231. package/mjs/DiscordREST.mjs +0 -119
  232. package/mjs/DiscordREST.mjs.map +0 -1
  233. package/mjs/Helpers/flags.mjs +0 -45
  234. package/mjs/Helpers/flags.mjs.map +0 -1
  235. package/mjs/Helpers/intents.mjs +0 -27
  236. package/mjs/Helpers/intents.mjs.map +0 -1
  237. package/mjs/Helpers/interactions.mjs +0 -115
  238. package/mjs/Helpers/interactions.mjs.map +0 -1
  239. package/mjs/Helpers/members.mjs +0 -9
  240. package/mjs/Helpers/members.mjs.map +0 -1
  241. package/mjs/Helpers/permissions.mjs +0 -84
  242. package/mjs/Helpers/permissions.mjs.map +0 -1
  243. package/mjs/Helpers/ui.mjs +0 -137
  244. package/mjs/Helpers/ui.mjs.map +0 -1
  245. package/mjs/Interactions/builder.mjs +0 -56
  246. package/mjs/Interactions/builder.mjs.map +0 -1
  247. package/mjs/Interactions/commandHelper.mjs +0 -49
  248. package/mjs/Interactions/commandHelper.mjs.map +0 -1
  249. package/mjs/Interactions/context.mjs +0 -28
  250. package/mjs/Interactions/context.mjs.map +0 -1
  251. package/mjs/Interactions/definitions.mjs +0 -51
  252. package/mjs/Interactions/definitions.mjs.map +0 -1
  253. package/mjs/Interactions/error.mjs +0 -2
  254. package/mjs/Interactions/error.mjs.map +0 -1
  255. package/mjs/Interactions/gateway.mjs +0 -82
  256. package/mjs/Interactions/gateway.mjs.map +0 -1
  257. package/mjs/Interactions/handlers.mjs +0 -64
  258. package/mjs/Interactions/handlers.mjs.map +0 -1
  259. package/mjs/Interactions/index.mjs +0 -11
  260. package/mjs/Interactions/index.mjs.map +0 -1
  261. package/mjs/Interactions/utils.mjs +0 -26
  262. package/mjs/Interactions/utils.mjs.map +0 -1
  263. package/mjs/Interactions/webhook.mjs +0 -75
  264. package/mjs/Interactions/webhook.mjs.map +0 -1
  265. package/mjs/RateLimit/memory.mjs +0 -39
  266. package/mjs/RateLimit/memory.mjs.map +0 -1
  267. package/mjs/RateLimit/utils.mjs +0 -18
  268. package/mjs/RateLimit/utils.mjs.map +0 -1
  269. package/mjs/RateLimit.mjs +0 -28
  270. package/mjs/RateLimit.mjs.map +0 -1
  271. package/mjs/gateway.mjs +0 -19
  272. package/mjs/gateway.mjs.map +0 -1
  273. package/mjs/index.mjs +0 -18
  274. package/mjs/index.mjs.map +0 -1
  275. package/mjs/types.mjs +0 -356
  276. package/mjs/types.mjs.map +0 -1
  277. package/mjs/utils/Effect.mjs +0 -44
  278. package/mjs/utils/Effect.mjs.map +0 -1
  279. package/mjs/version.mjs +0 -2
  280. package/mjs/version.mjs.map +0 -1
  281. package/mjs/webhooks.mjs +0 -6
  282. package/mjs/webhooks.mjs.map +0 -1
  283. package/src/version.ts +0 -1
  284. package/types.d.ts +0 -2458
  285. package/types.d.ts.map +0 -1
  286. package/types.js +0 -408
  287. package/types.js.map +0 -1
  288. package/utils/Effect.d.ts +0 -5
  289. package/utils/Effect.d.ts.map +0 -1
  290. package/utils/Effect.js +0 -53
  291. package/utils/Effect.js.map +0 -1
  292. package/version.d.ts +0 -2
  293. package/version.d.ts.map +0 -1
  294. package/version.js +0 -8
  295. package/version.js.map +0 -1
  296. package/webhooks.d.ts +0 -8
  297. package/webhooks.d.ts.map +0 -1
  298. package/webhooks.js +0 -55
  299. package/webhooks.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"handlers.mjs","names":["Effect","IxHelpers","Ctx","flattenDefinitions","splitDefinitions","Discord","DefinitionNotFound","interaction","_tag","constructor","handlers","definitions","handleResponse","flattened","Autocomplete","Commands","MessageComponent","ModalSubmit","InteractionTypes","PING","_","succeed","type","InteractionCallbackTypes","PONG","APPLICATION_COMMAND","i","data","command","name","undefined","fail","provideService","handle","ApplicationCommand","SOCIAL_LAYER_SKU_PURCHASE_ELIGIBILITY","MODAL_SUBMIT","match","find","predicate","custom_id","ModalSubmitData","MESSAGE_COMPONENT","MessageComponentData","APPLICATION_COMMAND_AUTOCOMPLETE","option","focusedOption","value","pipe","FocusedOptionContext"],"sources":["../../src/Interactions/handlers.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,11 +0,0 @@
1
- export { response } from "../Helpers/interactions.js";
2
- export * from "./builder.js";
3
- export * from "./context.js";
4
- export { autocomplete, global, guild, messageComponent, modalSubmit } from "./definitions.js";
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,4BAA4B;AACrD,cAAc,cAAc;AAC5B,cAAc,cAAc;AAE5B,SACEC,YAAY,EACZC,MAAM,EACNC,KAAK,EACLC,gBAAgB,EAChBC,WAAW,QACN,kBAAkB;AAEzB;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 "./commandHelper.js";
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,oBAAoB;AAgBlD,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,75 +0,0 @@
1
- import * as Chunk from "effect/Chunk";
2
- import { identity } from "effect/Function";
3
- import * as Option from "effect/Option";
4
- import * as Redacted from "effect/Redacted";
5
- import * as Effect from "effect/Effect";
6
- import * as Layer from "effect/Layer";
7
- import * as ServiceMap from "effect/ServiceMap";
8
- import { handlers } from "./handlers.js";
9
- import { Interaction } from "./index.js";
10
- import * as Verify from "discord-verify";
11
- import * as Data from "effect/Data";
12
- export class BadWebhookSignature {
13
- _tag = "BadWebhookSignature";
14
- }
15
- const checkSignature = (publicKey, headers, body, crypto, algorithm) => Effect.fromOption(Option.all({
16
- signature: Option.fromNullishOr(headers["x-signature-ed25519"]),
17
- timestamp: Option.fromNullishOr(headers["x-signature-timestamp"])
18
- })).pipe(Effect.flatMap(_ => Effect.promise(() => Verify.verify(body, _.signature, _.timestamp, publicKey, crypto, algorithm))), Effect.filterOrFail(identity, () => new BadWebhookSignature()), Effect.catchCause(() => Effect.fail(new BadWebhookSignature())), Effect.asVoid);
19
- const makeConfig = ({
20
- algorithm,
21
- applicationId,
22
- crypto,
23
- publicKey
24
- }) => ({
25
- applicationId,
26
- publicKey: Redacted.value(publicKey),
27
- crypto,
28
- algorithm: Verify.PlatformAlgorithm[algorithm]
29
- });
30
- export class WebhookConfig extends /*#__PURE__*/ServiceMap.Service()("dfx/Interactions/WebhookConfig") {}
31
- export const layer = opts => Layer.succeed(WebhookConfig, makeConfig(opts));
32
- export const layerConfig = config => Layer.effect(WebhookConfig, Effect.map(config.asEffect(), makeConfig));
33
- export class WebhookParseError extends /*#__PURE__*/Data.TaggedError("WebhookParseError") {}
34
- const fromHeadersAndBody = (headers, body) => WebhookConfig.use(({
35
- algorithm,
36
- crypto,
37
- publicKey
38
- }) => checkSignature(publicKey, headers, body, crypto, algorithm).pipe(Effect.andThen(Effect.try({
39
- try: () => JSON.parse(body),
40
- catch: cause => new WebhookParseError({
41
- cause
42
- })
43
- }))));
44
- const run = (definitions, handleResponse) => {
45
- const handler = handlers(definitions, handleResponse);
46
- return (headers, body) => Effect.flatMap(fromHeadersAndBody(headers, body), interaction => Effect.withSpan(Effect.provideService(handler[interaction.type](interaction), Interaction, interaction), "dfx.Interaction", {
47
- attributes: {
48
- interactionId: interaction.id
49
- },
50
- captureStackTrace: false
51
- }));
52
- };
53
- /**
54
- * @tsplus getter dfx/InteractionBuilder webhookHandler
55
- */
56
- export const makeHandler = ix => {
57
- const handle = run(Chunk.map(ix.definitions, ([d]) => [d, identity]), (_i, r) => Effect.succeed(r));
58
- return ({
59
- body,
60
- error,
61
- headers,
62
- success
63
- }) => handle(headers, body).pipe(Effect.flatMap(success), Effect.catchCause(error));
64
- };
65
- /**
66
- * @tsplus getter dfx/InteractionBuilder simpleWebhookHandler
67
- */
68
- export const makeSimpleHandler = ix => {
69
- const handle = run(Chunk.map(ix.definitions, ([d]) => [d, identity]), (_i, r) => Effect.succeed(r));
70
- return ({
71
- body,
72
- headers
73
- }) => handle(headers, body);
74
- };
75
- //# sourceMappingURL=webhook.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"webhook.mjs","names":["Chunk","identity","Option","Redacted","Effect","Layer","ServiceMap","handlers","Interaction","Verify","Data","BadWebhookSignature","_tag","checkSignature","publicKey","headers","body","crypto","algorithm","fromOption","all","signature","fromNullishOr","timestamp","pipe","flatMap","_","promise","verify","filterOrFail","catchCause","fail","asVoid","makeConfig","applicationId","value","PlatformAlgorithm","WebhookConfig","Service","layer","opts","succeed","layerConfig","config","effect","map","asEffect","WebhookParseError","TaggedError","fromHeadersAndBody","use","andThen","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.fromNullishOr(counters.get(key)), c => c.expires > Date.now());
8
- const getBucketForRoute = route => Effect.sync(() => Option.fromNullishOr(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","fromNullishOr","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,aAAa,CAACJ,QAAQ,CAACK,GAAG,CAACH,GAAG,CAAC,CAAC,EACvCI,CAAC,IAAIA,CAAC,CAACC,OAAO,GAAGC,IAAI,CAACC,GAAG,EAAE,CAC5B;EAEH,MAAMC,iBAAiB,GAAIC,KAAa,IACtChB,MAAM,CAACiB,IAAI,CAAC,MAAMlB,MAAM,CAACU,aAAa,CAACP,OAAO,CAACQ,GAAG,CAACN,MAAM,CAACM,GAAG,CAACM,KAAK,CAAE,CAAC,CAAC,CAAC;EAE1E,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 * as Duration from "effect/Duration";
2
- import * as Effect from "effect/Effect";
3
- import * as Layer from "effect/Layer";
4
- import * as Memory from "./RateLimit/memory.js";
5
- import { delayFrom } from "./RateLimit/utils.js";
6
- import * as ServiceMap from "effect/ServiceMap";
7
- export class RateLimitStore extends /*#__PURE__*/ServiceMap.Service()("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 class RateLimiter extends /*#__PURE__*/ServiceMap.Service()("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":["Duration","Effect","Layer","Memory","delayFrom","ServiceMap","RateLimitStore","Service","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,OAAO,KAAKA,QAAQ,MAAM,iBAAiB;AAE3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,uBAAuB;AAC/C,SAASC,SAAS,QAAQ,sBAAsB;AAChD,OAAO,KAAKC,UAAU,MAAM,mBAAmB;AA+B/C,OAAM,MAAOC,cAAe,sBAAQD,UAAU,CAACE,OAAO,EAGnD,CAAC,8BAA8B,CAAC;AAEnC,OAAO,MAAMC,wBAAwB,gBAAGN,KAAK,CAACO,IAAI,CAACH,cAAc,EAAEH,MAAM,CAACO,IAAI,CAAC;AAE/E,MAAMC,WAAW,gBAAGV,MAAM,CAACW,GAAG,CAAC,aAAS;EACtC,MAAMC,KAAK,GAAG,OAAOP,cAAc;EAEnC,MAAMQ,SAAS,GAAGA,CAChBC,GAAW,EACXC,MAAyB,EACzBC,KAAa,EACbC,UAAU,GAAG,IAAI,KACf;IACF,MAAMC,QAAQ,GAAGnB,QAAQ,CAACoB,QAAQ,CAACJ,MAAM,CAAC,GAAGE,UAAU;IAEvD,OAAOL,KAAK,CAACQ,gBAAgB,CAACN,GAAG,EAAEI,QAAQ,EAAEF,KAAK,CAAC,CAACK,IAAI,CACtDrB,MAAM,CAACsB,GAAG,CAAC,CAAC,CAACC,KAAK,EAAEC,GAAG,CAAC,KAAKrB,SAAS,CAACe,QAAQ,EAAEF,KAAK,EAAEO,KAAK,EAAEC,GAAG,CAAC,CAAC,EACpExB,MAAM,CAACyB,GAAG,CAACC,CAAC,IACV1B,MAAM,CAAC2B,YAAY,CAAC3B,MAAM,CAAC4B,QAAQ,CAAC,WAAW,CAAC,EAAE;MAChDC,OAAO,EAAE,WAAW;MACpBf,GAAG;MACHC,MAAM,EAAEhB,QAAQ,CAACoB,QAAQ,CAACJ,MAAM,CAAC;MACjCG,QAAQ;MACRF,KAAK;MACLc,KAAK,EAAE/B,QAAQ,CAACoB,QAAQ,CAACO,CAAC;KAC3B,CAAC,CACH,EACD1B,MAAM,CAACyB,GAAG,CAACM,CAAC,IACVhC,QAAQ,CAACoB,QAAQ,CAACY,CAAC,CAAC,KAAK,CAAC,GAAG/B,MAAM,CAACgC,IAAI,GAAGhC,MAAM,CAACiC,KAAK,CAACF,CAAC,CAAC,CAC3D,EACD/B,MAAM,CAACkC,MAAM,CACd;EACH,CAAC;EAED,OAAO;IAAErB;EAAS,CAAE;AACtB,CAAC,CAAC;AAEF,OAAM,MAAOsB,WAAY,sBAAQ/B,UAAU,CAACE,OAAO,EAUhD,CAAC,2BAA2B,CAAC;AAEhC,OAAO,MAAM8B,eAAe,gBAAGnC,KAAK,CAACoC,MAAM,CAACF,WAAW,EAAEzB,WAAW,CAAC","ignoreList":[]}
package/mjs/gateway.mjs DELETED
@@ -1,19 +0,0 @@
1
- import * as CachePrelude from "./Cache/prelude.js";
2
- import { DiscordGatewayLive } from "./DiscordGateway.js";
3
- import * as DiscordWS from "./DiscordGateway/DiscordWS.js";
4
- import { JsonDiscordWSCodecLive } from "./DiscordGateway/DiscordWS.js";
5
- import * as Shard from "./DiscordGateway/Shard.js";
6
- import { ShardStateStore } from "./DiscordGateway/Shard/StateStore.js";
7
- import * as SendEvent from "./DiscordGateway/Shard/sendEvents.js";
8
- import * as ShardStore from "./DiscordGateway/ShardStore.js";
9
- import { MemoryShardStoreLive } from "./DiscordGateway/ShardStore.js";
10
- import { DiscordRESTLive } from "./DiscordREST.js";
11
- import { InteractionsRegistryLive } from "./Interactions/gateway.js";
12
- import { MemoryRateLimitStoreLive, RateLimiterLive } from "./RateLimit.js";
13
- import * as Layer from "effect/Layer";
14
- export { DiscordGateway, DiscordGatewayLive } from "./DiscordGateway.js";
15
- export { InteractionsRegistry, InteractionsRegistryLive, interactionsSync, run as runIx, setInteractionsSync } from "./Interactions/gateway.js";
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,oBAAoB;AAElD,SAASC,kBAAkB,QAAQ,qBAAqB;AACxD,OAAO,KAAKC,SAAS,MAAM,+BAA+B;AAC1D,SAASC,sBAAsB,QAAQ,+BAA+B;AACtE,OAAO,KAAKC,KAAK,MAAM,2BAA2B;AAClD,SAASC,eAAe,QAAQ,sCAAsC;AACtE,OAAO,KAAKC,SAAS,MAAM,sCAAsC;AACjE,OAAO,KAAKC,UAAU,MAAM,gCAAgC;AAC5D,SAASC,oBAAoB,QAAQ,gCAAgC;AAErE,SAASC,eAAe,QAAQ,kBAAkB;AAElD,SAASC,wBAAwB,QAAQ,2BAA2B;AAEpE,SAASC,wBAAwB,EAAEC,eAAe,QAAQ,gBAAgB;AAC1E,OAAO,KAAKC,KAAK,MAAM,cAAc;AAKrC,SAASC,cAAc,EAAEb,kBAAkB,QAAQ,qBAAqB;AAExE,SACEc,oBAAoB,EACpBL,wBAAwB,EACxBM,gBAAgB,EAChBC,GAAG,IAAIC,KAAK,EACZC,mBAAmB,QACd,2BAA2B;AAElC,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 "./Cache.js";
2
- import * as DiscordConfig from "./DiscordConfig.js";
3
- import { DiscordRESTLive } from "./DiscordREST.js";
4
- import * as Flags from "./Helpers/flags.js";
5
- import * as Intents from "./Helpers/intents.js";
6
- import * as IxHelpers from "./Helpers/interactions.js";
7
- import * as Members from "./Helpers/members.js";
8
- import * as Perms from "./Helpers/permissions.js";
9
- import * as UI from "./Helpers/ui.js";
10
- import * as Ix from "./Interactions/index.js";
11
- import { MemoryRateLimitStoreLive } from "./RateLimit.js";
12
- import * as Discord from "./types.js";
13
- import * as Layer from "effect/Layer";
14
- export { DiscordREST, DiscordRESTLive } from "./DiscordREST.js";
15
- export { MemoryRateLimitStoreLive, RateLimitStore, RateLimiter, RateLimiterLive } from "./RateLimit.js";
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,YAAY;AACnC,OAAO,KAAKC,aAAa,MAAM,oBAAoB;AAEnD,SAASC,eAAe,QAAQ,kBAAkB;AAClD,OAAO,KAAKC,KAAK,MAAM,oBAAoB;AAC3C,OAAO,KAAKC,OAAO,MAAM,sBAAsB;AAC/C,OAAO,KAAKC,SAAS,MAAM,2BAA2B;AACtD,OAAO,KAAKC,OAAO,MAAM,sBAAsB;AAC/C,OAAO,KAAKC,KAAK,MAAM,0BAA0B;AACjD,OAAO,KAAKC,EAAE,MAAM,iBAAiB;AACrC,OAAO,KAAKC,EAAE,MAAM,yBAAyB;AAC7C,SAASC,wBAAwB,QAAQ,gBAAgB;AACzD,OAAO,KAAKC,OAAO,MAAM,YAAY;AACrC,OAAO,KAAKC,KAAK,MAAM,cAAc;AAErC,SAASC,WAAW,EAAEX,eAAe,QAAQ,kBAAkB;AAE/D,SAEEQ,wBAAwB,EACxBI,cAAc,EACdC,WAAW,EACXC,eAAe,QACV,gBAAgB;AAEvB,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":[]}