f8a3c6619e
Node's `os.platform()` returns `openharmony` on HarmonyPC and on
OpenHarmony's Linux ABI-compatible userspace. The npm wrapper's
platform-asset matrix only covered `linux` / `darwin` / `win32`,
so `npm i -g deepseek-tui` aborted on those hosts with
Unsupported platform: openharmony. Supported platforms: …
even though the existing Linux x64 / arm64 binaries run unchanged
on that environment (OpenHarmony is Linux-ABI-compatible at the
ELF level).
Added a `PLATFORM_ALIASES = { openharmony: "linux" }` indirection
that resolves the raw platform name through the alias map before
the `ASSET_MATRIX` lookup. Genuinely unsupported platforms still
report the raw `os.platform()` value in the error so OS-mismatch
bug reports stay diagnostic.
Four pure-JS regression tests pin the behaviour:
- openharmony x64 → linux x64 binaries
- openharmony arm64 → linux arm64 binaries
- known platforms unchanged by the alias map
- freebsd still reports `Unsupported platform: freebsd`
Harvested from PR #1499 by @CrepuscularIRIS
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
25 lines
782 B
TypeScript
25 lines
782 B
TypeScript
import type { NextConfig } from "next";
|
|
|
|
// Security headers are set in middleware.ts (more reliable under OpenNext on
|
|
// Cloudflare than next.config.ts headers(), which doesn't always apply to
|
|
// prerendered/cached responses).
|
|
const nextConfig: NextConfig = {
|
|
reactStrictMode: true,
|
|
images: {
|
|
remotePatterns: [
|
|
{ protocol: "https", hostname: "avatars.githubusercontent.com" },
|
|
],
|
|
},
|
|
typedRoutes: false,
|
|
};
|
|
|
|
export default nextConfig;
|
|
|
|
if (process.env.NODE_ENV === "development") {
|
|
// Initialize Cloudflare bindings (KV, etc.) when running `next dev`.
|
|
// No-op in production builds.
|
|
void import("@opennextjs/cloudflare").then(({ initOpenNextCloudflareForDev }) => {
|
|
initOpenNextCloudflareForDev();
|
|
}).catch(() => { /* dev-only convenience */ });
|
|
}
|