dfx 0.61.5 → 0.61.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 (158) hide show
  1. package/Cache/memoryTTL.d.ts.map +1 -1
  2. package/Cache/memoryTTL.js.map +1 -1
  3. package/Cache/prelude.d.ts +3 -3
  4. package/Cache/prelude.d.ts.map +1 -1
  5. package/Cache/prelude.js.map +1 -1
  6. package/Cache.d.ts.map +1 -1
  7. package/Cache.js.map +1 -1
  8. package/DiscordGateway/DiscordWS.d.ts +1 -1
  9. package/DiscordGateway/DiscordWS.d.ts.map +1 -1
  10. package/DiscordGateway/DiscordWS.js.map +1 -1
  11. package/DiscordGateway/Shard/heartbeats.d.ts.map +1 -1
  12. package/DiscordGateway/Shard/heartbeats.js.map +1 -1
  13. package/DiscordGateway/Shard/sendEvents.js +9 -6
  14. package/DiscordGateway/Shard/sendEvents.js.map +1 -1
  15. package/DiscordGateway/Shard/utils.d.ts.map +1 -1
  16. package/DiscordGateway/Shard/utils.js.map +1 -1
  17. package/DiscordGateway/Shard.d.ts +2 -2
  18. package/DiscordGateway/Shard.d.ts.map +1 -1
  19. package/DiscordGateway/Shard.js +18 -15
  20. package/DiscordGateway/Shard.js.map +1 -1
  21. package/DiscordGateway/Sharder.d.ts +2 -2
  22. package/DiscordGateway/Sharder.d.ts.map +1 -1
  23. package/DiscordGateway/Sharder.js +9 -9
  24. package/DiscordGateway/Sharder.js.map +1 -1
  25. package/DiscordGateway/WS.d.ts +0 -1
  26. package/DiscordGateway/WS.d.ts.map +1 -1
  27. package/DiscordGateway/WS.js +9 -14
  28. package/DiscordGateway/WS.js.map +1 -1
  29. package/DiscordGateway.d.ts +1 -1
  30. package/DiscordGateway.d.ts.map +1 -1
  31. package/DiscordGateway.js +1 -1
  32. package/DiscordGateway.js.map +1 -1
  33. package/DiscordREST/utils.d.ts.map +1 -1
  34. package/DiscordREST/utils.js.map +1 -1
  35. package/DiscordREST.d.ts +1 -1
  36. package/DiscordREST.d.ts.map +1 -1
  37. package/DiscordREST.js.map +1 -1
  38. package/Helpers/flags.d.ts.map +1 -1
  39. package/Helpers/flags.js.map +1 -1
  40. package/Helpers/intents.d.ts.map +1 -1
  41. package/Helpers/intents.js.map +1 -1
  42. package/Helpers/interactions.d.ts.map +1 -1
  43. package/Helpers/interactions.js +3 -2
  44. package/Helpers/interactions.js.map +1 -1
  45. package/Helpers/members.d.ts.map +1 -1
  46. package/Helpers/members.js.map +1 -1
  47. package/Helpers/permissions.js.map +1 -1
  48. package/Helpers/ui.js +12 -11
  49. package/Helpers/ui.js.map +1 -1
  50. package/Interactions/builder.d.ts.map +1 -1
  51. package/Interactions/builder.js.map +1 -1
  52. package/Interactions/context.d.ts.map +1 -1
  53. package/Interactions/context.js.map +1 -1
  54. package/Interactions/definitions.d.ts.map +1 -1
  55. package/Interactions/definitions.js.map +1 -1
  56. package/Interactions/gateway.d.ts.map +1 -1
  57. package/Interactions/gateway.js.map +1 -1
  58. package/Interactions/handlers.d.ts.map +1 -1
  59. package/Interactions/handlers.js +7 -7
  60. package/Interactions/handlers.js.map +1 -1
  61. package/Interactions/index.d.ts.map +1 -1
  62. package/Interactions/index.js.map +1 -1
  63. package/Interactions/utils.d.ts.map +1 -1
  64. package/Interactions/utils.js.map +1 -1
  65. package/Interactions/webhook.d.ts.map +1 -1
  66. package/Interactions/webhook.js.map +1 -1
  67. package/Log.js.map +1 -1
  68. package/RateLimit.d.ts.map +1 -1
  69. package/RateLimit.js.map +1 -1
  70. package/gateway.d.ts +1 -1
  71. package/mjs/Cache/memoryTTL.mjs.map +1 -1
  72. package/mjs/Cache/prelude.mjs.map +1 -1
  73. package/mjs/Cache.mjs.map +1 -1
  74. package/mjs/DiscordGateway/DiscordWS.mjs.map +1 -1
  75. package/mjs/DiscordGateway/Shard/heartbeats.mjs.map +1 -1
  76. package/mjs/DiscordGateway/Shard/sendEvents.mjs +7 -6
  77. package/mjs/DiscordGateway/Shard/sendEvents.mjs.map +1 -1
  78. package/mjs/DiscordGateway/Shard/utils.mjs.map +1 -1
  79. package/mjs/DiscordGateway/Shard.mjs +18 -15
  80. package/mjs/DiscordGateway/Shard.mjs.map +1 -1
  81. package/mjs/DiscordGateway/Sharder.mjs +9 -9
  82. package/mjs/DiscordGateway/Sharder.mjs.map +1 -1
  83. package/mjs/DiscordGateway/WS.mjs +9 -14
  84. package/mjs/DiscordGateway/WS.mjs.map +1 -1
  85. package/mjs/DiscordGateway.mjs +1 -1
  86. package/mjs/DiscordGateway.mjs.map +1 -1
  87. package/mjs/DiscordREST/utils.mjs.map +1 -1
  88. package/mjs/DiscordREST.mjs.map +1 -1
  89. package/mjs/Helpers/flags.mjs.map +1 -1
  90. package/mjs/Helpers/intents.mjs.map +1 -1
  91. package/mjs/Helpers/interactions.mjs +3 -2
  92. package/mjs/Helpers/interactions.mjs.map +1 -1
  93. package/mjs/Helpers/members.mjs.map +1 -1
  94. package/mjs/Helpers/permissions.mjs.map +1 -1
  95. package/mjs/Helpers/ui.mjs +12 -11
  96. package/mjs/Helpers/ui.mjs.map +1 -1
  97. package/mjs/Interactions/builder.mjs.map +1 -1
  98. package/mjs/Interactions/context.mjs.map +1 -1
  99. package/mjs/Interactions/definitions.mjs.map +1 -1
  100. package/mjs/Interactions/gateway.mjs.map +1 -1
  101. package/mjs/Interactions/handlers.mjs +7 -7
  102. package/mjs/Interactions/handlers.mjs.map +1 -1
  103. package/mjs/Interactions/index.mjs.map +1 -1
  104. package/mjs/Interactions/utils.mjs.map +1 -1
  105. package/mjs/Interactions/webhook.mjs.map +1 -1
  106. package/mjs/Log.mjs.map +1 -1
  107. package/mjs/RateLimit.mjs.map +1 -1
  108. package/mjs/types.mjs +733 -9
  109. package/mjs/types.mjs.map +1 -1
  110. package/mjs/utils/Effect.mjs +4 -4
  111. package/mjs/utils/Effect.mjs.map +1 -1
  112. package/mjs/version.mjs +1 -1
  113. package/mjs/webhooks.mjs.map +1 -1
  114. package/package.json +2 -2
  115. package/src/Cache/memoryTTL.ts +4 -6
  116. package/src/Cache/prelude.ts +13 -15
  117. package/src/Cache.ts +5 -2
  118. package/src/DiscordGateway/DiscordWS.ts +6 -5
  119. package/src/DiscordGateway/Shard/heartbeats.ts +2 -3
  120. package/src/DiscordGateway/Shard/utils.ts +10 -9
  121. package/src/DiscordGateway/Shard.ts +38 -38
  122. package/src/DiscordGateway/Sharder.ts +19 -17
  123. package/src/DiscordGateway/WS.ts +34 -37
  124. package/src/DiscordGateway.ts +12 -8
  125. package/src/DiscordREST/utils.ts +2 -4
  126. package/src/DiscordREST.ts +24 -26
  127. package/src/Helpers/flags.ts +4 -2
  128. package/src/Helpers/intents.ts +4 -3
  129. package/src/Helpers/interactions.ts +54 -51
  130. package/src/Helpers/members.ts +2 -2
  131. package/src/Helpers/permissions.ts +2 -2
  132. package/src/Interactions/builder.ts +18 -20
  133. package/src/Interactions/context.ts +31 -18
  134. package/src/Interactions/definitions.ts +36 -27
  135. package/src/Interactions/gateway.ts +85 -82
  136. package/src/Interactions/handlers.ts +35 -34
  137. package/src/Interactions/index.ts +20 -16
  138. package/src/Interactions/utils.ts +17 -13
  139. package/src/Interactions/webhook.ts +15 -19
  140. package/src/Log.ts +2 -2
  141. package/src/RateLimit.ts +4 -5
  142. package/src/types.ts +172 -188
  143. package/src/utils/Effect.ts +34 -33
  144. package/src/version.ts +1 -1
  145. package/src/webhooks.ts +1 -4
  146. package/types.d.ts +140 -132
  147. package/types.d.ts.map +1 -1
  148. package/types.js +784 -10
  149. package/types.js.map +1 -1
  150. package/utils/Effect.d.ts.map +1 -1
  151. package/utils/Effect.js +4 -4
  152. package/utils/Effect.js.map +1 -1
  153. package/version.d.ts +1 -1
  154. package/version.js +1 -1
  155. package/webhooks.d.ts +1 -1
  156. package/webhooks.d.ts.map +1 -1
  157. package/webhooks.js.map +1 -1
  158. package/tsconfig.tsbuildinfo +0 -1
