dfx 0.51.0 → 0.51.2

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 (335) hide show
  1. package/Cache/driver.d.ts +17 -16
  2. package/Cache/driver.d.ts.map +1 -1
  3. package/Cache/driver.js +10 -2
  4. package/Cache/driver.js.map +1 -1
  5. package/Cache/memory.d.ts +3 -3
  6. package/Cache/memory.d.ts.map +1 -1
  7. package/Cache/memory.js +55 -45
  8. package/Cache/memory.js.map +1 -1
  9. package/Cache/memoryTTL.d.ts +7 -6
  10. package/Cache/memoryTTL.d.ts.map +1 -1
  11. package/Cache/memoryTTL.js +126 -118
  12. package/Cache/memoryTTL.js.map +1 -1
  13. package/Cache/prelude.d.ts +53 -47
  14. package/Cache/prelude.d.ts.map +1 -1
  15. package/Cache/prelude.js +125 -96
  16. package/Cache/prelude.js.map +1 -1
  17. package/Cache.d.ts +33 -32
  18. package/Cache.d.ts.map +1 -1
  19. package/Cache.js +137 -65
  20. package/Cache.js.map +1 -1
  21. package/DiscordConfig.d.ts +26 -20
  22. package/DiscordConfig.d.ts.map +1 -1
  23. package/DiscordConfig.js +43 -25
  24. package/DiscordConfig.js.map +1 -1
  25. package/DiscordGateway/DiscordWS.d.ts +17 -14
  26. package/DiscordGateway/DiscordWS.d.ts.map +1 -1
  27. package/DiscordGateway/DiscordWS.js +49 -30
  28. package/DiscordGateway/DiscordWS.js.map +1 -1
  29. package/DiscordGateway/Shard/heartbeats.d.ts +7 -3
  30. package/DiscordGateway/Shard/heartbeats.d.ts.map +1 -1
  31. package/DiscordGateway/Shard/heartbeats.js +28 -18
  32. package/DiscordGateway/Shard/heartbeats.js.map +1 -1
  33. package/DiscordGateway/Shard/identify.d.ts +10 -8
  34. package/DiscordGateway/Shard/identify.d.ts.map +1 -1
  35. package/DiscordGateway/Shard/identify.js +41 -24
  36. package/DiscordGateway/Shard/identify.js.map +1 -1
  37. package/DiscordGateway/Shard/invalidSession.d.ts +6 -3
  38. package/DiscordGateway/Shard/invalidSession.d.ts.map +1 -1
  39. package/DiscordGateway/Shard/invalidSession.js +14 -5
  40. package/DiscordGateway/Shard/invalidSession.js.map +1 -1
  41. package/DiscordGateway/Shard/sendEvents.d.ts +1 -1
  42. package/DiscordGateway/Shard/sendEvents.d.ts.map +1 -1
  43. package/DiscordGateway/Shard/sendEvents.js +30 -18
  44. package/DiscordGateway/Shard/sendEvents.js.map +1 -1
  45. package/DiscordGateway/Shard/utils.d.ts +7 -3
  46. package/DiscordGateway/Shard/utils.d.ts.map +1 -1
  47. package/DiscordGateway/Shard/utils.js +19 -9
  48. package/DiscordGateway/Shard/utils.js.map +1 -1
  49. package/DiscordGateway/Shard.d.ts +15 -10
  50. package/DiscordGateway/Shard.d.ts.map +1 -1
  51. package/DiscordGateway/Shard.js +109 -87
  52. package/DiscordGateway/Shard.js.map +1 -1
  53. package/DiscordGateway/ShardStore.d.ts +9 -6
  54. package/DiscordGateway/ShardStore.d.ts.map +1 -1
  55. package/DiscordGateway/ShardStore.js +30 -18
  56. package/DiscordGateway/ShardStore.js.map +1 -1
  57. package/DiscordGateway/Sharder.d.ts +17 -11
  58. package/DiscordGateway/Sharder.d.ts.map +1 -1
  59. package/DiscordGateway/Sharder.js +82 -52
  60. package/DiscordGateway/Sharder.js.map +1 -1
  61. package/DiscordGateway/WS.d.ts +13 -10
  62. package/DiscordGateway/WS.d.ts.map +1 -1
  63. package/DiscordGateway/WS.js +100 -74
  64. package/DiscordGateway/WS.js.map +1 -1
  65. package/DiscordGateway.d.ts +19 -13
  66. package/DiscordGateway.d.ts.map +1 -1
  67. package/DiscordGateway.js +45 -32
  68. package/DiscordGateway.js.map +1 -1
  69. package/DiscordREST/types.d.ts +5 -5
  70. package/DiscordREST/types.d.ts.map +1 -1
  71. package/DiscordREST/types.js +5 -1
  72. package/DiscordREST/types.js.map +1 -1
  73. package/DiscordREST/utils.d.ts +3 -2
  74. package/DiscordREST/utils.d.ts.map +1 -1
  75. package/DiscordREST/utils.js +27 -17
  76. package/DiscordREST/utils.js.map +1 -1
  77. package/DiscordREST.d.ts +11 -8
  78. package/DiscordREST.d.ts.map +1 -1
  79. package/DiscordREST.js +141 -127
  80. package/DiscordREST.js.map +1 -1
  81. package/Helpers/flags.js +31 -19
  82. package/Helpers/flags.js.map +1 -1
  83. package/Helpers/intents.d.ts.map +1 -1
  84. package/Helpers/intents.js +22 -10
  85. package/Helpers/intents.js.map +1 -1
  86. package/Helpers/interactions.d.ts +22 -21
  87. package/Helpers/interactions.d.ts.map +1 -1
  88. package/Helpers/interactions.js +75 -39
  89. package/Helpers/interactions.js.map +1 -1
  90. package/Helpers/members.d.ts +3 -3
  91. package/Helpers/members.d.ts.map +1 -1
  92. package/Helpers/members.js +10 -3
  93. package/Helpers/members.js.map +1 -1
  94. package/Helpers/permissions.d.ts +5 -4
  95. package/Helpers/permissions.d.ts.map +1 -1
  96. package/Helpers/permissions.js +69 -52
  97. package/Helpers/permissions.js.map +1 -1
  98. package/Helpers/ui.d.ts +1 -1
  99. package/Helpers/ui.d.ts.map +1 -1
  100. package/Helpers/ui.js +44 -29
  101. package/Helpers/ui.js.map +1 -1
  102. package/Interactions/builder.d.ts +20 -19
  103. package/Interactions/builder.d.ts.map +1 -1
  104. package/Interactions/builder.js +66 -63
  105. package/Interactions/builder.js.map +1 -1
  106. package/Interactions/context.d.ts +26 -23
  107. package/Interactions/context.d.ts.map +1 -1
  108. package/Interactions/context.js +86 -57
  109. package/Interactions/context.js.map +1 -1
  110. package/Interactions/definitions.d.ts +33 -30
  111. package/Interactions/definitions.d.ts.map +1 -1
  112. package/Interactions/definitions.js +61 -47
  113. package/Interactions/definitions.js.map +1 -1
  114. package/Interactions/gateway.d.ts +15 -10
  115. package/Interactions/gateway.d.ts.map +1 -1
  116. package/Interactions/gateway.js +55 -42
  117. package/Interactions/gateway.js.map +1 -1
  118. package/Interactions/handlers.d.ts +6 -4
  119. package/Interactions/handlers.d.ts.map +1 -1
  120. package/Interactions/handlers.js +68 -57
  121. package/Interactions/handlers.js.map +1 -1
  122. package/Interactions/index.d.ts +11 -10
  123. package/Interactions/index.d.ts.map +1 -1
  124. package/Interactions/index.js +95 -10
  125. package/Interactions/index.js.map +1 -1
  126. package/Interactions/utils.d.ts +42 -40
  127. package/Interactions/utils.d.ts.map +1 -1
  128. package/Interactions/utils.js +40 -32
  129. package/Interactions/utils.js.map +1 -1
  130. package/Interactions/webhook.d.ts +20 -16
  131. package/Interactions/webhook.d.ts.map +1 -1
  132. package/Interactions/webhook.js +73 -41
  133. package/Interactions/webhook.js.map +1 -1
  134. package/Log.d.ts +8 -5
  135. package/Log.d.ts.map +1 -1
  136. package/Log.js +23 -14
  137. package/Log.js.map +1 -1
  138. package/RateLimit/memory.d.ts +1 -1
  139. package/RateLimit/memory.d.ts.map +1 -1
  140. package/RateLimit/memory.js +46 -33
  141. package/RateLimit/memory.js.map +1 -1
  142. package/RateLimit/utils.d.ts +1 -1
  143. package/RateLimit/utils.d.ts.map +1 -1
  144. package/RateLimit/utils.js +23 -16
  145. package/RateLimit/utils.js.map +1 -1
  146. package/RateLimit.d.ts +18 -14
  147. package/RateLimit.d.ts.map +1 -1
  148. package/RateLimit.js +40 -26
  149. package/RateLimit.js.map +1 -1
  150. package/gateway.d.ts +20 -13
  151. package/gateway.d.ts.map +1 -1
  152. package/gateway.js +72 -25
  153. package/gateway.js.map +1 -1
  154. package/index.d.ts +14 -13
  155. package/index.d.ts.map +1 -1
  156. package/index.js +71 -13
  157. package/index.js.map +1 -1
  158. package/mjs/Cache/driver.mjs +3 -0
  159. package/mjs/Cache/driver.mjs.map +1 -0
  160. package/mjs/Cache/memory.mjs +48 -0
  161. package/mjs/Cache/memory.mjs.map +1 -0
  162. package/mjs/Cache/memoryTTL.mjs +119 -0
  163. package/mjs/Cache/memoryTTL.mjs.map +1 -0
  164. package/mjs/Cache/prelude.mjs +125 -0
  165. package/mjs/Cache/prelude.mjs.map +1 -0
  166. package/mjs/Cache.mjs +87 -0
  167. package/mjs/Cache.mjs.map +1 -0
  168. package/mjs/DiscordConfig.mjs +34 -0
  169. package/mjs/DiscordConfig.mjs.map +1 -0
  170. package/mjs/DiscordGateway/DiscordWS.mjs +39 -0
  171. package/mjs/DiscordGateway/DiscordWS.mjs.map +1 -0
  172. package/mjs/DiscordGateway/Shard/heartbeats.mjs +21 -0
  173. package/mjs/DiscordGateway/Shard/heartbeats.mjs.map +1 -0
  174. package/mjs/DiscordGateway/Shard/identify.mjs +37 -0
  175. package/mjs/DiscordGateway/Shard/identify.mjs.map +1 -0
  176. package/mjs/DiscordGateway/Shard/invalidSession.mjs +6 -0
  177. package/mjs/DiscordGateway/Shard/invalidSession.mjs.map +1 -0
  178. package/mjs/DiscordGateway/Shard/sendEvents.mjs +25 -0
  179. package/mjs/DiscordGateway/Shard/sendEvents.mjs.map +1 -0
  180. package/mjs/DiscordGateway/Shard/utils.mjs +11 -0
  181. package/mjs/DiscordGateway/Shard/utils.mjs.map +1 -0
  182. package/mjs/DiscordGateway/Shard.mjs +99 -0
  183. package/mjs/DiscordGateway/Shard.mjs.map +1 -0
  184. package/mjs/DiscordGateway/ShardStore.mjs +24 -0
  185. package/mjs/DiscordGateway/ShardStore.mjs.map +1 -0
  186. package/mjs/DiscordGateway/Sharder.mjs +73 -0
  187. package/mjs/DiscordGateway/Sharder.mjs.map +1 -0
  188. package/mjs/DiscordGateway/WS.mjs +94 -0
  189. package/mjs/DiscordGateway/WS.mjs.map +1 -0
  190. package/mjs/DiscordGateway.mjs +36 -0
  191. package/mjs/DiscordGateway.mjs.map +1 -0
  192. package/mjs/DiscordREST/types.mjs +2 -0
  193. package/mjs/DiscordREST/types.mjs.map +1 -0
  194. package/mjs/DiscordREST/utils.mjs +19 -0
  195. package/mjs/DiscordREST/utils.mjs.map +1 -0
  196. package/mjs/DiscordREST.mjs +129 -0
  197. package/mjs/DiscordREST.mjs.map +1 -0
  198. package/mjs/Helpers/flags.mjs +36 -0
  199. package/mjs/Helpers/flags.mjs.map +1 -0
  200. package/mjs/Helpers/intents.mjs +27 -0
  201. package/mjs/Helpers/intents.mjs.map +1 -0
  202. package/mjs/Helpers/interactions.mjs +104 -0
  203. package/mjs/Helpers/interactions.mjs.map +1 -0
  204. package/mjs/Helpers/members.mjs +9 -0
  205. package/mjs/Helpers/members.mjs.map +1 -0
  206. package/mjs/Helpers/permissions.mjs +82 -0
  207. package/mjs/Helpers/permissions.mjs.map +1 -0
  208. package/mjs/Helpers/ui.mjs +66 -0
  209. package/mjs/Helpers/ui.mjs.map +1 -0
  210. package/mjs/Interactions/builder.mjs +62 -0
  211. package/mjs/Interactions/builder.mjs.map +1 -0
  212. package/mjs/Interactions/context.mjs +63 -0
  213. package/mjs/Interactions/context.mjs.map +1 -0
  214. package/mjs/Interactions/definitions.mjs +51 -0
  215. package/mjs/Interactions/definitions.mjs.map +1 -0
  216. package/mjs/Interactions/gateway.mjs +48 -0
  217. package/mjs/Interactions/gateway.mjs.map +1 -0
  218. package/mjs/Interactions/handlers.mjs +61 -0
  219. package/mjs/Interactions/handlers.mjs.map +1 -0
  220. package/mjs/Interactions/index.mjs +12 -0
  221. package/mjs/Interactions/index.mjs.map +1 -0
  222. package/mjs/Interactions/utils.mjs +35 -0
  223. package/mjs/Interactions/utils.mjs.map +1 -0
  224. package/mjs/Interactions/webhook.mjs +73 -0
  225. package/mjs/Interactions/webhook.mjs.map +1 -0
  226. package/mjs/Log.mjs +15 -0
  227. package/mjs/Log.mjs.map +1 -0
  228. package/mjs/RateLimit/memory.mjs +39 -0
  229. package/mjs/RateLimit/memory.mjs.map +1 -0
  230. package/mjs/RateLimit/utils.mjs +18 -0
  231. package/mjs/RateLimit/utils.mjs.map +1 -0
  232. package/mjs/RateLimit.mjs +29 -0
  233. package/mjs/RateLimit.mjs.map +1 -0
  234. package/mjs/gateway.mjs +27 -0
  235. package/mjs/gateway.mjs.map +1 -0
  236. package/mjs/index.mjs +15 -0
  237. package/mjs/index.mjs.map +1 -0
  238. package/mjs/types.mjs +1211 -0
  239. package/mjs/types.mjs.map +1 -0
  240. package/mjs/utils/Effect.mjs +28 -0
  241. package/mjs/utils/Effect.mjs.map +1 -0
  242. package/mjs/utils/tsplus.mjs +2 -0
  243. package/mjs/utils/tsplus.mjs.map +1 -0
  244. package/mjs/version.mjs +2 -0
  245. package/mjs/version.mjs.map +1 -0
  246. package/mjs/webhooks.mjs +30 -0
  247. package/mjs/webhooks.mjs.map +1 -0
  248. package/package.json +46 -50
  249. package/src/Cache/driver.ts +27 -15
  250. package/src/Cache/memory.ts +9 -5
  251. package/src/Cache/memoryTTL.ts +69 -53
  252. package/src/Cache/prelude.ts +113 -91
  253. package/src/Cache.ts +73 -58
  254. package/src/DiscordConfig.ts +33 -19
  255. package/src/DiscordGateway/DiscordWS.ts +28 -25
  256. package/src/DiscordGateway/Shard/heartbeats.ts +47 -27
  257. package/src/DiscordGateway/Shard/identify.ts +29 -25
  258. package/src/DiscordGateway/Shard/invalidSession.ts +9 -7
  259. package/src/DiscordGateway/Shard/sendEvents.ts +1 -1
  260. package/src/DiscordGateway/Shard/utils.ts +33 -9
  261. package/src/DiscordGateway/Shard.ts +119 -99
  262. package/src/DiscordGateway/ShardStore.ts +12 -5
  263. package/src/DiscordGateway/Sharder.ts +95 -74
  264. package/src/DiscordGateway/WS.ts +85 -60
  265. package/src/DiscordGateway.ts +58 -18
  266. package/src/DiscordREST/types.ts +5 -5
  267. package/src/DiscordREST/utils.ts +10 -7
  268. package/src/DiscordREST.ts +152 -132
  269. package/src/Helpers/intents.ts +1 -0
  270. package/src/Helpers/interactions.ts +51 -38
  271. package/src/Helpers/members.ts +2 -0
  272. package/src/Helpers/permissions.ts +6 -5
  273. package/src/Helpers/ui.ts +1 -1
  274. package/src/Interactions/builder.ts +56 -43
  275. package/src/Interactions/context.ts +68 -38
  276. package/src/Interactions/definitions.ts +32 -24
  277. package/src/Interactions/gateway.ts +72 -47
  278. package/src/Interactions/handlers.ts +56 -39
  279. package/src/Interactions/index.ts +6 -5
  280. package/src/Interactions/utils.ts +32 -21
  281. package/src/Interactions/webhook.ts +78 -42
  282. package/src/Log.ts +4 -0
  283. package/src/RateLimit/memory.ts +10 -4
  284. package/src/RateLimit/utils.ts +1 -1
  285. package/src/RateLimit.ts +38 -25
  286. package/src/gateway.ts +62 -25
  287. package/src/index.ts +29 -15
  288. package/src/utils/Effect.ts +69 -0
  289. package/src/version.ts +1 -0
  290. package/src/webhooks.ts +47 -20
  291. package/tsconfig.base.json +48 -0
  292. package/tsconfig.build.json +10 -0
  293. package/tsconfig.examples.json +11 -0
  294. package/tsconfig.json +12 -8
  295. package/tsconfig.madge.json +12 -0
  296. package/tsconfig.test.json +10 -0
  297. package/types.d.ts.map +1 -1
  298. package/types.js +1216 -1200
  299. package/types.js.map +1 -1
  300. package/utils/Effect.d.ts +8 -0
  301. package/utils/Effect.d.ts.map +1 -0
  302. package/utils/Effect.js +38 -0
  303. package/utils/Effect.js.map +1 -0
  304. package/utils/tsplus.js +5 -1
  305. package/utils/tsplus.js.map +1 -1
  306. package/version.d.ts +2 -0
  307. package/version.d.ts.map +1 -0
  308. package/version.js +9 -0
  309. package/version.js.map +1 -0
  310. package/webhooks.d.ts +14 -9
  311. package/webhooks.d.ts.map +1 -1
  312. package/webhooks.js +76 -27
  313. package/webhooks.js.map +1 -1
  314. package/_common.d.ts +0 -37
  315. package/_common.d.ts.map +0 -1
  316. package/_common.js +0 -8
  317. package/_common.js.map +0 -1
  318. package/global.d.ts +0 -18
  319. package/global.d.ts.map +0 -1
  320. package/global.js +0 -2
  321. package/global.js.map +0 -1
  322. package/src/_common.ts +0 -43
  323. package/src/global.ts +0 -45
  324. package/src/package.json +0 -52
  325. package/src/utils/effect.ts +0 -0
  326. package/src/utils/hub.ts +0 -47
  327. package/tsplus.config.json +0 -8
  328. package/utils/effect.d.ts +0 -2
  329. package/utils/effect.d.ts.map +0 -1
  330. package/utils/effect.js +0 -2
  331. package/utils/effect.js.map +0 -1
  332. package/utils/hub.d.ts +0 -12
  333. package/utils/hub.d.ts.map +0 -1
  334. package/utils/hub.js +0 -26
  335. package/utils/hub.js.map +0 -1
