@zoreal/oauth2-react 0.2.17 → 0.2.18
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.
- package/dist/index.cjs +22 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +22 -4
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -5,7 +5,7 @@ import { createContext, useContext, useMemo, useState as useState2 } from "react
|
|
|
5
5
|
|
|
6
6
|
// src/wire.ts
|
|
7
7
|
var WIRE_VERSION = 1;
|
|
8
|
-
var SDK_VERSION = "0.2.
|
|
8
|
+
var SDK_VERSION = "0.2.18";
|
|
9
9
|
var DEFAULT_ISSUER = "https://id.zoreal.com";
|
|
10
10
|
var POLL_INTERVAL_MS = 2e3;
|
|
11
11
|
var POLL_INTERVAL_ENROLLING_MS = 5e3;
|
|
@@ -1691,6 +1691,8 @@ var sleep = (ms, signal) => new Promise((resolve, reject) => {
|
|
|
1691
1691
|
}, ms);
|
|
1692
1692
|
signal?.addEventListener("abort", onAbort, { once: true });
|
|
1693
1693
|
});
|
|
1694
|
+
var SETTLE_MS = 1500;
|
|
1695
|
+
var NETWORK_FAILURES_TOLERATED = 4;
|
|
1694
1696
|
async function pollUntilApproved(issuer, requestId, onState, signal, options = {}) {
|
|
1695
1697
|
let last = { status: "pending" };
|
|
1696
1698
|
const emit = (state) => {
|
|
@@ -1719,11 +1721,27 @@ async function pollUntilApproved(issuer, requestId, onState, signal, options = {
|
|
|
1719
1721
|
})().catch(() => {
|
|
1720
1722
|
});
|
|
1721
1723
|
};
|
|
1724
|
+
const settlingUntil = options.tolerateUnknownUntil ?? 0;
|
|
1725
|
+
let networkFailures = 0;
|
|
1722
1726
|
try {
|
|
1727
|
+
if (settlingUntil > Date.now()) await sleep(SETTLE_MS, signal);
|
|
1723
1728
|
for (; ; ) {
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1729
|
+
let response;
|
|
1730
|
+
try {
|
|
1731
|
+
response = await fetch(`${issuer}/pair/${encodeURIComponent(requestId)}/status`, {
|
|
1732
|
+
signal
|
|
1733
|
+
});
|
|
1734
|
+
networkFailures = 0;
|
|
1735
|
+
} catch (e) {
|
|
1736
|
+
if (e instanceof DOMException && e.name === "AbortError") throw e;
|
|
1737
|
+
networkFailures += 1;
|
|
1738
|
+
if (settlingUntil > Date.now() || networkFailures <= NETWORK_FAILURES_TOLERATED) {
|
|
1739
|
+
emit({ ...last, status: last.status });
|
|
1740
|
+
await sleep(POLL_INTERVAL_MS, signal);
|
|
1741
|
+
continue;
|
|
1742
|
+
}
|
|
1743
|
+
throw e;
|
|
1744
|
+
}
|
|
1727
1745
|
const body = await parseJson(response);
|
|
1728
1746
|
if (response.status === 404 && (options.tolerateUnknownUntil ?? 0) > Date.now()) {
|
|
1729
1747
|
emit({ status: "pending" });
|