@@ -61,28 +61,28 @@ export const handlers = <R, E, TE, A, B>(
61
61
  [Discord.InteractionType.MODAL_SUBMIT]: i => {
62
62
  const data = i.data as Discord.ModalSubmitDatum
63
63
 
64
- return Effect.findFirst(ModalSubmit, _ => _.predicate(data.custom_id))
65
- .pipe(
66
- Effect.flatMap(
67
- Option.match({
68
- onNone: () => Effect.fail(new DefinitionNotFound(i)),
69
- onSome: match =>
70
- Effect.provideService(
71
- match.handle(i),
72
- Ctx.ModalSubmitData,
73
- data,
74
- ) as Handler<R, E, B>,
75
- }),
76
- ),
77
- )
64
+ return Effect.findFirst(ModalSubmit, _ =>
65
+ _.predicate(data.custom_id),
66
+ ).pipe(
67
+ Effect.flatMap(
68
+ Option.match({
69
+ onNone: () => Effect.fail(new DefinitionNotFound(i)),
70
+ onSome: match =>
71
+ Effect.provideService(
72
+ match.handle(i),
73
+ Ctx.ModalSubmitData,
74
+ data,
75
+ ) as Handler<R, E, B>,
76
+ }),
77
+ ),
78
+ )
78
79
  },
79
80
 
80
81
  [Discord.InteractionType.MESSAGE_COMPONENT]: i => {
81
82
  const data = i.data as Discord.MessageComponentDatum
82
83
 
83
- return Effect.findFirst(
84
- MessageComponent,
85
- _ => _.predicate(data.custom_id),
84
+ return Effect.findFirst(MessageComponent, _ =>
85
+ _.predicate(data.custom_id),
86
86
  ).pipe(
87
87
  Effect.flatMap(
88
88
  Option.match({
@@ -104,24 +104,25 @@ export const handlers = <R, E, TE, A, B>(
104
104
  return Option.match(IxHelpers.focusedOption(data), {
105
105
  onNone: () => Effect.fail(new DefinitionNotFound(i)),
106
106
  onSome: focusedOption =>
107
- Effect.findFirst(Autocomplete, _ => _.predicate(data, focusedOption))
108
- .pipe(
109
- Effect.flatMap(
110
- Option.match({
111
- onNone: () => Effect.fail(new DefinitionNotFound(i)),
112
- onSome: match =>
113
- Effect.provideService(
114
- match.handle(i),
115
- Ctx.ApplicationCommand,
116
- data,
117
- ).pipe(
118
- Effect.provideService(Ctx.FocusedOptionContext, {
119
- focusedOption,
120
- }),
121
- ) as Handler<R, E, B>,
122
- }),
123
- ),
107
+ Effect.findFirst(Autocomplete, _ =>
108
+ _.predicate(data, focusedOption),
109
+ ).pipe(
110
+ Effect.flatMap(
111
+ Option.match({
112
+ onNone: () => Effect.fail(new DefinitionNotFound(i)),
113
+ onSome: match =>
114
+ Effect.provideService(
115
+ match.handle(i),
116
+ Ctx.ApplicationCommand,
117
+ data,
118
+ ).pipe(
119
+ Effect.provideService(Ctx.FocusedOptionContext, {
120
+ focusedOption,
121
+ }),
122
+ ) as Handler<R, E, B>,
123
+ }),
124
124
  ),
125
+ ),
125
126
  })
126
127
  },
127
128
  }
@@ -23,20 +23,24 @@ export const idStartsWith = (query: string) => (customId: string) =>
23
23
  export const idRegex = (query: RegExp) => (customId: string) =>
24
24
  Effect.succeed(query.test(customId))
25
25
 
26
- export const option = (command: string, optionName: string) =>
27
- (
28
- data: Pick<Discord.ApplicationCommandDatum, "name">,
29
- focusedOption: Pick<
30
- Discord.ApplicationCommandInteractionDataOption,
31
- "name"
32
- >,
33
- ) => Effect.succeed(data.name === command && focusedOption.name === optionName)
26
+ export const option =
27
+ (command: string, optionName: string) =>
28
+ (
29
+ data: Pick<Discord.ApplicationCommandDatum, "name">,
30
+ focusedOption: Pick<
31
+ Discord.ApplicationCommandInteractionDataOption,
32
+ "name"
33
+ >,
34
+ ) =>
35
+ Effect.succeed(data.name === command && focusedOption.name === optionName)
34
36
 
35
- export const optionOnly = (optionName: string) =>
36
- (
37
- _: unknown,
38
- focusedOption: Pick<
39
- Discord.ApplicationCommandInteractionDataOption,
40
- "name"
41
- >,
42
- ) => Effect.succeed(focusedOption.name === optionName)
37
+ export const optionOnly =
38
+ (optionName: string) =>
39
+ (
40
+ _: unknown,
41
+ focusedOption: Pick<
42
+ Discord.ApplicationCommandInteractionDataOption,
43
+ "name"
44
+ >,
45
+ ) =>
46
+ Effect.succeed(focusedOption.name === optionName)
@@ -7,11 +7,12 @@ import type * as Discord from "dfx/types"
7
7
  export type DefinitionFlattened<R, E, TE, A> = D.InteractionDefinition<
8
8
  R,
9
9
  E
10
- > extends infer D ? {
11
- [K in keyof D]: K extends "handle"
12
- ? (_: Discord.Interaction) => Effect.Effect<R, TE, A>
13
- : D[K]
14
- }
10
+ > extends infer D
11
+ ? {
12
+ [K in keyof D]: K extends "handle"
13
+ ? (_: Discord.Interaction) => Effect.Effect<R, TE, A>
14
+ : D[K]
15
+ }
15
16
  : never
16
17
 
17
18
  export type DefinitionFlattenedCommand<R, E, TE, A> = Extract<
@@ -44,11 +45,13 @@ export const flattenDefinitions = <R, E, TE, A, B>(
44
45
  handle: (i: Discord.Interaction) =>
45
46
  Effect.isEffect(definition.handle)
46
47
  ? transform(
47
- Effect.flatMap(definition.handle, _ => handleResponse(i, _)),
48
- )
48
+ Effect.flatMap(definition.handle, _ => handleResponse(i, _)),
49
+ )
49
50
  : transform(
50
- Effect.flatMap(definition.handle(context), _ => handleResponse(i, _)),
51
- ),
51
+ Effect.flatMap(definition.handle(context), _ =>
52
+ handleResponse(i, _),
53
+ ),
54
+ ),
52
55
  }))
53
56
 
54
57
  export const splitDefinitions = <R, E, TE, A>(
@@ -79,10 +82,11 @@ export const splitDefinitions = <R, E, TE, A>(
79
82
  ).pipe(
80
83
  Chunk.reduce(
81
84
  {} as Record<string, DefinitionFlattenedCommand<R, E, TE, A>>,
82
- (acc, d) => ({
83
- ...acc,
84
- [d.command.name]: d,
85
- } as any),
85
+ (acc, d) =>
86
+ ({
87
+ ...acc,
88
+ [d.command.name]: d,
89
+ }) as any,
86
90
  ),
87
91
  )
88
92
 
@@ -42,8 +42,8 @@ const checkSignature = (
42
42
  publicKey,
43
43
  crypto,
44
44
  algorithm,
45
- )
46
- )
45
+ ),
46
+ ),
47
47
  ),
