dfx 0.90.1 → 0.90.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.
Files changed (86) hide show
  1. package/Cache/prelude.d.ts.map +1 -1
  2. package/Cache/prelude.js +8 -2
  3. package/Cache/prelude.js.map +1 -1
  4. package/Cache.d.ts +11 -7
  5. package/Cache.d.ts.map +1 -1
  6. package/Cache.js +12 -13
  7. package/Cache.js.map +1 -1
  8. package/DiscordGateway/DiscordWS.d.ts.map +1 -1
  9. package/DiscordGateway/DiscordWS.js +2 -2
  10. package/DiscordGateway/DiscordWS.js.map +1 -1
  11. package/DiscordGateway/Shard.d.ts +2 -2
  12. package/DiscordGateway/Shard.d.ts.map +1 -1
  13. package/DiscordGateway/Shard.js +25 -11
  14. package/DiscordGateway/Shard.js.map +1 -1
  15. package/DiscordGateway/Sharder.d.ts.map +1 -1
  16. package/DiscordGateway/Sharder.js +1 -1
  17. package/DiscordGateway/Sharder.js.map +1 -1
  18. package/DiscordREST.d.ts +10 -5
  19. package/DiscordREST.d.ts.map +1 -1
  20. package/DiscordREST.js +15 -9
  21. package/DiscordREST.js.map +1 -1
  22. package/Interactions/context.d.ts +14 -21
  23. package/Interactions/context.d.ts.map +1 -1
  24. package/Interactions/context.js +12 -34
  25. package/Interactions/context.js.map +1 -1
  26. package/Interactions/definitions.d.ts +3 -2
  27. package/Interactions/definitions.d.ts.map +1 -1
  28. package/Interactions/error.d.ts +2 -0
  29. package/Interactions/error.d.ts.map +1 -0
  30. package/Interactions/error.js +8 -0
  31. package/Interactions/error.js.map +1 -0
  32. package/Interactions/gateway.d.ts.map +1 -1
  33. package/Interactions/gateway.js +1 -1
  34. package/Interactions/gateway.js.map +1 -1
  35. package/Interactions/webhook.d.ts +9 -4
  36. package/Interactions/webhook.d.ts.map +1 -1
  37. package/Interactions/webhook.js +6 -8
  38. package/Interactions/webhook.js.map +1 -1
  39. package/mjs/Cache/prelude.mjs +8 -2
  40. package/mjs/Cache/prelude.mjs.map +1 -1
  41. package/mjs/Cache.mjs +10 -12
  42. package/mjs/Cache.mjs.map +1 -1
  43. package/mjs/DiscordGateway/DiscordWS.mjs +2 -2
  44. package/mjs/DiscordGateway/DiscordWS.mjs.map +1 -1
  45. package/mjs/DiscordGateway/Shard.mjs +25 -11
  46. package/mjs/DiscordGateway/Shard.mjs.map +1 -1
  47. package/mjs/DiscordGateway/Sharder.mjs +1 -1
  48. package/mjs/DiscordGateway/Sharder.mjs.map +1 -1
  49. package/mjs/DiscordREST.mjs +14 -8
  50. package/mjs/DiscordREST.mjs.map +1 -1
  51. package/mjs/Interactions/context.mjs +11 -31
  52. package/mjs/Interactions/context.mjs.map +1 -1
  53. package/mjs/Interactions/error.mjs +2 -0
  54. package/mjs/Interactions/error.mjs.map +1 -0
  55. package/mjs/Interactions/gateway.mjs +1 -1
  56. package/mjs/Interactions/gateway.mjs.map +1 -1
  57. package/mjs/Interactions/webhook.mjs +6 -8
  58. package/mjs/Interactions/webhook.mjs.map +1 -1
  59. package/mjs/utils/Effect.mjs +2 -2
  60. package/mjs/utils/Effect.mjs.map +1 -1
  61. package/mjs/version.mjs +1 -1
  62. package/package.json +4 -4
  63. package/src/Cache/prelude.ts +6 -2
  64. package/src/Cache.ts +19 -8
  65. package/src/DiscordGateway/DiscordWS.ts +2 -0
  66. package/src/DiscordGateway/Shard.ts +17 -6
  67. package/src/DiscordGateway/Sharder.ts +1 -0
  68. package/src/DiscordREST.ts +21 -9
  69. package/src/Interactions/context.ts +24 -45
  70. package/src/Interactions/definitions.ts +2 -2
  71. package/src/Interactions/error.ts +3 -0
  72. package/src/Interactions/gateway.ts +1 -0
  73. package/src/Interactions/webhook.ts +7 -5
  74. package/src/utils/Effect.ts +2 -0
  75. package/src/version.ts +1 -1
  76. package/utils/Effect.d.ts.map +1 -1
  77. package/utils/Effect.js +2 -2
  78. package/utils/Effect.js.map +1 -1
  79. package/version.d.ts +1 -1
  80. package/version.js +1 -1
  81. package/DiscordGateway/WS.d.ts +0 -38
  82. package/DiscordGateway/WS.d.ts.map +0 -1
  83. package/DiscordGateway/WS.js +0 -115
  84. package/DiscordGateway/WS.js.map +0 -1
  85. package/mjs/DiscordGateway/WS.mjs +0 -104
  86. package/mjs/DiscordGateway/WS.mjs.map +0 -1
