hof 21.0.12-axios-beta → 21.0.12-upgrade-vuln-pkgs-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.
Files changed (31) hide show
  1. package/.nyc_output/ba61bb97-548e-44b6-b2f7-282f850cee4a.json +1 -0
  2. package/.nyc_output/processinfo/ba61bb97-548e-44b6-b2f7-282f850cee4a.json +1 -0
  3. package/.nyc_output/processinfo/index.json +1 -1
  4. package/CHANGELOG.md +21 -0
  5. package/codeReviewChecklist.md +22 -0
  6. package/config/hof-defaults.js +8 -0
  7. package/frontend/govuk-template/build/govuk_template.html +20 -22
  8. package/frontend/template-mixins/mixins/template-mixins.js +1 -0
  9. package/frontend/template-mixins/partials/forms/checkbox.html +5 -0
  10. package/frontend/template-mixins/partials/forms/input-text-group.html +1 -1
  11. package/frontend/template-mixins/partials/forms/select.html +6 -6
  12. package/frontend/template-mixins/partials/forms/textarea-group.html +4 -4
  13. package/frontend/template-partials/views/partials/gatag.html +0 -1
  14. package/frontend/template-partials/views/partials/head.html +23 -0
  15. package/lib/ga-tag.js +33 -7
  16. package/middleware/cookies.js +2 -0
  17. package/model/apis/axios-settings.js +18 -6
  18. package/model/apis/html-to-pdf-converter.js +0 -1
  19. package/model/index.js +95 -94
  20. package/package.json +9 -11
  21. package/pull_request.md +16 -0
  22. package/sandbox/package.json +1 -1
  23. package/sandbox/yarn.lock +14 -9
  24. package/.nyc_output/4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5.json +0 -1
  25. package/.nyc_output/processinfo/4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5.json +0 -1
  26. package/sandbox/apps/sandbox/translations/en/default.json +0 -224
  27. package/sandbox/public/css/app.css +0 -2793
  28. package/sandbox/public/images/icons/icon-caret-left.png +0 -0
  29. package/sandbox/public/images/icons/icon-complete.png +0 -0
  30. package/sandbox/public/images/icons/icon-cross-remove-sign.png +0 -0
  31. package/sandbox/public/js/bundle.js +0 -32888
