@proveanything/smartlinks-auth-ui 0.1.2 → 0.1.4
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 +385 -228
- package/dist/components/AccountManagement.d.ts.map +1 -1
- package/dist/components/AuthContainer.d.ts +1 -0
- package/dist/components/AuthContainer.d.ts.map +1 -1
- package/dist/components/AuthUIPreview.d.ts +1 -0
- package/dist/components/AuthUIPreview.d.ts.map +1 -1
- package/dist/components/ClaimUI.d.ts +4 -0
- package/dist/components/ClaimUI.d.ts.map +1 -0
- package/dist/components/EmailAuthForm.d.ts +2 -1
- package/dist/components/EmailAuthForm.d.ts.map +1 -1
- package/dist/context/AuthContext.d.ts +10 -3
- package/dist/context/AuthContext.d.ts.map +1 -1
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.css +1 -1
- package/dist/index.esm.css.map +1 -1
- package/dist/index.esm.js +11229 -220
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +11293 -283
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +66 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/persistentStorage.d.ts +39 -0
- package/dist/utils/persistentStorage.d.ts.map +1 -0
- package/dist/utils/tokenStorage.d.ts +23 -10
- package/dist/utils/tokenStorage.d.ts.map +1 -1
- package/package.json +3 -2
package/dist/types.d.ts
CHANGED
|
@@ -44,6 +44,7 @@ export interface AuthUIConfig {
|
|
|
44
44
|
gracePeriodHours?: number;
|
|
45
45
|
requireVerification?: boolean;
|
|
46
46
|
};
|
|
47
|
+
signupAdditionalFields?: ClaimField[];
|
|
47
48
|
}
|
|
48
49
|
export interface AuthUser {
|
|
49
50
|
uid: string;
|
|
@@ -100,6 +101,8 @@ export interface SmartlinksAuthUIProps {
|
|
|
100
101
|
customization?: Partial<AuthUIConfig>;
|
|
101
102
|
/** Skip fetching config from API (use only props/defaults) */
|
|
102
103
|
skipConfigFetch?: boolean;
|
|
104
|
+
/** Minimal mode - removes all framing, backgrounds, and borders for embedding */
|
|
105
|
+
minimal?: boolean;
|
|
103
106
|
}
|
|
104
107
|
export type FirebaseAuthUIProps = SmartlinksAuthUIProps;
|
|
105
108
|
export interface AuthFormData {
|
|
@@ -117,17 +120,29 @@ export interface URLAuthParams {
|
|
|
117
120
|
mode?: 'verifyEmail' | 'resetPassword' | 'recoverEmail' | 'magicLink';
|
|
118
121
|
oobCode?: string;
|
|
119
122
|
}
|
|
123
|
+
export type AuthStateChangeCallback = (event: {
|
|
124
|
+
type: 'LOGIN' | 'LOGOUT' | 'TOKEN_REFRESH' | 'CROSS_TAB_SYNC' | 'ACCOUNT_REFRESH';
|
|
125
|
+
user: AuthUser | null;
|
|
126
|
+
token: string | null;
|
|
127
|
+
accountData: Record<string, any> | null;
|
|
128
|
+
accountInfo?: Record<string, any> | null;
|
|
129
|
+
}) => void;
|
|
120
130
|
export interface AuthContextValue {
|
|
121
131
|
user: AuthUser | null;
|
|
122
132
|
token: string | null;
|
|
123
133
|
accountData: Record<string, any> | null;
|
|
134
|
+
accountInfo: Record<string, any> | null;
|
|
124
135
|
isAuthenticated: boolean;
|
|
125
136
|
isLoading: boolean;
|
|
126
137
|
smartlinks: any | null;
|
|
127
|
-
login: (token: string, user: AuthUser, accountData?: Record<string, any>) => void
|
|
138
|
+
login: (token: string, user: AuthUser, accountData?: Record<string, any>) => Promise<void>;
|
|
128
139
|
logout: () => Promise<void>;
|
|
129
|
-
getToken: () => string | null
|
|
140
|
+
getToken: () => Promise<string | null>;
|
|
130
141
|
refreshToken: () => Promise<string>;
|
|
142
|
+
getAccount: (forceRefresh?: boolean) => Promise<Record<string, any>>;
|
|
143
|
+
refreshAccount: () => Promise<Record<string, any>>;
|
|
144
|
+
clearAccountCache: () => Promise<void>;
|
|
145
|
+
onAuthStateChange: (callback: AuthStateChangeCallback) => () => void;
|
|
131
146
|
}
|
|
132
147
|
export interface UserProfile {
|
|
133
148
|
uid: string;
|
|
@@ -171,5 +186,54 @@ export interface AccountManagementProps {
|
|
|
171
186
|
showPhoneSection?: boolean;
|
|
172
187
|
showDeleteAccount?: boolean;
|
|
173
188
|
};
|
|
189
|
+
/** Minimal mode - removes all framing, backgrounds, and borders for embedding */
|
|
190
|
+
minimal?: boolean;
|
|
191
|
+
}
|
|
192
|
+
export interface ClaimField {
|
|
193
|
+
name: string;
|
|
194
|
+
label: string;
|
|
195
|
+
type: 'text' | 'email' | 'phone' | 'select' | 'textarea';
|
|
196
|
+
required?: boolean;
|
|
197
|
+
options?: string[];
|
|
198
|
+
placeholder?: string;
|
|
199
|
+
}
|
|
200
|
+
export interface ClaimResult {
|
|
201
|
+
proofId: string;
|
|
202
|
+
user: AuthUser;
|
|
203
|
+
claimData: Record<string, any>;
|
|
204
|
+
attestationId?: string;
|
|
205
|
+
}
|
|
206
|
+
export interface SmartlinksClaimUIProps {
|
|
207
|
+
/** Your Smartlinks API endpoint URL */
|
|
208
|
+
apiEndpoint: string;
|
|
209
|
+
/** Client ID to identify your system/tenant - REQUIRED */
|
|
210
|
+
clientId: string;
|
|
211
|
+
/** Client name for branded emails */
|
|
212
|
+
clientName?: string;
|
|
213
|
+
/** Collection ID for the proof being claimed */
|
|
214
|
+
collectionId: string;
|
|
215
|
+
/** Product ID for the proof being claimed */
|
|
216
|
+
productId: string;
|
|
217
|
+
/** Proof ID to claim */
|
|
218
|
+
proofId: string;
|
|
219
|
+
/** Callback when claim succeeds */
|
|
220
|
+
onClaimSuccess: (claimData: ClaimResult) => void;
|
|
221
|
+
/** Callback when claim fails */
|
|
222
|
+
onClaimError?: (error: Error) => void;
|
|
223
|
+
/** Additional custom fields to collect during claim */
|
|
224
|
+
additionalFields?: ClaimField[];
|
|
225
|
+
/** UI theme */
|
|
226
|
+
theme?: 'light' | 'dark';
|
|
227
|
+
/** Additional CSS class name */
|
|
228
|
+
className?: string;
|
|
229
|
+
/** Minimal mode - removes all framing, backgrounds, and borders for embedding */
|
|
230
|
+
minimal?: boolean;
|
|
231
|
+
/** Customization options */
|
|
232
|
+
customization?: {
|
|
233
|
+
claimTitle?: string;
|
|
234
|
+
claimDescription?: string;
|
|
235
|
+
successMessage?: string;
|
|
236
|
+
authConfig?: Partial<AuthUIConfig>;
|
|
237
|
+
};
|
|
174
238
|
}
|
|
175
239
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,YAAY,CAAC;AAEvE,MAAM,MAAM,qBAAqB,GAC7B,WAAW,GACX,wBAAwB,GACxB,0BAA0B,CAAC;AAE/B,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,iBAAiB,CAAC,EAAE,aAAa,CAAC;IAClC,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,iBAAiB,CAAC,EAAE,aAAa,CAAC;CACnC;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE;QACT,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,WAAW,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;QACnC,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,gBAAgB,CAAC,EAAE,YAAY,EAAE,CAAC;IAClC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IACrC,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IACrC,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,iBAAiB,CAAC,EAAE;QAClB,IAAI,CAAC,EAAE,qBAAqB,CAAC;QAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,mBAAmB,CAAC,EAAE,OAAO,CAAC;KAC/B,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Persistent Storage Layer for Smartlinks Auth
|
|
3
|
+
*
|
|
4
|
+
* Implements a tiered persistence strategy similar to Firebase Auth:
|
|
5
|
+
* 1. Primary: IndexedDB (async, large capacity, cross-tab)
|
|
6
|
+
* 2. Fallback: localStorage (sync, universal support)
|
|
7
|
+
*
|
|
8
|
+
* Provides unified async API for all storage operations with automatic
|
|
9
|
+
* fallback handling and cross-tab synchronization.
|
|
10
|
+
*/
|
|
11
|
+
export type StorageBackend = 'indexeddb' | 'localstorage' | 'none';
|
|
12
|
+
interface StorageEvent {
|
|
13
|
+
type: 'set' | 'remove' | 'clear';
|
|
14
|
+
key?: string;
|
|
15
|
+
value?: any;
|
|
16
|
+
timestamp: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Unified persistent storage interface
|
|
20
|
+
*/
|
|
21
|
+
export interface PersistentStorage {
|
|
22
|
+
setItem(key: string, value: any): Promise<void>;
|
|
23
|
+
getItem<T>(key: string): Promise<T | null>;
|
|
24
|
+
removeItem(key: string): Promise<void>;
|
|
25
|
+
clear(): Promise<void>;
|
|
26
|
+
isAvailable(): Promise<boolean>;
|
|
27
|
+
getBackend(): StorageBackend;
|
|
28
|
+
}
|
|
29
|
+
export declare function getStorage(): Promise<PersistentStorage>;
|
|
30
|
+
/**
|
|
31
|
+
* Reset storage (for testing)
|
|
32
|
+
*/
|
|
33
|
+
export declare function resetStorage(): void;
|
|
34
|
+
/**
|
|
35
|
+
* Listen for storage changes from other tabs
|
|
36
|
+
*/
|
|
37
|
+
export declare function onStorageChange(callback: (event: StorageEvent) => void): () => void;
|
|
38
|
+
export {};
|
|
39
|
+
//# sourceMappingURL=persistentStorage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persistentStorage.d.ts","sourceRoot":"","sources":["../../src/utils/persistentStorage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,cAAc,GAAG,MAAM,CAAC;AAEnE,UAAU,YAAY;IACpB,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC3C,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,UAAU,IAAI,cAAc,CAAC;CAC9B;AAoZD,wBAAsB,UAAU,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAW7D;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAInC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,MAAM,IAAI,CAenF"}
|
|
@@ -1,14 +1,27 @@
|
|
|
1
1
|
import type { AuthToken, AuthUser } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Token Storage Layer
|
|
4
|
+
*
|
|
5
|
+
* Manages authentication tokens, user data, and account data using
|
|
6
|
+
* the persistent storage layer (IndexedDB + localStorage fallback).
|
|
7
|
+
* All methods are async to support IndexedDB operations.
|
|
8
|
+
*/
|
|
2
9
|
export declare const tokenStorage: {
|
|
3
|
-
saveToken(token: string, expiresAt?: number): void
|
|
4
|
-
getToken(): AuthToken | null
|
|
5
|
-
clearToken(): void
|
|
6
|
-
saveUser(user: AuthUser): void
|
|
7
|
-
getUser(): AuthUser | null
|
|
8
|
-
clearUser(): void
|
|
9
|
-
clearAll(): void
|
|
10
|
-
saveAccountData(data: Record<string, any>): void
|
|
11
|
-
getAccountData(): Record<string, any> | null
|
|
12
|
-
clearAccountData(): void
|
|
10
|
+
saveToken(token: string, expiresAt?: number): Promise<void>;
|
|
11
|
+
getToken(): Promise<AuthToken | null>;
|
|
12
|
+
clearToken(): Promise<void>;
|
|
13
|
+
saveUser(user: AuthUser): Promise<void>;
|
|
14
|
+
getUser(): Promise<AuthUser | null>;
|
|
15
|
+
clearUser(): Promise<void>;
|
|
16
|
+
clearAll(): Promise<void>;
|
|
17
|
+
saveAccountData(data: Record<string, any>): Promise<void>;
|
|
18
|
+
getAccountData(): Promise<Record<string, any> | null>;
|
|
19
|
+
clearAccountData(): Promise<void>;
|
|
20
|
+
saveAccountInfo(accountInfo: Record<string, any>, ttl?: number): Promise<void>;
|
|
21
|
+
getAccountInfo(): Promise<{
|
|
22
|
+
data: Record<string, any>;
|
|
23
|
+
isStale: boolean;
|
|
24
|
+
} | null>;
|
|
25
|
+
clearAccountInfo(): Promise<void>;
|
|
13
26
|
};
|
|
14
27
|
//# sourceMappingURL=tokenStorage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenStorage.d.ts","sourceRoot":"","sources":["../../src/utils/tokenStorage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"tokenStorage.d.ts","sourceRoot":"","sources":["../../src/utils/tokenStorage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AASpD;;;;;;GAMG;AACH,eAAO,MAAM,YAAY;qBACA,MAAM,cAAc,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;gBAS/C,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;kBAevB,OAAO,CAAC,IAAI,CAAC;mBAKZ,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;eAK5B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;iBAKtB,OAAO,CAAC,IAAI,CAAC;gBAKd,OAAO,CAAC,IAAI,CAAC;0BAOH,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;sBAKvC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;wBAKjC,OAAO,CAAC,IAAI,CAAC;iCAMxB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAC3B,MAAM,GACV,OAAO,CAAC,IAAI,CAAC;sBAUQ,OAAO,CAAC;QAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC1B,OAAO,EAAE,OAAO,CAAC;KAClB,GAAG,IAAI,CAAC;wBAkBiB,OAAO,CAAC,IAAI,CAAC;CAIxC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@proveanything/smartlinks-auth-ui",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "Lightweight React authentication UI components with bearer token support and Smartlinks SDK integration",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.esm.js",
|
|
@@ -28,7 +28,8 @@
|
|
|
28
28
|
"react-dom": "^18.0.0"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@proveanything/smartlinks": "^1.0.0"
|
|
31
|
+
"@proveanything/smartlinks": "^1.0.0",
|
|
32
|
+
"react-phone-number-input": "^3.4.14"
|
|
32
33
|
},
|
|
33
34
|
"publishConfig": {
|
|
34
35
|
"access": "public"
|