ugly-app 0.1.588 → 0.1.589

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.
Files changed (44) hide show
  1. package/.pgdata/global/1262 +0 -0
  2. package/.pgdata/global/2671 +0 -0
  3. package/.pgdata/global/2672 +0 -0
  4. package/.pgdata/global/pg_control +0 -0
  5. package/.pgdata/pg_wal/000000010000000000000009 +0 -0
  6. package/.pgdata/pg_xact/0000 +0 -0
  7. package/dist/cli/version.d.ts +1 -1
  8. package/dist/cli/version.js +1 -1
  9. package/dist/client/Screenshot.js +1 -1
  10. package/dist/client/Screenshot.js.map +1 -1
  11. package/dist/client/auth/startLogin.d.ts +7 -1
  12. package/dist/client/auth/startLogin.d.ts.map +1 -1
  13. package/dist/client/auth/startLogin.js +11 -1
  14. package/dist/client/auth/startLogin.js.map +1 -1
  15. package/dist/client/bootstrapApp.d.ts.map +1 -1
  16. package/dist/client/bootstrapApp.js +3 -11
  17. package/dist/client/bootstrapApp.js.map +1 -1
  18. package/package.json +1 -1
  19. package/src/cli/version.ts +1 -1
  20. package/src/client/Screenshot.ts +1 -1
  21. package/src/client/auth/startLogin.ts +11 -1
  22. package/src/client/bootstrapApp.tsx +3 -11
  23. package/test-results/.last-run.json +24 -2
  24. package/test-results/test-pages--auth-demo-loads-chromium/error-context.md +226 -0
  25. package/test-results/test-pages--test-ai-runs-textGen-and-returns-a-response-chromium/error-context.md +226 -0
  26. package/test-results/test-pages--test-audio-TTS-68f5e--audio-when-Play-is-clicked-chromium/error-context.md +226 -0
  27. package/test-results/test-pages--test-chat-load-b9223-t-on-Workers-/342/200/224-page-mounts--chromium/error-context.md +226 -0
  28. package/test-results/test-pages--test-collab-lo-ae96d-t-on-Workers-/342/200/224-page-mounts--chromium/error-context.md +226 -0
  29. package/test-results/test-pages--test-email-loads-chromium/error-context.md +226 -0
  30. package/test-results/test-pages--test-errors-ha-fe332-rror-click-without-crashing-chromium/error-context.md +226 -0
  31. package/test-results/test-pages--test-index-page-lists-the-test-suite-chromium/error-context.md +226 -0
  32. package/test-results/test-pages--test-inspect-fixture-loads-chromium/error-context.md +226 -0
  33. package/test-results/test-pages--test-inspect-fixture-other-loads-chromium/error-context.md +226 -0
  34. package/test-results/test-pages--test-push-loads-chromium/error-context.md +226 -0
  35. package/test-results/test-pages--test-safe-area-loads-chromium/error-context.md +226 -0
  36. package/test-results/test-pages--test-scroll-loads-chromium/error-context.md +226 -0
  37. package/test-results/test-pages--test-search-ru-19f57-red-search-proxy-infra-TBD--chromium/error-context.md +226 -0
  38. package/test-results/test-pages--test-strings-loads-chromium/error-context.md +226 -0
  39. package/test-results/test-pages--test-three-loads-chromium/error-context.md +226 -0
  40. package/test-results/test-pages--test-todo-load-dbf6f-creates-a-todo-list-updates-chromium/error-context.md +226 -0
  41. package/test-results/test-pages--test-ui-loads-chromium/error-context.md +226 -0
  42. package/test-results/test-pages--test-upload-loads-chromium/error-context.md +226 -0
  43. package/test-results/test-pages--test-video-room-loads-chromium/error-context.md +226 -0
  44. package/test-results/test-pages--test-worker-runs-a-DB-mutation-worker-round-trip-chromium/error-context.md +226 -0
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1,2 +1,2 @@
1
- export declare const CLI_VERSION = "0.1.588";
1
+ export declare const CLI_VERSION = "0.1.589";
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.588";
2
+ export const CLI_VERSION = "0.1.589";
3
3
  //# sourceMappingURL=version.js.map
@@ -5,7 +5,7 @@
5
5
  */
