@defra/forms-engine-plugin 4.7.2 → 4.7.3
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/.server/client/javascripts/geospatial-map.d.ts +6 -6
- package/.server/client/javascripts/geospatial-map.js +3 -3
- package/.server/client/javascripts/location-map.d.ts +1 -1
- package/.server/client/javascripts/location-map.js +1 -1
- package/.server/client/javascripts/map.d.ts +1 -1
- package/.server/client/javascripts/map.js +1 -1
- package/.server/client/javascripts/shared.d.ts +7 -7
- package/.server/server/index.d.ts +1 -1
- package/.server/server/plugins/crumb.d.ts +1 -1
- package/.server/server/plugins/engine/beta/form-context.d.ts +6 -6
- package/.server/server/plugins/engine/components/AutocompleteField.d.ts +4 -4
- package/.server/server/plugins/engine/components/CheckboxesField.d.ts +2 -2
- package/.server/server/plugins/engine/components/CheckboxesField.js +2 -2
- package/.server/server/plugins/engine/components/CheckboxesField.js.map +1 -1
- package/.server/server/plugins/engine/components/ComponentBase.d.ts +5 -5
- package/.server/server/plugins/engine/components/ComponentCollection.d.ts +8 -8
- package/.server/server/plugins/engine/components/DatePartsField.d.ts +11 -11
- package/.server/server/plugins/engine/components/DeclarationField.d.ts +3 -3
- package/.server/server/plugins/engine/components/Details.d.ts +1 -1
- package/.server/server/plugins/engine/components/EastingNorthingField.d.ts +22 -22
- package/.server/server/plugins/engine/components/EmailAddressField.d.ts +4 -4
- package/.server/server/plugins/engine/components/FileUploadField.d.ts +3 -3
- package/.server/server/plugins/engine/components/FormComponent.d.ts +10 -10
- package/.server/server/plugins/engine/components/GeospatialField.d.ts +6 -6
- package/.server/server/plugins/engine/components/HiddenField.d.ts +2 -2
- package/.server/server/plugins/engine/components/Html.d.ts +1 -1
- package/.server/server/plugins/engine/components/InsetText.d.ts +1 -1
- package/.server/server/plugins/engine/components/LatLongField.d.ts +22 -22
- package/.server/server/plugins/engine/components/List.d.ts +8 -8
- package/.server/server/plugins/engine/components/ListFormComponent.d.ts +10 -10
- package/.server/server/plugins/engine/components/LocationFieldBase.d.ts +6 -6
- package/.server/server/plugins/engine/components/LocationFieldHelpers.d.ts +14 -14
- package/.server/server/plugins/engine/components/Markdown.d.ts +1 -1
- package/.server/server/plugins/engine/components/MonthYearField.d.ts +11 -11
- package/.server/server/plugins/engine/components/MultilineTextField.d.ts +5 -5
- package/.server/server/plugins/engine/components/NationalGridFieldNumberField.d.ts +1 -1
- package/.server/server/plugins/engine/components/NumberField.d.ts +3 -3
- package/.server/server/plugins/engine/components/OsGridRefField.d.ts +1 -1
- package/.server/server/plugins/engine/components/PaymentField.d.ts +12 -12
- package/.server/server/plugins/engine/components/RadiosField.d.ts +1 -1
- package/.server/server/plugins/engine/components/SelectField.d.ts +4 -4
- package/.server/server/plugins/engine/components/SelectionControlField.d.ts +10 -10
- package/.server/server/plugins/engine/components/TelephoneNumberField.d.ts +4 -4
- package/.server/server/plugins/engine/components/TextField.d.ts +2 -2
- package/.server/server/plugins/engine/components/UkAddressField.d.ts +11 -11
- package/.server/server/plugins/engine/components/YesNoField.d.ts +2 -2
- package/.server/server/plugins/engine/components/helpers/__stubs__/geospatial.d.ts +1 -1
- package/.server/server/plugins/engine/components/helpers/components.d.ts +5 -5
- package/.server/server/plugins/engine/components/helpers/geospatial.d.ts +1 -1
- package/.server/server/plugins/engine/components/index.d.ts +27 -27
- package/.server/server/plugins/engine/components/types.d.ts +1 -1
- package/.server/server/plugins/engine/configureEnginePlugin.d.ts +4 -4
- package/.server/server/plugins/engine/date-helper.d.ts +1 -1
- package/.server/server/plugins/engine/helpers.d.ts +8 -8
- package/.server/server/plugins/engine/index.d.ts +5 -5
- package/.server/server/plugins/engine/models/FormModel.d.ts +6 -6
- package/.server/server/plugins/engine/models/SummaryViewModel.d.ts +6 -6
- package/.server/server/plugins/engine/models/index.d.ts +2 -2
- package/.server/server/plugins/engine/models/types.d.ts +4 -4
- package/.server/server/plugins/engine/options.d.ts +1 -1
- package/.server/server/plugins/engine/options.js +1 -1
- package/.server/server/plugins/engine/options.test.js +1 -1
- package/.server/server/plugins/engine/outputFormatters/adapter/v1.d.ts +4 -4
- package/.server/server/plugins/engine/outputFormatters/human/v1.d.ts +4 -4
- package/.server/server/plugins/engine/outputFormatters/index.d.ts +5 -5
- package/.server/server/plugins/engine/outputFormatters/machine/v1.d.ts +4 -4
- package/.server/server/plugins/engine/outputFormatters/machine/v2.d.ts +4 -4
- package/.server/server/plugins/engine/pageControllers/FileUploadPageController.d.ts +8 -8
- package/.server/server/plugins/engine/pageControllers/PageController.d.ts +6 -6
- package/.server/server/plugins/engine/pageControllers/QuestionPageController.d.ts +8 -8
- package/.server/server/plugins/engine/pageControllers/RepeatPageController.d.ts +5 -5
- package/.server/server/plugins/engine/pageControllers/StartPageController.d.ts +4 -4
- package/.server/server/plugins/engine/pageControllers/StatusPageController.d.ts +4 -4
- package/.server/server/plugins/engine/pageControllers/SummaryPageController.d.ts +5 -5
- package/.server/server/plugins/engine/pageControllers/TerminalPageController.d.ts +3 -3
- package/.server/server/plugins/engine/pageControllers/__stubs__/request.d.ts +2 -2
- package/.server/server/plugins/engine/pageControllers/errors.d.ts +1 -1
- package/.server/server/plugins/engine/pageControllers/helpers/pages.d.ts +2 -2
- package/.server/server/plugins/engine/pageControllers/helpers/state.d.ts +5 -5
- package/.server/server/plugins/engine/pageControllers/helpers/state.js +1 -1
- package/.server/server/plugins/engine/pageControllers/helpers/state.js.map +1 -1
- package/.server/server/plugins/engine/pageControllers/helpers/submission.d.ts +1 -1
- package/.server/server/plugins/engine/pageControllers/index.d.ts +7 -7
- package/.server/server/plugins/engine/plugin.d.ts +1 -1
- package/.server/server/plugins/engine/routes/file-upload.d.ts +1 -1
- package/.server/server/plugins/engine/routes/index.d.ts +3 -3
- package/.server/server/plugins/engine/routes/payment-helper.d.ts +3 -3
- package/.server/server/plugins/engine/routes/payment-helper.js +2 -2
- package/.server/server/plugins/engine/routes/payment.js +5 -5
- package/.server/server/plugins/engine/routes/payment.test.js +1 -1
- package/.server/server/plugins/engine/routes/questions.d.ts +2 -2
- package/.server/server/plugins/engine/routes/repeaters/item-delete.d.ts +2 -2
- package/.server/server/plugins/engine/routes/repeaters/summary.d.ts +2 -2
- package/.server/server/plugins/engine/services/index.d.ts +3 -3
- package/.server/server/plugins/engine/services/notifyService.d.ts +4 -4
- package/.server/server/plugins/engine/services/uploadService.d.ts +2 -2
- package/.server/server/plugins/engine/services/uploadService.js +1 -1
- package/.server/server/plugins/engine/types/index.d.ts +10 -10
- package/.server/server/plugins/engine/types/schema.d.ts +1 -1
- package/.server/server/plugins/engine/types.d.ts +25 -16
- package/.server/server/plugins/engine/types.js.map +1 -1
- package/.server/server/plugins/engine/validationHelpers.d.ts +2 -2
- package/.server/server/plugins/engine/vision.d.ts +1 -1
- package/.server/server/plugins/map/index.d.ts +1 -1
- package/.server/server/plugins/map/index.js +1 -1
- package/.server/server/plugins/map/routes/get-os-token.d.ts +11 -1
- package/.server/server/plugins/map/routes/get-os-token.js +12 -2
- package/.server/server/plugins/map/routes/get-os-token.js.map +1 -1
- package/.server/server/plugins/map/routes/index.d.ts +4 -4
- package/.server/server/plugins/map/routes/index.js +3 -2
- package/.server/server/plugins/map/routes/index.js.map +1 -1
- package/.server/server/plugins/map/service.d.ts +1 -1
- package/.server/server/plugins/map/service.js +5 -2
- package/.server/server/plugins/map/service.js.map +1 -1
- package/.server/server/plugins/map/test/__stubs__/find.d.ts +1 -1
- package/.server/server/plugins/map/test/__stubs__/find.js +1 -1
- package/.server/server/plugins/nunjucks/context.d.ts +2 -2
- package/.server/server/plugins/nunjucks/context.js +2 -2
- package/.server/server/plugins/nunjucks/context.test.js +1 -1
- package/.server/server/plugins/nunjucks/enviroment.test.js +1 -1
- package/.server/server/plugins/nunjucks/environment.d.ts +3 -3
- package/.server/server/plugins/nunjucks/environment.js +3 -3
- package/.server/server/plugins/nunjucks/filters/answer.d.ts +1 -1
- package/.server/server/plugins/nunjucks/filters/answer.js +2 -2
- package/.server/server/plugins/nunjucks/filters/answer.test.js +1 -1
- package/.server/server/plugins/nunjucks/filters/evaluate.d.ts +1 -1
- package/.server/server/plugins/nunjucks/filters/evaluate.js +1 -1
- package/.server/server/plugins/nunjucks/filters/field.d.ts +1 -1
- package/.server/server/plugins/nunjucks/filters/field.js +1 -1
- package/.server/server/plugins/nunjucks/filters/field.test.js +1 -1
- package/.server/server/plugins/nunjucks/filters/href.d.ts +1 -1
- package/.server/server/plugins/nunjucks/filters/href.js +1 -1
- package/.server/server/plugins/nunjucks/filters/href.test.js +1 -1
- package/.server/server/plugins/nunjucks/filters/index.d.ts +8 -8
- package/.server/server/plugins/nunjucks/filters/page.d.ts +1 -1
- package/.server/server/plugins/nunjucks/filters/page.js +1 -1
- package/.server/server/plugins/nunjucks/filters/page.test.js +1 -1
- package/.server/server/plugins/nunjucks/index.d.ts +3 -3
- package/.server/server/plugins/nunjucks/render.d.ts +2 -2
- package/.server/server/plugins/nunjucks/render.js +1 -1
- package/.server/server/plugins/nunjucks/types.d.ts +1 -1
- package/.server/server/plugins/nunjucks/types.js +1 -1
- package/.server/server/plugins/payment/helper.d.ts +2 -2
- package/.server/server/plugins/payment/helper.js +1 -1
- package/.server/server/plugins/payment/service.d.ts +3 -3
- package/.server/server/plugins/payment/service.js +1 -1
- package/.server/server/plugins/postcode-lookup/index.d.ts +1 -1
- package/.server/server/plugins/postcode-lookup/index.js +1 -1
- package/.server/server/plugins/postcode-lookup/models/index.d.ts +6 -6
- package/.server/server/plugins/postcode-lookup/models/index.js +1 -1
- package/.server/server/plugins/postcode-lookup/routes/index.d.ts +6 -6
- package/.server/server/plugins/postcode-lookup/routes/index.js +15 -15
- package/.server/server/plugins/postcode-lookup/routes/index.js.map +1 -1
- package/.server/server/plugins/postcode-lookup/service.d.ts +1 -1
- package/.server/server/plugins/postcode-lookup/service.js +5 -2
- package/.server/server/plugins/postcode-lookup/service.js.map +1 -1
- package/.server/server/plugins/postcode-lookup/types.js +1 -1
- package/.server/server/routes/index.d.ts +2 -2
- package/.server/server/routes/types.d.ts +1 -1
- package/.server/server/schemas/index.d.ts +2 -2
- package/.server/server/services/cacheService.d.ts +8 -8
- package/.server/server/services/cacheService.js +2 -5
- package/.server/server/services/cacheService.js.map +1 -1
- package/.server/server/services/httpService.test.js +1 -1
- package/.server/server/services/index.d.ts +1 -1
- package/.server/server/types.d.ts +7 -7
- package/.server/server/utils/file-form-service.d.ts +2 -2
- package/.server/server/utils/file-form-service.js +1 -1
- package/package.json +8 -4
- package/src/client/javascripts/application.js +1 -1
- package/src/client/javascripts/geospatial-map.js +4 -4
- package/src/client/javascripts/location-map.js +2 -2
- package/src/client/javascripts/map.js +3 -3
- package/src/client/javascripts/shared.js +7 -7
- package/src/index.ts +3 -3
- package/src/server/common/helpers/logging/logger-options.ts +1 -1
- package/src/server/common/helpers/logging/logger.ts +1 -1
- package/src/server/common/helpers/logging/request-logger.ts +1 -1
- package/src/server/common/helpers/logging/request-tracing.js +1 -1
- package/src/server/common/helpers/redis-client.js +2 -2
- package/src/server/index.ts +13 -13
- package/src/server/plugins/crumb.ts +2 -2
- package/src/server/plugins/engine/beta/form-context.ts +9 -9
- package/src/server/plugins/engine/components/AutocompleteField.ts +3 -3
- package/src/server/plugins/engine/components/CheckboxesField.ts +7 -8
- package/src/server/plugins/engine/components/ComponentBase.ts +5 -5
- package/src/server/plugins/engine/components/ComponentCollection.ts +9 -9
- package/src/server/plugins/engine/components/DatePartsField.ts +8 -8
- package/src/server/plugins/engine/components/DeclarationField.ts +3 -3
- package/src/server/plugins/engine/components/Details.ts +1 -1
- package/src/server/plugins/engine/components/EastingNorthingField.ts +9 -9
- package/src/server/plugins/engine/components/EmailAddressField.ts +3 -3
- package/src/server/plugins/engine/components/FileUploadField.ts +6 -6
- package/src/server/plugins/engine/components/FormComponent.ts +4 -4
- package/src/server/plugins/engine/components/GeospatialField.ts +5 -5
- package/src/server/plugins/engine/components/HiddenField.ts +4 -4
- package/src/server/plugins/engine/components/Html.ts +1 -1
- package/src/server/plugins/engine/components/InsetText.ts +1 -1
- package/src/server/plugins/engine/components/LatLongField.ts +9 -9
- package/src/server/plugins/engine/components/List.ts +2 -2
- package/src/server/plugins/engine/components/ListFormComponent.ts +4 -4
- package/src/server/plugins/engine/components/LocationFieldBase.ts +5 -5
- package/src/server/plugins/engine/components/LocationFieldHelpers.ts +5 -5
- package/src/server/plugins/engine/components/Markdown.ts +1 -1
- package/src/server/plugins/engine/components/MonthYearField.ts +8 -8
- package/src/server/plugins/engine/components/MultilineTextField.ts +4 -4
- package/src/server/plugins/engine/components/NationalGridFieldNumberField.ts +2 -2
- package/src/server/plugins/engine/components/NumberField.ts +3 -3
- package/src/server/plugins/engine/components/OsGridRefField.ts +2 -2
- package/src/server/plugins/engine/components/PaymentField.ts +8 -8
- package/src/server/plugins/engine/components/RadiosField.ts +1 -1
- package/src/server/plugins/engine/components/SelectField.ts +2 -2
- package/src/server/plugins/engine/components/SelectionControlField.ts +4 -4
- package/src/server/plugins/engine/components/TelephoneNumberField.ts +4 -4
- package/src/server/plugins/engine/components/TextField.ts +3 -3
- package/src/server/plugins/engine/components/UkAddressField.ts +7 -7
- package/src/server/plugins/engine/components/YesNoField.ts +5 -5
- package/src/server/plugins/engine/components/helpers/__stubs__/geospatial.ts +1 -1
- package/src/server/plugins/engine/components/helpers/components.ts +8 -8
- package/src/server/plugins/engine/components/helpers/geospatial.ts +1 -1
- package/src/server/plugins/engine/components/index.ts +27 -27
- package/src/server/plugins/engine/components/types.ts +1 -1
- package/src/server/plugins/engine/configureEnginePlugin.ts +10 -10
- package/src/server/plugins/engine/date-helper.ts +1 -1
- package/src/server/plugins/engine/helpers.ts +8 -8
- package/src/server/plugins/engine/index.ts +8 -8
- package/src/server/plugins/engine/models/FormModel.ts +15 -15
- package/src/server/plugins/engine/models/SummaryViewModel.ts +10 -10
- package/src/server/plugins/engine/models/index.ts +2 -2
- package/src/server/plugins/engine/models/types.ts +4 -4
- package/src/server/plugins/engine/options.js +3 -3
- package/src/server/plugins/engine/outputFormatters/adapter/v1.ts +6 -6
- package/src/server/plugins/engine/outputFormatters/human/v1.ts +9 -9
- package/src/server/plugins/engine/outputFormatters/index.ts +8 -8
- package/src/server/plugins/engine/outputFormatters/machine/v1.ts +7 -7
- package/src/server/plugins/engine/outputFormatters/machine/v2.ts +6 -6
- package/src/server/plugins/engine/pageControllers/FileUploadPageController.ts +9 -9
- package/src/server/plugins/engine/pageControllers/PageController.ts +7 -7
- package/src/server/plugins/engine/pageControllers/QuestionPageController.ts +13 -13
- package/src/server/plugins/engine/pageControllers/RepeatPageController.ts +6 -6
- package/src/server/plugins/engine/pageControllers/StartPageController.ts +3 -3
- package/src/server/plugins/engine/pageControllers/StatusPageController.ts +5 -5
- package/src/server/plugins/engine/pageControllers/SummaryPageController.ts +12 -12
- package/src/server/plugins/engine/pageControllers/TerminalPageController.ts +3 -3
- package/src/server/plugins/engine/pageControllers/__stubs__/request.ts +3 -3
- package/src/server/plugins/engine/pageControllers/__stubs__/server.ts +2 -2
- package/src/server/plugins/engine/pageControllers/errors.ts +1 -1
- package/src/server/plugins/engine/pageControllers/helpers/pages.ts +2 -2
- package/src/server/plugins/engine/pageControllers/helpers/state.ts +9 -9
- package/src/server/plugins/engine/pageControllers/helpers/submission.ts +5 -5
- package/src/server/plugins/engine/pageControllers/index.ts +7 -7
- package/src/server/plugins/engine/pageControllers/validationOptions.ts +1 -1
- package/src/server/plugins/engine/plugin.ts +14 -14
- package/src/server/plugins/engine/routes/file-upload.ts +2 -2
- package/src/server/plugins/engine/routes/index.ts +10 -10
- package/src/server/plugins/engine/routes/payment-helper.js +4 -4
- package/src/server/plugins/engine/routes/payment.js +9 -9
- package/src/server/plugins/engine/routes/questions.ts +10 -10
- package/src/server/plugins/engine/routes/repeaters/item-delete.ts +6 -6
- package/src/server/plugins/engine/routes/repeaters/summary.ts +5 -5
- package/src/server/plugins/engine/services/formSubmissionService.js +2 -2
- package/src/server/plugins/engine/services/index.js +3 -3
- package/src/server/plugins/engine/services/localFormsService.js +2 -2
- package/src/server/plugins/engine/services/notifyService.ts +9 -9
- package/src/server/plugins/engine/services/uploadService.js +3 -3
- package/src/server/plugins/engine/types/index.ts +10 -10
- package/src/server/plugins/engine/types/schema.ts +2 -2
- package/src/server/plugins/engine/types.ts +22 -17
- package/src/server/plugins/engine/validationHelpers.ts +3 -3
- package/src/server/plugins/engine/vision.ts +3 -3
- package/src/server/plugins/map/index.js +2 -2
- package/src/server/plugins/map/routes/get-os-token.js +15 -3
- package/src/server/plugins/map/routes/index.js +7 -5
- package/src/server/plugins/map/service.js +7 -4
- package/src/server/plugins/map/test/__stubs__/find.js +1 -1
- package/src/server/plugins/nunjucks/context.js +5 -5
- package/src/server/plugins/nunjucks/environment.js +6 -6
- package/src/server/plugins/nunjucks/filters/answer.js +3 -3
- package/src/server/plugins/nunjucks/filters/evaluate.js +2 -2
- package/src/server/plugins/nunjucks/filters/field.js +1 -1
- package/src/server/plugins/nunjucks/filters/href.js +2 -2
- package/src/server/plugins/nunjucks/filters/index.js +8 -8
- package/src/server/plugins/nunjucks/filters/page.js +1 -1
- package/src/server/plugins/nunjucks/index.js +3 -3
- package/src/server/plugins/nunjucks/plugin.js +3 -3
- package/src/server/plugins/nunjucks/render.js +2 -2
- package/src/server/plugins/nunjucks/types.js +1 -1
- package/src/server/plugins/payment/helper.js +2 -2
- package/src/server/plugins/payment/service.js +4 -4
- package/src/server/plugins/postcode-lookup/index.js +2 -2
- package/src/server/plugins/postcode-lookup/models/index.js +3 -3
- package/src/server/plugins/postcode-lookup/routes/index.js +24 -14
- package/src/server/plugins/postcode-lookup/service.js +7 -4
- package/src/server/plugins/postcode-lookup/types.js +1 -1
- package/src/server/plugins/session.ts +1 -1
- package/src/server/routes/index.ts +2 -2
- package/src/server/routes/public.ts +1 -1
- package/src/server/routes/types.ts +1 -1
- package/src/server/schemas/index.ts +2 -2
- package/src/server/secure-context.js +1 -1
- package/src/server/services/cacheService.ts +13 -18
- package/src/server/services/httpService.ts +1 -1
- package/src/server/services/index.ts +1 -1
- package/src/server/types.ts +7 -7
- package/src/server/utils/notify.ts +2 -2
- package/src/server/utils/utils.js +1 -1
- package/src/typings/hapi/index.d.ts +4 -4
- package/src/typings/joi/index.d.ts +1 -1
- package/src/server/common/helpers/logging/logger-options.test.ts +0 -50
- package/src/server/index.test.ts +0 -644
- package/src/server/plugins/engine/beta/form-context.test.ts +0 -373
- package/src/server/plugins/engine/components/AutocompleteField.test.ts +0 -362
- package/src/server/plugins/engine/components/CheckboxesField.test.ts +0 -486
- package/src/server/plugins/engine/components/DatePartsField.test.ts +0 -927
- package/src/server/plugins/engine/components/DeclarationField.test.ts +0 -560
- package/src/server/plugins/engine/components/Details.test.ts +0 -49
- package/src/server/plugins/engine/components/EastingNorthingField.test.ts +0 -727
- package/src/server/plugins/engine/components/EmailAddressField.test.ts +0 -445
- package/src/server/plugins/engine/components/FileUploadField.test.ts +0 -1079
- package/src/server/plugins/engine/components/GeospatialField.test.ts +0 -380
- package/src/server/plugins/engine/components/HiddenField.test.ts +0 -188
- package/src/server/plugins/engine/components/Html.test.ts +0 -48
- package/src/server/plugins/engine/components/InsetText.test.ts +0 -48
- package/src/server/plugins/engine/components/LatLongField.test.ts +0 -898
- package/src/server/plugins/engine/components/List.test.ts +0 -79
- package/src/server/plugins/engine/components/LocationFieldBase.test.ts +0 -253
- package/src/server/plugins/engine/components/LocationFieldHelpers.test.ts +0 -743
- package/src/server/plugins/engine/components/Markdown.test.ts +0 -48
- package/src/server/plugins/engine/components/MonthYearField.test.ts +0 -617
- package/src/server/plugins/engine/components/MultilineTextField.test.ts +0 -647
- package/src/server/plugins/engine/components/NationalGridFieldNumberField.test.ts +0 -449
- package/src/server/plugins/engine/components/NumberField.test.ts +0 -723
- package/src/server/plugins/engine/components/OsGridRefField.test.ts +0 -460
- package/src/server/plugins/engine/components/PaymentField.test.ts +0 -745
- package/src/server/plugins/engine/components/RadiosField.test.ts +0 -297
- package/src/server/plugins/engine/components/SelectField.test.ts +0 -289
- package/src/server/plugins/engine/components/TelephoneNumberField.test.ts +0 -384
- package/src/server/plugins/engine/components/TextField.test.ts +0 -521
- package/src/server/plugins/engine/components/UkAddressField.test.ts +0 -806
- package/src/server/plugins/engine/components/YesNoField.test.ts +0 -256
- package/src/server/plugins/engine/components/helpers/components.test.ts +0 -399
- package/src/server/plugins/engine/components/helpers/geospatial.test.js +0 -55
- package/src/server/plugins/engine/components/helpers/helpers.test.ts +0 -219
- package/src/server/plugins/engine/date-helper.test.ts +0 -47
- package/src/server/plugins/engine/helpers.test.ts +0 -868
- package/src/server/plugins/engine/models/FormModel.test.ts +0 -725
- package/src/server/plugins/engine/models/SummaryViewModel.test.ts +0 -472
- package/src/server/plugins/engine/options.test.js +0 -63
- package/src/server/plugins/engine/outputFormatters/adapter/v1.location.test.ts +0 -356
- package/src/server/plugins/engine/outputFormatters/adapter/v1.test.ts +0 -871
- package/src/server/plugins/engine/outputFormatters/human/v1.payment.test.ts +0 -147
- package/src/server/plugins/engine/outputFormatters/human/v1.test.ts +0 -145
- package/src/server/plugins/engine/outputFormatters/index.test.ts +0 -17
- package/src/server/plugins/engine/outputFormatters/machine/v1.test.ts +0 -268
- package/src/server/plugins/engine/outputFormatters/machine/v2.location.test.ts +0 -341
- package/src/server/plugins/engine/outputFormatters/machine/v2.payment.test.ts +0 -115
- package/src/server/plugins/engine/outputFormatters/machine/v2.test.ts +0 -311
- package/src/server/plugins/engine/pageControllers/FileUploadPageController.test.ts +0 -1372
- package/src/server/plugins/engine/pageControllers/PageController.test.ts +0 -246
- package/src/server/plugins/engine/pageControllers/QuestionPageController.test.ts +0 -1686
- package/src/server/plugins/engine/pageControllers/RepeatPageController.test.ts +0 -279
- package/src/server/plugins/engine/pageControllers/StartPageController.test.ts +0 -32
- package/src/server/plugins/engine/pageControllers/StatusPageController.test.ts +0 -32
- package/src/server/plugins/engine/pageControllers/SummaryPageController.test.ts +0 -89
- package/src/server/plugins/engine/pageControllers/TerminalController.test.ts +0 -37
- package/src/server/plugins/engine/pageControllers/errors.test.ts +0 -78
- package/src/server/plugins/engine/pageControllers/helpers/helpers.test.ts +0 -182
- package/src/server/plugins/engine/pageControllers/helpers/state.test.ts +0 -359
- package/src/server/plugins/engine/pageControllers/helpers/submission.test.ts +0 -373
- package/src/server/plugins/engine/referenceNumbers.test.ts +0 -74
- package/src/server/plugins/engine/routes/index.test.ts +0 -332
- package/src/server/plugins/engine/routes/payment-helper.test.js +0 -136
- package/src/server/plugins/engine/routes/payment.test.js +0 -180
- package/src/server/plugins/engine/routes/questions.test.ts +0 -502
- package/src/server/plugins/engine/routes/repeaters/item-delete.test.ts +0 -83
- package/src/server/plugins/engine/routes/repeaters/summary.test.ts +0 -75
- package/src/server/plugins/engine/services/formsService.test.js +0 -26
- package/src/server/plugins/engine/services/notifyService.test.ts +0 -310
- package/src/server/plugins/engine/types/schema.test.ts +0 -234
- package/src/server/plugins/engine/views/components/service-banner/template.test.js +0 -43
- package/src/server/plugins/engine/views/components/tag-env/template.test.js +0 -28
- package/src/server/plugins/engine/views/partials/preview-banner.test.js +0 -122
- package/src/server/plugins/map/routes/get-os-token.test.js +0 -55
- package/src/server/plugins/map/service.test.js +0 -144
- package/src/server/plugins/nunjucks/context.test.js +0 -109
- package/src/server/plugins/nunjucks/enviroment.test.js +0 -207
- package/src/server/plugins/nunjucks/filters/answer.test.js +0 -92
- package/src/server/plugins/nunjucks/filters/field.test.js +0 -75
- package/src/server/plugins/nunjucks/filters/href.test.js +0 -80
- package/src/server/plugins/nunjucks/filters/merge.test.js +0 -15
- package/src/server/plugins/nunjucks/filters/page.test.js +0 -65
- package/src/server/plugins/payment/helper.test.js +0 -29
- package/src/server/plugins/payment/service.test.js +0 -218
- package/src/server/plugins/postcode-lookup/service.test.js +0 -177
- package/src/server/postcode-lookup.test.ts +0 -64
- package/src/server/routes/dummy-api.test.ts +0 -97
- package/src/server/services/cacheService.test.ts +0 -308
- package/src/server/services/httpService.test.js +0 -491
- package/src/server/utils/file-form-service.test.js +0 -127
- package/src/server/utils/notify.test.ts +0 -37
- package/src/server/utils/secure-context/get-trust-store-certs.test.js +0 -19
- package/src/server/utils/utils.test.js +0 -69
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":["FileStatus","UploadStatus"],"sources":["../../../../src/server/plugins/engine/types.ts"],"sourcesContent":["import {\n type ComponentDef,\n type Event,\n type FormVersionMetadata,\n type Item,\n type List,\n type Page,\n type PaymentFieldComponent,\n type UkAddressFieldComponent\n} from '@defra/forms-model'\nimport {\n type PluginProperties,\n type Request,\n type ResponseObject\n} from '@hapi/hapi'\nimport { type JoiExpression, type ValidationErrorItem } from 'joi'\n\nimport { FormComponent } from '~/src/server/plugins/engine/components/FormComponent.js'\nimport { type UkAddressState } from '~/src/server/plugins/engine/components/UkAddressField.js'\nimport { type Component } from '~/src/server/plugins/engine/components/helpers/components.js'\nimport {\n type FileUploadField,\n type PaymentField\n} from '~/src/server/plugins/engine/components/index.js'\nimport {\n type BackLink,\n type ComponentText,\n type ComponentViewModel,\n type DatePartsState,\n type EastingNorthingState,\n type LatLongState,\n type MonthYearState\n} from '~/src/server/plugins/engine/components/types.js'\nimport { type FormModel } from '~/src/server/plugins/engine/models/index.js'\nimport { type DetailItemField } from '~/src/server/plugins/engine/models/types.js'\nimport { type PageController } from '~/src/server/plugins/engine/pageControllers/PageController.js'\nimport { type PageControllerClass } from '~/src/server/plugins/engine/pageControllers/helpers/pages.js'\nimport { type QuestionPageController } from '~/src/server/plugins/engine/pageControllers/index.js'\nimport {\n type FileStatus,\n type FormAdapterSubmissionSchemaVersion,\n type UploadStatus\n} from '~/src/server/plugins/engine/types/enums.js'\nimport { type ViewContext } from '~/src/server/plugins/nunjucks/types.js'\nimport {\n type FormAction,\n type FormRequest,\n type FormRequestPayload,\n type FormResponseToolkit,\n type FormStatus\n} from '~/src/server/routes/types.js'\nimport { type CacheService } from '~/src/server/services/cacheService.js'\nimport { type RequestOptions } from '~/src/server/services/httpService.js'\nimport { type Services } from '~/src/server/types.js'\n\nexport type AnyFormRequest = FormRequest | FormRequestPayload\nexport type AnyRequest = Request | AnyFormRequest\n\n/**\n * Form submission state stores the following in Redis:\n * Props containing user's submitted values as `{ [inputId]: value }` or as `{ [sectionName]: { [inputName]: value } }`\n * a) . e.g:\n * ```ts\n * {\n * _C9PRHmsgt: 'Ben',\n * WfLk9McjzX: 'Music',\n * IK7jkUFCBL: 'Royal Academy of Music'\n * }\n * ```\n *\n * b)\n * ```ts\n * {\n * checkBeforeYouStart: { ukPassport: true },\n * applicantDetails: {\n * numberOfApplicants: 1,\n * phoneNumber: '77777777',\n * emailAddress: 'aaa@aaa.com'\n * },\n * applicantOneDetails: {\n * firstName: 'a',\n * middleName: 'a',\n * lastName: 'a',\n * address: { addressLine1: 'a', addressLine2: 'a', town: 'a', postcode: 'a' }\n * }\n * }\n * ```\n */\n\n/**\n * Form submission state\n */\nexport type FormSubmissionState = {\n upload?: Record<string, TempFileState>\n} & FormState\n\nexport interface FormSubmissionError extends Pick<\n ValidationErrorItem,\n 'context' | 'path'\n> {\n href: string // e.g: '#dateField__day'\n name: string // e.g: 'dateField__day'\n text: string // e.g: 'Date field must be a real date'\n}\n\nexport interface FormConfirmationState {\n confirmed?: true\n formId?: string\n referenceNumber?: string\n}\n\nexport interface FormPayloadParams {\n action?: FormAction\n confirm?: true\n crumb?: string\n itemId?: string\n}\n\n/**\n * Form POST for question pages\n * (after Joi has converted value types)\n */\nexport type FormPayload = FormPayloadParams & Partial<Record<string, FormValue>>\n\nexport type FormValue =\n | Item['value']\n | Item['value'][]\n | UploadState\n | RepeatListState\n | GeospatialState\n | undefined\n\nexport type FormState = Partial<Record<string, FormStateValue>>\nexport type FormStateValue = Exclude<FormValue, undefined> | null\n\nexport interface FormValidationResult<\n ValueType extends FormPayload | FormSubmissionState\n> {\n value: ValueType\n errors: FormSubmissionError[] | undefined\n}\n\nexport interface FormContext {\n /**\n * Evaluation form state only (filtered by visited paths),\n * with values formatted for condition evaluation using\n * {@link FormComponent.getContextValueFromState}\n */\n evaluationState: FormState\n\n /**\n * Relevant form state only (filtered by visited paths)\n */\n relevantState: FormState\n\n /**\n * Relevant pages only (filtered by visited paths)\n */\n relevantPages: PageControllerClass[]\n\n /**\n * Form submission payload (single page)\n */\n payload: FormPayload\n\n /**\n * Form submission state (entire form)\n */\n state: FormSubmissionState\n\n /**\n * Validation errors (entire form)\n */\n errors?: FormSubmissionError[]\n\n /**\n * Visited paths evaluated from form state\n */\n paths: string[]\n\n /**\n * Preview URL direct access is allowed\n */\n isForceAccess: boolean\n\n /**\n * Miscellaneous extra data from event responses\n */\n data: object\n\n pageDefMap: Map<string, Page>\n listDefMap: Map<string, List>\n componentDefMap: Map<string, ComponentDef>\n pageMap: Map<string, PageControllerClass>\n componentMap: Map<string, Component>\n referenceNumber: string\n}\n\nexport type FormContextRequest = (\n | {\n method: 'get'\n payload?: undefined\n }\n | {\n method: 'post'\n payload: FormPayload\n }\n | {\n method: FormRequest['method']\n payload?: object | undefined\n }\n) &\n Pick<\n FormRequest,\n 'app' | 'method' | 'params' | 'path' | 'query' | 'url' | 'server'\n >\n\nexport interface UploadInitiateResponse {\n uploadId: string\n uploadUrl: string\n statusUrl: string\n}\n\nexport {\n FileStatus,\n UploadStatus\n} from '~/src/server/plugins/engine/types/enums.js'\n\nexport type UploadState = FileState[]\n\nexport type FileUpload = {\n fileId: string\n filename: string\n contentLength: number\n} & (\n | {\n fileStatus: FileStatus.complete | FileStatus.rejected | FileStatus.pending\n errorMessage?: string\n }\n | {\n fileStatus: FileStatus.complete\n errorMessage?: undefined\n }\n)\n\nexport interface FileUploadMetadata {\n retrievalKey: string\n}\n\nexport type UploadStatusResponse =\n | {\n uploadStatus: UploadStatus.initiated\n metadata: FileUploadMetadata\n form: { file?: undefined }\n }\n | {\n uploadStatus: UploadStatus.pending | UploadStatus.ready\n metadata: FileUploadMetadata\n form: { file: FileUpload }\n numberOfRejectedFiles?: number\n }\n | {\n uploadStatus: UploadStatus.ready\n metadata: FileUploadMetadata\n form: { file: FileUpload }\n numberOfRejectedFiles: 0\n }\n\nexport type UploadStatusFileResponse = Exclude<\n UploadStatusResponse,\n { uploadStatus: UploadStatus.initiated }\n>\n\nexport interface FileState {\n uploadId: string\n status: UploadStatusFileResponse\n}\n\nexport interface TempFileState {\n upload?: UploadInitiateResponse\n files: UploadState\n}\n\nexport interface RepeatItemState extends FormPayload {\n itemId: string\n}\n\nexport type RepeatListState = RepeatItemState[]\n\n/**\n * A longitude/latitude coordinate pair in WGS84 format\n * Format: [longitude, latitude]\n */\nexport type Coordinates = [longitude: number, latitude: number]\n\n/**\n * GeoJSON Point geometry\n */\nexport interface PointGeometry {\n type: 'Point'\n coordinates: Coordinates\n}\n\n/**\n * GeoJSON LineString geometry\n */\nexport interface LineStringGeometry {\n type: 'LineString'\n coordinates: Coordinates[]\n}\n\n/**\n * GeoJSON Polygon geometry\n */\nexport interface PolygonGeometry {\n type: 'Polygon'\n coordinates: Coordinates[][]\n}\n\n/**\n * Supported geometry types\n */\nexport type Geometry = PointGeometry | LineStringGeometry | PolygonGeometry\n\n/**\n * Feature metadata\n */\nexport interface FeatureProperties {\n /**\n * Human-readable description of the feature\n */\n description: string\n /**\n * The OS grid reference of the first coordinate of the feature\n */\n coordinateGridReference?: string\n /**\n * The OS grid reference of the centroid of the feature\n */\n centroidGridReference?: string\n}\n\n/**\n * A single GeoJSON Feature\n */\nexport interface Feature {\n id: string\n type: 'Feature'\n properties: FeatureProperties\n geometry: Geometry\n}\n\n/**\n * A GeoJSON FeatureCollection\n */\nexport type FeatureCollection = Feature[]\n\nexport type GeospatialState = FeatureCollection\n\nexport interface CheckAnswers {\n title?: ComponentText\n summaryList: SummaryList\n}\n\nexport interface SummaryList {\n classes?: string\n rows: SummaryListRow[]\n}\n\nexport interface SummaryListRow {\n key: ComponentText\n value: ComponentText\n actions?: { items: SummaryListAction[] }\n}\n\nexport type SummaryListAction = ComponentText & {\n href: string\n visuallyHiddenText: string\n}\n\nexport interface PageViewModelBase extends Partial<ViewContext> {\n page: PageController\n name?: string\n pageTitle: string\n sectionTitle?: string\n showTitle: boolean\n isStartPage: boolean\n backLink?: BackLink\n feedbackLink?: string\n serviceUrl: string\n phaseTag?: string\n}\n\nexport interface ItemDeletePageViewModel extends PageViewModelBase {\n context: FormContext\n itemTitle: string\n confirmation?: ComponentText\n buttonConfirm: ComponentText\n buttonCancel: ComponentText\n}\n\nexport interface FormPageViewModel extends PageViewModelBase {\n components: ComponentViewModel[]\n context: FormContext\n errors?: FormSubmissionError[]\n hasMissingNotificationEmail?: boolean\n allowSaveAndExit: boolean\n showSubmitButton?: boolean\n showPaymentExpiredNotification?: boolean\n}\n\nexport interface RepeaterSummaryPageViewModel extends PageViewModelBase {\n context: FormContext\n errors?: FormSubmissionError[]\n checkAnswers: CheckAnswers[]\n repeatTitle: string\n allowSaveAndExit: boolean\n}\n\nexport interface FeaturedFormPageViewModel extends FormPageViewModel {\n formAction?: string\n formComponent: ComponentViewModel\n componentsBefore: ComponentViewModel[]\n uploadId: string | undefined\n proxyUrl: string | null\n}\n\nexport type PageViewModel =\n | PageViewModelBase\n | ItemDeletePageViewModel\n | FormPageViewModel\n | RepeaterSummaryPageViewModel\n | FeaturedFormPageViewModel\n\nexport type GlobalFunction = (value: unknown) => unknown\nexport type FilterFunction = (value: unknown) => unknown\nexport interface ErrorMessageTemplate {\n type: string\n template: JoiExpression\n}\n\nexport interface ErrorMessageTemplateList {\n baseErrors: ErrorMessageTemplate[]\n advancedSettingsErrors: ErrorMessageTemplate[]\n}\n\nexport type PreparePageEventRequestOptions = (\n options: RequestOptions,\n event: Event,\n page: PageControllerClass,\n context: FormContext\n) => void\n\nexport type OnRequestCallback = (\n request: AnyFormRequest,\n h: FormResponseToolkit,\n context: FormContext\n) =>\n | ResponseObject\n | FormResponseToolkit['continue']\n | Promise<ResponseObject | FormResponseToolkit['continue']>\n\nexport type SaveAndExitHandler = (\n request: FormRequestPayload,\n h: FormResponseToolkit,\n context: FormContext\n) => ResponseObject\n\nexport interface ExternalArgs {\n component: ComponentDef\n controller: QuestionPageController\n sourceUrl: string\n actionArgs?: Record<string, string>\n isLive: boolean\n isPreview: boolean\n}\n\nexport interface PostcodeLookupExternalArgs extends ExternalArgs {\n component: UkAddressFieldComponent\n actionArgs: { step: string }\n}\n\nexport interface PaymentExternalArgs extends ExternalArgs {\n component: PaymentFieldComponent\n}\n\nexport interface ExternalStateAppendage {\n component: string\n data: FormStateValue | FormState\n}\n\nexport interface PluginOptions {\n model?: FormModel\n services?: Services\n controllers?: Record<string, typeof PageController>\n cache?: CacheService | string\n globals?: Record<string, GlobalFunction>\n filters?: Record<string, FilterFunction>\n saveAndExit?: SaveAndExitHandler\n pluginPath?: string\n nunjucks: {\n baseLayoutPath: string\n paths: string[]\n }\n viewContext: PluginProperties['forms-engine-plugin']['viewContext']\n preparePageEventRequestOptions?: PreparePageEventRequestOptions\n onRequest?: OnRequestCallback\n baseUrl: string // base URL of the application, protocol and hostname e.g. \"https://myapp.com\"\n ordnanceSurveyApiKey?: string\n ordnanceSurveyApiSecret?: string\n}\n\nexport interface FormAdapterSubmissionMessageMeta {\n schemaVersion: FormAdapterSubmissionSchemaVersion\n timestamp: Date\n referenceNumber: string\n formName: string\n formId: string\n formSlug: string\n status: FormStatus\n isPreview: boolean\n notificationEmail: string\n versionMetadata?: FormVersionMetadata\n custom?: Record<string, unknown>\n}\n\nexport type FormAdapterSubmissionMessageMetaSerialised = Omit<\n FormAdapterSubmissionMessageMeta,\n 'schemaVersion' | 'timestamp' | 'status'\n> & {\n schemaVersion: number\n status: string\n timestamp: string\n}\nexport interface FormAdapterFile {\n fileName: string\n fileId: string\n userDownloadLink: string\n}\n\nexport interface FormAdapterPayment {\n paymentId: string\n reference: string\n amount: number\n description: string\n createdAt: string\n}\n\nexport interface FormAdapterSubmissionMessageResult {\n files: {\n main: string\n repeaters: Record<string, string>\n }\n}\n\n/**\n * A detail item specifically for files\n */\nexport type FileUploadFieldDetailitem = Omit<DetailItemField, 'field'> & {\n field: FileUploadField\n}\n\n/**\n * A detail item specifically for payments\n */\nexport type PaymentFieldDetailItem = Omit<DetailItemField, 'field'> & {\n field: PaymentField\n}\nexport type RichFormValue =\n | FormValue\n | FormPayload\n | DatePartsState\n | MonthYearState\n | UkAddressState\n | EastingNorthingState\n | LatLongState\n | GeospatialState\n\nexport interface FormAdapterSubmissionMessageData {\n main: Record<string, RichFormValue | null>\n repeaters: Record<string, Record<string, RichFormValue>[]>\n files: Record<string, FormAdapterFile[]>\n payment?: FormAdapterPayment\n}\n\nexport interface FormAdapterSubmissionMessagePayload {\n meta: FormAdapterSubmissionMessageMeta\n data: FormAdapterSubmissionMessageData\n result: FormAdapterSubmissionMessageResult\n}\n\nexport interface FormAdapterSubmissionMessage extends FormAdapterSubmissionMessagePayload {\n messageId: string\n recordCreatedAt: Date\n}\n\nexport interface FormAdapterSubmissionService {\n handleFormSubmission: (\n submissionMessage: FormAdapterSubmissionMessage\n ) => unknown\n}\n"],"mappings":"AA0DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AA2BA;AACA;AACA;AACA;;AAsGA,SACEA,UAAU,EACVC,YAAY;;AAgEd;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAMA;AACA;AACA;;AAMA;AACA;AACA;;AAMA;AACA;AACA;;AAGA;AACA;AACA;;AAgBA;AACA;AACA;;AAQA;AACA;AACA;;AAyMA;AACA;AACA;;AAKA;AACA;AACA","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"types.js","names":["FileStatus","UploadStatus"],"sources":["../../../../src/server/plugins/engine/types.ts"],"sourcesContent":["import {\n type ComponentDef,\n type Event,\n type FormVersionMetadata,\n type Item,\n type List,\n type Page,\n type PaymentFieldComponent,\n type UkAddressFieldComponent\n} from '@defra/forms-model'\nimport {\n type PluginProperties,\n type Request,\n type ResponseObject\n} from '@hapi/hapi'\nimport { type JoiExpression, type ValidationErrorItem } from 'joi'\n\nimport { FormComponent } from '~/src/server/plugins/engine/components/FormComponent.js'\nimport { type UkAddressState } from '~/src/server/plugins/engine/components/UkAddressField.js'\nimport { type Component } from '~/src/server/plugins/engine/components/helpers/components.js'\nimport {\n type FileUploadField,\n type PaymentField\n} from '~/src/server/plugins/engine/components/index.js'\nimport {\n type BackLink,\n type ComponentText,\n type ComponentViewModel,\n type DatePartsState,\n type EastingNorthingState,\n type LatLongState,\n type MonthYearState\n} from '~/src/server/plugins/engine/components/types.js'\nimport { type FormModel } from '~/src/server/plugins/engine/models/index.js'\nimport { type DetailItemField } from '~/src/server/plugins/engine/models/types.js'\nimport { type PageController } from '~/src/server/plugins/engine/pageControllers/PageController.js'\nimport { type PageControllerClass } from '~/src/server/plugins/engine/pageControllers/helpers/pages.js'\nimport { type QuestionPageController } from '~/src/server/plugins/engine/pageControllers/index.js'\nimport {\n type FileStatus,\n type FormAdapterSubmissionSchemaVersion,\n type UploadStatus\n} from '~/src/server/plugins/engine/types/enums.js'\nimport { type ViewContext } from '~/src/server/plugins/nunjucks/types.js'\nimport {\n type FormAction,\n type FormRequest,\n type FormRequestPayload,\n type FormResponseToolkit,\n type FormStatus\n} from '~/src/server/routes/types.js'\nimport { type CacheService } from '~/src/server/services/cacheService.js'\nimport { type RequestOptions } from '~/src/server/services/httpService.js'\nimport { type Services } from '~/src/server/types.js'\n\nexport type AnyFormRequest = FormRequest | FormRequestPayload\nexport type AnyRequest = Request | AnyFormRequest\n\nexport interface CacheRequest {\n yar: { id: string | undefined }\n params: { slug?: string; state?: string }\n}\n\n/**\n * Form submission state stores the following in Redis:\n * Props containing user's submitted values as `{ [inputId]: value }` or as `{ [sectionName]: { [inputName]: value } }`\n * a) . e.g:\n * ```ts\n * {\n * _C9PRHmsgt: 'Ben',\n * WfLk9McjzX: 'Music',\n * IK7jkUFCBL: 'Royal Academy of Music'\n * }\n * ```\n *\n * b)\n * ```ts\n * {\n * checkBeforeYouStart: { ukPassport: true },\n * applicantDetails: {\n * numberOfApplicants: 1,\n * phoneNumber: '77777777',\n * emailAddress: 'aaa@aaa.com'\n * },\n * applicantOneDetails: {\n * firstName: 'a',\n * middleName: 'a',\n * lastName: 'a',\n * address: { addressLine1: 'a', addressLine2: 'a', town: 'a', postcode: 'a' }\n * }\n * }\n * ```\n */\n\n/**\n * Form submission state\n */\nexport type FormSubmissionState = {\n upload?: Record<string, TempFileState>\n} & FormState\n\nexport interface FormSubmissionError extends Pick<\n ValidationErrorItem,\n 'context' | 'path'\n> {\n href: string // e.g: '#dateField__day'\n name: string // e.g: 'dateField__day'\n text: string // e.g: 'Date field must be a real date'\n}\n\nexport interface FormConfirmationState {\n confirmed?: true\n formId?: string\n referenceNumber?: string\n}\n\nexport interface FormPayloadParams {\n action?: FormAction\n confirm?: true\n crumb?: string\n itemId?: string\n}\n\n/**\n * Form POST for question pages\n * (after Joi has converted value types)\n */\nexport type FormPayload = FormPayloadParams & Partial<Record<string, FormValue>>\n\nexport type FormValue =\n | Item['value']\n | Item['value'][]\n | UploadState\n | RepeatListState\n | GeospatialState\n | undefined\n\nexport type FormState = Partial<Record<string, FormStateValue>>\nexport type FormStateValue = Exclude<FormValue, undefined> | null\n\nexport interface FormValidationResult<\n ValueType extends FormPayload | FormSubmissionState\n> {\n value: ValueType\n errors: FormSubmissionError[] | undefined\n}\n\nexport interface FormContext {\n /**\n * Evaluation form state only (filtered by visited paths),\n * with values formatted for condition evaluation using\n * {@link FormComponent.getContextValueFromState}\n */\n evaluationState: FormState\n\n /**\n * Relevant form state only (filtered by visited paths)\n */\n relevantState: FormState\n\n /**\n * Relevant pages only (filtered by visited paths)\n */\n relevantPages: PageControllerClass[]\n\n /**\n * Form submission payload (single page)\n */\n payload: FormPayload\n\n /**\n * Form submission state (entire form)\n */\n state: FormSubmissionState\n\n /**\n * Validation errors (entire form)\n */\n errors?: FormSubmissionError[]\n\n /**\n * Visited paths evaluated from form state\n */\n paths: string[]\n\n /**\n * Preview URL direct access is allowed\n */\n isForceAccess: boolean\n\n /**\n * Miscellaneous extra data from event responses\n */\n data: object\n\n pageDefMap: Map<string, Page>\n listDefMap: Map<string, List>\n componentDefMap: Map<string, ComponentDef>\n pageMap: Map<string, PageControllerClass>\n componentMap: Map<string, Component>\n referenceNumber: string\n}\n\nexport type FormContextRequest = (\n | {\n method: 'get'\n payload?: undefined\n }\n | {\n method: 'post'\n payload: FormPayload\n }\n | {\n method: FormRequest['method']\n payload?: object | undefined\n }\n) &\n Pick<\n FormRequest,\n 'app' | 'method' | 'params' | 'path' | 'query' | 'url' | 'server'\n >\n\nexport interface UploadInitiateResponse {\n uploadId: string\n uploadUrl: string\n statusUrl: string\n}\n\nexport {\n FileStatus,\n UploadStatus\n} from '~/src/server/plugins/engine/types/enums.js'\n\nexport type UploadState = FileState[]\n\nexport type FileUpload = {\n fileId: string\n filename: string\n contentLength: number\n} & (\n | {\n fileStatus: FileStatus.complete | FileStatus.rejected | FileStatus.pending\n errorMessage?: string\n }\n | {\n fileStatus: FileStatus.complete\n errorMessage?: undefined\n }\n)\n\nexport interface FileUploadMetadata {\n retrievalKey: string\n}\n\nexport type UploadStatusResponse =\n | {\n uploadStatus: UploadStatus.initiated\n metadata: FileUploadMetadata\n form: { file?: undefined }\n }\n | {\n uploadStatus: UploadStatus.pending | UploadStatus.ready\n metadata: FileUploadMetadata\n form: { file: FileUpload }\n numberOfRejectedFiles?: number\n }\n | {\n uploadStatus: UploadStatus.ready\n metadata: FileUploadMetadata\n form: { file: FileUpload }\n numberOfRejectedFiles: 0\n }\n\nexport type UploadStatusFileResponse = Exclude<\n UploadStatusResponse,\n { uploadStatus: UploadStatus.initiated }\n>\n\nexport interface FileState {\n uploadId: string\n status: UploadStatusFileResponse\n}\n\nexport interface TempFileState {\n upload?: UploadInitiateResponse\n files: UploadState\n}\n\nexport interface RepeatItemState extends FormPayload {\n itemId: string\n}\n\nexport type RepeatListState = RepeatItemState[]\n\n/**\n * A longitude/latitude coordinate pair in WGS84 format\n * Format: [longitude, latitude]\n */\nexport type Coordinates = [longitude: number, latitude: number]\n\n/**\n * GeoJSON Point geometry\n */\nexport interface PointGeometry {\n type: 'Point'\n coordinates: Coordinates\n}\n\n/**\n * GeoJSON LineString geometry\n */\nexport interface LineStringGeometry {\n type: 'LineString'\n coordinates: Coordinates[]\n}\n\n/**\n * GeoJSON Polygon geometry\n */\nexport interface PolygonGeometry {\n type: 'Polygon'\n coordinates: Coordinates[][]\n}\n\n/**\n * Supported geometry types\n */\nexport type Geometry = PointGeometry | LineStringGeometry | PolygonGeometry\n\n/**\n * Feature metadata\n */\nexport interface FeatureProperties {\n /**\n * Human-readable description of the feature\n */\n description: string\n /**\n * The OS grid reference of the first coordinate of the feature\n */\n coordinateGridReference?: string\n /**\n * The OS grid reference of the centroid of the feature\n */\n centroidGridReference?: string\n}\n\n/**\n * A single GeoJSON Feature\n */\nexport interface Feature {\n id: string\n type: 'Feature'\n properties: FeatureProperties\n geometry: Geometry\n}\n\n/**\n * A GeoJSON FeatureCollection\n */\nexport type FeatureCollection = Feature[]\n\nexport type GeospatialState = FeatureCollection\n\nexport interface CheckAnswers {\n title?: ComponentText\n summaryList: SummaryList\n}\n\nexport interface SummaryList {\n classes?: string\n rows: SummaryListRow[]\n}\n\nexport interface SummaryListRow {\n key: ComponentText\n value: ComponentText\n actions?: { items: SummaryListAction[] }\n}\n\nexport type SummaryListAction = ComponentText & {\n href: string\n visuallyHiddenText: string\n}\n\nexport interface PageViewModelBase extends Partial<ViewContext> {\n page: PageController\n name?: string\n pageTitle: string\n sectionTitle?: string\n showTitle: boolean\n isStartPage: boolean\n backLink?: BackLink\n feedbackLink?: string\n serviceUrl: string\n phaseTag?: string\n}\n\nexport interface ItemDeletePageViewModel extends PageViewModelBase {\n context: FormContext\n itemTitle: string\n confirmation?: ComponentText\n buttonConfirm: ComponentText\n buttonCancel: ComponentText\n}\n\nexport interface FormPageViewModel extends PageViewModelBase {\n components: ComponentViewModel[]\n context: FormContext\n errors?: FormSubmissionError[]\n hasMissingNotificationEmail?: boolean\n allowSaveAndExit: boolean\n showSubmitButton?: boolean\n showPaymentExpiredNotification?: boolean\n}\n\nexport interface RepeaterSummaryPageViewModel extends PageViewModelBase {\n context: FormContext\n errors?: FormSubmissionError[]\n checkAnswers: CheckAnswers[]\n repeatTitle: string\n allowSaveAndExit: boolean\n}\n\nexport interface FeaturedFormPageViewModel extends FormPageViewModel {\n formAction?: string\n formComponent: ComponentViewModel\n componentsBefore: ComponentViewModel[]\n uploadId: string | undefined\n proxyUrl: string | null\n}\n\nexport type PageViewModel =\n | PageViewModelBase\n | ItemDeletePageViewModel\n | FormPageViewModel\n | RepeaterSummaryPageViewModel\n | FeaturedFormPageViewModel\n\nexport type GlobalFunction = (value: unknown) => unknown\nexport type FilterFunction = (value: unknown) => unknown\nexport interface ErrorMessageTemplate {\n type: string\n template: JoiExpression\n}\n\nexport interface ErrorMessageTemplateList {\n baseErrors: ErrorMessageTemplate[]\n advancedSettingsErrors: ErrorMessageTemplate[]\n}\n\nexport type PreparePageEventRequestOptions = (\n options: RequestOptions,\n event: Event,\n page: PageControllerClass,\n context: FormContext\n) => void\n\nexport type OnRequestCallback = (\n request: AnyFormRequest,\n h: FormResponseToolkit,\n context: FormContext\n) =>\n | ResponseObject\n | FormResponseToolkit['continue']\n | Promise<ResponseObject | FormResponseToolkit['continue']>\n\nexport type SaveAndExitHandler = (\n request: FormRequestPayload,\n h: FormResponseToolkit,\n context: FormContext\n) => ResponseObject\n\nexport interface ExternalArgs {\n component: ComponentDef\n controller: QuestionPageController\n sourceUrl: string\n actionArgs?: Record<string, string>\n isLive: boolean\n isPreview: boolean\n}\n\nexport interface PostcodeLookupExternalArgs extends ExternalArgs {\n component: UkAddressFieldComponent\n actionArgs: { step: string }\n}\n\nexport interface PaymentExternalArgs extends ExternalArgs {\n component: PaymentFieldComponent\n}\n\nexport interface ExternalStateAppendage {\n component: string\n data: FormStateValue | FormState\n}\n\nexport interface PluginOptions {\n model?: FormModel\n services?: Services\n controllers?: Record<string, typeof PageController>\n cache?: CacheService | string\n globals?: Record<string, GlobalFunction>\n filters?: Record<string, FilterFunction>\n saveAndExit?: SaveAndExitHandler\n pluginPath?: string\n nunjucks: {\n baseLayoutPath: string\n paths: string[]\n }\n viewContext: PluginProperties['forms-engine-plugin']['viewContext']\n preparePageEventRequestOptions?: PreparePageEventRequestOptions\n onRequest?: OnRequestCallback\n baseUrl: string // base URL of the application, protocol and hostname e.g. \"https://myapp.com\"\n ordnanceSurveyApiKey?: string\n ordnanceSurveyApiSecret?: string\n}\n\nexport interface FormAdapterSubmissionMessageMeta {\n schemaVersion: FormAdapterSubmissionSchemaVersion\n timestamp: Date\n referenceNumber: string\n formName: string\n formId: string\n formSlug: string\n status: FormStatus\n isPreview: boolean\n notificationEmail: string\n versionMetadata?: FormVersionMetadata\n custom?: Record<string, unknown>\n}\n\nexport type FormAdapterSubmissionMessageMetaSerialised = Omit<\n FormAdapterSubmissionMessageMeta,\n 'schemaVersion' | 'timestamp' | 'status'\n> & {\n schemaVersion: number\n status: string\n timestamp: string\n}\nexport interface FormAdapterFile {\n fileName: string\n fileId: string\n userDownloadLink: string\n}\n\nexport interface FormAdapterPayment {\n paymentId: string\n reference: string\n amount: number\n description: string\n createdAt: string\n}\n\nexport interface FormAdapterSubmissionMessageResult {\n files: {\n main: string\n repeaters: Record<string, string>\n }\n}\n\n/**\n * A detail item specifically for files\n */\nexport type FileUploadFieldDetailitem = Omit<DetailItemField, 'field'> & {\n field: FileUploadField\n}\n\n/**\n * A detail item specifically for payments\n */\nexport type PaymentFieldDetailItem = Omit<DetailItemField, 'field'> & {\n field: PaymentField\n}\nexport type RichFormValue =\n | FormValue\n | FormPayload\n | DatePartsState\n | MonthYearState\n | UkAddressState\n | EastingNorthingState\n | LatLongState\n | GeospatialState\n\nexport interface FormAdapterSubmissionMessageData {\n main: Record<string, RichFormValue | null>\n repeaters: Record<string, Record<string, RichFormValue>[]>\n files: Record<string, FormAdapterFile[]>\n payment?: FormAdapterPayment\n}\n\nexport interface FormAdapterSubmissionMessagePayload {\n meta: FormAdapterSubmissionMessageMeta\n data: FormAdapterSubmissionMessageData\n result: FormAdapterSubmissionMessageResult\n}\n\nexport interface FormAdapterSubmissionMessage extends FormAdapterSubmissionMessagePayload {\n messageId: string\n recordCreatedAt: Date\n}\n\nexport interface FormAdapterSubmissionService {\n handleFormSubmission: (\n submissionMessage: FormAdapterSubmissionMessage\n ) => unknown\n}\n"],"mappings":"AA+DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AA2BA;AACA;AACA;AACA;;AAsGA,SACEA,UAAU,EACVC,YAAY;;AAgEd;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAMA;AACA;AACA;;AAMA;AACA;AACA;;AAMA;AACA;AACA;;AAGA;AACA;AACA;;AAgBA;AACA;AACA;;AAQA;AACA;AACA;;AAyMA;AACA;AACA;;AAKA;AACA;AACA","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type ResponseObject } from '@hapi/hapi';
|
|
2
|
-
import { type FormRequestPayload, type FormResponseToolkit } from '
|
|
3
|
-
import { type ExternalArgs } from '
|
|
2
|
+
import { type FormRequestPayload, type FormResponseToolkit } from '../../../server/plugins/engine/types/index.js';
|
|
3
|
+
import { type ExternalArgs } from '../../../server/plugins/engine/types.js';
|
|
4
4
|
export declare function isExternalComponent(component: unknown): component is ExternalComponent;
|
|
5
5
|
export interface ExternalComponent {
|
|
6
6
|
dispatcher(request: FormRequestPayload, h: FormResponseToolkit, args: ExternalArgs): Promise<ResponseObject>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Server } from '@hapi/hapi';
|
|
2
2
|
import { type Environment } from 'nunjucks';
|
|
3
|
-
import { type PluginOptions } from '
|
|
3
|
+
import { type PluginOptions } from '../../../server/plugins/engine/types.js';
|
|
4
4
|
export declare function registerVision(server: Server, pluginOptions: PluginOptions): Promise<void>;
|
|
5
5
|
interface CompileOptions {
|
|
6
6
|
environment: Environment;
|
|
@@ -4,4 +4,4 @@ export namespace mapPlugin {
|
|
|
4
4
|
let multiple: false;
|
|
5
5
|
function register(server: import("@hapi/hapi").Server<import("@hapi/hapi").ServerApplicationState>, options: MapConfiguration): void;
|
|
6
6
|
}
|
|
7
|
-
import type { MapConfiguration } from '
|
|
7
|
+
import type { MapConfiguration } from '../../../server/plugins/map/types.js';
|
|
@@ -15,6 +15,6 @@ export const mapPlugin = {
|
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* @import { NamedPlugin } from '@hapi/hapi'
|
|
18
|
-
* @import { MapConfiguration } from '
|
|
18
|
+
* @import { MapConfiguration } from '../../../server/plugins/map/types.js'
|
|
19
19
|
*/
|
|
20
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -3,4 +3,14 @@
|
|
|
3
3
|
* @param {MapConfiguration} options - Ordnance survey map options
|
|
4
4
|
*/
|
|
5
5
|
export function getAccessToken(options: MapConfiguration): Promise<string>;
|
|
6
|
-
|
|
6
|
+
export type OsTokenResponse = {
|
|
7
|
+
/**
|
|
8
|
+
* - The access token
|
|
9
|
+
*/
|
|
10
|
+
access_token: string;
|
|
11
|
+
/**
|
|
12
|
+
* - The expiry in seconds
|
|
13
|
+
*/
|
|
14
|
+
expires_in: number;
|
|
15
|
+
};
|
|
16
|
+
import type { MapConfiguration } from '../../../../server/plugins/map/types.js';
|
|
@@ -20,7 +20,8 @@ export async function getAccessToken(options) {
|
|
|
20
20
|
return cachedToken;
|
|
21
21
|
}
|
|
22
22
|
const creds = `${key}:${secret}`;
|
|
23
|
-
const
|
|
23
|
+
const postByType = /** @type {typeof post<OsTokenResponse>} */post;
|
|
24
|
+
const result = await postByType('https://api.os.uk/oauth2/token/v1', {
|
|
24
25
|
headers: {
|
|
25
26
|
Authorization: `Basic ${btoa(creds)}`,
|
|
26
27
|
'Content-Type': 'application/x-www-form-urlencoded'
|
|
@@ -29,6 +30,9 @@ export async function getAccessToken(options) {
|
|
|
29
30
|
json: true
|
|
30
31
|
});
|
|
31
32
|
const data = result.payload;
|
|
33
|
+
if (!data) {
|
|
34
|
+
throw new Error('Failed to obtain OS API token');
|
|
35
|
+
}
|
|
32
36
|
cachedToken = data.access_token;
|
|
33
37
|
tokenExpiry = now + (data.expires_in - 60) * 1000; // refresh early
|
|
34
38
|
|
|
@@ -36,6 +40,12 @@ export async function getAccessToken(options) {
|
|
|
36
40
|
}
|
|
37
41
|
|
|
38
42
|
/**
|
|
39
|
-
* @
|
|
43
|
+
* @typedef {object} OsTokenResponse
|
|
44
|
+
* @property {string} access_token - The access token
|
|
45
|
+
* @property {number} expires_in - The expiry in seconds
|
|
46
|
+
*/
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* @import { MapConfiguration } from '../../../../server/plugins/map/types.js'
|
|
40
50
|
*/
|
|
41
51
|
//# sourceMappingURL=get-os-token.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-os-token.js","names":["post","cachedToken","tokenExpiry","getAccessToken","options","ordnanceSurveyApiKey","key","ordnanceSurveyApiSecret","secret","now","Date","creds","result","headers","Authorization","btoa","payload","json","data","access_token","expires_in"],"sources":["../../../../../src/server/plugins/map/routes/get-os-token.js"],"sourcesContent":["import { post } from '~/src/server/services/httpService.js'\n\n/**\n * @type {string}\n */\nlet cachedToken\nlet tokenExpiry = 0\n\n/**\n * Get Ordnance Survey OAuth token\n * @param {MapConfiguration} options - Ordnance survey map options\n */\nexport async function getAccessToken(options) {\n const { ordnanceSurveyApiKey: key, ordnanceSurveyApiSecret: secret } = options\n const now = Date.now()\n\n if (cachedToken && now < tokenExpiry) {\n return cachedToken\n }\n\n const creds = `${key}:${secret}`\n const result = await
|
|
1
|
+
{"version":3,"file":"get-os-token.js","names":["post","cachedToken","tokenExpiry","getAccessToken","options","ordnanceSurveyApiKey","key","ordnanceSurveyApiSecret","secret","now","Date","creds","postByType","result","headers","Authorization","btoa","payload","json","data","Error","access_token","expires_in"],"sources":["../../../../../src/server/plugins/map/routes/get-os-token.js"],"sourcesContent":["import { post } from '~/src/server/services/httpService.js'\n\n/**\n * @type {string}\n */\nlet cachedToken\nlet tokenExpiry = 0\n\n/**\n * Get Ordnance Survey OAuth token\n * @param {MapConfiguration} options - Ordnance survey map options\n */\nexport async function getAccessToken(options) {\n const { ordnanceSurveyApiKey: key, ordnanceSurveyApiSecret: secret } = options\n const now = Date.now()\n\n if (cachedToken && now < tokenExpiry) {\n return cachedToken\n }\n\n const creds = `${key}:${secret}`\n const postByType = /** @type {typeof post<OsTokenResponse>} */ (post)\n\n const result = await postByType('https://api.os.uk/oauth2/token/v1', {\n headers: {\n Authorization: `Basic ${btoa(creds)}`,\n 'Content-Type': 'application/x-www-form-urlencoded'\n },\n payload: 'grant_type=client_credentials',\n json: true\n })\n\n const data = result.payload\n\n if (!data) {\n throw new Error('Failed to obtain OS API token')\n }\n\n cachedToken = data.access_token\n tokenExpiry = now + (data.expires_in - 60) * 1000 // refresh early\n\n return cachedToken\n}\n\n/**\n * @typedef {object} OsTokenResponse\n * @property {string} access_token - The access token\n * @property {number} expires_in - The expiry in seconds\n */\n\n/**\n * @import { MapConfiguration } from '~/src/server/plugins/map/types.js'\n */\n"],"mappings":"AAAA,SAASA,IAAI;;AAEb;AACA;AACA;AACA,IAAIC,WAAW;AACf,IAAIC,WAAW,GAAG,CAAC;;AAEnB;AACA;AACA;AACA;AACA,OAAO,eAAeC,cAAcA,CAACC,OAAO,EAAE;EAC5C,MAAM;IAAEC,oBAAoB,EAAEC,GAAG;IAAEC,uBAAuB,EAAEC;EAAO,CAAC,GAAGJ,OAAO;EAC9E,MAAMK,GAAG,GAAGC,IAAI,CAACD,GAAG,CAAC,CAAC;EAEtB,IAAIR,WAAW,IAAIQ,GAAG,GAAGP,WAAW,EAAE;IACpC,OAAOD,WAAW;EACpB;EAEA,MAAMU,KAAK,GAAG,GAAGL,GAAG,IAAIE,MAAM,EAAE;EAChC,MAAMI,UAAU,GAAG,2CAA6CZ,IAAK;EAErE,MAAMa,MAAM,GAAG,MAAMD,UAAU,CAAC,mCAAmC,EAAE;IACnEE,OAAO,EAAE;MACPC,aAAa,EAAE,SAASC,IAAI,CAACL,KAAK,CAAC,EAAE;MACrC,cAAc,EAAE;IAClB,CAAC;IACDM,OAAO,EAAE,+BAA+B;IACxCC,IAAI,EAAE;EACR,CAAC,CAAC;EAEF,MAAMC,IAAI,GAAGN,MAAM,CAACI,OAAO;EAE3B,IAAI,CAACE,IAAI,EAAE;IACT,MAAM,IAAIC,KAAK,CAAC,+BAA+B,CAAC;EAClD;EAEAnB,WAAW,GAAGkB,IAAI,CAACE,YAAY;EAC/BnB,WAAW,GAAGO,GAAG,GAAG,CAACU,IAAI,CAACG,UAAU,GAAG,EAAE,IAAI,IAAI,EAAC;;EAElD,OAAOrB,WAAW;AACpB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA","ignoreList":[]}
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* @param {MapConfiguration} options - ordnance survey names api key
|
|
4
4
|
*/
|
|
5
5
|
export function getRoutes(options: MapConfiguration): (ServerRoute<MapProxyGetRequestRefs> | ServerRoute<MapGeocodeGetRequestRefs> | ServerRoute<MapReverseGeocodeGetRequestRefs>)[];
|
|
6
|
-
import type { MapConfiguration } from '
|
|
7
|
-
import type { MapProxyGetRequestRefs } from '
|
|
6
|
+
import type { MapConfiguration } from '../../../../server/plugins/map/types.js';
|
|
7
|
+
import type { MapProxyGetRequestRefs } from '../../../../server/plugins/map/types.js';
|
|
8
8
|
import type { ServerRoute } from '@hapi/hapi';
|
|
9
|
-
import type { MapGeocodeGetRequestRefs } from '
|
|
10
|
-
import type { MapReverseGeocodeGetRequestRefs } from '
|
|
9
|
+
import type { MapGeocodeGetRequestRefs } from '../../../../server/plugins/map/types.js';
|
|
10
|
+
import type { MapReverseGeocodeGetRequestRefs } from '../../../../server/plugins/map/types.js';
|
|
@@ -72,10 +72,11 @@ function tileProxyRoute(options) {
|
|
|
72
72
|
} = request.params;
|
|
73
73
|
const token = await getAccessToken(options);
|
|
74
74
|
const url = `https://api.os.uk/maps/vector/v1/vts/tile/${z}/${y}/${x}.pbf?srs=3857`;
|
|
75
|
+
const getBuffer = /** @type {typeof get<Buffer>} */get;
|
|
75
76
|
const {
|
|
76
77
|
payload,
|
|
77
78
|
res
|
|
78
|
-
} = await
|
|
79
|
+
} = await getBuffer(url, {
|
|
79
80
|
headers: {
|
|
80
81
|
Authorization: `Bearer ${token}`,
|
|
81
82
|
Accept: 'application/x-protobuf'
|
|
@@ -167,6 +168,6 @@ function mapStyleResourceRoutes() {
|
|
|
167
168
|
|
|
168
169
|
/**
|
|
169
170
|
* @import { ServerRoute } from '@hapi/hapi'
|
|
170
|
-
* @import { MapConfiguration, MapProxyGetRequestRefs, MapGeocodeGetRequestRefs, MapReverseGeocodeGetRequestRefs } from '
|
|
171
|
+
* @import { MapConfiguration, MapProxyGetRequestRefs, MapGeocodeGetRequestRefs, MapReverseGeocodeGetRequestRefs } from '../../../../server/plugins/map/types.js'
|
|
171
172
|
*/
|
|
172
173
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["resolve","StatusCodes","Joi","getAccessToken","find","nearest","get","request","httpRequest","getRoutes","options","mapStyleResourceRoutes","mapProxyRoute","tileProxyRoute","geocodeProxyRoute","reverseGeocodeProxyRoute","method","path","handler","h","query","targetUrl","URL","decodeURIComponent","url","token","searchParams","set","proxyResponse","toString","headers","Authorization","buffer","payload","contentType","res","response","type","validate","object","keys","string","required","optional","z","y","x","params","Accept","json","gunzip","statusCode","OK","valueOf","code","header","_h","data","ordnanceSurveyApiKey","easting","northing","number","directory","import","meta","dirname"],"sources":["../../../../../src/server/plugins/map/routes/index.js"],"sourcesContent":["import { resolve } from 'node:path'\n\nimport { StatusCodes } from 'http-status-codes'\nimport Joi from 'joi'\n\nimport { getAccessToken } from '~/src/server/plugins/map/routes/get-os-token.js'\nimport { find, nearest } from '~/src/server/plugins/map/service.js'\nimport {\n get,\n request as httpRequest\n} from '~/src/server/services/httpService.js'\n\n/**\n * Gets the map support routes\n * @param {MapConfiguration} options - ordnance survey names api key\n */\nexport function getRoutes(options) {\n return [\n mapStyleResourceRoutes(),\n mapProxyRoute(options),\n tileProxyRoute(options),\n geocodeProxyRoute(options),\n reverseGeocodeProxyRoute(options)\n ]\n}\n\n/**\n * Proxies ordnance survey requests from the front end to api.os.com\n * Used for the VTS map source by forwarding on the request\n * and adding the auth token and SRS (spatial reference system)\n * @param {MapConfiguration} options - the map options\n * @returns {ServerRoute<MapProxyGetRequestRefs>}\n */\nfunction mapProxyRoute(options) {\n return {\n method: 'GET',\n path: '/api/map-proxy',\n handler: async (request, h) => {\n const { query } = request\n const targetUrl = new URL(decodeURIComponent(query.url))\n const token = await getAccessToken(options)\n\n targetUrl.searchParams.set('srs', '3857')\n\n const proxyResponse = await httpRequest('get', targetUrl.toString(), {\n headers: {\n Authorization: `Bearer ${token}`\n }\n })\n const buffer = proxyResponse.payload\n const contentType = proxyResponse.res.headers['content-type']\n const response = h.response(buffer)\n\n if (contentType) {\n response.type(contentType)\n }\n\n return response\n },\n options: {\n validate: {\n query: Joi.object()\n .keys({\n url: Joi.string().required()\n })\n .optional()\n }\n }\n }\n}\n\n/**\n * Proxies ordnance survey requests from the front end to api.os.uk\n * Used for VTS map tiles forwarding on the request and adding the auth token\n * @param {MapConfiguration} options - the map options\n * @returns {ServerRoute<MapProxyGetRequestRefs>}\n */\nfunction tileProxyRoute(options) {\n return {\n method: 'GET',\n path: '/api/tile/{z}/{y}/{x}.pbf',\n handler: async (request, h) => {\n const { z, y, x } = request.params\n const token = await getAccessToken(options)\n\n const url = `https://api.os.uk/maps/vector/v1/vts/tile/${z}/${y}/${x}.pbf?srs=3857`\n\n const { payload, res } = await get(url, {\n headers: {\n Authorization: `Bearer ${token}`,\n Accept: 'application/x-protobuf'\n },\n json: false,\n gunzip: true\n })\n\n if (res.statusCode && res.statusCode !== StatusCodes.OK.valueOf()) {\n return h.response('Tile fetch failed').code(res.statusCode)\n }\n\n return h\n .response(payload)\n .type('application/x-protobuf')\n .header('Cache-Control', 'public, max-age=86400')\n }\n }\n}\n\n/**\n * Proxies ordnance survey geocode requests from the front end to api.os.uk\n * Used for the gazzeteer address lookup to find name from query strings like postcode and place names\n * @param {MapConfiguration} options - the map options\n * @returns {ServerRoute<MapGeocodeGetRequestRefs>}\n */\nfunction geocodeProxyRoute(options) {\n return {\n method: 'GET',\n path: '/api/geocode-proxy',\n async handler(request, _h) {\n const { query } = request\n const data = await find(query.query, options.ordnanceSurveyApiKey)\n\n return data\n },\n options: {\n validate: {\n query: Joi.object()\n .keys({\n query: Joi.string().required()\n })\n .required()\n }\n }\n }\n}\n\n/**\n * Proxies ordnance survey reverse geocode requests from the front end to api.os.uk\n * Used to find name from easting and northing points.\n * N.B this endpoint is currently not used by the front end but will be soon in \"maps V2\"\n * @param {MapConfiguration} options - the map options\n * @returns {ServerRoute<MapReverseGeocodeGetRequestRefs>}\n */\nfunction reverseGeocodeProxyRoute(options) {\n return {\n method: 'GET',\n path: '/api/reverse-geocode-proxy',\n async handler(request, _h) {\n const { query } = request\n const data = await nearest(\n query.easting,\n query.northing,\n options.ordnanceSurveyApiKey\n )\n\n return data\n },\n options: {\n validate: {\n query: Joi.object()\n .keys({\n easting: Joi.number().required(),\n northing: Joi.number().required()\n })\n .required()\n }\n }\n }\n}\n\n/**\n * Resource routes to return sprites and glyphs\n * @returns {ServerRoute<MapProxyGetRequestRefs>}\n */\nfunction mapStyleResourceRoutes() {\n return {\n method: 'GET',\n path: '/api/maps/vts/{path*}',\n options: {\n handler: {\n directory: {\n path: resolve(import.meta.dirname, './vts')\n }\n }\n }\n }\n}\n\n/**\n * @import { ServerRoute } from '@hapi/hapi'\n * @import { MapConfiguration, MapProxyGetRequestRefs, MapGeocodeGetRequestRefs, MapReverseGeocodeGetRequestRefs } from '~/src/server/plugins/map/types.js'\n */\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["resolve","StatusCodes","Joi","getAccessToken","find","nearest","get","request","httpRequest","getRoutes","options","mapStyleResourceRoutes","mapProxyRoute","tileProxyRoute","geocodeProxyRoute","reverseGeocodeProxyRoute","method","path","handler","h","query","targetUrl","URL","decodeURIComponent","url","token","searchParams","set","proxyResponse","toString","headers","Authorization","buffer","payload","contentType","res","response","type","validate","object","keys","string","required","optional","z","y","x","params","getBuffer","Accept","json","gunzip","statusCode","OK","valueOf","code","header","_h","data","ordnanceSurveyApiKey","easting","northing","number","directory","import","meta","dirname"],"sources":["../../../../../src/server/plugins/map/routes/index.js"],"sourcesContent":["import { resolve } from 'node:path'\n\nimport { StatusCodes } from 'http-status-codes'\nimport Joi from 'joi'\n\nimport { getAccessToken } from '~/src/server/plugins/map/routes/get-os-token.js'\nimport { find, nearest } from '~/src/server/plugins/map/service.js'\nimport {\n get,\n request as httpRequest\n} from '~/src/server/services/httpService.js'\n\n/**\n * Gets the map support routes\n * @param {MapConfiguration} options - ordnance survey names api key\n */\nexport function getRoutes(options) {\n return [\n mapStyleResourceRoutes(),\n mapProxyRoute(options),\n tileProxyRoute(options),\n geocodeProxyRoute(options),\n reverseGeocodeProxyRoute(options)\n ]\n}\n\n/**\n * Proxies ordnance survey requests from the front end to api.os.com\n * Used for the VTS map source by forwarding on the request\n * and adding the auth token and SRS (spatial reference system)\n * @param {MapConfiguration} options - the map options\n * @returns {ServerRoute<MapProxyGetRequestRefs>}\n */\nfunction mapProxyRoute(options) {\n return {\n method: 'GET',\n path: '/api/map-proxy',\n handler: async (request, h) => {\n const { query } = request\n const targetUrl = new URL(decodeURIComponent(query.url))\n const token = await getAccessToken(options)\n\n targetUrl.searchParams.set('srs', '3857')\n\n const proxyResponse = await httpRequest('get', targetUrl.toString(), {\n headers: {\n Authorization: `Bearer ${token}`\n }\n })\n const buffer = proxyResponse.payload\n const contentType = proxyResponse.res.headers['content-type']\n const response = h.response(buffer)\n\n if (contentType) {\n response.type(contentType)\n }\n\n return response\n },\n options: {\n validate: {\n query: Joi.object()\n .keys({\n url: Joi.string().required()\n })\n .optional()\n }\n }\n }\n}\n\n/**\n * Proxies ordnance survey requests from the front end to api.os.uk\n * Used for VTS map tiles forwarding on the request and adding the auth token\n * @param {MapConfiguration} options - the map options\n * @returns {ServerRoute<MapProxyGetRequestRefs>}\n */\nfunction tileProxyRoute(options) {\n return {\n method: 'GET',\n path: '/api/tile/{z}/{y}/{x}.pbf',\n handler: async (request, h) => {\n const { z, y, x } = request.params\n const token = await getAccessToken(options)\n\n const url = `https://api.os.uk/maps/vector/v1/vts/tile/${z}/${y}/${x}.pbf?srs=3857`\n\n const getBuffer = /** @type {typeof get<Buffer>} */ (get)\n\n const { payload, res } = await getBuffer(url, {\n headers: {\n Authorization: `Bearer ${token}`,\n Accept: 'application/x-protobuf'\n },\n json: false,\n gunzip: true\n })\n\n if (res.statusCode && res.statusCode !== StatusCodes.OK.valueOf()) {\n return h.response('Tile fetch failed').code(res.statusCode)\n }\n\n return h\n .response(payload)\n .type('application/x-protobuf')\n .header('Cache-Control', 'public, max-age=86400')\n }\n }\n}\n\n/**\n * Proxies ordnance survey geocode requests from the front end to api.os.uk\n * Used for the gazzeteer address lookup to find name from query strings like postcode and place names\n * @param {MapConfiguration} options - the map options\n * @returns {ServerRoute<MapGeocodeGetRequestRefs>}\n */\nfunction geocodeProxyRoute(options) {\n return {\n method: 'GET',\n path: '/api/geocode-proxy',\n async handler(request, _h) {\n const { query } = request\n const data = await find(query.query, options.ordnanceSurveyApiKey)\n\n return data\n },\n options: {\n validate: {\n query: Joi.object()\n .keys({\n query: Joi.string().required()\n })\n .required()\n }\n }\n }\n}\n\n/**\n * Proxies ordnance survey reverse geocode requests from the front end to api.os.uk\n * Used to find name from easting and northing points.\n * N.B this endpoint is currently not used by the front end but will be soon in \"maps V2\"\n * @param {MapConfiguration} options - the map options\n * @returns {ServerRoute<MapReverseGeocodeGetRequestRefs>}\n */\nfunction reverseGeocodeProxyRoute(options) {\n return {\n method: 'GET',\n path: '/api/reverse-geocode-proxy',\n async handler(request, _h) {\n const { query } = request\n const data = await nearest(\n query.easting,\n query.northing,\n options.ordnanceSurveyApiKey\n )\n\n return data\n },\n options: {\n validate: {\n query: Joi.object()\n .keys({\n easting: Joi.number().required(),\n northing: Joi.number().required()\n })\n .required()\n }\n }\n }\n}\n\n/**\n * Resource routes to return sprites and glyphs\n * @returns {ServerRoute<MapProxyGetRequestRefs>}\n */\nfunction mapStyleResourceRoutes() {\n return {\n method: 'GET',\n path: '/api/maps/vts/{path*}',\n options: {\n handler: {\n directory: {\n path: resolve(import.meta.dirname, './vts')\n }\n }\n }\n }\n}\n\n/**\n * @import { ServerRoute } from '@hapi/hapi'\n * @import { MapConfiguration, MapProxyGetRequestRefs, MapGeocodeGetRequestRefs, MapReverseGeocodeGetRequestRefs } from '~/src/server/plugins/map/types.js'\n */\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -11,4 +11,4 @@ export function find(query: string, apiKey: string): Promise<OsNamesFindResponse
|
|
|
11
11
|
* @param {string} apiKey - the OS api key
|
|
12
12
|
*/
|
|
13
13
|
export function nearest(easting: number, northing: number, apiKey: string): Promise<OsNamesFindResponse>;
|
|
14
|
-
import type { OsNamesFindResponse } from '
|
|
14
|
+
import type { OsNamesFindResponse } from '../../../server/plugins/map/types.js';
|
|
@@ -22,7 +22,10 @@ function empty() {
|
|
|
22
22
|
* @param {string} endpoint - the OS api endpoint
|
|
23
23
|
*/
|
|
24
24
|
function logErrorAndReturnEmpty(err, endpoint) {
|
|
25
|
-
|
|
25
|
+
/** @type {{ payload?: { error?: { message?: string } } } | false} */
|
|
26
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
27
|
+
const boomData = Boom.isBoom(err) && err.data;
|
|
28
|
+
const msg = `${getErrorMessage(err)} ${(boomData && boomData.payload?.error?.message) ?? ''}`;
|
|
26
29
|
logger.error(err, `Exception occured calling OS names ${endpoint} - ${msg}}`);
|
|
27
30
|
return empty();
|
|
28
31
|
}
|
|
@@ -71,6 +74,6 @@ export async function nearest(easting, northing, apiKey) {
|
|
|
71
74
|
}
|
|
72
75
|
|
|
73
76
|
/**
|
|
74
|
-
* @import { OsNamesFindResponse, OsNamesFindResult } from '
|
|
77
|
+
* @import { OsNamesFindResponse, OsNamesFindResult } from '../../../server/plugins/map/types.js'
|
|
75
78
|
*/
|
|
76
79
|
//# sourceMappingURL=service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","names":["getErrorMessage","Boom","createLogger","getJson","logger","empty","results","header","logErrorAndReturnEmpty","err","endpoint","
|
|
1
|
+
{"version":3,"file":"service.js","names":["getErrorMessage","Boom","createLogger","getJson","logger","empty","results","header","logErrorAndReturnEmpty","err","endpoint","boomData","isBoom","data","msg","payload","error","message","getData","url","getJsonByType","response","find","query","apiKey","nearest","easting","northing"],"sources":["../../../../src/server/plugins/map/service.js"],"sourcesContent":["import { getErrorMessage } from '@defra/forms-model'\nimport Boom from '@hapi/boom'\n\nimport { createLogger } from '~/src/server/common/helpers/logging/logger.js'\nimport { getJson } from '~/src/server/services/httpService.js'\n\nconst logger = createLogger()\n\n/**\n * Returns an empty result set\n */\nfunction empty() {\n /** @type {OsNamesFindResult[]} */\n const results = []\n\n return /** @type {OsNamesFindResponse} */ ({ header: {}, results })\n}\n\n/**\n * Logs OS names errors\n * @param {unknown} err - the error\n * @param {string} endpoint - the OS api endpoint\n */\nfunction logErrorAndReturnEmpty(err, endpoint) {\n /** @type {{ payload?: { error?: { message?: string } } } | false} */\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const boomData = Boom.isBoom(err) && err.data\n const msg = `${getErrorMessage(err)} ${(boomData && boomData.payload?.error?.message) ?? ''}`\n\n logger.error(err, `Exception occured calling OS names ${endpoint} - ${msg}}`)\n\n return empty()\n}\n\n/**\n * Fetch data from OS names API\n * @param {string} url - the url to get address json data from\n * @param {string} endpoint - the url endpoint description for logging\n */\nasync function getData(url, endpoint) {\n const getJsonByType = /** @type {typeof getJson<OsNamesFindResponse>} */ (\n getJson\n )\n\n try {\n const response = await getJsonByType(url)\n\n if (response.error) {\n return logErrorAndReturnEmpty(response.error, endpoint)\n }\n\n const results = response.payload\n\n return results\n } catch (err) {\n return logErrorAndReturnEmpty(err, endpoint)\n }\n}\n\n/**\n * OS names search find by query\n * @param {string} query - the search term\n * @param {string} apiKey - the OS api key\n */\nexport async function find(query, apiKey) {\n const endpoint = 'find'\n const url = `https://api.os.uk/search/names/v1/find?key=${apiKey}&query=${query}&fq=local_type:postcode%20local_type:hamlet%20local_type:village%20local_type:town%20local_type:city%20local_type:other_settlement&maxresults=8`\n\n return getData(url, endpoint)\n}\n\n/**\n * OS names search nearest by E/N\n * @param {number} easting - the easting\n * @param {number} northing - the northing\n * @param {string} apiKey - the OS api key\n */\nexport async function nearest(easting, northing, apiKey) {\n const endpoint = 'nearest'\n const url = `https://api.os.uk/search/names/v1/nearest?key=${apiKey}&point=${easting},${northing}&radius=1000&fq=local_type:Airfield%20local_type:Airport%20local_type:Bus_Station%20local_type:Chemical_Works%20local_type:City%20local_type:Coach_Station%20local_type:Electricity_Distribution%20local_type:Electricity_Production%20local_type:Further_Education%20local_type:Gas_Distribution_or_Storage%20local_type:Hamlet%20local_type:Harbour%20local_type:Helicopter_Station%20local_type:Heliport%20local_type:Higher_or_University_Education%20local_type:Hill_Or_Mountain%20local_type:Hospice%20local_type:Hospital%20local_type:Medical_Care_Accommodation%20local_type:Named_Road%20local_type:Non_State_Primary_Education%20local_type:Non_State_Secondary_Education%20local_type:Other_Settlement%20local_type:Passenger_Ferry_Terminal%20local_type:Port_Consisting_of_Docks_and_Nautical_Berthing%20local_type:Postcode%20local_type:Primary_Education%20local_type:Railway_Station%20local_type:Road_User_Services%20local_type:Secondary_Education%20local_type:Section_Of_Named_Road%20local_type:Section_Of_Numbered_Road%20local_type:Special_Needs_Education%20local_type:Suburban_Area%20local_type:Town%20local_type:Urban_Greenspace%20local_type:Vehicular_Ferry_Terminal%20local_type:Vehicular_Rail_Terminal%20local_type:Village%20local_type:Waterfall%20`\n\n return getData(url, endpoint)\n}\n\n/**\n * @import { OsNamesFindResponse, OsNamesFindResult } from '~/src/server/plugins/map/types.js'\n */\n"],"mappings":"AAAA,SAASA,eAAe,QAAQ,oBAAoB;AACpD,OAAOC,IAAI,MAAM,YAAY;AAE7B,SAASC,YAAY;AACrB,SAASC,OAAO;AAEhB,MAAMC,MAAM,GAAGF,YAAY,CAAC,CAAC;;AAE7B;AACA;AACA;AACA,SAASG,KAAKA,CAAA,EAAG;EACf;EACA,MAAMC,OAAO,GAAG,EAAE;EAElB,OAAO,kCAAoC;IAAEC,MAAM,EAAE,CAAC,CAAC;IAAED;EAAQ,CAAC;AACpE;;AAEA;AACA;AACA;AACA;AACA;AACA,SAASE,sBAAsBA,CAACC,GAAG,EAAEC,QAAQ,EAAE;EAC7C;EACA;EACA,MAAMC,QAAQ,GAAGV,IAAI,CAACW,MAAM,CAACH,GAAG,CAAC,IAAIA,GAAG,CAACI,IAAI;EAC7C,MAAMC,GAAG,GAAG,GAAGd,eAAe,CAACS,GAAG,CAAC,IAAI,CAACE,QAAQ,IAAIA,QAAQ,CAACI,OAAO,EAAEC,KAAK,EAAEC,OAAO,KAAK,EAAE,EAAE;EAE7Fb,MAAM,CAACY,KAAK,CAACP,GAAG,EAAE,sCAAsCC,QAAQ,MAAMI,GAAG,GAAG,CAAC;EAE7E,OAAOT,KAAK,CAAC,CAAC;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAea,OAAOA,CAACC,GAAG,EAAET,QAAQ,EAAE;EACpC,MAAMU,aAAa,GAAG;EACpBjB,OACD;EAED,IAAI;IACF,MAAMkB,QAAQ,GAAG,MAAMD,aAAa,CAACD,GAAG,CAAC;IAEzC,IAAIE,QAAQ,CAACL,KAAK,EAAE;MAClB,OAAOR,sBAAsB,CAACa,QAAQ,CAACL,KAAK,EAAEN,QAAQ,CAAC;IACzD;IAEA,MAAMJ,OAAO,GAAGe,QAAQ,CAACN,OAAO;IAEhC,OAAOT,OAAO;EAChB,CAAC,CAAC,OAAOG,GAAG,EAAE;IACZ,OAAOD,sBAAsB,CAACC,GAAG,EAAEC,QAAQ,CAAC;EAC9C;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeY,IAAIA,CAACC,KAAK,EAAEC,MAAM,EAAE;EACxC,MAAMd,QAAQ,GAAG,MAAM;EACvB,MAAMS,GAAG,GAAG,8CAA8CK,MAAM,UAAUD,KAAK,iJAAiJ;EAEhO,OAAOL,OAAO,CAACC,GAAG,EAAET,QAAQ,CAAC;AAC/B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAee,OAAOA,CAACC,OAAO,EAAEC,QAAQ,EAAEH,MAAM,EAAE;EACvD,MAAMd,QAAQ,GAAG,SAAS;EAC1B,MAAMS,GAAG,GAAG,iDAAiDK,MAAM,UAAUE,OAAO,IAAIC,QAAQ,4tCAA4tC;EAE5zC,OAAOT,OAAO,CAACC,GAAG,EAAET,QAAQ,CAAC;AAC/B;;AAEA;AACA;AACA","ignoreList":[]}
|
|
@@ -11,5 +11,5 @@ export function devtoolContext(_request: AnyFormRequest | null): Record<string,
|
|
|
11
11
|
assetPath: string;
|
|
12
12
|
getDxtAssetPath: (asset: string) => string;
|
|
13
13
|
};
|
|
14
|
-
import type { AnyFormRequest } from '
|
|
15
|
-
import type { ViewContext } from '
|
|
14
|
+
import type { AnyFormRequest } from '../../../server/plugins/engine/types.js';
|
|
15
|
+
import type { ViewContext } from '../../../server/plugins/nunjucks/types.js';
|
|
@@ -82,7 +82,7 @@ export function devtoolContext(_request) {
|
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
/**
|
|
85
|
-
* @import { ViewContext } from '
|
|
86
|
-
* @import { AnyFormRequest } from '
|
|
85
|
+
* @import { ViewContext } from '../../../server/plugins/nunjucks/types.js'
|
|
86
|
+
* @import { AnyFormRequest } from '../../../server/plugins/engine/types.js'
|
|
87
87
|
*/
|
|
88
88
|
//# sourceMappingURL=context.js.map
|
|
@@ -164,6 +164,6 @@ describe('Nunjucks environment', () => {
|
|
|
164
164
|
});
|
|
165
165
|
|
|
166
166
|
/*
|
|
167
|
-
* @import { ComponentViewModel } from '
|
|
167
|
+
* @import { ComponentViewModel } from '../../../server/plugins/engine/components/types.js'
|
|
168
168
|
*/
|
|
169
169
|
//# sourceMappingURL=enviroment.test.js.map
|
|
@@ -16,7 +16,7 @@ export function evaluate(this: NunjucksContext, template: string): string;
|
|
|
16
16
|
export function govukRebrand(): boolean;
|
|
17
17
|
export const paths: string[];
|
|
18
18
|
export const environment: nunjucks.Environment;
|
|
19
|
-
import type { FormSubmissionError } from '
|
|
20
|
-
import type { NunjucksContext } from '
|
|
21
|
-
import type { ComponentViewModel } from '
|
|
19
|
+
import type { FormSubmissionError } from '../../../server/plugins/engine/types.js';
|
|
20
|
+
import type { NunjucksContext } from '../../../server/plugins/nunjucks/types.js';
|
|
21
|
+
import type { ComponentViewModel } from '../../../server/plugins/engine/components/types.js';
|
|
22
22
|
import nunjucks from 'nunjucks';
|
|
@@ -92,8 +92,8 @@ export function govukRebrand() {
|
|
|
92
92
|
environment.addGlobal('govukRebrand', govukRebrand());
|
|
93
93
|
|
|
94
94
|
/**
|
|
95
|
-
* @import { NunjucksContext } from '
|
|
96
|
-
* @import { FormSubmissionError } from '
|
|
97
|
-
* @import { ComponentViewModel } from '
|
|
95
|
+
* @import { NunjucksContext } from '../../../server/plugins/nunjucks/types.js'
|
|
96
|
+
* @import { FormSubmissionError } from '../../../server/plugins/engine/types.js'
|
|
97
|
+
* @import { ComponentViewModel } from '../../../server/plugins/engine/components/types.js'
|
|
98
98
|
*/
|
|
99
99
|
//# sourceMappingURL=environment.js.map
|
|
@@ -4,4 +4,4 @@
|
|
|
4
4
|
* @param {string} name - The name of the component to check
|
|
5
5
|
*/
|
|
6
6
|
export function answer(this: NunjucksContext, name: string): string | undefined;
|
|
7
|
-
import type { NunjucksContext } from '
|
|
7
|
+
import type { NunjucksContext } from '../../../../server/plugins/nunjucks/types.js';
|
|
@@ -20,7 +20,7 @@ export function answer(name) {
|
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
|
-
* @import { NunjucksContext } from '
|
|
24
|
-
* @import { Field } from '
|
|
23
|
+
* @import { NunjucksContext } from '../../../../server/plugins/nunjucks/types.js'
|
|
24
|
+
* @import { Field } from '../../../../server/plugins/engine/components/helpers/components.js'
|
|
25
25
|
*/
|
|
26
26
|
//# sourceMappingURL=answer.js.map
|
|
@@ -65,6 +65,6 @@ describe('answer Nunjucks filter', () => {
|
|
|
65
65
|
});
|
|
66
66
|
|
|
67
67
|
/**
|
|
68
|
-
* @import { NunjucksContext } from '
|
|
68
|
+
* @import { NunjucksContext } from '../../../../server/plugins/nunjucks/types.js'
|
|
69
69
|
*/
|
|
70
70
|
//# sourceMappingURL=answer.test.js.map
|
|
@@ -5,4 +5,4 @@
|
|
|
5
5
|
* @param {string} template
|
|
6
6
|
*/
|
|
7
7
|
export function evaluate(this: NunjucksContext, template: string): string;
|
|
8
|
-
import type { NunjucksContext } from '
|
|
8
|
+
import type { NunjucksContext } from '../../../../server/plugins/nunjucks/types.js';
|
|
@@ -4,4 +4,4 @@
|
|
|
4
4
|
* @param {string} name - The name of the component
|
|
5
5
|
*/
|
|
6
6
|
export function field(this: NunjucksContext, name: string): import("../../engine/components/TextField.js").TextField | import("../../engine/components/SelectField.js").SelectField | import("../../engine/components/RadiosField.js").RadiosField | import("../../engine/components/YesNoField.js").YesNoField | import("../../engine/components/CheckboxesField.js").CheckboxesField | import("../../engine/components/DatePartsField.js").DatePartsField | import("../../engine/components/DeclarationField.js").DeclarationField | import("../../engine/components/EastingNorthingField.js").EastingNorthingField | import("../../engine/components/EmailAddressField.js").EmailAddressField | import("../../engine/components/LatLongField.js").LatLongField | import("../../engine/components/MonthYearField.js").MonthYearField | import("../../engine/components/MultilineTextField.js").MultilineTextField | import("../../engine/components/NationalGridFieldNumberField.js").NationalGridFieldNumberField | import("../../engine/components/NumberField.js").NumberField | import("../../engine/components/OsGridRefField.js").OsGridRefField | import("../../engine/components/TelephoneNumberField.js").TelephoneNumberField | import("../../engine/components/UkAddressField.js").UkAddressField | import("../../engine/components/FileUploadField.js").FileUploadField | import("../../engine/components/HiddenField.js").HiddenField | import("../../engine/components/PaymentField.js").PaymentField | import("../../engine/components/GeospatialField.js").GeospatialField | import("../../engine/components/Details.js").Details | import("../../engine/components/Html.js").Html | import("../../engine/components/InsetText.js").InsetText | import("../../engine/components/List.js").List | import("../../engine/components/Markdown.js").Markdown | undefined;
|
|
7
|
-
import type { NunjucksContext } from '
|
|
7
|
+
import type { NunjucksContext } from '../../../../server/plugins/nunjucks/types.js';
|
|
@@ -59,6 +59,6 @@ describe('field Nunjucks filter', () => {
|
|
|
59
59
|
});
|
|
60
60
|
|
|
61
61
|
/**
|
|
62
|
-
* @import { NunjucksContext } from '
|
|
62
|
+
* @import { NunjucksContext } from '../../../../server/plugins/nunjucks/types.js'
|
|
63
63
|
*/
|
|
64
64
|
//# sourceMappingURL=field.test.js.map
|
|
@@ -4,4 +4,4 @@
|
|
|
4
4
|
* @param {string} path - The name of the component
|
|
5
5
|
*/
|
|
6
6
|
export function href(this: NunjucksContext, path: string): string | undefined;
|
|
7
|
-
import type { NunjucksContext } from '
|
|
7
|
+
import type { NunjucksContext } from '../../../../server/plugins/nunjucks/types.js';
|
|
@@ -58,6 +58,6 @@ describe('href Nunjucks filter', () => {
|
|
|
58
58
|
});
|
|
59
59
|
|
|
60
60
|
/**
|
|
61
|
-
* @import { NunjucksContext } from '
|
|
61
|
+
* @import { NunjucksContext } from '../../../../server/plugins/nunjucks/types.js'
|
|
62
62
|
*/
|
|
63
63
|
//# sourceMappingURL=href.test.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { highlight } from "
|
|
2
|
-
export { inspect } from "
|
|
3
|
-
export { evaluate } from "
|
|
4
|
-
export { answer } from "
|
|
5
|
-
export { href } from "
|
|
6
|
-
export { field } from "
|
|
7
|
-
export { page } from "
|
|
8
|
-
export { merge } from "
|
|
1
|
+
export { highlight } from "../../../../server/plugins/nunjucks/filters/highlight.js";
|
|
2
|
+
export { inspect } from "../../../../server/plugins/nunjucks/filters/inspect.js";
|
|
3
|
+
export { evaluate } from "../../../../server/plugins/nunjucks/filters/evaluate.js";
|
|
4
|
+
export { answer } from "../../../../server/plugins/nunjucks/filters/answer.js";
|
|
5
|
+
export { href } from "../../../../server/plugins/nunjucks/filters/href.js";
|
|
6
|
+
export { field } from "../../../../server/plugins/nunjucks/filters/field.js";
|
|
7
|
+
export { page } from "../../../../server/plugins/nunjucks/filters/page.js";
|
|
8
|
+
export { merge } from "../../../../server/plugins/nunjucks/filters/merge.js";
|
|
@@ -4,4 +4,4 @@
|
|
|
4
4
|
* @param {string} path - The path of the page
|
|
5
5
|
*/
|
|
6
6
|
export function page(this: NunjucksContext, path: string): import("../../engine/pageControllers/StartPageController.js").StartPageController | import("../../engine/pageControllers/QuestionPageController.js").QuestionPageController | import("../../engine/pageControllers/RepeatPageController.js").RepeatPageController | undefined;
|
|
7
|
-
import type { NunjucksContext } from '
|
|
7
|
+
import type { NunjucksContext } from '../../../../server/plugins/nunjucks/types.js';
|
|
@@ -46,6 +46,6 @@ describe('page Nunjucks filter', () => {
|
|
|
46
46
|
});
|
|
47
47
|
|
|
48
48
|
/**
|
|
49
|
-
* @import { NunjucksContext } from '
|
|
49
|
+
* @import { NunjucksContext } from '../../../../server/plugins/nunjucks/types.js'
|
|
50
50
|
*/
|
|
51
51
|
//# sourceMappingURL=page.test.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * as render from "
|
|
2
|
-
export { environment } from "
|
|
3
|
-
export { plugin } from "
|
|
1
|
+
export * as render from "../../../server/plugins/nunjucks/render.js";
|
|
2
|
+
export { environment } from "../../../server/plugins/nunjucks/environment.js";
|
|
3
|
+
export { plugin } from "../../../server/plugins/nunjucks/plugin.js";
|
|
@@ -17,5 +17,5 @@ export function string(viewString: string, options?: RenderOptions): string;
|
|
|
17
17
|
* @param {RenderOptions} [options]
|
|
18
18
|
*/
|
|
19
19
|
export function view(viewPath: string, options?: RenderOptions): string;
|
|
20
|
-
import type { RenderOptions } from '
|
|
21
|
-
import type { MacroOptions } from '
|
|
20
|
+
import type { RenderOptions } from '../../../server/plugins/nunjucks/types.js';
|
|
21
|
+
import type { MacroOptions } from '../../../server/plugins/nunjucks/types.js';
|
|
@@ -36,6 +36,6 @@ export function view(viewPath, options) {
|
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
/**
|
|
39
|
-
* @import { MacroOptions, RenderOptions } from '
|
|
39
|
+
* @import { MacroOptions, RenderOptions } from '../../../server/plugins/nunjucks/types.js'
|
|
40
40
|
*/
|
|
41
41
|
//# sourceMappingURL=render.js.map
|