dfx 0.77.3 → 0.79.0
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.
- package/Cache/prelude.d.ts +3 -3
- package/DiscordConfig.d.ts +8 -10
- package/DiscordConfig.d.ts.map +1 -1
- package/DiscordConfig.js +1 -3
- package/DiscordConfig.js.map +1 -1
- package/DiscordGateway/DiscordWS.d.ts +12 -11
- package/DiscordGateway/DiscordWS.d.ts.map +1 -1
- package/DiscordGateway/DiscordWS.js +8 -5
- package/DiscordGateway/DiscordWS.js.map +1 -1
- package/DiscordGateway/Messaging.d.ts +28 -0
- package/DiscordGateway/Messaging.d.ts.map +1 -0
- package/DiscordGateway/Messaging.js +41 -0
- package/DiscordGateway/Messaging.js.map +1 -0
- package/DiscordGateway/Shard.d.ts +14 -11
- package/DiscordGateway/Shard.d.ts.map +1 -1
- package/DiscordGateway/Shard.js +22 -19
- package/DiscordGateway/Shard.js.map +1 -1
- package/DiscordGateway/ShardStore.d.ts +5 -2
- package/DiscordGateway/ShardStore.d.ts.map +1 -1
- package/DiscordGateway/ShardStore.js +1 -1
- package/DiscordGateway/ShardStore.js.map +1 -1
- package/DiscordGateway/Sharder.d.ts +9 -18
- package/DiscordGateway/Sharder.d.ts.map +1 -1
- package/DiscordGateway/Sharder.js +36 -45
- package/DiscordGateway/Sharder.js.map +1 -1
- package/DiscordGateway/WS.d.ts +14 -10
- package/DiscordGateway/WS.d.ts.map +1 -1
- package/DiscordGateway/WS.js +31 -21
- package/DiscordGateway/WS.js.map +1 -1
- package/DiscordGateway.d.ts +10 -7
- package/DiscordGateway.d.ts.map +1 -1
- package/DiscordGateway.js +13 -31
- package/DiscordGateway.js.map +1 -1
- package/DiscordREST.d.ts +6 -4
- package/DiscordREST.d.ts.map +1 -1
- package/DiscordREST.js +9 -8
- package/DiscordREST.js.map +1 -1
- package/Interactions/context.d.ts +36 -18
- package/Interactions/context.d.ts.map +1 -1
- package/Interactions/context.js +6 -6
- package/Interactions/context.js.map +1 -1
- package/Interactions/definitions.d.ts +11 -11
- package/Interactions/definitions.d.ts.map +1 -1
- package/Interactions/definitions.js.map +1 -1
- package/Interactions/gateway.d.ts +7 -6
- package/Interactions/gateway.d.ts.map +1 -1
- package/Interactions/gateway.js +1 -1
- package/Interactions/gateway.js.map +1 -1
- package/Interactions/handlers.d.ts +2 -1
- package/Interactions/handlers.d.ts.map +1 -1
- package/Interactions/webhook.d.ts +7 -8
- package/Interactions/webhook.d.ts.map +1 -1
- package/Interactions/webhook.js +3 -3
- package/Interactions/webhook.js.map +1 -1
- package/README.md +37 -29
- package/RateLimit/memory.d.ts +2 -2
- package/RateLimit/memory.d.ts.map +1 -1
- package/RateLimit/memory.js.map +1 -1
- package/RateLimit.d.ts +10 -9
- package/RateLimit.d.ts.map +1 -1
- package/RateLimit.js +4 -5
- package/RateLimit.js.map +1 -1
- package/gateway.d.ts +2 -2
- package/gateway.d.ts.map +1 -1
- package/gateway.js +1 -2
- package/gateway.js.map +1 -1
- package/index.d.ts +1 -2
- package/index.d.ts.map +1 -1
- package/index.js +1 -3
- package/index.js.map +1 -1
- package/mjs/DiscordConfig.mjs +1 -3
- package/mjs/DiscordConfig.mjs.map +1 -1
- package/mjs/DiscordGateway/DiscordWS.mjs +8 -5
- package/mjs/DiscordGateway/DiscordWS.mjs.map +1 -1
- package/mjs/DiscordGateway/Messaging.mjs +33 -0
- package/mjs/DiscordGateway/Messaging.mjs.map +1 -0
- package/mjs/DiscordGateway/Shard.mjs +22 -19
- package/mjs/DiscordGateway/Shard.mjs.map +1 -1
- package/mjs/DiscordGateway/ShardStore.mjs +1 -1
- package/mjs/DiscordGateway/ShardStore.mjs.map +1 -1
- package/mjs/DiscordGateway/Sharder.mjs +35 -44
- package/mjs/DiscordGateway/Sharder.mjs.map +1 -1
- package/mjs/DiscordGateway/WS.mjs +32 -22
- package/mjs/DiscordGateway/WS.mjs.map +1 -1
- package/mjs/DiscordGateway.mjs +12 -30
- package/mjs/DiscordGateway.mjs.map +1 -1
- package/mjs/DiscordREST.mjs +9 -8
- package/mjs/DiscordREST.mjs.map +1 -1
- package/mjs/Interactions/context.mjs +6 -6
- package/mjs/Interactions/context.mjs.map +1 -1
- package/mjs/Interactions/definitions.mjs.map +1 -1
- package/mjs/Interactions/gateway.mjs +1 -1
- package/mjs/Interactions/gateway.mjs.map +1 -1
- package/mjs/Interactions/webhook.mjs +3 -3
- package/mjs/Interactions/webhook.mjs.map +1 -1
- package/mjs/RateLimit/memory.mjs.map +1 -1
- package/mjs/RateLimit.mjs +4 -5
- package/mjs/RateLimit.mjs.map +1 -1
- package/mjs/gateway.mjs +1 -2
- package/mjs/gateway.mjs.map +1 -1
- package/mjs/index.mjs +1 -2
- package/mjs/index.mjs.map +1 -1
- package/mjs/version.mjs +1 -1
- package/mjs/webhooks.mjs +1 -2
- package/mjs/webhooks.mjs.map +1 -1
- package/package.json +4 -4
- package/src/DiscordConfig.ts +10 -12
- package/src/DiscordGateway/DiscordWS.ts +23 -13
- package/src/DiscordGateway/Messaging.ts +72 -0
- package/src/DiscordGateway/Shard.ts +53 -35
- package/src/DiscordGateway/ShardStore.ts +8 -3
- package/src/DiscordGateway/Sharder.ts +72 -97
- package/src/DiscordGateway/WS.ts +64 -32
- package/src/DiscordGateway.ts +22 -71
- package/src/DiscordREST.ts +42 -29
- package/src/Interactions/context.ts +47 -10
- package/src/Interactions/definitions.ts +22 -20
- package/src/Interactions/gateway.ts +14 -6
- package/src/Interactions/handlers.ts +1 -1
- package/src/Interactions/webhook.ts +21 -7
- package/src/RateLimit/memory.ts +2 -2
- package/src/RateLimit.ts +17 -8
- package/src/gateway.ts +0 -2
- package/src/index.ts +0 -2
- package/src/version.ts +1 -1
- package/src/webhooks.ts +1 -2
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/webhooks.d.ts +1 -2
- package/webhooks.d.ts.map +1 -1
- package/webhooks.js +1 -2
- package/webhooks.js.map +1 -1
- package/Log.d.ts +0 -14
- package/Log.d.ts.map +0 -1
- package/Log.js +0 -23
- package/Log.js.map +0 -1
- package/mjs/Log.mjs +0 -15
- package/mjs/Log.mjs.map +0 -1
- package/src/Log.ts +0 -24
package/mjs/DiscordREST.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiscordREST.mjs","names":["Tag","Duration","millis","pipe","HashSet","Option","
|
|
1
|
+
{"version":3,"file":"DiscordREST.mjs","names":["Tag","Duration","millis","pipe","HashSet","Option","Secret","Effect","Layer","Ref","Http","DiscordConfig","rateLimitFromHeaders","retryAfter","routeFromConfig","RateLimiterLive","RateLimiter","RateLimitStore","Discord","LIB_VERSION","DiscordRESTError","error","body","_tag","constructor","make","gen","_","rest","token","http","client","Client","store","maybeWait","globalRateLimit","decode","window","limit","badRoutesRef","empty","tenMinutes","toMillis","minutes","addBadRoute","route","logDebug","zipRight","update","add","incrementCounter","annotateLogs","isBadRoute","map","get","has","removeBadRoute","remove","invalidRateLimit","tap","invalid","unit","asUnit","requestRateLimit","path","request","Do","let","method","bind","getBucketForRoute","flatMap","maybeBucket","match","onNone","onSome","bucket","key","resetAfter","updateBuckets","response","url","headers","rateLimit","hasBucket","effectsToRun","putBucketRoute","remaining","push","removeCounter","putBucket","all","concurrency","discard","ignore","httpExecutor","filterStatusOk","mapRequest","req","prependUrl","baseUrl","setHeaders","Authorization","value","catchAll","reason","json","mapError","fail","executor","zipLeft","catchTag","e","status","sleep","getOrElse","seconds","package","module","routes","createRoutes","options","params","hasBody","appendUrlParams","formData","append","JSON","stringify","unsafeJsonBody","DiscordREST","DiscordRESTLive","effect","provide","layer"],"sources":["../src/DiscordREST.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -3,12 +3,12 @@ import * as Option from "effect/Option";
|
|
|
3
3
|
import * as Arr from "effect/ReadonlyArray";
|
|
4
4
|
import * as Effect from "effect/Effect";
|
|
5
5
|
import * as IxHelpers from "dfx/Helpers/interactions";
|
|
6
|
-
export const Interaction = /*#__PURE__*/Tag();
|
|
7
|
-
export const ApplicationCommand = /*#__PURE__*/Tag();
|
|
8
|
-
export const MessageComponentData = /*#__PURE__*/Tag();
|
|
9
|
-
export const ModalSubmitData = /*#__PURE__*/Tag();
|
|
10
|
-
export const FocusedOptionContext = /*#__PURE__*/Tag();
|
|
11
|
-
export const SubCommandContext = /*#__PURE__*/Tag();
|
|
6
|
+
export const Interaction = /*#__PURE__*/Tag("dfx/Interactions/Interaction");
|
|
7
|
+
export const ApplicationCommand = /*#__PURE__*/Tag("dfx/Interactions/ApplicationCommand");
|
|
8
|
+
export const MessageComponentData = /*#__PURE__*/Tag("dfx/Interactions/MessageComponentData");
|
|
9
|
+
export const ModalSubmitData = /*#__PURE__*/Tag("dfx/Interactions/ModalSubmitData");
|
|
10
|
+
export const FocusedOptionContext = /*#__PURE__*/Tag("dfx/Interactions/FocusedOptionContext");
|
|
11
|
+
export const SubCommandContext = /*#__PURE__*/Tag("dfx/Interactions/SubCommandContext");
|
|
12
12
|
export class ResolvedDataNotFound {
|
|
13
13
|
data;
|
|
14
14
|
name;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.mjs","names":["Tag","Option","Arr","Effect","IxHelpers","Interaction","ApplicationCommand","MessageComponentData","ModalSubmitData","FocusedOptionContext","SubCommandContext","ResolvedDataNotFound","data","name","_tag","constructor","resolvedValues","f","flatMap","ix","mapError","resolveValues","resolved","resolveOptionValue","focusedOptionValue","map","_","focusedOption","value","SubCommandNotFound","handleSubCommands","commands","pipe","findFirst","allSubCommands","command","provideService","currentSubCommand","optionsMap","RequiredOptionNotFound","option","getOption","optionValue","match","flatMapNullable","a","onNone","fail","onSome","succeed","optionValueOptional","o","modalValues","componentsMap","modalValueOption","componentValue","ModalValueNotFound","modalValue"],"sources":["../../src/Interactions/context.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAG,QAAQ,gBAAgB;AAEpC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,GAAG,MAAM,sBAAsB;AAC3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,SAAS,MAAM,0BAA0B;
|
|
1
|
+
{"version":3,"file":"context.mjs","names":["Tag","Option","Arr","Effect","IxHelpers","Interaction","ApplicationCommand","MessageComponentData","ModalSubmitData","FocusedOptionContext","SubCommandContext","ResolvedDataNotFound","data","name","_tag","constructor","resolvedValues","f","flatMap","ix","mapError","resolveValues","resolved","resolveOptionValue","focusedOptionValue","map","_","focusedOption","value","SubCommandNotFound","handleSubCommands","commands","pipe","findFirst","allSubCommands","command","provideService","currentSubCommand","optionsMap","RequiredOptionNotFound","option","getOption","optionValue","match","flatMapNullable","a","onNone","fail","onSome","succeed","optionValueOptional","o","modalValues","componentsMap","modalValueOption","componentValue","ModalValueNotFound","modalValue"],"sources":["../../src/Interactions/context.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
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":"
|
|
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":"AAoBA,OAAM,MAAOA,wBAAwB;EAGxBC,OAAA;EACAC,MAAA;EAHFC,IAAI,GAAG,0BAA0B;EAC1CC,YACWH,OAAqD,EACrDC,MAA4B;IAD5B,KAAAD,OAAO,GAAPA,OAAO;IACP,KAAAC,MAAM,GAANA,MAAM;EACd;;AAGL,OAAO,MAAMG,MAAM,GAAGA,CAMpBJ,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,OAAoD,EACpDC,MAA4B;IAD5B,KAAAD,OAAO,GAAPA,OAAO;IACP,KAAAC,MAAM,GAANA,MAAM;EACd;;AAGL,OAAO,MAAMK,KAAK,GAAGA,CAMnBN,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,SAA6D,EAC7DP,MAAwD;IADxD,KAAAO,SAAS,GAATA,SAAS;IACT,KAAAP,MAAM,GAANA,MAAM;EACd;;AAGL,OAAO,MAAMQ,gBAAgB,GAAGA,CAC9BC,IAA0D,EAC1DT,MAA2D,KAE3D,IAAIM,gBAAgB,CAGlBG,IAAW,EAAET,MAAa,CAAC;AAE/B,OAAM,MAAOU,WAAW;EAGXH,SAAA;EACAP,MAAA;EAHFC,IAAI,GAAG,aAAa;EAC7BC,YACWK,SAA6D,EAC7DP,MAAwD;IADxD,KAAAO,SAAS,GAATA,SAAS;IACT,KAAAP,MAAM,GAANA,MAAM;EACd;;AAGL,OAAO,MAAMW,WAAW,GAAGA,CACzBF,IAA0D,EAC1DT,MAA0D,KAE1D,IAAIU,WAAW,CAGbD,IAAW,EAAET,MAAa,CAAC;AAE/B,OAAM,MAAOY,YAAY;EAGZL,SAAA;EAIAP,MAAA;EANFC,IAAI,GAAG,cAAc;EAC9BC,YACWK,SAGwB,EACxBP,MAAwD;IAJxD,KAAAO,SAAS,GAATA,SAAS;IAIT,KAAAP,MAAM,GAANA,MAAM;EACd;;AAGL,OAAO,MAAMa,YAAY,GAAGA,CAC1BJ,IAGmC,EACnCT,MAA0D,KAE1D,IAAIY,YAAY,CAMdH,IAAW,EAAET,MAAa,CAAC"}
|
|
@@ -47,6 +47,6 @@ const makeRegistry = /*#__PURE__*/Effect.gen(function* (_) {
|
|
|
47
47
|
package: "dfx",
|
|
48
48
|
service: "InteractionsRegistry"
|
|
49
49
|
}));
|
|
50
|
-
export const InteractionsRegistry = /*#__PURE__*/Tag();
|
|
50
|
+
export const InteractionsRegistry = /*#__PURE__*/Tag("dfx/Interactions/InteractionsRegistry");
|
|
51
51
|
export const InteractionsRegistryLive = /*#__PURE__*/Layer.scoped(InteractionsRegistry, makeRegistry);
|
|
52
52
|
//# sourceMappingURL=gateway.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway.mjs","names":["Chunk","Tag","Duration","pipe","Effect","Layer","Queue","Ref","Http","DiscordGateway","DiscordREST","handlers","builder","Interaction","EffectUtils","Schedule","globalValue","FiberRef","interactionsSync","unsafeMake","setInteractionsSync","enabled","locally","run","postHandler","ix","gen","_","GlobalApplicationCommand","definitions","map","filter","_tag","toReadonlyArray","GuildApplicationCommand","gateway","rest","application","getCurrentBotApplicationInformation","flatMap","a","json","globalSync","bulkOverwriteGlobalApplicationCommands","id","body","unsafeJson","command","guildSync","length","handleDispatch","bulkOverwriteGuildApplicationCommands","never","handle","i","r","createInteractionResponse","token","provideService","type","sync","get","forever","all","concurrency","discard","makeRegistry","ref","make","queue","sliding","register","updateAndGet","concat","offer","foreverSwitch","take","catchAllCause","logError","delay","seconds","tapErrorCause","retry","exponential","union","spaced","forkScoped","annotateLogs","package","service","InteractionsRegistry","InteractionsRegistryLive","scoped"],"sources":["../../src/Interactions/gateway.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,cAAc;AACrC,SAASC,GAAG,QAAQ,gBAAgB;AACpC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,SAASC,IAAI,QAAQ,iBAAiB;AACtC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,GAAG,MAAM,YAAY;AACjC,OAAO,KAAKC,IAAI,MAAM,6BAA6B;AACnD,SAASC,cAAc,QAAQ,oBAAoB;AAEnD,SAASC,WAAW,QAAQ,iBAAiB;AAM7C,SAASC,QAAQ,QAAQ,2BAA2B;
|
|
1
|
+
{"version":3,"file":"gateway.mjs","names":["Chunk","Tag","Duration","pipe","Effect","Layer","Queue","Ref","Http","DiscordGateway","DiscordREST","handlers","builder","Interaction","EffectUtils","Schedule","globalValue","FiberRef","interactionsSync","unsafeMake","setInteractionsSync","enabled","locally","run","postHandler","ix","gen","_","GlobalApplicationCommand","definitions","map","filter","_tag","toReadonlyArray","GuildApplicationCommand","gateway","rest","application","getCurrentBotApplicationInformation","flatMap","a","json","globalSync","bulkOverwriteGlobalApplicationCommands","id","body","unsafeJson","command","guildSync","length","handleDispatch","bulkOverwriteGuildApplicationCommands","never","handle","i","r","createInteractionResponse","token","provideService","type","sync","get","forever","all","concurrency","discard","makeRegistry","ref","make","queue","sliding","register","updateAndGet","concat","offer","foreverSwitch","take","catchAllCause","logError","delay","seconds","tapErrorCause","retry","exponential","union","spaced","forkScoped","annotateLogs","package","service","InteractionsRegistry","InteractionsRegistryLive","scoped"],"sources":["../../src/Interactions/gateway.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import * as Chunk from "effect/Chunk";
|
|
|
2
2
|
import { Tag } from "effect/Context";
|
|
3
3
|
import { identity } from "effect/Function";
|
|
4
4
|
import * as Option from "effect/Option";
|
|
5
|
-
import * as
|
|
5
|
+
import * as Secret from "effect/Secret";
|
|
6
6
|
import * as Effect from "effect/Effect";
|
|
7
7
|
import * as Layer from "effect/Layer";
|
|
8
8
|
import { handlers } from "dfx/Interactions/handlers";
|
|
@@ -22,11 +22,11 @@ const makeConfig = ({
|
|
|
22
22
|
publicKey
|
|
23
23
|
}) => ({
|
|
24
24
|
applicationId,
|
|
25
|
-
publicKey:
|
|
25
|
+
publicKey: Secret.value(publicKey),
|
|
26
26
|
crypto,
|
|
27
27
|
algorithm: Verify.PlatformAlgorithm[algorithm]
|
|
28
28
|
});
|
|
29
|
-
export const WebhookConfig = /*#__PURE__*/Tag();
|
|
29
|
+
export const WebhookConfig = /*#__PURE__*/Tag("dfx/Interactions/WebhookConfig");
|
|
30
30
|
export const layer = opts => Layer.succeed(WebhookConfig, makeConfig(opts));
|
|
31
31
|
export const layerConfig = a => Layer.effect(WebhookConfig, Effect.map(Effect.config(a), makeConfig));
|
|
32
32
|
export class WebhookParseError {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhook.mjs","names":["Chunk","Tag","identity","Option","
|
|
1
|
+
{"version":3,"file":"webhook.mjs","names":["Chunk","Tag","identity","Option","Secret","Effect","Layer","handlers","Interaction","Verify","BadWebhookSignature","_tag","checkSignature","publicKey","headers","body","crypto","algorithm","all","signature","fromNullable","timestamp","pipe","flatMap","_","promise","verify","filterOrFail","catchAllCause","fail","asUnit","makeConfig","applicationId","value","PlatformAlgorithm","WebhookConfig","layer","opts","succeed","layerConfig","a","effect","map","config","WebhookParseError","reason","constructor","fromHeadersAndBody","tap","try","JSON","parse","catch","run","definitions","handleResponse","handler","interaction","provideService","type","makeHandler","ix","handle","d","_i","r","error","success","makeSimpleHandler"],"sources":["../../src/Interactions/webhook.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.mjs","names":["Option","Effect","make","buckets","Map","routes","counters","getCounter","key","filter","fromNullable","get","c","expires","Date","now","getBucketForRoute","route","sync","hasBucket","has","putBucket","bucket","set","putBucketRoute","removeCounter","delete","incrementCounter","window","limit","perRequest","Math","ceil","counter","getOrElse","count"],"sources":["../../src/RateLimit/memory.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,MAAM,MAAM,eAAe;AAQvC,OAAO,MAAMC,IAAI,GAAGA,CAAA,
|
|
1
|
+
{"version":3,"file":"memory.mjs","names":["Option","Effect","make","buckets","Map","routes","counters","getCounter","key","filter","fromNullable","get","c","expires","Date","now","getBucketForRoute","route","sync","hasBucket","has","putBucket","bucket","set","putBucketRoute","removeCounter","delete","incrementCounter","window","limit","perRequest","Math","ceil","counter","getOrElse","count"],"sources":["../../src/RateLimit/memory.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,MAAM,MAAM,eAAe;AAQvC,OAAO,MAAMC,IAAI,GAAGA,CAAA,KAA4B;EAC9C,MAAMC,OAAO,GAAG,IAAIC,GAAG,EAAyB;EAChD,MAAMC,MAAM,GAAG,IAAID,GAAG,EAAkB;EACxC,MAAME,QAAQ,GAAG,IAAIF,GAAG,EAAmB;EAE3C,MAAMG,UAAU,GAAIC,GAAW,IAC7BR,MAAM,CAACS,MAAM,CACXT,MAAM,CAACU,YAAY,CAACJ,QAAQ,CAACK,GAAG,CAACH,GAAG,CAAC,CAAC,EACtCI,CAAC,IAAIA,CAAC,CAACC,OAAO,GAAGC,IAAI,CAACC,GAAG,EAAE,CAC5B;EAEH,MAAMC,iBAAiB,GAAIC,KAAa,IACtChB,MAAM,CAACiB,IAAI,CAAC,MAAMlB,MAAM,CAACU,YAAY,CAACP,OAAO,CAACQ,GAAG,CAACN,MAAM,CAACM,GAAG,CAACM,KAAK,CAAE,CAAC,CAAC,CAAC;EAEzE,OAAO;IACLE,SAAS,EAAEX,GAAG,IAAIP,MAAM,CAACiB,IAAI,CAAC,MAAMf,OAAO,CAACiB,GAAG,CAACZ,GAAG,CAAC,CAAC;IAErDa,SAAS,EAAEC,MAAM,IACfrB,MAAM,CAACiB,IAAI,CAAC,MAAK;MACff,OAAO,CAACoB,GAAG,CAACD,MAAM,CAACd,GAAG,EAAEc,MAAM,CAAC;IACjC,CAAC,CAAC;IAEJN,iBAAiB;IAEjBQ,cAAc,EAAEA,CAACP,KAAK,EAAEK,MAAM,KAC5BrB,MAAM,CAACiB,IAAI,CAAC,MAAK;MACfb,MAAM,CAACkB,GAAG,CAACN,KAAK,EAAEK,MAAM,CAAC;IAC3B,CAAC,CAAC;IAEJG,aAAa,EAAEjB,GAAG,IAChBP,MAAM,CAACiB,IAAI,CAAC,MAAK;MACfZ,QAAQ,CAACoB,MAAM,CAAClB,GAAG,CAAC;IACtB,CAAC,CAAC;IAEJmB,gBAAgB,EAAEA,CAACnB,GAAG,EAAEoB,MAAM,EAAEC,KAAK,KACnC5B,MAAM,CAACiB,IAAI,CAAC,MAAK;MACf,MAAMH,GAAG,GAAGD,IAAI,CAACC,GAAG,EAAE;MACtB,MAAMe,UAAU,GAAGC,IAAI,CAACC,IAAI,CAACJ,MAAM,GAAGC,KAAK,CAAC;MAC5C,MAAMI,OAAO,GAAGjC,MAAM,CAACkC,SAAS,CAC9B3B,UAAU,CAACC,GAAG,CAAC,EACf,OAAgB;QACdK,OAAO,EAAEE,GAAG;QACZoB,KAAK,EAAE;OACR,CAAC,CACH;MAED,MAAMA,KAAK,GAAGF,OAAO,CAACE,KAAK,GAAG,CAAC;MAC/B,MAAMtB,OAAO,GAAGoB,OAAO,CAACpB,OAAO,GAAGiB,UAAU;MAC5CxB,QAAQ,CAACiB,GAAG,CAACf,GAAG,EAAE;QAAE,GAAGyB,OAAO;QAAEE,KAAK;QAAEtB;MAAO,CAAE,CAAC;MAEjD,OAAO,CAACsB,KAAK,EAAEtB,OAAO,GAAGE,GAAG,CAAC;IAC/B,CAAC;GACJ;AACH,CAAC"}
|
package/mjs/RateLimit.mjs
CHANGED
|
@@ -2,17 +2,16 @@ import { Tag } from "effect/Context";
|
|
|
2
2
|
import * as Duration from "effect/Duration";
|
|
3
3
|
import * as Effect from "effect/Effect";
|
|
4
4
|
import * as Layer from "effect/Layer";
|
|
5
|
-
import { Log } from "dfx/Log";
|
|
6
5
|
import * as Memory from "dfx/RateLimit/memory";
|
|
7
6
|
import { delayFrom } from "dfx/RateLimit/utils";
|
|
8
|
-
export const RateLimitStore = /*#__PURE__*/Tag();
|
|
7
|
+
export const RateLimitStore = /*#__PURE__*/Tag("dfx/RateLimit/RateLimitStore");
|
|
9
8
|
export const MemoryRateLimitStoreLive = /*#__PURE__*/Layer.sync(RateLimitStore, Memory.make);
|
|
10
9
|
const makeLimiter = /*#__PURE__*/Effect.gen(function* (_) {
|
|
11
10
|
const store = yield* _(RateLimitStore);
|
|
12
|
-
const log = yield* _(Log);
|
|
13
11
|
const maybeWait = (key, window, limit, multiplier = 1.05) => {
|
|
14
12
|
const windowMs = Duration.toMillis(window) * multiplier;
|
|
15
|
-
return store.incrementCounter(key, windowMs, limit).pipe(Effect.map(([count, ttl]) => delayFrom(windowMs, limit, count, ttl)), Effect.tap(d =>
|
|
13
|
+
return store.incrementCounter(key, windowMs, limit).pipe(Effect.map(([count, ttl]) => delayFrom(windowMs, limit, count, ttl)), Effect.tap(d => Effect.annotateLogs(Effect.logTrace("maybeWait"), {
|
|
14
|
+
service: "RateLimit",
|
|
16
15
|
key,
|
|
17
16
|
window: Duration.toMillis(window),
|
|
18
17
|
windowMs,
|
|
@@ -24,6 +23,6 @@ const makeLimiter = /*#__PURE__*/Effect.gen(function* (_) {
|
|
|
24
23
|
maybeWait
|
|
25
24
|
};
|
|
26
25
|
});
|
|
27
|
-
export const RateLimiter = /*#__PURE__*/Tag();
|
|
26
|
+
export const RateLimiter = /*#__PURE__*/Tag("dfx/RateLimit/RateLimiter");
|
|
28
27
|
export const RateLimiterLive = /*#__PURE__*/Layer.effect(RateLimiter, makeLimiter);
|
|
29
28
|
//# sourceMappingURL=RateLimit.mjs.map
|
package/mjs/RateLimit.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RateLimit.mjs","names":["Tag","Duration","Effect","Layer","
|
|
1
|
+
{"version":3,"file":"RateLimit.mjs","names":["Tag","Duration","Effect","Layer","Memory","delayFrom","RateLimitStore","MemoryRateLimitStoreLive","sync","make","makeLimiter","gen","_","store","maybeWait","key","window","limit","multiplier","windowMs","toMillis","incrementCounter","pipe","map","count","ttl","tap","d","annotateLogs","logTrace","service","delay","unit","sleep","asUnit","RateLimiter","RateLimiterLive","effect"],"sources":["../src/RateLimit.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAG,QAAQ,gBAAgB;AACpC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAE3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,sBAAsB;AAC9C,SAASC,SAAS,QAAQ,qBAAqB;AAuC/C,OAAO,MAAMC,cAAc,gBAAGN,GAAG,CAC/B,8BAA8B,CAC/B;AACD,OAAO,MAAMO,wBAAwB,gBAAGJ,KAAK,CAACK,IAAI,CAACF,cAAc,EAAEF,MAAM,CAACK,IAAI,CAAC;AAE/E,MAAMC,WAAW,gBAAGR,MAAM,CAACS,GAAG,CAAC,WAAWC,CAAC;EACzC,MAAMC,KAAK,GAAG,OAAOD,CAAC,CAACN,cAAc,CAAC;EAEtC,MAAMQ,SAAS,GAAGA,CAChBC,GAAW,EACXC,MAAyB,EACzBC,KAAa,EACbC,UAAU,GAAG,IAAI,KACf;IACF,MAAMC,QAAQ,GAAGlB,QAAQ,CAACmB,QAAQ,CAACJ,MAAM,CAAC,GAAGE,UAAU;IAEvD,OAAOL,KAAK,CAACQ,gBAAgB,CAACN,GAAG,EAAEI,QAAQ,EAAEF,KAAK,CAAC,CAACK,IAAI,CACtDpB,MAAM,CAACqB,GAAG,CAAC,CAAC,CAACC,KAAK,EAAEC,GAAG,CAAC,KAAKpB,SAAS,CAACc,QAAQ,EAAEF,KAAK,EAAEO,KAAK,EAAEC,GAAG,CAAC,CAAC,EACpEvB,MAAM,CAACwB,GAAG,CAACC,CAAC,IACVzB,MAAM,CAAC0B,YAAY,CAAC1B,MAAM,CAAC2B,QAAQ,CAAC,WAAW,CAAC,EAAE;MAChDC,OAAO,EAAE,WAAW;MACpBf,GAAG;MACHC,MAAM,EAAEf,QAAQ,CAACmB,QAAQ,CAACJ,MAAM,CAAC;MACjCG,QAAQ;MACRF,KAAK;MACLc,KAAK,EAAE9B,QAAQ,CAACmB,QAAQ,CAACO,CAAC;KAC3B,CAAC,CACH,EACDzB,MAAM,CAACwB,GAAG,CAACd,CAAC,IACVX,QAAQ,CAACmB,QAAQ,CAACR,CAAC,CAAC,KAAK,CAAC,GAAGV,MAAM,CAAC8B,IAAI,GAAG9B,MAAM,CAAC+B,KAAK,CAACrB,CAAC,CAAC,CAC3D,EACDV,MAAM,CAACgC,MAAM,CACd;EACH,CAAC;EAED,OAAO;IAAEpB;EAAS,CAAE;AACtB,CAAC,CAAC;AAKF,OAAO,MAAMqB,WAAW,gBAAGnC,GAAG,CAG5B,2BAA2B,CAAC;AAC9B,OAAO,MAAMoC,eAAe,gBAAGjC,KAAK,CAACkC,MAAM,CAACF,WAAW,EAAEzB,WAAW,CAAC"}
|
package/mjs/gateway.mjs
CHANGED
|
@@ -9,12 +9,11 @@ import { MemoryShardStoreLive } from "dfx/DiscordGateway/ShardStore";
|
|
|
9
9
|
import * as WS from "dfx/DiscordGateway/WS";
|
|
10
10
|
import { DiscordRESTLive } from "dfx/DiscordREST";
|
|
11
11
|
import { InteractionsRegistryLive } from "dfx/Interactions/gateway";
|
|
12
|
-
import { LogLive } from "dfx/Log";
|
|
13
12
|
import { MemoryRateLimitStoreLive, RateLimiterLive } from "dfx/RateLimit";
|
|
14
13
|
import * as Layer from "effect/Layer";
|
|
15
14
|
export { DiscordGateway, DiscordGatewayLive } from "dfx/DiscordGateway";
|
|
16
15
|
export { InteractionsRegistry, InteractionsRegistryLive, interactionsSync, run as runIx, setInteractionsSync } from "dfx/Interactions/gateway";
|
|
17
16
|
export { CachePrelude, DiscordWS, SendEvent, Shard, ShardStore, WS };
|
|
18
|
-
export const DiscordLive = /*#__PURE__*/Layer.mergeAll(RateLimiterLive, DiscordGatewayLive).pipe( /*#__PURE__*/Layer.provideMerge(DiscordRESTLive), /*#__PURE__*/Layer.provide(JsonDiscordWSCodecLive), /*#__PURE__*/Layer.provide(MemoryRateLimitStoreLive), /*#__PURE__*/Layer.provide(MemoryShardStoreLive)
|
|
17
|
+
export const DiscordLive = /*#__PURE__*/Layer.mergeAll(RateLimiterLive, DiscordGatewayLive).pipe( /*#__PURE__*/Layer.provideMerge(DiscordRESTLive), /*#__PURE__*/Layer.provide(JsonDiscordWSCodecLive), /*#__PURE__*/Layer.provide(MemoryRateLimitStoreLive), /*#__PURE__*/Layer.provide(MemoryShardStoreLive));
|
|
19
18
|
export const DiscordIxLive = /*#__PURE__*/InteractionsRegistryLive.pipe( /*#__PURE__*/Layer.provideMerge(DiscordLive));
|
|
20
19
|
//# sourceMappingURL=gateway.mjs.map
|
package/mjs/gateway.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway.mjs","names":["CachePrelude","DiscordGatewayLive","DiscordWS","JsonDiscordWSCodecLive","Shard","SendEvent","ShardStore","MemoryShardStoreLive","WS","DiscordRESTLive","InteractionsRegistryLive","
|
|
1
|
+
{"version":3,"file":"gateway.mjs","names":["CachePrelude","DiscordGatewayLive","DiscordWS","JsonDiscordWSCodecLive","Shard","SendEvent","ShardStore","MemoryShardStoreLive","WS","DiscordRESTLive","InteractionsRegistryLive","MemoryRateLimitStoreLive","RateLimiterLive","Layer","DiscordGateway","InteractionsRegistry","interactionsSync","run","runIx","setInteractionsSync","DiscordLive","mergeAll","pipe","provideMerge","provide","DiscordIxLive"],"sources":["../src/gateway.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,YAAY,MAAM,mBAAmB;AACjD,SAASC,kBAAkB,QAAQ,oBAAoB;AACvD,OAAO,KAAKC,SAAS,MAAM,8BAA8B;AACzD,SAASC,sBAAsB,QAAQ,8BAA8B;AACrE,OAAO,KAAKC,KAAK,MAAM,0BAA0B;AACjD,OAAO,KAAKC,SAAS,MAAM,qCAAqC;AAChE,OAAO,KAAKC,UAAU,MAAM,+BAA+B;AAC3D,SAASC,oBAAoB,QAAQ,+BAA+B;AACpE,OAAO,KAAKC,EAAE,MAAM,uBAAuB;AAC3C,SAASC,eAAe,QAAQ,iBAAiB;AACjD,SAASC,wBAAwB,QAAQ,0BAA0B;AACnE,SAASC,wBAAwB,EAAEC,eAAe,QAAQ,eAAe;AACzE,OAAO,KAAKC,KAAK,MAAM,cAAc;AAErC,SAASC,cAAc,EAAEb,kBAAkB,QAAQ,oBAAoB;AAEvE,SACEc,oBAAoB,EACpBL,wBAAwB,EACxBM,gBAAgB,EAChBC,GAAG,IAAIC,KAAK,EACZC,mBAAmB,QACd,0BAA0B;AAEjC,SAASnB,YAAY,EAAEE,SAAS,EAAEG,SAAS,EAAED,KAAK,EAAEE,UAAU,EAAEE,EAAE;AAElE,OAAO,MAAMY,WAAW,gBAAGP,KAAK,CAACQ,QAAQ,CACvCT,eAAe,EACfX,kBAAkB,CACnB,CAACqB,IAAI,eACJT,KAAK,CAACU,YAAY,CAACd,eAAe,CAAC,eACnCI,KAAK,CAACW,OAAO,CAACrB,sBAAsB,CAAC,eACrCU,KAAK,CAACW,OAAO,CAACb,wBAAwB,CAAC,eACvCE,KAAK,CAACW,OAAO,CAACjB,oBAAoB,CAAC,CACpC;AAED,OAAO,MAAMkB,aAAa,gBAAGf,wBAAwB,CAACY,IAAI,eACxDT,KAAK,CAACU,YAAY,CAACH,WAAW,CAAC,CAChC"}
|
package/mjs/index.mjs
CHANGED
|
@@ -7,9 +7,8 @@ import * as Members from "dfx/Helpers/members";
|
|
|
7
7
|
import * as Perms from "dfx/Helpers/permissions";
|
|
8
8
|
import * as UI from "dfx/Helpers/ui";
|
|
9
9
|
import * as Ix from "dfx/Interactions/index";
|
|
10
|
-
import * as Log from "dfx/Log";
|
|
11
10
|
import * as Discord from "dfx/types";
|
|
12
11
|
export { DiscordREST, DiscordRESTLive } from "dfx/DiscordREST";
|
|
13
12
|
export { MemoryRateLimitStoreLive, RateLimiterLive, RateLimiter, RateLimitStore } from "dfx/RateLimit";
|
|
14
|
-
export { Cache, Discord, DiscordConfig, Flags, Intents, Ix, IxHelpers,
|
|
13
|
+
export { Cache, Discord, DiscordConfig, Flags, Intents, Ix, IxHelpers, Members, Perms, UI };
|
|
15
14
|
//# sourceMappingURL=index.mjs.map
|
package/mjs/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["Cache","DiscordConfig","Flags","Intents","IxHelpers","Members","Perms","UI","Ix","
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["Cache","DiscordConfig","Flags","Intents","IxHelpers","Members","Perms","UI","Ix","Discord","DiscordREST","DiscordRESTLive","MemoryRateLimitStoreLive","RateLimiterLive","RateLimiter","RateLimitStore"],"sources":["../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,WAAW;AAClC,OAAO,KAAKC,aAAa,MAAM,mBAAmB;AAClD,OAAO,KAAKC,KAAK,MAAM,mBAAmB;AAC1C,OAAO,KAAKC,OAAO,MAAM,qBAAqB;AAC9C,OAAO,KAAKC,SAAS,MAAM,0BAA0B;AACrD,OAAO,KAAKC,OAAO,MAAM,qBAAqB;AAC9C,OAAO,KAAKC,KAAK,MAAM,yBAAyB;AAChD,OAAO,KAAKC,EAAE,MAAM,gBAAgB;AACpC,OAAO,KAAKC,EAAE,MAAM,wBAAwB;AAC5C,OAAO,KAAKC,OAAO,MAAM,WAAW;AAEpC,SAASC,WAAW,EAAEC,eAAe,QAAQ,iBAAiB;AAE9D,SAEEC,wBAAwB,EACxBC,eAAe,EACfC,WAAW,EACXC,cAAc,QACT,eAAe;AAEtB,SACEf,KAAK,EACLS,OAAO,EACPR,aAAa,EACbC,KAAK,EACLC,OAAO,EACPK,EAAE,EACFJ,SAAS,EACTC,OAAO,EACPC,KAAK,EACLC,EAAE"}
|
package/mjs/version.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const LIB_VERSION = "0.
|
|
1
|
+
export const LIB_VERSION = "0.79.0";
|
|
2
2
|
//# sourceMappingURL=version.mjs.map
|
package/mjs/webhooks.mjs
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { DiscordRESTLive } from "dfx/DiscordREST";
|
|
2
|
-
import * as Log from "dfx/Log";
|
|
3
2
|
import { MemoryRateLimitStoreLive, RateLimiterLive } from "dfx/RateLimit";
|
|
4
3
|
import * as Layer from "effect/Layer";
|
|
5
4
|
export { BadWebhookSignature, WebhookConfig, WebhookParseError, makeHandler, makeSimpleHandler, layer as webhookLayer, layerConfig as webhookLayerConfig } from "dfx/Interactions/webhook";
|
|
6
|
-
export const DiscordLive = /*#__PURE__*/Layer.mergeAll(DiscordRESTLive, RateLimiterLive).pipe( /*#__PURE__*/Layer.provide(MemoryRateLimitStoreLive)
|
|
5
|
+
export const DiscordLive = /*#__PURE__*/Layer.mergeAll(DiscordRESTLive, RateLimiterLive).pipe( /*#__PURE__*/Layer.provide(MemoryRateLimitStoreLive));
|
|
7
6
|
//# sourceMappingURL=webhooks.mjs.map
|
package/mjs/webhooks.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhooks.mjs","names":["DiscordRESTLive","
|
|
1
|
+
{"version":3,"file":"webhooks.mjs","names":["DiscordRESTLive","MemoryRateLimitStoreLive","RateLimiterLive","Layer","BadWebhookSignature","WebhookConfig","WebhookParseError","makeHandler","makeSimpleHandler","layer","webhookLayer","layerConfig","webhookLayerConfig","DiscordLive","mergeAll","pipe","provide"],"sources":["../src/webhooks.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,eAAe,QAAQ,iBAAiB;AACjD,SACEC,wBAAoD,EACpDC,eAAkC,QAC7B,eAAe;AACtB,OAAO,KAAKC,KAAK,MAAM,cAAc;AAErC,SACEC,mBAAmB,EACnBC,aAAa,EACbC,iBAAiB,EACjBC,WAAW,EACXC,iBAAiB,EACjBC,KAAK,IAAIC,YAAY,EACrBC,WAAW,IAAIC,kBAAkB,QAC5B,0BAA0B;AAEjC,OAAO,MAAMC,WAAW,gBAAGV,KAAK,CAACW,QAAQ,CACvCd,eAAe,EACfE,eAAe,CAChB,CAACa,IAAI,eAACZ,KAAK,CAACa,OAAO,CAACf,wBAAwB,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dfx",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.79.0",
|
|
4
4
|
"description": "Effect-TS discord library",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -39,8 +39,8 @@
|
|
|
39
39
|
"ws": "^8.14.2"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
42
|
-
"@effect/platform": "^0.
|
|
43
|
-
"effect": "2.0.0-next.
|
|
42
|
+
"@effect/platform": "^0.33.0",
|
|
43
|
+
"effect": "2.0.0-next.59"
|
|
44
44
|
},
|
|
45
45
|
"optionalDependencies": {
|
|
46
46
|
"bufferutil": "^4.0.8",
|
|
@@ -48,6 +48,6 @@
|
|
|
48
48
|
"utf-8-validate": "^6.0.3",
|
|
49
49
|
"zlib-sync": "^0.1.9"
|
|
50
50
|
},
|
|
51
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "2af196016b783473399f19f2359e8fed443e76c7",
|
|
52
52
|
"main": "./index.js"
|
|
53
53
|
}
|
package/src/DiscordConfig.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { Tag } from "effect/Context"
|
|
|
2
2
|
import * as Duration from "effect/Duration"
|
|
3
3
|
import * as Config from "effect/Config"
|
|
4
4
|
import type * as ConfigError from "effect/ConfigError"
|
|
5
|
-
import type * as
|
|
5
|
+
import type * as Secret from "effect/Secret"
|
|
6
6
|
import * as Effect from "effect/Effect"
|
|
7
7
|
import * as Layer from "effect/Layer"
|
|
8
8
|
import * as Discord from "dfx/types"
|
|
@@ -13,9 +13,8 @@ export interface DiscordConfig {
|
|
|
13
13
|
readonly _: unique symbol
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
export interface
|
|
17
|
-
readonly token:
|
|
18
|
-
readonly debug: boolean
|
|
16
|
+
export interface DiscordConfigService {
|
|
17
|
+
readonly token: Secret.Secret
|
|
19
18
|
readonly rest: {
|
|
20
19
|
readonly baseUrl: string
|
|
21
20
|
readonly globalRateLimit: {
|
|
@@ -31,23 +30,22 @@ export interface DiscordConfigValue {
|
|
|
31
30
|
readonly identifyRateLimit: readonly [window: number, limit: number]
|
|
32
31
|
}
|
|
33
32
|
}
|
|
34
|
-
export const DiscordConfig = Tag<DiscordConfig,
|
|
33
|
+
export const DiscordConfig = Tag<DiscordConfig, DiscordConfigService>(
|
|
34
|
+
"dfx/DiscordConfig",
|
|
35
|
+
)
|
|
35
36
|
|
|
36
37
|
export interface MakeOpts {
|
|
37
|
-
readonly token:
|
|
38
|
-
readonly
|
|
39
|
-
readonly
|
|
40
|
-
readonly gateway?: Partial<DiscordConfigValue["gateway"]>
|
|
38
|
+
readonly token: Secret.Secret
|
|
39
|
+
readonly rest?: Partial<DiscordConfigService["rest"]>
|
|
40
|
+
readonly gateway?: Partial<DiscordConfigService["gateway"]>
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
export const make = ({
|
|
44
|
-
debug = false,
|
|
45
44
|
gateway,
|
|
46
45
|
rest,
|
|
47
46
|
token,
|
|
48
|
-
}: MakeOpts):
|
|
47
|
+
}: MakeOpts): DiscordConfigService => ({
|
|
49
48
|
token,
|
|
50
|
-
debug,
|
|
51
49
|
rest: {
|
|
52
50
|
baseUrl: `https://discord.com/api/v${VERSION}`,
|
|
53
51
|
...(rest ?? {}),
|
|
@@ -16,12 +16,17 @@ export interface OpenOpts {
|
|
|
16
16
|
onConnecting?: Effect.Effect<never, never, void>
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
export interface
|
|
19
|
+
export interface DiscordWSCodecService {
|
|
20
20
|
type: "json" | "etf"
|
|
21
21
|
encode: (p: Discord.GatewayPayload) => string
|
|
22
22
|
decode: (p: WebSocket.Data) => Discord.GatewayPayload
|
|
23
23
|
}
|
|
24
|
-
export
|
|
24
|
+
export interface DiscordWSCodec {
|
|
25
|
+
readonly _: unique symbol
|
|
26
|
+
}
|
|
27
|
+
export const DiscordWSCodec = Tag<DiscordWSCodec, DiscordWSCodecService>(
|
|
28
|
+
"dfx/DiscordGateway/DiscordWS/Codec",
|
|
29
|
+
)
|
|
25
30
|
export const JsonDiscordWSCodecLive = Layer.succeed(DiscordWSCodec, {
|
|
26
31
|
type: "json",
|
|
27
32
|
encode: p => JSON.stringify(p),
|
|
@@ -47,18 +52,19 @@ const make = Effect.gen(function* (_) {
|
|
|
47
52
|
const takeOutbound = Effect.map(outbound, msg =>
|
|
48
53
|
msg === Reconnect ? msg : encoding.encode(msg),
|
|
49
54
|
)
|
|
50
|
-
const socket = yield* _(
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
55
|
+
const socket = yield* _(
|
|
56
|
+
ws.connect({
|
|
57
|
+
urlRef,
|
|
58
|
+
takeOutbound,
|
|
59
|
+
onConnecting,
|
|
60
|
+
reconnectWhen: e =>
|
|
61
|
+
(e._tag === "WebSocketCloseError" && e.code < 2000) ||
|
|
62
|
+
(e._tag === "WebSocketError" && e.reason === "open-timeout"),
|
|
63
|
+
}),
|
|
58
64
|
)
|
|
65
|
+
const take = Effect.map(socket.take, encoding.decode)
|
|
59
66
|
|
|
60
67
|
return {
|
|
61
|
-
run,
|
|
62
68
|
take,
|
|
63
69
|
setUrl,
|
|
64
70
|
} as const
|
|
@@ -67,8 +73,12 @@ const make = Effect.gen(function* (_) {
|
|
|
67
73
|
return { connect } as const
|
|
68
74
|
})
|
|
69
75
|
|
|
70
|
-
export interface DiscordWS
|
|
71
|
-
|
|
76
|
+
export interface DiscordWS {
|
|
77
|
+
readonly _: unique symbol
|
|
78
|
+
}
|
|
79
|
+
export const DiscordWS = Tag<DiscordWS, Effect.Effect.Success<typeof make>>(
|
|
80
|
+
"dfx/DiscordGateway/DiscordWS",
|
|
81
|
+
)
|
|
72
82
|
export const DiscordWSLive = Layer.provide(
|
|
73
83
|
Layer.effect(DiscordWS, make),
|
|
74
84
|
WSLive,
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { Tag } from "effect/Context"
|
|
2
|
+
import * as Effect from "effect/Effect"
|
|
3
|
+
import * as PubSub from "effect/PubSub"
|
|
4
|
+
import * as Layer from "effect/Layer"
|
|
5
|
+
import * as Queue from "effect/Queue"
|
|
6
|
+
import * as Stream from "effect/Stream"
|
|
7
|
+
import type * as Discord from "dfx/types"
|
|
8
|
+
import * as EffectUtils from "dfx/utils/Effect"
|
|
9
|
+
|
|
10
|
+
const fromDispatchFactory =
|
|
11
|
+
<R, E>(
|
|
12
|
+
source: Stream.Stream<R, E, Discord.GatewayPayload<Discord.ReceiveEvent>>,
|
|
13
|
+
) =>
|
|
14
|
+
<K extends keyof Discord.ReceiveEvents>(
|
|
15
|
+
event: K,
|
|
16
|
+
): Stream.Stream<R, E, Discord.ReceiveEvents[K]> =>
|
|
17
|
+
Stream.map(
|
|
18
|
+
Stream.filter(source, p => p.t === event),
|
|
19
|
+
p => p.d! as any,
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
const handleDispatchFactory =
|
|
23
|
+
(hub: PubSub.PubSub<Discord.GatewayPayload<Discord.ReceiveEvent>>) =>
|
|
24
|
+
<K extends keyof Discord.ReceiveEvents, R, E, A>(
|
|
25
|
+
event: K,
|
|
26
|
+
handle: (event: Discord.ReceiveEvents[K]) => Effect.Effect<R, E, A>,
|
|
27
|
+
): Effect.Effect<R, E, never> =>
|
|
28
|
+
EffectUtils.subscribeForEachPar(hub, _ => {
|
|
29
|
+
if (_.t === event) {
|
|
30
|
+
return handle(_.d as any)
|
|
31
|
+
}
|
|
32
|
+
return Effect.unit as any
|
|
33
|
+
})
|
|
34
|
+
|
|
35
|
+
export const make = Effect.gen(function* (_) {
|
|
36
|
+
const hub = yield* _(
|
|
37
|
+
Effect.acquireRelease(
|
|
38
|
+
PubSub.unbounded<Discord.GatewayPayload<Discord.ReceiveEvent>>(),
|
|
39
|
+
PubSub.shutdown,
|
|
40
|
+
),
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
const sendQueue = yield* _(
|
|
44
|
+
Effect.acquireRelease(
|
|
45
|
+
Queue.unbounded<Discord.GatewayPayload<Discord.SendEvent>>(),
|
|
46
|
+
Queue.shutdown,
|
|
47
|
+
),
|
|
48
|
+
)
|
|
49
|
+
const send = (payload: Discord.GatewayPayload<Discord.SendEvent>) =>
|
|
50
|
+
sendQueue.offer(payload)
|
|
51
|
+
|
|
52
|
+
const dispatch = Stream.fromPubSub(hub)
|
|
53
|
+
const fromDispatch = fromDispatchFactory(dispatch)
|
|
54
|
+
const handleDispatch = handleDispatchFactory(hub)
|
|
55
|
+
|
|
56
|
+
return {
|
|
57
|
+
hub,
|
|
58
|
+
sendQueue,
|
|
59
|
+
dispatch,
|
|
60
|
+
fromDispatch,
|
|
61
|
+
handleDispatch,
|
|
62
|
+
send,
|
|
63
|
+
} as const
|
|
64
|
+
})
|
|
65
|
+
|
|
66
|
+
export interface Messsaging {
|
|
67
|
+
readonly _: unique symbol
|
|
68
|
+
}
|
|
69
|
+
export const Messaging = Tag<Messsaging, Effect.Effect.Success<typeof make>>(
|
|
70
|
+
"dfx/DiscordGateway/Messaging",
|
|
71
|
+
)
|
|
72
|
+
export const MesssagingLive = Layer.scoped(Messaging, make)
|