@auth-craft/client 0.2.0 → 0.3.0
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 +46 -0
- package/dist/core/core.d.ts +17 -4
- package/dist/core/core.d.ts.map +1 -1
- package/dist/core/core.js +7 -3
- package/dist/core/core.js.map +1 -1
- package/dist/core/proxy.d.ts +1 -1
- package/dist/core/proxy.d.ts.map +1 -1
- package/dist/core/proxy.js +1 -1
- package/dist/core/proxy.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/transport/client.d.ts +1 -1
- package/dist/transport/client.d.ts.map +1 -1
- package/dist/transport/client.js +7 -6
- package/dist/transport/client.js.map +1 -1
- package/dist/transport/error-codes.d.ts +18 -18
- package/dist/transport/error-codes.d.ts.map +1 -1
- package/dist/transport/errors.d.ts +1 -1
- package/dist/transport/errors.d.ts.map +1 -1
- package/dist/transport/errors.js +1 -1
- package/dist/transport/errors.js.map +1 -1
- package/dist/transport/helpers.d.ts +1 -1
- package/dist/transport/helpers.d.ts.map +1 -1
- package/dist/transport/index.d.ts +25 -21
- package/dist/transport/index.d.ts.map +1 -1
- package/dist/transport/index.js +19 -16
- package/dist/transport/index.js.map +1 -1
- package/dist/transport/inline-worker.d.ts +7 -1
- package/dist/transport/inline-worker.d.ts.map +1 -1
- package/dist/transport/inline-worker.js +9 -2
- package/dist/transport/inline-worker.js.map +1 -1
- package/dist/transport/messages.d.ts +1 -1
- package/dist/transport/messages.d.ts.map +1 -1
- package/dist/transport/provider/create-provider.d.ts +1 -1
- package/dist/transport/provider/create-provider.d.ts.map +1 -1
- package/dist/transport/provider/create-provider.js +5 -2
- package/dist/transport/provider/create-provider.js.map +1 -1
- package/dist/transport/provider/parser/body.d.ts +1 -1
- package/dist/transport/provider/parser/body.d.ts.map +1 -1
- package/dist/transport/provider/parser/body.js +1 -1
- package/dist/transport/provider/parser/body.js.map +1 -1
- package/dist/transport/provider/parser/cookie.d.ts +1 -1
- package/dist/transport/provider/parser/cookie.d.ts.map +1 -1
- package/dist/transport/provider/parser/cookie.js +1 -1
- package/dist/transport/provider/parser/cookie.js.map +1 -1
- package/dist/transport/provider/presets.d.ts +1 -1
- package/dist/transport/provider/presets.d.ts.map +1 -1
- package/dist/transport/provider/presets.js +6 -6
- package/dist/transport/provider/presets.js.map +1 -1
- package/dist/transport/provider/register-presets.d.ts +1 -1
- package/dist/transport/provider/register-presets.d.ts.map +1 -1
- package/dist/transport/provider/register-presets.js +1 -1
- package/dist/transport/provider/register-presets.js.map +1 -1
- package/dist/transport/provider/storage/indexeddb.d.ts +1 -1
- package/dist/transport/provider/storage/indexeddb.d.ts.map +1 -1
- package/dist/transport/provider/storage/indexeddb.js.map +1 -1
- package/dist/transport/provider/storage/session-hint-channel.d.ts +34 -0
- package/dist/transport/provider/storage/session-hint-channel.d.ts.map +1 -0
- package/dist/transport/provider/storage/session-hint-channel.js +81 -0
- package/dist/transport/provider/storage/session-hint-channel.js.map +1 -0
- package/dist/transport/provider/storage/session-hint.d.ts +65 -0
- package/dist/transport/provider/storage/session-hint.d.ts.map +1 -0
- package/dist/transport/provider/storage/session-hint.js +117 -0
- package/dist/transport/provider/storage/session-hint.js.map +1 -0
- package/dist/transport/provider/strategy/body.d.ts +1 -1
- package/dist/transport/provider/strategy/body.d.ts.map +1 -1
- package/dist/transport/provider/strategy/body.js.map +1 -1
- package/dist/transport/provider/strategy/cookie.d.ts +1 -1
- package/dist/transport/provider/strategy/cookie.d.ts.map +1 -1
- package/dist/transport/provider/strategy/cookie.js.map +1 -1
- package/dist/transport/result.d.ts +1 -1
- package/dist/transport/result.d.ts.map +1 -1
- package/dist/transport/result.js +1 -1
- package/dist/transport/result.js.map +1 -1
- package/dist/transport/types.d.ts +39 -0
- package/dist/transport/types.d.ts.map +1 -1
- package/dist/transport/utils/formdata.d.ts +1 -1
- package/dist/transport/utils/formdata.d.ts.map +1 -1
- package/dist/transport/utils/formdata.js.map +1 -1
- package/dist/transport/utils/registry.d.ts +1 -1
- package/dist/transport/utils/registry.d.ts.map +1 -1
- package/dist/transport/worker-post.d.ts +2 -2
- package/dist/transport/worker-post.d.ts.map +1 -1
- package/dist/transport/worker-post.js +1 -1
- package/dist/transport/worker-post.js.map +1 -1
- package/dist/transport/worker.d.ts +17 -11
- package/dist/transport/worker.d.ts.map +1 -1
- package/dist/transport/worker.js +137 -14
- package/dist/transport/worker.js.map +1 -1
- package/package.json +4 -4
- package/dist/proxy.d.ts +0 -75
- package/dist/proxy.d.ts.map +0 -1
- package/dist/proxy.js +0 -95
- package/dist/proxy.js.map +0 -1
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session hint — a durable "is there plausibly a session to restore?" flag.
|
|
3
|
+
*
|
|
4
|
+
* THE PROBLEM. The refresh token is an httpOnly cookie (or IndexedDB blob) the
|
|
5
|
+
* worker cannot read. So after every page reload the worker starts with an empty
|
|
6
|
+
* token state and has no way to know whether the user is logged in — the only
|
|
7
|
+
* way to find out is to *try* `POST /auth/refresh`. For an anonymous visitor
|
|
8
|
+
* that attempt can never succeed, yet it is paid on every single reload: one
|
|
9
|
+
* pointless round-trip that also has to fail before the app can render "logged
|
|
10
|
+
* out".
|
|
11
|
+
*
|
|
12
|
+
* THE FIX. Remember the answer. Login writes the hint, logout clears it, and a
|
|
13
|
+
* refresh that comes back "no session" clears it too. On the next boot the
|
|
14
|
+
* worker reads the hint first: absent means "nobody has logged in here", so
|
|
15
|
+
* skip the request entirely and fail fast with NOT_AUTHENTICATED.
|
|
16
|
+
*
|
|
17
|
+
* WHAT IT IS NOT. The hint carries no token, no user id, nothing secret — only
|
|
18
|
+
* one bit, and a *non-authoritative* one. It can be stale in both directions
|
|
19
|
+
* (cookie expired server-side while the hint says "yes"; a sibling tab logged in
|
|
20
|
+
* while this one says "no"), so it may only ever be used to skip a request that
|
|
21
|
+
* was *going to fail anyway*. Every real authorization decision stays with the
|
|
22
|
+
* backend. The hint self-heals: see `clear()` callers in the worker loop, and
|
|
23
|
+
* the BroadcastChannel sync in `session-hint-channel.ts` for cross-tab updates.
|
|
24
|
+
*
|
|
25
|
+
* WHERE IT LIVES. IndexedDB, in the same database the refresh-token storage
|
|
26
|
+
* already uses, because the worker has no `localStorage`. Reads are therefore
|
|
27
|
+
* async — which is fine: the worker awaits the hint only on the first
|
|
28
|
+
* auth-requiring request, exactly where it would otherwise have awaited a fetch.
|
|
29
|
+
* Every operation fails *open* (treated as "maybe logged in") so a broken or
|
|
30
|
+
* blocked IndexedDB degrades to today's behaviour rather than locking the user
|
|
31
|
+
* out of their own session.
|
|
32
|
+
*/
|
|
33
|
+
/**
|
|
34
|
+
* A stored session hint. `scope` lets one origin host several auth contexts
|
|
35
|
+
* (customer / tenant / system) without one clobbering another's hint.
|
|
36
|
+
*/
|
|
37
|
+
export interface SessionHintStore {
|
|
38
|
+
/**
|
|
39
|
+
* Has a session plausibly existed here? `true` = worth trying refresh.
|
|
40
|
+
* Returns `true` when storage is unreadable (fail open).
|
|
41
|
+
*/
|
|
42
|
+
get(): Promise<boolean>;
|
|
43
|
+
/** Mark that a session was established (login / successful refresh). */
|
|
44
|
+
set(): Promise<void>;
|
|
45
|
+
/** Mark that there is no session (logout, or refresh said "not authenticated"). */
|
|
46
|
+
clear(): Promise<void>;
|
|
47
|
+
}
|
|
48
|
+
export interface SessionHintOptions {
|
|
49
|
+
/** IndexedDB database name. Defaults to the refresh-token DB. */
|
|
50
|
+
dbName?: string;
|
|
51
|
+
/**
|
|
52
|
+
* Key the hint is stored under. Pass a per-scope key when one origin runs
|
|
53
|
+
* several auth contexts, so a customer login does not imply a system session.
|
|
54
|
+
*/
|
|
55
|
+
hintKey?: string;
|
|
56
|
+
/** Observe storage failures (quota, private mode, blocked IndexedDB). */
|
|
57
|
+
onError?: (error: Error, op: 'get' | 'set' | 'clear') => void;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Build the session-hint store. No IndexedDB (worker in a test runner, a
|
|
61
|
+
* browser with site data blocked) yields a store that always reports "maybe
|
|
62
|
+
* logged in" and drops writes — i.e. today's always-try-refresh behaviour.
|
|
63
|
+
*/
|
|
64
|
+
export declare function createSessionHint(options?: SessionHintOptions): SessionHintStore;
|
|
65
|
+
//# sourceMappingURL=session-hint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-hint.d.ts","sourceRoot":"","sources":["../../../../src/transport/provider/storage/session-hint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAOH;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACxB,wEAAwE;IACxE,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACrB,mFAAmF;IACnF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,GAAG,KAAK,GAAG,OAAO,KAAK,IAAI,CAAC;CAC/D;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,kBAAuB,GAAG,gBAAgB,CAgFpF"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session hint — a durable "is there plausibly a session to restore?" flag.
|
|
3
|
+
*
|
|
4
|
+
* THE PROBLEM. The refresh token is an httpOnly cookie (or IndexedDB blob) the
|
|
5
|
+
* worker cannot read. So after every page reload the worker starts with an empty
|
|
6
|
+
* token state and has no way to know whether the user is logged in — the only
|
|
7
|
+
* way to find out is to *try* `POST /auth/refresh`. For an anonymous visitor
|
|
8
|
+
* that attempt can never succeed, yet it is paid on every single reload: one
|
|
9
|
+
* pointless round-trip that also has to fail before the app can render "logged
|
|
10
|
+
* out".
|
|
11
|
+
*
|
|
12
|
+
* THE FIX. Remember the answer. Login writes the hint, logout clears it, and a
|
|
13
|
+
* refresh that comes back "no session" clears it too. On the next boot the
|
|
14
|
+
* worker reads the hint first: absent means "nobody has logged in here", so
|
|
15
|
+
* skip the request entirely and fail fast with NOT_AUTHENTICATED.
|
|
16
|
+
*
|
|
17
|
+
* WHAT IT IS NOT. The hint carries no token, no user id, nothing secret — only
|
|
18
|
+
* one bit, and a *non-authoritative* one. It can be stale in both directions
|
|
19
|
+
* (cookie expired server-side while the hint says "yes"; a sibling tab logged in
|
|
20
|
+
* while this one says "no"), so it may only ever be used to skip a request that
|
|
21
|
+
* was *going to fail anyway*. Every real authorization decision stays with the
|
|
22
|
+
* backend. The hint self-heals: see `clear()` callers in the worker loop, and
|
|
23
|
+
* the BroadcastChannel sync in `session-hint-channel.ts` for cross-tab updates.
|
|
24
|
+
*
|
|
25
|
+
* WHERE IT LIVES. IndexedDB, in the same database the refresh-token storage
|
|
26
|
+
* already uses, because the worker has no `localStorage`. Reads are therefore
|
|
27
|
+
* async — which is fine: the worker awaits the hint only on the first
|
|
28
|
+
* auth-requiring request, exactly where it would otherwise have awaited a fetch.
|
|
29
|
+
* Every operation fails *open* (treated as "maybe logged in") so a broken or
|
|
30
|
+
* blocked IndexedDB degrades to today's behaviour rather than locking the user
|
|
31
|
+
* out of their own session.
|
|
32
|
+
*/
|
|
33
|
+
/** Scope-aware DB defaults; shared with `createIndexedDBStorage`. */
|
|
34
|
+
const DEFAULT_DB_NAME = 'FetchGuardDB';
|
|
35
|
+
const STORE_NAME = 'tokens';
|
|
36
|
+
const DEFAULT_HINT_KEY = 'sessionHint';
|
|
37
|
+
/**
|
|
38
|
+
* Build the session-hint store. No IndexedDB (worker in a test runner, a
|
|
39
|
+
* browser with site data blocked) yields a store that always reports "maybe
|
|
40
|
+
* logged in" and drops writes — i.e. today's always-try-refresh behaviour.
|
|
41
|
+
*/
|
|
42
|
+
export function createSessionHint(options = {}) {
|
|
43
|
+
const dbName = options.dbName ?? DEFAULT_DB_NAME;
|
|
44
|
+
const hintKey = options.hintKey ?? DEFAULT_HINT_KEY;
|
|
45
|
+
const onError = options.onError;
|
|
46
|
+
if (typeof indexedDB === 'undefined') {
|
|
47
|
+
return {
|
|
48
|
+
// Fail open: without storage we cannot know, so keep trying refresh.
|
|
49
|
+
async get() {
|
|
50
|
+
return true;
|
|
51
|
+
},
|
|
52
|
+
async set() {
|
|
53
|
+
// no-op
|
|
54
|
+
},
|
|
55
|
+
async clear() {
|
|
56
|
+
// no-op
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
const openDB = () => new Promise((resolve, reject) => {
|
|
61
|
+
const request = indexedDB.open(dbName, 1);
|
|
62
|
+
request.onerror = () => reject(request.error);
|
|
63
|
+
request.onsuccess = () => resolve(request.result);
|
|
64
|
+
// Mirror createIndexedDBStorage's schema: same DB, same store, so the two
|
|
65
|
+
// can share one database without fighting over the version.
|
|
66
|
+
request.onupgradeneeded = (event) => {
|
|
67
|
+
const db = event.target.result;
|
|
68
|
+
if (!db.objectStoreNames.contains(STORE_NAME)) {
|
|
69
|
+
const store = db.createObjectStore(STORE_NAME, { keyPath: 'key' });
|
|
70
|
+
store.createIndex('timestamp', 'timestamp', { unique: false });
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
});
|
|
74
|
+
const promisify = (request) => new Promise((resolve, reject) => {
|
|
75
|
+
request.onsuccess = () => resolve(request.result);
|
|
76
|
+
request.onerror = () => reject(request.error);
|
|
77
|
+
});
|
|
78
|
+
const write = async (value, op) => {
|
|
79
|
+
try {
|
|
80
|
+
const db = await openDB();
|
|
81
|
+
const tx = db.transaction([STORE_NAME], 'readwrite');
|
|
82
|
+
const store = tx.objectStore(STORE_NAME);
|
|
83
|
+
if (value) {
|
|
84
|
+
await promisify(store.put({ key: hintKey, value: true, timestamp: Date.now() }));
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
await promisify(store.delete(hintKey));
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
onError?.(error, op);
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
return {
|
|
95
|
+
async get() {
|
|
96
|
+
try {
|
|
97
|
+
const db = await openDB();
|
|
98
|
+
const tx = db.transaction([STORE_NAME], 'readonly');
|
|
99
|
+
const store = tx.objectStore(STORE_NAME);
|
|
100
|
+
const row = await promisify(store.get(hintKey));
|
|
101
|
+
return row?.value === true;
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
onError?.(error, 'get');
|
|
105
|
+
// Fail open — a storage fault must never strand a logged-in user.
|
|
106
|
+
return true;
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
async set() {
|
|
110
|
+
return write(true, 'set');
|
|
111
|
+
},
|
|
112
|
+
async clear() {
|
|
113
|
+
return write(false, 'clear');
|
|
114
|
+
},
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=session-hint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-hint.js","sourceRoot":"","sources":["../../../../src/transport/provider/storage/session-hint.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../../../src/transport/provider/strategy/body.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAwB,MAAM,
|
|
1
|
+
{"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../../../src/transport/provider/strategy/body.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAwB,MAAM,gBAAgB,CAAC;AAEzE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC,GAAG,YAAY,CAqDf;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,cAIvB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"body.js","sourceRoot":"","sources":["../../../../src/transport/provider/strategy/body.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAMlC;IACC,MAAM,WAAW,GAAG;QAClB,GAAG,MAAM,CAAC,cAAc;QACxB,GAAG,MAAM,CAAC,OAAO;QACjB,cAAc,EAAE,kBAAkB;KACnC,CAAC;IAEF,OAAO;QACL,KAAK,CAAC,OAAO,CAAC,YAAY;YACxB,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAChD,CAAC;YAED,OAAO,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE;gBAC9B,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,WAAW;gBACpB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;gBACtC,WAAW,EAAE,SAAS;aACvB,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG;YACtB,OAAO,KAAK,CAAC,GAAG,IAAI,MAAM,CAAC,QAAQ,EAAE;gBACnC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,WAAW;gBACpB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;gBAC7B,WAAW,EAAE,SAAS;aACvB,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,OAAO;YAClB,OAAO,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE;gBAC7B,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,WAAW;gBACpB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;gBACnD,WAAW,EAAE,SAAS;aACvB,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,aAAa,CAAC,WAAmB,EAAE,GAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"body.js","sourceRoot":"","sources":["../../../../src/transport/provider/strategy/body.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAMlC;IACC,MAAM,WAAW,GAAG;QAClB,GAAG,MAAM,CAAC,cAAc;QACxB,GAAG,MAAM,CAAC,OAAO;QACjB,cAAc,EAAE,kBAAkB;KACnC,CAAC;IAEF,OAAO;QACL,KAAK,CAAC,OAAO,CAAC,YAAY;YACxB,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAChD,CAAC;YAED,OAAO,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE;gBAC9B,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,WAAW;gBACpB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;gBACtC,WAAW,EAAE,SAAS;aACvB,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG;YACtB,OAAO,KAAK,CAAC,GAAG,IAAI,MAAM,CAAC,QAAQ,EAAE;gBACnC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,WAAW;gBACpB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;gBAC7B,WAAW,EAAE,SAAS;aACvB,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,OAAO;YAClB,OAAO,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE;gBAC7B,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,WAAW;gBACpB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;gBACnD,WAAW,EAAE,SAAS;aACvB,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,aAAa,CAAC,WAAmB,EAAE,GAAW,EAAE,OAAO,GAAyB,EAAE;YACtF,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;YACtD,OAAO,KAAK,CAAC,GAAG,EAAE;gBAChB,MAAM;gBACN,OAAO,EAAE;oBACP,GAAG,WAAW;oBACd,GAAG,OAAO;oBACV,aAAa,EAAE,UAAU,WAAW,EAAE;iBACvC;gBACD,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;gBACnD,WAAW,EAAE,SAAS;aACvB,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,kBAAkB,CAAC;IAC7C,UAAU,EAAE,eAAe;IAC3B,QAAQ,EAAE,aAAa;IACvB,SAAS,EAAE,cAAc;CAC1B,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookie.d.ts","sourceRoot":"","sources":["../../../../src/transport/provider/strategy/cookie.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAwB,MAAM,
|
|
1
|
+
{"version":3,"file":"cookie.d.ts","sourceRoot":"","sources":["../../../../src/transport/provider/strategy/cookie.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAwB,MAAM,gBAAgB,CAAC;AAEzE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC,GAAG,YAAY,CAgDf;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,cAIzB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookie.js","sourceRoot":"","sources":["../../../../src/transport/provider/strategy/cookie.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAMpC;IACC,MAAM,WAAW,GAAG;QAClB,GAAG,MAAM,CAAC,cAAc;QACxB,GAAG,MAAM,CAAC,OAAO;QACjB,cAAc,EAAE,kBAAkB;KACnC,CAAC;IAEF,OAAO;QACL,KAAK,CAAC,OAAO;YACX,OAAO,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE;gBAC9B,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,WAAW;gBACpB,WAAW,EAAE,SAAS;aACvB,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG;YACtB,OAAO,KAAK,CAAC,GAAG,IAAI,MAAM,CAAC,QAAQ,EAAE;gBACnC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,WAAW;gBACpB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;gBAC7B,WAAW,EAAE,SAAS;aACvB,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,OAAO;YAClB,OAAO,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE;gBAC7B,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,WAAW;gBACpB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;gBACnD,WAAW,EAAE,SAAS;aACvB,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,aAAa,CAAC,WAAmB,EAAE,GAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"cookie.js","sourceRoot":"","sources":["../../../../src/transport/provider/strategy/cookie.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAMpC;IACC,MAAM,WAAW,GAAG;QAClB,GAAG,MAAM,CAAC,cAAc;QACxB,GAAG,MAAM,CAAC,OAAO;QACjB,cAAc,EAAE,kBAAkB;KACnC,CAAC;IAEF,OAAO;QACL,KAAK,CAAC,OAAO;YACX,OAAO,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE;gBAC9B,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,WAAW;gBACpB,WAAW,EAAE,SAAS;aACvB,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG;YACtB,OAAO,KAAK,CAAC,GAAG,IAAI,MAAM,CAAC,QAAQ,EAAE;gBACnC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,WAAW;gBACpB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;gBAC7B,WAAW,EAAE,SAAS;aACvB,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,OAAO;YAClB,OAAO,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE;gBAC7B,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,WAAW;gBACpB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;gBACnD,WAAW,EAAE,SAAS;aACvB,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,aAAa,CAAC,WAAmB,EAAE,GAAW,EAAE,OAAO,GAAyB,EAAE;YACtF,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;YACtD,OAAO,KAAK,CAAC,GAAG,EAAE;gBAChB,MAAM;gBACN,OAAO,EAAE;oBACP,GAAG,WAAW;oBACd,GAAG,OAAO;oBACV,aAAa,EAAE,UAAU,WAAW,EAAE;iBACvC;gBACD,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;gBACnD,WAAW,EAAE,SAAS;aACvB,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,oBAAoB,CAAC;IACjD,UAAU,EAAE,eAAe;IAC3B,QAAQ,EAAE,aAAa;IACvB,SAAS,EAAE,cAAc;CAC1B,CAAC,CAAC"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* already resolved, after the Worker has done the fetch.
|
|
10
10
|
*/
|
|
11
11
|
import { type Result } from 'ts-micro-result';
|
|
12
|
-
import type { FetchEnvelope } from './types';
|
|
12
|
+
import type { FetchEnvelope } from './types.js';
|
|
13
13
|
/**
|
|
14
14
|
* Deserialize a JSON body that is expected to be a ts-micro-result envelope.
|
|
15
15
|
* Falls back to treating the parsed JSON as raw data when it isn't an envelope.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../src/transport/result.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAA6B,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../src/transport/result.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAA6B,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAiBlE;AA6BD;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAsB5E"}
|
package/dist/transport/result.js
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* already resolved, after the Worker has done the fetch.
|
|
10
10
|
*/
|
|
11
11
|
import { err, ok } from 'ts-micro-result';
|
|
12
|
-
import { ERROR_CODES } from './error-codes';
|
|
12
|
+
import { ERROR_CODES } from './error-codes.js';
|
|
13
13
|
/**
|
|
14
14
|
* Deserialize a JSON body that is expected to be a ts-micro-result envelope.
|
|
15
15
|
* Falls back to treating the parsed JSON as raw data when it isn't an envelope.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/transport/result.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAoB,GAAG,EAAE,EAAE,EAAe,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/transport/result.ts"],"names":[],"mappings":"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"}
|
|
@@ -248,6 +248,14 @@ export interface FetchGuardOptions {
|
|
|
248
248
|
* ```
|
|
249
249
|
*/
|
|
250
250
|
workerFactory?: () => Worker;
|
|
251
|
+
/**
|
|
252
|
+
* Skip the boot-time refresh attempt for visitors who never logged in.
|
|
253
|
+
*
|
|
254
|
+
* Off by default (every boot tries `POST /auth/refresh`, as before). Enable it
|
|
255
|
+
* to have the worker remember that a session was established and fail fast
|
|
256
|
+
* with NOT_AUTHENTICATED when it was not — see {@link SessionHintConfig}.
|
|
257
|
+
*/
|
|
258
|
+
sessionHint?: SessionHintConfig;
|
|
251
259
|
/**
|
|
252
260
|
* Where the token/refresh loop runs.
|
|
253
261
|
*
|
|
@@ -269,6 +277,37 @@ export interface WorkerConfig {
|
|
|
269
277
|
allowedDomains: string[];
|
|
270
278
|
refreshEarlyMs: number;
|
|
271
279
|
defaultHeaders: Record<string, string>;
|
|
280
|
+
/**
|
|
281
|
+
* Skip the boot-time refresh attempt when no session has ever been
|
|
282
|
+
* established here. See `sessionHint` on FetchGuardOptions.
|
|
283
|
+
*/
|
|
284
|
+
sessionHint?: SessionHintConfig;
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Session-hint configuration — suppresses the pointless `POST /auth/refresh`
|
|
288
|
+
* that an anonymous visitor otherwise pays on every page load.
|
|
289
|
+
*
|
|
290
|
+
* The worker cannot read the httpOnly refresh cookie, so after a reload the only
|
|
291
|
+
* way to discover whether a session exists is to try to refresh. For a visitor
|
|
292
|
+
* who never logged in, that attempt fails every time. With the hint enabled the
|
|
293
|
+
* worker remembers (in IndexedDB) that a session was established, and skips the
|
|
294
|
+
* request when the hint is absent — failing fast with NOT_AUTHENTICATED instead.
|
|
295
|
+
*
|
|
296
|
+
* The hint is a single non-secret bit and is never authoritative: it is cleared
|
|
297
|
+
* whenever a refresh reports no session, set on login, and synced across tabs,
|
|
298
|
+
* so it can only skip a request that was going to fail anyway.
|
|
299
|
+
*/
|
|
300
|
+
export interface SessionHintConfig {
|
|
301
|
+
/** Turn the optimization on. Default: false (always attempt refresh). */
|
|
302
|
+
enabled: boolean;
|
|
303
|
+
/**
|
|
304
|
+
* Storage key, one per auth scope. An origin that hosts several contexts
|
|
305
|
+
* (customer / tenant / system) must pass distinct keys so a customer login
|
|
306
|
+
* does not imply an admin session. Default: `'sessionHint'`.
|
|
307
|
+
*/
|
|
308
|
+
key?: string;
|
|
309
|
+
/** IndexedDB database name. Default: the refresh-token DB (`FetchGuardDB`). */
|
|
310
|
+
dbName?: string;
|
|
272
311
|
}
|
|
273
312
|
/**
|
|
274
313
|
* Extended RequestInit with FetchGuard-specific options
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/transport/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/transport/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formdata.d.ts","sourceRoot":"","sources":["../../../src/transport/utils/formdata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"formdata.d.ts","sourceRoot":"","sources":["../../../src/transport/utils/formdata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,kBAAkB,EAElB,wBAAwB,EACzB,MAAM,aAAa,CAAC;AAErB;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAuC7F;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,kBAAkB,GAAG,QAAQ,CAc5E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,QAAQ,CAE1D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,kBAAkB,CAE9E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formdata.js","sourceRoot":"","sources":["../../../src/transport/utils/formdata.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"formdata.js","sourceRoot":"","sources":["../../../src/transport/utils/formdata.ts"],"names":[],"mappings":"AAOA;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,QAAkB;IACxD,MAAM,OAAO,GAA6C,EAAE,CAAC;IAC7D,MAAM,aAAa,GAAkB,EAAE,CAAC;IAExC,yDAAyD;IACzD,8DAA8D;IAC9D,MAAM,cAAc,GAAqE,EAAE,CAAC;IAC5F,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAC9B,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3C,KAAK,EAAE,CAAC;IACV,CAAC,CAAC,CAAC;IAEH,qDAAqD;IACrD,MAAM,OAAO,CAAC,GAAG,CACf,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE;QACtD,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;YACzC,MAAM,cAAc,GAAmB;gBACrC,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,MAAM;aACP,CAAC;YACF,qCAAqC;YACrC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YACrC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACtC,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IAEF,OAAO;QACL,IAAI,EAAE;YACJ,KAAK,EAAE,UAAU;YACjB,OAAO;SACR;QACD,aAAa;KACd,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAA8B;IAChE,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;IAEhC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,yEAAyE;YACzE,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YACxE,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,IAAa;IACtC,OAAO,IAAI,YAAY,QAAQ,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAa;IAChD,OAAO,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAK,IAA2B,CAAC,KAAK,KAAK,UAAU,CAAC;AACxG,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/transport/utils/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/transport/utils/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAOjD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAU5E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAMvD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAExC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAErC"}
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
* reaching for the global `self` — that is what lets the same loop run inline.
|
|
9
9
|
*/
|
|
10
10
|
import type { Result } from 'ts-micro-result';
|
|
11
|
-
import type { WorkerToMainMessage } from './messages';
|
|
12
|
-
import type { AuthResult, FetchEnvelope, RefreshReason } from './types';
|
|
11
|
+
import type { WorkerToMainMessage } from './messages.js';
|
|
12
|
+
import type { AuthResult, FetchEnvelope, RefreshReason } from './types.js';
|
|
13
13
|
/** Minimal message sink the worker loop posts results to. */
|
|
14
14
|
export interface PostTarget {
|
|
15
15
|
postMessage(message: WorkerToMainMessage): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-post.d.ts","sourceRoot":"","sources":["../../src/transport/worker-post.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"worker-post.d.ts","sourceRoot":"","sources":["../../src/transport/worker-post.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3E,6DAA6D;AAC7D,MAAM,WAAW,UAAU;IACzB,WAAW,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAAC;CACjD;AAED,0DAA0D;AAC1D,MAAM,WAAW,UAAU;IACzB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IACrD,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IAC3D,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjE,SAAS,IAAI,IAAI,CAAC;IAClB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,oBAAoB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IACnD,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC7D,kBAAkB,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;CACjD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CA2G/D"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* expose a `postMessage`, so the helpers take the target explicitly rather than
|
|
8
8
|
* reaching for the global `self` — that is what lets the same loop run inline.
|
|
9
9
|
*/
|
|
10
|
-
import { MSG } from './messages';
|
|
10
|
+
import { MSG } from './messages.js';
|
|
11
11
|
/**
|
|
12
12
|
* Build the send helpers for a given host (real worker `self`, or an inline
|
|
13
13
|
* port). Every helper posts to `target.postMessage`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-post.js","sourceRoot":"","sources":["../../src/transport/worker-post.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAE,GAAG,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"worker-post.js","sourceRoot":"","sources":["../../src/transport/worker-post.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAqBpC;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAkB;IACjD,MAAM,IAAI,GAAG,CAAC,OAA4B,EAAQ,EAAE;QAClD,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC,CAAC;IAEF,OAAO;QACL;;;WAGG;QACH,SAAS,CAAC,EAAU,EAAE,MAAuB;YAC3C,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBACf,IAAI,CAAC;oBACH,IAAI,EAAE,GAAG,CAAC,KAAK;oBACf,EAAE;oBACF,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE;iBACtD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED;;WAEG;QACH,eAAe,CAAC,EAAU,EAAE,QAAuB;YACjD,IAAI,CAAC;gBACH,IAAI,EAAE,GAAG,CAAC,YAAY;gBACtB,EAAE;gBACF,OAAO,EAAE,QAAQ;aAClB,CAAC,CAAC;QACL,CAAC;QAED;;WAEG;QACH,cAAc,CAAC,EAAU,EAAE,KAAa,EAAE,MAAe;YACvD,IAAI,CAAC;gBACH,IAAI,EAAE,GAAG,CAAC,WAAW;gBACrB,EAAE;gBACF,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;aAC3B,CAAC,CAAC;QACL,CAAC;QAED;;WAEG;QACH,SAAS;YACP,IAAI,CAAC;gBACH,IAAI,EAAE,GAAG,CAAC,KAAK;gBACf,EAAE,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,EAAE;aACxB,CAAC,CAAC;QACL,CAAC;QAED;;WAEG;QACH,cAAc,CAAC,KAAa;YAC1B,IAAI,CAAC;gBACH,IAAI,EAAE,GAAG,CAAC,WAAW;gBACrB,EAAE,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,EAAE;gBACvB,OAAO,EAAE,EAAE,KAAK,EAAE;aACnB,CAAC,CAAC;QACL,CAAC;QAED;;WAEG;QACH,QAAQ,CAAC,EAAU,EAAE,SAAiB;YACpC,IAAI,CAAC;gBACH,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,EAAE;gBACF,OAAO,EAAE,EAAE,SAAS,EAAE;aACvB,CAAC,CAAC;QACL,CAAC;QAED;;WAEG;QACH,oBAAoB,CAAC,UAAsB;YACzC,IAAI,CAAC;gBACH,IAAI,EAAE,GAAG,CAAC,kBAAkB;gBAC5B,EAAE,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,EAAE;gBACvB,OAAO,EAAE,UAAU;aACpB,CAAC,CAAC;QACL,CAAC;QAED;;WAEG;QACH,kBAAkB,CAAC,EAAU,EAAE,UAAsB;YACnD,IAAI,CAAC;gBACH,IAAI,EAAE,GAAG,CAAC,gBAAgB;gBAC1B,EAAE;gBACF,OAAO,EAAE,UAAU;aACpB,CAAC,CAAC;QACL,CAAC;QAED;;WAEG;QACH,kBAAkB,CAAC,MAAqB;YACtC,IAAI,CAAC;gBACH,IAAI,EAAE,GAAG,CAAC,eAAe;gBACzB,EAAE,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,EAAE;gBACvB,OAAO,EAAE,EAAE,MAAM,EAAE;aACpB,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import type { MainToWorkerMessage } from './messages';
|
|
2
|
-
import { clearProviders, hasProvider, listProviders, registerProvider, unregisterProvider } from './utils/registry';
|
|
3
|
-
import { type PostTarget } from './worker-post';
|
|
4
|
-
export { createProvider } from './provider/create-provider';
|
|
5
|
-
export { bodyParser } from './provider/parser/body';
|
|
6
|
-
export { cookieParser } from './provider/parser/cookie';
|
|
7
|
-
export { createIndexedDBStorage } from './provider/storage/indexeddb';
|
|
8
|
-
export {
|
|
9
|
-
export {
|
|
10
|
-
export
|
|
1
|
+
import type { MainToWorkerMessage } from './messages.js';
|
|
2
|
+
import { clearProviders, hasProvider, listProviders, registerProvider, unregisterProvider } from './utils/registry.js';
|
|
3
|
+
import { type PostTarget } from './worker-post.js';
|
|
4
|
+
export { createProvider } from './provider/create-provider.js';
|
|
5
|
+
export { bodyParser } from './provider/parser/body.js';
|
|
6
|
+
export { cookieParser } from './provider/parser/cookie.js';
|
|
7
|
+
export { createIndexedDBStorage } from './provider/storage/indexeddb.js';
|
|
8
|
+
export { createSessionHint } from './provider/storage/session-hint.js';
|
|
9
|
+
export { createSessionHintChannel } from './provider/storage/session-hint-channel.js';
|
|
10
|
+
export { createBodyStrategy } from './provider/strategy/body.js';
|
|
11
|
+
export { createCookieStrategy } from './provider/strategy/cookie.js';
|
|
12
|
+
export type { AuthStrategy, ExchangeTokenOptions, RefreshTokenStorage, TokenParser, TokenProvider } from './types.js';
|
|
11
13
|
export { clearProviders, hasProvider, listProviders, registerProvider, unregisterProvider };
|
|
12
14
|
/**
|
|
13
15
|
* Host scope the worker loop drives: it posts results out via `postMessage` and
|
|
@@ -30,6 +32,10 @@ export interface WorkerLoopScope extends PostTarget {
|
|
|
30
32
|
* (`transport: 'worker'`) the token is isolated; run inline (`'inline'`) the
|
|
31
33
|
* same closure lives on the main thread, so XSS on the page can reach it — the
|
|
32
34
|
* closure is encapsulation, not a security boundary.
|
|
35
|
+
*
|
|
36
|
+
* Returns a dispose function releasing what outlives the message channel — today
|
|
37
|
+
* the session-hint BroadcastChannel. Terminating a real Worker tears down its
|
|
38
|
+
* whole realm, so only the inline host needs to call it.
|
|
33
39
|
*/
|
|
34
|
-
export declare function runWorkerLoop(scope: WorkerLoopScope): void;
|
|
40
|
+
export declare function runWorkerLoop(scope: WorkerLoopScope): () => void;
|
|
35
41
|
//# sourceMappingURL=worker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/transport/worker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/transport/worker.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAazD,OAAO,EACL,cAAc,EAEd,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGrE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,YAAY,EAAE,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGtH,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;AAyB5F;;;;;GAKG;AACH,MAAM,WAAW,eAAgB,SAAQ,UAAU;IACjD,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;CACxE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,IAAI,CAojBhE"}
|