hof 22.8.4-unhandled-error-fix-beta.1 → 22.9.0-beta
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/CHANGELOG.md +16 -0
- package/README.md +30 -0
- package/config/hof-defaults.js +6 -1
- package/frontend/template-partials/views/layout.html +2 -8
- package/frontend/themes/gov-uk/styles/_cookie-banner.scss +0 -3
- package/hof-22.9.0.tgz +0 -0
- package/lib/settings.js +1 -0
- package/model/index.js +1 -1
- package/package/.eslintignore +1 -0
- package/package/CHANGELOG.md +232 -0
- package/package/LICENSE +21 -0
- package/package/README.md +1887 -0
- package/package/bin/hof-build +10 -0
- package/package/bin/hof-transpiler +12 -0
- package/package/build/helpers/importer.js +29 -0
- package/package/build/helpers/local.js +35 -0
- package/package/build/helpers/resolver/import.js +32 -0
- package/package/build/helpers/resolver/nearest-package-root.js +33 -0
- package/package/build/helpers/resolver/package.js +29 -0
- package/package/build/helpers/resolver.js +16 -0
- package/package/build/index.js +49 -0
- package/package/build/lib/env.js +36 -0
- package/package/build/lib/mkdir.js +9 -0
- package/package/build/lib/run.js +17 -0
- package/package/build/lib/spawn.js +18 -0
- package/package/build/tasks/browserify/compress.js +15 -0
- package/package/build/tasks/browserify/index.js +48 -0
- package/package/build/tasks/build/index.js +6 -0
- package/package/build/tasks/images/index.js +27 -0
- package/package/build/tasks/index.js +8 -0
- package/package/build/tasks/sass/index.js +67 -0
- package/package/build/tasks/translate/index.js +20 -0
- package/package/build/tasks/watch/index.js +161 -0
- package/package/components/address-lookup/default-model.js +76 -0
- package/package/components/address-lookup/defaults.js +25 -0
- package/package/components/address-lookup/index.js +251 -0
- package/package/components/address-lookup/templates/address-lookup.html +14 -0
- package/package/components/address-lookup/templates/address.html +22 -0
- package/package/components/address-lookup/templates/postcode.html +9 -0
- package/package/components/clear-session/Readme.md +46 -0
- package/package/components/clear-session/index.js +26 -0
- package/package/components/combine-and-loop-fields/Readme.md +42 -0
- package/package/components/combine-and-loop-fields/index.js +156 -0
- package/package/components/date/fields.js +16 -0
- package/package/components/date/index.js +172 -0
- package/package/components/date/templates/date.html +20 -0
- package/package/components/emailer/assets/images/govuk_logotype_email.png +0 -0
- package/package/components/emailer/assets/images/ho_crest_27px.png +0 -0
- package/package/components/emailer/assets/images/spacer.gif +0 -0
- package/package/components/emailer/email-service.js +51 -0
- package/package/components/emailer/emailer.js +53 -0
- package/package/components/emailer/index.js +74 -0
- package/package/components/emailer/transports/debug.js +74 -0
- package/package/components/emailer/transports/index.js +8 -0
- package/package/components/emailer/transports/ses.js +36 -0
- package/package/components/emailer/transports/smtp.js +26 -0
- package/package/components/emailer/transports/stub.js +5 -0
- package/package/components/emailer/views/layout.html +63 -0
- package/package/components/homeoffice-countries/index.js +22 -0
- package/package/components/index.js +13 -0
- package/package/components/notify/index.js +62 -0
- package/package/components/notify/notify.js +51 -0
- package/package/components/session-timeout-warning/index.js +67 -0
- package/package/components/summary/index.js +237 -0
- package/package/config/builder-defaults.js +45 -0
- package/package/config/component-defaults.js +13 -0
- package/package/config/hof-defaults.js +65 -0
- package/package/config/rate-limits.js +20 -0
- package/package/config/sanitisation-rules.js +32 -0
- package/package/controller/base-controller.js +296 -0
- package/package/controller/behaviour-hooks.js +51 -0
- package/package/controller/behaviour-session.js +64 -0
- package/package/controller/controller.js +258 -0
- package/package/controller/deprecate-error.js +10 -0
- package/package/controller/formatting/formatters.js +70 -0
- package/package/controller/formatting/index.js +32 -0
- package/package/controller/index.js +17 -0
- package/package/controller/validation/email.js +30 -0
- package/package/controller/validation/index.js +101 -0
- package/package/controller/validation/validators.js +181 -0
- package/package/controller/validation-error.js +14 -0
- package/package/frontend/govuk-template/build/config.js +24 -0
- package/package/frontend/govuk-template/build/govuk_template.html +102 -0
- package/package/frontend/govuk-template/build/index.js +23 -0
- package/package/frontend/govuk-template/govuk_template_generated.html +102 -0
- package/package/frontend/govuk-template/index.js +29 -0
- package/package/frontend/index.js +9 -0
- package/package/frontend/template-mixins/mixins/helpers.js +103 -0
- package/package/frontend/template-mixins/mixins/index.js +37 -0
- package/package/frontend/template-mixins/mixins/render.js +12 -0
- package/package/frontend/template-mixins/mixins/template-mixins.js +520 -0
- package/package/frontend/template-mixins/partials/forms/checkbox-group.html +47 -0
- package/package/frontend/template-mixins/partials/forms/checkbox.html +16 -0
- package/package/frontend/template-mixins/partials/forms/input-submit.html +1 -0
- package/package/frontend/template-mixins/partials/forms/input-text-date.html +37 -0
- package/package/frontend/template-mixins/partials/forms/input-text-group.html +45 -0
- package/package/frontend/template-mixins/partials/forms/option-group.html +43 -0
- package/package/frontend/template-mixins/partials/forms/select.html +17 -0
- package/package/frontend/template-mixins/partials/forms/textarea-group.html +37 -0
- package/package/frontend/template-mixins/partials/mixins/panel.html +4 -0
- package/package/frontend/template-partials/index.js +9 -0
- package/package/frontend/template-partials/translations/index.js +26 -0
- package/package/frontend/template-partials/translations/src/cy/base.json +4 -0
- package/package/frontend/template-partials/translations/src/cy/buttons.json +6 -0
- package/package/frontend/template-partials/translations/src/cy/cookies.json +104 -0
- package/package/frontend/template-partials/translations/src/cy/errorlist.json +6 -0
- package/package/frontend/template-partials/translations/src/cy/errors.json +18 -0
- package/package/frontend/template-partials/translations/src/cy/terms.json +28 -0
- package/package/frontend/template-partials/translations/src/en/accessibility.json +43 -0
- package/package/frontend/template-partials/translations/src/en/base.json +5 -0
- package/package/frontend/template-partials/translations/src/en/buttons.json +10 -0
- package/package/frontend/template-partials/translations/src/en/cookies.json +116 -0
- package/package/frontend/template-partials/translations/src/en/errorlist.json +7 -0
- package/package/frontend/template-partials/translations/src/en/errors.json +35 -0
- package/package/frontend/template-partials/translations/src/en/exit.json +5 -0
- package/package/frontend/template-partials/translations/src/en/fields.json +5 -0
- package/package/frontend/template-partials/translations/src/en/journey.json +6 -0
- package/package/frontend/template-partials/translations/src/en/save-and-exit.json +4 -0
- package/package/frontend/template-partials/translations/src/en/terms.json +28 -0
- package/package/frontend/template-partials/views/404.html +9 -0
- package/package/frontend/template-partials/views/accessibility.html +55 -0
- package/package/frontend/template-partials/views/confirm.html +8 -0
- package/package/frontend/template-partials/views/confirmation.html +19 -0
- package/package/frontend/template-partials/views/content/en/what-happens-next.md +0 -0
- package/package/frontend/template-partials/views/cookie-error.html +1 -0
- package/package/frontend/template-partials/views/cookies.html +84 -0
- package/package/frontend/template-partials/views/email/data-row.html +4 -0
- package/package/frontend/template-partials/views/email/formatted.html +12 -0
- package/package/frontend/template-partials/views/email/layout.html +63 -0
- package/package/frontend/template-partials/views/email/raw.html +11 -0
- package/package/frontend/template-partials/views/email/section-row.html +3 -0
- package/package/frontend/template-partials/views/error.html +20 -0
- package/package/frontend/template-partials/views/exit.html +9 -0
- package/package/frontend/template-partials/views/feedback-submitted.html +11 -0
- package/package/frontend/template-partials/views/layout.html +55 -0
- package/package/frontend/template-partials/views/partials/analytics-table.html +25 -0
- package/package/frontend/template-partials/views/partials/back.html +5 -0
- package/package/frontend/template-partials/views/partials/bullet-list.html +7 -0
- package/package/frontend/template-partials/views/partials/confirmation-alert.html +6 -0
- package/package/frontend/template-partials/views/partials/continue.html +5 -0
- package/package/frontend/template-partials/views/partials/cookie-banner.html +29 -0
- package/package/frontend/template-partials/views/partials/cookie-notification.html +4 -0
- package/package/frontend/template-partials/views/partials/cookie-settings-button.html +1 -0
- package/package/frontend/template-partials/views/partials/cookie-settings-radio.html +8 -0
- package/package/frontend/template-partials/views/partials/details-summary.html +8 -0
- package/package/frontend/template-partials/views/partials/external-link.html +1 -0
- package/package/frontend/template-partials/views/partials/form.html +10 -0
- package/package/frontend/template-partials/views/partials/gatag.html +60 -0
- package/package/frontend/template-partials/views/partials/head.html +31 -0
- package/package/frontend/template-partials/views/partials/heading.html +11 -0
- package/package/frontend/template-partials/views/partials/items-table.html +32 -0
- package/package/frontend/template-partials/views/partials/maincontent-left.html +10 -0
- package/package/frontend/template-partials/views/partials/navigation.html +8 -0
- package/package/frontend/template-partials/views/partials/page.html +23 -0
- package/package/frontend/template-partials/views/partials/panel-indent.html +3 -0
- package/package/frontend/template-partials/views/partials/session-cookies-table.html +28 -0
- package/package/frontend/template-partials/views/partials/session-timeout-warning.html +38 -0
- package/package/frontend/template-partials/views/partials/summary-table-row.html +14 -0
- package/package/frontend/template-partials/views/partials/summary-table.html +8 -0
- package/package/frontend/template-partials/views/partials/table.html +18 -0
- package/package/frontend/template-partials/views/partials/validation-list.html +3 -0
- package/package/frontend/template-partials/views/partials/validation-summary.html +25 -0
- package/package/frontend/template-partials/views/partials/warn.html +7 -0
- package/package/frontend/template-partials/views/rate-limit-error.html +10 -0
- package/package/frontend/template-partials/views/save-and-exit.html +17 -0
- package/package/frontend/template-partials/views/service-unavailable.html +13 -0
- package/package/frontend/template-partials/views/session-timeout.html +7 -0
- package/package/frontend/template-partials/views/step.html +14 -0
- package/package/frontend/template-partials/views/terms.html +26 -0
- package/package/frontend/themes/gov-uk/client-js/cookieSettings.js +145 -0
- package/package/frontend/themes/gov-uk/client-js/govuk-cookies.js +121 -0
- package/package/frontend/themes/gov-uk/client-js/index.js +27 -0
- package/package/frontend/themes/gov-uk/client-js/session-timeout-dialog.js +348 -0
- package/package/frontend/themes/gov-uk/client-js/skip-to-main.js +19 -0
- package/package/frontend/themes/gov-uk/index.js +9 -0
- package/package/frontend/themes/gov-uk/styles/_base.scss +17 -0
- package/package/frontend/themes/gov-uk/styles/_check_your_answers.scss +155 -0
- package/package/frontend/themes/gov-uk/styles/_cookie-banner.scss +111 -0
- package/package/frontend/themes/gov-uk/styles/_cookie-settings.scss +33 -0
- package/package/frontend/themes/gov-uk/styles/_govuk_frontend_toolkit.scss +23 -0
- package/package/frontend/themes/gov-uk/styles/_helpers.scss +5 -0
- package/package/frontend/themes/gov-uk/styles/_layout.scss +125 -0
- package/package/frontend/themes/gov-uk/styles/_panel-indent.scss +27 -0
- package/package/frontend/themes/gov-uk/styles/_pdf.scss +42 -0
- package/package/frontend/themes/gov-uk/styles/_session-timeout-dialog.scss +121 -0
- package/package/frontend/themes/gov-uk/styles/_typography.scss +27 -0
- package/package/frontend/themes/gov-uk/styles/_variables.scss +11 -0
- package/package/frontend/themes/gov-uk/styles/govuk.scss +43 -0
- package/package/frontend/themes/gov-uk/styles/mixins.scss +16 -0
- package/package/frontend/themes/gov-uk/styles/modules/_alerts.scss +73 -0
- package/package/frontend/themes/gov-uk/styles/modules/_buttons.scss +5 -0
- package/package/frontend/themes/gov-uk/styles/modules/_character-count.scss +8 -0
- package/package/frontend/themes/gov-uk/styles/modules/_confirm-page.scss +20 -0
- package/package/frontend/themes/gov-uk/styles/modules/_lists.scss +5 -0
- package/package/frontend/themes/gov-uk/styles/modules/_progressive-reveal.scss +17 -0
- package/package/frontend/themes/gov-uk/styles/modules/_validation.scss +51 -0
- package/package/frontend/themes/index.js +5 -0
- package/package/frontend/toolkit/assets/images/passports/new-window-link-blue.png +0 -0
- package/package/frontend/toolkit/assets/images/passports/new-window-link.png +0 -0
- package/package/frontend/toolkit/assets/images/spinner.gif +0 -0
- package/package/frontend/toolkit/assets/javascript/character-count.js +99 -0
- package/package/frontend/toolkit/assets/javascript/form-focus.js +101 -0
- package/package/frontend/toolkit/assets/javascript/helpers.js +177 -0
- package/package/frontend/toolkit/assets/javascript/progressive-reveal.js +72 -0
- package/package/frontend/toolkit/assets/javascript/validation.js +71 -0
- package/package/frontend/toolkit/assets/javascript/vendor/details.polyfill.js +189 -0
- package/package/frontend/toolkit/assets/javascript/vendor/indexof.polyfill.js +39 -0
- package/package/frontend/toolkit/assets/javascript/vendor/safari-cachebuster.js +6 -0
- package/package/frontend/toolkit/assets/stylesheets/_base.scss +17 -0
- package/package/frontend/toolkit/assets/stylesheets/_helpers.scss +5 -0
- package/package/frontend/toolkit/assets/stylesheets/_layout.scss +118 -0
- package/package/frontend/toolkit/assets/stylesheets/_typography.scss +27 -0
- package/package/frontend/toolkit/assets/stylesheets/_variables.scss +11 -0
- package/package/frontend/toolkit/assets/stylesheets/app.scss +30 -0
- package/package/frontend/toolkit/assets/stylesheets/govuk-elements/_buttons.scss +47 -0
- package/package/frontend/toolkit/assets/stylesheets/govuk-elements/_details.scss +38 -0
- package/package/frontend/toolkit/assets/stylesheets/govuk-elements/_elements-typography.scss +175 -0
- package/package/frontend/toolkit/assets/stylesheets/govuk-elements/_forms.scss +167 -0
- package/package/frontend/toolkit/assets/stylesheets/govuk-elements/_helpers.scss +39 -0
- package/package/frontend/toolkit/assets/stylesheets/govuk-elements/_layout.scss +67 -0
- package/package/frontend/toolkit/assets/stylesheets/govuk-elements/_lists.scss +40 -0
- package/package/frontend/toolkit/assets/stylesheets/govuk-elements/_panels.scss +29 -0
- package/package/frontend/toolkit/assets/stylesheets/govuk-elements/_reset.scss +33 -0
- package/package/frontend/toolkit/assets/stylesheets/govuk-elements/_tables.scss +33 -0
- package/package/frontend/toolkit/assets/stylesheets/govuk-elements/forms/_form-block-labels.scss +63 -0
- package/package/frontend/toolkit/assets/stylesheets/govuk-elements/forms/_form-date.scss +39 -0
- package/package/frontend/toolkit/assets/stylesheets/govuk-elements/forms/_form-validation.scss +63 -0
- package/package/frontend/toolkit/assets/stylesheets/mixins.scss +16 -0
- package/package/frontend/toolkit/assets/stylesheets/modules/_alerts.scss +73 -0
- package/package/frontend/toolkit/assets/stylesheets/modules/_buttons.scss +5 -0
- package/package/frontend/toolkit/assets/stylesheets/modules/_confirm-page.scss +20 -0
- package/package/frontend/toolkit/assets/stylesheets/modules/_lists.scss +5 -0
- package/package/frontend/toolkit/assets/stylesheets/modules/_progressive-reveal.scss +17 -0
- package/package/frontend/toolkit/assets/stylesheets/modules/_validation.scss +51 -0
- package/package/frontend/toolkit/index.js +10 -0
- package/package/index.js +351 -0
- package/package/lib/deindex.js +18 -0
- package/package/lib/encryption.js +23 -0
- package/package/lib/ga-tag.js +89 -0
- package/package/lib/health.js +26 -0
- package/package/lib/helpers.js +66 -0
- package/package/lib/logger.js +65 -0
- package/package/lib/markdown.js +46 -0
- package/package/lib/router.js +111 -0
- package/package/lib/serve-static.js +12 -0
- package/package/lib/sessions.js +82 -0
- package/package/lib/settings.js +74 -0
- package/package/lib/which.js +28 -0
- package/package/middleware/cookies.js +43 -0
- package/package/middleware/deep-translate.js +32 -0
- package/package/middleware/errors.js +119 -0
- package/package/middleware/index.js +10 -0
- package/package/middleware/not-found.js +38 -0
- package/package/middleware/rate-limiter.js +98 -0
- package/package/middleware/service-unavailable.js +64 -0
- package/package/model/apis/axios-settings.js +21 -0
- package/package/model/apis/html-to-pdf-converter.js +35 -0
- package/package/model/apis/index.js +5 -0
- package/package/model/index.js +348 -0
- package/package/package.json +147 -0
- package/package/sandbox/README.md +66 -0
- package/package/sandbox/apps/sandbox/behaviours/clear-session.js +8 -0
- package/package/sandbox/apps/sandbox/behaviours/country-select.js +10 -0
- package/package/sandbox/apps/sandbox/behaviours/international-number.js +22 -0
- package/package/sandbox/apps/sandbox/fields.js +128 -0
- package/package/sandbox/apps/sandbox/index.js +99 -0
- package/package/sandbox/apps/sandbox/lib/staticAppealStages.js +189 -0
- package/package/sandbox/apps/sandbox/sections/summary-data-sections.js +43 -0
- package/package/sandbox/apps/sandbox/translations/src/en/errors.json +5 -0
- package/package/sandbox/apps/sandbox/translations/src/en/exit.json +4 -0
- package/package/sandbox/apps/sandbox/translations/src/en/fields.json +101 -0
- package/package/sandbox/apps/sandbox/translations/src/en/journey.json +7 -0
- package/package/sandbox/apps/sandbox/translations/src/en/pages.json +72 -0
- package/package/sandbox/apps/sandbox/translations/src/en/validation.json +54 -0
- package/package/sandbox/apps/sandbox/views/form-guidance-link.html +8 -0
- package/package/sandbox/apps/sandbox/views/save-and-exit.html +19 -0
- package/package/sandbox/assets/images/icons/icon-caret-left.png +0 -0
- package/package/sandbox/assets/images/icons/icon-complete.png +0 -0
- package/package/sandbox/assets/images/icons/icon-cross-remove-sign.png +0 -0
- package/package/sandbox/assets/js/index.js +70 -0
- package/package/sandbox/assets/scss/app.scss +27 -0
- package/package/sandbox/codecept.conf.js +15 -0
- package/package/sandbox/config.js +17 -0
- package/package/sandbox/package.json +26 -0
- package/package/sandbox/server.js +23 -0
- package/package/sandbox/yarn.lock +262 -0
- package/package/transpiler/index.js +2 -0
- package/package/transpiler/lib/aggregate.js +32 -0
- package/package/transpiler/lib/build.js +15 -0
- package/package/transpiler/lib/compile.js +12 -0
- package/package/transpiler/lib/expand-dirs.js +14 -0
- package/package/transpiler/lib/write-files.js +24 -0
- package/package/utilities/autofill/index.js +189 -0
- package/package/utilities/autofill/inputs.js +60 -0
- package/package/utilities/countries.js +12 -0
- package/package/utilities/helpers/index.js +189 -0
- package/package/utilities/index.js +9 -0
- package/package/utilities/reqres/index.js +18 -0
- package/package/utilities/test-data/data/domain.json +7 -0
- package/package/utilities/test-data/data/firstname.json +16 -0
- package/package/utilities/test-data/data/lastname.json +10 -0
- package/package/utilities/test-data/data/postcode.json +12 -0
- package/package/utilities/test-data/data/streetname.json +8 -0
- package/package/utilities/test-data/data/streetsuffix.json +7 -0
- package/package/utilities/test-data/data/town.json +9 -0
- package/package/utilities/test-data/index.js +67 -0
- package/package/wizard/behaviours/complete.js +20 -0
- package/package/wizard/behaviours/index.js +5 -0
- package/package/wizard/index.js +124 -0
- package/package/wizard/middleware/back-links.js +68 -0
- package/package/wizard/middleware/check-complete.js +13 -0
- package/package/wizard/middleware/check-progress.js +139 -0
- package/package/wizard/middleware/check-session.js +17 -0
- package/package/wizard/middleware/csrf.js +47 -0
- package/package/wizard/middleware/session-model.js +11 -0
- package/package/wizard/middleware/session.js +9 -0
- package/package/wizard/model.js +29 -0
- package/package/wizard/util/constants.js +5 -0
- package/package/wizard/util/helpers.js +19 -0
- package/package.json +5 -6
- package/.editorconfig +0 -10
- package/.github/workflows/automate-publish.yml +0 -38
- package/.github/workflows/automate-tag.yml +0 -78
- package/.istanbul.yml +0 -20
- package/.nyc_output/be573ac3-d055-4910-a088-9d41b5345cec.json +0 -1
- package/.nyc_output/processinfo/be573ac3-d055-4910-a088-9d41b5345cec.json +0 -1
- package/.nyc_output/processinfo/index.json +0 -1
- package/codeReviewChecklist.md +0 -22
- package/pull_request_template.md +0 -16
package/CHANGELOG.md
CHANGED
@@ -1,3 +1,19 @@
|
|
1
|
+
## 2025-08-14, Version 22.9.1 (Stable), @dk4g
|
2
|
+
|
3
|
+
### Added
|
4
|
+
- Added `showCookiesBanner` configuration flag to control cookie banner display
|
5
|
+
- Automatically shows banner when `GA_TAG` or `GA_4_TAG` environment variables are present
|
6
|
+
- Defaults to `false` when no Google Analytics is configured
|
7
|
+
- Can be explicitly controlled via `SHOW_COOKIES_BANNER` environment variable
|
8
|
+
|
9
|
+
### Changed
|
10
|
+
- Cookie banner now intelligently displays based on GA configuration
|
11
|
+
- Improved cookie consent UX by hiding banner when GA is not enabled
|
12
|
+
- **Layout template updated**: Projects that override the default `layout` template should update their custom templates to include the new `showCookiesBanner` logic. If you inherit from HOF's layout template, no action is required.
|
13
|
+
|
14
|
+
### Migration Notes
|
15
|
+
- **Custom Layout Templates**: If your project overrides the default HOF layout template, ensure your custom template includes the cookie banner conditional logic using the new `showCookiesBanner` configuration flag. Check the updated HOF layout template for reference implementation.
|
16
|
+
|
1
17
|
## 2025-07-24, Version 22.8.4 (Stable), @vivekkumar-ho
|
2
18
|
### Security
|
3
19
|
- Upgraded axios version to address a security vulnerability
|
package/README.md
CHANGED
@@ -859,6 +859,36 @@ You can also provide an array of healthcheck URLs with `healthcheckUrls`,
|
|
859
859
|
should you not want to throw a Cookies required error when requesting the app with specific URLs.
|
860
860
|
Kubernetes healthcheck URLs are provided as defaults if no overrides are supplied.
|
861
861
|
|
862
|
+
### Cookie Banner Control
|
863
|
+
|
864
|
+
> **Available from version 22.9.1**
|
865
|
+
|
866
|
+
| Variable | Description | Default | Example |
|
867
|
+
|----------|-------------|---------|---------|
|
868
|
+
| `SHOW_COOKIES_BANNER` | Controls whether the cookies banner is displayed | Auto-detected based on GA tags | `true`, `false` |
|
869
|
+
|
870
|
+
**Behavior:**
|
871
|
+
- If `SHOW_COOKIES_BANNER` is explicitly set, that value is used
|
872
|
+
- If not set, banner is automatically shown when `GA_TAG` or `GA_4_TAG` is present
|
873
|
+
- If no GA tags are configured, banner is hidden by default
|
874
|
+
|
875
|
+
**Examples:**
|
876
|
+
```bash
|
877
|
+
# Explicitly show banner regardless of GA configuration
|
878
|
+
SHOW_COOKIES_BANNER=true
|
879
|
+
|
880
|
+
# Hide banner even when GA tags are present
|
881
|
+
SHOW_COOKIES_BANNER=false
|
882
|
+
GA_TAG=UA-12345678-1
|
883
|
+
|
884
|
+
# Auto-detect (recommended) - shows banner when GA is configured
|
885
|
+
GA_TAG=UA-12345678-1 # Banner will show
|
886
|
+
GA_4_TAG=G-XXXXXXXXXX # Banner will show
|
887
|
+
# (no GA tags) # Banner will be hidden
|
888
|
+
```
|
889
|
+
|
890
|
+
**Note:** If you have a custom layout template that overrides the default HOF layout, you'll need to update it to include the new `showCookiesBanner` logic. Projects that inherit from the default HOF layout template will automatically receive this functionality.
|
891
|
+
|
862
892
|
## Service Unavailable
|
863
893
|
Allows a service to be paused when required and then resumed. It ensures that anyone using the service that lands on any part of the form is diverted to a "Service Unavailable" page which will communicate to the user that the service is not available at this time.
|
864
894
|
|
package/config/hof-defaults.js
CHANGED
@@ -25,8 +25,13 @@ const defaults = {
|
|
25
25
|
host: process.env.HOST || '0.0.0.0',
|
26
26
|
port: process.env.PORT || '8080',
|
27
27
|
env: process.env.NODE_ENV || 'development',
|
28
|
-
gaTagId: process.env.GA_TAG
|
28
|
+
gaTagId: process.env.GA_TAG,
|
29
29
|
ga4TagId: process.env.GA_4_TAG,
|
30
|
+
showCookiesBanner: parseBoolean(
|
31
|
+
process.env.SHOW_COOKIES_BANNER,
|
32
|
+
Boolean(process.env.GA_TAG || process.env.GA_4_TAG),
|
33
|
+
'SHOW_COOKIES_BANNER'
|
34
|
+
),
|
30
35
|
// added to allow support for multiple HOF forms using GTM to customize how they track page views
|
31
36
|
gtm: {
|
32
37
|
tagId: process.env.GTM_TAG || false,
|
@@ -33,15 +33,9 @@
|
|
33
33
|
</div>
|
34
34
|
{{/main}}
|
35
35
|
{{$cookieMessage}}
|
36
|
-
{{#
|
36
|
+
{{#showCookiesBanner}}
|
37
37
|
{{> partials-cookie-banner}}
|
38
|
-
{{/
|
39
|
-
{{^gaTagId}}
|
40
|
-
<p class="no-ga-tag">
|
41
|
-
{{#t}}cookies.banner.message{{/t}}
|
42
|
-
<a href="/cookies">{{#t}}cookies.banner.link{{/t}}</a>
|
43
|
-
</p>
|
44
|
-
{{/gaTagId}}
|
38
|
+
{{/showCookiesBanner}}
|
45
39
|
{{/cookieMessage}}
|
46
40
|
{{$footerSupportLinks}}
|
47
41
|
<ul class="govuk-footer__inline-list">
|
package/hof-22.9.0.tgz
ADDED
Binary file
|
package/lib/settings.js
CHANGED
package/model/index.js
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
sandbox/public/*
|
@@ -0,0 +1,232 @@
|
|
1
|
+
## 2025-08-14, Version 22.9.1 (Stable), @dk4g
|
2
|
+
|
3
|
+
### Added
|
4
|
+
- Added `showCookiesBanner` configuration flag to control cookie banner display
|
5
|
+
- Automatically shows banner when `GA_TAG` or `GA_4_TAG` environment variables are present
|
6
|
+
- Defaults to `false` when no Google Analytics is configured
|
7
|
+
- Can be explicitly controlled via `SHOW_COOKIES_BANNER` environment variable
|
8
|
+
|
9
|
+
### Changed
|
10
|
+
- Cookie banner now intelligently displays based on GA configuration
|
11
|
+
- Improved cookie consent UX by hiding banner when GA is not enabled
|
12
|
+
- **Layout template updated**: Projects that override the default `layout` template should update their custom templates to include the new `showCookiesBanner` logic. If you inherit from HOF's layout template, no action is required.
|
13
|
+
|
14
|
+
### Migration Notes
|
15
|
+
- **Custom Layout Templates**: If your project overrides the default HOF layout template, ensure your custom template includes the cookie banner conditional logic using the new `showCookiesBanner` configuration flag. Check the updated HOF layout template for reference implementation.
|
16
|
+
|
17
|
+
## 2025-07-24, Version 22.8.4 (Stable), @vivekkumar-ho
|
18
|
+
### Security
|
19
|
+
- Upgraded axios version to address a security vulnerability
|
20
|
+
|
21
|
+
## 2025-07-16, Version 22.8.3 (Stable), @vivekkumar-ho
|
22
|
+
### Changed
|
23
|
+
- Updated the cookies page to include the GA container ID, which corresponds to the Measurement ID.
|
24
|
+
|
25
|
+
## 2025-07-04, Version 22.8.1 (Stable), @gregaustinHO
|
26
|
+
### Added
|
27
|
+
- Add support for source maps while debugging
|
28
|
+
|
29
|
+
## 2025-07-09, Version 22.7.6 (Stable), @robertdeniszczyc2 @sulthan-ahmed
|
30
|
+
### Changed
|
31
|
+
- Updated SVG handling and related dependencies to address issues and improve compatibility.
|
32
|
+
|
33
|
+
## 2025-05-29, Version 22.7.2 (Stable), @Rhodine-orleans-lindsay
|
34
|
+
### Fixed
|
35
|
+
- Service unavailable text can now use html
|
36
|
+
|
37
|
+
## 2025-05-28, Version 22.7.0 (Stable), @Rhodine-orleans-lindsay @sulthan-ahmed
|
38
|
+
### Added
|
39
|
+
- 'Service Unavailable' functionality added which allows for services to redirect to a 'Service Unavailable' page when there is a need to pause a service for things like maintenance:
|
40
|
+
- Adds 'service unavailable' error middleware
|
41
|
+
- Includes default service unavailable html view
|
42
|
+
- Includes flag to set `SERVICE_UNAVAILABLE` config to true to enable the functionality
|
43
|
+
### Changed
|
44
|
+
- Error pages can now show the service name in the title and journey header
|
45
|
+
### Security
|
46
|
+
- Updates patch and minor dependencies
|
47
|
+
|
48
|
+
## 2025-05-09, Version 22.6.0 (Stable), @vivekkumar-ho
|
49
|
+
### Changed
|
50
|
+
- Support for passing `maxlengthAttribute` property for input-text field. The HTML maxlength attribute is applied when `maxlengthAttribute: true` and the `maxlength` validator are specified in the field config
|
51
|
+
|
52
|
+
## 2025-05-06, Version 22.5.2 (Stable), @Rhodine-orleans-lindsay
|
53
|
+
### Fixed
|
54
|
+
- Hints for radio button options are now aligned correctly
|
55
|
+
### Security
|
56
|
+
- Updates patch and minor dependencies
|
57
|
+
|
58
|
+
## 2025-04-15, Version 22.5.0 (Stable), @shamiluwais
|
59
|
+
### Changed
|
60
|
+
- Refactors notify component to enable email attachments
|
61
|
+
|
62
|
+
## 2025-04-15, Version 22.4.0 (Stable), @Rhodine-orleans-lindsay
|
63
|
+
### Changed
|
64
|
+
- Amends page title format to follow the govuk design system so that the service name is now included in the the title by setting the `header` or `serviceName` in journey.json.
|
65
|
+
- Where page titles need to be different from page headings, if `title` is set pages.json, it can be used in the page title instead of `header`.
|
66
|
+
### Security
|
67
|
+
- Updates patch and minor dependencies
|
68
|
+
|
69
|
+
## 2025-03-17, Version 22.3.2 (Stable), @Rhodine-orleans-lindsay
|
70
|
+
### Fixed
|
71
|
+
- Error message now shows above textarea field if label is hidden
|
72
|
+
### Security
|
73
|
+
- Updates patch and minor dependencies
|
74
|
+
|
75
|
+
## 2025-03-07, Version 22.3.0 (Stable), @robertdeniszczyc2 @sulthan-ahmed
|
76
|
+
### Fixed
|
77
|
+
- the validator `ukmobilephone` now accepts `+447 and 07`
|
78
|
+
### Security
|
79
|
+
- Updates minor dependencies for `axios`
|
80
|
+
|
81
|
+
## 2025-03-07, Version 22.2.0 (Stable), @Rhodine-orleans-lindsay
|
82
|
+
### Changed
|
83
|
+
- Amends cookie config to allow limited changes to sameSite property during safe cross-origin navigations.
|
84
|
+
### Security
|
85
|
+
- Updates patch and minor dependencies
|
86
|
+
|
87
|
+
## 2025-01-24, Version 22.1.0 (Stable), @robertdeniszczyc2 @sulthan-ahmed
|
88
|
+
* ⛓️💥 **BREAKING CHANGE** : removed `nodemailer-smtp-transport` replaced with `nodemailer`.
|
89
|
+
- The nodemailer-smtp-transport package has been removed due to a critical vulnerability, and its functionality has been consolidated under nodemailer.
|
90
|
+
- 👊 Impact : Any functions or configurations relying on nodemailer-smtp-transport must be updated to use nodemailer.
|
91
|
+
- 🎬 Action: Rewrite code to utilize nodemailer as the replacement, ensuring compatibility and security.
|
92
|
+
|
93
|
+
## 2025-01-17, Version 22.0.0 (Stable), @Rhodine-orleans-lindsay
|
94
|
+
* Adds session timeout warning
|
95
|
+
- user can stay on page or exit form
|
96
|
+
- adds exit html
|
97
|
+
- user can stay signed in or save and exit the form if the form is a save and exit form
|
98
|
+
- adds default save-and-exit html
|
99
|
+
- updates confirmation html to a static page
|
100
|
+
- allows for customisation of session timeout warning dialog content, exit and save-and-exit page content, and exit and save-and-exit steps
|
101
|
+
- Potential **_breaking change_**: Static pages should use the `{{<layout}}...{{/layout}}` tags instead of the `{{<partials-page}}...{{/partials-page}}` tags if the timeout warning should not be displayed.
|
102
|
+
* Fixes accessibility issues
|
103
|
+
* Sandbox area for testing hof changes
|
104
|
+
* Updates patch and minor dependency versions
|
105
|
+
|
106
|
+
## 2024-07-22, Version 21.0.0 (Stable), @Rhodine-orleans-lindsay
|
107
|
+
* Replaces deprecated request module with axios
|
108
|
+
- refactors the hof model and apis to use axios instead of request
|
109
|
+
* Updates patch and minor dependency versions
|
110
|
+
|
111
|
+
## 2024-04-24, Version 20.5.0 (Stable), @mislam987
|
112
|
+
* Add hint property to checkboxes to align with govuk design guidelines
|
113
|
+
|
114
|
+
## 2024-02-29, Version 20.4.0 (Stable), @sulthan-ahmed
|
115
|
+
* Update version of govuk-frontend to 3.15
|
116
|
+
- this adds the new crown for the King
|
117
|
+
- this supports a lot of changes from the govuk design system
|
118
|
+
* Adds support for Google tag manager
|
119
|
+
* Fixes accessibility issues
|
120
|
+
* Sandbox area for testing hof changes
|
121
|
+
* Updates patch and minor versions including
|
122
|
+
- libphonenumber to 1.9.44
|
123
|
+
- nodemailer to 6.9.9
|
124
|
+
- ip to 1.1.9
|
125
|
+
- es5-ext to 0.10.63
|
126
|
+
|
127
|
+
## 2020-06-02, Version 16.0.0 (Stable), @andymoody
|
128
|
+
* Update version of helmet to 3.22.0
|
129
|
+
* Update version of i18n-future to 2.0.0
|
130
|
+
|
131
|
+
## 2020-06-01, Version 15.1.1
|
132
|
+
* Update hof-form-wizard to 5.1.1
|
133
|
+
|
134
|
+
## 2020-05-16, Version 15.1.0
|
135
|
+
* Add support for configuring multiple views folders at the root level
|
136
|
+
|
137
|
+
## 2020-04-29, Version 15.0.0 (Stable), @andymoody
|
138
|
+
* Update version of hof-template-mixins to 5.2.1
|
139
|
+
* Now supports hints on options for checkbox and radio groups
|
140
|
+
* Includes a breaking change to older-style 'grey-label' option groups
|
141
|
+
|
142
|
+
## 2017-04-21, Version 12.0.0 (Stable), @lennym
|
143
|
+
* Renames to `hof`!
|
144
|
+
* Includes refactor of `hof-form-controller` to move error messaging to a render-time concern.
|
145
|
+
* Depecrates `Controller#Error` in favour of `Controller#ValidationError`
|
146
|
+
|
147
|
+
## 2017-04-21, Version 11.0.0 (Stable), @lennym
|
148
|
+
* Adds themes. Ships with `hof-theme-govuk` as default.
|
149
|
+
|
150
|
+
## 2017-03-14, Version 10.3.1 (Stable), @lennym
|
151
|
+
* Uses `_.merge` instead of `Object.assign` to combine default config with user-provided config.
|
152
|
+
|
153
|
+
## 2017-03-02, Version 10.3.0 (Stable), @lennym
|
154
|
+
* Fixes i18n language settings. Now offers complete multi-language support
|
155
|
+
* Adding `--shared ./node_modules/hof-template-partials/translations` to hof-transpiler is no longer necessary. This is handled automatically within bootstrap.
|
156
|
+
|
157
|
+
## 2017-02-22, Version 10.2.0 (Stable), @lennym
|
158
|
+
* Makes `views` directory on a route not throw if undefined and default directory does not exist
|
159
|
+
|
160
|
+
## 2017-02-20, Version 10.1.0 (Stable), @lennym
|
161
|
+
* Adds behaviours option to global config and app config to support defining common behaviours
|
162
|
+
* Restores `baseController` option with deprecation warning
|
163
|
+
|
164
|
+
## 2017-02-17, Version 10.0.0 (Stable), @joefitter
|
165
|
+
* _BREAKING_ - `clearSession` option on steps is removed
|
166
|
+
* _BREAKING_ - `mixin` option for fields defaults to `input-text` this means that fields that previously skipped rendering will now be rendered
|
167
|
+
* _BREAKING_ - `baseController` option removed
|
168
|
+
|
169
|
+
## 2017-02-10, Version 9.3.1 (Stable), @josephchapman
|
170
|
+
* Allow GA script to load js and images form any path
|
171
|
+
|
172
|
+
## 2017-02-10, Version 9.3.0 (Stable), @josephchapman
|
173
|
+
* CSP directives auto-amended with google url when gaTagId set
|
174
|
+
|
175
|
+
## 2017-02-09, Version 9.2.0 (Stable), @josephchapman
|
176
|
+
* CSP directives can be extended with `csp` config
|
177
|
+
* Documentation reorganised
|
178
|
+
* Test fixtures reorganised
|
179
|
+
|
180
|
+
## 2017-01-27, Version 9.1.0 (Stable), @lennym
|
181
|
+
* Allow CSP to be disabled to enable acceptance test to run
|
182
|
+
|
183
|
+
## 2017-01-27, Version 9.0.1 (Stable), @lennym
|
184
|
+
* Major version update of hof-template-mixins
|
185
|
+
|
186
|
+
## 2017-01-27, Version 9.0.0 (Stable), @lennym
|
187
|
+
* Major version updates of hof-form-wizard and hof-controllers
|
188
|
+
|
189
|
+
## 2017-01-16, Version 8.1.0 (Stable), @josephchapman
|
190
|
+
* Add basic Content Security Policy (CSP) middleware
|
191
|
+
* Throw error if session.secret is not set in production
|
192
|
+
|
193
|
+
## 2017-01-06, Version 8.0.1 (Stable), @josephchapman
|
194
|
+
* Fixes issue causing an error to be thrown when mounting middleware.
|
195
|
+
|
196
|
+
## 2017-01-05, Version 8.0.0 (Stable), @josephchapman
|
197
|
+
* Add router in middleware stack for insertion of user middleware (#100)
|
198
|
+
* Potential **breaking change**: Prevent overwriting initialisation config with custom start config.
|
199
|
+
* Allow custom protocol, port and host to start method.
|
200
|
+
* Do not allow this configuration to override the global config
|
201
|
+
* Fix broken paths to views and translations
|
202
|
+
|
203
|
+
## 2016-12-13, Version 7.0.0 (~~Stable~~), @josephchapman
|
204
|
+
* Pass `appConfig` through to **hof-wizard**
|
205
|
+
* Update to latest **hof-wizard** v1.1.0 so `appConfig` is passed to each `controller`
|
206
|
+
* Make `views` use **hof-template-partials** as default
|
207
|
+
* Remove `views` and `fields` from `defaults.js`
|
208
|
+
* **BREAKING CHANGE**: Throw if no base `fields` or route `fields` option is specified
|
209
|
+
* Breaks all instances of bootstrap overriding `views` and `fields` with boolean `false`
|
210
|
+
* Update documentation, typos
|
211
|
+
* Update tests, specifically where optional controller provided
|
212
|
+
|
213
|
+
## 2016-07-20, Version 3.0.0 (Stable), @josephchapman
|
214
|
+
* Use hof-middleware.deepTranslate
|
215
|
+
* Use hof-middleware.notFound
|
216
|
+
* Remove assetPath option (Breaking)
|
217
|
+
|
218
|
+
## 2016-07-18, Version 2.0.0 (Stable), @josephchapman
|
219
|
+
* Make async tests run and not fail on travis
|
220
|
+
* Use cookie middleware
|
221
|
+
* Hard-code local assetPath (`/public`)
|
222
|
+
* Replace `assets` option with `assetpath` (breaking change)
|
223
|
+
|
224
|
+
## 2016-07-12, Version 1.0.1 (Stable), @josephchapman
|
225
|
+
* **hof-template-partials** 1.0.1 for common views and translations
|
226
|
+
* Fix i18n usage
|
227
|
+
* Invoke i18n
|
228
|
+
* Wait for i18n to become ready
|
229
|
+
* Fix router's optional paths
|
230
|
+
* Set the app to trust proxy
|
231
|
+
* Update cookies settings
|
232
|
+
|
package/package/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2016
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|