@withbuddi/buddi 0.1.0-pre.40 → 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 (302) 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/args.d.ts +2 -0
  7. package/node_modules/@buddi/cli/dist/args.d.ts.map +1 -1
  8. package/node_modules/@buddi/cli/dist/args.js +11 -2
  9. package/node_modules/@buddi/cli/dist/args.js.map +1 -1
  10. package/node_modules/@buddi/cli/dist/backup/index.d.ts +3 -1
  11. package/node_modules/@buddi/cli/dist/backup/index.d.ts.map +1 -1
  12. package/node_modules/@buddi/cli/dist/backup/index.js +16 -1
  13. package/node_modules/@buddi/cli/dist/backup/index.js.map +1 -1
  14. package/node_modules/@buddi/cli/dist/commands.d.ts.map +1 -1
  15. package/node_modules/@buddi/cli/dist/commands.js +6 -4
  16. package/node_modules/@buddi/cli/dist/commands.js.map +1 -1
  17. package/node_modules/@buddi/cli/dist/main.d.ts +4 -1
  18. package/node_modules/@buddi/cli/dist/main.d.ts.map +1 -1
  19. package/node_modules/@buddi/cli/dist/main.js +41 -3
  20. package/node_modules/@buddi/cli/dist/main.js.map +1 -1
  21. package/node_modules/@buddi/cli/dist/mode.d.ts +41 -0
  22. package/node_modules/@buddi/cli/dist/mode.d.ts.map +1 -0
  23. package/node_modules/@buddi/cli/dist/mode.js +103 -0
  24. package/node_modules/@buddi/cli/dist/mode.js.map +1 -0
  25. package/node_modules/@buddi/cli/dist/paths.d.ts +13 -1
  26. package/node_modules/@buddi/cli/dist/paths.d.ts.map +1 -1
  27. package/node_modules/@buddi/cli/dist/paths.js +23 -2
  28. package/node_modules/@buddi/cli/dist/paths.js.map +1 -1
  29. package/node_modules/@buddi/cli/dist/uninstall-cmd.d.ts +12 -2
  30. package/node_modules/@buddi/cli/dist/uninstall-cmd.d.ts.map +1 -1
  31. package/node_modules/@buddi/cli/dist/uninstall-cmd.js +63 -12
  32. package/node_modules/@buddi/cli/dist/uninstall-cmd.js.map +1 -1
  33. package/node_modules/@buddi/cli/dist/vault-cmd.d.ts +3 -0
  34. package/node_modules/@buddi/cli/dist/vault-cmd.d.ts.map +1 -1
  35. package/node_modules/@buddi/cli/dist/vault-cmd.js +26 -5
  36. package/node_modules/@buddi/cli/dist/vault-cmd.js.map +1 -1
  37. package/node_modules/@buddi/cli/package.json +4 -0
  38. package/node_modules/@buddi/core/dist/.tsbuildinfo +1 -1
  39. package/node_modules/@buddi/core/dist/uninstall.d.ts +18 -0
  40. package/node_modules/@buddi/core/dist/uninstall.d.ts.map +1 -1
  41. package/node_modules/@buddi/core/dist/uninstall.js +47 -0
  42. package/node_modules/@buddi/core/dist/uninstall.js.map +1 -1
  43. package/node_modules/@buddi/gateway/dist/.tsbuildinfo +1 -1
  44. package/node_modules/@buddi/gateway/dist/codex-accounts.d.ts +2 -0
  45. package/node_modules/@buddi/gateway/dist/codex-accounts.d.ts.map +1 -1
  46. package/node_modules/@buddi/gateway/dist/codex-accounts.js +4 -4
  47. package/node_modules/@buddi/gateway/dist/codex-accounts.js.map +1 -1
  48. package/node_modules/@buddi/gateway/dist/serve.d.ts.map +1 -1
  49. package/node_modules/@buddi/gateway/dist/serve.js +31 -0
  50. package/node_modules/@buddi/gateway/dist/serve.js.map +1 -1
  51. package/node_modules/@buddi/gateway/dist/web/api-routes.d.ts.map +1 -1
  52. package/node_modules/@buddi/gateway/dist/web/api-routes.js +23 -3
  53. package/node_modules/@buddi/gateway/dist/web/api-routes.js.map +1 -1
  54. package/node_modules/@buddi/gateway/dist/web/cli-tool.d.ts +11 -0
  55. package/node_modules/@buddi/gateway/dist/web/cli-tool.d.ts.map +1 -0
  56. package/node_modules/@buddi/gateway/dist/web/cli-tool.js +27 -0
  57. package/node_modules/@buddi/gateway/dist/web/cli-tool.js.map +1 -0
  58. package/node_modules/@buddi/gateway/dist/web/extension.d.ts +37 -0
  59. package/node_modules/@buddi/gateway/dist/web/extension.d.ts.map +1 -1
  60. package/node_modules/@buddi/gateway/dist/web/extension.js +138 -11
  61. package/node_modules/@buddi/gateway/dist/web/extension.js.map +1 -1
  62. package/node_modules/@buddi/gateway/dist/web/lock.d.ts +18 -0
  63. package/node_modules/@buddi/gateway/dist/web/lock.d.ts.map +1 -1
  64. package/node_modules/@buddi/gateway/dist/web/lock.js +17 -2
  65. package/node_modules/@buddi/gateway/dist/web/lock.js.map +1 -1
  66. package/node_modules/@buddi/gateway/dist/web/onboarding.d.ts +19 -2
  67. package/node_modules/@buddi/gateway/dist/web/onboarding.d.ts.map +1 -1
  68. package/node_modules/@buddi/gateway/dist/web/onboarding.js +9 -2
  69. package/node_modules/@buddi/gateway/dist/web/onboarding.js.map +1 -1
  70. package/node_modules/@buddi/gateway/dist/web/passphrase-notice.d.ts +64 -0
  71. package/node_modules/@buddi/gateway/dist/web/passphrase-notice.d.ts.map +1 -0
  72. package/node_modules/@buddi/gateway/dist/web/passphrase-notice.js +112 -0
  73. package/node_modules/@buddi/gateway/dist/web/passphrase-notice.js.map +1 -0
  74. package/node_modules/@buddi/gateway/dist/web/server.d.ts.map +1 -1
  75. package/node_modules/@buddi/gateway/dist/web/server.js +75 -7
  76. package/node_modules/@buddi/gateway/dist/web/server.js.map +1 -1
  77. package/node_modules/@buddi/gateway/dist/web/signed-out.d.ts +19 -0
  78. package/node_modules/@buddi/gateway/dist/web/signed-out.d.ts.map +1 -1
  79. package/node_modules/@buddi/gateway/dist/web/signed-out.js +61 -3
  80. package/node_modules/@buddi/gateway/dist/web/signed-out.js.map +1 -1
  81. package/node_modules/@buddi/gateway/dist/web/take-on.d.ts +28 -3
  82. package/node_modules/@buddi/gateway/dist/web/take-on.d.ts.map +1 -1
  83. package/node_modules/@buddi/gateway/dist/web/take-on.js +48 -3
  84. package/node_modules/@buddi/gateway/dist/web/take-on.js.map +1 -1
  85. package/node_modules/@buddi/gateway/dist/web/uninstall.d.ts +36 -0
  86. package/node_modules/@buddi/gateway/dist/web/uninstall.d.ts.map +1 -0
  87. package/node_modules/@buddi/gateway/dist/web/uninstall.js +116 -0
  88. package/node_modules/@buddi/gateway/dist/web/uninstall.js.map +1 -0
  89. package/node_modules/@buddi/gateway/dist/web/widgets.d.ts +2 -0
  90. package/node_modules/@buddi/gateway/dist/web/widgets.d.ts.map +1 -1
  91. package/node_modules/@buddi/gateway/dist/web/widgets.js +47 -13
  92. package/node_modules/@buddi/gateway/dist/web/widgets.js.map +1 -1
  93. package/node_modules/@buddi/install/dist/.tsbuildinfo +1 -1
  94. package/node_modules/@buddi/install/dist/app-layout.d.ts +4 -0
  95. package/node_modules/@buddi/install/dist/app-layout.d.ts.map +1 -1
  96. package/node_modules/@buddi/install/dist/app-layout.js +6 -0
  97. package/node_modules/@buddi/install/dist/app-layout.js.map +1 -1
  98. package/node_modules/@buddi/install/dist/cli-shim.d.ts +78 -0
  99. package/node_modules/@buddi/install/dist/cli-shim.d.ts.map +1 -0
  100. package/node_modules/@buddi/install/dist/cli-shim.js +219 -0
  101. package/node_modules/@buddi/install/dist/cli-shim.js.map +1 -0
  102. package/node_modules/@buddi/install/dist/doctor-timezone.js +1 -1
  103. package/node_modules/@buddi/install/dist/doctor-timezone.js.map +1 -1
  104. package/node_modules/@buddi/install/dist/environment.d.ts +90 -1
  105. package/node_modules/@buddi/install/dist/environment.d.ts.map +1 -1
  106. package/node_modules/@buddi/install/dist/environment.js +216 -3
  107. package/node_modules/@buddi/install/dist/environment.js.map +1 -1
  108. package/node_modules/@buddi/install/dist/kept-data.d.ts.map +1 -1
  109. package/node_modules/@buddi/install/dist/kept-data.js +3 -1
  110. package/node_modules/@buddi/install/dist/kept-data.js.map +1 -1
  111. package/node_modules/@buddi/install/dist/launcher.d.ts.map +1 -1
  112. package/node_modules/@buddi/install/dist/launcher.js +231 -6
  113. package/node_modules/@buddi/install/dist/launcher.js.map +1 -1
  114. package/node_modules/@buddi/install/dist/product-uninstall.d.ts +86 -0
  115. package/node_modules/@buddi/install/dist/product-uninstall.d.ts.map +1 -0
  116. package/node_modules/@buddi/install/dist/product-uninstall.js +150 -0
  117. package/node_modules/@buddi/install/dist/product-uninstall.js.map +1 -0
  118. package/node_modules/@buddi/install/dist/supervisor.d.ts +59 -1
  119. package/node_modules/@buddi/install/dist/supervisor.d.ts.map +1 -1
  120. package/node_modules/@buddi/install/dist/supervisor.js +288 -19
  121. package/node_modules/@buddi/install/dist/supervisor.js.map +1 -1
  122. package/node_modules/@buddi/install/dist/uninstall.d.ts +37 -1
  123. package/node_modules/@buddi/install/dist/uninstall.d.ts.map +1 -1
  124. package/node_modules/@buddi/install/dist/uninstall.js +150 -38
  125. package/node_modules/@buddi/install/dist/uninstall.js.map +1 -1
  126. package/node_modules/@buddi/runtime/dist/.tsbuildinfo +1 -1
  127. package/node_modules/@buddi/runtime/dist/codex-oauth.d.ts +6 -0
  128. package/node_modules/@buddi/runtime/dist/codex-oauth.d.ts.map +1 -1
  129. package/node_modules/@buddi/runtime/dist/codex-oauth.js +15 -0
  130. package/node_modules/@buddi/runtime/dist/codex-oauth.js.map +1 -1
  131. package/node_modules/@buddi/runtime/dist/openai.d.ts +9 -2
  132. package/node_modules/@buddi/runtime/dist/openai.d.ts.map +1 -1
  133. package/node_modules/@buddi/runtime/dist/openai.js +117 -16
  134. package/node_modules/@buddi/runtime/dist/openai.js.map +1 -1
  135. package/node_modules/@buddi/tool-browser/dist/.tsbuildinfo +1 -1
  136. package/node_modules/@buddi/tool-browser/dist/availability.d.ts +2 -2
  137. package/node_modules/@buddi/tool-browser/dist/availability.d.ts.map +1 -1
  138. package/node_modules/@buddi/tool-browser/dist/availability.js +2 -2
  139. package/node_modules/@buddi/tool-browser/dist/availability.js.map +1 -1
  140. package/node_modules/@buddi/tool-browser/dist/controller.d.ts +1 -1
  141. package/node_modules/@buddi/tool-browser/dist/controller.d.ts.map +1 -1
  142. package/node_modules/@buddi/tool-browser/dist/controller.js +1 -1
  143. package/node_modules/@buddi/tool-browser/dist/controller.js.map +1 -1
  144. package/node_modules/@zone-eu/mailsplit/package.json +4 -4
  145. package/node_modules/imapflow/CHANGELOG.md +7 -0
  146. package/node_modules/imapflow/dist/cjs/package-info.d.ts +1 -1
  147. package/node_modules/imapflow/dist/cjs/package-info.js +1 -1
  148. package/node_modules/imapflow/dist/esm/package-info.d.ts +1 -1
  149. package/node_modules/imapflow/dist/esm/package-info.js +1 -1
  150. package/node_modules/imapflow/package.json +4 -4
  151. package/node_modules/libbase64/CHANGELOG.md +7 -0
  152. package/node_modules/libbase64/lib/libbase64.js +110 -58
  153. package/node_modules/libbase64/package.json +1 -1
  154. package/node_modules/libmime/CHANGELOG.md +7 -0
  155. package/node_modules/libmime/package.json +2 -2
  156. package/package.json +2 -2
  157. package/packages/cli/dist/.tsbuildinfo +1 -1
  158. package/packages/cli/dist/args.d.ts +2 -0
  159. package/packages/cli/dist/args.d.ts.map +1 -1
  160. package/packages/cli/dist/args.js +11 -2
  161. package/packages/cli/dist/args.js.map +1 -1
  162. package/packages/cli/dist/backup/index.d.ts +3 -1
  163. package/packages/cli/dist/backup/index.d.ts.map +1 -1
  164. package/packages/cli/dist/backup/index.js +16 -1
  165. package/packages/cli/dist/backup/index.js.map +1 -1
  166. package/packages/cli/dist/commands.d.ts.map +1 -1
  167. package/packages/cli/dist/commands.js +6 -4
  168. package/packages/cli/dist/commands.js.map +1 -1
  169. package/packages/cli/dist/main.d.ts +4 -1
  170. package/packages/cli/dist/main.d.ts.map +1 -1
  171. package/packages/cli/dist/main.js +41 -3
  172. package/packages/cli/dist/main.js.map +1 -1
  173. package/packages/cli/dist/mode.d.ts +41 -0
  174. package/packages/cli/dist/mode.d.ts.map +1 -0
  175. package/packages/cli/dist/mode.js +103 -0
  176. package/packages/cli/dist/mode.js.map +1 -0
  177. package/packages/cli/dist/paths.d.ts +13 -1
  178. package/packages/cli/dist/paths.d.ts.map +1 -1
  179. package/packages/cli/dist/paths.js +23 -2
  180. package/packages/cli/dist/paths.js.map +1 -1
  181. package/packages/cli/dist/uninstall-cmd.d.ts +12 -2
  182. package/packages/cli/dist/uninstall-cmd.d.ts.map +1 -1
  183. package/packages/cli/dist/uninstall-cmd.js +63 -12
  184. package/packages/cli/dist/uninstall-cmd.js.map +1 -1
  185. package/packages/cli/dist/vault-cmd.d.ts +3 -0
  186. package/packages/cli/dist/vault-cmd.d.ts.map +1 -1
  187. package/packages/cli/dist/vault-cmd.js +26 -5
  188. package/packages/cli/dist/vault-cmd.js.map +1 -1
  189. package/packages/cli/package.json +4 -0
  190. package/packages/core/dist/.tsbuildinfo +1 -1
  191. package/packages/core/dist/uninstall.d.ts +18 -0
  192. package/packages/core/dist/uninstall.d.ts.map +1 -1
  193. package/packages/core/dist/uninstall.js +47 -0
  194. package/packages/core/dist/uninstall.js.map +1 -1
  195. package/packages/gateway/dist/.tsbuildinfo +1 -1
  196. package/packages/gateway/dist/codex-accounts.d.ts +2 -0
  197. package/packages/gateway/dist/codex-accounts.d.ts.map +1 -1
  198. package/packages/gateway/dist/codex-accounts.js +4 -4
  199. package/packages/gateway/dist/codex-accounts.js.map +1 -1
  200. package/packages/gateway/dist/serve.d.ts.map +1 -1
  201. package/packages/gateway/dist/serve.js +31 -0
  202. package/packages/gateway/dist/serve.js.map +1 -1
  203. package/packages/gateway/dist/web/api-routes.d.ts.map +1 -1
  204. package/packages/gateway/dist/web/api-routes.js +23 -3
  205. package/packages/gateway/dist/web/api-routes.js.map +1 -1
  206. package/packages/gateway/dist/web/cli-tool.d.ts +11 -0
  207. package/packages/gateway/dist/web/cli-tool.d.ts.map +1 -0
  208. package/packages/gateway/dist/web/cli-tool.js +27 -0
  209. package/packages/gateway/dist/web/cli-tool.js.map +1 -0
  210. package/packages/gateway/dist/web/extension.d.ts +37 -0
  211. package/packages/gateway/dist/web/extension.d.ts.map +1 -1
  212. package/packages/gateway/dist/web/extension.js +138 -11
  213. package/packages/gateway/dist/web/extension.js.map +1 -1
  214. package/packages/gateway/dist/web/lock.d.ts +18 -0
  215. package/packages/gateway/dist/web/lock.d.ts.map +1 -1
  216. package/packages/gateway/dist/web/lock.js +17 -2
  217. package/packages/gateway/dist/web/lock.js.map +1 -1
  218. package/packages/gateway/dist/web/onboarding.d.ts +19 -2
  219. package/packages/gateway/dist/web/onboarding.d.ts.map +1 -1
  220. package/packages/gateway/dist/web/onboarding.js +9 -2
  221. package/packages/gateway/dist/web/onboarding.js.map +1 -1
  222. package/packages/gateway/dist/web/passphrase-notice.d.ts +64 -0
  223. package/packages/gateway/dist/web/passphrase-notice.d.ts.map +1 -0
  224. package/packages/gateway/dist/web/passphrase-notice.js +112 -0
  225. package/packages/gateway/dist/web/passphrase-notice.js.map +1 -0
  226. package/packages/gateway/dist/web/server.d.ts.map +1 -1
  227. package/packages/gateway/dist/web/server.js +75 -7
  228. package/packages/gateway/dist/web/server.js.map +1 -1
  229. package/packages/gateway/dist/web/signed-out.d.ts +19 -0
  230. package/packages/gateway/dist/web/signed-out.d.ts.map +1 -1
  231. package/packages/gateway/dist/web/signed-out.js +61 -3
  232. package/packages/gateway/dist/web/signed-out.js.map +1 -1
  233. package/packages/gateway/dist/web/take-on.d.ts +28 -3
  234. package/packages/gateway/dist/web/take-on.d.ts.map +1 -1
  235. package/packages/gateway/dist/web/take-on.js +48 -3
  236. package/packages/gateway/dist/web/take-on.js.map +1 -1
  237. package/packages/gateway/dist/web/uninstall.d.ts +36 -0
  238. package/packages/gateway/dist/web/uninstall.d.ts.map +1 -0
  239. package/packages/gateway/dist/web/uninstall.js +116 -0
  240. package/packages/gateway/dist/web/uninstall.js.map +1 -0
  241. package/packages/gateway/dist/web/widgets.d.ts +2 -0
  242. package/packages/gateway/dist/web/widgets.d.ts.map +1 -1
  243. package/packages/gateway/dist/web/widgets.js +47 -13
  244. package/packages/gateway/dist/web/widgets.js.map +1 -1
  245. package/packages/install/dist/.tsbuildinfo +1 -1
  246. package/packages/install/dist/app-layout.d.ts +4 -0
  247. package/packages/install/dist/app-layout.d.ts.map +1 -1
  248. package/packages/install/dist/app-layout.js +6 -0
  249. package/packages/install/dist/app-layout.js.map +1 -1
  250. package/packages/install/dist/cli-shim.d.ts +78 -0
  251. package/packages/install/dist/cli-shim.d.ts.map +1 -0
  252. package/packages/install/dist/cli-shim.js +219 -0
  253. package/packages/install/dist/cli-shim.js.map +1 -0
  254. package/packages/install/dist/doctor-timezone.js +1 -1
  255. package/packages/install/dist/doctor-timezone.js.map +1 -1
  256. package/packages/install/dist/environment.d.ts +90 -1
  257. package/packages/install/dist/environment.d.ts.map +1 -1
  258. package/packages/install/dist/environment.js +216 -3
  259. package/packages/install/dist/environment.js.map +1 -1
  260. package/packages/install/dist/kept-data.d.ts.map +1 -1
  261. package/packages/install/dist/kept-data.js +3 -1
  262. package/packages/install/dist/kept-data.js.map +1 -1
  263. package/packages/install/dist/launcher.d.ts.map +1 -1
  264. package/packages/install/dist/launcher.js +231 -6
  265. package/packages/install/dist/launcher.js.map +1 -1
  266. package/packages/install/dist/product-uninstall.d.ts +86 -0
  267. package/packages/install/dist/product-uninstall.d.ts.map +1 -0
  268. package/packages/install/dist/product-uninstall.js +150 -0
  269. package/packages/install/dist/product-uninstall.js.map +1 -0
  270. package/packages/install/dist/supervisor.d.ts +59 -1
  271. package/packages/install/dist/supervisor.d.ts.map +1 -1
  272. package/packages/install/dist/supervisor.js +288 -19
  273. package/packages/install/dist/supervisor.js.map +1 -1
  274. package/packages/install/dist/uninstall.d.ts +37 -1
  275. package/packages/install/dist/uninstall.d.ts.map +1 -1
  276. package/packages/install/dist/uninstall.js +150 -38
  277. package/packages/install/dist/uninstall.js.map +1 -1
  278. package/packages/runtime/dist/.tsbuildinfo +1 -1
  279. package/packages/runtime/dist/codex-oauth.d.ts +6 -0
  280. package/packages/runtime/dist/codex-oauth.d.ts.map +1 -1
  281. package/packages/runtime/dist/codex-oauth.js +15 -0
  282. package/packages/runtime/dist/codex-oauth.js.map +1 -1
  283. package/packages/runtime/dist/openai.d.ts +9 -2
  284. package/packages/runtime/dist/openai.d.ts.map +1 -1
  285. package/packages/runtime/dist/openai.js +117 -16
  286. package/packages/runtime/dist/openai.js.map +1 -1
  287. package/packages/tools/browser/dist/.tsbuildinfo +1 -1
  288. package/packages/tools/browser/dist/availability.d.ts +2 -2
  289. package/packages/tools/browser/dist/availability.d.ts.map +1 -1
  290. package/packages/tools/browser/dist/availability.js +2 -2
  291. package/packages/tools/browser/dist/availability.js.map +1 -1
  292. package/packages/tools/browser/dist/controller.d.ts +1 -1
  293. package/packages/tools/browser/dist/controller.d.ts.map +1 -1
  294. package/packages/tools/browser/dist/controller.js +1 -1
  295. package/packages/tools/browser/dist/controller.js.map +1 -1
  296. package/packages/web/dist/assets/{index-DYfeUW-0.css → index-BrA8nWN-.css} +1 -1
  297. package/packages/web/dist/assets/index-lmUTDd2T.js +146 -0
  298. package/packages/web/dist/assets/{lottie_light-DB7hai8n.js → lottie_light-CQmEj1as.js} +1 -1
  299. package/packages/web/dist/build.json +1 -1
  300. package/packages/web/dist/index.html +2 -2
  301. package/packages/web/dist/precache.json +4 -4
  302. package/packages/web/dist/assets/index-CO4OawAX.js +0 -146
