@withbuddi/buddi 0.1.0-pre.41 → 0.1.0-pre.42

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 (135) hide show
  1. package/extension/background.js +11 -0
  2. package/extension/manifest.json +2 -2
  3. package/extension/popup.html +1 -1
  4. package/extension/popup.js +83 -1
  5. package/node_modules/@buddi/cli/dist/.tsbuildinfo +1 -1
  6. package/node_modules/@buddi/cli/dist/commands.js +2 -2
  7. package/node_modules/@buddi/cli/dist/commands.js.map +1 -1
  8. package/node_modules/@buddi/cli/package.json +4 -0
  9. package/node_modules/@buddi/gateway/dist/.tsbuildinfo +1 -1
  10. package/node_modules/@buddi/gateway/dist/web/api-routes.d.ts.map +1 -1
  11. package/node_modules/@buddi/gateway/dist/web/api-routes.js +3 -1
  12. package/node_modules/@buddi/gateway/dist/web/api-routes.js.map +1 -1
  13. package/node_modules/@buddi/gateway/dist/web/extension.d.ts +23 -0
  14. package/node_modules/@buddi/gateway/dist/web/extension.d.ts.map +1 -1
  15. package/node_modules/@buddi/gateway/dist/web/extension.js +116 -10
  16. package/node_modules/@buddi/gateway/dist/web/extension.js.map +1 -1
  17. package/node_modules/@buddi/gateway/dist/web/lock.d.ts +6 -0
  18. package/node_modules/@buddi/gateway/dist/web/lock.d.ts.map +1 -1
  19. package/node_modules/@buddi/gateway/dist/web/lock.js +4 -2
  20. package/node_modules/@buddi/gateway/dist/web/lock.js.map +1 -1
  21. package/node_modules/@buddi/gateway/dist/web/server.d.ts.map +1 -1
  22. package/node_modules/@buddi/gateway/dist/web/server.js +4 -2
  23. package/node_modules/@buddi/gateway/dist/web/server.js.map +1 -1
  24. package/node_modules/@buddi/gateway/dist/web/signed-out.d.ts +19 -0
  25. package/node_modules/@buddi/gateway/dist/web/signed-out.d.ts.map +1 -1
  26. package/node_modules/@buddi/gateway/dist/web/signed-out.js +61 -3
  27. package/node_modules/@buddi/gateway/dist/web/signed-out.js.map +1 -1
  28. package/node_modules/@buddi/gateway/dist/web/widgets.d.ts +2 -0
  29. package/node_modules/@buddi/gateway/dist/web/widgets.d.ts.map +1 -1
  30. package/node_modules/@buddi/gateway/dist/web/widgets.js +47 -13
  31. package/node_modules/@buddi/gateway/dist/web/widgets.js.map +1 -1
  32. package/node_modules/@buddi/install/dist/.tsbuildinfo +1 -1
  33. package/node_modules/@buddi/install/dist/cli-shim.d.ts +2 -0
  34. package/node_modules/@buddi/install/dist/cli-shim.d.ts.map +1 -1
  35. package/node_modules/@buddi/install/dist/cli-shim.js +4 -0
  36. package/node_modules/@buddi/install/dist/cli-shim.js.map +1 -1
  37. package/node_modules/@buddi/install/dist/doctor-timezone.js +1 -1
  38. package/node_modules/@buddi/install/dist/doctor-timezone.js.map +1 -1
  39. package/node_modules/@buddi/install/dist/kept-data.d.ts.map +1 -1
  40. package/node_modules/@buddi/install/dist/kept-data.js +3 -1
  41. package/node_modules/@buddi/install/dist/kept-data.js.map +1 -1
  42. package/node_modules/@buddi/install/dist/launcher.js +93 -3
  43. package/node_modules/@buddi/install/dist/launcher.js.map +1 -1
  44. package/node_modules/@buddi/install/dist/supervisor.d.ts +43 -0
  45. package/node_modules/@buddi/install/dist/supervisor.d.ts.map +1 -1
  46. package/node_modules/@buddi/install/dist/supervisor.js +97 -9
  47. package/node_modules/@buddi/install/dist/supervisor.js.map +1 -1
  48. package/node_modules/@buddi/install/dist/uninstall.d.ts +17 -0
  49. package/node_modules/@buddi/install/dist/uninstall.d.ts.map +1 -1
  50. package/node_modules/@buddi/install/dist/uninstall.js +90 -49
  51. package/node_modules/@buddi/install/dist/uninstall.js.map +1 -1
  52. package/node_modules/@buddi/tool-browser/dist/.tsbuildinfo +1 -1
  53. package/node_modules/@buddi/tool-browser/dist/availability.d.ts +2 -2
  54. package/node_modules/@buddi/tool-browser/dist/availability.d.ts.map +1 -1
  55. package/node_modules/@buddi/tool-browser/dist/availability.js +2 -2
  56. package/node_modules/@buddi/tool-browser/dist/availability.js.map +1 -1
  57. package/node_modules/@buddi/tool-browser/dist/controller.d.ts +1 -1
  58. package/node_modules/@buddi/tool-browser/dist/controller.d.ts.map +1 -1
  59. package/node_modules/@buddi/tool-browser/dist/controller.js +1 -1
  60. package/node_modules/@buddi/tool-browser/dist/controller.js.map +1 -1
  61. package/node_modules/@zone-eu/mailsplit/package.json +4 -4
  62. package/node_modules/imapflow/CHANGELOG.md +7 -0
  63. package/node_modules/imapflow/dist/cjs/package-info.d.ts +1 -1
  64. package/node_modules/imapflow/dist/cjs/package-info.js +1 -1
  65. package/node_modules/imapflow/dist/esm/package-info.d.ts +1 -1
  66. package/node_modules/imapflow/dist/esm/package-info.js +1 -1
  67. package/node_modules/imapflow/package.json +4 -4
  68. package/node_modules/libbase64/CHANGELOG.md +7 -0
  69. package/node_modules/libbase64/lib/libbase64.js +110 -58
  70. package/node_modules/libbase64/package.json +1 -1
  71. package/node_modules/libmime/CHANGELOG.md +7 -0
  72. package/node_modules/libmime/package.json +2 -2
  73. package/package.json +2 -2
  74. package/packages/cli/dist/.tsbuildinfo +1 -1
  75. package/packages/cli/dist/commands.js +2 -2
  76. package/packages/cli/dist/commands.js.map +1 -1
  77. package/packages/cli/package.json +4 -0
  78. package/packages/gateway/dist/.tsbuildinfo +1 -1
  79. package/packages/gateway/dist/web/api-routes.d.ts.map +1 -1
  80. package/packages/gateway/dist/web/api-routes.js +3 -1
  81. package/packages/gateway/dist/web/api-routes.js.map +1 -1
  82. package/packages/gateway/dist/web/extension.d.ts +23 -0
  83. package/packages/gateway/dist/web/extension.d.ts.map +1 -1
  84. package/packages/gateway/dist/web/extension.js +116 -10
  85. package/packages/gateway/dist/web/extension.js.map +1 -1
  86. package/packages/gateway/dist/web/lock.d.ts +6 -0
  87. package/packages/gateway/dist/web/lock.d.ts.map +1 -1
  88. package/packages/gateway/dist/web/lock.js +4 -2
  89. package/packages/gateway/dist/web/lock.js.map +1 -1
  90. package/packages/gateway/dist/web/server.d.ts.map +1 -1
  91. package/packages/gateway/dist/web/server.js +4 -2
  92. package/packages/gateway/dist/web/server.js.map +1 -1
  93. package/packages/gateway/dist/web/signed-out.d.ts +19 -0
  94. package/packages/gateway/dist/web/signed-out.d.ts.map +1 -1
  95. package/packages/gateway/dist/web/signed-out.js +61 -3
  96. package/packages/gateway/dist/web/signed-out.js.map +1 -1
  97. package/packages/gateway/dist/web/widgets.d.ts +2 -0
  98. package/packages/gateway/dist/web/widgets.d.ts.map +1 -1
  99. package/packages/gateway/dist/web/widgets.js +47 -13
  100. package/packages/gateway/dist/web/widgets.js.map +1 -1
  101. package/packages/install/dist/.tsbuildinfo +1 -1
  102. package/packages/install/dist/cli-shim.d.ts +2 -0
  103. package/packages/install/dist/cli-shim.d.ts.map +1 -1
  104. package/packages/install/dist/cli-shim.js +4 -0
  105. package/packages/install/dist/cli-shim.js.map +1 -1
  106. package/packages/install/dist/doctor-timezone.js +1 -1
  107. package/packages/install/dist/doctor-timezone.js.map +1 -1
  108. package/packages/install/dist/kept-data.d.ts.map +1 -1
  109. package/packages/install/dist/kept-data.js +3 -1
  110. package/packages/install/dist/kept-data.js.map +1 -1
  111. package/packages/install/dist/launcher.js +93 -3
  112. package/packages/install/dist/launcher.js.map +1 -1
  113. package/packages/install/dist/supervisor.d.ts +43 -0
  114. package/packages/install/dist/supervisor.d.ts.map +1 -1
  115. package/packages/install/dist/supervisor.js +97 -9
  116. package/packages/install/dist/supervisor.js.map +1 -1
  117. package/packages/install/dist/uninstall.d.ts +17 -0
  118. package/packages/install/dist/uninstall.d.ts.map +1 -1
  119. package/packages/install/dist/uninstall.js +90 -49
  120. package/packages/install/dist/uninstall.js.map +1 -1
  121. package/packages/tools/browser/dist/.tsbuildinfo +1 -1
  122. package/packages/tools/browser/dist/availability.d.ts +2 -2
  123. package/packages/tools/browser/dist/availability.d.ts.map +1 -1
  124. package/packages/tools/browser/dist/availability.js +2 -2
  125. package/packages/tools/browser/dist/availability.js.map +1 -1
  126. package/packages/tools/browser/dist/controller.d.ts +1 -1
  127. package/packages/tools/browser/dist/controller.d.ts.map +1 -1
  128. package/packages/tools/browser/dist/controller.js +1 -1
  129. package/packages/tools/browser/dist/controller.js.map +1 -1
  130. package/packages/web/dist/assets/{index-D2rOodlH.css → index-BrA8nWN-.css} +1 -1
  131. package/packages/web/dist/assets/{index-BkxHX_8g.js → index-lmUTDd2T.js} +61 -61
  132. package/packages/web/dist/assets/{lottie_light-D-P1tn3V.js → lottie_light-CQmEj1as.js} +1 -1
  133. package/packages/web/dist/build.json +1 -1
  134. package/packages/web/dist/index.html +2 -2
  135. package/packages/web/dist/precache.json +4 -4
