mirror of
https://github.com/documenso/documenso.git
synced 2026-07-11 13:35:20 +10:00
138d663c25
Merge origin/main into feat/external-2fa-codes. Resolve formatting conflicts caused by biome rollout; preserve both feature streams: PR's external 2FA token + signing-session 2FA proof additions plus main's RateLimit/RecipientExpired/signingReminders/date-auto-insert. In complete-document-with-token.ts, drop the duplicate early field-fetching block introduced when main moved that logic later with date auto-insert support; keep the EXTERNAL_TWO_FACTOR_AUTH check using derivedRecipientActionAuth.
34 lines
1.1 KiB
TypeScript
34 lines
1.1 KiB
TypeScript
import { getContext } from 'hono/context-storage';
|
|
import type { AppLoadContext } from 'react-router';
|
|
|
|
import type { HonoEnv } from './router';
|
|
import { CSP_NONCE_KEY } from './security-headers';
|
|
|
|
/**
|
|
* Augment React Router's `AppLoadContext` so loaders, actions, and
|
|
* `entry.server` can access fields by name without casts.
|
|
*/
|
|
declare module 'react-router' {
|
|
interface AppLoadContext {
|
|
/**
|
|
* Per-request CSP nonce. Populated by `securityHeadersMiddleware` and surfaced here
|
|
* so it can be threaded into `<ServerRouter nonce>` and root loader
|
|
* data, which then feeds `<Scripts>`, `<Links>`, etc.
|
|
*/
|
|
nonce: string;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Builds the React Router `AppLoadContext` for both dev (vite plugin) and
|
|
* production (`hono-react-router-adapter/node`).
|
|
*
|
|
* The Hono context isn't passed directly by the adapter, so we read it via
|
|
* `hono/context-storage`, which is enabled in `server/router.ts`.
|
|
*/
|
|
export const getLoadContext = (): AppLoadContext => {
|
|
const nonce = getContext<HonoEnv>().var[CSP_NONCE_KEY] ?? '';
|
|
|
|
return { nonce };
|
|
};
|