@@ -36,6 +36,8 @@ export const EXTENSION_SOCKET_PATH = '/api/extension/socket';
36
36
  /** A Chrome extension ID: thirty-two letters, a to p. */
37
37
  const EXTENSION_ORIGIN = /^chrome-extension:\/\/[a-p]{32}$/;
38
38
  const PAIR_TTL_MS = 5 * 60_000;
39
+ /** The least time between two new pairing codes for one extension id. */
40
+ export const PAIR_THROTTLE_MS = 2_000;
39
41
  /** Six digits are guessable; five tries are not enough to guess them. */
40
42
  const MAX_PAIR_ATTEMPTS = 5;
41
43
  /** A hello answered with a challenge that is never answered back. */
@@ -58,6 +60,23 @@ const MAX_FRAME_BYTES = 32 * 1024 * 1024;
58
60
  * Settings page asks for an update only below it.
59
61
  */
60
62
  export const MIN_EXTENSION_VERSION = '0.1.0';
63
+ /** `installation.json`'s moved web port, when it moved after `pairedAt`. */
64
+ export function portMovedSincePairing(env, pairedAt) {
65
+ const data = env.BUDDI_DATA_DIR?.trim();
66
+ if (!data || !pairedAt)
67
+ return undefined;
68
+ try {
69
+ const state = JSON.parse(readFileSync(path.join(data, 'installation.json'), 'utf8'));
70
+ const web = state.portMoved?.web;
71
+ const at = typeof state.portMoved?.at === 'string' ? Date.parse(state.portMoved.at) : NaN;
72
+ if (!web || typeof web.from !== 'number' || typeof web.to !== 'number' || !(at > Date.parse(pairedAt)))
73
+ return undefined;
74
+ return { from: web.from, to: web.to };
75
+ }
76
+ catch {
77
+ return undefined;
78
+ }
79
+ }
61
80
  export function extensionFile(env = process.env) {
62
81
  return path.join(dataDir(env), 'extension.json');
63
82
  }
