@dwp/govuk-casa
Version:
A framework for building GOVUK Collect-And-Submit-Applications
248 lines (247 loc) • 8.68 kB
TypeScript
/**
* Validates and sanitises i18n object.
*
* @param {object} i18n Object to validate.
* @param {Function} cb Callback function that receives the validated value.
* @returns {object} Sanitised i18n object.
* @throws {TypeError} For invalid object.
* @access private
*/
export function validateI18nObject(i18n?: object, cb?: Function): object;
/**
* Validates and sanitises i18n directory.
*
* @param {Array} dirs Array of directories.
* @returns {Array} Array of directories.
* @throws {SyntaxError} For invalid directories.
* @throws {TypeError} For invalid type.
* @access private
*/
export function validateI18nDirs(dirs?: any[]): any[];
/**
* Validates and sanitises i18n locales.
*
* @param {Array} locales Array of locales.
* @returns {Array} Array of locales.
* @throws {SyntaxError} For invalid locales.
* @throws {TypeError} For invalid type.
* @access private
*/
export function validateI18nLocales(locales?: any[]): any[];
/**
* Validates the i18n fallback language.
*
* @param {string} [fallback] Locale
* @param {Array} locales Array of valid locales.
* @returns {string} Fallback locale
* @throws {SyntaxError} For invalid locales.
* @throws {TypeError} For invalid type.
* @access private
*/
export function validateI18nFallbackLng(fallback?: string, locales?: any[]): string;
/**
* Validates and sanitises mount url.
*
* @param {string} mountUrl Prefix for all URLs in the browser address bar
* @returns {string | undefined} Sanitised URL.
* @throws {SyntaxError} For invalid URL.
* @access private
*/
export function validateMountUrl(mountUrl: string): string | undefined;
/**
* Validates and sanitises sessions object.
*
* @param {object} session Object to validate.
* @param {Function} cb Callback function that receives the validated value.
* @returns {object} Sanitised sessions object.
* @throws {TypeError} For invalid object.
* @access private
*/
export function validateSessionObject(session?: object, cb?: Function): object;
/**
* Validates and sanitises view directory.
*
* @param {Array} dirs Array of directories.
* @returns {Array} Array of directories.
* @throws {SyntaxError} For invalid directories.
* @throws {TypeError} For invalid type.
* @access private
*/
export function validateViews(dirs?: any[]): any[];
/**
* Validates and sanitises sessions secret.
*
* @param {string} secret Session secret.
* @returns {string} Secret.
* @throws {ReferenceError} For missing value type.
* @throws {TypeError} For invalid value.
* @access private
*/
export function validateSessionSecret(secret: string): string;
/**
* Validates and sanitises sessions ttl.
*
* @param {number} ttl Session ttl (seconds).
* @returns {number} Ttl.
* @throws {ReferenceError} For missing value type.
* @throws {TypeError} For invalid value.
* @access private
*/
export function validateSessionTtl(ttl?: number): number;
/**
* Validates and sanitises sessions name.
*
* @param {string} [name] Session name. Default is `casa-session`
* @returns {string} Name.
* @throws {ReferenceError} For missing value type.
* @throws {TypeError} For invalid value.
* @access private
*/
export function validateSessionName(name?: string): string;
/**
* Validates and sanitises sessions secure flag.
*
* @param {boolean} [secure] Session secure flag.
* @returns {string} Name.
* @throws {ReferenceError} For missing value type.
* @throws {TypeError} For invalid or missing value.
* @access private
*/
export function validateSessionSecure(secure?: boolean): string;
/**
* Validates and sanitises sessions store.
*
* @param {Function} store Session store.
* @returns {Function} Store.
* @access private
*/
export function validateSessionStore(store: Function): Function;
/**
* Validates and sanitises sessions cookie url path.
*
* @param {string} cookiePath Session cookie url path.
* @param {string} defaultPath Default path if none specified.
* @returns {string} Cookie path.
* @access private
*/
export function validateSessionCookiePath(cookiePath: string, defaultPath?: string): string;
/**
* Validates and sanitises sessions cookie "sameSite" flag. One of: true
* (Strict) false (will not set the flag at all) Strict Lax None
*
* @param {any} cookieSameSite Session cookie "sameSite" flag
* @param {any} defaultFlag Default path if none specified
* @returns {boolean} Cookie path
* @throws {TypeError} When invalid arguments are provided
* @access private
*/
/**
* Validates errorVisibility.
*
* @param {string} errorVisibility Sets visibility flag for page validation
* error
* @returns {symbol | Function} Flag for error visibility.
* @throws {SyntaxError} For invalid errorVisibility flag.
* @access private
*/
export function validateErrorVisibility(errorVisibility?: string): symbol | Function;
/**
* @param {boolean | string} cookieSameSite Cookie SameSite value
* @param {boolean | string} defaultFlag Default value
* @returns {boolean | string} Validated value
*/
export function validateSessionCookieSameSite(cookieSameSite: boolean | string, defaultFlag: boolean | string): boolean | string;
/**
* @param {PageHook[]} hooks Page hook functions
* @returns {PageHook[]} Validated page hooks
*/
export function validatePageHooks(hooks: PageHook[]): PageHook[];
/**
* @param {PageField[]} fields Page fields
* @returns {PageField[]} Validated fields
*/
export function validateFields(fields: PageField[]): PageField[];
/**
* @param {Page[]} [pages] Pages
* @returns {Page[]} Validated pages
*/
export function validatePages(pages?: Page[]): Page[];
/**
* @param {Plan} plan Plan
* @returns {Plan} Validated plan
*/
export function validatePlan(plan: Plan): Plan;
/**
* @param {GlobalHook[]} hooks Global hook functions
* @returns {GlobalHook[]} Validated global hooks
*/
export function validateGlobalHooks(hooks: GlobalHook[]): GlobalHook[];
/**
* @param {IPlugin[]} plugins Plugins
* @returns {IPlugin[]} Validated plugins
*/
export function validatePlugins(plugins: IPlugin[]): IPlugin[];
/**
* @param {ContextEventHandler[]} events Event handlers
* @returns {ContextEventHandler[]} Validated event handlers
*/
export function validateEvents(events: ContextEventHandler[]): ContextEventHandler[];
/**
* Validates helmet configuration function.
*
* @param {HelmetConfigurator} helmetConfigurator Configuration function
* @returns {HelmetConfigurator} Validated configuration function
* @throws {TypeError} When passed a non-function
* @access private
*/
export function validateHelmetConfigurator(helmetConfigurator: HelmetConfigurator): HelmetConfigurator;
/**
* @param {number} value Max params value
* @param {number} [defaultValue] Default value
* @returns {number} Valid value
* @throws {TypeError} If not an integer
* @throws {RangeError} If out of bounds
*/
export function validateFormMaxParams(value: number, defaultValue?: number): number;
/**
* @param {number} value Max bytes value
* @param {number} [defaultValue] Default value
* @returns {number} Valid value
* @throws {TypeError} If not an integer
* @throws {RangeError} If out of bounds
*/
export function validateFormMaxBytes(value: number, defaultValue?: number): number;
/**
* @param {ContextIdGenerator} generator ID generator function
* @returns {ContextIdGenerator} Validated generator
* @throws {TypeError} If not a function
*/
export function validateContextIdGenerator(generator: ContextIdGenerator): ContextIdGenerator;
/**
* Validates the govuk rebrand feature flag.
*
* @param {boolean} [govukRebrand] Govuk rebrand feature flag
* @returns {boolean | true} Boolean.
* @throws {TypeError} For invalid feagure flag is set.
* @access private
*/
export function validateGovukRebrand(govukRebrand?: boolean): boolean | true;
/**
* Ingest, validate, sanitise and manipulate configuration parameters.
*
* @param {ConfigurationOptions} config Config to ingest.
* @returns {object} Immutable config object.
* @throws {Error | SyntaxError | TypeError} For invalid config values.
* @access private
*/
export default function ingest(config?: ConfigurationOptions): object;
export type ConfigurationOptions = import("../casa").ConfigurationOptions;
export type HelmetConfigurator = import("../casa").HelmetConfigurator;
export type Page = import("../casa").Page;
export type PageHook = import("../casa").PageHook;
export type GlobalHook = import("../casa").GlobalHook;
export type IPlugin = import("../casa").IPlugin;
export type ContextEventHandler = import("../casa").ContextEventHandler;
export type ContextIdGenerator = import("../casa").ContextIdGenerator;
import { PageField } from "./field.js";
import Plan from "./Plan.js";