@@ -0,0 +1 @@
1
+ {"parent":null,"pid":96815,"argv":["/usr/local/bin/node","/Users/mohameduwais/UKHomeOffice/hof/node_modules/.bin/_mocha","test/**/*.spec.js","sandbox/test/**/*.spec.js"],"execArgv":[],"cwd":"/Users/mohameduwais/UKHomeOffice/hof","time":1699519755908,"ppid":96812,"coverageFilename":"/Users/mohameduwais/UKHomeOffice/hof/.nyc_output/ba61bb97-548e-44b6-b2f7-282f850cee4a.json","externalId":"","uuid":"ba61bb97-548e-44b6-b2f7-282f850cee4a","files":["/Users/mohameduwais/UKHomeOffice/hof/model/index.js","/Users/mohameduwais/UKHomeOffice/hof/components/index.js","/Users/mohameduwais/UKHomeOffice/hof/components/address-lookup/index.js","/Users/mohameduwais/UKHomeOffice/hof/components/address-lookup/default-model.js","/Users/mohameduwais/UKHomeOffice/hof/components/address-lookup/defaults.js","/Users/mohameduwais/UKHomeOffice/hof/components/clear-session/index.js","/Users/mohameduwais/UKHomeOffice/hof/components/combine-and-loop-fields/index.js","/Users/mohameduwais/UKHomeOffice/hof/components/date/index.js","/Users/mohameduwais/UKHomeOffice/hof/components/date/fields.js","/Users/mohameduwais/UKHomeOffice/hof/components/emailer/index.js","/Users/mohameduwais/UKHomeOffice/hof/components/emailer/email-service.js","/Users/mohameduwais/UKHomeOffice/hof/components/emailer/emailer.js","/Users/mohameduwais/UKHomeOffice/hof/components/emailer/transports/index.js","/Users/mohameduwais/UKHomeOffice/hof/components/emailer/transports/smtp.js","/Users/mohameduwais/UKHomeOffice/hof/components/emailer/transports/ses.js","/Users/mohameduwais/UKHomeOffice/hof/components/emailer/transports/stub.js","/Users/mohameduwais/UKHomeOffice/hof/components/emailer/transports/debug.js","/Users/mohameduwais/UKHomeOffice/hof/components/homeoffice-countries/index.js","/Users/mohameduwais/UKHomeOffice/hof/config/component-defaults.js","/Users/mohameduwais/UKHomeOffice/hof/components/notify/index.js","/Users/mohameduwais/UKHomeOffice/hof/components/notify/notify.js"]}
@@ -1 +1 @@
1
- {"processes":{"4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5":{"parent":null,"children":[]}},"files":{"/Users/robertmccann/Projects/hof/model/index.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/components/index.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/components/address-lookup/index.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/components/address-lookup/default-model.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/components/address-lookup/defaults.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/components/clear-session/index.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/components/combine-and-loop-fields/index.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/components/date/index.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/components/date/fields.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/components/emailer/index.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/components/emailer/email-service.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/components/emailer/emailer.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/components/emailer/transports/index.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/components/emailer/transports/smtp.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/components/emailer/transports/ses.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/components/emailer/transports/stub.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/components/emailer/transports/debug.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/components/homeoffice-countries/index.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/config/component-defaults.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/components/notify/index.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/components/notify/notify.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/components/summary/index.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/config/rate-limits.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/middleware/rate-limiter.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/config/hof-defaults.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/controller/base-controller.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/controller/formatting/index.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/controller/validation/index.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/controller/validation/validators.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/controller/validation/email.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/controller/validation-error.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/utilities/index.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/utilities/autofill/index.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/utilities/autofill/inputs.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/utilities/test-data/index.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/utilities/countries.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/utilities/helpers/index.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/utilities/reqres/index.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/config/sanitisation-rules.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/controller/formatting/formatters.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/controller/index.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/controller/behaviour-session.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/controller/behaviour-hooks.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/controller/controller.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/sandbox/apps/sandbox/behaviours/country-select.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/frontend/template-mixins/mixins/index.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/frontend/template-mixins/mixins/template-mixins.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/frontend/template-mixins/mixins/render.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/frontend/template-mixins/mixins/helpers.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/index.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/frontend/index.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/frontend/govuk-template/index.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/frontend/govuk-template/build/index.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/frontend/govuk-template/build/config.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/frontend/template-partials/index.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/frontend/template-partials/translations/index.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/frontend/themes/index.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/frontend/themes/gov-uk/index.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/frontend/toolkit/index.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/frontend/toolkit/assets/javascript/helpers.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/frontend/toolkit/assets/javascript/form-focus.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/frontend/toolkit/assets/javascript/progressive-reveal.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/frontend/toolkit/assets/javascript/validation.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/frontend/toolkit/assets/javascript/character-count.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/middleware/index.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/middleware/cookies.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/middleware/errors.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/middleware/not-found.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/middleware/deep-translate.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/lib/markdown.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/lib/router.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/wizard/index.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/wizard/behaviours/index.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/wizard/behaviours/complete.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/wizard/util/constants.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/lib/helpers.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/lib/health.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/lib/serve-static.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/lib/ga-tag.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/lib/sessions.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/lib/settings.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/lib/logger.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/build/index.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/config/builder-defaults.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/transpiler/index.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/transpiler/lib/compile.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/transpiler/lib/build.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/transpiler/lib/expand-dirs.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/transpiler/lib/aggregate.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/transpiler/lib/write-files.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/model/apis/index.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/model/apis/html-to-pdf-converter.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/wizard/model.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/wizard/middleware/back-links.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/wizard/util/helpers.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/wizard/middleware/check-complete.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/wizard/middleware/check-progress.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/wizard/middleware/check-session.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/wizard/middleware/csrf.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/sandbox/test/_unit/example_app/sections/summary-data-sections.spec.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/sandbox/apps/sandbox/sections/summary-data-sections.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/sandbox/apps/sandbox/lib/staticAppealStages.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/sandbox/apps/sandbox/fields.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/sandbox/test/helpers/utilities.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"],"/Users/robertmccann/Projects/hof/sandbox/apps/sandbox/behaviours/international-number.js":["4fc007c9-d6c8-4614-89ce-04c7d6ce9fe5"]},"externalIds":{}}
1
+ {"processes":{"ba61bb97-548e-44b6-b2f7-282f850cee4a":{"parent":null,"children":[]}},"files":{"/Users/mohameduwais/UKHomeOffice/hof/model/index.js":["ba61bb97-548e-44b6-b2f7-282f850cee4a"],"/Users/mohameduwais/UKHomeOffice/hof/components/index.js":["ba61bb97-548e-44b6-b2f7-282f850cee4a"],"/Users/mohameduwais/UKHomeOffice/hof/components/address-lookup/index.js":["ba61bb97-548e-44b6-b2f7-282f850cee4a"],"/Users/mohameduwais/UKHomeOffice/hof/components/address-lookup/default-model.js":["ba61bb97-548e-44b6-b2f7-282f850cee4a"],"/Users/mohameduwais/UKHomeOffice/hof/components/address-lookup/defaults.js":["ba61bb97-548e-44b6-b2f7-282f850cee4a"],"/Users/mohameduwais/UKHomeOffice/hof/components/clear-session/index.js":["ba61bb97-548e-44b6-b2f7-282f850cee4a"],"/Users/mohameduwais/UKHomeOffice/hof/components/combine-and-loop-fields/index.js":["ba61bb97-548e-44b6-b2f7-282f850cee4a"],"/Users/mohameduwais/UKHomeOffice/hof/components/date/index.js":["ba61bb97-548e-44b6-b2f7-282f850cee4a"],"/Users/mohameduwais/UKHomeOffice/hof/components/date/fields.js":["ba61bb97-548e-44b6-b2f7-282f850cee4a"],"/Users/mohameduwais/UKHomeOffice/hof/components/emailer/index.js":["ba61bb97-548e-44b6-b2f7-282f850cee4a"],"/Users/mohameduwais/UKHomeOffice/hof/components/emailer/email-service.js":["ba61bb97-548e-44b6-b2f7-282f850cee4a"],"/Users/mohameduwais/UKHomeOffice/hof/components/emailer/emailer.js":["ba61bb97-548e-44b6-b2f7-282f850cee4a"],"/Users/mohameduwais/UKHomeOffice/hof/components/emailer/transports/index.js":["ba61bb97-548e-44b6-b2f7-282f850cee4a"],"/Users/mohameduwais/UKHomeOffice/hof/components/emailer/transports/smtp.js":["ba61bb97-548e-44b6-b2f7-282f850cee4a"],"/Users/mohameduwais/UKHomeOffice/hof/components/emailer/transports/ses.js":["ba61bb97-548e-44b6-b2f7-282f850cee4a"],"/Users/mohameduwais/UKHomeOffice/hof/components/emailer/transports/stub.js":["ba61bb97-548e-44b6-b2f7-282f850cee4a"],"/Users/mohameduwais/UKHomeOffice/hof/components/emailer/transports/debug.js":["ba61bb97-548e-44b6-b2f7-282f850cee4a"],"/Users/mohameduwais/UKHomeOffice/hof/components/homeoffice-countries/index.js":["ba61bb97-548e-44b6-b2f7-282f850cee4a"],"/Users/mohameduwais/UKHomeOffice/hof/config/component-defaults.js":["ba61bb97-548e-44b6-b2f7-282f850cee4a"],"/Users/mohameduwais/UKHomeOffice/hof/components/notify/index.js":["ba61bb97-548e-44b6-b2f7-282f850cee4a"],"/Users/mohameduwais/UKHomeOffice/hof/components/notify/notify.js":["ba61bb97-548e-44b6-b2f7-282f850cee4a"]},"externalIds":{}}
package/CHANGELOG.md CHANGED
@@ -1,3 +1,24 @@
1
+ ## 2024-07-22, Version 21.0.0 (Stable), @Rhodine-orleans-lindsay
2
+ * Replaces deprecated request module with axios
3
+ - refactors the hof model and apis to use axios instead of request
4
+ * Updates patch and minor dependency versions
5
+
6
+ ## 2024-04-24, Version 20.5.0 (Stable), @mislam987
7
+ * Add hint property to checkboxes to align with govuk design guidelines
8
+
9
+ ## 2024-02-29, Version 20.4.0 (Stable), @sulthan-ahmed
10
+ * Update version of govuk-frontend to 3.15
11
+ - this adds the new crown for the King
12
+ - this supports a lot of changes from the govuk design system
13
+ * Adds support for Google tag manager
14
+ * Fixes accessibility issues
15
+ * Sandbox area for testing hof changes
16
+ * Updates patch and minor versions including
17
+ - libphonenumber to 1.9.44
18
+ - nodemailer to 6.9.9
19
+ - ip to 1.1.9
20
+ - es5-ext to 0.10.63
21
+
1
22
  ## 2020-06-02, Version 16.0.0 (Stable), @andymoody
