ugly-app 0.1.506 → 0.1.508

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,2 +1,2 @@
1
- export declare const CLI_VERSION = "0.1.506";
1
+ export declare const CLI_VERSION = "0.1.508";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,3 +1,3 @@
1
1
  // Auto-generated by prebuild — do not edit manually
2
- export const CLI_VERSION = "0.1.506";
2
+ export const CLI_VERSION = "0.1.508";
3
3
  //# sourceMappingURL=version.js.map
@@ -345,15 +345,104 @@ export function createWorkersApp(optsOrRegistry, handlersArg, appDefsArg, config
345
345
  dbOverride = opts.db;
346
346
  const hono = new Hono();
347
347
  hono.get('/_health', (c) => c.json({ ok: true, kind: 'workers' }));
348
+ // ── Auth routes — mirror server/Auth.ts on the Node side ──────────────
349
+ // The framework's SPA client hits these to drive the ugly.bot OAuth
350
+ // popup flow:
351
+ // GET /auth/url → { url } the popup loads
352
+ // POST /auth/verify → exchanges `code` for a session cookie
353
+ // GET /auth/token → refreshes/returns the current JWT
354
+ // POST /auth/logout → clears the cookie
355
+ // The Node implementation registers these via createAuthRoutes() on
356
+ // the express router; on Workers they live here.
357
+ const COOKIE_MAX_AGE_SECONDS = 60 * 60 * 24 * 30; // 30 days
358
+ function buildCookie(token, opts = {}) {
359
+ const parts = [`auth_token=${opts.clear ? '' : token}`];
360
+ parts.push('Path=/');
361
+ parts.push('HttpOnly');
362
+ parts.push('Secure');
363
+ parts.push('SameSite=Lax');
364
+ parts.push(`Max-Age=${opts.clear ? 0 : COOKIE_MAX_AGE_SECONDS}`);
365
+ return parts.join('; ');
366
+ }
367
+ function getAuthCookie(c) {
368
+ const cookieHeader = c.req.header('Cookie');
369
+ if (!cookieHeader)
370
+ return null;
371
+ for (const part of cookieHeader.split(';')) {
372
+ const [name, ...rest] = part.trim().split('=');
373
+ if (name === 'auth_token')
374
+ return rest.join('=');
375
+ }
376
+ return null;
377
+ }
378
+ hono.get('/auth/url', (c) => {
379
+ const origin = c.req.query('origin');
380
+ if (!origin)
381
+ return c.json({ error: 'Missing origin' }, 400);
382
+ return c.json({
383
+ url: `${getUglyBotUrl()}/oauth?origin=${encodeURIComponent(origin)}`,
384
+ });
385
+ });
386
+ hono.post('/auth/verify', async (c) => {
387
+ try {
388
+ const body = (await c.req.json().catch(() => ({})));
389
+ if (!body.code)
390
+ return c.json({ error: 'Missing code' }, 400);
391
+ const verifyUrl = `${getUglyBotUrl()}/oauth/verify?code=${encodeURIComponent(body.code)}`;
392
+ const res = await fetch(verifyUrl);
393
+ if (!res.ok) {
394
+ const text = await res.text().catch(() => '');
395
+ // eslint-disable-next-line no-console
396
+ console.error('[auth] ugly.bot /oauth/verify failed', {
397
+ status: res.status,
398
+ body: text.slice(0, 200),
399
+ });
400
+ return c.json({ error: 'Authentication failed' }, 401);
401
+ }
402
+ const data = (await res.json());
403
+ if (!data.token) {
404
+ return c.json({ error: 'Auth provider did not return a token' }, 401);
405
+ }
406
+ c.header('Set-Cookie', buildCookie(data.token));
407
+ return c.json({ token: data.token });
408
+ }
409
+ catch (err) {
410
+ // eslint-disable-next-line no-console
411
+ console.error('[auth] verify threw', err);
412
+ return c.json({ error: 'Authentication failed' }, 401);
413
+ }
414
+ });
415
+ hono.get('/auth/token', async (c) => {
416
+ const token = getAuthCookie(c);
417
+ if (!token)
418
+ return c.json({ error: 'No session' }, 401);
419
+ try {
420
+ await ctx.verifyToken(token);
421
+ c.header('Set-Cookie', buildCookie(token));
422
+ return c.json({ token });
423
+ }
424
+ catch {
425
+ c.header('Set-Cookie', buildCookie('', { clear: true }));
426
+ return c.json({ error: 'Session expired' }, 401);
427
+ }
428
+ });
429
+ hono.post('/auth/logout', (c) => {
430
+ c.header('Set-Cookie', buildCookie('', { clear: true }));
431
+ return c.json({ ok: true });
432
+ });
348
433
  // POST /api/:name — runtime-neutral request dispatch.
349
434
  hono.post('/api/:name', async (c) => {
350
435
  ensureAdapter(c.env);
351
436
  const name = c.req.param('name');
352
437
  const body = (await c.req.json().catch(() => ({})));
353
- // For v1 we accept a header-based auth token (Bearer). The
354
- // existing fetch-based verifyToken() works on Workers as-is.
438
+ // Resolve a token from either the Authorization: Bearer header
439
+ // (tests, server-side callers) OR the `auth_token` cookie set by
440
+ // the SPA's /auth/verify flow. Cookies are the production path for
441
+ // browser clients; bearer tokens are convenient for scripts.
355
442
  const auth = c.req.header('Authorization') ?? '';
356
- const token = auth.startsWith('Bearer ') ? auth.slice(7) : '';
443
+ const token = (auth.startsWith('Bearer ') ? auth.slice(7) : '') ||
444
+ getAuthCookie(c) ||
445
+ '';
357
446
  let userId = null;
358
447
  if (token) {
359
448
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"createWorkersApp.js","sourceRoot":"","sources":["../../../../src/server/adapter/workers/createWorkersApp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createWorkersApp.js","sourceRoot":"","sources":["../../../../src/server/adapter/workers/createWorkersApp.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"wrapWithAssets.d.ts","sourceRoot":"","sources":["../../../../src/server/adapter/workers/wrapWithAssets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAoCD,wBAAgB,cAAc,CAC5B,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,YAAY,GACnB,UAAU,CAgEZ"}
1
+ {"version":3,"file":"wrapWithAssets.d.ts","sourceRoot":"","sources":["../../../../src/server/adapter/workers/wrapWithAssets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGxD,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AA8FD,wBAAgB,cAAc,CAC5B,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,YAAY,GACnB,UAAU,CAiEZ"}
@@ -27,6 +27,8 @@
27
27
  * `/{buildId}/*`, and the SPA fallback (any non-base, non-asset
28
28
  * GET that the base would 404).
29
29
  */
30
+ import { getUglyBotUrl } from '../../../shared/uglyBotUrl.js';
31
+ import { getAppContext } from './createWorkersApp.js';
30
32
  const ASSET_CACHE_CONTROL = 'public, max-age=31536000, immutable';
31
33
  const HTML_CACHE_CONTROL = 'no-cache, no-store, must-revalidate';
32
34
  function guessContentType(path) {
@@ -62,15 +64,71 @@ function guessContentType(path) {
62
64
  return 'application/json; charset=utf-8';
63
65
  return 'application/octet-stream';
64
66
  }
65
- function htmlResponse(html) {
67
+ function htmlResponse(html, extraHeaders) {
66
68
  return new Response(html, {
67
69
  status: 200,
68
70
  headers: {
69
71
  'content-type': 'text/html; charset=utf-8',
70
72
  'cache-control': HTML_CACHE_CONTROL,
73
+ ...extraHeaders,
71
74
  },
72
75
  });
73
76
  }
77
+ function readAuthCookie(request) {
78
+ const cookieHeader = request.headers.get('Cookie');
79
+ if (!cookieHeader)
80
+ return null;
81
+ for (const part of cookieHeader.split(';')) {
82
+ const [name, ...rest] = part.trim().split('=');
83
+ if (name === 'auth_token')
84
+ return rest.join('=');
85
+ }
86
+ return null;
87
+ }
88
+ /**
89
+ * Mirror Node `App.ts`'s `injectScript` flow: read the `auth_token`
90
+ * cookie, verify it via ugly.bot, and inject `window.__AUTH_TOKEN__`
91
+ * before `</head>` so the framework client's `bootstrapApp` boots in
92
+ * the authenticated state on the first paint.
93
+ *
94
+ * Without this injection the client always sees `__AUTH_TOKEN__` as
95
+ * undefined, the `AutoLoginGate` kicks in on every page load, the
96
+ * iframe-auth handshake gets a fresh code, `/auth/verify` re-sets the
97
+ * (HttpOnly) cookie, `window.location.reload()` fires, and we loop
98
+ * forever because the cookie is invisible to JavaScript.
99
+ *
100
+ * Also injects `__UGLY_BOT_URL__` so the AutoLoginGate's iframe-auth
101
+ * postMessage handshake uses the correct origin.
102
+ */
103
+ async function buildAuthInjection(request) {
104
+ let injectedToken = null;
105
+ const cookieToken = readAuthCookie(request);
106
+ if (cookieToken) {
107
+ try {
108
+ await getAppContext().verifyToken(cookieToken);
109
+ injectedToken = cookieToken;
110
+ }
111
+ catch {
112
+ // Cookie invalid/expired — leave the token slot empty; the
113
+ // SPA's AutoLoginGate will silently re-acquire. The Set-Cookie
114
+ // delete header below clears the bad cookie so the loop ends.
115
+ }
116
+ }
117
+ const parts = [];
118
+ if (injectedToken) {
119
+ parts.push(`<script>window.__AUTH_TOKEN__=${JSON.stringify(injectedToken)}</script>`);
120
+ }
121
+ parts.push(`<script>window.__UGLY_BOT_URL__=${JSON.stringify(getUglyBotUrl())}</script>`);
122
+ return parts.join('');
123
+ }
124
+ function injectIntoHead(html, scripts) {
125
+ if (!scripts)
126
+ return html;
127
+ const idx = html.indexOf('</head>');
128
+ if (idx === -1)
129
+ return scripts + html; // no head — prepend
130
+ return html.slice(0, idx) + scripts + html.slice(idx);
131
+ }
74
132
  export function wrapWithAssets(base, config) {
75
133
  const { indexHtml, buildId } = config;
76
134
  const assetPrefix = `/${buildId}/`;
@@ -113,7 +171,8 @@ export function wrapWithAssets(base, config) {
113
171
  // index document. Client-side routing takes it from here.
114
172
  // POST/PUT/DELETE on unrecognized paths get the base's 404.
115
173
  if (method === 'GET' || method === 'HEAD') {
116
- return htmlResponse(indexHtml);
174
+ const injection = await buildAuthInjection(request);
175
+ return htmlResponse(injectIntoHead(indexHtml, injection));
117
176
  }
118
177
  return baseRes;
119
178
  },
@@ -1 +1 @@
1
- {"version":3,"file":"wrapWithAssets.js","sourceRoot":"","sources":["../../../../src/server/adapter/workers/wrapWithAssets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wrapWithAssets.js","sourceRoot":"","sources":["../../../../src/server/adapter/workers/wrapWithAssets.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ugly-app",
3
- "version": "0.1.506",
3
+ "version": "0.1.508",
4
4
  "type": "module",
5
5
  "main": "./dist/server/index.js",
6
6
  "exports": {
@@ -1,2 +1,2 @@
1
1
  // Auto-generated by prebuild — do not edit manually
2
- export const CLI_VERSION = "0.1.506";
2
+ export const CLI_VERSION = "0.1.508";
@@ -573,6 +573,96 @@ export function createWorkersApp<R extends AppRegistryBase>(
573
573
 
574
574
  hono.get('/_health', (c) => c.json({ ok: true, kind: 'workers' }));
575
575
 
576
+ // ── Auth routes — mirror server/Auth.ts on the Node side ──────────────
577
+ // The framework's SPA client hits these to drive the ugly.bot OAuth
578
+ // popup flow:
579
+ // GET /auth/url → { url } the popup loads
580
+ // POST /auth/verify → exchanges `code` for a session cookie
581
+ // GET /auth/token → refreshes/returns the current JWT
582
+ // POST /auth/logout → clears the cookie
583
+ // The Node implementation registers these via createAuthRoutes() on
584
+ // the express router; on Workers they live here.
585
+ const COOKIE_MAX_AGE_SECONDS = 60 * 60 * 24 * 30; // 30 days
586
+ function buildCookie(token: string, opts: { clear?: boolean } = {}): string {
587
+ const parts = [`auth_token=${opts.clear ? '' : token}`];
588
+ parts.push('Path=/');
589
+ parts.push('HttpOnly');
590
+ parts.push('Secure');
591
+ parts.push('SameSite=Lax');
592
+ parts.push(
593
+ `Max-Age=${opts.clear ? 0 : COOKIE_MAX_AGE_SECONDS}`,
594
+ );
595
+ return parts.join('; ');
596
+ }
597
+ function getAuthCookie(c: { req: { header: (n: string) => string | undefined } }): string | null {
598
+ const cookieHeader = c.req.header('Cookie');
599
+ if (!cookieHeader) return null;
600
+ for (const part of cookieHeader.split(';')) {
601
+ const [name, ...rest] = part.trim().split('=');
602
+ if (name === 'auth_token') return rest.join('=');
603
+ }
604
+ return null;
605
+ }
606
+
607
+ hono.get('/auth/url', (c) => {
608
+ const origin = c.req.query('origin');
609
+ if (!origin) return c.json({ error: 'Missing origin' }, 400);
610
+ return c.json({
611
+ url: `${getUglyBotUrl()}/oauth?origin=${encodeURIComponent(origin)}`,
612
+ });
613
+ });
614
+
615
+ hono.post('/auth/verify', async (c) => {
616
+ try {
617
+ const body = (await c.req.json().catch(() => ({}))) as {
618
+ code?: string;
619
+ };
620
+ if (!body.code) return c.json({ error: 'Missing code' }, 400);
621
+ const verifyUrl = `${getUglyBotUrl()}/oauth/verify?code=${encodeURIComponent(body.code)}`;
622
+ const res = await fetch(verifyUrl);
623
+ if (!res.ok) {
624
+ const text = await res.text().catch(() => '');
625
+ // eslint-disable-next-line no-console
626
+ console.error('[auth] ugly.bot /oauth/verify failed', {
627
+ status: res.status,
628
+ body: text.slice(0, 200),
629
+ });
630
+ return c.json({ error: 'Authentication failed' }, 401);
631
+ }
632
+ const data = (await res.json()) as {
633
+ user_id: string;
634
+ token?: string;
635
+ };
636
+ if (!data.token) {
637
+ return c.json({ error: 'Auth provider did not return a token' }, 401);
638
+ }
639
+ c.header('Set-Cookie', buildCookie(data.token));
640
+ return c.json({ token: data.token });
641
+ } catch (err) {
642
+ // eslint-disable-next-line no-console
643
+ console.error('[auth] verify threw', err);
644
+ return c.json({ error: 'Authentication failed' }, 401);
645
+ }
646
+ });
647
+
648
+ hono.get('/auth/token', async (c) => {
649
+ const token = getAuthCookie(c);
650
+ if (!token) return c.json({ error: 'No session' }, 401);
651
+ try {
652
+ await ctx.verifyToken(token);
653
+ c.header('Set-Cookie', buildCookie(token));
654
+ return c.json({ token });
655
+ } catch {
656
+ c.header('Set-Cookie', buildCookie('', { clear: true }));
657
+ return c.json({ error: 'Session expired' }, 401);
658
+ }
659
+ });
660
+
661
+ hono.post('/auth/logout', (c) => {
662
+ c.header('Set-Cookie', buildCookie('', { clear: true }));
663
+ return c.json({ ok: true });
664
+ });
665
+
576
666
  // POST /api/:name — runtime-neutral request dispatch.
577
667
  hono.post('/api/:name', async (c) => {
578
668
  ensureAdapter(c.env);
@@ -580,10 +670,15 @@ export function createWorkersApp<R extends AppRegistryBase>(
580
670
  const body = (await c.req.json().catch(() => ({}))) as {
581
671
  input?: unknown;
582
672
  };
583
- // For v1 we accept a header-based auth token (Bearer). The
584
- // existing fetch-based verifyToken() works on Workers as-is.
673
+ // Resolve a token from either the Authorization: Bearer header
674
+ // (tests, server-side callers) OR the `auth_token` cookie set by
675
+ // the SPA's /auth/verify flow. Cookies are the production path for
676
+ // browser clients; bearer tokens are convenient for scripts.
585
677
  const auth = c.req.header('Authorization') ?? '';
586
- const token = auth.startsWith('Bearer ') ? auth.slice(7) : '';
678
+ const token =
679
+ (auth.startsWith('Bearer ') ? auth.slice(7) : '') ||
680
+ getAuthCookie(c) ||
681
+ '';
587
682
  let userId: string | null = null;
588
683
  if (token) {
589
684
  try {
@@ -30,8 +30,10 @@
30
30
 
31
31
  import type { ExecutionContext } from '@cloudflare/workers-types';
32
32
 
33
+ import { getUglyBotUrl } from '../../../shared/uglyBotUrl.js';
33
34
  import type { WorkersEnv } from './cf-types.js';
34
35
  import type { WorkersApp } from './createWorkersApp.js';
36
+ import { getAppContext } from './createWorkersApp.js';
35
37
 
36
38
  export interface AssetsConfig {
37
39
  /**
@@ -71,16 +73,74 @@ function guessContentType(path: string): string {
71
73
  return 'application/octet-stream';
72
74
  }
73
75
 
74
- function htmlResponse(html: string): Response {
76
+ function htmlResponse(html: string, extraHeaders?: Record<string, string>): Response {
75
77
  return new Response(html, {
76
78
  status: 200,
77
79
  headers: {
78
80
  'content-type': 'text/html; charset=utf-8',
79
81
  'cache-control': HTML_CACHE_CONTROL,
82
+ ...extraHeaders,
80
83
  },
81
84
  });
82
85
  }
83
86
 
87
+ function readAuthCookie(request: Request): string | null {
88
+ const cookieHeader = request.headers.get('Cookie');
89
+ if (!cookieHeader) return null;
90
+ for (const part of cookieHeader.split(';')) {
91
+ const [name, ...rest] = part.trim().split('=');
92
+ if (name === 'auth_token') return rest.join('=');
93
+ }
94
+ return null;
95
+ }
96
+
97
+ /**
98
+ * Mirror Node `App.ts`'s `injectScript` flow: read the `auth_token`
99
+ * cookie, verify it via ugly.bot, and inject `window.__AUTH_TOKEN__`
100
+ * before `</head>` so the framework client's `bootstrapApp` boots in
101
+ * the authenticated state on the first paint.
102
+ *
103
+ * Without this injection the client always sees `__AUTH_TOKEN__` as
104
+ * undefined, the `AutoLoginGate` kicks in on every page load, the
105
+ * iframe-auth handshake gets a fresh code, `/auth/verify` re-sets the
106
+ * (HttpOnly) cookie, `window.location.reload()` fires, and we loop
107
+ * forever because the cookie is invisible to JavaScript.
108
+ *
109
+ * Also injects `__UGLY_BOT_URL__` so the AutoLoginGate's iframe-auth
110
+ * postMessage handshake uses the correct origin.
111
+ */
112
+ async function buildAuthInjection(request: Request): Promise<string> {
113
+ let injectedToken: string | null = null;
114
+ const cookieToken = readAuthCookie(request);
115
+ if (cookieToken) {
116
+ try {
117
+ await getAppContext().verifyToken(cookieToken);
118
+ injectedToken = cookieToken;
119
+ } catch {
120
+ // Cookie invalid/expired — leave the token slot empty; the
121
+ // SPA's AutoLoginGate will silently re-acquire. The Set-Cookie
122
+ // delete header below clears the bad cookie so the loop ends.
123
+ }
124
+ }
125
+ const parts: string[] = [];
126
+ if (injectedToken) {
127
+ parts.push(
128
+ `<script>window.__AUTH_TOKEN__=${JSON.stringify(injectedToken)}</script>`,
129
+ );
130
+ }
131
+ parts.push(
132
+ `<script>window.__UGLY_BOT_URL__=${JSON.stringify(getUglyBotUrl())}</script>`,
133
+ );
134
+ return parts.join('');
135
+ }
136
+
137
+ function injectIntoHead(html: string, scripts: string): string {
138
+ if (!scripts) return html;
139
+ const idx = html.indexOf('</head>');
140
+ if (idx === -1) return scripts + html; // no head — prepend
141
+ return html.slice(0, idx) + scripts + html.slice(idx);
142
+ }
143
+
84
144
  export function wrapWithAssets(
85
145
  base: WorkersApp,
86
146
  config: AssetsConfig,
@@ -135,7 +195,8 @@ export function wrapWithAssets(
135
195
  // index document. Client-side routing takes it from here.
136
196
  // POST/PUT/DELETE on unrecognized paths get the base's 404.
137
197
  if (method === 'GET' || method === 'HEAD') {
138
- return htmlResponse(indexHtml);
198
+ const injection = await buildAuthInjection(request);
199
+ return htmlResponse(injectIntoHead(indexHtml, injection));
139
200
  }
140
201
  return baseRes;
141
202
  },