dfx 1.0.5 → 1.0.7

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 (194) hide show
  1. package/dist/Cache/driver.d.ts.map +1 -1
  2. package/dist/Cache/memory.d.ts.map +1 -1
  3. package/dist/Cache/memoryTTL.d.ts.map +1 -1
  4. package/dist/Cache/prelude.d.ts.map +1 -1
  5. package/dist/Cache.d.ts.map +1 -1
  6. package/dist/DiscordConfig.d.ts.map +1 -1
  7. package/dist/DiscordGateway/DiscordWS.d.ts.map +1 -1
  8. package/dist/DiscordGateway/Messaging.d.ts.map +1 -1
  9. package/dist/DiscordGateway/Shard/StateStore.d.ts.map +1 -1
  10. package/dist/DiscordGateway/Shard/heartbeats.d.ts.map +1 -1
  11. package/dist/DiscordGateway/Shard/identify.d.ts.map +1 -1
  12. package/dist/DiscordGateway/Shard/sendEvents.d.ts.map +1 -1
  13. package/dist/DiscordGateway/Shard/utils.d.ts.map +1 -1
  14. package/dist/DiscordGateway/Shard.d.ts.map +1 -1
  15. package/dist/DiscordGateway/ShardStore.d.ts.map +1 -1
  16. package/dist/DiscordGateway/Sharder.d.ts +1 -1
  17. package/dist/DiscordGateway/Sharder.d.ts.map +1 -1
  18. package/dist/DiscordGateway.d.ts.map +1 -1
  19. package/dist/DiscordREST/Generated.d.ts.map +1 -1
  20. package/dist/DiscordREST/utils.d.ts.map +1 -1
  21. package/dist/DiscordREST.d.ts.map +1 -1
  22. package/dist/Helpers/flags.d.ts.map +1 -1
  23. package/dist/Helpers/intents.d.ts.map +1 -1
  24. package/dist/Helpers/interactions.d.ts.map +1 -1
  25. package/dist/Helpers/members.d.ts.map +1 -1
  26. package/dist/Helpers/permissions.d.ts.map +1 -1
  27. package/dist/Helpers/ui.d.ts.map +1 -1
  28. package/dist/Interactions/builder.d.ts.map +1 -1
  29. package/dist/Interactions/commandHelper.d.ts.map +1 -1
  30. package/dist/Interactions/context.d.ts.map +1 -1
  31. package/dist/Interactions/definitions.d.ts.map +1 -1
  32. package/dist/Interactions/error.d.ts.map +1 -1
  33. package/dist/Interactions/gateway.d.ts.map +1 -1
  34. package/dist/Interactions/handlers.d.ts.map +1 -1
  35. package/dist/Interactions/index.d.ts.map +1 -1
  36. package/dist/Interactions/utils.d.ts.map +1 -1
  37. package/dist/Interactions/webhook.d.ts.map +1 -1
  38. package/dist/RateLimit/memory.d.ts.map +1 -1
  39. package/dist/RateLimit/utils.d.ts.map +1 -1
  40. package/dist/RateLimit.d.ts.map +1 -1
  41. package/dist/gateway.d.ts.map +1 -1
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/types.d.ts.map +1 -1
  44. package/dist/utils/Effect.d.ts.map +1 -1
  45. package/dist/version.d.ts +1 -1
  46. package/dist/version.d.ts.map +1 -1
  47. package/dist/version.js +1 -1
  48. package/dist/webhooks.d.ts.map +1 -1
  49. package/package.json +5 -5
  50. package/src/version.ts +1 -1
  51. package/dist/LICENSE +0 -21
  52. package/dist/README.md +0 -66
  53. package/dist/mjs/Cache/driver.mjs +0 -3
  54. package/dist/mjs/Cache/driver.mjs.map +0 -1
  55. package/dist/mjs/Cache/memory.mjs +0 -48
  56. package/dist/mjs/Cache/memory.mjs.map +0 -1
  57. package/dist/mjs/Cache/memoryTTL.mjs +0 -119
  58. package/dist/mjs/Cache/memoryTTL.mjs.map +0 -1
  59. package/dist/mjs/Cache/prelude.mjs +0 -131
  60. package/dist/mjs/Cache/prelude.mjs.map +0 -1
  61. package/dist/mjs/Cache.mjs +0 -90
  62. package/dist/mjs/Cache.mjs.map +0 -1
  63. package/dist/mjs/DiscordConfig.mjs +0 -32
  64. package/dist/mjs/DiscordConfig.mjs.map +0 -1
  65. package/dist/mjs/DiscordGateway/DiscordWS.mjs +0 -77
  66. package/dist/mjs/DiscordGateway/DiscordWS.mjs.map +0 -1
  67. package/dist/mjs/DiscordGateway/Messaging.mjs +0 -35
  68. package/dist/mjs/DiscordGateway/Messaging.mjs.map +0 -1
  69. package/dist/mjs/DiscordGateway/Shard/StateStore.mjs +0 -41
  70. package/dist/mjs/DiscordGateway/Shard/StateStore.mjs.map +0 -1
  71. package/dist/mjs/DiscordGateway/Shard/heartbeats.mjs +0 -25
  72. package/dist/mjs/DiscordGateway/Shard/heartbeats.mjs.map +0 -1
  73. package/dist/mjs/DiscordGateway/Shard/identify.mjs +0 -29
  74. package/dist/mjs/DiscordGateway/Shard/identify.mjs.map +0 -1
  75. package/dist/mjs/DiscordGateway/Shard/sendEvents.mjs +0 -26
  76. package/dist/mjs/DiscordGateway/Shard/sendEvents.mjs.map +0 -1
  77. package/dist/mjs/DiscordGateway/Shard/utils.mjs +0 -3
  78. package/dist/mjs/DiscordGateway/Shard/utils.mjs.map +0 -1
  79. package/dist/mjs/DiscordGateway/Shard.mjs +0 -147
  80. package/dist/mjs/DiscordGateway/Shard.mjs.map +0 -1
  81. package/dist/mjs/DiscordGateway/ShardStore.mjs +0 -24
  82. package/dist/mjs/DiscordGateway/ShardStore.mjs.map +0 -1
  83. package/dist/mjs/DiscordGateway/Sharder.mjs +0 -67
  84. package/dist/mjs/DiscordGateway/Sharder.mjs.map +0 -1
  85. package/dist/mjs/DiscordGateway.mjs +0 -21
  86. package/dist/mjs/DiscordGateway.mjs.map +0 -1
  87. package/dist/mjs/DiscordREST/Generated.mjs +0 -2471
  88. package/dist/mjs/DiscordREST/Generated.mjs.map +0 -1
  89. package/dist/mjs/DiscordREST/utils.mjs +0 -21
  90. package/dist/mjs/DiscordREST/utils.mjs.map +0 -1
  91. package/dist/mjs/DiscordREST.mjs +0 -119
  92. package/dist/mjs/DiscordREST.mjs.map +0 -1
  93. package/dist/mjs/Helpers/flags.mjs +0 -45
  94. package/dist/mjs/Helpers/flags.mjs.map +0 -1
  95. package/dist/mjs/Helpers/intents.mjs +0 -27
  96. package/dist/mjs/Helpers/intents.mjs.map +0 -1
  97. package/dist/mjs/Helpers/interactions.mjs +0 -115
  98. package/dist/mjs/Helpers/interactions.mjs.map +0 -1
  99. package/dist/mjs/Helpers/members.mjs +0 -9
  100. package/dist/mjs/Helpers/members.mjs.map +0 -1
  101. package/dist/mjs/Helpers/permissions.mjs +0 -84
  102. package/dist/mjs/Helpers/permissions.mjs.map +0 -1
  103. package/dist/mjs/Helpers/ui.mjs +0 -137
  104. package/dist/mjs/Helpers/ui.mjs.map +0 -1
  105. package/dist/mjs/Interactions/builder.mjs +0 -56
  106. package/dist/mjs/Interactions/builder.mjs.map +0 -1
  107. package/dist/mjs/Interactions/commandHelper.mjs +0 -49
  108. package/dist/mjs/Interactions/commandHelper.mjs.map +0 -1
  109. package/dist/mjs/Interactions/context.mjs +0 -28
  110. package/dist/mjs/Interactions/context.mjs.map +0 -1
  111. package/dist/mjs/Interactions/definitions.mjs +0 -51
  112. package/dist/mjs/Interactions/definitions.mjs.map +0 -1
  113. package/dist/mjs/Interactions/error.mjs +0 -2
  114. package/dist/mjs/Interactions/error.mjs.map +0 -1
  115. package/dist/mjs/Interactions/gateway.mjs +0 -82
  116. package/dist/mjs/Interactions/gateway.mjs.map +0 -1
  117. package/dist/mjs/Interactions/handlers.mjs +0 -64
  118. package/dist/mjs/Interactions/handlers.mjs.map +0 -1
  119. package/dist/mjs/Interactions/index.mjs +0 -11
  120. package/dist/mjs/Interactions/index.mjs.map +0 -1
  121. package/dist/mjs/Interactions/utils.mjs +0 -26
  122. package/dist/mjs/Interactions/utils.mjs.map +0 -1
  123. package/dist/mjs/Interactions/webhook.mjs +0 -75
  124. package/dist/mjs/Interactions/webhook.mjs.map +0 -1
  125. package/dist/mjs/RateLimit/memory.mjs +0 -39
  126. package/dist/mjs/RateLimit/memory.mjs.map +0 -1
  127. package/dist/mjs/RateLimit/utils.mjs +0 -18
  128. package/dist/mjs/RateLimit/utils.mjs.map +0 -1
  129. package/dist/mjs/RateLimit.mjs +0 -28
  130. package/dist/mjs/RateLimit.mjs.map +0 -1
  131. package/dist/mjs/gateway.mjs +0 -19
  132. package/dist/mjs/gateway.mjs.map +0 -1
  133. package/dist/mjs/index.mjs +0 -18
  134. package/dist/mjs/index.mjs.map +0 -1
  135. package/dist/mjs/types.mjs +0 -356
  136. package/dist/mjs/types.mjs.map +0 -1
  137. package/dist/mjs/utils/Effect.mjs +0 -44
  138. package/dist/mjs/utils/Effect.mjs.map +0 -1
  139. package/dist/mjs/version.mjs +0 -2
  140. package/dist/mjs/version.mjs.map +0 -1
  141. package/dist/mjs/webhooks.mjs +0 -6
  142. package/dist/mjs/webhooks.mjs.map +0 -1
  143. package/dist/package.json +0 -48
  144. package/dist/src/Cache/driver.ts +0 -37
  145. package/dist/src/Cache/memory.ts +0 -83
  146. package/dist/src/Cache/memoryTTL.ts +0 -225
  147. package/dist/src/Cache/prelude.ts +0 -279
  148. package/dist/src/Cache.ts +0 -261
  149. package/dist/src/DiscordConfig.ts +0 -67
  150. package/dist/src/DiscordGateway/DiscordWS.ts +0 -157
  151. package/dist/src/DiscordGateway/Messaging.ts +0 -71
  152. package/dist/src/DiscordGateway/Shard/StateStore.ts +0 -72
  153. package/dist/src/DiscordGateway/Shard/heartbeats.ts +0 -60
  154. package/dist/src/DiscordGateway/Shard/identify.ts +0 -50
  155. package/dist/src/DiscordGateway/Shard/sendEvents.ts +0 -43
  156. package/dist/src/DiscordGateway/Shard/utils.ts +0 -13
  157. package/dist/src/DiscordGateway/Shard.ts +0 -205
  158. package/dist/src/DiscordGateway/ShardStore.ts +0 -42
  159. package/dist/src/DiscordGateway/Sharder.ts +0 -118
  160. package/dist/src/DiscordGateway.ts +0 -79
  161. package/dist/src/DiscordREST/Generated.ts +0 -10832
  162. package/dist/src/DiscordREST/utils.ts +0 -42
  163. package/dist/src/DiscordREST.ts +0 -256
  164. package/dist/src/Helpers/flags.ts +0 -73
  165. package/dist/src/Helpers/intents.ts +0 -35
  166. package/dist/src/Helpers/interactions.ts +0 -317
  167. package/dist/src/Helpers/members.ts +0 -18
  168. package/dist/src/Helpers/permissions.ts +0 -145
  169. package/dist/src/Helpers/ui.ts +0 -253
  170. package/dist/src/Interactions/builder.ts +0 -171
  171. package/dist/src/Interactions/commandHelper.ts +0 -231
  172. package/dist/src/Interactions/context.ts +0 -104
  173. package/dist/src/Interactions/definitions.ts +0 -144
  174. package/dist/src/Interactions/error.ts +0 -3
  175. package/dist/src/Interactions/gateway.ts +0 -193
  176. package/dist/src/Interactions/handlers.ts +0 -108
  177. package/dist/src/Interactions/index.ts +0 -30
  178. package/dist/src/Interactions/utils.ts +0 -93
  179. package/dist/src/Interactions/webhook.ts +0 -204
  180. package/dist/src/RateLimit/memory.ts +0 -63
  181. package/dist/src/RateLimit/utils.ts +0 -28
  182. package/dist/src/RateLimit.ts +0 -90
  183. package/dist/src/gateway.ts +0 -50
  184. package/dist/src/index.ts +0 -44
  185. package/dist/src/types.ts +0 -3090
  186. package/dist/src/utils/Effect.ts +0 -65
  187. package/dist/src/version.ts +0 -1
  188. package/dist/src/webhooks.ts +0 -25
  189. package/dist/tsconfig.base.json +0 -54
  190. package/dist/tsconfig.build.json +0 -10
  191. package/dist/tsconfig.examples.json +0 -10
  192. package/dist/tsconfig.json +0 -14
  193. package/dist/tsconfig.madge.json +0 -12
  194. package/dist/tsconfig.test.json +0 -10