@@ -13,6 +13,16 @@ export declare function wantsSignedOutPage(req: IncomingMessage, method: string,
13
13
  * `//host` (which a browser reads as another site), never anything but a path.
14
14
  */
15
15
  export declare function retryHref(pathname: string, search: string): string;
16
+ /** The port buddi.app's own buddi listens on; the app answers `buddi://` only for that one. */
17
+ export declare const APP_PORT = 4317;
18
+ /**
19
+ * `buddi://settings/browser`, for a page the Chrome extension opened
20
+ * (`?from=extension`, set by `packages/extension/src/popup.ts`) in a Mac's
21
+ * browser at buddi.app's own address. Undefined for any other request: Linux,
22
+ * Windows, a checkout on another port. Fixed text only; the pairing code never
23
+ * reaches the server (it rides in the fragment, and the page's script adds it).
24
+ */
25
+ export declare function appLinkFor(search: string, userAgent?: string, host?: string): string | undefined;
16
26
  export interface SignedOutOptions {
17
27
  /** Where "Try again" goes, from `retryHref`. */
18
28
  retry: string;
@@ -37,6 +47,11 @@ export interface SignedOutOptions {
37
47
  tailscaleUnanswered?: boolean | undefined;
38
48
  /** A sign-in lockout is running for this address, and how long is left. */
39
49
  lockedForMs?: number | undefined;
50
+ /**
51
+ * The Chrome extension sent the owner here (`appLinkFor`): "Open buddi.app"
52
+ * leads, and the Terminal line waits until the link did not answer.
53
+ */
54
+ appLink?: string | undefined;
40
55
  /**
41
56
  * The request came through a provider other than Tailscale (Cloudflare
42
57
  * Access, on the ingress listener) and earned no identity: its title and
@@ -48,6 +63,10 @@ export interface SignedOutOptions {
48
63
  kind: 'unanswered' | 'login' | 'other';
49
64
  } | undefined;
50
65
  }
66
+ /** How long "Open buddi.app" waits for the app to take over before the Terminal line shows. */
67
+ export declare const APP_LINK_WAIT_MS = 1500;
68
+ /** Focus coming back to the page this soon after the click, with the page still here, is a "no" (Chrome's own dialog, Cancel). */
69
+ export declare const APP_LINK_RETURN_MS = 30000;
51
70
  /** The page itself. Exported for tests; the server calls `sendSignedOut`. */
52
71
  export declare function signedOutPage(options: SignedOutOptions): string;
53
72
  /** Answer a refused page load with the signed-out page: HTML, nothing loadable but its own copy script. */
@@ -1 +1 @@
1
- {"version":3,"file":"signed-out.d.ts","sourceRoot":"","sources":["../../src/web/signed-out.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGjE;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAMlG;AAMD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAGlE;AAED,MAAM,WAAW,gBAAgB;IAC/B,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IACrD;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACtC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,wEAAwE;IACxE,mBAAmB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1C,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC;;;;OAIG;IACH,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,YAAY,GAAG,OAAO,GAAG,OAAO,CAAA;KAAE,GAAG,SAAS,CAAC;CACnG;AAgHD,6EAA6E;AAC7E,wBAAgB,aAAa,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAsF/D;AAED,2GAA2G;AAC3G,wBAAgB,aAAa,CAC3B,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,gBAAgB,EACzB,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAM,EAC/C,MAAM,SAAM,GACX,IAAI,CAUN"}
1
+ {"version":3,"file":"signed-out.d.ts","sourceRoot":"","sources":["../../src/web/signed-out.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGjE;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAMlG;AAMD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAGlE;AAED,+FAA+F;AAC/F,eAAO,MAAM,QAAQ,OAAO,CAAC;AAE7B;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,SAAK,EAAE,IAAI,SAAK,GAAG,MAAM,GAAG,SAAS,CAQxF;AAED,MAAM,WAAW,gBAAgB;IAC/B,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IACrD;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACtC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,wEAAwE;IACxE,mBAAmB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1C,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,YAAY,GAAG,OAAO,GAAG,OAAO,CAAA;KAAE,GAAG,SAAS,CAAC;CACnG;AAaD,+FAA+F;AAC/F,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,kIAAkI;AAClI,eAAO,MAAM,kBAAkB,QAAS,CAAC;AAsHzC,6EAA6E;AAC7E,wBAAgB,aAAa,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CA8F/D;AAED,2GAA2G;AAC3G,wBAAgB,aAAa,CAC3B,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,gBAAgB,EACzB,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAM,EAC/C,MAAM,SAAM,GACX,IAAI,CAUN"}
@@ -46,6 +46,36 @@ export function retryHref(pathname, search) {
46
46
  const path = `/${pathname.replace(/^[/\\]+/, '')}`;
47
47
  return `${path}${search}`;
48
48
  }
49
+ /** The port buddi.app's own buddi listens on; the app answers `buddi://` only for that one. */
50
+ export const APP_PORT = 4317;
51
+ /**
52
+ * `buddi://settings/browser`, for a page the Chrome extension opened
53
+ * (`?from=extension`, set by `packages/extension/src/popup.ts`) in a Mac's
54
+ * browser at buddi.app's own address. Undefined for any other request: Linux,
55
+ * Windows, a checkout on another port. Fixed text only; the pairing code never
56
+ * reaches the server (it rides in the fragment, and the page's script adds it).
57
+ */
58
+ export function appLinkFor(search, userAgent = '', host = '') {
59
+ let params;
60
+ try {
61
+ params = new URLSearchParams(search);
62
+ }
63
+ catch {
64
+ return undefined;
65
+ }
66
+ if (params.get('from') !== 'extension')
67
+ return undefined;
68
+ if (!/Macintosh|Mac OS X/.test(userAgent))
69
+ return undefined;
70
+ let port;
71
+ try {
72
+ port = new URL(`http://${host}`).port || '80';
73
+ }
74
+ catch {
75
+ return undefined;
76
+ }
77
+ return port === String(APP_PORT) ? 'buddi://settings/browser' : undefined;
78
+ }
49
79
  /** The command the page offers, and copies. */
50
80
  const COMMAND = 'buddi dashboard';
51
81
  /**
@@ -55,6 +85,22 @@ const COMMAND = 'buddi dashboard';
55
85
  */
56
86
  const COPY_SCRIPT = "document.querySelectorAll('[data-copy]').forEach(function(b){b.hidden=false;b.addEventListener('click',function(){navigator.clipboard.writeText(b.getAttribute('data-copy')).then(function(){b.textContent='Copied';setTimeout(function(){b.textContent='Copy'},1600)},function(){})})})";
57
87
  const COPY_SCRIPT_HASH = `sha256-${createHash('sha256').update(COPY_SCRIPT, 'utf8').digest('base64')}`;
88
+ /** How long "Open buddi.app" waits for the app to take over before the Terminal line shows. */
89
+ export const APP_LINK_WAIT_MS = 1500;
90
+ /** Focus coming back to the page this soon after the click, with the page still here, is a "no" (Chrome's own dialog, Cancel). */
91
+ export const APP_LINK_RETURN_MS = 30_000;
92
+ /**
93
+ * "Open buddi.app": the pairing code is read from the fragment the extension
94
+ * put it in (`#/settings/computer?code=123456`), checked for exactly six
95
+ * digits and added to the link; nothing else from the address is used. Then
96
+ * the link is followed, and the Terminal line shows when buddi.app did not
97
+ * answer: the page still has the focus after a second and a half, or the
98
+ * focus comes back without the page having gone (Chrome's first-time "Open
99
+ * buddi.app?" dialog blurs the page, and Cancel returns it). Without the
100
+ * script the line is never hidden. Allowed by hash, like the copy script.
101
+ */
102
+ const APP_SCRIPT = `document.querySelectorAll('[data-app-wait]').forEach(function(w){w.hidden=true});var m=/[?&]code=([^&]*)/.exec(location.hash);var code=m&&/^\\d{6}$/.test(m[1])?m[1]:'';function show(){document.querySelectorAll('[data-app-wait]').forEach(function(w){w.hidden=false})}document.querySelectorAll('[data-app-link]').forEach(function(a){if(code)a.href='buddi://settings/browser?code='+code;a.addEventListener('click',function(){var gone=false,left=false,at=Date.now();function away(){gone=true}window.addEventListener('blur',away,{once:true});document.addEventListener('visibilitychange',away,{once:true});window.addEventListener('pagehide',function(){left=true},{once:true});window.addEventListener('focus',function(){if(!left&&Date.now()-at<${APP_LINK_RETURN_MS})show()},{once:true});setTimeout(function(){if(gone&&!document.hasFocus())return;show()},${APP_LINK_WAIT_MS})})})`;
103
+ const APP_SCRIPT_HASH = `sha256-${createHash('sha256').update(APP_SCRIPT, 'utf8').digest('base64')}`;
58
104
  /** What the page says, by case. Kept in step with the kit's `SignedOut.jsx`. */
59
105
  function copyFor(options) {
60
106
  if (options.provider !== undefined)
@@ -145,6 +191,10 @@ function providerCopy(provider) {
145
191
  primary: 'Try again',
146
192
  };
147
193
  }
194
+ /** Only the bare `buddi://settings/browser` link is ever drawn; the page's script adds the code from the fragment. */
195
+ function appLinkHref(link) {
196
+ return link === 'buddi://settings/browser' ? link : undefined;
197
+ }
148
198
  /** The page itself. Exported for tests; the server calls `sendSignedOut`. */
149
199
  export function signedOutPage(options) {
150
200
  const copy = copyFor(options);
@@ -152,9 +202,14 @@ export function signedOutPage(options) {
152
202
  const lockout = minutes > 0
153
203
  ? `<div class="notice" role="status"><div class="notice-title">Too many tries — wait ${minutes} min</div>Too many sign-in tries came from here in the last minute; a forgotten tab can do that. A fresh link from <code>${COMMAND}</code> works right away.</div>`
154
204
  : '';
205
+ const app = appLinkHref(options.appLink);
155
206
  const how = copy.how !== undefined
156
- ? `<p>${copy.how}</p>
157
- <div class="cmd"><code class="cmd-text">${COMMAND}</code><button type="button" class="button small" data-copy="${COMMAND}" hidden>Copy</button></div>`
207
+ ? `<div${app ? ' data-app-wait' : ''}><p>${app ? 'buddi.app didn’t open. ' : ''}${copy.how}</p>
208
+ <div class="cmd"><code class="cmd-text">${COMMAND}</code><button type="button" class="button small" data-copy="${COMMAND}" hidden>Copy</button></div></div>`
209
+ : '';
210
+ const open = app
211
+ ? `<p>The buddi extension sent you here. buddi.app opens on Settings → Browser &amp; apps, where you finish pairing.</p>
212
+ <p class="app"><a class="button accent" href="${escapeHtml(app)}" data-app-link>Open buddi.app</a></p>`
158
213
  : '';
159
214
  return `<!doctype html>
160
215
  <html lang="en">
@@ -213,6 +268,7 @@ export function signedOutPage(options) {
213
268
  .button.accent { background: var(--accent); border-color: var(--accent); color: var(--accent-contrast);
214
269
  box-shadow: 0 1px 0 rgb(255 255 255 / 18%) inset, 0 2px 6px -2px color-mix(in oklab, var(--accent) 60%, transparent); }
215
270
  .button.accent:hover { background: var(--accent-hover); border-color: var(--accent-hover); }
271
+ .app { margin: 16px 0; }
216
272
  .button:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
217
273
  @media (max-width: 720px) { .body { padding: 20px; } .dock { padding: 12px 20px; } }
218
274
  </style>
@@ -224,11 +280,13 @@ export function signedOutPage(options) {
224
280
  <h1>${copy.title}</h1>
225
281
  ${copy.lines.map((line) => `<p>${line}</p>`).join('\n ')}
226
282
  ${lockout}
283
+ ${open}
227
284
  ${how}
228
285
  </div>
229
286
  <div class="dock"><a class="button accent" href="${escapeHtml(options.retry)}">${copy.primary}</a></div>
230
287
  </main>
231
288
  ${copy.how !== undefined ? `<script>${COPY_SCRIPT}</script>` : ''}
289
+ ${app ? `<script>${APP_SCRIPT}</script>` : ''}
232
290
  </body>
233
291
  </html>
234
292
  `;
@@ -240,7 +298,7 @@ export function sendSignedOut(res, options, headers = {}, status = 401) {
240
298
  ...baseHeaders(),
241
299
  'Content-Type': 'text/html; charset=utf-8',
242
300
  'Content-Length': Buffer.byteLength(html),
243
- 'Content-Security-Policy': `default-src 'none'; style-src 'unsafe-inline'; script-src '${COPY_SCRIPT_HASH}'; base-uri 'none'; form-action 'none'; frame-ancestors 'none'`,
301
+ 'Content-Security-Policy': `default-src 'none'; style-src 'unsafe-inline'; script-src '${COPY_SCRIPT_HASH}'${appLinkHref(options.appLink) ? ` '${APP_SCRIPT_HASH}'` : ''}; base-uri 'none'; form-action 'none'; frame-ancestors 'none'`,
244
302
  ...headers,
245
303
  });
246
304
  res.end(html);
@@ -1 +1 @@
1
- {"version":3,"file":"signed-out.js","sourceRoot":"","sources":["../../src/web/signed-out.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signed-out.js","sourceRoot":"","sources":["../../src/web/signed-out.ts"],"names":[],"mappings":"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"}
@@ -81,6 +81,8 @@ export interface WidgetsDeps {
81
81
  ctx: CoreToolContext;
82
82
  now: () => Date;
83
83
  timeoutMs?: number;
84
+ /** One line per production that failed or answered late: ids and timings, never a body or a plugin's message. */
85
+ log?: (line: string) => void;
84
86
  }
85
87
  interface Stored {
86
88
  home?: Placement[];
@@ -1 +1 @@
1
- {"version":3,"file":"widgets.d.ts","sourceRoot":"","sources":["../../src/web/widgets.ts"],"names":[],"mappings":"AAqCA,OAAO,EAeL,KAAK,eAAe,EAEpB,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,UAAU,EAEf,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,UAAU,EACf,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;AAGrB,iEAAiE;AACjE,eAAO,MAAM,oBAAoB,YAAY,CAAC;AAE9C,gFAAgF;AAChF,eAAO,MAAM,iBAAiB,OAAQ,CAAC;AAEvC,uFAAuF;AACvF,eAAO,MAAM,eAAe,QAAS,CAAC;AAEtC,4CAA4C;AAC5C,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,4CAA4C;AAC5C,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC,oGAAoG;AACpG,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAE9C,KAAK,EAAE,GAAG;IAAE,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,GAAG,EAAE,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC;AAE/E,MAAM,WAAW,SAAS;IACxB,6FAA6F;IAC7F,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,UAAU,CAAC;IACjB,wEAAwE;IACxE,QAAQ,EAAE,oBAAoB,CAAC;CAChC;AAED,0EAA0E;AAC1E,MAAM,WAAW,aAAc,SAAQ,SAAS;IAC9C,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qFAAqF;AACrF,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AAExH,uDAAuD;AACvD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAAA;KAAE,CAAC;IACpE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;IAC7B,wCAAwC;IACxC,OAAO,CAAC,EAAE,IAAI,CAAC;CAChB;AAED,8CAA8C;AAC9C,MAAM,WAAW,UAAU;IACzB,oHAAoH;IACpH,KAAK,EAAE,IAAI,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IAC1C,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,sEAAsE;IACtE,QAAQ,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;IAC3C,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACnC;AAyBD,2EAA2E;AAC3E,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC;AACpC,eAAO,MAAM,MAAM,GAAI,OAAO,OAAO,KAAG,SAAS,GAAG,SAAmE,CAAC;AAOxH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,EAAE,CAAC;IACT,QAAQ,EAAE,YAAY,CAAC;IACvB,GAAG,EAAE,eAAe,CAAC;IACrB,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,MAAM;IACd,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC;CACpB;AAwCD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAoBxD;AAQD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW;oBA2MjB;QAAE,OAAO,CAAC,EAAE,aAAa,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,SAAS,CAAC;QAAC,UAAU,CAAC,EAAE,KAAK,GAAG,KAAK,CAAA;KAAE,KAAQ,OAAO,CAAC,aAAa,CAAC;2BAsD/G,aAAa,QAAQ,OAAO,SAAS,SAAS,KAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;0BA2B5F,MAAM,KAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;oBAmBzD,OAAO,KAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;EAiBlF;AAED,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AAE9D,0DAA0D;AAC1D,wBAAsB,YAAY,CAChC,OAAO,EAAE,cAAc,EACvB,GAAG,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,eAAe,CAAA;CAAE,GAC5E,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CA8B5C"}
1
+ {"version":3,"file":"widgets.d.ts","sourceRoot":"","sources":["../../src/web/widgets.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,9 @@
20
20
  * and resolved settings (two placements set alike share it; a failure is tried
21
21
  * again after a minute), with its own timeout. One that throws, times out or
22
22
  * answers a body the page cannot draw keeps its last good body and is marked
23
- * stale, or shows its error when it never had one; nothing else notices. The
23
+ * stale, or shows its error when it never had one. Each failure is logged
24
+ * (the widget, its size, how long it took); one that times out but answers
25
+ * later still lands in the cache for the next ask. The
24
26
  * built-in World clock reads only the clock and is produced every time.
25
27
  *
26
28
  * An older plugin's glance that sends a `card` is a widget too — a small
@@ -50,10 +52,16 @@ export const LOCK_WIDGETS_MAX = 4;
50
52
  /** A select's read choices are kept this long, so a Home poll does not ask the plugin each time. */
51
53
  export const WIDGET_OPTIONS_CACHE_MS = 60_000;
52
54
  export const hourOf = (value) => (value === '12' || value === '24' ? value : undefined);
55
+ /** A production that took longer than its budget. */
56
+ class WidgetTimeout extends Error {
57
+ }
58
+ /** A production that answered something the page cannot draw. */
59
+ class InvalidBody extends Error {
60
+ }
53
61
  function withTimeout(work, ms) {
54
62
  let timer;
55
63
  const late = new Promise((_, reject) => {
56
- timer = setTimeout(() => reject(new Error(`did not answer in ${Math.round(ms / 1000)} seconds`)), ms);
64
+ timer = setTimeout(() => reject(new WidgetTimeout(`did not answer in ${Math.round(ms / 1000)} seconds`)), ms);
57
65
  });
58
66
  return Promise.race([work, late]).finally(() => clearTimeout(timer));
59
67
  }
@@ -249,29 +257,55 @@ export function createWidgets(deps) {
249
257
  if (!force && entry.at > 0 && now - entry.at < wait)
250
258
  return entry;
251
259
  const e = entry;
252
- e.inflight = (async () => {
260
+ const generation = e.generation = (e.generation ?? 0) + 1;
261
+ const started = Date.now();
262
+ const work = Promise.resolve().then(() => p.produce(deps.ctx, { size, settings }, owner));
263
+ let outcome = null;
264
+ /** A body, or null for nothing; throws when the page could not draw it. */
265
+ const accept = (raw) => {
266
+ if (raw === null || raw === undefined)
267
+ return null;
268
+ const checked = widgetBodyOf(raw, { plugin: p.info.plugin });
269
+ if (!checked.ok)
270
+ throw new InvalidBody(checked.reason);
271
+ return checked.body;
272
+ };
273
+ const tried = (async () => {
253
274
  try {
254
- const raw = await withTimeout(Promise.resolve().then(() => p.produce(deps.ctx, { size, settings }, owner)), timeoutMs);
255
- if (raw === null || raw === undefined) {
256
- e.body = null;
257
- }
258
- else {
259
- const checked = widgetBodyOf(raw, { plugin: p.info.plugin });
260
- if (!checked.ok)
261
- throw new Error(checked.reason);
262
- e.body = checked.body;
263
- }
275
+ e.body = accept(await withTimeout(work, timeoutMs));
264
276
  e.okAt = deps.now().getTime();
265
277
  delete e.error;
266
278
  }
267
279
  catch (err) {
268
280
  e.error = err instanceof Error ? err.message : String(err);
281
+ outcome = err instanceof WidgetTimeout ? 'timed out' : err instanceof InvalidBody ? 'answered a body the page cannot draw' : 'failed';
282
+ // The id, size and timing only: a plugin's message can carry the owner's data.
283
+ deps.log?.(`widgets: ${p.info.id} (${size}) ${outcome} after ${Date.now() - started} ms`);
269
284
  }
270
285
  finally {
271
286
  e.at = deps.now().getTime();
272
287
  delete e.inflight;
273
288
  }
274
289
  })();
290
+ e.inflight = tried;
291
+ // A production that missed the budget may still finish: its body is kept
292
+ // for the next ask, unless a newer try is under way or answered meanwhile.
293
+ void work.then(async (raw) => {
294
+ await tried;
295
+ // Only the newest production may land late: after a newer one started
296
+ // (answered, failed or still going), this answer is older than what is known.
297
+ if (outcome !== 'timed out' || e.generation !== generation || e.inflight || e.error === undefined)
298
+ return;
299
+ try {
300
+ e.body = accept(raw);
301
+ }
302
+ catch {
303
+ return;
304
+ }
305
+ e.okAt = deps.now().getTime();
306
+ delete e.error;
307
+ deps.log?.(`widgets: ${p.info.id} (${size}) answered late, after ${Date.now() - started} ms; kept for the next ask`);
308
+ }, () => { });
275
309
  await e.inflight;
276
310
  return e;
277
311
  }
@@ -1 +1 @@
1
- {"version":3,"file":"widgets.js","sourceRoot":"","sources":["../../src/web/widgets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"widgets.js","sourceRoot":"","sources":["../../src/web/widgets.ts"],"names":[],"mappings":"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"}