@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.cjs
CHANGED
|
@@ -41,7 +41,7 @@ var import_react2 = require("react");
|
|
|
41
41
|
|
|
42
42
|
// src/wire.ts
|
|
43
43
|
var WIRE_VERSION = 1;
|
|
44
|
-
var SDK_VERSION = "0.2.
|
|
44
|
+
var SDK_VERSION = "0.2.18";
|
|
45
45
|
var DEFAULT_ISSUER = "https://id.zoreal.com";
|
|
46
46
|
var POLL_INTERVAL_MS = 2e3;
|
|
47
47
|
var POLL_INTERVAL_ENROLLING_MS = 5e3;
|
|
@@ -1727,6 +1727,8 @@ var sleep = (ms, signal) => new Promise((resolve, reject) => {
|
|
|
1727
1727
|
}, ms);
|
|
1728
1728
|
signal?.addEventListener("abort", onAbort, { once: true });
|
|
1729
1729
|
});
|
|
1730
|
+
var SETTLE_MS = 1500;
|
|
1731
|
+
var NETWORK_FAILURES_TOLERATED = 4;
|
|
1730
1732
|
async function pollUntilApproved(issuer, requestId, onState, signal, options = {}) {
|
|
1731
1733
|
let last = { status: "pending" };
|
|
1732
1734
|
const emit = (state) => {
|
|
@@ -1755,11 +1757,27 @@ async function pollUntilApproved(issuer, requestId, onState, signal, options = {
|
|
|
1755
1757
|
})().catch(() => {
|
|
1756
1758
|
});
|
|
1757
1759
|
};
|
|
1760
|
+
const settlingUntil = options.tolerateUnknownUntil ?? 0;
|
|
1761
|
+
let networkFailures = 0;
|
|
1758
1762
|
try {
|
|
1763
|
+
if (settlingUntil > Date.now()) await sleep(SETTLE_MS, signal);
|
|
1759
1764
|
for (; ; ) {
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1765
|
+
let response;
|
|
1766
|
+
try {
|
|
1767
|
+
response = await fetch(`${issuer}/pair/${encodeURIComponent(requestId)}/status`, {
|
|
1768
|
+
signal
|
|
1769
|
+
});
|
|
1770
|
+
networkFailures = 0;
|
|
1771
|
+
} catch (e) {
|
|
1772
|
+
if (e instanceof DOMException && e.name === "AbortError") throw e;
|
|
1773
|
+
networkFailures += 1;
|
|
1774
|
+
if (settlingUntil > Date.now() || networkFailures <= NETWORK_FAILURES_TOLERATED) {
|
|
1775
|
+
emit({ ...last, status: last.status });
|
|
1776
|
+
await sleep(POLL_INTERVAL_MS, signal);
|
|
1777
|
+
continue;
|
|
1778
|
+
}
|
|
1779
|
+
throw e;
|
|
1780
|
+
}
|
|
1763
1781
|
const body = await parseJson(response);
|
|
1764
1782
|
if (response.status === 404 && (options.tolerateUnknownUntil ?? 0) > Date.now()) {
|
|
1765
1783
|
emit({ status: "pending" });
|