package/index.js CHANGED
@@ -1,14 +1,72 @@
1
- export * as Discord from "./types.js";
2
- export * as DiscordConfig from "./DiscordConfig.js";
3
- export { DiscordREST, LiveDiscordREST } from "./DiscordREST.js";
4
- export * as Ix from "./Interactions/index.js";
5
- export * as Log from "./Log.js";
6
- export { RateLimitStore, LiveMemoryRateLimitStore, RateLimiter, LiveRateLimiter, } from "./RateLimit.js";
7
- export * as Cache from "./Cache.js";
8
- export * as Flags from "./Helpers/flags.js";
9
- export * as Intents from "./Helpers/intents.js";
10
- export * as IxHelpers from "./Helpers/interactions.js";
11
- export * as Members from "./Helpers/members.js";
12
- export * as Perms from "./Helpers/permissions.js";
13
- export * as UI from "./Helpers/ui.js";
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.DiscordConfig = exports.Discord = exports.Cache = void 0;
7
+ Object.defineProperty(exports, "DiscordREST", {
8
+ enumerable: true,
9
+ get: function () {
10
+ return _DiscordREST.DiscordREST;
11
+ }
12
+ });
13
+ exports.IxHelpers = exports.Ix = exports.Intents = exports.Flags = void 0;
14
+ Object.defineProperty(exports, "LiveDiscordREST", {
15
+ enumerable: true,
16
+ get: function () {
17
+ return _DiscordREST.LiveDiscordREST;
18
+ }
19
+ });
20
+ Object.defineProperty(exports, "LiveMemoryRateLimitStore", {
21
+ enumerable: true,
22
+ get: function () {
23
+ return _RateLimit.LiveMemoryRateLimitStore;
24
+ }
25
+ });
26
+ Object.defineProperty(exports, "LiveRateLimiter", {
27
+ enumerable: true,
28
+ get: function () {
29
+ return _RateLimit.LiveRateLimiter;
30
+ }
31
+ });
32
+ exports.Perms = exports.Members = exports.Log = void 0;
33
+ Object.defineProperty(exports, "RateLimitStore", {
34
+ enumerable: true,
35
+ get: function () {
36
+ return _RateLimit.RateLimitStore;
37
+ }
38
+ });
39
+ Object.defineProperty(exports, "RateLimiter", {
40
+ enumerable: true,
41
+ get: function () {
42
+ return _RateLimit.RateLimiter;
43
+ }
44
+ });
45
+ exports.UI = void 0;
46
+ var Cache = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/Cache"));
47
+ exports.Cache = Cache;
48
+ var DiscordConfig = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/DiscordConfig"));
49
+ exports.DiscordConfig = DiscordConfig;
50
+ var Flags = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/Helpers/flags"));
51
+ exports.Flags = Flags;
52
+ var Intents = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/Helpers/intents"));
53
+ exports.Intents = Intents;
54
+ var IxHelpers = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/Helpers/interactions"));
55
+ exports.IxHelpers = IxHelpers;
56
+ var Members = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/Helpers/members"));
57
+ exports.Members = Members;
58
+ var Perms = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/Helpers/permissions"));
59
+ exports.Perms = Perms;
60
+ var UI = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/Helpers/ui"));
61
+ exports.UI = UI;
62
+ var Ix = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/Interactions/index"));
63
+ exports.Ix = Ix;
64
+ var Log = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/Log"));
65
+ exports.Log = Log;
66
+ var Discord = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/types"));
67
+ exports.Discord = Discord;
68
+ var _DiscordREST = /*#__PURE__*/require("dfx/DiscordREST");
69
+ var _RateLimit = /*#__PURE__*/require("dfx/RateLimit");
70
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
71
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
14
72
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,YAAY,CAAA;AACrC,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAC/D,OAAO,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC7C,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,EAEL,cAAc,EACd,wBAAwB,EACxB,WAAW,EACX,eAAe,GAChB,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC,OAAO,KAAK,KAAK,MAAM,oBAAoB,CAAA;AAC3C,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAC/C,OAAO,KAAK,SAAS,MAAM,2BAA2B,CAAA;AACtD,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAC/C,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAA;AACjD,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.js","names":["Cache","_interopRequireWildcard","require","exports","DiscordConfig","Flags","Intents","IxHelpers","Members","Perms","UI","Ix","Log","Discord","_DiscordREST","_RateLimit","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set"],"sources":["./src/index.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,KAAA,gBAAAC,uBAAA,eAAAC,OAAA;AAAkCC,OAAA,CAAAH,KAAA,GAAAA,KAAA;AAClC,IAAAI,aAAA,gBAAAH,uBAAA,eAAAC,OAAA;AAAkDC,OAAA,CAAAC,aAAA,GAAAA,aAAA;AAClD,IAAAC,KAAA,gBAAAJ,uBAAA,eAAAC,OAAA;AAA0CC,OAAA,CAAAE,KAAA,GAAAA,KAAA;AAC1C,IAAAC,OAAA,gBAAAL,uBAAA,eAAAC,OAAA;AAA8CC,OAAA,CAAAG,OAAA,GAAAA,OAAA;AAC9C,IAAAC,SAAA,gBAAAN,uBAAA,eAAAC,OAAA;AAAqDC,OAAA,CAAAI,SAAA,GAAAA,SAAA;AACrD,IAAAC,OAAA,gBAAAP,uBAAA,eAAAC,OAAA;AAA8CC,OAAA,CAAAK,OAAA,GAAAA,OAAA;AAC9C,IAAAC,KAAA,gBAAAR,uBAAA,eAAAC,OAAA;AAAgDC,OAAA,CAAAM,KAAA,GAAAA,KAAA;AAChD,IAAAC,EAAA,gBAAAT,uBAAA,eAAAC,OAAA;AAAoCC,OAAA,CAAAO,EAAA,GAAAA,EAAA;AACpC,IAAAC,EAAA,gBAAAV,uBAAA,eAAAC,OAAA;AAA4CC,OAAA,CAAAQ,EAAA,GAAAA,EAAA;AAC5C,IAAAC,GAAA,gBAAAX,uBAAA,eAAAC,OAAA;AAA8BC,OAAA,CAAAS,GAAA,GAAAA,GAAA;AAC9B,IAAAC,OAAA,gBAAAZ,uBAAA,eAAAC,OAAA;AAAoCC,OAAA,CAAAU,OAAA,GAAAA,OAAA;AAEpC,IAAAC,YAAA,gBAAAZ,OAAA;AACA,IAAAa,UAAA,gBAAAb,OAAA;AAMsB,SAAAc,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAhB,wBAAAoB,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA"}
@@ -0,0 +1,3 @@
1
+ export const createParentDriver = driver => driver;
2
+ export const createDriver = driver => driver;
3
+ //# sourceMappingURL=driver.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"driver.mjs","names":["createParentDriver","driver","createDriver"],"sources":["../../src/Cache/driver.ts"],"sourcesContent":[null],"mappings":"AA8BA,OAAO,MAAMA,kBAAkB,GAAUC,MAA+B,IACtEA,MAAM;AAWR,OAAO,MAAMC,YAAY,GAAUD,MAAyB,IAAKA,MAAM"}
@@ -0,0 +1,48 @@
1
+ import { createDriver, createParentDriver } from "dfx/Cache/driver";
2
+ import * as Effect from "@effect/io/Effect";
3
+ import * as Option from "@effect/data/Option";
4
+ export const createWithParent = () => Effect.sync(() => {
5
+ const map = new Map();
6
+ return createParentDriver({
7
+ size: Effect.sync(() => {
8
+ let count = 0;
9
+ for (const a of map.values()) {
10
+ count += a.size;
11
+ }
12
+ return count;
13
+ }),
14
+ sizeForParent: parentId => Effect.sync(() => map.get(parentId)?.size ?? 0),
15
+ get: (parentId, resourceId) => Effect.sync(() => Option.fromNullable(map.get(parentId)?.get(resourceId))),
16
+ getForParent: parentId => Effect.sync(() => Option.fromNullable(map.get(parentId))),
17
+ set: (parentId, resourceId, resource) => Effect.sync(() => {
18
+ if (!map.has(parentId)) {
19
+ map.set(parentId, new Map());
20
+ }
21
+ map.get(parentId).set(resourceId, resource);
22
+ }),
23
+ delete: (parentId, resourceId) => Effect.sync(() => {
24
+ map.get(parentId)?.delete(resourceId);
25
+ }),
26
+ parentDelete: parentId => Effect.sync(() => {
27
+ map.delete(parentId);
28
+ }),
29
+ refreshTTL: () => Effect.unit,
30
+ run: Effect.never
31
+ });
32
+ });
33
+ export const create = () => Effect.sync(() => {
34
+ const map = new Map();
35
+ return createDriver({
36
+ size: Effect.sync(() => map.size),
37
+ get: resourceId => Effect.sync(() => Option.fromNullable(map.get(resourceId))),
38
+ set: (resourceId, resource) => Effect.sync(() => {
39
+ map.set(resourceId, resource);
40
+ }),
41
+ delete: resourceId => Effect.sync(() => {
42
+ map.delete(resourceId);
43
+ }),
44
+ refreshTTL: () => Effect.unit,
45
+ run: Effect.never
46
+ });
47
+ });
48
+ //# sourceMappingURL=memory.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.mjs","names":["createDriver","createParentDriver","Effect","Option","createWithParent","sync","map","Map","size","count","a","values","sizeForParent","parentId","get","resourceId","fromNullable","getForParent","set","resource","has","delete","parentDelete","refreshTTL","unit","run","never","create"],"sources":["../../src/Cache/memory.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -0,0 +1,119 @@
1
+ import * as Duration from "@effect/data/Duration";
2
+ import * as Option from "@effect/data/Option";
3
+ import * as ReadonlyArray from "@effect/data/ReadonlyArray";
4
+ import * as Effect from "@effect/io/Effect";
5
+ import { createDriver, createParentDriver } from "dfx/Cache/driver";
6
+ const make = ({
7
+ resolution = Duration.minutes(1),
8
+ strategy = "usage",
9
+ ttl
10
+ }) => {
11
+ const resolutionMs = Duration.toMillis(resolution);
12
+ const additionalMilliseconds = (Math.floor(Duration.toMillis(ttl) / resolutionMs) + 1) * resolutionMs;
13
+ const items = new Map();
14
+ const buckets = [];
15
+ const refreshTTL = item => {
16
+ const now = Date.now();
17
+ const remainder = now % resolutionMs;
18
+ const expires = now - remainder + additionalMilliseconds;
19
+ let currentBucket = buckets[buckets.length - 1];
20
+ if ((currentBucket?.expires || 0) < expires) {
21
+ currentBucket = {
22
+ expires,
23
+ items: []
24
+ };
25
+ buckets.push(currentBucket);
26
+ }
27
+ currentBucket.items.push(item);
28
+ };
29
+ const sweep = () => {
30
+ const now = Date.now();
31
+ const remainder = now % resolutionMs;
32
+ const currentExpires = now - remainder;
33
+ while (buckets.length && buckets[0].expires <= currentExpires) {
34
+ buckets.shift();
35
+ }
36
+ if (global.gc) {
37
+ global.gc();
38
+ }
39
+ };
40
+ const getSync = resourceId => {
41
+ const ref = items.get(resourceId);
42
+ if (!ref) return undefined;
43
+ const item = ref.deref();
44
+ if (!item) {
45
+ items.delete(resourceId);
46
+ return undefined;
47
+ }
48
+ if (strategy !== "expiry") {
49
+ refreshTTL(item);
50
+ }
51
+ return item.resource;
52
+ };
53
+ return createDriver({
54
+ size: Effect.sync(() => items.size),
55
+ get: resourceId => Effect.sync(() => Option.fromNullable(getSync(resourceId))),
56
+ refreshTTL: id => Effect.sync(() => {
57
+ getSync(id);
58
+ }),
59
+ set: (resourceId, resource) => Effect.sync(() => {
60
+ const item = items.get(resourceId)?.deref();
61
+ if (item && strategy !== "activity") {
62
+ item.resource = resource;
63
+ } else {
64
+ const newItem = {
65
+ resource
66
+ };
67
+ refreshTTL(newItem);
68
+ items.set(resourceId, new WeakRef(newItem));
69
+ }
70
+ }),
71
+ delete: resourceId => Effect.sync(() => {
72
+ items.delete(resourceId);
73
+ }),
74
+ run: Effect.sync(sweep).pipe(Effect.delay(Duration.times(resolution, 0.5)), Effect.forever)
75
+ });
76
+ };
77
+ export const create = opts => Effect.sync(() => make(opts));
78
+ export const createWithParent = opts => Effect.sync(() => {
79
+ const store = make(opts);
80
+ const parentIds = new Map();
81
+ return createParentDriver({
82
+ size: store.size,
83
+ sizeForParent: parentId => Effect.sync(() => parentIds.get(parentId)?.size ?? 0),
84
+ refreshTTL: (_, id) => store.refreshTTL(id),
85
+ get: (_, id) => store.get(id),
86
+ getForParent: parentId => Option.fromNullable(parentIds.get(parentId)).pipe(Effect.flatMap(ids => Effect.forEach(ids, id => store.get(id).pipe(Effect.tap(item => Effect.sync(() => {
87
+ if (item._tag === "None") {
88
+ ids.delete(id);
89
+ }
90
+ })), Effect.map(item => [id, item])), {
91
+ concurrency: "unbounded"
92
+ })), Effect.map(ReadonlyArray.reduce(new Map(), (acc, [id, item]) => item._tag === "Some" ? acc.set(id, item.value) : acc)), Effect.option),
93
+ set: (parentId, resourceId, resource) => Effect.zipRight(store.set(resourceId, resource), Effect.sync(() => {
94
+ if (!parentIds.has(parentId)) {
95
+ parentIds.set(parentId, new Set());
96
+ }
97
+ parentIds.get(parentId).add(resourceId);
98
+ })),
99
+ delete: (parentId, resourceId) => Effect.zipRight(store.delete(resourceId), Effect.sync(() => {
100
+ parentIds.get(parentId)?.delete(resourceId);
101
+ })),
102
+ parentDelete: parentId => Effect.suspend(() => {
103
+ const ids = parentIds.get(parentId);
104
+ parentIds.delete(parentId);
105
+ const effects = [];
106
+ if (ids) {
107
+ ids.forEach(id => {
108
+ effects.push(store.delete(id));
109
+ });
110
+ }
111
+ return Effect.all(effects, {
112
+ concurrency: "unbounded",
113
+ discard: true
114
+ });
115
+ }),
116
+ run: store.run
117
+ });
118
+ });
119
+ //# sourceMappingURL=memoryTTL.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memoryTTL.mjs","names":["Duration","Option","ReadonlyArray","Effect","createDriver","createParentDriver","make","resolution","minutes","strategy","ttl","resolutionMs","toMillis","additionalMilliseconds","Math","floor","items","Map","buckets","refreshTTL","item","now","Date","remainder","expires","currentBucket","length","push","sweep","currentExpires","shift","global","gc","getSync","resourceId","ref","get","undefined","deref","delete","resource","size","sync","fromNullable","id","set","newItem","WeakRef","run","pipe","delay","times","forever","create","opts","createWithParent","store","parentIds","sizeForParent","parentId","_","getForParent","flatMap","ids","forEach","tap","_tag","map","concurrency","reduce","acc","value","option","zipRight","has","Set","add","parentDelete","suspend","effects","all","discard"],"sources":["../../src/Cache/memoryTTL.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -0,0 +1,125 @@
1
+ import * as Effect from "@effect/io/Effect";
2
+ import * as Stream from "@effect/stream/Stream";
3
+ import { DiscordREST } from "dfx";
4
+ import { CacheMissError, make, makeWithParent } from "dfx/Cache";
5
+ import { DiscordGateway } from "dfx/DiscordGateway";
6
+ export const opsWithParent = ({
7
+ create,
8
+ fromParent,
9
+ id,
10
+ parentRemove,
11
+ remove,
12
+ update
13
+ }) => {
14
+ const fromParentOps = Stream.flatMap(fromParent, ([parentId, a]) => Stream.fromIterable(a.map(resource => ({
15
+ op: "create",
16
+ parentId,
17
+ resourceId: id(resource),
18
+ resource
19
+ }))));
20
+ const createOps = Stream.map(create, ([parentId, resource]) => ({
21
+ op: "create",
22
+ parentId,
23
+ resourceId: id(resource),
24
+ resource
25
+ }));
26
+ const updateOps = Stream.map(update, ([parentId, resource]) => ({
27
+ op: "update",
28
+ parentId,
29
+ resourceId: id(resource),
30
+ resource
31
+ }));
32
+ const removeOps = Stream.map(remove, ([parentId, resourceId]) => ({
33
+ op: "delete",
34
+ parentId,
35
+ resourceId
36
+ }));
37
+ const parentRemoveOps = Stream.map(parentRemove, parentId => ({
38
+ op: "parentDelete",
39
+ parentId
40
+ }));
41
+ return Stream.merge(fromParentOps, createOps).pipe(Stream.merge(updateOps), Stream.merge(removeOps), Stream.merge(parentRemoveOps));
42
+ };
43
+ export const ops = ({
44
+ create,
45
+ id,
46
+ remove,
47
+ update
48
+ }) => {
49
+ const createOps = Stream.map(create, resource => ({
50
+ op: "create",
51
+ resourceId: id(resource),
52
+ resource
53
+ }));
54
+ const updateOps = Stream.map(update, resource => ({
55
+ op: "update",
56
+ resourceId: id(resource),
57
+ resource
58
+ }));
59
+ const removeOps = Stream.map(remove, resourceId => ({
60
+ op: "delete",
61
+ resourceId
62
+ }));
63
+ return Stream.merge(createOps, updateOps).pipe(Stream.merge(removeOps));
64
+ };
65
+ export const guilds = makeDriver => Effect.gen(function* (_) {
66
+ const driver = yield* _(makeDriver);
67
+ const gateway = yield* _(DiscordGateway);
68
+ const rest = yield* _(DiscordREST);
69
+ return make({
70
+ driver,
71
+ id: _ => _.id,
72
+ ops: ops({
73
+ id: g => g.id,
74
+ create: Stream.map(gateway.fromDispatch("GUILD_CREATE"), g => ({
75
+ ...g,
76
+ channels: [],
77
+ roles: [],
78
+ emojis: [],
79
+ members: []
80
+ })),
81
+ update: gateway.fromDispatch("GUILD_UPDATE"),
82
+ remove: Stream.map(gateway.fromDispatch("GUILD_DELETE"), a => a.id)
83
+ }),
84
+ onMiss: id => Effect.flatMap(rest.getGuild(id), r => r.json)
85
+ });
86
+ });
87
+ export const channels = makeDriver => Effect.gen(function* (_) {
88
+ const driver = yield* _(makeDriver);
89
+ const gateway = yield* _(DiscordGateway);
90
+ const rest = yield* _(DiscordREST);
91
+ return makeWithParent({
92
+ driver,
93
+ id: _ => Effect.succeed([_.guild_id, _.id]),
94
+ ops: opsWithParent({
95
+ id: a => a.id,
96
+ fromParent: Stream.map(gateway.fromDispatch("GUILD_CREATE"), g => [g.id, g.channels.concat(g.threads)]),
97
+ create: Stream.merge(gateway.fromDispatch("CHANNEL_CREATE"), gateway.fromDispatch("THREAD_CREATE")).pipe(Stream.map(c => [c.guild_id, c])),
98
+ update: Stream.merge(gateway.fromDispatch("CHANNEL_UPDATE"), gateway.fromDispatch("THREAD_UPDATE")).pipe(Stream.map(c => [c.guild_id, c])),
99
+ remove: Stream.merge(gateway.fromDispatch("CHANNEL_DELETE"), gateway.fromDispatch("THREAD_DELETE")).pipe(Stream.map(a => [a.guild_id, a.id])),
100
+ parentRemove: Stream.map(gateway.fromDispatch("GUILD_DELETE"), g => g.id)
101
+ }),
102
+ onMiss: (_, id) => Effect.flatMap(rest.getChannel(id), r => r.json),
103
+ onParentMiss: guildId => rest.getGuildChannels(guildId).pipe(Effect.flatMap(r => r.json), Effect.map(a => a.map(a => [a.id, a])))
104
+ });
105
+ });
106
+ export const roles = makeDriver => Effect.gen(function* (_) {
107
+ const driver = yield* _(makeDriver);
108
+ const gateway = yield* _(DiscordGateway);
109
+ const rest = yield* _(DiscordREST);
110
+ return makeWithParent({
111
+ driver,
112
+ id: _ => Effect.fail(new CacheMissError("RolesCache/id", _.id)),
113
+ ops: opsWithParent({
114
+ id: a => a.id,
115
+ fromParent: Stream.map(gateway.fromDispatch("GUILD_CREATE"), g => [g.id, g.roles]),
116
+ create: Stream.map(gateway.fromDispatch("GUILD_ROLE_CREATE"), r => [r.guild_id, r.role]),
117
+ update: Stream.map(gateway.fromDispatch("GUILD_ROLE_UPDATE"), r => [r.guild_id, r.role]),
118
+ remove: Stream.map(gateway.fromDispatch("GUILD_ROLE_DELETE"), r => [r.guild_id, r.role_id]),
119
+ parentRemove: Stream.map(gateway.fromDispatch("GUILD_DELETE"), g => g.id)
120
+ }),
121
+ onMiss: (_, id) => Effect.fail(new CacheMissError("RolesCache", id)),
122
+ onParentMiss: guildId => rest.getGuildRoles(guildId).pipe(Effect.flatMap(r => r.json), Effect.map(_ => _.map(role => [role.id, role])))
123
+ });
124
+ });
125
+ //# sourceMappingURL=prelude.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prelude.mjs","names":["Effect","Stream","DiscordREST","CacheMissError","make","makeWithParent","DiscordGateway","opsWithParent","create","fromParent","id","parentRemove","remove","update","fromParentOps","flatMap","parentId","a","fromIterable","map","resource","op","resourceId","createOps","updateOps","removeOps","parentRemoveOps","merge","pipe","ops","guilds","makeDriver","gen","_","driver","gateway","rest","g","fromDispatch","channels","roles","emojis","members","onMiss","getGuild","r","json","succeed","guild_id","concat","threads","c","getChannel","onParentMiss","guildId","getGuildChannels","fail","role","role_id","getGuildRoles"],"sources":["../../src/Cache/prelude.ts"],"sourcesContent":[null],"mappings":"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"}
package/mjs/Cache.mjs ADDED
@@ -0,0 +1,87 @@
1
+ import * as Effect from "@effect/io/Effect";
2
+ import * as Option from "@effect/data/Option";
3
+ import * as Stream from "@effect/stream/Stream";
4
+ export * from "dfx/Cache/driver";
5
+ export { create as memoryDriver, createWithParent as memoryParentDriver } from "dfx/Cache/memory";
6
+ export { create as memoryTTLDriver, createWithParent as memoryTTLParentDriver } from "dfx/Cache/memoryTTL";
7
+ export const makeWithParent = ({
8
+ driver,
9
+ id,
10
+ onMiss,
11
+ onParentMiss,
12
+ ops = Stream.empty
13
+ }) => {
14
+ const sync = Stream.runDrain(Stream.tap(ops, op => {
15
+ switch (op.op) {
16
+ case "create":
17
+ case "update":
18
+ return driver.set(op.parentId, op.resourceId, op.resource);
19
+ case "delete":
20
+ return driver.delete(op.parentId, op.resourceId);
21
+ case "parentDelete":
22
+ return driver.parentDelete(op.parentId);
23
+ }
24
+ }));
25
+ const get = (parentId, id) => Effect.flatMap(driver.get(parentId, id), Option.match({
26
+ onNone: () => Effect.tap(onMiss(parentId, id), a => driver.set(parentId, id, a)),
27
+ onSome: Effect.succeed
28
+ }));
29
+ const put = _ => Effect.flatMap(id(_), ([parentId, id]) => driver.set(parentId, id, _));
30
+ const update = (parentId, id, f) => get(parentId, id).pipe(Effect.flatMap(f), Effect.tap(_ => driver.set(parentId, id, _)));
31
+ return {
32
+ ...driver,
33
+ get,
34
+ put,
35
+ update,
36
+ getForParent: parentId => Effect.flatMap(driver.getForParent(parentId), Option.match({
37
+ onNone: () => onParentMiss(parentId).pipe(Effect.tap(entries => Effect.all(entries.map(([id, a]) => driver.set(parentId, id, a)), {
38
+ concurrency: "unbounded"
39
+ })), Effect.map(entries => new Map(entries))),
40
+ onSome: Effect.succeed
41
+ })),
42
+ run: Effect.zipRight(sync, driver.run, {
43
+ parallel: true
44
+ })
45
+ };
46
+ };
47
+ export const make = ({
48
+ driver,
49
+ id,
50
+ onMiss,
51
+ ops = Stream.empty
52
+ }) => {
53
+ const sync = Stream.runDrain(Stream.tap(ops, op => {
54
+ switch (op.op) {
55
+ case "create":
56
+ case "update":
57
+ return driver.set(op.resourceId, op.resource);
58
+ case "delete":
59
+ return driver.delete(op.resourceId);
60
+ }
61
+ }));
62
+ const get = id => Effect.flatMap(driver.get(id), Option.match({
63
+ onNone: () => Effect.tap(onMiss(id), a => driver.set(id, a)),
64
+ onSome: Effect.succeed
65
+ }));
66
+ const put = _ => driver.set(id(_), _);
67
+ const update = (id, f) => get(id).pipe(Effect.flatMap(f), Effect.tap(_ => driver.set(id, _)));
68
+ return {
69
+ ...driver,
70
+ get,
71
+ put,
72
+ update,
73
+ run: Effect.zipRight(sync, driver.run, {
74
+ parallel: true
75
+ })
76
+ };
77
+ };
78
+ export class CacheMissError {
79
+ cacheName;
80
+ id;
81
+ _tag = "CacheMissError";
82
+ constructor(cacheName, id) {
83
+ this.cacheName = cacheName;
84
+ this.id = id;
85
+ }
86
+ }
87
+ //# sourceMappingURL=Cache.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cache.mjs","names":["Effect","Option","Stream","create","memoryDriver","createWithParent","memoryParentDriver","memoryTTLDriver","memoryTTLParentDriver","makeWithParent","driver","id","onMiss","onParentMiss","ops","empty","sync","runDrain","tap","op","set","parentId","resourceId","resource","delete","parentDelete","get","flatMap","match","onNone","a","onSome","succeed","put","_","update","f","pipe","getForParent","entries","all","map","concurrency","Map","run","zipRight","parallel","make","CacheMissError","cacheName","_tag","constructor"],"sources":["../src/Cache.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import { Tag } from "@effect/data/Context";
2
+ import * as Duration from "@effect/data/Duration";
3
+ import * as Config from "@effect/io/Config";
4
+ import * as Effect from "@effect/io/Effect";
5
+ import * as Layer from "@effect/io/Layer";
6
+ import * as Discord from "dfx/types";
7
+ const VERSION = 10;
8
+ export const DiscordConfig = /*#__PURE__*/Tag();
9
+ export const make = ({
10
+ token,
11
+ debug = false,
12
+ rest,
13
+ gateway
14
+ }) => ({
15
+ token,
16
+ debug,
17
+ rest: {
18
+ baseUrl: `https://discord.com/api/v${VERSION}`,
19
+ ...(rest ?? {}),
20
+ globalRateLimit: {
21
+ limit: 50,
22
+ window: Duration.seconds(1),
23
+ ...(rest?.globalRateLimit ?? {})
24
+ }
25
+ },
26
+ gateway: {
27
+ intents: Discord.GatewayIntents.GUILDS,
28
+ identifyRateLimit: [5000, 1],
29
+ ...(gateway ?? {})
30
+ }
31
+ });
32
+ export const makeLayer = opts => Layer.succeed(DiscordConfig, make(opts));
33
+ export const makeFromConfig = _ => Layer.effect(DiscordConfig, Effect.map(Effect.config(Config.unwrap(_)), make));
34
+ //# sourceMappingURL=DiscordConfig.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DiscordConfig.mjs","names":["Tag","Duration","Config","Effect","Layer","Discord","VERSION","DiscordConfig","make","token","debug","rest","gateway","baseUrl","globalRateLimit","limit","window","seconds","intents","GatewayIntents","GUILDS","identifyRateLimit","makeLayer","opts","succeed","makeFromConfig","_","effect","map","config","unwrap"],"sources":["../src/DiscordConfig.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAG,QAAQ,sBAAsB;AAC1C,OAAO,KAAKC,QAAQ,MAAM,uBAAuB;AACjD,OAAO,KAAKC,MAAM,MAAM,mBAAmB;AAG3C,OAAO,KAAKC,MAAM,MAAM,mBAAmB;AAC3C,OAAO,KAAKC,KAAK,MAAM,kBAAkB;AACzC,OAAO,KAAKC,OAAO,MAAM,WAAW;AAEpC,MAAMC,OAAO,GAAG,EAAE;AAoBlB,OAAO,MAAMC,aAAa,gBAAGP,GAAG,EAAiB;AASjD,OAAO,MAAMQ,IAAI,GAAGA,CAAC;EACnBC,KAAK;EACLC,KAAK,GAAG,KAAK;EACbC,IAAI;EACJC;AAAO,CACE,MAAqB;EAC9BH,KAAK;EACLC,KAAK;EACLC,IAAI,EAAE;IACJE,OAAO,EAAE,4BAA4BP,OAAO,EAAE;IAC9C,IAAIK,IAAI,IAAI,EAAE,CAAC;IACfG,eAAe,EAAE;MACfC,KAAK,EAAE,EAAE;MACTC,MAAM,EAAEf,QAAQ,CAACgB,OAAO,CAAC,CAAC,CAAC;MAC3B,IAAIN,IAAI,EAAEG,eAAe,IAAI,EAAE;;GAElC;EACDF,OAAO,EAAE;IACPM,OAAO,EAAEb,OAAO,CAACc,cAAc,CAACC,MAAM;IACtCC,iBAAiB,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5B,IAAIT,OAAO,IAAI,EAAE;;CAEpB,CAAC;AAEF,OAAO,MAAMU,SAAS,GACpBC,IAAc,IAEdnB,KAAK,CAACoB,OAAO,CAACjB,aAAa,EAAEC,IAAI,CAACe,IAAI,CAAC,CAAC;AAE1C,OAAO,MAAME,cAAc,GACzBC,CAA+B,IAE/BtB,KAAK,CAACuB,MAAM,CAACpB,aAAa,EAAEJ,MAAM,CAACyB,GAAG,CAACzB,MAAM,CAAC0B,MAAM,CAAC3B,MAAM,CAAC4B,MAAM,CAACJ,CAAC,CAAC,CAAC,EAAElB,IAAI,CAAC,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { LiveWS, Reconnect, WS } from "dfx/DiscordGateway/WS";
2
+ import * as Effect from "@effect/io/Effect";
3
+ import * as Layer from "@effect/io/Layer";
4
+ import { Tag } from "@effect/data/Context";
5
+ import * as Ref from "@effect/io/Ref";
6
+ export const DiscordWSCodec = /*#__PURE__*/Tag();
7
+ export const LiveJsonDiscordWSCodec = /*#__PURE__*/Layer.succeed(DiscordWSCodec, {
8
+ type: "json",
9
+ encode: p => JSON.stringify(p),
10
+ decode: p => JSON.parse(p.toString("utf8"))
11
+ });
12
+ const make = /*#__PURE__*/Effect.gen(function* (_) {
13
+ const ws = yield* _(WS);
14
+ const encoding = yield* _(DiscordWSCodec);
15
+ const connect = ({
16
+ url = "wss://gateway.discord.gg/",
17
+ version = 10,
18
+ outbound,
19
+ onConnecting
20
+ }) => Effect.gen(function* (_) {
21
+ const urlRef = yield* _(Ref.make(`${url}?v=${version}&encoding=${encoding.type}`));
22
+ const setUrl = url => Ref.set(urlRef, `${url}?v=${version}&encoding=${encoding.type}`);
23
+ const takeOutbound = Effect.map(outbound, msg => msg === Reconnect ? msg : encoding.encode(msg));
24
+ const socket = yield* _(ws.connect(urlRef, takeOutbound, onConnecting));
25
+ const take = Effect.map(socket.take, encoding.decode);
26
+ const run = Effect.retryWhile(socket.run, e => e._tag === "WebSocketCloseError" && e.code < 2000 || e._tag === "WebSocketError" && e.reason === "open-timeout");
27
+ return {
28
+ run,
29
+ take,
30
+ setUrl
31
+ };
32
+ });
33
+ return {
34
+ connect
35
+ };
36
+ });
37
+ export const DiscordWS = /*#__PURE__*/Tag();
38
+ export const LiveDiscordWS = /*#__PURE__*/Layer.provide(LiveWS, /*#__PURE__*/Layer.effect(DiscordWS, make));
39
+ //# sourceMappingURL=DiscordWS.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DiscordWS.mjs","names":["LiveWS","Reconnect","WS","Effect","Layer","Tag","Ref","DiscordWSCodec","LiveJsonDiscordWSCodec","succeed","type","encode","p","JSON","stringify","decode","parse","toString","make","gen","_","ws","encoding","connect","url","version","outbound","onConnecting","urlRef","setUrl","set","takeOutbound","map","msg","socket","take","run","retryWhile","e","_tag","code","reason","DiscordWS","LiveDiscordWS","provide","effect"],"sources":["../../src/DiscordGateway/DiscordWS.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAM,EAAEC,SAAS,EAAEC,EAAE,QAAQ,uBAAuB;AAG7D,OAAO,KAAKC,MAAM,MAAM,mBAAmB;AAC3C,OAAO,KAAKC,KAAK,MAAM,kBAAkB;AACzC,SAASC,GAAG,QAAQ,sBAAsB;AAC1C,OAAO,KAAKC,GAAG,MAAM,gBAAgB;AAiBrC,OAAO,MAAMC,cAAc,gBAAGF,GAAG,EAAkB;AACnD,OAAO,MAAMG,sBAAsB,gBAAGJ,KAAK,CAACK,OAAO,CAACF,cAAc,EAAE;EAClEG,IAAI,EAAE,MAAM;EACZC,MAAM,EAAEC,CAAC,IAAIC,IAAI,CAACC,SAAS,CAACF,CAAC,CAAC;EAC9BG,MAAM,EAAEH,CAAC,IAAIC,IAAI,CAACG,KAAK,CAACJ,CAAC,CAACK,QAAQ,CAAC,MAAM,CAAC;CAC3C,CAAC;AAEF,MAAMC,IAAI,gBAAGf,MAAM,CAACgB,GAAG,CAAC,WAAWC,CAAC;EAClC,MAAMC,EAAE,GAAG,OAAOD,CAAC,CAAClB,EAAE,CAAC;EACvB,MAAMoB,QAAQ,GAAG,OAAOF,CAAC,CAACb,cAAc,CAAC;EAEzC,MAAMgB,OAAO,GAAGA,CAAC;IACfC,GAAG,GAAG,2BAA2B;IACjCC,OAAO,GAAG,EAAE;IACZC,QAAQ;IACRC;EAAY,CACH,KACTxB,MAAM,CAACgB,GAAG,CAAC,WAAWC,CAAC;IACrB,MAAMQ,MAAM,GAAG,OAAOR,CAAC,CACrBd,GAAG,CAACY,IAAI,CAAC,GAAGM,GAAG,MAAMC,OAAO,aAAaH,QAAQ,CAACZ,IAAI,EAAE,CAAC,CAC1D;IACD,MAAMmB,MAAM,GAAIL,GAAW,IACzBlB,GAAG,CAACwB,GAAG,CAACF,MAAM,EAAE,GAAGJ,GAAG,MAAMC,OAAO,aAAaH,QAAQ,CAACZ,IAAI,EAAE,CAAC;IAClE,MAAMqB,YAAY,GAAG5B,MAAM,CAAC6B,GAAG,CAACN,QAAQ,EAAEO,GAAG,IAC3CA,GAAG,KAAKhC,SAAS,GAAGgC,GAAG,GAAGX,QAAQ,CAACX,MAAM,CAACsB,GAAG,CAAC,CAC/C;IACD,MAAMC,MAAM,GAAG,OAAOd,CAAC,CAACC,EAAE,CAACE,OAAO,CAACK,MAAM,EAAEG,YAAY,EAAEJ,YAAY,CAAC,CAAC;IACvE,MAAMQ,IAAI,GAAGhC,MAAM,CAAC6B,GAAG,CAACE,MAAM,CAACC,IAAI,EAAEb,QAAQ,CAACP,MAAM,CAAC;IAErD,MAAMqB,GAAG,GAAGjC,MAAM,CAACkC,UAAU,CAC3BH,MAAM,CAACE,GAAG,EACVE,CAAC,IACEA,CAAC,CAACC,IAAI,KAAK,qBAAqB,IAAID,CAAC,CAACE,IAAI,GAAG,IAAI,IACjDF,CAAC,CAACC,IAAI,KAAK,gBAAgB,IAAID,CAAC,CAACG,MAAM,KAAK,cAAe,CAC/D;IAED,OAAO;MACLL,GAAG;MACHD,IAAI;MACJN;KACQ;EACZ,CAAC,CAAC;EAEJ,OAAO;IAAEN;EAAO,CAAW;AAC7B,CAAC,CAAC;AAGF,OAAO,MAAMmB,SAAS,gBAAGrC,GAAG,EAAa;AACzC,OAAO,MAAMsC,aAAa,gBAAGvC,KAAK,CAACwC,OAAO,CACxC5C,MAAM,eACNI,KAAK,CAACyC,MAAM,CAACH,SAAS,EAAExB,IAAI,CAAC,CAC9B"}