@@ -1 +0,0 @@
1
- {"version":3,"file":"members.mjs","names":["roles","guildRoles","member","filter","role","includes","id","name","is","thing","Object","prototype","hasOwnProperty","call"],"sources":["../../src/Helpers/members.ts"],"sourcesContent":[null],"mappings":"AAEA;;;AAGA,OAAO,MAAMA,KAAK,GACfC,UAA4C,IAC5CC,MAAmC,IAClCD,UAAU,CAACE,MAAM,CACfC,IAAI,IAAIF,MAAM,CAACF,KAAK,CAACK,QAAQ,CAACD,IAAI,CAACE,EAAE,CAAC,IAAIF,IAAI,CAACG,IAAI,KAAK,WAAW,CACpE;AAEL;;;AAGA,OAAO,MAAMC,EAAE,GAAIC,KAAc,IAC/BC,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACJ,KAAK,EAAE,OAAO,CAAC,IACpDC,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACJ,KAAK,EAAE,WAAW,CAAC","ignoreList":[]}
@@ -1,84 +0,0 @@
1
- import { pipe } from "effect/Function";
2
- import * as Effect from "effect/Effect";
3
- import * as Flags from "./flags.js";
4
- import * as Members from "./members.js";
5
- import * as Discord from "../types.js";
6
- /**
7
- * A constant of all the permissions
8
- */
9
- export const ALL = /*#__PURE__*/Flags.all(Discord.Permissions);
10
- /**
11
- * Check if a flag exists in the permissions.
12
- */
13
- export const has = Flags.hasBigInt;
14
- /**
15
- * Convert a permissions bitfield to a list of flag names.
16
- */
17
- export const toList = /*#__PURE__*/Flags.toList(Discord.Permissions);
18
- /**
19
- * Convert a list of flag names to a bitfield.
20
- */
21
- export const fromList = /*#__PURE__*/Flags.fromListBigint(Discord.Permissions);
22
- /**
23
- * Reduce a list of roles to a bitfield of all the permissions added together.
24
- */
25
- export const forRoles = roles => roles.reduce((permissions, role) => permissions | BigInt(role.permissions), BigInt(0));
26
- /**
27
- * From a list of roles, calculate the permissions bitfield for the member.
28
- */
29
- export const forMember = roles => member => pipe(Members.roles(roles)(member), forRoles);
30
- const overwriteIsForMember = guildId => member => overwrite => {
31
- if (overwrite.type === 0) {
32
- return overwrite.id === guildId || member.roles.includes(overwrite.id);
33
- }
34
- return overwrite.id === member.user?.id;
35
- };
36
- const overwriteIsForRole = guildId => role => overwrite => {
37
- if (overwrite.type === 0) {
38
- return overwrite.id === guildId || overwrite.id === role.id;
39
- }
40
- return false;
41
- };
42
- /**
43
- * From a list of roles and a channel, calculate the permission bitfield for
44
- * the guild member or role for that channel.
45
- */
46
- export const forChannel = roles => ({
47
- guild_id,
48
- permission_overwrites
49
- }) => memberOrRole => {
50
- const overwrites = permission_overwrites || [];
51
- const hasAdmin = has(Discord.Permissions.Administrator);
52
- let basePermissions;
53
- let filteredOverwrites;
54
- if (Members.is(memberOrRole)) {
55
- if (memberOrRole.permissions) return BigInt(memberOrRole.permissions);
56
- const memberRoles = Members.roles(roles)(memberOrRole);
57
- basePermissions = forRoles(memberRoles);
58
- filteredOverwrites = overwrites.filter(overwriteIsForMember(guild_id)(memberOrRole));
59
- } else {
60
- const everyone = roles.find(role => role.name === "@everyone");
61
- basePermissions = BigInt(everyone?.permissions || "0") | BigInt(memberOrRole.permissions);
62
- filteredOverwrites = overwrites.filter(overwriteIsForRole(guild_id)(memberOrRole));
63
- }
64
- if (hasAdmin(basePermissions)) {
65
- return ALL;
66
- }
67
- return applyOverwrites(basePermissions)(filteredOverwrites);
68
- };
69
- /**
70
- * Apply permission overwrites to a bitfield.
71
- */
72
- export const applyOverwrites = permissions => overwrites => overwrites.reduce((current, overwrite) => current & ~BigInt(overwrite.deny) | BigInt(overwrite.allow), permissions);
73
- export const hasInChannel = (rolesCache, permission) => (channel, memberOrRole) => Effect.map(rolesCache.getForParent(channel.guild_id), roles => {
74
- const channelPerms = forChannel([...roles.values()])(channel)(memberOrRole);
75
- return has(permission)(channelPerms);
76
- });
77
- export const hasInGuild = (rolesCache, permission) => (guildId, member) => Effect.map(rolesCache.getForParent(guildId), roles => {
78
- const hasPerm = has(permission);
79
- return member.roles.some(id => {
80
- const role = roles.get(id);
81
- return role ? hasPerm(role.permissions) : false;
82
- });
83
- });
84
- //# sourceMappingURL=permissions.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"permissions.mjs","names":["pipe","Effect","Flags","Members","Discord","ALL","all","Permissions","has","hasBigInt","toList","fromList","fromListBigint","forRoles","roles","reduce","permissions","role","BigInt","forMember","member","overwriteIsForMember","guildId","overwrite","type","id","includes","user","overwriteIsForRole","forChannel","guild_id","permission_overwrites","memberOrRole","overwrites","hasAdmin","Administrator","basePermissions","filteredOverwrites","is","memberRoles","filter","everyone","find","name","applyOverwrites","current","deny","allow","hasInChannel","rolesCache","permission","channel","map","getForParent","channelPerms","values","hasInGuild","hasPerm","some","get"],"sources":["../../src/Helpers/permissions.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,137 +0,0 @@
1
- import { TextInputStyleTypes, ButtonStyleTypes, MessageComponentTypes, MessageFlags } from "../types.js";
2
- /**
3
- * Helper to create an Action Row.
4
- */
5
- export const row = components => ({
6
- type: MessageComponentTypes.ACTION_ROW,
7
- components
8
- });
9
- /**
10
- * Helper to create an Action Row grid.
11
- */
12
- export const grid = items => items.map(row);
13
- /**
14
- * Helper to create a single column of components
15
- */
16
- export const singleColumn = items => items.map(c => row([c]));
17
- /**
18
- * Helper to create a button component.
19
- */
20
- export const button = options => ({
21
- type: MessageComponentTypes.BUTTON,
22
- style: ButtonStyleTypes.PRIMARY,
23
- ...options
24
- });
25
- /**
26
- * Helper to create a select component.
27
- */
28
- export const select = options => ({
29
- type: MessageComponentTypes.STRING_SELECT,
30
- ...options
31
- });
32
- /**
33
- * Helper to create a select component.
34
- */
35
- export const userSelect = options => ({
36
- type: MessageComponentTypes.USER_SELECT,
37
- ...options
38
- });
39
- /**
40
- * Helper to create a select component.
41
- */
42
- export const roleSelect = options => ({
43
- type: MessageComponentTypes.ROLE_SELECT,
44
- ...options
45
- });
46
- /**
47
- * Helper to create a select component.
48
- */
49
- export const mentionableSelect = options => ({
50
- type: MessageComponentTypes.MENTIONABLE_SELECT,
51
- ...options
52
- });
53
- /**
54
- * Helper to create a select component.
55
- */
56
- export const channelSelect = options => ({
57
- type: MessageComponentTypes.CHANNEL_SELECT,
58
- ...options
59
- });
60
- /**
61
- * Helper to create a text input
62
- */
63
- export const textInput = input => ({
64
- type: MessageComponentTypes.TEXT_INPUT,
65
- style: TextInputStyleTypes.SHORT,
66
- ...input
67
- });
68
- /**
69
- * Helper to create a poll
70
- */
71
- export const poll = input => ({
72
- ...input,
73
- answers: input.answers.map(poll_media => ({
74
- poll_media
75
- }))
76
- });
77
- /**
78
- * Helper to create a media gallery
79
- */
80
- export const mediaGallery = options => ({
81
- type: MessageComponentTypes.MEDIA_GALLERY,
82
- ...options
83
- });
84
- /**
85
- * Helper to create a file component
86
- */
87
- export const file = options => ({
88
- type: MessageComponentTypes.FILE,
89
- ...options
90
- });
91
- /**
92
- * Helper to create a container component
93
- */
94
- export const container = options => ({
95
- type: MessageComponentTypes.CONTAINER,
96
- ...options
97
- });
98
- /**
99
- * Helper to create a section component
100
- */
101
- export const section = options => ({
102
- type: MessageComponentTypes.SECTION,
103
- ...options
104
- });
105
- /**
106
- * Helper to create a thumbnail component
107
- */
108
- export const thumbnail = options => ({
109
- type: MessageComponentTypes.THUMBNAIL,
110
- description: options.description,
111
- spoiler: options.spoiler,
112
- media: {
113
- url: options.url
114
- }
115
- });
116
- /**
117
- * Helper to create a separator component
118
- */
119
- export const seperator = options => ({
120
- type: MessageComponentTypes.SEPARATOR,
121
- ...options
122
- });
123
- /**
124
- * Helper to create a text display component
125
- */
126
- export const textDisplay = content => ({
127
- type: MessageComponentTypes.TEXT_DISPLAY,
128
- content
129
- });
130
- /**
131
- * Create a components v2 message
132
- */
133
- export const components = (items, options) => ({
134
- flags: options?.ephemeral ? MessageFlags.Ephemeral | MessageFlags.IsComponentsV2 : MessageFlags.IsComponentsV2,
135
- components: items
136
- });
137
- //# sourceMappingURL=ui.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ui.mjs","names":["TextInputStyleTypes","ButtonStyleTypes","MessageComponentTypes","MessageFlags","row","components","type","ACTION_ROW","grid","items","map","singleColumn","c","button","options","BUTTON","style","PRIMARY","select","STRING_SELECT","userSelect","USER_SELECT","roleSelect","ROLE_SELECT","mentionableSelect","MENTIONABLE_SELECT","channelSelect","CHANNEL_SELECT","textInput","input","TEXT_INPUT","SHORT","poll","answers","poll_media","mediaGallery","MEDIA_GALLERY","file","FILE","container","CONTAINER","section","SECTION","thumbnail","THUMBNAIL","description","spoiler","media","url","seperator","SEPARATOR","textDisplay","content","TEXT_DISPLAY","flags","ephemeral","Ephemeral","IsComponentsV2"],"sources":["../../src/Helpers/ui.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,56 +0,0 @@
1
- import * as Chunk from "effect/Chunk";
2
- import { identity } from "effect/Function";
3
- import * as Effect from "effect/Effect";
4
- import { catchTag } from "effect/Effect";
5
- import { DiscordREST } from "../DiscordREST.js";
6
- export class InteractionBuilder {
7
- definitions;
8
- transform;
9
- constructor(definitions, transform) {
10
- this.definitions = definitions;
11
- this.transform = transform;
12
- }
13
- add(definition) {
14
- return new InteractionBuilder(Chunk.append(this.definitions, [definition, this.transform]), this.transform);
15
- }
16
- concat(builder) {
17
- return new InteractionBuilder(Chunk.appendAll(this.definitions, builder.definitions), this.transform);
18
- }
19
- transformTransform(f) {
20
- return new InteractionBuilder(Chunk.map(this.definitions, ([d, t]) => [d, _ => f(t(_))]), _ => f(this.transform(_)));
21
- }
22
- transformHandlers(f) {
23
- return new InteractionBuilder(Chunk.map(this.definitions, ([d, t]) => [{
24
- ...d,
25
- handle: Effect.isEffect(d.handle) ? f(d.handle) : _ => f(d.handle(_))
26
- }, t]), this.transform);
27
- }
28
- catchAllCause(f) {
29
- return this.transformTransform(Effect.catchCause(f));
30
- }
31
- catchAllCauseRespond(f) {
32
- return this.transformHandlers(Effect.catchCause(f));
33
- }
34
- catchAll(f) {
35
- return this.transformTransform(Effect.catch(f));
36
- }
37
- catchAllRespond(f) {
38
- return this.transformHandlers(Effect.catch(f));
39
- }
40
- catchTag(tag, f) {
41
- return this.transformTransform(_ => catchTag(_, tag, f));
42
- }
43
- catchTagRespond(tag, f) {
44
- return this.transformHandlers(_ => catchTag(_, tag, f));
45
- }
46
- get syncGlobal() {
47
- const commands = this.definitions.pipe(Chunk.map(([d, _]) => d), Chunk.filter(c => c._tag === "GlobalApplicationCommand"), Chunk.map(c => c.command));
48
- return DiscordREST.use(rest => rest.getMyApplication().pipe(Effect.flatMap(app => rest.bulkSetApplicationCommands(app.id, Chunk.toReadonlyArray(commands)))));
49
- }
50
- syncGuild(appId, guildId) {
51
- const commands = this.definitions.pipe(Chunk.map(([d, _]) => d), Chunk.filter(c => c._tag === "GuildApplicationCommand"), Chunk.map(c => c.command));
52
- return DiscordREST.use(rest => rest.bulkSetGuildApplicationCommands(appId, guildId, Chunk.toReadonlyArray(commands)));
53
- }
54
- }
55
- export const builder = /*#__PURE__*/new InteractionBuilder(/*#__PURE__*/Chunk.empty(), identity);
56
- //# sourceMappingURL=builder.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"builder.mjs","names":["Chunk","identity","Effect","catchTag","DiscordREST","InteractionBuilder","definitions","transform","constructor","add","definition","append","concat","builder","appendAll","transformTransform","f","map","d","t","_","transformHandlers","handle","isEffect","catchAllCause","catchCause","catchAllCauseRespond","catchAll","catch","catchAllRespond","tag","catchTagRespond","syncGlobal","commands","pipe","filter","c","_tag","command","use","rest","getMyApplication","flatMap","app","bulkSetApplicationCommands","id","toReadonlyArray","syncGuild","appId","guildId","bulkSetGuildApplicationCommands","empty"],"sources":["../../src/Interactions/builder.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,49 +0,0 @@
1
- import * as Option from "effect/Option";
2
- import * as Effect from "effect/Effect";
3
- import { SubCommandContext, SubCommandNotFound } from "./context.js";
4
- import * as Helpers from "../Helpers/interactions.js";
5
- import * as Arr from "effect/Array";
6
- export class CommandHelper {
7
- interaction;
8
- constructor(interaction) {
9
- this.interaction = interaction;
10
- this.target = Helpers.target(interaction.data);
11
- this.data = interaction.data;
12
- }
13
- data;
14
- target;
15
- resolve(name, f) {
16
- return Helpers.resolveOptionValue(name, f)(this.interaction);
17
- }
18
- resolvedValues(f) {
19
- return Helpers.resolveValues(f)(this.interaction);
20
- }
21
- option(name) {
22
- return Helpers.getOption(name)(this.data);
23
- }
24
- optionValue(name) {
25
- return Option.getOrThrow(this.optionValueOptional(name));
26
- }
27
- optionValueOptional(name) {
28
- return Option.map(this.option(name), _ => _.value);
29
- }
30
- optionValueOrElse(name, orElse) {
31
- return Option.getOrElse(this.optionValueOptional(name), orElse);
32
- }
33
- subCommands(commands) {
34
- const commands_ = commands;
35
- const matchedCommand = Arr.findFirst(Helpers.allSubCommands(this.data), _ => !!commands_[_.name]);
36
- return Option.match(matchedCommand, {
37
- onNone: () => Effect.fail(new SubCommandNotFound({
38
- data: this.data
39
- })),
40
- onSome: subCommand => Effect.provideService(commands_[subCommand.name], SubCommandContext, {
41
- command: subCommand
42
- })
43
- });
44
- }
45
- get optionsMap() {
46
- return Helpers.optionsMap(this.data);
47
- }
48
- }
49
- //# sourceMappingURL=commandHelper.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"commandHelper.mjs","names":["Option","Effect","SubCommandContext","SubCommandNotFound","Helpers","Arr","CommandHelper","interaction","constructor","target","data","resolve","name","f","resolveOptionValue","resolvedValues","resolveValues","option","getOption","optionValue","getOrThrow","optionValueOptional","map","_","value","optionValueOrElse","orElse","getOrElse","subCommands","commands","commands_","matchedCommand","findFirst","allSubCommands","match","onNone","fail","onSome","subCommand","provideService","command","optionsMap"],"sources":["../../src/Interactions/commandHelper.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,SAEEC,iBAAiB,EACjBC,kBAAkB,QAGb,cAAc;AAErB,OAAO,KAAKC,OAAO,MAAM,4BAA4B;AACrD,OAAO,KAAKC,GAAG,MAAM,cAAc;AAGnC,OAAM,MAAOC,aAAa;EACHC,WAAA;EAArBC,YAAqBD,WAAmC;IAAnC,KAAAA,WAAW,GAAXA,WAAW;IAC9B,IAAI,CAACE,MAAM,GAAGL,OAAO,CAACK,MAAM,CAACF,WAAW,CAACG,IAAW,CAAQ;IAC5D,IAAI,CAACA,IAAI,GAAGH,WAAW,CAACG,IAAW;EACrC;EACSA,IAAI;EACJD,MAAM;EAWfE,OAAOA,CACLC,IAA+B,EAC/BC,CAGkB;IAElB,OAAOT,OAAO,CAACU,kBAAkB,CAACF,IAAI,EAAEC,CAAC,CAAC,CAAC,IAAI,CAACN,WAAW,CAAC;EAC9D;EAEAQ,cAAcA,CACZF,CAGkB;IAElB,OAAOT,OAAO,CAACY,aAAa,CAACH,CAAC,CAAC,CAAC,IAAI,CAACN,WAAW,CAAC;EACnD;EAEAU,MAAMA,CACJL,IAAkC;IAElC,OAAOR,OAAO,CAACc,SAAS,CAACN,IAAI,CAAC,CAAC,IAAI,CAACF,IAAW,CAAC;EAClD;EAEAS,WAAWA,CACTP,IAAO;IAEP,OAAOZ,MAAM,CAACoB,UAAU,CAAC,IAAI,CAACC,mBAAmB,CAACT,IAAI,CAAC,CAAC;EAC1D;EAEAS,mBAAmBA,CACjBT,IAAO;IAEP,OAAOZ,MAAM,CAACsB,GAAG,CAAC,IAAI,CAACL,MAAM,CAACL,IAAI,CAAC,EAAEW,CAAC,IAAKA,CAAS,CAACC,KAAK,CAAQ;EACpE;EAEAC,iBAAiBA,CACfb,IAAO,EACPc,MAAoB;IAEpB,OAAO1B,MAAM,CAAC2B,SAAS,CAAC,IAAI,CAACN,mBAAmB,CAACT,IAAI,CAAC,EAAEc,MAAM,CAAQ;EACxE;EAEAE,WAAWA,CAQTC,QAAa;IAQb,MAAMC,SAAS,GAAGD,QAA+B;IACjD,MAAME,cAAc,GAAG1B,GAAG,CAAC2B,SAAS,CAClC5B,OAAO,CAAC6B,cAAc,CAAC,IAAI,CAACvB,IAAI,CAAC,EACjCa,CAAC,IAAI,CAAC,CAACO,SAAS,CAACP,CAAC,CAACX,IAAI,CAAC,CACzB;IAED,OAAOZ,MAAM,CAACkC,KAAK,CAACH,cAAc,EAAE;MAClCI,MAAM,EAAEA,CAAA,KAAMlC,MAAM,CAACmC,IAAI,CAAC,IAAIjC,kBAAkB,CAAC;QAAEO,IAAI,EAAE,IAAI,CAACA;MAAI,CAAE,CAAC,CAAC;MACtE2B,MAAM,EAAEC,UAAU,IAChBrC,MAAM,CAACsC,cAAc,CAACT,SAAS,CAACQ,UAAU,CAAC1B,IAAI,CAAC,EAAEV,iBAAiB,EAAE;QACnEsC,OAAO,EAAEF;OACV;KACJ,CAAQ;EACX;EAEA,IAAIG,UAAUA,CAAA;IACZ,OAAOrC,OAAO,CAACqC,UAAU,CAAC,IAAI,CAAC/B,IAAW,CAAC;EAC7C","ignoreList":[]}
@@ -1,28 +0,0 @@
1
- import * as IxHelpers from "../Helpers/interactions.js";
2
- import * as Data from "effect/Data";
3
- import * as Effect from "effect/Effect";
4
- import * as ServiceMap from "effect/ServiceMap";
5
- export class Interaction extends /*#__PURE__*/ServiceMap.Service()("dfx/Interactions/Interaction") {}
6
- export class ApplicationCommand extends /*#__PURE__*/ServiceMap.Service()("dfx/Interactions/ApplicationCommand") {}
7
- export class MessageComponentData extends /*#__PURE__*/ServiceMap.Service()("dfx/Interactions/MessageComponentData") {}
8
- export class ModalSubmitData extends /*#__PURE__*/ServiceMap.Service()("dfx/Interactions/ModalSubmitData") {}
9
- export class FocusedOptionContext extends /*#__PURE__*/ServiceMap.Service()("dfx/Interactions/FocusedOptionContext") {}
10
- export class SubCommandContext extends /*#__PURE__*/ServiceMap.Service()("dfx/Interactions/SubCommandContext") {}
11
- export const resolvedValues = f => Interaction.use(ix => Effect.fromOption(IxHelpers.resolveValues(f)(ix)));
12
- export const resolved = (name, f) => Interaction.use(ix => Effect.fromOption(IxHelpers.resolveOptionValue(name, f)(ix)));
13
- export const focusedOptionValue = /*#__PURE__*/FocusedOptionContext.use(_ => Effect.succeed("value" in _ ? _.value : ""));
14
- export class SubCommandNotFound extends /*#__PURE__*/Data.TaggedError("SubCommandNotFound") {}
15
- export const currentSubCommand = /*#__PURE__*/SubCommandContext.use(_ => Effect.succeed(_.command));
16
- export class RequiredOptionNotFound {
17
- data;
18
- name;
19
- _tag = "RequiredOptionNotFound";
20
- constructor(data, name) {
21
- this.data = data;
22
- this.name = name;
23
- }
24
- }
25
- export const modalValues = /*#__PURE__*/ModalSubmitData.use(data => Effect.succeed(IxHelpers.componentsMap(data)));
26
- export const modalValueOption = name => ModalSubmitData.use(data => Effect.succeed(IxHelpers.componentValue(name)(data)));
27
- export const modalValue = name => ModalSubmitData.use(data => Effect.fromOption(IxHelpers.componentValue(name)(data)));
28
- //# sourceMappingURL=context.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.mjs","names":["IxHelpers","Data","Effect","ServiceMap","Interaction","Service","ApplicationCommand","MessageComponentData","ModalSubmitData","FocusedOptionContext","SubCommandContext","resolvedValues","f","use","ix","fromOption","resolveValues","resolved","name","resolveOptionValue","focusedOptionValue","_","succeed","value","SubCommandNotFound","TaggedError","currentSubCommand","command","RequiredOptionNotFound","data","_tag","constructor","modalValues","componentsMap","modalValueOption","componentValue","modalValue"],"sources":["../../src/Interactions/context.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,SAAS,MAAM,4BAA4B;AAGvD,OAAO,KAAKC,IAAI,MAAM,aAAa;AACnC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,UAAU,MAAM,mBAAmB;AAE/C,OAAM,MAAOC,WAAY,sBAAQD,UAAU,CAACE,OAAO,EAGhD,CAAC,8BAA8B,CAAC;AAGnC,OAAM,MAAOC,kBAAmB,sBAAQH,UAAU,CAACE,OAAO,EAGvD,CAAC,qCAAqC,CAAC;AAG1C,OAAM,MAAOE,oBAAqB,sBAAQJ,UAAU,CAACE,OAAO,EAGzD,CAAC,uCAAuC,CAAC;AAG5C,OAAM,MAAOG,eAAgB,sBAAQL,UAAU,CAACE,OAAO,EAGpD,CAAC,kCAAkC,CAAC;AAGvC,OAAM,MAAOI,oBAAqB,sBAAQN,UAAU,CAACE,OAAO,EAGzD,CAAC,uCAAuC,CAAC;AAM5C,OAAM,MAAOK,iBAAkB,sBAAQP,UAAU,CAACE,OAAO,EAGtD,CAAC,oCAAoC,CAAC;AAGzC,OAAO,MAAMM,cAAc,GACzBC,CAGkB,IAElBR,WAAW,CAACS,GAAG,CAACC,EAAE,IAAIZ,MAAM,CAACa,UAAU,CAACf,SAAS,CAACgB,aAAa,CAACJ,CAAC,CAAC,CAACE,EAAE,CAAC,CAAC,CAAC;AAE1E,OAAO,MAAMG,QAAQ,GAAGA,CACtBC,IAAY,EACZN,CAGkB,KAElBR,WAAW,CAACS,GAAG,CAACC,EAAE,IAChBZ,MAAM,CAACa,UAAU,CAACf,SAAS,CAACmB,kBAAkB,CAACD,IAAI,EAAEN,CAAC,CAAC,CAACE,EAAE,CAAC,CAAC,CAC7D;AAEH,OAAO,MAAMM,kBAAkB,gBAAGX,oBAAoB,CAACI,GAAG,CAACQ,CAAC,IAC1DnB,MAAM,CAACoB,OAAO,CAAC,OAAO,IAAID,CAAC,GAAGA,CAAC,CAACE,KAAK,GAAG,EAAE,CAAC,CAC5C;AAED,OAAM,MAAOC,kBAAmB,sBAAQvB,IAAI,CAACwB,WAAW,CAAC,oBAAoB,CAE3E;AAEF,OAAO,MAAMC,iBAAiB,gBAI1BhB,iBAAiB,CAACG,GAAG,CAACQ,CAAC,IAAInB,MAAM,CAACoB,OAAO,CAACD,CAAC,CAACM,OAAO,CAAC,CAAC;AAEzD,OAAM,MAAOC,sBAAsB;EAGtBC,IAAA;EAGAX,IAAA;EALFY,IAAI,GAAG,wBAAwB;EACxCC,YACWF,IAEwC,EACxCX,IAAY;IAHZ,KAAAW,IAAI,GAAJA,IAAI;IAGJ,KAAAX,IAAI,GAAJA,IAAI;EACZ;;AAGL,OAAO,MAAMc,WAAW,gBAAGxB,eAAe,CAACK,GAAG,CAACgB,IAAI,IACjD3B,MAAM,CAACoB,OAAO,CAACtB,SAAS,CAACiC,aAAa,CAACJ,IAAI,CAAC,CAAC,CAC9C;AAED,OAAO,MAAMK,gBAAgB,GAAIhB,IAAY,IAC3CV,eAAe,CAACK,GAAG,CAACgB,IAAI,IACtB3B,MAAM,CAACoB,OAAO,CAACtB,SAAS,CAACmC,cAAc,CAACjB,IAAI,CAAC,CAACW,IAAI,CAAC,CAAC,CACrD;AAEH,OAAO,MAAMO,UAAU,GACrBlB,IAAY,IAEZV,eAAe,CAACK,GAAG,CAACgB,IAAI,IACtB3B,MAAM,CAACa,UAAU,CAACf,SAAS,CAACmC,cAAc,CAACjB,IAAI,CAAC,CAACW,IAAI,CAAC,CAAC,CACxD","ignoreList":[]}
@@ -1,51 +0,0 @@
1
- export class GlobalApplicationCommand {
2
- command;
3
- handle;
4
- _tag = "GlobalApplicationCommand";
5
- constructor(command, handle) {
6
- this.command = command;
7
- this.handle = handle;
8
- }
9
- }
10
- export const global = (command, handle) => new GlobalApplicationCommand(command, handle);
11
- export class GuildApplicationCommand {
12
- command;
13
- handle;
14
- _tag = "GuildApplicationCommand";
15
- constructor(command, handle) {
16
- this.command = command;
17
- this.handle = handle;
18
- }
19
- }
20
- export const guild = (command, handle) => new GuildApplicationCommand(command, handle);
21
- export class MessageComponent {
22
- predicate;
23
- handle;
24
- _tag = "MessageComponent";
25
- constructor(predicate, handle) {
26
- this.predicate = predicate;
27
- this.handle = handle;
28
- }
29
- }
30
- export const messageComponent = (pred, handle) => new MessageComponent(pred, handle);
31
- export class ModalSubmit {
32
- predicate;
33
- handle;
34
- _tag = "ModalSubmit";
35
- constructor(predicate, handle) {
36
- this.predicate = predicate;
37
- this.handle = handle;
38
- }
39
- }
40
- export const modalSubmit = (pred, handle) => new ModalSubmit(pred, handle);
41
- export class Autocomplete {
42
- predicate;
43
- handle;
44
- _tag = "Autocomplete";
45
- constructor(predicate, handle) {
46
- this.predicate = predicate;
47
- this.handle = handle;
48
- }
49
- }
50
- export const autocomplete = (pred, handle) => new Autocomplete(pred, handle);
51
- //# sourceMappingURL=definitions.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"definitions.mjs","names":["GlobalApplicationCommand","command","handle","_tag","constructor","global","GuildApplicationCommand","guild","MessageComponent","predicate","messageComponent","pred","ModalSubmit","modalSubmit","Autocomplete","autocomplete"],"sources":["../../src/Interactions/definitions.ts"],"sourcesContent":[null],"mappings":"AAmBA,OAAM,MAAOA,wBAAwB;EAGxBC,OAAA;EACAC,MAAA;EAHFC,IAAI,GAAG,0BAA0B;EAC1CC,YACWH,OAAgD,EAChDC,MAA4B;IAD5B,KAAAD,OAAO,GAAPA,OAAO;IACP,KAAAC,MAAM,GAANA,MAAM;EACd;;AAGL,OAAO,MAAMG,MAAM,GAAGA,CAKpBJ,OAAU,EACVC,MAA+B,KAE/B,IAAIF,wBAAwB,CAG1BC,OAAc,EAAEC,MAAa,CAAC;AAElC,OAAM,MAAOI,uBAAuB;EAGvBL,OAAA;EACAC,MAAA;EAHFC,IAAI,GAAG,yBAAyB;EACzCC,YACWH,OAAgD,EAChDC,MAA4B;IAD5B,KAAAD,OAAO,GAAPA,OAAO;IACP,KAAAC,MAAM,GAANA,MAAM;EACd;;AAGL,OAAO,MAAMK,KAAK,GAAGA,CAKnBN,OAAU,EACVC,MAA+B,KAE/B,IAAII,uBAAuB,CAGzBL,OAAc,EAAEC,MAAa,CAAC;AAElC,OAAM,MAAOM,gBAAgB;EAGhBC,SAAA;EACAP,MAAA;EAHFC,IAAI,GAAG,kBAAkB;EAClCC,YACWK,SAAwC,EACxCP,MAIR;IALQ,KAAAO,SAAS,GAATA,SAAS;IACT,KAAAP,MAAM,GAANA,MAAM;EAKd;;AAGL,OAAO,MAAMQ,gBAAgB,GAAGA,CAC9BC,IAAmC,EACnCT,MAAqE,KAErE,IAAIM,gBAAgB,CAGlBG,IAAI,EAAET,MAAa,CAAC;AAExB,OAAM,MAAOU,WAAW;EAGXH,SAAA;EACAP,MAAA;EAHFC,IAAI,GAAG,aAAa;EAC7BC,YACWK,SAAwC,EACxCP,MAIR;IALQ,KAAAO,SAAS,GAATA,SAAS;IACT,KAAAP,MAAM,GAANA,MAAM;EAKd;;AAGL,OAAO,MAAMW,WAAW,GAAGA,CACzBF,IAAmC,EACnCT,MAAqE,KAErE,IAAIU,WAAW,CAGbD,IAAI,EAAET,MAAa,CAAC;AAExB,OAAM,MAAOY,YAAY;EAGZL,SAAA;EAIAP,MAAA;EANFC,IAAI,GAAG,cAAc;EAC9BC,YACWK,SAGG,EACHP,MAIR;IARQ,KAAAO,SAAS,GAATA,SAAS;IAIT,KAAAP,MAAM,GAANA,MAAM;EAKd;;AAGL,OAAO,MAAMa,YAAY,GAAGA,CAC1BJ,IAGY,EACZT,MAAqE,KAErE,IAAIY,YAAY,CASdH,IAAI,EAAET,MAAa,CAAC","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- export const InteractionsErrorTypeId = /*#__PURE__*/Symbol.for("dfx/Interactions/InteractionsError");
2
- //# sourceMappingURL=error.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error.mjs","names":["InteractionsErrorTypeId","Symbol","for"],"sources":["../../src/Interactions/error.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,MAAMA,uBAAuB,gBAAGC,MAAM,CAACC,GAAG,CAC/C,oCAAoC,CACrC","ignoreList":[]}
@@ -1,82 +0,0 @@
1
- import * as Arr from "effect/Array";
2
- import * as Chunk from "effect/Chunk";
3
- import * as Duration from "effect/Duration";
4
- import * as Effect from "effect/Effect";
5
- import { pipe } from "effect/Function";
6
- import * as Layer from "effect/Layer";
7
- import * as Queue from "effect/Queue";
8
- import * as Ref from "effect/Ref";
9
- import * as Schedule from "effect/Schedule";
10
- import * as ServiceMap from "effect/ServiceMap";
11
- import { DiscordGateway } from "../DiscordGateway.js";
12
- import { DiscordREST } from "../DiscordREST.js";
13
- import { handlers } from "./handlers.js";
14
- import { builder, Interaction } from "./index.js";
15
- import * as EffectUtils from "../utils/Effect.js";
16
- export const interactionsSync = /*#__PURE__*/ServiceMap.Reference("dfx/Interactions/sync", {
17
- defaultValue: () => true
18
- });
19
- export const setInteractionsSync = enabled => Layer.provide(Layer.succeed(interactionsSync, enabled));
20
- const retryPolicy = /*#__PURE__*/Schedule.exponential("1 seconds").pipe(/*#__PURE__*/Schedule.either(/*#__PURE__*/Schedule.spaced("20 seconds")));
21
- export const run = postHandler => ix => Effect.gen(function* () {
22
- const GlobalApplicationCommand = ix.definitions.pipe(Chunk.map(_ => _[0]), Chunk.filter(_ => _._tag === "GlobalApplicationCommand"), Chunk.toReadonlyArray);
23
- const GuildApplicationCommand = ix.definitions.pipe(Chunk.map(_ => _[0]), Chunk.filter(_ => _._tag === "GuildApplicationCommand"), Chunk.toReadonlyArray);
24
- const gateway = yield* DiscordGateway;
25
- const rest = yield* DiscordREST;
26
- const application = yield* rest.getMyApplication();
27
- const globalSync = rest.bulkSetApplicationCommands(application.id, GlobalApplicationCommand.map(_ => _.command));
28
- const runGuildSync = Effect.gen(function* () {
29
- const commands = GuildApplicationCommand.map(_ => _.command);
30
- let results = undefined;
31
- while (true) {
32
- const next = yield* rest.listMyGuilds({
33
- after: results && Arr.lastNonEmpty(results).id
34
- });
35
- if (!Arr.isReadonlyArrayNonEmpty(next)) break;
36
- results = next;
37
- yield* Effect.forEach(results, guild => rest.bulkSetGuildApplicationCommands(application.id, guild.id, commands), {
38
- concurrency: "unbounded",
39
- discard: true
40
- });
41
- }
42
- return yield* gateway.handleDispatch("GUILD_CREATE", a => rest.bulkSetGuildApplicationCommands(application.id, a.id, GuildApplicationCommand.map(_ => _.command)));
43
- });
44
- const guildSync = GuildApplicationCommand.length ? runGuildSync : Effect.never;
45
- const handle = handlers(ix.definitions, (i, r) => {
46
- const hasFiles = "files" in r;
47
- const payload = hasFiles ? {
48
- ...r,
49
- files: undefined
50
- } : r;
51
- const effect = rest.createInteractionResponse(i.id, i.token, {
52
- payload
53
- });
54
- return hasFiles ? rest.withFiles(r.files)(effect) : effect;
55
- });
56
- const interactionRun = gateway.handleDispatch("INTERACTION_CREATE", i => Effect.withSpan(Effect.provideService(postHandler(handle[i.type](i)), Interaction, i), "dfx.Interaction", {
57
- attributes: {
58
- interactionId: i.id
59
- },
60
- captureStackTrace: false
61
- }));
62
- const sync = yield* interactionsSync;
63
- return yield* sync ? Effect.forever(Effect.all([interactionRun, globalSync, guildSync], {
64
- concurrency: "unbounded",
65
- discard: true
66
- })) : interactionRun;
67
- });
68
- const makeRegistry = /*#__PURE__*/Effect.gen(function* () {
69
- const ref = yield* Ref.make(builder);
70
- const queue = yield* Queue.sliding(1);
71
- const register = ix => Effect.flatMap(Ref.updateAndGet(ref, _ => _.concat(ix)), _ => Queue.offer(queue, _));
72
- yield* EffectUtils.foreverSwitch(Queue.take(queue), ix => pipe(ix, run(Effect.catchCause(_ => Effect.logError("unhandled error", _))), Effect.delay(Duration.seconds(5)))).pipe(Effect.tapCause(_ => Effect.logError("registry error", _)), Effect.retry(retryPolicy), Effect.forkScoped, Effect.interruptible);
73
- return {
74
- register
75
- };
76
- }).pipe(/*#__PURE__*/Effect.annotateLogs({
77
- package: "dfx",
78
- service: "InteractionsRegistry"
79
- }));
80
- export class InteractionsRegistry extends /*#__PURE__*/ServiceMap.Service()("dfx/Interactions/InteractionsRegistry") {}
81
- export const InteractionsRegistryLive = /*#__PURE__*/Layer.effect(InteractionsRegistry, makeRegistry);
82
- //# sourceMappingURL=gateway.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gateway.mjs","names":["Arr","Chunk","Duration","Effect","pipe","Layer","Queue","Ref","Schedule","ServiceMap","DiscordGateway","DiscordREST","handlers","builder","Interaction","EffectUtils","interactionsSync","Reference","defaultValue","setInteractionsSync","enabled","provide","succeed","retryPolicy","exponential","either","spaced","run","postHandler","ix","gen","GlobalApplicationCommand","definitions","map","_","filter","_tag","toReadonlyArray","GuildApplicationCommand","gateway","rest","application","getMyApplication","globalSync","bulkSetApplicationCommands","id","command","runGuildSync","commands","results","undefined","next","listMyGuilds","after","lastNonEmpty","isReadonlyArrayNonEmpty","forEach","guild","bulkSetGuildApplicationCommands","concurrency","discard","handleDispatch","a","guildSync","length","never","handle","i","r","hasFiles","payload","files","effect","createInteractionResponse","token","withFiles","interactionRun","withSpan","provideService","type","attributes","interactionId","captureStackTrace","sync","forever","all","makeRegistry","ref","make","queue","sliding","register","flatMap","updateAndGet","concat","offer","foreverSwitch","take","catchCause","logError","delay","seconds","tapCause","retry","forkScoped","interruptible","annotateLogs","package","service","InteractionsRegistry","Service","InteractionsRegistryLive"],"sources":["../../src/Interactions/gateway.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,64 +0,0 @@
1
- import * as Effect from "effect/Effect";
2
- import * as IxHelpers from "../Helpers/interactions.js";
3
- import * as Ctx from "./context.js";
4
- import { flattenDefinitions, splitDefinitions } from "./utils.js";
5
- import * as Discord from "../types.js";
6
- export class DefinitionNotFound {
7
- interaction;
8
- _tag = "DefinitionNotFound";
9
- constructor(interaction) {
10
- this.interaction = interaction;
11
- }
12
- }
13
- export const handlers = (definitions, handleResponse) => {
14
- const flattened = flattenDefinitions(definitions, handleResponse);
15
- const {
16
- Autocomplete,
17
- Commands,
18
- MessageComponent,
19
- ModalSubmit
20
- } = splitDefinitions(flattened);
21
- return {
22
- [Discord.InteractionTypes.PING]: _ => Effect.succeed({
23
- type: Discord.InteractionCallbackTypes.PONG
24
- }),
25
- [Discord.InteractionTypes.APPLICATION_COMMAND]: i => {
26
- const data = i.data;
27
- const command = Commands[data.name];
28
- if (command === undefined) {
29
- return Effect.fail(new DefinitionNotFound(i));
30
- }
31
- return Effect.provideService(command.handle(i), Ctx.ApplicationCommand, data);
32
- },
33
- [Discord.InteractionTypes.SOCIAL_LAYER_SKU_PURCHASE_ELIGIBILITY]: i => Effect.fail(new DefinitionNotFound(i)),
34
- [Discord.InteractionTypes.MODAL_SUBMIT]: i => {
35
- const data = i.data;
36
- const match = ModalSubmit.find(_ => _.predicate(data.custom_id));
37
- if (match === undefined) {
38
- return Effect.fail(new DefinitionNotFound(i));
39
- }
40
- return Effect.provideService(match.handle(i), Ctx.ModalSubmitData, data);
41
- },
42
- [Discord.InteractionTypes.MESSAGE_COMPONENT]: i => {
43
- const data = i.data;
44
- const match = MessageComponent.find(_ => _.predicate(data.custom_id));
45
- if (match === undefined) {
46
- return Effect.fail(new DefinitionNotFound(i));
47
- }
48
- return Effect.provideService(match.handle(i), Ctx.MessageComponentData, data);
49
- },
50
- [Discord.InteractionTypes.APPLICATION_COMMAND_AUTOCOMPLETE]: i => {
51
- const data = i.data;
52
- const option = IxHelpers.focusedOption(data);
53
- if (option._tag === "None") {
54
- return Effect.fail(new DefinitionNotFound(i));
55
- }
56
- const match = Autocomplete.find(_ => _.predicate(data, option.value));
57
- if (match === undefined) {
58
- return Effect.fail(new DefinitionNotFound(i));
59
- }
60
- return match.handle(i).pipe(Effect.provideService(Ctx.ApplicationCommand, data), Effect.provideService(Ctx.FocusedOptionContext, option.value));
61
- }
62
- };
63
- };
64
- //# sourceMappingURL=handlers.mjs.map