6
6
  async function captureViaUglyBrowser() {
7
7
  if (typeof navigator === 'undefined' ||
8
- !navigator.userAgent.includes('UglyBrowser') ||
8
+ !navigator.userAgent?.includes('UglyBrowser') ||
9
9
  typeof window === 'undefined') {
10
10
  return null;
11
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Screenshot.js","sourceRoot":"","sources":["../../src/client/Screenshot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Screenshot.js","sourceRoot":"","sources":["../../src/client/Screenshot.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,12 @@ export interface StartLoginOptions {
11
11
  * `redirectTo` (or `/`), where the framework's LoginPopup handles sign-in.
12
12
  */
13
13
  export declare function startUglyBotLogin(opts?: StartLoginOptions): void;
14
- /** Best-effort check for an existing session cookie (not a validity guarantee). */
14
+ /**
15
+ * Best-effort check for an existing session (not a validity guarantee). The
16
+ * `auth_token` cookie is HttpOnly — invisible to `document.cookie` — so the
17
+ * reliable signal is the server-injected `window.__AUTH_TOKEN__` (set by the
18
+ * Workers/Node HTML wrapper when the cookie verifies). Fall back to a
19
+ * non-HttpOnly cookie for older/self-host setups.
20
+ */
15
21
  export declare function hasSessionCookie(): boolean;
16
22
  //# sourceMappingURL=startLogin.d.ts.map
@@ -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,mFAAmF;AACnF,wBAAgB,gBAAgB,IAAI,OAAO,CAG1C"}
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;;;;;;GAMG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAO1C"}
@@ -53,8 +53,18 @@ export function startUglyBotLogin(opts = {}) {
53
53
  };
54
54
  window.addEventListener('message', handler);
55
55
  }
56
- /** Best-effort check for an existing session cookie (not a validity guarantee). */
56
+ /**
57
+ * Best-effort check for an existing session (not a validity guarantee). The
58
+ * `auth_token` cookie is HttpOnly — invisible to `document.cookie` — so the
59
+ * reliable signal is the server-injected `window.__AUTH_TOKEN__` (set by the
60
+ * Workers/Node HTML wrapper when the cookie verifies). Fall back to a
61
+ * non-HttpOnly cookie for older/self-host setups.
62
+ */
57
63
  export function hasSessionCookie() {
64
+ if (typeof window !== 'undefined' &&
65
+ window.__AUTH_TOKEN__) {
66
+ return true;
67
+ }
58
68
  if (typeof document === 'undefined')
59
69
  return false;
60
70
  return /(?:^|;\s*)auth_token=[^;]+/.test(document.cookie);
@@ -1 +1 @@
1
- {"version":3,"file":"startLogin.js","sourceRoot":"","sources":["../../../src/client/auth/startLogin.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,EAAE;AACF,+EAA+E;AAC/E,gFAAgF;AAChF,+EAA+E;AAC/E,EAAE;AACF,0EAA0E;AAC1E,+DAA+D;AAE/D,MAAM,YAAY,GAChB,OAAO,MAAM,KAAK,WAAW;IAC3B,CAAC,CAAC,CAAE,MAA4C,CAAC,gBAAgB;QAC7D,kBAAkB,CAAC;IACvB,CAAC,CAAC,kBAAkB,CAAC;AASzB;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAA0B,EAAE;IAC5D,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO;IAC1C,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1D,MAAM,GAAG,GAAG,GAAG,YAAY,iBAAiB,MAAM,EAAE,CAAC;IACrD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CACvB,GAAG,EACH,gBAAgB,EAChB,uCAAuC,CACxC,CAAC;IAEF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,mEAAmE;QACnE,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC;QAC9C,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,EAAE,KAAmB,EAAiB,EAAE;QAC3D,IAAI,KAAK,CAAC,MAAM,KAAK,YAAY;YAAE,OAAO;QAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,IAA+C,CAAC;QACnE,IAAI,IAAI,EAAE,IAAI,KAAK,gBAAgB,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO;QAC1D,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC/C,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,IAAI,CAAC,IAAI,EAAE,CAAC;aAC1C,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;YAC5C,IAAI,IAAI,CAAC,UAAU;gBAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;;gBACvD,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,CAAC;IACF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,gBAAgB;IAC9B,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IAClD,OAAO,4BAA4B,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC5D,CAAC"}
1
+ {"version":3,"file":"startLogin.js","sourceRoot":"","sources":["../../../src/client/auth/startLogin.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,EAAE;AACF,+EAA+E;AAC/E,gFAAgF;AAChF,+EAA+E;AAC/E,EAAE;AACF,0EAA0E;AAC1E,+DAA+D;AAE/D,MAAM,YAAY,GAChB,OAAO,MAAM,KAAK,WAAW;IAC3B,CAAC,CAAC,CAAE,MAA4C,CAAC,gBAAgB;QAC7D,kBAAkB,CAAC;IACvB,CAAC,CAAC,kBAAkB,CAAC;AASzB;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAA0B,EAAE;IAC5D,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO;IAC1C,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1D,MAAM,GAAG,GAAG,GAAG,YAAY,iBAAiB,MAAM,EAAE,CAAC;IACrD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CACvB,GAAG,EACH,gBAAgB,EAChB,uCAAuC,CACxC,CAAC;IAEF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,mEAAmE;QACnE,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC;QAC9C,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,EAAE,KAAmB,EAAiB,EAAE;QAC3D,IAAI,KAAK,CAAC,MAAM,KAAK,YAAY;YAAE,OAAO;QAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,IAA+C,CAAC;QACnE,IAAI,IAAI,EAAE,IAAI,KAAK,gBAAgB,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO;QAC1D,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC/C,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,IAAI,CAAC,IAAI,EAAE,CAAC;aAC1C,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;YAC5C,IAAI,IAAI,CAAC,UAAU;gBAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;;gBACvD,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,CAAC;IACF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB;IAC9B,IAAI,OAAO,MAAM,KAAK,WAAW;QAC5B,MAA6C,CAAC,cAAc,EAAE,CAAC;QAClE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IAClD,OAAO,4BAA4B,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC5D,CAAC"}
@@ -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;AASzE,OAAO,EAAmB,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAInF,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;KACjC,CAAC,CAAC;IAEH,+EAA+E;IAC/E,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;CAClB;AAID,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAmJ/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;AASzE,OAAO,EAAmB,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAInF,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;KACjC,CAAC,CAAC;IAEH,+EAA+E;IAC/E,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;CAClB;AAID,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CA2I/D"}
@@ -39,18 +39,14 @@ export function bootstrapApp(options) {
39
39
  if (oauthCode) {
40
40
  void (async () => {
41
41
  try {
42
- const res = await fetch('/auth/verify', {
42
+ await fetch('/auth/verify', {
43
43
  method: 'POST',
44
44
  headers: { 'Content-Type': 'application/json' },
45
45
  body: JSON.stringify({ code: oauthCode }),
46
46
  });
47
- const body = await res.text().catch(() => '');
48
- // eslint-disable-next-line no-console
49
- console.log('[LoginBoot] verify', res.status, body.slice(0, 200));
50
47
  }
51
- catch (e) {
52
- // eslint-disable-next-line no-console
53
- console.log('[LoginBoot] verify threw', String(e));
48
+ catch {
49
+ // Fall through — the reload renders logged-out and the user can retry.
54
50
  }
55
51
  // Strip the single-use code, then full-reload so the server picks up the
56
52
  // (now set) auth cookie. `replace` keeps the code-bearing URL out of
@@ -81,8 +77,6 @@ export function bootstrapApp(options) {
81
77
  ? _jsx(KeyboardProvider, { children: withStrings })
82
78
  : withStrings);
83
79
  }
84
- // eslint-disable-next-line no-console
85
- console.log('[LoginBoot] boot token present?', !!token, 'cookie:', typeof document !== 'undefined' ? document.cookie.slice(0, 80) : 'n/a');
86
80
  if (!token) {
87
81
  renderWithRouter(false, renderApp());
88
82
  return;
@@ -110,8 +104,6 @@ export function bootstrapApp(options) {
110
104
  renderWithRouter(true, _jsx(AppProvider, { socket: socket, uglyBotSocket: uglyBotSocket, userId: userId, user: user, children: renderApp() }));
111
105
  })
112
106
  .catch((err) => {
113
- // eslint-disable-next-line no-console
114
- console.log('[LoginBoot] socket.connect FAILED', String(err));
115
107
  console.error('[bootstrapApp] socket.connect failed, clearing auth cookie:', err);
116
108
  document.cookie = 'auth_token=; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT';
117
109
  renderWithRouter(false, renderApp());
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrapApp.js","sourceRoot":"","sources":["../../src/client/bootstrapApp.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bootstrapApp.js","sourceRoot":"","sources":["../../src/client/bootstrapApp.tsx"],"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.588",
3
+ "version": "0.1.589",
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.588";
2
+ export const CLI_VERSION = "0.1.589";
@@ -25,7 +25,7 @@ interface UglyBridgeWindow {
25
25
  async function captureViaUglyBrowser(): Promise<string | null> {
26
26
  if (
27
27
  typeof navigator === 'undefined' ||
28
- !navigator.userAgent.includes('UglyBrowser') ||
28
+ !navigator.userAgent?.includes('UglyBrowser') ||
29
29
  typeof window === 'undefined'
30
30
  ) {
31
31
  return null;
@@ -63,8 +63,18 @@ export function startUglyBotLogin(opts: StartLoginOptions = {}): void {
63
63
  window.addEventListener('message', handler);
64
64
  }
65
65
 
66
- /** Best-effort check for an existing session cookie (not a validity guarantee). */
66
+ /**
67
+ * Best-effort check for an existing session (not a validity guarantee). The
68
+ * `auth_token` cookie is HttpOnly — invisible to `document.cookie` — so the
69
+ * reliable signal is the server-injected `window.__AUTH_TOKEN__` (set by the
70
+ * Workers/Node HTML wrapper when the cookie verifies). Fall back to a
71
+ * non-HttpOnly cookie for older/self-host setups.
72
+ */
67
73
  export function hasSessionCookie(): boolean {
74
+ if (typeof window !== 'undefined' &&
75
+ (window as unknown as Record<string, unknown>).__AUTH_TOKEN__) {
76
+ return true;
77
+ }
68
78
  if (typeof document === 'undefined') return false;
69
79
  return /(?:^|;\s*)auth_token=[^;]+/.test(document.cookie);
70
80
  }
@@ -89,17 +89,13 @@ export function bootstrapApp(options: BootstrapAppOptions): void {
89
89
  if (oauthCode) {
90
90
  void (async () => {
91
91
  try {
92
- const res = await fetch('/auth/verify', {
92
+ await fetch('/auth/verify', {
93
93
  method: 'POST',
94
94
  headers: { 'Content-Type': 'application/json' },
95
95
  body: JSON.stringify({ code: oauthCode }),
96
96
  });
97
- const body = await res.text().catch(() => '');
98
- // eslint-disable-next-line no-console
99
- console.log('[LoginBoot] verify', res.status, body.slice(0, 200));
100
- } catch (e) {
101
- // eslint-disable-next-line no-console
102
- console.log('[LoginBoot] verify threw', String(e));
97
+ } catch {
98
+ // Fall through — the reload renders logged-out and the user can retry.
103
99
  }
104
100
  // Strip the single-use code, then full-reload so the server picks up the
105
101
  // (now set) auth cookie. `replace` keeps the code-bearing URL out of
@@ -151,8 +147,6 @@ export function bootstrapApp(options: BootstrapAppOptions): void {
151
147
  );
152
148
  }
153
149
 
154
- // eslint-disable-next-line no-console
155
- console.log('[LoginBoot] boot token present?', !!token, 'cookie:', typeof document !== 'undefined' ? document.cookie.slice(0, 80) : 'n/a');
156
150
  if (!token) {
157
151
  renderWithRouter(false, renderApp());
158
152
  return;
@@ -189,8 +183,6 @@ export function bootstrapApp(options: BootstrapAppOptions): void {
189
183
  );
190
184
  })
191
185
  .catch((err: unknown) => {
192
- // eslint-disable-next-line no-console
193
- console.log('[LoginBoot] socket.connect FAILED', String(err));
194
186
  console.error('[bootstrapApp] socket.connect failed, clearing auth cookie:', err);
195
187
  document.cookie = 'auth_token=; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT';
196
188
  renderWithRouter(false, renderApp());
@@ -1,4 +1,26 @@
1
1
  {
2
- "status": "passed",
3
- "failedTests": []
2
+ "status": "failed",
3
+ "failedTests": [
4
+ "ecb270801e64470c7eb3-7bd7723f288943e8aabb",
5
+ "ecb270801e64470c7eb3-49f7f877f37e128d25bb",
6
+ "ecb270801e64470c7eb3-2f6a83dae9cb58ba3509",
7
+ "ecb270801e64470c7eb3-7315e9784748367c9789",
8
+ "ecb270801e64470c7eb3-1ae48316684d1a048871",
9
+ "ecb270801e64470c7eb3-f4ec10d203302497169d",
10
+ "ecb270801e64470c7eb3-dd7cdcd247d4756c74f0",
11
+ "ecb270801e64470c7eb3-d3a925b0be598e672110",
12
+ "ecb270801e64470c7eb3-44f9c598fd2f3c906315",
13
+ "ecb270801e64470c7eb3-fda4b364ebd825845b53",
14
+ "ecb270801e64470c7eb3-a1b79047fb2f5b90d955",
15
+ "ecb270801e64470c7eb3-136b79c4ef6b52d44656",
16
+ "ecb270801e64470c7eb3-ea688b2565bd508fd353",
17
+ "ecb270801e64470c7eb3-14831c0cfa8577e72c30",
18
+ "ecb270801e64470c7eb3-ce560dfbd14288e4991e",
19
+ "ecb270801e64470c7eb3-0f0a058a88f13930c372",
20
+ "ecb270801e64470c7eb3-558d66a362c59848c23c",
21
+ "ecb270801e64470c7eb3-61568ce087b558deabe2",
22
+ "ecb270801e64470c7eb3-80f57badf67aab48c95e",
23
+ "ecb270801e64470c7eb3-cdf14476971b5b9b5ed0",
24
+ "ecb270801e64470c7eb3-cd26a959ff20bdbfd404"
25
+ ]
4
26
  }
@@ -0,0 +1,226 @@
1
+ # Instructions
2
+
3
+ - Following Playwright test failed.
4
+ - Explain why, be concise, respect Playwright best practices.
5
+ - Provide a snippet of code with the fix, if possible.
6
+
7
+ # Test info
8
+
9
+ - Name: test-pages.spec.ts >> /auth-demo loads
10
+ - Location: tests/e2e-pages/test-pages.spec.ts:151:1
11
+
12
+ # Error details
13
+
14
+ ```
15
+ Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8787/auth-demo
16
+ Call log:
17
+ - navigating to "http://localhost:8787/auth-demo", waiting until "domcontentloaded"
18
+
19
+ ```
20
+
21
+ # Test source
22
+
23
+ ```ts
24
+ 3 | *
25
+ 4 | * Drives a real browser against a deployed ugly-app and asserts every
26
+ 5 | * built-in test page from the deploy template loads and serves the
27
+ 6 | * expected framework features without errors.
28
+ 7 | *
29
+ 8 | * Target URL:
30
+ 9 | * - `TARGET_URL` env var (e.g. https://deploy.justin-mann.workers.dev)
31
+ 10 | * points at any live Worker deploy.
32
+ 11 | * - Defaults to `http://localhost:8787` (wrangler dev) when unset.
33
+ 12 | *
34
+ 13 | * Auth:
35
+ 14 | * - `AUTH_TOKEN` env var carries the ugly.bot JWT to plant as the
36
+ 15 | * `auth_token` cookie. The framework's `wrapWithAssets` HTML
37
+ 16 | * handler reads the cookie, verifies via ugly.bot, and injects
38
+ 17 | * `window.__AUTH_TOKEN__` so bootstrapApp comes up authenticated.
39
+ 18 | * - Defaults to reading `~/.ugly-bot/auth.json` if the env var is
40
+ 19 | * unset — convenient for local runs against the dev's own auth.
41
+ 20 | *
42
+ 21 | * What each page assertion checks:
43
+ 22 | * - Page mounts and reaches a stable DOM (no infinite reload loop).
44
+ 23 | * - No uncaught browser-side errors during initial render.
45
+ 24 | * - Page does not display a known broken-state string (e.g.
46
+ 25 | * "UglyBot socket not available", "is not registered").
47
+ 26 | * - For pages with specific interaction surfaces (todo, search),
48
+ 27 | * drive the key action and confirm the response shape.
49
+ 28 | *
50
+ 29 | * Pages are taken from the deploy project's `shared/pages.ts`. New
51
+ 30 | * pages must be added here too — `npm run test:e2e-pages` is the
52
+ 31 | * acceptance gate for the deploy template's surface area.
53
+ 32 | */
54
+ 33 |
55
+ 34 | import { expect, test, type Page } from '@playwright/test';
56
+ 35 | import { readFileSync } from 'node:fs';
57
+ 36 | import { homedir } from 'node:os';
58
+ 37 | import { join } from 'node:path';
59
+ 38 |
60
+ 39 | const TARGET_URL =
61
+ 40 | process.env['TARGET_URL'] ?? 'http://localhost:8787';
62
+ 41 |
63
+ 42 | function resolveAuthToken(): string {
64
+ 43 | if (process.env['AUTH_TOKEN']) return process.env['AUTH_TOKEN'];
65
+ 44 | try {
66
+ 45 | const blob = JSON.parse(
67
+ 46 | readFileSync(join(homedir(), '.ugly-bot', 'auth.json'), 'utf-8'),
68
+ 47 | ) as { token?: string };
69
+ 48 | if (blob.token) return blob.token;
70
+ 49 | } catch {
71
+ 50 | /* fall through */
72
+ 51 | }
73
+ 52 | throw new Error(
74
+ 53 | 'No auth token available. Set AUTH_TOKEN env var or write ~/.ugly-bot/auth.json.',
75
+ 54 | );
76
+ 55 | }
77
+ 56 |
78
+ 57 | const AUTH_TOKEN = resolveAuthToken();
79
+ 58 | const ORIGIN = new URL(TARGET_URL).origin;
80
+ 59 | const HOSTNAME = new URL(TARGET_URL).hostname;
81
+ 60 |
82
+ 61 | // Console-error sink so each test asserts a clean boot.
83
+ 62 | function attachConsoleSink(page: Page): string[] {
84
+ 63 | const errors: string[] = [];
85
+ 64 | page.on('pageerror', (err) => {
86
+ 65 | errors.push(`pageerror: ${err.message}`);
87
+ 66 | });
88
+ 67 | page.on('console', (msg) => {
89
+ 68 | if (msg.type() === 'error') {
90
+ 69 | // Filter out third-party noise we can't control (e.g. CSP from
91
+ 70 | // the ugly.bot iframe, R2-cdn DNS prefetch warnings).
92
+ 71 | const text = msg.text();
93
+ 72 | if (
94
+ 73 | text.includes('Failed to load resource') ||
95
+ 74 | text.includes('chunk-') ||
96
+ 75 | text.startsWith('[Auth]') // server log echoed to client during dev
97
+ 76 | ) {
98
+ 77 | return;
99
+ 78 | }
100
+ 79 | errors.push(`console.error: ${text}`);
101
+ 80 | }
102
+ 81 | });
103
+ 82 | return errors;
104
+ 83 | }
105
+ 84 |
106
+ 85 | test.beforeEach(async ({ context }) => {
107
+ 86 | await context.addCookies([
108
+ 87 | {
109
+ 88 | name: 'auth_token',
110
+ 89 | value: AUTH_TOKEN,
111
+ 90 | domain: HOSTNAME,
112
+ 91 | path: '/',
113
+ 92 | httpOnly: false, // Playwright can't set HttpOnly + read it; tests don't need to read
114
+ 93 | secure: TARGET_URL.startsWith('https'),
115
+ 94 | sameSite: 'Lax',
116
+ 95 | },
117
+ 96 | ]);
118
+ 97 | });
119
+ 98 |
120
+ 99 | // ── Helpers ──────────────────────────────────────────────────────────────
121
+ 100 |
122
+ 101 | async function goto(page: Page, path: string): Promise<void> {
123
+ 102 | const url = `${ORIGIN}${path}`;
124
+ > 103 | await page.goto(url, { waitUntil: 'domcontentloaded' });
125
+ | ^ Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8787/auth-demo
126
+ 104 | // Give the SPA a moment to mount + auth-handshake before any
127
+ 105 | // assertions touch the DOM.
128
+ 106 | await page.waitForLoadState('networkidle', { timeout: 10_000 }).catch(() => {
129
+ 107 | /* networkidle can stall on long-poll sockets; absorb */
130
+ 108 | });
131
+ 109 | }
132
+ 110 |
133
+ 111 | async function expectMounted(page: Page): Promise<void> {
134
+ 112 | // The framework mounts into #root; anything richer than an empty
135
+ 113 | // div means React got past hydration.
136
+ 114 | const root = page.locator('#root');
137
+ 115 | await expect(root).not.toBeEmpty({ timeout: 10_000 });
138
+ 116 | }
139
+ 117 |
140
+ 118 | async function expectNoBrokenText(page: Page): Promise<void> {
141
+ 119 | const html = await page.content();
142
+ 120 | const brokenSnippets = [
143
+ 121 | 'UglyBot socket not available',
144
+ 122 | "is not registered",
145
+ 123 | 'not yet ported',
146
+ 124 | "TypeError: Cannot read",
147
+ 125 | ];
148
+ 126 | for (const snippet of brokenSnippets) {
149
+ 127 | expect(
150
+ 128 | html.includes(snippet),
151
+ 129 | `page contains broken-state snippet: "${snippet}"`,
152
+ 130 | ).toBe(false);
153
+ 131 | }
154
+ 132 | }
155
+ 133 |
156
+ 134 | // ── /test (index) ────────────────────────────────────────────────────────
157
+ 135 |
158
+ 136 | test('/test index page lists the test suite', async ({ page }) => {
159
+ 137 | const errors = attachConsoleSink(page);
160
+ 138 | await goto(page, '/test');
161
+ 139 | await expectMounted(page);
162
+ 140 | await expectNoBrokenText(page);
163
+ 141 | // The index lists the Todo entry twice (link title + description);
164
+ 142 | // use first() to avoid strict-mode multi-match.
165
+ 143 | await expect(
166
+ 144 | page.getByText('Todo', { exact: false }).first(),
167
+ 145 | ).toBeVisible();
168
+ 146 | expect(errors).toEqual([]);
169
+ 147 | });
170
+ 148 |
171
+ 149 | // ── Public (auth-optional) pages ─────────────────────────────────────────
172
+ 150 |
173
+ 151 | test('/auth-demo loads', async ({ page }) => {
174
+ 152 | const errors = attachConsoleSink(page);
175
+ 153 | await goto(page, '/auth-demo');
176
+ 154 | await expectMounted(page);
177
+ 155 | await expectNoBrokenText(page);
178
+ 156 | expect(errors).toEqual([]);
179
+ 157 | });
180
+ 158 |
181
+ 159 | test('/test/ui loads', async ({ page }) => {
182
+ 160 | const errors = attachConsoleSink(page);
183
+ 161 | await goto(page, '/test/ui');
184
+ 162 | await expectMounted(page);
185
+ 163 | await expectNoBrokenText(page);
186
+ 164 | expect(errors).toEqual([]);
187
+ 165 | });
188
+ 166 |
189
+ 167 | test('/test/scroll loads', async ({ page }) => {
190
+ 168 | const errors = attachConsoleSink(page);
191
+ 169 | await goto(page, '/test/scroll');
192
+ 170 | await expectMounted(page);
193
+ 171 | await expectNoBrokenText(page);
194
+ 172 | expect(errors).toEqual([]);
195
+ 173 | });
196
+ 174 |
197
+ 175 | test('/test/strings loads', async ({ page }) => {
198
+ 176 | const errors = attachConsoleSink(page);
199
+ 177 | await goto(page, '/test/strings');
200
+ 178 | await expectMounted(page);
201
+ 179 | await expectNoBrokenText(page);
202
+ 180 | expect(errors).toEqual([]);
203
+ 181 | });
204
+ 182 |
205
+ 183 | test('/test/safe-area loads', async ({ page }) => {
206
+ 184 | const errors = attachConsoleSink(page);
207
+ 185 | await goto(page, '/test/safe-area');
208
+ 186 | await expectMounted(page);
209
+ 187 | await expectNoBrokenText(page);
210
+ 188 | expect(errors).toEqual([]);
211
+ 189 | });
212
+ 190 |
213
+ 191 | test('/test/three loads', async ({ page }) => {
214
+ 192 | const errors = attachConsoleSink(page);
215
+ 193 | await goto(page, '/test/three');
216
+ 194 | // three.js is a heavy lazy chunk and renders to a WebGL canvas.
217
+ 195 | // Headless chromium often can't initialise WebGL without a GPU,
218
+ 196 | // so we accept either: the SPA mounted SOMETHING under #root, or
219
+ 197 | // a WebGL-context console.error appeared (legitimate environment
220
+ 198 | // limitation, not a regression). The point of this test is to
221
+ 199 | // catch chunk-loading regressions, not to validate GLSL output.
222
+ 200 | await page.waitForTimeout(3000);
223
+ 201 | await expectNoBrokenText(page);
224
+ 202 | const filtered = errors.filter(
225
+ 203 | (e) => !/webgl|context|gl_|canvas/i.test(e),
226
+ ```