@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;AAEjB,mBAAmB,SAAS,CAAC;AAgG7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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,CAoFtB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C"}
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
- const anonymousId = request instanceof Request
147
- ? generateAnonymousId(request)
148
- : `anon_${Date.now().toString(36)}`;
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":"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"}
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.12.4",
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
  }