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
package/src/server/index.ts
CHANGED
|
@@ -19,7 +19,7 @@ export {
|
|
|
19
19
|
type UploadedFile,
|
|
20
20
|
} from 'cursedbelt-core/ctgr';
|
|
21
21
|
// ── HTTP app ────────────────────────────────────────────────────────────────
|
|
22
|
-
export { type CreateAppOpts, createApp, type ServeBunOpts, serveBun } from './app';
|
|
22
|
+
export { type CreateAppOpts, createApp, type ServeBunOpts, serveBun } from './app.js';
|
|
23
23
|
// ── Auth toolkit (task 26): jose JWT, cookies, CSRF, getOnly, session store, ──
|
|
24
24
|
// login throttle, argon2id passwords, TOTP, vault crypto, the composed middleware.
|
|
25
25
|
export {
|
|
@@ -65,11 +65,11 @@ export {
|
|
|
65
65
|
verifyRecoveryCode,
|
|
66
66
|
verifyToken,
|
|
67
67
|
verifyTotpCode,
|
|
68
|
-
} from './auth';
|
|
69
|
-
export type { CursedbeltEnv, CursedbeltVariables } from './context';
|
|
70
|
-
export { buildRoutes, CTGR_ROUTE_PATTERN, getCtgrDecoded, unGETify } from './ctgr';
|
|
68
|
+
} from './auth/index.js';
|
|
69
|
+
export type { CursedbeltEnv, CursedbeltVariables } from './context.js';
|
|
70
|
+
export { buildRoutes, CTGR_ROUTE_PATTERN, getCtgrDecoded, unGETify } from './ctgr.js';
|
|
71
71
|
// ── Kysely-typed plumbing tables ────────────────────────────────────────────
|
|
72
|
-
export { createKysely, type PlumbingDb } from './db/kysely';
|
|
72
|
+
export { createKysely, type PlumbingDb } from './db/kysely.js';
|
|
73
73
|
export type {
|
|
74
74
|
AppConfigRow,
|
|
75
75
|
AuthSessionRow,
|
|
@@ -81,7 +81,7 @@ export type {
|
|
|
81
81
|
PlumbingSchema,
|
|
82
82
|
RequestMetricRow,
|
|
83
83
|
SystemSampleRow,
|
|
84
|
-
} from './db/plumbingTypes';
|
|
84
|
+
} from './db/plumbingTypes.js';
|
|
85
85
|
// ── Errors ──────────────────────────────────────────────────────────────────
|
|
86
86
|
export {
|
|
87
87
|
ApiError,
|
|
@@ -93,7 +93,7 @@ export {
|
|
|
93
93
|
VALIDATION_ERROR_CODE,
|
|
94
94
|
type ValidationIssue,
|
|
95
95
|
validationEnvelope,
|
|
96
|
-
} from './errors';
|
|
96
|
+
} from './errors.js';
|
|
97
97
|
// ── Jobs & scheduler (task 29): plainjob-backed cron runner + restart-aware ───
|
|
98
98
|
// pollers + the due-row fire queue. App job *definitions* stay business.
|
|
99
99
|
export {
|
|
@@ -114,7 +114,7 @@ export {
|
|
|
114
114
|
JobTimeoutError,
|
|
115
115
|
type PollingJob,
|
|
116
116
|
type PollingJobOpts,
|
|
117
|
-
} from './jobs';
|
|
117
|
+
} from './jobs/index.js';
|
|
118
118
|
// ── Media adapter (task 19): image rendering via sharp (lazy/optional peer) + ──
|
|
119
119
|
// video trim / probe / thumbnail via native ffmpeg. Also at the dedicated
|
|
120
120
|
// media-bun entry below; sharp is imported lazily inside renderImage,
|
|
@@ -135,15 +135,15 @@ export {
|
|
|
135
135
|
trimVideo,
|
|
136
136
|
type VideoCodecPlan,
|
|
137
137
|
videoCodecPlan,
|
|
138
|
-
} from './media-bun';
|
|
138
|
+
} from './media-bun/index.js';
|
|
139
139
|
// ── Metrics ───────────────────────────────────────────────────────────────────
|
|
140
140
|
export {
|
|
141
141
|
createMetricsBuffer,
|
|
142
142
|
type MetricRow,
|
|
143
143
|
type MetricsBuffer,
|
|
144
144
|
type MetricsBufferOptions,
|
|
145
|
-
} from './metrics/metricsBuffer';
|
|
146
|
-
export { normalizeRoute } from './metrics/normalizeRoute';
|
|
145
|
+
} from './metrics/metricsBuffer.js';
|
|
146
|
+
export { normalizeRoute } from './metrics/normalizeRoute.js';
|
|
147
147
|
export {
|
|
148
148
|
type AnalyticsEngineDataset,
|
|
149
149
|
createTelemetrySink,
|
|
@@ -152,26 +152,26 @@ export {
|
|
|
152
152
|
type TelemetrySink,
|
|
153
153
|
type TelemetrySinkOptions,
|
|
154
154
|
toDataPoint,
|
|
155
|
-
} from './metrics/telemetrySink';
|
|
155
|
+
} from './metrics/telemetrySink.js';
|
|
156
156
|
// ── Middleware ────────────────────────────────────────────────────────────────
|
|
157
|
-
export { correlationId } from './middleware/correlationId';
|
|
158
|
-
export { type CorsOpts, corsAllowlist, corsOptsFromEnv } from './middleware/corsAllowlist';
|
|
159
|
-
export { errorEnvelope } from './middleware/errorEnvelope';
|
|
160
|
-
export { crossOriginRefusal } from './middleware/localOrigin';
|
|
161
|
-
export { clientIp, createRateLimiter, type RateLimitOpts } from './middleware/rateLimit';
|
|
162
|
-
export { type RequestLoggerOpts, requestLogger } from './middleware/requestLogger';
|
|
157
|
+
export { correlationId } from './middleware/correlationId.js';
|
|
158
|
+
export { type CorsOpts, corsAllowlist, corsOptsFromEnv } from './middleware/corsAllowlist.js';
|
|
159
|
+
export { errorEnvelope } from './middleware/errorEnvelope.js';
|
|
160
|
+
export { crossOriginRefusal } from './middleware/localOrigin.js';
|
|
161
|
+
export { clientIp, createRateLimiter, type RateLimitOpts } from './middleware/rateLimit.js';
|
|
162
|
+
export { type RequestLoggerOpts, requestLogger } from './middleware/requestLogger.js';
|
|
163
163
|
export {
|
|
164
164
|
type CspDirectives,
|
|
165
165
|
type SecurityHeadersOpts,
|
|
166
166
|
securityHeaders,
|
|
167
|
-
} from './middleware/securityHeaders';
|
|
167
|
+
} from './middleware/securityHeaders.js';
|
|
168
168
|
// ── zod validation toolkit ────────────────────────────────────────────────────
|
|
169
169
|
// (the `validationEnvelope`/`toValidationIssues`/`ValidationIssue` builders now
|
|
170
170
|
// live with the canonical envelope in `./errors`, re-exported above.)
|
|
171
|
-
export { type ZValidatorTarget, zValidator } from './middleware/zValidator';
|
|
171
|
+
export { type ZValidatorTarget, zValidator } from './middleware/zValidator.js';
|
|
172
172
|
// ── Migration runner ──────────────────────────────────────────────────────────
|
|
173
|
-
export { addColumnIfMissing, applyRecommendedPragmas, columnExists, runMigrations } from './migration/runner';
|
|
174
|
-
export type { Migration } from './migration/types';
|
|
173
|
+
export { addColumnIfMissing, applyRecommendedPragmas, columnExists, runMigrations } from './migration/runner.js';
|
|
174
|
+
export type { Migration } from './migration/types.js';
|
|
175
175
|
// ── Audit log: the SQLite-backed AuditSink cursedshell's service dispatch ─────
|
|
176
176
|
// writes to (see `cwip/audit` for the storage-agnostic contract + the
|
|
177
177
|
// zero-config in-memory default).
|
|
@@ -181,7 +181,7 @@ export {
|
|
|
181
181
|
auditStateAtVersion,
|
|
182
182
|
auditStep,
|
|
183
183
|
createSqliteAuditSink,
|
|
184
|
-
} from './audit';
|
|
184
|
+
} from './audit/index.js';
|
|
185
185
|
// ── SQLite toolkit extras (task 30): FTS5 ranked search + DDL generator, the ───
|
|
186
186
|
// read-only DB viewer middleware, the VACUUM-INTO backup service, DB health probes.
|
|
187
187
|
export {
|
|
@@ -232,7 +232,7 @@ export {
|
|
|
232
232
|
type TableExportFormat,
|
|
233
233
|
type TableStat,
|
|
234
234
|
UnknownTableError,
|
|
235
|
-
} from './sqlite';
|
|
235
|
+
} from './sqlite/index.js';
|
|
236
236
|
// ── WebSocket hub (task 28): Bun-native upgrade, channel registry, heartbeat, ──
|
|
237
237
|
// presence-as-a-view, room helpers, and the push-only event-bus subset (ru).
|
|
238
238
|
export {
|
|
@@ -254,9 +254,9 @@ export {
|
|
|
254
254
|
type WsHub,
|
|
255
255
|
type WsHubOpts,
|
|
256
256
|
type WsMessage,
|
|
257
|
-
} from './ws';
|
|
257
|
+
} from './ws/index.js';
|
|
258
258
|
|
|
259
259
|
// The app-data root resolver. Exported at the root (2026-09-15, task 148) because
|
|
260
260
|
// `cursedbelt-cc`'s localHost needs it and it answers a question about the HOST, not
|
|
261
261
|
// about any one subsystem — so no subpath barrel is its natural home.
|
|
262
|
-
export { resolveAppDataHome } from './paths/appDataHome';
|
|
262
|
+
export { resolveAppDataHome } from './paths/appDataHome.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Database } from 'bun:sqlite';
|
|
2
2
|
import { afterEach, beforeEach, describe, expect, test } from 'bun:test';
|
|
3
|
-
import { createFireQueue } from './fireQueue';
|
|
3
|
+
import { createFireQueue } from './fireQueue.js';
|
|
4
4
|
|
|
5
5
|
const JOB_STATE_DDL = `CREATE TABLE job_state (name TEXT PRIMARY KEY, last_run_at TEXT, meta TEXT)`;
|
|
6
6
|
const sleep = (ms: number) => new Promise<void>((r) => setTimeout(r, ms));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { defaultJobLogger } from './logger';
|
|
2
|
-
import { createPollingJob } from './polling';
|
|
3
|
-
import { DEFAULT_FIRE_INTERVAL_MS, type FireQueue, type FireQueueOpts } from './types';
|
|
1
|
+
import { defaultJobLogger } from './logger.js';
|
|
2
|
+
import { createPollingJob } from './polling.js';
|
|
3
|
+
import { DEFAULT_FIRE_INTERVAL_MS, type FireQueue, type FireQueueOpts } from './types.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* The "select due rows → deliver each → mark sent" pattern, as a {@link PollingJob}.
|
package/src/server/jobs/index.ts
CHANGED
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
// restart-aware pollers, the due-row fire queue, run auditing); app job
|
|
4
4
|
// *definitions* stay business and consume these primitives.
|
|
5
5
|
|
|
6
|
-
export { createFireQueue } from './fireQueue';
|
|
7
|
-
export { defaultJobLogger } from './logger';
|
|
8
|
-
export { createPlainjobConnection } from './plainjobAdapter';
|
|
9
|
-
export { createPollingJob } from './polling';
|
|
10
|
-
export { createJobRunner } from './runner';
|
|
11
|
-
export { JobTimeoutError } from './timeout';
|
|
6
|
+
export { createFireQueue } from './fireQueue.js';
|
|
7
|
+
export { defaultJobLogger } from './logger.js';
|
|
8
|
+
export { createPlainjobConnection } from './plainjobAdapter.js';
|
|
9
|
+
export { createPollingJob } from './polling.js';
|
|
10
|
+
export { createJobRunner } from './runner.js';
|
|
11
|
+
export { JobTimeoutError } from './timeout.js';
|
|
12
12
|
export {
|
|
13
13
|
type CreateJobRunnerOptions,
|
|
14
14
|
DEFAULT_FIRE_INTERVAL_MS,
|
|
@@ -24,4 +24,4 @@ export {
|
|
|
24
24
|
type JobRunRecord,
|
|
25
25
|
type PollingJob,
|
|
26
26
|
type PollingJobOpts,
|
|
27
|
-
} from './types';
|
|
27
|
+
} from './types.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Database } from 'bun:sqlite';
|
|
2
2
|
import { afterEach, beforeEach, describe, expect, test } from 'bun:test';
|
|
3
|
-
import { createPlainjobConnection } from './plainjobAdapter';
|
|
3
|
+
import { createPlainjobConnection } from './plainjobAdapter.js';
|
|
4
4
|
|
|
5
5
|
describe('createPlainjobConnection', () => {
|
|
6
6
|
let db: Database;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Database } from 'bun:sqlite';
|
|
2
2
|
import { afterEach, beforeEach, describe, expect, test } from 'bun:test';
|
|
3
|
-
import { createPollingJob } from './polling';
|
|
3
|
+
import { createPollingJob } from './polling.js';
|
|
4
4
|
|
|
5
5
|
const JOB_STATE_DDL = `CREATE TABLE job_state (
|
|
6
6
|
name TEXT PRIMARY KEY,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { defaultJobLogger } from './logger';
|
|
2
|
-
import type { JobContext, PollingJob, PollingJobOpts } from './types';
|
|
1
|
+
import { defaultJobLogger } from './logger.js';
|
|
2
|
+
import type { JobContext, PollingJob, PollingJobOpts } from './types.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* A periodic, restart-aware poller — the engine behind ca's `setInterval`
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Database } from 'bun:sqlite';
|
|
2
2
|
import { afterEach, beforeEach, describe, expect, test } from 'bun:test';
|
|
3
|
-
import { ApiError } from '../errors';
|
|
4
|
-
import { createJobRunner } from './runner';
|
|
5
|
-
import { JobTimeoutError } from './timeout';
|
|
3
|
+
import { ApiError } from '../errors.js';
|
|
4
|
+
import { createJobRunner } from './runner.js';
|
|
5
|
+
import { JobTimeoutError } from './timeout.js';
|
|
6
6
|
|
|
7
7
|
const JOB_RUNS_DDL = `CREATE TABLE job_runs (
|
|
8
8
|
id TEXT PRIMARY KEY,
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { Database } from 'bun:sqlite';
|
|
2
2
|
import { defineQueue, defineWorker, type Queue, type Worker } from 'plainjob';
|
|
3
|
-
import { ApiError } from '../errors';
|
|
4
|
-
import { defaultJobLogger } from './logger';
|
|
5
|
-
import { createPlainjobConnection } from './plainjobAdapter';
|
|
6
|
-
import { withTimeout } from './timeout';
|
|
3
|
+
import { ApiError } from '../errors.js';
|
|
4
|
+
import { defaultJobLogger } from './logger.js';
|
|
5
|
+
import { createPlainjobConnection } from './plainjobAdapter.js';
|
|
6
|
+
import { withTimeout } from './timeout.js';
|
|
7
7
|
import {
|
|
8
8
|
type CreateJobRunnerOptions,
|
|
9
9
|
DEFAULT_JOB_RETENTION,
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
type JobLogger,
|
|
14
14
|
type JobRunner,
|
|
15
15
|
type JobRunRecord,
|
|
16
|
-
} from './types';
|
|
16
|
+
} from './types.js';
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
19
|
* Create the durable cron job runner — a thin facade over **plainjob** (MIT,
|
|
@@ -20,8 +20,8 @@ import {
|
|
|
20
20
|
type MasterLockKdfParams,
|
|
21
21
|
deriveMasterLockVerifier,
|
|
22
22
|
} from "cursedbelt-core/master-lock";
|
|
23
|
-
import { FIRST_ACCOUNT_ID, MasterLock, readRecord } from "./masterLock";
|
|
24
|
-
import { createMemoryMasterLockStore } from "./store";
|
|
23
|
+
import { FIRST_ACCOUNT_ID, MasterLock, readRecord } from "./masterLock.js";
|
|
24
|
+
import { createMemoryMasterLockStore } from "./store.js";
|
|
25
25
|
|
|
26
26
|
/** `iter: 1` — the ROUND COUNT is pinned in `cursedbelt-core`'s `kdf.spec.ts`; 600k × N
|
|
27
27
|
* argon2 verifies here would be minutes of gate for nothing this file is testing. */
|
|
@@ -22,10 +22,10 @@ import {
|
|
|
22
22
|
MASTER_LOCK_ACCOUNTS_SCRIPT,
|
|
23
23
|
MASTER_LOCK_ACCOUNTS_STYLE,
|
|
24
24
|
accountsPageHtml,
|
|
25
|
-
} from "./accountsPage";
|
|
26
|
-
import { createMasterLockGuard } from "./guard";
|
|
27
|
-
import { MasterLock } from "./masterLock";
|
|
28
|
-
import { createMemoryMasterLockStore } from "./store";
|
|
25
|
+
} from "./accountsPage.js";
|
|
26
|
+
import { createMasterLockGuard } from "./guard.js";
|
|
27
|
+
import { MasterLock } from "./masterLock.js";
|
|
28
|
+
import { createMemoryMasterLockStore } from "./store.js";
|
|
29
29
|
|
|
30
30
|
const KDF: MasterLockKdfParams = {
|
|
31
31
|
v: 1,
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
* only be watching one of them.
|
|
34
34
|
*/
|
|
35
35
|
import { MASTER_LOCK_PATHS, MASTER_LOCK_PREFIX } from "cursedbelt-core/master-lock";
|
|
36
|
-
import { MASTER_LOCK_DERIVE_SOURCE, type LockPageOptions } from "./lockPage";
|
|
36
|
+
import { MASTER_LOCK_DERIVE_SOURCE, type LockPageOptions } from "./lockPage.js";
|
|
37
37
|
|
|
38
38
|
/**
|
|
39
39
|
* The page's own two assets.
|
|
@@ -12,10 +12,10 @@ import {
|
|
|
12
12
|
foreignScriptSources,
|
|
13
13
|
htmlCarriesWebAnalytics,
|
|
14
14
|
scriptsRefusedByCsp,
|
|
15
|
-
} from "../analytics";
|
|
16
|
-
import { MASTER_LOCK_CSP, createMasterLockGuard } from "./guard";
|
|
17
|
-
import { MasterLock } from "./masterLock";
|
|
18
|
-
import { createMemoryMasterLockStore } from "./store";
|
|
15
|
+
} from "../analytics/index.js";
|
|
16
|
+
import { MASTER_LOCK_CSP, createMasterLockGuard } from "./guard.js";
|
|
17
|
+
import { MasterLock } from "./masterLock.js";
|
|
18
|
+
import { createMemoryMasterLockStore } from "./store.js";
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
21
|
* 🔴 **The wall never carries the beacon, and the public shells always do.** Both halves, in
|
|
@@ -13,9 +13,9 @@ import {
|
|
|
13
13
|
deriveMasterLockVerifier,
|
|
14
14
|
newMasterLockKdfParams,
|
|
15
15
|
} from "cursedbelt-core/master-lock";
|
|
16
|
-
import { createMasterLockGuard } from "./guard";
|
|
17
|
-
import { MasterLock } from "./masterLock";
|
|
18
|
-
import { createMemoryMasterLockStore } from "./store";
|
|
16
|
+
import { createMasterLockGuard } from "./guard.js";
|
|
17
|
+
import { MasterLock } from "./masterLock.js";
|
|
18
|
+
import { createMemoryMasterLockStore } from "./store.js";
|
|
19
19
|
|
|
20
20
|
const KDF: MasterLockKdfParams = {
|
|
21
21
|
v: 1,
|
|
@@ -22,9 +22,9 @@ import {
|
|
|
22
22
|
MASTER_LOCK_ACCOUNTS_SCRIPT,
|
|
23
23
|
MASTER_LOCK_ACCOUNTS_STYLE,
|
|
24
24
|
accountsPageHtml,
|
|
25
|
-
} from "./accountsPage";
|
|
26
|
-
import { LOCK_SCRIPT, LOCK_STYLE, type LockPageOptions, lockPageHtml } from "./lockPage";
|
|
27
|
-
import type { MasterLock } from "./masterLock";
|
|
25
|
+
} from "./accountsPage.js";
|
|
26
|
+
import { LOCK_SCRIPT, LOCK_STYLE, type LockPageOptions, lockPageHtml } from "./lockPage.js";
|
|
27
|
+
import type { MasterLock } from "./masterLock.js";
|
|
28
28
|
|
|
29
29
|
export interface MasterLockGuardOptions extends LockPageOptions {
|
|
30
30
|
/**
|
|
@@ -26,26 +26,26 @@ export {
|
|
|
26
26
|
MASTER_LOCK_ACCOUNTS_STYLE,
|
|
27
27
|
MASTER_LOCK_MIN_PASSWORD_LENGTH,
|
|
28
28
|
accountsPageHtml,
|
|
29
|
-
} from "./accountsPage";
|
|
29
|
+
} from "./accountsPage.js";
|
|
30
30
|
export {
|
|
31
31
|
MASTER_LOCK_CSP,
|
|
32
32
|
type MasterLockGuard,
|
|
33
33
|
type MasterLockGuardOptions,
|
|
34
34
|
createMasterLockGuard,
|
|
35
|
-
} from "./guard";
|
|
35
|
+
} from "./guard.js";
|
|
36
36
|
export {
|
|
37
37
|
LOCK_SCRIPT,
|
|
38
38
|
LOCK_STYLE,
|
|
39
39
|
MASTER_LOCK_DERIVE_SOURCE,
|
|
40
40
|
type LockPageOptions,
|
|
41
41
|
lockPageHtml,
|
|
42
|
-
} from "./lockPage";
|
|
42
|
+
} from "./lockPage.js";
|
|
43
43
|
export {
|
|
44
44
|
MASTER_LOCK_PRINCIPAL_KEY_PREFIX,
|
|
45
45
|
MasterLockDirectory,
|
|
46
46
|
type MasterLockDirectoryOptions,
|
|
47
47
|
masterLockPrincipalKey,
|
|
48
|
-
} from "./principals";
|
|
48
|
+
} from "./principals.js";
|
|
49
49
|
export {
|
|
50
50
|
FIRST_ACCOUNT_ID,
|
|
51
51
|
MasterLock,
|
|
@@ -57,17 +57,17 @@ export {
|
|
|
57
57
|
type MasterLockStore,
|
|
58
58
|
type MasterLockUnlockResult,
|
|
59
59
|
readRecord,
|
|
60
|
-
} from "./masterLock";
|
|
60
|
+
} from "./masterLock.js";
|
|
61
61
|
export {
|
|
62
62
|
DEFAULT_SEED_IDLE_MS,
|
|
63
63
|
generateStagePassword,
|
|
64
64
|
type MintMasterLockSeedOptions,
|
|
65
65
|
mintMasterLockSeed,
|
|
66
66
|
serializeMasterLockSeed,
|
|
67
|
-
} from "./seed";
|
|
67
|
+
} from "./seed.js";
|
|
68
68
|
export {
|
|
69
69
|
MASTER_LOCK_SETTING_KEY,
|
|
70
70
|
MASTER_LOCK_STATE_KEY,
|
|
71
71
|
createKvMasterLockStore,
|
|
72
72
|
createMemoryMasterLockStore,
|
|
73
|
-
} from "./store";
|
|
73
|
+
} from "./store.js";
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
*/
|
|
14
14
|
import { describe, expect, test } from "bun:test";
|
|
15
15
|
import { MASTER_LOCK_PATHS, type MasterLockKdfParams, deriveMasterLockVerifier } from "cursedbelt-core/master-lock";
|
|
16
|
-
import { MASTER_LOCK_ACCOUNTS_SCRIPT } from "./accountsPage";
|
|
17
|
-
import { LOCK_SCRIPT, LOCK_STYLE, MASTER_LOCK_DERIVE_SOURCE, lockPageHtml } from "./lockPage";
|
|
16
|
+
import { MASTER_LOCK_ACCOUNTS_SCRIPT } from "./accountsPage.js";
|
|
17
|
+
import { LOCK_SCRIPT, LOCK_STYLE, MASTER_LOCK_DERIVE_SOURCE, lockPageHtml } from "./lockPage.js";
|
|
18
18
|
|
|
19
19
|
const KDF: MasterLockKdfParams = {
|
|
20
20
|
v: 1,
|
|
@@ -13,8 +13,8 @@ import {
|
|
|
13
13
|
deriveMasterLockVerifier,
|
|
14
14
|
newMasterLockKdfParams,
|
|
15
15
|
} from "cursedbelt-core/master-lock";
|
|
16
|
-
import { MasterLock, readRecord } from "./masterLock";
|
|
17
|
-
import { createMemoryMasterLockStore } from "./store";
|
|
16
|
+
import { MasterLock, readRecord } from "./masterLock.js";
|
|
17
|
+
import { createMemoryMasterLockStore } from "./store.js";
|
|
18
18
|
|
|
19
19
|
const KDF: MasterLockKdfParams = {
|
|
20
20
|
v: 1,
|
|
@@ -48,6 +48,7 @@
|
|
|
48
48
|
* one who has been guessing.
|
|
49
49
|
*/
|
|
50
50
|
import { createHash } from "node:crypto";
|
|
51
|
+
import { constantTimeEqual } from "cwip/constant-time";
|
|
51
52
|
import {
|
|
52
53
|
type MasterLockAccountSummary,
|
|
53
54
|
type MasterLockKdfParams,
|
|
@@ -1064,13 +1065,3 @@ function presentedTokens(req: Request): string[] {
|
|
|
1064
1065
|
}
|
|
1065
1066
|
return out;
|
|
1066
1067
|
}
|
|
1067
|
-
|
|
1068
|
-
function constantTimeEqual(a: string, b: string): boolean {
|
|
1069
|
-
const x = Buffer.from(a);
|
|
1070
|
-
const y = Buffer.from(b);
|
|
1071
|
-
// A length difference is already a non-match, and `timingSafeEqual` throws on one.
|
|
1072
|
-
if (x.length !== y.length) return false;
|
|
1073
|
-
let diff = 0;
|
|
1074
|
-
for (let i = 0; i < x.length; i += 1) diff |= x[i] ^ y[i];
|
|
1075
|
-
return diff === 0;
|
|
1076
|
-
}
|
|
@@ -22,10 +22,10 @@ import {
|
|
|
22
22
|
deriveMasterLockVerifier,
|
|
23
23
|
newMasterLockKdfParams,
|
|
24
24
|
} from "cursedbelt-core/master-lock";
|
|
25
|
-
import { createMasterLockGuard } from "./guard";
|
|
26
|
-
import { MasterLock, type MasterLockStore } from "./masterLock";
|
|
27
|
-
import { MASTER_LOCK_PRINCIPAL_KEY_PREFIX, MasterLockDirectory, masterLockPrincipalKey } from "./principals";
|
|
28
|
-
import { createMemoryMasterLockStore } from "./store";
|
|
25
|
+
import { createMasterLockGuard } from "./guard.js";
|
|
26
|
+
import { MasterLock, type MasterLockStore } from "./masterLock.js";
|
|
27
|
+
import { MASTER_LOCK_PRINCIPAL_KEY_PREFIX, MasterLockDirectory, masterLockPrincipalKey } from "./principals.js";
|
|
28
|
+
import { createMemoryMasterLockStore } from "./store.js";
|
|
29
29
|
|
|
30
30
|
const KDF: MasterLockKdfParams = {
|
|
31
31
|
v: 1,
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
* record is stored under, which is the only thing it ever really was.
|
|
47
47
|
*/
|
|
48
48
|
import { createHash } from "node:crypto";
|
|
49
|
-
import { MasterLock, type MasterLockStore, readRecord } from "./masterLock";
|
|
49
|
+
import { MasterLock, type MasterLockStore, readRecord } from "./masterLock.js";
|
|
50
50
|
|
|
51
51
|
/** Namespace for every per-person record, so one glance at the table says what they are. */
|
|
52
52
|
export const MASTER_LOCK_PRINCIPAL_KEY_PREFIX = "master_lock:principal:";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { describe, expect, it } from "bun:test";
|
|
2
2
|
import { deriveMasterLockVerifier } from "cursedbelt-core/master-lock/kdf";
|
|
3
|
-
import { MasterLock, readRecord } from "./masterLock";
|
|
4
|
-
import { createMemoryMasterLockStore } from "./store";
|
|
5
|
-
import { generateStagePassword, mintMasterLockSeed, serializeMasterLockSeed } from "./seed";
|
|
3
|
+
import { MasterLock, readRecord } from "./masterLock.js";
|
|
4
|
+
import { createMemoryMasterLockStore } from "./store.js";
|
|
5
|
+
import { generateStagePassword, mintMasterLockSeed, serializeMasterLockSeed } from "./seed.js";
|
|
6
6
|
|
|
7
7
|
describe("mintMasterLockSeed", () => {
|
|
8
8
|
// The whole point: a seed minted here must UNLOCK, through the real engine,
|
|
@@ -28,7 +28,7 @@ import {
|
|
|
28
28
|
deriveMasterLockVerifier,
|
|
29
29
|
newMasterLockKdfParams,
|
|
30
30
|
} from "cursedbelt-core/master-lock/kdf";
|
|
31
|
-
import { FIRST_ACCOUNT_ID, type MasterLockRecord } from "./masterLock";
|
|
31
|
+
import { FIRST_ACCOUNT_ID, type MasterLockRecord } from "./masterLock.js";
|
|
32
32
|
|
|
33
33
|
/**
|
|
34
34
|
* The idle window a freshly minted lock starts with.
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* `app_settings`, a `Map` in a test. Asking for a whole table would be asking each adopter
|
|
7
7
|
* to write a migration for three fields.
|
|
8
8
|
*/
|
|
9
|
-
import type { MasterLockStore } from "./masterLock";
|
|
9
|
+
import type { MasterLockStore } from "./masterLock.js";
|
|
10
10
|
|
|
11
11
|
/** The default key, so two apps' rows look the same when somebody goes looking. */
|
|
12
12
|
export const MASTER_LOCK_SETTING_KEY = "master_lock:record";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { describe, expect, test } from 'bun:test';
|
|
2
2
|
import type { ImagePipelineSpec } from 'cursedbelt-core/media';
|
|
3
|
-
import { renderImage } from './image';
|
|
3
|
+
import { renderImage } from './image.js';
|
|
4
4
|
|
|
5
5
|
// sharp is an OPTIONAL peer — skip this whole suite cleanly when it isn't installed.
|
|
6
6
|
let sharpFactory: typeof import('sharp').default | null = null;
|
|
@@ -14,7 +14,7 @@ export {
|
|
|
14
14
|
type VideoCodecPlan,
|
|
15
15
|
videoCodecPlan,
|
|
16
16
|
} from 'cursedbelt-core/media/ffmpeg';
|
|
17
|
-
export { renderImage } from './image';
|
|
17
|
+
export { renderImage } from './image.js';
|
|
18
18
|
// Streaming pipeline: faststart remux, HLS adaptive-bitrate ladder, scrub sprite + WebVTT,
|
|
19
19
|
// poster, codec-aware probe — pure builders/parsers (testable without ffmpeg).
|
|
20
20
|
export {
|
|
@@ -39,7 +39,7 @@ export {
|
|
|
39
39
|
type SpritePlan,
|
|
40
40
|
spriteArgs,
|
|
41
41
|
type VideoProbe,
|
|
42
|
-
} from './streaming';
|
|
42
|
+
} from './streaming.js';
|
|
43
43
|
export {
|
|
44
44
|
extractFrameJpeg,
|
|
45
45
|
extractThumbnail,
|
|
@@ -49,4 +49,4 @@ export {
|
|
|
49
49
|
probeVideoStream,
|
|
50
50
|
runFfmpegProgress,
|
|
51
51
|
trimVideo,
|
|
52
|
-
} from './video';
|
|
52
|
+
} from './video.js';
|
|
@@ -3,7 +3,7 @@ import { mkdtempSync, rmSync } from 'node:fs';
|
|
|
3
3
|
import { tmpdir } from 'node:os';
|
|
4
4
|
import { join } from 'node:path';
|
|
5
5
|
import type { VideoProgressEvent } from 'cursedbelt-core/media';
|
|
6
|
-
import { extractThumbnail, isFfmpegAvailable, probeMedia, trimVideo } from './video';
|
|
6
|
+
import { extractThumbnail, isFfmpegAvailable, probeMedia, trimVideo } from './video.js';
|
|
7
7
|
|
|
8
8
|
// ffmpeg/ffprobe are required for these; skip cleanly if absent (CI without them).
|
|
9
9
|
const haveFfmpeg = await isFfmpegAvailable();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { describe, expect, test } from 'bun:test';
|
|
2
2
|
import { Hono } from 'hono';
|
|
3
|
-
import { normalizeRoute } from './normalizeRoute';
|
|
3
|
+
import { normalizeRoute } from './normalizeRoute.js';
|
|
4
4
|
|
|
5
5
|
// Probe through a real Hono app so `c.req.routePath` is the genuine matched pattern.
|
|
6
6
|
async function labelFor(register: (app: Hono) => void, request: Request): Promise<string> {
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { Database } from 'bun:sqlite';
|
|
2
2
|
import { beforeEach, describe, expect, it } from 'bun:test';
|
|
3
3
|
import { Hono } from 'hono';
|
|
4
|
-
import { type RequestLoggerOpts, requestLogger } from '../middleware/requestLogger';
|
|
5
|
-
import { createMetricsBuffer } from './metricsBuffer';
|
|
4
|
+
import { type RequestLoggerOpts, requestLogger } from '../middleware/requestLogger.js';
|
|
5
|
+
import { createMetricsBuffer } from './metricsBuffer.js';
|
|
6
6
|
import {
|
|
7
7
|
type AnalyticsEngineDataset,
|
|
8
8
|
createTelemetrySink,
|
|
9
9
|
type TelemetrySink,
|
|
10
10
|
toDataPoint,
|
|
11
|
-
} from './telemetrySink';
|
|
11
|
+
} from './telemetrySink.js';
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* The two claims the seam makes, and nothing else:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Database } from 'bun:sqlite';
|
|
2
|
-
import { createMetricsBuffer, type MetricRow, type MetricsBuffer } from './metricsBuffer';
|
|
2
|
+
import { createMetricsBuffer, type MetricRow, type MetricsBuffer } from './metricsBuffer.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* ONE seam for "this app served a request", with two backends and no third.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { MiddlewareHandler } from 'hono';
|
|
2
|
-
import type { CursedbeltEnv } from '../context';
|
|
2
|
+
import type { CursedbeltEnv } from '../context.js';
|
|
3
3
|
|
|
4
4
|
const HEADER = 'x-correlation-id';
|
|
5
5
|
// Accept a client-supplied id only if it is a sane, header-safe token (no CRLF /
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { describe, expect, test } from 'bun:test';
|
|
2
|
-
import { createApp } from '../app';
|
|
3
|
-
import { corsAllowlist, corsOptsFromEnv } from './corsAllowlist';
|
|
2
|
+
import { createApp } from '../app.js';
|
|
3
|
+
import { corsAllowlist, corsOptsFromEnv } from './corsAllowlist.js';
|
|
4
4
|
|
|
5
5
|
const SITE = 'example.com';
|
|
6
6
|
const APEX = 'https://example.com';
|