@atlasauth/js 0.1.6 → 0.1.7
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/native.d.ts +76 -2
- package/dist/native.js +195 -9
- package/dist/native.js.map +1 -1
- package/package.json +1 -1
package/dist/native.d.ts
CHANGED
|
@@ -136,11 +136,24 @@ export declare function renderGoogleButton(opts: {
|
|
|
136
136
|
*
|
|
137
137
|
* The failure mode people hit is misalignment — the invisible button not covering
|
|
138
138
|
* the visible one, so clicks miss. This guards against it: the overlay fills the
|
|
139
|
-
* wrapper,
|
|
140
|
-
*
|
|
139
|
+
* wrapper, GSI's rendered button is STRETCHED (inline) to fill the overlay rather
|
|
140
|
+
* than centred-and-clipped, and a ResizeObserver re-renders on layout changes so
|
|
141
|
+
* the whole surface stays clickable. In development it also self-verifies the
|
|
142
|
+
* coverage and warns (loudly, never throwing) when the geometry is off.
|
|
141
143
|
*
|
|
142
144
|
* `wrapper` is YOUR styled button (or its container); it is made position:relative
|
|
143
145
|
* if it is not already positioned. Returns `{ destroy }` to tear the overlay down.
|
|
146
|
+
*
|
|
147
|
+
* `visible` (default false) picks WHAT the user sees (customer spec 4.5):
|
|
148
|
+
* - false — today's behaviour: Google's button is drawn at opacity 0 as an
|
|
149
|
+
* invisible click-target overlaid on YOUR styled button. The user sees your
|
|
150
|
+
* button; the click lands on Google's. The overlay is `aria-hidden`.
|
|
151
|
+
* - true — Google's OWN button is drawn VISIBLY (opacity 1), on top of the
|
|
152
|
+
* wrapper, and IS the button the user operates (for teams who'd rather not
|
|
153
|
+
* maintain a styled button). It is NOT aria-hidden, since it is the real
|
|
154
|
+
* control. The host button underneath is then unnecessary.
|
|
155
|
+
* Either way the stretch-to-fill + ResizeObserver run, so Google's button tracks
|
|
156
|
+
* the wrapper's width.
|
|
144
157
|
*/
|
|
145
158
|
export declare function renderGoogleOverlayButton(opts: {
|
|
146
159
|
wrapper: HTMLElement;
|
|
@@ -151,8 +164,69 @@ export declare function renderGoogleOverlayButton(opts: {
|
|
|
151
164
|
size?: 'large' | 'medium' | 'small';
|
|
152
165
|
/** Also show the One-Tap prompt (OFF by default; the overlay button always shows). */
|
|
153
166
|
oneTap?: boolean;
|
|
167
|
+
/**
|
|
168
|
+
* Render Google's button VISIBLY (opacity 1) instead of as a transparent overlay
|
|
169
|
+
* (default false = the invisible-overlay technique). See the function doc.
|
|
170
|
+
*/
|
|
171
|
+
visible?: boolean;
|
|
154
172
|
host?: GsiHost;
|
|
155
173
|
}): Promise<{
|
|
156
174
|
destroy: () => void;
|
|
157
175
|
}>;
|
|
176
|
+
/** A measured bounding box, plain numbers so the diagnosis serialises cleanly. */
|
|
177
|
+
export interface Rect {
|
|
178
|
+
width: number;
|
|
179
|
+
height: number;
|
|
180
|
+
top: number;
|
|
181
|
+
left: number;
|
|
182
|
+
right: number;
|
|
183
|
+
bottom: number;
|
|
184
|
+
}
|
|
185
|
+
/** The overlay-vs-wrapper geometry for a currently mounted overlay button. */
|
|
186
|
+
export interface OverlayGeometry {
|
|
187
|
+
/** Does the transparent overlay cover the host button on every edge? */
|
|
188
|
+
covers: boolean;
|
|
189
|
+
wrapper: Rect;
|
|
190
|
+
overlay: Rect;
|
|
191
|
+
/** The GSI iframe's size, or null if no iframe is present yet. */
|
|
192
|
+
iframe: {
|
|
193
|
+
width: number;
|
|
194
|
+
height: number;
|
|
195
|
+
} | null;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* The knowable facts about a provider's native-sign-in setup, as the SDK can see
|
|
199
|
+
* them. Deliberately honest about its limits: it reports the CURRENT page origin,
|
|
200
|
+
* NOT the provider's registered JavaScript origins — the SDK cannot read Google's
|
|
201
|
+
* client config, so the caller must compare `origin` against what they registered.
|
|
202
|
+
*/
|
|
203
|
+
export interface ProviderDiagnosis {
|
|
204
|
+
provider: string;
|
|
205
|
+
/** Resolved render mode from `/v1/client/environment` (`native` when unset but native), else null if the provider isn't listed. */
|
|
206
|
+
mode: 'native' | 'redirect' | null;
|
|
207
|
+
/** The public client_id from the environment, or null. */
|
|
208
|
+
clientId: string | null;
|
|
209
|
+
/** Whether the environment marks this provider native. */
|
|
210
|
+
native: boolean;
|
|
211
|
+
/** This page's origin — compare it to YOUR registered JS origins; the SDK can't. */
|
|
212
|
+
origin: string | null;
|
|
213
|
+
/** Overlay geometry if a button for this provider is currently mounted, else null. */
|
|
214
|
+
overlay: OverlayGeometry | null;
|
|
215
|
+
/** Has a Google credential been minted in this session? (Only tracked for google.) */
|
|
216
|
+
credentialMintedThisSession: boolean;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Collect the knowable facts about a native provider's setup for a support ticket
|
|
220
|
+
* or a dev console: its resolved `mode` and `client_id` (from
|
|
221
|
+
* `/v1/client/environment`), whether it's native, the current page origin, the
|
|
222
|
+
* live overlay geometry IF a button is mounted, and whether a Google credential has
|
|
223
|
+
* been minted this session. Hook-free, SSR-safe, and never throws — a failed
|
|
224
|
+
* environment fetch simply leaves the server-sourced fields null.
|
|
225
|
+
*
|
|
226
|
+
* It does NOT (and cannot) report the provider's registered JavaScript origins: the
|
|
227
|
+
* caller compares the returned `origin` against what they registered with Google.
|
|
228
|
+
*/
|
|
229
|
+
export declare function diagnoseProvider(client: FapiClient, provider: string): Promise<ProviderDiagnosis>;
|
|
230
|
+
/** Reset the session credential flag (tests). */
|
|
231
|
+
export declare function resetGoogleCredentialFlag(): void;
|
|
158
232
|
export {};
|
package/dist/native.js
CHANGED
|
@@ -19,6 +19,8 @@ exports.resetGoogleIdentityServices = resetGoogleIdentityServices;
|
|
|
19
19
|
exports.requestGoogleCredential = requestGoogleCredential;
|
|
20
20
|
exports.renderGoogleButton = renderGoogleButton;
|
|
21
21
|
exports.renderGoogleOverlayButton = renderGoogleOverlayButton;
|
|
22
|
+
exports.diagnoseProvider = diagnoseProvider;
|
|
23
|
+
exports.resetGoogleCredentialFlag = resetGoogleCredentialFlag;
|
|
22
24
|
const fapi_1 = require("./fapi");
|
|
23
25
|
/** Build the POST body for `/v1/client/sign_ins/id_token`. */
|
|
24
26
|
function nativeSignInBody(input) {
|
|
@@ -124,6 +126,18 @@ function reportProviderUnavailable(client, provider, reason) {
|
|
|
124
126
|
/* ---- Google Identity Services (One-Tap / GSI) ---------------------------- */
|
|
125
127
|
const GSI_SRC = 'https://accounts.google.com/gsi/client';
|
|
126
128
|
let gsiLoad = null;
|
|
129
|
+
function isDevEnv() {
|
|
130
|
+
return typeof process !== 'undefined' && process?.env?.NODE_ENV !== 'production';
|
|
131
|
+
}
|
|
132
|
+
const mountedOverlays = new Set();
|
|
133
|
+
/**
|
|
134
|
+
* Session flag: has a Google credential (id_token) actually been minted in this
|
|
135
|
+
* document since the module loaded? Set in the GSI credential callback. Exposed
|
|
136
|
+
* (read-only) through {@link diagnoseProvider} so a caller can tell "the button is
|
|
137
|
+
* mounted and looks healthy but no click has ever produced a credential" apart from
|
|
138
|
+
* "it has worked at least once".
|
|
139
|
+
*/
|
|
140
|
+
let googleCredentialMintedThisSession = false;
|
|
127
141
|
/** Inject the GSI script once; resolves when it is ready. */
|
|
128
142
|
function loadGoogleIdentityServices(doc) {
|
|
129
143
|
if (gsiLoad)
|
|
@@ -212,11 +226,24 @@ async function renderGoogleButton(opts) {
|
|
|
212
226
|
*
|
|
213
227
|
* The failure mode people hit is misalignment — the invisible button not covering
|
|
214
228
|
* the visible one, so clicks miss. This guards against it: the overlay fills the
|
|
215
|
-
* wrapper,
|
|
216
|
-
*
|
|
229
|
+
* wrapper, GSI's rendered button is STRETCHED (inline) to fill the overlay rather
|
|
230
|
+
* than centred-and-clipped, and a ResizeObserver re-renders on layout changes so
|
|
231
|
+
* the whole surface stays clickable. In development it also self-verifies the
|
|
232
|
+
* coverage and warns (loudly, never throwing) when the geometry is off.
|
|
217
233
|
*
|
|
218
234
|
* `wrapper` is YOUR styled button (or its container); it is made position:relative
|
|
219
235
|
* if it is not already positioned. Returns `{ destroy }` to tear the overlay down.
|
|
236
|
+
*
|
|
237
|
+
* `visible` (default false) picks WHAT the user sees (customer spec 4.5):
|
|
238
|
+
* - false — today's behaviour: Google's button is drawn at opacity 0 as an
|
|
239
|
+
* invisible click-target overlaid on YOUR styled button. The user sees your
|
|
240
|
+
* button; the click lands on Google's. The overlay is `aria-hidden`.
|
|
241
|
+
* - true — Google's OWN button is drawn VISIBLY (opacity 1), on top of the
|
|
242
|
+
* wrapper, and IS the button the user operates (for teams who'd rather not
|
|
243
|
+
* maintain a styled button). It is NOT aria-hidden, since it is the real
|
|
244
|
+
* control. The host button underneath is then unnecessary.
|
|
245
|
+
* Either way the stretch-to-fill + ResizeObserver run, so Google's button tracks
|
|
246
|
+
* the wrapper's width.
|
|
220
247
|
*/
|
|
221
248
|
async function renderGoogleOverlayButton(opts) {
|
|
222
249
|
const host = opts.host ?? window;
|
|
@@ -229,8 +256,12 @@ async function renderGoogleOverlayButton(opts) {
|
|
|
229
256
|
client_id: opts.clientId,
|
|
230
257
|
nonce: opts.nonce,
|
|
231
258
|
callback: (response) => {
|
|
232
|
-
if (response.credential)
|
|
259
|
+
if (response.credential) {
|
|
260
|
+
// Record that native Google has produced a credential at least once this
|
|
261
|
+
// session (read back by {@link diagnoseProvider}), then hand it off.
|
|
262
|
+
googleCredentialMintedThisSession = true;
|
|
233
263
|
opts.onCredential(response.credential);
|
|
264
|
+
}
|
|
234
265
|
else
|
|
235
266
|
opts.onError?.(new Error('Google returned no credential.'));
|
|
236
267
|
},
|
|
@@ -239,17 +270,37 @@ async function renderGoogleOverlayButton(opts) {
|
|
|
239
270
|
const hadPosition = opts.wrapper.style.position !== '';
|
|
240
271
|
if (!hadPosition)
|
|
241
272
|
opts.wrapper.style.position = 'relative';
|
|
273
|
+
const visible = opts.visible ?? false;
|
|
242
274
|
const overlay = doc.createElement('div');
|
|
243
|
-
overlay
|
|
244
|
-
//
|
|
245
|
-
//
|
|
275
|
+
// Invisible-overlay mode (default): Google's button is a transparent click-target
|
|
276
|
+
// laid over the host's own button, so hide it from assistive tech (the host button
|
|
277
|
+
// carries the accessible name). Visible mode (spec 4.5 `googleButton:"google"`):
|
|
278
|
+
// it IS the real, operable button — leave it exposed.
|
|
279
|
+
if (!visible)
|
|
280
|
+
overlay.setAttribute('aria-hidden', 'true');
|
|
281
|
+
// On top, click-catching. opacity 0 => invisible overlay; opacity 1 => Google's own
|
|
282
|
+
// button shown visibly. NO flex centring — GSI's button is stretched to fill the
|
|
283
|
+
// wrapper below (inline), not centred-and-clipped under overflow:hidden.
|
|
246
284
|
overlay.style.cssText =
|
|
247
|
-
|
|
248
|
-
'display:flex;align-items:center;justify-content:center;';
|
|
285
|
+
`position:absolute;inset:0;z-index:2;opacity:${visible ? 1 : 0};overflow:hidden;`;
|
|
249
286
|
opts.wrapper.appendChild(overlay);
|
|
287
|
+
const mounted = { provider: 'google', wrapper: opts.wrapper, overlay };
|
|
288
|
+
mountedOverlays.add(mounted);
|
|
289
|
+
// Force an element GSI injected to fill the overlay exactly. INLINE and
|
|
290
|
+
// synchronous on purpose: the customer found the identical geometry applied via a
|
|
291
|
+
// stylesheet behaved differently from inline (specificity / cascade timing), so
|
|
292
|
+
// the working config sets width/height:100% directly on the style attribute.
|
|
293
|
+
const stretchToFill = (el) => {
|
|
294
|
+
const style = el?.style;
|
|
295
|
+
if (!style)
|
|
296
|
+
return;
|
|
297
|
+
style.width = '100%';
|
|
298
|
+
style.height = '100%';
|
|
299
|
+
};
|
|
250
300
|
const draw = () => {
|
|
251
301
|
// Google's button width must track the wrapper so every click lands on it;
|
|
252
|
-
// width is fixed at render time, so re-render on resize. Clamp to GSI's range
|
|
302
|
+
// width is fixed at render time, so re-render on resize. Clamp to GSI's range so
|
|
303
|
+
// GSI still draws a real button, which we then CSS-stretch to cover the wrapper.
|
|
253
304
|
const measured = Math.round(opts.wrapper.getBoundingClientRect().width) || 320;
|
|
254
305
|
const width = Math.max(200, Math.min(400, measured));
|
|
255
306
|
overlay.replaceChildren();
|
|
@@ -260,6 +311,55 @@ async function renderGoogleOverlayButton(opts) {
|
|
|
260
311
|
text: 'continue_with',
|
|
261
312
|
width,
|
|
262
313
|
});
|
|
314
|
+
// Customer's working fix: stretch GSI's rendered container (the direct child div
|
|
315
|
+
// GSI creates) AND the <iframe> it injects to fill the wrapper, inline, instead
|
|
316
|
+
// of letting a fixed-size button sit centred under overflow:hidden (which leaves
|
|
317
|
+
// dead zones where a click misses).
|
|
318
|
+
stretchToFill(overlay.firstElementChild);
|
|
319
|
+
stretchToFill(overlay.querySelector('iframe'));
|
|
320
|
+
verifyCoverage();
|
|
321
|
+
};
|
|
322
|
+
// Dev-only, loud, never-throwing self-check that the transparent overlay actually
|
|
323
|
+
// covers the host button and GSI drew a sane-sized iframe. A healthy-looking button
|
|
324
|
+
// whose overlay doesn't cover it is exactly the "clicks do nothing" bug.
|
|
325
|
+
const rectOf = (r) => ({
|
|
326
|
+
width: r.width,
|
|
327
|
+
height: r.height,
|
|
328
|
+
top: r.top,
|
|
329
|
+
left: r.left,
|
|
330
|
+
right: r.right,
|
|
331
|
+
bottom: r.bottom,
|
|
332
|
+
});
|
|
333
|
+
const verifyCoverage = () => {
|
|
334
|
+
if (!isDevEnv())
|
|
335
|
+
return;
|
|
336
|
+
if (typeof window === 'undefined')
|
|
337
|
+
return; // SSR: nothing to measure.
|
|
338
|
+
try {
|
|
339
|
+
const w = opts.wrapper.getBoundingClientRect();
|
|
340
|
+
const o = overlay.getBoundingClientRect();
|
|
341
|
+
// Overlay must cover the wrapper on every edge (1px rounding slack), or clicks
|
|
342
|
+
// fall through to dead space outside the invisible button.
|
|
343
|
+
const covers = o.left <= w.left + 1 &&
|
|
344
|
+
o.top <= w.top + 1 &&
|
|
345
|
+
o.right >= w.right - 1 &&
|
|
346
|
+
o.bottom >= w.bottom - 1;
|
|
347
|
+
const frame = overlay.querySelector('iframe');
|
|
348
|
+
const fr = frame?.getBoundingClientRect();
|
|
349
|
+
const iframeOk = !!fr && fr.width >= 8 && fr.height >= 8;
|
|
350
|
+
if (!covers || !iframeOk) {
|
|
351
|
+
console.warn('[atlas] Google overlay misaligned/undersized — clicks may miss the invisible GSI button', {
|
|
352
|
+
covers,
|
|
353
|
+
iframeOk,
|
|
354
|
+
wrapper: rectOf(w),
|
|
355
|
+
overlay: rectOf(o),
|
|
356
|
+
iframe: fr ? { width: fr.width, height: fr.height } : null,
|
|
357
|
+
});
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
catch {
|
|
361
|
+
// Dev diagnostics must never disturb a real sign-in.
|
|
362
|
+
}
|
|
263
363
|
};
|
|
264
364
|
draw();
|
|
265
365
|
let observer;
|
|
@@ -276,10 +376,96 @@ async function renderGoogleOverlayButton(opts) {
|
|
|
276
376
|
return {
|
|
277
377
|
destroy: () => {
|
|
278
378
|
observer?.disconnect();
|
|
379
|
+
mountedOverlays.delete(mounted);
|
|
279
380
|
overlay.remove();
|
|
280
381
|
if (!hadPosition)
|
|
281
382
|
opts.wrapper.style.position = '';
|
|
282
383
|
},
|
|
283
384
|
};
|
|
284
385
|
}
|
|
386
|
+
/** Measure a mounted overlay for `provider` against its wrapper, or null. */
|
|
387
|
+
function measureMountedOverlay(provider) {
|
|
388
|
+
if (typeof window === 'undefined')
|
|
389
|
+
return null;
|
|
390
|
+
for (const m of mountedOverlays) {
|
|
391
|
+
if (m.provider !== provider)
|
|
392
|
+
continue;
|
|
393
|
+
try {
|
|
394
|
+
const w = m.wrapper.getBoundingClientRect();
|
|
395
|
+
const o = m.overlay.getBoundingClientRect();
|
|
396
|
+
const frame = m.overlay.querySelector('iframe');
|
|
397
|
+
const fr = frame?.getBoundingClientRect();
|
|
398
|
+
return {
|
|
399
|
+
covers: o.left <= w.left + 1 &&
|
|
400
|
+
o.top <= w.top + 1 &&
|
|
401
|
+
o.right >= w.right - 1 &&
|
|
402
|
+
o.bottom >= w.bottom - 1,
|
|
403
|
+
wrapper: {
|
|
404
|
+
width: w.width,
|
|
405
|
+
height: w.height,
|
|
406
|
+
top: w.top,
|
|
407
|
+
left: w.left,
|
|
408
|
+
right: w.right,
|
|
409
|
+
bottom: w.bottom,
|
|
410
|
+
},
|
|
411
|
+
overlay: {
|
|
412
|
+
width: o.width,
|
|
413
|
+
height: o.height,
|
|
414
|
+
top: o.top,
|
|
415
|
+
left: o.left,
|
|
416
|
+
right: o.right,
|
|
417
|
+
bottom: o.bottom,
|
|
418
|
+
},
|
|
419
|
+
iframe: fr ? { width: fr.width, height: fr.height } : null,
|
|
420
|
+
};
|
|
421
|
+
}
|
|
422
|
+
catch {
|
|
423
|
+
return null;
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
return null;
|
|
427
|
+
}
|
|
428
|
+
/**
|
|
429
|
+
* Collect the knowable facts about a native provider's setup for a support ticket
|
|
430
|
+
* or a dev console: its resolved `mode` and `client_id` (from
|
|
431
|
+
* `/v1/client/environment`), whether it's native, the current page origin, the
|
|
432
|
+
* live overlay geometry IF a button is mounted, and whether a Google credential has
|
|
433
|
+
* been minted this session. Hook-free, SSR-safe, and never throws — a failed
|
|
434
|
+
* environment fetch simply leaves the server-sourced fields null.
|
|
435
|
+
*
|
|
436
|
+
* It does NOT (and cannot) report the provider's registered JavaScript origins: the
|
|
437
|
+
* caller compares the returned `origin` against what they registered with Google.
|
|
438
|
+
*/
|
|
439
|
+
async function diagnoseProvider(client, provider) {
|
|
440
|
+
const origin = typeof window !== 'undefined' && window.location ? window.location.origin : null;
|
|
441
|
+
let mode = null;
|
|
442
|
+
let clientId = null;
|
|
443
|
+
let native = false;
|
|
444
|
+
try {
|
|
445
|
+
const res = await client.get('/v1/client/environment');
|
|
446
|
+
const p = res.data?.social_providers?.find((x) => x.provider === provider);
|
|
447
|
+
if (p) {
|
|
448
|
+
native = p.native === true;
|
|
449
|
+
clientId = typeof p.client_id === 'string' ? p.client_id : null;
|
|
450
|
+
// `mode` absent but native means the default native mode (see usesNativeGoogle).
|
|
451
|
+
mode = p.mode === 'redirect' ? 'redirect' : p.mode === 'native' ? 'native' : native ? 'native' : null;
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
catch {
|
|
455
|
+
// never throw — leave the server-sourced fields at their null defaults.
|
|
456
|
+
}
|
|
457
|
+
return {
|
|
458
|
+
provider,
|
|
459
|
+
mode,
|
|
460
|
+
clientId,
|
|
461
|
+
native,
|
|
462
|
+
origin,
|
|
463
|
+
overlay: measureMountedOverlay(provider),
|
|
464
|
+
credentialMintedThisSession: provider === 'google' ? googleCredentialMintedThisSession : false,
|
|
465
|
+
};
|
|
466
|
+
}
|
|
467
|
+
/** Reset the session credential flag (tests). */
|
|
468
|
+
function resetGoogleCredentialFlag() {
|
|
469
|
+
googleCredentialMintedThisSession = false;
|
|
470
|
+
}
|
|
285
471
|
//# sourceMappingURL=native.js.map
|
package/dist/native.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native.js","sourceRoot":"","sources":["../src/native.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"native.js","sourceRoot":"","sources":["../src/native.ts"],"names":[],"mappings":"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"}
|