dfx 1.0.5 → 1.0.6

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 (237) hide show
  1. package/dist/version.js +1 -1
  2. package/package.json +5 -5
  3. package/src/version.ts +1 -1
  4. package/dist/Cache/driver.d.ts +0 -24
  5. package/dist/Cache/driver.d.ts.map +0 -1
  6. package/dist/Cache/memory.d.ts +0 -5
  7. package/dist/Cache/memory.d.ts.map +0 -1
  8. package/dist/Cache/memoryTTL.d.ts +0 -23
  9. package/dist/Cache/memoryTTL.d.ts.map +0 -1
  10. package/dist/Cache/prelude.d.ts +0 -32
  11. package/dist/Cache/prelude.d.ts.map +0 -1
  12. package/dist/Cache.d.ts +0 -81
  13. package/dist/Cache.d.ts.map +0 -1
  14. package/dist/DiscordConfig.d.ts +0 -35
  15. package/dist/DiscordConfig.d.ts.map +0 -1
  16. package/dist/DiscordGateway/DiscordWS.d.ts +0 -37
  17. package/dist/DiscordGateway/DiscordWS.d.ts.map +0 -1
  18. package/dist/DiscordGateway/Messaging.d.ts +0 -587
  19. package/dist/DiscordGateway/Messaging.d.ts.map +0 -1
  20. package/dist/DiscordGateway/Shard/StateStore.d.ts +0 -24
  21. package/dist/DiscordGateway/Shard/StateStore.d.ts.map +0 -1
  22. package/dist/DiscordGateway/Shard/heartbeats.d.ts +0 -8
  23. package/dist/DiscordGateway/Shard/heartbeats.d.ts.map +0 -1
  24. package/dist/DiscordGateway/Shard/identify.d.ts +0 -12
  25. package/dist/DiscordGateway/Shard/identify.d.ts.map +0 -1
  26. package/dist/DiscordGateway/Shard/sendEvents.d.ts +0 -8
  27. package/dist/DiscordGateway/Shard/sendEvents.d.ts.map +0 -1
  28. package/dist/DiscordGateway/Shard/utils.d.ts +0 -6
  29. package/dist/DiscordGateway/Shard/utils.d.ts.map +0 -1
  30. package/dist/DiscordGateway/Shard.d.ts +0 -29
  31. package/dist/DiscordGateway/Shard.d.ts.map +0 -1
  32. package/dist/DiscordGateway/ShardStore.d.ts +0 -19
  33. package/dist/DiscordGateway/ShardStore.d.ts.map +0 -1
  34. package/dist/DiscordGateway/Sharder.d.ts +0 -14
  35. package/dist/DiscordGateway/Sharder.d.ts.map +0 -1
  36. package/dist/DiscordGateway.d.ts +0 -33
  37. package/dist/DiscordGateway.d.ts.map +0 -1
  38. package/dist/DiscordREST/Generated.d.ts +0 -5577
  39. package/dist/DiscordREST/Generated.d.ts.map +0 -1
  40. package/dist/DiscordREST/utils.d.ts +0 -14
  41. package/dist/DiscordREST/utils.d.ts.map +0 -1
  42. package/dist/DiscordREST.d.ts +0 -22
  43. package/dist/DiscordREST.d.ts.map +0 -1
  44. package/dist/Helpers/flags.d.ts +0 -28
  45. package/dist/Helpers/flags.d.ts.map +0 -1
  46. package/dist/Helpers/intents.d.ts +0 -25
  47. package/dist/Helpers/intents.d.ts.map +0 -1
  48. package/dist/Helpers/interactions.d.ts +0 -116
  49. package/dist/Helpers/interactions.d.ts.map +0 -1
  50. package/dist/Helpers/members.d.ts +0 -10
  51. package/dist/Helpers/members.d.ts.map +0 -1
  52. package/dist/Helpers/permissions.d.ts +0 -42
  53. package/dist/Helpers/permissions.d.ts.map +0 -1
  54. package/dist/Helpers/ui.d.ts +0 -105
  55. package/dist/Helpers/ui.d.ts.map +0 -1
  56. package/dist/Interactions/builder.d.ts +0 -48
  57. package/dist/Interactions/builder.d.ts.map +0 -1
  58. package/dist/Interactions/commandHelper.d.ts +0 -83
  59. package/dist/Interactions/commandHelper.d.ts.map +0 -1
  60. package/dist/Interactions/context.d.ts +0 -53
  61. package/dist/Interactions/context.d.ts.map +0 -1
  62. package/dist/Interactions/definitions.d.ts +0 -43
  63. package/dist/Interactions/definitions.d.ts.map +0 -1
  64. package/dist/Interactions/error.d.ts +0 -2
  65. package/dist/Interactions/error.d.ts.map +0 -1
  66. package/dist/Interactions/gateway.d.ts +0 -20
  67. package/dist/Interactions/gateway.d.ts.map +0 -1
  68. package/dist/Interactions/handlers.d.ts +0 -15
  69. package/dist/Interactions/handlers.d.ts.map +0 -1
  70. package/dist/Interactions/index.d.ts +0 -17
  71. package/dist/Interactions/index.d.ts.map +0 -1
  72. package/dist/Interactions/utils.d.ts +0 -61
  73. package/dist/Interactions/utils.d.ts.map +0 -1
  74. package/dist/Interactions/webhook.d.ts +0 -71
  75. package/dist/Interactions/webhook.d.ts.map +0 -1
  76. package/dist/LICENSE +0 -21
  77. package/dist/README.md +0 -66
  78. package/dist/RateLimit/memory.d.ts +0 -3
  79. package/dist/RateLimit/memory.d.ts.map +0 -1
  80. package/dist/RateLimit/utils.d.ts +0 -3
  81. package/dist/RateLimit/utils.d.ts.map +0 -1
  82. package/dist/RateLimit.d.ts +0 -30
  83. package/dist/RateLimit.d.ts.map +0 -1
  84. package/dist/gateway.d.ts +0 -19
  85. package/dist/gateway.d.ts.map +0 -1
  86. package/dist/index.d.ts +0 -18
  87. package/dist/index.d.ts.map +0 -1
  88. package/dist/mjs/Cache/driver.mjs +0 -3
  89. package/dist/mjs/Cache/driver.mjs.map +0 -1
  90. package/dist/mjs/Cache/memory.mjs +0 -48
  91. package/dist/mjs/Cache/memory.mjs.map +0 -1
  92. package/dist/mjs/Cache/memoryTTL.mjs +0 -119
  93. package/dist/mjs/Cache/memoryTTL.mjs.map +0 -1
  94. package/dist/mjs/Cache/prelude.mjs +0 -131
  95. package/dist/mjs/Cache/prelude.mjs.map +0 -1
  96. package/dist/mjs/Cache.mjs +0 -90
  97. package/dist/mjs/Cache.mjs.map +0 -1
  98. package/dist/mjs/DiscordConfig.mjs +0 -32
  99. package/dist/mjs/DiscordConfig.mjs.map +0 -1
  100. package/dist/mjs/DiscordGateway/DiscordWS.mjs +0 -77
  101. package/dist/mjs/DiscordGateway/DiscordWS.mjs.map +0 -1
  102. package/dist/mjs/DiscordGateway/Messaging.mjs +0 -35
  103. package/dist/mjs/DiscordGateway/Messaging.mjs.map +0 -1
  104. package/dist/mjs/DiscordGateway/Shard/StateStore.mjs +0 -41
  105. package/dist/mjs/DiscordGateway/Shard/StateStore.mjs.map +0 -1
  106. package/dist/mjs/DiscordGateway/Shard/heartbeats.mjs +0 -25
  107. package/dist/mjs/DiscordGateway/Shard/heartbeats.mjs.map +0 -1
  108. package/dist/mjs/DiscordGateway/Shard/identify.mjs +0 -29
  109. package/dist/mjs/DiscordGateway/Shard/identify.mjs.map +0 -1
  110. package/dist/mjs/DiscordGateway/Shard/sendEvents.mjs +0 -26
  111. package/dist/mjs/DiscordGateway/Shard/sendEvents.mjs.map +0 -1
  112. package/dist/mjs/DiscordGateway/Shard/utils.mjs +0 -3
  113. package/dist/mjs/DiscordGateway/Shard/utils.mjs.map +0 -1
  114. package/dist/mjs/DiscordGateway/Shard.mjs +0 -147
  115. package/dist/mjs/DiscordGateway/Shard.mjs.map +0 -1
  116. package/dist/mjs/DiscordGateway/ShardStore.mjs +0 -24
  117. package/dist/mjs/DiscordGateway/ShardStore.mjs.map +0 -1
  118. package/dist/mjs/DiscordGateway/Sharder.mjs +0 -67
  119. package/dist/mjs/DiscordGateway/Sharder.mjs.map +0 -1
  120. package/dist/mjs/DiscordGateway.mjs +0 -21
  121. package/dist/mjs/DiscordGateway.mjs.map +0 -1
  122. package/dist/mjs/DiscordREST/Generated.mjs +0 -2471
  123. package/dist/mjs/DiscordREST/Generated.mjs.map +0 -1
  124. package/dist/mjs/DiscordREST/utils.mjs +0 -21
  125. package/dist/mjs/DiscordREST/utils.mjs.map +0 -1
  126. package/dist/mjs/DiscordREST.mjs +0 -119
  127. package/dist/mjs/DiscordREST.mjs.map +0 -1
  128. package/dist/mjs/Helpers/flags.mjs +0 -45
  129. package/dist/mjs/Helpers/flags.mjs.map +0 -1
  130. package/dist/mjs/Helpers/intents.mjs +0 -27
  131. package/dist/mjs/Helpers/intents.mjs.map +0 -1
  132. package/dist/mjs/Helpers/interactions.mjs +0 -115
  133. package/dist/mjs/Helpers/interactions.mjs.map +0 -1
  134. package/dist/mjs/Helpers/members.mjs +0 -9
  135. package/dist/mjs/Helpers/members.mjs.map +0 -1
  136. package/dist/mjs/Helpers/permissions.mjs +0 -84
  137. package/dist/mjs/Helpers/permissions.mjs.map +0 -1
  138. package/dist/mjs/Helpers/ui.mjs +0 -137
  139. package/dist/mjs/Helpers/ui.mjs.map +0 -1
  140. package/dist/mjs/Interactions/builder.mjs +0 -56
  141. package/dist/mjs/Interactions/builder.mjs.map +0 -1
  142. package/dist/mjs/Interactions/commandHelper.mjs +0 -49
  143. package/dist/mjs/Interactions/commandHelper.mjs.map +0 -1
  144. package/dist/mjs/Interactions/context.mjs +0 -28
  145. package/dist/mjs/Interactions/context.mjs.map +0 -1
  146. package/dist/mjs/Interactions/definitions.mjs +0 -51
  147. package/dist/mjs/Interactions/definitions.mjs.map +0 -1
  148. package/dist/mjs/Interactions/error.mjs +0 -2
  149. package/dist/mjs/Interactions/error.mjs.map +0 -1
  150. package/dist/mjs/Interactions/gateway.mjs +0 -82
  151. package/dist/mjs/Interactions/gateway.mjs.map +0 -1
  152. package/dist/mjs/Interactions/handlers.mjs +0 -64
  153. package/dist/mjs/Interactions/handlers.mjs.map +0 -1
  154. package/dist/mjs/Interactions/index.mjs +0 -11
  155. package/dist/mjs/Interactions/index.mjs.map +0 -1
  156. package/dist/mjs/Interactions/utils.mjs +0 -26
  157. package/dist/mjs/Interactions/utils.mjs.map +0 -1
  158. package/dist/mjs/Interactions/webhook.mjs +0 -75
  159. package/dist/mjs/Interactions/webhook.mjs.map +0 -1
  160. package/dist/mjs/RateLimit/memory.mjs +0 -39
  161. package/dist/mjs/RateLimit/memory.mjs.map +0 -1
  162. package/dist/mjs/RateLimit/utils.mjs +0 -18
  163. package/dist/mjs/RateLimit/utils.mjs.map +0 -1
  164. package/dist/mjs/RateLimit.mjs +0 -28
  165. package/dist/mjs/RateLimit.mjs.map +0 -1
  166. package/dist/mjs/gateway.mjs +0 -19
  167. package/dist/mjs/gateway.mjs.map +0 -1
  168. package/dist/mjs/index.mjs +0 -18
  169. package/dist/mjs/index.mjs.map +0 -1
  170. package/dist/mjs/types.mjs +0 -356
  171. package/dist/mjs/types.mjs.map +0 -1
  172. package/dist/mjs/utils/Effect.mjs +0 -44
  173. package/dist/mjs/utils/Effect.mjs.map +0 -1
  174. package/dist/mjs/version.mjs +0 -2
  175. package/dist/mjs/version.mjs.map +0 -1
  176. package/dist/mjs/webhooks.mjs +0 -6
  177. package/dist/mjs/webhooks.mjs.map +0 -1
  178. package/dist/package.json +0 -48
  179. package/dist/src/Cache/driver.ts +0 -37
  180. package/dist/src/Cache/memory.ts +0 -83
  181. package/dist/src/Cache/memoryTTL.ts +0 -225
  182. package/dist/src/Cache/prelude.ts +0 -279
  183. package/dist/src/Cache.ts +0 -261
  184. package/dist/src/DiscordConfig.ts +0 -67
  185. package/dist/src/DiscordGateway/DiscordWS.ts +0 -157
  186. package/dist/src/DiscordGateway/Messaging.ts +0 -71
  187. package/dist/src/DiscordGateway/Shard/StateStore.ts +0 -72
  188. package/dist/src/DiscordGateway/Shard/heartbeats.ts +0 -60
  189. package/dist/src/DiscordGateway/Shard/identify.ts +0 -50
  190. package/dist/src/DiscordGateway/Shard/sendEvents.ts +0 -43
  191. package/dist/src/DiscordGateway/Shard/utils.ts +0 -13
  192. package/dist/src/DiscordGateway/Shard.ts +0 -205
  193. package/dist/src/DiscordGateway/ShardStore.ts +0 -42
  194. package/dist/src/DiscordGateway/Sharder.ts +0 -118
  195. package/dist/src/DiscordGateway.ts +0 -79
  196. package/dist/src/DiscordREST/Generated.ts +0 -10832
  197. package/dist/src/DiscordREST/utils.ts +0 -42
  198. package/dist/src/DiscordREST.ts +0 -256
  199. package/dist/src/Helpers/flags.ts +0 -73
  200. package/dist/src/Helpers/intents.ts +0 -35
  201. package/dist/src/Helpers/interactions.ts +0 -317
  202. package/dist/src/Helpers/members.ts +0 -18
  203. package/dist/src/Helpers/permissions.ts +0 -145
  204. package/dist/src/Helpers/ui.ts +0 -253
  205. package/dist/src/Interactions/builder.ts +0 -171
  206. package/dist/src/Interactions/commandHelper.ts +0 -231
  207. package/dist/src/Interactions/context.ts +0 -104
  208. package/dist/src/Interactions/definitions.ts +0 -144
  209. package/dist/src/Interactions/error.ts +0 -3
  210. package/dist/src/Interactions/gateway.ts +0 -193
  211. package/dist/src/Interactions/handlers.ts +0 -108
  212. package/dist/src/Interactions/index.ts +0 -30
  213. package/dist/src/Interactions/utils.ts +0 -93
  214. package/dist/src/Interactions/webhook.ts +0 -204
  215. package/dist/src/RateLimit/memory.ts +0 -63
  216. package/dist/src/RateLimit/utils.ts +0 -28
  217. package/dist/src/RateLimit.ts +0 -90
  218. package/dist/src/gateway.ts +0 -50
  219. package/dist/src/index.ts +0 -44
  220. package/dist/src/types.ts +0 -3090
  221. package/dist/src/utils/Effect.ts +0 -65
  222. package/dist/src/version.ts +0 -1
  223. package/dist/src/webhooks.ts +0 -25
  224. package/dist/tsconfig.base.json +0 -54
  225. package/dist/tsconfig.build.json +0 -10
  226. package/dist/tsconfig.examples.json +0 -10
  227. package/dist/tsconfig.json +0 -14
  228. package/dist/tsconfig.madge.json +0 -12
  229. package/dist/tsconfig.test.json +0 -10
  230. package/dist/types.d.ts +0 -2458
  231. package/dist/types.d.ts.map +0 -1
  232. package/dist/utils/Effect.d.ts +0 -5
  233. package/dist/utils/Effect.d.ts.map +0 -1
  234. package/dist/version.d.ts +0 -2
  235. package/dist/version.d.ts.map +0 -1
  236. package/dist/webhooks.d.ts +0 -8
  237. package/dist/webhooks.d.ts.map +0 -1
