dfx 1.0.1 → 1.0.3
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/.babel.cjs.json +11 -0
- package/.babel.mjs.json +10 -0
- package/.envrc +1 -0
- package/.gitmodules +3 -0
- package/.husky/pre-commit +2 -0
- package/.oxlintrc.json +72 -0
- package/.prettierignore +0 -0
- package/.prettierrc.json +5 -0
- package/.tool-versions +1 -0
- package/.vscode/debug.cjs +8 -0
- package/.vscode/launch.json +23 -0
- package/.vscode/settings.json +29 -0
- package/.vscode/tasks.json +44 -0
- package/AGENTS.md +15 -0
- package/CHANGELOG.md +1566 -0
- package/examples/.env.example +5 -0
- package/examples/interactions.ts +79 -0
- package/examples/readme.ts +56 -0
- package/examples/registry.ts +66 -0
- package/flake.lock +27 -0
- package/flake.nix +21 -0
- package/lerna.json +12 -0
- package/package.json +79 -35
- package/pnpm-workspace.yaml +7 -0
- package/scripts/generate-client.sh +10 -0
- package/scripts/worktree-setup.sh +8 -0
- package/test/index.test.ts +5 -0
- package/vitest.config.ts +22 -0
- package/Cache/driver.d.ts +0 -24
- package/Cache/driver.d.ts.map +0 -1
- package/Cache/driver.js +0 -11
- package/Cache/driver.js.map +0 -1
- package/Cache/memory.d.ts +0 -5
- package/Cache/memory.d.ts.map +0 -1
- package/Cache/memory.js +0 -57
- package/Cache/memory.js.map +0 -1
- package/Cache/memoryTTL.d.ts +0 -23
- package/Cache/memoryTTL.d.ts.map +0 -1
- package/Cache/memoryTTL.js +0 -128
- package/Cache/memoryTTL.js.map +0 -1
- package/Cache/prelude.d.ts +0 -32
- package/Cache/prelude.d.ts.map +0 -1
- package/Cache/prelude.js +0 -143
- package/Cache/prelude.js.map +0 -1
- package/Cache.d.ts +0 -81
- package/Cache.d.ts.map +0 -1
- package/Cache.js +0 -145
- package/Cache.js.map +0 -1
- package/DiscordConfig.d.ts +0 -35
- package/DiscordConfig.d.ts.map +0 -1
- package/DiscordConfig.js +0 -43
- package/DiscordConfig.js.map +0 -1
- package/DiscordGateway/DiscordWS.d.ts +0 -37
- package/DiscordGateway/DiscordWS.d.ts.map +0 -1
- package/DiscordGateway/DiscordWS.js +0 -86
- package/DiscordGateway/DiscordWS.js.map +0 -1
- package/DiscordGateway/Messaging.d.ts +0 -587
- package/DiscordGateway/Messaging.d.ts.map +0 -1
- package/DiscordGateway/Messaging.js +0 -43
- package/DiscordGateway/Messaging.js.map +0 -1
- package/DiscordGateway/Shard/StateStore.d.ts +0 -24
- package/DiscordGateway/Shard/StateStore.d.ts.map +0 -1
- package/DiscordGateway/Shard/StateStore.js +0 -49
- package/DiscordGateway/Shard/StateStore.js.map +0 -1
- package/DiscordGateway/Shard/heartbeats.d.ts +0 -8
- package/DiscordGateway/Shard/heartbeats.d.ts.map +0 -1
- package/DiscordGateway/Shard/heartbeats.js +0 -33
- package/DiscordGateway/Shard/heartbeats.js.map +0 -1
- package/DiscordGateway/Shard/identify.d.ts +0 -12
- package/DiscordGateway/Shard/identify.d.ts.map +0 -1
- package/DiscordGateway/Shard/identify.js +0 -37
- package/DiscordGateway/Shard/identify.js.map +0 -1
- package/DiscordGateway/Shard/sendEvents.d.ts +0 -8
- package/DiscordGateway/Shard/sendEvents.d.ts.map +0 -1
- package/DiscordGateway/Shard/sendEvents.js +0 -39
- package/DiscordGateway/Shard/sendEvents.js.map +0 -1
- package/DiscordGateway/Shard/utils.d.ts +0 -6
- package/DiscordGateway/Shard/utils.d.ts.map +0 -1
- package/DiscordGateway/Shard/utils.js +0 -11
- package/DiscordGateway/Shard/utils.js.map +0 -1
- package/DiscordGateway/Shard.d.ts +0 -29
- package/DiscordGateway/Shard.d.ts.map +0 -1
- package/DiscordGateway/Shard.js +0 -155
- package/DiscordGateway/Shard.js.map +0 -1
- package/DiscordGateway/ShardStore.d.ts +0 -19
- package/DiscordGateway/ShardStore.d.ts.map +0 -1
- package/DiscordGateway/ShardStore.js +0 -32
- package/DiscordGateway/ShardStore.js.map +0 -1
- package/DiscordGateway/Sharder.d.ts +0 -14
- package/DiscordGateway/Sharder.d.ts.map +0 -1
- package/DiscordGateway/Sharder.js +0 -75
- package/DiscordGateway/Sharder.js.map +0 -1
- package/DiscordGateway.d.ts +0 -33
- package/DiscordGateway.d.ts.map +0 -1
- package/DiscordGateway.js +0 -28
- package/DiscordGateway.js.map +0 -1
- package/DiscordREST/Generated.d.ts +0 -5577
- package/DiscordREST/Generated.d.ts.map +0 -1
- package/DiscordREST/Generated.js +0 -2480
- package/DiscordREST/Generated.js.map +0 -1
- package/DiscordREST/utils.d.ts +0 -14
- package/DiscordREST/utils.d.ts.map +0 -1
- package/DiscordREST/utils.js +0 -32
- package/DiscordREST/utils.js.map +0 -1
- package/DiscordREST.d.ts +0 -22
- package/DiscordREST.d.ts.map +0 -1
- package/DiscordREST.js +0 -128
- package/DiscordREST.js.map +0 -1
- package/Helpers/flags.d.ts +0 -28
- package/Helpers/flags.d.ts.map +0 -1
- package/Helpers/flags.js +0 -57
- package/Helpers/flags.js.map +0 -1
- package/Helpers/intents.d.ts +0 -25
- package/Helpers/intents.d.ts.map +0 -1
- package/Helpers/intents.js +0 -34
- package/Helpers/intents.js.map +0 -1
- package/Helpers/interactions.d.ts +0 -116
- package/Helpers/interactions.d.ts.map +0 -1
- package/Helpers/interactions.js +0 -143
- package/Helpers/interactions.js.map +0 -1
- package/Helpers/members.d.ts +0 -10
- package/Helpers/members.d.ts.map +0 -1
- package/Helpers/members.js +0 -17
- package/Helpers/members.js.map +0 -1
- package/Helpers/permissions.d.ts +0 -42
- package/Helpers/permissions.d.ts.map +0 -1
- package/Helpers/permissions.js +0 -97
- package/Helpers/permissions.js.map +0 -1
- package/Helpers/ui.d.ts +0 -105
- package/Helpers/ui.d.ts.map +0 -1
- package/Helpers/ui.js +0 -162
- package/Helpers/ui.js.map +0 -1
- package/Interactions/builder.d.ts +0 -48
- package/Interactions/builder.d.ts.map +0 -1
- package/Interactions/builder.js +0 -64
- package/Interactions/builder.js.map +0 -1
- package/Interactions/commandHelper.d.ts +0 -83
- package/Interactions/commandHelper.d.ts.map +0 -1
- package/Interactions/commandHelper.js +0 -57
- package/Interactions/commandHelper.js.map +0 -1
- package/Interactions/context.d.ts +0 -53
- package/Interactions/context.d.ts.map +0 -1
- package/Interactions/context.js +0 -47
- package/Interactions/context.js.map +0 -1
- package/Interactions/definitions.d.ts +0 -43
- package/Interactions/definitions.d.ts.map +0 -1
- package/Interactions/definitions.js +0 -67
- package/Interactions/definitions.js.map +0 -1
- package/Interactions/error.d.ts +0 -2
- package/Interactions/error.d.ts.map +0 -1
- package/Interactions/error.js +0 -8
- package/Interactions/error.js.map +0 -1
- package/Interactions/gateway.d.ts +0 -20
- package/Interactions/gateway.d.ts.map +0 -1
- package/Interactions/gateway.js +0 -92
- package/Interactions/gateway.js.map +0 -1
- package/Interactions/handlers.d.ts +0 -15
- package/Interactions/handlers.d.ts.map +0 -1
- package/Interactions/handlers.js +0 -73
- package/Interactions/handlers.js.map +0 -1
- package/Interactions/index.d.ts +0 -17
- package/Interactions/index.d.ts.map +0 -1
- package/Interactions/index.js +0 -94
- package/Interactions/index.js.map +0 -1
- package/Interactions/utils.d.ts +0 -61
- package/Interactions/utils.d.ts.map +0 -1
- package/Interactions/utils.js +0 -35
- package/Interactions/utils.js.map +0 -1
- package/Interactions/webhook.d.ts +0 -71
- package/Interactions/webhook.d.ts.map +0 -1
- package/Interactions/webhook.js +0 -89
- package/Interactions/webhook.js.map +0 -1
- package/RateLimit/memory.d.ts +0 -3
- package/RateLimit/memory.d.ts.map +0 -1
- package/RateLimit/memory.js +0 -47
- package/RateLimit/memory.js.map +0 -1
- package/RateLimit/utils.d.ts +0 -3
- package/RateLimit/utils.d.ts.map +0 -1
- package/RateLimit/utils.js +0 -25
- package/RateLimit/utils.js.map +0 -1
- package/RateLimit.d.ts +0 -30
- package/RateLimit.d.ts.map +0 -1
- package/RateLimit.js +0 -37
- package/RateLimit.js.map +0 -1
- package/gateway.d.ts +0 -19
- package/gateway.d.ts.map +0 -1
- package/gateway.js +0 -72
- package/gateway.js.map +0 -1
- package/index.d.ts +0 -18
- package/index.d.ts.map +0 -1
- package/index.js +0 -71
- package/index.js.map +0 -1
- package/mjs/Cache/driver.mjs +0 -3
- package/mjs/Cache/driver.mjs.map +0 -1
- package/mjs/Cache/memory.mjs +0 -48
- package/mjs/Cache/memory.mjs.map +0 -1
- package/mjs/Cache/memoryTTL.mjs +0 -119
- package/mjs/Cache/memoryTTL.mjs.map +0 -1
- package/mjs/Cache/prelude.mjs +0 -131
- package/mjs/Cache/prelude.mjs.map +0 -1
- package/mjs/Cache.mjs +0 -90
- package/mjs/Cache.mjs.map +0 -1
- package/mjs/DiscordConfig.mjs +0 -32
- package/mjs/DiscordConfig.mjs.map +0 -1
- package/mjs/DiscordGateway/DiscordWS.mjs +0 -77
- package/mjs/DiscordGateway/DiscordWS.mjs.map +0 -1
- package/mjs/DiscordGateway/Messaging.mjs +0 -35
- package/mjs/DiscordGateway/Messaging.mjs.map +0 -1
- package/mjs/DiscordGateway/Shard/StateStore.mjs +0 -41
- package/mjs/DiscordGateway/Shard/StateStore.mjs.map +0 -1
- package/mjs/DiscordGateway/Shard/heartbeats.mjs +0 -25
- package/mjs/DiscordGateway/Shard/heartbeats.mjs.map +0 -1
- package/mjs/DiscordGateway/Shard/identify.mjs +0 -29
- package/mjs/DiscordGateway/Shard/identify.mjs.map +0 -1
- package/mjs/DiscordGateway/Shard/sendEvents.mjs +0 -26
- package/mjs/DiscordGateway/Shard/sendEvents.mjs.map +0 -1
- package/mjs/DiscordGateway/Shard/utils.mjs +0 -3
- package/mjs/DiscordGateway/Shard/utils.mjs.map +0 -1
- package/mjs/DiscordGateway/Shard.mjs +0 -147
- package/mjs/DiscordGateway/Shard.mjs.map +0 -1
- package/mjs/DiscordGateway/ShardStore.mjs +0 -24
- package/mjs/DiscordGateway/ShardStore.mjs.map +0 -1
- package/mjs/DiscordGateway/Sharder.mjs +0 -67
- package/mjs/DiscordGateway/Sharder.mjs.map +0 -1
- package/mjs/DiscordGateway.mjs +0 -21
- package/mjs/DiscordGateway.mjs.map +0 -1
- package/mjs/DiscordREST/Generated.mjs +0 -2471
- package/mjs/DiscordREST/Generated.mjs.map +0 -1
- package/mjs/DiscordREST/utils.mjs +0 -21
- package/mjs/DiscordREST/utils.mjs.map +0 -1
- package/mjs/DiscordREST.mjs +0 -119
- package/mjs/DiscordREST.mjs.map +0 -1
- package/mjs/Helpers/flags.mjs +0 -45
- package/mjs/Helpers/flags.mjs.map +0 -1
- package/mjs/Helpers/intents.mjs +0 -27
- package/mjs/Helpers/intents.mjs.map +0 -1
- package/mjs/Helpers/interactions.mjs +0 -115
- package/mjs/Helpers/interactions.mjs.map +0 -1
- package/mjs/Helpers/members.mjs +0 -9
- package/mjs/Helpers/members.mjs.map +0 -1
- package/mjs/Helpers/permissions.mjs +0 -84
- package/mjs/Helpers/permissions.mjs.map +0 -1
- package/mjs/Helpers/ui.mjs +0 -137
- package/mjs/Helpers/ui.mjs.map +0 -1
- package/mjs/Interactions/builder.mjs +0 -56
- package/mjs/Interactions/builder.mjs.map +0 -1
- package/mjs/Interactions/commandHelper.mjs +0 -49
- package/mjs/Interactions/commandHelper.mjs.map +0 -1
- package/mjs/Interactions/context.mjs +0 -28
- package/mjs/Interactions/context.mjs.map +0 -1
- package/mjs/Interactions/definitions.mjs +0 -51
- package/mjs/Interactions/definitions.mjs.map +0 -1
- package/mjs/Interactions/error.mjs +0 -2
- package/mjs/Interactions/error.mjs.map +0 -1
- package/mjs/Interactions/gateway.mjs +0 -82
- package/mjs/Interactions/gateway.mjs.map +0 -1
- package/mjs/Interactions/handlers.mjs +0 -64
- package/mjs/Interactions/handlers.mjs.map +0 -1
- package/mjs/Interactions/index.mjs +0 -11
- package/mjs/Interactions/index.mjs.map +0 -1
- package/mjs/Interactions/utils.mjs +0 -26
- package/mjs/Interactions/utils.mjs.map +0 -1
- package/mjs/Interactions/webhook.mjs +0 -75
- package/mjs/Interactions/webhook.mjs.map +0 -1
- package/mjs/RateLimit/memory.mjs +0 -39
- package/mjs/RateLimit/memory.mjs.map +0 -1
- package/mjs/RateLimit/utils.mjs +0 -18
- package/mjs/RateLimit/utils.mjs.map +0 -1
- package/mjs/RateLimit.mjs +0 -28
- package/mjs/RateLimit.mjs.map +0 -1
- package/mjs/gateway.mjs +0 -19
- package/mjs/gateway.mjs.map +0 -1
- package/mjs/index.mjs +0 -18
- package/mjs/index.mjs.map +0 -1
- package/mjs/types.mjs +0 -356
- package/mjs/types.mjs.map +0 -1
- package/mjs/utils/Effect.mjs +0 -44
- package/mjs/utils/Effect.mjs.map +0 -1
- package/mjs/version.mjs +0 -2
- package/mjs/version.mjs.map +0 -1
- package/mjs/webhooks.mjs +0 -6
- package/mjs/webhooks.mjs.map +0 -1
- package/src/version.ts +0 -1
- package/types.d.ts +0 -2458
- package/types.d.ts.map +0 -1
- package/types.js +0 -408
- package/types.js.map +0 -1
- package/utils/Effect.d.ts +0 -5
- package/utils/Effect.d.ts.map +0 -1
- package/utils/Effect.js +0 -53
- package/utils/Effect.js.map +0 -1
- package/version.d.ts +0 -2
- package/version.d.ts.map +0 -1
- package/version.js +0 -8
- package/version.js.map +0 -1
- package/webhooks.d.ts +0 -8
- package/webhooks.d.ts.map +0 -1
- package/webhooks.js +0 -55
- package/webhooks.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.mjs","names":["Effect","IxHelpers","Ctx","flattenDefinitions","splitDefinitions","Discord","DefinitionNotFound","interaction","_tag","constructor","handlers","definitions","handleResponse","flattened","Autocomplete","Commands","MessageComponent","ModalSubmit","InteractionTypes","PING","_","succeed","type","InteractionCallbackTypes","PONG","APPLICATION_COMMAND","i","data","command","name","undefined","fail","provideService","handle","ApplicationCommand","SOCIAL_LAYER_SKU_PURCHASE_ELIGIBILITY","MODAL_SUBMIT","match","find","predicate","custom_id","ModalSubmitData","MESSAGE_COMPONENT","MessageComponentData","APPLICATION_COMMAND_AUTOCOMPLETE","option","focusedOption","value","pipe","FocusedOptionContext"],"sources":["../../src/Interactions/handlers.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export { response } from "../Helpers/interactions.js";
|
|
2
|
-
export * from "./builder.js";
|
|
3
|
-
export * from "./context.js";
|
|
4
|
-
export { autocomplete, global, guild, messageComponent, modalSubmit } from "./definitions.js";
|
|
5
|
-
// Filters
|
|
6
|
-
export const id = query => customId => query === customId;
|
|
7
|
-
export const idStartsWith = query => customId => customId.startsWith(query);
|
|
8
|
-
export const idRegex = query => customId => query.test(customId);
|
|
9
|
-
export const option = (command, optionName) => (data, focusedOption) => data.name === command && focusedOption.name === optionName;
|
|
10
|
-
export const optionOnly = optionName => (_, focusedOption) => focusedOption.name === optionName;
|
|
11
|
-
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["response","autocomplete","global","guild","messageComponent","modalSubmit","id","query","customId","idStartsWith","startsWith","idRegex","test","option","command","optionName","data","focusedOption","name","optionOnly","_"],"sources":["../../src/Interactions/index.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAQ,QAAQ,4BAA4B;AACrD,cAAc,cAAc;AAC5B,cAAc,cAAc;AAE5B,SACEC,YAAY,EACZC,MAAM,EACNC,KAAK,EACLC,gBAAgB,EAChBC,WAAW,QACN,kBAAkB;AAEzB;AACA,OAAO,MAAMC,EAAE,GAAIC,KAAa,IAAMC,QAAgB,IAAKD,KAAK,KAAKC,QAAQ;AAE7E,OAAO,MAAMC,YAAY,GAAIF,KAAa,IAAMC,QAAgB,IAC9DA,QAAQ,CAACE,UAAU,CAACH,KAAK,CAAC;AAE5B,OAAO,MAAMI,OAAO,GAAIJ,KAAa,IAAMC,QAAgB,IACzDD,KAAK,CAACK,IAAI,CAACJ,QAAQ,CAAC;AAEtB,OAAO,MAAMK,MAAM,GACjBA,CAACC,OAAe,EAAEC,UAAkB,KACpC,CAACC,IAA+B,EAAEC,aAAwC,KACxED,IAAI,CAACE,IAAI,KAAKJ,OAAO,IAAIG,aAAa,CAACC,IAAI,KAAKH,UAAU;AAE9D,OAAO,MAAMI,UAAU,GACpBJ,UAAkB,IACnB,CAACK,CAAU,EAAEH,aAAwC,KACnDA,aAAa,CAACC,IAAI,KAAKH,UAAU","ignoreList":[]}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import * as Chunk from "effect/Chunk";
|
|
2
|
-
import * as Effect from "effect/Effect";
|
|
3
|
-
import * as Array from "effect/Array";
|
|
4
|
-
import { CommandHelper } from "./commandHelper.js";
|
|
5
|
-
export const flattenDefinitions = (definitions, handleResponse) => Array.map(Chunk.toReadonlyArray(definitions), ([definition, transform]) => ({
|
|
6
|
-
...definition,
|
|
7
|
-
handle: Effect.isEffect(definition.handle) ? i => Effect.scoped(transform(Effect.flatMap(definition.handle, _ => handleResponse(i, _)))) : i => Effect.scoped(transform(Effect.flatMap(definition.handle(new CommandHelper(i)), _ => handleResponse(i, _))))
|
|
8
|
-
}));
|
|
9
|
-
export const splitDefinitions = definitions => {
|
|
10
|
-
const grouped = Array.reduce(definitions, {
|
|
11
|
-
Autocomplete: [],
|
|
12
|
-
GlobalApplicationCommand: [],
|
|
13
|
-
GuildApplicationCommand: [],
|
|
14
|
-
MessageComponent: [],
|
|
15
|
-
ModalSubmit: [],
|
|
16
|
-
Commands: {}
|
|
17
|
-
}, (acc, d) => {
|
|
18
|
-
acc[d._tag].push(d);
|
|
19
|
-
if (d._tag === "GlobalApplicationCommand" || d._tag === "GuildApplicationCommand") {
|
|
20
|
-
acc.Commands[d.command.name] = d;
|
|
21
|
-
}
|
|
22
|
-
return acc;
|
|
23
|
-
});
|
|
24
|
-
return grouped;
|
|
25
|
-
};
|
|
26
|
-
//# sourceMappingURL=utils.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.mjs","names":["Chunk","Effect","Array","CommandHelper","flattenDefinitions","definitions","handleResponse","map","toReadonlyArray","definition","transform","handle","isEffect","i","scoped","flatMap","_","splitDefinitions","grouped","reduce","Autocomplete","GlobalApplicationCommand","GuildApplicationCommand","MessageComponent","ModalSubmit","Commands","acc","d","_tag","push","command","name"],"sources":["../../src/Interactions/utils.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AAGvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,SAASC,aAAa,QAAQ,oBAAoB;AAgBlD,OAAO,MAAMC,kBAAkB,GAAGA,CAChCC,WAKC,EACDC,cAG2B,KAE3BJ,KAAK,CAACK,GAAG,CAACP,KAAK,CAACQ,eAAe,CAACH,WAAW,CAAC,EAAE,CAAC,CAACI,UAAU,EAAEC,SAAS,CAAC,MAAM;EAC1E,GAAGD,UAAU;EACbE,MAAM,EAAEV,MAAM,CAACW,QAAQ,CAACH,UAAU,CAACE,MAAM,CAAC,GACrCE,CAAyB,IACxBZ,MAAM,CAACa,MAAM,CACXJ,SAAS,CACPT,MAAM,CAACc,OAAO,CACZN,UAAU,CAACE,MAAiE,EAC5EK,CAAC,IAAIV,cAAc,CAACO,CAAC,EAAEG,CAAC,CAAC,CAC1B,CACF,CACF,GACFH,CAAyB,IACxBZ,MAAM,CAACa,MAAM,CACXJ,SAAS,CACPT,MAAM,CAACc,OAAO,CAEVN,UAAU,CAACE,MAGZ,CAAC,IAAIR,aAAa,CAACU,CAAC,CAAC,CAAC,EACvBG,CAAC,IAAIV,cAAc,CAACO,CAAC,EAAEG,CAAC,CAAC,CAC1B,CACF;CAEV,CAAC,CAAC;AAEL,OAAO,MAAMC,gBAAgB,GAC3BZ,WAA4D,IAC1D;EACF,MAAMa,OAAO,GAAGhB,KAAK,CAACiB,MAAM,CAC1Bd,WAAW,EACX;IACEe,YAAY,EAAE,EAAE;IAChBC,wBAAwB,EAAE,EAAE;IAC5BC,uBAAuB,EAAE,EAAE;IAC3BC,gBAAgB,EAAE,EAAE;IACpBC,WAAW,EAAE,EAAE;IACfC,QAAQ,EAAE;GAOX,EACD,CAACC,GAAG,EAAEC,CAAC,KAAI;IACTD,GAAG,CAACC,CAAC,CAACC,IAAI,CAAC,CAACC,IAAI,CAACF,CAAQ,CAAC;IAC1B,IACEA,CAAC,CAACC,IAAI,KAAK,0BAA0B,IACrCD,CAAC,CAACC,IAAI,KAAK,yBAAyB,EACpC;MACAF,GAAG,CAACD,QAAQ,CAACE,CAAC,CAACG,OAAO,CAACC,IAAI,CAAC,GAAGJ,CAAQ;IACzC;IACA,OAAOD,GAAG;EACZ,CAAC,CACF;EAED,OAAOR,OAAO;AAChB,CAAC","ignoreList":[]}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import * as Chunk from "effect/Chunk";
|
|
2
|
-
import { identity } from "effect/Function";
|
|
3
|
-
import * as Option from "effect/Option";
|
|
4
|
-
import * as Redacted from "effect/Redacted";
|
|
5
|
-
import * as Effect from "effect/Effect";
|
|
6
|
-
import * as Layer from "effect/Layer";
|
|
7
|
-
import * as ServiceMap from "effect/ServiceMap";
|
|
8
|
-
import { handlers } from "./handlers.js";
|
|
9
|
-
import { Interaction } from "./index.js";
|
|
10
|
-
import * as Verify from "discord-verify";
|
|
11
|
-
import * as Data from "effect/Data";
|
|
12
|
-
export class BadWebhookSignature {
|
|
13
|
-
_tag = "BadWebhookSignature";
|
|
14
|
-
}
|
|
15
|
-
const checkSignature = (publicKey, headers, body, crypto, algorithm) => Effect.fromOption(Option.all({
|
|
16
|
-
signature: Option.fromNullishOr(headers["x-signature-ed25519"]),
|
|
17
|
-
timestamp: Option.fromNullishOr(headers["x-signature-timestamp"])
|
|
18
|
-
})).pipe(Effect.flatMap(_ => Effect.promise(() => Verify.verify(body, _.signature, _.timestamp, publicKey, crypto, algorithm))), Effect.filterOrFail(identity, () => new BadWebhookSignature()), Effect.catchCause(() => Effect.fail(new BadWebhookSignature())), Effect.asVoid);
|
|
19
|
-
const makeConfig = ({
|
|
20
|
-
algorithm,
|
|
21
|
-
applicationId,
|
|
22
|
-
crypto,
|
|
23
|
-
publicKey
|
|
24
|
-
}) => ({
|
|
25
|
-
applicationId,
|
|
26
|
-
publicKey: Redacted.value(publicKey),
|
|
27
|
-
crypto,
|
|
28
|
-
algorithm: Verify.PlatformAlgorithm[algorithm]
|
|
29
|
-
});
|
|
30
|
-
export class WebhookConfig extends /*#__PURE__*/ServiceMap.Service()("dfx/Interactions/WebhookConfig") {}
|
|
31
|
-
export const layer = opts => Layer.succeed(WebhookConfig, makeConfig(opts));
|
|
32
|
-
export const layerConfig = config => Layer.effect(WebhookConfig, Effect.map(config.asEffect(), makeConfig));
|
|
33
|
-
export class WebhookParseError extends /*#__PURE__*/Data.TaggedError("WebhookParseError") {}
|
|
34
|
-
const fromHeadersAndBody = (headers, body) => WebhookConfig.use(({
|
|
35
|
-
algorithm,
|
|
36
|
-
crypto,
|
|
37
|
-
publicKey
|
|
38
|
-
}) => checkSignature(publicKey, headers, body, crypto, algorithm).pipe(Effect.andThen(Effect.try({
|
|
39
|
-
try: () => JSON.parse(body),
|
|
40
|
-
catch: cause => new WebhookParseError({
|
|
41
|
-
cause
|
|
42
|
-
})
|
|
43
|
-
}))));
|
|
44
|
-
const run = (definitions, handleResponse) => {
|
|
45
|
-
const handler = handlers(definitions, handleResponse);
|
|
46
|
-
return (headers, body) => Effect.flatMap(fromHeadersAndBody(headers, body), interaction => Effect.withSpan(Effect.provideService(handler[interaction.type](interaction), Interaction, interaction), "dfx.Interaction", {
|
|
47
|
-
attributes: {
|
|
48
|
-
interactionId: interaction.id
|
|
49
|
-
},
|
|
50
|
-
captureStackTrace: false
|
|
51
|
-
}));
|
|
52
|
-
};
|
|
53
|
-
/**
|
|
54
|
-
* @tsplus getter dfx/InteractionBuilder webhookHandler
|
|
55
|
-
*/
|
|
56
|
-
export const makeHandler = ix => {
|
|
57
|
-
const handle = run(Chunk.map(ix.definitions, ([d]) => [d, identity]), (_i, r) => Effect.succeed(r));
|
|
58
|
-
return ({
|
|
59
|
-
body,
|
|
60
|
-
error,
|
|
61
|
-
headers,
|
|
62
|
-
success
|
|
63
|
-
}) => handle(headers, body).pipe(Effect.flatMap(success), Effect.catchCause(error));
|
|
64
|
-
};
|
|
65
|
-
/**
|
|
66
|
-
* @tsplus getter dfx/InteractionBuilder simpleWebhookHandler
|
|
67
|
-
*/
|
|
68
|
-
export const makeSimpleHandler = ix => {
|
|
69
|
-
const handle = run(Chunk.map(ix.definitions, ([d]) => [d, identity]), (_i, r) => Effect.succeed(r));
|
|
70
|
-
return ({
|
|
71
|
-
body,
|
|
72
|
-
headers
|
|
73
|
-
}) => handle(headers, body);
|
|
74
|
-
};
|
|
75
|
-
//# sourceMappingURL=webhook.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"webhook.mjs","names":["Chunk","identity","Option","Redacted","Effect","Layer","ServiceMap","handlers","Interaction","Verify","Data","BadWebhookSignature","_tag","checkSignature","publicKey","headers","body","crypto","algorithm","fromOption","all","signature","fromNullishOr","timestamp","pipe","flatMap","_","promise","verify","filterOrFail","catchCause","fail","asVoid","makeConfig","applicationId","value","PlatformAlgorithm","WebhookConfig","Service","layer","opts","succeed","layerConfig","config","effect","map","asEffect","WebhookParseError","TaggedError","fromHeadersAndBody","use","andThen","try","JSON","parse","catch","cause","run","definitions","handleResponse","handler","interaction","withSpan","provideService","type","attributes","interactionId","id","captureStackTrace","makeHandler","ix","handle","d","_i","r","error","success","makeSimpleHandler"],"sources":["../../src/Interactions/webhook.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/mjs/RateLimit/memory.mjs
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import * as Option from "effect/Option";
|
|
2
|
-
import * as Effect from "effect/Effect";
|
|
3
|
-
export const make = () => {
|
|
4
|
-
const buckets = new Map();
|
|
5
|
-
const routes = new Map();
|
|
6
|
-
const counters = new Map();
|
|
7
|
-
const getCounter = key => Option.filter(Option.fromNullishOr(counters.get(key)), c => c.expires > Date.now());
|
|
8
|
-
const getBucketForRoute = route => Effect.sync(() => Option.fromNullishOr(buckets.get(routes.get(route))));
|
|
9
|
-
return {
|
|
10
|
-
hasBucket: key => Effect.sync(() => buckets.has(key)),
|
|
11
|
-
putBucket: bucket => Effect.sync(() => {
|
|
12
|
-
buckets.set(bucket.key, bucket);
|
|
13
|
-
}),
|
|
14
|
-
getBucketForRoute,
|
|
15
|
-
putBucketRoute: (route, bucket) => Effect.sync(() => {
|
|
16
|
-
routes.set(route, bucket);
|
|
17
|
-
}),
|
|
18
|
-
removeCounter: key => Effect.sync(() => {
|
|
19
|
-
counters.delete(key);
|
|
20
|
-
}),
|
|
21
|
-
incrementCounter: (key, window, limit) => Effect.sync(() => {
|
|
22
|
-
const now = Date.now();
|
|
23
|
-
const perRequest = Math.ceil(window / limit);
|
|
24
|
-
const counter = Option.getOrElse(getCounter(key), () => ({
|
|
25
|
-
expires: now,
|
|
26
|
-
count: 0
|
|
27
|
-
}));
|
|
28
|
-
const count = counter.count + 1;
|
|
29
|
-
const expires = counter.expires + perRequest;
|
|
30
|
-
counters.set(key, {
|
|
31
|
-
...counter,
|
|
32
|
-
count,
|
|
33
|
-
expires
|
|
34
|
-
});
|
|
35
|
-
return [count, expires - now];
|
|
36
|
-
})
|
|
37
|
-
};
|
|
38
|
-
};
|
|
39
|
-
//# sourceMappingURL=memory.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory.mjs","names":["Option","Effect","make","buckets","Map","routes","counters","getCounter","key","filter","fromNullishOr","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,aAAa,CAACJ,QAAQ,CAACK,GAAG,CAACH,GAAG,CAAC,CAAC,EACvCI,CAAC,IAAIA,CAAC,CAACC,OAAO,GAAGC,IAAI,CAACC,GAAG,EAAE,CAC5B;EAEH,MAAMC,iBAAiB,GAAIC,KAAa,IACtChB,MAAM,CAACiB,IAAI,CAAC,MAAMlB,MAAM,CAACU,aAAa,CAACP,OAAO,CAACQ,GAAG,CAACN,MAAM,CAACM,GAAG,CAACM,KAAK,CAAE,CAAC,CAAC,CAAC;EAE1E,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","ignoreList":[]}
|
package/mjs/RateLimit/utils.mjs
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { millis, zero } from "effect/Duration";
|
|
2
|
-
export const delayFrom = (window, limit, count, ttl) => {
|
|
3
|
-
const perRequest = Math.ceil(window / limit);
|
|
4
|
-
const totalTime = count * perRequest;
|
|
5
|
-
const elapsedTime = totalTime - ttl;
|
|
6
|
-
const elapsedWindows = Math.floor(elapsedTime / window);
|
|
7
|
-
const completedRequests = elapsedWindows * limit;
|
|
8
|
-
const remainingRequests = count - completedRequests;
|
|
9
|
-
const remainingWindows = Math.floor((remainingRequests - 1) / limit);
|
|
10
|
-
const delayRemainder = elapsedTime % window;
|
|
11
|
-
const requestRemainder = count % limit;
|
|
12
|
-
const staggerDelay = requestRemainder * 50;
|
|
13
|
-
if (remainingWindows === 0) {
|
|
14
|
-
return zero;
|
|
15
|
-
}
|
|
16
|
-
return millis(remainingWindows * window - delayRemainder + staggerDelay);
|
|
17
|
-
};
|
|
18
|
-
//# sourceMappingURL=utils.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.mjs","names":["millis","zero","delayFrom","window","limit","count","ttl","perRequest","Math","ceil","totalTime","elapsedTime","elapsedWindows","floor","completedRequests","remainingRequests","remainingWindows","delayRemainder","requestRemainder","staggerDelay"],"sources":["../../src/RateLimit/utils.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,MAAM,EAAEC,IAAI,QAAQ,iBAAiB;AAE9C,OAAO,MAAMC,SAAS,GAAGA,CACvBC,MAAc,EACdC,KAAa,EACbC,KAAa,EACbC,GAAW,KACC;EACZ,MAAMC,UAAU,GAAGC,IAAI,CAACC,IAAI,CAACN,MAAM,GAAGC,KAAK,CAAC;EAE5C,MAAMM,SAAS,GAAGL,KAAK,GAAGE,UAAU;EACpC,MAAMI,WAAW,GAAGD,SAAS,GAAGJ,GAAG;EACnC,MAAMM,cAAc,GAAGJ,IAAI,CAACK,KAAK,CAACF,WAAW,GAAGR,MAAM,CAAC;EACvD,MAAMW,iBAAiB,GAAGF,cAAc,GAAGR,KAAK;EAChD,MAAMW,iBAAiB,GAAGV,KAAK,GAAGS,iBAAiB;EACnD,MAAME,gBAAgB,GAAGR,IAAI,CAACK,KAAK,CAAC,CAACE,iBAAiB,GAAG,CAAC,IAAIX,KAAK,CAAC;EACpE,MAAMa,cAAc,GAAGN,WAAW,GAAGR,MAAM;EAE3C,MAAMe,gBAAgB,GAAGb,KAAK,GAAGD,KAAK;EACtC,MAAMe,YAAY,GAAGD,gBAAgB,GAAG,EAAE;EAE1C,IAAIF,gBAAgB,KAAK,CAAC,EAAE;IAC1B,OAAOf,IAAI;EACb;EAEA,OAAOD,MAAM,CAACgB,gBAAgB,GAAGb,MAAM,GAAGc,cAAc,GAAGE,YAAY,CAAC;AAC1E,CAAC","ignoreList":[]}
|
package/mjs/RateLimit.mjs
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import * as Duration from "effect/Duration";
|
|
2
|
-
import * as Effect from "effect/Effect";
|
|
3
|
-
import * as Layer from "effect/Layer";
|
|
4
|
-
import * as Memory from "./RateLimit/memory.js";
|
|
5
|
-
import { delayFrom } from "./RateLimit/utils.js";
|
|
6
|
-
import * as ServiceMap from "effect/ServiceMap";
|
|
7
|
-
export class RateLimitStore extends /*#__PURE__*/ServiceMap.Service()("dfx/RateLimit/RateLimitStore") {}
|
|
8
|
-
export const MemoryRateLimitStoreLive = /*#__PURE__*/Layer.sync(RateLimitStore, Memory.make);
|
|
9
|
-
const makeLimiter = /*#__PURE__*/Effect.gen(function* () {
|
|
10
|
-
const store = yield* RateLimitStore;
|
|
11
|
-
const maybeWait = (key, window, limit, multiplier = 1.05) => {
|
|
12
|
-
const windowMs = Duration.toMillis(window) * multiplier;
|
|
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",
|
|
15
|
-
key,
|
|
16
|
-
window: Duration.toMillis(window),
|
|
17
|
-
windowMs,
|
|
18
|
-
limit,
|
|
19
|
-
delay: Duration.toMillis(d)
|
|
20
|
-
})), Effect.tap(_ => Duration.toMillis(_) === 0 ? Effect.void : Effect.sleep(_)), Effect.asVoid);
|
|
21
|
-
};
|
|
22
|
-
return {
|
|
23
|
-
maybeWait
|
|
24
|
-
};
|
|
25
|
-
});
|
|
26
|
-
export class RateLimiter extends /*#__PURE__*/ServiceMap.Service()("dfx/RateLimit/RateLimiter") {}
|
|
27
|
-
export const RateLimiterLive = /*#__PURE__*/Layer.effect(RateLimiter, makeLimiter);
|
|
28
|
-
//# sourceMappingURL=RateLimit.mjs.map
|
package/mjs/RateLimit.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RateLimit.mjs","names":["Duration","Effect","Layer","Memory","delayFrom","ServiceMap","RateLimitStore","Service","MemoryRateLimitStoreLive","sync","make","makeLimiter","gen","store","maybeWait","key","window","limit","multiplier","windowMs","toMillis","incrementCounter","pipe","map","count","ttl","tap","d","annotateLogs","logTrace","service","delay","_","void","sleep","asVoid","RateLimiter","RateLimiterLive","effect"],"sources":["../src/RateLimit.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,QAAQ,MAAM,iBAAiB;AAE3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,uBAAuB;AAC/C,SAASC,SAAS,QAAQ,sBAAsB;AAChD,OAAO,KAAKC,UAAU,MAAM,mBAAmB;AA+B/C,OAAM,MAAOC,cAAe,sBAAQD,UAAU,CAACE,OAAO,EAGnD,CAAC,8BAA8B,CAAC;AAEnC,OAAO,MAAMC,wBAAwB,gBAAGN,KAAK,CAACO,IAAI,CAACH,cAAc,EAAEH,MAAM,CAACO,IAAI,CAAC;AAE/E,MAAMC,WAAW,gBAAGV,MAAM,CAACW,GAAG,CAAC,aAAS;EACtC,MAAMC,KAAK,GAAG,OAAOP,cAAc;EAEnC,MAAMQ,SAAS,GAAGA,CAChBC,GAAW,EACXC,MAAyB,EACzBC,KAAa,EACbC,UAAU,GAAG,IAAI,KACf;IACF,MAAMC,QAAQ,GAAGnB,QAAQ,CAACoB,QAAQ,CAACJ,MAAM,CAAC,GAAGE,UAAU;IAEvD,OAAOL,KAAK,CAACQ,gBAAgB,CAACN,GAAG,EAAEI,QAAQ,EAAEF,KAAK,CAAC,CAACK,IAAI,CACtDrB,MAAM,CAACsB,GAAG,CAAC,CAAC,CAACC,KAAK,EAAEC,GAAG,CAAC,KAAKrB,SAAS,CAACe,QAAQ,EAAEF,KAAK,EAAEO,KAAK,EAAEC,GAAG,CAAC,CAAC,EACpExB,MAAM,CAACyB,GAAG,CAACC,CAAC,IACV1B,MAAM,CAAC2B,YAAY,CAAC3B,MAAM,CAAC4B,QAAQ,CAAC,WAAW,CAAC,EAAE;MAChDC,OAAO,EAAE,WAAW;MACpBf,GAAG;MACHC,MAAM,EAAEhB,QAAQ,CAACoB,QAAQ,CAACJ,MAAM,CAAC;MACjCG,QAAQ;MACRF,KAAK;MACLc,KAAK,EAAE/B,QAAQ,CAACoB,QAAQ,CAACO,CAAC;KAC3B,CAAC,CACH,EACD1B,MAAM,CAACyB,GAAG,CAACM,CAAC,IACVhC,QAAQ,CAACoB,QAAQ,CAACY,CAAC,CAAC,KAAK,CAAC,GAAG/B,MAAM,CAACgC,IAAI,GAAGhC,MAAM,CAACiC,KAAK,CAACF,CAAC,CAAC,CAC3D,EACD/B,MAAM,CAACkC,MAAM,CACd;EACH,CAAC;EAED,OAAO;IAAErB;EAAS,CAAE;AACtB,CAAC,CAAC;AAEF,OAAM,MAAOsB,WAAY,sBAAQ/B,UAAU,CAACE,OAAO,EAUhD,CAAC,2BAA2B,CAAC;AAEhC,OAAO,MAAM8B,eAAe,gBAAGnC,KAAK,CAACoC,MAAM,CAACF,WAAW,EAAEzB,WAAW,CAAC","ignoreList":[]}
|
package/mjs/gateway.mjs
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import * as CachePrelude from "./Cache/prelude.js";
|
|
2
|
-
import { DiscordGatewayLive } from "./DiscordGateway.js";
|
|
3
|
-
import * as DiscordWS from "./DiscordGateway/DiscordWS.js";
|
|
4
|
-
import { JsonDiscordWSCodecLive } from "./DiscordGateway/DiscordWS.js";
|
|
5
|
-
import * as Shard from "./DiscordGateway/Shard.js";
|
|
6
|
-
import { ShardStateStore } from "./DiscordGateway/Shard/StateStore.js";
|
|
7
|
-
import * as SendEvent from "./DiscordGateway/Shard/sendEvents.js";
|
|
8
|
-
import * as ShardStore from "./DiscordGateway/ShardStore.js";
|
|
9
|
-
import { MemoryShardStoreLive } from "./DiscordGateway/ShardStore.js";
|
|
10
|
-
import { DiscordRESTLive } from "./DiscordREST.js";
|
|
11
|
-
import { InteractionsRegistryLive } from "./Interactions/gateway.js";
|
|
12
|
-
import { MemoryRateLimitStoreLive, RateLimiterLive } from "./RateLimit.js";
|
|
13
|
-
import * as Layer from "effect/Layer";
|
|
14
|
-
export { DiscordGateway, DiscordGatewayLive } from "./DiscordGateway.js";
|
|
15
|
-
export { InteractionsRegistry, InteractionsRegistryLive, interactionsSync, run as runIx, setInteractionsSync } from "./Interactions/gateway.js";
|
|
16
|
-
export { CachePrelude, DiscordWS, SendEvent, Shard, ShardStore };
|
|
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), /*#__PURE__*/Layer.provide(ShardStateStore.MemoryLive));
|
|
18
|
-
export const DiscordIxLive = /*#__PURE__*/InteractionsRegistryLive.pipe(/*#__PURE__*/Layer.provideMerge(DiscordLive));
|
|
19
|
-
//# sourceMappingURL=gateway.mjs.map
|
package/mjs/gateway.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gateway.mjs","names":["CachePrelude","DiscordGatewayLive","DiscordWS","JsonDiscordWSCodecLive","Shard","ShardStateStore","SendEvent","ShardStore","MemoryShardStoreLive","DiscordRESTLive","InteractionsRegistryLive","MemoryRateLimitStoreLive","RateLimiterLive","Layer","DiscordGateway","InteractionsRegistry","interactionsSync","run","runIx","setInteractionsSync","DiscordLive","mergeAll","pipe","provideMerge","provide","MemoryLive","DiscordIxLive"],"sources":["../src/gateway.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,YAAY,MAAM,oBAAoB;AAElD,SAASC,kBAAkB,QAAQ,qBAAqB;AACxD,OAAO,KAAKC,SAAS,MAAM,+BAA+B;AAC1D,SAASC,sBAAsB,QAAQ,+BAA+B;AACtE,OAAO,KAAKC,KAAK,MAAM,2BAA2B;AAClD,SAASC,eAAe,QAAQ,sCAAsC;AACtE,OAAO,KAAKC,SAAS,MAAM,sCAAsC;AACjE,OAAO,KAAKC,UAAU,MAAM,gCAAgC;AAC5D,SAASC,oBAAoB,QAAQ,gCAAgC;AAErE,SAASC,eAAe,QAAQ,kBAAkB;AAElD,SAASC,wBAAwB,QAAQ,2BAA2B;AAEpE,SAASC,wBAAwB,EAAEC,eAAe,QAAQ,gBAAgB;AAC1E,OAAO,KAAKC,KAAK,MAAM,cAAc;AAKrC,SAASC,cAAc,EAAEb,kBAAkB,QAAQ,qBAAqB;AAExE,SACEc,oBAAoB,EACpBL,wBAAwB,EACxBM,gBAAgB,EAChBC,GAAG,IAAIC,KAAK,EACZC,mBAAmB,QACd,2BAA2B;AAElC,SAASnB,YAAY,EAAEE,SAAS,EAAEI,SAAS,EAAEF,KAAK,EAAEG,UAAU;AAE9D,OAAO,MAAMa,WAAW,gBAIpBP,KAAK,CAACQ,QAAQ,CAACT,eAAe,EAAEX,kBAAkB,CAAC,CAACqB,IAAI,cAC1DT,KAAK,CAACU,YAAY,CAACd,eAAe,CAAC,eACnCI,KAAK,CAACW,OAAO,CAACrB,sBAAsB,CAAC,eACrCU,KAAK,CAACW,OAAO,CAACb,wBAAwB,CAAC,eACvCE,KAAK,CAACW,OAAO,CAAChB,oBAAoB,CAAC,eACnCK,KAAK,CAACW,OAAO,CAACnB,eAAe,CAACoB,UAAU,CAAC,CAC1C;AAED,OAAO,MAAMC,aAAa,gBAItBhB,wBAAwB,CAACY,IAAI,cAACT,KAAK,CAACU,YAAY,CAACH,WAAW,CAAC,CAAC","ignoreList":[]}
|
package/mjs/index.mjs
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import * as Cache from "./Cache.js";
|
|
2
|
-
import * as DiscordConfig from "./DiscordConfig.js";
|
|
3
|
-
import { DiscordRESTLive } from "./DiscordREST.js";
|
|
4
|
-
import * as Flags from "./Helpers/flags.js";
|
|
5
|
-
import * as Intents from "./Helpers/intents.js";
|
|
6
|
-
import * as IxHelpers from "./Helpers/interactions.js";
|
|
7
|
-
import * as Members from "./Helpers/members.js";
|
|
8
|
-
import * as Perms from "./Helpers/permissions.js";
|
|
9
|
-
import * as UI from "./Helpers/ui.js";
|
|
10
|
-
import * as Ix from "./Interactions/index.js";
|
|
11
|
-
import { MemoryRateLimitStoreLive } from "./RateLimit.js";
|
|
12
|
-
import * as Discord from "./types.js";
|
|
13
|
-
import * as Layer from "effect/Layer";
|
|
14
|
-
export { DiscordREST, DiscordRESTLive } from "./DiscordREST.js";
|
|
15
|
-
export { MemoryRateLimitStoreLive, RateLimitStore, RateLimiter, RateLimiterLive } from "./RateLimit.js";
|
|
16
|
-
export { Cache, Discord, DiscordConfig, Flags, Intents, Ix, IxHelpers, Members, Perms, UI };
|
|
17
|
-
export const DiscordRESTMemoryLive = /*#__PURE__*/DiscordRESTLive.pipe(/*#__PURE__*/Layer.provide(MemoryRateLimitStoreLive));
|
|
18
|
-
//# sourceMappingURL=index.mjs.map
|
package/mjs/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["Cache","DiscordConfig","DiscordRESTLive","Flags","Intents","IxHelpers","Members","Perms","UI","Ix","MemoryRateLimitStoreLive","Discord","Layer","DiscordREST","RateLimitStore","RateLimiter","RateLimiterLive","DiscordRESTMemoryLive","pipe","provide"],"sources":["../src/index.ts"],"sourcesContent":[null],"mappings":"AACA,OAAO,KAAKA,KAAK,MAAM,YAAY;AACnC,OAAO,KAAKC,aAAa,MAAM,oBAAoB;AAEnD,SAASC,eAAe,QAAQ,kBAAkB;AAClD,OAAO,KAAKC,KAAK,MAAM,oBAAoB;AAC3C,OAAO,KAAKC,OAAO,MAAM,sBAAsB;AAC/C,OAAO,KAAKC,SAAS,MAAM,2BAA2B;AACtD,OAAO,KAAKC,OAAO,MAAM,sBAAsB;AAC/C,OAAO,KAAKC,KAAK,MAAM,0BAA0B;AACjD,OAAO,KAAKC,EAAE,MAAM,iBAAiB;AACrC,OAAO,KAAKC,EAAE,MAAM,yBAAyB;AAC7C,SAASC,wBAAwB,QAAQ,gBAAgB;AACzD,OAAO,KAAKC,OAAO,MAAM,YAAY;AACrC,OAAO,KAAKC,KAAK,MAAM,cAAc;AAErC,SAASC,WAAW,EAAEX,eAAe,QAAQ,kBAAkB;AAE/D,SAEEQ,wBAAwB,EACxBI,cAAc,EACdC,WAAW,EACXC,eAAe,QACV,gBAAgB;AAEvB,SACEhB,KAAK,EACLW,OAAO,EACPV,aAAa,EACbE,KAAK,EACLC,OAAO,EACPK,EAAE,EACFJ,SAAS,EACTC,OAAO,EACPC,KAAK,EACLC,EAAE;AAGJ,OAAO,MAAMS,qBAAqB,gBAI9Bf,eAAe,CAACgB,IAAI,cAACN,KAAK,CAACO,OAAO,CAACT,wBAAwB,CAAC,CAAC","ignoreList":[]}
|