diff --git a/package.json b/package.json index 4d04625..6e530b4 100644 --- a/package.json +++ b/package.json @@ -17,15 +17,15 @@ "license": "ISC", "devDependencies": { "@octokit/types": "^11.1.0", - "@types/node": "^20.4.7", + "@types/node": "^20.4.9", "@types/prettier": "^3.0.0", "tsc-watch": "^6.0.4", "typescript": "^5.1.6" }, "dependencies": { - "@effect-http/client": "^0.40.0", + "@effect/platform-node": "^0.11.4", "@effect/schema": "^0.33.0", - "dfx": "^0.61.0", + "dfx": "^0.61.1", "dotenv": "^16.3.1", "effect": "2.0.0-next.24", "effect-schema-class": "^0.13.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4ad56dd..2ba8938 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,15 +5,15 @@ settings: excludeLinksFromLockfile: false dependencies: - '@effect-http/client': - specifier: ^0.40.0 - version: 0.40.0(@effect/data@0.17.1)(@effect/io@0.38.0)(@effect/schema@0.33.0)(@effect/stream@0.34.0) + '@effect/platform-node': + specifier: ^0.11.4 + version: 0.11.4(@effect/data@0.17.1)(@effect/io@0.38.0)(@effect/platform@0.11.4)(@effect/stream@0.34.0) '@effect/schema': specifier: ^0.33.0 version: 0.33.0(@effect/data@0.17.1)(@effect/io@0.38.0) dfx: - specifier: ^0.61.0 - version: 0.61.0(@effect-http/client@0.40.0)(@effect/data@0.17.1)(@effect/io@0.38.0)(@effect/stream@0.34.0) + specifier: ^0.61.1 + version: 0.61.1(@effect/data@0.17.1)(@effect/io@0.38.0)(@effect/platform@0.11.4)(@effect/stream@0.34.0) dotenv: specifier: ^16.3.1 version: 16.3.1 @@ -44,8 +44,8 @@ devDependencies: specifier: ^11.1.0 version: 11.1.0 '@types/node': - specifier: ^20.4.7 - version: 20.4.7 + specifier: ^20.4.9 + version: 20.4.9 '@types/prettier': specifier: ^3.0.0 version: 3.0.0 @@ -58,21 +58,6 @@ devDependencies: packages: - /@effect-http/client@0.40.0(@effect/data@0.17.1)(@effect/io@0.38.0)(@effect/schema@0.33.0)(@effect/stream@0.34.0): - resolution: {integrity: sha512-mJE76tYe37O/NNNMCSfXonhDYBzrviPhtj07PPIYT3zzkZTWdKBZdF4NM6F6otk8WPPwhIN5j1gSvTELOBwNVA==} - requiresBuild: true - peerDependencies: - '@effect/data': ^0.17.1 - '@effect/io': ^0.38.0 - '@effect/schema': ^0.33.0 - '@effect/stream': ^0.34.0 - dependencies: - '@effect/data': 0.17.1 - '@effect/io': 0.38.0(@effect/data@0.17.1) - '@effect/schema': 0.33.0(@effect/data@0.17.1)(@effect/io@0.38.0) - '@effect/stream': 0.34.0(@effect/data@0.17.1)(@effect/io@0.38.0) - dev: false - /@effect/data@0.17.1: resolution: {integrity: sha512-QCYkLE5Y5Dm5Yax5R3GmW4ZIgTx7W+kSZ7yq5eqQ/mFWa8i4yxbLuu8cudqzdeZtRtTGZKlhDxfFfgVtMywXJg==} dev: false @@ -95,6 +80,35 @@ packages: '@effect/schema': 0.33.0(@effect/data@0.17.1)(@effect/io@0.38.0) dev: false + /@effect/platform-node@0.11.4(@effect/data@0.17.1)(@effect/io@0.38.0)(@effect/platform@0.11.4)(@effect/stream@0.34.0): + resolution: {integrity: sha512-CVgwmUzprldLxJLYFuYp4cmBtTg4fZ7nqroMfVFo4uOdWepbMPkZ2s8ceFxhijNDRIP3FLXfdsll7l2Q7beR1A==} + peerDependencies: + '@effect/data': ^0.17.1 + '@effect/io': ^0.38.0 + '@effect/platform': ^0.11.4 + '@effect/stream': ^0.34.0 + dependencies: + '@effect/data': 0.17.1 + '@effect/io': 0.38.0(@effect/data@0.17.1) + '@effect/platform': 0.11.4(@effect/data@0.17.1)(@effect/io@0.38.0)(@effect/schema@0.33.0)(@effect/stream@0.34.0) + '@effect/stream': 0.34.0(@effect/data@0.17.1)(@effect/io@0.38.0) + dev: false + + /@effect/platform@0.11.4(@effect/data@0.17.1)(@effect/io@0.38.0)(@effect/schema@0.33.0)(@effect/stream@0.34.0): + resolution: {integrity: sha512-qCopvlwlSKhMKaQn2X7RNQfjGHvtKCiYVyaWwaiWhDCsjxcQWu3Jm+oluydUI7526lTyfYtU6F1Yx8GxIGa9cQ==} + peerDependencies: + '@effect/data': ^0.17.1 + '@effect/io': ^0.38.0 + '@effect/schema': ^0.33.0 + '@effect/stream': ^0.34.0 + dependencies: + '@effect/data': 0.17.1 + '@effect/io': 0.38.0(@effect/data@0.17.1) + '@effect/schema': 0.33.0(@effect/data@0.17.1)(@effect/io@0.38.0) + '@effect/stream': 0.34.0(@effect/data@0.17.1)(@effect/io@0.38.0) + path-browserify: 1.0.1 + dev: false + /@effect/schema@0.33.0(@effect/data@0.17.1)(@effect/io@0.38.0): resolution: {integrity: sha512-K/IDp8aZpqqy2IBydnRtjNF7Sg/qZjiR5t+OANDZ2yOmTHRgtvWM4fwYV5kGYzEBZaBZEqUGjzj4KOqbsQhCEw==} peerDependencies: @@ -370,7 +384,7 @@ packages: resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} dependencies: '@types/connect': 3.4.35 - '@types/node': 20.4.7 + '@types/node': 20.4.9 dev: false optional: true @@ -381,14 +395,14 @@ packages: /@types/connect@3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: - '@types/node': 20.4.7 + '@types/node': 20.4.9 dev: false optional: true /@types/express-serve-static-core@4.17.35: resolution: {integrity: sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==} dependencies: - '@types/node': 20.4.7 + '@types/node': 20.4.9 '@types/qs': 6.9.7 '@types/range-parser': 1.2.4 '@types/send': 0.17.1 @@ -413,7 +427,7 @@ packages: /@types/jsonwebtoken@9.0.2: resolution: {integrity: sha512-drE6uz7QBKq1fYqqoFKTDRdFCPHd5TCub75BM+D+cMx7NU9hUz7SESLfC2fSCXVFMO5Yj8sOWHuGqPgjc+fz0Q==} dependencies: - '@types/node': 20.4.7 + '@types/node': 20.4.9 dev: false /@types/mime@1.3.2: @@ -426,8 +440,8 @@ packages: dev: false optional: true - /@types/node@20.4.7: - resolution: {integrity: sha512-bUBrPjEry2QUTsnuEjzjbS7voGWCc30W0qzgMf90GPeDGFRakvrz47ju+oqDAKCXLUCe39u57/ORMl/O/04/9g==} + /@types/node@20.4.9: + resolution: {integrity: sha512-8e2HYcg7ohnTUbHk8focoklEQYvemQmu9M/f43DZVx43kHn0tE3BY/6gSDxS7k0SprtS0NHvj+L80cGLnoOUcQ==} /@types/prettier@3.0.0: resolution: {integrity: sha512-mFMBfMOz8QxhYVbuINtswBp9VL2b4Y0QqYHwqLz3YbgtfAcat2Dl6Y1o4e22S/OVE6Ebl9m7wWiMT2lSbAs1wA==} @@ -450,7 +464,7 @@ packages: resolution: {integrity: sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==} dependencies: '@types/mime': 1.3.2 - '@types/node': 20.4.7 + '@types/node': 20.4.9 dev: false optional: true @@ -459,7 +473,7 @@ packages: dependencies: '@types/http-errors': 2.0.1 '@types/mime': 3.0.1 - '@types/node': 20.4.7 + '@types/node': 20.4.9 dev: false optional: true @@ -537,17 +551,17 @@ packages: resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} dev: false - /dfx@0.61.0(@effect-http/client@0.40.0)(@effect/data@0.17.1)(@effect/io@0.38.0)(@effect/stream@0.34.0): - resolution: {integrity: sha512-85FZDHPUmy0HISm3BVwGFI6341jg9Am7ePsh3xKQIpPPPPaDmNXSEYNekDD6WgNBbIEj2gpmOMpdbLq4ScGuIQ==} + /dfx@0.61.1(@effect/data@0.17.1)(@effect/io@0.38.0)(@effect/platform@0.11.4)(@effect/stream@0.34.0): + resolution: {integrity: sha512-9U5wpqPHbdHIV16vRdNe2RXABpDezIUH4yokQu8iDEBE2dPJzMAMToNu26ygTdccStpnlTI8yXuIgvR/eKeuWg==} peerDependencies: - '@effect-http/client': ^0.40.0 '@effect/data': ^0.17.1 '@effect/io': ^0.38.0 + '@effect/platform': ^0.11.1 '@effect/stream': ^0.34.0 dependencies: - '@effect-http/client': 0.40.0(@effect/data@0.17.1)(@effect/io@0.38.0)(@effect/schema@0.33.0)(@effect/stream@0.34.0) '@effect/data': 0.17.1 '@effect/io': 0.38.0(@effect/data@0.17.1) + '@effect/platform': 0.11.4(@effect/data@0.17.1)(@effect/io@0.38.0)(@effect/schema@0.33.0)(@effect/stream@0.34.0) '@effect/stream': 0.34.0(@effect/data@0.17.1)(@effect/io@0.38.0) isomorphic-ws: 5.0.0(ws@8.13.0) ws: 8.13.0(bufferutil@4.0.7)(utf-8-validate@6.0.3) @@ -784,6 +798,10 @@ packages: - debug dev: false + /path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + dev: false + /path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} diff --git a/src/DocsLookup.ts b/src/DocsLookup.ts index e16da1a..7663e5b 100644 --- a/src/DocsLookup.ts +++ b/src/DocsLookup.ts @@ -26,15 +26,17 @@ const docUrls = [ const make = Effect.gen(function* (_) { const registry = yield* _(InteractionsRegistry) + const docsClient = pipe( + Http.client.fetchOk(), + Http.client.retry(retryPolicy), + Http.client.mapEffect(_ => _.json), + Http.client.map(_ => Object.values(_ as object)), + Http.client.mapEffect(decodeEntries), + Http.client.map(entries => entries.filter(_ => _.isSignature)), + ) + const loadDocs = (baseUrl: string) => - pipe( - Http.get(`${baseUrl}/assets/js/search-data.json`), - Http.fetchJson(), - Effect.retry(retryPolicy), - Effect.map(_ => Object.values(_ as object)), - Effect.flatMap(decodeEntries), - Effect.map(entries => entries.filter(_ => _.isSignature)), - ) + docsClient(Http.request.get(`${baseUrl}/assets/js/search-data.json`)) const allDocs = yield* _( Effect.forEach(docUrls, loadDocs, { concurrency: "unbounded" }), diff --git a/src/Summarizer.ts b/src/Summarizer.ts index b26fa11..9460708 100644 --- a/src/Summarizer.ts +++ b/src/Summarizer.ts @@ -1,7 +1,8 @@ import { ChannelsCache, ChannelsCacheLive } from "bot/ChannelsCache" import { MemberCache, MemberCacheLive } from "bot/MemberCache" import { Messages, MessagesLive } from "bot/Messages" -import { Discord, DiscordREST, Http, Ix } from "dfx" +import { Http } from "bot/_common" +import { Discord, DiscordREST, Ix } from "dfx" import { InteractionsRegistry, InteractionsRegistryLive } from "dfx/gateway" import { Cause, diff --git a/src/_common.ts b/src/_common.ts index d9abf8b..a8bacaa 100644 --- a/src/_common.ts +++ b/src/_common.ts @@ -1,4 +1,4 @@ -export * as Http from "@effect-http/client" +export * as Http from "@effect/platform-node/HttpClient" export * as Schema from "@effect/schema/Schema" export { Discord } from "dfx" export { SchemaClass, SchemaClassExtends } from "effect-schema-class"