2
23
  * Update version of helmet to 3.22.0
3
24
  * Update version of i18n-future to 2.0.0
@@ -0,0 +1,22 @@
1
+ # HOF code review checklist v1.0
2
+
3
+ This is a general guide on what you should check for when reviewing another team member's code.
4
+
5
+ ## Fundamental checks
6
+ - [ ] Check for code format
7
+ - [ ] Check for duplicate code
8
+ - [ ] Check for if there are existing components in the framework already
9
+ - [ ] Check for copy and paste
10
+ - [ ] Check code readability (if the class, function and variable names are making sense, avoid using acronyms, check for simplicity, avoid complexity)
11
+ - [ ] Check if user inputs are sanitized
12
+ - [ ] Check if errors are handled
13
+ - [ ] Check if null / undefined values are checked before actions are performed on a variable (May not always be necessary)
14
+ - [ ] Check for performance (are there logic in loops that doesn't have to be executed each time? Could some tasks be added to a queue and performed later? etc)
15
+
16
+ ## Advanced (optional if the ticket is low / medium impact) checks
17
+ - [ ] Check if the code is following SOLID principle, code maintainability
18
+ - [ ] Check if none functional requirements are needed (for example, should an audit log be stored for an action performed)
19
+ - [ ] Check the performance and efficiency of the tests
20
+ - [ ] Check to avoid the use of operations that only work in javascript (e.g. using && to return the object on the right if the statement on the left is true)
21
+
22
+
@@ -22,6 +22,14 @@ const defaults = {
22
22
  env: process.env.NODE_ENV || 'development',
23
23
  gaTagId: process.env.GA_TAG || 'Test-GA-Tag',
24
24
  ga4TagId: process.env.GA_4_TAG,
25
+ // added to allow support for multiple HOF forms using GTM to customize how they track page views
26
+ gtm: {
27
+ tagId: process.env.GTM_TAG || false,
28
+ config: {},
29
+ composePageName: function (page, convertPage) {
30
+ return convertPage(page);
31
+ }
32
+ },
25
33
  gaCrossDomainTrackingTagId: process.env.GDS_CROSS_DOMAIN_GA_TAG,
26
34
  loglevel: process.env.LOG_LEVEL || 'info',
27
35
  ignoreMiddlewareLogs: ['/healthz'],
@@ -5,50 +5,48 @@
5
5
  <head>
6
6
  <meta charset="utf-8" />
7
7
  <title>{{ pageTitle }}</title>
8
+ {{{ head }}}
8
9
 
9
10
  <link rel="shortcut icon" sizes="16x16 32x32 48x48" href="{{assetPath}}images/favicon.ico" type="image/x-icon">
10
- <link rel="mask-icon" href="{{assetPath}}images/govuk-mask-icon.svg" color="#0b0c0c">
11
+ <link rel="mask-icon" href="{{assetPath}}images/govuk-mask-icon.svg" color="#0b0c0c">
11
12
  <link rel="apple-touch-icon" sizes="180x180" href="{{assetPath}}images/govuk-apple-touch-icon-180x180.png">
12
13
  <link rel="apple-touch-icon" sizes="167x167" href="{{assetPath}}images/govuk-apple-touch-icon-167x167.png">
13
14
  <link rel="apple-touch-icon" sizes="152x152" href="{{assetPath}}images/govuk-apple-touch-icon-152x152.png">
14
15
  <link rel="apple-touch-icon" href="{{assetPath}}images/govuk-apple-touch-icon.png">
15
-
16
-
16
+
17
+
17
18
  <meta name="theme-color" content="#0b0c0c" />
18
19
 
19
20
  <meta name="viewport" content="width=device-width, initial-scale=1">
20
21
 
21
- {{{ head }}}
22
-
23
-
22
+
24
23
  <meta property="og:image" content="{{assetPath}}images/opengraph-image.png">
25
24
  </head>
26
25
 
27
26
  <body class="{{ bodyClasses }} govuk-template__body js-enabled" >
28
27
  <script>document.body.className = ((document.body.className) ? document.body.className + ' js-enabled' : 'js-enabled');</script>
29
28
 
30
-
29
+
31
30
 
32
31
  <div id="global-cookie-message" class="gem-c-cookie-banner govuk-clearfix" data-module="cookie-banner" role="region" aria-label="cookie banner" data-nosnippet="">
33
32
  {{{ cookieMessage }}}
34
33
  </div>
35
-
36
- {{{ bodyStart }}}
37
-
34
+
35
+ {{{ bodyStart }}}
36
+
38
37
  <header role="banner" id="govuk-header" class="{{{ headerClass }}}">
39
38
  <div class="govuk-header__container govuk-width-container">
40
-
39
+
41
40
  <div class="govuk-header__logo">
42
41
  <a href="{{{ homepageUrl }}}" title="{{ logoLinkTitle }}" id="logo" class="govuk-header__link govuk-header__link--homepage" target="_blank" data-module="track-click" data-track-category="homeLinkClicked" data-track-action="homeHeader">
43
42
  <span class="govuk-header__logotype">
44
43
  <!--[if gt IE 8]><!-->
45
- <svg aria-hidden="true" focusable="false" class="govuk-header__logotype-crown" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 132 97" height="30" width="36">
46
- <path fill="currentColor" fill-rule="evenodd" d="M25 30.2c3.5 1.5 7.7-.2 9.1-3.7 1.5-3.6-.2-7.8-3.9-9.2-3.6-1.4-7.6.3-9.1 3.9-1.4 3.5.3 7.5 3.9 9zM9 39.5c3.6 1.5 7.8-.2 9.2-3.7 1.5-3.6-.2-7.8-3.9-9.1-3.6-1.5-7.6.2-9.1 3.8-1.4 3.5.3 7.5 3.8 9zM4.4 57.2c3.5 1.5 7.7-.2 9.1-3.8 1.5-3.6-.2-7.7-3.9-9.1-3.5-1.5-7.6.3-9.1 3.8-1.4 3.5.3 7.6 3.9 9.1zm38.3-21.4c3.5 1.5 7.7-.2 9.1-3.8 1.5-3.6-.2-7.7-3.9-9.1-3.6-1.5-7.6.3-9.1 3.8-1.3 3.6.4 7.7 3.9 9.1zm64.4-5.6c-3.6 1.5-7.8-.2-9.1-3.7-1.5-3.6.2-7.8 3.8-9.2 3.6-1.4 7.7.3 9.2 3.9 1.3 3.5-.4 7.5-3.9 9zm15.9 9.3c-3.6 1.5-7.7-.2-9.1-3.7-1.5-3.6.2-7.8 3.7-9.1 3.6-1.5 7.7.2 9.2 3.8 1.5 3.5-.3 7.5-3.8 9zm4.7 17.7c-3.6 1.5-7.8-.2-9.2-3.8-1.5-3.6.2-7.7 3.9-9.1 3.6-1.5 7.7.3 9.2 3.8 1.3 3.5-.4 7.6-3.9 9.1zM89.3 35.8c-3.6 1.5-7.8-.2-9.2-3.8-1.4-3.6.2-7.7 3.9-9.1 3.6-1.5 7.7.3 9.2 3.8 1.4 3.6-.3 7.7-3.9 9.1zM69.7 17.7l8.9 4.7V9.3l-8.9 2.8c-.2-.3-.5-.6-.9-.9L72.4 0H59.6l3.5 11.2c-.3.3-.6.5-.9.9l-8.8-2.8v13.1l8.8-4.7c.3.3.6.7.9.9l-5 15.4v.1c-.2.8-.4 1.6-.4 2.4 0 4.1 3.1 7.5 7 8.1h.2c.3 0 .7.1 1 .1.4 0 .7 0 1-.1h.2c4-.6 7.1-4.1 7.1-8.1 0-.8-.1-1.7-.4-2.4V34l-5.1-15.4c.4-.2.7-.6 1-.9zM66 92.8c16.9 0 32.8 1.1 47.1 3.2 4-16.9 8.9-26.7 14-33.5l-9.6-3.4c1 4.9 1.1 7.2 0 10.2-1.5-1.4-3-4.3-4.2-8.7L108.6 76c2.8-2 5-3.2 7.5-3.3-4.4 9.4-10 11.9-13.6 11.2-4.3-.8-6.3-4.6-5.6-7.9 1-4.7 5.7-5.9 8-.5 4.3-8.7-3-11.4-7.6-8.8 7.1-7.2 7.9-13.5 2.1-21.1-8 6.1-8.1 12.3-4.5 20.8-4.7-5.4-12.1-2.5-9.5 6.2 3.4-5.2 7.9-2 7.2 3.1-.6 4.3-6.4 7.8-13.5 7.2-10.3-.9-10.9-8-11.2-13.8 2.5-.5 7.1 1.8 11 7.3L80.2 60c-4.1 4.4-8 5.3-12.3 5.4 1.4-4.4 8-11.6 8-11.6H55.5s6.4 7.2 7.9 11.6c-4.2-.1-8-1-12.3-5.4l1.4 16.4c3.9-5.5 8.5-7.7 10.9-7.3-.3 5.8-.9 12.8-11.1 13.8-7.2.6-12.9-2.9-13.5-7.2-.7-5 3.8-8.3 7.1-3.1 2.7-8.7-4.6-11.6-9.4-6.2 3.7-8.5 3.6-14.7-4.6-20.8-5.8 7.6-5 13.9 2.2 21.1-4.7-2.6-11.9.1-7.7 8.8 2.3-5.5 7.1-4.2 8.1.5.7 3.3-1.3 7.1-5.7 7.9-3.5.7-9-1.8-13.5-11.2 2.5.1 4.7 1.3 7.5 3.3l-4.7-15.4c-1.2 4.4-2.7 7.2-4.3 8.7-1.1-3-.9-5.3 0-10.2l-9.5 3.4c5 6.9 9.9 16.7 14 33.5 14.8-2.1 30.8-3.2 47.7-3.2z"></path>
44
+ <svg aria-hidden="true" focusable="false" class="govuk-header__logotype-crown" xmlns="http://www.w3.org/2000/svg\" viewBox="0 0 32 30" height="30" width="32">
45
+ <path fill="currentColor" fill-rule="evenodd" d="M22.6 10.4c-1 .4-2-.1-2.4-1-.4-.9.1-2 1-2.4.9-.4 2 .1 2.4 1s-.1 2-1 2.4m-5.9 6.7c-.9.4-2-.1-2.4-1-.4-.9.1-2 1-2.4.9-.4 2 .1 2.4 1s-.1 2-1 2.4m10.8-3.7c-1 .4-2-.1-2.4-1-.4-.9.1-2 1-2.4.9-.4 2 .1 2.4 1s0 2-1 2.4m3.3 4.8c-1 .4-2-.1-2.4-1-.4-.9.1-2 1-2.4.9-.4 2 .1 2.4 1s-.1 2-1 2.4M17 4.7l2.3 1.2V2.5l-2.3.7-.2-.2.9-3h-3.4l.9 3-.2.2c-.1.1-2.3-.7-2.3-.7v3.4L15 4.7c.1.1.1.2.2.2l-1.3 4c-.1.2-.1.4-.1.6 0 1.1.8 2 1.9 2.2h.7c1-.2 1.9-1.1 1.9-2.1 0-.2 0-.4-.1-.6l-1.3-4c-.1-.2 0-.2.1-.3m-7.6 5.7c.9.4 2-.1 2.4-1 .4-.9-.1-2-1-2.4-.9-.4-2 .1-2.4 1s0 2 1 2.4m-5 3c.9.4 2-.1 2.4-1 .4-.9-.1-2-1-2.4-.9-.4-2 .1-2.4 1s.1 2 1 2.4m-3.2 4.8c.9.4 2-.1 2.4-1 .4-.9-.1-2-1-2.4-.9-.4-2 .1-2.4 1s0 2 1 2.4m14.8 11c4.4 0 8.6.3 12.3.8 1.1-4.5 2.4-7 3.7-8.8l-2.5-.9c.2 1.3.3 1.9 0 2.7-.4-.4-.8-1.1-1.1-2.3l-1.2 4c.7-.5 1.3-.8 2-.9-1.1 2.5-2.6 3.1-3.5 3-1.1-.2-1.7-1.2-1.5-2.1.3-1.2 1.5-1.5 2.1-.1 1.1-2.3-.8-3-2-2.3 1.9-1.9 2.1-3.5.6-5.6-2.1 1.6-2.1 3.2-1.2 5.5-1.2-1.4-3.2-.6-2.5 1.6.9-1.4 2.1-.5 1.9.8-.2 1.1-1.7 2.1-3.5 1.9-2.7-.2-2.9-2.1-2.9-3.6.7-.1 1.9.5 2.9 1.9l.4-4.3c-1.1 1.1-2.1 1.4-3.2 1.4.4-1.2 2.1-3 2.1-3h-5.4s1.7 1.9 2.1 3c-1.1 0-2.1-.2-3.2-1.4l.4 4.3c1-1.4 2.2-2 2.9-1.9-.1 1.5-.2 3.4-2.9 3.6-1.9.2-3.4-.8-3.5-1.9-.2-1.3 1-2.2 1.9-.8.7-2.3-1.2-3-2.5-1.6.9-2.2.9-3.9-1.2-5.5-1.5 2-1.3 3.7.6 5.6-1.2-.7-3.1 0-2 2.3.6-1.4 1.8-1.1 2.1.1.2.9-.3 1.9-1.5 2.1-.9.2-2.4-.5-3.5-3 .6 0 1.2.3 2 .9l-1.2-4c-.3 1.1-.7 1.9-1.1 2.3-.3-.8-.2-1.4 0-2.7l-2.9.9C1.3 23 2.6 25.5 3.7 30c3.7-.5 7.9-.8 12.3-.8\"></path>
47
46
  </svg>
48
47
  <!--<![endif]-->
49
- <!--<![endif]-->
50
48
  <!--[if IE 8]>
51
- <img src="{{ assetPath }}images/govuk-logotype-crown.png" class="govuk-header__logotype-crown-fallback-image" width="36" height="32">
49
+ <img src="{{ assetPath }}images/govuk-logotype-tudor-crown.png" class="govuk-header__logotype-crown-fallback-image" width="32" height="30" alt="">
52
50
  <![endif]-->
53
51
  </span>
54
52
  <span class="govuk-header__logotype-text">
@@ -57,11 +55,11 @@
57
55
  </a>
58
56
  </div>
59
57
  {{{ insideHeader }}}
60
-
58
+
61
59
  {{{ propositionHeader }}}
62
60
  </div>
63
61
  </header>
64
-
62
+
65
63
 
66
64
  {{{ afterHeader }}}
67
65
 
@@ -81,7 +79,7 @@
81
79
  <svg aria-hidden="true" focusable="false" class="govuk-footer__licence-logo" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 483.2 195.7" height="17" width="41">
82
80
  <path fill="currentColor" d="M421.5 142.8V.1l-50.7 32.3v161.1h112.4v-50.7zm-122.3-9.6A47.12 47.12 0 0 1 221 97.8c0-26 21.1-47.1 47.1-47.1 16.7 0 31.4 8.7 39.7 21.8l42.7-27.2A97.63 97.63 0 0 0 268.1 0c-36.5 0-68.3 20.1-85.1 49.7A98 98 0 0 0 97.8 0C43.9 0 0 43.9 0 97.8s43.9 97.8 97.8 97.8c36.5 0 68.3-20.1 85.1-49.7a97.76 97.76 0 0 0 149.6 25.4l19.4 22.2h3v-87.8h-80l24.3 27.5zM97.8 145c-26 0-47.1-21.1-47.1-47.1s21.1-47.1 47.1-47.1 47.2 21 47.2 47S123.8 145 97.8 145"></path>
83
81
  </svg>
84
-
82
+
85
83
  <span class="govuk-footer__licence-description">{{{ licenceMessage }}}</span>
86
84
  </div>
87
85
 
@@ -93,12 +91,12 @@
93
91
  </footer>
94
92
 
95
93
  <div id="global-app-error" class="app-error hidden"></div>
96
-
94
+
97
95
 
98
96
  {{{ bodyEnd }}}
99
-
100
-
97
+
98
+
101
99
  <script {{#nonce}}nonce="{{nonce}}"{{/nonce}}>if (typeof window.GOVUK === 'undefined') document.body.className = document.body.className.replace('js-enabled', '');</script>
102
-
100
+
103
101
  </body>
104
102
  </html>
@@ -319,6 +319,7 @@ module.exports = function (options) {
319
319
  error: this.errors && this.errors[key],
320
320
  invalid: this.errors && this.errors[key] && opts.required,
321
321
  label: t(fieldLabel || 'fields.' + key + '.label'),
322
+ hint: conditionalTranslate(getTranslationKey(field, key, 'hint')),
322
323
  selected: selected,
323
324
  className: classNames(field) || 'govuk-label govuk-checkboxes__label',
324
325
  child: field.child,
@@ -6,6 +6,11 @@
6
6
  {{{label}}}
7
7
  {{#error}}<span class="visuallyhidden">{{error.message}}</span>{{/error}}
8
8
  </label>
9
+ {{#hint}}
10
+ <div id="{{key}}-hint" class="govuk-hint govuk-checkboxes__hint">
11
+ {{hint}}
12
+ </div>
13
+ {{/hint}}
9
14
  </div>
10
15
  {{#renderChild}}{{/renderChild}}
11
16
  </div>
@@ -1,5 +1,5 @@
1
1
  <div id="{{id}}-group" class="{{#compound}} form-group-compound{{/compound}}{{#formGroupClassName}}{{formGroupClassName}}{{/formGroupClassName}}{{#error}} govuk-form-group--error{{/error}}">
2
- {{#isPageHeading}}<h1 class="govuk-label-wrapper">{{/isPageHeading}}<label for="{{id}}" class="{{labelClassName}}{{#isPageHeading}}govuk-label--l{{/isPageHeading}}">
2
+ {{#isPageHeading}}<h1 class="govuk-label-wrapper">{{/isPageHeading}}<label for="{{id}}" class="{{labelClassName}} {{#isPageHeading}}govuk-label--l{{/isPageHeading}}">
3
3
  {{{label}}}
4
4
  </label>
5
5
  {{#isPageHeading}}</h1>{{/isPageHeading}}
@@ -1,14 +1,14 @@
1
1
  <div id="{{id}}-group" class="{{#compound}} form-group-compound{{/compound}}{{#formGroupClassName}} {{formGroupClassName}}{{/formGroupClassName}}{{#error}} govuk-form-group--error{{/error}}">
2
2
  {{#isPageHeading}}<h1 class="govuk-label-wrapper">{{/isPageHeading}}<label for="{{id}}" class="{{labelClassName}}{{#isPageHeading}}govuk-label--l{{/isPageHeading}}">
3
3
  {{{label}}}
4
- {{#hint}}<span {{$hintId}}id="{{hintId}}" {{/hintId}}class="govuk-hint">{{hint}}</span>{{/hint}}
5
- {{#error}}
6
- <p class="govuk-error-message">
7
- <span class="govuk-visually-hidden">Error:</span> {{error.message}}
8
- </p>
9
- {{/error}}
10
4
  </label>
11
5
  {{#isPageHeading}}</h1>{{/isPageHeading}}
6
+ {{#hint}}<div {{$hintId}}id="{{hintId}}" {{/hintId}}class="govuk-hint">{{hint}}</div>{{/hint}}
7
+ {{#error}}
8
+ <p class="govuk-error-message">
9
+ <span class="govuk-visually-hidden">Error:</span> {{error.message}}
10
+ </p>
11
+ {{/error}}
12
12
  <select id="{{id}}" class="govuk-select{{#className}} {{className}}{{/className}}{{#error}} govuk-select--error{{/error}}" name="{{id}}" aria-required="{{required}}">
13
13
  {{#options}}
14
14
  <option value="{{value}}" {{#selected}}selected{{/selected}}>{{label}}</option>
@@ -4,7 +4,7 @@
4
4
  <div id="{{id}}-group" class="govuk-form-group {{#formGroupClassName}}{{formGroupClassName}}{{/formGroupClassName}}{{#error}} govuk-form-group--error{{/error}}">
5
5
  {{#isPageHeading}}<h1 class="govuk-label-wrapper">{{/isPageHeading}}
6
6
  <label for="{{id}}"
7
- class="{{labelClassName}}{{#isPageHeading}}govuk-label--l{{/isPageHeading}}">
7
+ class="{{labelClassName}} {{#isPageHeading}}govuk-label--l{{/isPageHeading}}">
8
8
  {{{label}}}
9
9
  {{#error}}
10
10
  <p id="{{id}}-error" class="govuk-error-message">
@@ -18,10 +18,10 @@
18
18
  <textarea name="{{id}}" id="{{id}}"
19
19
  class="govuk-textarea {{#isMaxlengthOrMaxword}}govuk-js-character-count{{/isMaxlengthOrMaxword}} {{#className}}{{className}}{{/className}} {{#error}}govuk-input--error{{/error}}"
20
20
  {{#isMaxlengthOrMaxword}}
21
- aria-describedby="{{id}}-info"
21
+ aria-describedby="{{id}}-hint {{id}}-info"
22
22
  {{/isMaxlengthOrMaxword}}
23
- {{#attributes}}
24
- {{attribute}}="{{value}}"
23
+ {{#attributes}}
24
+ {{attribute}}="{{value}}"
25
25
  {{/attributes}}
26
26
  {{^error}}{{#hintId}}{{#maxlength}} aria-describedby="{{id}}-maxlength-hint {{hintId}}"{{/maxlength}}{{/hintId}}{{/error}}
27
27
  {{^error}}{{#hintId}}{{^maxlength}} aria-describedby="{{hintId}}"{{/maxlength}}{{/hintId}}{{/error}}
@@ -34,7 +34,6 @@
34
34
  ga('govuk_shared.send', 'pageview')
35
35
  {{/gaCrossDomainTrackingTagId}}
36
36
  }
37
-
38
37
  </script>
39
38
  {{/gaTagId}}
40
39
 
@@ -1,2 +1,25 @@
1
+ {{#gtmTagId}}
2
+ {{#cookiesAccepted}}
3
+ <!-- Google Tag Manager Data Layer -->
4
+ <script {{#nonce}}nonce="{{nonce}}"{{/nonce}}>
5
+ var dataLayer = window.dataLayer || [];
6
+ dataLayer.push(
7
+ {{{gtmConfig}}}
8
+ );
9
+ </script>
10
+ <!-- End Google Tag Manager Data Layer -->
11
+
12
+ <!-- Google Tag Manager -->
13
+ <script {{#nonce}}nonce="{{nonce}}"{{/nonce}}>
14
+ (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
15
+ new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
16
+ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
17
+ 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
18
+ })(window,document,'script','dataLayer','{{gtmTagId}}');
19
+ </script>
20
+ <!-- End Google Tag Manager -->
21
+ {{/cookiesAccepted}}
22
+ {{/gtmTagId}}
23
+
1
24
  <meta name="format-detection" content="telephone=no">
2
25
  <link rel="stylesheet" href="{{assetPath}}/css/app.css">
package/lib/ga-tag.js CHANGED
@@ -2,6 +2,16 @@
2
2
 
3
3
  const _ = require('lodash');
4
4
 
5
+ const convertToGTMPage = text => {
6
+ // Remove leading and trailing slashes
7
+ let str = text.replace(/^\/|\/$/g, '');
8
+ // Replace hyphens with spaces and capitalize each word
9
+ str = str.replace(/-+/g, ' ').replace(/(^|\s)\S/g, function (match) {
10
+ return match.toUpperCase();
11
+ });
12
+ return str;
13
+ };
14
+
5
15
  const pageView = (path, pageMap) => pageMap.get(path) || path;
6
16
 
7
17
  const createUris = routes => {
@@ -42,19 +52,35 @@ const setupPageMap = routes => {
42
52
  module.exports = (app, config) => {
43
53
  const gaTagId = config.gaTagId;
44
54
  const ga4TagId = config.ga4TagId;
55
+ const gtm = config.gtm;
45
56
  const gaCrossDomainTrackingTagId = config.gaCrossDomainTrackingTagId;
46
57
  const routes = config.routes;
47
58
 
48
- if (gaTagId || ga4TagId) {
59
+ if (gaTagId || ga4TagId || gtm.tagId) {
49
60
  const pageMap = setupPageMap(routes);
50
61
 
51
62
  app.use((req, res, next) => {
52
- res.locals.gaAllowDebug = config.env === 'development';
53
- res.locals.gaTagId = gaTagId;
54
- res.locals.ga4TagId = ga4TagId;
55
- res.locals.gaCrossDomainTrackingTagId = gaCrossDomainTrackingTagId;
56
- res.locals['ga-id'] = gaTagId;
57
- res.locals['ga-page'] = pageView(req.path, pageMap);
63
+ const page = pageView(req.path, pageMap);
64
+
65
+ // Preparing common res.locals properties
66
+ const properties = {
67
+ gaAllowDebug: config.env === 'development',
68
+ gaTagId: gaTagId,
69
+ ga4TagId: ga4TagId,
70
+ gaCrossDomainTrackingTagId: gaCrossDomainTrackingTagId,
71
+ 'ga-id': gaTagId,
72
+ 'ga-page': page
73
+ };
74
+
75
+ // Adding extra properties if a GTM TAG is available
76
+ if (gtm.tagId) {
77
+ gtm.config.pageName = gtm.composePageName(page, convertToGTMPage);
78
+ Object.assign(properties, {
79
+ gtmConfig: JSON.stringify(gtm.config),
80
+ gtmTagId: gtm.tagId
81
+ });
82
+ }
83
+ res.locals = Object.assign(res.locals, properties);
58
84
  next();
59
85
  });
60
86
  }
@@ -22,6 +22,8 @@ module.exports = options => {
22
22
  const reqIsCookieCheckRedirect = req.query[paramName] !== undefined;
23
23
 
24
24
  if (reqIncludesCookies || isHealthcheckUrl(req.path, healthcheckUrls)) {
25
+ const prefs = 'cookie_preferences' in req.cookies ? JSON.parse(req.cookies.cookie_preferences) : {};
26
+ res.locals.cookiesAccepted = Boolean(prefs.usage);
25
27
  next();
26
28
  } else if (req.cookies === undefined || (!Object.keys(req.cookies).length && reqIsCookieCheckRedirect)) {
27
29
  const err = new Error('Cookies required');
@@ -1,9 +1,21 @@
1
1
  'use strict';
2
- const url = require('url');
2
+ const { format } = require('url'); // Destructure 'format' from 'url' module
3
3
 
4
- module.exports = (settings, body) => {
5
- return Object.assign({}, settings, {
6
- 'url' : settings.uri || settings.url || url.format(settings),
7
- 'data': settings.body || body || settings.data
4
+ module.exports = (settings = {}, body = null) => {
5
+ if (typeof settings !== 'object' || settings === null) {
6
+ throw new TypeError('settings must be a non-null object');
7
+ }
8
+
9
+ const {
10
+ uri,
11
+ url,
12
+ body: settingsBody,
13
+ data: settingsData,
14
+ ...restSettings
15
+ } = settings;
16
+
17
+ return Object.assign({}, restSettings, {
18
+ url: uri || url || format(settings),
19
+ data: settingsBody || body || settingsData
8
20
  });
9
- }
21
+ };
@@ -10,7 +10,6 @@ module.exports = class PDFModel extends Model {
10
10
  settings.encoding = null;
11
11
  settings.rejectUnauthorized = false;
12
12
  settings.responseType = 'arraybuffer';
13
- console.log("settings------+_+_+_+_---------: ", settings);
14
13
  return settings;
15
14
  }
16
15