cursedbelt-server 4.12.0 → 4.13.1

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 (475) hide show
  1. package/dist/server/_bunOnly.d.ts +1 -0
  2. package/dist/server/_bunOnly.js +12 -0
  3. package/dist/server/activity/index.d.ts +4 -4
  4. package/dist/server/activity/index.js +3 -3
  5. package/dist/server/activity/migrations.d.ts +1 -1
  6. package/dist/server/activity/shareSource.d.ts +1 -1
  7. package/dist/server/activity/shareSource.js +1 -1
  8. package/dist/server/activity/store.js +2 -2
  9. package/dist/server/analytics/index.d.ts +2 -2
  10. package/dist/server/analytics/index.js +2 -2
  11. package/dist/server/app.d.ts +4 -4
  12. package/dist/server/app.js +6 -6
  13. package/dist/server/audit/index.d.ts +2 -2
  14. package/dist/server/audit/index.js +2 -2
  15. package/dist/server/audit/migrations.d.ts +1 -1
  16. package/dist/server/audit/sqliteSink.js +2 -2
  17. package/dist/server/audit/sqliteSink.test.js +1 -1
  18. package/dist/server/auth/csrf.js +1 -1
  19. package/dist/server/auth/fileTokenSigner.d.ts +1 -1
  20. package/dist/server/auth/getOnly.d.ts +1 -1
  21. package/dist/server/auth/getOnly.js +1 -1
  22. package/dist/server/auth/index.d.ts +12 -12
  23. package/dist/server/auth/index.js +11 -11
  24. package/dist/server/auth/jwt.d.ts +1 -1
  25. package/dist/server/auth/middleware.d.ts +1 -1
  26. package/dist/server/auth/middleware.js +3 -3
  27. package/dist/server/auth/password.js +4 -6
  28. package/dist/server/auth/sessionStore.d.ts +2 -2
  29. package/dist/server/auth/types.d.ts +1 -1
  30. package/dist/server/bench/assert.d.ts +1 -1
  31. package/dist/server/bench/assert.js +1 -1
  32. package/dist/server/bench/cpuBudget.d.ts +4 -4
  33. package/dist/server/bench/cpuBudget.js +3 -3
  34. package/dist/server/bench/index.d.ts +6 -6
  35. package/dist/server/bench/index.js +6 -6
  36. package/dist/server/bench/recorder.d.ts +2 -2
  37. package/dist/server/bench/recorder.js +1 -1
  38. package/dist/server/bench/runBench.d.ts +2 -2
  39. package/dist/server/ctgr.d.ts +1 -1
  40. package/dist/server/ctgr.js +1 -1
  41. package/dist/server/d1/fakeD1.d.ts +1 -1
  42. package/dist/server/d1/fakeD1.js +1 -1
  43. package/dist/server/d1/index.d.ts +8 -8
  44. package/dist/server/d1/index.js +8 -8
  45. package/dist/server/d1/invocation.d.ts +1 -1
  46. package/dist/server/d1/invocation.js +2 -2
  47. package/dist/server/d1/kysely.d.ts +2 -2
  48. package/dist/server/d1/kysely.js +2 -2
  49. package/dist/server/d1/limits.d.ts +1 -1
  50. package/dist/server/d1/limits.js +1 -1
  51. package/dist/server/d1/local.d.ts +1 -1
  52. package/dist/server/d1/local.js +3 -3
  53. package/dist/server/d1/localBackup.d.ts +1 -1
  54. package/dist/server/d1/localBackup.js +2 -2
  55. package/dist/server/d1/remote.d.ts +1 -1
  56. package/dist/server/d1/remote.js +3 -3
  57. package/dist/server/d1/scheduling.d.ts +1 -1
  58. package/dist/server/d1/values.d.ts +1 -1
  59. package/dist/server/d1/values.js +1 -1
  60. package/dist/server/db/kysely.d.ts +1 -1
  61. package/dist/server/dropzone/index.d.ts +2 -2
  62. package/dist/server/dropzone/index.js +2 -2
  63. package/dist/server/guard/argon2Binding.js +1 -1
  64. package/dist/server/guard/index.d.ts +5 -5
  65. package/dist/server/guard/index.js +5 -5
  66. package/dist/server/guard/kdfWorker.d.ts +1 -1
  67. package/dist/server/guard/kdfWorker.js +3 -3
  68. package/dist/server/guard/kdfWorkerEntry.js +1 -1
  69. package/dist/server/guard/passwordVerifier.d.ts +1 -1
  70. package/dist/server/guard/passwordVerifier.js +4 -4
  71. package/dist/server/guard/sessionSigner.d.ts +2 -2
  72. package/dist/server/guard/sessionSigner.js +1 -1
  73. package/dist/server/incidents/checks.d.ts +2 -2
  74. package/dist/server/incidents/index.d.ts +8 -8
  75. package/dist/server/incidents/index.js +8 -8
  76. package/dist/server/incidents/migrations.d.ts +1 -1
  77. package/dist/server/incidents/notifier.d.ts +3 -3
  78. package/dist/server/incidents/reporter.d.ts +1 -1
  79. package/dist/server/incidents/routes.d.ts +4 -4
  80. package/dist/server/incidents/routes.js +1 -1
  81. package/dist/server/incidents/store.d.ts +1 -1
  82. package/dist/server/incidents/store.js +3 -3
  83. package/dist/server/index.d.ts +26 -26
  84. package/dist/server/index.js +23 -23
  85. package/dist/server/jobs/fireQueue.d.ts +1 -1
  86. package/dist/server/jobs/fireQueue.js +3 -3
  87. package/dist/server/jobs/index.d.ts +7 -7
  88. package/dist/server/jobs/index.js +7 -7
  89. package/dist/server/jobs/logger.d.ts +1 -1
  90. package/dist/server/jobs/polling.d.ts +1 -1
  91. package/dist/server/jobs/polling.js +1 -1
  92. package/dist/server/jobs/runner.d.ts +1 -1
  93. package/dist/server/jobs/runner.js +5 -5
  94. package/dist/server/master-lock/accountsPage.d.ts +1 -1
  95. package/dist/server/master-lock/accountsPage.js +1 -1
  96. package/dist/server/master-lock/guard.d.ts +2 -2
  97. package/dist/server/master-lock/guard.js +2 -2
  98. package/dist/server/master-lock/index.d.ts +7 -7
  99. package/dist/server/master-lock/index.js +7 -7
  100. package/dist/server/master-lock/masterLock.js +1 -11
  101. package/dist/server/master-lock/principals.d.ts +1 -1
  102. package/dist/server/master-lock/principals.js +1 -1
  103. package/dist/server/master-lock/seed.d.ts +1 -1
  104. package/dist/server/master-lock/seed.js +1 -1
  105. package/dist/server/master-lock/store.d.ts +1 -1
  106. package/dist/server/media-bun/index.d.ts +3 -3
  107. package/dist/server/media-bun/index.js +3 -3
  108. package/dist/server/media-bun/video.d.ts +1 -1
  109. package/dist/server/media-bun/video.js +1 -1
  110. package/dist/server/metrics/telemetrySink.d.ts +1 -1
  111. package/dist/server/metrics/telemetrySink.js +1 -1
  112. package/dist/server/middleware/correlationId.d.ts +1 -1
  113. package/dist/server/middleware/errorEnvelope.d.ts +1 -1
  114. package/dist/server/middleware/errorEnvelope.js +1 -1
  115. package/dist/server/middleware/index.d.ts +10 -10
  116. package/dist/server/middleware/index.js +10 -10
  117. package/dist/server/middleware/rateLimit.js +1 -1
  118. package/dist/server/middleware/requestLogger.d.ts +3 -3
  119. package/dist/server/middleware/requestLogger.js +3 -3
  120. package/dist/server/middleware/zValidator.d.ts +1 -1
  121. package/dist/server/middleware/zValidator.js +1 -1
  122. package/dist/server/migration/runner.d.ts +1 -1
  123. package/dist/server/net/outboundGuard.js +1 -1
  124. package/dist/server/notifications/index.d.ts +7 -7
  125. package/dist/server/notifications/index.js +4 -4
  126. package/dist/server/notifications/migrations.d.ts +1 -1
  127. package/dist/server/notifications/routes.d.ts +1 -1
  128. package/dist/server/notifications/service.d.ts +1 -1
  129. package/dist/server/notifications/service.js +2 -2
  130. package/dist/server/resume/index.d.ts +2 -2
  131. package/dist/server/resume/index.js +2 -2
  132. package/dist/server/resume/routes.d.ts +1 -1
  133. package/dist/server/resume/routes.js +1 -1
  134. package/dist/server/retention/archive.js +1 -1
  135. package/dist/server/retention/fleet.d.ts +2 -2
  136. package/dist/server/retention/fleet.js +2 -2
  137. package/dist/server/retention/index.d.ts +6 -6
  138. package/dist/server/retention/index.js +6 -6
  139. package/dist/server/retention/store.d.ts +1 -1
  140. package/dist/server/retention/store.js +2 -2
  141. package/dist/server/retention/sweeper.d.ts +3 -3
  142. package/dist/server/retention/sweeper.js +2 -2
  143. package/dist/server/retention/target.d.ts +3 -3
  144. package/dist/server/retention/target.js +2 -2
  145. package/dist/server/search/index.d.ts +2 -2
  146. package/dist/server/search/index.js +2 -2
  147. package/dist/server/search/pgSearchProvider.js +2 -2
  148. package/dist/server/search/pgSearchProvider.pg.test.js +2 -2
  149. package/dist/server/sharing/index.d.ts +8 -8
  150. package/dist/server/sharing/index.js +5 -5
  151. package/dist/server/sharing/migrations.d.ts +1 -1
  152. package/dist/server/sharing/router.d.ts +1 -1
  153. package/dist/server/sharing/sql.js +1 -1
  154. package/dist/server/sharing/store.js +3 -3
  155. package/dist/server/sqlite/browse.js +1 -1
  156. package/dist/server/sqlite/export.js +1 -1
  157. package/dist/server/sqlite/import.js +1 -1
  158. package/dist/server/sqlite/index.d.ts +9 -9
  159. package/dist/server/sqlite/index.js +9 -9
  160. package/dist/server/sqlite/stats.js +1 -1
  161. package/dist/server/sqlite/viewer.js +2 -2
  162. package/dist/server/storage/binaryServerProcessing.d.ts +1 -1
  163. package/dist/server/storage/binaryServerProcessing.js +2 -2
  164. package/dist/server/storage/binaryServerStore.d.ts +2 -2
  165. package/dist/server/storage/binaryStore.d.ts +1 -1
  166. package/dist/server/storage/binaryStoreFake.d.ts +1 -1
  167. package/dist/server/storage/diskStore.d.ts +1 -1
  168. package/dist/server/storage/files/adapter.d.ts +4 -4
  169. package/dist/server/storage/files/adapter.js +1 -1
  170. package/dist/server/storage/files/catalogue.d.ts +3 -3
  171. package/dist/server/storage/files/catalogue.js +6 -6
  172. package/dist/server/storage/files/chunkedUpload.d.ts +3 -3
  173. package/dist/server/storage/files/chunkedUpload.js +1 -1
  174. package/dist/server/storage/files/fileRoutes.d.ts +4 -4
  175. package/dist/server/storage/files/fileRoutes.js +3 -3
  176. package/dist/server/storage/files/index.d.ts +9 -9
  177. package/dist/server/storage/files/index.js +8 -8
  178. package/dist/server/storage/files/migrations.d.ts +1 -1
  179. package/dist/server/storage/files/stack.d.ts +7 -7
  180. package/dist/server/storage/files/stack.js +10 -10
  181. package/dist/server/storage/files/storageOps.d.ts +1 -1
  182. package/dist/server/storage/files/types.d.ts +1 -1
  183. package/dist/server/storage/imageThumbnail.js +1 -1
  184. package/dist/server/storage/index.d.ts +15 -15
  185. package/dist/server/storage/index.js +14 -14
  186. package/dist/server/storage/mountMediaRoutes.d.ts +3 -3
  187. package/dist/server/storage/mountMediaRoutes.js +2 -2
  188. package/dist/server/storage/objectStoreMediaStore.d.ts +1 -1
  189. package/dist/server/storage/s3ObjectStore.js +1 -1
  190. package/dist/server/storage/sources.d.ts +2 -2
  191. package/dist/server/storage/sources.js +2 -2
  192. package/dist/server/storage/streamRange.d.ts +1 -1
  193. package/dist/server/storage/streamToken.js +1 -1
  194. package/dist/server/storage/videoProcessor.d.ts +1 -1
  195. package/dist/server/storage/videoProcessor.js +2 -2
  196. package/dist/server/sync/engine.d.ts +2 -2
  197. package/dist/server/sync/engine.js +1 -1
  198. package/dist/server/sync/http.d.ts +4 -4
  199. package/dist/server/sync/http.js +3 -3
  200. package/dist/server/sync/index.d.ts +11 -11
  201. package/dist/server/sync/index.js +11 -11
  202. package/dist/server/sync/opLog.d.ts +1 -1
  203. package/dist/server/sync/signal.d.ts +1 -1
  204. package/dist/server/sync/timer.d.ts +3 -3
  205. package/dist/server/sync/timer.js +1 -1
  206. package/dist/server/sync/tokens.d.ts +1 -1
  207. package/dist/server/sync/tokens.js +3 -2
  208. package/dist/server/ws/eventBus.d.ts +1 -1
  209. package/dist/server/ws/hub.d.ts +1 -1
  210. package/dist/server/ws/hub.js +3 -3
  211. package/dist/server/ws/index.d.ts +5 -5
  212. package/dist/server/ws/index.js +4 -4
  213. package/dist/server/ws/presence.d.ts +1 -1
  214. package/dist/server/ws/room.d.ts +1 -1
  215. package/dist/server/ws/types.d.ts +1 -1
  216. package/package.json +9 -9
  217. package/src/publicSurface.spec.ts +1 -1
  218. package/src/server/_bunOnly.ts +15 -0
  219. package/src/server/activity/index.ts +4 -4
  220. package/src/server/activity/migrations.ts +1 -1
  221. package/src/server/activity/shareSource.ts +2 -2
  222. package/src/server/activity/store.spec.ts +3 -3
  223. package/src/server/activity/store.ts +2 -2
  224. package/src/server/analytics/index.ts +2 -2
  225. package/src/server/analytics/injectedScripts.spec.ts +3 -3
  226. package/src/server/analytics/webAnalytics.spec.ts +1 -1
  227. package/src/server/app.spec.ts +9 -9
  228. package/src/server/app.ts +7 -7
  229. package/src/server/audit/index.ts +2 -2
  230. package/src/server/audit/migrations.ts +1 -1
  231. package/src/server/audit/sqliteSink.test.ts +1 -1
  232. package/src/server/audit/sqliteSink.ts +2 -2
  233. package/src/server/auth/cookie.spec.ts +1 -1
  234. package/src/server/auth/csrf.spec.ts +1 -1
  235. package/src/server/auth/csrf.ts +1 -1
  236. package/src/server/auth/fileTokenSigner.ts +1 -1
  237. package/src/server/auth/getOnly.spec.ts +2 -2
  238. package/src/server/auth/getOnly.ts +2 -2
  239. package/src/server/auth/index.ts +12 -12
  240. package/src/server/auth/jwt.spec.ts +2 -2
  241. package/src/server/auth/jwt.ts +1 -1
  242. package/src/server/auth/loginThrottle.spec.ts +1 -1
  243. package/src/server/auth/middleware.spec.ts +7 -7
  244. package/src/server/auth/middleware.ts +4 -4
  245. package/src/server/auth/password.spec.ts +1 -1
  246. package/src/server/auth/password.ts +4 -5
  247. package/src/server/auth/sessionStore.spec.ts +3 -3
  248. package/src/server/auth/sessionStore.ts +3 -3
  249. package/src/server/auth/totp.spec.ts +1 -1
  250. package/src/server/auth/types.ts +1 -1
  251. package/src/server/auth/vault.spec.ts +1 -1
  252. package/src/server/bench/assert.ts +2 -2
  253. package/src/server/bench/budget.spec.ts +2 -2
  254. package/src/server/bench/cpuBudget.spec.ts +6 -6
  255. package/src/server/bench/cpuBudget.ts +5 -5
  256. package/src/server/bench/cpuClock.spec.ts +2 -2
  257. package/src/server/bench/index.ts +6 -6
  258. package/src/server/bench/recorder.ts +2 -2
  259. package/src/server/bench/runBench.ts +2 -2
  260. package/src/server/ctgr.spec.ts +2 -2
  261. package/src/server/ctgr.ts +2 -2
  262. package/src/server/d1/backup.spec.ts +2 -2
  263. package/src/server/d1/fakeD1.ts +2 -2
  264. package/src/server/d1/index.ts +8 -8
  265. package/src/server/d1/invocation.spec.ts +6 -6
  266. package/src/server/d1/invocation.ts +2 -2
  267. package/src/server/d1/kysely.spec.ts +5 -5
  268. package/src/server/d1/kysely.ts +3 -3
  269. package/src/server/d1/limits.spec.ts +3 -3
  270. package/src/server/d1/limits.ts +1 -1
  271. package/src/server/d1/local.ts +3 -3
  272. package/src/server/d1/localBackup.ts +3 -3
  273. package/src/server/d1/remote.ts +3 -3
  274. package/src/server/d1/sameShape.spec.ts +4 -4
  275. package/src/server/d1/scheduling.spec.ts +1 -1
  276. package/src/server/d1/scheduling.ts +1 -1
  277. package/src/server/d1/values.ts +1 -1
  278. package/src/server/db/kysely.spec.ts +1 -1
  279. package/src/server/db/kysely.ts +1 -1
  280. package/src/server/dropzone/index.ts +2 -2
  281. package/src/server/dropzone/scan.spec.ts +1 -1
  282. package/src/server/errors.spec.ts +1 -1
  283. package/src/server/guard/argon2Binding.spec.ts +1 -1
  284. package/src/server/guard/argon2Binding.ts +1 -1
  285. package/src/server/guard/argon2Kat.spec.ts +1 -1
  286. package/src/server/guard/guard.spec.ts +3 -3
  287. package/src/server/guard/index.ts +5 -5
  288. package/src/server/guard/kdfWorker.spec.ts +3 -3
  289. package/src/server/guard/kdfWorker.ts +3 -3
  290. package/src/server/guard/kdfWorkerEntry.ts +1 -1
  291. package/src/server/guard/passwordVerifier.spec.ts +1 -1
  292. package/src/server/guard/passwordVerifier.ts +4 -4
  293. package/src/server/guard/revocationStore.spec.ts +2 -2
  294. package/src/server/guard/sessionSigner.ts +3 -3
  295. package/src/server/incidents/checks.ts +2 -2
  296. package/src/server/incidents/incidents.spec.ts +7 -7
  297. package/src/server/incidents/index.ts +8 -8
  298. package/src/server/incidents/migrations.ts +1 -1
  299. package/src/server/incidents/notifier.ts +3 -3
  300. package/src/server/incidents/reporter.ts +1 -1
  301. package/src/server/incidents/routes.ts +5 -5
  302. package/src/server/incidents/store.ts +3 -3
  303. package/src/server/index.ts +26 -26
  304. package/src/server/jobs/fireQueue.spec.ts +1 -1
  305. package/src/server/jobs/fireQueue.ts +3 -3
  306. package/src/server/jobs/index.ts +7 -7
  307. package/src/server/jobs/logger.ts +1 -1
  308. package/src/server/jobs/plainjobAdapter.spec.ts +1 -1
  309. package/src/server/jobs/polling.spec.ts +1 -1
  310. package/src/server/jobs/polling.ts +2 -2
  311. package/src/server/jobs/runner.spec.ts +3 -3
  312. package/src/server/jobs/runner.ts +5 -5
  313. package/src/server/jobs/timeout.spec.ts +1 -1
  314. package/src/server/master-lock/accounts.spec.ts +2 -2
  315. package/src/server/master-lock/accountsPage.spec.ts +4 -4
  316. package/src/server/master-lock/accountsPage.ts +1 -1
  317. package/src/server/master-lock/beaconNeverReachesTheWall.spec.ts +4 -4
  318. package/src/server/master-lock/guard.spec.ts +3 -3
  319. package/src/server/master-lock/guard.ts +3 -3
  320. package/src/server/master-lock/index.ts +7 -7
  321. package/src/server/master-lock/lockPage.spec.ts +2 -2
  322. package/src/server/master-lock/masterLock.spec.ts +2 -2
  323. package/src/server/master-lock/masterLock.ts +1 -10
  324. package/src/server/master-lock/principals.spec.ts +4 -4
  325. package/src/server/master-lock/principals.ts +1 -1
  326. package/src/server/master-lock/seed.spec.ts +3 -3
  327. package/src/server/master-lock/seed.ts +1 -1
  328. package/src/server/master-lock/store.ts +1 -1
  329. package/src/server/media-bun/image.spec.ts +1 -1
  330. package/src/server/media-bun/index.ts +3 -3
  331. package/src/server/media-bun/streaming.spec.ts +1 -1
  332. package/src/server/media-bun/video.spec.ts +1 -1
  333. package/src/server/media-bun/video.ts +1 -1
  334. package/src/server/metrics/normalizeRoute.spec.ts +1 -1
  335. package/src/server/metrics/telemetrySink.spec.ts +3 -3
  336. package/src/server/metrics/telemetrySink.ts +1 -1
  337. package/src/server/middleware/bodyLimit.spec.ts +1 -1
  338. package/src/server/middleware/correlationId.ts +1 -1
  339. package/src/server/middleware/corsAllowlist.spec.ts +2 -2
  340. package/src/server/middleware/errorEnvelope.ts +2 -2
  341. package/src/server/middleware/index.ts +10 -10
  342. package/src/server/middleware/localOrigin.spec.ts +1 -1
  343. package/src/server/middleware/rateLimit.spec.ts +1 -1
  344. package/src/server/middleware/rateLimit.ts +1 -1
  345. package/src/server/middleware/requestLogger.ts +5 -5
  346. package/src/server/middleware/zValidator.spec.ts +4 -4
  347. package/src/server/middleware/zValidator.ts +2 -2
  348. package/src/server/migration/runner.spec.ts +2 -2
  349. package/src/server/migration/runner.ts +1 -1
  350. package/src/server/net/outboundGuard.spec.ts +1 -1
  351. package/src/server/net/outboundGuard.ts +1 -1
  352. package/src/server/notifications/index.ts +7 -7
  353. package/src/server/notifications/migrations.ts +1 -1
  354. package/src/server/notifications/routes.ts +1 -1
  355. package/src/server/notifications/service.spec.ts +3 -3
  356. package/src/server/notifications/service.ts +2 -2
  357. package/src/server/paths/appDataHome.spec.ts +1 -1
  358. package/src/server/resume/index.ts +2 -2
  359. package/src/server/resume/resume.spec.ts +2 -2
  360. package/src/server/resume/routes.ts +1 -1
  361. package/src/server/retention/archive.spec.ts +2 -2
  362. package/src/server/retention/archive.ts +1 -1
  363. package/src/server/retention/fleet.ts +4 -4
  364. package/src/server/retention/index.ts +6 -6
  365. package/src/server/retention/policy.spec.ts +1 -1
  366. package/src/server/retention/store.spec.ts +3 -3
  367. package/src/server/retention/store.ts +3 -3
  368. package/src/server/retention/sweeper.spec.ts +5 -5
  369. package/src/server/retention/sweeper.ts +5 -5
  370. package/src/server/retention/target.spec.ts +3 -3
  371. package/src/server/retention/target.ts +5 -5
  372. package/src/server/search/index.ts +2 -2
  373. package/src/server/search/pgSearchProvider.pg.test.ts +2 -2
  374. package/src/server/search/pgSearchProvider.ts +2 -2
  375. package/src/server/sharing/index.ts +8 -8
  376. package/src/server/sharing/migrations.ts +1 -1
  377. package/src/server/sharing/router.spec.ts +2 -2
  378. package/src/server/sharing/router.ts +1 -1
  379. package/src/server/sharing/sql.ts +1 -1
  380. package/src/server/sharing/store.spec.ts +2 -2
  381. package/src/server/sharing/store.ts +3 -3
  382. package/src/server/sqlite/backup.spec.ts +1 -1
  383. package/src/server/sqlite/browse.spec.ts +1 -1
  384. package/src/server/sqlite/browse.ts +1 -1
  385. package/src/server/sqlite/export.spec.ts +2 -2
  386. package/src/server/sqlite/export.ts +1 -1
  387. package/src/server/sqlite/fts5.spec.ts +1 -1
  388. package/src/server/sqlite/health.spec.ts +1 -1
  389. package/src/server/sqlite/import.spec.ts +3 -3
  390. package/src/server/sqlite/import.ts +1 -1
  391. package/src/server/sqlite/index.ts +9 -9
  392. package/src/server/sqlite/readonlySql.spec.ts +1 -1
  393. package/src/server/sqlite/stats.spec.ts +1 -1
  394. package/src/server/sqlite/stats.ts +1 -1
  395. package/src/server/sqlite/viewer.spec.ts +1 -1
  396. package/src/server/sqlite/viewer.ts +2 -2
  397. package/src/server/storage/binaryServerProcessing.integration.spec.ts +2 -2
  398. package/src/server/storage/binaryServerProcessing.spec.ts +2 -2
  399. package/src/server/storage/binaryServerProcessing.ts +3 -3
  400. package/src/server/storage/binaryServerStore.ts +3 -3
  401. package/src/server/storage/binaryStore.spec.ts +2 -2
  402. package/src/server/storage/binaryStore.ts +1 -1
  403. package/src/server/storage/binaryStoreFake.ts +1 -1
  404. package/src/server/storage/chunked.integration.spec.ts +4 -4
  405. package/src/server/storage/diskStore.ts +1 -1
  406. package/src/server/storage/fileUploadClient-chunked.integration.spec.ts +6 -6
  407. package/src/server/storage/fileUploadClient.integration.spec.ts +7 -7
  408. package/src/server/storage/files/adapter.photo.display.spec.ts +10 -10
  409. package/src/server/storage/files/adapter.photo.spec.ts +9 -9
  410. package/src/server/storage/files/adapter.spec.ts +8 -8
  411. package/src/server/storage/files/adapter.ts +5 -5
  412. package/src/server/storage/files/catalogue.media-host.spec.ts +6 -6
  413. package/src/server/storage/files/catalogue.orderings.spec.ts +6 -6
  414. package/src/server/storage/files/catalogue.recover.spec.ts +5 -5
  415. package/src/server/storage/files/catalogue.sort.spec.ts +6 -6
  416. package/src/server/storage/files/catalogue.spec.ts +7 -7
  417. package/src/server/storage/files/catalogue.trash-import.spec.ts +6 -6
  418. package/src/server/storage/files/catalogue.ts +6 -6
  419. package/src/server/storage/files/chunkedUpload.spec.ts +7 -7
  420. package/src/server/storage/files/chunkedUpload.ts +4 -4
  421. package/src/server/storage/files/collections.spec.ts +6 -6
  422. package/src/server/storage/files/fileRoutes.replace.spec.ts +8 -8
  423. package/src/server/storage/files/fileRoutes.spec.ts +8 -8
  424. package/src/server/storage/files/fileRoutes.ts +6 -6
  425. package/src/server/storage/files/index.ts +9 -9
  426. package/src/server/storage/files/migrations.ts +1 -1
  427. package/src/server/storage/files/stack.spec.ts +5 -5
  428. package/src/server/storage/files/stack.ts +12 -12
  429. package/src/server/storage/files/storageOps.spec.ts +4 -4
  430. package/src/server/storage/files/storageOps.ts +1 -1
  431. package/src/server/storage/files/types.ts +1 -1
  432. package/src/server/storage/imageThumbnail.spec.ts +2 -2
  433. package/src/server/storage/imageThumbnail.ts +1 -1
  434. package/src/server/storage/index.ts +15 -15
  435. package/src/server/storage/mountMediaRoutes.ts +4 -4
  436. package/src/server/storage/objectStore.spec.ts +1 -1
  437. package/src/server/storage/objectStoreMediaStore.ts +1 -1
  438. package/src/server/storage/s3ObjectStore.ts +1 -1
  439. package/src/server/storage/sources.ts +3 -3
  440. package/src/server/storage/storage.spec.ts +6 -6
  441. package/src/server/storage/streamRange.ts +1 -1
  442. package/src/server/storage/streamToken.ts +1 -1
  443. package/src/server/storage/transcodeJobs.spec.ts +1 -1
  444. package/src/server/storage/videoDerivativeKeys.spec.ts +1 -1
  445. package/src/server/storage/videoProcessor.posterOnly.spec.ts +4 -4
  446. package/src/server/storage/videoProcessor.ts +2 -2
  447. package/src/server/sync/alarm.spec.ts +1 -1
  448. package/src/server/sync/commands.spec.ts +1 -1
  449. package/src/server/sync/engine.spec.ts +4 -4
  450. package/src/server/sync/engine.ts +2 -2
  451. package/src/server/sync/http.ts +5 -5
  452. package/src/server/sync/httpRemote.spec.ts +1 -1
  453. package/src/server/sync/index.ts +11 -11
  454. package/src/server/sync/opLog.spec.ts +1 -1
  455. package/src/server/sync/opLog.ts +1 -1
  456. package/src/server/sync/planner.spec.ts +1 -1
  457. package/src/server/sync/signal.spec.ts +1 -1
  458. package/src/server/sync/signal.ts +1 -1
  459. package/src/server/sync/status.spec.ts +1 -1
  460. package/src/server/sync/timer.spec.ts +3 -3
  461. package/src/server/sync/timer.ts +3 -3
  462. package/src/server/sync/tokens.spec.ts +1 -1
  463. package/src/server/sync/tokens.ts +4 -3
  464. package/src/server/ws/eventBus.spec.ts +2 -2
  465. package/src/server/ws/eventBus.ts +1 -1
  466. package/src/server/ws/hub.integration.spec.ts +5 -5
  467. package/src/server/ws/hub.spec.ts +3 -3
  468. package/src/server/ws/hub.ts +4 -4
  469. package/src/server/ws/index.ts +5 -5
  470. package/src/server/ws/presence.spec.ts +3 -3
  471. package/src/server/ws/presence.ts +1 -1
  472. package/src/server/ws/room.spec.ts +2 -2
  473. package/src/server/ws/room.ts +1 -1
  474. package/src/server/ws/types.ts +1 -1
  475. package/src/testTmpRoot.spec.ts +1 -1
