UNPKG

@dwp/govuk-casa

Version:

A framework for building GOVUK Collect-And-Submit-Applications

248 lines (247 loc) 8.68 kB
/** * 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";