aboutsummaryrefslogtreecommitdiff
path: root/packages/anastasis-core
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2023-06-29 11:57:33 +0200
committerFlorian Dold <florian@dold.me>2023-06-29 11:57:40 +0200
commit585fe6b996678afab44cff9fbd9c12dda7cbb5e0 (patch)
tree7cc4d86a4ad4e3a62221d1fe754206f790ab427c /packages/anastasis-core
parent4853f796776aab39b5cd5b652df219c5092b0f46 (diff)
downloadwallet-core-585fe6b996678afab44cff9fbd9c12dda7cbb5e0.tar.xz
anastasis-core: use http client from taler-util
Diffstat (limited to 'packages/anastasis-core')
-rw-r--r--packages/anastasis-core/package.json2
-rw-r--r--packages/anastasis-core/src/index.ts33
-rw-r--r--packages/anastasis-core/tsconfig.json2
3 files changed, 19 insertions, 18 deletions
diff --git a/packages/anastasis-core/package.json b/packages/anastasis-core/package.json
index 92957b885..d45d28129 100644
--- a/packages/anastasis-core/package.json
+++ b/packages/anastasis-core/package.json
@@ -22,10 +22,8 @@
},
"dependencies": {
"@gnu-taler/taler-util": "workspace:*",
- "fetch-ponyfill": "^7.1.0",
"fflate": "^0.7.4",
"hash-wasm": "^4.9.0",
- "node-fetch": "^3.2.0",
"tslib": "^2.5.3"
},
"ava": {
diff --git a/packages/anastasis-core/src/index.ts b/packages/anastasis-core/src/index.ts
index 5e7397450..88f3bdbe2 100644
--- a/packages/anastasis-core/src/index.ts
+++ b/packages/anastasis-core/src/index.ts
@@ -43,6 +43,7 @@ import {
URL,
j2s,
} from "@gnu-taler/taler-util";
+import { HttpResponse, createPlatformHttpLib } from "@gnu-taler/taler-util/http";
import { anastasisData } from "./anastasis-data.js";
import {
codecForChallengeInstructionMessage,
@@ -96,7 +97,6 @@ import {
AggregatedPolicyMetaInfo,
AuthenticationProviderStatusMap,
} from "./reducer-types.js";
-import fetchPonyfill from "fetch-ponyfill";
import {
accountKeypairDerive,
asOpaque,
@@ -133,12 +133,15 @@ import {
ChallengeFeedbackStatus,
} from "./challenge-feedback-types.js";
-const { fetch } = fetchPonyfill({});
-
export * from "./reducer-types.js";
export * as validators from "./validators.js";
export * from "./challenge-feedback-types.js";
+const httpLib = createPlatformHttpLib({
+ allowHttp: true,
+ enableThrottling: false,
+});
+
const logger = new Logger("anastasis-core:index.ts");
const ANASTASIS_HTTP_HEADER_POLICY_META_DATA = "Anastasis-Policy-Meta-Data";
@@ -281,9 +284,9 @@ async function getProviderInfo(
providerBaseUrl: string,
): Promise<AuthenticationProviderStatus> {
// FIXME: Use a reasonable timeout here.
- let resp: Response;
+ let resp: HttpResponse;
try {
- resp = await fetch(new URL("config", providerBaseUrl).href);
+ resp = await httpLib.fetch(new URL("config", providerBaseUrl).href);
} catch (e) {
return {
status: "error",
@@ -553,7 +556,7 @@ async function uploadSecret(
// FIXME: Get this from the params
reqUrl.searchParams.set("timeout_ms", "500");
}
- const resp = await fetch(reqUrl.href, {
+ const resp = await httpLib.fetch(reqUrl.href, {
method: "POST",
headers: {
"content-type": "application/json",
@@ -643,7 +646,7 @@ async function uploadSecret(
reqUrl.searchParams.set("timeout_ms", "500");
}
logger.info(`uploading policy to ${prov.provider_url}`);
- const resp = await fetch(reqUrl.href, {
+ const resp = await httpLib.fetch(reqUrl.href, {
method: "POST",
headers: {
"Anastasis-Policy-Signature": encodeCrock(sig),
@@ -754,14 +757,14 @@ async function downloadPolicyFromProvider(
const acctKeypair = accountKeypairDerive(userId);
const reqUrl = new URL(`policy/${acctKeypair.pub}`, providerUrl);
reqUrl.searchParams.set("version", `${version}`);
- const resp = await fetch(reqUrl.href);
+ const resp = await httpLib.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.arrayBuffer();
+ const body = await resp.bytes();
const bodyDecrypted = await decryptRecoveryDocument(
userId,
encodeCrock(body),
@@ -978,10 +981,10 @@ async function requestTruth(
const hresp = await getResponseHash(truth, solveRequest);
- let resp: Response;
+ let resp: HttpResponse;
try {
- resp = await fetch(url.href, {
+ resp = await httpLib.fetch(url.href, {
method: "POST",
headers: {
Accept: "application/json",
@@ -1019,7 +1022,7 @@ async function requestTruth(
truth.provider_salt,
);
- const respBody = new Uint8Array(await resp.arrayBuffer());
+ const respBody = new Uint8Array(await resp.bytes());
const keyShare = await decryptKeyShare(
encodeCrock(respBody),
userId,
@@ -1135,10 +1138,10 @@ async function selectChallenge(
}
}
- let resp: Response;
+ let resp: HttpResponse;
try {
- resp = await fetch(url.href, {
+ resp = await httpLib.fetch(url.href, {
method: "POST",
headers: {
Accept: "application/json",
@@ -1856,7 +1859,7 @@ export async function discoverPolicies(
);
const acctKeypair = accountKeypairDerive(userId);
const reqUrl = new URL(`policy/${acctKeypair.pub}/meta`, providerUrl);
- const resp = await fetch(reqUrl.href);
+ const resp = await httpLib.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 7cab21017..9d5682b2c 100644
--- a/packages/anastasis-core/tsconfig.json
+++ b/packages/anastasis-core/tsconfig.json
@@ -6,7 +6,7 @@
"module": "ESNext",
"moduleResolution": "Node16",
"sourceMap": true,
- "lib": ["es6", "DOM"],
+ "lib": ["es6"],
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"strict": true,