@thewhateverapp/platform 0.12.4 → 0.13.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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tile-context/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAEnB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tile-context/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAEnB,MAAM,SAAS,CAAC;AAIjB,mBAAmB,SAAS,CAAC;AAmI7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,EACvC,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,WAAW,CAAC,CA2HtB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C"}
|
|
@@ -21,9 +21,13 @@
|
|
|
21
21
|
* }
|
|
22
22
|
* ```
|
|
23
23
|
*/
|
|
24
|
+
import { isPreviewMode } from '../env';
|
|
25
|
+
import { generateSeededSillyName } from '@thewhateverapp/shared';
|
|
24
26
|
// In-memory cache for validated tokens
|
|
25
27
|
// Key: token, Value: { context, expiresAt }
|
|
26
28
|
const tokenCache = new Map();
|
|
29
|
+
// Stable anonymous ID for preview mode (persists across requests in same session)
|
|
30
|
+
let previewAnonymousId = null;
|
|
27
31
|
// Default options
|
|
28
32
|
const DEFAULT_OPTIONS = {
|
|
29
33
|
tokenHeader: 'x-tile-token',
|
|
@@ -31,6 +35,37 @@ const DEFAULT_OPTIONS = {
|
|
|
31
35
|
cache: true,
|
|
32
36
|
cacheTtl: 60000, // 1 minute
|
|
33
37
|
};
|
|
38
|
+
/**
|
|
39
|
+
* Generate a stable anonymous ID for preview mode
|
|
40
|
+
* Uses session-stable ID instead of per-request generation
|
|
41
|
+
*/
|
|
42
|
+
function getPreviewAnonymousId() {
|
|
43
|
+
if (!previewAnonymousId) {
|
|
44
|
+
// Generate once per session using a stable seed
|
|
45
|
+
previewAnonymousId = `anon_preview_${Math.random().toString(36).substring(2, 10)}`;
|
|
46
|
+
console.log('[getTileContext] Generated preview anonymous ID:', previewAnonymousId);
|
|
47
|
+
}
|
|
48
|
+
return previewAnonymousId;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Decode a JWT payload without verification (for preview mode only)
|
|
52
|
+
* In preview mode, we trust the token from the parent window
|
|
53
|
+
*/
|
|
54
|
+
function decodeJwtPayload(token) {
|
|
55
|
+
try {
|
|
56
|
+
// JWT format: header.payload.signature
|
|
57
|
+
const parts = token.split('.');
|
|
58
|
+
if (parts.length !== 3)
|
|
59
|
+
return null;
|
|
60
|
+
// Decode base64url payload
|
|
61
|
+
const payload = parts[1];
|
|
62
|
+
const decoded = atob(payload.replace(/-/g, '+').replace(/_/g, '/'));
|
|
63
|
+
return JSON.parse(decoded);
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
34
69
|
/**
|
|
35
70
|
* Generate a consistent anonymous user ID from request characteristics
|
|
36
71
|
* Uses IP + User-Agent hash for anonymous tracking
|
|
@@ -143,12 +178,47 @@ export async function getTileContext(request, options) {
|
|
|
143
178
|
: headers.get('x-tile-id') || 'unknown';
|
|
144
179
|
// No token = anonymous context
|
|
145
180
|
if (!token) {
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
181
|
+
// In preview mode, use stable anonymous ID
|
|
182
|
+
const anonymousId = isPreviewMode()
|
|
183
|
+
? getPreviewAnonymousId()
|
|
184
|
+
: (request instanceof Request
|
|
185
|
+
? generateAnonymousId(request)
|
|
186
|
+
: `anon_${Date.now().toString(36)}`);
|
|
149
187
|
return {
|
|
150
188
|
authenticated: false,
|
|
151
189
|
userId: anonymousId,
|
|
190
|
+
username: generateSeededSillyName(anonymousId),
|
|
191
|
+
tileId,
|
|
192
|
+
scopes: [],
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
// In preview mode, decode JWT locally without validation
|
|
196
|
+
// Preview tokens come from the trusted parent window
|
|
197
|
+
if (isPreviewMode()) {
|
|
198
|
+
const payload = decodeJwtPayload(token);
|
|
199
|
+
if (payload?.userId) {
|
|
200
|
+
console.log('[getTileContext] Preview mode - decoded token locally:', {
|
|
201
|
+
userId: payload.userId,
|
|
202
|
+
tileId: payload.tileId || tileId,
|
|
203
|
+
});
|
|
204
|
+
// In preview mode, generate silly name for authenticated users too
|
|
205
|
+
// (we don't have access to their real username from the token)
|
|
206
|
+
return {
|
|
207
|
+
authenticated: true,
|
|
208
|
+
userId: payload.userId,
|
|
209
|
+
username: generateSeededSillyName(payload.userId),
|
|
210
|
+
tileId: payload.tileId || tileId,
|
|
211
|
+
scopes: payload.scopes || [],
|
|
212
|
+
expiresAt: payload.exp ? new Date(payload.exp * 1000) : undefined,
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
// Token exists but couldn't decode - use stable preview anonymous ID
|
|
216
|
+
console.log('[getTileContext] Preview mode - token decode failed, using anonymous ID');
|
|
217
|
+
const anonId = getPreviewAnonymousId();
|
|
218
|
+
return {
|
|
219
|
+
authenticated: false,
|
|
220
|
+
userId: anonId,
|
|
221
|
+
username: generateSeededSillyName(anonId),
|
|
152
222
|
tileId,
|
|
153
223
|
scopes: [],
|
|
154
224
|
};
|
|
@@ -174,14 +244,17 @@ export async function getTileContext(request, options) {
|
|
|
174
244
|
return {
|
|
175
245
|
authenticated: false,
|
|
176
246
|
userId: anonymousId,
|
|
247
|
+
username: generateSeededSillyName(anonymousId),
|
|
177
248
|
tileId,
|
|
178
249
|
scopes: [],
|
|
179
250
|
};
|
|
180
251
|
}
|
|
181
252
|
// Build authenticated context
|
|
253
|
+
// Use username from validation response, or generate silly name as fallback
|
|
182
254
|
const context = {
|
|
183
255
|
authenticated: true,
|
|
184
256
|
userId: validation.userId,
|
|
257
|
+
username: validation.username || generateSeededSillyName(validation.userId),
|
|
185
258
|
tileId: validation.tileId || tileId,
|
|
186
259
|
scopes: validation.scopes || [],
|
|
187
260
|
expiresAt: validation.expiresAt ? new Date(validation.expiresAt) : undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tile-context/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tile-context/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,13 @@ export interface TileContext {
|
|
|
16
16
|
* Safe to use for per-user operations like voting, tracking, etc.
|
|
17
17
|
*/
|
|
18
18
|
userId: string;
|
|
19
|
+
/**
|
|
20
|
+
* Friendly display name for the user
|
|
21
|
+
* - Authenticated users: Their actual username (e.g., "superjosh")
|
|
22
|
+
* - Anonymous users: A seeded silly name (e.g., "Cosmic Penguin")
|
|
23
|
+
* Always available, safe to display in UI
|
|
24
|
+
*/
|
|
25
|
+
username: string;
|
|
19
26
|
/**
|
|
20
27
|
* Tile ID this context belongs to
|
|
21
28
|
*/
|
|
@@ -61,6 +68,7 @@ export interface TileContextOptions {
|
|
|
61
68
|
export interface TokenValidationResponse {
|
|
62
69
|
valid: boolean;
|
|
63
70
|
userId?: string;
|
|
71
|
+
username?: string;
|
|
64
72
|
tileId?: string;
|
|
65
73
|
scopes?: string[];
|
|
66
74
|
expiresAt?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tile-context/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,aAAa,EAAE,OAAO,CAAC;IAEvB;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB;;OAEG;IACH,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tile-context/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,aAAa,EAAE,OAAO,CAAC;IAEvB;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB;;OAEG;IACH,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thewhateverapp/platform",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0",
|
|
4
4
|
"description": "Universal SDK for The Whatever App platform services",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -65,5 +65,8 @@
|
|
|
65
65
|
"react": {
|
|
66
66
|
"optional": true
|
|
67
67
|
}
|
|
68
|
+
},
|
|
69
|
+
"dependencies": {
|
|
70
|
+
"@thewhateverapp/shared": "^0.3.1"
|
|
68
71
|
}
|
|
69
72
|
}
|