stellar-drive 1.2.24 → 1.2.26
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/auth/loginGuard.d.ts +14 -19
- package/dist/auth/loginGuard.d.ts.map +1 -1
- package/dist/auth/loginGuard.js +18 -78
- package/dist/auth/loginGuard.js.map +1 -1
- package/dist/bin/install-pwa.d.ts.map +1 -1
- package/dist/bin/install-pwa.js +387 -38
- package/dist/bin/install-pwa.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @fileoverview Login Guard -- Local Credential Pre-Check &
|
|
2
|
+
* @fileoverview Login Guard -- Local Credential Pre-Check & Lockout
|
|
3
3
|
*
|
|
4
4
|
* Minimizes Supabase auth API requests by verifying credentials locally first.
|
|
5
5
|
* Only calls Supabase when the local hash matches (correct password) or when no
|
|
6
|
-
* local hash exists
|
|
6
|
+
* local hash exists.
|
|
7
7
|
*
|
|
8
8
|
* Architecture:
|
|
9
|
-
* - Maintains **in-memory** state for fast local-hash failure counters
|
|
10
|
-
*
|
|
11
|
-
* UX-level optimisations, not security boundaries).
|
|
9
|
+
* - Maintains **in-memory** state for fast local-hash failure counters
|
|
10
|
+
* (resets on page refresh by design).
|
|
12
11
|
* - Maintains **persistent** lockout state in IndexedDB (`singleUserConfig`
|
|
13
12
|
* table, key `'pin_lockout'`). This survives page refreshes and tab
|
|
14
13
|
* closes, preventing brute-force attacks that rely on reloading to reset
|
|
@@ -16,11 +15,10 @@
|
|
|
16
15
|
* - Two operational strategies:
|
|
17
16
|
* 1. `local-match`: A cached hash exists and the user's input matches it.
|
|
18
17
|
* Proceed to Supabase for authoritative verification.
|
|
19
|
-
* 2. `no-cache`: No cached hash is available. Proceed to Supabase
|
|
20
|
-
* exponential backoff on repeated failures.
|
|
18
|
+
* 2. `no-cache`: No cached hash is available. Proceed to Supabase directly.
|
|
21
19
|
* - After a configurable number of consecutive local mismatches, the cached hash
|
|
22
20
|
* is invalidated (it may be stale from a server-side password change) and the
|
|
23
|
-
* guard falls back to
|
|
21
|
+
* guard falls back to direct Supabase mode.
|
|
24
22
|
*
|
|
25
23
|
* ## Lockout Tiers (persistent, survives page refresh)
|
|
26
24
|
*
|
|
@@ -52,7 +50,7 @@
|
|
|
52
50
|
* - `'local-match'` -- The user's input matched a locally cached hash.
|
|
53
51
|
* Supabase is called for authoritative confirmation.
|
|
54
52
|
* - `'no-cache'` -- No local hash was available (or it was invalidated).
|
|
55
|
-
* Supabase is called directly
|
|
53
|
+
* Supabase is called directly.
|
|
56
54
|
*/
|
|
57
55
|
export type PreCheckStrategy = 'local-match' | 'no-cache';
|
|
58
56
|
/**
|
|
@@ -121,9 +119,8 @@ export declare function preCheckLogin(input: string): Promise<PreCheckResult>;
|
|
|
121
119
|
/**
|
|
122
120
|
* Called after a successful Supabase login.
|
|
123
121
|
*
|
|
124
|
-
* Resets
|
|
125
|
-
*
|
|
126
|
-
* record from IndexedDB so the user starts fresh.
|
|
122
|
+
* Resets the local failure counter and clears the persistent lockout record
|
|
123
|
+
* from IndexedDB so the user starts fresh.
|
|
127
124
|
*
|
|
128
125
|
* @example
|
|
129
126
|
* ```ts
|
|
@@ -139,11 +136,9 @@ export declare function onLoginSuccess(): Promise<void>;
|
|
|
139
136
|
*
|
|
140
137
|
* - `'local-match'`: Supabase rejected a locally-matched password, meaning the
|
|
141
138
|
* cached hash is **stale** (password changed server-side). The cached hash is
|
|
142
|
-
* invalidated so future attempts go through
|
|
143
|
-
* - `'no-cache'`:
|
|
144
|
-
*
|
|
145
|
-
* persistent failure counter and applies a tier-based lockout if the
|
|
146
|
-
* threshold is reached.
|
|
139
|
+
* invalidated so future attempts go through direct Supabase mode.
|
|
140
|
+
* - `'no-cache'`: Increments the persistent failure counter and applies a
|
|
141
|
+
* tier-based lockout if the threshold is reached.
|
|
147
142
|
*
|
|
148
143
|
* @param strategy - The {@link PreCheckStrategy} that was returned by
|
|
149
144
|
* {@link preCheckLogin} for this attempt.
|
|
@@ -161,8 +156,8 @@ export declare function onLoginFailure(strategy: PreCheckStrategy): Promise<void
|
|
|
161
156
|
/**
|
|
162
157
|
* Full reset of all login guard state.
|
|
163
158
|
*
|
|
164
|
-
* Call on sign-out or app reset to clear failure counters
|
|
165
|
-
*
|
|
159
|
+
* Call on sign-out or app reset to clear failure counters so the next login
|
|
160
|
+
* attempt starts with a clean slate.
|
|
166
161
|
*
|
|
167
162
|
* @example
|
|
168
163
|
* ```ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loginGuard.d.ts","sourceRoot":"","sources":["../../src/auth/loginGuard.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"loginGuard.d.ts","sourceRoot":"","sources":["../../src/auth/loginGuard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AA+CH;;;;;;;GAOG;AACH,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG,UAAU,CAAC;AAE1D;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,GACtB;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,gBAAgB,CAAA;CAAE,GAC7C;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AA8G7D;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,CAQ9D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAmE1E;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAUpD;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgC9E;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CASrD"}
|
package/dist/auth/loginGuard.js
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @fileoverview Login Guard -- Local Credential Pre-Check &
|
|
2
|
+
* @fileoverview Login Guard -- Local Credential Pre-Check & Lockout
|
|
3
3
|
*
|
|
4
4
|
* Minimizes Supabase auth API requests by verifying credentials locally first.
|
|
5
5
|
* Only calls Supabase when the local hash matches (correct password) or when no
|
|
6
|
-
* local hash exists
|
|
6
|
+
* local hash exists.
|
|
7
7
|
*
|
|
8
8
|
* Architecture:
|
|
9
|
-
* - Maintains **in-memory** state for fast local-hash failure counters
|
|
10
|
-
*
|
|
11
|
-
* UX-level optimisations, not security boundaries).
|
|
9
|
+
* - Maintains **in-memory** state for fast local-hash failure counters
|
|
10
|
+
* (resets on page refresh by design).
|
|
12
11
|
* - Maintains **persistent** lockout state in IndexedDB (`singleUserConfig`
|
|
13
12
|
* table, key `'pin_lockout'`). This survives page refreshes and tab
|
|
14
13
|
* closes, preventing brute-force attacks that rely on reloading to reset
|
|
@@ -16,11 +15,10 @@
|
|
|
16
15
|
* - Two operational strategies:
|
|
17
16
|
* 1. `local-match`: A cached hash exists and the user's input matches it.
|
|
18
17
|
* Proceed to Supabase for authoritative verification.
|
|
19
|
-
* 2. `no-cache`: No cached hash is available. Proceed to Supabase
|
|
20
|
-
* exponential backoff on repeated failures.
|
|
18
|
+
* 2. `no-cache`: No cached hash is available. Proceed to Supabase directly.
|
|
21
19
|
* - After a configurable number of consecutive local mismatches, the cached hash
|
|
22
20
|
* is invalidated (it may be stale from a server-side password change) and the
|
|
23
|
-
* guard falls back to
|
|
21
|
+
* guard falls back to direct Supabase mode.
|
|
24
22
|
*
|
|
25
23
|
* ## Lockout Tiers (persistent, survives page refresh)
|
|
26
24
|
*
|
|
@@ -57,12 +55,6 @@ import { debugLog, debugWarn } from '../debug';
|
|
|
57
55
|
* invalidated. Prevents a permanently stale hash from locking out the user.
|
|
58
56
|
*/
|
|
59
57
|
const LOCAL_FAILURE_THRESHOLD = 5;
|
|
60
|
-
/** Base delay (in milliseconds) for the first rate-limited retry. */
|
|
61
|
-
const BASE_DELAY_MS = 1000;
|
|
62
|
-
/** Maximum delay cap (in milliseconds) to prevent absurdly long waits. */
|
|
63
|
-
const MAX_DELAY_MS = 30000;
|
|
64
|
-
/** Multiplier for exponential backoff between rate-limited attempts. */
|
|
65
|
-
const BACKOFF_MULTIPLIER = 2;
|
|
66
58
|
/**
|
|
67
59
|
* Progressive persistent-lockout tiers.
|
|
68
60
|
*
|
|
@@ -86,32 +78,9 @@ const PIN_LOCKOUT_KEY = 'pin_lockout';
|
|
|
86
78
|
* Once this reaches `LOCAL_FAILURE_THRESHOLD`, the cached hash is invalidated.
|
|
87
79
|
*/
|
|
88
80
|
let consecutiveLocalFailures = 0;
|
|
89
|
-
/**
|
|
90
|
-
* Number of failed Supabase login attempts in no-cache mode. Used to compute
|
|
91
|
-
* the exponential backoff delay.
|
|
92
|
-
*/
|
|
93
|
-
let rateLimitAttempts = 0;
|
|
94
|
-
/**
|
|
95
|
-
* Timestamp (ms since epoch) before which the next login attempt is blocked.
|
|
96
|
-
* Zero means no rate limit is active.
|
|
97
|
-
*/
|
|
98
|
-
let nextAllowedAttempt = 0;
|
|
99
81
|
// =============================================================================
|
|
100
82
|
// INTERNAL HELPERS
|
|
101
83
|
// =============================================================================
|
|
102
|
-
/**
|
|
103
|
-
* Check whether the current rate-limit window allows a new attempt.
|
|
104
|
-
*
|
|
105
|
-
* @returns An object indicating whether the attempt is allowed, and if not,
|
|
106
|
-
* how many milliseconds remain until the next allowed attempt.
|
|
107
|
-
*/
|
|
108
|
-
function checkRateLimit() {
|
|
109
|
-
const now = Date.now();
|
|
110
|
-
if (nextAllowedAttempt > now) {
|
|
111
|
-
return { allowed: false, retryAfterMs: nextAllowedAttempt - now };
|
|
112
|
-
}
|
|
113
|
-
return { allowed: true };
|
|
114
|
-
}
|
|
115
84
|
/**
|
|
116
85
|
* Invalidate the locally cached gate hash in IndexedDB.
|
|
117
86
|
*
|
|
@@ -291,33 +260,16 @@ export async function preCheckLogin(input) {
|
|
|
291
260
|
if (consecutiveLocalFailures >= LOCAL_FAILURE_THRESHOLD) {
|
|
292
261
|
/* Threshold exceeded -- the cached hash may be stale (password changed
|
|
293
262
|
on another device). Invalidate it so subsequent attempts go directly
|
|
294
|
-
to Supabase
|
|
263
|
+
to Supabase. */
|
|
295
264
|
debugWarn('[LoginGuard] Threshold exceeded, invalidating cached hash');
|
|
296
265
|
await invalidateCachedHash();
|
|
297
266
|
consecutiveLocalFailures = 0;
|
|
298
|
-
/* Fall through to rate-limited Supabase mode */
|
|
299
|
-
const rateCheck = checkRateLimit();
|
|
300
|
-
if (!rateCheck.allowed) {
|
|
301
|
-
return {
|
|
302
|
-
proceed: false,
|
|
303
|
-
error: 'Too many attempts. Please wait before trying again.',
|
|
304
|
-
retryAfterMs: rateCheck.retryAfterMs
|
|
305
|
-
};
|
|
306
|
-
}
|
|
307
267
|
return { proceed: true, strategy: 'no-cache' };
|
|
308
268
|
}
|
|
309
269
|
return { proceed: false, error: 'Incorrect password or code' };
|
|
310
270
|
}
|
|
311
|
-
/* No cached hash --
|
|
312
|
-
|
|
313
|
-
if (!rateCheck.allowed) {
|
|
314
|
-
return {
|
|
315
|
-
proceed: false,
|
|
316
|
-
error: 'Too many attempts. Please wait before trying again.',
|
|
317
|
-
retryAfterMs: rateCheck.retryAfterMs
|
|
318
|
-
};
|
|
319
|
-
}
|
|
320
|
-
debugLog('[LoginGuard] No cached hash, proceeding to Supabase (rate-limited mode)');
|
|
271
|
+
/* No cached hash -- proceed to Supabase directly. */
|
|
272
|
+
debugLog('[LoginGuard] No cached hash, proceeding to Supabase');
|
|
321
273
|
return { proceed: true, strategy: 'no-cache' };
|
|
322
274
|
}
|
|
323
275
|
catch (e) {
|
|
@@ -331,9 +283,8 @@ export async function preCheckLogin(input) {
|
|
|
331
283
|
/**
|
|
332
284
|
* Called after a successful Supabase login.
|
|
333
285
|
*
|
|
334
|
-
* Resets
|
|
335
|
-
*
|
|
336
|
-
* record from IndexedDB so the user starts fresh.
|
|
286
|
+
* Resets the local failure counter and clears the persistent lockout record
|
|
287
|
+
* from IndexedDB so the user starts fresh.
|
|
337
288
|
*
|
|
338
289
|
* @example
|
|
339
290
|
* ```ts
|
|
@@ -343,8 +294,6 @@ export async function preCheckLogin(input) {
|
|
|
343
294
|
*/
|
|
344
295
|
export async function onLoginSuccess() {
|
|
345
296
|
consecutiveLocalFailures = 0;
|
|
346
|
-
rateLimitAttempts = 0;
|
|
347
|
-
nextAllowedAttempt = 0;
|
|
348
297
|
/* Clear persistent failure counter and lockout */
|
|
349
298
|
await writePersistentLockout({
|
|
350
299
|
id: PIN_LOCKOUT_KEY,
|
|
@@ -361,11 +310,9 @@ export async function onLoginSuccess() {
|
|
|
361
310
|
*
|
|
362
311
|
* - `'local-match'`: Supabase rejected a locally-matched password, meaning the
|
|
363
312
|
* cached hash is **stale** (password changed server-side). The cached hash is
|
|
364
|
-
* invalidated so future attempts go through
|
|
365
|
-
* - `'no-cache'`:
|
|
366
|
-
*
|
|
367
|
-
* persistent failure counter and applies a tier-based lockout if the
|
|
368
|
-
* threshold is reached.
|
|
313
|
+
* invalidated so future attempts go through direct Supabase mode.
|
|
314
|
+
* - `'no-cache'`: Increments the persistent failure counter and applies a
|
|
315
|
+
* tier-based lockout if the threshold is reached.
|
|
369
316
|
*
|
|
370
317
|
* @param strategy - The {@link PreCheckStrategy} that was returned by
|
|
371
318
|
* {@link preCheckLogin} for this attempt.
|
|
@@ -387,13 +334,8 @@ export async function onLoginFailure(strategy) {
|
|
|
387
334
|
await invalidateCachedHash();
|
|
388
335
|
}
|
|
389
336
|
else {
|
|
390
|
-
/* No-cache mode:
|
|
391
|
-
|
|
392
|
-
rateLimitAttempts++;
|
|
393
|
-
const delay = Math.min(BASE_DELAY_MS * Math.pow(BACKOFF_MULTIPLIER, rateLimitAttempts - 1), MAX_DELAY_MS);
|
|
394
|
-
nextAllowedAttempt = Date.now() + delay;
|
|
395
|
-
debugWarn(`[LoginGuard] Rate limit applied: ${delay}ms delay (attempt ${rateLimitAttempts})`);
|
|
396
|
-
/* Update persistent failure counter and apply tier-based lockout. */
|
|
337
|
+
/* No-cache mode: increment persistent failure counter and apply
|
|
338
|
+
tier-based lockout if the threshold is reached. */
|
|
397
339
|
try {
|
|
398
340
|
const record = await readPersistentLockout();
|
|
399
341
|
const newCount = record.failureCount + 1;
|
|
@@ -418,8 +360,8 @@ export async function onLoginFailure(strategy) {
|
|
|
418
360
|
/**
|
|
419
361
|
* Full reset of all login guard state.
|
|
420
362
|
*
|
|
421
|
-
* Call on sign-out or app reset to clear failure counters
|
|
422
|
-
*
|
|
363
|
+
* Call on sign-out or app reset to clear failure counters so the next login
|
|
364
|
+
* attempt starts with a clean slate.
|
|
423
365
|
*
|
|
424
366
|
* @example
|
|
425
367
|
* ```ts
|
|
@@ -429,8 +371,6 @@ export async function onLoginFailure(strategy) {
|
|
|
429
371
|
*/
|
|
430
372
|
export async function resetLoginGuard() {
|
|
431
373
|
consecutiveLocalFailures = 0;
|
|
432
|
-
rateLimitAttempts = 0;
|
|
433
|
-
nextAllowedAttempt = 0;
|
|
434
374
|
await writePersistentLockout({
|
|
435
375
|
id: PIN_LOCKOUT_KEY,
|
|
436
376
|
failureCount: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loginGuard.js","sourceRoot":"","sources":["../../src/auth/loginGuard.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"loginGuard.js","sourceRoot":"","sources":["../../src/auth/loginGuard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-pwa.d.ts","sourceRoot":"","sources":["../../src/bin/install-pwa.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;
|
|
1
|
+
{"version":3,"file":"install-pwa.d.ts","sourceRoot":"","sources":["../../src/bin/install-pwa.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAu9MH;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CA2KzC"}
|
package/dist/bin/install-pwa.js
CHANGED
|
@@ -206,7 +206,7 @@ function generatePackageJson(opts) {
|
|
|
206
206
|
},
|
|
207
207
|
dependencies: {
|
|
208
208
|
postgres: '^3.4.0',
|
|
209
|
-
'stellar-drive': '^1.2.
|
|
209
|
+
'stellar-drive': '^1.2.26'
|
|
210
210
|
},
|
|
211
211
|
type: 'module'
|
|
212
212
|
}, null, 2) + '\n');
|
|
@@ -3577,6 +3577,7 @@ function generateLoginPage(opts) {
|
|
|
3577
3577
|
-->
|
|
3578
3578
|
<script lang="ts">
|
|
3579
3579
|
import { onMount, onDestroy, tick } from 'svelte';
|
|
3580
|
+
import { fade } from 'svelte/transition';
|
|
3580
3581
|
import { goto, invalidateAll } from '$app/navigation';
|
|
3581
3582
|
import { page } from '$app/stores';
|
|
3582
3583
|
import {
|
|
@@ -3620,6 +3621,17 @@ function generateLoginPage(opts) {
|
|
|
3620
3621
|
/** Triggers the CSS shake animation on the login card */
|
|
3621
3622
|
let shaking = $state(false);
|
|
3622
3623
|
|
|
3624
|
+
/** Pulsed true for one tick when lockout ends — $effect uses this to focus the first PIN input */
|
|
3625
|
+
let lockoutEnded = $state(false);
|
|
3626
|
+
|
|
3627
|
+
$effect(() => {
|
|
3628
|
+
if (lockoutEnded) {
|
|
3629
|
+
lockoutEnded = false;
|
|
3630
|
+
if (deviceLinked) unlockInputs[0]?.focus();
|
|
3631
|
+
else if (linkMode) linkInputs[0]?.focus();
|
|
3632
|
+
}
|
|
3633
|
+
});
|
|
3634
|
+
|
|
3623
3635
|
/** Set to \`true\` after the component mounts — enables entrance animation */
|
|
3624
3636
|
let mounted = $state(false);
|
|
3625
3637
|
|
|
@@ -3923,8 +3935,8 @@ function generateLoginPage(opts) {
|
|
|
3923
3935
|
* @param ms - The \`retryAfterMs\` value from the server response
|
|
3924
3936
|
*/
|
|
3925
3937
|
function startRetryCountdown(ms: number) {
|
|
3926
|
-
retryCountdown = Math.ceil(ms / 1000);
|
|
3927
3938
|
if (retryTimer) clearInterval(retryTimer);
|
|
3939
|
+
retryCountdown = Math.ceil(ms / 1000);
|
|
3928
3940
|
retryTimer = setInterval(() => {
|
|
3929
3941
|
retryCountdown--;
|
|
3930
3942
|
if (retryCountdown <= 0) {
|
|
@@ -3934,6 +3946,7 @@ function generateLoginPage(opts) {
|
|
|
3934
3946
|
clearInterval(retryTimer);
|
|
3935
3947
|
retryTimer = null;
|
|
3936
3948
|
}
|
|
3949
|
+
lockoutEnded = true;
|
|
3937
3950
|
}
|
|
3938
3951
|
}, 1000);
|
|
3939
3952
|
}
|
|
@@ -4231,12 +4244,15 @@ function generateLoginPage(opts) {
|
|
|
4231
4244
|
error = result.error;
|
|
4232
4245
|
if (result.retryAfterMs) {
|
|
4233
4246
|
startRetryCountdown(result.retryAfterMs);
|
|
4247
|
+
} else {
|
|
4248
|
+
setTimeout(() => { if (retryCountdown === 0) error = null; }, 2500);
|
|
4234
4249
|
}
|
|
4235
4250
|
shaking = true;
|
|
4236
|
-
setTimeout(() => {
|
|
4237
|
-
shaking = false;
|
|
4238
|
-
}, 500);
|
|
4251
|
+
setTimeout(() => { shaking = false; }, 500);
|
|
4239
4252
|
unlockDigits = ['', '', '', '', '', ''];
|
|
4253
|
+
loading = false;
|
|
4254
|
+
await tick();
|
|
4255
|
+
if (unlockInputs[0]) unlockInputs[0].focus();
|
|
4240
4256
|
return;
|
|
4241
4257
|
}
|
|
4242
4258
|
if (result.deviceVerificationRequired) {
|
|
@@ -4253,10 +4269,9 @@ function generateLoginPage(opts) {
|
|
|
4253
4269
|
return;
|
|
4254
4270
|
} catch (err: unknown) {
|
|
4255
4271
|
error = err instanceof Error ? err.message : 'Incorrect code';
|
|
4272
|
+
setTimeout(() => { if (retryCountdown === 0) error = null; }, 2500);
|
|
4256
4273
|
shaking = true;
|
|
4257
|
-
setTimeout(() => {
|
|
4258
|
-
shaking = false;
|
|
4259
|
-
}, 500);
|
|
4274
|
+
setTimeout(() => { shaking = false; }, 500);
|
|
4260
4275
|
unlockDigits = ['', '', '', '', '', ''];
|
|
4261
4276
|
}
|
|
4262
4277
|
loading = false;
|
|
@@ -4301,12 +4316,16 @@ function generateLoginPage(opts) {
|
|
|
4301
4316
|
error = result.error;
|
|
4302
4317
|
if (result.retryAfterMs) {
|
|
4303
4318
|
startRetryCountdown(result.retryAfterMs);
|
|
4319
|
+
} else {
|
|
4320
|
+
setTimeout(() => { if (retryCountdown === 0) error = null; }, 2500);
|
|
4304
4321
|
}
|
|
4305
4322
|
shaking = true;
|
|
4306
|
-
setTimeout(() => {
|
|
4307
|
-
shaking = false;
|
|
4308
|
-
}, 500);
|
|
4323
|
+
setTimeout(() => { shaking = false; }, 500);
|
|
4309
4324
|
linkDigits = Array(remoteUser.codeLength).fill('');
|
|
4325
|
+
linkInputs.forEach(inp => { if (inp) inp.value = ''; });
|
|
4326
|
+
linkLoading = false;
|
|
4327
|
+
await tick();
|
|
4328
|
+
if (linkInputs[0]) linkInputs[0].focus();
|
|
4310
4329
|
return;
|
|
4311
4330
|
}
|
|
4312
4331
|
if (result.deviceVerificationRequired) {
|
|
@@ -4322,11 +4341,11 @@ function generateLoginPage(opts) {
|
|
|
4322
4341
|
return;
|
|
4323
4342
|
} catch (err: unknown) {
|
|
4324
4343
|
error = err instanceof Error ? err.message : 'Incorrect code';
|
|
4344
|
+
setTimeout(() => { if (retryCountdown === 0) error = null; }, 2500);
|
|
4325
4345
|
shaking = true;
|
|
4326
|
-
setTimeout(() => {
|
|
4327
|
-
shaking = false;
|
|
4328
|
-
}, 500);
|
|
4346
|
+
setTimeout(() => { shaking = false; }, 500);
|
|
4329
4347
|
linkDigits = Array(remoteUser.codeLength).fill('');
|
|
4348
|
+
linkInputs.forEach(inp => { if (inp) inp.value = ''; });
|
|
4330
4349
|
}
|
|
4331
4350
|
linkLoading = false;
|
|
4332
4351
|
if (error) {
|
|
@@ -4340,30 +4359,360 @@ function generateLoginPage(opts) {
|
|
|
4340
4359
|
<title>Login - ${opts.name}</title>
|
|
4341
4360
|
</svelte:head>
|
|
4342
4361
|
|
|
4343
|
-
<!--
|
|
4344
|
-
|
|
4345
|
-
|
|
4346
|
-
|
|
4347
|
-
|
|
4348
|
-
|
|
4349
|
-
|
|
4350
|
-
|
|
4351
|
-
|
|
4352
|
-
|
|
4353
|
-
|
|
4354
|
-
|
|
4355
|
-
|
|
4356
|
-
|
|
4357
|
-
|
|
4358
|
-
|
|
4359
|
-
|
|
4360
|
-
|
|
4361
|
-
|
|
4362
|
-
|
|
4363
|
-
|
|
4364
|
-
|
|
4365
|
-
|
|
4366
|
-
|
|
4362
|
+
<!-- ================================================================= -->
|
|
4363
|
+
<!-- LOGIN PAGE -->
|
|
4364
|
+
<!-- Style this page to match your app's design theme. -->
|
|
4365
|
+
<!-- The structure and behaviour are fully implemented below. -->
|
|
4366
|
+
<!-- ================================================================= -->
|
|
4367
|
+
<div class="login-page" class:mounted>
|
|
4368
|
+
|
|
4369
|
+
{#if resolving}
|
|
4370
|
+
<!-- Loading / resolving initial auth state -->
|
|
4371
|
+
<div class="login-card">
|
|
4372
|
+
<p class="resolving-text">Loading...</p>
|
|
4373
|
+
</div>
|
|
4374
|
+
|
|
4375
|
+
{:else if offlineNoSetup}
|
|
4376
|
+
<!-- Offline with no local account — can't set up without internet -->
|
|
4377
|
+
<div class="login-card">
|
|
4378
|
+
<h2 class="card-title">Setup Required</h2>
|
|
4379
|
+
<p class="card-subtitle">An internet connection is required to set up this device</p>
|
|
4380
|
+
</div>
|
|
4381
|
+
|
|
4382
|
+
{:else if deviceLinked}
|
|
4383
|
+
<!-- ── Unlock Mode — returning user on this device ── -->
|
|
4384
|
+
<div class="login-card" class:shaking>
|
|
4385
|
+
<div class="avatar">
|
|
4386
|
+
{(userInfo?.firstName || 'U').charAt(0).toUpperCase()}
|
|
4387
|
+
</div>
|
|
4388
|
+
<h2 class="card-title">
|
|
4389
|
+
Welcome back{#if userInfo?.firstName}, {userInfo.firstName}{/if}
|
|
4390
|
+
</h2>
|
|
4391
|
+
<p class="card-subtitle">Enter your code to continue</p>
|
|
4392
|
+
|
|
4393
|
+
{#if loading}
|
|
4394
|
+
<div class="pin-loading"><span class="spinner"></span></div>
|
|
4395
|
+
{:else}
|
|
4396
|
+
<div class="pin-row">
|
|
4397
|
+
{#each unlockDigits as digit, i (i)}
|
|
4398
|
+
<input
|
|
4399
|
+
type="tel"
|
|
4400
|
+
inputmode="numeric"
|
|
4401
|
+
maxlength="1"
|
|
4402
|
+
class="pin-digit"
|
|
4403
|
+
bind:this={unlockInputs[i]}
|
|
4404
|
+
value={digit}
|
|
4405
|
+
oninput={(e) => handleDigitInput(unlockDigits, i, e, unlockInputs, autoSubmitUnlock)}
|
|
4406
|
+
onkeydown={(e) => handleDigitKeydown(unlockDigits, i, e, unlockInputs)}
|
|
4407
|
+
onpaste={(e) => handleDigitPaste(unlockDigits, e, unlockInputs, autoSubmitUnlock)}
|
|
4408
|
+
disabled={loading || retryCountdown > 0}
|
|
4409
|
+
autocomplete="off"
|
|
4410
|
+
/>
|
|
4411
|
+
{/each}
|
|
4412
|
+
</div>
|
|
4413
|
+
{/if}
|
|
4414
|
+
</div>
|
|
4415
|
+
|
|
4416
|
+
{:else if linkMode && remoteUser}
|
|
4417
|
+
<!-- ── Link Device Mode — new device, existing remote user ── -->
|
|
4418
|
+
<div class="login-card" class:shaking>
|
|
4419
|
+
<div class="avatar">
|
|
4420
|
+
{((remoteUser.profile?.firstName as string) || 'U').charAt(0).toUpperCase()}
|
|
4421
|
+
</div>
|
|
4422
|
+
<h2 class="card-title">
|
|
4423
|
+
Welcome back{remoteUser.profile?.firstName ? \`, \${remoteUser.profile.firstName as string}\` : ''}
|
|
4424
|
+
</h2>
|
|
4425
|
+
<p class="card-subtitle">Enter your code to link this device</p>
|
|
4426
|
+
|
|
4427
|
+
{#if linkLoading}
|
|
4428
|
+
<div class="pin-loading"><span class="spinner"></span></div>
|
|
4429
|
+
{:else}
|
|
4430
|
+
<div class="pin-row">
|
|
4431
|
+
{#each linkDigits as digit, i (i)}
|
|
4432
|
+
<input
|
|
4433
|
+
type="tel"
|
|
4434
|
+
inputmode="numeric"
|
|
4435
|
+
maxlength="1"
|
|
4436
|
+
class="pin-digit"
|
|
4437
|
+
bind:this={linkInputs[i]}
|
|
4438
|
+
value={digit}
|
|
4439
|
+
oninput={(e) => handleDigitInput(linkDigits, i, e, linkInputs, autoSubmitLink)}
|
|
4440
|
+
onkeydown={(e) => handleDigitKeydown(linkDigits, i, e, linkInputs)}
|
|
4441
|
+
onpaste={(e) => handleDigitPaste(linkDigits, e, linkInputs, autoSubmitLink)}
|
|
4442
|
+
disabled={linkLoading || retryCountdown > 0}
|
|
4443
|
+
autocomplete="off"
|
|
4444
|
+
/>
|
|
4445
|
+
{/each}
|
|
4446
|
+
</div>
|
|
4447
|
+
{/if}
|
|
4448
|
+
</div>
|
|
4449
|
+
|
|
4450
|
+
{:else}
|
|
4451
|
+
<!-- ── Setup Mode — first-time account creation ── -->
|
|
4452
|
+
<div class="login-card" class:shaking>
|
|
4453
|
+
{#if setupStep === 1}
|
|
4454
|
+
<!-- Step 1: Email + name -->
|
|
4455
|
+
<h2 class="card-title">Create your account</h2>
|
|
4456
|
+
|
|
4457
|
+
<div class="form-group">
|
|
4458
|
+
<label for="email">Email</label>
|
|
4459
|
+
<input type="email" id="email" bind:value={email} disabled={loading} placeholder="you@example.com" />
|
|
4460
|
+
</div>
|
|
4461
|
+
<div class="name-row">
|
|
4462
|
+
<div class="form-group">
|
|
4463
|
+
<label for="firstName">First Name</label>
|
|
4464
|
+
<input type="text" id="firstName" bind:value={firstName} disabled={loading} placeholder="Jane" />
|
|
4465
|
+
</div>
|
|
4466
|
+
<div class="form-group">
|
|
4467
|
+
<label for="lastName">Last Name</label>
|
|
4468
|
+
<input type="text" id="lastName" bind:value={lastName} disabled={loading} placeholder="Smith" />
|
|
4469
|
+
</div>
|
|
4470
|
+
</div>
|
|
4471
|
+
<button class="btn-primary" onclick={goToCodeStep} disabled={loading}>
|
|
4472
|
+
Continue
|
|
4473
|
+
</button>
|
|
4474
|
+
|
|
4475
|
+
{:else}
|
|
4476
|
+
<!-- Step 2: PIN creation + confirmation -->
|
|
4477
|
+
<h2 class="card-title">Create your PIN</h2>
|
|
4478
|
+
<p class="card-subtitle">Choose a 6-digit code</p>
|
|
4479
|
+
|
|
4480
|
+
<div class="pin-row">
|
|
4481
|
+
{#each codeDigits as digit, i (i)}
|
|
4482
|
+
<input
|
|
4483
|
+
type="tel"
|
|
4484
|
+
inputmode="numeric"
|
|
4485
|
+
maxlength="1"
|
|
4486
|
+
class="pin-digit"
|
|
4487
|
+
bind:this={codeInputs[i]}
|
|
4488
|
+
value={digit}
|
|
4489
|
+
oninput={(e) => handleDigitInput(codeDigits, i, e, codeInputs, autoFocusConfirm)}
|
|
4490
|
+
onkeydown={(e) => handleDigitKeydown(codeDigits, i, e, codeInputs)}
|
|
4491
|
+
onpaste={(e) => handleDigitPaste(codeDigits, e, codeInputs, autoFocusConfirm)}
|
|
4492
|
+
disabled={loading}
|
|
4493
|
+
autocomplete="off"
|
|
4494
|
+
/>
|
|
4495
|
+
{/each}
|
|
4496
|
+
</div>
|
|
4497
|
+
|
|
4498
|
+
<p class="card-subtitle">Confirm your code</p>
|
|
4499
|
+
<div class="pin-row">
|
|
4500
|
+
{#each confirmDigits as digit, i (i)}
|
|
4501
|
+
<input
|
|
4502
|
+
type="tel"
|
|
4503
|
+
inputmode="numeric"
|
|
4504
|
+
maxlength="1"
|
|
4505
|
+
class="pin-digit"
|
|
4506
|
+
bind:this={confirmInputs[i]}
|
|
4507
|
+
value={digit}
|
|
4508
|
+
oninput={(e) => handleDigitInput(confirmDigits, i, e, confirmInputs, autoSubmitSetup)}
|
|
4509
|
+
onkeydown={(e) => handleDigitKeydown(confirmDigits, i, e, confirmInputs)}
|
|
4510
|
+
onpaste={(e) => handleDigitPaste(confirmDigits, e, confirmInputs, autoSubmitSetup)}
|
|
4511
|
+
disabled={loading}
|
|
4512
|
+
autocomplete="off"
|
|
4513
|
+
/>
|
|
4514
|
+
{/each}
|
|
4515
|
+
</div>
|
|
4516
|
+
|
|
4517
|
+
<button class="btn-secondary" onclick={goBackToNameStep} disabled={loading}>
|
|
4518
|
+
Back
|
|
4519
|
+
</button>
|
|
4520
|
+
{/if}
|
|
4521
|
+
</div>
|
|
4522
|
+
{/if}
|
|
4523
|
+
|
|
4524
|
+
<!-- ── Bottom Status Banner ──────────────────────────────────────── -->
|
|
4525
|
+
<!-- Lockout: stays visible the entire countdown duration. -->
|
|
4526
|
+
<!-- Error: auto-dismissed after 2.5s by the handlers above. -->
|
|
4527
|
+
{#if retryCountdown > 0}
|
|
4528
|
+
<div class="bottom-banner lockout-banner" transition:fade={{ duration: 250 }}>
|
|
4529
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
4530
|
+
<rect x="3" y="11" width="18" height="11" rx="2" ry="2" />
|
|
4531
|
+
<path d="M7 11V7a5 5 0 0 1 10 0v4" />
|
|
4532
|
+
</svg>
|
|
4533
|
+
<span>Too many attempts — try again in {formatCountdown(retryCountdown)}</span>
|
|
4534
|
+
</div>
|
|
4535
|
+
{:else if error}
|
|
4536
|
+
<div class="bottom-banner error-banner" transition:fade={{ duration: 250 }}>
|
|
4537
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
4538
|
+
<circle cx="12" cy="12" r="10" />
|
|
4539
|
+
<line x1="12" y1="8" x2="12" y2="12" />
|
|
4540
|
+
<line x1="12" y1="16" x2="12.01" y2="16" />
|
|
4541
|
+
</svg>
|
|
4542
|
+
<span>{error}</span>
|
|
4543
|
+
</div>
|
|
4544
|
+
{/if}
|
|
4545
|
+
</div>
|
|
4546
|
+
|
|
4547
|
+
<!-- ── Email Confirmation Modal ──────────────────────────────────── -->
|
|
4548
|
+
{#if showConfirmationModal}
|
|
4549
|
+
<div class="modal-backdrop">
|
|
4550
|
+
<div class="modal-card">
|
|
4551
|
+
<h3 class="modal-title">Check your email</h3>
|
|
4552
|
+
<p class="modal-text">
|
|
4553
|
+
We sent a confirmation link to <strong>{email}</strong>. Click it to activate your account.
|
|
4554
|
+
</p>
|
|
4555
|
+
<button class="btn-primary" onclick={handleResendEmail} disabled={resendCooldown > 0}>
|
|
4556
|
+
{#if resendCooldown > 0}Resend in {resendCooldown}s{:else}Resend email{/if}
|
|
4557
|
+
</button>
|
|
4558
|
+
</div>
|
|
4559
|
+
</div>
|
|
4560
|
+
{/if}
|
|
4561
|
+
|
|
4562
|
+
<!-- ── Device Verification Modal ─────────────────────────────────── -->
|
|
4563
|
+
{#if showDeviceVerificationModal}
|
|
4564
|
+
<div class="modal-backdrop">
|
|
4565
|
+
<div class="modal-card">
|
|
4566
|
+
<h3 class="modal-title">New device detected</h3>
|
|
4567
|
+
<p class="modal-text">
|
|
4568
|
+
We sent a verification link to <strong>{maskedEmail}</strong>. Click it to trust this device.
|
|
4569
|
+
</p>
|
|
4570
|
+
<p class="modal-hint">This page will update automatically once verified.</p>
|
|
4571
|
+
<button class="btn-primary" onclick={handleResendEmail} disabled={resendCooldown > 0}>
|
|
4572
|
+
{#if resendCooldown > 0}Resend in {resendCooldown}s{:else}Resend email{/if}
|
|
4573
|
+
</button>
|
|
4574
|
+
</div>
|
|
4575
|
+
</div>
|
|
4576
|
+
{/if}
|
|
4577
|
+
|
|
4578
|
+
<style>
|
|
4579
|
+
/* ================================================================= */
|
|
4580
|
+
/* STRUCTURAL STYLES — behaviour and layout only. */
|
|
4581
|
+
/* Add colours, typography, and visual design to match your theme. */
|
|
4582
|
+
/* ================================================================= */
|
|
4583
|
+
|
|
4584
|
+
/* Full-viewport container */
|
|
4585
|
+
.login-page {
|
|
4586
|
+
position: fixed;
|
|
4587
|
+
inset: 0;
|
|
4588
|
+
display: flex;
|
|
4589
|
+
flex-direction: column;
|
|
4590
|
+
align-items: center;
|
|
4591
|
+
justify-content: center;
|
|
4592
|
+
padding: 1rem;
|
|
4593
|
+
}
|
|
4594
|
+
|
|
4595
|
+
/* Card centred on screen */
|
|
4596
|
+
.login-card {
|
|
4597
|
+
display: flex;
|
|
4598
|
+
flex-direction: column;
|
|
4599
|
+
align-items: center;
|
|
4600
|
+
gap: 1rem;
|
|
4601
|
+
padding: 2rem;
|
|
4602
|
+
border-radius: 20px;
|
|
4603
|
+
width: 100%;
|
|
4604
|
+
max-width: 360px;
|
|
4605
|
+
text-align: center;
|
|
4606
|
+
}
|
|
4607
|
+
|
|
4608
|
+
/* Avatar circle */
|
|
4609
|
+
.avatar {
|
|
4610
|
+
width: 56px;
|
|
4611
|
+
height: 56px;
|
|
4612
|
+
border-radius: 50%;
|
|
4613
|
+
display: flex;
|
|
4614
|
+
align-items: center;
|
|
4615
|
+
justify-content: center;
|
|
4616
|
+
font-size: 1.5rem;
|
|
4617
|
+
font-weight: 700;
|
|
4618
|
+
}
|
|
4619
|
+
|
|
4620
|
+
/* ── PIN row ── */
|
|
4621
|
+
.pin-row {
|
|
4622
|
+
display: flex;
|
|
4623
|
+
gap: 0.5rem;
|
|
4624
|
+
justify-content: center;
|
|
4625
|
+
}
|
|
4626
|
+
|
|
4627
|
+
.pin-digit {
|
|
4628
|
+
width: 48px;
|
|
4629
|
+
height: 56px;
|
|
4630
|
+
text-align: center;
|
|
4631
|
+
font-size: 1.375rem;
|
|
4632
|
+
font-weight: 700;
|
|
4633
|
+
border-radius: 10px;
|
|
4634
|
+
/* Add border, background, focus ring */
|
|
4635
|
+
}
|
|
4636
|
+
|
|
4637
|
+
/* Spinner placeholder */
|
|
4638
|
+
.pin-loading {
|
|
4639
|
+
height: 56px;
|
|
4640
|
+
display: flex;
|
|
4641
|
+
align-items: center;
|
|
4642
|
+
justify-content: center;
|
|
4643
|
+
}
|
|
4644
|
+
|
|
4645
|
+
/* ── Setup form ── */
|
|
4646
|
+
.form-group {
|
|
4647
|
+
display: flex;
|
|
4648
|
+
flex-direction: column;
|
|
4649
|
+
gap: 0.25rem;
|
|
4650
|
+
text-align: left;
|
|
4651
|
+
width: 100%;
|
|
4652
|
+
}
|
|
4653
|
+
|
|
4654
|
+
.name-row {
|
|
4655
|
+
display: grid;
|
|
4656
|
+
grid-template-columns: 1fr 1fr;
|
|
4657
|
+
gap: 0.75rem;
|
|
4658
|
+
width: 100%;
|
|
4659
|
+
}
|
|
4660
|
+
|
|
4661
|
+
/* ── Shake animation (decelerating — same in both apps) ── */
|
|
4662
|
+
.shaking {
|
|
4663
|
+
animation: shake 0.5s ease-in-out;
|
|
4664
|
+
}
|
|
4665
|
+
|
|
4666
|
+
@keyframes shake {
|
|
4667
|
+
0%, 100% { transform: translateX(0); }
|
|
4668
|
+
15% { transform: translateX(-8px); }
|
|
4669
|
+
30% { transform: translateX(7px); }
|
|
4670
|
+
45% { transform: translateX(-6px); }
|
|
4671
|
+
60% { transform: translateX(4px); }
|
|
4672
|
+
75% { transform: translateX(-2px); }
|
|
4673
|
+
}
|
|
4674
|
+
|
|
4675
|
+
/* ── Bottom status banner ── */
|
|
4676
|
+
/* Fixed pill anchored to bottom of viewport. */
|
|
4677
|
+
/* Lockout stays; error auto-dismisses via JS after 2.5s. */
|
|
4678
|
+
.bottom-banner {
|
|
4679
|
+
position: fixed;
|
|
4680
|
+
bottom: max(32px, calc(env(safe-area-inset-bottom) + 20px));
|
|
4681
|
+
left: 50%;
|
|
4682
|
+
transform: translateX(-50%);
|
|
4683
|
+
display: flex;
|
|
4684
|
+
align-items: center;
|
|
4685
|
+
gap: 0.5rem;
|
|
4686
|
+
padding: 0.625rem 1.125rem;
|
|
4687
|
+
border-radius: 100px;
|
|
4688
|
+
font-size: 0.8125rem;
|
|
4689
|
+
font-weight: 600;
|
|
4690
|
+
white-space: nowrap;
|
|
4691
|
+
z-index: 200;
|
|
4692
|
+
/* Add backdrop-filter, background, border, color */
|
|
4693
|
+
}
|
|
4694
|
+
|
|
4695
|
+
/* ── Modals ── */
|
|
4696
|
+
.modal-backdrop {
|
|
4697
|
+
position: fixed;
|
|
4698
|
+
inset: 0;
|
|
4699
|
+
display: flex;
|
|
4700
|
+
align-items: center;
|
|
4701
|
+
justify-content: center;
|
|
4702
|
+
z-index: 300;
|
|
4703
|
+
padding: 1rem;
|
|
4704
|
+
/* Add background overlay */
|
|
4705
|
+
}
|
|
4706
|
+
|
|
4707
|
+
.modal-card {
|
|
4708
|
+
width: 100%;
|
|
4709
|
+
max-width: 380px;
|
|
4710
|
+
padding: 2rem;
|
|
4711
|
+
border-radius: 20px;
|
|
4712
|
+
text-align: center;
|
|
4713
|
+
/* Add background, border, shadow */
|
|
4714
|
+
}
|
|
4715
|
+
</style>
|
|
4367
4716
|
`;
|
|
4368
4717
|
}
|
|
4369
4718
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-pwa.js","sourceRoot":"","sources":["../../src/bin/install-pwa.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"install-pwa.js","sourceRoot":"","sources":["../../src/bin/install-pwa.ts"],"names":[],"mappings":"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"}
|