dfx 1.0.2 → 1.0.4

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/Cache/driver.d.ts +24 -0
  2. package/Cache/driver.d.ts.map +1 -0
  3. package/Cache/driver.js +11 -0
  4. package/Cache/driver.js.map +1 -0
  5. package/Cache/memory.d.ts +5 -0
  6. package/Cache/memory.d.ts.map +1 -0
  7. package/Cache/memory.js +57 -0
  8. package/Cache/memory.js.map +1 -0
  9. package/Cache/memoryTTL.d.ts +23 -0
  10. package/Cache/memoryTTL.d.ts.map +1 -0
  11. package/Cache/memoryTTL.js +128 -0
  12. package/Cache/memoryTTL.js.map +1 -0
  13. package/Cache/prelude.d.ts +32 -0
  14. package/Cache/prelude.d.ts.map +1 -0
  15. package/Cache/prelude.js +143 -0
  16. package/Cache/prelude.js.map +1 -0
  17. package/Cache.d.ts +81 -0
  18. package/Cache.d.ts.map +1 -0
  19. package/Cache.js +145 -0
  20. package/Cache.js.map +1 -0
  21. package/DiscordConfig.d.ts +35 -0
  22. package/DiscordConfig.d.ts.map +1 -0
  23. package/DiscordConfig.js +43 -0
  24. package/DiscordConfig.js.map +1 -0
  25. package/DiscordGateway/DiscordWS.d.ts +37 -0
  26. package/DiscordGateway/DiscordWS.d.ts.map +1 -0
  27. package/DiscordGateway/DiscordWS.js +86 -0
  28. package/DiscordGateway/DiscordWS.js.map +1 -0
  29. package/DiscordGateway/Messaging.d.ts +587 -0
  30. package/DiscordGateway/Messaging.d.ts.map +1 -0
  31. package/DiscordGateway/Messaging.js +43 -0
  32. package/DiscordGateway/Messaging.js.map +1 -0
  33. package/DiscordGateway/Shard/StateStore.d.ts +24 -0
  34. package/DiscordGateway/Shard/StateStore.d.ts.map +1 -0
  35. package/DiscordGateway/Shard/StateStore.js +49 -0
  36. package/DiscordGateway/Shard/StateStore.js.map +1 -0
  37. package/DiscordGateway/Shard/heartbeats.d.ts +8 -0
  38. package/DiscordGateway/Shard/heartbeats.d.ts.map +1 -0
  39. package/DiscordGateway/Shard/heartbeats.js +33 -0
  40. package/DiscordGateway/Shard/heartbeats.js.map +1 -0
  41. package/DiscordGateway/Shard/identify.d.ts +12 -0
  42. package/DiscordGateway/Shard/identify.d.ts.map +1 -0
  43. package/DiscordGateway/Shard/identify.js +37 -0
  44. package/DiscordGateway/Shard/identify.js.map +1 -0
  45. package/DiscordGateway/Shard/sendEvents.d.ts +8 -0
  46. package/DiscordGateway/Shard/sendEvents.d.ts.map +1 -0
  47. package/DiscordGateway/Shard/sendEvents.js +39 -0
  48. package/DiscordGateway/Shard/sendEvents.js.map +1 -0
  49. package/DiscordGateway/Shard/utils.d.ts +6 -0
  50. package/DiscordGateway/Shard/utils.d.ts.map +1 -0
  51. package/DiscordGateway/Shard/utils.js +11 -0
  52. package/DiscordGateway/Shard/utils.js.map +1 -0
  53. package/DiscordGateway/Shard.d.ts +29 -0
  54. package/DiscordGateway/Shard.d.ts.map +1 -0
  55. package/DiscordGateway/Shard.js +155 -0
  56. package/DiscordGateway/Shard.js.map +1 -0
  57. package/DiscordGateway/ShardStore.d.ts +19 -0
  58. package/DiscordGateway/ShardStore.d.ts.map +1 -0
  59. package/DiscordGateway/ShardStore.js +32 -0
  60. package/DiscordGateway/ShardStore.js.map +1 -0
  61. package/DiscordGateway/Sharder.d.ts +14 -0
  62. package/DiscordGateway/Sharder.d.ts.map +1 -0
  63. package/DiscordGateway/Sharder.js +75 -0
  64. package/DiscordGateway/Sharder.js.map +1 -0
  65. package/DiscordGateway.d.ts +33 -0
  66. package/DiscordGateway.d.ts.map +1 -0
  67. package/DiscordGateway.js +28 -0
  68. package/DiscordGateway.js.map +1 -0
  69. package/DiscordREST/Generated.d.ts +5577 -0
  70. package/DiscordREST/Generated.d.ts.map +1 -0
  71. package/DiscordREST/Generated.js +2480 -0
  72. package/DiscordREST/Generated.js.map +1 -0
  73. package/DiscordREST/utils.d.ts +14 -0
  74. package/DiscordREST/utils.d.ts.map +1 -0
  75. package/DiscordREST/utils.js +32 -0
  76. package/DiscordREST/utils.js.map +1 -0
  77. package/DiscordREST.d.ts +22 -0
  78. package/DiscordREST.d.ts.map +1 -0
  79. package/DiscordREST.js +128 -0
  80. package/DiscordREST.js.map +1 -0
  81. package/Helpers/flags.d.ts +28 -0
  82. package/Helpers/flags.d.ts.map +1 -0
  83. package/Helpers/flags.js +57 -0
  84. package/Helpers/flags.js.map +1 -0
  85. package/Helpers/intents.d.ts +25 -0
  86. package/Helpers/intents.d.ts.map +1 -0
  87. package/Helpers/intents.js +34 -0
  88. package/Helpers/intents.js.map +1 -0
  89. package/Helpers/interactions.d.ts +116 -0
  90. package/Helpers/interactions.d.ts.map +1 -0
  91. package/Helpers/interactions.js +143 -0
  92. package/Helpers/interactions.js.map +1 -0
  93. package/Helpers/members.d.ts +10 -0
  94. package/Helpers/members.d.ts.map +1 -0
  95. package/Helpers/members.js +17 -0
  96. package/Helpers/members.js.map +1 -0
  97. package/Helpers/permissions.d.ts +42 -0
  98. package/Helpers/permissions.d.ts.map +1 -0
  99. package/Helpers/permissions.js +97 -0
  100. package/Helpers/permissions.js.map +1 -0
  101. package/Helpers/ui.d.ts +105 -0
  102. package/Helpers/ui.d.ts.map +1 -0
  103. package/Helpers/ui.js +162 -0
  104. package/Helpers/ui.js.map +1 -0
  105. package/Interactions/builder.d.ts +48 -0
  106. package/Interactions/builder.d.ts.map +1 -0
  107. package/Interactions/builder.js +64 -0
  108. package/Interactions/builder.js.map +1 -0
  109. package/Interactions/commandHelper.d.ts +83 -0
  110. package/Interactions/commandHelper.d.ts.map +1 -0
  111. package/Interactions/commandHelper.js +57 -0
  112. package/Interactions/commandHelper.js.map +1 -0
  113. package/Interactions/context.d.ts +53 -0
  114. package/Interactions/context.d.ts.map +1 -0
  115. package/Interactions/context.js +47 -0
  116. package/Interactions/context.js.map +1 -0
  117. package/Interactions/definitions.d.ts +43 -0
  118. package/Interactions/definitions.d.ts.map +1 -0
  119. package/Interactions/definitions.js +67 -0
  120. package/Interactions/definitions.js.map +1 -0
  121. package/Interactions/error.d.ts +2 -0
  122. package/Interactions/error.d.ts.map +1 -0
  123. package/Interactions/error.js +8 -0
  124. package/Interactions/error.js.map +1 -0
  125. package/Interactions/gateway.d.ts +20 -0
  126. package/Interactions/gateway.d.ts.map +1 -0
  127. package/Interactions/gateway.js +92 -0
  128. package/Interactions/gateway.js.map +1 -0
  129. package/Interactions/handlers.d.ts +15 -0
  130. package/Interactions/handlers.d.ts.map +1 -0
  131. package/Interactions/handlers.js +73 -0
  132. package/Interactions/handlers.js.map +1 -0
  133. package/Interactions/index.d.ts +17 -0
  134. package/Interactions/index.d.ts.map +1 -0
  135. package/Interactions/index.js +94 -0
  136. package/Interactions/index.js.map +1 -0
  137. package/Interactions/utils.d.ts +61 -0
  138. package/Interactions/utils.d.ts.map +1 -0
  139. package/Interactions/utils.js +35 -0
  140. package/Interactions/utils.js.map +1 -0
  141. package/Interactions/webhook.d.ts +71 -0
  142. package/Interactions/webhook.d.ts.map +1 -0
  143. package/Interactions/webhook.js +89 -0
  144. package/Interactions/webhook.js.map +1 -0
  145. package/RateLimit/memory.d.ts +3 -0
  146. package/RateLimit/memory.d.ts.map +1 -0
  147. package/RateLimit/memory.js +47 -0
  148. package/RateLimit/memory.js.map +1 -0
  149. package/RateLimit/utils.d.ts +3 -0
  150. package/RateLimit/utils.d.ts.map +1 -0
  151. package/RateLimit/utils.js +25 -0
  152. package/RateLimit/utils.js.map +1 -0
  153. package/RateLimit.d.ts +30 -0
  154. package/RateLimit.d.ts.map +1 -0
  155. package/RateLimit.js +37 -0
  156. package/RateLimit.js.map +1 -0
  157. package/gateway.d.ts +19 -0
  158. package/gateway.d.ts.map +1 -0
  159. package/gateway.js +72 -0
  160. package/gateway.js.map +1 -0
  161. package/index.d.ts +18 -0
  162. package/index.d.ts.map +1 -0
  163. package/index.js +71 -0
  164. package/index.js.map +1 -0
  165. package/mjs/Cache/driver.mjs +3 -0
  166. package/mjs/Cache/driver.mjs.map +1 -0
  167. package/mjs/Cache/memory.mjs +48 -0
  168. package/mjs/Cache/memory.mjs.map +1 -0
  169. package/mjs/Cache/memoryTTL.mjs +119 -0
  170. package/mjs/Cache/memoryTTL.mjs.map +1 -0
  171. package/mjs/Cache/prelude.mjs +131 -0
  172. package/mjs/Cache/prelude.mjs.map +1 -0
  173. package/mjs/Cache.mjs +90 -0
  174. package/mjs/Cache.mjs.map +1 -0
  175. package/mjs/DiscordConfig.mjs +32 -0
  176. package/mjs/DiscordConfig.mjs.map +1 -0
  177. package/mjs/DiscordGateway/DiscordWS.mjs +77 -0
  178. package/mjs/DiscordGateway/DiscordWS.mjs.map +1 -0
  179. package/mjs/DiscordGateway/Messaging.mjs +35 -0
  180. package/mjs/DiscordGateway/Messaging.mjs.map +1 -0
  181. package/mjs/DiscordGateway/Shard/StateStore.mjs +41 -0
  182. package/mjs/DiscordGateway/Shard/StateStore.mjs.map +1 -0
  183. package/mjs/DiscordGateway/Shard/heartbeats.mjs +25 -0
  184. package/mjs/DiscordGateway/Shard/heartbeats.mjs.map +1 -0
  185. package/mjs/DiscordGateway/Shard/identify.mjs +29 -0
  186. package/mjs/DiscordGateway/Shard/identify.mjs.map +1 -0
  187. package/mjs/DiscordGateway/Shard/sendEvents.mjs +26 -0
  188. package/mjs/DiscordGateway/Shard/sendEvents.mjs.map +1 -0
  189. package/mjs/DiscordGateway/Shard/utils.mjs +3 -0
  190. package/mjs/DiscordGateway/Shard/utils.mjs.map +1 -0
  191. package/mjs/DiscordGateway/Shard.mjs +147 -0
  192. package/mjs/DiscordGateway/Shard.mjs.map +1 -0
  193. package/mjs/DiscordGateway/ShardStore.mjs +24 -0
  194. package/mjs/DiscordGateway/ShardStore.mjs.map +1 -0
  195. package/mjs/DiscordGateway/Sharder.mjs +67 -0
  196. package/mjs/DiscordGateway/Sharder.mjs.map +1 -0
  197. package/mjs/DiscordGateway.mjs +21 -0
  198. package/mjs/DiscordGateway.mjs.map +1 -0
  199. package/mjs/DiscordREST/Generated.mjs +2471 -0
  200. package/mjs/DiscordREST/Generated.mjs.map +1 -0
  201. package/mjs/DiscordREST/utils.mjs +21 -0
  202. package/mjs/DiscordREST/utils.mjs.map +1 -0
  203. package/mjs/DiscordREST.mjs +119 -0
  204. package/mjs/DiscordREST.mjs.map +1 -0
  205. package/mjs/Helpers/flags.mjs +45 -0
  206. package/mjs/Helpers/flags.mjs.map +1 -0
  207. package/mjs/Helpers/intents.mjs +27 -0
  208. package/mjs/Helpers/intents.mjs.map +1 -0
  209. package/mjs/Helpers/interactions.mjs +115 -0
  210. package/mjs/Helpers/interactions.mjs.map +1 -0
  211. package/mjs/Helpers/members.mjs +9 -0
  212. package/mjs/Helpers/members.mjs.map +1 -0
  213. package/mjs/Helpers/permissions.mjs +84 -0
  214. package/mjs/Helpers/permissions.mjs.map +1 -0
  215. package/mjs/Helpers/ui.mjs +137 -0
  216. package/mjs/Helpers/ui.mjs.map +1 -0
  217. package/mjs/Interactions/builder.mjs +56 -0
  218. package/mjs/Interactions/builder.mjs.map +1 -0
  219. package/mjs/Interactions/commandHelper.mjs +49 -0
  220. package/mjs/Interactions/commandHelper.mjs.map +1 -0
  221. package/mjs/Interactions/context.mjs +28 -0
  222. package/mjs/Interactions/context.mjs.map +1 -0
  223. package/mjs/Interactions/definitions.mjs +51 -0
  224. package/mjs/Interactions/definitions.mjs.map +1 -0
  225. package/mjs/Interactions/error.mjs +2 -0
  226. package/mjs/Interactions/error.mjs.map +1 -0
  227. package/mjs/Interactions/gateway.mjs +82 -0
  228. package/mjs/Interactions/gateway.mjs.map +1 -0
  229. package/mjs/Interactions/handlers.mjs +64 -0
  230. package/mjs/Interactions/handlers.mjs.map +1 -0
  231. package/mjs/Interactions/index.mjs +11 -0
  232. package/mjs/Interactions/index.mjs.map +1 -0
  233. package/mjs/Interactions/utils.mjs +26 -0
  234. package/mjs/Interactions/utils.mjs.map +1 -0
  235. package/mjs/Interactions/webhook.mjs +75 -0
  236. package/mjs/Interactions/webhook.mjs.map +1 -0
  237. package/mjs/RateLimit/memory.mjs +39 -0
  238. package/mjs/RateLimit/memory.mjs.map +1 -0
  239. package/mjs/RateLimit/utils.mjs +18 -0
  240. package/mjs/RateLimit/utils.mjs.map +1 -0
  241. package/mjs/RateLimit.mjs +28 -0
  242. package/mjs/RateLimit.mjs.map +1 -0
  243. package/mjs/gateway.mjs +19 -0
  244. package/mjs/gateway.mjs.map +1 -0
  245. package/mjs/index.mjs +18 -0
  246. package/mjs/index.mjs.map +1 -0
  247. package/mjs/types.mjs +356 -0
  248. package/mjs/types.mjs.map +1 -0
  249. package/mjs/utils/Effect.mjs +44 -0
  250. package/mjs/utils/Effect.mjs.map +1 -0
  251. package/mjs/version.mjs +2 -0
  252. package/mjs/version.mjs.map +1 -0
  253. package/mjs/webhooks.mjs +6 -0
  254. package/mjs/webhooks.mjs.map +1 -0
  255. package/package.json +35 -79
  256. package/src/version.ts +1 -0
  257. package/types.d.ts +2458 -0
  258. package/types.d.ts.map +1 -0
  259. package/types.js +408 -0
  260. package/types.js.map +1 -0
  261. package/utils/Effect.d.ts +5 -0
  262. package/utils/Effect.d.ts.map +1 -0
  263. package/utils/Effect.js +53 -0
  264. package/utils/Effect.js.map +1 -0
  265. package/version.d.ts +2 -0
  266. package/version.d.ts.map +1 -0
  267. package/version.js +8 -0
  268. package/version.js.map +1 -0
  269. package/webhooks.d.ts +8 -0
  270. package/webhooks.d.ts.map +1 -0
  271. package/webhooks.js +55 -0
  272. package/webhooks.js.map +1 -0
  273. package/.babel.cjs.json +0 -11
  274. package/.babel.mjs.json +0 -10
  275. package/.envrc +0 -1
  276. package/.gitmodules +0 -3
  277. package/.husky/pre-commit +0 -2
  278. package/.oxlintrc.json +0 -72
  279. package/.prettierignore +0 -0
  280. package/.prettierrc.json +0 -5
  281. package/.tool-versions +0 -1
  282. package/.vscode/debug.cjs +0 -8
  283. package/.vscode/launch.json +0 -23
  284. package/.vscode/settings.json +0 -29
  285. package/.vscode/tasks.json +0 -44
  286. package/AGENTS.md +0 -15
  287. package/CHANGELOG.md +0 -1562
  288. package/examples/.env.example +0 -5
  289. package/examples/interactions.ts +0 -79
  290. package/examples/readme.ts +0 -56
  291. package/examples/registry.ts +0 -66
  292. package/flake.lock +0 -27
  293. package/flake.nix +0 -21
  294. package/lerna.json +0 -12
  295. package/pnpm-workspace.yaml +0 -7
  296. package/scripts/generate-client.sh +0 -10
  297. package/scripts/worktree-setup.sh +0 -8
  298. package/test/index.test.ts +0 -5
  299. package/vitest.config.ts +0 -22
