@govuk-one-login/frontend-ui 5.2.1 → 5.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/backend/__tests__/cookie-banner.test.d.ts +2 -0
- package/build/cjs/backend/__tests__/cookie-banner.test.d.ts.map +1 -0
- package/build/cjs/backend/__tests__/footer.test.d.ts +2 -0
- package/build/cjs/backend/__tests__/footer.test.d.ts.map +1 -0
- package/build/cjs/backend/__tests__/header.test.d.ts +2 -0
- package/build/cjs/backend/__tests__/header.test.d.ts.map +1 -0
- package/build/cjs/backend/__tests__/index.spec.d.ts +2 -0
- package/build/cjs/backend/__tests__/index.spec.d.ts.map +1 -0
- package/build/cjs/backend/__tests__/language-select.test.d.ts +2 -0
- package/build/cjs/backend/__tests__/language-select.test.d.ts.map +1 -0
- package/build/cjs/backend/__tests__/logger.spec.d.ts +2 -0
- package/build/cjs/backend/__tests__/logger.spec.d.ts.map +1 -0
- package/build/cjs/backend/__tests__/mobile-base.test.d.ts +2 -0
- package/build/cjs/backend/__tests__/mobile-base.test.d.ts.map +1 -0
- package/build/cjs/backend/__tests__/phase-banner.test.d.ts +2 -0
- package/build/cjs/backend/__tests__/phase-banner.test.d.ts.map +1 -0
- package/build/cjs/backend/__tests__/progress-button.test.d.ts +2 -0
- package/build/cjs/backend/__tests__/progress-button.test.d.ts.map +1 -0
- package/build/cjs/backend/__tests__/skip-link.test.d.ts +2 -0
- package/build/cjs/backend/__tests__/skip-link.test.d.ts.map +1 -0
- package/build/cjs/backend/__tests__/spinner.test.d.ts +2 -0
- package/build/cjs/backend/__tests__/spinner.test.d.ts.map +1 -0
- package/build/cjs/backend/index.cjs +15 -3
- package/build/cjs/backend/index.d.cts +45 -0
- package/build/cjs/backend/index.d.ts +45 -0
- package/build/cjs/backend/index.d.ts.map +1 -0
- package/build/cjs/backend/lib/helmet.d.ts +3 -0
- package/build/cjs/backend/lib/helmet.d.ts.map +1 -0
- package/build/cjs/backend/lib/index.d.ts +4 -0
- package/build/cjs/backend/lib/index.d.ts.map +1 -0
- package/build/cjs/backend/lib/locals.d.ts +12 -0
- package/build/cjs/backend/lib/locals.d.ts.map +1 -0
- package/build/cjs/backend/lib/settings.d.ts +26 -0
- package/build/cjs/backend/lib/settings.d.ts.map +1 -0
- package/build/cjs/backend/test/jest.setup.d.ts +2 -0
- package/build/cjs/backend/test/jest.setup.d.ts.map +1 -0
- package/build/cjs/backend/test/jestHelper.d.ts +5 -0
- package/build/cjs/backend/test/jestHelper.d.ts.map +1 -0
- package/build/cjs/backend/utils/logger.d.ts +9 -0
- package/build/cjs/backend/utils/logger.d.ts.map +1 -0
- package/build/components/bases/identity/identity-base-form.njk +1 -3
- package/build/components/bases/identity/identity-base-page.njk +1 -3
- package/build/components/bases/identity/v2/identity-base.njk +139 -0
- package/build/esm/backend/__tests__/cookie-banner.test.d.ts +2 -0
- package/build/esm/backend/__tests__/cookie-banner.test.d.ts.map +1 -0
- package/build/esm/backend/__tests__/footer.test.d.ts +2 -0
- package/build/esm/backend/__tests__/footer.test.d.ts.map +1 -0
- package/build/esm/backend/__tests__/header.test.d.ts +2 -0
- package/build/esm/backend/__tests__/header.test.d.ts.map +1 -0
- package/build/esm/backend/__tests__/index.spec.d.ts +2 -0
- package/build/esm/backend/__tests__/index.spec.d.ts.map +1 -0
- package/build/esm/backend/__tests__/language-select.test.d.ts +2 -0
- package/build/esm/backend/__tests__/language-select.test.d.ts.map +1 -0
- package/build/esm/backend/__tests__/logger.spec.d.ts +2 -0
- package/build/esm/backend/__tests__/logger.spec.d.ts.map +1 -0
- package/build/esm/backend/__tests__/mobile-base.test.d.ts +2 -0
- package/build/esm/backend/__tests__/mobile-base.test.d.ts.map +1 -0
- package/build/esm/backend/__tests__/phase-banner.test.d.ts +2 -0
- package/build/esm/backend/__tests__/phase-banner.test.d.ts.map +1 -0
- package/build/esm/backend/__tests__/progress-button.test.d.ts +2 -0
- package/build/esm/backend/__tests__/progress-button.test.d.ts.map +1 -0
- package/build/esm/backend/__tests__/skip-link.test.d.ts +2 -0
- package/build/esm/backend/__tests__/skip-link.test.d.ts.map +1 -0
- package/build/esm/backend/__tests__/spinner.test.d.ts +2 -0
- package/build/esm/backend/__tests__/spinner.test.d.ts.map +1 -0
- package/build/esm/backend/index.d.ts +45 -0
- package/build/esm/backend/index.d.ts.map +1 -0
- package/build/esm/backend/index.js +15 -3
- package/build/esm/backend/lib/helmet.d.ts +3 -0
- package/build/esm/backend/lib/helmet.d.ts.map +1 -0
- package/build/esm/backend/lib/index.d.ts +4 -0
- package/build/esm/backend/lib/index.d.ts.map +1 -0
- package/build/esm/backend/lib/locals.d.ts +12 -0
- package/build/esm/backend/lib/locals.d.ts.map +1 -0
- package/build/esm/backend/lib/settings.d.ts +26 -0
- package/build/esm/backend/lib/settings.d.ts.map +1 -0
- package/build/esm/backend/test/jest.setup.d.ts +2 -0
- package/build/esm/backend/test/jest.setup.d.ts.map +1 -0
- package/build/esm/backend/test/jestHelper.d.ts +5 -0
- package/build/esm/backend/test/jestHelper.d.ts.map +1 -0
- package/build/esm/backend/utils/logger.d.ts +9 -0
- package/build/esm/backend/utils/logger.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cookie-banner.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/cookie-banner.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"footer.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/footer.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"header.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/header.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.spec.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/index.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language-select.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/language-select.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.spec.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/logger.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mobile-base.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/mobile-base.test.ts"],"names":[],"mappings":"AACA,OAAO,2BAA2B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phase-banner.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/phase-banner.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress-button.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/progress-button.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skip-link.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/skip-link.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spinner.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/spinner.test.ts"],"names":[],"mappings":""}
|
|
@@ -41,7 +41,7 @@ var footer$1 = {
|
|
|
41
41
|
text: "Telerau ac amodau"
|
|
42
42
|
},
|
|
43
43
|
{
|
|
44
|
-
href: "https://www.gov.uk/government/publications/govuk-one-login-privacy-notice",
|
|
44
|
+
href: "https://www.gov.uk/government/publications/govuk-one-login-privacy-notice.cy",
|
|
45
45
|
text: "Hysbysiad preifatrwydd"
|
|
46
46
|
},
|
|
47
47
|
{
|
|
@@ -220,13 +220,13 @@ const getAssetPath = (req, res, next) => {
|
|
|
220
220
|
res.locals.assetPath = req.app.get("APP.ASSET_PATH");
|
|
221
221
|
next();
|
|
222
222
|
};
|
|
223
|
-
const getLanguageToggle = (req, res, next, customLogger) => {
|
|
223
|
+
const getLanguageToggle = (req, res, next, customLogger = undefined) => {
|
|
224
224
|
if (customLogger) {
|
|
225
225
|
setCustomLogger(customLogger);
|
|
226
226
|
}
|
|
227
227
|
const logger = getLogger();
|
|
228
228
|
const toggleValue = req.app.get("APP.LANGUAGE_TOGGLE_ENABLED");
|
|
229
|
-
res.locals.showLanguageToggle = toggleValue && toggleValue ===
|
|
229
|
+
res.locals.showLanguageToggle = toggleValue && toggleValue === true;
|
|
230
230
|
res.locals.htmlLang = req.i18n.language;
|
|
231
231
|
try {
|
|
232
232
|
res.locals.currentUrl = new URL(req.protocol + "://" + req.get("host") + req.originalUrl);
|
|
@@ -238,10 +238,17 @@ const getLanguageToggle = (req, res, next, customLogger) => {
|
|
|
238
238
|
}
|
|
239
239
|
next();
|
|
240
240
|
};
|
|
241
|
+
const getDeviceIntelligence = (req, res, next) => {
|
|
242
|
+
const toggleValue = req.app.get("APP.DEVICE_INTELLIGENCE_ENABLED");
|
|
243
|
+
res.locals.deviceIntelligenceEnabled = toggleValue && toggleValue === true;
|
|
244
|
+
res.locals.deviceIntelligenceDomain = req.app.get("APP.DEVICE_INTELLIGENCE_DOMAIN");
|
|
245
|
+
next();
|
|
246
|
+
};
|
|
241
247
|
|
|
242
248
|
var locals = /*#__PURE__*/Object.freeze({
|
|
243
249
|
__proto__: null,
|
|
244
250
|
getAssetPath: getAssetPath,
|
|
251
|
+
getDeviceIntelligence: getDeviceIntelligence,
|
|
245
252
|
getGTM: getGTM,
|
|
246
253
|
getLanguageToggle: getLanguageToggle
|
|
247
254
|
});
|
|
@@ -261,9 +268,14 @@ const setGTM = ({ app, ga4ContainerId, analyticsCookieDomain, ga4Enabled, ga4Pag
|
|
|
261
268
|
const setLanguageToggle = ({ app, showLanguageToggle, }) => {
|
|
262
269
|
app.set("APP.LANGUAGE_TOGGLE_ENABLED", showLanguageToggle);
|
|
263
270
|
};
|
|
271
|
+
const setDeviceIntelligence = ({ app, deviceIntelligenceEnabled, deviceIntelligenceDomain, }) => {
|
|
272
|
+
app.set("APP.DEVICE_INTELLIGENCE_ENABLED", deviceIntelligenceEnabled);
|
|
273
|
+
app.set("APP.DEVICE_INTELLIGENCE_DOMAIN", deviceIntelligenceDomain);
|
|
274
|
+
};
|
|
264
275
|
|
|
265
276
|
var settings = /*#__PURE__*/Object.freeze({
|
|
266
277
|
__proto__: null,
|
|
278
|
+
setDeviceIntelligence: setDeviceIntelligence,
|
|
267
279
|
setGTM: setGTM,
|
|
268
280
|
setLanguageToggle: setLanguageToggle
|
|
269
281
|
});
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { NextFunction, Request, Response } from "express";
|
|
2
|
+
import i18next from "i18next";
|
|
3
|
+
export * from "./lib";
|
|
4
|
+
interface I18nData {
|
|
5
|
+
language: string;
|
|
6
|
+
store: {
|
|
7
|
+
data: {
|
|
8
|
+
[key: string]: unknown;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
interface ExpressRequest extends Request {
|
|
13
|
+
i18n: I18nData;
|
|
14
|
+
}
|
|
15
|
+
interface ExpressResponse extends Response {
|
|
16
|
+
locals: {
|
|
17
|
+
translations: unknown;
|
|
18
|
+
basePath?: string;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
interface PlainRequest {
|
|
22
|
+
i18n: I18nData;
|
|
23
|
+
}
|
|
24
|
+
interface PlainResponse {
|
|
25
|
+
locals: {
|
|
26
|
+
translations: unknown;
|
|
27
|
+
basePath?: string;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export declare function frontendUiMiddleware(req: ExpressRequest, res: ExpressResponse, next: NextFunction): void;
|
|
31
|
+
export declare function frontendUiMiddleware(req: PlainRequest, res: PlainResponse, next: NextFunction): void;
|
|
32
|
+
export declare const setFrontendUiTranslations: (instanceI18n: typeof i18next) => void;
|
|
33
|
+
export declare const frontendUiMiddlewareIdentityBypass: (req: ExpressRequest, res: ExpressResponse, next: NextFunction) => void;
|
|
34
|
+
export declare function validateTranslations(en: Record<string, unknown>, cy: Record<string, unknown>, path?: string): void;
|
|
35
|
+
export declare function warnCharacterLimit(text: string, limit: number): void;
|
|
36
|
+
export declare function addFrontendUiGlobals(nunjucksEnv: {
|
|
37
|
+
addGlobal: (name: string, value: unknown) => void;
|
|
38
|
+
}): void;
|
|
39
|
+
export declare function addLanguageParam(language: string, url?: URL): string;
|
|
40
|
+
export declare function contactUsUrl(baseUrl: string, urlToAppend: string): string | null;
|
|
41
|
+
export declare const setBaseTranslations: (instanceI18n: typeof i18next, filePath?: string) => void;
|
|
42
|
+
export declare const getTranslationObject: (locale: string, filepath?: string) => Record<string, unknown>;
|
|
43
|
+
export { default as frontendUiTranslationEn } from "../locales/en/translation.json";
|
|
44
|
+
export { default as frontendUiTranslationCy } from "../locales/cy/translation.json";
|
|
45
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { NextFunction, Request, Response } from "express";
|
|
2
|
+
import i18next from "i18next";
|
|
3
|
+
export * from "./lib";
|
|
4
|
+
interface I18nData {
|
|
5
|
+
language: string;
|
|
6
|
+
store: {
|
|
7
|
+
data: {
|
|
8
|
+
[key: string]: unknown;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
interface ExpressRequest extends Request {
|
|
13
|
+
i18n: I18nData;
|
|
14
|
+
}
|
|
15
|
+
interface ExpressResponse extends Response {
|
|
16
|
+
locals: {
|
|
17
|
+
translations: unknown;
|
|
18
|
+
basePath?: string;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
interface PlainRequest {
|
|
22
|
+
i18n: I18nData;
|
|
23
|
+
}
|
|
24
|
+
interface PlainResponse {
|
|
25
|
+
locals: {
|
|
26
|
+
translations: unknown;
|
|
27
|
+
basePath?: string;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export declare function frontendUiMiddleware(req: ExpressRequest, res: ExpressResponse, next: NextFunction): void;
|
|
31
|
+
export declare function frontendUiMiddleware(req: PlainRequest, res: PlainResponse, next: NextFunction): void;
|
|
32
|
+
export declare const setFrontendUiTranslations: (instanceI18n: typeof i18next) => void;
|
|
33
|
+
export declare const frontendUiMiddlewareIdentityBypass: (req: ExpressRequest, res: ExpressResponse, next: NextFunction) => void;
|
|
34
|
+
export declare function validateTranslations(en: Record<string, unknown>, cy: Record<string, unknown>, path?: string): void;
|
|
35
|
+
export declare function warnCharacterLimit(text: string, limit: number): void;
|
|
36
|
+
export declare function addFrontendUiGlobals(nunjucksEnv: {
|
|
37
|
+
addGlobal: (name: string, value: unknown) => void;
|
|
38
|
+
}): void;
|
|
39
|
+
export declare function addLanguageParam(language: string, url?: URL): string;
|
|
40
|
+
export declare function contactUsUrl(baseUrl: string, urlToAppend: string): string | null;
|
|
41
|
+
export declare const setBaseTranslations: (instanceI18n: typeof i18next, filePath?: string) => void;
|
|
42
|
+
export declare const getTranslationObject: (locale: string, filepath?: string) => Record<string, unknown>;
|
|
43
|
+
export { default as frontendUiTranslationEn } from "../locales/en/translation.json";
|
|
44
|
+
export { default as frontendUiTranslationCy } from "../locales/cy/translation.json";
|
|
45
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,OAAO,MAAM,SAAS,CAAC;AAK9B,cAAc,OAAO,CAAC;AAKtB,UAAU,QAAQ;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE;QACL,IAAI,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;SAAE,CAAC;KAClC,CAAC;CACH;AAED,UAAU,cAAe,SAAQ,OAAO;IACtC,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,UAAU,eAAgB,SAAQ,QAAQ;IACxC,MAAM,EAAE;QACN,YAAY,EAAE,OAAO,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,UAAU,aAAa;IACrB,MAAM,EAAE;QACN,YAAY,EAAE,OAAO,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAGD,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,YAAY,GACjB,IAAI,CAAC;AAER,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,YAAY,EACjB,GAAG,EAAE,aAAa,EAClB,IAAI,EAAE,YAAY,GACjB,IAAI,CAAC;AAaR,eAAO,MAAM,yBAAyB,GAAI,cAAc,OAAO,OAAO,SAsBrE,CAAC;AAEF,eAAO,MAAM,kCAAkC,GAC7C,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,MAAM,YAAY,SAUnB,CAAC;AAsBF,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3B,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3B,IAAI,SAAK,GACR,IAAI,CAyBN;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAM7D;AAED,wBAAgB,oBAAoB,CAAC,WAAW,EAAE;IAChD,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACnD,QAIA;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,UAU3D;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,iBAkBhE;AAED,eAAO,MAAM,mBAAmB,GAC9B,cAAc,OAAO,OAAO,EAC5B,WAAW,MAAM,SASlB,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,MAAM,EACd,WAAW,MAAM,KAChB,MAAM,CAAC,MAAM,EAAE,OAAO,CAsBxB,CAAC;AAEF,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,gCAAgC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helmet.d.ts","sourceRoot":"","sources":["../../../../src/lib/helmet.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,QAAQ,CAAC;AAiD5C,wBAAgB,eAAe,CAAC,SAAS,GAAE,aAAkB,GAAG,aAAa,CAE5E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { NextFunction, Request, Response } from "express";
|
|
2
|
+
import { CustomLogger } from "../utils/logger";
|
|
3
|
+
declare const getGTM: (req: Request, res: Response, next: NextFunction) => void;
|
|
4
|
+
declare const getAssetPath: (req: Request, res: Response, next: NextFunction) => void;
|
|
5
|
+
declare const getLanguageToggle: (req: Request & {
|
|
6
|
+
i18n: {
|
|
7
|
+
language: string;
|
|
8
|
+
};
|
|
9
|
+
}, res: Response, next: NextFunction, customLogger?: CustomLogger | undefined) => void;
|
|
10
|
+
declare const getDeviceIntelligence: (req: Request, res: Response, next: NextFunction) => void;
|
|
11
|
+
export { getAssetPath, getGTM, getLanguageToggle, getDeviceIntelligence };
|
|
12
|
+
//# sourceMappingURL=locals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locals.d.ts","sourceRoot":"","sources":["../../../../src/lib/locals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,YAAY,EAA8B,MAAM,iBAAiB,CAAC;AAE3E,QAAA,MAAM,MAAM,GAAI,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,KAAG,IA0BjE,CAAC;AAEF,QAAA,MAAM,YAAY,GAChB,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,MAAM,YAAY,KACjB,IAGF,CAAC;AAEF,QAAA,MAAM,iBAAiB,GACrB,KAAK,OAAO,GAAG;IAAE,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,EAC7C,KAAK,QAAQ,EACb,MAAM,YAAY,EAClB,eAAc,YAAY,GAAG,SAAqB,KACjD,IAqBF,CAAC;AAEF,QAAA,MAAM,qBAAqB,GACzB,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,MAAM,YAAY,KACjB,IAOF,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Express } from "express";
|
|
2
|
+
interface SetGTM {
|
|
3
|
+
app: Express;
|
|
4
|
+
ga4ContainerId: string;
|
|
5
|
+
analyticsCookieDomain: string;
|
|
6
|
+
ga4Enabled: boolean;
|
|
7
|
+
ga4PageViewEnabled: boolean;
|
|
8
|
+
ga4FormResponseEnabled: boolean;
|
|
9
|
+
ga4FormErrorEnabled: boolean;
|
|
10
|
+
ga4FormChangeEnabled: boolean;
|
|
11
|
+
ga4NavigationEnabled: boolean;
|
|
12
|
+
ga4SelectContentEnabled: boolean;
|
|
13
|
+
analyticsDataSensitive: boolean;
|
|
14
|
+
}
|
|
15
|
+
declare const setGTM: ({ app, ga4ContainerId, analyticsCookieDomain, ga4Enabled, ga4PageViewEnabled, ga4FormResponseEnabled, ga4FormErrorEnabled, ga4FormChangeEnabled, ga4NavigationEnabled, ga4SelectContentEnabled, analyticsDataSensitive, }: SetGTM) => void;
|
|
16
|
+
declare const setLanguageToggle: ({ app, showLanguageToggle, }: {
|
|
17
|
+
app: Express;
|
|
18
|
+
showLanguageToggle: boolean;
|
|
19
|
+
}) => void;
|
|
20
|
+
declare const setDeviceIntelligence: ({ app, deviceIntelligenceEnabled, deviceIntelligenceDomain, }: {
|
|
21
|
+
app: Express;
|
|
22
|
+
deviceIntelligenceEnabled: boolean;
|
|
23
|
+
deviceIntelligenceDomain: string;
|
|
24
|
+
}) => void;
|
|
25
|
+
export { setGTM, setLanguageToggle, setDeviceIntelligence };
|
|
26
|
+
//# sourceMappingURL=settings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../../src/lib/settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,UAAU,MAAM;IACd,GAAG,EAAE,OAAO,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,sBAAsB,EAAE,OAAO,CAAC;IAChC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,uBAAuB,EAAE,OAAO,CAAC;IACjC,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED,QAAA,MAAM,MAAM,GAAI,2NAYb,MAAM,SAWR,CAAC;AAEF,QAAA,MAAM,iBAAiB,GAAI,8BAGxB;IACD,GAAG,EAAE,OAAO,CAAC;IACb,kBAAkB,EAAE,OAAO,CAAC;CAC7B,SAEA,CAAC;AAEF,QAAA,MAAM,qBAAqB,GAAI,+DAI5B;IACD,GAAG,EAAE,OAAO,CAAC;IACb,yBAAyB,EAAE,OAAO,CAAC;IACnC,wBAAwB,EAAE,MAAM,CAAC;CAClC,SAGA,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jest.setup.d.ts","sourceRoot":"","sources":["../../../../src/test/jest.setup.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import nunjucks from "nunjucks";
|
|
2
|
+
export declare const nunjucksEnv: nunjucks.Environment;
|
|
3
|
+
export declare function render(macroFolder: string, macroName: string, params?: {}): Document;
|
|
4
|
+
export declare function renderTemplate(macroPath: string, params?: {}): Document;
|
|
5
|
+
//# sourceMappingURL=jestHelper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jestHelper.d.ts","sourceRoot":"","sources":["../../../../src/test/jestHelper.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAYhC,eAAO,MAAM,WAAW,sBAMvB,CAAC;AAQF,wBAAgB,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,KAAK,YASzE;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,KAAK,YAM5D"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Logger } from "pino";
|
|
2
|
+
export type CustomLogger = {
|
|
3
|
+
trace: (message: string) => void;
|
|
4
|
+
warn: (message: string) => void;
|
|
5
|
+
};
|
|
6
|
+
export declare const setCustomLogger: (customLogger: CustomLogger) => void;
|
|
7
|
+
export declare const getLogger: () => Logger | CustomLogger;
|
|
8
|
+
export declare const resetLogger: () => void;
|
|
9
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAKnC,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,cAAc,YAAY,SAEzD,CAAC;AAEF,eAAO,MAAM,SAAS,QAAO,MAAM,GAAG,YAWrC,CAAC;AAEF,eAAO,MAAM,WAAW,YAEvB,CAAC"}
|
|
@@ -78,11 +78,9 @@
|
|
|
78
78
|
window
|
|
79
79
|
.DI
|
|
80
80
|
.appInit({
|
|
81
|
-
ga4ContainerId: "{{ga4ContainerId}}"
|
|
82
|
-
uaContainerId: "{{uaContainerId}}"
|
|
81
|
+
ga4ContainerId: "{{ga4ContainerId}}"
|
|
83
82
|
}, {
|
|
84
83
|
enableGa4Tracking: {{ga4Enabled}},
|
|
85
|
-
enableUaTracking: {{uaEnabled}},
|
|
86
84
|
enablePageViewTracking: {{ga4PageViewEnabled}},
|
|
87
85
|
enableFormErrorTracking: {{ga4FormErrorEnabled}},
|
|
88
86
|
enableFormChangeTracking: {{ga4FormChangeEnabled}},
|
|
@@ -78,11 +78,9 @@
|
|
|
78
78
|
window
|
|
79
79
|
.DI
|
|
80
80
|
.appInit({
|
|
81
|
-
ga4ContainerId: "{{ga4ContainerId}}"
|
|
82
|
-
uaContainerId: "{{uaContainerId}}"
|
|
81
|
+
ga4ContainerId: "{{ga4ContainerId}}"
|
|
83
82
|
}, {
|
|
84
83
|
enableGa4Tracking: {{ga4Enabled}},
|
|
85
|
-
enableUaTracking: {{uaEnabled}},
|
|
86
84
|
enablePageViewTracking: {{ga4PageViewEnabled}},
|
|
87
85
|
enableFormErrorTracking: {{ga4FormErrorEnabled}},
|
|
88
86
|
enableFormChangeTracking: {{ga4FormChangeEnabled}},
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
{% if MAY_2025_REBRAND_ENABLED %}
|
|
2
|
+
{% set govukRebrand = true %}
|
|
3
|
+
{% set assetPath = "/public/rebrand" %}
|
|
4
|
+
{% endif %}
|
|
5
|
+
|
|
6
|
+
{% if isPageDataSensitive is not defined %}
|
|
7
|
+
{% set isPageDataSensitive = true %}
|
|
8
|
+
{% endif %}
|
|
9
|
+
{% set taxLevel1 = 'web cri' %}
|
|
10
|
+
|
|
11
|
+
{% extends "govuk/template.njk" %}
|
|
12
|
+
|
|
13
|
+
{% from "frontend-analytics/components/ga4-opl/macro.njk" import ga4OnPageLoad %}
|
|
14
|
+
{% from "frontend-ui/build/components/cookie-banner/macro.njk" import frontendUiCookieBanner %}
|
|
15
|
+
{% from "frontend-ui/build/components/phase-banner/macro.njk" import frontendUiPhaseBanner %}
|
|
16
|
+
{% from "frontend-ui/build/components/header/macro.njk" import frontendUiHeader %}
|
|
17
|
+
{% from "frontend-ui/build/components/footer/macro.njk" import frontendUiFooter %}
|
|
18
|
+
{% from "frontend-ui/build/components/language-select/macro.njk" import frontendUiLanguageSelect %}
|
|
19
|
+
{% from "govuk/components/back-link/macro.njk" import govukBackLink %}
|
|
20
|
+
{% from "govuk/components/skip-link/macro.njk" import govukSkipLink %}
|
|
21
|
+
|
|
22
|
+
{% set htmlLang = htmlLang %}
|
|
23
|
+
{% set pageTitleLang = htmlLang %}
|
|
24
|
+
{% set mainLang = htmlLang %}
|
|
25
|
+
|
|
26
|
+
{% block head %}
|
|
27
|
+
<link rel="stylesheet" href="/public/stylesheets/application.css"/>
|
|
28
|
+
{% block headMetaData %}{% endblock %}
|
|
29
|
+
{% endblock %}
|
|
30
|
+
|
|
31
|
+
{% block skipLink %}
|
|
32
|
+
{{ govukSkipLink({
|
|
33
|
+
text: translations.translation.skipLink.title,
|
|
34
|
+
href: "#main-content"
|
|
35
|
+
}) }}
|
|
36
|
+
{% endblock %}
|
|
37
|
+
|
|
38
|
+
{% block pageTitle -%}
|
|
39
|
+
{%- if errorList and errorTitlePrefix %}{{ errorTitlePrefix }}: {% endif -%}
|
|
40
|
+
{%- if pageTitle %}{{ pageTitle }} – GOV.UK One Login{% endif -%}
|
|
41
|
+
{%- endblock %}
|
|
42
|
+
|
|
43
|
+
{% block bodyStart %}
|
|
44
|
+
{% block cookieBanner %}
|
|
45
|
+
{{ frontendUiCookieBanner({
|
|
46
|
+
translations: translations.translation.cookieBanner
|
|
47
|
+
}) }}
|
|
48
|
+
{% endblock %}
|
|
49
|
+
{% endblock %}
|
|
50
|
+
|
|
51
|
+
{% block header %}
|
|
52
|
+
{{ frontendUiHeader({
|
|
53
|
+
translations: translations.translation.header,
|
|
54
|
+
homepageUrl: "https://www.gov.uk"
|
|
55
|
+
}) }}
|
|
56
|
+
{% endblock %}
|
|
57
|
+
|
|
58
|
+
{% block main %}
|
|
59
|
+
<div class="govuk-width-container">
|
|
60
|
+
{{ frontendUiPhaseBanner({
|
|
61
|
+
translations: translations.translation.phaseBanner,
|
|
62
|
+
url: currentUrl,
|
|
63
|
+
contactUrl: 'https://signin.account.gov.uk/contact-us'
|
|
64
|
+
}) }}
|
|
65
|
+
|
|
66
|
+
{% if showLanguageToggle %}
|
|
67
|
+
{{ frontendUiLanguageSelect({
|
|
68
|
+
translations: translations.translation.languageSelect,
|
|
69
|
+
url: currentUrl,
|
|
70
|
+
activeLanguage: htmlLang
|
|
71
|
+
}) }}
|
|
72
|
+
{% endif %}
|
|
73
|
+
|
|
74
|
+
{% if backLink %}
|
|
75
|
+
{{ govukBackLink({
|
|
76
|
+
text: backLinkText | default(""),
|
|
77
|
+
href: backLink
|
|
78
|
+
}) }}
|
|
79
|
+
{% endif %}
|
|
80
|
+
|
|
81
|
+
<main class="govuk-main-wrapper" id="main-content">
|
|
82
|
+
<div class="govuk-grid-row">
|
|
83
|
+
<div class="govuk-grid-column-two-thirds">
|
|
84
|
+
{% block content %}{% endblock %}
|
|
85
|
+
</div>
|
|
86
|
+
</div>
|
|
87
|
+
</main>
|
|
88
|
+
</div>
|
|
89
|
+
{% endblock %}
|
|
90
|
+
|
|
91
|
+
{% block footer %}
|
|
92
|
+
{{ frontendUiFooter({
|
|
93
|
+
translations: translations.translation.footer
|
|
94
|
+
}) }}
|
|
95
|
+
{% endblock %}
|
|
96
|
+
|
|
97
|
+
{% block bodyEnd %}
|
|
98
|
+
{% block scripts %}
|
|
99
|
+
<script type="text/javascript" src="/public/javascripts/analytics.js"></script>
|
|
100
|
+
<script type="text/javascript"{% if cspNonce %} nonce="{{ cspNonce }}"{% endif %}>
|
|
101
|
+
window.DI.appInit({
|
|
102
|
+
ga4ContainerId: "{{ ga4ContainerId }}"
|
|
103
|
+
}, {
|
|
104
|
+
enableGa4Tracking: {{ ga4Enabled }},
|
|
105
|
+
enablePageViewTracking: {{ ga4PageViewEnabled }},
|
|
106
|
+
enableFormErrorTracking: {{ ga4FormErrorEnabled }},
|
|
107
|
+
enableFormChangeTracking: {{ ga4FormChangeEnabled }},
|
|
108
|
+
enableFormResponseTracking: {{ ga4FormResponseEnabled }},
|
|
109
|
+
enableNavigationTracking: {{ ga4NavigationEnabled }},
|
|
110
|
+
enableSelectContentTracking: {{ ga4SelectContentEnabled }},
|
|
111
|
+
cookieDomain: "{{ analyticsCookieDomain }}",
|
|
112
|
+
isDataSensitive: {{ analyticsDataSensitive }},
|
|
113
|
+
isPageDataSensitive: {{ isPageDataSensitive }}
|
|
114
|
+
});
|
|
115
|
+
</script>
|
|
116
|
+
|
|
117
|
+
{% if deviceIntelligenceEnabled %}
|
|
118
|
+
<script type="module" src="/public/javascripts/deviceIntelligence.js"></script>
|
|
119
|
+
<script type="module"{% if cspNonce %} nonce="{{ cspNonce }}"{% endif %}>
|
|
120
|
+
import {setFingerprintCookie} from "/public/javascripts/deviceIntelligence.js";
|
|
121
|
+
setFingerprintCookie("{{ deviceIntelligenceDomain }}")
|
|
122
|
+
</script>
|
|
123
|
+
{% endif %}
|
|
124
|
+
|
|
125
|
+
{{ ga4OnPageLoad({
|
|
126
|
+
nonce: cspNonce,
|
|
127
|
+
statusCode: statusCode,
|
|
128
|
+
dynamic: isPageDynamic,
|
|
129
|
+
englishPageTitle: pageTitle,
|
|
130
|
+
taxonomyLevel1: taxLevel1,
|
|
131
|
+
taxonomyLevel2: taxLevel2,
|
|
132
|
+
taxonomyLevel3: taxLevel3,
|
|
133
|
+
taxonomyLevel4: taxLevel4,
|
|
134
|
+
taxonomyLevel5: taxLevel5,
|
|
135
|
+
contentId: contentID,
|
|
136
|
+
loggedInStatus: loggedInStatus
|
|
137
|
+
}) }}
|
|
138
|
+
{% endblock %}
|
|
139
|
+
{% endblock %}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cookie-banner.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/cookie-banner.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"footer.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/footer.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"header.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/header.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.spec.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/index.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language-select.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/language-select.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.spec.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/logger.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mobile-base.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/mobile-base.test.ts"],"names":[],"mappings":"AACA,OAAO,2BAA2B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phase-banner.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/phase-banner.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress-button.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/progress-button.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skip-link.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/skip-link.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spinner.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/spinner.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { NextFunction, Request, Response } from "express";
|
|
2
|
+
import i18next from "i18next";
|
|
3
|
+
export * from "./lib";
|
|
4
|
+
interface I18nData {
|
|
5
|
+
language: string;
|
|
6
|
+
store: {
|
|
7
|
+
data: {
|
|
8
|
+
[key: string]: unknown;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
interface ExpressRequest extends Request {
|
|
13
|
+
i18n: I18nData;
|
|
14
|
+
}
|
|
15
|
+
interface ExpressResponse extends Response {
|
|
16
|
+
locals: {
|
|
17
|
+
translations: unknown;
|
|
18
|
+
basePath?: string;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
interface PlainRequest {
|
|
22
|
+
i18n: I18nData;
|
|
23
|
+
}
|
|
24
|
+
interface PlainResponse {
|
|
25
|
+
locals: {
|
|
26
|
+
translations: unknown;
|
|
27
|
+
basePath?: string;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export declare function frontendUiMiddleware(req: ExpressRequest, res: ExpressResponse, next: NextFunction): void;
|
|
31
|
+
export declare function frontendUiMiddleware(req: PlainRequest, res: PlainResponse, next: NextFunction): void;
|
|
32
|
+
export declare const setFrontendUiTranslations: (instanceI18n: typeof i18next) => void;
|
|
33
|
+
export declare const frontendUiMiddlewareIdentityBypass: (req: ExpressRequest, res: ExpressResponse, next: NextFunction) => void;
|
|
34
|
+
export declare function validateTranslations(en: Record<string, unknown>, cy: Record<string, unknown>, path?: string): void;
|
|
35
|
+
export declare function warnCharacterLimit(text: string, limit: number): void;
|
|
36
|
+
export declare function addFrontendUiGlobals(nunjucksEnv: {
|
|
37
|
+
addGlobal: (name: string, value: unknown) => void;
|
|
38
|
+
}): void;
|
|
39
|
+
export declare function addLanguageParam(language: string, url?: URL): string;
|
|
40
|
+
export declare function contactUsUrl(baseUrl: string, urlToAppend: string): string | null;
|
|
41
|
+
export declare const setBaseTranslations: (instanceI18n: typeof i18next, filePath?: string) => void;
|
|
42
|
+
export declare const getTranslationObject: (locale: string, filepath?: string) => Record<string, unknown>;
|
|
43
|
+
export { default as frontendUiTranslationEn } from "../locales/en/translation.json";
|
|
44
|
+
export { default as frontendUiTranslationCy } from "../locales/cy/translation.json";
|
|
45
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,OAAO,MAAM,SAAS,CAAC;AAK9B,cAAc,OAAO,CAAC;AAKtB,UAAU,QAAQ;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE;QACL,IAAI,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;SAAE,CAAC;KAClC,CAAC;CACH;AAED,UAAU,cAAe,SAAQ,OAAO;IACtC,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,UAAU,eAAgB,SAAQ,QAAQ;IACxC,MAAM,EAAE;QACN,YAAY,EAAE,OAAO,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,UAAU,aAAa;IACrB,MAAM,EAAE;QACN,YAAY,EAAE,OAAO,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAGD,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,YAAY,GACjB,IAAI,CAAC;AAER,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,YAAY,EACjB,GAAG,EAAE,aAAa,EAClB,IAAI,EAAE,YAAY,GACjB,IAAI,CAAC;AAaR,eAAO,MAAM,yBAAyB,GAAI,cAAc,OAAO,OAAO,SAsBrE,CAAC;AAEF,eAAO,MAAM,kCAAkC,GAC7C,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,MAAM,YAAY,SAUnB,CAAC;AAsBF,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3B,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3B,IAAI,SAAK,GACR,IAAI,CAyBN;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAM7D;AAED,wBAAgB,oBAAoB,CAAC,WAAW,EAAE;IAChD,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACnD,QAIA;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,UAU3D;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,iBAkBhE;AAED,eAAO,MAAM,mBAAmB,GAC9B,cAAc,OAAO,OAAO,EAC5B,WAAW,MAAM,SASlB,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,MAAM,EACd,WAAW,MAAM,KAChB,MAAM,CAAC,MAAM,EAAE,OAAO,CAsBxB,CAAC;AAEF,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,gCAAgC,CAAC"}
|
|
@@ -39,7 +39,7 @@ var footer$1 = {
|
|
|
39
39
|
text: "Telerau ac amodau"
|
|
40
40
|
},
|
|
41
41
|
{
|
|
42
|
-
href: "https://www.gov.uk/government/publications/govuk-one-login-privacy-notice",
|
|
42
|
+
href: "https://www.gov.uk/government/publications/govuk-one-login-privacy-notice.cy",
|
|
43
43
|
text: "Hysbysiad preifatrwydd"
|
|
44
44
|
},
|
|
45
45
|
{
|
|
@@ -218,13 +218,13 @@ const getAssetPath = (req, res, next) => {
|
|
|
218
218
|
res.locals.assetPath = req.app.get("APP.ASSET_PATH");
|
|
219
219
|
next();
|
|
220
220
|
};
|
|
221
|
-
const getLanguageToggle = (req, res, next, customLogger) => {
|
|
221
|
+
const getLanguageToggle = (req, res, next, customLogger = undefined) => {
|
|
222
222
|
if (customLogger) {
|
|
223
223
|
setCustomLogger(customLogger);
|
|
224
224
|
}
|
|
225
225
|
const logger = getLogger();
|
|
226
226
|
const toggleValue = req.app.get("APP.LANGUAGE_TOGGLE_ENABLED");
|
|
227
|
-
res.locals.showLanguageToggle = toggleValue && toggleValue ===
|
|
227
|
+
res.locals.showLanguageToggle = toggleValue && toggleValue === true;
|
|
228
228
|
res.locals.htmlLang = req.i18n.language;
|
|
229
229
|
try {
|
|
230
230
|
res.locals.currentUrl = new URL(req.protocol + "://" + req.get("host") + req.originalUrl);
|
|
@@ -236,10 +236,17 @@ const getLanguageToggle = (req, res, next, customLogger) => {
|
|
|
236
236
|
}
|
|
237
237
|
next();
|
|
238
238
|
};
|
|
239
|
+
const getDeviceIntelligence = (req, res, next) => {
|
|
240
|
+
const toggleValue = req.app.get("APP.DEVICE_INTELLIGENCE_ENABLED");
|
|
241
|
+
res.locals.deviceIntelligenceEnabled = toggleValue && toggleValue === true;
|
|
242
|
+
res.locals.deviceIntelligenceDomain = req.app.get("APP.DEVICE_INTELLIGENCE_DOMAIN");
|
|
243
|
+
next();
|
|
244
|
+
};
|
|
239
245
|
|
|
240
246
|
var locals = /*#__PURE__*/Object.freeze({
|
|
241
247
|
__proto__: null,
|
|
242
248
|
getAssetPath: getAssetPath,
|
|
249
|
+
getDeviceIntelligence: getDeviceIntelligence,
|
|
243
250
|
getGTM: getGTM,
|
|
244
251
|
getLanguageToggle: getLanguageToggle
|
|
245
252
|
});
|
|
@@ -259,9 +266,14 @@ const setGTM = ({ app, ga4ContainerId, analyticsCookieDomain, ga4Enabled, ga4Pag
|
|
|
259
266
|
const setLanguageToggle = ({ app, showLanguageToggle, }) => {
|
|
260
267
|
app.set("APP.LANGUAGE_TOGGLE_ENABLED", showLanguageToggle);
|
|
261
268
|
};
|
|
269
|
+
const setDeviceIntelligence = ({ app, deviceIntelligenceEnabled, deviceIntelligenceDomain, }) => {
|
|
270
|
+
app.set("APP.DEVICE_INTELLIGENCE_ENABLED", deviceIntelligenceEnabled);
|
|
271
|
+
app.set("APP.DEVICE_INTELLIGENCE_DOMAIN", deviceIntelligenceDomain);
|
|
272
|
+
};
|
|
262
273
|
|
|
263
274
|
var settings = /*#__PURE__*/Object.freeze({
|
|
264
275
|
__proto__: null,
|
|
276
|
+
setDeviceIntelligence: setDeviceIntelligence,
|
|
265
277
|
setGTM: setGTM,
|
|
266
278
|
setLanguageToggle: setLanguageToggle
|
|
267
279
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helmet.d.ts","sourceRoot":"","sources":["../../../../src/lib/helmet.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,QAAQ,CAAC;AAiD5C,wBAAgB,eAAe,CAAC,SAAS,GAAE,aAAkB,GAAG,aAAa,CAE5E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { NextFunction, Request, Response } from "express";
|
|
2
|
+
import { CustomLogger } from "../utils/logger";
|
|
3
|
+
declare const getGTM: (req: Request, res: Response, next: NextFunction) => void;
|
|
4
|
+
declare const getAssetPath: (req: Request, res: Response, next: NextFunction) => void;
|
|
5
|
+
declare const getLanguageToggle: (req: Request & {
|
|
6
|
+
i18n: {
|
|
7
|
+
language: string;
|
|
8
|
+
};
|
|
9
|
+
}, res: Response, next: NextFunction, customLogger?: CustomLogger | undefined) => void;
|
|
10
|
+
declare const getDeviceIntelligence: (req: Request, res: Response, next: NextFunction) => void;
|
|
11
|
+
export { getAssetPath, getGTM, getLanguageToggle, getDeviceIntelligence };
|
|
12
|
+
//# sourceMappingURL=locals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locals.d.ts","sourceRoot":"","sources":["../../../../src/lib/locals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,YAAY,EAA8B,MAAM,iBAAiB,CAAC;AAE3E,QAAA,MAAM,MAAM,GAAI,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,KAAG,IA0BjE,CAAC;AAEF,QAAA,MAAM,YAAY,GAChB,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,MAAM,YAAY,KACjB,IAGF,CAAC;AAEF,QAAA,MAAM,iBAAiB,GACrB,KAAK,OAAO,GAAG;IAAE,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,EAC7C,KAAK,QAAQ,EACb,MAAM,YAAY,EAClB,eAAc,YAAY,GAAG,SAAqB,KACjD,IAqBF,CAAC;AAEF,QAAA,MAAM,qBAAqB,GACzB,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,MAAM,YAAY,KACjB,IAOF,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Express } from "express";
|
|
2
|
+
interface SetGTM {
|
|
3
|
+
app: Express;
|
|
4
|
+
ga4ContainerId: string;
|
|
5
|
+
analyticsCookieDomain: string;
|
|
6
|
+
ga4Enabled: boolean;
|
|
7
|
+
ga4PageViewEnabled: boolean;
|
|
8
|
+
ga4FormResponseEnabled: boolean;
|
|
9
|
+
ga4FormErrorEnabled: boolean;
|
|
10
|
+
ga4FormChangeEnabled: boolean;
|
|
11
|
+
ga4NavigationEnabled: boolean;
|
|
12
|
+
ga4SelectContentEnabled: boolean;
|
|
13
|
+
analyticsDataSensitive: boolean;
|
|
14
|
+
}
|
|
15
|
+
declare const setGTM: ({ app, ga4ContainerId, analyticsCookieDomain, ga4Enabled, ga4PageViewEnabled, ga4FormResponseEnabled, ga4FormErrorEnabled, ga4FormChangeEnabled, ga4NavigationEnabled, ga4SelectContentEnabled, analyticsDataSensitive, }: SetGTM) => void;
|
|
16
|
+
declare const setLanguageToggle: ({ app, showLanguageToggle, }: {
|
|
17
|
+
app: Express;
|
|
18
|
+
showLanguageToggle: boolean;
|
|
19
|
+
}) => void;
|
|
20
|
+
declare const setDeviceIntelligence: ({ app, deviceIntelligenceEnabled, deviceIntelligenceDomain, }: {
|
|
21
|
+
app: Express;
|
|
22
|
+
deviceIntelligenceEnabled: boolean;
|
|
23
|
+
deviceIntelligenceDomain: string;
|
|
24
|
+
}) => void;
|
|
25
|
+
export { setGTM, setLanguageToggle, setDeviceIntelligence };
|
|
26
|
+
//# sourceMappingURL=settings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../../src/lib/settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,UAAU,MAAM;IACd,GAAG,EAAE,OAAO,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,sBAAsB,EAAE,OAAO,CAAC;IAChC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,uBAAuB,EAAE,OAAO,CAAC;IACjC,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED,QAAA,MAAM,MAAM,GAAI,2NAYb,MAAM,SAWR,CAAC;AAEF,QAAA,MAAM,iBAAiB,GAAI,8BAGxB;IACD,GAAG,EAAE,OAAO,CAAC;IACb,kBAAkB,EAAE,OAAO,CAAC;CAC7B,SAEA,CAAC;AAEF,QAAA,MAAM,qBAAqB,GAAI,+DAI5B;IACD,GAAG,EAAE,OAAO,CAAC;IACb,yBAAyB,EAAE,OAAO,CAAC;IACnC,wBAAwB,EAAE,MAAM,CAAC;CAClC,SAGA,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jest.setup.d.ts","sourceRoot":"","sources":["../../../../src/test/jest.setup.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import nunjucks from "nunjucks";
|
|
2
|
+
export declare const nunjucksEnv: nunjucks.Environment;
|
|
3
|
+
export declare function render(macroFolder: string, macroName: string, params?: {}): Document;
|
|
4
|
+
export declare function renderTemplate(macroPath: string, params?: {}): Document;
|
|
5
|
+
//# sourceMappingURL=jestHelper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jestHelper.d.ts","sourceRoot":"","sources":["../../../../src/test/jestHelper.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAYhC,eAAO,MAAM,WAAW,sBAMvB,CAAC;AAQF,wBAAgB,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,KAAK,YASzE;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,KAAK,YAM5D"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Logger } from "pino";
|
|
2
|
+
export type CustomLogger = {
|
|
3
|
+
trace: (message: string) => void;
|
|
4
|
+
warn: (message: string) => void;
|
|
5
|
+
};
|
|
6
|
+
export declare const setCustomLogger: (customLogger: CustomLogger) => void;
|
|
7
|
+
export declare const getLogger: () => Logger | CustomLogger;
|
|
8
|
+
export declare const resetLogger: () => void;
|
|
9
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAKnC,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,cAAc,YAAY,SAEzD,CAAC;AAEF,eAAO,MAAM,SAAS,QAAO,MAAM,GAAG,YAWrC,CAAC;AAEF,eAAO,MAAM,WAAW,YAEvB,CAAC"}
|