@worldcoin/idkit 4.0.9 → 4.0.11
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/README.md +2 -0
- package/dist/index.cjs +62 -14
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +64 -16
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { IDKitErrorCodes, IDKit } from '@worldcoin/idkit-core';
|
|
1
|
+
import { IDKitErrorCodes, isInWorldApp, IDKit } from '@worldcoin/idkit-core';
|
|
2
2
|
export { IDKit, IDKitErrorCodes, deviceLegacy, documentLegacy, orbLegacy, secureDocumentLegacy, selfieCheckLegacy, signRequest } from '@worldcoin/idkit-core';
|
|
3
|
-
import { memo, useMemo, useState, useRef,
|
|
3
|
+
import { memo, useMemo, useState, useRef, useCallback, useEffect } from 'react';
|
|
4
4
|
import { createPortal } from 'react-dom';
|
|
5
5
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
6
6
|
import QRCodeUtil from 'qrcode/lib/core/qrcode.js';
|
|
@@ -62,6 +62,7 @@ function toErrorCode(error) {
|
|
|
62
62
|
// src/hooks/useIDKitFlow.ts
|
|
63
63
|
var isDebug = () => typeof window !== "undefined" && window.IDKIT_DEBUG;
|
|
64
64
|
function useIDKitFlow(createFlowHandle, config) {
|
|
65
|
+
const isInWorldApp$1 = useMemo(() => isInWorldApp(), []);
|
|
65
66
|
const [state, setState] = useState(
|
|
66
67
|
createInitialHookState
|
|
67
68
|
);
|
|
@@ -119,14 +120,15 @@ function useIDKitFlow(createFlowHandle, config) {
|
|
|
119
120
|
connectorURI: request.connectorURI,
|
|
120
121
|
requestId: request.requestId
|
|
121
122
|
});
|
|
123
|
+
const connectorURI = isInWorldApp$1 ? null : request.connectorURI;
|
|
122
124
|
setState((prev) => {
|
|
123
|
-
if (prev.connectorURI ===
|
|
125
|
+
if (prev.connectorURI === connectorURI) {
|
|
124
126
|
return prev;
|
|
125
127
|
}
|
|
126
|
-
return { ...prev, connectorURI
|
|
128
|
+
return { ...prev, connectorURI };
|
|
127
129
|
});
|
|
128
130
|
const pollInterval = configRef.current.polling?.interval ?? 1e3;
|
|
129
|
-
const timeout = configRef.current.polling?.timeout ??
|
|
131
|
+
const timeout = configRef.current.polling?.timeout ?? 9e5;
|
|
130
132
|
const startedAt = Date.now();
|
|
131
133
|
while (true) {
|
|
132
134
|
ensureNotAborted(controller.signal);
|
|
@@ -179,7 +181,7 @@ function useIDKitFlow(createFlowHandle, config) {
|
|
|
179
181
|
abortRef.current = null;
|
|
180
182
|
}
|
|
181
183
|
};
|
|
182
|
-
}, [state.isOpen, runId]);
|
|
184
|
+
}, [state.isOpen, runId, isInWorldApp$1]);
|
|
183
185
|
return {
|
|
184
186
|
open,
|
|
185
187
|
reset,
|
|
@@ -190,7 +192,8 @@ function useIDKitFlow(createFlowHandle, config) {
|
|
|
190
192
|
connectorURI: state.connectorURI,
|
|
191
193
|
result: state.result,
|
|
192
194
|
errorCode: state.errorCode,
|
|
193
|
-
isOpen: state.isOpen
|
|
195
|
+
isOpen: state.isOpen,
|
|
196
|
+
isInWorldApp: isInWorldApp$1
|
|
194
197
|
};
|
|
195
198
|
}
|
|
196
199
|
|
|
@@ -203,6 +206,7 @@ function useIDKitRequest(config) {
|
|
|
203
206
|
rp_context: config.rp_context,
|
|
204
207
|
action_description: config.action_description,
|
|
205
208
|
bridge_url: config.bridge_url,
|
|
209
|
+
return_to: config.return_to,
|
|
206
210
|
allow_legacy_proofs: config.allow_legacy_proofs,
|
|
207
211
|
override_connect_base_url: config.override_connect_base_url,
|
|
208
212
|
environment: config.environment
|
|
@@ -1635,7 +1639,8 @@ function getVisualStage(isSuccess, isError, isHostVerifying) {
|
|
|
1635
1639
|
if (isSuccess) return "success";
|
|
1636
1640
|
return "worldid";
|
|
1637
1641
|
}
|
|
1638
|
-
function
|
|
1642
|
+
function IDKitWidgetBase({
|
|
1643
|
+
flow,
|
|
1639
1644
|
open,
|
|
1640
1645
|
onOpenChange,
|
|
1641
1646
|
handleVerify,
|
|
@@ -1643,12 +1648,8 @@ function IDKitRequestWidget({
|
|
|
1643
1648
|
onError,
|
|
1644
1649
|
autoClose = true,
|
|
1645
1650
|
language,
|
|
1646
|
-
|
|
1651
|
+
showSimulatorCallout
|
|
1647
1652
|
}) {
|
|
1648
|
-
if (typeof onSuccess !== "function") {
|
|
1649
|
-
throw new Error("IDKitRequestWidget requires an onSuccess callback.");
|
|
1650
|
-
}
|
|
1651
|
-
const flow = useIDKitRequest(config);
|
|
1652
1653
|
const { open: openFlow, reset: resetFlow } = flow;
|
|
1653
1654
|
const [hostVerifyResult, setHostVerifyResult] = useState(null);
|
|
1654
1655
|
const lastResultRef = useRef(null);
|
|
@@ -1690,13 +1691,31 @@ function IDKitRequestWidget({
|
|
|
1690
1691
|
});
|
|
1691
1692
|
}, [effectiveErrorCode, onError]);
|
|
1692
1693
|
useEffect(() => {
|
|
1693
|
-
if (
|
|
1694
|
+
if (!flow.isInWorldApp || !isHostVerifying || !flow.result || !handleVerify) {
|
|
1695
|
+
return;
|
|
1696
|
+
}
|
|
1697
|
+
let cancelled = false;
|
|
1698
|
+
void Promise.resolve(handleVerify(flow.result)).then(() => {
|
|
1699
|
+
if (!cancelled) setHostVerifyResult("passed");
|
|
1700
|
+
}).catch(() => {
|
|
1701
|
+
if (!cancelled) setHostVerifyResult("failed");
|
|
1702
|
+
});
|
|
1703
|
+
return () => {
|
|
1704
|
+
cancelled = true;
|
|
1705
|
+
};
|
|
1706
|
+
}, [flow.isInWorldApp, isHostVerifying, flow.result, handleVerify]);
|
|
1707
|
+
useEffect(() => {
|
|
1708
|
+
if (flow.isInWorldApp && (isSuccess || isError)) {
|
|
1709
|
+
onOpenChange(false);
|
|
1710
|
+
} else if (isSuccess && autoClose) {
|
|
1694
1711
|
const timer = setTimeout(() => onOpenChange(false), 2500);
|
|
1695
1712
|
return () => clearTimeout(timer);
|
|
1696
1713
|
}
|
|
1697
|
-
}, [isSuccess, autoClose, onOpenChange]);
|
|
1714
|
+
}, [isSuccess, isError, autoClose, onOpenChange, flow.isInWorldApp]);
|
|
1715
|
+
if (flow.isInWorldApp) {
|
|
1716
|
+
return null;
|
|
1717
|
+
}
|
|
1698
1718
|
const stage = getVisualStage(isSuccess, isError, isHostVerifying);
|
|
1699
|
-
const showSimulatorCallout = config.environment === "staging";
|
|
1700
1719
|
return /* @__PURE__ */ jsxs(IDKitModal, { open, onOpenChange, children: [
|
|
1701
1720
|
stage === "worldid" && /* @__PURE__ */ jsx(
|
|
1702
1721
|
WorldIDState,
|
|
@@ -1730,6 +1749,35 @@ function IDKitRequestWidget({
|
|
|
1730
1749
|
)
|
|
1731
1750
|
] });
|
|
1732
1751
|
}
|
|
1752
|
+
function IDKitRequestWidget({
|
|
1753
|
+
open,
|
|
1754
|
+
onOpenChange,
|
|
1755
|
+
handleVerify,
|
|
1756
|
+
onSuccess,
|
|
1757
|
+
onError,
|
|
1758
|
+
autoClose,
|
|
1759
|
+
language,
|
|
1760
|
+
...config
|
|
1761
|
+
}) {
|
|
1762
|
+
if (typeof onSuccess !== "function") {
|
|
1763
|
+
throw new Error("IDKitRequestWidget requires an onSuccess callback.");
|
|
1764
|
+
}
|
|
1765
|
+
const flow = useIDKitRequest(config);
|
|
1766
|
+
return /* @__PURE__ */ jsx(
|
|
1767
|
+
IDKitWidgetBase,
|
|
1768
|
+
{
|
|
1769
|
+
flow,
|
|
1770
|
+
open,
|
|
1771
|
+
onOpenChange,
|
|
1772
|
+
handleVerify,
|
|
1773
|
+
onSuccess,
|
|
1774
|
+
onError,
|
|
1775
|
+
autoClose,
|
|
1776
|
+
language,
|
|
1777
|
+
showSimulatorCallout: config.environment === "staging"
|
|
1778
|
+
}
|
|
1779
|
+
);
|
|
1780
|
+
}
|
|
1733
1781
|
|
|
1734
1782
|
export { IDKitRequestWidget, useIDKitRequest };
|
|
1735
1783
|
//# sourceMappingURL=index.js.map
|