dfx 0.127.0 → 1.0.1
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/memory.d.ts +1 -1
- package/Cache/memory.d.ts.map +1 -1
- package/Cache/memory.js +4 -4
- package/Cache/memory.js.map +1 -1
- package/Cache/memoryTTL.d.ts +1 -1
- package/Cache/memoryTTL.d.ts.map +1 -1
- package/Cache/memoryTTL.js +6 -6
- package/Cache/memoryTTL.js.map +1 -1
- package/Cache/prelude.d.ts +6 -6
- package/Cache/prelude.d.ts.map +1 -1
- package/Cache/prelude.js +4 -4
- package/Cache/prelude.js.map +1 -1
- package/Cache.d.ts +9 -10
- package/Cache.d.ts.map +1 -1
- package/Cache.js +20 -19
- package/Cache.js.map +1 -1
- package/DiscordConfig.d.ts +8 -8
- package/DiscordConfig.d.ts.map +1 -1
- package/DiscordConfig.js +8 -7
- package/DiscordConfig.js.map +1 -1
- package/DiscordGateway/DiscordWS.d.ts +12 -12
- package/DiscordGateway/DiscordWS.d.ts.map +1 -1
- package/DiscordGateway/DiscordWS.js +30 -17
- package/DiscordGateway/DiscordWS.js.map +1 -1
- package/DiscordGateway/Messaging.d.ts +204 -10
- package/DiscordGateway/Messaging.d.ts.map +1 -1
- package/DiscordGateway/Messaging.js +10 -7
- package/DiscordGateway/Messaging.js.map +1 -1
- package/DiscordGateway/Shard/StateStore.d.ts +4 -4
- package/DiscordGateway/Shard/StateStore.d.ts.map +1 -1
- package/DiscordGateway/Shard/StateStore.js +7 -6
- package/DiscordGateway/Shard/StateStore.js.map +1 -1
- package/DiscordGateway/Shard/heartbeats.d.ts +5 -5
- package/DiscordGateway/Shard/heartbeats.d.ts.map +1 -1
- package/DiscordGateway/Shard/heartbeats.js +15 -10
- package/DiscordGateway/Shard/heartbeats.js.map +1 -1
- package/DiscordGateway/Shard/identify.d.ts +2 -2
- package/DiscordGateway/Shard/identify.d.ts.map +1 -1
- package/DiscordGateway/Shard/identify.js +2 -2
- package/DiscordGateway/Shard/identify.js.map +1 -1
- package/DiscordGateway/Shard/sendEvents.d.ts +1 -1
- package/DiscordGateway/Shard/sendEvents.d.ts.map +1 -1
- package/DiscordGateway/Shard/sendEvents.js +1 -1
- package/DiscordGateway/Shard/sendEvents.js.map +1 -1
- package/DiscordGateway/Shard/utils.d.ts +1 -1
- package/DiscordGateway/Shard/utils.d.ts.map +1 -1
- package/DiscordGateway/Shard.d.ts +16 -15
- package/DiscordGateway/Shard.d.ts.map +1 -1
- package/DiscordGateway/Shard.js +27 -21
- package/DiscordGateway/Shard.js.map +1 -1
- package/DiscordGateway/ShardStore.d.ts +4 -3
- package/DiscordGateway/ShardStore.d.ts.map +1 -1
- package/DiscordGateway/ShardStore.js +3 -2
- package/DiscordGateway/ShardStore.js.map +1 -1
- package/DiscordGateway/Sharder.d.ts +9 -8
- package/DiscordGateway/Sharder.d.ts.map +1 -1
- package/DiscordGateway/Sharder.js +19 -17
- package/DiscordGateway/Sharder.js.map +1 -1
- package/DiscordGateway.d.ts +13 -12
- package/DiscordGateway.d.ts.map +1 -1
- package/DiscordGateway.js +4 -4
- package/DiscordGateway.js.map +1 -1
- package/DiscordREST/Generated.d.ts +402 -240
- package/DiscordREST/Generated.d.ts.map +1 -1
- package/DiscordREST/Generated.js +193 -126
- package/DiscordREST/Generated.js.map +1 -1
- package/DiscordREST/utils.d.ts +1 -1
- package/DiscordREST/utils.d.ts.map +1 -1
- package/DiscordREST/utils.js +4 -3
- package/DiscordREST/utils.js.map +1 -1
- package/DiscordREST.d.ts +10 -11
- package/DiscordREST.d.ts.map +1 -1
- package/DiscordREST.js +23 -27
- package/DiscordREST.js.map +1 -1
- package/Helpers/flags.d.ts.map +1 -1
- package/Helpers/flags.js +10 -1
- package/Helpers/flags.js.map +1 -1
- package/Helpers/intents.d.ts.map +1 -1
- package/Helpers/intents.js +2 -2
- package/Helpers/intents.js.map +1 -1
- package/Helpers/interactions.d.ts +2 -2
- package/Helpers/interactions.d.ts.map +1 -1
- package/Helpers/interactions.js +12 -12
- package/Helpers/interactions.js.map +1 -1
- package/Helpers/members.d.ts +2 -2
- package/Helpers/members.d.ts.map +1 -1
- package/Helpers/members.js +1 -1
- package/Helpers/members.js.map +1 -1
- package/Helpers/permissions.d.ts +1 -1
- package/Helpers/permissions.d.ts.map +1 -1
- package/Helpers/permissions.js +4 -4
- package/Helpers/permissions.js.map +1 -1
- package/Helpers/ui.d.ts +9 -9
- package/Helpers/ui.d.ts.map +1 -1
- package/Helpers/ui.js +15 -15
- package/Helpers/ui.js.map +1 -1
- package/Interactions/builder.d.ts +6 -6
- package/Interactions/builder.d.ts.map +1 -1
- package/Interactions/builder.js +7 -7
- package/Interactions/builder.js.map +1 -1
- package/Interactions/commandHelper.d.ts +3 -19
- package/Interactions/commandHelper.d.ts.map +1 -1
- package/Interactions/commandHelper.js +11 -7
- package/Interactions/commandHelper.js.map +1 -1
- package/Interactions/context.d.ts +30 -31
- package/Interactions/context.d.ts.map +1 -1
- package/Interactions/context.js +23 -18
- package/Interactions/context.js.map +1 -1
- package/Interactions/definitions.d.ts +7 -8
- package/Interactions/definitions.d.ts.map +1 -1
- package/Interactions/gateway.d.ts +11 -12
- package/Interactions/gateway.d.ts.map +1 -1
- package/Interactions/gateway.js +22 -20
- package/Interactions/gateway.js.map +1 -1
- package/Interactions/handlers.d.ts +3 -3
- package/Interactions/handlers.d.ts.map +1 -1
- package/Interactions/handlers.js +5 -4
- package/Interactions/handlers.js.map +1 -1
- package/Interactions/index.d.ts +5 -4
- package/Interactions/index.d.ts.map +1 -1
- package/Interactions/index.js +4 -4
- package/Interactions/index.js.map +1 -1
- package/Interactions/utils.d.ts +4 -4
- package/Interactions/utils.d.ts.map +1 -1
- package/Interactions/utils.js +1 -1
- package/Interactions/utils.js.map +1 -1
- package/Interactions/webhook.d.ts +9 -11
- package/Interactions/webhook.d.ts.map +1 -1
- package/Interactions/webhook.js +16 -16
- package/Interactions/webhook.js.map +1 -1
- package/RateLimit/memory.d.ts +1 -1
- package/RateLimit/memory.d.ts.map +1 -1
- package/RateLimit/memory.js +2 -2
- package/RateLimit/memory.js.map +1 -1
- package/RateLimit.d.ts +7 -7
- package/RateLimit.d.ts.map +1 -1
- package/RateLimit.js +7 -5
- package/RateLimit.js.map +1 -1
- package/gateway.d.ts +14 -14
- package/gateway.d.ts.map +1 -1
- package/gateway.js +10 -10
- package/gateway.js.map +1 -1
- package/index.d.ts +14 -14
- package/index.d.ts.map +1 -1
- package/index.js +12 -12
- package/index.js.map +1 -1
- package/mjs/Cache/memory.mjs +4 -4
- package/mjs/Cache/memory.mjs.map +1 -1
- package/mjs/Cache/memoryTTL.mjs +6 -6
- package/mjs/Cache/memoryTTL.mjs.map +1 -1
- package/mjs/Cache/prelude.mjs +4 -4
- package/mjs/Cache/prelude.mjs.map +1 -1
- package/mjs/Cache.mjs +20 -19
- package/mjs/Cache.mjs.map +1 -1
- package/mjs/DiscordConfig.mjs +7 -7
- package/mjs/DiscordConfig.mjs.map +1 -1
- package/mjs/DiscordGateway/DiscordWS.mjs +28 -17
- package/mjs/DiscordGateway/DiscordWS.mjs.map +1 -1
- package/mjs/DiscordGateway/Messaging.mjs +9 -7
- package/mjs/DiscordGateway/Messaging.mjs.map +1 -1
- package/mjs/DiscordGateway/Shard/StateStore.mjs +7 -6
- package/mjs/DiscordGateway/Shard/StateStore.mjs.map +1 -1
- package/mjs/DiscordGateway/Shard/heartbeats.mjs +15 -10
- package/mjs/DiscordGateway/Shard/heartbeats.mjs.map +1 -1
- package/mjs/DiscordGateway/Shard/identify.mjs +2 -2
- package/mjs/DiscordGateway/Shard/identify.mjs.map +1 -1
- package/mjs/DiscordGateway/Shard/sendEvents.mjs +1 -1
- package/mjs/DiscordGateway/Shard/sendEvents.mjs.map +1 -1
- package/mjs/DiscordGateway/Shard.mjs +26 -21
- package/mjs/DiscordGateway/Shard.mjs.map +1 -1
- package/mjs/DiscordGateway/ShardStore.mjs +2 -2
- package/mjs/DiscordGateway/ShardStore.mjs.map +1 -1
- package/mjs/DiscordGateway/Sharder.mjs +18 -17
- package/mjs/DiscordGateway/Sharder.mjs.map +1 -1
- package/mjs/DiscordGateway.mjs +4 -4
- package/mjs/DiscordGateway.mjs.map +1 -1
- package/mjs/DiscordREST/Generated.mjs +192 -125
- package/mjs/DiscordREST/Generated.mjs.map +1 -1
- package/mjs/DiscordREST/utils.mjs +4 -3
- package/mjs/DiscordREST/utils.mjs.map +1 -1
- package/mjs/DiscordREST.mjs +22 -27
- package/mjs/DiscordREST.mjs.map +1 -1
- package/mjs/Helpers/flags.mjs +10 -1
- package/mjs/Helpers/flags.mjs.map +1 -1
- package/mjs/Helpers/intents.mjs +2 -2
- package/mjs/Helpers/intents.mjs.map +1 -1
- package/mjs/Helpers/interactions.mjs +12 -12
- package/mjs/Helpers/interactions.mjs.map +1 -1
- package/mjs/Helpers/members.mjs +1 -1
- package/mjs/Helpers/members.mjs.map +1 -1
- package/mjs/Helpers/permissions.mjs +4 -4
- package/mjs/Helpers/permissions.mjs.map +1 -1
- package/mjs/Helpers/ui.mjs +15 -15
- package/mjs/Helpers/ui.mjs.map +1 -1
- package/mjs/Interactions/builder.mjs +7 -7
- package/mjs/Interactions/builder.mjs.map +1 -1
- package/mjs/Interactions/commandHelper.mjs +11 -7
- package/mjs/Interactions/commandHelper.mjs.map +1 -1
- package/mjs/Interactions/context.mjs +17 -18
- package/mjs/Interactions/context.mjs.map +1 -1
- package/mjs/Interactions/gateway.mjs +21 -20
- package/mjs/Interactions/gateway.mjs.map +1 -1
- package/mjs/Interactions/handlers.mjs +5 -4
- package/mjs/Interactions/handlers.mjs.map +1 -1
- package/mjs/Interactions/index.mjs +4 -4
- package/mjs/Interactions/index.mjs.map +1 -1
- package/mjs/Interactions/utils.mjs +1 -1
- package/mjs/Interactions/utils.mjs.map +1 -1
- package/mjs/Interactions/webhook.mjs +15 -16
- package/mjs/Interactions/webhook.mjs.map +1 -1
- package/mjs/RateLimit/memory.mjs +2 -2
- package/mjs/RateLimit/memory.mjs.map +1 -1
- package/mjs/RateLimit.mjs +5 -5
- package/mjs/RateLimit.mjs.map +1 -1
- package/mjs/gateway.mjs +14 -14
- package/mjs/gateway.mjs.map +1 -1
- package/mjs/index.mjs +14 -14
- package/mjs/index.mjs.map +1 -1
- package/mjs/types.mjs +2 -2
- package/mjs/types.mjs.map +1 -1
- package/mjs/utils/Effect.mjs +34 -8
- package/mjs/utils/Effect.mjs.map +1 -1
- package/mjs/version.mjs +1 -1
- package/mjs/version.mjs.map +1 -1
- package/mjs/webhooks.mjs +3 -3
- package/mjs/webhooks.mjs.map +1 -1
- package/package.json +4 -5
- package/src/Cache/memory.ts +5 -5
- package/src/Cache/memoryTTL.ts +7 -7
- package/src/Cache/prelude.ts +10 -8
- package/src/Cache.ts +31 -35
- package/src/DiscordConfig.ts +13 -17
- package/src/DiscordGateway/DiscordWS.ts +58 -32
- package/src/DiscordGateway/Messaging.ts +13 -15
- package/src/DiscordGateway/Shard/StateStore.ts +30 -25
- package/src/DiscordGateway/Shard/heartbeats.ts +25 -28
- package/src/DiscordGateway/Shard/identify.ts +5 -4
- package/src/DiscordGateway/Shard/sendEvents.ts +1 -1
- package/src/DiscordGateway/Shard/utils.ts +1 -1
- package/src/DiscordGateway/Shard.ts +39 -35
- package/src/DiscordGateway/ShardStore.ts +6 -7
- package/src/DiscordGateway/Sharder.ts +31 -29
- package/src/DiscordGateway.ts +15 -14
- package/src/DiscordREST/Generated.ts +683 -378
- package/src/DiscordREST/utils.ts +6 -3
- package/src/DiscordREST.ts +37 -41
- package/src/Helpers/flags.ts +10 -5
- package/src/Helpers/intents.ts +2 -2
- package/src/Helpers/interactions.ts +16 -14
- package/src/Helpers/members.ts +3 -3
- package/src/Helpers/permissions.ts +5 -5
- package/src/Helpers/ui.ts +16 -16
- package/src/Interactions/builder.ts +10 -10
- package/src/Interactions/commandHelper.ts +18 -29
- package/src/Interactions/context.ts +51 -65
- package/src/Interactions/definitions.ts +3 -3
- package/src/Interactions/gateway.ts +33 -45
- package/src/Interactions/handlers.ts +8 -5
- package/src/Interactions/index.ts +5 -5
- package/src/Interactions/utils.ts +6 -6
- package/src/Interactions/webhook.ts +31 -38
- package/src/RateLimit/memory.ts +3 -3
- package/src/RateLimit.ts +18 -15
- package/src/gateway.ts +21 -21
- package/src/index.ts +17 -17
- package/src/types.ts +18 -16
- package/src/utils/Effect.ts +38 -27
- package/src/version.ts +1 -1
- package/src/webhooks.ts +7 -7
- package/tsconfig.base.json +12 -6
- package/tsconfig.examples.json +0 -1
- package/types.d.ts +4 -3
- package/types.d.ts.map +1 -1
- package/types.js +3 -3
- package/types.js.map +1 -1
- package/utils/Effect.d.ts.map +1 -1
- package/utils/Effect.js +33 -7
- package/utils/Effect.js.map +1 -1
- package/version.d.ts +1 -1
- package/version.d.ts.map +1 -1
- package/version.js +1 -1
- package/version.js.map +1 -1
- package/webhooks.d.ts +5 -5
- package/webhooks.d.ts.map +1 -1
- package/webhooks.js +3 -3
- package/webhooks.js.map +1 -1
package/Interactions/webhook.js
CHANGED
|
@@ -5,26 +5,25 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.makeSimpleHandler = exports.makeHandler = exports.layerConfig = exports.layer = exports.WebhookParseError = exports.WebhookConfig = exports.BadWebhookSignature = void 0;
|
|
7
7
|
var Chunk = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Chunk"));
|
|
8
|
-
var _Context = /*#__PURE__*/require("effect/Context");
|
|
9
8
|
var _Function = /*#__PURE__*/require("effect/Function");
|
|
10
9
|
var Option = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Option"));
|
|
11
10
|
var Redacted = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Redacted"));
|
|
12
11
|
var Effect = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Effect"));
|
|
13
12
|
var Layer = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Layer"));
|
|
14
|
-
var
|
|
15
|
-
var
|
|
13
|
+
var ServiceMap = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/ServiceMap"));
|
|
14
|
+
var _handlers = /*#__PURE__*/require("./handlers.js");
|
|
15
|
+
var _index = /*#__PURE__*/require("./index.js");
|
|
16
16
|
var Verify = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("discord-verify"));
|
|
17
|
-
var
|
|
18
|
-
var _error = /*#__PURE__*/require("dfx/Interactions/error");
|
|
17
|
+
var Data = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Data"));
|
|
19
18
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
20
19
|
class BadWebhookSignature {
|
|
21
20
|
_tag = "BadWebhookSignature";
|
|
22
21
|
}
|
|
23
22
|
exports.BadWebhookSignature = BadWebhookSignature;
|
|
24
|
-
const checkSignature = (publicKey, headers, body, crypto, algorithm) => Option.all({
|
|
25
|
-
signature: Option.
|
|
26
|
-
timestamp: Option.
|
|
27
|
-
}).pipe(Effect.flatMap(_ => Effect.promise(() => Verify.verify(body, _.signature, _.timestamp, publicKey, crypto, algorithm))), Effect.filterOrFail(_Function.identity, () => new BadWebhookSignature()), Effect.
|
|
23
|
+
const checkSignature = (publicKey, headers, body, crypto, algorithm) => Effect.fromOption(Option.all({
|
|
24
|
+
signature: Option.fromNullishOr(headers["x-signature-ed25519"]),
|
|
25
|
+
timestamp: Option.fromNullishOr(headers["x-signature-timestamp"])
|
|
26
|
+
})).pipe(Effect.flatMap(_ => Effect.promise(() => Verify.verify(body, _.signature, _.timestamp, publicKey, crypto, algorithm))), Effect.filterOrFail(_Function.identity, () => new BadWebhookSignature()), Effect.catchCause(() => Effect.fail(new BadWebhookSignature())), Effect.asVoid);
|
|
28
27
|
const makeConfig = ({
|
|
29
28
|
algorithm,
|
|
30
29
|
applicationId,
|
|
@@ -36,23 +35,24 @@ const makeConfig = ({
|
|
|
36
35
|
crypto,
|
|
37
36
|
algorithm: Verify.PlatformAlgorithm[algorithm]
|
|
38
37
|
});
|
|
39
|
-
|
|
38
|
+
class WebhookConfig extends /*#__PURE__*/ServiceMap.Service()("dfx/Interactions/WebhookConfig") {}
|
|
39
|
+
exports.WebhookConfig = WebhookConfig;
|
|
40
40
|
const layer = opts => Layer.succeed(WebhookConfig, makeConfig(opts));
|
|
41
41
|
exports.layer = layer;
|
|
42
|
-
const layerConfig = config => Layer.effect(WebhookConfig, Effect.map(config, makeConfig));
|
|
42
|
+
const layerConfig = config => Layer.effect(WebhookConfig, Effect.map(config.asEffect(), makeConfig));
|
|
43
43
|
exports.layerConfig = layerConfig;
|
|
44
|
-
class WebhookParseError extends /*#__PURE__*/
|
|
44
|
+
class WebhookParseError extends /*#__PURE__*/Data.TaggedError("WebhookParseError") {}
|
|
45
45
|
exports.WebhookParseError = WebhookParseError;
|
|
46
|
-
const fromHeadersAndBody = (headers, body) =>
|
|
46
|
+
const fromHeadersAndBody = (headers, body) => WebhookConfig.use(({
|
|
47
47
|
algorithm,
|
|
48
48
|
crypto,
|
|
49
49
|
publicKey
|
|
50
|
-
}) => checkSignature(publicKey, headers, body, crypto, algorithm)
|
|
50
|
+
}) => checkSignature(publicKey, headers, body, crypto, algorithm).pipe(Effect.andThen(Effect.try({
|
|
51
51
|
try: () => JSON.parse(body),
|
|
52
52
|
catch: cause => new WebhookParseError({
|
|
53
53
|
cause
|
|
54
54
|
})
|
|
55
|
-
})));
|
|
55
|
+
}))));
|
|
56
56
|
const run = (definitions, handleResponse) => {
|
|
57
57
|
const handler = (0, _handlers.handlers)(definitions, handleResponse);
|
|
58
58
|
return (headers, body) => Effect.flatMap(fromHeadersAndBody(headers, body), interaction => Effect.withSpan(Effect.provideService(handler[interaction.type](interaction), _index.Interaction, interaction), "dfx.Interaction", {
|
|
@@ -72,7 +72,7 @@ const makeHandler = ix => {
|
|
|
72
72
|
error,
|
|
73
73
|
headers,
|
|
74
74
|
success
|
|
75
|
-
}) => handle(headers, body).pipe(Effect.flatMap(success), Effect.
|
|
75
|
+
}) => handle(headers, body).pipe(Effect.flatMap(success), Effect.catchCause(error));
|
|
76
76
|
};
|
|
77
77
|
/**
|
|
78
78
|
* @tsplus getter dfx/InteractionBuilder simpleWebhookHandler
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhook.js","names":["Chunk","_interopRequireWildcard","require","
|
|
1
|
+
{"version":3,"file":"webhook.js","names":["Chunk","_interopRequireWildcard","require","_Function","Option","Redacted","Effect","Layer","ServiceMap","_handlers","_index","Verify","Data","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","BadWebhookSignature","_tag","exports","checkSignature","publicKey","headers","body","crypto","algorithm","fromOption","all","signature","fromNullishOr","timestamp","pipe","flatMap","_","promise","verify","filterOrFail","identity","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","handlers","interaction","withSpan","provideService","type","Interaction","attributes","interactionId","id","captureStackTrace","makeHandler","ix","handle","d","_i","error","success","makeSimpleHandler"],"sources":["../src/Interactions/webhook.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/RateLimit/memory.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../src/RateLimit/memory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAiB,qBAAqB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../src/RateLimit/memory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAiB,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAO3E,eAAO,MAAM,IAAI,QAAO,qBAqDvB,CAAA"}
|
package/RateLimit/memory.js
CHANGED
|
@@ -11,8 +11,8 @@ const make = () => {
|
|
|
11
11
|
const buckets = new Map();
|
|
12
12
|
const routes = new Map();
|
|
13
13
|
const counters = new Map();
|
|
14
|
-
const getCounter = key => Option.filter(Option.
|
|
15
|
-
const getBucketForRoute = route => Effect.sync(() => Option.
|
|
14
|
+
const getCounter = key => Option.filter(Option.fromNullishOr(counters.get(key)), c => c.expires > Date.now());
|
|
15
|
+
const getBucketForRoute = route => Effect.sync(() => Option.fromNullishOr(buckets.get(routes.get(route))));
|
|
16
16
|
return {
|
|
17
17
|
hasBucket: key => Effect.sync(() => buckets.has(key)),
|
|
18
18
|
putBucket: bucket => Effect.sync(() => {
|
package/RateLimit/memory.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.js","names":["Option","_interopRequireWildcard","require","Effect","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","make","buckets","Map","routes","counters","getCounter","key","filter","
|
|
1
|
+
{"version":3,"file":"memory.js","names":["Option","_interopRequireWildcard","require","Effect","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","make","buckets","Map","routes","counters","getCounter","key","filter","fromNullishOr","c","expires","Date","now","getBucketForRoute","route","sync","hasBucket","putBucket","bucket","putBucketRoute","removeCounter","delete","incrementCounter","window","limit","perRequest","Math","ceil","counter","getOrElse","count","exports"],"sources":["../src/RateLimit/memory.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/RateLimit.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import * as Duration from "effect/Duration";
|
|
|
2
2
|
import type * as Option from "effect/Option";
|
|
3
3
|
import * as Effect from "effect/Effect";
|
|
4
4
|
import * as Layer from "effect/Layer";
|
|
5
|
+
import * as ServiceMap from "effect/ServiceMap";
|
|
5
6
|
export type BucketDetails = {
|
|
6
7
|
key: "global" | string;
|
|
7
8
|
resetAfter: number;
|
|
@@ -15,16 +16,15 @@ export interface RateLimitStoreService {
|
|
|
15
16
|
readonly incrementCounter: (key: string, window: number, limit: number) => Effect.Effect<readonly [count: number, ttl: number]>;
|
|
16
17
|
readonly removeCounter: (key: string) => Effect.Effect<void>;
|
|
17
18
|
}
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
declare const RateLimitStore_base: ServiceMap.ServiceClass<RateLimitStore, "dfx/RateLimit/RateLimitStore", RateLimitStoreService>;
|
|
20
|
+
export declare class RateLimitStore extends RateLimitStore_base {
|
|
20
21
|
}
|
|
21
|
-
export declare const RateLimitStore: import("effect/Context").Tag<RateLimitStore, RateLimitStoreService>;
|
|
22
22
|
export declare const MemoryRateLimitStoreLive: Layer.Layer<RateLimitStore, never, never>;
|
|
23
|
-
|
|
24
|
-
readonly _: unique symbol;
|
|
25
|
-
}
|
|
26
|
-
export declare const RateLimiter: import("effect/Context").Tag<RateLimiter, {
|
|
23
|
+
declare const RateLimiter_base: ServiceMap.ServiceClass<RateLimiter, "dfx/RateLimit/RateLimiter", {
|
|
27
24
|
maybeWait: (key: string, window: Duration.Duration, limit: number, multiplier?: number) => Effect.Effect<void, never, never>;
|
|
28
25
|
}>;
|
|
26
|
+
export declare class RateLimiter extends RateLimiter_base {
|
|
27
|
+
}
|
|
29
28
|
export declare const RateLimiterLive: Layer.Layer<RateLimiter, never, RateLimitStore>;
|
|
29
|
+
export {};
|
|
30
30
|
//# sourceMappingURL=RateLimit.d.ts.map
|
package/RateLimit.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RateLimit.d.ts","sourceRoot":"","sources":["./src/RateLimit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RateLimit.d.ts","sourceRoot":"","sources":["./src/RateLimit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAE/C,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,EAAE,QAAQ,GAAG,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAEjE,QAAQ,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAElE,QAAQ,CAAC,iBAAiB,EAAE,CAC1B,KAAK,EAAE,MAAM,KACV,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAA;IAEhD,QAAQ,CAAC,cAAc,EAAE,CACvB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,KACd,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAExB,QAAQ,CAAC,gBAAgB,EAAE,CACzB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,KACV,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;IAEzD,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CAC7D;;AAED,qBAAa,cAAe,SAAQ,mBAGD;CAAG;AAEtC,eAAO,MAAM,wBAAwB,2CAA0C,CAAA;;eAsChE,CACT,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,QAAQ,CAAC,QAAQ,EACzB,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,MAAM,KAChB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC;;AAR1C,qBAAa,WAAY,SAAQ,gBAUD;CAAG;AAEnC,eAAO,MAAM,eAAe,iDAAyC,CAAA"}
|
package/RateLimit.js
CHANGED
|
@@ -4,14 +4,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.RateLimiterLive = exports.RateLimiter = exports.RateLimitStore = exports.MemoryRateLimitStoreLive = void 0;
|
|
7
|
-
var _Context = /*#__PURE__*/require("effect/Context");
|
|
8
7
|
var Duration = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Duration"));
|
|
9
8
|
var Effect = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Effect"));
|
|
10
9
|
var Layer = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Layer"));
|
|
11
|
-
var Memory = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("
|
|
12
|
-
var _utils = /*#__PURE__*/require("
|
|
10
|
+
var Memory = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./RateLimit/memory.js"));
|
|
11
|
+
var _utils = /*#__PURE__*/require("./RateLimit/utils.js");
|
|
12
|
+
var ServiceMap = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/ServiceMap"));
|
|
13
13
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
14
|
-
|
|
14
|
+
class RateLimitStore extends /*#__PURE__*/ServiceMap.Service()("dfx/RateLimit/RateLimitStore") {}
|
|
15
|
+
exports.RateLimitStore = RateLimitStore;
|
|
15
16
|
const MemoryRateLimitStoreLive = exports.MemoryRateLimitStoreLive = /*#__PURE__*/Layer.sync(RateLimitStore, Memory.make);
|
|
16
17
|
const makeLimiter = /*#__PURE__*/Effect.gen(function* () {
|
|
17
18
|
const store = yield* RateLimitStore;
|
|
@@ -30,6 +31,7 @@ const makeLimiter = /*#__PURE__*/Effect.gen(function* () {
|
|
|
30
31
|
maybeWait
|
|
31
32
|
};
|
|
32
33
|
});
|
|
33
|
-
|
|
34
|
+
class RateLimiter extends /*#__PURE__*/ServiceMap.Service()("dfx/RateLimit/RateLimiter") {}
|
|
35
|
+
exports.RateLimiter = RateLimiter;
|
|
34
36
|
const RateLimiterLive = exports.RateLimiterLive = /*#__PURE__*/Layer.effect(RateLimiter, makeLimiter);
|
|
35
37
|
//# sourceMappingURL=RateLimit.js.map
|
package/RateLimit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RateLimit.js","names":["
|
|
1
|
+
{"version":3,"file":"RateLimit.js","names":["Duration","_interopRequireWildcard","require","Effect","Layer","Memory","_utils","ServiceMap","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","RateLimitStore","Service","exports","MemoryRateLimitStoreLive","sync","make","makeLimiter","gen","store","maybeWait","key","window","limit","multiplier","windowMs","toMillis","incrementCounter","pipe","map","count","ttl","delayFrom","tap","d","annotateLogs","logTrace","service","delay","_","void","sleep","asVoid","RateLimiter","RateLimiterLive","effect"],"sources":["./src/RateLimit.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/gateway.d.ts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import * as CachePrelude from "
|
|
2
|
-
import type { DiscordGateway } from "
|
|
3
|
-
import * as DiscordWS from "
|
|
4
|
-
import * as Shard from "
|
|
5
|
-
import * as SendEvent from "
|
|
6
|
-
import * as ShardStore from "
|
|
7
|
-
import type { DiscordREST } from "
|
|
8
|
-
import type { InteractionsRegistry } from "
|
|
9
|
-
import type { RateLimiter } from "
|
|
1
|
+
import * as CachePrelude from "./Cache/prelude.ts";
|
|
2
|
+
import type { DiscordGateway } from "./DiscordGateway.ts";
|
|
3
|
+
import * as DiscordWS from "./DiscordGateway/DiscordWS.ts";
|
|
4
|
+
import * as Shard from "./DiscordGateway/Shard.ts";
|
|
5
|
+
import * as SendEvent from "./DiscordGateway/Shard/sendEvents.ts";
|
|
6
|
+
import * as ShardStore from "./DiscordGateway/ShardStore.ts";
|
|
7
|
+
import type { DiscordREST } from "./DiscordREST.ts";
|
|
8
|
+
import type { InteractionsRegistry } from "./Interactions/gateway.ts";
|
|
9
|
+
import type { RateLimiter } from "./RateLimit.ts";
|
|
10
10
|
import * as Layer from "effect/Layer";
|
|
11
|
-
import type * as HttpClient from "
|
|
12
|
-
import type { DiscordConfig } from "
|
|
13
|
-
import type { WebSocketConstructor } from "
|
|
14
|
-
export { DiscordGateway, DiscordGatewayLive } from "
|
|
15
|
-
export { InteractionsRegistry, InteractionsRegistryLive, interactionsSync, run as runIx, setInteractionsSync, } from "
|
|
11
|
+
import type * as HttpClient from "effect/unstable/http/HttpClient";
|
|
12
|
+
import type { DiscordConfig } from "./DiscordConfig.ts";
|
|
13
|
+
import type { WebSocketConstructor } from "effect/unstable/socket/Socket";
|
|
14
|
+
export { DiscordGateway, DiscordGatewayLive } from "./DiscordGateway.ts";
|
|
15
|
+
export { InteractionsRegistry, InteractionsRegistryLive, interactionsSync, run as runIx, setInteractionsSync, } from "./Interactions/gateway.ts";
|
|
16
16
|
export { CachePrelude, DiscordWS, SendEvent, Shard, ShardStore };
|
|
17
17
|
export declare const DiscordLive: Layer.Layer<RateLimiter | DiscordGateway | DiscordREST, never, DiscordConfig | WebSocketConstructor | HttpClient.HttpClient>;
|
|
18
18
|
export declare const DiscordIxLive: Layer.Layer<RateLimiter | DiscordGateway | DiscordREST | InteractionsRegistry, never, DiscordConfig | WebSocketConstructor | HttpClient.HttpClient>;
|
package/gateway.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["./src/gateway.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,
|
|
1
|
+
{"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["./src/gateway.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEzD,OAAO,KAAK,SAAS,MAAM,+BAA+B,CAAA;AAE1D,OAAO,KAAK,KAAK,MAAM,2BAA2B,CAAA;AAElD,OAAO,KAAK,SAAS,MAAM,sCAAsC,CAAA;AACjE,OAAO,KAAK,UAAU,MAAM,gCAAgC,CAAA;AAE5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAErE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAEjD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,UAAU,MAAM,iCAAiC,CAAA;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AAEzE,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAExE,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,gBAAgB,EAChB,GAAG,IAAI,KAAK,EACZ,mBAAmB,GACpB,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,CAAA;AAEhE,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,KAAK,CACnC,WAAW,GAAG,cAAc,GAAG,WAAW,EAC1C,KAAK,EACL,aAAa,GAAG,oBAAoB,GAAG,UAAU,CAAC,UAAU,CAO7D,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,KAAK,CACrC,WAAW,GAAG,cAAc,GAAG,WAAW,GAAG,oBAAoB,EACjE,KAAK,EACL,aAAa,GAAG,oBAAoB,GAAG,UAAU,CAAC,UAAU,CACI,CAAA"}
|
package/gateway.js
CHANGED
|
@@ -48,23 +48,23 @@ Object.defineProperty(exports, "setInteractionsSync", {
|
|
|
48
48
|
return _gateway.setInteractionsSync;
|
|
49
49
|
}
|
|
50
50
|
});
|
|
51
|
-
var CachePrelude = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("
|
|
51
|
+
var CachePrelude = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./Cache/prelude.js"));
|
|
52
52
|
exports.CachePrelude = CachePrelude;
|
|
53
|
-
var _DiscordGateway = /*#__PURE__*/require("
|
|
54
|
-
var _DiscordWS = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("
|
|
53
|
+
var _DiscordGateway = /*#__PURE__*/require("./DiscordGateway.js");
|
|
54
|
+
var _DiscordWS = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./DiscordGateway/DiscordWS.js"));
|
|
55
55
|
var DiscordWS = _DiscordWS;
|
|
56
56
|
exports.DiscordWS = _DiscordWS;
|
|
57
|
-
var Shard = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("
|
|
57
|
+
var Shard = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./DiscordGateway/Shard.js"));
|
|
58
58
|
exports.Shard = Shard;
|
|
59
|
-
var _StateStore = /*#__PURE__*/require("
|
|
60
|
-
var SendEvent = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("
|
|
59
|
+
var _StateStore = /*#__PURE__*/require("./DiscordGateway/Shard/StateStore.js");
|
|
60
|
+
var SendEvent = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./DiscordGateway/Shard/sendEvents.js"));
|
|
61
61
|
exports.SendEvent = SendEvent;
|
|
62
|
-
var _ShardStore = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("
|
|
62
|
+
var _ShardStore = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./DiscordGateway/ShardStore.js"));
|
|
63
63
|
var ShardStore = _ShardStore;
|
|
64
64
|
exports.ShardStore = _ShardStore;
|
|
65
|
-
var _DiscordREST = /*#__PURE__*/require("
|
|
66
|
-
var _gateway = /*#__PURE__*/require("
|
|
67
|
-
var _RateLimit = /*#__PURE__*/require("
|
|
65
|
+
var _DiscordREST = /*#__PURE__*/require("./DiscordREST.js");
|
|
66
|
+
var _gateway = /*#__PURE__*/require("./Interactions/gateway.js");
|
|
67
|
+
var _RateLimit = /*#__PURE__*/require("./RateLimit.js");
|
|
68
68
|
var Layer = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Layer"));
|
|
69
69
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
70
70
|
const DiscordLive = exports.DiscordLive = /*#__PURE__*/Layer.mergeAll(_RateLimit.RateLimiterLive, _DiscordGateway.DiscordGatewayLive).pipe(/*#__PURE__*/Layer.provideMerge(_DiscordREST.DiscordRESTLive), /*#__PURE__*/Layer.provide(_DiscordWS.JsonDiscordWSCodecLive), /*#__PURE__*/Layer.provide(_RateLimit.MemoryRateLimitStoreLive), /*#__PURE__*/Layer.provide(_ShardStore.MemoryShardStoreLive), /*#__PURE__*/Layer.provide(_StateStore.ShardStateStore.MemoryLive));
|
package/gateway.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway.js","names":["CachePrelude","_interopRequireWildcard","require","exports","_DiscordGateway","_DiscordWS","DiscordWS","Shard","_StateStore","SendEvent","_ShardStore","ShardStore","_DiscordREST","_gateway","_RateLimit","Layer","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DiscordLive","mergeAll","RateLimiterLive","DiscordGatewayLive","pipe","provideMerge","DiscordRESTLive","provide","JsonDiscordWSCodecLive","MemoryRateLimitStoreLive","MemoryShardStoreLive","ShardStateStore","MemoryLive","DiscordIxLive","InteractionsRegistryLive"],"sources":["./src/gateway.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,gBAAAC,uBAAA,cAAAC,OAAA;
|
|
1
|
+
{"version":3,"file":"gateway.js","names":["CachePrelude","_interopRequireWildcard","require","exports","_DiscordGateway","_DiscordWS","DiscordWS","Shard","_StateStore","SendEvent","_ShardStore","ShardStore","_DiscordREST","_gateway","_RateLimit","Layer","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DiscordLive","mergeAll","RateLimiterLive","DiscordGatewayLive","pipe","provideMerge","DiscordRESTLive","provide","JsonDiscordWSCodecLive","MemoryRateLimitStoreLive","MemoryShardStoreLive","ShardStateStore","MemoryLive","DiscordIxLive","InteractionsRegistryLive"],"sources":["./src/gateway.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,gBAAAC,uBAAA,cAAAC,OAAA;AAAkDC,OAAA,CAAAH,YAAA,GAAAA,YAAA;AAElD,IAAAI,eAAA,gBAAAF,OAAA;AACA,IAAAG,UAAA,gBAAAJ,uBAAA,cAAAC,OAAA;AAA0D,IAAAI,SAAA,GAAAD,UAAA;AAAAF,OAAA,CAAAG,SAAA,GAAAD,UAAA;AAE1D,IAAAE,KAAA,gBAAAN,uBAAA,cAAAC,OAAA;AAAkDC,OAAA,CAAAI,KAAA,GAAAA,KAAA;AAClD,IAAAC,WAAA,gBAAAN,OAAA;AACA,IAAAO,SAAA,gBAAAR,uBAAA,cAAAC,OAAA;AAAiEC,OAAA,CAAAM,SAAA,GAAAA,SAAA;AACjE,IAAAC,WAAA,gBAAAT,uBAAA,cAAAC,OAAA;AAA4D,IAAAS,UAAA,GAAAD,WAAA;AAAAP,OAAA,CAAAQ,UAAA,GAAAD,WAAA;AAG5D,IAAAE,YAAA,gBAAAV,OAAA;AAEA,IAAAW,QAAA,gBAAAX,OAAA;AAEA,IAAAY,UAAA,gBAAAZ,OAAA;AACA,IAAAa,KAAA,gBAAAd,uBAAA,cAAAC,OAAA;AAAqC,SAAAD,wBAAAe,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAjB,uBAAA,YAAAA,CAAAe,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAiB9B,MAAMkB,WAAW,GAAAhC,OAAA,CAAAgC,WAAA,gBAIpBpB,KAAK,CAACqB,QAAQ,CAACC,0BAAe,EAAEC,kCAAkB,CAAC,CAACC,IAAI,cAC1DxB,KAAK,CAACyB,YAAY,CAACC,4BAAe,CAAC,eACnC1B,KAAK,CAAC2B,OAAO,CAACC,iCAAsB,CAAC,eACrC5B,KAAK,CAAC2B,OAAO,CAACE,mCAAwB,CAAC,eACvC7B,KAAK,CAAC2B,OAAO,CAACG,gCAAoB,CAAC,eACnC9B,KAAK,CAAC2B,OAAO,CAACI,2BAAe,CAACC,UAAU,CAAC,CAC1C;AAEM,MAAMC,aAAa,GAAA7C,OAAA,CAAA6C,aAAA,gBAItBC,iCAAwB,CAACV,IAAI,cAACxB,KAAK,CAACyB,YAAY,CAACL,WAAW,CAAC,CAAC","ignoreList":[]}
|
package/index.d.ts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import type { HttpClient } from "
|
|
2
|
-
import * as Cache from "
|
|
3
|
-
import * as DiscordConfig from "
|
|
4
|
-
import type { DiscordREST } from "
|
|
5
|
-
import * as Flags from "
|
|
6
|
-
import * as Intents from "
|
|
7
|
-
import * as IxHelpers from "
|
|
8
|
-
import * as Members from "
|
|
9
|
-
import * as Perms from "
|
|
10
|
-
import * as UI from "
|
|
11
|
-
import * as Ix from "
|
|
12
|
-
import * as Discord from "
|
|
1
|
+
import type { HttpClient } from "effect/unstable/http/HttpClient";
|
|
2
|
+
import * as Cache from "./Cache.ts";
|
|
3
|
+
import * as DiscordConfig from "./DiscordConfig.ts";
|
|
4
|
+
import type { DiscordREST } from "./DiscordREST.ts";
|
|
5
|
+
import * as Flags from "./Helpers/flags.ts";
|
|
6
|
+
import * as Intents from "./Helpers/intents.ts";
|
|
7
|
+
import * as IxHelpers from "./Helpers/interactions.ts";
|
|
8
|
+
import * as Members from "./Helpers/members.ts";
|
|
9
|
+
import * as Perms from "./Helpers/permissions.ts";
|
|
10
|
+
import * as UI from "./Helpers/ui.ts";
|
|
11
|
+
import * as Ix from "./Interactions/index.ts";
|
|
12
|
+
import * as Discord from "./types.ts";
|
|
13
13
|
import * as Layer from "effect/Layer";
|
|
14
|
-
export { DiscordREST, DiscordRESTLive } from "
|
|
15
|
-
export { BucketDetails, MemoryRateLimitStoreLive, RateLimitStore, RateLimiter, RateLimiterLive, } from "
|
|
14
|
+
export { DiscordREST, DiscordRESTLive } from "./DiscordREST.ts";
|
|
15
|
+
export { type BucketDetails, MemoryRateLimitStoreLive, RateLimitStore, RateLimiter, RateLimiterLive, } from "./RateLimit.ts";
|
|
16
16
|
export { Cache, Discord, DiscordConfig, Flags, Intents, Ix, IxHelpers, Members, Perms, UI, };
|
|
17
17
|
export declare const DiscordRESTMemoryLive: Layer.Layer<DiscordREST, never, DiscordConfig.DiscordConfig | HttpClient>;
|
|
18
18
|
//# sourceMappingURL=index.d.ts.map
|
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["./src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["./src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEnD,OAAO,KAAK,KAAK,MAAM,oBAAoB,CAAA;AAC3C,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAC/C,OAAO,KAAK,SAAS,MAAM,2BAA2B,CAAA;AACtD,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAC/C,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAA;AACjD,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACrC,OAAO,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAE7C,OAAO,KAAK,OAAO,MAAM,YAAY,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAE/D,OAAO,EACL,KAAK,aAAa,EAClB,wBAAwB,EACxB,cAAc,EACd,WAAW,EACX,eAAe,GAChB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EACL,KAAK,EACL,OAAO,EACP,aAAa,EACb,KAAK,EACL,OAAO,EACP,EAAE,EACF,SAAS,EACT,OAAO,EACP,KAAK,EACL,EAAE,GACH,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,KAAK,CAC7C,WAAW,EACX,KAAK,EACL,aAAa,CAAC,aAAa,GAAG,UAAU,CACuB,CAAA"}
|
package/index.js
CHANGED
|
@@ -43,27 +43,27 @@ Object.defineProperty(exports, "RateLimiterLive", {
|
|
|
43
43
|
}
|
|
44
44
|
});
|
|
45
45
|
exports.UI = void 0;
|
|
46
|
-
var Cache = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("
|
|
46
|
+
var Cache = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./Cache.js"));
|
|
47
47
|
exports.Cache = Cache;
|
|
48
|
-
var DiscordConfig = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("
|
|
48
|
+
var DiscordConfig = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./DiscordConfig.js"));
|
|
49
49
|
exports.DiscordConfig = DiscordConfig;
|
|
50
|
-
var _DiscordREST = /*#__PURE__*/require("
|
|
51
|
-
var Flags = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("
|
|
50
|
+
var _DiscordREST = /*#__PURE__*/require("./DiscordREST.js");
|
|
51
|
+
var Flags = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./Helpers/flags.js"));
|
|
52
52
|
exports.Flags = Flags;
|
|
53
|
-
var Intents = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("
|
|
53
|
+
var Intents = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./Helpers/intents.js"));
|
|
54
54
|
exports.Intents = Intents;
|
|
55
|
-
var IxHelpers = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("
|
|
55
|
+
var IxHelpers = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./Helpers/interactions.js"));
|
|
56
56
|
exports.IxHelpers = IxHelpers;
|
|
57
|
-
var Members = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("
|
|
57
|
+
var Members = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./Helpers/members.js"));
|
|
58
58
|
exports.Members = Members;
|
|
59
|
-
var Perms = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("
|
|
59
|
+
var Perms = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./Helpers/permissions.js"));
|
|
60
60
|
exports.Perms = Perms;
|
|
61
|
-
var UI = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("
|
|
61
|
+
var UI = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./Helpers/ui.js"));
|
|
62
62
|
exports.UI = UI;
|
|
63
|
-
var Ix = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("
|
|
63
|
+
var Ix = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./Interactions/index.js"));
|
|
64
64
|
exports.Ix = Ix;
|
|
65
|
-
var _RateLimit = /*#__PURE__*/require("
|
|
66
|
-
var Discord = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("
|
|
65
|
+
var _RateLimit = /*#__PURE__*/require("./RateLimit.js");
|
|
66
|
+
var Discord = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./types.js"));
|
|
67
67
|
exports.Discord = Discord;
|
|
68
68
|
var Layer = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Layer"));
|
|
69
69
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["Cache","_interopRequireWildcard","require","exports","DiscordConfig","_DiscordREST","Flags","Intents","IxHelpers","Members","Perms","UI","Ix","_RateLimit","Discord","Layer","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DiscordRESTMemoryLive","DiscordRESTLive","pipe","provide","MemoryRateLimitStoreLive"],"sources":["./src/index.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,IAAAA,KAAA,gBAAAC,uBAAA,cAAAC,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","names":["Cache","_interopRequireWildcard","require","exports","DiscordConfig","_DiscordREST","Flags","Intents","IxHelpers","Members","Perms","UI","Ix","_RateLimit","Discord","Layer","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DiscordRESTMemoryLive","DiscordRESTLive","pipe","provide","MemoryRateLimitStoreLive"],"sources":["./src/index.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,IAAAA,KAAA,gBAAAC,uBAAA,cAAAC,OAAA;AAAmCC,OAAA,CAAAH,KAAA,GAAAA,KAAA;AACnC,IAAAI,aAAA,gBAAAH,uBAAA,cAAAC,OAAA;AAAmDC,OAAA,CAAAC,aAAA,GAAAA,aAAA;AAEnD,IAAAC,YAAA,gBAAAH,OAAA;AACA,IAAAI,KAAA,gBAAAL,uBAAA,cAAAC,OAAA;AAA2CC,OAAA,CAAAG,KAAA,GAAAA,KAAA;AAC3C,IAAAC,OAAA,gBAAAN,uBAAA,cAAAC,OAAA;AAA+CC,OAAA,CAAAI,OAAA,GAAAA,OAAA;AAC/C,IAAAC,SAAA,gBAAAP,uBAAA,cAAAC,OAAA;AAAsDC,OAAA,CAAAK,SAAA,GAAAA,SAAA;AACtD,IAAAC,OAAA,gBAAAR,uBAAA,cAAAC,OAAA;AAA+CC,OAAA,CAAAM,OAAA,GAAAA,OAAA;AAC/C,IAAAC,KAAA,gBAAAT,uBAAA,cAAAC,OAAA;AAAiDC,OAAA,CAAAO,KAAA,GAAAA,KAAA;AACjD,IAAAC,EAAA,gBAAAV,uBAAA,cAAAC,OAAA;AAAqCC,OAAA,CAAAQ,EAAA,GAAAA,EAAA;AACrC,IAAAC,EAAA,gBAAAX,uBAAA,cAAAC,OAAA;AAA6CC,OAAA,CAAAS,EAAA,GAAAA,EAAA;AAC7C,IAAAC,UAAA,gBAAAX,OAAA;AACA,IAAAY,OAAA,gBAAAb,uBAAA,cAAAC,OAAA;AAAqCC,OAAA,CAAAW,OAAA,GAAAA,OAAA;AACrC,IAAAC,KAAA,gBAAAd,uBAAA,cAAAC,OAAA;AAAqC,SAAAD,wBAAAe,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAjB,uBAAA,YAAAA,CAAAe,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAyB9B,MAAMkB,qBAAqB,GAAAhC,OAAA,CAAAgC,qBAAA,gBAI9BC,4BAAe,CAACC,IAAI,cAACtB,KAAK,CAACuB,OAAO,CAACC,mCAAwB,CAAC,CAAC","ignoreList":[]}
|
package/mjs/Cache/memory.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as Option from "effect/Option";
|
|
2
2
|
import * as Effect from "effect/Effect";
|
|
3
|
-
import { createDriver, createParentDriver } from "
|
|
3
|
+
import { createDriver, createParentDriver } from "./driver.js";
|
|
4
4
|
export const createWithParent = () => Effect.sync(() => {
|
|
5
5
|
const map = new Map();
|
|
6
6
|
return createParentDriver({
|
|
@@ -12,8 +12,8 @@ export const createWithParent = () => Effect.sync(() => {
|
|
|
12
12
|
return count;
|
|
13
13
|
}),
|
|
14
14
|
sizeForParent: parentId => Effect.sync(() => map.get(parentId)?.size ?? 0),
|
|
15
|
-
get: (parentId, resourceId) => Effect.sync(() => Option.
|
|
16
|
-
getForParent: parentId => Effect.sync(() => Option.
|
|
15
|
+
get: (parentId, resourceId) => Effect.sync(() => Option.fromNullishOr(map.get(parentId)?.get(resourceId))),
|
|
16
|
+
getForParent: parentId => Effect.sync(() => Option.fromNullishOr(map.get(parentId))),
|
|
17
17
|
set: (parentId, resourceId, resource) => Effect.sync(() => {
|
|
18
18
|
if (!map.has(parentId)) {
|
|
19
19
|
map.set(parentId, new Map());
|
|
@@ -34,7 +34,7 @@ export const create = () => Effect.sync(() => {
|
|
|
34
34
|
const map = new Map();
|
|
35
35
|
return createDriver({
|
|
36
36
|
size: Effect.sync(() => map.size),
|
|
37
|
-
get: resourceId => Effect.sync(() => Option.
|
|
37
|
+
get: resourceId => Effect.sync(() => Option.fromNullishOr(map.get(resourceId))),
|
|
38
38
|
set: (resourceId, resource) => Effect.sync(() => {
|
|
39
39
|
map.set(resourceId, resource);
|
|
40
40
|
}),
|
package/mjs/Cache/memory.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.mjs","names":["Option","Effect","createDriver","createParentDriver","createWithParent","sync","map","Map","size","count","a","values","sizeForParent","parentId","get","resourceId","
|
|
1
|
+
{"version":3,"file":"memory.mjs","names":["Option","Effect","createDriver","createParentDriver","createWithParent","sync","map","Map","size","count","a","values","sizeForParent","parentId","get","resourceId","fromNullishOr","getForParent","set","resource","has","delete","parentDelete","refreshTTL","void","run","never","create"],"sources":["../../src/Cache/memory.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/mjs/Cache/memoryTTL.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createDriver, createParentDriver } from "
|
|
1
|
+
import { createDriver, createParentDriver } from "./driver.js";
|
|
2
2
|
import * as Array from "effect/Array";
|
|
3
3
|
import * as Duration from "effect/Duration";
|
|
4
4
|
import * as Effect from "effect/Effect";
|
|
@@ -52,7 +52,7 @@ const make = ({
|
|
|
52
52
|
};
|
|
53
53
|
return createDriver({
|
|
54
54
|
size: Effect.sync(() => items.size),
|
|
55
|
-
get: resourceId => Effect.sync(() => Option.
|
|
55
|
+
get: resourceId => Effect.sync(() => Option.fromNullishOr(getSync(resourceId))),
|
|
56
56
|
refreshTTL: id => Effect.sync(() => {
|
|
57
57
|
getSync(id);
|
|
58
58
|
}),
|
|
@@ -83,20 +83,20 @@ export const createWithParent = opts => Effect.sync(() => {
|
|
|
83
83
|
sizeForParent: parentId => Effect.sync(() => parentIds.get(parentId)?.size ?? 0),
|
|
84
84
|
refreshTTL: (_, id) => store.refreshTTL(id),
|
|
85
85
|
get: (_, id) => store.get(id),
|
|
86
|
-
getForParent: parentId =>
|
|
86
|
+
getForParent: parentId => Effect.fromNullishOr(parentIds.get(parentId)).pipe(Effect.flatMap(ids => Effect.forEach(ids, id => store.get(id).pipe(Effect.tap(item => Effect.sync(() => {
|
|
87
87
|
if (item._tag === "None") {
|
|
88
88
|
ids.delete(id);
|
|
89
89
|
}
|
|
90
90
|
})), Effect.map(item => [id, item])), {
|
|
91
91
|
concurrency: "unbounded"
|
|
92
|
-
})), Effect.map(Array.reduce(new Map(), (acc, [id, item]) => item._tag === "Some" ? acc.set(id, item.value) : acc)), Effect.
|
|
93
|
-
set: (parentId, resourceId, resource) => Effect.
|
|
92
|
+
})), Effect.map(Array.reduce(new Map(), (acc, [id, item]) => item._tag === "Some" ? acc.set(id, item.value) : acc)), Effect.catchNoSuchElement),
|
|
93
|
+
set: (parentId, resourceId, resource) => Effect.andThen(store.set(resourceId, resource), Effect.sync(() => {
|
|
94
94
|
if (!parentIds.has(parentId)) {
|
|
95
95
|
parentIds.set(parentId, new Set());
|
|
96
96
|
}
|
|
97
97
|
parentIds.get(parentId).add(resourceId);
|
|
98
98
|
})),
|
|
99
|
-
delete: (parentId, resourceId) => Effect.
|
|
99
|
+
delete: (parentId, resourceId) => Effect.andThen(store.delete(resourceId), Effect.sync(() => {
|
|
100
100
|
parentIds.get(parentId)?.delete(resourceId);
|
|
101
101
|
})),
|
|
102
102
|
parentDelete: parentId => Effect.suspend(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memoryTTL.mjs","names":["createDriver","createParentDriver","Array","Duration","Effect","Option","make","resolution","minutes","strategy","ttl","resolutionMs","toMillis","additionalMilliseconds","Math","floor","items","Map","buckets","refreshTTL","item","now","Date","remainder","expires","currentBucket","length","push","sweep","currentExpires","shift","global","gc","getSync","resourceId","ref","get","undefined","deref","delete","resource","size","sync","
|
|
1
|
+
{"version":3,"file":"memoryTTL.mjs","names":["createDriver","createParentDriver","Array","Duration","Effect","Option","make","resolution","minutes","strategy","ttl","resolutionMs","toMillis","additionalMilliseconds","Math","floor","items","Map","buckets","refreshTTL","item","now","Date","remainder","expires","currentBucket","length","push","sweep","currentExpires","shift","global","gc","getSync","resourceId","ref","get","undefined","deref","delete","resource","size","sync","fromNullishOr","id","set","newItem","WeakRef","run","pipe","delay","times","forever","create","opts","createWithParent","store","parentIds","sizeForParent","parentId","_","getForParent","flatMap","ids","forEach","tap","_tag","map","concurrency","reduce","acc","value","catchNoSuchElement","andThen","has","Set","add","parentDelete","suspend","effects","all","discard"],"sources":["../../src/Cache/memoryTTL.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|