@@ -1,38 +0,0 @@
1
- /// <reference types="ws" />
2
- import type * as Duration from "effect/Duration";
3
- import * as Effect from "effect/Effect";
4
- import * as Layer from "effect/Layer";
5
- import * as Ref from "effect/Ref";
6
- import WebSocket from "isomorphic-ws";
7
- import type { Predicate } from "effect/Predicate";
8
- export declare const Reconnect: unique symbol;
9
- export type Reconnect = typeof Reconnect;
10
- export type Message = string | Uint8Array | ArrayBuffer | Reconnect;
11
- export declare class WebSocketError {
12
- readonly reason: "open-timeout" | "error";
13
- readonly error?: unknown;
14
- readonly _tag = "WebSocketError";
15
- constructor(reason: "open-timeout" | "error", error?: unknown);
16
- }
17
- export declare class WebSocketCloseError {
18
- readonly code: number;
19
- readonly reason: string;
20
- readonly _tag = "WebSocketCloseError";
21
- constructor(code: number, reason: string);
22
- }
23
- export interface WS {
24
- readonly _: unique symbol;
25
- }
26
- export declare const WS: import("effect/Context").Tag<WS, {
27
- readonly connect: ({ onConnecting, openTimeout, reconnectWhen, takeOutbound, urlRef, }: {
28
- readonly urlRef: Ref.Ref<string>;
29
- readonly takeOutbound: Effect.Effect<Message>;
30
- readonly onConnecting?: Effect.Effect<void, never, never> | undefined;
31
- readonly openTimeout?: Duration.DurationInput | undefined;
32
- readonly reconnectWhen?: Predicate<WebSocketError | WebSocketCloseError> | undefined;
33
- }) => Effect.Effect<{
34
- readonly take: Effect.Effect<WebSocket.Data, never, never>;
35
- }, never, import("effect/Scope").Scope>;
36
- }>;
37
- export declare const WSLive: Layer.Layer<WS, never, never>;
38
- //# sourceMappingURL=WS.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WS.d.ts","sourceRoot":"","sources":["../src/DiscordGateway/WS.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAEhD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,GAAG,MAAM,YAAY,CAAA;AACjC,OAAO,SAAS,MAAM,eAAe,CAAA;AACrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAGjD,eAAO,MAAM,SAAS,eAAW,CAAA;AACjC,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAA;AACxC,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,CAAA;AAEnE,qBAAa,cAAc;IAGvB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO;IACzC,QAAQ,CAAC,KAAK,CAAC;IAHjB,QAAQ,CAAC,IAAI,oBAAmB;gBAErB,MAAM,EAAE,cAAc,GAAG,OAAO,EAChC,KAAK,CAAC,SAAS;CAE3B;AAED,qBAAa,mBAAmB;IAG5B,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM;IAHzB,QAAQ,CAAC,IAAI,yBAAwB;gBAE1B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM;CAE1B;AAqJD,MAAM,WAAW,EAAE;IACjB,QAAQ,CAAC,CAAC,EAAE,OAAO,MAAM,CAAA;CAC1B;AACD,eAAO,MAAM,EAAE;;yBAhEM,OAAO,CAAC,MAAM,CAAC;+BACT,aAAa,CAAC,OAAO,CAAC;;;;;;;EA+DuB,CAAA;AACxE,eAAO,MAAM,MAAM,+BAA4B,CAAA"}
@@ -1,115 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.WebSocketError = exports.WebSocketCloseError = exports.WSLive = exports.WS = exports.Reconnect = void 0;
7
- var _Context = /*#__PURE__*/require("effect/Context");
8
- var _Function = /*#__PURE__*/require("effect/Function");
9
- var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Effect"));
10
- var Layer = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Layer"));
11
- var Queue = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Queue"));
12
- var Ref = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Ref"));
13
- var _isomorphicWs = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("isomorphic-ws"));
14
- var Schedule = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Schedule"));
15
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
17
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
- const Reconnect = exports.Reconnect = /*#__PURE__*/Symbol();
19
- class WebSocketError {
20
- reason;
21
- error;
22
- _tag = "WebSocketError";
23
- constructor(reason, error) {
24
- this.reason = reason;
25
- this.error = error;
26
- }
27
- }
28
- exports.WebSocketError = WebSocketError;
29
- class WebSocketCloseError {
30
- code;
31
- reason;
32
- _tag = "WebSocketCloseError";
33
- constructor(code, reason) {
34
- this.code = code;
35
- this.reason = reason;
36
- }
37
- }
38
- exports.WebSocketCloseError = WebSocketCloseError;
39
- const isReconnect = e => e._tag === "WebSocketCloseError" && e.code === 1012;
40
- const socket = urlRef => (0, _Function.pipe)(Ref.get(urlRef), Effect.map(_ => new _isomorphicWs.default(_)), Effect.acquireRelease(ws => Effect.sync(() => {
41
- // eslint-disable-next-line no-extra-semi
42
- ;
43
- ws.removeAllListeners?.();
44
- ws.close();
45
- })));
46
- const offer = (ws, queue) => Effect.async(resume => {
47
- ws.addEventListener("message", message => {
48
- Queue.unsafeOffer(queue, message.data);
49
- });
50
- ws.addEventListener("error", cause => {
51
- resume(Effect.fail(new WebSocketError("error", cause)));
52
- });
53
- ws.addEventListener("close", e => {
54
- resume(Effect.fail(new WebSocketCloseError(e.code, e.reason)));
55
- });
56
- });
57
- const waitForOpen = (ws, timeout) => Effect.timeoutFail(Effect.suspend(() => {
58
- if (ws.readyState === _isomorphicWs.default.OPEN) {
59
- return Effect.unit;
60
- }
61
- return Effect.async(resume => {
62
- ws.addEventListener("open", () => resume(Effect.unit), {
63
- once: true
64
- });
65
- });
66
- }), {
67
- onTimeout: () => new WebSocketError("open-timeout"),
68
- duration: timeout
69
- });
70
- const send = (ws, take) => (0, _Function.pipe)(take, Effect.tap(data => Effect.logTrace(data)), Effect.tap(data => {
71
- if (data === Reconnect) {
72
- return Effect.failSync(() => {
73
- ws.close(1012, "reconnecting");
74
- return new WebSocketCloseError(1012, "reconnecting");
75
- });
76
- }
77
- return Effect.sync(() => {
78
- ws.send(data);
79
- });
80
- }), Effect.forever, Effect.annotateLogs("method", "send"));
81
- const wsImpl = {
82
- connect: ({
83
- onConnecting = Effect.unit,
84
- openTimeout = "3 seconds",
85
- reconnectWhen,
86
- takeOutbound,
87
- urlRef
88
- }) => Effect.gen(function* (_) {
89
- const scope = yield* _(Effect.scope);
90
- const queue = yield* _(Effect.acquireRelease(Queue.unbounded(), Queue.shutdown));
91
- const take = Effect.annotateLogs(Effect.tap(Queue.take(queue), data => Effect.logTrace(data)), {
92
- package: "dfx",
93
- module: "DiscordGateway/WS",
94
- method: "take"
95
- });
96
- const run = (0, _Function.pipe)(onConnecting, Effect.zipRight(socket(urlRef)), Effect.flatMap(ws => Effect.all([offer(ws, queue), Effect.zipRight(waitForOpen(ws, openTimeout), send(ws, takeOutbound))], {
97
- concurrency: "unbounded",
98
- discard: true
99
- })), Effect.scoped, Effect.retry({
100
- while: isReconnect
101
- }), reconnectWhen ? Effect.retry({
102
- while: reconnectWhen
103
- }) : _Function.identity, Effect.catchAllCause(Effect.logError), Effect.repeat(Schedule.exponential("500 millis").pipe(Schedule.union(Schedule.spaced("30 seconds")))), Effect.forkIn(scope));
104
- yield* _(run);
105
- return {
106
- take
107
- };
108
- }).pipe(Effect.annotateLogs({
109
- package: "dfx",
110
- module: "DiscordGateway/WS"
111
- }))
112
- };
113
- const WS = exports.WS = /*#__PURE__*/(0, _Context.GenericTag)("dfx/DiscordGateway/WS");
114
- const WSLive = exports.WSLive = /*#__PURE__*/Layer.succeed(WS, wsImpl);
115
- //# sourceMappingURL=WS.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WS.js","names":["_Context","require","_Function","Effect","_interopRequireWildcard","Layer","Queue","Ref","_isomorphicWs","_interopRequireDefault","Schedule","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","Reconnect","exports","Symbol","WebSocketError","reason","error","_tag","constructor","WebSocketCloseError","code","isReconnect","socket","urlRef","pipe","map","_","WebSocket","acquireRelease","ws","sync","removeAllListeners","close","offer","queue","async","resume","addEventListener","message","unsafeOffer","data","cause","fail","waitForOpen","timeout","timeoutFail","suspend","readyState","OPEN","unit","once","onTimeout","duration","send","take","tap","logTrace","failSync","forever","annotateLogs","wsImpl","connect","onConnecting","openTimeout","reconnectWhen","takeOutbound","gen","scope","unbounded","shutdown","package","module","method","run","zipRight","flatMap","all","concurrency","discard","scoped","retry","while","identity","catchAllCause","logError","repeat","exponential","union","spaced","forkIn","WS","GenericTag","WSLive","succeed"],"sources":["../src/DiscordGateway/WS.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,104 +0,0 @@
1
- import { GenericTag } from "effect/Context";
2
- import { identity, pipe } from "effect/Function";
3
- import * as Effect from "effect/Effect";
4
- import * as Layer from "effect/Layer";
5
- import * as Queue from "effect/Queue";
6
- import * as Ref from "effect/Ref";
7
- import WebSocket from "isomorphic-ws";
8
- import * as Schedule from "effect/Schedule";
9
- export const Reconnect = /*#__PURE__*/Symbol();
10
- export class WebSocketError {
11
- reason;
12
- error;
13
- _tag = "WebSocketError";
14
- constructor(reason, error) {
15
- this.reason = reason;
16
- this.error = error;
17
- }
18
- }
19
- export class WebSocketCloseError {
20
- code;
21
- reason;
22
- _tag = "WebSocketCloseError";
23
- constructor(code, reason) {
24
- this.code = code;
25
- this.reason = reason;
26
- }
27
- }
28
- const isReconnect = e => e._tag === "WebSocketCloseError" && e.code === 1012;
29
- const socket = urlRef => pipe(Ref.get(urlRef), Effect.map(_ => new WebSocket(_)), Effect.acquireRelease(ws => Effect.sync(() => {
30
- // eslint-disable-next-line no-extra-semi
31
- ;
32
- ws.removeAllListeners?.();
33
- ws.close();
34
- })));
35
- const offer = (ws, queue) => Effect.async(resume => {
36
- ws.addEventListener("message", message => {
37
- Queue.unsafeOffer(queue, message.data);
38
- });
39
- ws.addEventListener("error", cause => {
40
- resume(Effect.fail(new WebSocketError("error", cause)));
41
- });
42
- ws.addEventListener("close", e => {
43
- resume(Effect.fail(new WebSocketCloseError(e.code, e.reason)));
44
- });
45
- });
46
- const waitForOpen = (ws, timeout) => Effect.timeoutFail(Effect.suspend(() => {
47
- if (ws.readyState === WebSocket.OPEN) {
48
- return Effect.unit;
49
- }
50
- return Effect.async(resume => {
51
- ws.addEventListener("open", () => resume(Effect.unit), {
52
- once: true
53
- });
54
- });
55
- }), {
56
- onTimeout: () => new WebSocketError("open-timeout"),
57
- duration: timeout
58
- });
59
- const send = (ws, take) => pipe(take, Effect.tap(data => Effect.logTrace(data)), Effect.tap(data => {
60
- if (data === Reconnect) {
61
- return Effect.failSync(() => {
62
- ws.close(1012, "reconnecting");
63
- return new WebSocketCloseError(1012, "reconnecting");
64
- });
65
- }
66
- return Effect.sync(() => {
67
- ws.send(data);
68
- });
69
- }), Effect.forever, Effect.annotateLogs("method", "send"));
70
- const wsImpl = {
71
- connect: ({
72
- onConnecting = Effect.unit,
73
- openTimeout = "3 seconds",
74
- reconnectWhen,
75
- takeOutbound,
76
- urlRef
77
- }) => Effect.gen(function* (_) {
78
- const scope = yield* _(Effect.scope);
79
- const queue = yield* _(Effect.acquireRelease(Queue.unbounded(), Queue.shutdown));
80
- const take = Effect.annotateLogs(Effect.tap(Queue.take(queue), data => Effect.logTrace(data)), {
81
- package: "dfx",
82
- module: "DiscordGateway/WS",
83
- method: "take"
84
- });
85
- const run = pipe(onConnecting, Effect.zipRight(socket(urlRef)), Effect.flatMap(ws => Effect.all([offer(ws, queue), Effect.zipRight(waitForOpen(ws, openTimeout), send(ws, takeOutbound))], {
86
- concurrency: "unbounded",
87
- discard: true
88
- })), Effect.scoped, Effect.retry({
89
- while: isReconnect
90
- }), reconnectWhen ? Effect.retry({
91
- while: reconnectWhen
92
- }) : identity, Effect.catchAllCause(Effect.logError), Effect.repeat(Schedule.exponential("500 millis").pipe(Schedule.union(Schedule.spaced("30 seconds")))), Effect.forkIn(scope));
93
- yield* _(run);
94
- return {
95
- take
96
- };
97
- }).pipe(Effect.annotateLogs({
98
- package: "dfx",
99
- module: "DiscordGateway/WS"
100
- }))
101
- };
102
- export const WS = /*#__PURE__*/GenericTag("dfx/DiscordGateway/WS");
103
- export const WSLive = /*#__PURE__*/Layer.succeed(WS, wsImpl);
104
- //# sourceMappingURL=WS.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WS.mjs","names":["GenericTag","identity","pipe","Effect","Layer","Queue","Ref","WebSocket","Schedule","Reconnect","Symbol","WebSocketError","reason","error","_tag","constructor","WebSocketCloseError","code","isReconnect","e","socket","urlRef","get","map","_","acquireRelease","ws","sync","removeAllListeners","close","offer","queue","async","resume","addEventListener","message","unsafeOffer","data","cause","fail","waitForOpen","timeout","timeoutFail","suspend","readyState","OPEN","unit","once","onTimeout","duration","send","take","tap","logTrace","failSync","forever","annotateLogs","wsImpl","connect","onConnecting","openTimeout","reconnectWhen","takeOutbound","gen","scope","unbounded","shutdown","package","module","method","run","zipRight","flatMap","all","concurrency","discard","scoped","retry","while","catchAllCause","logError","repeat","exponential","union","spaced","forkIn","WS","WSLive","succeed"],"sources":["../../src/DiscordGateway/WS.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}