You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							158 lines
						
					
					
						
							4.0 KiB
						
					
					
				
			
		
		
	
	
							158 lines
						
					
					
						
							4.0 KiB
						
					
					
				| /// <reference types='node' />
 | |
| 
 | |
| import { FastifyPluginCallback } from "fastify";
 | |
| 
 | |
| declare module "fastify" {
 | |
|   interface FastifyInstance {
 | |
|     /**
 | |
|      * Unsigns the specified cookie using the secret provided.
 | |
|      * @param value Cookie value
 | |
|      */
 | |
|     unsignCookie(value: string): fastifyCookie.UnsignResult;
 | |
|     /**
 | |
|      * Manual cookie parsing method
 | |
|      * @docs https://github.com/fastify/fastify-cookie#manual-cookie-parsing
 | |
|      * @param cookieHeader Raw cookie header value
 | |
|      */
 | |
|     parseCookie(cookieHeader: string): {
 | |
|       [key: string]: string;
 | |
|     };
 | |
|     /**
 | |
|      * Manual cookie signing method
 | |
|      * @docs https://github.com/fastify/fastify-cookie#manual-cookie-parsing
 | |
|      * @param value cookie value
 | |
|      */
 | |
|     signCookie(value: string): string;
 | |
|   }
 | |
| 
 | |
|   interface FastifyRequest {
 | |
|     /**
 | |
|      * Request cookies
 | |
|      */
 | |
|     cookies: { [cookieName: string]: string | undefined };
 | |
| 
 | |
|     /**
 | |
|      * Unsigns the specified cookie using the secret provided.
 | |
|      * @param value Cookie value
 | |
|      */
 | |
|     unsignCookie(value: string): fastifyCookie.UnsignResult;
 | |
|   }
 | |
| 
 | |
|   export type setCookieWrapper = (
 | |
|     name: string,
 | |
|     value: string,
 | |
|     options?: fastifyCookie.CookieSerializeOptions
 | |
|   ) => FastifyReply;
 | |
| 
 | |
|   interface FastifyReply {
 | |
|     /**
 | |
|      * Set response cookie
 | |
|      * @name setCookie
 | |
|      * @param name Cookie name
 | |
|      * @param value Cookie value
 | |
|      * @param options Serialize options
 | |
|      */
 | |
|     setCookie(
 | |
|       name: string,
 | |
|       value: string,
 | |
|       options?: fastifyCookie.CookieSerializeOptions
 | |
|     ): this;
 | |
| 
 | |
|     /**
 | |
|      * @alias setCookie
 | |
|      */
 | |
|     cookie(
 | |
|       name: string,
 | |
|       value: string,
 | |
|       options?: fastifyCookie.CookieSerializeOptions
 | |
|     ): this;
 | |
| 
 | |
|     /**
 | |
|      * clear response cookie
 | |
|      * @param name Cookie name
 | |
|      * @param options Serialize options
 | |
|      */
 | |
|     clearCookie(
 | |
|       name: string,
 | |
|       options?: fastifyCookie.CookieSerializeOptions
 | |
|     ): this;
 | |
| 
 | |
|     /**
 | |
|      * Unsigns the specified cookie using the secret provided.
 | |
|      * @param value Cookie value
 | |
|      */
 | |
|     unsignCookie(value: string): fastifyCookie.UnsignResult;
 | |
|   }
 | |
| }
 | |
| 
 | |
| type FastifyCookiePlugin = FastifyPluginCallback<
 | |
|   NonNullable<fastifyCookie.FastifyCookieOptions>
 | |
| >;
 | |
| 
 | |
| declare namespace fastifyCookie {
 | |
|   interface SignerBase {
 | |
|     sign: (value: string) => string;
 | |
|     unsign: (input: string) => UnsignResult;
 | |
|   }
 | |
| 
 | |
|   export class Signer implements SignerBase {
 | |
|     constructor (secrets: string | Array<string>, algorithm?: string)
 | |
|     sign: (value: string) => string;
 | |
|     unsign: (input: string) => UnsignResult;
 | |
|   }
 | |
| 
 | |
|   export interface CookieSerializeOptions {
 | |
|     domain?: string;
 | |
|     encode?(val: string): string;
 | |
|     expires?: Date;
 | |
|     httpOnly?: boolean;
 | |
|     maxAge?: number;
 | |
|     path?: string;
 | |
|     priority?: "low" | "medium" | "high";
 | |
|     sameSite?: boolean | "lax" | "strict" | "none";
 | |
|     secure?: boolean;
 | |
|     signed?: boolean;
 | |
|   }
 | |
| 
 | |
|   export interface FastifyCookieOptions {
 | |
|     secret?: string | string[] | Signer;
 | |
|     parseOptions?: fastifyCookie.CookieSerializeOptions;
 | |
|   }
 | |
| 
 | |
|   export type Sign = (value: string, secret: string, algorithm?: string) => string;
 | |
|   export type Unsign = (input: string, secret: string, algorithm?: string) => UnsignResult;
 | |
|   export type SignerFactory = (secrets: string | Array<string>, algorithm?: string) => SignerBase;
 | |
| 
 | |
|   export interface UnsignResult {
 | |
|     valid: boolean;
 | |
|     renew: boolean;
 | |
|     value: string | null;
 | |
|   }
 | |
| 
 | |
|   export const signerFactory: SignerFactory;
 | |
|   export const sign: Sign;
 | |
|   export const unsign: Unsign;
 | |
| 
 | |
|   export interface FastifyCookie extends FastifyCookiePlugin {
 | |
|     signerFactory: SignerFactory;
 | |
|     Signer: Signer;
 | |
|     sign: Sign;
 | |
|     unsign: Unsign;
 | |
|   }
 | |
| 
 | |
|   export const fastifyCookie: FastifyCookie;
 | |
| 
 | |
|   export interface FastifyCookieOptions {
 | |
|     secret?: string | string[] | SignerBase;
 | |
|     algorithm?: string;
 | |
|     parseOptions?: CookieSerializeOptions;
 | |
|   }
 | |
| 
 | |
|   export { fastifyCookie as default };
 | |
| }
 | |
| 
 | |
| declare function fastifyCookie(
 | |
|   ...params: Parameters<FastifyCookiePlugin>
 | |
| ): ReturnType<FastifyCookiePlugin>;
 | |
| 
 | |
| export = fastifyCookie; |