hof 22.1.0-timeout-warning-sign-in-beta.3 → 22.2.0-time-mixin-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/.github/workflows/automate-publish.yml +4 -4
- package/.github/workflows/automate-tag.yml +16 -16
- package/.nyc_output/34671fe1-441d-41ed-b012-ece4e3964dbb.json +1 -0
- package/.nyc_output/processinfo/34671fe1-441d-41ed-b012-ece4e3964dbb.json +1 -0
- package/.nyc_output/processinfo/index.json +1 -1
- package/CHANGELOG.md +20 -19
- package/README.md +44 -7
- package/components/emailer/transports/smtp.js +1 -1
- package/components/index.js +1 -0
- package/components/session-timeout-warning/index.js +11 -0
- package/components/time/fields.js +12 -0
- package/components/time/index.js +168 -0
- package/components/time/templates/time.html +20 -0
- package/config/hof-defaults.js +2 -0
- package/controller/controller.js +9 -0
- package/controller/validation/validators.js +13 -0
- package/frontend/template-mixins/mixins/template-mixins.js +45 -1
- package/frontend/template-mixins/partials/forms/input-text-time.html +37 -0
- package/frontend/template-partials/translations/src/en/save-and-exit.json +4 -0
- package/frontend/template-partials/views/partials/head.html +4 -1
- package/frontend/template-partials/views/partials/session-timeout-warning.html +7 -6
- package/frontend/template-partials/views/save-and-exit.html +1 -3
- package/frontend/themes/gov-uk/styles/_time-input.scss +5 -0
- package/frontend/themes/gov-uk/styles/govuk.scss +1 -0
- package/frontend/toolkit/assets/javascript/form-focus.js +4 -0
- package/index.js +3 -0
- package/lib/deindex.js +18 -0
- package/lib/router.js +2 -0
- package/package.json +1 -2
- package/{pull-request-template.md → pull_request_template.md} +1 -1
- package/sandbox/.env +2 -2
- package/sandbox/apps/sandbox/fields.js +9 -0
- package/sandbox/apps/sandbox/index.js +4 -0
- package/sandbox/apps/sandbox/sections/summary-data-sections.js +7 -0
- package/sandbox/apps/sandbox/translations/en/default.json +12 -2
- package/sandbox/apps/sandbox/translations/src/en/fields.json +4 -0
- package/sandbox/apps/sandbox/translations/src/en/pages.json +5 -2
- package/sandbox/apps/sandbox/translations/src/en/validation.json +3 -0
- package/sandbox/apps/sandbox/views/save-and-exit.html +19 -0
- package/sandbox/public/css/app.css +40 -34
- package/sandbox/public/js/bundle.js +4 -0
- package/utilities/autofill/inputs.js +6 -1
- package/wizard/index.js +2 -0
- package/.nyc_output/9376679c-295d-4483-8c62-60e08528311a.json +0 -1
- package/.nyc_output/processinfo/9376679c-295d-4483-8c62-60e08528311a.json +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"parent":null,"pid":21200,"argv":["/Users/user/.nvm/versions/node/v20.17.0/bin/node","/Users/user/Documents/HO/HOF/hof/node_modules/.bin/_mocha","test/**/*.spec.js","sandbox/test/**/*.spec.js"],"execArgv":[],"cwd":"/Users/user/Documents/HO/HOF/hof","time":1738933012389,"ppid":21195,"coverageFilename":"/Users/user/Documents/HO/HOF/hof/.nyc_output/34671fe1-441d-41ed-b012-ece4e3964dbb.json","externalId":"","uuid":"34671fe1-441d-41ed-b012-ece4e3964dbb","files":["/Users/user/Documents/HO/HOF/hof/model/index.js","/Users/user/Documents/HO/HOF/hof/model/apis/axios-settings.js","/Users/user/Documents/HO/HOF/hof/components/index.js","/Users/user/Documents/HO/HOF/hof/components/address-lookup/index.js","/Users/user/Documents/HO/HOF/hof/components/address-lookup/default-model.js","/Users/user/Documents/HO/HOF/hof/components/address-lookup/defaults.js","/Users/user/Documents/HO/HOF/hof/components/clear-session/index.js","/Users/user/Documents/HO/HOF/hof/components/combine-and-loop-fields/index.js","/Users/user/Documents/HO/HOF/hof/components/date/index.js","/Users/user/Documents/HO/HOF/hof/components/date/fields.js","/Users/user/Documents/HO/HOF/hof/components/time/index.js","/Users/user/Documents/HO/HOF/hof/components/time/fields.js","/Users/user/Documents/HO/HOF/hof/components/emailer/index.js","/Users/user/Documents/HO/HOF/hof/components/emailer/email-service.js","/Users/user/Documents/HO/HOF/hof/components/emailer/emailer.js","/Users/user/Documents/HO/HOF/hof/components/emailer/transports/index.js","/Users/user/Documents/HO/HOF/hof/components/emailer/transports/smtp.js","/Users/user/Documents/HO/HOF/hof/components/emailer/transports/ses.js","/Users/user/Documents/HO/HOF/hof/components/emailer/transports/stub.js","/Users/user/Documents/HO/HOF/hof/components/emailer/transports/debug.js","/Users/user/Documents/HO/HOF/hof/components/homeoffice-countries/index.js","/Users/user/Documents/HO/HOF/hof/config/component-defaults.js","/Users/user/Documents/HO/HOF/hof/components/notify/index.js","/Users/user/Documents/HO/HOF/hof/components/notify/notify.js","/Users/user/Documents/HO/HOF/hof/components/summary/index.js","/Users/user/Documents/HO/HOF/hof/config/rate-limits.js","/Users/user/Documents/HO/HOF/hof/middleware/rate-limiter.js","/Users/user/Documents/HO/HOF/hof/config/hof-defaults.js","/Users/user/Documents/HO/HOF/hof/components/session-timeout-warning/index.js","/Users/user/Documents/HO/HOF/hof/lib/logger.js","/Users/user/Documents/HO/HOF/hof/controller/base-controller.js","/Users/user/Documents/HO/HOF/hof/controller/formatting/index.js","/Users/user/Documents/HO/HOF/hof/controller/validation/index.js","/Users/user/Documents/HO/HOF/hof/controller/validation/validators.js","/Users/user/Documents/HO/HOF/hof/controller/validation/email.js","/Users/user/Documents/HO/HOF/hof/controller/validation-error.js","/Users/user/Documents/HO/HOF/hof/utilities/index.js","/Users/user/Documents/HO/HOF/hof/utilities/autofill/index.js","/Users/user/Documents/HO/HOF/hof/utilities/autofill/inputs.js","/Users/user/Documents/HO/HOF/hof/utilities/test-data/index.js","/Users/user/Documents/HO/HOF/hof/utilities/countries.js","/Users/user/Documents/HO/HOF/hof/utilities/helpers/index.js","/Users/user/Documents/HO/HOF/hof/utilities/reqres/index.js","/Users/user/Documents/HO/HOF/hof/config/sanitisation-rules.js","/Users/user/Documents/HO/HOF/hof/controller/formatting/formatters.js","/Users/user/Documents/HO/HOF/hof/controller/index.js","/Users/user/Documents/HO/HOF/hof/controller/behaviour-session.js","/Users/user/Documents/HO/HOF/hof/controller/behaviour-hooks.js","/Users/user/Documents/HO/HOF/hof/controller/controller.js","/Users/user/Documents/HO/HOF/hof/sandbox/apps/sandbox/behaviours/country-select.js","/Users/user/Documents/HO/HOF/hof/frontend/template-mixins/mixins/index.js","/Users/user/Documents/HO/HOF/hof/frontend/template-mixins/mixins/template-mixins.js","/Users/user/Documents/HO/HOF/hof/frontend/template-mixins/mixins/render.js","/Users/user/Documents/HO/HOF/hof/frontend/template-mixins/mixins/helpers.js","/Users/user/Documents/HO/HOF/hof/index.js","/Users/user/Documents/HO/HOF/hof/frontend/index.js","/Users/user/Documents/HO/HOF/hof/frontend/govuk-template/index.js","/Users/user/Documents/HO/HOF/hof/frontend/govuk-template/build/index.js","/Users/user/Documents/HO/HOF/hof/frontend/govuk-template/build/config.js","/Users/user/Documents/HO/HOF/hof/frontend/template-partials/index.js","/Users/user/Documents/HO/HOF/hof/frontend/template-partials/translations/index.js","/Users/user/Documents/HO/HOF/hof/frontend/themes/index.js","/Users/user/Documents/HO/HOF/hof/frontend/themes/gov-uk/index.js","/Users/user/Documents/HO/HOF/hof/frontend/toolkit/index.js","/Users/user/Documents/HO/HOF/hof/frontend/toolkit/assets/javascript/helpers.js","/Users/user/Documents/HO/HOF/hof/frontend/toolkit/assets/javascript/form-focus.js","/Users/user/Documents/HO/HOF/hof/frontend/toolkit/assets/javascript/progressive-reveal.js","/Users/user/Documents/HO/HOF/hof/frontend/toolkit/assets/javascript/validation.js","/Users/user/Documents/HO/HOF/hof/frontend/toolkit/assets/javascript/character-count.js","/Users/user/Documents/HO/HOF/hof/middleware/index.js","/Users/user/Documents/HO/HOF/hof/middleware/cookies.js","/Users/user/Documents/HO/HOF/hof/middleware/errors.js","/Users/user/Documents/HO/HOF/hof/middleware/not-found.js","/Users/user/Documents/HO/HOF/hof/middleware/deep-translate.js","/Users/user/Documents/HO/HOF/hof/lib/markdown.js","/Users/user/Documents/HO/HOF/hof/lib/router.js","/Users/user/Documents/HO/HOF/hof/wizard/index.js","/Users/user/Documents/HO/HOF/hof/wizard/behaviours/index.js","/Users/user/Documents/HO/HOF/hof/wizard/behaviours/complete.js","/Users/user/Documents/HO/HOF/hof/wizard/util/constants.js","/Users/user/Documents/HO/HOF/hof/lib/helpers.js","/Users/user/Documents/HO/HOF/hof/lib/health.js","/Users/user/Documents/HO/HOF/hof/lib/serve-static.js","/Users/user/Documents/HO/HOF/hof/lib/ga-tag.js","/Users/user/Documents/HO/HOF/hof/lib/deindex.js","/Users/user/Documents/HO/HOF/hof/lib/sessions.js","/Users/user/Documents/HO/HOF/hof/lib/settings.js","/Users/user/Documents/HO/HOF/hof/build/index.js","/Users/user/Documents/HO/HOF/hof/config/builder-defaults.js","/Users/user/Documents/HO/HOF/hof/transpiler/index.js","/Users/user/Documents/HO/HOF/hof/transpiler/lib/compile.js","/Users/user/Documents/HO/HOF/hof/transpiler/lib/build.js","/Users/user/Documents/HO/HOF/hof/transpiler/lib/expand-dirs.js","/Users/user/Documents/HO/HOF/hof/transpiler/lib/aggregate.js","/Users/user/Documents/HO/HOF/hof/transpiler/lib/write-files.js","/Users/user/Documents/HO/HOF/hof/model/apis/index.js","/Users/user/Documents/HO/HOF/hof/model/apis/html-to-pdf-converter.js","/Users/user/Documents/HO/HOF/hof/wizard/model.js","/Users/user/Documents/HO/HOF/hof/wizard/middleware/back-links.js","/Users/user/Documents/HO/HOF/hof/wizard/util/helpers.js","/Users/user/Documents/HO/HOF/hof/wizard/middleware/check-complete.js","/Users/user/Documents/HO/HOF/hof/wizard/middleware/check-progress.js","/Users/user/Documents/HO/HOF/hof/wizard/middleware/check-session.js","/Users/user/Documents/HO/HOF/hof/wizard/middleware/csrf.js","/Users/user/Documents/HO/HOF/hof/sandbox/test/_unit/example_app/sections/summary-data-sections.spec.js","/Users/user/Documents/HO/HOF/hof/sandbox/apps/sandbox/sections/summary-data-sections.js","/Users/user/Documents/HO/HOF/hof/sandbox/apps/sandbox/lib/staticAppealStages.js","/Users/user/Documents/HO/HOF/hof/sandbox/apps/sandbox/fields.js","/Users/user/Documents/HO/HOF/hof/sandbox/test/helpers/utilities.js","/Users/user/Documents/HO/HOF/hof/sandbox/apps/sandbox/behaviours/international-number.js","/Users/user/Documents/HO/HOF/hof/lib/encryption.js","/Users/user/Documents/HO/HOF/hof/wizard/middleware/session.js","/Users/user/Documents/HO/HOF/hof/wizard/middleware/session-model.js"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"processes":{"9376679c-295d-4483-8c62-60e08528311a":{"parent":null,"children":[]}},"files":{"/Users/user/Documents/HO/HOF/hof/model/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/model/apis/axios-settings.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/address-lookup/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/address-lookup/default-model.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/address-lookup/defaults.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/clear-session/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/combine-and-loop-fields/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/date/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/date/fields.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/emailer/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/emailer/email-service.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/emailer/emailer.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/emailer/transports/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/emailer/transports/smtp.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/emailer/transports/ses.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/emailer/transports/stub.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/emailer/transports/debug.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/homeoffice-countries/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/config/component-defaults.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/notify/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/notify/notify.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/summary/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/config/rate-limits.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/middleware/rate-limiter.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/config/hof-defaults.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/session-timeout-warning/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/lib/logger.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/controller/base-controller.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/controller/formatting/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/controller/validation/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/controller/validation/validators.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/controller/validation/email.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/controller/validation-error.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/utilities/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/utilities/autofill/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/utilities/autofill/inputs.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/utilities/test-data/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/utilities/countries.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/utilities/helpers/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/utilities/reqres/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/config/sanitisation-rules.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/controller/formatting/formatters.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/controller/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/controller/behaviour-session.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/controller/behaviour-hooks.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/controller/controller.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/sandbox/apps/sandbox/behaviours/country-select.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/frontend/template-mixins/mixins/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/frontend/template-mixins/mixins/template-mixins.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/frontend/template-mixins/mixins/render.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/frontend/template-mixins/mixins/helpers.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/frontend/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/frontend/govuk-template/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/frontend/govuk-template/build/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/frontend/govuk-template/build/config.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/frontend/template-partials/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/frontend/template-partials/translations/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/frontend/themes/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/frontend/themes/gov-uk/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/frontend/toolkit/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/frontend/toolkit/assets/javascript/helpers.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/frontend/toolkit/assets/javascript/form-focus.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/frontend/toolkit/assets/javascript/progressive-reveal.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/frontend/toolkit/assets/javascript/validation.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/frontend/toolkit/assets/javascript/character-count.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/middleware/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/middleware/cookies.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/middleware/errors.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/middleware/not-found.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/middleware/deep-translate.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/lib/markdown.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/lib/router.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/wizard/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/wizard/behaviours/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/wizard/behaviours/complete.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/wizard/util/constants.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/lib/helpers.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/lib/health.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/lib/serve-static.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/lib/ga-tag.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/lib/sessions.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/lib/settings.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/build/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/config/builder-defaults.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/transpiler/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/transpiler/lib/compile.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/transpiler/lib/build.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/transpiler/lib/expand-dirs.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/transpiler/lib/aggregate.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/transpiler/lib/write-files.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/model/apis/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/model/apis/html-to-pdf-converter.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/wizard/model.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/wizard/middleware/back-links.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/wizard/util/helpers.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/wizard/middleware/check-complete.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/wizard/middleware/check-progress.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/wizard/middleware/check-session.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/wizard/middleware/csrf.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/sandbox/test/_unit/example_app/sections/summary-data-sections.spec.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/sandbox/apps/sandbox/sections/summary-data-sections.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/sandbox/apps/sandbox/lib/staticAppealStages.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/sandbox/apps/sandbox/fields.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/sandbox/test/helpers/utilities.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/sandbox/apps/sandbox/behaviours/international-number.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/lib/encryption.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/wizard/middleware/session.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/wizard/middleware/session-model.js":["9376679c-295d-4483-8c62-60e08528311a"]},"externalIds":{}}
|
|
1
|
+
{"processes":{"34671fe1-441d-41ed-b012-ece4e3964dbb":{"parent":null,"children":[]}},"files":{"/Users/user/Documents/HO/HOF/hof/model/index.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/model/apis/axios-settings.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/components/index.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/components/address-lookup/index.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/components/address-lookup/default-model.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/components/address-lookup/defaults.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/components/clear-session/index.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/components/combine-and-loop-fields/index.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/components/date/index.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/components/date/fields.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/components/time/index.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/components/time/fields.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/components/emailer/index.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/components/emailer/email-service.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/components/emailer/emailer.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/components/emailer/transports/index.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/components/emailer/transports/smtp.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/components/emailer/transports/ses.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/components/emailer/transports/stub.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/components/emailer/transports/debug.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/components/homeoffice-countries/index.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/config/component-defaults.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/components/notify/index.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/components/notify/notify.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/components/summary/index.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/config/rate-limits.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/middleware/rate-limiter.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/config/hof-defaults.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/components/session-timeout-warning/index.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/lib/logger.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/controller/base-controller.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/controller/formatting/index.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/controller/validation/index.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/controller/validation/validators.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/controller/validation/email.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/controller/validation-error.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/utilities/index.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/utilities/autofill/index.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/utilities/autofill/inputs.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/utilities/test-data/index.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/utilities/countries.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/utilities/helpers/index.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/utilities/reqres/index.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/config/sanitisation-rules.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/controller/formatting/formatters.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/controller/index.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/controller/behaviour-session.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/controller/behaviour-hooks.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/controller/controller.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/sandbox/apps/sandbox/behaviours/country-select.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/frontend/template-mixins/mixins/index.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/frontend/template-mixins/mixins/template-mixins.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/frontend/template-mixins/mixins/render.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/frontend/template-mixins/mixins/helpers.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/index.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/frontend/index.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/frontend/govuk-template/index.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/frontend/govuk-template/build/index.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/frontend/govuk-template/build/config.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/frontend/template-partials/index.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/frontend/template-partials/translations/index.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/frontend/themes/index.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/frontend/themes/gov-uk/index.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/frontend/toolkit/index.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/frontend/toolkit/assets/javascript/helpers.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/frontend/toolkit/assets/javascript/form-focus.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/frontend/toolkit/assets/javascript/progressive-reveal.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/frontend/toolkit/assets/javascript/validation.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/frontend/toolkit/assets/javascript/character-count.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/middleware/index.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/middleware/cookies.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/middleware/errors.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/middleware/not-found.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/middleware/deep-translate.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/lib/markdown.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/lib/router.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/wizard/index.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/wizard/behaviours/index.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/wizard/behaviours/complete.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/wizard/util/constants.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/lib/helpers.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/lib/health.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/lib/serve-static.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/lib/ga-tag.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/lib/deindex.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/lib/sessions.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/lib/settings.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/build/index.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/config/builder-defaults.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/transpiler/index.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/transpiler/lib/compile.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/transpiler/lib/build.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/transpiler/lib/expand-dirs.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/transpiler/lib/aggregate.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/transpiler/lib/write-files.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/model/apis/index.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/model/apis/html-to-pdf-converter.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/wizard/model.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/wizard/middleware/back-links.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/wizard/util/helpers.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/wizard/middleware/check-complete.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/wizard/middleware/check-progress.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/wizard/middleware/check-session.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/wizard/middleware/csrf.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/sandbox/test/_unit/example_app/sections/summary-data-sections.spec.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/sandbox/apps/sandbox/sections/summary-data-sections.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/sandbox/apps/sandbox/lib/staticAppealStages.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/sandbox/apps/sandbox/fields.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/sandbox/test/helpers/utilities.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/sandbox/apps/sandbox/behaviours/international-number.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/lib/encryption.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/wizard/middleware/session.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"],"/Users/user/Documents/HO/HOF/hof/wizard/middleware/session-model.js":["34671fe1-441d-41ed-b012-ece4e3964dbb"]},"externalIds":{}}
|
package/CHANGELOG.md
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
##
|
|
2
|
-
*
|
|
3
|
-
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
* Sandbox area for testing hof changes
|
|
7
|
-
* Updates patch and minor dependency versions
|
|
1
|
+
## 2025-01-24, Version 22.1.0 (Stable), @sulthan-ahmed
|
|
2
|
+
* ⛓️💥 **BREAKING CHANGE** : removed `nodemailer-smtp-transport` replaced with `nodemailer`.
|
|
3
|
+
- The nodemailer-smtp-transport package has been removed due to a critical vulnerability, and its functionality has been consolidated under nodemailer.
|
|
4
|
+
- 👊 Impact : Any functions or configurations relying on nodemailer-smtp-transport must be updated to use nodemailer.
|
|
5
|
+
- 🎬 Action: Rewrite code to utilize nodemailer as the replacement, ensuring compatibility and security.
|
|
8
6
|
|
|
9
|
-
##
|
|
7
|
+
## 2025-01-17, Version 22.0.0 (Stable), @Rhodine-orleans-lindsay
|
|
10
8
|
* Adds session timeout warning
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
- user can stay on page or exit form
|
|
10
|
+
- adds exit html
|
|
11
|
+
- user can stay signed in or save and exit the form if the form is a save and exit form
|
|
12
|
+
- adds default save-and-exit html
|
|
13
|
+
- updates confirmation html to a static page
|
|
14
|
+
- allows for customisation of session timeout warning dialog content, exit and save-and-exit page content, and exit and save-and-exit steps
|
|
15
|
+
- 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.
|
|
15
16
|
* Fixes accessibility issues
|
|
16
17
|
* Sandbox area for testing hof changes
|
|
17
18
|
* Updates patch and minor dependency versions
|
|
@@ -19,23 +20,23 @@
|
|
|
19
20
|
## 2024-07-22, Version 21.0.0 (Stable), @Rhodine-orleans-lindsay
|
|
20
21
|
* Replaces deprecated request module with axios
|
|
21
22
|
- refactors the hof model and apis to use axios instead of request
|
|
22
|
-
*
|
|
23
|
+
* Updates patch and minor dependency versions
|
|
23
24
|
|
|
24
25
|
## 2024-04-24, Version 20.5.0 (Stable), @mislam987
|
|
25
26
|
* Add hint property to checkboxes to align with govuk design guidelines
|
|
26
27
|
|
|
27
28
|
## 2024-02-29, Version 20.4.0 (Stable), @sulthan-ahmed
|
|
28
29
|
* Update version of govuk-frontend to 3.15
|
|
29
|
-
- this adds the new crown for the King
|
|
30
|
-
- this supports a lot of changes from the govuk design system
|
|
30
|
+
- this adds the new crown for the King
|
|
31
|
+
- this supports a lot of changes from the govuk design system
|
|
31
32
|
* Adds support for Google tag manager
|
|
32
33
|
* Fixes accessibility issues
|
|
33
34
|
* Sandbox area for testing hof changes
|
|
34
35
|
* Updates patch and minor versions including
|
|
35
|
-
- libphonenumber to 1.9.44
|
|
36
|
-
- nodemailer to 6.9.9
|
|
37
|
-
- ip to 1.1.9
|
|
38
|
-
- es5-ext to 0.10.63
|
|
36
|
+
- libphonenumber to 1.9.44
|
|
37
|
+
- nodemailer to 6.9.9
|
|
38
|
+
- ip to 1.1.9
|
|
39
|
+
- es5-ext to 0.10.63
|
|
39
40
|
|
|
40
41
|
## 2020-06-02, Version 16.0.0 (Stable), @andymoody
|
|
41
42
|
* Update version of helmet to 3.22.0
|
package/README.md
CHANGED
|
@@ -1205,7 +1205,7 @@ The following transport options are available:
|
|
|
1205
1205
|
|
|
1206
1206
|
#### `smtp`
|
|
1207
1207
|
|
|
1208
|
-
[nodemailer
|
|
1208
|
+
[nodemailer](https://github.com/nodemailer/nodemailer)
|
|
1209
1209
|
|
|
1210
1210
|
##### Options
|
|
1211
1211
|
|
|
@@ -1261,7 +1261,7 @@ This feature allows you to customise the content related to the session timeout
|
|
|
1261
1261
|
|
|
1262
1262
|
### Usage
|
|
1263
1263
|
|
|
1264
|
-
To enable and
|
|
1264
|
+
To enable and customise the session timeout behavior, you need to set the component in your project's `hof.settings.json` file:
|
|
1265
1265
|
```js
|
|
1266
1266
|
"behaviours": [
|
|
1267
1267
|
"hof/components/session-timeout-warning"
|
|
@@ -1274,12 +1274,13 @@ By default, the framework uses the standard content provided by HOF. If you wish
|
|
|
1274
1274
|
behaviours: [
|
|
1275
1275
|
require('../').components.sessionTimeoutWarning
|
|
1276
1276
|
],
|
|
1277
|
-
sessionTimeoutWarningContent: true,
|
|
1278
|
-
exitFormContent: true
|
|
1277
|
+
sessionTimeoutWarningContent: true, // allows you to customise the content in the session timeout dialog box
|
|
1278
|
+
exitFormContent: true // allows you to customise the content on the exit page
|
|
1279
|
+
saveExitFormContent: true // allows you to customise the content on the save-and-exit page
|
|
1279
1280
|
```
|
|
1280
1281
|
|
|
1281
1282
|
### Customising content in `pages.json`
|
|
1282
|
-
Once the variables are set, you can
|
|
1283
|
+
Once the variables are set, you can customise the session timeout warning and exit messages in your project's pages.json:
|
|
1283
1284
|
|
|
1284
1285
|
```json
|
|
1285
1286
|
"exit": {
|
|
@@ -1291,10 +1292,13 @@ Once the variables are set, you can customize the session timeout warning and ex
|
|
|
1291
1292
|
"timeout-continue-button": "Stay on this page",
|
|
1292
1293
|
"dialog-exit-link": "Exit this form"
|
|
1293
1294
|
}
|
|
1295
|
+
"save-and-exit": {
|
|
1296
|
+
"message": "Any answers you saved have not been affected. You can sign back in to your application at any time by returning to the start page."
|
|
1297
|
+
},
|
|
1294
1298
|
```
|
|
1295
1299
|
|
|
1296
|
-
### Editing content on the Exit Page Header and Title
|
|
1297
|
-
To edit the exit
|
|
1300
|
+
### Editing content on the Exit and Save-and-exit Page Header and Title
|
|
1301
|
+
To edit the exit or save-and-exit pages' header and title, create an `exit.json` or `save-and-exit.json` file in your project and set the desired content:
|
|
1298
1302
|
```json
|
|
1299
1303
|
{
|
|
1300
1304
|
"header": "You have left this form",
|
|
@@ -1302,6 +1306,39 @@ To edit the exit page's header and title, create an `exit.json` file in your pro
|
|
|
1302
1306
|
}
|
|
1303
1307
|
```
|
|
1304
1308
|
|
|
1309
|
+
### Customising exit and save-and-exit steps
|
|
1310
|
+
You can customise the `exit` and `save-and-exit` steps by setting the `exitStep` or `saveAndExitStep` properties in the `apps/<app_name>/index.js` to the desired path name:
|
|
1311
|
+
|
|
1312
|
+
```js
|
|
1313
|
+
// customising exit step name
|
|
1314
|
+
module.exports = {
|
|
1315
|
+
name: 'sandbox',
|
|
1316
|
+
exitStep: '/leave',
|
|
1317
|
+
steps: {
|
|
1318
|
+
...
|
|
1319
|
+
'/leave': {
|
|
1320
|
+
template: 'exit'
|
|
1321
|
+
}
|
|
1322
|
+
}
|
|
1323
|
+
...
|
|
1324
|
+
}
|
|
1325
|
+
```
|
|
1326
|
+
|
|
1327
|
+
```js
|
|
1328
|
+
// customising save-and-exit step name
|
|
1329
|
+
module.exports = {
|
|
1330
|
+
name: 'sandbox',
|
|
1331
|
+
saveAndExitStep: '/sign-out',
|
|
1332
|
+
steps: {
|
|
1333
|
+
...
|
|
1334
|
+
'/sign-out': {
|
|
1335
|
+
template: 'save-and-exit'
|
|
1336
|
+
}
|
|
1337
|
+
}
|
|
1338
|
+
...
|
|
1339
|
+
}
|
|
1340
|
+
```
|
|
1341
|
+
|
|
1305
1342
|
# UTILITIES
|
|
1306
1343
|
|
|
1307
1344
|
# Autofill Utility
|
package/components/index.js
CHANGED
|
@@ -5,6 +5,7 @@ module.exports = {
|
|
|
5
5
|
clearSession: require('./clear-session'),
|
|
6
6
|
combineAndLoopFields: require('./combine-and-loop-fields'),
|
|
7
7
|
date: require('./date'),
|
|
8
|
+
time: require('./time'),
|
|
8
9
|
emailer: require('./emailer'),
|
|
9
10
|
homeOfficeCountries: require('./homeoffice-countries'),
|
|
10
11
|
notify: require('./notify'),
|
|
@@ -51,6 +51,17 @@ module.exports = superclass => class extends superclass {
|
|
|
51
51
|
superLocals.message = req.translate('exit.message');
|
|
52
52
|
return superLocals;
|
|
53
53
|
}
|
|
54
|
+
|
|
55
|
+
// set the content on /save-and-exit page
|
|
56
|
+
if (req.form.options.route === '/save-and-exit' && config.saveExitFormContent === true) {
|
|
57
|
+
superLocals.saveExitFormContent = true;
|
|
58
|
+
return superLocals;
|
|
59
|
+
} else if (req.form.options.route === '/save-and-exit' && config.saveExitFormContent === false) {
|
|
60
|
+
superLocals.header = req.translate('save-and-exit.header');
|
|
61
|
+
superLocals.title = req.translate('save-and-exit.title');
|
|
62
|
+
superLocals.message = req.translate('save-and-exit.message');
|
|
63
|
+
return superLocals;
|
|
64
|
+
}
|
|
54
65
|
return superLocals;
|
|
55
66
|
}
|
|
56
67
|
};
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const _ = require('lodash');
|
|
4
|
+
const path = require('path');
|
|
5
|
+
const getFields = require('./fields');
|
|
6
|
+
|
|
7
|
+
const TEMPLATE = path.resolve(__dirname, './templates/time.html');
|
|
8
|
+
|
|
9
|
+
// utility function taking the req.body, fields and key,
|
|
10
|
+
// returns a map of values in the format:
|
|
11
|
+
// {
|
|
12
|
+
// hour: '12',
|
|
13
|
+
// minute: '01',
|
|
14
|
+
// }
|
|
15
|
+
|
|
16
|
+
const getParts = (body, fields, key) =>
|
|
17
|
+
_.mapKeys(_.pick(body, Object.keys(fields)), (value, fieldKey) =>
|
|
18
|
+
fieldKey.replace(`${key}-`, '')
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
// accepts a time value in the format kk-mm and fields config,
|
|
22
|
+
// returns a map of key: value pairs for the intermedate fields
|
|
23
|
+
const getPartsFromTime = (time, fields) =>
|
|
24
|
+
time.split(':')
|
|
25
|
+
.slice()
|
|
26
|
+
.reduce((obj, value, index) => Object.assign({}, obj, {
|
|
27
|
+
[fields[index]]: value
|
|
28
|
+
}), {});
|
|
29
|
+
|
|
30
|
+
// preprend '0' if number is only a single digit
|
|
31
|
+
const pad = num => num !== '' && num.length < 2 ? `0${num}` : num;
|
|
32
|
+
|
|
33
|
+
const conditionalTranslate = (key, translate) => {
|
|
34
|
+
let result = translate(key);
|
|
35
|
+
if (result === key) {
|
|
36
|
+
result = null;
|
|
37
|
+
}
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
const getLegendClassName = field => field && field.legend && field.legend.className || '';
|
|
42
|
+
const getIsPageHeading = field => field && field.isPageHeading || '';
|
|
43
|
+
|
|
44
|
+
module.exports = (key, opts) => {
|
|
45
|
+
if (!key) {
|
|
46
|
+
throw new Error('Key must be passed to time component');
|
|
47
|
+
}
|
|
48
|
+
const options = opts || {};
|
|
49
|
+
const template = options.template ?
|
|
50
|
+
path.resolve(__dirname, options.template) :
|
|
51
|
+
TEMPLATE;
|
|
52
|
+
const fields = getFields(key);
|
|
53
|
+
|
|
54
|
+
options.validate = _.uniq(options.validate ? ['time'].concat(options.validate) : ['time']);
|
|
55
|
+
|
|
56
|
+
let hourOptional = !!options.hourOptional;
|
|
57
|
+
const minuteOptional = !!options.minuteOptional;
|
|
58
|
+
|
|
59
|
+
if (minuteOptional) {
|
|
60
|
+
hourOptional = true;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// take the 2 time parts, padding or defaulting
|
|
64
|
+
// if applicable, then create a time value in the
|
|
65
|
+
// format kk:mm. Save to req.body for processing
|
|
66
|
+
const preProcess = (req, res, next) => {
|
|
67
|
+
const parts = getParts(req.body, fields, key);
|
|
68
|
+
if (_.some(parts, part => part !== '')) {
|
|
69
|
+
if (hourOptional && parts.hour === '') {
|
|
70
|
+
parts.hour = '01';
|
|
71
|
+
} else {
|
|
72
|
+
parts.hour = pad(parts.hour);
|
|
73
|
+
}
|
|
74
|
+
if (minuteOptional && parts.minute === '') {
|
|
75
|
+
parts.minute = '00';
|
|
76
|
+
} else {
|
|
77
|
+
parts.minute = pad(parts.minute);
|
|
78
|
+
}
|
|
79
|
+
req.body[key] = `${parts.hour}:${parts.minute}`;
|
|
80
|
+
}
|
|
81
|
+
next();
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
const postProcess = (req, res, next) => {
|
|
85
|
+
const value = req.form.values[key];
|
|
86
|
+
if (value) {
|
|
87
|
+
req.form.values[key] = req.body[key];
|
|
88
|
+
}
|
|
89
|
+
next();
|
|
90
|
+
};
|
|
91
|
+
// if time field is included in errorValues, extend
|
|
92
|
+
// errorValues with the individual components
|
|
93
|
+
const preGetErrors = (req, res, next) => {
|
|
94
|
+
const errorValues = req.sessionModel.get('errorValues');
|
|
95
|
+
if (errorValues && errorValues[key]) {
|
|
96
|
+
req.sessionModel.set('errorValues',
|
|
97
|
+
Object.assign({}, errorValues, getPartsFromTime(errorValues[key], Object.keys(fields)))
|
|
98
|
+
);
|
|
99
|
+
}
|
|
100
|
+
next();
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
// if time field has any validation error, also add errors
|
|
104
|
+
// for the two child components. null type as we don't want to show
|
|
105
|
+
// duplicate messages
|
|
106
|
+
const postGetErrors = (req, res, next) => {
|
|
107
|
+
const errors = req.sessionModel.get('errors');
|
|
108
|
+
if (errors && errors[key]) {
|
|
109
|
+
Object.assign(req.form.errors, Object.keys(fields).reduce((obj, field) =>
|
|
110
|
+
Object.assign({}, obj, { [field]: { type: null } })
|
|
111
|
+
, {}));
|
|
112
|
+
}
|
|
113
|
+
next();
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
// if time value is set, split its parts and assign to req.form.values.
|
|
117
|
+
// This is extended with errorValues if they are present
|
|
118
|
+
const postGetValues = (req, res, next) => {
|
|
119
|
+
const time = req.form.values[key];
|
|
120
|
+
if (time) {
|
|
121
|
+
Object.assign(
|
|
122
|
+
req.form.values,
|
|
123
|
+
getPartsFromTime(time, Object.keys(fields)),
|
|
124
|
+
req.sessionModel.get('errorValues') || {}
|
|
125
|
+
);
|
|
126
|
+
}
|
|
127
|
+
next();
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
// render the template to a string, assign the html output
|
|
131
|
+
// to the time field in res.locals.fields
|
|
132
|
+
const preRender = (req, res, next) => {
|
|
133
|
+
Object.assign(req.form.options.fields, _.mapValues(fields, (v, k) => {
|
|
134
|
+
const rawKey = k.replace(`${key}-`, '');
|
|
135
|
+
const labelKey = `fields.${key}.parts.${rawKey}`;
|
|
136
|
+
const label = req.translate(labelKey);
|
|
137
|
+
return Object.assign({}, v, {
|
|
138
|
+
label: label === labelKey ? v.label : label
|
|
139
|
+
});
|
|
140
|
+
}));
|
|
141
|
+
const legend = conditionalTranslate(`fields.${key}.legend`, req.translate);
|
|
142
|
+
const hint = conditionalTranslate(`fields.${key}.hint`, req.translate);
|
|
143
|
+
const legendClassName = getLegendClassName(options);
|
|
144
|
+
const isPageHeading = getIsPageHeading(options);
|
|
145
|
+
const error = req.form.errors && req.form.errors[key];
|
|
146
|
+
res.render(template, { key, legend, legendClassName, isPageHeading, hint, error }, (err, html) => {
|
|
147
|
+
if (err) {
|
|
148
|
+
next(err);
|
|
149
|
+
} else {
|
|
150
|
+
const field = res.locals.fields.find(f => f.key === key);
|
|
151
|
+
Object.assign(field, { html });
|
|
152
|
+
next();
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
// return config extended with hooks
|
|
158
|
+
return Object.assign({}, options, {
|
|
159
|
+
hooks: {
|
|
160
|
+
'pre-process': preProcess,
|
|
161
|
+
'post-process': postProcess,
|
|
162
|
+
'pre-getErrors': preGetErrors,
|
|
163
|
+
'post-getErrors': postGetErrors,
|
|
164
|
+
'post-getValues': postGetValues,
|
|
165
|
+
'pre-render': preRender
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<div class="govuk-form-group {{#error}}govuk-form-group--error{{/error}}">
|
|
2
|
+
<fieldset id="{{key}}-group" class="govuk-fieldset{{#className}} {{className}}{{/className}}" role="group">
|
|
3
|
+
<legend class="govuk-fieldset__legend {{#isPageHeading}}govuk-fieldset__legend--l{{/isPageHeading}}{{#legendClassName}} {{legendClassName}}{{/legendClassName}}">
|
|
4
|
+
{{#isPageHeading}}<h1 class="govuk-fieldset__heading">{{/isPageHeading}}
|
|
5
|
+
{{legend}}
|
|
6
|
+
{{#isPageHeading}}</h1>{{/isPageHeading}}
|
|
7
|
+
</legend>
|
|
8
|
+
{{#hint}}
|
|
9
|
+
<span id="{{key}}-hint" class="govuk-hint">{{hint}}</span>
|
|
10
|
+
{{/hint}}
|
|
11
|
+
{{#error}}
|
|
12
|
+
<p id="{{key}}-error" class="govuk-error-message">
|
|
13
|
+
<span class="govuk-visually-hidden">Error:</span> {{error.message}}
|
|
14
|
+
</p>
|
|
15
|
+
{{/error}}
|
|
16
|
+
<div>
|
|
17
|
+
{{#input-time}}{{key}}{{/input-time}}
|
|
18
|
+
</div>
|
|
19
|
+
</fieldset>
|
|
20
|
+
</div>
|
package/config/hof-defaults.js
CHANGED
|
@@ -16,6 +16,7 @@ const defaults = {
|
|
|
16
16
|
getAccessibility: false,
|
|
17
17
|
sessionTimeoutWarningContent: false,
|
|
18
18
|
exitFormContent: false,
|
|
19
|
+
saveExitFormContent: false,
|
|
19
20
|
viewEngine: 'html',
|
|
20
21
|
protocol: process.env.PROTOCOL || 'http',
|
|
21
22
|
noCache: process.env.NO_CACHE || false,
|
|
@@ -32,6 +33,7 @@ const defaults = {
|
|
|
32
33
|
return convertPage(page);
|
|
33
34
|
}
|
|
34
35
|
},
|
|
36
|
+
deIndexForm: process.env.DEINDEX_FORM || 'false',
|
|
35
37
|
gaCrossDomainTrackingTagId: process.env.GDS_CROSS_DOMAIN_GA_TAG,
|
|
36
38
|
loglevel: process.env.LOG_LEVEL || 'info',
|
|
37
39
|
ignoreMiddlewareLogs: ['/healthz'],
|
package/controller/controller.js
CHANGED
|
@@ -109,10 +109,14 @@ module.exports = class Controller extends BaseController {
|
|
|
109
109
|
// only include fields that aren't dependents to mitigate duplicate fields on the page
|
|
110
110
|
fields = fields.filter(field => !req.form.options.fields[field.key].dependent);
|
|
111
111
|
|
|
112
|
+
const exitStep = req.form.options.exitStep || '/exit';
|
|
113
|
+
const saveAndExitStep = req.form.options.saveAndExitStep || '/save-and-exit';
|
|
112
114
|
return _.extend({}, locals, {
|
|
113
115
|
fields,
|
|
114
116
|
route,
|
|
115
117
|
baseUrl: req.baseUrl,
|
|
118
|
+
exitStep,
|
|
119
|
+
saveAndExitStep,
|
|
116
120
|
skipToMain: this.getFirstFormItem(req.form.options.fields),
|
|
117
121
|
title: this.getTitle(route, lookup, req.form.options.fields, res.locals),
|
|
118
122
|
journeyHeaderURL: this.getJourneyHeaderURL(req.baseUrl),
|
|
@@ -188,6 +192,11 @@ module.exports = class Controller extends BaseController {
|
|
|
188
192
|
}
|
|
189
193
|
// eslint-disable-next-line brace-style
|
|
190
194
|
}
|
|
195
|
+
// get first field for time input control
|
|
196
|
+
else if (field && field.mixin === 'input-time') {
|
|
197
|
+
req.form.errors[key].errorLinkId = key + '-hour';
|
|
198
|
+
// eslint-disable-next-line brace-style
|
|
199
|
+
}
|
|
191
200
|
// get first field for date input control
|
|
192
201
|
else if (field && field.mixin === 'input-date') {
|
|
193
202
|
req.form.errors[key].errorLinkId = key + '-day';
|
|
@@ -9,6 +9,7 @@ const emailValidator = require('./email');
|
|
|
9
9
|
// validator methods should return false (or falsy value) for *invalid* input
|
|
10
10
|
// and true (or truthy value) for *valid* input.
|
|
11
11
|
const dateFormat = 'YYYY-MM-DD';
|
|
12
|
+
const timeFormat = 'kk:mm';
|
|
12
13
|
let Validators;
|
|
13
14
|
|
|
14
15
|
module.exports = Validators = {
|
|
@@ -128,6 +129,18 @@ module.exports = Validators = {
|
|
|
128
129
|
return Validators.regex(value, /^\d{2}$/) && parseInt(value, 10) > 0 && parseInt(value, 10) < 32;
|
|
129
130
|
},
|
|
130
131
|
|
|
132
|
+
time(value) {
|
|
133
|
+
return value === '' || Validators.regex(value, /\d{2}\:\d{2}/) && moment(value, timeFormat).isValid();
|
|
134
|
+
},
|
|
135
|
+
|
|
136
|
+
'time-hour'(value) {
|
|
137
|
+
return Validators.regex(value, /^\d{2}$/) && parseInt(value, 10) >= 0 && parseInt(value, 10) < 24;
|
|
138
|
+
},
|
|
139
|
+
|
|
140
|
+
'time-minute'(value) {
|
|
141
|
+
return Validators.regex(value, /^\d{2}$/) && parseInt(value, 10) >= 0 && parseInt(value, 10) < 59;
|
|
142
|
+
},
|
|
143
|
+
|
|
131
144
|
// eslint-disable-next-line no-inline-comments, spaced-comment
|
|
132
145
|
before(value, date) {
|
|
133
146
|
// validator can also do before(value, [diff, unit][, diff, unit])
|