@@ -74,6 +93,31 @@ export async function extensionDir(env = process.env) {
74
93
  catch { /* a development checkout, then */ }
75
94
  return path.join(REPO_ROOT, 'packages', 'extension', 'dist');
76
95
  }
96
+ /**
97
+ * Is this buddi running from a source checkout? A release ships the unpacked
98
+ * extension at the top of the installation (`scripts/release/build.mjs`); a
99
+ * checkout has `packages/extension` instead. `BUDDI_RUNTIME_CHECKOUT` (`1` or
100
+ * `0`) overrides it, for tests.
101
+ */
102
+ export async function runsFromCheckout(env = process.env) {
103
+ const forced = (env.BUDDI_RUNTIME_CHECKOUT ?? '').trim();
104
+ if (forced === '1')
105
+ return true;
106
+ if (forced === '0')
107
+ return false;
108
+ try {
109
+ await access(path.join(REPO_ROOT, 'extension'));
110
+ return false;
111
+ }
112
+ catch { /* not a release */ }
113
+ try {
114
+ await access(path.join(REPO_ROOT, 'packages', 'extension', 'package.json'));
115
+ return true;
116
+ }
117
+ catch {
118
+ return false;
119
+ }
120
+ }
77
121
  /** The paired extension, or undefined when this buddi has never been paired. */
