@pelican-identity/react-native 1.2.50 → 1.2.52

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pelican-identity/react-native",
3
- "version": "1.2.50",
3
+ "version": "1.2.52",
4
4
  "description": "React Native components for Pelican Identity authentication",
5
5
  "main": "./dist/index.js",
6
6
  "react-native": "./src/index.ts",
@@ -1 +0,0 @@
1
- {"version":3,"file":"usePelicanAuth.d.ts","sourceRoot":"","sources":["../../src/hooks/usePelicanAuth.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAIpD,eAAO,MAAM,cAAc,GAAI,OAAO,kBAAkB;;;CAkNvD,CAAC"}
@@ -1,170 +0,0 @@
1
- import { useState, useRef, useEffect, useCallback } from "react";
2
- import { Alert, AppState, Linking, Platform } from "react-native";
3
- import { CryptoService } from "@pelican-identity/auth-core";
4
- import { getRelayUrl, getEncryptedData, validateCallbackUrl, } from "../utilities";
5
- const cryptoService = new CryptoService();
6
- export const usePelicanAuth = (props) => {
7
- const { authType, projectId, publicKey, appId, callBackUrl, onSuccess, onError, onLoading, onAppNotInstalled, } = props;
8
- const [loading, setLoading] = useState(false);
9
- const sessionKey = useRef(null);
10
- const sessionID = useRef(null);
11
- const timeoutRef = useRef(null);
12
- const isProcessing = useRef(false);
13
- const clearAuthTimeout = useCallback(() => {
14
- if (timeoutRef.current) {
15
- clearTimeout(timeoutRef.current);
16
- timeoutRef.current = null;
17
- }
18
- }, []);
19
- const handleCallback = useCallback(async (url) => {
20
- if (isProcessing.current)
21
- return;
22
- let activeSessionID = sessionID.current;
23
- if (url) {
24
- const params = url.split("?")[1];
25
- if (params) {
26
- const pair = params
27
- .split("&")
28
- .find((p) => p.startsWith("sessionID="));
29
- if (pair) {
30
- activeSessionID = decodeURIComponent(pair.split("=")[1] || "");
31
- }
32
- }
33
- }
34
- if (!activeSessionID || !sessionKey.current) {
35
- return;
36
- }
37
- setLoading(true);
38
- onLoading?.(true);
39
- try {
40
- isProcessing.current = true;
41
- const { cipher, nonce } = await getEncryptedData({
42
- publicKey,
43
- authType,
44
- projectID: projectId,
45
- sessionID: activeSessionID,
46
- appId,
47
- });
48
- const decryptedData = cryptoService.decryptSymmetric({
49
- encrypted: { cipher, nonce },
50
- keyString: sessionKey.current,
51
- });
52
- if (decryptedData) {
53
- clearAuthTimeout();
54
- const result = JSON.parse(decryptedData);
55
- onSuccess(result);
56
- sessionKey.current = null;
57
- sessionID.current = null;
58
- setLoading(false);
59
- onLoading?.(false);
60
- }
61
- }
62
- catch (error) {
63
- console.error("[Pelican] Callback Error:", error);
64
- onError?.(error);
65
- }
66
- finally {
67
- isProcessing.current = false;
68
- setLoading(false);
69
- onLoading?.(false);
70
- }
71
- }, [
72
- authType,
73
- projectId,
74
- publicKey,
75
- appId,
76
- onSuccess,
77
- onError,
78
- onLoading,
79
- clearAuthTimeout,
80
- ]);
81
- const initialize = async () => {
82
- const validation = validateCallbackUrl(callBackUrl || "");
83
- if (!validation.isValid) {
84
- console.warn(`[Pelican] ${validation.reason}`);
85
- onError?.(new Error(validation.reason));
86
- return;
87
- }
88
- try {
89
- clearAuthTimeout();
90
- setLoading(true);
91
- onLoading?.(true);
92
- const { relay_url, session_id } = await getRelayUrl({
93
- publicKey,
94
- authType,
95
- projectID: projectId,
96
- appId,
97
- });
98
- sessionKey.current = cryptoService.generateSymmetricKey();
99
- sessionID.current = session_id;
100
- timeoutRef.current = setTimeout(() => {
101
- if (sessionID.current) {
102
- setLoading(false);
103
- onLoading?.(false);
104
- sessionID.current = null;
105
- onError?.(new Error("Authentication timed out"));
106
- }
107
- }, 5 * 60 * 1000);
108
- const buildUrl = `${relay_url}?sessionKey=${encodeURIComponent(sessionKey.current)}&sessionID=${encodeURIComponent(sessionID.current)}&authType=${encodeURIComponent(authType)}&projectId=${encodeURIComponent(projectId)}&publicKey=${encodeURIComponent(publicKey)}&callBackUrl=${encodeURIComponent(callBackUrl || "")}`;
109
- try {
110
- await Linking.openURL(buildUrl);
111
- }
112
- catch (error) {
113
- if (onAppNotInstalled) {
114
- onAppNotInstalled();
115
- }
116
- else {
117
- showInstallPrompt();
118
- }
119
- }
120
- }
121
- catch (error) {
122
- onError?.(error);
123
- }
124
- finally {
125
- setLoading(false);
126
- onLoading?.(false);
127
- }
128
- };
129
- const showInstallPrompt = () => {
130
- Alert.alert("Install Pelican Vault", "You need the Pelican Vault app to continue. Would you like to download it?", [
131
- {
132
- text: "Cancel",
133
- style: "cancel",
134
- },
135
- {
136
- text: "Download",
137
- onPress: () => {
138
- const storeUrl = Platform.select({
139
- ios: "https://apps.apple.com/us/app/pelican-vault/id6755097751",
140
- android: "https://play.google.com/store/apps/details?id=com.HeraculesDesignTechLtd.pelican",
141
- });
142
- if (storeUrl) {
143
- Linking.openURL(storeUrl);
144
- }
145
- },
146
- },
147
- ]);
148
- };
149
- useEffect(() => {
150
- const handleUrl = (event) => {
151
- if (callBackUrl && event.url.startsWith(callBackUrl))
152
- handleCallback(event.url);
153
- };
154
- const linkSub = Linking.addEventListener("url", handleUrl);
155
- const appStateSub = AppState.addEventListener("change", (state) => {
156
- if (state === "active") {
157
- setTimeout(() => {
158
- handleCallback();
159
- }, 5000);
160
- }
161
- });
162
- return () => {
163
- linkSub.remove();
164
- appStateSub.remove();
165
- clearAuthTimeout();
166
- };
167
- }, [handleCallback, callBackUrl, clearAuthTimeout]);
168
- return { initialize, loading };
169
- };
170
- //# sourceMappingURL=usePelicanAuth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usePelicanAuth.js","sourceRoot":"","sources":["../../src/hooks/usePelicanAuth.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../src/utilities.ts"],"names":[],"mappings":"AAAA,OAAO,gCAAgC,CAAC;AAExC,OAAO,EAAW,KAAK,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAGrE,eAAO,MAAM,WAAW,GAAU,4CAK/B;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;eA4BgD,MAAM;gBAAc,MAAM;EAC1E,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAU,uDAMpC;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;YAkBkD,MAAM;WAAS,MAAM;EA8BvE,CAAC;AAKF,eAAO,MAAM,mBAAmB,GAC9B,KAAK,MAAM,KACV;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CA0CrC,CAAC"}
package/dist/utilities.js DELETED
@@ -1,92 +0,0 @@
1
- import "react-native-get-random-values";
2
- import { BASEURL } from "@pelican-identity/auth-core";
3
- import { Platform } from "react-native";
4
- export const getRelayUrl = async ({ publicKey, authType, projectID, appId, }) => {
5
- if (!publicKey) {
6
- throw new Error("Public Key is required");
7
- }
8
- if (!authType) {
9
- throw new Error("Auth Type is required");
10
- }
11
- if (!projectID) {
12
- throw new Error("Project ID is required");
13
- }
14
- if (!appId) {
15
- throw new Error("App ID is required");
16
- }
17
- const headers = {
18
- "Content-Type": "application/json",
19
- "X-App-ID": appId,
20
- };
21
- const response = await fetch(`${BASEURL}/relay?public_key=${publicKey}&auth_type=${authType}&project_id=${projectID}`, { headers });
22
- if (!response.ok) {
23
- const error = await response.text();
24
- throw new Error(error);
25
- }
26
- return response.json();
27
- };
28
- export const getEncryptedData = async ({ publicKey, authType, projectID, sessionID, appId, }) => {
29
- if (!appId)
30
- throw new Error("App ID is required");
31
- const MAX_DURATION = 60 * 1000;
32
- const INITIAL_DELAY = 1000;
33
- const MAX_DELAY = 5000;
34
- const startTime = Date.now();
35
- const headers = {
36
- "Content-Type": "application/json",
37
- "X-App-ID": appId,
38
- };
39
- const url = `${BASEURL}/get-rn-sdk-encrypted-data?public_key=${publicKey}&auth_type=${authType}&project_id=${projectID}&session_id=${sessionID}`;
40
- let currentDelay = INITIAL_DELAY;
41
- const attemptFetch = async () => {
42
- if (Date.now() - startTime > MAX_DURATION) {
43
- throw new Error("Timeout: Authentication failed. Please try again.");
44
- }
45
- try {
46
- const response = await fetch(url, { headers });
47
- if (response.ok) {
48
- return response.json();
49
- }
50
- console.debug(`Data not ready, retrying in ${currentDelay}ms...`);
51
- }
52
- catch (err) {
53
- console.debug("Network error during fetch, retrying...", err);
54
- }
55
- await new Promise((resolve) => setTimeout(resolve, currentDelay));
56
- currentDelay = Math.min(currentDelay * 1.5, MAX_DELAY);
57
- return attemptFetch();
58
- };
59
- return attemptFetch();
60
- };
61
- export const validateCallbackUrl = (url) => {
62
- if (!url)
63
- return { isValid: false, reason: "Callback URL is missing." };
64
- if (url.startsWith("https://") || url.startsWith("http://")) {
65
- return {
66
- isValid: false,
67
- reason: "Universal Links (https) are not permitted. Please use your app's Custom Scheme (e.g., 'myapp://callback') to ensure a reliable redirect.",
68
- };
69
- }
70
- const isExpo = url.startsWith("exp://");
71
- const isCustomScheme = /^[a-z0-9+.-]+:\/\//i.test(url);
72
- if (!isCustomScheme && !isExpo) {
73
- return {
74
- isValid: false,
75
- reason: "URL must include a valid Custom Scheme (e.g., 'myapp://').",
76
- };
77
- }
78
- if (url.includes("?") || url.includes("&")) {
79
- return {
80
- isValid: false,
81
- reason: "## DO NOT ADD URL PARAMETERS TO YOUR CALLBACK URL. The SDK handles session state automatically.",
82
- };
83
- }
84
- if (Platform.OS === "ios" && url.includes("_")) {
85
- return {
86
- isValid: false,
87
- reason: "iOS Custom Schemes cannot contain underscores. Use hyphens (e.g., 'my-app://').",
88
- };
89
- }
90
- return { isValid: true };
91
- };
92
- //# sourceMappingURL=utilities.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utilities.js","sourceRoot":"","sources":["../src/utilities.ts"],"names":[],"mappings":"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"}