hof 22.8.4 → 22.9.0-beta.v1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/README.md +30 -0
- package/config/hof-defaults.js +6 -1
- package/frontend/govuk-template/govuk_template_generated.html +102 -0
- package/frontend/template-partials/views/layout.html +2 -8
- package/frontend/themes/gov-uk/styles/_cookie-banner.scss +0 -3
- package/lib/settings.js +1 -0
- package/package/.eslintignore +1 -0
- package/package/CHANGELOG.md +232 -0
- package/package/LICENSE +21 -0
- package/package/README.md +1887 -0
- package/package/bin/hof-build +10 -0
- package/package/bin/hof-transpiler +12 -0
- package/package/build/helpers/importer.js +29 -0
- package/package/build/helpers/local.js +35 -0
- package/package/build/helpers/resolver/import.js +32 -0
- package/package/build/helpers/resolver/nearest-package-root.js +33 -0
- package/package/build/helpers/resolver/package.js +29 -0
- package/package/build/helpers/resolver.js +16 -0
- package/package/build/index.js +49 -0
- package/package/build/lib/env.js +36 -0
- package/package/build/lib/mkdir.js +9 -0
- package/package/build/lib/run.js +17 -0
- package/package/build/lib/spawn.js +18 -0
- package/package/build/tasks/browserify/compress.js +15 -0
- package/package/build/tasks/browserify/index.js +48 -0
- package/package/build/tasks/build/index.js +6 -0
- package/package/build/tasks/images/index.js +27 -0
- package/package/build/tasks/index.js +8 -0
- package/package/build/tasks/sass/index.js +67 -0
- package/package/build/tasks/translate/index.js +20 -0
- package/package/build/tasks/watch/index.js +161 -0
- package/package/components/address-lookup/default-model.js +76 -0
- package/package/components/address-lookup/defaults.js +25 -0
- package/package/components/address-lookup/index.js +251 -0
- package/package/components/address-lookup/templates/address-lookup.html +14 -0
- package/package/components/address-lookup/templates/address.html +22 -0
- package/package/components/address-lookup/templates/postcode.html +9 -0
- package/package/components/clear-session/Readme.md +46 -0
- package/package/components/clear-session/index.js +26 -0
- package/package/components/combine-and-loop-fields/Readme.md +42 -0
- package/package/components/combine-and-loop-fields/index.js +156 -0
- package/package/components/date/fields.js +16 -0
- package/package/components/date/index.js +172 -0
- package/package/components/date/templates/date.html +20 -0
- package/package/components/emailer/assets/images/govuk_logotype_email.png +0 -0
- package/package/components/emailer/assets/images/ho_crest_27px.png +0 -0
- package/package/components/emailer/assets/images/spacer.gif +0 -0
- package/package/components/emailer/email-service.js +51 -0
- package/package/components/emailer/emailer.js +53 -0
- package/package/components/emailer/index.js +74 -0
- package/package/components/emailer/transports/debug.js +74 -0
- package/package/components/emailer/transports/index.js +8 -0
- package/package/components/emailer/transports/ses.js +36 -0
- package/package/components/emailer/transports/smtp.js +26 -0
- package/package/components/emailer/transports/stub.js +5 -0
- package/package/components/emailer/views/layout.html +63 -0
- package/package/components/homeoffice-countries/index.js +22 -0
- package/package/components/index.js +13 -0
- package/package/components/notify/index.js +62 -0
- package/package/components/notify/notify.js +51 -0
- package/package/components/session-timeout-warning/index.js +67 -0
- package/package/components/summary/index.js +237 -0
- package/package/config/builder-defaults.js +45 -0
- package/package/config/component-defaults.js +13 -0
- package/package/config/hof-defaults.js +65 -0
- package/package/config/rate-limits.js +20 -0
- package/package/config/sanitisation-rules.js +32 -0
- package/package/controller/base-controller.js +296 -0
- package/package/controller/behaviour-hooks.js +51 -0
- package/package/controller/behaviour-session.js +64 -0
- package/package/controller/controller.js +258 -0
- package/package/controller/deprecate-error.js +10 -0
- package/package/controller/formatting/formatters.js +70 -0
- package/package/controller/formatting/index.js +32 -0
- package/package/controller/index.js +17 -0
- package/package/controller/validation/email.js +30 -0
- package/package/controller/validation/index.js +101 -0
- package/package/controller/validation/validators.js +181 -0
- package/package/controller/validation-error.js +14 -0
- package/package/frontend/govuk-template/build/config.js +24 -0
- package/package/frontend/govuk-template/build/govuk_template.html +102 -0
- package/package/frontend/govuk-template/build/index.js +23 -0
- package/package/frontend/govuk-template/govuk_template_generated.html +102 -0
- package/package/frontend/govuk-template/index.js +29 -0
- package/package/frontend/index.js +9 -0
- package/package/frontend/template-mixins/mixins/helpers.js +103 -0
- package/package/frontend/template-mixins/mixins/index.js +37 -0
- package/package/frontend/template-mixins/mixins/render.js +12 -0
- package/package/frontend/template-mixins/mixins/template-mixins.js +520 -0
- package/package/frontend/template-mixins/partials/forms/checkbox-group.html +47 -0
- package/package/frontend/template-mixins/partials/forms/checkbox.html +16 -0
- package/package/frontend/template-mixins/partials/forms/input-submit.html +1 -0
- package/package/frontend/template-mixins/partials/forms/input-text-date.html +37 -0
- package/package/frontend/template-mixins/partials/forms/input-text-group.html +45 -0
- package/package/frontend/template-mixins/partials/forms/option-group.html +43 -0
- package/package/frontend/template-mixins/partials/forms/select.html +17 -0
- package/package/frontend/template-mixins/partials/forms/textarea-group.html +37 -0
- package/package/frontend/template-mixins/partials/mixins/panel.html +4 -0
- package/package/frontend/template-partials/index.js +9 -0
- package/package/frontend/template-partials/translations/index.js +26 -0
- package/package/frontend/template-partials/translations/src/cy/base.json +4 -0
- package/package/frontend/template-partials/translations/src/cy/buttons.json +6 -0
- package/package/frontend/template-partials/translations/src/cy/cookies.json +104 -0
- package/package/frontend/template-partials/translations/src/cy/errorlist.json +6 -0
- package/package/frontend/template-partials/translations/src/cy/errors.json +18 -0
- package/package/frontend/template-partials/translations/src/cy/terms.json +28 -0
- package/package/frontend/template-partials/translations/src/en/accessibility.json +43 -0
- package/package/frontend/template-partials/translations/src/en/base.json +5 -0
- package/package/frontend/template-partials/translations/src/en/buttons.json +10 -0
- package/package/frontend/template-partials/translations/src/en/cookies.json +116 -0
- package/package/frontend/template-partials/translations/src/en/errorlist.json +7 -0
- package/package/frontend/template-partials/translations/src/en/errors.json +35 -0
- package/package/frontend/template-partials/translations/src/en/exit.json +5 -0
- package/package/frontend/template-partials/translations/src/en/fields.json +5 -0
- package/package/frontend/template-partials/translations/src/en/journey.json +6 -0
- package/package/frontend/template-partials/translations/src/en/save-and-exit.json +4 -0
- package/package/frontend/template-partials/translations/src/en/terms.json +28 -0
- package/package/frontend/template-partials/views/404.html +9 -0
- package/package/frontend/template-partials/views/accessibility.html +55 -0
- package/package/frontend/template-partials/views/confirm.html +8 -0
- package/package/frontend/template-partials/views/confirmation.html +19 -0
- package/package/frontend/template-partials/views/content/en/what-happens-next.md +0 -0
- package/package/frontend/template-partials/views/cookie-error.html +1 -0
- package/package/frontend/template-partials/views/cookies.html +84 -0
- package/package/frontend/template-partials/views/email/data-row.html +4 -0
- package/package/frontend/template-partials/views/email/formatted.html +12 -0
- package/package/frontend/template-partials/views/email/layout.html +63 -0
- package/package/frontend/template-partials/views/email/raw.html +11 -0
- package/package/frontend/template-partials/views/email/section-row.html +3 -0
- package/package/frontend/template-partials/views/error.html +20 -0
- package/package/frontend/template-partials/views/exit.html +9 -0
- package/package/frontend/template-partials/views/feedback-submitted.html +11 -0
- package/package/frontend/template-partials/views/layout.html +55 -0
- package/package/frontend/template-partials/views/partials/analytics-table.html +25 -0
- package/package/frontend/template-partials/views/partials/back.html +5 -0
- package/package/frontend/template-partials/views/partials/bullet-list.html +7 -0
- package/package/frontend/template-partials/views/partials/confirmation-alert.html +6 -0
- package/package/frontend/template-partials/views/partials/continue.html +5 -0
- package/package/frontend/template-partials/views/partials/cookie-banner.html +29 -0
- package/package/frontend/template-partials/views/partials/cookie-notification.html +4 -0
- package/package/frontend/template-partials/views/partials/cookie-settings-button.html +1 -0
- package/package/frontend/template-partials/views/partials/cookie-settings-radio.html +8 -0
- package/package/frontend/template-partials/views/partials/details-summary.html +8 -0
- package/package/frontend/template-partials/views/partials/external-link.html +1 -0
- package/package/frontend/template-partials/views/partials/form.html +10 -0
- package/package/frontend/template-partials/views/partials/gatag.html +60 -0
- package/package/frontend/template-partials/views/partials/head.html +31 -0
- package/package/frontend/template-partials/views/partials/heading.html +11 -0
- package/package/frontend/template-partials/views/partials/items-table.html +32 -0
- package/package/frontend/template-partials/views/partials/maincontent-left.html +10 -0
- package/package/frontend/template-partials/views/partials/navigation.html +8 -0
- package/package/frontend/template-partials/views/partials/page.html +23 -0
- package/package/frontend/template-partials/views/partials/panel-indent.html +3 -0
- package/package/frontend/template-partials/views/partials/session-cookies-table.html +28 -0
- package/package/frontend/template-partials/views/partials/session-timeout-warning.html +38 -0
- package/package/frontend/template-partials/views/partials/summary-table-row.html +14 -0
- package/package/frontend/template-partials/views/partials/summary-table.html +8 -0
- package/package/frontend/template-partials/views/partials/table.html +18 -0
- package/package/frontend/template-partials/views/partials/validation-list.html +3 -0
- package/package/frontend/template-partials/views/partials/validation-summary.html +25 -0
- package/package/frontend/template-partials/views/partials/warn.html +7 -0
- package/package/frontend/template-partials/views/rate-limit-error.html +10 -0
- package/package/frontend/template-partials/views/save-and-exit.html +17 -0
- package/package/frontend/template-partials/views/service-unavailable.html +13 -0
- package/package/frontend/template-partials/views/session-timeout.html +7 -0
- package/package/frontend/template-partials/views/step.html +14 -0
- package/package/frontend/template-partials/views/terms.html +26 -0
- package/package/frontend/themes/gov-uk/client-js/cookieSettings.js +145 -0
- package/package/frontend/themes/gov-uk/client-js/govuk-cookies.js +121 -0
- package/package/frontend/themes/gov-uk/client-js/index.js +27 -0
- package/package/frontend/themes/gov-uk/client-js/session-timeout-dialog.js +348 -0
- package/package/frontend/themes/gov-uk/client-js/skip-to-main.js +19 -0
- package/package/frontend/themes/gov-uk/index.js +9 -0
- package/package/frontend/themes/gov-uk/styles/_base.scss +17 -0
- package/package/frontend/themes/gov-uk/styles/_check_your_answers.scss +155 -0
- package/package/frontend/themes/gov-uk/styles/_cookie-banner.scss +111 -0
- package/package/frontend/themes/gov-uk/styles/_cookie-settings.scss +33 -0
- package/package/frontend/themes/gov-uk/styles/_govuk_frontend_toolkit.scss +23 -0
- package/package/frontend/themes/gov-uk/styles/_helpers.scss +5 -0
- package/package/frontend/themes/gov-uk/styles/_layout.scss +125 -0
- package/package/frontend/themes/gov-uk/styles/_panel-indent.scss +27 -0
- package/package/frontend/themes/gov-uk/styles/_pdf.scss +42 -0
- package/package/frontend/themes/gov-uk/styles/_session-timeout-dialog.scss +121 -0
- package/package/frontend/themes/gov-uk/styles/_typography.scss +27 -0
- package/package/frontend/themes/gov-uk/styles/_variables.scss +11 -0
- package/package/frontend/themes/gov-uk/styles/govuk.scss +43 -0
- package/package/frontend/themes/gov-uk/styles/mixins.scss +16 -0
- package/package/frontend/themes/gov-uk/styles/modules/_alerts.scss +73 -0
- package/package/frontend/themes/gov-uk/styles/modules/_buttons.scss +5 -0
- package/package/frontend/themes/gov-uk/styles/modules/_character-count.scss +8 -0
- package/package/frontend/themes/gov-uk/styles/modules/_confirm-page.scss +20 -0
- package/package/frontend/themes/gov-uk/styles/modules/_lists.scss +5 -0
- package/package/frontend/themes/gov-uk/styles/modules/_progressive-reveal.scss +17 -0
- package/package/frontend/themes/gov-uk/styles/modules/_validation.scss +51 -0
- package/package/frontend/themes/index.js +5 -0
- package/package/frontend/toolkit/assets/images/passports/new-window-link-blue.png +0 -0
- package/package/frontend/toolkit/assets/images/passports/new-window-link.png +0 -0
- package/package/frontend/toolkit/assets/images/spinner.gif +0 -0
- package/package/frontend/toolkit/assets/javascript/character-count.js +99 -0
- package/package/frontend/toolkit/assets/javascript/form-focus.js +101 -0
- package/package/frontend/toolkit/assets/javascript/helpers.js +177 -0
- package/package/frontend/toolkit/assets/javascript/progressive-reveal.js +72 -0
- package/package/frontend/toolkit/assets/javascript/validation.js +71 -0
- package/package/frontend/toolkit/assets/javascript/vendor/details.polyfill.js +189 -0
- package/package/frontend/toolkit/assets/javascript/vendor/indexof.polyfill.js +39 -0
- package/package/frontend/toolkit/assets/javascript/vendor/safari-cachebuster.js +6 -0
- package/package/frontend/toolkit/assets/stylesheets/_base.scss +17 -0
- package/package/frontend/toolkit/assets/stylesheets/_helpers.scss +5 -0
- package/package/frontend/toolkit/assets/stylesheets/_layout.scss +118 -0
- package/package/frontend/toolkit/assets/stylesheets/_typography.scss +27 -0
- package/package/frontend/toolkit/assets/stylesheets/_variables.scss +11 -0
- package/package/frontend/toolkit/assets/stylesheets/app.scss +30 -0
- package/package/frontend/toolkit/assets/stylesheets/govuk-elements/_buttons.scss +47 -0
- package/package/frontend/toolkit/assets/stylesheets/govuk-elements/_details.scss +38 -0
- package/package/frontend/toolkit/assets/stylesheets/govuk-elements/_elements-typography.scss +175 -0
- package/package/frontend/toolkit/assets/stylesheets/govuk-elements/_forms.scss +167 -0
- package/package/frontend/toolkit/assets/stylesheets/govuk-elements/_helpers.scss +39 -0
- package/package/frontend/toolkit/assets/stylesheets/govuk-elements/_layout.scss +67 -0
- package/package/frontend/toolkit/assets/stylesheets/govuk-elements/_lists.scss +40 -0
- package/package/frontend/toolkit/assets/stylesheets/govuk-elements/_panels.scss +29 -0
- package/package/frontend/toolkit/assets/stylesheets/govuk-elements/_reset.scss +33 -0
- package/package/frontend/toolkit/assets/stylesheets/govuk-elements/_tables.scss +33 -0
- package/package/frontend/toolkit/assets/stylesheets/govuk-elements/forms/_form-block-labels.scss +63 -0
- package/package/frontend/toolkit/assets/stylesheets/govuk-elements/forms/_form-date.scss +39 -0
- package/package/frontend/toolkit/assets/stylesheets/govuk-elements/forms/_form-validation.scss +63 -0
- package/package/frontend/toolkit/assets/stylesheets/mixins.scss +16 -0
- package/package/frontend/toolkit/assets/stylesheets/modules/_alerts.scss +73 -0
- package/package/frontend/toolkit/assets/stylesheets/modules/_buttons.scss +5 -0
- package/package/frontend/toolkit/assets/stylesheets/modules/_confirm-page.scss +20 -0
- package/package/frontend/toolkit/assets/stylesheets/modules/_lists.scss +5 -0
- package/package/frontend/toolkit/assets/stylesheets/modules/_progressive-reveal.scss +17 -0
- package/package/frontend/toolkit/assets/stylesheets/modules/_validation.scss +51 -0
- package/package/frontend/toolkit/index.js +10 -0
- package/package/index.js +351 -0
- package/package/lib/deindex.js +18 -0
- package/package/lib/encryption.js +23 -0
- package/package/lib/ga-tag.js +89 -0
- package/package/lib/health.js +26 -0
- package/package/lib/helpers.js +66 -0
- package/package/lib/logger.js +65 -0
- package/package/lib/markdown.js +46 -0
- package/package/lib/router.js +111 -0
- package/package/lib/serve-static.js +12 -0
- package/package/lib/sessions.js +82 -0
- package/package/lib/settings.js +74 -0
- package/package/lib/which.js +28 -0
- package/package/middleware/cookies.js +43 -0
- package/package/middleware/deep-translate.js +32 -0
- package/package/middleware/errors.js +119 -0
- package/package/middleware/index.js +10 -0
- package/package/middleware/not-found.js +38 -0
- package/package/middleware/rate-limiter.js +98 -0
- package/package/middleware/service-unavailable.js +64 -0
- package/package/model/apis/axios-settings.js +21 -0
- package/package/model/apis/html-to-pdf-converter.js +35 -0
- package/package/model/apis/index.js +5 -0
- package/package/model/index.js +348 -0
- package/package/package.json +147 -0
- package/package/sandbox/README.md +66 -0
- package/package/sandbox/apps/sandbox/behaviours/clear-session.js +8 -0
- package/package/sandbox/apps/sandbox/behaviours/country-select.js +10 -0
- package/package/sandbox/apps/sandbox/behaviours/international-number.js +22 -0
- package/package/sandbox/apps/sandbox/fields.js +128 -0
- package/package/sandbox/apps/sandbox/index.js +99 -0
- package/package/sandbox/apps/sandbox/lib/staticAppealStages.js +189 -0
- package/package/sandbox/apps/sandbox/sections/summary-data-sections.js +43 -0
- package/package/sandbox/apps/sandbox/translations/src/en/errors.json +5 -0
- package/package/sandbox/apps/sandbox/translations/src/en/exit.json +4 -0
- package/package/sandbox/apps/sandbox/translations/src/en/fields.json +101 -0
- package/package/sandbox/apps/sandbox/translations/src/en/journey.json +7 -0
- package/package/sandbox/apps/sandbox/translations/src/en/pages.json +72 -0
- package/package/sandbox/apps/sandbox/translations/src/en/validation.json +54 -0
- package/package/sandbox/apps/sandbox/views/form-guidance-link.html +8 -0
- package/package/sandbox/apps/sandbox/views/save-and-exit.html +19 -0
- package/package/sandbox/assets/images/icons/icon-caret-left.png +0 -0
- package/package/sandbox/assets/images/icons/icon-complete.png +0 -0
- package/package/sandbox/assets/images/icons/icon-cross-remove-sign.png +0 -0
- package/package/sandbox/assets/js/index.js +70 -0
- package/package/sandbox/assets/scss/app.scss +27 -0
- package/package/sandbox/codecept.conf.js +15 -0
- package/package/sandbox/config.js +17 -0
- package/package/sandbox/package.json +26 -0
- package/package/sandbox/server.js +23 -0
- package/package/sandbox/yarn.lock +262 -0
- package/package/transpiler/index.js +2 -0
- package/package/transpiler/lib/aggregate.js +32 -0
- package/package/transpiler/lib/build.js +15 -0
- package/package/transpiler/lib/compile.js +12 -0
- package/package/transpiler/lib/expand-dirs.js +14 -0
- package/package/transpiler/lib/write-files.js +24 -0
- package/package/utilities/autofill/index.js +189 -0
- package/package/utilities/autofill/inputs.js +60 -0
- package/package/utilities/countries.js +12 -0
- package/package/utilities/helpers/index.js +189 -0
- package/package/utilities/index.js +9 -0
- package/package/utilities/reqres/index.js +18 -0
- package/package/utilities/test-data/data/domain.json +7 -0
- package/package/utilities/test-data/data/firstname.json +16 -0
- package/package/utilities/test-data/data/lastname.json +10 -0
- package/package/utilities/test-data/data/postcode.json +12 -0
- package/package/utilities/test-data/data/streetname.json +8 -0
- package/package/utilities/test-data/data/streetsuffix.json +7 -0
- package/package/utilities/test-data/data/town.json +9 -0
- package/package/utilities/test-data/index.js +67 -0
- package/package/wizard/behaviours/complete.js +20 -0
- package/package/wizard/behaviours/index.js +5 -0
- package/package/wizard/index.js +124 -0
- package/package/wizard/middleware/back-links.js +68 -0
- package/package/wizard/middleware/check-complete.js +13 -0
- package/package/wizard/middleware/check-progress.js +139 -0
- package/package/wizard/middleware/check-session.js +17 -0
- package/package/wizard/middleware/csrf.js +47 -0
- package/package/wizard/middleware/session-model.js +11 -0
- package/package/wizard/middleware/session.js +9 -0
- package/package/wizard/model.js +29 -0
- package/package/wizard/util/constants.js +5 -0
- package/package/wizard/util/helpers.js +19 -0
- package/package.json +5 -6
- package/.editorconfig +0 -10
- package/.github/workflows/automate-publish.yml +0 -38
- package/.github/workflows/automate-tag.yml +0 -78
- package/.istanbul.yml +0 -20
- package/codeReviewChecklist.md +0 -22
- package/pull_request_template.md +0 -16
@@ -0,0 +1,147 @@
|
|
1
|
+
{
|
2
|
+
"name": "hof",
|
3
|
+
"description": "A bootstrap for HOF projects",
|
4
|
+
"version": "22.9.0",
|
5
|
+
"license": "MIT",
|
6
|
+
"main": "index.js",
|
7
|
+
"author": "HomeOffice",
|
8
|
+
"engines": {
|
9
|
+
"node": ">=10.22.1",
|
10
|
+
"npm": ">=6.14.0"
|
11
|
+
},
|
12
|
+
"bin": {
|
13
|
+
"hof-build": "./bin/hof-build",
|
14
|
+
"hof-transpiler": "./bin/hof-transpiler"
|
15
|
+
},
|
16
|
+
"repository": {
|
17
|
+
"type": "git",
|
18
|
+
"url": "https://github.com/UKHomeOfficeForms/hof.git"
|
19
|
+
},
|
20
|
+
"bugs": {
|
21
|
+
"url": "https://github.com/UKHomeOfficeForms/hof/issues"
|
22
|
+
},
|
23
|
+
"scripts": {
|
24
|
+
"test": "yarn run unit && yarn run test:jest && yarn run test:functional && yarn run test:client && yarn run test:lint",
|
25
|
+
"unit": "LOG_LEVEL=error nyc _mocha \"test/**/*.spec.js\" \"sandbox/test/**/*.spec.js\"",
|
26
|
+
"unit:nocov": "LOG_LEVEL=error mocha \"test/**/*.spec.js\" \"sandbox/test/**/*.spec.js\"",
|
27
|
+
"test:lint": "eslint . --config ./node_modules/eslint-config-hof/default.js",
|
28
|
+
"test:functional": "funkie mocha ./test/functional-tests --timeout 20000 --exit",
|
29
|
+
"test:client": "karma start test/frontend/toolkit/karma.conf.js",
|
30
|
+
"test:jest": "jest test/frontend/jest test/utilities/helpers/jest",
|
31
|
+
"test:acceptance": "TAGS=\"${TAGS:=@feature}\" yarn run test:cucumber",
|
32
|
+
"test:acceptance_browser": "ACCEPTANCE_WITH_BROWSER=true TAGS=\"${TAGS:=@feature}\" yarn run test:cucumber",
|
33
|
+
"test:cucumber": "cucumber-js -f @cucumber/pretty-formatter \"sandbox/test/_features/**/*.feature\" --require sandbox/test/_features/test.setup.js --require \"sandbox/test/_features/step_definitions/**/*.js\" --tags $TAGS",
|
34
|
+
"ci": "travis-conditions",
|
35
|
+
"postversion": "git push && git push --tags"
|
36
|
+
},
|
37
|
+
"dependencies": {
|
38
|
+
"aliasify": "^2.1.0",
|
39
|
+
"axios": "^1.11.0",
|
40
|
+
"bluebird": "^3.7.2",
|
41
|
+
"body-parser": "^1.15.1",
|
42
|
+
"browserify": "^17.0.0",
|
43
|
+
"callsite": "^1.0.0",
|
44
|
+
"chalk": "^2.0.0",
|
45
|
+
"chokidar": "^3.4.0",
|
46
|
+
"connect-redis": "^5.2.0",
|
47
|
+
"cookie-parser": "^1.4.6",
|
48
|
+
"cp": "^0.2.0",
|
49
|
+
"csrf": "^3.1.0",
|
50
|
+
"debug": "^4.3.1",
|
51
|
+
"deprecate": "^1.0.0",
|
52
|
+
"dialog-polyfill": "^0.5.6",
|
53
|
+
"dotenv": "^4.0.0",
|
54
|
+
"duplexify": "^3.5.0",
|
55
|
+
"exorcist": "^2.0.0",
|
56
|
+
"express": "^4.17.1",
|
57
|
+
"express-healthcheck": "^0.1.0",
|
58
|
+
"express-partial-templates": "^0.2.1",
|
59
|
+
"express-session": "^1.13.0",
|
60
|
+
"findup": "^0.1.5",
|
61
|
+
"glob": "^7.2.0",
|
62
|
+
"govuk-elements-sass": "^3.1.3",
|
63
|
+
"govuk-frontend": "3.15",
|
64
|
+
"govuk_template_mustache": "^0.26.0",
|
65
|
+
"helmet": "^3.22.0",
|
66
|
+
"hogan-express-strict": "^0.5.4",
|
67
|
+
"hogan.js": "^3.0.2",
|
68
|
+
"homeoffice-countries": "^0.1.0",
|
69
|
+
"i18n-future": "^2.0.0",
|
70
|
+
"i18n-lookup": "^0.1.0",
|
71
|
+
"is-pdf": "^1.0.0",
|
72
|
+
"jquery": "^3.6.0",
|
73
|
+
"libphonenumber-js": "^1.9.44",
|
74
|
+
"lodash": "^4.17.21",
|
75
|
+
"markdown-it": "^12.3.2",
|
76
|
+
"minimatch": "^3.0.7",
|
77
|
+
"minimist": "^1.2.6",
|
78
|
+
"mixwith": "^0.1.1",
|
79
|
+
"moment": "^2.29.4",
|
80
|
+
"morgan": "^1.10.0",
|
81
|
+
"mustache": "^4.2.0",
|
82
|
+
"nodemailer": "^6.6.3",
|
83
|
+
"nodemailer-ses-transport": "^1.5.1",
|
84
|
+
"nodemailer-stub-transport": "^1.1.0",
|
85
|
+
"notifications-node-client": "^8.2.1",
|
86
|
+
"redis": "^3.1.2",
|
87
|
+
"reqres": "^3.0.1",
|
88
|
+
"rimraf": "^3.0.2",
|
89
|
+
"sass": "^1.56.2",
|
90
|
+
"serve-static": "^1.14.1",
|
91
|
+
"uglify-js": "^3.14.3",
|
92
|
+
"underscore": "^1.13.7",
|
93
|
+
"urijs": "^1.19.11",
|
94
|
+
"uuid": "^8.3.2",
|
95
|
+
"winston": "^3.7.2"
|
96
|
+
},
|
97
|
+
"devDependencies": {
|
98
|
+
"@cucumber/cucumber": "^7.3.0",
|
99
|
+
"@cucumber/pretty-formatter": "^1.0.0-alpha.1",
|
100
|
+
"@types/jest": "^26.0.14",
|
101
|
+
"@xmldom/xmldom": "~0.8.4",
|
102
|
+
"chai": "^3.5.0",
|
103
|
+
"chai-as-promised": "^7.1.1",
|
104
|
+
"chai-subset": "^1.6.0",
|
105
|
+
"concat-stream": "^1.4.7",
|
106
|
+
"csv": "^5.3.2",
|
107
|
+
"eslint": "^8.57.0",
|
108
|
+
"eslint-config-hof": "^1.3.4",
|
109
|
+
"funkie": "0.0.5",
|
110
|
+
"funkie-phantom": "0.0.1",
|
111
|
+
"istanbul": "^0.4.3",
|
112
|
+
"jest": "^26.5.0",
|
113
|
+
"jquery": "^3.6.0",
|
114
|
+
"karma": "^6.3.4",
|
115
|
+
"karma-browserify": "^8.0.0",
|
116
|
+
"karma-chai": "^0.1.0",
|
117
|
+
"karma-cli": "^2.0.0",
|
118
|
+
"karma-mocha": "^2.0.1",
|
119
|
+
"karma-phantomjs-launcher": "^1.0.4",
|
120
|
+
"mocha": "^8.4.0",
|
121
|
+
"mocha-sandbox": "^1.0.0",
|
122
|
+
"node-mocks-http": "^1.6.2",
|
123
|
+
"npm-run-all": "^3.1.1",
|
124
|
+
"nyc": "^15.1.0",
|
125
|
+
"playwright": "^1.16.3",
|
126
|
+
"postcode": "0.2.2",
|
127
|
+
"proxyquire": "^1.7.11",
|
128
|
+
"release-it": "^16.2.1",
|
129
|
+
"sinon": "^11.1.1",
|
130
|
+
"sinon-chai": "^3.7.0",
|
131
|
+
"supertest": "^3.0.0",
|
132
|
+
"travis-conditions": "0.0.0",
|
133
|
+
"watchify": "^4.0.0",
|
134
|
+
"webdriverio": "^4.14.4"
|
135
|
+
},
|
136
|
+
"mocha": {
|
137
|
+
"reporter": "spec",
|
138
|
+
"require": "test/common.js",
|
139
|
+
"recursive": "true",
|
140
|
+
"timeout": "9000",
|
141
|
+
"exit": "true"
|
142
|
+
},
|
143
|
+
"resolutions": {
|
144
|
+
"cached-path-relative": "^1.1.0",
|
145
|
+
"shell-quote": "^1.7.3"
|
146
|
+
}
|
147
|
+
}
|
@@ -0,0 +1,66 @@
|
|
1
|
+
# HOF Sandbox App
|
2
|
+
|
3
|
+
The Home Office Forms (HOF) Sandbox app is used by developers to test out different components in the framework.
|
4
|
+
|
5
|
+
#### How to run the app locally
|
6
|
+
|
7
|
+
Install [Homebrew](https://brew.sh/), if it is not installed
|
8
|
+
|
9
|
+
Once Homebrew is installed run
|
10
|
+
|
11
|
+
```bash
|
12
|
+
brew install nvm
|
13
|
+
```
|
14
|
+
```bash
|
15
|
+
source ~/.bash_profile
|
16
|
+
```
|
17
|
+
|
18
|
+
Install the correct version of node
|
19
|
+
|
20
|
+
```bash
|
21
|
+
nvm install 14.15.0
|
22
|
+
```
|
23
|
+
|
24
|
+
Set the node version
|
25
|
+
|
26
|
+
```bash
|
27
|
+
nvm use 14.15.0
|
28
|
+
```
|
29
|
+
|
30
|
+
Clone the service locally
|
31
|
+
|
32
|
+
```bash
|
33
|
+
git clone ...
|
34
|
+
```
|
35
|
+
|
36
|
+
Install yarn
|
37
|
+
|
38
|
+
```bash
|
39
|
+
npm i yarn -g
|
40
|
+
```
|
41
|
+
|
42
|
+
Install the dependencies
|
43
|
+
|
44
|
+
```bash
|
45
|
+
yarn
|
46
|
+
```
|
47
|
+
|
48
|
+
Move into the sandbox folder
|
49
|
+
|
50
|
+
```bash
|
51
|
+
cd sandbox
|
52
|
+
```
|
53
|
+
|
54
|
+
Install any example app specific dependencies
|
55
|
+
|
56
|
+
```bash
|
57
|
+
yarn
|
58
|
+
```
|
59
|
+
|
60
|
+
Run in development mode
|
61
|
+
|
62
|
+
```bash
|
63
|
+
yarn start:dev
|
64
|
+
```
|
65
|
+
|
66
|
+
go to http://localhost:8082/
|
@@ -0,0 +1,10 @@
|
|
1
|
+
module.exports = superclass => class extends superclass {
|
2
|
+
configure(req, res, next) {
|
3
|
+
const homeOfficeCountries = [''].concat(require('homeoffice-countries').allCountries);
|
4
|
+
req.form.options.fields.countrySelect.options = homeOfficeCountries.map(country => {
|
5
|
+
const labelString = country !== '' ? country : 'Please select a country';
|
6
|
+
return { label: labelString, value: country };
|
7
|
+
});
|
8
|
+
next();
|
9
|
+
}
|
10
|
+
};
|
@@ -0,0 +1,22 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
const validators = require('../../../../controller').validators;
|
4
|
+
|
5
|
+
module.exports = SuperClass => class extends SuperClass {
|
6
|
+
validateField(key, req) {
|
7
|
+
const code = req.sessionModel.get('countryCode');
|
8
|
+
const number = req.form.values['int-phone-number'];
|
9
|
+
|
10
|
+
const isValid = validators.internationalPhoneNumber(number, code);
|
11
|
+
|
12
|
+
if (!isValid) {
|
13
|
+
return new this.ValidationError('int-phone-number', {
|
14
|
+
key: 'int-phone-number',
|
15
|
+
type: 'internationalPhoneNumber',
|
16
|
+
redirect: undefined
|
17
|
+
});
|
18
|
+
}
|
19
|
+
|
20
|
+
return super.validateField(key, req);
|
21
|
+
}
|
22
|
+
};
|
@@ -0,0 +1,128 @@
|
|
1
|
+
/* eslint-disable */
|
2
|
+
'use strict';
|
3
|
+
|
4
|
+
const dateComponent = require('../../../').components.date;
|
5
|
+
const staticAppealStages = require('./lib/staticAppealStages');
|
6
|
+
|
7
|
+
module.exports = {
|
8
|
+
'landing-page-radio': {
|
9
|
+
mixin: 'radio-group',
|
10
|
+
validate: ['required'],
|
11
|
+
isPageHeading: true,
|
12
|
+
// Design system says to avoid in-line unless it's two options,
|
13
|
+
// so just added as an example below but by default it isn't
|
14
|
+
className: ['govuk-radios--inline'],
|
15
|
+
options: ['basic-form', 'complex-form', 'build-your-own-form']
|
16
|
+
},
|
17
|
+
name: {
|
18
|
+
validate: ['required', 'notUrl', { type: 'maxlength', arguments: 200 }],
|
19
|
+
},
|
20
|
+
'dateOfBirth': dateComponent('dateOfBirth', {
|
21
|
+
mixin: 'input-date',
|
22
|
+
isPageHeading: 'true',
|
23
|
+
validate: [
|
24
|
+
'required',
|
25
|
+
'date',
|
26
|
+
{ type: 'after', arguments: ['1900'] }
|
27
|
+
]
|
28
|
+
}),
|
29
|
+
building: {
|
30
|
+
validate: ['required', 'notUrl', { type: 'maxlength', arguments: 100 }]
|
31
|
+
},
|
32
|
+
street: {
|
33
|
+
validate: ['notUrl', { type: 'maxlength', arguments: 50 }],
|
34
|
+
labelClassName: 'visuallyhidden'
|
35
|
+
},
|
36
|
+
townOrCity: {
|
37
|
+
validate: ['required', 'notUrl',
|
38
|
+
{ type: 'regex', arguments: /^([^0-9]*)$/ },
|
39
|
+
{ type: 'maxlength', arguments: 100 }
|
40
|
+
]
|
41
|
+
},
|
42
|
+
postcode: {
|
43
|
+
validate: ['required', 'postcode'],
|
44
|
+
formatter: ['removespaces', 'uppercase']
|
45
|
+
},
|
46
|
+
incomeTypes: {
|
47
|
+
isPageHeading: 'true',
|
48
|
+
mixin: 'checkbox-group',
|
49
|
+
labelClassName: 'visuallyhidden',
|
50
|
+
validate: ['required'],
|
51
|
+
options: [
|
52
|
+
'salary',
|
53
|
+
'universal_credit',
|
54
|
+
'child_benefit',
|
55
|
+
'housing_benefit',
|
56
|
+
'other'
|
57
|
+
]
|
58
|
+
},
|
59
|
+
countryOfHearing: {
|
60
|
+
isPageHeading: 'true',
|
61
|
+
mixin: 'radio-group',
|
62
|
+
validate: ['required'],
|
63
|
+
options: [
|
64
|
+
'englandAndWales',
|
65
|
+
'scotland',
|
66
|
+
'northernIreland'
|
67
|
+
]
|
68
|
+
},
|
69
|
+
email: {
|
70
|
+
validate: ['required', 'email']
|
71
|
+
},
|
72
|
+
phone: {
|
73
|
+
validate: ['required', 'internationalPhoneNumber']
|
74
|
+
},
|
75
|
+
'int-phone-number': {
|
76
|
+
validate: ['required'],
|
77
|
+
labelClassName: 'visuallyhidden'
|
78
|
+
},
|
79
|
+
countrySelect: {
|
80
|
+
mixin: 'select',
|
81
|
+
isPageHeading: 'true',
|
82
|
+
className: ['typeahead'],
|
83
|
+
options:[''].concat(require('homeoffice-countries').allCountries),
|
84
|
+
legend: {
|
85
|
+
className: 'visuallyhidden'
|
86
|
+
},
|
87
|
+
validate: ['required']
|
88
|
+
},
|
89
|
+
complaintDetails: {
|
90
|
+
mixin: 'textarea',
|
91
|
+
// we want to ignore default formatters as we want
|
92
|
+
// to preserve white space
|
93
|
+
'ignore-defaults': true,
|
94
|
+
// apply the other default formatters
|
95
|
+
formatter: ['trim', 'hyphens'],
|
96
|
+
isPageHeading: 'true',
|
97
|
+
// attributes here are passed to the field element
|
98
|
+
validate: ['required', { type: 'maxlength', arguments: 10 }],
|
99
|
+
attributes: [{
|
100
|
+
attribute: 'rows',
|
101
|
+
value: 8
|
102
|
+
}]
|
103
|
+
},
|
104
|
+
whatHappened: {
|
105
|
+
mixin: 'textarea',
|
106
|
+
// we want to ignore default formatters as we want
|
107
|
+
// to preserve white space
|
108
|
+
'ignore-defaults': true,
|
109
|
+
// apply the other default formatters
|
110
|
+
formatter: ['trim', 'hyphens'],
|
111
|
+
isPageHeading: 'true',
|
112
|
+
// attributes here are passed to the field element
|
113
|
+
validate: ['required', { type: 'maxword', arguments: 10 }],
|
114
|
+
attributes: [{
|
115
|
+
attribute: 'rows',
|
116
|
+
value: 8
|
117
|
+
}]
|
118
|
+
},
|
119
|
+
appealStages: {
|
120
|
+
mixin: 'select',
|
121
|
+
isPageHeading: 'true',
|
122
|
+
validate: ['required'],
|
123
|
+
options: [{
|
124
|
+
value: '',
|
125
|
+
label: 'fields.appealStages.options.null'
|
126
|
+
}].concat(staticAppealStages.getstaticAppealStages())
|
127
|
+
}
|
128
|
+
}
|
@@ -0,0 +1,99 @@
|
|
1
|
+
/* eslint-disable */
|
2
|
+
'use strict';
|
3
|
+
|
4
|
+
const CountrySelect = require('./behaviours/country-select')
|
5
|
+
const SummaryPageBehaviour = require('../../../').components.summary;
|
6
|
+
const InternationalPhoneNumber = require('./behaviours/international-number');
|
7
|
+
|
8
|
+
module.exports = {
|
9
|
+
name: 'sandbox',
|
10
|
+
steps: {
|
11
|
+
'/landing-page': {
|
12
|
+
fields: [
|
13
|
+
'landing-page-radio'
|
14
|
+
],
|
15
|
+
next: '/name',
|
16
|
+
forks: [{
|
17
|
+
target: '/build-your-own-form',
|
18
|
+
condition: {
|
19
|
+
field: 'landing-page-radio',
|
20
|
+
value: 'build-your-own-form'
|
21
|
+
}
|
22
|
+
}],
|
23
|
+
},
|
24
|
+
'/build-your-own-form': {
|
25
|
+
template: 'form-guidance-link'
|
26
|
+
},
|
27
|
+
'/name': {
|
28
|
+
fields: ['name'],
|
29
|
+
next: '/dob'
|
30
|
+
},
|
31
|
+
'/dob': {
|
32
|
+
fields: ['dateOfBirth'],
|
33
|
+
locals: { showSaveAndExit: true },
|
34
|
+
next: '/address'
|
35
|
+
},
|
36
|
+
'/address': {
|
37
|
+
fields: ['building', 'street', 'townOrCity', 'postcode'],
|
38
|
+
next: '/checkboxes'
|
39
|
+
},
|
40
|
+
'/checkboxes': {
|
41
|
+
fields: ['incomeTypes'],
|
42
|
+
next: '/radio'
|
43
|
+
},
|
44
|
+
'/radio':{
|
45
|
+
fields: ['countryOfHearing'],
|
46
|
+
forks: [{
|
47
|
+
target: '/country-select',
|
48
|
+
condition: {
|
49
|
+
field: 'landing-page-radio',
|
50
|
+
value: 'complex-form'
|
51
|
+
}
|
52
|
+
}],
|
53
|
+
next: '/email'
|
54
|
+
},
|
55
|
+
'/email': {
|
56
|
+
fields: ['email'],
|
57
|
+
next: '/phone-number'
|
58
|
+
},
|
59
|
+
'/phone-number': {
|
60
|
+
fields: ['phone'],
|
61
|
+
next: '/confirm'
|
62
|
+
},
|
63
|
+
'/country-select': {
|
64
|
+
behaviours: CountrySelect,
|
65
|
+
fields: ['countrySelect'],
|
66
|
+
next: '/text-input-area'
|
67
|
+
},
|
68
|
+
'/text-input-area': {
|
69
|
+
fields: ['complaintDetails'],
|
70
|
+
next: '/word-count'
|
71
|
+
},
|
72
|
+
'/word-count': {
|
73
|
+
fields: ['whatHappened'],
|
74
|
+
next: '/select'
|
75
|
+
},
|
76
|
+
'/select':{
|
77
|
+
fields: ['appealStages'],
|
78
|
+
next: '/confirm'
|
79
|
+
},
|
80
|
+
'/confirm': {
|
81
|
+
behaviours: [SummaryPageBehaviour, 'complete'],
|
82
|
+
sections: require('./sections/summary-data-sections'),
|
83
|
+
next: '/confirmation'
|
84
|
+
},
|
85
|
+
'/confirmation': {
|
86
|
+
backLink: false
|
87
|
+
},
|
88
|
+
'/international-phone-number': {
|
89
|
+
behaviours: InternationalPhoneNumber,
|
90
|
+
fields: [
|
91
|
+
'int-phone-number'
|
92
|
+
],
|
93
|
+
next: '/confirm'
|
94
|
+
},
|
95
|
+
'/session-timeout': {},
|
96
|
+
'/exit': {},
|
97
|
+
'/save-and-exit': {}
|
98
|
+
}
|
99
|
+
};
|
@@ -0,0 +1,189 @@
|
|
1
|
+
/* eslint max-len: 0 */
|
2
|
+
|
3
|
+
'use strict';
|
4
|
+
|
5
|
+
module.exports = {
|
6
|
+
getstaticAppealStages: function () {
|
7
|
+
return [
|
8
|
+
{ value: 'FT_IC',
|
9
|
+
label: '01. First Tier IAC Appeal - In Country Appeals',
|
10
|
+
timeLimit: {value: 14, type: 'calendar days'},
|
11
|
+
startDateLabel: 'Date refusal letter sent by HO',
|
12
|
+
rules: 'The Tribunal Procedure (First-tier tribunal) (Immigration and Asylum Chamber) Rules 2014',
|
13
|
+
ruleNumber: '19(2)',
|
14
|
+
adminAllowance: {value: 1, type: 'working day'},
|
15
|
+
country: 'All',
|
16
|
+
trigger: 'Refusal Notice',
|
17
|
+
sortCode: 10
|
18
|
+
},
|
19
|
+
|
20
|
+
{ value: 'FT_OOC_1',
|
21
|
+
label: '02. First Tier IAC Appeal - Out of Country Appeals where the appellant must leave the UK before appealing',
|
22
|
+
timeLimit: {value: 28, type: 'calendar days'},
|
23
|
+
startDateLabel: 'Appellant\'s date of departure',
|
24
|
+
rules: 'The Tribunal Procedure (First-tier tribunal) (Immigration and Asylum Chamber) Rules 2014',
|
25
|
+
ruleNumber: '19(3)(a)',
|
26
|
+
adminAllowance: {value: 0, type: 'working days'},
|
27
|
+
country: 'All',
|
28
|
+
trigger: 'Refusal Notice',
|
29
|
+
sortCode: 20
|
30
|
+
},
|
31
|
+
|
32
|
+
{ value: 'FT_OOC_2',
|
33
|
+
label: '03. First Tier IAC Appeal - Other out of Country Appeals (e.g Voluntary Departure)',
|
34
|
+
timeLimit: {value: 28, type: 'calendar days'},
|
35
|
+
startDateLabel: 'Date of receipt of the refusal letter',
|
36
|
+
rules: 'The Tribunal Procedure (First-tier tribunal) (Immigration and Asylum Chamber) Rules 2014',
|
37
|
+
ruleNumber: '19(3)(b)',
|
38
|
+
adminAllowance: {value: 1, type: 'working days'},
|
39
|
+
country: 'All',
|
40
|
+
trigger: 'Refusal Notice',
|
41
|
+
sortCode: 30
|
42
|
+
},
|
43
|
+
|
44
|
+
{ value: 'FT_IC_FAST',
|
45
|
+
label: '04. First Tier IAC Appeal - In Country Detained Fast Track',
|
46
|
+
timeLimit: {value: 2, type: 'working days'},
|
47
|
+
startDateLabel: 'Date when appellant was provided notice of decision',
|
48
|
+
rules: 'The Tribunal Procedure (First-tier tribunal) (Immigration and Asylum Chamber) Rules 2014 Schedule The Fast Track Rules',
|
49
|
+
ruleNumber: '5(1)',
|
50
|
+
adminAllowance: {value: 1, type: 'working day'},
|
51
|
+
country: 'All',
|
52
|
+
trigger: 'Refusal Notice',
|
53
|
+
sortCode: 40
|
54
|
+
},
|
55
|
+
|
56
|
+
{ value: 'FT_UT_IC',
|
57
|
+
label: '05. First Tier IAC PTA to the UT - In Country',
|
58
|
+
timeLimit: {value: 14, type: 'calendar days'},
|
59
|
+
startDateLabel: 'Date written reasons for the decision sent',
|
60
|
+
rules: 'The Tribunal Procedure (First-tier tribunal) (Immigration and Asylum Chamber) Rules 2014',
|
61
|
+
ruleNumber: '33(2)',
|
62
|
+
adminAllowance: {value: 1, type: 'working day'},
|
63
|
+
country: 'All',
|
64
|
+
trigger: 'IA60 first tier dismissed',
|
65
|
+
sortCode: 50
|
66
|
+
},
|
67
|
+
|
68
|
+
{ value: 'FT_UT_OOC',
|
69
|
+
label: '06. First Tier IAC PTA to the UT - Out of Country',
|
70
|
+
timeLimit: {value: 28, type: 'calendar days'},
|
71
|
+
startDateLabel: 'Date written reasons for the decision sent',
|
72
|
+
rules: 'The Tribunal Procedure (First-tier tribunal) (Immigration and Asylum Chamber) Rules 2014',
|
73
|
+
ruleNumber: '33(3)',
|
74
|
+
adminAllowance: {value: 1, type: 'working day'},
|
75
|
+
country: 'All',
|
76
|
+
trigger: 'IA60 first tier dismissed',
|
77
|
+
sortCode: 60
|
78
|
+
},
|
79
|
+
|
80
|
+
{ value: 'FT_UT_FAST',
|
81
|
+
label: '07. First Tier IAC PTA to the UT - Detained Fast Track',
|
82
|
+
timeLimit: {value: 3, type: 'working days'},
|
83
|
+
startDateLabel: 'Date when appellant was provided notice of decision',
|
84
|
+
rules: 'The Tribunal Procedure (First-tier tribunal) (Immigration and Asylum Chamber) Rules 2014 Schedule The Fast Track Rules',
|
85
|
+
ruleNumber: '11',
|
86
|
+
adminAllowance: {value: 1, type: 'working day'},
|
87
|
+
country: 'All',
|
88
|
+
trigger: 'IA60 first tier dismissed',
|
89
|
+
sortCode: 70
|
90
|
+
},
|
91
|
+
|
92
|
+
{ value: 'UT_IC',
|
93
|
+
label: '08. Upper Tribunal IAC PTA - In Country',
|
94
|
+
timeLimit: {value: 14, type: 'calendar days'},
|
95
|
+
startDateLabel: 'Date when the FtT refused FTPA',
|
96
|
+
rules: 'The Tribunal Procedure (Upper Tribunal) Rules 2008',
|
97
|
+
ruleNumber: '21(3)(a)(aa)(i)',
|
98
|
+
adminAllowance: {value: 1, type: 'working day'},
|
99
|
+
country: 'All',
|
100
|
+
trigger: 'IA67 first tier permission to appeal refused',
|
101
|
+
sortCode: 80
|
102
|
+
},
|
103
|
+
|
104
|
+
{ value: 'UT_OOC',
|
105
|
+
label: '09. Upper Tribunal IAC PTA - Out of Country',
|
106
|
+
timeLimit: {value: 1, type: 'calendar month'},
|
107
|
+
startDateLabel: 'Date when the FtT refused FTPA',
|
108
|
+
rules: 'The Tribunal Procedure (Upper Tribunal) Rules 2008',
|
109
|
+
ruleNumber: '21(3)(b)',
|
110
|
+
adminAllowance: {value: 1, type: 'working day'},
|
111
|
+
country: 'All',
|
112
|
+
trigger: 'IA67 first tier permission to appeal refused',
|
113
|
+
sortCode: 90
|
114
|
+
},
|
115
|
+
|
116
|
+
{ value: 'UT_IAC_JR',
|
117
|
+
label: '10. Upper Tribunal IAC - Judicial Review',
|
118
|
+
timeLimit: {value: 3, type: 'calendar months'},
|
119
|
+
startDateLabel: 'Date of decision of the First Tier Tribunal or Home Office',
|
120
|
+
rules: 'The Tribunal Procedure (Upper Tribunal) Rules 2008',
|
121
|
+
ruleNumber: '28(2)',
|
122
|
+
adminAllowance: {value: 0, type: 'working days'},
|
123
|
+
country: 'All',
|
124
|
+
trigger: 'n/a',
|
125
|
+
sortCode: 100
|
126
|
+
},
|
127
|
+
|
128
|
+
{ value: 'UT_IAC_IC',
|
129
|
+
label: '11. Upper Tribunal IAC - In Country PTA to review UT determination',
|
130
|
+
timeLimit: {value: 12, type: 'calendar days'},
|
131
|
+
startDateLabel: 'Date when appellant was sent notice of decision',
|
132
|
+
rules: 'The Tribunal Procedure (Upper Tribunal) Rules 2008',
|
133
|
+
ruleNumber: '44(3B)(a)(i)',
|
134
|
+
adminAllowance: {value: 1, type: 'working day'},
|
135
|
+
country: 'All',
|
136
|
+
trigger: 'IA150 - Upper Tier determination (dismissed)',
|
137
|
+
sortCode: 110
|
138
|
+
},
|
139
|
+
|
140
|
+
{ value: 'UT_IAC_OOC',
|
141
|
+
label: '12. Upper Tribunal IAC - Out of Country PTA to review UT determination',
|
142
|
+
timeLimit: {value: 38, type: 'calendar days'},
|
143
|
+
startDateLabel: 'Date when appellant was sent notice of decision',
|
144
|
+
rules: 'The Tribunal Procedure (Upper Tribunal) Rules 2008',
|
145
|
+
ruleNumber: '44(3B)(b)',
|
146
|
+
adminAllowance: {value: 1, type: 'working day'},
|
147
|
+
country: 'All',
|
148
|
+
trigger: 'IA150 - Upper Tier determination (dismissed)',
|
149
|
+
sortCode: 120
|
150
|
+
},
|
151
|
+
|
152
|
+
{ value: 'COA_IAC',
|
153
|
+
label: '13. Court of Appeal via IAC',
|
154
|
+
timeLimit: {value: 28 + 2, type: 'calendar days'},
|
155
|
+
startDateLabel: 'Date when appellant was sent notice of decision',
|
156
|
+
rules: 'Civil Procedure Rules',
|
157
|
+
ruleNumber: '52.4',
|
158
|
+
adminAllowance: {value: 1, type: 'working days'},
|
159
|
+
country: ['England & Wales'],
|
160
|
+
trigger: 'IA157 PTA to the CoA refused',
|
161
|
+
sortCode: 130
|
162
|
+
},
|
163
|
+
|
164
|
+
{ value: 'COS_IAC',
|
165
|
+
label: '14. Court of Sessions via IAC',
|
166
|
+
timeLimit: {value: 42 + 1, type: 'calendar days'},
|
167
|
+
startDateLabel: 'Date when appellant was sent notice of decision',
|
168
|
+
rules: 'Civil Procedure Rules',
|
169
|
+
ruleNumber: 'Rule 41.20',
|
170
|
+
adminAllowance: {value: 1, type: 'working days'},
|
171
|
+
country: ['Scotland', 'Northern Ireland'],
|
172
|
+
trigger: 'IA157 PTA to the CoA refused',
|
173
|
+
sortCode: 140
|
174
|
+
},
|
175
|
+
|
176
|
+
{ value: 'COA_DIRECT',
|
177
|
+
label: '15. Court of Appeal Direct',
|
178
|
+
timeLimit: {value: 7 + 2, type: 'calendar days'},
|
179
|
+
startDateLabel: 'Date when appellant was sent notice of decision',
|
180
|
+
rules: 'Civil Procedure Rules',
|
181
|
+
ruleNumber: '52.3',
|
182
|
+
adminAllowance: {value: 1, type: 'working days'},
|
183
|
+
country: 'All',
|
184
|
+
trigger: 'IA157 PTA to the CoA refused',
|
185
|
+
sortCode: 150
|
186
|
+
}
|
187
|
+
];
|
188
|
+
}
|
189
|
+
};
|