78
122
  export async function readExtensionRecord(env = process.env) {
79
123
  try {
@@ -152,13 +196,27 @@ export class ExtensionEndpoint {
152
196
  #ping;
153
197
  #missed = 0;
154
198
  #server;
199
+ #logger;
200
+ /** Keeps a socket waiting for its code alive (see `#hello`). */
201
+ #pairPing;
202
+ /** Sockets that have said hello; a second one is refused unless this buddi asked for it (`rehello`). */
203
+ #greeted = new WeakSet();
204
+ /** When each extension id last got a new pairing code (`PAIR_THROTTLE_MS`). */
205
+ #lastPair = new Map();
155
206
  /** The three intervals are options so a test does not have to wait a minute. */
156
207
  constructor(options = {}) {
157
208
  this.options = options;
209
+ this.#logger = options.log;
158
210
  }
159
211
  #env() { return this.options.env ?? process.env; }
160
212
  #now() { return this.options.now?.() ?? Date.now(); }
161
- #log(line) { this.options.log?.(line); }
213
+ #log(line) { this.#logger?.(line); }
214
+ /**
215
+ * Where the socket's lines go, when the endpoint was made before the server
216
+ * that logs (the browser host asks for it first, at start-up). The first
217
+ * logger wins; a later one only fills an empty place.
218
+ */
219
+ useLog(log) { this.#logger ??= log; }
162
220
  /**
163
221
  * Take over this server's `upgrade` event.
164
222
  *
@@ -183,7 +241,9 @@ export class ExtensionEndpoint {
183
241
  attachPath(pathname, handle) {
184
242
  this.#routes.set(pathname, handle);
185
243
  }
186
- #refuse(socket, status, reason) {
244
+ #refuse(socket, status, reason, why) {
245
+ if (why)
246
+ this.#log(`extension: socket refused (${status}): ${why}`);
187
247
  socket.write(`HTTP/1.1 ${status} ${reason}\r\nConnection: close\r\n\r\n`);
188
248
  socket.destroy();
189
249
  }
@@ -198,13 +258,16 @@ export class ExtensionEndpoint {
198
258
  // not this machine, whatever it says about itself.
199
259
  // And by the listener: the ingress listener's sockets are loopback too,
200
260
  // and a relay frame has none (specs/trusted-access.md §7.5).
201
- if (arrivalOf(req) !== 'main' || !isLoopbackAddress(req.socket?.remoteAddress))
202
- return this.#refuse(socket, 403, 'Forbidden');
261
+ if (arrivalOf(req) !== 'main')
262
+ return this.#refuse(socket, 403, 'Forbidden', 'not on the main listener');
263
+ if (!isLoopbackAddress(req.socket?.remoteAddress))
264
+ return this.#refuse(socket, 403, 'Forbidden', 'not from this machine');
203
265
  if (Object.keys(req.headers).some((key) => key === 'forwarded' || key === 'x-real-ip' || key.startsWith('x-forwarded-') || key.startsWith('tailscale-')))
204
- return this.#refuse(socket, 403, 'Forbidden');
266
+ return this.#refuse(socket, 403, 'Forbidden', 'forwarded by a proxy');
205
267
  const origin = req.headers.origin;
206
268
  if (typeof origin !== 'string' || !EXTENSION_ORIGIN.test(origin))
207
- return this.#refuse(socket, 403, 'Forbidden');
269
+ return this.#refuse(socket, 403, 'Forbidden', `not a Chrome extension origin (${typeof origin === 'string' ? origin.slice(0, 80) : 'none'})`);
270
+ this.#log(`extension: socket accepted from ${extensionIdOf(origin)}`);
208
271
  this.#wss.handleUpgrade(req, socket, head, (ws) => this.#accept(ws, extensionIdOf(origin)));
209
272
  }
210
273
  #accept(ws, extensionId) {
@@ -222,10 +285,12 @@ export class ExtensionEndpoint {
222
285
  }
223
286
  void this.#frame(ws, frame, extensionId).catch((error) => this.#log(`extension: ${error instanceof Error ? error.message : String(error)}`));
224
287
  });
225
- ws.on('close', () => {
288
+ ws.on('close', (code) => {
226
289
  clearTimeout(hello);
227
- if (this.#pair?.socket === ws)
290
+ if (this.#pair?.socket === ws) {
291
+ this.#log(`extension: ${extensionId} left while waiting for its code (${code})`);
228
292
  this.#clearPair();
293
+ }
229
294
  if (this.#challenge?.socket === ws)
230
295
  this.#clearChallenge();
231
296
  if (this.#socket === ws)
@@ -241,8 +306,21 @@ export class ExtensionEndpoint {
241
306
  this.#missed = 0;
242
307
  return;
243
308
  }
244
- if (frame.type === 'hello')
309
+ if (frame.type === 'hello') {
310
+ // One hello per connection: the handshake starts over on a new socket,
311
+ // or on this one only after this buddi sent `rehello`.
312
+ if (this.#greeted.has(ws)) {
313
+ this.#log(`extension: ${extensionId} said hello twice on one connection; closed`);
314
+ if (this.#pair?.socket === ws)
315
+ this.#clearPair();
316
+ if (this.#challenge?.socket === ws)
317
+ this.#clearChallenge();
318
+ ws.close(1008, 'one hello per connection');
319
+ return;
320
+ }
321
+ this.#greeted.add(ws);
245
322
  return this.#hello(ws, frame, extensionId);
323
+ }
246
324
  if (frame.type === 'auth')
247
325
  return this.#auth(ws, frame, extensionId);
248
326
  if (frame.type === 'result')
@@ -345,6 +423,8 @@ export class ExtensionEndpoint {
345
423
  pageScaleFactor: number('pageScaleFactor') || 1, offsetTop: number('offsetTop'), scrollOffsetX: number('scrollOffsetX'), scrollOffsetY: number('scrollOffsetY') } });
346
424
  }
347
425
  #clearPair() {
426
+ clearInterval(this.#pairPing);
427
+ this.#pairPing = undefined;
348
428
  if (!this.#pair)
349
429
  return;
350
430
  clearTimeout(this.#pair.timer);
@@ -376,6 +456,7 @@ export class ExtensionEndpoint {
376
456
  // One browser per buddi: a different unpacked copy is a different browser,
377
457
  // and it pairs only after the owner has forgotten this one.
378
458
  if (record?.extensionId && record.extensionId !== extensionId) {
459
+ this.#log(`extension: hello refused from ${extensionId}: this buddi is paired with ${record.extensionId}`);
379
460
  ws.close(1008, 'this buddi is paired with another browser');
380
461
  return;
381
462
  }
@@ -387,14 +468,29 @@ export class ExtensionEndpoint {
387
468
  this.#clearChallenge();
388
469
  // It saw the proof and said nothing: start the handshake over rather
389
470
  // than leave a half-open socket nobody can use.
471
+ this.#greeted.delete(ws);
390
472
  ws.send(JSON.stringify({ type: 'rehello', reason: 'That handshake went unanswered.' }));
391
473
  }, this.options.authTimeoutMs ?? AUTH_TIMEOUT_MS);
392
474
  timer.unref?.();
393
475
  this.#challenge = { socket: ws, nonce, extension: version, extensionId, timer };
476
+ this.#log(`extension: hello from ${extensionId} (${version || 'no version'}), paired: proof sent`);
394
477
  ws.send(JSON.stringify({ type: 'challenge', proof: pairingProof(record.tokenHash, nonce), installation: this.#installation() }));
395
478
  return;
396
479
  }
397
480
  // No pairing, or one this buddi has forgotten: ask for the owner instead.
481
+ // At most one new code every two seconds per extension: a reconnect loop
482
+ // must not churn through codes (and the owner's screen).
483
+ const now = this.#now(), throttle = this.options.pairThrottleMs ?? PAIR_THROTTLE_MS;
484
+ const last = this.#lastPair.get(extensionId);
485
+ if (last !== undefined && now - last < throttle) {
486
+ this.#log(`extension: ${extensionId} asked for a new pairing code too soon; closed`);
487
+ ws.close(1008, 'too many pairing requests; try again in a moment');
488
+ return;
489
+ }
490
+ for (const [id, at] of this.#lastPair)
491
+ if (now - at >= throttle)
492
+ this.#lastPair.delete(id);
493
+ this.#lastPair.set(extensionId, now);
398
494
  const code = pairCode();
399
495
  const timer = setTimeout(() => {
400
496
  if (this.#pair?.socket !== ws)
@@ -404,6 +500,25 @@ export class ExtensionEndpoint {
404
500
  }, PAIR_TTL_MS);
405
501
  timer.unref?.();
406
502
  this.#pair = { code, expiresAt: this.#now() + PAIR_TTL_MS, socket: ws, extension: version, extensionId, attempts: 0, timer };
503
+ /*
504
+ * Ping the socket while it waits. A Manifest V3 service worker is
505
+ * stopped after thirty seconds without an event, an open WebSocket or
506
+ * not, and only traffic on the socket counts as one. Before this the
507
+ * worker died half a minute into pairing: the popup kept showing its code,
508
+ * the socket closed, and the owner typed a code no browser was waiting
509
+ * behind ("No browser is waiting to be paired").
510
+ */
511
+ clearInterval(this.#pairPing);
512
+ this.#pairPing = setInterval(() => {
513
+ if (this.#pair?.socket !== ws || ws.readyState !== ws.OPEN)
514
+ return;
515
+ try {
516
+ ws.send(JSON.stringify({ type: 'ping' }));
517
+ }
518
+ catch { /* the close handler says so */ }
519
+ }, this.options.pingMs ?? PING_MS);
520
+ this.#pairPing.unref?.();
521
+ this.#log(`extension: hello from ${extensionId} (${version || 'no version'}), ${record && frame.paired === true ? 'its token is not usable here' : record ? 'it holds no token' : 'no pairing yet'}: waiting for the code`);
407
522
  ws.send(JSON.stringify({ type: 'pair', code }));
408
523
  }
409
524
  /** The second half of the handshake: the token, now that the proof was accepted. */
@@ -414,6 +529,7 @@ export class ExtensionEndpoint {
414
529
  const token = typeof frame.token === 'string' ? frame.token : '';
415
530
  const record = await this.#read();
416
531
  if (!record || token === '' || !sameHash(record.tokenHash, hashToken(token))) {
532
+ this.#log(`extension: ${extensionId} sent a token that is not this buddi's`);
417
533
  this.#clearChallenge();
418
534
  ws.close(1008, 'that token is not this buddi’s');
419
535
  return;
@@ -422,6 +538,7 @@ export class ExtensionEndpoint {
422
538
  this.#adopt(ws, { ...record, extension: challenge.extension || record.extension, extensionId,
423
539
  lastSeenAt: new Date(this.#now()).toISOString() });
424
540
  await this.#announce(ws, { type: 'paired', installation: this.#installation() });
541
+ this.#log(`extension: ${extensionId} reconnected`);
425
542
  await this.#write(this.#record);
426
543
  }
427
544
  #result(ws, frame) {
@@ -599,8 +716,12 @@ export class ExtensionEndpoint {
599
716
  const record = await this.#read();
600
717
  const pending = !!this.#pair && this.#pair.expiresAt > this.#now();
601
718
  this.#buddiVersion ??= currentVersion(this.#env()).then((version) => version.split(' ')[0] || version);
602
- return { connected: this.connected(), pending, path: await extensionDir(this.#env()), buddi: await this.#buddiVersion, extensionMinimum: MIN_EXTENSION_VERSION,
603
- ...(record ? { pairedAt: record.pairedAt, extension: record.extension, lastSeenAt: record.lastSeenAt } : {}) };
719
+ return { connected: this.connected(), pending, path: await extensionDir(this.#env()), checkout: await runsFromCheckout(this.#env()), buddi: await this.#buddiVersion, extensionMinimum: MIN_EXTENSION_VERSION,
720
+ ...(record ? { pairedAt: record.pairedAt, extension: record.extension, lastSeenAt: record.lastSeenAt } : {}),
721
+ ...(() => {
722
+ const moved = portMovedSincePairing(this.#env(), record?.pairedAt);
723
+ return moved ? { portMoved: moved } : {};
724
+ })() };
604
725
  }
605
726
  /** The owner typed the code the popup showed. Spaces and dashes are theirs. */
606
727
  async pair(input) {
@@ -610,6 +731,7 @@ export class ExtensionEndpoint {
610
731
  return { status: 400, body: { error: 'Type the six digits the buddi extension is showing.' } };
611
732
  const pending = this.#pair;
612
733
  if (!pending || pending.expiresAt <= this.#now()) {
734
+ this.#log('extension: a code was typed with no browser waiting');
613
735
  this.#clearPair();
614
736
  return { status: 409, body: { error: 'No browser is waiting to be paired. Press Connect in the buddi extension, then type the code it shows.' } };
615
737
  }
@@ -620,6 +742,7 @@ export class ExtensionEndpoint {
620
742
  if (pending.attempts >= MAX_PAIR_ATTEMPTS) {
621
743
  const socket = pending.socket;
622
744
  this.#clearPair();
745
+ this.#greeted.delete(socket);
623
746
  if (socket.readyState === socket.OPEN)
624
747
  socket.send(JSON.stringify({ type: 'rehello', reason: 'Too many wrong pairing codes.' }));
625
748
  return { status: 429, body: { error: 'Too many wrong codes. Press Connect in the buddi extension for a new one.' } };
@@ -631,6 +754,7 @@ export class ExtensionEndpoint {
631
754
  this.#adopt(pending.socket, { tokenHash: hashToken(token), pairedAt: now, extension: pending.extension, extensionId: pending.extensionId, lastSeenAt: now });
632
755
  await this.#write(this.#record);
633
756
  await this.#announce(pending.socket, { type: 'paired', token, installation: this.#installation() });
757
+ this.#log(`extension: paired with ${pending.extensionId}`);
634
758
  return { status: 200, body: await this.view() };
635
759
  }
636
760
  /** Forget this browser: the record goes, and so does the live socket. */
@@ -795,6 +919,9 @@ export function extensionEndpoint(env = process.env, log) {
795
919
  endpoint = new ExtensionEndpoint({ env, ...(log ? { log } : {}) });
796
920
  endpoints.set(key, endpoint);
797
921
  }
922
+ else if (log) {
923
+ endpoint.useLog(log);
924
+ }
798
925
  return endpoint;
799
926
  }
800
927
  //# sourceMappingURL=extension.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"extension.js","sourceRoot":"","sources":["../../src/web/extension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extension.js","sourceRoot":"","sources":["../../src/web/extension.ts"],"names":[],"mappings":"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"}
@@ -155,11 +155,29 @@ export declare function createLock(deps: LockDeps): {
155
155
  sha256: string;
156
156
  };
157
157
  } | null>;
158
+ /**
159
+ * Step-up for one sensitive read (the backup passphrase's Reveal): the
160
+ * PIN checked and counted like an unlock try. `{ ok: true }` when there
161
+ * is no PIN at all; then the signed-in session is all there is.
162
+ */
163
+ verify(pin: unknown): Promise<{
164
+ ok: true;
165
+ } | {
166
+ ok: false;
167
+ status: number;
168
+ body: Record<string, unknown>;
169
+ }>;
158
170
  /** Called with each session the moment it locks. Returns the unsubscribe. */
159
171
  onLocked(listener: Listener): () => void;
160
172
  invalidate: () => void;
161
173
  };
162
174
  export type LockService = ReturnType<typeof createLock>;
175
+ /**
176
+ * The lock screen's own placements as it shows them: in their order, none
177
+ * that is sensitive (the service never places one there), only those with
178
+ * something to draw, at most four.
179
+ */
180
+ export declare function lockWidgets(service: WidgetsService | undefined, hour?: HourCycle, timeFormat?: '12h' | '24h' | null): Promise<LockScreenView['widgets']>;
163
181
  /**
164
182
  * The clock as the lock screen draws it: the time and date formats with the
165
183
  * owner's Profile applied, and the second zone with its label and zone — a
@@ -1 +1 @@
1
- {"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../src/web/lock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../src/web/lock.ts"],"names":[],"mappings":"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"}
@@ -422,6 +422,19 @@ export function createLock(deps) {
422
422
  startLocked,
423
423
  /** The /api/lock* routes; null for a path that is not one. */
424
424
  route,
425
+ /**
426
+ * Step-up for one sensitive read (the backup passphrase's Reveal): the
427
+ * PIN checked and counted like an unlock try. `{ ok: true }` when there
428
+ * is no PIN at all; then the signed-in session is all there is.
429
+ */
430
+ async verify(pin) {
431
+ const state = await current(true);
432
+ if (!state.pin)
433
+ return { ok: true };
434
+ if (!isValidPin(pin))
435
+ return { ok: false, status: 403, body: { error: 'Type your PIN to see it.', needsPin: true } };
436
+ return await check(pin);
437
+ },
425
438
  /** Called with each session the moment it locks. Returns the unsubscribe. */
426
439
  onLocked(listener) {
427
440
  listeners.add(listener);
@@ -448,7 +461,7 @@ async function readImage(pool) {
448
461
  * that is sensitive (the service never places one there), only those with
449
462
  * something to draw, at most four.
450
463
  */
451
- async function lockWidgets(service, hour, timeFormat) {
464
+ export async function lockWidgets(service, hour, timeFormat) {
452
465
  if (!service)
453
466
  return [];
454
467
  try {
@@ -461,7 +474,9 @@ async function lockWidgets(service, hour, timeFormat) {
461
474
  const view = answer.views[placement.key];
462
475
  if (!info || info.sensitive || !view || !view.body || (view.state !== 'ok' && view.state !== 'stale'))
463
476
  continue;
464
- out.push({ key: placement.key, id: info.id, title: placement.label, size: placement.size, view: { state: view.state, body: view.body } });
477
+ // A stale body keeps its mark and when it was made: the screen says "from 9:12" rather than passing it off as now.
478
+ const since = view.state === 'stale' && view.updatedAt ? { updatedAt: view.updatedAt } : {};
479
+ out.push({ key: placement.key, id: info.id, title: placement.label, size: placement.size, view: { state: view.state, body: view.body, ...since } });
465
480
  }
466
481
  return out;
467
482
  }