@@ -7,11 +7,11 @@
7
7
  import { Database } from 'bun:sqlite';
8
8
  import { describe, expect, test } from 'bun:test';
9
9
  import type { Kysely } from 'kysely';
10
- import { createFakeD1Binding } from './fakeD1';
11
- import { createD1Kysely } from './kysely';
12
- import { createLocalD1 } from './local';
13
- import { createRemoteD1 } from './remote';
14
- import { D1UnsupportedError, type D1LikeDatabase } from './types';
10
+ import { createFakeD1Binding } from './fakeD1.js';
11
+ import { createD1Kysely } from './kysely.js';
12
+ import { createLocalD1 } from './local.js';
13
+ import { createRemoteD1 } from './remote.js';
14
+ import { D1UnsupportedError, type D1LikeDatabase } from './types.js';
15
15
 
16
16
  const DDL = `CREATE TABLE app_config (
17
17
  key TEXT PRIMARY KEY, value TEXT NOT NULL, updated_at TEXT NOT NULL, updated_by TEXT
@@ -41,9 +41,9 @@ import {
41
41
  SqliteIntrospector,
42
42
  SqliteQueryCompiler,
43
43
  } from 'kysely';
44
- import type { PlumbingSchema } from '../db/plumbingTypes';
45
- import { refuseInteractiveTransaction } from './local';
46
- import { type D1LikeBindable, type D1LikeDatabase, D1UnsupportedError } from './types';
44
+ import type { PlumbingSchema } from '../db/plumbingTypes.js';
45
+ import { refuseInteractiveTransaction } from './local.js';
46
+ import { type D1LikeBindable, type D1LikeDatabase, D1UnsupportedError } from './types.js';
47
47
 
48
48
  /**
49
49
  * Kysely compiles to a parameter list that may contain values our seam refuses
@@ -1,8 +1,8 @@
1
1
  import { Database } from 'bun:sqlite';
2
2
  import { describe, expect, test } from 'bun:test';
3
- import { assertBatchSize, assertWithinLimits, chunkForBind, LIMITS } from './limits';
4
- import { createLocalD1 } from './local';
5
- import { D1LimitError } from './types';
3
+ import { assertBatchSize, assertWithinLimits, chunkForBind, LIMITS } from './limits.js';
4
+ import { createLocalD1 } from './local.js';
5
+ import { D1LimitError } from './types.js';
6
6
 
7
7
  describe('D1 limits are enforced on the LOCAL driver too', () => {
8
8
  // 🔴 The point of every test here: `bun:sqlite` has none of these caps, so without
@@ -18,7 +18,7 @@
18
18
  * Values are the Workers **Paid** tier, which is what the owner already pays for.
19
19
  */
20
20
 
21
- import { D1LimitError, type D1LikeBindable } from './types';
21
+ import { D1LimitError, type D1LikeBindable } from './types.js';
22
22
 
23
23
  export const LIMITS = {
24
24
  /** Bound parameters in a single statement. */
@@ -15,7 +15,7 @@
15
15
  */
16
16
 
17
17
  import type { Database } from 'bun:sqlite';
18
- import { assertBatchSize, assertWithinLimits } from './limits';
18
+ import { assertBatchSize, assertWithinLimits } from './limits.js';
19
19
  import {
20
20
  type D1LikeBindable,
21
21
  type D1LikeDatabase,
@@ -24,8 +24,8 @@ import {
24
24
  type D1LikeStatement,
25
25
  type D1LikeValue,
26
26
  D1UnsupportedError,
27
- } from './types';
28
- import { isPureReadSql, makeMeta, normalizeBinds, normalizeRows, normalizeValue } from './values';
27
+ } from './types.js';
28
+ import { isPureReadSql, makeMeta, normalizeBinds, normalizeRows, normalizeValue } from './values.js';
29
29
 
30
30
  /** Shared clock, so `meta.duration` means the same thing on both sides of the seam. */
31
31
  const now = (): number => performance.now();
@@ -35,9 +35,9 @@
35
35
  import type { Database } from 'bun:sqlite';
36
36
  import { existsSync, mkdirSync } from 'node:fs';
37
37
  import { join } from 'node:path';
38
- import { snapshotSqlite } from '../sqlite/backup';
39
- import type { BackupPoint, DatabaseBackup, TimeTravelOpts } from './backup';
40
- import { createTimeTravelBackup } from './backup';
38
+ import { snapshotSqlite } from '../sqlite/backup.js';
39
+ import type { BackupPoint, DatabaseBackup, TimeTravelOpts } from './backup.js';
40
+ import { createTimeTravelBackup } from './backup.js';
41
41
 
42
42
  export interface LocalBackupOpts {
43
43
  /** The live handle — checkpointed before the snapshot is taken. */
@@ -15,7 +15,7 @@
15
15
  * fake that has no `workerd` in sight.
16
16
  */
17
17
 
18
- import { assertBatchSize, assertWithinLimits } from './limits';
18
+ import { assertBatchSize, assertWithinLimits } from './limits.js';
19
19
  import {
20
20
  type D1LikeBindable,
21
21
  type D1LikeDatabase,
@@ -24,8 +24,8 @@ import {
24
24
  type D1LikeStatement,
25
25
  type D1LikeValue,
26
26
  D1UnsupportedError,
27
- } from './types';
28
- import { makeMeta, normalizeBinds, normalizeRows, normalizeValue } from './values';
27
+ } from './types.js';
28
+ import { makeMeta, normalizeBinds, normalizeRows, normalizeValue } from './values.js';
29
29
 
30
30
  /** What D1 reports back about a statement. Its `meta` is richer than the local driver's. */
31
31
  export interface D1BindingMeta {
@@ -16,10 +16,10 @@
16
16
 
17
17
  import { Database } from 'bun:sqlite';
18
18
  import { beforeEach, describe, expect, test } from 'bun:test';
19
- import { createFakeD1Binding } from './fakeD1';
20
- import { createLocalD1 } from './local';
21
- import { createRemoteD1 } from './remote';
22
- import { D1BindError, type D1LikeBindable, type D1LikeDatabase } from './types';
19
+ import { createFakeD1Binding } from './fakeD1.js';
20
+ import { createLocalD1 } from './local.js';
21
+ import { createRemoteD1 } from './remote.js';
22
+ import { D1BindError, type D1LikeBindable, type D1LikeDatabase } from './types.js';
23
23
 
24
24
  const DDL = `CREATE TABLE t (
25
25
  id INTEGER PRIMARY KEY,
@@ -6,7 +6,7 @@ import {
6
6
  type PortableJob,
7
7
  toCronTriggers,
8
8
  toFiveField,
9
- } from './scheduling';
9
+ } from './scheduling.js';
10
10
 