@@ -1,2 +0,0 @@
1
- export declare const InteractionsErrorTypeId: unique symbol;
2
- //# sourceMappingURL=error.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/Interactions/error.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,eAEnC,CAAA"}
@@ -1,20 +0,0 @@
1
- import * as Effect from "effect/Effect";
2
- import * as Layer from "effect/Layer";
3
- import * as ServiceMap from "effect/ServiceMap";
4
- import { DiscordGateway } from "../DiscordGateway.ts";
5
- import type { DiscordRESTError } from "../DiscordREST.ts";
6
- import { DiscordREST } from "../DiscordREST.ts";
7
- import type { DefinitionNotFound } from "./handlers.ts";
8
- import type { DiscordInteraction, InteractionBuilder } from "./index.ts";
9
- export declare const interactionsSync: ServiceMap.Reference<boolean>;
10
- export declare const setInteractionsSync: (enabled: boolean) => <RIn2, E2, ROut2>(self: Layer.Layer<ROut2, E2, RIn2>) => Layer.Layer<ROut2, E2, Exclude<RIn2, never>>;
11
- export declare const run: <R, R2, E, TE, E2>(postHandler: (effect: Effect.Effect<void, TE | DiscordRESTError | DefinitionNotFound, R | DiscordREST | DiscordInteraction>) => Effect.Effect<void, E2, R2>) => (ix: InteractionBuilder<R, E, TE>) => Effect.Effect<never, E2 | DiscordRESTError, DiscordREST | DiscordGateway | Exclude<R2, DiscordInteraction>>;
12
- export interface InteractionsRegistryService {
13
- readonly register: <E>(ix: InteractionBuilder<never, E, never>) => Effect.Effect<void>;
14
- }
15
- declare const InteractionsRegistry_base: ServiceMap.ServiceClass<InteractionsRegistry, "dfx/Interactions/InteractionsRegistry", InteractionsRegistryService>;
16
- export declare class InteractionsRegistry extends InteractionsRegistry_base {
17
- }
18
- export declare const InteractionsRegistryLive: Layer.Layer<InteractionsRegistry, never, DiscordREST | DiscordGateway>;
19
- export {};
20
- //# sourceMappingURL=gateway.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../src/Interactions/gateway.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAIrC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAM/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAEvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAIxE,eAAO,MAAM,gBAAgB,+BAE3B,CAAA;AAEF,eAAO,MAAM,mBAAmB,GAAI,SAAS,OAAO,0GACK,CAAA;AAMzD,eAAO,MAAM,GAAG,GACb,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EACf,aAAa,CACX,MAAM,EAAE,MAAM,CAAC,MAAM,CACnB,IAAI,EACJ,EAAE,GAAG,gBAAgB,GAAG,kBAAkB,EAC1C,CAAC,GAAG,WAAW,GAAG,kBAAkB,CACrC,KACE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,MAGhC,IAAI,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAC/B,MAAM,CAAC,MAAM,CACd,KAAK,EACL,EAAE,GAAG,gBAAgB,EACrB,WAAW,GAAG,cAAc,GAAG,OAAO,CAAC,EAAE,EAAE,kBAAkB,CAAC,CA4F5D,CAAA;AAmCN,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,EACnB,EAAE,EAAE,kBAAkB,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,KACpC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CACzB;;AAED,qBAAa,oBAAqB,SAAQ,yBAGE;CAAG;AAE/C,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,KAAK,CAChD,oBAAoB,EACpB,KAAK,EACL,WAAW,GAAG,cAAc,CACsB,CAAA"}
@@ -1,15 +0,0 @@
1
- import type * as Chunk from "effect/Chunk";
2
- import * as Effect from "effect/Effect";
3
- import * as Ctx from "./context.ts";
4
- import type * as D from "./definitions.ts";
5
- import * as Discord from "../types.ts";
6
- import type { Scope } from "effect/Scope";
7
- export declare class DefinitionNotFound {
8
- readonly interaction: Discord.APIInteraction;
9
- readonly _tag = "DefinitionNotFound";
10
- constructor(interaction: Discord.APIInteraction);
11
- }
12
- type Handler<R, E, A> = Effect.Effect<A, E | DefinitionNotFound, R | Ctx.DiscordInteraction>;
13
- export declare const handlers: <R, E, TE, A, B>(definitions: Chunk.Chunk<readonly [handler: D.InteractionDefinition<R, E>, transform: (self: Effect.Effect<A, E, R>) => Effect.Effect<B, TE, R>]>, handleResponse: (ix: Discord.APIInteraction, _: Discord.CreateInteractionResponseRequest) => Effect.Effect<A, E, R>) => Record<Discord.InteractionTypes, (i: Discord.APIInteraction) => Handler<Exclude<R, Scope>, E, B>>;
14
- export {};
15
- //# sourceMappingURL=handlers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../src/Interactions/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,GAAG,MAAM,cAAc,CAAA;AACnC,OAAO,KAAK,KAAK,CAAC,MAAM,kBAAkB,CAAA;AAE1C,OAAO,KAAK,OAAO,MAAM,aAAa,CAAA;AACtC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAEzC,qBAAa,kBAAkB;IAEjB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,cAAc;IADxD,QAAQ,CAAC,IAAI,wBAAuB;gBACf,WAAW,EAAE,OAAO,CAAC,cAAc;CACzD;AAED,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,MAAM,CACnC,CAAC,EACD,CAAC,GAAG,kBAAkB,EACtB,CAAC,GAAG,GAAG,CAAC,kBAAkB,CAC3B,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EACrC,aAAa,KAAK,CAAC,KAAK,CACtB,SAAS,CACP,OAAO,EAAE,CAAC,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,EACtC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CACrE,CACF,EACD,gBAAgB,CACd,EAAE,EAAE,OAAO,CAAC,cAAc,EAC1B,CAAC,EAAE,OAAO,CAAC,gCAAgC,KACxC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC1B,MAAM,CACP,OAAO,CAAC,gBAAgB,EACxB,CAAC,CAAC,EAAE,OAAO,CAAC,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CA0EhE,CAAA"}
@@ -1,17 +0,0 @@
1
- export { response } from "../Helpers/interactions.ts";
2
- export * from "./builder.ts";
3
- export * from "./context.ts";
4
- export type { InteractionDefinition } from "./definitions.ts";
5
- export { autocomplete, global, guild, messageComponent, modalSubmit, } from "./definitions.ts";
6
- export declare const id: (query: string) => (customId: string) => boolean;
7
- export declare const idStartsWith: (query: string) => (customId: string) => boolean;
8
- export declare const idRegex: (query: RegExp) => (customId: string) => boolean;
9
- export declare const option: (command: string, optionName: string) => (data: {
10
- readonly name: string;
11
- }, focusedOption: {
12
- readonly name: string;
13
- }) => boolean;
14
- export declare const optionOnly: (optionName: string) => (_: unknown, focusedOption: {
15
- readonly name: string;
16
- }) => boolean;
17
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/Interactions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AACrD,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,YAAY,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EACL,YAAY,EACZ,MAAM,EACN,KAAK,EACL,gBAAgB,EAChB,WAAW,GACZ,MAAM,kBAAkB,CAAA;AAGzB,eAAO,MAAM,EAAE,GAAI,OAAO,MAAM,MAAM,UAAU,MAAM,YAAuB,CAAA;AAE7E,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,MAAM,UAAU,MAAM,YACpC,CAAA;AAE5B,eAAO,MAAM,OAAO,GAAI,OAAO,MAAM,MAAM,UAAU,MAAM,YACrC,CAAA;AAEtB,eAAO,MAAM,MAAM,GAChB,SAAS,MAAM,EAAE,YAAY,MAAM,MACnC,MAAM;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,eAAe;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,YACd,CAAA;AAE9D,eAAO,MAAM,UAAU,GACpB,YAAY,MAAM,MAClB,GAAG,OAAO,EAAE,eAAe;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,YAClB,CAAA"}
@@ -1,61 +0,0 @@
1
- import * as Chunk from "effect/Chunk";
2
- import * as Effect from "effect/Effect";
3
- import type * as D from "./definitions.ts";
4
- import type * as Discord from "../types.ts";
5
- export type DefinitionFlattened<R, E, TE, A> = D.InteractionDefinition<R, E> extends infer Def ? {
6
- [K in keyof Def]: K extends "handle" ? (_: Discord.APIInteraction) => Effect.Effect<A, TE, R> : Def[K];
7
- } : never;
8
- export type DefinitionFlattenedCommand<R, E, TE, A> = Extract<DefinitionFlattened<R, E, TE, A>, {
9
- _tag: "GlobalApplicationCommand" | "GuildApplicationCommand";
10
- }>;
11
- export declare const flattenDefinitions: <R, E, TE, A, B>(definitions: Chunk.Chunk<readonly [handler: D.InteractionDefinition<R, E>, transform: (self: Effect.Effect<A, E, R>) => Effect.Effect<B, TE, R>]>, handleResponse: (ix: Discord.APIInteraction, _: Discord.CreateInteractionResponseRequest) => Effect.Effect<A, E, R>) => ({
12
- handle: (i: Discord.APIInteraction) => Effect.Effect<B, TE, Exclude<R, import("effect/Scope").Scope>>;
13
- _tag: "GlobalApplicationCommand";
14
- command: Discord.ApplicationCommandCreateRequest;
15
- } | {
16
- handle: (i: Discord.APIInteraction) => Effect.Effect<B, TE, Exclude<R, import("effect/Scope").Scope>>;
17
- _tag: "GuildApplicationCommand";
18
- command: Discord.ApplicationCommandCreateRequest;
19
- } | {
20
- handle: (i: Discord.APIInteraction) => Effect.Effect<B, TE, Exclude<R, import("effect/Scope").Scope>>;
21
- _tag: "MessageComponent";
22
- predicate: (customId: string) => boolean;
23
- } | {
24
- handle: (i: Discord.APIInteraction) => Effect.Effect<B, TE, Exclude<R, import("effect/Scope").Scope>>;
25
- _tag: "ModalSubmit";
26
- predicate: (customId: string) => boolean;
27
- } | {
28
- handle: (i: Discord.APIInteraction) => Effect.Effect<B, TE, Exclude<R, import("effect/Scope").Scope>>;
29
- _tag: "Autocomplete";
30
- predicate: (data: Discord.APIApplicationCommandInteraction["data"], focusedOption: Discord.APIApplicationCommandInteractionDataOption) => boolean;
31
- })[];
32
- export declare const splitDefinitions: <R, E, TE, A>(definitions: ReadonlyArray<DefinitionFlattened<R, E, TE, A>>) => {
33
- GlobalApplicationCommand: {
34
- readonly _tag: "GlobalApplicationCommand";
35
- readonly command: Discord.ApplicationCommandCreateRequest;
36
- readonly handle: (_: Discord.APIInteraction) => Effect.Effect<A, TE, R>;
37
- }[];
38
- GuildApplicationCommand: {
39
- readonly _tag: "GuildApplicationCommand";
40
- readonly command: Discord.ApplicationCommandCreateRequest;
41
- readonly handle: (_: Discord.APIInteraction) => Effect.Effect<A, TE, R>;
42
- }[];
43
- MessageComponent: {
44
- readonly _tag: "MessageComponent";
45
- readonly predicate: (customId: string) => boolean;
46
- readonly handle: (_: Discord.APIInteraction) => Effect.Effect<A, TE, R>;
47
- }[];
48
- ModalSubmit: {
49
- readonly _tag: "ModalSubmit";
50
- readonly predicate: (customId: string) => boolean;
51
- readonly handle: (_: Discord.APIInteraction) => Effect.Effect<A, TE, R>;
52
- }[];
53
- Autocomplete: {
54
- readonly _tag: "Autocomplete";
55
- readonly predicate: (data: Discord.APIApplicationCommandInteraction["data"], focusedOption: Discord.APIApplicationCommandInteractionDataOption) => boolean;
56
- readonly handle: (_: Discord.APIInteraction) => Effect.Effect<A, TE, R>;
57
- }[];
58
- } & {
59
- readonly Commands: Record<string, DefinitionFlattenedCommand<R, E, TE, A>>;
60
- };
61
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/Interactions/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,CAAC,MAAM,kBAAkB,CAAA;AAC1C,OAAO,KAAK,KAAK,OAAO,MAAM,aAAa,CAAA;AAI3C,MAAM,MAAM,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IACzC,CAAC,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,GAAG,GAC3C;KACG,CAAC,IAAI,MAAM,GAAG,GAAG,CAAC,SAAS,QAAQ,GAChC,CAAC,CAAC,EAAE,OAAO,CAAC,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GACtD,GAAG,CAAC,CAAC,CAAC;CACX,GACD,KAAK,CAAA;AAEX,MAAM,MAAM,0BAA0B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,OAAO,CAC3D,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAChC;IAAE,IAAI,EAAE,0BAA0B,GAAG,yBAAyB,CAAA;CAAE,CACjE,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAC/C,aAAa,KAAK,CAAC,KAAK,CACtB,SAAS,CACP,OAAO,EAAE,CAAC,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,EACtC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CACrE,CACF,EACD,gBAAgB,CACd,EAAE,EAAE,OAAO,CAAC,cAAc,EAC1B,CAAC,EAAE,OAAO,CAAC,gCAAgC,KACxC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBAKjB,OAAO,CAAC,cAAc;;;;gBAAtB,OAAO,CAAC,cAAc;;;;gBAAtB,OAAO,CAAC,cAAc;;;;gBAAtB,OAAO,CAAC,cAAc;;;;gBAAtB,OAAO,CAAC,cAAc;;;IAsB7B,CAAA;AAEL,eAAO,MAAM,gBAAgB,GAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAC1C,aAAa,aAAa,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;;;;6BAlD9C,OAAO,CAAC,cAAc;;;;;6BAAtB,OAAO,CAAC,cAAc;;;;;6BAAtB,OAAO,CAAC,cAAc;;;;;6BAAtB,OAAO,CAAC,cAAc;;;;;6BAAtB,OAAO,CAAC,cAAc;;;uBAkEb,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;CAe/E,CAAA"}
@@ -1,71 +0,0 @@
1
- import type * as Cause from "effect/Cause";
2
- import type * as Config from "effect/Config";
3
- import * as Redacted from "effect/Redacted";
4
- import * as Effect from "effect/Effect";
5
- import * as Layer from "effect/Layer";
6
- import * as ServiceMap from "effect/ServiceMap";
7
- import type { DefinitionNotFound } from "./handlers.ts";
8
- import type { InteractionBuilder } from "./index.ts";
9
- import type * as Discord from "../types.ts";
10
- import * as Verify from "discord-verify";
11
- export declare class BadWebhookSignature {
12
- readonly _tag = "BadWebhookSignature";
13
- }
14
- export type Headers = Record<string, string | Array<string> | undefined>;
15
- export interface MakeConfigOpts {
16
- readonly applicationId: string;
17
- readonly publicKey: Redacted.Redacted;
18
- readonly crypto: SubtleCrypto;
19
- readonly algorithm: keyof typeof Verify.PlatformAlgorithm;
20
- }
21
- declare const WebhookConfig_base: ServiceMap.ServiceClass<WebhookConfig, "dfx/Interactions/WebhookConfig", {
22
- applicationId: string;
23
- publicKey: string;
24
- crypto: SubtleCrypto;
25
- algorithm: string | {
26
- name: string;
27
- namedCurve: string;
28
- public: boolean;
29
- } | {
30
- name: string;
31
- namedCurve: string;
32
- public: boolean;
33
- } | {
34
- name: string;
35
- namedCurve: string;
36
- public: boolean;
37
- } | {
38
- name: string;
39
- namedCurve: string;
40
- };
41
- }>;
42
- export declare class WebhookConfig extends WebhookConfig_base {
43
- }
44
- export declare const layer: (opts: MakeConfigOpts) => Layer.Layer<WebhookConfig, never, never>;
45
- export declare const layerConfig: (config: Config.Config<MakeConfigOpts>) => Layer.Layer<WebhookConfig, Config.ConfigError>;
46
- declare const WebhookParseError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").MatchRecord<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }, void, { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => Cause.YieldableError & {
47
- readonly _tag: "WebhookParseError";
48
- } & Readonly<A>;
49
- export declare class WebhookParseError extends WebhookParseError_base<{
50
- cause: unknown;
51
- }> {
52
- }
53
- export interface HandleWebhookOpts<E> {
54
- headers: Headers;
55
- body: string;
56
- success: (a: Discord.CreateInteractionResponseRequest) => Effect.Effect<void>;
57
- error: (e: Cause.Cause<E>) => Effect.Effect<void>;
58
- }
59
- /**
60
- * @tsplus getter dfx/InteractionBuilder webhookHandler
61
- */
62
- export declare const makeHandler: <R, E, TE>(ix: InteractionBuilder<R, E, TE>) => (({ body, error, headers, success, }: HandleWebhookOpts<E | WebhookParseError | BadWebhookSignature | DefinitionNotFound>) => Effect.Effect<void, never, WebhookConfig>);
63
- /**
64
- * @tsplus getter dfx/InteractionBuilder simpleWebhookHandler
65
- */
66
- export declare const makeSimpleHandler: <R, E, TE>(ix: InteractionBuilder<R, E, TE>) => (({ body, headers, }: {
67
- headers: Headers;
68
- body: string;
69
- }) => Effect.Effect<Discord.CreateInteractionResponseRequest, BadWebhookSignature | WebhookParseError | DefinitionNotFound, WebhookConfig>);
70
- export {};
71
- //# sourceMappingURL=webhook.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../src/Interactions/webhook.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAE/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAEvD,OAAO,KAAK,EAAsB,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAExE,OAAO,KAAK,KAAK,OAAO,MAAM,aAAa,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAA;AAGxC,qBAAa,mBAAmB;IAC9B,QAAQ,CAAC,IAAI,yBAAwB;CACtC;AAED,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,CAAA;AAgCxE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAA;IACrC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,OAAO,MAAM,CAAC,iBAAiB,CAAA;CAC1D;;;;;;;;;;;;;;;;;;;;;;AAaD,qBAAa,aAAc,SAAQ,kBAGE;CAAG;AAExC,eAAO,MAAM,KAAK,GAAI,MAAM,cAAc,6CACM,CAAA;AAEhD,eAAO,MAAM,WAAW,EAAE,CACxB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,KAClC,KAAK,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAEyB,CAAA;;;;AAE3E,qBAAa,iBAAkB,SAAQ,uBAAsC;IAC3E,KAAK,EAAE,OAAO,CAAA;CACf,CAAC;CAAG;AAqDL,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,gCAAgC,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC7E,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CAClD;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAClC,IAAI,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAC/B,CAAC,CAAC,EACH,IAAI,EACJ,KAAK,EACL,OAAO,EACP,OAAO,GACR,EAAE,iBAAiB,CAClB,CAAC,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,kBAAkB,CACjE,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC,CAkB9C,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EACxC,IAAI,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAC/B,CAAC,CAAC,EACH,IAAI,EACJ,OAAO,GACR,EAAE;IACD,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb,KAAK,MAAM,CAAC,MAAM,CACjB,OAAO,CAAC,gCAAgC,EACxC,mBAAmB,GAAG,iBAAiB,GAAG,kBAAkB,EAC5D,aAAa,CACd,CAQA,CAAA"}
package/dist/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2023-present The Contributors
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
package/dist/README.md DELETED
@@ -1,66 +0,0 @@
1
- # dfx
2
-
3
- [![Discord](https://img.shields.io/discord/887189613389705256?style=for-the-badge)](https://discord.gg/dtR2Mtu66Q)
4
-
5
- A Discord library built on top of effect
6
-
7
- - Supports both the gateway and webhooks
8
- - Simple yet powerful abstractions to build Discord bots
9
-
10
- ## Example
11
-
12
- ```typescript
13
- import { NodeHttpClient, NodeRuntime, NodeSocket } from "@effect/platform-node"
14
- import { DiscordConfig, Ix } from "dfx"
15
- import { DiscordIxLive, InteractionsRegistry } from "dfx/gateway"
16
- import { Config, Effect, Layer } from "effect"
17
-
18
- // Create a layer for the discord services
19
- const DiscordLayer = DiscordIxLive.pipe(
20
- Layer.provide([
21
- DiscordConfig.layerConfig({
22
- token: Config.redacted("DISCORD_BOT_TOKEN"),
23
- }),
24
- NodeHttpClient.layerUndici,
25
- NodeSocket.layerWebSocketConstructor,
26
- ]),
27
- )
28
-
29
- // Create hello service
30
- const HelloLayer = Layer.effectDiscard(
31
- Effect.gen(function* () {
32
- const registry = yield* InteractionsRegistry
33
-
34
- // Create hello command that responds with "Hello!"
35
- const hello = Ix.global(
36
- {
37
- name: "hello",
38
- description: "A basic command",
39
- },
40
- Effect.succeed({
41
- type: 4,
42
- data: {
43
- content: "Hello!",
44
- },
45
- }),
46
- )
47
-
48
- // register the command(s) and handle errors
49
- yield* registry.register(
50
- Ix.builder.add(hello).catchAllCause(Effect.logError),
51
- )
52
- }),
53
- ).pipe(
54
- // provide discord layer
55
- Layer.provide(DiscordLayer),
56
- )
57
-
58
- // Construct the main layer
59
- const MainLive = Layer.mergeAll(
60
- // add your other services here
61
- HelloLayer,
62
- )
63
-
64
- // run it
65
- NodeRuntime.runMain(Layer.launch(MainLive))
66
- ```
@@ -1,3 +0,0 @@
1
- import type { RateLimitStoreService } from "../RateLimit.ts";
2
- export declare const make: () => RateLimitStoreService;
3
- //# sourceMappingURL=memory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../src/RateLimit/memory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAiB,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAO3E,eAAO,MAAM,IAAI,QAAO,qBAqDvB,CAAA"}
@@ -1,3 +0,0 @@
1
- import type { Duration } from "effect/Duration";
2
- export declare const delayFrom: (window: number, limit: number, count: number, ttl: number) => Duration;
3
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/RateLimit/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAG/C,eAAO,MAAM,SAAS,GACpB,QAAQ,MAAM,EACd,OAAO,MAAM,EACb,OAAO,MAAM,EACb,KAAK,MAAM,KACV,QAmBF,CAAA"}
@@ -1,30 +0,0 @@
1
- import * as Duration from "effect/Duration";
2
- import type * as Option from "effect/Option";
3
- import * as Effect from "effect/Effect";
4
- import * as Layer from "effect/Layer";
5
- import * as ServiceMap from "effect/ServiceMap";
6
- export type BucketDetails = {
7
- key: "global" | string;
8
- resetAfter: number;
9
- limit: number;
10
- };
11
- export interface RateLimitStoreService {
12
- readonly hasBucket: (bucketKey: string) => Effect.Effect<boolean>;
13
- readonly putBucket: (bucket: BucketDetails) => Effect.Effect<void>;
14
- readonly getBucketForRoute: (route: string) => Effect.Effect<Option.Option<BucketDetails>>;
15
- readonly putBucketRoute: (route: string, bucketKey: string) => Effect.Effect<void>;
16
- readonly incrementCounter: (key: string, window: number, limit: number) => Effect.Effect<readonly [count: number, ttl: number]>;
17
- readonly removeCounter: (key: string) => Effect.Effect<void>;
18
- }
19
- declare const RateLimitStore_base: ServiceMap.ServiceClass<RateLimitStore, "dfx/RateLimit/RateLimitStore", RateLimitStoreService>;
20
- export declare class RateLimitStore extends RateLimitStore_base {
21
- }
22
- export declare const MemoryRateLimitStoreLive: Layer.Layer<RateLimitStore, never, never>;
23
- declare const RateLimiter_base: ServiceMap.ServiceClass<RateLimiter, "dfx/RateLimit/RateLimiter", {
24
- maybeWait: (key: string, window: Duration.Duration, limit: number, multiplier?: number) => Effect.Effect<void, never, never>;
25
- }>;
26
- export declare class RateLimiter extends RateLimiter_base {
27
- }
28
- export declare const RateLimiterLive: Layer.Layer<RateLimiter, never, RateLimitStore>;
29
- export {};
30
- //# sourceMappingURL=RateLimit.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RateLimit.d.ts","sourceRoot":"","sources":["./src/RateLimit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAE/C,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,EAAE,QAAQ,GAAG,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAEjE,QAAQ,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAElE,QAAQ,CAAC,iBAAiB,EAAE,CAC1B,KAAK,EAAE,MAAM,KACV,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAA;IAEhD,QAAQ,CAAC,cAAc,EAAE,CACvB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,KACd,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAExB,QAAQ,CAAC,gBAAgB,EAAE,CACzB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,KACV,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;IAEzD,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CAC7D;;AAED,qBAAa,cAAe,SAAQ,mBAGD;CAAG;AAEtC,eAAO,MAAM,wBAAwB,2CAA0C,CAAA;;eAsChE,CACT,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,QAAQ,CAAC,QAAQ,EACzB,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,MAAM,KAChB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC;;AAR1C,qBAAa,WAAY,SAAQ,gBAUD;CAAG;AAEnC,eAAO,MAAM,eAAe,iDAAyC,CAAA"}
package/dist/gateway.d.ts DELETED
@@ -1,19 +0,0 @@
1
- import * as CachePrelude from "./Cache/prelude.ts";
2
- import type { DiscordGateway } from "./DiscordGateway.ts";
3
- import * as DiscordWS from "./DiscordGateway/DiscordWS.ts";
4
- import * as Shard from "./DiscordGateway/Shard.ts";
5
- import * as SendEvent from "./DiscordGateway/Shard/sendEvents.ts";
6
- import * as ShardStore from "./DiscordGateway/ShardStore.ts";
7
- import type { DiscordREST } from "./DiscordREST.ts";
8
- import type { InteractionsRegistry } from "./Interactions/gateway.ts";
9
- import type { RateLimiter } from "./RateLimit.ts";
10
- import * as Layer from "effect/Layer";
11
- import type * as HttpClient from "effect/unstable/http/HttpClient";
12
- import type { DiscordConfig } from "./DiscordConfig.ts";
13
- import type { WebSocketConstructor } from "effect/unstable/socket/Socket";
14
- export { DiscordGateway, DiscordGatewayLive } from "./DiscordGateway.ts";
15
- export { InteractionsRegistry, InteractionsRegistryLive, interactionsSync, run as runIx, setInteractionsSync, } from "./Interactions/gateway.ts";
16
- export { CachePrelude, DiscordWS, SendEvent, Shard, ShardStore };
17
- export declare const DiscordLive: Layer.Layer<RateLimiter | DiscordGateway | DiscordREST, never, DiscordConfig | WebSocketConstructor | HttpClient.HttpClient>;
18
- export declare const DiscordIxLive: Layer.Layer<RateLimiter | DiscordGateway | DiscordREST | InteractionsRegistry, never, DiscordConfig | WebSocketConstructor | HttpClient.HttpClient>;
19
- //# sourceMappingURL=gateway.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["./src/gateway.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEzD,OAAO,KAAK,SAAS,MAAM,+BAA+B,CAAA;AAE1D,OAAO,KAAK,KAAK,MAAM,2BAA2B,CAAA;AAElD,OAAO,KAAK,SAAS,MAAM,sCAAsC,CAAA;AACjE,OAAO,KAAK,UAAU,MAAM,gCAAgC,CAAA;AAE5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAErE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAEjD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,UAAU,MAAM,iCAAiC,CAAA;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AAEzE,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAExE,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,gBAAgB,EAChB,GAAG,IAAI,KAAK,EACZ,mBAAmB,GACpB,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,CAAA;AAEhE,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,KAAK,CACnC,WAAW,GAAG,cAAc,GAAG,WAAW,EAC1C,KAAK,EACL,aAAa,GAAG,oBAAoB,GAAG,UAAU,CAAC,UAAU,CAO7D,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,KAAK,CACrC,WAAW,GAAG,cAAc,GAAG,WAAW,GAAG,oBAAoB,EACjE,KAAK,EACL,aAAa,GAAG,oBAAoB,GAAG,UAAU,CAAC,UAAU,CACI,CAAA"}
package/dist/index.d.ts DELETED
@@ -1,18 +0,0 @@
1
- import type { HttpClient } from "effect/unstable/http/HttpClient";
2
- import * as Cache from "./Cache.ts";
3
- import * as DiscordConfig from "./DiscordConfig.ts";
4
- import type { DiscordREST } from "./DiscordREST.ts";
5
- import * as Flags from "./Helpers/flags.ts";
6
- import * as Intents from "./Helpers/intents.ts";
7
- import * as IxHelpers from "./Helpers/interactions.ts";
8
- import * as Members from "./Helpers/members.ts";
9
- import * as Perms from "./Helpers/permissions.ts";
10
- import * as UI from "./Helpers/ui.ts";
11
- import * as Ix from "./Interactions/index.ts";
12
- import * as Discord from "./types.ts";
13
- import * as Layer from "effect/Layer";
14
- export { DiscordREST, DiscordRESTLive } from "./DiscordREST.ts";
15
- export { type BucketDetails, MemoryRateLimitStoreLive, RateLimitStore, RateLimiter, RateLimiterLive, } from "./RateLimit.ts";
16
- export { Cache, Discord, DiscordConfig, Flags, Intents, Ix, IxHelpers, Members, Perms, UI, };
17
- export declare const DiscordRESTMemoryLive: Layer.Layer<DiscordREST, never, DiscordConfig.DiscordConfig | HttpClient>;
18
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["./src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEnD,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;AACrC,OAAO,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAE7C,OAAO,KAAK,OAAO,MAAM,YAAY,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAE/D,OAAO,EACL,KAAK,aAAa,EAClB,wBAAwB,EACxB,cAAc,EACd,WAAW,EACX,eAAe,GAChB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EACL,KAAK,EACL,OAAO,EACP,aAAa,EACb,KAAK,EACL,OAAO,EACP,EAAE,EACF,SAAS,EACT,OAAO,EACP,KAAK,EACL,EAAE,GACH,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,KAAK,CAC7C,WAAW,EACX,KAAK,EACL,aAAa,CAAC,aAAa,GAAG,UAAU,CACuB,CAAA"}
@@ -1,3 +0,0 @@
1
- export const createParentDriver = driver => driver;
2
- export const createDriver = driver => driver;
3
- //# sourceMappingURL=driver.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"driver.mjs","names":["createParentDriver","driver","createDriver"],"sources":["../../src/Cache/driver.ts"],"sourcesContent":[null],"mappings":"AAwBA,OAAO,MAAMA,kBAAkB,GAAUC,MAA+B,IACtEA,MAAM;AAWR,OAAO,MAAMC,YAAY,GAAUD,MAAyB,IAAKA,MAAM","ignoreList":[]}
@@ -1,48 +0,0 @@
1
- import * as Option from "effect/Option";
2
- import * as Effect from "effect/Effect";
3
- import { createDriver, createParentDriver } from "./driver.js";
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.fromNullishOr(map.get(parentId)?.get(resourceId))),
16
- getForParent: parentId => Effect.sync(() => Option.fromNullishOr(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.void,
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.fromNullishOr(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.void,
45
- run: Effect.never
46
- });
47
- });
48
- //# sourceMappingURL=memory.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory.mjs","names":["Option","Effect","createDriver","createParentDriver","createWithParent","sync","map","Map","size","count","a","values","sizeForParent","parentId","get","resourceId","fromNullishOr","getForParent","set","resource","has","delete","parentDelete","refreshTTL","void","run","never","create"],"sources":["../../src/Cache/memory.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,MAAM,MAAM,eAAe;AAEvC,SAASC,YAAY,EAAEC,kBAAkB,QAAQ,aAAa;AAE9D,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAG9BH,MAAM,CAACI,IAAI,CAAC,MAAK;EACf,MAAMC,GAAG,GAAG,IAAIC,GAAG,EAA0B;EAE7C,OAAOJ,kBAAkB,CAAC;IACxBK,IAAI,EAAEP,MAAM,CAACI,IAAI,CAAC,MAAK;MACrB,IAAII,KAAK,GAAG,CAAC;MACb,KAAK,MAAMC,CAAC,IAAIJ,GAAG,CAACK,MAAM,EAAE,EAAE;QAC5BF,KAAK,IAAIC,CAAC,CAACF,IAAI;MACjB;MACA,OAAOC,KAAK;IACd,CAAC,CAAC;IAEFG,aAAa,EAAEC,QAAQ,IACrBZ,MAAM,CAACI,IAAI,CAAC,MAAMC,GAAG,CAACQ,GAAG,CAACD,QAAQ,CAAC,EAAEL,IAAI,IAAI,CAAC,CAAC;IAEjDM,GAAG,EAAEA,CAACD,QAAQ,EAAEE,UAAU,KACxBd,MAAM,CAACI,IAAI,CACT,MACEL,MAAM,CAACgB,aAAa,CAACV,GAAG,CAACQ,GAAG,CAACD,QAAQ,CAAC,EAAEC,GAAG,CAACC,UAAU,CAAC,CAAC,CAC3D;IAEHE,YAAY,EAAEJ,QAAQ,IACpBZ,MAAM,CAACI,IAAI,CAAC,MAAML,MAAM,CAACgB,aAAa,CAACV,GAAG,CAACQ,GAAG,CAACD,QAAQ,CAAC,CAAC,CAAC;IAE5DK,GAAG,EAAEA,CAACL,QAAQ,EAAEE,UAAU,EAAEI,QAAQ,KAClClB,MAAM,CAACI,IAAI,CAAC,MAAK;MACf,IAAI,CAACC,GAAG,CAACc,GAAG,CAACP,QAAQ,CAAC,EAAE;QACtBP,GAAG,CAACY,GAAG,CAACL,QAAQ,EAAE,IAAIN,GAAG,EAAE,CAAC;MAC9B;MACAD,GAAG,CAACQ,GAAG,CAACD,QAAQ,CAAE,CAACK,GAAG,CAACH,UAAU,EAAEI,QAAQ,CAAC;IAC9C,CAAC,CAAC;IAEJE,MAAM,EAAEA,CAACR,QAAQ,EAAEE,UAAU,KAC3Bd,MAAM,CAACI,IAAI,CAAC,MAAK;MACfC,GAAG,CAACQ,GAAG,CAACD,QAAQ,CAAC,EAAEQ,MAAM,CAACN,UAAU,CAAC;IACvC,CAAC,CAAC;IAEJO,YAAY,EAAET,QAAQ,IACpBZ,MAAM,CAACI,IAAI,CAAC,MAAK;MACfC,GAAG,CAACe,MAAM,CAACR,QAAQ,CAAC;IACtB,CAAC,CAAC;IAEJU,UAAU,EAAEA,CAAA,KAAMtB,MAAM,CAACuB,IAAI;IAE7BC,GAAG,EAAExB,MAAM,CAACyB;GACb,CAAC;AACJ,CAAC,CAAC;AAEJ,OAAO,MAAMC,MAAM,GAAGA,CAAA,KACpB1B,MAAM,CAACI,IAAI,CAAC,MAAK;EACf,MAAMC,GAAG,GAAG,IAAIC,GAAG,EAAa;EAEhC,OAAOL,YAAY,CAAC;IAClBM,IAAI,EAAEP,MAAM,CAACI,IAAI,CAAC,MAAMC,GAAG,CAACE,IAAI,CAAC;IAEjCM,GAAG,EAAEC,UAAU,IACbd,MAAM,CAACI,IAAI,CACT,MAAwBL,MAAM,CAACgB,aAAa,CAACV,GAAG,CAACQ,GAAG,CAACC,UAAU,CAAC,CAAC,CAClE;IAEHG,GAAG,EAAEA,CAACH,UAAU,EAAEI,QAAQ,KACxBlB,MAAM,CAACI,IAAI,CAAC,MAAK;MACfC,GAAG,CAACY,GAAG,CAACH,UAAU,EAAEI,QAAQ,CAAC;IAC/B,CAAC,CAAC;IAEJE,MAAM,EAAEN,UAAU,IAChBd,MAAM,CAACI,IAAI,CAAC,MAAK;MACfC,GAAG,CAACe,MAAM,CAACN,UAAU,CAAC;IACxB,CAAC,CAAC;IAEJQ,UAAU,EAAEA,CAAA,KAAMtB,MAAM,CAACuB,IAAI;IAE7BC,GAAG,EAAExB,MAAM,CAACyB;GACb,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -1,119 +0,0 @@
1
- import { createDriver, createParentDriver } from "./driver.js";
2
- import * as Array from "effect/Array";
3
- import * as Duration from "effect/Duration";
4
- import * as Effect from "effect/Effect";
5
- import * as Option from "effect/Option";
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.fromNullishOr(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 => Effect.fromNullishOr(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(Array.reduce(new Map(), (acc, [id, item]) => item._tag === "Some" ? acc.set(id, item.value) : acc)), Effect.catchNoSuchElement),
93
- set: (parentId, resourceId, resource) => Effect.andThen(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.andThen(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
@@ -1 +0,0 @@
1
- {"version":3,"file":"memoryTTL.mjs","names":["createDriver","createParentDriver","Array","Duration","Effect","Option","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","fromNullishOr","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","catchNoSuchElement","andThen","has","Set","add","parentDelete","suspend","effects","all","discard"],"sources":["../../src/Cache/memoryTTL.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}