@proveanything/smartlinks-auth-ui 0.5.1 → 0.5.2
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/api.d.ts +8 -1
- package/dist/api.d.ts.map +1 -1
- package/dist/components/SmartlinksAuthUI.d.ts.map +1 -1
- package/dist/index.esm.js +40 -7
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +40 -7
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +29 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -11509,10 +11509,14 @@ class AuthAPI {
|
|
|
11509
11509
|
return smartlinks__namespace.authKit.verifyMagicLink(this.clientId, token);
|
|
11510
11510
|
}
|
|
11511
11511
|
// ============= WhatsApp =============
|
|
11512
|
-
async sendWhatsApp(redirectUrl, phoneNumber) {
|
|
11512
|
+
async sendWhatsApp(redirectUrl, phoneNumber, reply) {
|
|
11513
11513
|
// phoneNumber is optional — backend extracts it from the inbound WhatsApp webhook.
|
|
11514
|
-
//
|
|
11515
|
-
return smartlinks__namespace.authKit.sendWhatsApp(this.clientId, {
|
|
11514
|
+
// `reply`, when provided, is sent back to the user via WhatsApp on successful verification.
|
|
11515
|
+
return smartlinks__namespace.authKit.sendWhatsApp(this.clientId, {
|
|
11516
|
+
phoneNumber: phoneNumber ?? '',
|
|
11517
|
+
redirectUrl,
|
|
11518
|
+
...(reply ? { reply } : {}),
|
|
11519
|
+
});
|
|
11516
11520
|
}
|
|
11517
11521
|
async getWhatsAppStatus(token) {
|
|
11518
11522
|
return smartlinks__namespace.authKit.getWhatsAppStatus(this.clientId, token);
|
|
@@ -12843,6 +12847,31 @@ const getActionResultErrorMessage = (result) => {
|
|
|
12843
12847
|
details: candidate.details,
|
|
12844
12848
|
});
|
|
12845
12849
|
};
|
|
12850
|
+
const interpolateReply = (input, vars) => {
|
|
12851
|
+
if (!input)
|
|
12852
|
+
return input;
|
|
12853
|
+
return input
|
|
12854
|
+
.replace(/\{\{\s*name\s*\}\}/gi, vars.name?.trim() || 'there')
|
|
12855
|
+
.replace(/\{\{\s*clientName\s*\}\}/gi, vars.clientName?.trim() || '')
|
|
12856
|
+
.replace(/\{\{\s*phoneNumber\s*\}\}/gi, vars.phoneNumber?.trim() || '');
|
|
12857
|
+
};
|
|
12858
|
+
const buildWhatsAppReply = (cfg, vars) => {
|
|
12859
|
+
if (!cfg)
|
|
12860
|
+
return undefined;
|
|
12861
|
+
if (cfg.enabled === false)
|
|
12862
|
+
return undefined;
|
|
12863
|
+
const text = interpolateReply(cfg.text, vars);
|
|
12864
|
+
const cta = cfg.cta && cfg.cta.buttonUrl && cfg.cta.buttonLabel
|
|
12865
|
+
? {
|
|
12866
|
+
body: interpolateReply(cfg.cta.body, vars) || '',
|
|
12867
|
+
buttonLabel: interpolateReply(cfg.cta.buttonLabel, vars) || cfg.cta.buttonLabel,
|
|
12868
|
+
buttonUrl: interpolateReply(cfg.cta.buttonUrl, vars) || cfg.cta.buttonUrl,
|
|
12869
|
+
}
|
|
12870
|
+
: undefined;
|
|
12871
|
+
if (!text && !cta)
|
|
12872
|
+
return undefined;
|
|
12873
|
+
return { ...(text ? { text } : {}), ...(cta ? { cta } : {}) };
|
|
12874
|
+
};
|
|
12846
12875
|
// Default Smartlinks Google OAuth Client ID (public - safe to expose)
|
|
12847
12876
|
const DEFAULT_GOOGLE_CLIENT_ID = '696509063554-jdlbjl8vsjt7cr0vgkjkjf3ffnvi3a70.apps.googleusercontent.com';
|
|
12848
12877
|
// Default Google OAuth proxy URL (hosted on our whitelisted domain)
|
|
@@ -13020,7 +13049,7 @@ const checkSilentGoogleSignIn = async (clientId, googleClientId) => {
|
|
|
13020
13049
|
});
|
|
13021
13050
|
};
|
|
13022
13051
|
// getFriendlyErrorMessage is now imported from ../utils/errorHandling
|
|
13023
|
-
const SmartlinksAuthUI = ({ apiEndpoint, clientId, clientName, accountData, onAuthSuccess, onAuthError, onRedirect, enabledProviders = ['email', 'google', 'phone'], initialMode, signupProminence, redirectUrl, theme = 'light', className, customization, skipConfigFetch = false, minimal = false, logger, proxyMode = false, collectionId, disableConfigCache = false, enableSilentGoogleSignIn = false, }) => {
|
|
13052
|
+
const SmartlinksAuthUI = ({ apiEndpoint, clientId, clientName, accountData, onAuthSuccess, onAuthError, onRedirect, enabledProviders = ['email', 'google', 'phone'], initialMode, signupProminence, redirectUrl, theme = 'light', className, customization, skipConfigFetch = false, minimal = false, logger, proxyMode = false, collectionId, disableConfigCache = false, enableSilentGoogleSignIn = false, whatsappReply, }) => {
|
|
13024
13053
|
// Resolve signup prominence from props, customization, config, or default
|
|
13025
13054
|
const resolvedSignupProminence = signupProminence || customization?.signupProminence || 'minimal';
|
|
13026
13055
|
// Determine initial mode based on signupProminence setting
|
|
@@ -14243,9 +14272,13 @@ const SmartlinksAuthUI = ({ apiEndpoint, clientId, clientName, accountData, onAu
|
|
|
14243
14272
|
try {
|
|
14244
14273
|
// No ensureAccount and no phone number — the backend creates/links the
|
|
14245
14274
|
// account from the inbound WhatsApp webhook (sender's number is the proof).
|
|
14246
|
-
//
|
|
14247
|
-
|
|
14248
|
-
const
|
|
14275
|
+
// Resolve reply config: per-call prop wins, otherwise fall back to AuthKit default.
|
|
14276
|
+
const replyConfig = whatsappReply ?? config?.whatsappReply;
|
|
14277
|
+
const reply = buildWhatsAppReply(replyConfig, {
|
|
14278
|
+
name: displayName,
|
|
14279
|
+
clientName,
|
|
14280
|
+
});
|
|
14281
|
+
const result = await api.sendWhatsApp(getRedirectUrl(), undefined, reply);
|
|
14249
14282
|
return result;
|
|
14250
14283
|
}
|
|
14251
14284
|
catch (err) {
|