11
11
  const job = (name: string, shape: PortableJob['shape']): PortableJob => ({
12
12
  name,
@@ -34,7 +34,7 @@
34
34
  * a minute, which would change behaviour in production and nowhere else.
35
35
  */
36
36
 
37
- import type { D1LikeDatabase } from './types';
37
+ import type { D1LikeDatabase } from './types.js';
38
38
 
39
39
  /** The Workers primitive a piece of scheduled work maps onto. */
40
40
  export type WorkersPrimitive = 'cron-trigger' | 'queue' | 'durable-object-alarm' | 'unportable';
@@ -12,7 +12,7 @@
12
12
  * recalled: the probe wrote each type into a `CREATE TABLE t (v)` column and read it back.
13
13
  */
14
14
 
15
- import { D1BindError, type D1LikeBindable, type D1LikeMeta, type D1LikeValue } from './types';
15
+ import { D1BindError, type D1LikeBindable, type D1LikeMeta, type D1LikeValue } from './types.js';
16
16
 
17
17
  /**
18
18
  * The largest integer a JS number holds exactly. A `bigint` beyond this cannot survive the
@@ -1,6 +1,6 @@
1
1
  import { Database } from 'bun:sqlite';
2
2
  import { afterEach, beforeEach, describe, expect, test } from 'bun:test';
3
- import { createKysely, type PlumbingDb } from './kysely';
3
+ import { createKysely, type PlumbingDb } from './kysely.js';
4
4
 
5
5
  const AUTH_SESSIONS_DDL = `CREATE TABLE auth_sessions (
6
6
  session_id TEXT PRIMARY KEY, user_id TEXT NOT NULL, created_at TEXT NOT NULL,
@@ -1,7 +1,7 @@
1
1
  import type { Database } from 'bun:sqlite';
2
2
  import { Kysely } from 'kysely';
3
3
  import { BunSqliteDialect } from 'kysely-bun-sqlite';
4
- import type { PlumbingSchema } from './plumbingTypes';
4
+ import type { PlumbingSchema } from './plumbingTypes.js';
5
5
 
6
6
  /**
7
7
  * A Kysely query builder typed to the {@link PlumbingSchema} plumbing tables, on the
@@ -21,10 +21,10 @@ export {
21
21
  type DroppedFile,
22
22
  type ScanOptions,
23
23
  type SweepReport,
24
- } from "./scan";
24
+ } from "./scan.js";
25
25
  export {
26
26
  askBinaryServerAboutDuplicate,
27
27
  hashFile,
28
28
  type DuplicateVerdict,
29
29
  type DuplicateQuestion,
30
- } from "./duplicates";
30
+ } from "./duplicates.js";
@@ -10,7 +10,7 @@ import {
10
10
  sweepDropzone,
11
11
  type DropOutcome,
12
12
  type DroppedFile,
13
- } from "./scan";
13
+ } from "./scan.js";
14
14
 
15
15
  /**
16
16
  * The drop-folder scraper.
@@ -1,5 +1,5 @@
1
1
  import { describe, expect, test } from 'bun:test';
2
- import { ApiError, isApiError, toErrorEnvelope } from './errors';
2
+ import { ApiError, isApiError, toErrorEnvelope } from './errors.js';
3
3
 
4
4
  /** ISO-8601 timestamp check + strip, so the dynamic field doesn't break equality. */
5
5
  const withoutTimestamp = (env: ReturnType<typeof toErrorEnvelope>) => {
@@ -21,7 +21,7 @@ import {
21
21
  resolveArgon2idDeriver,
22
22
  setArgon2idDeriver,
23
23
  } from 'cwip/guard';
24
- import { argon2idDeriverFrom, nodeRsArgon2idBinding, type RawArgon2idBinding, registerNodeRsArgon2id } from './argon2Binding';
24
+ import { argon2idDeriverFrom, nodeRsArgon2idBinding, type RawArgon2idBinding, registerNodeRsArgon2id } from './argon2Binding.js';
25
25
 
26
26
  /** Cheap parameters — this suite proves the WIRING, not the cost calibration. */
27
27
  const FAST = { m: 8_192, t: 1, p: 1 };
@@ -29,7 +29,7 @@ import {
29
29
  CC_ARGON2ID_VERSION,
30
30
  setArgon2idDeriver,
31
31
  } from 'cwip/guard';
32
- import { AppError } from '../errors';
32
+ import { AppError } from '../errors.js';
33
33
 
34
34
  /**
35
35
  * The shape of a raw, synchronous argon2id binding, in the REFERENCE
@@ -43,7 +43,7 @@ import { afterEach, describe, expect, it } from 'bun:test';
43
43
  import { deriveArgon2idKey, resolveArgon2idDeriver, setArgon2idDeriver } from 'cwip/guard';
44
44
  import { type Algorithm, hashRawSync, type Version } from '@node-rs/argon2';
45
45
 
46
- import { argon2idDeriverFrom, nodeRsArgon2idBinding, registerNodeRsArgon2id } from './argon2Binding';
46
+ import { argon2idDeriverFrom, nodeRsArgon2idBinding, registerNodeRsArgon2id } from './argon2Binding.js';
47
47
  /*
48
48
  * `Algorithm` and `Version` are declared as AMBIENT CONST ENUMS in the binding's
49
49
  * `.d.ts`, and `verbatimModuleSyntax` refuses to read a member off one — the
@@ -12,9 +12,9 @@
12
12
  import { generateKeyPairSync } from 'node:crypto';
13
13
  import { afterEach, describe, expect, it } from 'bun:test';
14
14
  import { deriveArgon2idKey, hasArgon2idDeriver, setArgon2idDeriver } from 'cwip/guard';
15
- import { ARGON2ID_ALGORITHM, argon2idDeriverFrom, registerArgon2idBinding, type RawArgon2idBinding } from './argon2Binding';
16
- import { createMemoryAsyncRevocationStore } from './revocationStore';
17
- import { createSessionSigner } from './sessionSigner';
15
+ import { ARGON2ID_ALGORITHM, argon2idDeriverFrom, registerArgon2idBinding, type RawArgon2idBinding } from './argon2Binding.js';
16
+ import { createMemoryAsyncRevocationStore } from './revocationStore.js';
17
+ import { createSessionSigner } from './sessionSigner.js';
18
18
 
19
19
  afterEach(() => {
20
20
  setArgon2idDeriver(null);
@@ -1,7 +1,7 @@
1
1
  // The GuardEngine server wiring (02 §4): the argon2id binding adapter that arms
2
2
  // cwip's KDF seam, and the Ed25519 session signer that mints and revokes.
3
- export * from './argon2Binding';
4
- export * from './passwordVerifier';
5
- export * from './verifier';
6
- export * from './revocationStore';
7
- export * from './sessionSigner';
3
+ export * from './argon2Binding.js';
4
+ export * from './passwordVerifier.js';
5
+ export * from './verifier.js';
6
+ export * from './revocationStore.js';
7
+ export * from './sessionSigner.js';
@@ -28,9 +28,9 @@ import {
28
28
  type KdfWorkerResponse,
29
29
  kdfWorkerEntryUrl,
30
30
  serveKdfWorker,
31
- } from './kdfWorker';
32
- import { createInProcessPasswordVerifier, verifyPasswordEnvelope } from './passwordVerifier';
33
- import { registerNodeRsArgon2id } from './argon2Binding';
31
+ } from './kdfWorker.js';
32
+ import { createInProcessPasswordVerifier, verifyPasswordEnvelope } from './passwordVerifier.js';
33
+ import { registerNodeRsArgon2id } from './argon2Binding.js';
34
34
 
35
35
  const password = (value: string): Uint8Array => new TextEncoder().encode(value);
36
36
 
@@ -41,14 +41,14 @@
41
41
  * `createMarshalWorkerClient` documents in `core/wire/marshalWorker.ts`; it is
42
42
  * repeated here deliberately in the same shape so both read alike.
43
43
  */
44
- import { AppError } from '../errors';
44
+ import { AppError } from '../errors.js';
45
45
  import {
46
46
  createInProcessPasswordVerifier,
47
47
  type PasswordVerifierPort,
48
48
  sealPasswordVerifier,
49
49
  verifyPasswordEnvelope,
50
- } from './passwordVerifier';
51
- import { registerNodeRsArgon2id } from './argon2Binding';
50
+ } from './passwordVerifier.js';
51
+ import { registerNodeRsArgon2id } from './argon2Binding.js';
52
52
 
53
53
  /** Raised when the worker thread dies, fails to start, or is disposed mid-flight. */
54
54
  export const GUARD_KDF_WORKER_FAILED = 'GUARD_KDF_WORKER_FAILED';
@@ -11,6 +11,6 @@
11
11
  * is not "start the loop" is code running on a thread with a live argon2id
12
12
  * binding and a plaintext password in scope.
13
13
  */
14
- import { serveKdfWorker } from './kdfWorker';
14
+ import { serveKdfWorker } from './kdfWorker.js';
15
15
 
16
16
  await serveKdfWorker();
@@ -8,7 +8,7 @@
8
8
  */
9
9
  import { describe, expect, it } from 'bun:test';
10
10
  import type { Argon2idDeriver } from 'cwip/guard';
11
- import { sealPasswordVerifier, verifyPasswordEnvelope } from './passwordVerifier';
11
+ import { sealPasswordVerifier, verifyPasswordEnvelope } from './passwordVerifier.js';
12
12
 
13
13
  // A deterministic, PASSWORD-SENSITIVE stand-in for argon2id (the real seam mixes
14
14
  // far more): the output must depend on the password, or a "wrong password" would
@@ -29,7 +29,7 @@
29
29
  * every path including a thrown KDF. Callers hand over ownership and must not
30
30
  * touch the buffer afterwards.
31
31
  */
32
- import { timingSafeEqual } from 'node:crypto';
32
+ import { constantTimeEqualBytes } from 'cwip/constant-time';
33
33
  import {
34
34
  type Argon2idDeriver,
35
35
  createSecretEnvelopeManager,
@@ -38,7 +38,7 @@ import {
38
38
  serializeSecretEnvelope,
39
39
  zeroize,
40
40
  } from 'cwip/guard';
41
- import { isAppError } from '../errors';
41
+ import { isAppError } from '../errors.js';
42
42
 
43
43
  /**
44
44
  * The reserved AAD app namespace for password verifiers. `SecretEnvelope` forbids
@@ -79,7 +79,7 @@ export function sealPasswordVerifier(userId: string, password: Uint8Array, deriv
79
79
  * stored envelope is corruption, not a wrong password, and re-throws.
80
80
  *
81
81
  * The comparison is constant-time in the sensitive part: argon2id derivation
82
- * dominates the timing, and GCM tag verification plus the final `timingSafeEqual`
82
+ * dominates the timing, and GCM tag verification plus the final `constantTimeEqualBytes`
83
83
  * are constant-time, so a right and a wrong password of equal length are
84
84
  * indistinguishable by timing.
85
85
  */
@@ -106,7 +106,7 @@ export function verifyPasswordEnvelope(
106
106
  // openWithPassphrase re-derives a one-shot key from the envelope's own salt +
107
107
  // the presented password, opens, and zeroizes `password` on every path.
108
108
  opened = manager.openWithPassphrase(envelope, refFor(userId), password);
109
- return opened.byteLength === VERIFIER_PLAINTEXT.byteLength && timingSafeEqual(opened, VERIFIER_PLAINTEXT);
109
+ return constantTimeEqualBytes(opened, VERIFIER_PLAINTEXT);
110
110
  } catch (error) {
111
111
  // GCM's rejection is the wrong-password verdict — the ONLY error we swallow.
112
112
  if (isAppError(error) && error.code === 'SECRET_ENVELOPE_AUTH_FAILED') return false;
@@ -4,7 +4,7 @@ import {
4
4
  createMemoryAsyncRevocationStore,
5
5
  createMemoryRevocationStore,
6
6
  createSqliteRevocationStore,
7
- } from './revocationStore';
7
+ } from './revocationStore.js';
8
8
 
9
9
  describe('sync memory revocation store', () => {
10
10
  it('records, answers, and sweeps by ms expiry', () => {
@@ -119,7 +119,7 @@ describe('async-backed revocation store (the cross-node bridge)', () => {
119
119
 
120
120
  it('a backing failure is reported, never thrown out of the request path', async () => {
121
121
  const ops: string[] = [];
122
- const boom: import('./revocationStore').AsyncRevocationStore = {
122
+ const boom: import('./revocationStore.js').AsyncRevocationStore = {
123
123
  set: () => Promise.reject(new Error('set failed')),
124
124
  get: () => Promise.reject(new Error('get failed')),
125
125
  prune: () => Promise.reject(new Error('prune failed')),
@@ -20,9 +20,9 @@
20
20
  */
21
21
  import { createPrivateKey, createPublicKey, generateKeyPairSync, type KeyObject, sign, verify } from 'node:crypto';
22
22
  import { type CCUserClaims, CCUserClaimsSchema } from 'cursedbelt-core/session/claims';
23
- import { AppError } from '../errors';
24
- import type { GuardVerification, GuardVerifier } from './verifier';
25
- import type { AsyncRevocationStore } from './revocationStore';
23
+ import { AppError } from '../errors.js';
24
+ import type { GuardVerification, GuardVerifier } from './verifier.js';
25
+ import type { AsyncRevocationStore } from './revocationStore.js';
26
26
 
27
27
  export interface SessionSignerOptions {
28
28
  /**
@@ -18,8 +18,8 @@
18
18
  * a sweep reports its own failures so the console can show a detector that has
19
19
  * stopped working, rather than showing an empty incident list and looking calm.
20
20
  */
21
- import type { IncidentStore } from "./store";
22
- import type { IncidentReport, IncidentTransitions } from "./types";
21
+ import type { IncidentStore } from "./store.js";
22
+ import type { IncidentReport, IncidentTransitions } from "./types.js";
23
23
 
24
24
  export interface IncidentCheck {
25
25
  /** Stable key. Owns every incident it has ever opened — see `reconcile`. */
@@ -14,13 +14,13 @@
14
14
  */
15
15
  import { Database } from "bun:sqlite";
16
16
  import { beforeEach, describe, expect, test } from "bun:test";
17
- import type { ChannelMessage, ChannelResult, IncidentChannel } from "./channels";
18
- import { createTextChannel } from "./channels";
19
- import { type IncidentCheck, runIncidentSweep } from "./checks";
20
- import { createIncidentNotifier, UNDELIVERED_RETRY_MS } from "./notifier";
21
- import { createIncidentReporter } from "./reporter";
22
- import { createIncidentStore, type IncidentStore } from "./store";
23
- import type { IncidentReport } from "./types";
17
+ import type { ChannelMessage, ChannelResult, IncidentChannel } from "./channels.js";
18
+ import { createTextChannel } from "./channels.js";
19
+ import { type IncidentCheck, runIncidentSweep } from "./checks.js";
20
+ import { createIncidentNotifier, UNDELIVERED_RETRY_MS } from "./notifier.js";
21
+ import { createIncidentReporter } from "./reporter.js";
22
+ import { createIncidentStore, type IncidentStore } from "./store.js";
23
+ import type { IncidentReport } from "./types.js";
24
24
 
25
25
  const stuckIngest = (failed = 42): IncidentReport => ({
26
26
  source: "station",
@@ -53,14 +53,14 @@ export {
53
53
  type IncidentChannel,
54
54
  type SendEmail,
55
55
  type TextChannelOptions,
56
- } from "./channels";
56
+ } from "./channels.js";
57
57
  export {
58
58
  type CheckOutcome,
59
59
  type IncidentCheck,
60
60
  runIncidentSweep,
61
61
  type SweepResult,
62
- } from "./checks";
63
- export { INCIDENT_MIGRATIONS, INCIDENTS_TABLE } from "./migrations";
62
+ } from "./checks.js";
63
+ export { INCIDENT_MIGRATIONS, INCIDENTS_TABLE } from "./migrations.js";
64
64
  export {
65
65
  type AnnounceResult,
66
66
  composeOpened,
@@ -68,23 +68,23 @@ export {
68
68
  type CreateNotifierOptions,
69
69
  createIncidentNotifier,
70
70
  type IncidentNotifier,
71
- } from "./notifier";
71
+ } from "./notifier.js";
72
72
  export {
73
73
  createIncidentReporter,
74
74
  type IncidentReporter,
75
75
  type IncidentReporterOptions,
76
- } from "./reporter";
76
+ } from "./reporter.js";
77
77
  export {
78
78
  type IncidentRoutesOptions,
79
79
  mountIncidentMachineRoutes,
80
80
  mountIncidentOwnerRoutes,
81
- } from "./routes";
81
+ } from "./routes.js";
82
82
  export {
83
83
  assertNoContent,
84
84
  createIncidentStore,
85
85
  type IncidentStore,
86
86
  type ReconcileOptions,
87
- } from "./store";
87
+ } from "./store.js";
88
88
  export {
89
89
  fingerprint,
90
90
  type Incident,
@@ -93,4 +93,4 @@ export {
93
93
  type IncidentSeverity,
94
94
  type IncidentState,
95
95
  type IncidentTransitions,
96
- } from "./types";
96
+ } from "./types.js";
@@ -1,5 +1,5 @@
1
1
  import type { Database } from "bun:sqlite";
2
- import type { Migration } from "../migration/types";
2
+ import type { Migration } from "../migration/types.js";
3
3
 
4
4
  /** The one table this primitive owns. */
5
5
  export const INCIDENTS_TABLE = "incidents";
@@ -28,9 +28,9 @@
28
28
  * the store (`assertNoContent`). A text message is the least private surface
29
29
  * this fleet has and several of its apps are private by construction.
30
30
  */
31
- import type { ChannelMessage, ChannelResult, IncidentChannel } from "./channels";
32
- import type { IncidentStore } from "./store";
33
- import type { Incident, IncidentTransitions } from "./types";
31
+ import type { ChannelMessage, ChannelResult, IncidentChannel } from "./channels.js";
32
+ import type { IncidentStore } from "./store.js";
33
+ import type { Incident, IncidentTransitions } from "./types.js";
34
34
 
35
35
  export interface IncidentNotifier {
36
36
  /** Send for every transition in `t`. Returns one result per message sent. */
@@ -28,7 +28,7 @@
28
28
  * than one with no alerting. Every failure here is logged and swallowed, and the
29
29
  * console notices the silence by other means (the service's own health probe).
30
30
  */
31
- import type { IncidentReport } from "./types";
31
+ import type { IncidentReport } from "./types.js";
32
32
 
33
33
  export interface IncidentReporterOptions {
34
34
  /** e.g. `http://127.0.0.1:3024/api/station/incidents/report`. */
@@ -35,11 +35,11 @@
35
35
  * correct.
36
36
  */
37
37
  import type { Hono } from "hono";
38
- import type { IncidentChannel } from "./channels";
39
- import type { IncidentNotifier } from "./notifier";
40
- import { assertNoContent, type IncidentStore } from "./store";
41
- import type { IncidentReport, IncidentSeverity } from "./types";
42
- import type { SweepResult } from "./checks";
38
+ import type { IncidentChannel } from "./channels.js";
39
+ import type { IncidentNotifier } from "./notifier.js";
40
+ import { assertNoContent, type IncidentStore } from "./store.js";
41
+ import type { IncidentReport, IncidentSeverity } from "./types.js";
42
+ import type { SweepResult } from "./checks.js";
43
43
 
44
44
  const noStore = { "cache-control": "no-store" } as const;
45
45
 
@@ -28,15 +28,15 @@
28
28
  * of all across the restart a deploy of the console itself performs.
29
29
  */
30
30
  import type { Database } from "bun:sqlite";
31
- import { runMigrations } from "../migration/runner";
32
- import { INCIDENT_MIGRATIONS, INCIDENTS_TABLE } from "./migrations";
31
+ import { runMigrations } from "../migration/runner.js";
32
+ import { INCIDENT_MIGRATIONS, INCIDENTS_TABLE } from "./migrations.js";
33
33
  import {
34
34
  fingerprint,
35
35
  type Incident,
36
36
  type IncidentFact,
37
37
  type IncidentReport,
38
38
  type IncidentTransitions,
39
- } from "./types";
39
+ } from "./types.js";
40
40
 
41
41
  interface Row {
42
42
  fingerprint: string;