From 9d681226b432c989e7ede05fbaab82d3b2476f2f Mon Sep 17 00:00:00 2001 From: Nullptrderef Date: Sun, 21 Apr 2024 11:26:47 +0200 Subject: core should use builtin fetch, not this weird httplib impl that only really works on node --- packages/anastasis-core/src/index.ts | 39 +++++++++++++++-------------------- packages/anastasis-core/tsconfig.json | 2 +- 2 files changed, 18 insertions(+), 23 deletions(-) (limited to 'packages/anastasis-core') diff --git a/packages/anastasis-core/src/index.ts b/packages/anastasis-core/src/index.ts index cbb94a5d4..15e06cb85 100644 --- a/packages/anastasis-core/src/index.ts +++ b/packages/anastasis-core/src/index.ts @@ -43,10 +43,7 @@ import { URL, j2s, } from "@gnu-taler/taler-util"; -import { - HttpResponse, - createPlatformHttpLib, -} from "@gnu-taler/taler-util/http"; +import { HttpResponse } from "@gnu-taler/taler-util/http"; import { anastasisData } from "./anastasis-data.js"; import { codecForChallengeInstructionMessage, @@ -140,10 +137,6 @@ export * from "./reducer-types.js"; export * as validators from "./validators.js"; export * from "./challenge-feedback-types.js"; -const httpLib = createPlatformHttpLib({ - enableThrottling: false, -}); - const logger = new Logger("anastasis-core:index.ts"); const ANASTASIS_HTTP_HEADER_POLICY_META_DATA = "Anastasis-Policy-Meta-Data"; @@ -286,17 +279,19 @@ async function getProviderInfo( providerBaseUrl: string, ): Promise { // FIXME: Use a reasonable timeout here. - let resp: HttpResponse; + console.log("hi"); + + let resp: Response; try { - resp = await httpLib.fetch(new URL("config", providerBaseUrl).href); + resp = await fetch(new URL("config", providerBaseUrl).href); } catch (e) { return { status: "error", code: TalerErrorCode.ANASTASIS_REDUCER_NETWORK_FAILED, - hint: "request to provider failed", + hint: "request to anastasis provider failed", }; } - if (resp.status !== 200) { + if (resp.status >= 400) { return { status: "error", code: TalerErrorCode.ANASTASIS_REDUCER_NETWORK_FAILED, @@ -558,7 +553,7 @@ async function uploadSecret( // FIXME: Get this from the params reqUrl.searchParams.set("timeout_ms", "500"); } - const resp = await httpLib.fetch(reqUrl.href, { + const resp = await fetch(reqUrl.href, { method: "POST", headers: { "content-type": "application/json", @@ -648,7 +643,7 @@ async function uploadSecret( reqUrl.searchParams.set("timeout_ms", "500"); } logger.info(`uploading policy to ${prov.provider_url}`); - const resp = await httpLib.fetch(reqUrl.href, { + const resp = await fetch(reqUrl.href, { method: "POST", headers: { "Anastasis-Policy-Signature": encodeCrock(sig), @@ -759,14 +754,14 @@ async function downloadPolicyFromProvider( const acctKeypair = accountKeypairDerive(userId); const reqUrl = new URL(`policy/${acctKeypair.pub}`, providerUrl); reqUrl.searchParams.set("version", `${version}`); - const resp = await httpLib.fetch(reqUrl.href); + const resp = await fetch(reqUrl.href); if (resp.status !== 200) { logger.info( `Could not download policy from provider ${providerUrl}, status ${resp.status}`, ); return undefined; } - const body = await resp.bytes(); + const body = await resp.arrayBuffer(); const bodyDecrypted = await decryptRecoveryDocument( userId, encodeCrock(body), @@ -983,10 +978,10 @@ async function requestTruth( const hresp = await getResponseHash(truth, solveRequest); - let resp: HttpResponse; + let resp: Response; try { - resp = await httpLib.fetch(url.href, { + resp = await fetch(url.href, { method: "POST", headers: { Accept: "application/json", @@ -1024,7 +1019,7 @@ async function requestTruth( truth.provider_salt, ); - const respBody = new Uint8Array(await resp.bytes()); + const respBody = new Uint8Array(await resp.arrayBuffer()); const keyShare = await decryptKeyShare( encodeCrock(respBody), userId, @@ -1140,10 +1135,10 @@ async function selectChallenge( } } - let resp: HttpResponse; + let resp: Response; try { - resp = await httpLib.fetch(url.href, { + resp = await fetch(url.href, { method: "POST", headers: { Accept: "application/json", @@ -1861,7 +1856,7 @@ export async function discoverPolicies( ); const acctKeypair = accountKeypairDerive(userId); const reqUrl = new URL(`policy/${acctKeypair.pub}/meta`, providerUrl); - const resp = await httpLib.fetch(reqUrl.href); + const resp = await fetch(reqUrl.href); if (resp.status !== 200) { logger.warn(`Could not fetch policy metadate from ${reqUrl.href}`); continue; diff --git a/packages/anastasis-core/tsconfig.json b/packages/anastasis-core/tsconfig.json index a12f2e641..e463201e7 100644 --- a/packages/anastasis-core/tsconfig.json +++ b/packages/anastasis-core/tsconfig.json @@ -6,7 +6,7 @@ "module": "Node16", "moduleResolution": "Node16", "sourceMap": true, - "lib": ["ES2020"], + "lib": ["ES2020", "DOM"], "noImplicitReturns": true, "noFallthroughCasesInSwitch": true, "strict": true, -- cgit v1.2.3