diff --git a/package-lock.json b/package-lock.json index 44bbcbb..2043820 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31,7 +31,7 @@ "get-relative-path": "^1.0.2", "get-stream": "^6.0.1", "h3": "^1.12.0", - "heatsync": "^2.7.0", + "heatsync": "^2.6.0", "lru-cache": "^10.4.3", "minimist": "^1.2.8", "prettier-bytes": "^1.0.4", @@ -1868,15 +1868,12 @@ } }, "node_modules/heatsync": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/heatsync/-/heatsync-2.7.0.tgz", - "integrity": "sha512-9ILOyyHFZKfIrqBmNz+fwKd+zupFE2UqFZ9k4FjRcMjNDp7GtW+K9n2htXLy3CwdDTRd6NV6BPxKvU51UqKIJA==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/heatsync/-/heatsync-2.6.0.tgz", + "integrity": "sha512-UfemOt4Kg1hvhDj/Zz8sYa1pF73ul+tF19MYNisYoOymXoTo4iCZv2BDdCMFE1xvZ6YFjcMoekb/aeBU1uqFjQ==", "license": "MIT", "dependencies": { "backtracker": "^4.0.0" - }, - "engines": { - "node": ">=14.6.0" } }, "node_modules/html-es6cape": { diff --git a/package.json b/package.json index 83dc636..1ee12ad 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "get-relative-path": "^1.0.2", "get-stream": "^6.0.1", "h3": "^1.12.0", - "heatsync": "^2.7.0", + "heatsync": "^2.6.0", "lru-cache": "^10.4.3", "minimist": "^1.2.8", "prettier-bytes": "^1.0.4", diff --git a/src/d2m/actions/set-presence.js b/src/d2m/actions/set-presence.js index d16835e..a9f072a 100644 --- a/src/d2m/actions/set-presence.js +++ b/src/d2m/actions/set-presence.js @@ -38,14 +38,13 @@ const guildPresenceSetting = new class { } } -class Presence extends sync.ReloadableClass { +class Presence { /** @type {string} */ userID /** @type {{presence: "online" | "offline" | "unavailable", status_msg?: string}} */ data /** @private @type {?string | undefined} */ mxid /** @private @type {number} */ delay = Math.random() constructor(userID) { - super() this.userID = userID } @@ -67,13 +66,12 @@ class Presence extends sync.ReloadableClass { // This random delay will space them out over the whole 28 second cycle. setTimeout(() => { api.setPresence(this.data, mxid).catch(() => {}) - }, this.delay * presenceLoopInterval).unref() + }, this.delay) } } -sync.reloadClassMethods(Presence) const presenceTracker = new class { - /** @private @type {Map} userID -> Presence */ presences = sync.remember(() => new Map()) + /** @private @type {Map} userID -> Presence */ presences constructor() { sync.addTemporaryInterval(() => this.syncPresences(), presenceLoopInterval) diff --git a/src/matrix/mreq.js b/src/matrix/mreq.js index 8d0d69d..feb13b2 100644 --- a/src/matrix/mreq.js +++ b/src/matrix/mreq.js @@ -2,7 +2,6 @@ const mixin = require("@cloudrac3r/mixin-deep") const stream = require("stream") -const {ReadableStream} = require("stream/web") const getStream = require("get-stream") const {reg, writeRegistration} = require("./read-registration.js") @@ -31,18 +30,18 @@ async function mreq(method, url, body, extra = {}) { } else if (body instanceof stream.Readable && reg.ooye.content_length_workaround) { body = await getStream.buffer(body) } else if (body instanceof ReadableStream && reg.ooye.content_length_workaround) { - body = await stream.consumers.buffer(stream.Readable.fromWeb(body)) + body = await stream.consumers.buffer(body) } /** @type {RequestInit} */ - const opts = mixin({ + const opts = { method, body, headers: { Authorization: `Bearer ${reg.as_token}` }, - ...(body && {duplex: "half"}), // https://github.com/octokit/request.js/pull/571/files - }, extra) + ...extra + } // console.log(baseUrl + url, opts) const res = await fetch(baseUrl + url, opts) const root = await res.json() diff --git a/src/stdin.js b/src/stdin.js index 6c49bdd..9051395 100644 --- a/src/stdin.js +++ b/src/stdin.js @@ -19,7 +19,6 @@ const eventDispatcher = sync.require("./d2m/event-dispatcher") const updatePins = sync.require("./d2m/actions/update-pins") const speedbump = sync.require("./d2m/actions/speedbump") const ks = sync.require("./matrix/kstate") -const setPresence = sync.require("./d2m/actions/set-presence") const guildID = "112760669178241024" const extraContext = {} diff --git a/src/web/server.test.js b/src/web/server.test.js index afcb8b0..7310166 100644 --- a/src/web/server.test.js +++ b/src/web/server.test.js @@ -1,6 +1,5 @@ // @ts-check -const {ReadableStream} = require("stream/web") const {test} = require("supertape") const {router} = require("../../test/web") const assert = require("assert").strict