ugly-app 0.1.886 → 0.1.888

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 CHANGED
@@ -14,10 +14,7 @@ ugly-app is designed to be deployed and operated through [ugly.bot](https://ugly
14
14
  - **Realtime**: NATS pub/sub and document change subscriptions (`trackDoc` / `trackDocs`)
15
15
  - **Storage**: S3-compatible buckets with presigned uploads
16
16
  - **Workers & cron**: `setWorkers()` registers named async tasks with optional Zod input schemas and cron schedules
17
- - **Localization**: Strings tables with critical-string SSR injection
18
- - **Experiments**: Deterministic A/B bucketing tied to event logging
19
17
  - **Two-adapter deploy**: Same source runs on Node (Express) or Cloudflare Workers (Hono + Durable Objects)
20
- - **CLI**: `ugly-app` commands for dev, build, deploy, migrations, logs, AI, and auth
21
18
 
22
19
  ## Quick start
23
20
 
@@ -50,7 +47,7 @@ import { collections } from '../shared/collections';
50
47
  import { cronTasks } from '../shared/cron';
51
48
  import { pages } from '../shared/pages';
52
49
 
53
- const cronHandlers: WorkerHandlers<typeof cronTasks> = { /* ... */ };
50
+ const cronHandlers: WorkerHandlers<typeof cronTasks> = { /* … */ };
54
51
 
55
52
  const app = createApp(
56
53
  { requests, messages },
@@ -71,17 +68,19 @@ await app.start(parseInt(process.env['PORT'] ?? '4321'));
71
68
 
72
69
  ```typescript
73
70
  function createApp<
74
- R extends AppRegistryBase,
71
+ R extends AppRegistryBase, // { requests, messages, pages? }
75
72
  Defs extends CollectionDefRegistry,
76
73
  >(
77
- registry: R, // { requests, messages, pages? }
78
- requests: Partial<RequestHandlers<R['requests']>>, // handler implementations
79
- appDefs: Defs, // collections from defineCollections()
74
+ registry: R,
75
+ requests: Partial<RequestHandlers<R['requests']>>,
76
+ appDefs: Defs,
80
77
  configure?: (c: AppConfigurator) => void,
81
- deleteHandlers?: DeleteHandlers<Defs>, // per-collection onDelete hooks
78
+ deleteHandlers?: DeleteHandlers<Defs>, // per-collection onDelete hooks
82
79
  ): App<CollectionMap<typeof BUILTIN_DEFS & Defs>, RegistryPages<R>>;
83
80
  ```
84
81
 
82
+ Adding `pages` to the registry (`{ requests, messages, pages }`) upgrades `app.pushSend()` to a per-route typed API. `pages` is optional; apps that only call `setPages()` still work, they just get the loose `PageRegistry` typing on `pushSend`.
83
+
85
84
  The returned `App`:
86
85
 
87
86
  | Field | Description |
@@ -91,21 +90,21 @@ The returned `App`:
91
90
  | `httpServer` | The underlying Node `http.Server`. |
92
91
  | `wss` | The main `WebSocketServer` (path set by `setWsPath`, default `/rpc`). |
93
92
  | `dispatch(name, input, userId)` | Invoke an RPC handler programmatically (from `AppRouter`). |
94
- | `registerRoutes(fn)` | Mount more Express routes after creation. |
95
- | `pushSend(input)` | Send a push whose click-through target is a route from this app's `pages` table. `page` is type-checked against route keys (when `pages` is provided on the registry); `query` against that route's params. The framework builds the absolute URL and stamps project identity so the client can open the right dock app. |
93
+ | `registerRoutes(fn)` | Mount additional Express routes after creation. |
94
+ | `pushSend({ page, query, … })` | Send a push whose click-through target is a route from this app's `pages` table. `page` and `query` are type-checked when the registry carries `pages`. The framework builds the absolute URL and stamps project identity so the client opens the right dock app. |
96
95
 
97
- Framework-managed services start automatically inside `app.start()`: schema drift check, NATS connection + KV buckets, data-proxy connection, event-counter flush, TTL cleanup for log tables, console/error capture, and ugly.bot log forwarding. Individual subsystems (Postgres, NATS, storage, AI providers) load lazily — a host without `DATABASE_URL` / `NATS_URL` / `R2_BUCKET` doesn't pay their startup cost.
96
+ Framework services start automatically inside `app.start()`: schema drift check, NATS connection + KV buckets, data-proxy connection, event-counter flush, TTL cleanup for log tables, console/error capture, and ugly.bot log forwarding. Postgres, NATS, storage, and AI clients are loaded **lazily** — a host without `DATABASE_URL` / `NATS_URL` / `R2_BUCKET` doesn't pay their startup cost.
98
97
 
99
98
  ### `AppConfigurator`
100
99
 
101
- Passed to the optional 4th argument of `createApp`. Every method is optional (except `setPages` if you want the SPA served).
100
+ Passed to the optional 4th argument of `createApp`. Every method is optional; `setPages` is what mounts the SPA.
102
101
 
103
102
  | Method | Description |
104
103
  |--------|-------------|
105
104
  | `setPages({ pages, renderPage?, clientDistPath? })` | Mount the SPA. Dev runs Vite in middleware mode; prod serves `dist/client`. Provide `renderPage(routeName, params) => Promise<string>` for SSR on `ssr: true` pages. |
106
- | `setUserHelper(helper)` | Customize how the framework reads/writes the `user` collection during WS auth (default looks up by id in a generic `user` collection). |
107
- | `setOnUserCreate(handler)` | Called on first login with `(userId, { email?, phone? }, db)` — the app's chance to create the user record. |
108
- | `setAuth(provider)` | Replace the default auth provider. Must implement `verify(code)`, `authUrl(origin)`, optional `registerRoutes(router, { db, onUserCreate })`. |
105
+ | `setUserHelper(helper)` | Customize how the framework reads/writes the `user` collection during WS auth. |
106
+ | `setOnUserCreate(handler)` | Called on first login with `(userId, { email?, phone? }, db)` — create the user record. |
107
+ | `setAuth(provider)` | Replace the default auth provider (`verify(code)`, `authUrl(origin)`, optional `registerRoutes`). |
109
108
  | `setOnSocketMessage(handler)` | Single raw-WebSocket handler. `(ws, userId, msg) => boolean` — return `true` to consume, `false` to fall through. |
110
109
  | `addSocketMessageHandler(handler)` | Append to the handler chain; first `true` wins. |
111
110
  | `setWsPath(path)` | Override the WebSocket path (default `/rpc`). |
@@ -114,11 +113,11 @@ Passed to the optional 4th argument of `createApp`. Every method is optional (ex
114
113
  | `setOnMinuteTick(fn)` / `setOnHourlyTick(fn)` | Framework-managed periodic callbacks. Only fire when `CLOCK_ENABLED=true`. |
115
114
  | `setHealthHandler(fn)` | Override the default `GET /health`. |
116
115
  | `setExperiments(experiments)` | Register `Experiment` definitions for `initSession` / `captureEvent` bucketing. |
117
- | `setIsAdmin(fn)` | `(userId, db) => boolean \| Promise<boolean>` — gate for admin-only framework requests (`adminCreateTestUser` / `list` / `delete`). Defaults to matching `MAINTAIN_BOT_USER_ID`. |
118
- | `setOnEmail(handler)` | Handle inbound emails routed to `{domain}@ugly.bot` (delivered via internal HTTP). |
116
+ | `setIsAdmin(fn)` | `(userId, db) => boolean \| Promise<boolean>` — gate for admin-only framework requests. Defaults to matching `MAINTAIN_BOT_USER_ID`. |
117
+ | `setOnEmail(handler)` | Handle inbound emails routed to `{domain}@ugly.bot` (delivered as internal HTTP). |
119
118
  | `setCronTasks(tasks, handlers)` | Legacy cron-only registry. Prefer `setWorkers()`. |
120
- | `setWorkers(workers, handlers)` | Register named async tasks with optional Zod input schema and cron schedule. Powers `GET /_workers/manifest`, `POST /_workers/run`, and the cron orchestrator. |
121
- | `setStrings(config)` | Localization config — framework injects language + critical strings into SSR HTML and exposes `resolveLanguage` / `getCriticalStrings`. |
119
+ | `setWorkers(workers, handlers)` | Register named async tasks with optional Zod input schema and cron schedule. Powers `GET /_workers/manifest`, `POST /_workers/run`, and the cron orchestrator. Scheduled workers are mirrored into the cron registry automatically. |
120
+ | `setStrings(config)` | Localization config — framework injects language + critical strings into SSR HTML. |
122
121
  | `registerRoutes(fn)` | Mount custom Express routes. |
123
122
  | `setWorkerQueue(queue)` | Register a `WorkerQueue` with `start()` / `stop()` for lifecycle management. |
124
123
 
@@ -128,10 +127,10 @@ Handlers are plain async functions — no context object. Access state via captu
128
127
 
129
128
  ```typescript
130
129
  // req() — public, userId may be null
131
- getPublicData: async (userId: string | null, input) => { ... }
130
+ getPublicData: async (userId: string | null, input) => { … }
132
131
 
133
132
  // authReq() — authenticated, framework returns 401 if no/invalid token
134
- getMe: async (userId: string, input) => { ... }
133
+ getMe: async (userId: string, input) => { … }
135
134
  ```
136
135
 
137
136
  ### Built-in framework requests
@@ -141,14 +140,12 @@ getMe: async (userId: string, input) => { ... }
141
140
  | Name | Purpose |
142
141
  |------|---------|
143
142
  | `userGet` | Returns `{ userId, name, avatarUri }` for the given user (or caller). |
144
- | `initSession` | Records a session start; returns experiment branch assignments. |
145
- | `captureEvent` | Records a client event tagged with session + branches. |
143
+ | `initSession` / `captureEvent` | Session + event logging tagged with experiment branches. |
146
144
  | `textGen` / `imageGen` | AI proxies — server-validated, billed through ugly.bot. |
147
145
  | `kagiSearch` / `kagiSummarize` / `kagiEnrichWeb` / `kagiEnrichNews` | Web search via ugly.bot. |
148
146
  | `uploadUrl` | Issues a presigned PUT for the `temp` bucket. |
149
147
  | `shareLink` | Mint a `https://ugly.bot/l/<code>` short link with OG metadata (see the "sharing links" rule in `CLAUDE.md`). |
150
- | `feedbackReportCreateNoAuth` / `errorLogCaptureNoAuth` / `perfSnapshotCaptureNoAuth` | Same-origin, public endpoints used by the built-in browser telemetry to write into the project's own Postgres. |
151
- | `submitFeedbackBot` | Forwards `db.captureFeedback` for the maintain-bot persona. |
148
+ | `feedbackReportCreateNoAuth` / `errorLogCaptureNoAuth` / `perfSnapshotCaptureNoAuth` | Same-origin, public endpoints used by browser telemetry to write into the project's Postgres. |
152
149
  | `feedbackReportResolve` | Admin-only — resolve or decline a feedback report. |
153
150
  | `adminCreateTestUser` / `adminListTestUsers` / `adminDeleteTestUser` | Admin-only synthetic-user management. Gated by `setIsAdmin()` (or `MAINTAIN_BOT_USER_ID`). |
154
151
 
@@ -240,7 +237,7 @@ export type AppPages = typeof pages;
240
237
  - `auth` (default `true`) — protected route; the router's per-route guard surfaces `<AuthRoot>` on the client, and the server injects `window.__AUTH_TOKEN__` only for a verified cookie.
241
238
  - `ssr` (default `false`) — server-render the page for SEO. `{ auth: true, ssr: true }` is dropped to `ssr: false` with a warning: the SSR document is served from a shared edge cache and must not depend on the viewer.
242
239
  - `cacheQuery?: string[]` — query params that participate in the SSR edge-cache key. Anything NOT listed bypasses the cache instead of poisoning it (e.g. `cacheQuery: ['q']` on a search page).
243
- - `ssrCacheTimeout?: number` — edge cache lifetime in seconds. Default is effectively 1 year (`DEFAULT_SSR_CACHE_TIMEOUT`) because the buildId is part of the cache key. Override only for pages that drift between deploys.
240
+ - `ssrCacheTimeout?: number` — edge cache lifetime in seconds. Default is effectively 1 year (`DEFAULT_SSR_CACHE_TIMEOUT`) because the `buildId` is part of the cache key. Override only for pages that drift between deploys.
244
241
 
245
242
  Path syntax: `:param` matches a single path segment; `*param` is greedy (captures slashes). Query-string params are declared in `Params` but never appear in the path template.
246
243
 
@@ -281,14 +278,14 @@ bootstrapApp({
281
278
  | `socketUrl?` | Override the WebSocket path (default `/rpc`). |
282
279
  | `strings?` | Localization config — when present, wraps the tree with `<StringsProvider>`. |
283
280
  | `keyboard?: false` | Disable the framework `<KeyboardProvider>` wrapper. |
284
- | `silentSso?` | Apex-domain apps (ugly.chat, ugly.press, …) that use ugly.bot as their auth authority but don't share its cookie. When `true`, a logged-out boot attempts a top-level SSO redirect (once per tab, guarded) to adopt an existing ugly.bot session. Leave unset for `*.ugly.bot` subdomains and Mode B (self-auth) apps. |
285
- | `testMode?` | Test-mode: skip ugly.bot silent SSO and trust the auth cookie the fixture set. Only honored when `UGLY_APP_TEST_MODE=1`. |
281
+ | `silentSso?` | Apex-domain apps that use ugly.bot as their auth authority but don't share its cookie. When `true`, a logged-out boot attempts a top-level SSO redirect (once per tab) to adopt an existing ugly.bot session. Leave unset for `*.ugly.bot` subdomains and Mode B apps. |
282
+ | `testMode?` | Skip ugly.bot silent SSO and trust the auth cookie the fixture set. Only honored when `UGLY_APP_TEST_MODE=1`. |
286
283
 
287
284
  `bootstrapApp` reads `window.__AUTH_TOKEN__` (injected by the server after cookie verification). If absent, it renders unauthenticated immediately — the router's per-route auth guard surfaces `<AuthRoot>` (Mode A → `<LoginPopup>`; Mode B → magic-link form + optional Google button) only when the user opens a protected route. If the token is present, it connects the socket, mounts `<AppProvider>`, and renders.
288
285
 
289
- After render (both logged-in and logged-out), a hidden iframe silently calls `${UGLY_BOT_URL}/oauth/silent`: if it returns a fresh code, the cookie is refreshed via `POST /auth/verify`; if the returned account differs from the current session, the page reloads onto the live account (guarded once per from→to pair to prevent loops). Any `?ugly_oauth_code=…` on the URL (redirect-fallback OAuth code from ugly.bot) is redeemed at the very top of bootstrap before anything renders.
286
+ After render, a hidden iframe silently calls `${UGLY_BOT_URL}/oauth/silent`: if it returns a fresh code, the cookie is refreshed via `POST /auth/verify`; if the returned account differs from the current session, the page reloads onto the live account (guarded once per from→to pair to prevent loops). Any `?ugly_oauth_code=…` in the URL (redirect-fallback OAuth code from ugly.bot) is redeemed at the top of bootstrap before anything renders.
290
287
 
291
- If `bootstrapApp` is loaded at `/auth/magic-link/verify` (Mode B), it renders `<MagicLinkCallback>` instead of the regular app shell — that path is the fallback target when the server route is shadowed by a static-assets handler.
288
+ If `bootstrapApp` is loaded at `/auth/magic-link/verify` (Mode B), it renders `<MagicLinkCallback>` instead of the regular app shell.
292
289
 
293
290
  ### Routing — `createRouter()`
294
291
 
@@ -314,11 +311,11 @@ export const {
314
311
 
315
312
  **`createRouter` returns:**
316
313
 
317
- - **`RouterProvider`** — props: `children`, `fallback?`, `isAuthenticated?`, `initialUrl?` (`{ pathname, search }`, required for SSR + hydration). Manages route state, browser history, and the popup layer. When `isAuthenticated()` returns false on a route with `auth: true`, the framework's `<AuthRoot>` renders synchronously in place of the page — apps cannot override this fallback (the framework owns the login UX so an app can't accidentally ship an auth-required route with no working login button).
314
+ - **`RouterProvider`** — props: `children`, `fallback?`, `isAuthenticated?`, `initialUrl?` (`{ pathname, search }`, required for SSR + hydration). Manages route state, browser history, and the popup layer. When `isAuthenticated()` returns false on a route with `auth: true`, the framework's `<AuthRoot>` renders synchronously in place of the page — apps cannot override this fallback.
318
315
  - **`RouterView`** — renders the active page with animated transitions. Props: `durationMs?`, `easing?`, `transitionComponent?` (replaces the default `ViewFlipper`), `renderPage?(state) => ReactElement` (sync alternative to `allPages` loaders, called with `RouterStateRaw`).
319
316
  - **`useRouter()`** — returns the `RouterContextValue<Pages>` (typed navigation + popup API). Throws if used outside `<RouterProvider>`.
320
- - **`Link`** — typed SPA link bound to this router's pages. Renders a real `<a>` (right-click / cmd-click / SEO keep working) but intercepts a plain left-click and routes through `push` / `replace`. Props: `to`, `params` (both type-checked against `pages`), `replace?`, `children`, plus the usual anchor attrs.
321
- - **`setAllPages(map)`** — register the lazy `PageMap<Pages>` after construction (typically from the browser entry). Keeps the Worker's import graph free of every lazy page while the client still gets code-split routes.
317
+ - **`Link`** — typed SPA link bound to this router. Renders a real `<a>` (right-click / cmd-click / SEO keep working) but intercepts a plain left-click and routes through `push` / `replace`. Props: `to`, `params` (both type-checked against `pages`), `replace?`, `children`, plus common anchor attrs (`className`, `style`, `target`, `aria-label`, `data-id`, `onClick`).
318
+ - **`setAllPages(map)`** — register the lazy `PageMap<Pages>` after construction (typically from the browser entry).
322
319
 
323
320
  A standalone `Link` is also exported from `ugly-app/client` for code that can't easily reach the typed one; it accepts an optional `router` prop and falls back to `<RouterProvider>` context.
324
321
 
@@ -400,7 +397,7 @@ handle.hide(); // dismiss programmatically
400
397
  - **`transient`** — 20% opacity backdrop, **dismisses** on backdrop click.
401
398
  - **`contextMenu`** — same as transient, intended for menus and pickers.
402
399
 
403
- `renderLayer` receives `{ content, spring, hide }`: `spring` is a `createAnimatedValue()` result driving 0 → 1; `hide` closes the popup.
400
+ `renderLayer` receives `{ content, spring, hide }`: `spring` is a `createAnimatedValue()` result driving 0 → 1; `hide` closes the popup. The default layer animates open with `easeOut` (250ms) and closed with `easeIn` (200ms). Popups render as siblings of the router's children (managed inside `RouterProvider`), so they stack above every page but sit under the `AppProvider` legacy popup layer.
404
401
 
405
402
  ### `AppProvider` & `useApp()`
406
403
 
@@ -415,13 +412,13 @@ const {
415
412
  showPopup, // legacy popup API (prefer useRouter().openPopup)
416
413
  hidePopup,
417
414
  hideAllPopups,
418
- runAsync, // (label, async () => {...}, options?) — shows loading overlay while pending
415
+ runAsync, // (label, async () => {…}, options?) — shows loading overlay while pending
419
416
  splashDone, // (step: string) — mark a splash-screen step complete
420
417
  localizer, // (key, params?) => string — alias for useLocalizer()
421
418
  } = useApp();
422
419
  ```
423
420
 
424
- `useApp<TAsyncOptions>()` is generic in the async-options type so apps can pass a custom option through to a custom `loadingOverlay` element (accepted as an `AppProvider` prop). `useAppOptional()` returns `null` outside the provider; `useLocalizer()` returns a localizer that prefers `<StringsProvider>` data, falls back to the `AppProvider` `localizer` prop, and finally to identity.
421
+ `useApp<TAsyncOptions>()` is generic in the async-options type so apps can pass a custom option through to a custom `loadingOverlay` element (accepted as an `AppProvider` prop — the framework `cloneElement`s the overlay with `{ label, asyncOptions }` while `runAsync` is pending). `useAppOptional()` returns `null` outside the provider; `useLocalizer()` returns a localizer that prefers `<StringsProvider>` data, falls back to the `AppProvider` `localizer` prop, and finally to identity.
425
422
 
426
423
  ### Direct socket access
427
424
 
@@ -457,8 +454,8 @@ Two modes, picked from the `auth` block in the project's `.uglyapp` config:
457
454
 
458
455
  1. Every page request: the server checks the `auth_token` cookie. If it verifies through `${UGLY_BOT_URL}/verify`, the server injects `window.__AUTH_TOKEN__` into the HTML.
459
456
  2. Client boot: if `__AUTH_TOKEN__` is present, `bootstrapApp` opens the WebSocket with the token. Otherwise it renders logged-out immediately (no first-paint block).
460
- 3. Background account-sync (always): `bootstrapApp` opens a hidden iframe to `${UGLY_BOT_URL}/oauth/silent` on every load. If it returns a one-time code, the client POSTs `/auth/verify` to refresh the cookie. If the refreshed account's `userId` differs from the current session, the client calls `/auth/logout` and reloads onto the live account (guarded once per from→to pair).
461
- 4. Apex apps (`silentSso: true`): if the hidden iframe can't read ugly.bot's cookie (Safari / 3p-cookie blocking), a **top-level** redirect to `/oauth/silent` (first-party, bypasses 3p blocking) runs instead — one-shot, marked done in `localStorage` so it can't loop. Skipped for accounts already confirmed live.
457
+ 3. Background account-sync (always): `bootstrapApp` opens a hidden iframe to `${UGLY_BOT_URL}/oauth/silent`. If it returns a one-time code, the client POSTs `/auth/verify` to refresh the cookie. If the refreshed account's `userId` differs, the client calls `/auth/logout` and reloads onto the live account (guarded once per from→to pair).
458
+ 4. Apex apps (`silentSso: true`): if the hidden iframe can't read ugly.bot's cookie (Safari / 3p-cookie blocking), a **top-level** redirect to `/oauth/silent` (first-party) runs instead — one-shot, marked done in `localStorage` so it can't loop.
462
459
  5. Manual login: on protected routes, the per-route auth guard surfaces `<AuthRoot>` → `<LoginPopup>`, which opens `${UGLY_BOT_URL}/oauth` in a popup. On completion, the platform redirects back with either a `postMessage` code or `?ugly_oauth_code=…`; `bootstrapApp` redeems either at the top of boot.
463
460
 
464
461
  ### Mode B — self-issued sessions
@@ -466,7 +463,7 @@ Two modes, picked from the `auth` block in the project's `.uglyapp` config:
466
463
  When `.uglyapp` sets `auth.mode: 'self'`, `buildAuth()` wires the magic-link provider as primary; if `providers.google.clientId` is configured it adds Google as an extra provider on the same router.
467
464
 
468
465
  - `<AuthRoot>` renders `<MagicLinkForm>` (plus the Google button when configured) instead of `<LoginPopup>`.
469
- - Background ugly.bot silent SSO is a no-op — the ugly.bot iframe would either silently fail or set a cookie that won't verify against the local session.
466
+ - Background ugly.bot silent SSO is a no-op.
470
467
  - `POST /auth/magic-link/request` accepts an email, mints a one-time token (default 15 min lifetime, configurable via `auth.magicLinkExpiresMin`), and emails a link.
471
468
  - `GET /auth/magic-link/verify?token=…` validates the token, calls `onUserCreate` on first login, sets the session cookie, and redirects.
472
469
  - Google login lives at `GET /auth/google/url` + `POST /auth/google/callback` when enabled.
@@ -477,8 +474,6 @@ Any GET request with `?token=<JWT>` will, if the token verifies, set the cookie
477
474
 
478
475
  ### Built-in routes
479
476
 
480
- Mounted on every app:
481
-
482
477
  | Endpoint | Description |
483
478
  |----------|-------------|
484
479
  | `POST /auth/verify` | Exchange an OAuth `code` for a session cookie. |
@@ -493,7 +488,7 @@ Mounted on every app:
493
488
 
494
489
  ```typescript
495
490
  configurator.setAuth({
496
- verify: async (code) => ({ userId: '...', token: 'platform-issued-jwt' }),
491
+ verify: async (code) => ({ userId: '…', token: 'platform-issued-jwt' }),
497
492
  authUrl: (origin) => `https://my-oauth.example/authorize?origin=${origin}`,
498
493
  registerRoutes: (router, { db, onUserCreate }) => { /* extra routes */ },
499
494
  });
@@ -502,7 +497,7 @@ configurator.setAuth({
502
497
  ### Server-side helpers
503
498
 
504
499
  - `verifyToken(token)` — verifies a token against ugly.bot and returns the `userId`.
505
- - `getRequestUser(req)` — synchronous decode of the per-project `UGLY_PROJECT_TOKEN` cookie set by ugly.bot's wake-on-traffic gate. Returns `{ userId } | null` without a network round-trip; safe to use as the primary auth check in deployed-app handlers.
500
+ - `getRequestUser(req)` — synchronous decode of the per-project `UGLY_PROJECT_TOKEN` cookie set by ugly.bot's wake-on-traffic gate. Returns `{ userId } | null` without a network round-trip; safe as the primary auth check in deployed-app handlers.
506
501
 
507
502
  ---
508
503
 
@@ -593,9 +588,9 @@ const user = await userHelper.get(db, userId);
593
588
  Imports available from `ugly-app`:
594
589
 
595
590
  - `pgQuery(sql, params?)` — parameterized SQL on the data proxy.
596
- - `ensureTable(...)`, `tableExists(...)`, `ensureSearchColumn(...)`.
597
- - `ensureQdrantCollection(...)`, `upsertVector(...)`, `searchVectors(...)`, `deleteVector(...)`, `deleteQdrantCollection(...)`.
598
- - `connectNats()`, `natsPublish(subject, payload)`, `natsSubscribe(subject, cb)`, `ensureKvBucket(name, opts)`, `jsPublish(...)`, `jsConsumerCreate(...)`, `jsConsumerConsume(...)`.
591
+ - `ensureTable(…)`, `tableExists(…)`, `ensureSearchColumn(…)`.
592
+ - `ensureQdrantCollection(…)`, `upsertVector(…)`, `searchVectors(…)`, `deleteVector(…)`, `deleteQdrantCollection(…)`.
593
+ - `connectNats()`, `natsPublish(subject, payload)`, `natsSubscribe(subject, cb)`, `ensureKvBucket(name, opts)`, `jsPublish(…)`, `jsConsumerCreate(…)`, `jsConsumerConsume(…)`.
599
594
  - `subscribeCollection`, `subscribeDoc`, `subscribeDocKey` — NATS subjects emitted by the data proxy on writes.
600
595
 
601
596
  ---
@@ -653,7 +648,7 @@ import { createWebSearchClient } from 'ugly-app';
653
648
  const search = createWebSearchClient(userId);
654
649
 
655
650
  await search.search({ query: 'react 19', limit: 10 });
656
- await search.summarize({ url: 'https://...' });
651
+ await search.summarize({ url: 'https://…' });
657
652
  await search.enrichWeb({ query: 'topic' });
658
653
  await search.enrichNews({ query: 'topic' });
659
654
  ```
@@ -1,2 +1,2 @@
1
- export declare const CLI_VERSION = "0.1.886";
1
+ export declare const CLI_VERSION = "0.1.888";
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.886";
2
+ export const CLI_VERSION = "0.1.888";
3
3
  //# sourceMappingURL=version.js.map
@@ -4,11 +4,27 @@ export interface StartLoginOptions {
4
4
  /** Called if verification fails (the popup path). */
5
5
  onError?: () => void;
6
6
  }
7
+ /**
8
+ * If a recent sign-in popup is in flight, clear the flag and return true. Called by
9
+ * bootstrap in the window that just redeemed the oauth code: true ⇒ this window IS
10
+ * the login popup (broadcast success + close); false ⇒ a normal tab (render here).
11
+ */
12
+ export declare function consumeLoginPopupPending(): boolean;
13
+ /** Signal a completed sign-in to the opener that launched the popup (same-origin). */
14
+ export declare function broadcastLoginSuccess(): void;
7
15
  /**
8
16
  * Open the ugly.bot OAuth popup and complete login. On success, the session
9
17
  * cookie is set via `/auth/verify` and the browser navigates to `redirectTo`
10
18
  * (or reloads). If the popup is blocked, falls back to navigating to
11
19
  * `redirectTo` (or `/`), where the framework's LoginPopup handles sign-in.
20
+ *
21
+ * Two completion paths:
22
+ * • Non-COI apps: `window.opener` survives → the popup postMessages the code here.
23
+ * • COI apps: COOP: same-origin severs `window.opener`, so ugly.bot can't reach us
24
+ * and instead redirects the popup back to this origin with `?ugly_oauth_code=`.
25
+ * The popup's bootstrap redeems it and broadcasts success over BroadcastChannel;
26
+ * we reload (the session cookie is shared same-origin). `markLoginPopupPending`
27
+ * tags the popup so bootstrap closes it instead of rendering the app inside it.
12
28
  */
13
29
  export declare function startUglyBotLogin(opts?: StartLoginOptions): void;
14
30
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"startLogin.d.ts","sourceRoot":"","sources":["../../../src/client/auth/startLogin.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,iBAAiB;IAChC,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,GAAE,iBAAsB,GAAG,IAAI,CAmCpE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GACpD,IAAI,CAWN;AAID;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAUV;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAyB1C;AAED,kFAAkF;AAClF,wBAAgB,kBAAkB,IAAI,IAAI,CAMzC;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAM1C;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAS1C"}
1
+ {"version":3,"file":"startLogin.d.ts","sourceRoot":"","sources":["../../../src/client/auth/startLogin.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,iBAAiB;IAChC,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAoBD;;;;GAIG;AACH,wBAAgB,wBAAwB,IAAI,OAAO,CASlD;AAED,sFAAsF;AACtF,wBAAgB,qBAAqB,IAAI,IAAI,CAQ5C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,GAAE,iBAAsB,GAAG,IAAI,CAkFpE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GACpD,IAAI,CAWN;AAID;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAUV;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAyB1C;AAED,kFAAkF;AAClF,wBAAgB,kBAAkB,IAAI,IAAI,CAMzC;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAM1C;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAS1C"}
@@ -10,30 +10,102 @@ const UGLY_BOT_URL = typeof window !== 'undefined'
10
10
  ? (window.__UGLY_BOT_URL__ ??
11
11
  'https://ugly.bot')
12
12
  : 'https://ugly.bot';
13
+ // Coordinates the cross-origin-isolated popup-login handoff. On a COI app, COOP:
14
+ // same-origin severs the popup's `window.opener`, so it can't postMessage the code
15
+ // back. Instead the popup redeems the code itself and signals the opener over this
16
+ // same-origin BroadcastChannel; the localStorage key (shared opener↔popup, both on
17
+ // this origin) tells bootstrap that the window holding the code IS the login popup.
18
+ const LOGIN_CHANNEL = 'ugly-bot-login';
19
+ const LOGIN_POPUP_KEY = 'uglyBotLoginPopup';
20
+ const LOGIN_POPUP_TTL_MS = 5 * 60_000;
21
+ /** Mark that a sign-in popup is in flight (COI path). */
22
+ function markLoginPopupPending() {
23
+ try {
24
+ localStorage.setItem(LOGIN_POPUP_KEY, String(Date.now()));
25
+ }
26
+ catch {
27
+ /* private mode — degrades to rendering in the popup, no worse than before */
28
+ }
29
+ }
30
+ /**
31
+ * If a recent sign-in popup is in flight, clear the flag and return true. Called by
32
+ * bootstrap in the window that just redeemed the oauth code: true ⇒ this window IS
33
+ * the login popup (broadcast success + close); false ⇒ a normal tab (render here).
34
+ */
35
+ export function consumeLoginPopupPending() {
36
+ try {
37
+ const raw = localStorage.getItem(LOGIN_POPUP_KEY);
38
+ if (!raw)
39
+ return false;
40
+ localStorage.removeItem(LOGIN_POPUP_KEY);
41
+ return Date.now() - Number(raw) < LOGIN_POPUP_TTL_MS;
42
+ }
43
+ catch {
44
+ return false;
45
+ }
46
+ }
47
+ /** Signal a completed sign-in to the opener that launched the popup (same-origin). */
48
+ export function broadcastLoginSuccess() {
49
+ try {
50
+ new BroadcastChannel(LOGIN_CHANNEL).postMessage({
51
+ type: 'ugly-bot-login-success',
52
+ });
53
+ }
54
+ catch {
55
+ /* no BroadcastChannel (old engine) */
56
+ }
57
+ }
13
58
  /**
14
59
  * Open the ugly.bot OAuth popup and complete login. On success, the session
15
60
  * cookie is set via `/auth/verify` and the browser navigates to `redirectTo`
16
61
  * (or reloads). If the popup is blocked, falls back to navigating to
17
62
  * `redirectTo` (or `/`), where the framework's LoginPopup handles sign-in.
63
+ *
64
+ * Two completion paths:
65
+ * • Non-COI apps: `window.opener` survives → the popup postMessages the code here.
66
+ * • COI apps: COOP: same-origin severs `window.opener`, so ugly.bot can't reach us
67
+ * and instead redirects the popup back to this origin with `?ugly_oauth_code=`.
68
+ * The popup's bootstrap redeems it and broadcasts success over BroadcastChannel;
69
+ * we reload (the session cookie is shared same-origin). `markLoginPopupPending`
70
+ * tags the popup so bootstrap closes it instead of rendering the app inside it.
18
71
  */
19
72
  export function startUglyBotLogin(opts = {}) {
20
73
  if (typeof window === 'undefined')
21
74
  return;
22
75
  const origin = encodeURIComponent(window.location.origin);
23
76
  const url = `${UGLY_BOT_URL}/oauth?origin=${origin}`;
24
- const popup = window.open(url, 'ugly-bot-login', 'width=480,height=640,left=200,top=100');
25
- if (!popup) {
26
- // Popup blocked — degrade to the login screen on the target route.
27
- window.location.href = opts.redirectTo ?? '/';
28
- return;
77
+ // Only COI apps hit the severed-opener path; tagging non-COI would leave a stale
78
+ // flag that a later magic-link tab could wrongly self-close on.
79
+ if (window.crossOriginIsolated) {
80
+ markLoginPopupPending();
29
81
  }
30
- const handler = async (event) => {
82
+ const finish = () => {
83
+ if (opts.redirectTo)
84
+ window.location.href = opts.redirectTo;
85
+ else
86
+ window.location.reload();
87
+ };
88
+ let chan = null;
89
+ const cleanup = () => {
90
+ window.removeEventListener('message', handler);
91
+ if (chan) {
92
+ try {
93
+ chan.close();
94
+ }
95
+ catch {
96
+ /* ignore */
97
+ }
98
+ chan = null;
99
+ }
100
+ };
101
+ // COI path: the popup redeems the code (bootstrap) and broadcasts success here.
102
+ async function handler(event) {
31
103
  if (event.origin !== UGLY_BOT_URL)
32
104
  return;
33
105
  const data = event.data;
34
106
  if (data?.type !== 'ugly-bot-oauth' || !data.code)
35
107
  return;
36
- window.removeEventListener('message', handler);
108
+ cleanup();
37
109
  try {
38
110
  const res = await fetch('/auth/verify', {
39
111
  method: 'POST',
@@ -42,15 +114,38 @@ export function startUglyBotLogin(opts = {}) {
42
114
  });
43
115
  if (!res.ok)
44
116
  throw new Error('Auth failed');
45
- if (opts.redirectTo)
46
- window.location.href = opts.redirectTo;
47
- else
48
- window.location.reload();
117
+ finish();
49
118
  }
50
119
  catch {
51
120
  opts.onError?.();
52
121
  }
53
- };
122
+ }
123
+ try {
124
+ chan = new BroadcastChannel(LOGIN_CHANNEL);
125
+ chan.onmessage = (e) => {
126
+ if (e.data?.type === 'ugly-bot-login-success') {
127
+ cleanup();
128
+ finish();
129
+ }
130
+ };
131
+ }
132
+ catch {
133
+ /* no BroadcastChannel — the opener.postMessage path still covers non-COI */
134
+ }
135
+ const popup = window.open(url, 'ugly-bot-login', 'width=480,height=640,left=200,top=100');
136
+ if (!popup) {
137
+ // Popup blocked — degrade to the login screen on the target route.
138
+ cleanup();
139
+ try {
140
+ localStorage.removeItem(LOGIN_POPUP_KEY);
141
+ }
142
+ catch {
143
+ /* ignore */
144
+ }
145
+ window.location.href = opts.redirectTo ?? '/';
146
+ return;
147
+ }
148
+ // Non-COI path: opener intact → the popup postMessages the code to us.
54
149
  window.addEventListener('message', handler);
55
150
  }
56
151
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"startLogin.js","sourceRoot":"","sources":["../../../src/client/auth/startLogin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"startLogin.js","sourceRoot":"","sources":["../../../src/client/auth/startLogin.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrapApp.d.ts","sourceRoot":"","sources":["../../src/client/bootstrapApp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpE,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAgBzE,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAmFlE,UAAU,mBAAmB;IAC3B,mFAAmF;IACnF,QAAQ,EAAE,eAAe,CAAC;IAE1B,mFAAmF;IACnF,QAAQ,CAAC,EAAE,eAAe,CAAC;IAE3B,uDAAuD;IACvD,cAAc,EAAE,aAAa,CAAC;QAC5B,QAAQ,EAAE,SAAS,CAAC;QACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;QACrB,eAAe,CAAC,EAAE,MAAM,OAAO,CAAC;QAChC,6DAA6D;QAC7D,UAAU,CAAC,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;KACnD,CAAC,CAAC;IAEH,0EAA0E;IAC1E,MAAM,EAAE,MAAM,YAAY,CAAC;IAE3B,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAE5B,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,qFAAqF;IACrF,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAEhC,iFAAiF;IACjF,QAAQ,CAAC,EAAE,KAAK,CAAC;IAEjB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;qFACiF;IACjF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA+MD,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAoX/D"}
1
+ {"version":3,"file":"bootstrapApp.d.ts","sourceRoot":"","sources":["../../src/client/bootstrapApp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpE,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAkBzE,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAmFlE,UAAU,mBAAmB;IAC3B,mFAAmF;IACnF,QAAQ,EAAE,eAAe,CAAC;IAE1B,mFAAmF;IACnF,QAAQ,CAAC,EAAE,eAAe,CAAC;IAE3B,uDAAuD;IACvD,cAAc,EAAE,aAAa,CAAC;QAC5B,QAAQ,EAAE,SAAS,CAAC;QACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;QACrB,eAAe,CAAC,EAAE,MAAM,OAAO,CAAC;QAChC,6DAA6D;QAC7D,UAAU,CAAC,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;KACnD,CAAC,CAAC;IAEH,0EAA0E;IAC1E,MAAM,EAAE,MAAM,YAAY,CAAC;IAE3B,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAE5B,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,qFAAqF;IACrF,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAEhC,iFAAiF;IACjF,QAAQ,CAAC,EAAE,KAAK,CAAC;IAEjB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;qFACiF;IACjF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA+MD,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAuY/D"}
@@ -7,7 +7,7 @@ import { AppProvider } from './AppProvider.js';
7
7
  import { buildAppTree } from './appTree.js';
8
8
  import { installSsrPageData, isSsrDocument } from './ssr.js';
9
9
  import { MagicLinkCallback } from './auth/MagicLinkCallback.js';
10
- import { attemptSilentSso, clearSilentSsoTried, markSilentSsoTried, } from './auth/startLogin.js';
10
+ import { attemptSilentSso, broadcastLoginSuccess, clearSilentSsoTried, consumeLoginPopupPending, markSilentSsoTried, } from './auth/startLogin.js';
11
11
  import { createSocket } from './createSocket.js';
12
12
  import { installInspect } from './inspect/index.js';
13
13
  import { installMobileUxAudit } from './mobileUxAudit.js';
@@ -410,20 +410,39 @@ export function bootstrapApp(options) {
410
410
  // Fall through to the normal bootstrap below (renders logged-in in place).
411
411
  }
412
412
  else {
413
- // Logged-out → adopting a session. Must reload so the server re-renders the
414
- // HTML with `__AUTH_TOKEN__` injected from the (now set) cookie. `replace`
415
- // keeps the single-use code out of history so it can't be replayed.
413
+ // Logged-out → adopting a session. Redeem the code (sets the session cookie
414
+ // for this origin), then either:
415
+ // • we're the sign-in popup opened by startUglyBotLogin — a COI app's COOP:
416
+ // same-origin severed our `window.opener`, so we can't postMessage it.
417
+ // Signal it over a same-origin BroadcastChannel and close; the cookie is
418
+ // shared, so the opener reloads logged-in. (Without this, the app would
419
+ // just render INSIDE the popup and the opener would never know.)
420
+ // • a normal tab (magic-link / blocked popup): reload so the server
421
+ // re-renders the HTML with `__AUTH_TOKEN__` injected from the cookie.
422
+ // `replace` keeps the single-use code out of history so it can't be replayed.
423
+ const isLoginPopup = consumeLoginPopupPending();
416
424
  void (async () => {
425
+ let ok = false;
417
426
  try {
418
- await fetch('/auth/verify', {
427
+ const res = await fetch('/auth/verify', {
419
428
  method: 'POST',
420
429
  headers: { 'Content-Type': 'application/json' },
421
430
  body: JSON.stringify({ code: oauthCode }),
422
431
  });
432
+ ok = res.ok;
423
433
  }
424
434
  catch {
425
435
  // Fall through — the reload renders logged-out and the user can retry.
426
436
  }
437
+ if (isLoginPopup && ok) {
438
+ // Only claim success once the cookie is actually set; then close.
439
+ broadcastLoginSuccess();
440
+ // No-op if this window isn't script-closable; the replace below is the
441
+ // fallback so the user still ends up logged in, not on a stuck popup.
442
+ window.close();
443
+ }
444
+ // Popup with a failed redeem, or a normal tab: reload in place (logged-in on
445
+ // success, logged-out on failure so the user can retry).
427
446
  window.location.replace(cleanUrl);
428
447
  })();
429
448
  mount(_jsx(_Fragment, {}));
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrapApp.js","sourceRoot":"","sources":["../../src/client/bootstrapApp.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAa,MAAM,kBAAkB,CAAC;AAEtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,GAEf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEvE,oFAAoF;AACpF,SAAS,aAAa;IACpB,MAAM,GAAG,GAAG,qBAAqB,CAAC;IAClC,MAAM,GAAG,GAAG,GAAW,EAAE,CACvB,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE;QACjC,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;IACnF,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC9B,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC;QACjB,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC9B,OAAO,EAAE,CAAC;IACZ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,EAAE,CAAC;IACf,CAAC;AACH,CAAC;AAED,iGAAiG;AACjG,SAAS,mBAAmB;IAC1B,MAAM,CAAC,GAAG,cAAc,EAAE,CAAC;IAC3B,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACjE,CAAC;AAED;;oEAEoE;AACpE,KAAK,UAAU,iBAAiB,CAC9B,MAAe,EACf,YAA2B,EAC3B,KAAa;IAEb,IAAI,CAAC,YAAY;QAAE,OAAO;IAC1B,MAAM,UAAU,GAIV,CAAC,EAAE,IAAI,EAAE,+BAA+B,EAAE,CAAC,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,uBAAuB,EAAE;YAC/C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,eAAe,EAAE,UAAU,KAAK,EAAE;gBAClC,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;QACH,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;YACX,iFAAiF;YACjF,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAE7B,CAAC;YACF,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;YAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;gBAAE,UAAU,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;iBAC9C,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;gBAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,wBAAwB;IAC1B,CAAC;IACD,IAAI,CAAC;QACF,UAAuC,CAAC,UAAU,GAAG,kBAAkB,CAAC;YACvE,MAAM,EAAE,iBAAiB,EAAE;YAC3B,MAAM,EAAE,MAAqB;YAC7B,YAAY;YACZ,UAAU;SACX,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,kFAAkF;IACpF,CAAC;AACH,CAAC;AAkDD,MAAM,CAAC,GACL,OAAO,MAAM,KAAK,WAAW;IAC3B,CAAC,CAAE,MAAwD;IAC3D,CAAC,CAAE,EAAyC,CAAC;AAEjD,MAAM,mBAAmB,GAAG,yBAAyB,CAAC;AACtD,gFAAgF;AAChF,+EAA+E;AAC/E,8EAA8E;AAC9E,6EAA6E;AAC7E,kFAAkF;AAClF,8CAA8C;AAC9C,MAAM,iBAAiB,GAAG,4BAA4B,CAAC;AAEvD,SAAS,WAAW,CAAC,KAAa;IAChC,IAAI,CAAC;QACH,OAAO,CACJ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAsB,CAAC,GAAG;YACrE,IAAI,CACL,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AACD,SAAS,YAAY,CAAC,MAAc;IAClC,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,OAAO,CAAC,GAAG,iBAAiB,IAAI,MAAM,EAAE,CAAC,KAAK,GAAG,CAAC;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AACD,SAAS,cAAc,CAAC,MAAc;IACpC,IAAI,CAAC;QACH,YAAY,CAAC,OAAO,CAAC,GAAG,iBAAiB,IAAI,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,gFAAgF;IAClF,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,mBAAmB,CAAC,UAAkB;IAC7C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,CAAC;YACd,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QACtC,IAAI,SAAiB,CAAC;QACtB,IAAI,CAAC;YACH,SAAS,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,CAAC;YACd,OAAO;QACT,CAAC;QACD,MAAM,GAAG,GAAG,GAAG,SAAS,wBAAwB,kBAAkB,CAAC,MAAM,CAAC,cAAc,CAAC;QACzF,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QAC9B,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAC3C,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACtC,6EAA6E;QAC7E,gFAAgF;QAChF,kFAAkF;QAClF,kFAAkF;QAClF,oFAAoF;QACpF,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAChE,IAAI,CAAC;gBACF,MAAiD,CAAC,cAAc;oBAC/D,IAAI,CAAC;YACT,CAAC;YAAC,MAAM,CAAC;gBACP,mBAAmB;YACrB,CAAC;YACD,MAAM,CAAC,YAAY,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,MAAM,GAAG,CAAC,IAAmB,EAAQ,EAAE;YAC3C,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACjD,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC;QACF,MAAM,SAAS,GAAG,CAAC,CAAe,EAAQ,EAAE;YAC1C,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS;gBAAE,OAAO;YACnC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAsD,CAAC;YACtE,IAAI,IAAI,EAAE,IAAI,KAAK,sBAAsB,EAAE,CAAC;gBAC1C,MAAM,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QACnD,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;QACjB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAS,cAAc,CACrB,UAAkB,EAClB,aAA4B,EAC5B,oBAAoB,GAAG,KAAK;IAE5B,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO;IAC1C,KAAK,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACrE,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,0EAA0E;YAC1E,yEAAyE;YACzE,yEAAyE;YACzE,sEAAsE;YACtE,0EAA0E;YAC1E,0EAA0E;YAC1E,wEAAwE;YACxE,qDAAqD;YACrD,yEAAyE;YACzE,sEAAsE;YACtE,wEAAwE;YACxE,mCAAmC;YACnC,IACE,oBAAoB;gBACpB,aAAa,KAAK,IAAI;gBACtB,CAAC,YAAY,CAAC,aAAa,CAAC,EAC5B,CAAC;gBACD,gBAAgB,EAAE,CAAC;YACrB,CAAC;YACD,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,cAAc,EAAE;gBACtC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC;aAC/B,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,OAAO;YACpB,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAuB,CAAC;YAC3D,IAAI,CAAC,KAAK;gBAAE,OAAO;YACnB,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;YACtC,wEAAwE;YACxE,mEAAmE;YACnE,IAAI,CAAC,UAAU,IAAI,UAAU,KAAK,aAAa,EAAE,CAAC;gBAChD,IAAI,UAAU;oBAAE,cAAc,CAAC,UAAU,CAAC,CAAC;gBAC3C,OAAO;YACT,CAAC;YAED,0EAA0E;YAC1E,uEAAuE;YACvE,MAAM,QAAQ,GAAG,GAAG,mBAAmB,IAAI,aAAa,IAAI,KAAK,IAAI,UAAU,EAAE,CAAC;YAClF,IAAI,CAAC;gBACH,IAAI,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC;oBAAE,OAAO;gBAC7C,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACxC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO;YACT,CAAC;YACD,2EAA2E;YAC3E,2DAA2D;YAC3D,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;gBAC3B,MAAM,KAAK,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAClE,CAAC;YACD,mBAAmB,EAAE,CAAC;YACtB,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,8CAA8C;QAChD,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;AACP,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAA4B;IACvD,MAAM,EACJ,QAAQ,EAAE,WAAW,EACrB,QAAQ,EAAE,WAAW,GAAG,EAAE,EAC1B,cAAc,EACd,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,OAAO,GAAG,OAAO,EACvB,QAAQ,GAAG,sDAA+B,EAC1C,SAAS,GAAG,MAAM,EAClB,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,WAAW,GACtB,GAAG,OAAO,CAAC;IACZ,MAAM,cAAc,GAAG,WAAW,KAAK,KAAK,CAAC;IAE7C,8EAA8E;IAC9E,+EAA+E;IAC/E,6EAA6E;IAC7E,0EAA0E;IAC1E,oDAAoD;IACpD,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,iBAAiB,EAAE,CAAC;IACnE,IAAI,MAAM,EAAE,CAAC;QACX,4DAA4D;QAC5D,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,8BAA8B,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC/D,IAAI,CAAC;gBACF,MAAiD,CAAC,cAAc;oBAC/D,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GACV,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IAE3E,0EAA0E;IAC1E,4EAA4E;IAC5E,4EAA4E;IAC5E,6BAA6B;IAC7B,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAC1C,4EAA4E;IAC5E,+EAA+E;IAC/E,IAAI,WAAW;QAAE,kBAAkB,EAAE,CAAC;IAEtC,8EAA8E;IAC9E,2EAA2E;IAC3E,mDAAmD;IACnD,IAAI,SAAS,GAAgB,IAAI,CAAC;IAElC,4EAA4E;IAC5E,SAAS,KAAK,CAAC,IAAkB,EAAE,OAAO,GAAG,KAAK;QAChD,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACvB,OAAO;QACT,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,0EAA0E;YAC1E,2EAA2E;YAC3E,SAAS,GAAG,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE;gBACpC,kBAAkB,EAAE,CAAC,GAAG,EAAE,EAAE;oBAC1B,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC;gBAC3D,CAAC;aACF,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAC/B,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,uEAAuE;IACvE,sEAAsE;IACtE,iEAAiE;IACjE,uEAAuE;IACvE,iEAAiE;IACjE,IACE,OAAO,MAAM,KAAK,WAAW;QAC7B,MAAM,CAAC,QAAQ,CAAC,QAAQ,KAAK,yBAAyB,EACtD,CAAC;QACD,KAAK,CAAC,KAAC,iBAAiB,KAAG,CAAC,CAAC;QAC7B,OAAO;IACT,CAAC;IAED,8EAA8E;IAC9E,8EAA8E;IAC9E,+EAA+E;IAC/E,sEAAsE;IACtE,8EAA8E;IAC9E,2EAA2E;IAC3E,qEAAqE;IACrE,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAChD,IAAI,SAAS,EAAE,CAAC;YACd,kBAAkB,EAAE,CAAC,CAAC,2CAA2C;YACjE,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;YACjC,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC7B,MAAM,QAAQ,GACZ,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YACzE,8EAA8E;YAC9E,+EAA+E;YAC/E,6EAA6E;YAC7E,+EAA+E;YAC/E,0EAA0E;YAC1E,qEAAqE;YACrE,MAAM,UAAU,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC;YACvC,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAChE,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;gBAChD,KAAK,CAAC,KAAK,IAAI,EAAE;oBACf,IAAI,CAAC;wBACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,cAAc,EAAE;4BACtC,MAAM,EAAE,MAAM;4BACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;4BAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;yBAC1C,CAAC,CAAC;wBACH,IAAI,CAAC,GAAG,CAAC,EAAE;4BAAE,OAAO;wBACpB,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAuB,CAAC;wBAC3D,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;wBACrD,IAAI,CAAC,UAAU,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;4BAC9C,wEAAwE;4BACxE,cAAc,CAAC,WAAW,CAAC,CAAC;4BAC5B,OAAO;wBACT,CAAC;wBACD,yEAAyE;wBACzE,gDAAgD;wBAChD,MAAM,QAAQ,GAAG,GAAG,mBAAmB,IAAI,WAAW,IAAI,UAAU,EAAE,CAAC;wBACvE,IAAI,CAAC;4BACH,IAAI,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC;gCAAE,OAAO;4BAC7C,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;wBACxC,CAAC;wBAAC,MAAM,CAAC;4BACP,OAAO;wBACT,CAAC;wBACD,MAAM,KAAK,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;wBAChE,mBAAmB,EAAE,CAAC;wBACtB,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;oBAC3B,CAAC;oBAAC,MAAM,CAAC;wBACP,8CAA8C;oBAChD,CAAC;gBACH,CAAC,CAAC,EAAE,CAAC;gBACL,2EAA2E;YAC7E,CAAC;iBAAM,CAAC;gBACN,4EAA4E;gBAC5E,2EAA2E;gBAC3E,oEAAoE;gBACpE,KAAK,CAAC,KAAK,IAAI,EAAE;oBACf,IAAI,CAAC;wBACH,MAAM,KAAK,CAAC,cAAc,EAAE;4BAC1B,MAAM,EAAE,MAAM;4BACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;4BAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;yBAC1C,CAAC,CAAC;oBACL,CAAC;oBAAC,MAAM,CAAC;wBACP,uEAAuE;oBACzE,CAAC;oBACD,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACpC,CAAC,CAAC,EAAE,CAAC;gBACL,KAAK,CAAC,mBAAK,CAAC,CAAC;gBACb,OAAO;YACT,CAAC;QACH,CAAC;QACD,4EAA4E;QAC5E,0EAA0E;QAC1E,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,MAAM,EAAE,CAAC;YACtC,kBAAkB,EAAE,CAAC;YACrB,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC1B,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC7B,MAAM,CAAC,OAAO,CAAC,YAAY,CACzB,IAAI,EACJ,EAAE,EACF,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CACvE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,8BAA8B,EAAE,CAAC;IACjC,MAAM,YAAY,GAAG,cAAc,EAAE,CAAC;IACtC,gFAAgF;IAChF,oFAAoF;IACpF,oBAAoB,CAAC,YAAY,CAAC,CAAC;IACnC,kFAAkF;IAClF,qFAAqF;IACrF,qBAAqB,EAAE,CAAC;IAExB,sCAAsC;IACtC,MAAM,UAAU,GAAG,CAAC,CAAC,kBAAkB,CAAC,IAAI,kBAAkB,CAAC;IAC/D,MAAM,gBAAgB,GAAG,CAAC,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;IAC5D,IAAI,gBAAgB,EAAE,CAAC;QACrB,UAAU,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,6EAA6E;IAC7E,2EAA2E;IAC3E,iDAAiD;IACjD,MAAM,KAAK,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAElC,+EAA+E;IAC/E,mEAAmE;IACnE,MAAM,UAAU,GAAG;QACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ;QAClC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;KAC/B,CAAC;IAEF,SAAS,gBAAgB,CACvB,eAAwB,EACxB,QAAsB,EACtB,OAAO,GAAG,KAAK;QAEf,KAAK,CACH,YAAY,CAAC;YACX,cAAc;YACd,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ;YACtB,eAAe,EAAE,GAAG,EAAE,CAAC,eAAe;YACtC,QAAQ,EAAE,cAAc;YACxB,QAAQ;YACR,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACvC,CAAC,EACF,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,SAAS,qBAAqB,CAAC,SAAiB;QAC9C,MAAM,MAAM,GACV,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,CAC1C,CAAC,GAAG,CAAC;QACN,mFAAmF;QACnF,gFAAgF;QAChF,qFAAqF;QACrF,iFAAiF;QACjF,mFAAmF;QACnF,qFAAqF;QACrF,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,YAAY,CAAC;YAC1B,QAAQ,EAAE,EAAE,GAAG,iBAAiB,EAAE,GAAG,WAAW,EAAE;YAClD,QAAQ,EAAE,EAAE,GAAG,iBAAiB,EAAE,GAAG,WAAW,EAAE;YAClD,GAAG,EAAE,SAAS;YACd,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC;gBACnB,KAAK,EAAE,SAAS;gBAChB,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC5C,CAAC;SACH,CAAC,CAAC;QAEH,8EAA8E;QAC9E,0EAA0E;QAC1E,6EAA6E;QAC7E,6EAA6E;QAC7E,6EAA6E;QAC7E,yEAAyE;QACzE,6EAA6E;QAC7E,qDAAqD;QACrD,IAAI,eAAe,GAAG,KAAK,CAAC;QAC5B,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,GAAG,EAAE;YAC1C,IAAI,eAAe;gBAAE,OAAO;YAC5B,eAAe,GAAG,IAAI,CAAC;YACvB,mBAAmB,EAAE,CAAC;YACtB,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,MAAM;aACH,OAAO,CAAC,SAAS,CAAC;aAClB,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC3B,uEAAuE;YACvE,sEAAsE;YACtE,sEAAsE;YACtE,8DAA8D;YAC9D,YAAY,CAAC,MAAM,CAAC,CAAC;YACrB,4EAA4E;YAC5E,qEAAqE;YACrE,iBAAiB,CACf,MAAuE,EACvE,MAAM,CACP,CAAC;YACF,6EAA6E;YAC7E,KAAK,iBAAiB,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YACpD,yDAAyD;YACzD,0DAA0D;YAC1D,uDAAuD;YACvD,0DAA0D;YAC1D,2DAA2D;YAC3D,2DAA2D;YAC3D,6DAA6D;YAC7D,MAAM,iBAAiB,GAAG,QAAQ,IAAI,SAAS,CAAC;YAChD,MAAM,aAAa,GAAG,iBAAiB;gBACrC,CAAC,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,UAAU,CAAC;gBACpD,CAAC,CAAC,IAAI,CAAC;YACT,gBAAgB,CACd,IAAI,EACJ,KAAC,WAAW,IACV,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,YAET,SAAS,EAAE,GACA,CACf,CAAC;YACF,2EAA2E;YAC3E,wEAAwE;YACxE,0EAA0E;YAC1E,6EAA6E;YAC7E,0EAA0E;YAC1E,IAAI,CAAC,MAAM;gBACT,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC,CAAC;QACnE,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YACtB,OAAO,CAAC,KAAK,CACX,6DAA6D,EAC7D,GAAG,CACJ,CAAC;YACF,QAAQ,CAAC,MAAM;gBACb,4DAA4D,CAAC;YAC/D,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,+EAA+E;IAC/E,8EAA8E;IAC9E,4EAA4E;IAC5E,kFAAkF;IAClF,gFAAgF;IAChF,8EAA8E;IAC9E,6EAA6E;IAC7E,sEAAsE;IACtE,IAAI,WAAW,IAAI,CAAC,KAAK,EAAE,CAAC;QAC1B,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;QACzD,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,IAAI,YAAY,GAAkB,IAAI,CAAC;YACvC,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,aAAa,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;gBACnE,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;oBACX,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAuB,CAAC;oBACtD,YAAY,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC;gBACpC,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,oEAAoE;YACtE,CAAC;YACD,IAAI,YAAY,EAAE,CAAC;gBACjB,qBAAqB,CAAC,YAAY,CAAC,CAAC;gBACpC,OAAO;YACT,CAAC;YACD,0EAA0E;YAC1E,0EAA0E;YAC1E,IAAI,CAAC,MAAM;gBAAE,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAChD,CAAC,CAAC,EAAE,CAAC;QACL,OAAO;IACT,CAAC;IAED,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,sEAAsE;QACtE,6EAA6E;QAC7E,6EAA6E;QAC7E,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,SAAS,IAAI,gBAAgB,EAAE,EAAE,CAAC;YACvD,KAAK,CAAC,mBAAK,CAAC,CAAC;YACb,OAAO;QACT,CAAC;QACD,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACrC,2EAA2E;QAC3E,8EAA8E;QAC9E,4EAA4E;QAC5E,4EAA4E;QAC5E,6EAA6E;QAC7E,0EAA0E;QAC1E,IAAI,CAAC,MAAM;YAAE,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC9C,OAAO;IACT,CAAC;IAED,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"bootstrapApp.js","sourceRoot":"","sources":["../../src/client/bootstrapApp.tsx"],"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;AAQH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AASxD;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAE/D,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAgTD,wBAAgB,cAAc,CAC5B,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,YAAY,GACnB,UAAU,CAgVZ"}
1
+ {"version":3,"file":"wrapWithAssets.d.ts","sourceRoot":"","sources":["../../../../src/server/adapter/workers/wrapWithAssets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAQH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AASxD;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAE/D,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAgTD,wBAAgB,cAAc,CAC5B,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,YAAY,GACnB,UAAU,CAwVZ"}
@@ -575,17 +575,25 @@ export function wrapWithAssets(base, config) {
575
575
  // own fetch) because this wrapper generates the HTML shell + asset responses
576
576
  // outside the app's handler. Off by default.
577
577
  //
578
- // COEP is `credentialless`, NOT `require-corp`: both grant cross-origin isolation,
579
- // but `require-corp` HARD-BLOCKS cross-origin embeds that don't send CORP — which
580
- // breaks the silent-SSO iframe (ugly.bot/oauth/silent) and the app-store frame,
581
- // failing every authed RPC. `credentialless` instead loads such cross-origin
582
- // resources without credentials rather than blocking them, so the app still works
583
- // (anonymous where a cross-origin cookie would be needed) instead of breaking.
578
+ // COEP is `require-corp`, NOT `credentialless`. Both grant cross-origin isolation
579
+ // in Chromium, but WebKit (iOS/macOS Safari, and every iOS WKWebView — e.g. the
580
+ // ugly-studio mobile shell) does NOT implement `credentialless` (neither the COEP
581
+ // value nor the anonymous-iframe attribute). Under `credentialless`, WebKit sees an
582
+ // unknown COEP value, leaves `crossOriginIsolated === false`, and SharedArrayBuffer
583
+ // stays undefined — so COI apps silently lose their off-thread sim on iOS. Only
584
+ // `require-corp` is honored across all engines.
585
+ //
586
+ // `require-corp` hard-blocks cross-origin embeds that don't themselves assert COEP,
587
+ // which is why the platform's cross-origin auth/push iframes each send their own
588
+ // `Cross-Origin-Embedder-Policy: require-corp` + `Cross-Origin-Resource-Policy`
589
+ // (ugly-bot: /oauth/silent?mode=iframe and /push-frame) so they remain embeddable
590
+ // under a require-corp parent on every browser. App bundles are same-origin (served
591
+ // by this wrapper with CORP below), so their subresources are unaffected.
584
592
  if (!config.crossOriginIsolation)
585
593
  return wrapped;
586
594
  const coiHeaders = {
587
595
  'cross-origin-opener-policy': 'same-origin',
588
- 'cross-origin-embedder-policy': 'credentialless',
596
+ 'cross-origin-embedder-policy': 'require-corp',
589
597
  'cross-origin-resource-policy': 'cross-origin',
590
598
  };
591
599
  return {
@@ -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.886",
3
+ "version": "0.1.888",
4
4
  "type": "module",
5
5
  "comment:files": "Allowlist what ships to npm. dist = runtime; src = sourcemap targets (dist/*.js.map reference ../../src/); templates = CLI scaffold. Everything else at repo root (.pgdata local Postgres, coverage, assets/icons sources, test/, test-results/) is excluded by omission. The !negations strip the scaffold's installed deps + cruft (templates/node_modules is 200MB+ and must never ship). package.json/README/LICENSE ship automatically.",
6
6
  "files": [
@@ -1,2 +1,2 @@
1
1
  // Auto-generated by prebuild — do not edit manually
2
- export const CLI_VERSION = "0.1.886";
2
+ export const CLI_VERSION = "0.1.888";
@@ -20,33 +20,100 @@ export interface StartLoginOptions {
20
20
  onError?: () => void;
21
21
  }
22
22
 
23
+ // Coordinates the cross-origin-isolated popup-login handoff. On a COI app, COOP:
24
+ // same-origin severs the popup's `window.opener`, so it can't postMessage the code
25
+ // back. Instead the popup redeems the code itself and signals the opener over this
26
+ // same-origin BroadcastChannel; the localStorage key (shared opener↔popup, both on
27
+ // this origin) tells bootstrap that the window holding the code IS the login popup.
28
+ const LOGIN_CHANNEL = 'ugly-bot-login';
29
+ const LOGIN_POPUP_KEY = 'uglyBotLoginPopup';
30
+ const LOGIN_POPUP_TTL_MS = 5 * 60_000;
31
+
32
+ /** Mark that a sign-in popup is in flight (COI path). */
33
+ function markLoginPopupPending(): void {
34
+ try {
35
+ localStorage.setItem(LOGIN_POPUP_KEY, String(Date.now()));
36
+ } catch {
37
+ /* private mode — degrades to rendering in the popup, no worse than before */
38
+ }
39
+ }
40
+
41
+ /**
42
+ * If a recent sign-in popup is in flight, clear the flag and return true. Called by
43
+ * bootstrap in the window that just redeemed the oauth code: true ⇒ this window IS
44
+ * the login popup (broadcast success + close); false ⇒ a normal tab (render here).
45
+ */
46
+ export function consumeLoginPopupPending(): boolean {
47
+ try {
48
+ const raw = localStorage.getItem(LOGIN_POPUP_KEY);
49
+ if (!raw) return false;
50
+ localStorage.removeItem(LOGIN_POPUP_KEY);
51
+ return Date.now() - Number(raw) < LOGIN_POPUP_TTL_MS;
52
+ } catch {
53
+ return false;
54
+ }
55
+ }
56
+
57
+ /** Signal a completed sign-in to the opener that launched the popup (same-origin). */
58
+ export function broadcastLoginSuccess(): void {
59
+ try {
60
+ new BroadcastChannel(LOGIN_CHANNEL).postMessage({
61
+ type: 'ugly-bot-login-success',
62
+ });
63
+ } catch {
64
+ /* no BroadcastChannel (old engine) */
65
+ }
66
+ }
67
+
23
68
  /**
24
69
  * Open the ugly.bot OAuth popup and complete login. On success, the session
25
70
  * cookie is set via `/auth/verify` and the browser navigates to `redirectTo`
26
71
  * (or reloads). If the popup is blocked, falls back to navigating to
27
72
  * `redirectTo` (or `/`), where the framework's LoginPopup handles sign-in.
73
+ *
74
+ * Two completion paths:
75
+ * • Non-COI apps: `window.opener` survives → the popup postMessages the code here.
76
+ * • COI apps: COOP: same-origin severs `window.opener`, so ugly.bot can't reach us
77
+ * and instead redirects the popup back to this origin with `?ugly_oauth_code=`.
78
+ * The popup's bootstrap redeems it and broadcasts success over BroadcastChannel;
79
+ * we reload (the session cookie is shared same-origin). `markLoginPopupPending`
80
+ * tags the popup so bootstrap closes it instead of rendering the app inside it.
28
81
  */
29
82
  export function startUglyBotLogin(opts: StartLoginOptions = {}): void {
30
83
  if (typeof window === 'undefined') return;
31
84
  const origin = encodeURIComponent(window.location.origin);
32
85
  const url = `${UGLY_BOT_URL}/oauth?origin=${origin}`;
33
- const popup = window.open(
34
- url,
35
- 'ugly-bot-login',
36
- 'width=480,height=640,left=200,top=100',
37
- );
38
86
 
39
- if (!popup) {
40
- // Popup blocked — degrade to the login screen on the target route.
41
- window.location.href = opts.redirectTo ?? '/';
42
- return;
87
+ // Only COI apps hit the severed-opener path; tagging non-COI would leave a stale
88
+ // flag that a later magic-link tab could wrongly self-close on.
89
+ if ((window as { crossOriginIsolated?: boolean }).crossOriginIsolated) {
90
+ markLoginPopupPending();
43
91
  }
44
92
 
45
- const handler = async (event: MessageEvent): Promise<void> => {
93
+ const finish = (): void => {
94
+ if (opts.redirectTo) window.location.href = opts.redirectTo;
95
+ else window.location.reload();
96
+ };
97
+
98
+ let chan: BroadcastChannel | null = null;
99
+ const cleanup = (): void => {
100
+ window.removeEventListener('message', handler);
101
+ if (chan) {
102
+ try {
103
+ chan.close();
104
+ } catch {
105
+ /* ignore */
106
+ }
107
+ chan = null;
108
+ }
109
+ };
110
+
111
+ // COI path: the popup redeems the code (bootstrap) and broadcasts success here.
112
+ async function handler(event: MessageEvent): Promise<void> {
46
113
  if (event.origin !== UGLY_BOT_URL) return;
47
114
  const data = event.data as { type?: string; code?: string } | null;
48
115
  if (data?.type !== 'ugly-bot-oauth' || !data.code) return;
49
- window.removeEventListener('message', handler);
116
+ cleanup();
50
117
  try {
51
118
  const res = await fetch('/auth/verify', {
52
119
  method: 'POST',
@@ -54,12 +121,45 @@ export function startUglyBotLogin(opts: StartLoginOptions = {}): void {
54
121
  body: JSON.stringify({ code: data.code }),
55
122
  });
56
123
  if (!res.ok) throw new Error('Auth failed');
57
- if (opts.redirectTo) window.location.href = opts.redirectTo;
58
- else window.location.reload();
124
+ finish();
59
125
  } catch {
60
126
  opts.onError?.();
61
127
  }
62
- };
128
+ }
129
+
130
+ try {
131
+ chan = new BroadcastChannel(LOGIN_CHANNEL);
132
+ chan.onmessage = (e: MessageEvent): void => {
133
+ if (
134
+ (e.data as { type?: string } | null)?.type === 'ugly-bot-login-success'
135
+ ) {
136
+ cleanup();
137
+ finish();
138
+ }
139
+ };
140
+ } catch {
141
+ /* no BroadcastChannel — the opener.postMessage path still covers non-COI */
142
+ }
143
+
144
+ const popup = window.open(
145
+ url,
146
+ 'ugly-bot-login',
147
+ 'width=480,height=640,left=200,top=100',
148
+ );
149
+
150
+ if (!popup) {
151
+ // Popup blocked — degrade to the login screen on the target route.
152
+ cleanup();
153
+ try {
154
+ localStorage.removeItem(LOGIN_POPUP_KEY);
155
+ } catch {
156
+ /* ignore */
157
+ }
158
+ window.location.href = opts.redirectTo ?? '/';
159
+ return;
160
+ }
161
+
162
+ // Non-COI path: opener intact → the popup postMessages the code to us.
63
163
  window.addEventListener('message', handler);
64
164
  }
65
165
 
@@ -10,7 +10,9 @@ import { installSsrPageData, isSsrDocument } from './ssr.js';
10
10
  import { MagicLinkCallback } from './auth/MagicLinkCallback.js';
11
11
  import {
12
12
  attemptSilentSso,
13
+ broadcastLoginSuccess,
13
14
  clearSilentSsoTried,
15
+ consumeLoginPopupPending,
14
16
  markSilentSsoTried,
15
17
  } from './auth/startLogin.js';
16
18
  import { createSocket } from './createSocket.js';
@@ -493,19 +495,38 @@ export function bootstrapApp(options: BootstrapAppOptions): void {
493
495
  })();
494
496
  // Fall through to the normal bootstrap below (renders logged-in in place).
495
497
  } else {
496
- // Logged-out → adopting a session. Must reload so the server re-renders the
497
- // HTML with `__AUTH_TOKEN__` injected from the (now set) cookie. `replace`
498
- // keeps the single-use code out of history so it can't be replayed.
498
+ // Logged-out → adopting a session. Redeem the code (sets the session cookie
499
+ // for this origin), then either:
500
+ // • we're the sign-in popup opened by startUglyBotLogin — a COI app's COOP:
501
+ // same-origin severed our `window.opener`, so we can't postMessage it.
502
+ // Signal it over a same-origin BroadcastChannel and close; the cookie is
503
+ // shared, so the opener reloads logged-in. (Without this, the app would
504
+ // just render INSIDE the popup and the opener would never know.)
505
+ // • a normal tab (magic-link / blocked popup): reload so the server
506
+ // re-renders the HTML with `__AUTH_TOKEN__` injected from the cookie.
507
+ // `replace` keeps the single-use code out of history so it can't be replayed.
508
+ const isLoginPopup = consumeLoginPopupPending();
499
509
  void (async () => {
510
+ let ok = false;
500
511
  try {
501
- await fetch('/auth/verify', {
512
+ const res = await fetch('/auth/verify', {
502
513
  method: 'POST',
503
514
  headers: { 'Content-Type': 'application/json' },
504
515
  body: JSON.stringify({ code: oauthCode }),
505
516
  });
517
+ ok = res.ok;
506
518
  } catch {
507
519
  // Fall through — the reload renders logged-out and the user can retry.
508
520
  }
521
+ if (isLoginPopup && ok) {
522
+ // Only claim success once the cookie is actually set; then close.
523
+ broadcastLoginSuccess();
524
+ // No-op if this window isn't script-closable; the replace below is the
525
+ // fallback so the user still ends up logged in, not on a stuck popup.
526
+ window.close();
527
+ }
528
+ // Popup with a failed redeem, or a normal tab: reload in place (logged-in on
529
+ // success, logged-out on failure so the user can retry).
509
530
  window.location.replace(cleanUrl);
510
531
  })();
511
532
  mount(<></>);
@@ -684,16 +684,24 @@ export function wrapWithAssets(
684
684
  // own fetch) because this wrapper generates the HTML shell + asset responses
685
685
  // outside the app's handler. Off by default.
686
686
  //
687
- // COEP is `credentialless`, NOT `require-corp`: both grant cross-origin isolation,
688
- // but `require-corp` HARD-BLOCKS cross-origin embeds that don't send CORP — which
689
- // breaks the silent-SSO iframe (ugly.bot/oauth/silent) and the app-store frame,
690
- // failing every authed RPC. `credentialless` instead loads such cross-origin
691
- // resources without credentials rather than blocking them, so the app still works
692
- // (anonymous where a cross-origin cookie would be needed) instead of breaking.
687
+ // COEP is `require-corp`, NOT `credentialless`. Both grant cross-origin isolation
688
+ // in Chromium, but WebKit (iOS/macOS Safari, and every iOS WKWebView — e.g. the
689
+ // ugly-studio mobile shell) does NOT implement `credentialless` (neither the COEP
690
+ // value nor the anonymous-iframe attribute). Under `credentialless`, WebKit sees an
691
+ // unknown COEP value, leaves `crossOriginIsolated === false`, and SharedArrayBuffer
692
+ // stays undefined — so COI apps silently lose their off-thread sim on iOS. Only
693
+ // `require-corp` is honored across all engines.
694
+ //
695
+ // `require-corp` hard-blocks cross-origin embeds that don't themselves assert COEP,
696
+ // which is why the platform's cross-origin auth/push iframes each send their own
697
+ // `Cross-Origin-Embedder-Policy: require-corp` + `Cross-Origin-Resource-Policy`
698
+ // (ugly-bot: /oauth/silent?mode=iframe and /push-frame) so they remain embeddable
699
+ // under a require-corp parent on every browser. App bundles are same-origin (served
700
+ // by this wrapper with CORP below), so their subresources are unaffected.
693
701
  if (!config.crossOriginIsolation) return wrapped;
694
702
  const coiHeaders: Record<string, string> = {
695
703
  'cross-origin-opener-policy': 'same-origin',
696
- 'cross-origin-embedder-policy': 'credentialless',
704
+ 'cross-origin-embedder-policy': 'require-corp',
697
705
  'cross-origin-resource-policy': 'cross-origin',
698
706
  };
699
707
  return {