package/Cache.js ADDED
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _exportNames = {
7
+ makeWithParent: true,
8
+ make: true,
9
+ CacheErrorTypeId: true,
10
+ CacheMissError: true,
11
+ memoryDriver: true,
12
+ memoryParentDriver: true,
13
+ memoryTTLDriver: true,
14
+ memoryTTLParentDriver: true
15
+ };
16
+ exports.makeWithParent = exports.make = exports.CacheMissError = exports.CacheErrorTypeId = void 0;
17
+ Object.defineProperty(exports, "memoryDriver", {
18
+ enumerable: true,
19
+ get: function () {
20
+ return _memory.create;
21
+ }
22
+ });
23
+ Object.defineProperty(exports, "memoryParentDriver", {
24
+ enumerable: true,
25
+ get: function () {
26
+ return _memory.createWithParent;
27
+ }
28
+ });
29
+ Object.defineProperty(exports, "memoryTTLDriver", {
30
+ enumerable: true,
31
+ get: function () {
32
+ return _memoryTTL.create;
33
+ }
34
+ });
35
+ Object.defineProperty(exports, "memoryTTLParentDriver", {
36
+ enumerable: true,
37
+ get: function () {
38
+ return _memoryTTL.createWithParent;
39
+ }
40
+ });
41
+ var Data = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Data"));
42
+ var Effect = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Effect"));
43
+ var Option = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Option"));
44
+ var Schedule = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Schedule"));
45
+ var Stream = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Stream"));
46
+ var _driver = /*#__PURE__*/require("./Cache/driver.js");
47
+ Object.keys(_driver).forEach(function (key) {
48
+ if (key === "default" || key === "__esModule") return;
49
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
50
+ if (key in exports && exports[key] === _driver[key]) return;
51
+ Object.defineProperty(exports, key, {
52
+ enumerable: true,
53
+ get: function () {
54
+ return _driver[key];
55
+ }
56
+ });
57
+ });
58
+ var _memory = /*#__PURE__*/require("./Cache/memory.js");
59
+ var _memoryTTL = /*#__PURE__*/require("./Cache/memoryTTL.js");
60
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
61
+ const retryPolicy = /*#__PURE__*/Schedule.exponential("500 millis").pipe(/*#__PURE__*/Schedule.either(/*#__PURE__*/Schedule.spaced("10 seconds")));
62
+ const makeWithParent = ({
63
+ driver,
64
+ id: identify,
65
+ onMiss,
66
+ onParentMiss,
67
+ ops = Stream.empty
68
+ }) => Effect.gen(function* () {
69
+ yield* Stream.runDrain(Stream.tap(ops, op => {
70
+ switch (op.op) {
71
+ case "create":
72
+ case "update":
73
+ return driver.set(op.parentId, op.resourceId, op.resource);
74
+ case "delete":
75
+ return driver.delete(op.parentId, op.resourceId);
76
+ case "parentDelete":
77
+ return driver.parentDelete(op.parentId);
78
+ }
79
+ })).pipe(Effect.tapCause(cause => Effect.logError("ops error, restarting", cause)), Effect.retry(retryPolicy), Effect.forkScoped, Effect.interruptible);
80
+ yield* driver.run.pipe(Effect.tapCause(cause => Effect.logError("cache driver error, restarting", cause)), Effect.retry(retryPolicy), Effect.forkScoped, Effect.interruptible);
81
+ const get = (parentId, id) => Effect.flatMap(driver.get(parentId, id), option => Option.match(option, {
82
+ onNone: () => Effect.tap(onMiss(parentId, id), a => driver.set(parentId, id, a)),
83
+ onSome: Effect.succeed
84
+ }));
85
+ const put = _ => Effect.flatMap(identify(_), ([parentId, id]) => driver.set(parentId, id, _));
86
+ const update = (parentId, id, f) => Effect.flatMap(get(parentId, id), a => Effect.tap(f(a), next => driver.set(parentId, id, next)));
87
+ return {
88
+ ...driver,
89
+ get,
90
+ put,
91
+ update,
92
+ getForParent: parentId => Effect.flatMap(driver.getForParent(parentId), option => Option.match(option, {
93
+ onNone: () => onParentMiss(parentId).pipe(Effect.tap(entries => Effect.all(entries.map(([id, a]) => driver.set(parentId, id, a)), {
94
+ concurrency: "unbounded"
95
+ })), Effect.map(entries => new Map(entries))),
96
+ onSome: Effect.succeed
97
+ }))
98
+ };
99
+ }).pipe(Effect.annotateLogs({
100
+ package: "dfx",
101
+ service: "Cache"
102
+ }));
103
+ exports.makeWithParent = makeWithParent;
104
+ const make = ({
105
+ driver,
106
+ id: identify,
107
+ onMiss,
108
+ ops = Stream.empty
109
+ }) => Effect.gen(function* () {
110
+ yield* Stream.runDrain(Stream.tap(ops, op => {
111
+ switch (op.op) {
112
+ case "create":
113
+ case "update":
114
+ return driver.set(op.resourceId, op.resource);
115
+ case "delete":
116
+ return driver.delete(op.resourceId);
117
+ }
118
+ })).pipe(Effect.tapCause(cause => Effect.logError("ops error, restarting", cause)), Effect.retry(retryPolicy), Effect.forkScoped, Effect.interruptible);
119
+ yield* driver.run.pipe(Effect.tapCause(cause => Effect.logError("cache driver error, restarting", cause)), Effect.retry(retryPolicy), Effect.forkScoped, Effect.interruptible);
120
+ const get = id => Effect.flatMap(driver.get(id), option => Option.match(option, {
121
+ onNone: () => Effect.tap(onMiss(id), a => driver.set(id, a)),
122
+ onSome: Effect.succeed
123
+ }));
124
+ const put = _ => driver.set(identify(_), _);
125
+ const update = (id, f) => Effect.flatMap(get(id), a => Effect.tap(f(a), next => driver.set(id, next)));
126
+ return {
127
+ ...driver,
128
+ get,
129
+ put,
130
+ update
131
+ };
132
+ }).pipe(Effect.annotateLogs({
133
+ package: "dfx",
134
+ service: "Cache"
135
+ }));
136
+ exports.make = make;
137
+ const CacheErrorTypeId = exports.CacheErrorTypeId = /*#__PURE__*/Symbol.for("dfx/Cache/CacheError");
138
+ class CacheMissError extends Data.Error {
139
+ _tag = "CacheMissError";
140
+ get message() {
141
+ return `Cache miss for "${this.cacheName}" with id: ${this.id}`;
142
+ }
143
+ }
144
+ exports.CacheMissError = CacheMissError;
145
+ //# sourceMappingURL=Cache.js.map
package/Cache.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cache.js","names":["Data","_interopRequireWildcard","require","Effect","Option","Schedule","Stream","_driver","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_memory","_memoryTTL","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","set","getOwnPropertyDescriptor","retryPolicy","exponential","pipe","either","spaced","makeWithParent","driver","id","identify","onMiss","onParentMiss","ops","empty","gen","runDrain","tap","op","parentId","resourceId","resource","delete","parentDelete","tapCause","cause","logError","retry","forkScoped","interruptible","run","flatMap","option","match","onNone","a","onSome","succeed","put","_","update","next","getForParent","entries","all","map","concurrency","Map","annotateLogs","package","service","make","CacheErrorTypeId","Symbol","for","CacheMissError","Error","_tag","message","cacheName"],"sources":["./src/Cache.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,35 @@
1
+ import * as Discord from "./types.ts";
2
+ import * as Config from "effect/Config";
3
+ import * as Duration from "effect/Duration";
4
+ import * as Layer from "effect/Layer";
5
+ import type * as Redacted from "effect/Redacted";
6
+ import * as ServiceMap from "effect/ServiceMap";
7
+ export interface DiscordConfigService {
8
+ readonly token: Redacted.Redacted;
9
+ readonly rest: {
10
+ readonly baseUrl: string;
11
+ readonly globalRateLimit: {
12
+ readonly limit: number;
13
+ readonly window: Duration.Input;
14
+ };
15
+ };
16
+ readonly gateway: {
17
+ readonly intents: number;
18
+ readonly presence?: Discord.GatewayPresenceUpdateData;
19
+ readonly shardCount?: number;
20
+ readonly identifyRateLimit: readonly [window: number, limit: number];
21
+ };
22
+ }
23
+ declare const DiscordConfig_base: ServiceMap.ServiceClass<DiscordConfig, "dfx/DiscordConfig", DiscordConfigService>;
24
+ export declare class DiscordConfig extends DiscordConfig_base {
25
+ }
26
+ export interface MakeOpts {
27
+ readonly token: Redacted.Redacted;
28
+ readonly rest?: Partial<DiscordConfigService["rest"]>;
29
+ readonly gateway?: Partial<DiscordConfigService["gateway"]>;
30
+ }
31
+ export declare const make: ({ gateway, rest, token, }: MakeOpts) => DiscordConfigService;
32
+ export declare const layer: (opts: MakeOpts) => Layer.Layer<DiscordConfig>;
33
+ export declare const layerConfig: (_: Config.Wrap<MakeOpts>) => Layer.Layer<DiscordConfig, Config.ConfigError>;
34
+ export {};
35
+ //# sourceMappingURL=DiscordConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DiscordConfig.d.ts","sourceRoot":"","sources":["./src/DiscordConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,YAAY,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAE3C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAI/C,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAA;IACjC,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;QACxB,QAAQ,CAAC,eAAe,EAAE;YACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;YACtB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAA;SAChC,CAAA;KACF,CAAA;IACD,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;QACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAA;QACrD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;QAE5B,QAAQ,CAAC,iBAAiB,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;KACrE,CAAA;CACF;;AACD,qBAAa,aAAc,SAAQ,kBAGX;CAAG;AAE3B,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAA;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAA;IACrD,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAA;CAC5D;AAED,eAAO,MAAM,IAAI,GAAI,2BAIlB,QAAQ,KAAG,oBAgBZ,CAAA;AAEF,eAAO,MAAM,KAAK,GAAI,MAAM,QAAQ,KAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CACtB,CAAA;AAE1C,eAAO,MAAM,WAAW,GACtB,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KACvB,KAAK,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAC4B,CAAA"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.make = exports.layerConfig = exports.layer = exports.DiscordConfig = void 0;
7
+ var Discord = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./types.js"));
8
+ var Config = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Config"));
9
+ var Duration = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Duration"));
10
+ var Effect = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Effect"));
11
+ var Layer = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Layer"));
12
+ var ServiceMap = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/ServiceMap"));
13
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
14
+ const VERSION = 10;
15
+ class DiscordConfig extends /*#__PURE__*/ServiceMap.Service()("dfx/DiscordConfig") {}
16
+ exports.DiscordConfig = DiscordConfig;
17
+ const make = ({
18
+ gateway,
19
+ rest,
20
+ token
21
+ }) => ({
22
+ token,
23
+ rest: {
24
+ baseUrl: `https://discord.com/api/v${VERSION}`,
25
+ ...rest,
26
+ globalRateLimit: {
27
+ limit: 50,
28
+ window: Duration.seconds(1),
29
+ ...rest?.globalRateLimit
30
+ }
31
+ },
32
+ gateway: {
33
+ intents: Discord.GatewayIntentBits.Guilds,
34
+ identifyRateLimit: [5000, 1],
35
+ ...gateway
36
+ }
37
+ });
38
+ exports.make = make;
39
+ const layer = opts => Layer.succeed(DiscordConfig, make(opts));
40
+ exports.layer = layer;
41
+ const layerConfig = _ => Layer.effect(DiscordConfig, Effect.map(Config.unwrap(_).asEffect(), make));
42
+ exports.layerConfig = layerConfig;
43
+ //# sourceMappingURL=DiscordConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DiscordConfig.js","names":["Discord","_interopRequireWildcard","require","Config","Duration","Effect","Layer","ServiceMap","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","VERSION","DiscordConfig","Service","exports","make","gateway","rest","token","baseUrl","globalRateLimit","limit","window","seconds","intents","GatewayIntentBits","Guilds","identifyRateLimit","layer","opts","succeed","layerConfig","_","effect","map","unwrap","asEffect"],"sources":["./src/DiscordConfig.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,OAAA,gBAAAC,uBAAA,cAAAC,OAAA;AACA,IAAAC,MAAA,gBAAAF,uBAAA,cAAAC,OAAA;AACA,IAAAE,QAAA,gBAAAH,uBAAA,cAAAC,OAAA;AACA,IAAAG,MAAA,gBAAAJ,uBAAA,cAAAC,OAAA;AACA,IAAAI,KAAA,gBAAAL,uBAAA,cAAAC,OAAA;AAEA,IAAAK,UAAA,gBAAAN,uBAAA,cAAAC,OAAA;AAA+C,SAAAD,wBAAAO,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAT,uBAAA,YAAAA,CAAAO,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAE/C,MAAMkB,OAAO,GAAG,EAAE;AAmBZ,MAAOC,aAAc,sBAAQrB,UAAU,CAACsB,OAAO,EAGlD,CAAC,mBAAmB,CAAC;AAAGC,OAAA,CAAAF,aAAA,GAAAA,aAAA;AAQpB,MAAMG,IAAI,GAAGA,CAAC;EACnBC,OAAO;EACPC,IAAI;EACJC;AAAK,CACI,MAA4B;EACrCA,KAAK;EACLD,IAAI,EAAE;IACJE,OAAO,EAAE,4BAA4BR,OAAO,EAAE;IAC9C,GAAGM,IAAI;IACPG,eAAe,EAAE;MACfC,KAAK,EAAE,EAAE;MACTC,MAAM,EAAElC,QAAQ,CAACmC,OAAO,CAAC,CAAC,CAAC;MAC3B,GAAGN,IAAI,EAAEG;;GAEZ;EACDJ,OAAO,EAAE;IACPQ,OAAO,EAAExC,OAAO,CAACyC,iBAAiB,CAACC,MAAM;IACzCC,iBAAiB,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5B,GAAGX;;CAEN,CAAC;AAAAF,OAAA,CAAAC,IAAA,GAAAA,IAAA;AAEK,MAAMa,KAAK,GAAIC,IAAc,IAClCvC,KAAK,CAACwC,OAAO,CAAClB,aAAa,EAAEG,IAAI,CAACc,IAAI,CAAC,CAAC;AAAAf,OAAA,CAAAc,KAAA,GAAAA,KAAA;AAEnC,MAAMG,WAAW,GACtBC,CAAwB,IAExB1C,KAAK,CAAC2C,MAAM,CAACrB,aAAa,EAAEvB,MAAM,CAAC6C,GAAG,CAAC/C,MAAM,CAACgD,MAAM,CAACH,CAAC,CAAC,CAACI,QAAQ,EAAE,EAAErB,IAAI,CAAC,CAAC;AAAAD,OAAA,CAAAiB,WAAA,GAAAA,WAAA","ignoreList":[]}
@@ -0,0 +1,37 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as Layer from "effect/Layer";
3
+ import type * as Discord from "../types.ts";
4
+ import * as ServiceMap from "effect/ServiceMap";
5
+ import * as Socket from "effect/unstable/socket/Socket";
6
+ import type * as Scope from "effect/Scope";
7
+ export type Message = Discord.GatewayReceivePayload;
8
+ export type MessageSend = Discord.GatewaySendPayload | Reconnect;
9
+ export declare const Reconnect: unique symbol;
10
+ export type Reconnect = typeof Reconnect;
11
+ export interface OpenOpts {
12
+ url?: string;
13
+ version?: number;
14
+ encoding?: DiscordWSCodec;
15
+ onConnecting: Effect.Effect<void>;
16
+ }
17
+ export interface DiscordWSCodecService {
18
+ type: "json" | "etf";
19
+ encode: (p: Discord.GatewaySendPayload) => Uint8Array | string;
20
+ decode: (p: Uint8Array | string) => Discord.GatewayReceivePayload;
21
+ }
22
+ declare const DiscordWSCodec_base: ServiceMap.ServiceClass<DiscordWSCodec, "dfx/DiscordGateway/DiscordWS/Codec", DiscordWSCodecService>;
23
+ export declare class DiscordWSCodec extends DiscordWSCodec_base {
24
+ }
25
+ export declare const JsonDiscordWSCodecLive: Layer.Layer<DiscordWSCodec, never, never>;
26
+ declare const DiscordWS_base: ServiceMap.ServiceClass<DiscordWS, "dfx/DiscordGateway/DiscordWS", {
27
+ readonly connect: (args_0: OpenOpts) => Effect.Effect<{
28
+ readonly take: Effect.Effect<Discord.GatewayReceivePayload, never, never>;
29
+ readonly setUrl: (url: string) => Effect.Effect<void, never, never>;
30
+ readonly write: (message: MessageSend) => Effect.Effect<void>;
31
+ }, never, Socket.WebSocketConstructor | Scope.Scope>;
32
+ }>;
33
+ export declare class DiscordWS extends DiscordWS_base {
34
+ }
35
+ export declare const DiscordWSLive: Layer.Layer<DiscordWS, never, DiscordWSCodec>;
36
+ export {};
37
+ //# sourceMappingURL=DiscordWS.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DiscordWS.d.ts","sourceRoot":"","sources":["../src/DiscordGateway/DiscordWS.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,KAAK,OAAO,MAAM,aAAa,CAAA;AAG3C,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAE/C,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAA;AACvD,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAK1C,MAAM,MAAM,OAAO,GAAG,OAAO,CAAC,qBAAqB,CAAA;AACnD,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAA;AAEhE,eAAO,MAAM,SAAS,eAAgD,CAAA;AACtE,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAA;AAExC,MAAM,WAAW,QAAQ;IACvB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CAClC;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAA;IACpB,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,kBAAkB,KAAK,UAAU,GAAG,MAAM,CAAA;IAC9D,MAAM,EAAE,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,KAAK,OAAO,CAAC,qBAAqB,CAAA;CAClE;;AAID,qBAAa,cAAe,SAAQ,mBAGK;CAAG;AAE5C,eAAO,MAAM,sBAAsB,2CAIjC,CAAA;;sBAgGoB,CAAC,MAAM,EAAE,QAAQ,KAAK,MAAM,CAAC,MAAM,CACnD;QACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAC1B,OAAO,CAAC,qBAAqB,EAC7B,KAAK,EACL,KAAK,CACN,CAAA;QACD,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;QACnE,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;KAC9D,EACD,KAAK,EACL,MAAM,CAAC,oBAAoB,GAAG,KAAK,CAAC,KAAK,CAC1C;;AAfL,qBAAa,SAAU,SAAQ,cAiBI;CAAG;AAEtC,eAAO,MAAM,aAAa,+CAAgC,CAAA"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Reconnect = exports.JsonDiscordWSCodecLive = exports.DiscordWSLive = exports.DiscordWSCodec = exports.DiscordWS = void 0;
7
+ var Effect = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Effect"));
8
+ var Layer = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Layer"));
9
+ var Ref = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Ref"));
10
+ var Schedule = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Schedule"));
11
+ var Cause = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Cause"));
12
+ var ServiceMap = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/ServiceMap"));
13
+ var Queue = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Queue"));
14
+ var Socket = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/unstable/socket/Socket"));
15
+ var _Logger = /*#__PURE__*/require("effect/Logger");
16
+ var LogLevel = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/LogLevel"));
17
+ var _References = /*#__PURE__*/require("effect/References");
18
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
19
+ const Reconnect = exports.Reconnect = /*#__PURE__*/Symbol.for("dfx/DiscordGateway/WS/Reconnect");
20
+ const decoder = /*#__PURE__*/new TextDecoder();
21
+ class DiscordWSCodec extends /*#__PURE__*/ServiceMap.Service()("dfx/DiscordGateway/DiscordWS/Codec") {}
22
+ exports.DiscordWSCodec = DiscordWSCodec;
23
+ const JsonDiscordWSCodecLive = exports.JsonDiscordWSCodecLive = /*#__PURE__*/Layer.succeed(DiscordWSCodec, {
24
+ type: "json",
25
+ encode: p => JSON.stringify(p),
26
+ decode: p => JSON.parse(typeof p === "string" ? p : decoder.decode(p))
27
+ });
28
+ const make = /*#__PURE__*/Effect.gen(function* () {
29
+ const encoding = yield* DiscordWSCodec;
30
+ const connect = Effect.fnUntraced(function* ({
31
+ onConnecting,
32
+ url = "wss://gateway.discord.gg/",
33
+ version = 10
34
+ }) {
35
+ const urlRef = yield* Ref.make(`${url}?v=${version}&encoding=${encoding.type}`);
36
+ const setUrl = nextUrl => Ref.set(urlRef, `${nextUrl}?v=${version}&encoding=${encoding.type}`);
37
+ const messages = yield* Queue.make();
38
+ const socket = yield* Socket.makeWebSocket(Ref.get(urlRef), {
39
+ closeCodeIsError: _ => true,
40
+ openTimeout: 5000
41
+ });
42
+ const writeRaw = yield* socket.writer;
43
+ const logWriteError = cause => Effect.annotateLogs(Effect.logDebug(cause), {
44
+ module: "DiscordGateway/DiscordWS",
45
+ channel: "outbound"
46
+ });
47
+ const write = message => {
48
+ if (message === Reconnect) {
49
+ return Effect.catchCause(writeRaw(new Socket.CloseEvent(3000, "reconnecting")), logWriteError);
50
+ }
51
+ return Effect.catchCause(writeRaw(encoding.encode(message)), logWriteError);
52
+ };
53
+ const traceEnabled = LogLevel.isLessThanOrEqualTo(yield* _References.MinimumLogLevel, "Trace");
54
+ const loggers = yield* _Logger.CurrentLoggers;
55
+ yield* onConnecting.pipe(Effect.andThen(Effect.withFiber(fiber => socket.runRaw(_ => {
56
+ const message = encoding.decode(_);
57
+ Queue.offerUnsafe(messages, message);
58
+ if (!traceEnabled) return;
59
+ loggers.forEach(logger => {
60
+ logger.log({
61
+ message,
62
+ cause: Cause.empty,
63
+ fiber,
64
+ logLevel: "Trace",
65
+ date: new Date()
66
+ });
67
+ });
68
+ }))), Effect.retry({
69
+ while: e => e.reason._tag === "SocketCloseError" && e.reason.code === 3000
70
+ }), Effect.catchCause(cause => Effect.logDebug("Got socket error, reconnecting", cause)), Effect.repeat(Schedule.exponential(500).pipe(Schedule.either(Schedule.spaced(10000)))), Effect.annotateLogs("channel", "inbound"), Effect.forkScoped);
71
+ return {
72
+ take: Queue.take(messages),
73
+ setUrl,
74
+ write
75
+ };
76
+ }, Effect.annotateLogs({
77
+ module: "DiscordGateway/DiscordWS"
78
+ }));
79
+ return {
80
+ connect
81
+ };
82
+ });
83
+ class DiscordWS extends /*#__PURE__*/ServiceMap.Service()("dfx/DiscordGateway/DiscordWS") {}
84
+ exports.DiscordWS = DiscordWS;
85
+ const DiscordWSLive = exports.DiscordWSLive = /*#__PURE__*/Layer.effect(DiscordWS, make);
86
+ //# sourceMappingURL=DiscordWS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DiscordWS.js","names":["Effect","_interopRequireWildcard","require","Layer","Ref","Schedule","Cause","ServiceMap","Queue","Socket","_Logger","LogLevel","_References","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Reconnect","exports","Symbol","for","decoder","TextDecoder","DiscordWSCodec","Service","JsonDiscordWSCodecLive","succeed","type","encode","p","JSON","stringify","decode","parse","make","gen","encoding","connect","fnUntraced","onConnecting","url","version","urlRef","setUrl","nextUrl","messages","socket","makeWebSocket","closeCodeIsError","_","openTimeout","writeRaw","writer","logWriteError","cause","annotateLogs","logDebug","module","channel","write","message","catchCause","CloseEvent","traceEnabled","isLessThanOrEqualTo","MinimumLogLevel","loggers","CurrentLoggers","pipe","andThen","withFiber","fiber","runRaw","offerUnsafe","forEach","logger","log","empty","logLevel","date","Date","retry","while","reason","_tag","code","repeat","exponential","either","spaced","forkScoped","take","DiscordWS","DiscordWSLive","effect"],"sources":["../src/DiscordGateway/DiscordWS.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}