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.
- package/dist/server/_bunOnly.d.ts +1 -0
- package/dist/server/_bunOnly.js +12 -0
- package/dist/server/activity/index.d.ts +4 -4
- package/dist/server/activity/index.js +3 -3
- package/dist/server/activity/migrations.d.ts +1 -1
- package/dist/server/activity/shareSource.d.ts +1 -1
- package/dist/server/activity/shareSource.js +1 -1
- package/dist/server/activity/store.js +2 -2
- package/dist/server/analytics/index.d.ts +2 -2
- package/dist/server/analytics/index.js +2 -2
- package/dist/server/app.d.ts +4 -4
- package/dist/server/app.js +6 -6
- package/dist/server/audit/index.d.ts +2 -2
- package/dist/server/audit/index.js +2 -2
- package/dist/server/audit/migrations.d.ts +1 -1
- package/dist/server/audit/sqliteSink.js +2 -2
- package/dist/server/audit/sqliteSink.test.js +1 -1
- package/dist/server/auth/csrf.js +1 -1
- package/dist/server/auth/fileTokenSigner.d.ts +1 -1
- package/dist/server/auth/getOnly.d.ts +1 -1
- package/dist/server/auth/getOnly.js +1 -1
- package/dist/server/auth/index.d.ts +12 -12
- package/dist/server/auth/index.js +11 -11
- package/dist/server/auth/jwt.d.ts +1 -1
- package/dist/server/auth/middleware.d.ts +1 -1
- package/dist/server/auth/middleware.js +3 -3
- package/dist/server/auth/password.js +4 -6
- package/dist/server/auth/sessionStore.d.ts +2 -2
- package/dist/server/auth/types.d.ts +1 -1
- package/dist/server/bench/assert.d.ts +1 -1
- package/dist/server/bench/assert.js +1 -1
- package/dist/server/bench/cpuBudget.d.ts +4 -4
- package/dist/server/bench/cpuBudget.js +3 -3
- package/dist/server/bench/index.d.ts +6 -6
- package/dist/server/bench/index.js +6 -6
- package/dist/server/bench/recorder.d.ts +2 -2
- package/dist/server/bench/recorder.js +1 -1
- package/dist/server/bench/runBench.d.ts +2 -2
- package/dist/server/ctgr.d.ts +1 -1
- package/dist/server/ctgr.js +1 -1
- package/dist/server/d1/fakeD1.d.ts +1 -1
- package/dist/server/d1/fakeD1.js +1 -1
- package/dist/server/d1/index.d.ts +8 -8
- package/dist/server/d1/index.js +8 -8
- package/dist/server/d1/invocation.d.ts +1 -1
- package/dist/server/d1/invocation.js +2 -2
- package/dist/server/d1/kysely.d.ts +2 -2
- package/dist/server/d1/kysely.js +2 -2
- package/dist/server/d1/limits.d.ts +1 -1
- package/dist/server/d1/limits.js +1 -1
- package/dist/server/d1/local.d.ts +1 -1
- package/dist/server/d1/local.js +3 -3
- package/dist/server/d1/localBackup.d.ts +1 -1
- package/dist/server/d1/localBackup.js +2 -2
- package/dist/server/d1/remote.d.ts +1 -1
- package/dist/server/d1/remote.js +3 -3
- package/dist/server/d1/scheduling.d.ts +1 -1
- package/dist/server/d1/values.d.ts +1 -1
- package/dist/server/d1/values.js +1 -1
- package/dist/server/db/kysely.d.ts +1 -1
- package/dist/server/dropzone/index.d.ts +2 -2
- package/dist/server/dropzone/index.js +2 -2
- package/dist/server/guard/argon2Binding.js +1 -1
- package/dist/server/guard/index.d.ts +5 -5
- package/dist/server/guard/index.js +5 -5
- package/dist/server/guard/kdfWorker.d.ts +1 -1
- package/dist/server/guard/kdfWorker.js +3 -3
- package/dist/server/guard/kdfWorkerEntry.js +1 -1
- package/dist/server/guard/passwordVerifier.d.ts +1 -1
- package/dist/server/guard/passwordVerifier.js +4 -4
- package/dist/server/guard/sessionSigner.d.ts +2 -2
- package/dist/server/guard/sessionSigner.js +1 -1
- package/dist/server/incidents/checks.d.ts +2 -2
- package/dist/server/incidents/index.d.ts +8 -8
- package/dist/server/incidents/index.js +8 -8
- package/dist/server/incidents/migrations.d.ts +1 -1
- package/dist/server/incidents/notifier.d.ts +3 -3
- package/dist/server/incidents/reporter.d.ts +1 -1
- package/dist/server/incidents/routes.d.ts +4 -4
- package/dist/server/incidents/routes.js +1 -1
- package/dist/server/incidents/store.d.ts +1 -1
- package/dist/server/incidents/store.js +3 -3
- package/dist/server/index.d.ts +26 -26
- package/dist/server/index.js +23 -23
- package/dist/server/jobs/fireQueue.d.ts +1 -1
- package/dist/server/jobs/fireQueue.js +3 -3
- package/dist/server/jobs/index.d.ts +7 -7
- package/dist/server/jobs/index.js +7 -7
- package/dist/server/jobs/logger.d.ts +1 -1
- package/dist/server/jobs/polling.d.ts +1 -1
- package/dist/server/jobs/polling.js +1 -1
- package/dist/server/jobs/runner.d.ts +1 -1
- package/dist/server/jobs/runner.js +5 -5
- package/dist/server/master-lock/accountsPage.d.ts +1 -1
- package/dist/server/master-lock/accountsPage.js +1 -1
- package/dist/server/master-lock/guard.d.ts +2 -2
- package/dist/server/master-lock/guard.js +2 -2
- package/dist/server/master-lock/index.d.ts +7 -7
- package/dist/server/master-lock/index.js +7 -7
- package/dist/server/master-lock/masterLock.js +1 -11
- package/dist/server/master-lock/principals.d.ts +1 -1
- package/dist/server/master-lock/principals.js +1 -1
- package/dist/server/master-lock/seed.d.ts +1 -1
- package/dist/server/master-lock/seed.js +1 -1
- package/dist/server/master-lock/store.d.ts +1 -1
- package/dist/server/media-bun/index.d.ts +3 -3
- package/dist/server/media-bun/index.js +3 -3
- package/dist/server/media-bun/video.d.ts +1 -1
- package/dist/server/media-bun/video.js +1 -1
- package/dist/server/metrics/telemetrySink.d.ts +1 -1
- package/dist/server/metrics/telemetrySink.js +1 -1
- package/dist/server/middleware/correlationId.d.ts +1 -1
- package/dist/server/middleware/errorEnvelope.d.ts +1 -1
- package/dist/server/middleware/errorEnvelope.js +1 -1
- package/dist/server/middleware/index.d.ts +10 -10
- package/dist/server/middleware/index.js +10 -10
- package/dist/server/middleware/rateLimit.js +1 -1
- package/dist/server/middleware/requestLogger.d.ts +3 -3
- package/dist/server/middleware/requestLogger.js +3 -3
- package/dist/server/middleware/zValidator.d.ts +1 -1
- package/dist/server/middleware/zValidator.js +1 -1
- package/dist/server/migration/runner.d.ts +1 -1
- package/dist/server/net/outboundGuard.js +1 -1
- package/dist/server/notifications/index.d.ts +7 -7
- package/dist/server/notifications/index.js +4 -4
- package/dist/server/notifications/migrations.d.ts +1 -1
- package/dist/server/notifications/routes.d.ts +1 -1
- package/dist/server/notifications/service.d.ts +1 -1
- package/dist/server/notifications/service.js +2 -2
- package/dist/server/resume/index.d.ts +2 -2
- package/dist/server/resume/index.js +2 -2
- package/dist/server/resume/routes.d.ts +1 -1
- package/dist/server/resume/routes.js +1 -1
- package/dist/server/retention/archive.js +1 -1
- package/dist/server/retention/fleet.d.ts +2 -2
- package/dist/server/retention/fleet.js +2 -2
- package/dist/server/retention/index.d.ts +6 -6
- package/dist/server/retention/index.js +6 -6
- package/dist/server/retention/store.d.ts +1 -1
- package/dist/server/retention/store.js +2 -2
- package/dist/server/retention/sweeper.d.ts +3 -3
- package/dist/server/retention/sweeper.js +2 -2
- package/dist/server/retention/target.d.ts +3 -3
- package/dist/server/retention/target.js +2 -2
- package/dist/server/search/index.d.ts +2 -2
- package/dist/server/search/index.js +2 -2
- package/dist/server/search/pgSearchProvider.js +2 -2
- package/dist/server/search/pgSearchProvider.pg.test.js +2 -2
- package/dist/server/sharing/index.d.ts +8 -8
- package/dist/server/sharing/index.js +5 -5
- package/dist/server/sharing/migrations.d.ts +1 -1
- package/dist/server/sharing/router.d.ts +1 -1
- package/dist/server/sharing/sql.js +1 -1
- package/dist/server/sharing/store.js +3 -3
- package/dist/server/sqlite/browse.js +1 -1
- package/dist/server/sqlite/export.js +1 -1
- package/dist/server/sqlite/import.js +1 -1
- package/dist/server/sqlite/index.d.ts +9 -9
- package/dist/server/sqlite/index.js +9 -9
- package/dist/server/sqlite/stats.js +1 -1
- package/dist/server/sqlite/viewer.js +2 -2
- package/dist/server/storage/binaryServerProcessing.d.ts +1 -1
- package/dist/server/storage/binaryServerProcessing.js +2 -2
- package/dist/server/storage/binaryServerStore.d.ts +2 -2
- package/dist/server/storage/binaryStore.d.ts +1 -1
- package/dist/server/storage/binaryStoreFake.d.ts +1 -1
- package/dist/server/storage/diskStore.d.ts +1 -1
- package/dist/server/storage/files/adapter.d.ts +4 -4
- package/dist/server/storage/files/adapter.js +1 -1
- package/dist/server/storage/files/catalogue.d.ts +3 -3
- package/dist/server/storage/files/catalogue.js +6 -6
- package/dist/server/storage/files/chunkedUpload.d.ts +3 -3
- package/dist/server/storage/files/chunkedUpload.js +1 -1
- package/dist/server/storage/files/fileRoutes.d.ts +4 -4
- package/dist/server/storage/files/fileRoutes.js +3 -3
- package/dist/server/storage/files/index.d.ts +9 -9
- package/dist/server/storage/files/index.js +8 -8
- package/dist/server/storage/files/migrations.d.ts +1 -1
- package/dist/server/storage/files/stack.d.ts +7 -7
- package/dist/server/storage/files/stack.js +10 -10
- package/dist/server/storage/files/storageOps.d.ts +1 -1
- package/dist/server/storage/files/types.d.ts +1 -1
- package/dist/server/storage/imageThumbnail.js +1 -1
- package/dist/server/storage/index.d.ts +15 -15
- package/dist/server/storage/index.js +14 -14
- package/dist/server/storage/mountMediaRoutes.d.ts +3 -3
- package/dist/server/storage/mountMediaRoutes.js +2 -2
- package/dist/server/storage/objectStoreMediaStore.d.ts +1 -1
- package/dist/server/storage/s3ObjectStore.js +1 -1
- package/dist/server/storage/sources.d.ts +2 -2
- package/dist/server/storage/sources.js +2 -2
- package/dist/server/storage/streamRange.d.ts +1 -1
- package/dist/server/storage/streamToken.js +1 -1
- package/dist/server/storage/videoProcessor.d.ts +1 -1
- package/dist/server/storage/videoProcessor.js +2 -2
- package/dist/server/sync/engine.d.ts +2 -2
- package/dist/server/sync/engine.js +1 -1
- package/dist/server/sync/http.d.ts +4 -4
- package/dist/server/sync/http.js +3 -3
- package/dist/server/sync/index.d.ts +11 -11
- package/dist/server/sync/index.js +11 -11
- package/dist/server/sync/opLog.d.ts +1 -1
- package/dist/server/sync/signal.d.ts +1 -1
- package/dist/server/sync/timer.d.ts +3 -3
- package/dist/server/sync/timer.js +1 -1
- package/dist/server/sync/tokens.d.ts +1 -1
- package/dist/server/sync/tokens.js +3 -2
- package/dist/server/ws/eventBus.d.ts +1 -1
- package/dist/server/ws/hub.d.ts +1 -1
- package/dist/server/ws/hub.js +3 -3
- package/dist/server/ws/index.d.ts +5 -5
- package/dist/server/ws/index.js +4 -4
- package/dist/server/ws/presence.d.ts +1 -1
- package/dist/server/ws/room.d.ts +1 -1
- package/dist/server/ws/types.d.ts +1 -1
- package/package.json +9 -9
- package/src/publicSurface.spec.ts +1 -1
- package/src/server/_bunOnly.ts +15 -0
- package/src/server/activity/index.ts +4 -4
- package/src/server/activity/migrations.ts +1 -1
- package/src/server/activity/shareSource.ts +2 -2
- package/src/server/activity/store.spec.ts +3 -3
- package/src/server/activity/store.ts +2 -2
- package/src/server/analytics/index.ts +2 -2
- package/src/server/analytics/injectedScripts.spec.ts +3 -3
- package/src/server/analytics/webAnalytics.spec.ts +1 -1
- package/src/server/app.spec.ts +9 -9
- package/src/server/app.ts +7 -7
- package/src/server/audit/index.ts +2 -2
- package/src/server/audit/migrations.ts +1 -1
- package/src/server/audit/sqliteSink.test.ts +1 -1
- package/src/server/audit/sqliteSink.ts +2 -2
- package/src/server/auth/cookie.spec.ts +1 -1
- package/src/server/auth/csrf.spec.ts +1 -1
- package/src/server/auth/csrf.ts +1 -1
- package/src/server/auth/fileTokenSigner.ts +1 -1
- package/src/server/auth/getOnly.spec.ts +2 -2
- package/src/server/auth/getOnly.ts +2 -2
- package/src/server/auth/index.ts +12 -12
- package/src/server/auth/jwt.spec.ts +2 -2
- package/src/server/auth/jwt.ts +1 -1
- package/src/server/auth/loginThrottle.spec.ts +1 -1
- package/src/server/auth/middleware.spec.ts +7 -7
- package/src/server/auth/middleware.ts +4 -4
- package/src/server/auth/password.spec.ts +1 -1
- package/src/server/auth/password.ts +4 -5
- package/src/server/auth/sessionStore.spec.ts +3 -3
- package/src/server/auth/sessionStore.ts +3 -3
- package/src/server/auth/totp.spec.ts +1 -1
- package/src/server/auth/types.ts +1 -1
- package/src/server/auth/vault.spec.ts +1 -1
- package/src/server/bench/assert.ts +2 -2
- package/src/server/bench/budget.spec.ts +2 -2
- package/src/server/bench/cpuBudget.spec.ts +6 -6
- package/src/server/bench/cpuBudget.ts +5 -5
- package/src/server/bench/cpuClock.spec.ts +2 -2
- package/src/server/bench/index.ts +6 -6
- package/src/server/bench/recorder.ts +2 -2
- package/src/server/bench/runBench.ts +2 -2
- package/src/server/ctgr.spec.ts +2 -2
- package/src/server/ctgr.ts +2 -2
- package/src/server/d1/backup.spec.ts +2 -2
- package/src/server/d1/fakeD1.ts +2 -2
- package/src/server/d1/index.ts +8 -8
- package/src/server/d1/invocation.spec.ts +6 -6
- package/src/server/d1/invocation.ts +2 -2
- package/src/server/d1/kysely.spec.ts +5 -5
- package/src/server/d1/kysely.ts +3 -3
- package/src/server/d1/limits.spec.ts +3 -3
- package/src/server/d1/limits.ts +1 -1
- package/src/server/d1/local.ts +3 -3
- package/src/server/d1/localBackup.ts +3 -3
- package/src/server/d1/remote.ts +3 -3
- package/src/server/d1/sameShape.spec.ts +4 -4
- package/src/server/d1/scheduling.spec.ts +1 -1
- package/src/server/d1/scheduling.ts +1 -1
- package/src/server/d1/values.ts +1 -1
- package/src/server/db/kysely.spec.ts +1 -1
- package/src/server/db/kysely.ts +1 -1
- package/src/server/dropzone/index.ts +2 -2
- package/src/server/dropzone/scan.spec.ts +1 -1
- package/src/server/errors.spec.ts +1 -1
- package/src/server/guard/argon2Binding.spec.ts +1 -1
- package/src/server/guard/argon2Binding.ts +1 -1
- package/src/server/guard/argon2Kat.spec.ts +1 -1
- package/src/server/guard/guard.spec.ts +3 -3
- package/src/server/guard/index.ts +5 -5
- package/src/server/guard/kdfWorker.spec.ts +3 -3
- package/src/server/guard/kdfWorker.ts +3 -3
- package/src/server/guard/kdfWorkerEntry.ts +1 -1
- package/src/server/guard/passwordVerifier.spec.ts +1 -1
- package/src/server/guard/passwordVerifier.ts +4 -4
- package/src/server/guard/revocationStore.spec.ts +2 -2
- package/src/server/guard/sessionSigner.ts +3 -3
- package/src/server/incidents/checks.ts +2 -2
- package/src/server/incidents/incidents.spec.ts +7 -7
- package/src/server/incidents/index.ts +8 -8
- package/src/server/incidents/migrations.ts +1 -1
- package/src/server/incidents/notifier.ts +3 -3
- package/src/server/incidents/reporter.ts +1 -1
- package/src/server/incidents/routes.ts +5 -5
- package/src/server/incidents/store.ts +3 -3
- package/src/server/index.ts +26 -26
- package/src/server/jobs/fireQueue.spec.ts +1 -1
- package/src/server/jobs/fireQueue.ts +3 -3
- package/src/server/jobs/index.ts +7 -7
- package/src/server/jobs/logger.ts +1 -1
- package/src/server/jobs/plainjobAdapter.spec.ts +1 -1
- package/src/server/jobs/polling.spec.ts +1 -1
- package/src/server/jobs/polling.ts +2 -2
- package/src/server/jobs/runner.spec.ts +3 -3
- package/src/server/jobs/runner.ts +5 -5
- package/src/server/jobs/timeout.spec.ts +1 -1
- package/src/server/master-lock/accounts.spec.ts +2 -2
- package/src/server/master-lock/accountsPage.spec.ts +4 -4
- package/src/server/master-lock/accountsPage.ts +1 -1
- package/src/server/master-lock/beaconNeverReachesTheWall.spec.ts +4 -4
- package/src/server/master-lock/guard.spec.ts +3 -3
- package/src/server/master-lock/guard.ts +3 -3
- package/src/server/master-lock/index.ts +7 -7
- package/src/server/master-lock/lockPage.spec.ts +2 -2
- package/src/server/master-lock/masterLock.spec.ts +2 -2
- package/src/server/master-lock/masterLock.ts +1 -10
- package/src/server/master-lock/principals.spec.ts +4 -4
- package/src/server/master-lock/principals.ts +1 -1
- package/src/server/master-lock/seed.spec.ts +3 -3
- package/src/server/master-lock/seed.ts +1 -1
- package/src/server/master-lock/store.ts +1 -1
- package/src/server/media-bun/image.spec.ts +1 -1
- package/src/server/media-bun/index.ts +3 -3
- package/src/server/media-bun/streaming.spec.ts +1 -1
- package/src/server/media-bun/video.spec.ts +1 -1
- package/src/server/media-bun/video.ts +1 -1
- package/src/server/metrics/normalizeRoute.spec.ts +1 -1
- package/src/server/metrics/telemetrySink.spec.ts +3 -3
- package/src/server/metrics/telemetrySink.ts +1 -1
- package/src/server/middleware/bodyLimit.spec.ts +1 -1
- package/src/server/middleware/correlationId.ts +1 -1
- package/src/server/middleware/corsAllowlist.spec.ts +2 -2
- package/src/server/middleware/errorEnvelope.ts +2 -2
- package/src/server/middleware/index.ts +10 -10
- package/src/server/middleware/localOrigin.spec.ts +1 -1
- package/src/server/middleware/rateLimit.spec.ts +1 -1
- package/src/server/middleware/rateLimit.ts +1 -1
- package/src/server/middleware/requestLogger.ts +5 -5
- package/src/server/middleware/zValidator.spec.ts +4 -4
- package/src/server/middleware/zValidator.ts +2 -2
- package/src/server/migration/runner.spec.ts +2 -2
- package/src/server/migration/runner.ts +1 -1
- package/src/server/net/outboundGuard.spec.ts +1 -1
- package/src/server/net/outboundGuard.ts +1 -1
- package/src/server/notifications/index.ts +7 -7
- package/src/server/notifications/migrations.ts +1 -1
- package/src/server/notifications/routes.ts +1 -1
- package/src/server/notifications/service.spec.ts +3 -3
- package/src/server/notifications/service.ts +2 -2
- package/src/server/paths/appDataHome.spec.ts +1 -1
- package/src/server/resume/index.ts +2 -2
- package/src/server/resume/resume.spec.ts +2 -2
- package/src/server/resume/routes.ts +1 -1
- package/src/server/retention/archive.spec.ts +2 -2
- package/src/server/retention/archive.ts +1 -1
- package/src/server/retention/fleet.ts +4 -4
- package/src/server/retention/index.ts +6 -6
- package/src/server/retention/policy.spec.ts +1 -1
- package/src/server/retention/store.spec.ts +3 -3
- package/src/server/retention/store.ts +3 -3
- package/src/server/retention/sweeper.spec.ts +5 -5
- package/src/server/retention/sweeper.ts +5 -5
- package/src/server/retention/target.spec.ts +3 -3
- package/src/server/retention/target.ts +5 -5
- package/src/server/search/index.ts +2 -2
- package/src/server/search/pgSearchProvider.pg.test.ts +2 -2
- package/src/server/search/pgSearchProvider.ts +2 -2
- package/src/server/sharing/index.ts +8 -8
- package/src/server/sharing/migrations.ts +1 -1
- package/src/server/sharing/router.spec.ts +2 -2
- package/src/server/sharing/router.ts +1 -1
- package/src/server/sharing/sql.ts +1 -1
- package/src/server/sharing/store.spec.ts +2 -2
- package/src/server/sharing/store.ts +3 -3
- package/src/server/sqlite/backup.spec.ts +1 -1
- package/src/server/sqlite/browse.spec.ts +1 -1
- package/src/server/sqlite/browse.ts +1 -1
- package/src/server/sqlite/export.spec.ts +2 -2
- package/src/server/sqlite/export.ts +1 -1
- package/src/server/sqlite/fts5.spec.ts +1 -1
- package/src/server/sqlite/health.spec.ts +1 -1
- package/src/server/sqlite/import.spec.ts +3 -3
- package/src/server/sqlite/import.ts +1 -1
- package/src/server/sqlite/index.ts +9 -9
- package/src/server/sqlite/readonlySql.spec.ts +1 -1
- package/src/server/sqlite/stats.spec.ts +1 -1
- package/src/server/sqlite/stats.ts +1 -1
- package/src/server/sqlite/viewer.spec.ts +1 -1
- package/src/server/sqlite/viewer.ts +2 -2
- package/src/server/storage/binaryServerProcessing.integration.spec.ts +2 -2
- package/src/server/storage/binaryServerProcessing.spec.ts +2 -2
- package/src/server/storage/binaryServerProcessing.ts +3 -3
- package/src/server/storage/binaryServerStore.ts +3 -3
- package/src/server/storage/binaryStore.spec.ts +2 -2
- package/src/server/storage/binaryStore.ts +1 -1
- package/src/server/storage/binaryStoreFake.ts +1 -1
- package/src/server/storage/chunked.integration.spec.ts +4 -4
- package/src/server/storage/diskStore.ts +1 -1
- package/src/server/storage/fileUploadClient-chunked.integration.spec.ts +6 -6
- package/src/server/storage/fileUploadClient.integration.spec.ts +7 -7
- package/src/server/storage/files/adapter.photo.display.spec.ts +10 -10
- package/src/server/storage/files/adapter.photo.spec.ts +9 -9
- package/src/server/storage/files/adapter.spec.ts +8 -8
- package/src/server/storage/files/adapter.ts +5 -5
- package/src/server/storage/files/catalogue.media-host.spec.ts +6 -6
- package/src/server/storage/files/catalogue.orderings.spec.ts +6 -6
- package/src/server/storage/files/catalogue.recover.spec.ts +5 -5
- package/src/server/storage/files/catalogue.sort.spec.ts +6 -6
- package/src/server/storage/files/catalogue.spec.ts +7 -7
- package/src/server/storage/files/catalogue.trash-import.spec.ts +6 -6
- package/src/server/storage/files/catalogue.ts +6 -6
- package/src/server/storage/files/chunkedUpload.spec.ts +7 -7
- package/src/server/storage/files/chunkedUpload.ts +4 -4
- package/src/server/storage/files/collections.spec.ts +6 -6
- package/src/server/storage/files/fileRoutes.replace.spec.ts +8 -8
- package/src/server/storage/files/fileRoutes.spec.ts +8 -8
- package/src/server/storage/files/fileRoutes.ts +6 -6
- package/src/server/storage/files/index.ts +9 -9
- package/src/server/storage/files/migrations.ts +1 -1
- package/src/server/storage/files/stack.spec.ts +5 -5
- package/src/server/storage/files/stack.ts +12 -12
- package/src/server/storage/files/storageOps.spec.ts +4 -4
- package/src/server/storage/files/storageOps.ts +1 -1
- package/src/server/storage/files/types.ts +1 -1
- package/src/server/storage/imageThumbnail.spec.ts +2 -2
- package/src/server/storage/imageThumbnail.ts +1 -1
- package/src/server/storage/index.ts +15 -15
- package/src/server/storage/mountMediaRoutes.ts +4 -4
- package/src/server/storage/objectStore.spec.ts +1 -1
- package/src/server/storage/objectStoreMediaStore.ts +1 -1
- package/src/server/storage/s3ObjectStore.ts +1 -1
- package/src/server/storage/sources.ts +3 -3
- package/src/server/storage/storage.spec.ts +6 -6
- package/src/server/storage/streamRange.ts +1 -1
- package/src/server/storage/streamToken.ts +1 -1
- package/src/server/storage/transcodeJobs.spec.ts +1 -1
- package/src/server/storage/videoDerivativeKeys.spec.ts +1 -1
- package/src/server/storage/videoProcessor.posterOnly.spec.ts +4 -4
- package/src/server/storage/videoProcessor.ts +2 -2
- package/src/server/sync/alarm.spec.ts +1 -1
- package/src/server/sync/commands.spec.ts +1 -1
- package/src/server/sync/engine.spec.ts +4 -4
- package/src/server/sync/engine.ts +2 -2
- package/src/server/sync/http.ts +5 -5
- package/src/server/sync/httpRemote.spec.ts +1 -1
- package/src/server/sync/index.ts +11 -11
- package/src/server/sync/opLog.spec.ts +1 -1
- package/src/server/sync/opLog.ts +1 -1
- package/src/server/sync/planner.spec.ts +1 -1
- package/src/server/sync/signal.spec.ts +1 -1
- package/src/server/sync/signal.ts +1 -1
- package/src/server/sync/status.spec.ts +1 -1
- package/src/server/sync/timer.spec.ts +3 -3
- package/src/server/sync/timer.ts +3 -3
- package/src/server/sync/tokens.spec.ts +1 -1
- package/src/server/sync/tokens.ts +4 -3
- package/src/server/ws/eventBus.spec.ts +2 -2
- package/src/server/ws/eventBus.ts +1 -1
- package/src/server/ws/hub.integration.spec.ts +5 -5
- package/src/server/ws/hub.spec.ts +3 -3
- package/src/server/ws/hub.ts +4 -4
- package/src/server/ws/index.ts +5 -5
- package/src/server/ws/presence.spec.ts +3 -3
- package/src/server/ws/presence.ts +1 -1
- package/src/server/ws/room.spec.ts +2 -2
- package/src/server/ws/room.ts +1 -1
- package/src/server/ws/types.ts +1 -1
- 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
|
package/src/server/d1/kysely.ts
CHANGED
|
@@ -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
|
package/src/server/d1/limits.ts
CHANGED
|
@@ -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. */
|
package/src/server/d1/local.ts
CHANGED
|
@@ -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. */
|
package/src/server/d1/remote.ts
CHANGED
|
@@ -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,
|
|
@@ -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';
|
package/src/server/d1/values.ts
CHANGED
|
@@ -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,
|
package/src/server/db/kysely.ts
CHANGED
|
@@ -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";
|
|
@@ -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 };
|
|
@@ -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';
|
|
@@ -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 {
|
|
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 `
|
|
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
|
|
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";
|
|
@@ -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;
|