48
48
  Effect.filterOrFail(identity, () => new BadWebhookSignature()),
49
49
  Effect.catchAllCause(() => Effect.fail(new BadWebhookSignature())),
@@ -86,16 +86,14 @@ export class WebhookParseError {
86
86
  }
87
87
 
88
88
  const fromHeadersAndBody = (headers: Headers, body: string) =>
89
- Effect.tap(
90
- WebhookConfig,
91
- ({ algorithm, crypto, publicKey }) =>
92
- checkSignature(publicKey, headers, body, crypto, algorithm),
89
+ Effect.tap(WebhookConfig, ({ algorithm, crypto, publicKey }) =>
90
+ checkSignature(publicKey, headers, body, crypto, algorithm),
93
91
  ).pipe(
94
92
  Effect.flatMap(() =>
95
93
  Effect.try({
96
94
  try: () => JSON.parse(body) as Discord.Interaction,
97
95
  catch: reason => new WebhookParseError(reason),
98
- })
96
+ }),
99
97
  ),
100
98
  )
101
99
 
@@ -115,14 +113,12 @@ const run = <R, E>(
115
113
  ) => {
116
114
  const handler = handlers(definitions, handleResponse)
117
115
  return (headers: Headers, body: string) =>
118
- Effect.flatMap(
119
- fromHeadersAndBody(headers, body),
120
- interaction =>
121
- Effect.provideService(
122
- handler[interaction.type](interaction),
123
- Interaction,
124
- interaction,
125
- ),
116
+ Effect.flatMap(fromHeadersAndBody(headers, body), interaction =>
117
+ Effect.provideService(
118
+ handler[interaction.type](interaction),
119
+ Interaction,
120
+ interaction,
121
+ ),
126
122
  )
127
123
  }
128
124
 
@@ -138,14 +134,14 @@ export interface HandleWebhookOpts<E> {
138
134
  */
139
135
  export const makeHandler = <R, E, TE>(
140
136
  ix: InteractionBuilder<R, E, TE>,
141
- ): ({
137
+ ): (({
142
138
  body,
143
139
  error,
144
140
  headers,
145
141
  success,
146
142
  }: HandleWebhookOpts<
147
143
  E | WebhookParseError | BadWebhookSignature | DefinitionNotFound
148
- >) => Effect.Effect<WebhookConfig, never, void> => {
144
+ >) => Effect.Effect<WebhookConfig, never, void>) => {
149
145
  const handle = run(
150
146
  Chunk.map(ix.definitions, ([d]) => [d, identity] as any),
151
147
  (_i, r) => Effect.succeed(r),
@@ -170,7 +166,7 @@ export const makeHandler = <R, E, TE>(
170
166
  */
171
167
  export const makeSimpleHandler = <R, E, TE>(
172
168
  ix: InteractionBuilder<R, E, TE>,
173
- ): ({
169
+ ): (({
174
170
  body,
175
171
  headers,
176
172
  }: {
@@ -180,7 +176,7 @@ export const makeSimpleHandler = <R, E, TE>(
180
176
  WebhookConfig,
181
177
  BadWebhookSignature | WebhookParseError | DefinitionNotFound,
182
178
  Discord.InteractionResponse
183
- > => {
179
+ >) => {
184
180
  const handle = run(
185
181
  Chunk.map(ix.definitions, ([d]) => [d, identity] as any),
186
182
  (_i, r) => Effect.succeed(r),
package/src/Log.ts CHANGED
@@ -10,8 +10,8 @@ const make = (debug = false) => ({
10
10
  debug: (...args: Array<any>) =>
11
11
  debug
12
12
  ? Effect.sync(() => {
13
- console.error("DEBUG", ...args)
14
- })
13
+ console.error("DEBUG", ...args)
14
+ })
15
15
  : Effect.unit,
16
16
  })
17
17
 
package/src/RateLimit.ts CHANGED
@@ -43,7 +43,7 @@ export interface RateLimitStore {
43
43
  export const RateLimitStore = Tag<RateLimitStore>()
44
44
  export const LiveMemoryRateLimitStore = Layer.sync(RateLimitStore, Memory.make)
45
45
 
46
- const makeLimiter = Effect.gen(function*(_) {
46
+ const makeLimiter = Effect.gen(function* (_) {
47
47
  const store = yield* _(RateLimitStore)
48
48
  const log = yield* _(Log)
49
49
 
@@ -64,10 +64,10 @@ const makeLimiter = Effect.gen(function*(_) {
64
64
  windowMs,
65
65
  limit,
66
66
  delay: Duration.toMillis(d),
67
- })
67
+ }),
68
68
  ),
69
69
  Effect.tap(_ =>
70
- Duration.toMillis(_) === 0 ? Effect.unit : Effect.sleep(_)
70
+ Duration.toMillis(_) === 0 ? Effect.unit : Effect.sleep(_),
71
71
  ),
72
72
  Effect.asUnit,
73
73
  )
@@ -77,7 +77,6 @@ const makeLimiter = Effect.gen(function*(_) {
77
77
  })
78
78
 
79
79
  export interface RateLimiter
80
- extends Effect.Effect.Success<typeof makeLimiter>
81
- {}
80
+ extends Effect.Effect.Success<typeof makeLimiter> {}
82
81
  export const RateLimiter = Tag<RateLimiter>()
83
82
  export const LiveRateLimiter = Layer.effect(RateLimiter, makeLimiter)