@edge-markets/connect-link 1.5.1 → 1.6.0
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.d.mts +33 -14
- package/dist/index.d.ts +33 -14
- package/dist/index.js +151 -52
- package/dist/index.mjs +150 -52
- package/package.json +2 -2
package/dist/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EdgeLinkConfigBase, EdgeScope, EdgeLinkSuccess, EdgeLinkExit,
|
|
1
|
+
import { EdgeLinkConfigBase, EdgeScope, SdkGeolocation, EdgeLinkSuccess, EdgeLinkExit, PKCEPair } from '@edge-markets/connect';
|
|
2
2
|
export { ALL_EDGE_SCOPES, EDGE_SCOPES, EdgeEnvironment, EdgeError, EdgeLinkEvent, EdgeLinkEventName, EdgeLinkExit, EdgeLinkSuccess, EdgePopupBlockedError, EdgeScope, EdgeStateMismatchError, PKCEPair, SdkGeolocation, isEdgeError } from '@edge-markets/connect';
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -200,18 +200,6 @@ declare class EdgeLink {
|
|
|
200
200
|
private cleanup;
|
|
201
201
|
}
|
|
202
202
|
|
|
203
|
-
interface UseEdgeLinkConfig extends Omit<EdgeLinkConfig, 'onSuccess' | 'onExit'> {
|
|
204
|
-
onSuccess?: (result: EdgeLinkSuccess) => void | Promise<void>;
|
|
205
|
-
onExit?: (metadata: EdgeLinkExit) => void;
|
|
206
|
-
}
|
|
207
|
-
interface UseEdgeLinkReturn {
|
|
208
|
-
open: (options?: EdgeLinkOpenOptions) => void;
|
|
209
|
-
ready: boolean;
|
|
210
|
-
error: Error | null;
|
|
211
|
-
isOpen: boolean;
|
|
212
|
-
}
|
|
213
|
-
declare function useEdgeLink(config: UseEdgeLinkConfig): UseEdgeLinkReturn;
|
|
214
|
-
|
|
215
203
|
/**
|
|
216
204
|
* EdgeTransferVerify - Transfer Verification Launcher for EDGE Connect
|
|
217
205
|
*
|
|
@@ -634,6 +622,37 @@ declare class EdgeTransferVerify {
|
|
|
634
622
|
private handleUserClose;
|
|
635
623
|
}
|
|
636
624
|
|
|
625
|
+
interface UseEdgeLinkConfig extends Omit<EdgeLinkConfig, 'onSuccess' | 'onExit'> {
|
|
626
|
+
onSuccess?: (result: EdgeLinkSuccess) => void | Promise<void>;
|
|
627
|
+
onExit?: (metadata: EdgeLinkExit) => void;
|
|
628
|
+
}
|
|
629
|
+
interface UseEdgeLinkReturn {
|
|
630
|
+
open: (options?: EdgeLinkOpenOptions) => void;
|
|
631
|
+
ready: boolean;
|
|
632
|
+
error: Error | null;
|
|
633
|
+
isOpen: boolean;
|
|
634
|
+
}
|
|
635
|
+
declare function useEdgeLink(config: UseEdgeLinkConfig): UseEdgeLinkReturn;
|
|
636
|
+
interface UseEdgeTransferVerifyConfig extends Omit<EdgeTransferVerifyConfig, 'onSuccess' | 'onError' | 'onCancel' | 'onExpired' | 'onLoaded' | 'onEvent'> {
|
|
637
|
+
onSuccess?: (event: TransferVerifyEvent) => void | Promise<void>;
|
|
638
|
+
onError?: (event: TransferVerifyEvent) => void | Promise<void>;
|
|
639
|
+
onCancel?: (event: TransferVerifyEvent) => void | Promise<void>;
|
|
640
|
+
onExpired?: (event: TransferVerifyEvent) => void | Promise<void>;
|
|
641
|
+
onLoaded?: (event: TransferVerifyEvent) => void | Promise<void>;
|
|
642
|
+
onEvent?: (event: TransferVerifyEvent) => void | Promise<void>;
|
|
643
|
+
}
|
|
644
|
+
interface UseEdgeTransferVerifyReturn {
|
|
645
|
+
open: () => void;
|
|
646
|
+
close: () => void;
|
|
647
|
+
destroy: () => void;
|
|
648
|
+
ready: boolean;
|
|
649
|
+
isOpen: boolean;
|
|
650
|
+
isLoaded: boolean;
|
|
651
|
+
lastEvent: TransferVerifyEvent | null;
|
|
652
|
+
error: Error | null;
|
|
653
|
+
}
|
|
654
|
+
declare function useEdgeTransferVerify(config: UseEdgeTransferVerifyConfig): UseEdgeTransferVerifyReturn;
|
|
655
|
+
|
|
637
656
|
/**
|
|
638
657
|
* Iframe Manager
|
|
639
658
|
*
|
|
@@ -879,4 +898,4 @@ declare function generateState(): string;
|
|
|
879
898
|
*/
|
|
880
899
|
declare function assertCryptoAvailable(): void;
|
|
881
900
|
|
|
882
|
-
export { EdgeLink, type EdgeLinkConfig, type EdgeLinkOpenOptions, EdgeTransferVerify, type EdgeTransferVerifyConfig, type GeolocationOptions, type IframeCallbacks, type IframeConfig, IframeManager, type TransferVerifyEvent, type TransferVerifyEventType, type TransferVerifyMode, type UseEdgeLinkConfig, type UseEdgeLinkReturn, assertCryptoAvailable, collectGeolocation, generatePKCE, generateState, useEdgeLink };
|
|
901
|
+
export { EdgeLink, type EdgeLinkConfig, type EdgeLinkOpenOptions, EdgeTransferVerify, type EdgeTransferVerifyConfig, type GeolocationOptions, type IframeCallbacks, type IframeConfig, IframeManager, type TransferVerifyEvent, type TransferVerifyEventType, type TransferVerifyMode, type UseEdgeLinkConfig, type UseEdgeLinkReturn, type UseEdgeTransferVerifyConfig, type UseEdgeTransferVerifyReturn, assertCryptoAvailable, collectGeolocation, generatePKCE, generateState, useEdgeLink, useEdgeTransferVerify };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EdgeLinkConfigBase, EdgeScope, EdgeLinkSuccess, EdgeLinkExit,
|
|
1
|
+
import { EdgeLinkConfigBase, EdgeScope, SdkGeolocation, EdgeLinkSuccess, EdgeLinkExit, PKCEPair } from '@edge-markets/connect';
|
|
2
2
|
export { ALL_EDGE_SCOPES, EDGE_SCOPES, EdgeEnvironment, EdgeError, EdgeLinkEvent, EdgeLinkEventName, EdgeLinkExit, EdgeLinkSuccess, EdgePopupBlockedError, EdgeScope, EdgeStateMismatchError, PKCEPair, SdkGeolocation, isEdgeError } from '@edge-markets/connect';
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -200,18 +200,6 @@ declare class EdgeLink {
|
|
|
200
200
|
private cleanup;
|
|
201
201
|
}
|
|
202
202
|
|
|
203
|
-
interface UseEdgeLinkConfig extends Omit<EdgeLinkConfig, 'onSuccess' | 'onExit'> {
|
|
204
|
-
onSuccess?: (result: EdgeLinkSuccess) => void | Promise<void>;
|
|
205
|
-
onExit?: (metadata: EdgeLinkExit) => void;
|
|
206
|
-
}
|
|
207
|
-
interface UseEdgeLinkReturn {
|
|
208
|
-
open: (options?: EdgeLinkOpenOptions) => void;
|
|
209
|
-
ready: boolean;
|
|
210
|
-
error: Error | null;
|
|
211
|
-
isOpen: boolean;
|
|
212
|
-
}
|
|
213
|
-
declare function useEdgeLink(config: UseEdgeLinkConfig): UseEdgeLinkReturn;
|
|
214
|
-
|
|
215
203
|
/**
|
|
216
204
|
* EdgeTransferVerify - Transfer Verification Launcher for EDGE Connect
|
|
217
205
|
*
|
|
@@ -634,6 +622,37 @@ declare class EdgeTransferVerify {
|
|
|
634
622
|
private handleUserClose;
|
|
635
623
|
}
|
|
636
624
|
|
|
625
|
+
interface UseEdgeLinkConfig extends Omit<EdgeLinkConfig, 'onSuccess' | 'onExit'> {
|
|
626
|
+
onSuccess?: (result: EdgeLinkSuccess) => void | Promise<void>;
|
|
627
|
+
onExit?: (metadata: EdgeLinkExit) => void;
|
|
628
|
+
}
|
|
629
|
+
interface UseEdgeLinkReturn {
|
|
630
|
+
open: (options?: EdgeLinkOpenOptions) => void;
|
|
631
|
+
ready: boolean;
|
|
632
|
+
error: Error | null;
|
|
633
|
+
isOpen: boolean;
|
|
634
|
+
}
|
|
635
|
+
declare function useEdgeLink(config: UseEdgeLinkConfig): UseEdgeLinkReturn;
|
|
636
|
+
interface UseEdgeTransferVerifyConfig extends Omit<EdgeTransferVerifyConfig, 'onSuccess' | 'onError' | 'onCancel' | 'onExpired' | 'onLoaded' | 'onEvent'> {
|
|
637
|
+
onSuccess?: (event: TransferVerifyEvent) => void | Promise<void>;
|
|
638
|
+
onError?: (event: TransferVerifyEvent) => void | Promise<void>;
|
|
639
|
+
onCancel?: (event: TransferVerifyEvent) => void | Promise<void>;
|
|
640
|
+
onExpired?: (event: TransferVerifyEvent) => void | Promise<void>;
|
|
641
|
+
onLoaded?: (event: TransferVerifyEvent) => void | Promise<void>;
|
|
642
|
+
onEvent?: (event: TransferVerifyEvent) => void | Promise<void>;
|
|
643
|
+
}
|
|
644
|
+
interface UseEdgeTransferVerifyReturn {
|
|
645
|
+
open: () => void;
|
|
646
|
+
close: () => void;
|
|
647
|
+
destroy: () => void;
|
|
648
|
+
ready: boolean;
|
|
649
|
+
isOpen: boolean;
|
|
650
|
+
isLoaded: boolean;
|
|
651
|
+
lastEvent: TransferVerifyEvent | null;
|
|
652
|
+
error: Error | null;
|
|
653
|
+
}
|
|
654
|
+
declare function useEdgeTransferVerify(config: UseEdgeTransferVerifyConfig): UseEdgeTransferVerifyReturn;
|
|
655
|
+
|
|
637
656
|
/**
|
|
638
657
|
* Iframe Manager
|
|
639
658
|
*
|
|
@@ -879,4 +898,4 @@ declare function generateState(): string;
|
|
|
879
898
|
*/
|
|
880
899
|
declare function assertCryptoAvailable(): void;
|
|
881
900
|
|
|
882
|
-
export { EdgeLink, type EdgeLinkConfig, type EdgeLinkOpenOptions, EdgeTransferVerify, type EdgeTransferVerifyConfig, type GeolocationOptions, type IframeCallbacks, type IframeConfig, IframeManager, type TransferVerifyEvent, type TransferVerifyEventType, type TransferVerifyMode, type UseEdgeLinkConfig, type UseEdgeLinkReturn, assertCryptoAvailable, collectGeolocation, generatePKCE, generateState, useEdgeLink };
|
|
901
|
+
export { EdgeLink, type EdgeLinkConfig, type EdgeLinkOpenOptions, EdgeTransferVerify, type EdgeTransferVerifyConfig, type GeolocationOptions, type IframeCallbacks, type IframeConfig, IframeManager, type TransferVerifyEvent, type TransferVerifyEventType, type TransferVerifyMode, type UseEdgeLinkConfig, type UseEdgeLinkReturn, type UseEdgeTransferVerifyConfig, type UseEdgeTransferVerifyReturn, assertCryptoAvailable, collectGeolocation, generatePKCE, generateState, useEdgeLink, useEdgeTransferVerify };
|
package/dist/index.js
CHANGED
|
@@ -33,7 +33,8 @@ __export(index_exports, {
|
|
|
33
33
|
generatePKCE: () => generatePKCE,
|
|
34
34
|
generateState: () => generateState,
|
|
35
35
|
isEdgeError: () => import_connect3.isEdgeError,
|
|
36
|
-
useEdgeLink: () => useEdgeLink
|
|
36
|
+
useEdgeLink: () => useEdgeLink,
|
|
37
|
+
useEdgeTransferVerify: () => useEdgeTransferVerify
|
|
37
38
|
});
|
|
38
39
|
module.exports = __toCommonJS(index_exports);
|
|
39
40
|
|
|
@@ -612,56 +613,6 @@ var EdgeLink = class {
|
|
|
612
613
|
|
|
613
614
|
// src/hooks.ts
|
|
614
615
|
var import_react = require("react");
|
|
615
|
-
function useEdgeLink(config) {
|
|
616
|
-
const linkRef = (0, import_react.useRef)(null);
|
|
617
|
-
const [ready, setReady] = (0, import_react.useState)(false);
|
|
618
|
-
const [error, setError] = (0, import_react.useState)(null);
|
|
619
|
-
const [isOpen, setIsOpen] = (0, import_react.useState)(false);
|
|
620
|
-
const configRef = (0, import_react.useRef)(config);
|
|
621
|
-
configRef.current = config;
|
|
622
|
-
(0, import_react.useEffect)(() => {
|
|
623
|
-
try {
|
|
624
|
-
linkRef.current = new EdgeLink({
|
|
625
|
-
...configRef.current,
|
|
626
|
-
onSuccess: (result) => {
|
|
627
|
-
setIsOpen(false);
|
|
628
|
-
configRef.current.onSuccess?.(result);
|
|
629
|
-
},
|
|
630
|
-
onExit: (metadata) => {
|
|
631
|
-
setIsOpen(false);
|
|
632
|
-
configRef.current.onExit?.(metadata);
|
|
633
|
-
},
|
|
634
|
-
onEvent: (event) => {
|
|
635
|
-
if (event.eventName === "OPEN") setIsOpen(true);
|
|
636
|
-
if (event.eventName === "CLOSE") setIsOpen(false);
|
|
637
|
-
configRef.current.onEvent?.(event);
|
|
638
|
-
}
|
|
639
|
-
});
|
|
640
|
-
setReady(true);
|
|
641
|
-
setError(null);
|
|
642
|
-
} catch (err) {
|
|
643
|
-
setError(err instanceof Error ? err : new Error("Failed to initialize EdgeLink"));
|
|
644
|
-
setReady(false);
|
|
645
|
-
}
|
|
646
|
-
return () => {
|
|
647
|
-
linkRef.current?.destroy();
|
|
648
|
-
linkRef.current = null;
|
|
649
|
-
setReady(false);
|
|
650
|
-
};
|
|
651
|
-
}, [config.clientId, config.environment]);
|
|
652
|
-
const open = (0, import_react.useCallback)((options) => {
|
|
653
|
-
if (!linkRef.current) {
|
|
654
|
-
setError(new Error("EdgeLink not initialized"));
|
|
655
|
-
return;
|
|
656
|
-
}
|
|
657
|
-
try {
|
|
658
|
-
linkRef.current.open(options);
|
|
659
|
-
} catch (err) {
|
|
660
|
-
setError(err instanceof Error ? err : new Error("Failed to open EdgeLink"));
|
|
661
|
-
}
|
|
662
|
-
}, []);
|
|
663
|
-
return { open, ready, error, isOpen };
|
|
664
|
-
}
|
|
665
616
|
|
|
666
617
|
// src/edge-transfer-verify.ts
|
|
667
618
|
var import_connect2 = require("@edge-markets/connect");
|
|
@@ -1218,6 +1169,153 @@ var EdgeTransferVerify = class {
|
|
|
1218
1169
|
}
|
|
1219
1170
|
};
|
|
1220
1171
|
|
|
1172
|
+
// src/hooks.ts
|
|
1173
|
+
function useEdgeLink(config) {
|
|
1174
|
+
const linkRef = (0, import_react.useRef)(null);
|
|
1175
|
+
const [ready, setReady] = (0, import_react.useState)(false);
|
|
1176
|
+
const [error, setError] = (0, import_react.useState)(null);
|
|
1177
|
+
const [isOpen, setIsOpen] = (0, import_react.useState)(false);
|
|
1178
|
+
const configRef = (0, import_react.useRef)(config);
|
|
1179
|
+
configRef.current = config;
|
|
1180
|
+
(0, import_react.useEffect)(() => {
|
|
1181
|
+
try {
|
|
1182
|
+
linkRef.current = new EdgeLink({
|
|
1183
|
+
...configRef.current,
|
|
1184
|
+
onSuccess: (result) => {
|
|
1185
|
+
setIsOpen(false);
|
|
1186
|
+
configRef.current.onSuccess?.(result);
|
|
1187
|
+
},
|
|
1188
|
+
onExit: (metadata) => {
|
|
1189
|
+
setIsOpen(false);
|
|
1190
|
+
configRef.current.onExit?.(metadata);
|
|
1191
|
+
},
|
|
1192
|
+
onEvent: (event) => {
|
|
1193
|
+
if (event.eventName === "OPEN") setIsOpen(true);
|
|
1194
|
+
if (event.eventName === "CLOSE") setIsOpen(false);
|
|
1195
|
+
configRef.current.onEvent?.(event);
|
|
1196
|
+
}
|
|
1197
|
+
});
|
|
1198
|
+
setReady(true);
|
|
1199
|
+
setError(null);
|
|
1200
|
+
} catch (err) {
|
|
1201
|
+
setError(err instanceof Error ? err : new Error("Failed to initialize EdgeLink"));
|
|
1202
|
+
setReady(false);
|
|
1203
|
+
}
|
|
1204
|
+
return () => {
|
|
1205
|
+
linkRef.current?.destroy();
|
|
1206
|
+
linkRef.current = null;
|
|
1207
|
+
setReady(false);
|
|
1208
|
+
};
|
|
1209
|
+
}, [config.clientId, config.environment]);
|
|
1210
|
+
const open = (0, import_react.useCallback)((options) => {
|
|
1211
|
+
if (!linkRef.current) {
|
|
1212
|
+
setError(new Error("EdgeLink not initialized"));
|
|
1213
|
+
return;
|
|
1214
|
+
}
|
|
1215
|
+
try {
|
|
1216
|
+
linkRef.current.open(options);
|
|
1217
|
+
} catch (err) {
|
|
1218
|
+
setError(err instanceof Error ? err : new Error("Failed to open EdgeLink"));
|
|
1219
|
+
}
|
|
1220
|
+
}, []);
|
|
1221
|
+
return { open, ready, error, isOpen };
|
|
1222
|
+
}
|
|
1223
|
+
function useEdgeTransferVerify(config) {
|
|
1224
|
+
const verifyRef = (0, import_react.useRef)(null);
|
|
1225
|
+
const [ready, setReady] = (0, import_react.useState)(false);
|
|
1226
|
+
const [isOpen, setIsOpen] = (0, import_react.useState)(false);
|
|
1227
|
+
const [isLoaded, setIsLoaded] = (0, import_react.useState)(false);
|
|
1228
|
+
const [lastEvent, setLastEvent] = (0, import_react.useState)(null);
|
|
1229
|
+
const [error, setError] = (0, import_react.useState)(null);
|
|
1230
|
+
const configRef = (0, import_react.useRef)(config);
|
|
1231
|
+
configRef.current = config;
|
|
1232
|
+
(0, import_react.useEffect)(() => {
|
|
1233
|
+
if ((configRef.current.mode || "iframe") === "iframe" && !configRef.current.container) {
|
|
1234
|
+
verifyRef.current = null;
|
|
1235
|
+
setReady(false);
|
|
1236
|
+
setError(null);
|
|
1237
|
+
setIsLoaded(false);
|
|
1238
|
+
setLastEvent(null);
|
|
1239
|
+
return;
|
|
1240
|
+
}
|
|
1241
|
+
try {
|
|
1242
|
+
verifyRef.current = new EdgeTransferVerify({
|
|
1243
|
+
...configRef.current,
|
|
1244
|
+
onSuccess: (event) => {
|
|
1245
|
+
setIsOpen(false);
|
|
1246
|
+
setLastEvent(event);
|
|
1247
|
+
void configRef.current.onSuccess?.(event);
|
|
1248
|
+
},
|
|
1249
|
+
onError: (event) => {
|
|
1250
|
+
setIsOpen(false);
|
|
1251
|
+
setLastEvent(event);
|
|
1252
|
+
setError(new Error(event.error || "EDGE transfer verification failed"));
|
|
1253
|
+
void configRef.current.onError?.(event);
|
|
1254
|
+
},
|
|
1255
|
+
onCancel: (event) => {
|
|
1256
|
+
setIsOpen(false);
|
|
1257
|
+
setLastEvent(event);
|
|
1258
|
+
void configRef.current.onCancel?.(event);
|
|
1259
|
+
},
|
|
1260
|
+
onExpired: (event) => {
|
|
1261
|
+
setIsOpen(false);
|
|
1262
|
+
setLastEvent(event);
|
|
1263
|
+
void configRef.current.onExpired?.(event);
|
|
1264
|
+
},
|
|
1265
|
+
onLoaded: (event) => {
|
|
1266
|
+
setIsLoaded(true);
|
|
1267
|
+
setLastEvent(event);
|
|
1268
|
+
void configRef.current.onLoaded?.(event);
|
|
1269
|
+
},
|
|
1270
|
+
onEvent: (event) => {
|
|
1271
|
+
setLastEvent(event);
|
|
1272
|
+
void configRef.current.onEvent?.(event);
|
|
1273
|
+
}
|
|
1274
|
+
});
|
|
1275
|
+
setReady(true);
|
|
1276
|
+
setError(null);
|
|
1277
|
+
setIsLoaded(false);
|
|
1278
|
+
setLastEvent(null);
|
|
1279
|
+
} catch (err) {
|
|
1280
|
+
setError(err instanceof Error ? err : new Error("Failed to initialize EdgeTransferVerify"));
|
|
1281
|
+
setReady(false);
|
|
1282
|
+
}
|
|
1283
|
+
return () => {
|
|
1284
|
+
verifyRef.current?.destroy();
|
|
1285
|
+
verifyRef.current = null;
|
|
1286
|
+
setReady(false);
|
|
1287
|
+
setIsOpen(false);
|
|
1288
|
+
setIsLoaded(false);
|
|
1289
|
+
};
|
|
1290
|
+
}, [config.verificationUrl, config.sessionId, config.nonce, config.mode, config.container]);
|
|
1291
|
+
const open = (0, import_react.useCallback)(() => {
|
|
1292
|
+
if (!verifyRef.current) {
|
|
1293
|
+
setError(new Error("EdgeTransferVerify not initialized"));
|
|
1294
|
+
return;
|
|
1295
|
+
}
|
|
1296
|
+
try {
|
|
1297
|
+
verifyRef.current.open();
|
|
1298
|
+
setIsOpen(true);
|
|
1299
|
+
setError(null);
|
|
1300
|
+
} catch (err) {
|
|
1301
|
+
setError(err instanceof Error ? err : new Error("Failed to open EdgeTransferVerify"));
|
|
1302
|
+
setIsOpen(false);
|
|
1303
|
+
}
|
|
1304
|
+
}, []);
|
|
1305
|
+
const close = (0, import_react.useCallback)(() => {
|
|
1306
|
+
verifyRef.current?.close();
|
|
1307
|
+
setIsOpen(false);
|
|
1308
|
+
}, []);
|
|
1309
|
+
const destroy = (0, import_react.useCallback)(() => {
|
|
1310
|
+
verifyRef.current?.destroy();
|
|
1311
|
+
verifyRef.current = null;
|
|
1312
|
+
setReady(false);
|
|
1313
|
+
setIsOpen(false);
|
|
1314
|
+
setIsLoaded(false);
|
|
1315
|
+
}, []);
|
|
1316
|
+
return { open, close, destroy, ready, isOpen, isLoaded, lastEvent, error };
|
|
1317
|
+
}
|
|
1318
|
+
|
|
1221
1319
|
// src/geolocation.ts
|
|
1222
1320
|
async function collectGeolocation(options) {
|
|
1223
1321
|
if (typeof navigator === "undefined" || !navigator.geolocation) {
|
|
@@ -1260,5 +1358,6 @@ var import_connect4 = require("@edge-markets/connect");
|
|
|
1260
1358
|
generatePKCE,
|
|
1261
1359
|
generateState,
|
|
1262
1360
|
isEdgeError,
|
|
1263
|
-
useEdgeLink
|
|
1361
|
+
useEdgeLink,
|
|
1362
|
+
useEdgeTransferVerify
|
|
1264
1363
|
});
|
package/dist/index.mjs
CHANGED
|
@@ -577,57 +577,7 @@ var EdgeLink = class {
|
|
|
577
577
|
};
|
|
578
578
|
|
|
579
579
|
// src/hooks.ts
|
|
580
|
-
import { useEffect, useRef,
|
|
581
|
-
function useEdgeLink(config) {
|
|
582
|
-
const linkRef = useRef(null);
|
|
583
|
-
const [ready, setReady] = useState(false);
|
|
584
|
-
const [error, setError] = useState(null);
|
|
585
|
-
const [isOpen, setIsOpen] = useState(false);
|
|
586
|
-
const configRef = useRef(config);
|
|
587
|
-
configRef.current = config;
|
|
588
|
-
useEffect(() => {
|
|
589
|
-
try {
|
|
590
|
-
linkRef.current = new EdgeLink({
|
|
591
|
-
...configRef.current,
|
|
592
|
-
onSuccess: (result) => {
|
|
593
|
-
setIsOpen(false);
|
|
594
|
-
configRef.current.onSuccess?.(result);
|
|
595
|
-
},
|
|
596
|
-
onExit: (metadata) => {
|
|
597
|
-
setIsOpen(false);
|
|
598
|
-
configRef.current.onExit?.(metadata);
|
|
599
|
-
},
|
|
600
|
-
onEvent: (event) => {
|
|
601
|
-
if (event.eventName === "OPEN") setIsOpen(true);
|
|
602
|
-
if (event.eventName === "CLOSE") setIsOpen(false);
|
|
603
|
-
configRef.current.onEvent?.(event);
|
|
604
|
-
}
|
|
605
|
-
});
|
|
606
|
-
setReady(true);
|
|
607
|
-
setError(null);
|
|
608
|
-
} catch (err) {
|
|
609
|
-
setError(err instanceof Error ? err : new Error("Failed to initialize EdgeLink"));
|
|
610
|
-
setReady(false);
|
|
611
|
-
}
|
|
612
|
-
return () => {
|
|
613
|
-
linkRef.current?.destroy();
|
|
614
|
-
linkRef.current = null;
|
|
615
|
-
setReady(false);
|
|
616
|
-
};
|
|
617
|
-
}, [config.clientId, config.environment]);
|
|
618
|
-
const open = useCallback((options) => {
|
|
619
|
-
if (!linkRef.current) {
|
|
620
|
-
setError(new Error("EdgeLink not initialized"));
|
|
621
|
-
return;
|
|
622
|
-
}
|
|
623
|
-
try {
|
|
624
|
-
linkRef.current.open(options);
|
|
625
|
-
} catch (err) {
|
|
626
|
-
setError(err instanceof Error ? err : new Error("Failed to open EdgeLink"));
|
|
627
|
-
}
|
|
628
|
-
}, []);
|
|
629
|
-
return { open, ready, error, isOpen };
|
|
630
|
-
}
|
|
580
|
+
import { useCallback, useEffect, useRef, useState } from "react";
|
|
631
581
|
|
|
632
582
|
// src/edge-transfer-verify.ts
|
|
633
583
|
import { EdgePopupBlockedError as EdgePopupBlockedError2 } from "@edge-markets/connect";
|
|
@@ -1184,6 +1134,153 @@ var EdgeTransferVerify = class {
|
|
|
1184
1134
|
}
|
|
1185
1135
|
};
|
|
1186
1136
|
|
|
1137
|
+
// src/hooks.ts
|
|
1138
|
+
function useEdgeLink(config) {
|
|
1139
|
+
const linkRef = useRef(null);
|
|
1140
|
+
const [ready, setReady] = useState(false);
|
|
1141
|
+
const [error, setError] = useState(null);
|
|
1142
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
1143
|
+
const configRef = useRef(config);
|
|
1144
|
+
configRef.current = config;
|
|
1145
|
+
useEffect(() => {
|
|
1146
|
+
try {
|
|
1147
|
+
linkRef.current = new EdgeLink({
|
|
1148
|
+
...configRef.current,
|
|
1149
|
+
onSuccess: (result) => {
|
|
1150
|
+
setIsOpen(false);
|
|
1151
|
+
configRef.current.onSuccess?.(result);
|
|
1152
|
+
},
|
|
1153
|
+
onExit: (metadata) => {
|
|
1154
|
+
setIsOpen(false);
|
|
1155
|
+
configRef.current.onExit?.(metadata);
|
|
1156
|
+
},
|
|
1157
|
+
onEvent: (event) => {
|
|
1158
|
+
if (event.eventName === "OPEN") setIsOpen(true);
|
|
1159
|
+
if (event.eventName === "CLOSE") setIsOpen(false);
|
|
1160
|
+
configRef.current.onEvent?.(event);
|
|
1161
|
+
}
|
|
1162
|
+
});
|
|
1163
|
+
setReady(true);
|
|
1164
|
+
setError(null);
|
|
1165
|
+
} catch (err) {
|
|
1166
|
+
setError(err instanceof Error ? err : new Error("Failed to initialize EdgeLink"));
|
|
1167
|
+
setReady(false);
|
|
1168
|
+
}
|
|
1169
|
+
return () => {
|
|
1170
|
+
linkRef.current?.destroy();
|
|
1171
|
+
linkRef.current = null;
|
|
1172
|
+
setReady(false);
|
|
1173
|
+
};
|
|
1174
|
+
}, [config.clientId, config.environment]);
|
|
1175
|
+
const open = useCallback((options) => {
|
|
1176
|
+
if (!linkRef.current) {
|
|
1177
|
+
setError(new Error("EdgeLink not initialized"));
|
|
1178
|
+
return;
|
|
1179
|
+
}
|
|
1180
|
+
try {
|
|
1181
|
+
linkRef.current.open(options);
|
|
1182
|
+
} catch (err) {
|
|
1183
|
+
setError(err instanceof Error ? err : new Error("Failed to open EdgeLink"));
|
|
1184
|
+
}
|
|
1185
|
+
}, []);
|
|
1186
|
+
return { open, ready, error, isOpen };
|
|
1187
|
+
}
|
|
1188
|
+
function useEdgeTransferVerify(config) {
|
|
1189
|
+
const verifyRef = useRef(null);
|
|
1190
|
+
const [ready, setReady] = useState(false);
|
|
1191
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
1192
|
+
const [isLoaded, setIsLoaded] = useState(false);
|
|
1193
|
+
const [lastEvent, setLastEvent] = useState(null);
|
|
1194
|
+
const [error, setError] = useState(null);
|
|
1195
|
+
const configRef = useRef(config);
|
|
1196
|
+
configRef.current = config;
|
|
1197
|
+
useEffect(() => {
|
|
1198
|
+
if ((configRef.current.mode || "iframe") === "iframe" && !configRef.current.container) {
|
|
1199
|
+
verifyRef.current = null;
|
|
1200
|
+
setReady(false);
|
|
1201
|
+
setError(null);
|
|
1202
|
+
setIsLoaded(false);
|
|
1203
|
+
setLastEvent(null);
|
|
1204
|
+
return;
|
|
1205
|
+
}
|
|
1206
|
+
try {
|
|
1207
|
+
verifyRef.current = new EdgeTransferVerify({
|
|
1208
|
+
...configRef.current,
|
|
1209
|
+
onSuccess: (event) => {
|
|
1210
|
+
setIsOpen(false);
|
|
1211
|
+
setLastEvent(event);
|
|
1212
|
+
void configRef.current.onSuccess?.(event);
|
|
1213
|
+
},
|
|
1214
|
+
onError: (event) => {
|
|
1215
|
+
setIsOpen(false);
|
|
1216
|
+
setLastEvent(event);
|
|
1217
|
+
setError(new Error(event.error || "EDGE transfer verification failed"));
|
|
1218
|
+
void configRef.current.onError?.(event);
|
|
1219
|
+
},
|
|
1220
|
+
onCancel: (event) => {
|
|
1221
|
+
setIsOpen(false);
|
|
1222
|
+
setLastEvent(event);
|
|
1223
|
+
void configRef.current.onCancel?.(event);
|
|
1224
|
+
},
|
|
1225
|
+
onExpired: (event) => {
|
|
1226
|
+
setIsOpen(false);
|
|
1227
|
+
setLastEvent(event);
|
|
1228
|
+
void configRef.current.onExpired?.(event);
|
|
1229
|
+
},
|
|
1230
|
+
onLoaded: (event) => {
|
|
1231
|
+
setIsLoaded(true);
|
|
1232
|
+
setLastEvent(event);
|
|
1233
|
+
void configRef.current.onLoaded?.(event);
|
|
1234
|
+
},
|
|
1235
|
+
onEvent: (event) => {
|
|
1236
|
+
setLastEvent(event);
|
|
1237
|
+
void configRef.current.onEvent?.(event);
|
|
1238
|
+
}
|
|
1239
|
+
});
|
|
1240
|
+
setReady(true);
|
|
1241
|
+
setError(null);
|
|
1242
|
+
setIsLoaded(false);
|
|
1243
|
+
setLastEvent(null);
|
|
1244
|
+
} catch (err) {
|
|
1245
|
+
setError(err instanceof Error ? err : new Error("Failed to initialize EdgeTransferVerify"));
|
|
1246
|
+
setReady(false);
|
|
1247
|
+
}
|
|
1248
|
+
return () => {
|
|
1249
|
+
verifyRef.current?.destroy();
|
|
1250
|
+
verifyRef.current = null;
|
|
1251
|
+
setReady(false);
|
|
1252
|
+
setIsOpen(false);
|
|
1253
|
+
setIsLoaded(false);
|
|
1254
|
+
};
|
|
1255
|
+
}, [config.verificationUrl, config.sessionId, config.nonce, config.mode, config.container]);
|
|
1256
|
+
const open = useCallback(() => {
|
|
1257
|
+
if (!verifyRef.current) {
|
|
1258
|
+
setError(new Error("EdgeTransferVerify not initialized"));
|
|
1259
|
+
return;
|
|
1260
|
+
}
|
|
1261
|
+
try {
|
|
1262
|
+
verifyRef.current.open();
|
|
1263
|
+
setIsOpen(true);
|
|
1264
|
+
setError(null);
|
|
1265
|
+
} catch (err) {
|
|
1266
|
+
setError(err instanceof Error ? err : new Error("Failed to open EdgeTransferVerify"));
|
|
1267
|
+
setIsOpen(false);
|
|
1268
|
+
}
|
|
1269
|
+
}, []);
|
|
1270
|
+
const close = useCallback(() => {
|
|
1271
|
+
verifyRef.current?.close();
|
|
1272
|
+
setIsOpen(false);
|
|
1273
|
+
}, []);
|
|
1274
|
+
const destroy = useCallback(() => {
|
|
1275
|
+
verifyRef.current?.destroy();
|
|
1276
|
+
verifyRef.current = null;
|
|
1277
|
+
setReady(false);
|
|
1278
|
+
setIsOpen(false);
|
|
1279
|
+
setIsLoaded(false);
|
|
1280
|
+
}, []);
|
|
1281
|
+
return { open, close, destroy, ready, isOpen, isLoaded, lastEvent, error };
|
|
1282
|
+
}
|
|
1283
|
+
|
|
1187
1284
|
// src/geolocation.ts
|
|
1188
1285
|
async function collectGeolocation(options) {
|
|
1189
1286
|
if (typeof navigator === "undefined" || !navigator.geolocation) {
|
|
@@ -1225,5 +1322,6 @@ export {
|
|
|
1225
1322
|
generatePKCE,
|
|
1226
1323
|
generateState,
|
|
1227
1324
|
isEdgeError,
|
|
1228
|
-
useEdgeLink
|
|
1325
|
+
useEdgeLink,
|
|
1326
|
+
useEdgeTransferVerify
|
|
1229
1327
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@edge-markets/connect-link",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"description": "Browser SDK for EDGE Connect popup authentication",
|
|
5
5
|
"author": "EdgeBoost",
|
|
6
6
|
"license": "MIT",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
}
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@edge-markets/connect": "^1.
|
|
24
|
+
"@edge-markets/connect": "^1.7.0"
|
|
25
25
|
},
|
|
26
26
|
"peerDependencies": {
|
|
27
27
|
"react": ">=17.0.0"
|