mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-09-19 05:12:16 +03:00
Both packages are only reachable through code paths the standalone tracer never follows, so they get silently dropped from the built node_modules/: - ioredis is a deliberately lazy dependency (#6559 in rateLimiter.ts) — reached only via a runtime `await import("ioredis")` in rateLimiter.ts, warmupScheduler/circuitBreakerFactory.ts and quota/redisQuotaStore.ts, never through a static top-level import. Any self-hosted deployment that sets REDIS_URL crashes on first use with "Cannot find module 'ioredis'". - bcryptjs is statically imported by src/lib/auth/managementPassword.ts, so the main server bundle is fine (Next inlines the small pure-JS package into the compiled chunk). bin/cli/settings-store.mjs (the `omniroute reset-password` CLI) is a separate, unbundled entrypoint that needs the real package physically present in node_modules/ — nothing else requires it as a loose runtime dependency, so it was never copied. `node bin/reset-password.mjs --password-stdin` failed with "Cannot find package 'bcryptjs'" (ERR_MODULE_NOT_FOUND) on an otherwise healthy production deployment. Both reproduced on a real self-hosted Docker deployment (v3.8.49/51). Adds the two entries to EXTRA_MODULE_ENTRIES (the single source of truth cited in the Dockerfile) and extends the sync/async parity test with fixtures + assertions for both.