@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.
Files changed (402) hide show
  1. package/.server/client/javascripts/geospatial-map.d.ts +6 -6
  2. package/.server/client/javascripts/geospatial-map.js +3 -3
  3. package/.server/client/javascripts/location-map.d.ts +1 -1
  4. package/.server/client/javascripts/location-map.js +1 -1
  5. package/.server/client/javascripts/map.d.ts +1 -1
  6. package/.server/client/javascripts/map.js +1 -1
  7. package/.server/client/javascripts/shared.d.ts +7 -7
  8. package/.server/server/index.d.ts +1 -1
  9. package/.server/server/plugins/crumb.d.ts +1 -1
  10. package/.server/server/plugins/engine/beta/form-context.d.ts +6 -6
  11. package/.server/server/plugins/engine/components/AutocompleteField.d.ts +4 -4
  12. package/.server/server/plugins/engine/components/CheckboxesField.d.ts +2 -2
  13. package/.server/server/plugins/engine/components/CheckboxesField.js +2 -2
  14. package/.server/server/plugins/engine/components/CheckboxesField.js.map +1 -1
  15. package/.server/server/plugins/engine/components/ComponentBase.d.ts +5 -5
  16. package/.server/server/plugins/engine/components/ComponentCollection.d.ts +8 -8
  17. package/.server/server/plugins/engine/components/DatePartsField.d.ts +11 -11
  18. package/.server/server/plugins/engine/components/DeclarationField.d.ts +3 -3
  19. package/.server/server/plugins/engine/components/Details.d.ts +1 -1
  20. package/.server/server/plugins/engine/components/EastingNorthingField.d.ts +22 -22
  21. package/.server/server/plugins/engine/components/EmailAddressField.d.ts +4 -4
  22. package/.server/server/plugins/engine/components/FileUploadField.d.ts +3 -3
  23. package/.server/server/plugins/engine/components/FormComponent.d.ts +10 -10
  24. package/.server/server/plugins/engine/components/GeospatialField.d.ts +6 -6
  25. package/.server/server/plugins/engine/components/HiddenField.d.ts +2 -2
  26. package/.server/server/plugins/engine/components/Html.d.ts +1 -1
  27. package/.server/server/plugins/engine/components/InsetText.d.ts +1 -1
  28. package/.server/server/plugins/engine/components/LatLongField.d.ts +22 -22
  29. package/.server/server/plugins/engine/components/List.d.ts +8 -8
  30. package/.server/server/plugins/engine/components/ListFormComponent.d.ts +10 -10
  31. package/.server/server/plugins/engine/components/LocationFieldBase.d.ts +6 -6
  32. package/.server/server/plugins/engine/components/LocationFieldHelpers.d.ts +14 -14
  33. package/.server/server/plugins/engine/components/Markdown.d.ts +1 -1
  34. package/.server/server/plugins/engine/components/MonthYearField.d.ts +11 -11
  35. package/.server/server/plugins/engine/components/MultilineTextField.d.ts +5 -5
  36. package/.server/server/plugins/engine/components/NationalGridFieldNumberField.d.ts +1 -1
  37. package/.server/server/plugins/engine/components/NumberField.d.ts +3 -3
  38. package/.server/server/plugins/engine/components/OsGridRefField.d.ts +1 -1
  39. package/.server/server/plugins/engine/components/PaymentField.d.ts +12 -12
  40. package/.server/server/plugins/engine/components/RadiosField.d.ts +1 -1
  41. package/.server/server/plugins/engine/components/SelectField.d.ts +4 -4
  42. package/.server/server/plugins/engine/components/SelectionControlField.d.ts +10 -10
  43. package/.server/server/plugins/engine/components/TelephoneNumberField.d.ts +4 -4
  44. package/.server/server/plugins/engine/components/TextField.d.ts +2 -2
  45. package/.server/server/plugins/engine/components/UkAddressField.d.ts +11 -11
  46. package/.server/server/plugins/engine/components/YesNoField.d.ts +2 -2
  47. package/.server/server/plugins/engine/components/helpers/__stubs__/geospatial.d.ts +1 -1
  48. package/.server/server/plugins/engine/components/helpers/components.d.ts +5 -5
  49. package/.server/server/plugins/engine/components/helpers/geospatial.d.ts +1 -1
  50. package/.server/server/plugins/engine/components/index.d.ts +27 -27
  51. package/.server/server/plugins/engine/components/types.d.ts +1 -1
  52. package/.server/server/plugins/engine/configureEnginePlugin.d.ts +4 -4
  53. package/.server/server/plugins/engine/date-helper.d.ts +1 -1
  54. package/.server/server/plugins/engine/helpers.d.ts +8 -8
  55. package/.server/server/plugins/engine/index.d.ts +5 -5
  56. package/.server/server/plugins/engine/models/FormModel.d.ts +6 -6
  57. package/.server/server/plugins/engine/models/SummaryViewModel.d.ts +6 -6
  58. package/.server/server/plugins/engine/models/index.d.ts +2 -2
  59. package/.server/server/plugins/engine/models/types.d.ts +4 -4
  60. package/.server/server/plugins/engine/options.d.ts +1 -1
  61. package/.server/server/plugins/engine/options.js +1 -1
  62. package/.server/server/plugins/engine/options.test.js +1 -1
  63. package/.server/server/plugins/engine/outputFormatters/adapter/v1.d.ts +4 -4
  64. package/.server/server/plugins/engine/outputFormatters/human/v1.d.ts +4 -4
  65. package/.server/server/plugins/engine/outputFormatters/index.d.ts +5 -5
  66. package/.server/server/plugins/engine/outputFormatters/machine/v1.d.ts +4 -4
  67. package/.server/server/plugins/engine/outputFormatters/machine/v2.d.ts +4 -4
  68. package/.server/server/plugins/engine/pageControllers/FileUploadPageController.d.ts +8 -8
  69. package/.server/server/plugins/engine/pageControllers/PageController.d.ts +6 -6
  70. package/.server/server/plugins/engine/pageControllers/QuestionPageController.d.ts +8 -8
  71. package/.server/server/plugins/engine/pageControllers/RepeatPageController.d.ts +5 -5
  72. package/.server/server/plugins/engine/pageControllers/StartPageController.d.ts +4 -4
  73. package/.server/server/plugins/engine/pageControllers/StatusPageController.d.ts +4 -4
  74. package/.server/server/plugins/engine/pageControllers/SummaryPageController.d.ts +5 -5
  75. package/.server/server/plugins/engine/pageControllers/TerminalPageController.d.ts +3 -3
  76. package/.server/server/plugins/engine/pageControllers/__stubs__/request.d.ts +2 -2
  77. package/.server/server/plugins/engine/pageControllers/errors.d.ts +1 -1
  78. package/.server/server/plugins/engine/pageControllers/helpers/pages.d.ts +2 -2
  79. package/.server/server/plugins/engine/pageControllers/helpers/state.d.ts +5 -5
  80. package/.server/server/plugins/engine/pageControllers/helpers/state.js +1 -1
  81. package/.server/server/plugins/engine/pageControllers/helpers/state.js.map +1 -1
  82. package/.server/server/plugins/engine/pageControllers/helpers/submission.d.ts +1 -1
  83. package/.server/server/plugins/engine/pageControllers/index.d.ts +7 -7
  84. package/.server/server/plugins/engine/plugin.d.ts +1 -1
  85. package/.server/server/plugins/engine/routes/file-upload.d.ts +1 -1
  86. package/.server/server/plugins/engine/routes/index.d.ts +3 -3
  87. package/.server/server/plugins/engine/routes/payment-helper.d.ts +3 -3
  88. package/.server/server/plugins/engine/routes/payment-helper.js +2 -2
  89. package/.server/server/plugins/engine/routes/payment.js +5 -5
  90. package/.server/server/plugins/engine/routes/payment.test.js +1 -1
  91. package/.server/server/plugins/engine/routes/questions.d.ts +2 -2
  92. package/.server/server/plugins/engine/routes/repeaters/item-delete.d.ts +2 -2
  93. package/.server/server/plugins/engine/routes/repeaters/summary.d.ts +2 -2
  94. package/.server/server/plugins/engine/services/index.d.ts +3 -3
  95. package/.server/server/plugins/engine/services/notifyService.d.ts +4 -4
  96. package/.server/server/plugins/engine/services/uploadService.d.ts +2 -2
  97. package/.server/server/plugins/engine/services/uploadService.js +1 -1
  98. package/.server/server/plugins/engine/types/index.d.ts +10 -10
  99. package/.server/server/plugins/engine/types/schema.d.ts +1 -1
  100. package/.server/server/plugins/engine/types.d.ts +25 -16
  101. package/.server/server/plugins/engine/types.js.map +1 -1
  102. package/.server/server/plugins/engine/validationHelpers.d.ts +2 -2
  103. package/.server/server/plugins/engine/vision.d.ts +1 -1
  104. package/.server/server/plugins/map/index.d.ts +1 -1
  105. package/.server/server/plugins/map/index.js +1 -1
  106. package/.server/server/plugins/map/routes/get-os-token.d.ts +11 -1
  107. package/.server/server/plugins/map/routes/get-os-token.js +12 -2
  108. package/.server/server/plugins/map/routes/get-os-token.js.map +1 -1
  109. package/.server/server/plugins/map/routes/index.d.ts +4 -4
  110. package/.server/server/plugins/map/routes/index.js +3 -2
  111. package/.server/server/plugins/map/routes/index.js.map +1 -1
  112. package/.server/server/plugins/map/service.d.ts +1 -1
  113. package/.server/server/plugins/map/service.js +5 -2
  114. package/.server/server/plugins/map/service.js.map +1 -1
  115. package/.server/server/plugins/map/test/__stubs__/find.d.ts +1 -1
  116. package/.server/server/plugins/map/test/__stubs__/find.js +1 -1
  117. package/.server/server/plugins/nunjucks/context.d.ts +2 -2
  118. package/.server/server/plugins/nunjucks/context.js +2 -2
  119. package/.server/server/plugins/nunjucks/context.test.js +1 -1
  120. package/.server/server/plugins/nunjucks/enviroment.test.js +1 -1
  121. package/.server/server/plugins/nunjucks/environment.d.ts +3 -3
  122. package/.server/server/plugins/nunjucks/environment.js +3 -3
  123. package/.server/server/plugins/nunjucks/filters/answer.d.ts +1 -1
  124. package/.server/server/plugins/nunjucks/filters/answer.js +2 -2
  125. package/.server/server/plugins/nunjucks/filters/answer.test.js +1 -1
  126. package/.server/server/plugins/nunjucks/filters/evaluate.d.ts +1 -1
  127. package/.server/server/plugins/nunjucks/filters/evaluate.js +1 -1
  128. package/.server/server/plugins/nunjucks/filters/field.d.ts +1 -1
  129. package/.server/server/plugins/nunjucks/filters/field.js +1 -1
  130. package/.server/server/plugins/nunjucks/filters/field.test.js +1 -1
  131. package/.server/server/plugins/nunjucks/filters/href.d.ts +1 -1
  132. package/.server/server/plugins/nunjucks/filters/href.js +1 -1
  133. package/.server/server/plugins/nunjucks/filters/href.test.js +1 -1
  134. package/.server/server/plugins/nunjucks/filters/index.d.ts +8 -8
  135. package/.server/server/plugins/nunjucks/filters/page.d.ts +1 -1
  136. package/.server/server/plugins/nunjucks/filters/page.js +1 -1
  137. package/.server/server/plugins/nunjucks/filters/page.test.js +1 -1
  138. package/.server/server/plugins/nunjucks/index.d.ts +3 -3
  139. package/.server/server/plugins/nunjucks/render.d.ts +2 -2
  140. package/.server/server/plugins/nunjucks/render.js +1 -1
  141. package/.server/server/plugins/nunjucks/types.d.ts +1 -1
  142. package/.server/server/plugins/nunjucks/types.js +1 -1
  143. package/.server/server/plugins/payment/helper.d.ts +2 -2
  144. package/.server/server/plugins/payment/helper.js +1 -1
  145. package/.server/server/plugins/payment/service.d.ts +3 -3
  146. package/.server/server/plugins/payment/service.js +1 -1
  147. package/.server/server/plugins/postcode-lookup/index.d.ts +1 -1
  148. package/.server/server/plugins/postcode-lookup/index.js +1 -1
  149. package/.server/server/plugins/postcode-lookup/models/index.d.ts +6 -6
  150. package/.server/server/plugins/postcode-lookup/models/index.js +1 -1
  151. package/.server/server/plugins/postcode-lookup/routes/index.d.ts +6 -6
  152. package/.server/server/plugins/postcode-lookup/routes/index.js +15 -15
  153. package/.server/server/plugins/postcode-lookup/routes/index.js.map +1 -1
  154. package/.server/server/plugins/postcode-lookup/service.d.ts +1 -1
  155. package/.server/server/plugins/postcode-lookup/service.js +5 -2
  156. package/.server/server/plugins/postcode-lookup/service.js.map +1 -1
  157. package/.server/server/plugins/postcode-lookup/types.js +1 -1
  158. package/.server/server/routes/index.d.ts +2 -2
  159. package/.server/server/routes/types.d.ts +1 -1
  160. package/.server/server/schemas/index.d.ts +2 -2
  161. package/.server/server/services/cacheService.d.ts +8 -8
  162. package/.server/server/services/cacheService.js +2 -5
  163. package/.server/server/services/cacheService.js.map +1 -1
  164. package/.server/server/services/httpService.test.js +1 -1
  165. package/.server/server/services/index.d.ts +1 -1
  166. package/.server/server/types.d.ts +7 -7
  167. package/.server/server/utils/file-form-service.d.ts +2 -2
  168. package/.server/server/utils/file-form-service.js +1 -1
  169. package/package.json +8 -4
  170. package/src/client/javascripts/application.js +1 -1
  171. package/src/client/javascripts/geospatial-map.js +4 -4
  172. package/src/client/javascripts/location-map.js +2 -2
  173. package/src/client/javascripts/map.js +3 -3
  174. package/src/client/javascripts/shared.js +7 -7
  175. package/src/index.ts +3 -3
  176. package/src/server/common/helpers/logging/logger-options.ts +1 -1
  177. package/src/server/common/helpers/logging/logger.ts +1 -1
  178. package/src/server/common/helpers/logging/request-logger.ts +1 -1
  179. package/src/server/common/helpers/logging/request-tracing.js +1 -1
  180. package/src/server/common/helpers/redis-client.js +2 -2
  181. package/src/server/index.ts +13 -13
  182. package/src/server/plugins/crumb.ts +2 -2
  183. package/src/server/plugins/engine/beta/form-context.ts +9 -9
  184. package/src/server/plugins/engine/components/AutocompleteField.ts +3 -3
  185. package/src/server/plugins/engine/components/CheckboxesField.ts +7 -8
  186. package/src/server/plugins/engine/components/ComponentBase.ts +5 -5
  187. package/src/server/plugins/engine/components/ComponentCollection.ts +9 -9
  188. package/src/server/plugins/engine/components/DatePartsField.ts +8 -8
  189. package/src/server/plugins/engine/components/DeclarationField.ts +3 -3
  190. package/src/server/plugins/engine/components/Details.ts +1 -1
  191. package/src/server/plugins/engine/components/EastingNorthingField.ts +9 -9
  192. package/src/server/plugins/engine/components/EmailAddressField.ts +3 -3
  193. package/src/server/plugins/engine/components/FileUploadField.ts +6 -6
  194. package/src/server/plugins/engine/components/FormComponent.ts +4 -4
  195. package/src/server/plugins/engine/components/GeospatialField.ts +5 -5
  196. package/src/server/plugins/engine/components/HiddenField.ts +4 -4
  197. package/src/server/plugins/engine/components/Html.ts +1 -1
  198. package/src/server/plugins/engine/components/InsetText.ts +1 -1
  199. package/src/server/plugins/engine/components/LatLongField.ts +9 -9
  200. package/src/server/plugins/engine/components/List.ts +2 -2
  201. package/src/server/plugins/engine/components/ListFormComponent.ts +4 -4
  202. package/src/server/plugins/engine/components/LocationFieldBase.ts +5 -5
  203. package/src/server/plugins/engine/components/LocationFieldHelpers.ts +5 -5
  204. package/src/server/plugins/engine/components/Markdown.ts +1 -1
  205. package/src/server/plugins/engine/components/MonthYearField.ts +8 -8
  206. package/src/server/plugins/engine/components/MultilineTextField.ts +4 -4
  207. package/src/server/plugins/engine/components/NationalGridFieldNumberField.ts +2 -2
  208. package/src/server/plugins/engine/components/NumberField.ts +3 -3
  209. package/src/server/plugins/engine/components/OsGridRefField.ts +2 -2
  210. package/src/server/plugins/engine/components/PaymentField.ts +8 -8
  211. package/src/server/plugins/engine/components/RadiosField.ts +1 -1
  212. package/src/server/plugins/engine/components/SelectField.ts +2 -2
  213. package/src/server/plugins/engine/components/SelectionControlField.ts +4 -4
  214. package/src/server/plugins/engine/components/TelephoneNumberField.ts +4 -4
  215. package/src/server/plugins/engine/components/TextField.ts +3 -3
  216. package/src/server/plugins/engine/components/UkAddressField.ts +7 -7
  217. package/src/server/plugins/engine/components/YesNoField.ts +5 -5
  218. package/src/server/plugins/engine/components/helpers/__stubs__/geospatial.ts +1 -1
  219. package/src/server/plugins/engine/components/helpers/components.ts +8 -8
  220. package/src/server/plugins/engine/components/helpers/geospatial.ts +1 -1
  221. package/src/server/plugins/engine/components/index.ts +27 -27
  222. package/src/server/plugins/engine/components/types.ts +1 -1
  223. package/src/server/plugins/engine/configureEnginePlugin.ts +10 -10
  224. package/src/server/plugins/engine/date-helper.ts +1 -1
  225. package/src/server/plugins/engine/helpers.ts +8 -8
  226. package/src/server/plugins/engine/index.ts +8 -8
  227. package/src/server/plugins/engine/models/FormModel.ts +15 -15
  228. package/src/server/plugins/engine/models/SummaryViewModel.ts +10 -10
  229. package/src/server/plugins/engine/models/index.ts +2 -2
  230. package/src/server/plugins/engine/models/types.ts +4 -4
  231. package/src/server/plugins/engine/options.js +3 -3
  232. package/src/server/plugins/engine/outputFormatters/adapter/v1.ts +6 -6
  233. package/src/server/plugins/engine/outputFormatters/human/v1.ts +9 -9
  234. package/src/server/plugins/engine/outputFormatters/index.ts +8 -8
  235. package/src/server/plugins/engine/outputFormatters/machine/v1.ts +7 -7
  236. package/src/server/plugins/engine/outputFormatters/machine/v2.ts +6 -6
  237. package/src/server/plugins/engine/pageControllers/FileUploadPageController.ts +9 -9
  238. package/src/server/plugins/engine/pageControllers/PageController.ts +7 -7
  239. package/src/server/plugins/engine/pageControllers/QuestionPageController.ts +13 -13
  240. package/src/server/plugins/engine/pageControllers/RepeatPageController.ts +6 -6
  241. package/src/server/plugins/engine/pageControllers/StartPageController.ts +3 -3
  242. package/src/server/plugins/engine/pageControllers/StatusPageController.ts +5 -5
  243. package/src/server/plugins/engine/pageControllers/SummaryPageController.ts +12 -12
  244. package/src/server/plugins/engine/pageControllers/TerminalPageController.ts +3 -3
  245. package/src/server/plugins/engine/pageControllers/__stubs__/request.ts +3 -3
  246. package/src/server/plugins/engine/pageControllers/__stubs__/server.ts +2 -2
  247. package/src/server/plugins/engine/pageControllers/errors.ts +1 -1
  248. package/src/server/plugins/engine/pageControllers/helpers/pages.ts +2 -2
  249. package/src/server/plugins/engine/pageControllers/helpers/state.ts +9 -9
  250. package/src/server/plugins/engine/pageControllers/helpers/submission.ts +5 -5
  251. package/src/server/plugins/engine/pageControllers/index.ts +7 -7
  252. package/src/server/plugins/engine/pageControllers/validationOptions.ts +1 -1
  253. package/src/server/plugins/engine/plugin.ts +14 -14
  254. package/src/server/plugins/engine/routes/file-upload.ts +2 -2
  255. package/src/server/plugins/engine/routes/index.ts +10 -10
  256. package/src/server/plugins/engine/routes/payment-helper.js +4 -4
  257. package/src/server/plugins/engine/routes/payment.js +9 -9
  258. package/src/server/plugins/engine/routes/questions.ts +10 -10
  259. package/src/server/plugins/engine/routes/repeaters/item-delete.ts +6 -6
  260. package/src/server/plugins/engine/routes/repeaters/summary.ts +5 -5
  261. package/src/server/plugins/engine/services/formSubmissionService.js +2 -2
  262. package/src/server/plugins/engine/services/index.js +3 -3
  263. package/src/server/plugins/engine/services/localFormsService.js +2 -2
  264. package/src/server/plugins/engine/services/notifyService.ts +9 -9
  265. package/src/server/plugins/engine/services/uploadService.js +3 -3
  266. package/src/server/plugins/engine/types/index.ts +10 -10
  267. package/src/server/plugins/engine/types/schema.ts +2 -2
  268. package/src/server/plugins/engine/types.ts +22 -17
  269. package/src/server/plugins/engine/validationHelpers.ts +3 -3
  270. package/src/server/plugins/engine/vision.ts +3 -3
  271. package/src/server/plugins/map/index.js +2 -2
  272. package/src/server/plugins/map/routes/get-os-token.js +15 -3
  273. package/src/server/plugins/map/routes/index.js +7 -5
  274. package/src/server/plugins/map/service.js +7 -4
  275. package/src/server/plugins/map/test/__stubs__/find.js +1 -1
  276. package/src/server/plugins/nunjucks/context.js +5 -5
  277. package/src/server/plugins/nunjucks/environment.js +6 -6
  278. package/src/server/plugins/nunjucks/filters/answer.js +3 -3
  279. package/src/server/plugins/nunjucks/filters/evaluate.js +2 -2
  280. package/src/server/plugins/nunjucks/filters/field.js +1 -1
  281. package/src/server/plugins/nunjucks/filters/href.js +2 -2
  282. package/src/server/plugins/nunjucks/filters/index.js +8 -8
  283. package/src/server/plugins/nunjucks/filters/page.js +1 -1
  284. package/src/server/plugins/nunjucks/index.js +3 -3
  285. package/src/server/plugins/nunjucks/plugin.js +3 -3
  286. package/src/server/plugins/nunjucks/render.js +2 -2
  287. package/src/server/plugins/nunjucks/types.js +1 -1
  288. package/src/server/plugins/payment/helper.js +2 -2
  289. package/src/server/plugins/payment/service.js +4 -4
  290. package/src/server/plugins/postcode-lookup/index.js +2 -2
  291. package/src/server/plugins/postcode-lookup/models/index.js +3 -3
  292. package/src/server/plugins/postcode-lookup/routes/index.js +24 -14
  293. package/src/server/plugins/postcode-lookup/service.js +7 -4
  294. package/src/server/plugins/postcode-lookup/types.js +1 -1
  295. package/src/server/plugins/session.ts +1 -1
  296. package/src/server/routes/index.ts +2 -2
  297. package/src/server/routes/public.ts +1 -1
  298. package/src/server/routes/types.ts +1 -1
  299. package/src/server/schemas/index.ts +2 -2
  300. package/src/server/secure-context.js +1 -1
  301. package/src/server/services/cacheService.ts +13 -18
  302. package/src/server/services/httpService.ts +1 -1
  303. package/src/server/services/index.ts +1 -1
  304. package/src/server/types.ts +7 -7
  305. package/src/server/utils/notify.ts +2 -2
  306. package/src/server/utils/utils.js +1 -1
  307. package/src/typings/hapi/index.d.ts +4 -4
  308. package/src/typings/joi/index.d.ts +1 -1
  309. package/src/server/common/helpers/logging/logger-options.test.ts +0 -50
  310. package/src/server/index.test.ts +0 -644
  311. package/src/server/plugins/engine/beta/form-context.test.ts +0 -373
  312. package/src/server/plugins/engine/components/AutocompleteField.test.ts +0 -362
  313. package/src/server/plugins/engine/components/CheckboxesField.test.ts +0 -486
  314. package/src/server/plugins/engine/components/DatePartsField.test.ts +0 -927
  315. package/src/server/plugins/engine/components/DeclarationField.test.ts +0 -560
  316. package/src/server/plugins/engine/components/Details.test.ts +0 -49
  317. package/src/server/plugins/engine/components/EastingNorthingField.test.ts +0 -727
  318. package/src/server/plugins/engine/components/EmailAddressField.test.ts +0 -445
  319. package/src/server/plugins/engine/components/FileUploadField.test.ts +0 -1079
  320. package/src/server/plugins/engine/components/GeospatialField.test.ts +0 -380
  321. package/src/server/plugins/engine/components/HiddenField.test.ts +0 -188
  322. package/src/server/plugins/engine/components/Html.test.ts +0 -48
  323. package/src/server/plugins/engine/components/InsetText.test.ts +0 -48
  324. package/src/server/plugins/engine/components/LatLongField.test.ts +0 -898
  325. package/src/server/plugins/engine/components/List.test.ts +0 -79
  326. package/src/server/plugins/engine/components/LocationFieldBase.test.ts +0 -253
  327. package/src/server/plugins/engine/components/LocationFieldHelpers.test.ts +0 -743
  328. package/src/server/plugins/engine/components/Markdown.test.ts +0 -48
  329. package/src/server/plugins/engine/components/MonthYearField.test.ts +0 -617
  330. package/src/server/plugins/engine/components/MultilineTextField.test.ts +0 -647
  331. package/src/server/plugins/engine/components/NationalGridFieldNumberField.test.ts +0 -449
  332. package/src/server/plugins/engine/components/NumberField.test.ts +0 -723
  333. package/src/server/plugins/engine/components/OsGridRefField.test.ts +0 -460
  334. package/src/server/plugins/engine/components/PaymentField.test.ts +0 -745
  335. package/src/server/plugins/engine/components/RadiosField.test.ts +0 -297
  336. package/src/server/plugins/engine/components/SelectField.test.ts +0 -289
  337. package/src/server/plugins/engine/components/TelephoneNumberField.test.ts +0 -384
  338. package/src/server/plugins/engine/components/TextField.test.ts +0 -521
  339. package/src/server/plugins/engine/components/UkAddressField.test.ts +0 -806
  340. package/src/server/plugins/engine/components/YesNoField.test.ts +0 -256
  341. package/src/server/plugins/engine/components/helpers/components.test.ts +0 -399
  342. package/src/server/plugins/engine/components/helpers/geospatial.test.js +0 -55
  343. package/src/server/plugins/engine/components/helpers/helpers.test.ts +0 -219
  344. package/src/server/plugins/engine/date-helper.test.ts +0 -47
  345. package/src/server/plugins/engine/helpers.test.ts +0 -868
  346. package/src/server/plugins/engine/models/FormModel.test.ts +0 -725
  347. package/src/server/plugins/engine/models/SummaryViewModel.test.ts +0 -472
  348. package/src/server/plugins/engine/options.test.js +0 -63
  349. package/src/server/plugins/engine/outputFormatters/adapter/v1.location.test.ts +0 -356
  350. package/src/server/plugins/engine/outputFormatters/adapter/v1.test.ts +0 -871
  351. package/src/server/plugins/engine/outputFormatters/human/v1.payment.test.ts +0 -147
  352. package/src/server/plugins/engine/outputFormatters/human/v1.test.ts +0 -145
  353. package/src/server/plugins/engine/outputFormatters/index.test.ts +0 -17
  354. package/src/server/plugins/engine/outputFormatters/machine/v1.test.ts +0 -268
  355. package/src/server/plugins/engine/outputFormatters/machine/v2.location.test.ts +0 -341
  356. package/src/server/plugins/engine/outputFormatters/machine/v2.payment.test.ts +0 -115
  357. package/src/server/plugins/engine/outputFormatters/machine/v2.test.ts +0 -311
  358. package/src/server/plugins/engine/pageControllers/FileUploadPageController.test.ts +0 -1372
  359. package/src/server/plugins/engine/pageControllers/PageController.test.ts +0 -246
  360. package/src/server/plugins/engine/pageControllers/QuestionPageController.test.ts +0 -1686
  361. package/src/server/plugins/engine/pageControllers/RepeatPageController.test.ts +0 -279
  362. package/src/server/plugins/engine/pageControllers/StartPageController.test.ts +0 -32
  363. package/src/server/plugins/engine/pageControllers/StatusPageController.test.ts +0 -32
  364. package/src/server/plugins/engine/pageControllers/SummaryPageController.test.ts +0 -89
  365. package/src/server/plugins/engine/pageControllers/TerminalController.test.ts +0 -37
  366. package/src/server/plugins/engine/pageControllers/errors.test.ts +0 -78
  367. package/src/server/plugins/engine/pageControllers/helpers/helpers.test.ts +0 -182
  368. package/src/server/plugins/engine/pageControllers/helpers/state.test.ts +0 -359
  369. package/src/server/plugins/engine/pageControllers/helpers/submission.test.ts +0 -373
  370. package/src/server/plugins/engine/referenceNumbers.test.ts +0 -74
  371. package/src/server/plugins/engine/routes/index.test.ts +0 -332
  372. package/src/server/plugins/engine/routes/payment-helper.test.js +0 -136
  373. package/src/server/plugins/engine/routes/payment.test.js +0 -180
  374. package/src/server/plugins/engine/routes/questions.test.ts +0 -502
  375. package/src/server/plugins/engine/routes/repeaters/item-delete.test.ts +0 -83
  376. package/src/server/plugins/engine/routes/repeaters/summary.test.ts +0 -75
  377. package/src/server/plugins/engine/services/formsService.test.js +0 -26
  378. package/src/server/plugins/engine/services/notifyService.test.ts +0 -310
  379. package/src/server/plugins/engine/types/schema.test.ts +0 -234
  380. package/src/server/plugins/engine/views/components/service-banner/template.test.js +0 -43
  381. package/src/server/plugins/engine/views/components/tag-env/template.test.js +0 -28
  382. package/src/server/plugins/engine/views/partials/preview-banner.test.js +0 -122
  383. package/src/server/plugins/map/routes/get-os-token.test.js +0 -55
  384. package/src/server/plugins/map/service.test.js +0 -144
  385. package/src/server/plugins/nunjucks/context.test.js +0 -109
  386. package/src/server/plugins/nunjucks/enviroment.test.js +0 -207
  387. package/src/server/plugins/nunjucks/filters/answer.test.js +0 -92
  388. package/src/server/plugins/nunjucks/filters/field.test.js +0 -75
  389. package/src/server/plugins/nunjucks/filters/href.test.js +0 -80
  390. package/src/server/plugins/nunjucks/filters/merge.test.js +0 -15
  391. package/src/server/plugins/nunjucks/filters/page.test.js +0 -65
  392. package/src/server/plugins/payment/helper.test.js +0 -29
  393. package/src/server/plugins/payment/service.test.js +0 -218
  394. package/src/server/plugins/postcode-lookup/service.test.js +0 -177
  395. package/src/server/postcode-lookup.test.ts +0 -64
  396. package/src/server/routes/dummy-api.test.ts +0 -97
  397. package/src/server/services/cacheService.test.ts +0 -308
  398. package/src/server/services/httpService.test.js +0 -491
  399. package/src/server/utils/file-form-service.test.js +0 -127
  400. package/src/server/utils/notify.test.ts +0 -37
  401. package/src/server/utils/secure-context/get-trust-store-certs.test.js +0 -19
  402. package/src/server/utils/utils.test.js +0 -69
@@ -1,11 +1,11 @@
1
1
  import { type Events, type FormDefinition, type Page, type Section } from '@defra/forms-model';
2
2
  import { type Lifecycle, type RouteOptions, type Server } from '@hapi/hapi';
3
- import { type ComponentCollection } from '~/src/server/plugins/engine/components/ComponentCollection.js';
4
- import { type FormComponent } from '~/src/server/plugins/engine/components/FormComponent.js';
5
- import { type FormModel } from '~/src/server/plugins/engine/models/index.js';
6
- import { type ExecutableCondition } from '~/src/server/plugins/engine/models/types.js';
7
- import { type FormContext, type PageViewModelBase } from '~/src/server/plugins/engine/types.js';
8
- import { type FormRequest, type FormRequestPayload, type FormRequestPayloadRefs, type FormRequestRefs, type FormResponseToolkit } from '~/src/server/routes/types.js';
3
+ import { type ComponentCollection } from '../../../../server/plugins/engine/components/ComponentCollection.js';
4
+ import { type FormComponent } from '../../../../server/plugins/engine/components/FormComponent.js';
5
+ import { type FormModel } from '../../../../server/plugins/engine/models/index.js';
6
+ import { type ExecutableCondition } from '../../../../server/plugins/engine/models/types.js';
7
+ import { type FormContext, type PageViewModelBase } from '../../../../server/plugins/engine/types.js';
8
+ import { type FormRequest, type FormRequestPayload, type FormRequestPayloadRefs, type FormRequestRefs, type FormResponseToolkit } from '../../../../server/routes/types.js';
9
9
  export declare class PageController {
10
10
  /**
11
11
  * The base class for all page controllers. Page controllers are responsible for generating the get and post route handlers when a user navigates to `/{id}/{path*}`.
@@ -1,12 +1,12 @@
1
1
  import { type Link, type Page } from '@defra/forms-model';
2
2
  import { type RouteOptions } from '@hapi/hapi';
3
3
  import { type ValidationErrorItem } from 'joi';
4
- import { ComponentCollection } from '~/src/server/plugins/engine/components/ComponentCollection.js';
5
- import { type BackLink } from '~/src/server/plugins/engine/components/types.js';
6
- import { type FormModel } from '~/src/server/plugins/engine/models/index.js';
7
- import { PageController } from '~/src/server/plugins/engine/pageControllers/PageController.js';
8
- import { type AnyFormRequest, type FormContext, type FormContextRequest, type FormPageViewModel, type FormPayload, type FormPayloadParams, type FormState, type FormStateValue, type FormSubmissionState } from '~/src/server/plugins/engine/types.js';
9
- import { type FormRequest, type FormRequestPayload, type FormRequestPayloadRefs, type FormRequestRefs, type FormResponseToolkit } from '~/src/server/routes/types.js';
4
+ import { ComponentCollection } from '../../../../server/plugins/engine/components/ComponentCollection.js';
5
+ import { type BackLink } from '../../../../server/plugins/engine/components/types.js';
6
+ import { type FormModel } from '../../../../server/plugins/engine/models/index.js';
7
+ import { PageController } from '../../../../server/plugins/engine/pageControllers/PageController.js';
8
+ import { type AnyFormRequest, type FormContext, type FormContextRequest, type FormPageViewModel, type FormPayload, type FormPayloadParams, type FormState, type FormStateValue, type FormSubmissionState } from '../../../../server/plugins/engine/types.js';
9
+ import { type FormRequest, type FormRequestPayload, type FormRequestPayloadRefs, type FormRequestRefs, type FormResponseToolkit } from '../../../../server/routes/types.js';
10
10
  export declare class QuestionPageController extends PageController {
11
11
  collection: ComponentCollection;
12
12
  errorSummaryTitle: string;
@@ -35,11 +35,11 @@ export declare class QuestionPageController extends PageController {
35
35
  */
36
36
  getFormParams(request?: FormContextRequest): FormPayloadParams;
37
37
  getStateFromValidForm(request: FormContextRequest, state: FormSubmissionState, payload: FormPayload): FormState;
38
- getErrors(details?: ValidationErrorItem[]): import("~/src/server/plugins/engine/types.js").FormSubmissionError[] | undefined;
38
+ getErrors(details?: ValidationErrorItem[]): import("../../../../server/plugins/engine/types.js").FormSubmissionError[] | undefined;
39
39
  getState(request: AnyFormRequest): Promise<FormSubmissionState>;
40
40
  setState(request: AnyFormRequest, state: FormSubmissionState): Promise<FormSubmissionState>;
41
41
  mergeState(request: AnyFormRequest, state: FormSubmissionState, update: object): Promise<FormSubmissionState>;
42
- filterConditionalComponents(viewModel: FormPageViewModel, model: FormModel, evaluationState: Partial<Record<string, FormStateValue>>): import("~/src/server/plugins/engine/components/types.js").ComponentViewModel[];
42
+ filterConditionalComponents(viewModel: FormPageViewModel, model: FormModel, evaluationState: Partial<Record<string, FormStateValue>>): import("../../../../server/plugins/engine/components/types.js").ComponentViewModel[];
43
43
  makeGetRouteHandler(): (request: FormRequest, context: FormContext, h: FormResponseToolkit) => Promise<import("@hapi/hapi").ResponseObject>;
44
44
  hasMissingNotificationEmail(request: FormRequest, context: FormContext): Promise<boolean>;
45
45
  /**
@@ -1,8 +1,8 @@
1
1
  import { type PageRepeat, type Repeat } from '@defra/forms-model';
2
- import { type FormModel } from '~/src/server/plugins/engine/models/index.js';
3
- import { QuestionPageController } from '~/src/server/plugins/engine/pageControllers/QuestionPageController.js';
4
- import { type FormContext, type FormContextRequest, type FormPageViewModel, type FormPayload, type FormSubmissionState, type RepeatItemState, type RepeatListState, type RepeaterSummaryPageViewModel } from '~/src/server/plugins/engine/types.js';
5
- import { FormAction, type FormRequest, type FormRequestPayload, type FormResponseToolkit } from '~/src/server/routes/types.js';
2
+ import { type FormModel } from '../../../../server/plugins/engine/models/index.js';
3
+ import { QuestionPageController } from '../../../../server/plugins/engine/pageControllers/QuestionPageController.js';
4
+ import { type FormContext, type FormContextRequest, type FormPageViewModel, type FormPayload, type FormSubmissionState, type RepeatItemState, type RepeatListState, type RepeaterSummaryPageViewModel } from '../../../../server/plugins/engine/types.js';
5
+ import { FormAction, type FormRequest, type FormRequestPayload, type FormResponseToolkit } from '../../../../server/routes/types.js';
6
6
  export declare class RepeatPageController extends QuestionPageController {
7
7
  pageDef: PageRepeat;
8
8
  listSummaryViewName: string;
@@ -11,7 +11,7 @@ export declare class RepeatPageController extends QuestionPageController {
11
11
  allowSaveAndExit: boolean;
12
12
  constructor(model: FormModel, pageDef: PageRepeat);
13
13
  get keys(): string[];
14
- getFormParams(request?: FormContextRequest): import("~/src/server/plugins/engine/types.js").FormPayloadParams;
14
+ getFormParams(request?: FormContextRequest): import("../../../../server/plugins/engine/types.js").FormPayloadParams;
15
15
  getFormDataFromState(request: FormContextRequest | undefined, state: FormSubmissionState): {
16
16
  action?: FormAction;
17
17
  confirm?: true;
@@ -1,6 +1,6 @@
1
- import { QuestionPageController } from '~/src/server/plugins/engine/pageControllers/QuestionPageController.js';
2
- import { type FormContext } from '~/src/server/plugins/engine/types.js';
3
- import { type FormRequest } from '~/src/server/routes/types.js';
1
+ import { QuestionPageController } from '../../../../server/plugins/engine/pageControllers/QuestionPageController.js';
2
+ import { type FormContext } from '../../../../server/plugins/engine/types.js';
3
+ import { type FormRequest } from '../../../../server/routes/types.js';
4
4
  export declare class StartPageController extends QuestionPageController {
5
5
  /**
6
6
  * The controller which is used when Page["controller"] is defined as "./pages/start.js"
@@ -12,7 +12,7 @@ export declare class StartPageController extends QuestionPageController {
12
12
  isStartPage: boolean;
13
13
  components: import("../components/types.js").ComponentViewModel[];
14
14
  context: FormContext;
15
- errors?: import("~/src/server/plugins/engine/types.js").FormSubmissionError[];
15
+ errors?: import("../../../../server/plugins/engine/types.js").FormSubmissionError[];
16
16
  hasMissingNotificationEmail?: boolean;
17
17
  allowSaveAndExit: boolean;
18
18
  showSubmitButton?: boolean;
@@ -1,8 +1,8 @@
1
1
  import { type PageStatus } from '@defra/forms-model';
2
- import { type FormModel } from '~/src/server/plugins/engine/models/index.js';
3
- import { QuestionPageController } from '~/src/server/plugins/engine/pageControllers/QuestionPageController.js';
4
- import { type FormContext } from '~/src/server/plugins/engine/types.js';
5
- import { type FormRequest, type FormResponseToolkit } from '~/src/server/routes/types.js';
2
+ import { type FormModel } from '../../../../server/plugins/engine/models/index.js';
3
+ import { QuestionPageController } from '../../../../server/plugins/engine/pageControllers/QuestionPageController.js';
4
+ import { type FormContext } from '../../../../server/plugins/engine/types.js';
5
+ import { type FormRequest, type FormResponseToolkit } from '../../../../server/routes/types.js';
6
6
  export declare class StatusPageController extends QuestionPageController {
7
7
  pageDef: PageStatus;
8
8
  allowSaveAndExit: boolean;
@@ -1,10 +1,10 @@
1
1
  import { type FormMetadata, type Page } from '@defra/forms-model';
2
2
  import { type RouteOptions } from '@hapi/hapi';
3
- import { SummaryViewModel, type FormModel } from '~/src/server/plugins/engine/models/index.js';
4
- import { type Detail, type DetailItem } from '~/src/server/plugins/engine/models/types.js';
5
- import { QuestionPageController } from '~/src/server/plugins/engine/pageControllers/QuestionPageController.js';
6
- import { type FormContext, type FormContextRequest } from '~/src/server/plugins/engine/types.js';
7
- import { type FormRequest, type FormRequestPayload, type FormRequestPayloadRefs, type FormResponseToolkit } from '~/src/server/routes/types.js';
3
+ import { SummaryViewModel, type FormModel } from '../../../../server/plugins/engine/models/index.js';
4
+ import { type Detail, type DetailItem } from '../../../../server/plugins/engine/models/types.js';
5
+ import { QuestionPageController } from '../../../../server/plugins/engine/pageControllers/QuestionPageController.js';
6
+ import { type FormContext, type FormContextRequest } from '../../../../server/plugins/engine/types.js';
7
+ import { type FormRequest, type FormRequestPayload, type FormRequestPayloadRefs, type FormResponseToolkit } from '../../../../server/routes/types.js';
8
8
  export declare class SummaryPageController extends QuestionPageController {
9
9
  pageDef: Page;
10
10
  allowSaveAndExit: boolean;
@@ -1,8 +1,8 @@
1
1
  import { type PageTerminal } from '@defra/forms-model';
2
2
  import { type ResponseObject } from '@hapi/hapi';
3
- import { QuestionPageController } from '~/src/server/plugins/engine/pageControllers/QuestionPageController.js';
4
- import { type FormContext } from '~/src/server/plugins/engine/types.js';
5
- import { type FormRequestPayload, type FormResponseToolkit } from '~/src/server/routes/types.js';
3
+ import { QuestionPageController } from '../../../../server/plugins/engine/pageControllers/QuestionPageController.js';
4
+ import { type FormContext } from '../../../../server/plugins/engine/types.js';
5
+ import { type FormRequestPayload, type FormResponseToolkit } from '../../../../server/routes/types.js';
6
6
  export declare class TerminalPageController extends QuestionPageController {
7
7
  pageDef: PageTerminal;
8
8
  allowSaveAndExit: boolean;
@@ -1,4 +1,4 @@
1
- import { type FormContextRequest } from '~/src/server/plugins/engine/types.js';
2
- import { type FormRequest } from '~/src/server/routes/types.js';
1
+ import { type FormContextRequest } from '../../../../../server/plugins/engine/types.js';
2
+ import { type FormRequest } from '../../../../../server/routes/types.js';
3
3
  export declare function buildFormRequest(request: Omit<FormRequest, 'server' | 'yar'>): FormRequest;
4
4
  export declare function buildFormContextRequest(request: Omit<FormContextRequest, 'server' | 'yar'>): FormContextRequest;
@@ -1,4 +1,4 @@
1
- import { type FormComponent } from '~/src/server/plugins/engine/components/FormComponent.js';
1
+ import { type FormComponent } from '../../../../server/plugins/engine/components/FormComponent.js';
2
2
  export declare enum PaymentErrorTypes {
3
3
  PaymentExpired = "PaymentExpired",
4
4
  PaymentIncomplete = "PaymentIncomplete",
@@ -1,6 +1,6 @@
1
1
  import { type Page } from '@defra/forms-model';
2
- import { type FormModel } from '~/src/server/plugins/engine/models/index.js';
3
- import * as PageControllers from '~/src/server/plugins/engine/pageControllers/index.js';
2
+ import { type FormModel } from '../../../../../server/plugins/engine/models/index.js';
3
+ import * as PageControllers from '../../../../../server/plugins/engine/pageControllers/index.js';
4
4
  export type PageControllerClass = InstanceType<PageControllerType>;
5
5
  export type PageControllerType = (typeof PageControllers)[keyof typeof PageControllers];
6
6
  /**
@@ -1,13 +1,13 @@
1
- import { type FormModel } from '~/src/server/plugins/engine/models/FormModel.js';
2
- import { type PageControllerClass } from '~/src/server/plugins/engine/pageControllers/helpers/pages.js';
3
- import { type AnyFormRequest, type FormContext } from '~/src/server/plugins/engine/types.js';
4
- import { type FormQuery } from '~/src/server/routes/types.js';
1
+ import { type FormModel } from '../../../../../server/plugins/engine/models/FormModel.js';
2
+ import { type PageControllerClass } from '../../../../../server/plugins/engine/pageControllers/helpers/pages.js';
3
+ import { type AnyFormRequest, type FormContext } from '../../../../../server/plugins/engine/types.js';
4
+ import { type FormQuery } from '../../../../../server/routes/types.js';
5
5
  export declare function stripParam(query: FormQuery, paramToRemove: string): FormQuery | undefined;
6
6
  /**
7
7
  * Any hidden parameters defined in the FormDefinition may be pre-filled by URL parameter values.
8
8
  * Other parameters are ignored for security reasons.
9
9
  * @param request
10
- * @param model
10
+ * @param page
11
11
  */
12
12
  export declare function prefillStateFromQueryParameters(request: AnyFormRequest, page: PageControllerClass): Promise<boolean>;
13
13
  /**
@@ -34,7 +34,7 @@ export function stripParam(query, paramToRemove) {
34
34
  * Any hidden parameters defined in the FormDefinition may be pre-filled by URL parameter values.
35
35
  * Other parameters are ignored for security reasons.
36
36
  * @param request
37
- * @param model
37
+ * @param page
38
38
  */
39
39
  export async function prefillStateFromQueryParameters(request, page) {
40
40
  const {
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","names":["ControllerType","getHiddenFields","getCacheService","CURRENT_PAGE_PATH_KEY","STATE_NOT_YET_VALIDATED","isValidUUID","GUID_LENGTH","paramLookupFunctions","formId","val","services","formTitle","meta","formsService","getFormMetadataById","title","key","value","stripParam","query","paramToRemove","params","Object","entries","keys","length","undefined","prefillStateFromQueryParameters","request","page","model","hiddenFieldNames","Set","def","map","field","name","size","has","lookupFunc","res","formData","getState","mergeState","checkSaveAndExitRepeater","context","potentiallyInvalidState","state","originalPath","repeaterPaths","pages","filter","controller","Repeat","p","basePath","path","segments","split","lastSegment","at","guidStartIndex","originalPathWithoutGuid","substring","includes","copyNotYetValidatedState","url","pathname","payload","cacheService","server","setState"],"sources":["../../../../../../src/server/plugins/engine/pageControllers/helpers/state.ts"],"sourcesContent":["import { ControllerType, getHiddenFields } from '@defra/forms-model'\n\nimport { getCacheService } from '~/src/server/plugins/engine/helpers.js'\nimport {\n CURRENT_PAGE_PATH_KEY,\n STATE_NOT_YET_VALIDATED\n} from '~/src/server/plugins/engine/index.js'\nimport { type FormModel } from '~/src/server/plugins/engine/models/FormModel.js'\nimport { type PageControllerClass } from '~/src/server/plugins/engine/pageControllers/helpers/pages.js'\nimport {\n type AnyFormRequest,\n type FormContext,\n type FormStateValue,\n type FormValue\n} from '~/src/server/plugins/engine/types.js'\nimport { type FormQuery } from '~/src/server/routes/types.js'\nimport { type Services } from '~/src/server/types.js'\nimport { isValidUUID } from '~/src/server/utils/utils.js'\n\nconst GUID_LENGTH = 36\n\n/**\n * A series of functions that can transform a pre-fill input parameter e.g lookup a form title based on form id\n */\nconst paramLookupFunctions = {\n formId: async (val: string, services: Services) => {\n let formTitle\n if (val) {\n const meta = await services.formsService.getFormMetadataById(val)\n formTitle = meta.title\n }\n return {\n key: 'formName',\n value: formTitle\n }\n }\n} as Partial<\n Record<\n string,\n (\n val: string,\n services: Services\n ) => Promise<{ key: string; value: string | undefined }>\n >\n>\n\nexport function stripParam(query: FormQuery, paramToRemove: string) {\n const params = {} as Record<string, FormStateValue | undefined>\n for (const [key, value = ''] of Object.entries(query)) {\n if (key !== paramToRemove) {\n params[key] = value\n }\n }\n return Object.keys(params).length ? (params as FormQuery) : undefined\n}\n\n/**\n * Any hidden parameters defined in the FormDefinition may be pre-filled by URL parameter values.\n * Other parameters are ignored for security reasons.\n * @param request\n * @param model\n */\nexport async function prefillStateFromQueryParameters(\n request: AnyFormRequest,\n page: PageControllerClass\n): Promise<boolean> {\n const { model } = page\n\n const hiddenFieldNames = new Set(\n getHiddenFields(model.def).map((field) => field.name)\n )\n\n if (!hiddenFieldNames.size) {\n return false\n }\n\n // Remove 'returnUrl' param\n const query = stripParam(request.query, 'returnUrl')\n\n if (!query) {\n return false\n }\n\n const params = {} as Record<string, FormStateValue | undefined>\n\n for (const [key, value = ''] of Object.entries(query)) {\n if (hiddenFieldNames.has(key)) {\n const lookupFunc = paramLookupFunctions[key]\n if (lookupFunc) {\n const res = await lookupFunc(value, model.services)\n // Store original value and result\n params[key] = value\n params[res.key] = res.value\n } else {\n params[key] = value\n }\n }\n }\n\n const formData = await page.getState(request)\n await page.mergeState(request, formData, params)\n\n return true\n}\n\n/**\n * Checks whether the save-and-exit finished on a repeater with partial state\n * @param context - the form context\n */\nexport function checkSaveAndExitRepeater(\n context: FormContext,\n model: FormModel\n) {\n const potentiallyInvalidState = context.state[STATE_NOT_YET_VALIDATED] as\n | Record<string, FormValue>\n | undefined\n if (!potentiallyInvalidState) {\n return\n }\n\n const originalPath = potentiallyInvalidState[CURRENT_PAGE_PATH_KEY]\n\n const repeaterPaths = model.def.pages\n .filter((page) => page.controller === ControllerType.Repeat)\n .map((p) => `/${model.basePath}${p.path}/`)\n\n if (typeof originalPath !== 'string') {\n return undefined\n }\n\n const segments = originalPath.split('/')\n const lastSegment = segments.at(-1) ?? ''\n\n if (!isValidUUID(lastSegment)) {\n return undefined\n }\n\n const guidStartIndex = originalPath.length - GUID_LENGTH\n const originalPathWithoutGuid = originalPath.substring(0, guidStartIndex)\n\n if (!repeaterPaths.includes(originalPathWithoutGuid)) {\n return undefined\n }\n\n return originalPath\n}\n\n/**\n * Copies any potentially invalid state into the payload, and removes those values from state\n * NOTE - this method has a side-effect on 'context.state' and 'context.payload'\n * @param request - the form request\n * @param context - the form context\n */\nexport async function copyNotYetValidatedState(\n request: AnyFormRequest,\n context: FormContext\n) {\n const potentiallyInvalidState = context.state[STATE_NOT_YET_VALIDATED] as\n | Record<string, FormValue>\n | undefined\n if (!potentiallyInvalidState) {\n return\n }\n\n const originalPath = potentiallyInvalidState[CURRENT_PAGE_PATH_KEY]\n\n if (originalPath && originalPath === request.url.pathname) {\n context.payload = {\n ...context.payload,\n ...potentiallyInvalidState,\n [CURRENT_PAGE_PATH_KEY]: undefined\n }\n\n // Remove any temporary 'not yet validated' state now it's been copied to the payload\n if (context.state[STATE_NOT_YET_VALIDATED]) {\n context.state[STATE_NOT_YET_VALIDATED] = undefined\n }\n\n const cacheService = getCacheService(request.server)\n await cacheService.setState(request, context.state)\n }\n}\n"],"mappings":"AAAA,SAASA,cAAc,EAAEC,eAAe,QAAQ,oBAAoB;AAEpE,SAASC,eAAe;AACxB,SACEC,qBAAqB,EACrBC,uBAAuB;AAYzB,SAASC,WAAW;AAEpB,MAAMC,WAAW,GAAG,EAAE;;AAEtB;AACA;AACA;AACA,MAAMC,oBAAoB,GAAG;EAC3BC,MAAM,EAAE,MAAAA,CAAOC,GAAW,EAAEC,QAAkB,KAAK;IACjD,IAAIC,SAAS;IACb,IAAIF,GAAG,EAAE;MACP,MAAMG,IAAI,GAAG,MAAMF,QAAQ,CAACG,YAAY,CAACC,mBAAmB,CAACL,GAAG,CAAC;MACjEE,SAAS,GAAGC,IAAI,CAACG,KAAK;IACxB;IACA,OAAO;MACLC,GAAG,EAAE,UAAU;MACfC,KAAK,EAAEN;IACT,CAAC;EACH;AACF,CAQC;AAED,OAAO,SAASO,UAAUA,CAACC,KAAgB,EAAEC,aAAqB,EAAE;EAClE,MAAMC,MAAM,GAAG,CAAC,CAA+C;EAC/D,KAAK,MAAM,CAACL,GAAG,EAAEC,KAAK,GAAG,EAAE,CAAC,IAAIK,MAAM,CAACC,OAAO,CAACJ,KAAK,CAAC,EAAE;IACrD,IAAIH,GAAG,KAAKI,aAAa,EAAE;MACzBC,MAAM,CAACL,GAAG,CAAC,GAAGC,KAAK;IACrB;EACF;EACA,OAAOK,MAAM,CAACE,IAAI,CAACH,MAAM,CAAC,CAACI,MAAM,GAAIJ,MAAM,GAAiBK,SAAS;AACvE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeC,+BAA+BA,CACnDC,OAAuB,EACvBC,IAAyB,EACP;EAClB,MAAM;IAAEC;EAAM,CAAC,GAAGD,IAAI;EAEtB,MAAME,gBAAgB,GAAG,IAAIC,GAAG,CAC9B/B,eAAe,CAAC6B,KAAK,CAACG,GAAG,CAAC,CAACC,GAAG,CAAEC,KAAK,IAAKA,KAAK,CAACC,IAAI,CACtD,CAAC;EAED,IAAI,CAACL,gBAAgB,CAACM,IAAI,EAAE;IAC1B,OAAO,KAAK;EACd;;EAEA;EACA,MAAMlB,KAAK,GAAGD,UAAU,CAACU,OAAO,CAACT,KAAK,EAAE,WAAW,CAAC;EAEpD,IAAI,CAACA,KAAK,EAAE;IACV,OAAO,KAAK;EACd;EAEA,MAAME,MAAM,GAAG,CAAC,CAA+C;EAE/D,KAAK,MAAM,CAACL,GAAG,EAAEC,KAAK,GAAG,EAAE,CAAC,IAAIK,MAAM,CAACC,OAAO,CAACJ,KAAK,CAAC,EAAE;IACrD,IAAIY,gBAAgB,CAACO,GAAG,CAACtB,GAAG,CAAC,EAAE;MAC7B,MAAMuB,UAAU,GAAGhC,oBAAoB,CAACS,GAAG,CAAC;MAC5C,IAAIuB,UAAU,EAAE;QACd,MAAMC,GAAG,GAAG,MAAMD,UAAU,CAACtB,KAAK,EAAEa,KAAK,CAACpB,QAAQ,CAAC;QACnD;QACAW,MAAM,CAACL,GAAG,CAAC,GAAGC,KAAK;QACnBI,MAAM,CAACmB,GAAG,CAACxB,GAAG,CAAC,GAAGwB,GAAG,CAACvB,KAAK;MAC7B,CAAC,MAAM;QACLI,MAAM,CAACL,GAAG,CAAC,GAAGC,KAAK;MACrB;IACF;EACF;EAEA,MAAMwB,QAAQ,GAAG,MAAMZ,IAAI,CAACa,QAAQ,CAACd,OAAO,CAAC;EAC7C,MAAMC,IAAI,CAACc,UAAU,CAACf,OAAO,EAAEa,QAAQ,EAAEpB,MAAM,CAAC;EAEhD,OAAO,IAAI;AACb;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASuB,wBAAwBA,CACtCC,OAAoB,EACpBf,KAAgB,EAChB;EACA,MAAMgB,uBAAuB,GAAGD,OAAO,CAACE,KAAK,CAAC3C,uBAAuB,CAExD;EACb,IAAI,CAAC0C,uBAAuB,EAAE;IAC5B;EACF;EAEA,MAAME,YAAY,GAAGF,uBAAuB,CAAC3C,qBAAqB,CAAC;EAEnE,MAAM8C,aAAa,GAAGnB,KAAK,CAACG,GAAG,CAACiB,KAAK,CAClCC,MAAM,CAAEtB,IAAI,IAAKA,IAAI,CAACuB,UAAU,KAAKpD,cAAc,CAACqD,MAAM,CAAC,CAC3DnB,GAAG,CAAEoB,CAAC,IAAK,IAAIxB,KAAK,CAACyB,QAAQ,GAAGD,CAAC,CAACE,IAAI,GAAG,CAAC;EAE7C,IAAI,OAAOR,YAAY,KAAK,QAAQ,EAAE;IACpC,OAAOtB,SAAS;EAClB;EAEA,MAAM+B,QAAQ,GAAGT,YAAY,CAACU,KAAK,CAAC,GAAG,CAAC;EACxC,MAAMC,WAAW,GAAGF,QAAQ,CAACG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;EAEzC,IAAI,CAACvD,WAAW,CAACsD,WAAW,CAAC,EAAE;IAC7B,OAAOjC,SAAS;EAClB;EAEA,MAAMmC,cAAc,GAAGb,YAAY,CAACvB,MAAM,GAAGnB,WAAW;EACxD,MAAMwD,uBAAuB,GAAGd,YAAY,CAACe,SAAS,CAAC,CAAC,EAAEF,cAAc,CAAC;EAEzE,IAAI,CAACZ,aAAa,CAACe,QAAQ,CAACF,uBAAuB,CAAC,EAAE;IACpD,OAAOpC,SAAS;EAClB;EAEA,OAAOsB,YAAY;AACrB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeiB,wBAAwBA,CAC5CrC,OAAuB,EACvBiB,OAAoB,EACpB;EACA,MAAMC,uBAAuB,GAAGD,OAAO,CAACE,KAAK,CAAC3C,uBAAuB,CAExD;EACb,IAAI,CAAC0C,uBAAuB,EAAE;IAC5B;EACF;EAEA,MAAME,YAAY,GAAGF,uBAAuB,CAAC3C,qBAAqB,CAAC;EAEnE,IAAI6C,YAAY,IAAIA,YAAY,KAAKpB,OAAO,CAACsC,GAAG,CAACC,QAAQ,EAAE;IACzDtB,OAAO,CAACuB,OAAO,GAAG;MAChB,GAAGvB,OAAO,CAACuB,OAAO;MAClB,GAAGtB,uBAAuB;MAC1B,CAAC3C,qBAAqB,GAAGuB;IAC3B,CAAC;;IAED;IACA,IAAImB,OAAO,CAACE,KAAK,CAAC3C,uBAAuB,CAAC,EAAE;MAC1CyC,OAAO,CAACE,KAAK,CAAC3C,uBAAuB,CAAC,GAAGsB,SAAS;IACpD;IAEA,MAAM2C,YAAY,GAAGnE,eAAe,CAAC0B,OAAO,CAAC0C,MAAM,CAAC;IACpD,MAAMD,YAAY,CAACE,QAAQ,CAAC3C,OAAO,EAAEiB,OAAO,CAACE,KAAK,CAAC;EACrD;AACF","ignoreList":[]}
1
+ {"version":3,"file":"state.js","names":["ControllerType","getHiddenFields","getCacheService","CURRENT_PAGE_PATH_KEY","STATE_NOT_YET_VALIDATED","isValidUUID","GUID_LENGTH","paramLookupFunctions","formId","val","services","formTitle","meta","formsService","getFormMetadataById","title","key","value","stripParam","query","paramToRemove","params","Object","entries","keys","length","undefined","prefillStateFromQueryParameters","request","page","model","hiddenFieldNames","Set","def","map","field","name","size","has","lookupFunc","res","formData","getState","mergeState","checkSaveAndExitRepeater","context","potentiallyInvalidState","state","originalPath","repeaterPaths","pages","filter","controller","Repeat","p","basePath","path","segments","split","lastSegment","at","guidStartIndex","originalPathWithoutGuid","substring","includes","copyNotYetValidatedState","url","pathname","payload","cacheService","server","setState"],"sources":["../../../../../../src/server/plugins/engine/pageControllers/helpers/state.ts"],"sourcesContent":["import { ControllerType, getHiddenFields } from '@defra/forms-model'\n\nimport { getCacheService } from '~/src/server/plugins/engine/helpers.js'\nimport {\n CURRENT_PAGE_PATH_KEY,\n STATE_NOT_YET_VALIDATED\n} from '~/src/server/plugins/engine/index.js'\nimport { type FormModel } from '~/src/server/plugins/engine/models/FormModel.js'\nimport { type PageControllerClass } from '~/src/server/plugins/engine/pageControllers/helpers/pages.js'\nimport {\n type AnyFormRequest,\n type FormContext,\n type FormStateValue,\n type FormValue\n} from '~/src/server/plugins/engine/types.js'\nimport { type FormQuery } from '~/src/server/routes/types.js'\nimport { type Services } from '~/src/server/types.js'\nimport { isValidUUID } from '~/src/server/utils/utils.js'\n\nconst GUID_LENGTH = 36\n\n/**\n * A series of functions that can transform a pre-fill input parameter e.g lookup a form title based on form id\n */\nconst paramLookupFunctions = {\n formId: async (val: string, services: Services) => {\n let formTitle\n if (val) {\n const meta = await services.formsService.getFormMetadataById(val)\n formTitle = meta.title\n }\n return {\n key: 'formName',\n value: formTitle\n }\n }\n} as Partial<\n Record<\n string,\n (\n val: string,\n services: Services\n ) => Promise<{ key: string; value: string | undefined }>\n >\n>\n\nexport function stripParam(query: FormQuery, paramToRemove: string) {\n const params = {} as Record<string, FormStateValue | undefined>\n for (const [key, value = ''] of Object.entries(query)) {\n if (key !== paramToRemove) {\n params[key] = value\n }\n }\n return Object.keys(params).length ? (params as FormQuery) : undefined\n}\n\n/**\n * Any hidden parameters defined in the FormDefinition may be pre-filled by URL parameter values.\n * Other parameters are ignored for security reasons.\n * @param request\n * @param page\n */\nexport async function prefillStateFromQueryParameters(\n request: AnyFormRequest,\n page: PageControllerClass\n): Promise<boolean> {\n const { model } = page\n\n const hiddenFieldNames = new Set(\n getHiddenFields(model.def).map((field) => field.name)\n )\n\n if (!hiddenFieldNames.size) {\n return false\n }\n\n // Remove 'returnUrl' param\n const query = stripParam(request.query, 'returnUrl')\n\n if (!query) {\n return false\n }\n\n const params = {} as Record<string, FormStateValue | undefined>\n\n for (const [key, value = ''] of Object.entries(query)) {\n if (hiddenFieldNames.has(key)) {\n const lookupFunc = paramLookupFunctions[key]\n if (lookupFunc) {\n const res = await lookupFunc(value, model.services)\n // Store original value and result\n params[key] = value\n params[res.key] = res.value\n } else {\n params[key] = value\n }\n }\n }\n\n const formData = await page.getState(request)\n await page.mergeState(request, formData, params)\n\n return true\n}\n\n/**\n * Checks whether the save-and-exit finished on a repeater with partial state\n * @param context - the form context\n */\nexport function checkSaveAndExitRepeater(\n context: FormContext,\n model: FormModel\n) {\n const potentiallyInvalidState = context.state[STATE_NOT_YET_VALIDATED] as\n | Record<string, FormValue>\n | undefined\n if (!potentiallyInvalidState) {\n return\n }\n\n const originalPath = potentiallyInvalidState[CURRENT_PAGE_PATH_KEY]\n\n const repeaterPaths = model.def.pages\n .filter((page) => page.controller === ControllerType.Repeat)\n .map((p) => `/${model.basePath}${p.path}/`)\n\n if (typeof originalPath !== 'string') {\n return undefined\n }\n\n const segments = originalPath.split('/')\n const lastSegment = segments.at(-1) ?? ''\n\n if (!isValidUUID(lastSegment)) {\n return undefined\n }\n\n const guidStartIndex = originalPath.length - GUID_LENGTH\n const originalPathWithoutGuid = originalPath.substring(0, guidStartIndex)\n\n if (!repeaterPaths.includes(originalPathWithoutGuid)) {\n return undefined\n }\n\n return originalPath\n}\n\n/**\n * Copies any potentially invalid state into the payload, and removes those values from state\n * NOTE - this method has a side-effect on 'context.state' and 'context.payload'\n * @param request - the form request\n * @param context - the form context\n */\nexport async function copyNotYetValidatedState(\n request: AnyFormRequest,\n context: FormContext\n) {\n const potentiallyInvalidState = context.state[STATE_NOT_YET_VALIDATED] as\n | Record<string, FormValue>\n | undefined\n if (!potentiallyInvalidState) {\n return\n }\n\n const originalPath = potentiallyInvalidState[CURRENT_PAGE_PATH_KEY]\n\n if (originalPath && originalPath === request.url.pathname) {\n context.payload = {\n ...context.payload,\n ...potentiallyInvalidState,\n [CURRENT_PAGE_PATH_KEY]: undefined\n }\n\n // Remove any temporary 'not yet validated' state now it's been copied to the payload\n if (context.state[STATE_NOT_YET_VALIDATED]) {\n context.state[STATE_NOT_YET_VALIDATED] = undefined\n }\n\n const cacheService = getCacheService(request.server)\n await cacheService.setState(request, context.state)\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import { type SubmitPayload } from '@defra/forms-model';
2
- import { type DetailItem, type DetailItemField } from '~/src/server/plugins/engine/models/types.js';
2
+ import { type DetailItem, type DetailItemField } from '../../../../../server/plugins/engine/models/types.js';
3
3
  export interface SubmitRecord {
4
4
  name: string;
5
5
  title: string;
@@ -1,8 +1,8 @@
1
- export { StartPageController } from '~/src/server/plugins/engine/pageControllers/StartPageController.js';
1
+ export { StartPageController } from '../../../../server/plugins/engine/pageControllers/StartPageController.js';
2
2
  export { QuestionPageController, // Export alongside alias
3
- QuestionPageController as PageController } from '~/src/server/plugins/engine/pageControllers/QuestionPageController.js';
4
- export { TerminalPageController } from '~/src/server/plugins/engine/pageControllers/TerminalPageController.js';
5
- export { SummaryPageController } from '~/src/server/plugins/engine/pageControllers/SummaryPageController.js';
6
- export { StatusPageController } from '~/src/server/plugins/engine/pageControllers/StatusPageController.js';
7
- export { FileUploadPageController } from '~/src/server/plugins/engine/pageControllers/FileUploadPageController.js';
8
- export { RepeatPageController } from '~/src/server/plugins/engine/pageControllers/RepeatPageController.js';
3
+ QuestionPageController as PageController } from '../../../../server/plugins/engine/pageControllers/QuestionPageController.js';
4
+ export { TerminalPageController } from '../../../../server/plugins/engine/pageControllers/TerminalPageController.js';
5
+ export { SummaryPageController } from '../../../../server/plugins/engine/pageControllers/SummaryPageController.js';
6
+ export { StatusPageController } from '../../../../server/plugins/engine/pageControllers/StatusPageController.js';
7
+ export { FileUploadPageController } from '../../../../server/plugins/engine/pageControllers/FileUploadPageController.js';
8
+ export { RepeatPageController } from '../../../../server/plugins/engine/pageControllers/RepeatPageController.js';
@@ -1,5 +1,5 @@
1
1
  import { type Server } from '@hapi/hapi';
2
- import { type PluginOptions } from '~/src/server/plugins/engine/types.js';
2
+ import { type PluginOptions } from '../../../server/plugins/engine/types.js';
3
3
  export declare const plugin: {
4
4
  name: string;
5
5
  dependencies: string[];
@@ -1,4 +1,4 @@
1
1
  import { type ResponseToolkit, type ServerRoute } from '@hapi/hapi';
2
- import { type FormRequest, type FormRequestRefs } from '~/src/server/routes/types.js';
2
+ import { type FormRequest, type FormRequestRefs } from '../../../../server/routes/types.js';
3
3
  export declare function getHandler(request: FormRequest, h: Pick<ResponseToolkit, 'response'>): Promise<import("@hapi/hapi").ResponseObject>;
4
4
  export declare function getRoutes(): ServerRoute<FormRequestRefs>[];
@@ -1,7 +1,7 @@
1
1
  import { type ResponseObject, type ResponseToolkit, type Server } from '@hapi/hapi';
2
- import { type PageControllerClass } from '~/src/server/plugins/engine/pageControllers/helpers/pages.js';
3
- import { type AnyFormRequest, type FormContext, type OnRequestCallback, type PluginOptions } from '~/src/server/plugins/engine/types.js';
4
- import { type FormRequest, type FormResponseToolkit } from '~/src/server/routes/types.js';
2
+ import { type PageControllerClass } from '../../../../server/plugins/engine/pageControllers/helpers/pages.js';
3
+ import { type AnyFormRequest, type FormContext, type OnRequestCallback, type PluginOptions } from '../../../../server/plugins/engine/types.js';
4
+ import { type FormRequest, type FormResponseToolkit } from '../../../../server/routes/types.js';
5
5
  export declare function redirectOrMakeHandler(request: AnyFormRequest, h: FormResponseToolkit, onRequest: OnRequestCallback | undefined, makeHandler: (page: PageControllerClass, context: FormContext) => ResponseObject | Promise<ResponseObject>): Promise<symbol | ResponseObject>;
6
6
  export declare function makeLoadFormPreHandler(server: Server, options: PluginOptions): (request: AnyFormRequest, h: ResponseToolkit) => Promise<symbol>;
7
7
  export declare function dispatchHandler(request: FormRequest, h: FormResponseToolkit): ResponseObject;
@@ -33,6 +33,6 @@ export function buildPaymentInfo(action: string, outcome: string, reason: string
33
33
  */
34
34
  export function convertPenceToPounds(amount: number): string;
35
35
  import type { Request } from '@hapi/hapi';
36
- import type { FormsService } from '~/src/server/types.js';
37
- import type { PaymentSessionData } from '~/src/server/plugins/payment/types.js';
38
- import type { GetPaymentResponse } from '~/src/server/plugins/payment/types.js';
36
+ import type { FormsService } from '../../../../server/types.js';
37
+ import type { PaymentSessionData } from '../../../../server/plugins/payment/types.js';
38
+ import type { GetPaymentResponse } from '../../../../server/plugins/payment/types.js';
@@ -63,7 +63,7 @@ export function convertPenceToPounds(amount) {
63
63
 
64
64
  /**
65
65
  * @import { Request } from '@hapi/hapi'
66
- * @import { GetPaymentResponse, PaymentSessionData } from '~/src/server/plugins/payment/types.js'
67
- * @import { FormsService } from '~/src/server/types.js'
66
+ * @import { GetPaymentResponse, PaymentSessionData } from '../../../../server/plugins/payment/types.js'
67
+ * @import { FormsService } from '../../../../server/types.js'
68
68
  */
69
69
  //# sourceMappingURL=payment-helper.js.map
@@ -159,10 +159,10 @@ function getReturnRoute() {
159
159
 
160
160
  /**
161
161
  * @import { Request, ResponseToolkit, ServerRoute } from '@hapi/hapi'
162
- * @import { GetPaymentResponse, PaymentSessionData } from '~/src/server/plugins/payment/types.js'
163
- * @import { PaymentState } from '~/src/server/plugins/engine/components/PaymentField.types.js'
164
- * @import { ExternalStateAppendage, FormState } from '~/src/server/plugins/engine/types.js'
165
- * @import { PluginOptions } from '~/src/server/plugins/engine/types.js'
166
- * @import { FormsService } from '~/src/server/types.js'
162
+ * @import { GetPaymentResponse, PaymentSessionData } from '../../../../server/plugins/payment/types.js'
163
+ * @import { PaymentState } from '../../../../server/plugins/engine/components/PaymentField.types.js'
164
+ * @import { ExternalStateAppendage, FormState } from '../../../../server/plugins/engine/types.js'
165
+ * @import { PluginOptions } from '../../../../server/plugins/engine/types.js'
166
+ * @import { FormsService } from '../../../../server/types.js'
167
167
  */
168
168
  //# sourceMappingURL=payment.js.map
@@ -182,6 +182,6 @@ describe('Payment routes', () => {
182
182
 
183
183
  /**
184
184
  * @import { Server } from '@hapi/hapi'
185
- * @import { PaymentResponseState } from '~/src/server/plugins/payment/types.js'
185
+ * @import { PaymentResponseState } from '../../../../server/plugins/payment/types.js'
186
186
  */
187
187
  //# sourceMappingURL=payment.test.js.map
@@ -1,6 +1,6 @@
1
1
  import { type ResponseObject, type RouteOptions, type ServerRoute } from '@hapi/hapi';
2
- import { type OnRequestCallback, type PreparePageEventRequestOptions } from '~/src/server/plugins/engine/types.js';
3
- import { type FormRequest, type FormRequestPayload, type FormRequestPayloadRefs, type FormRequestRefs, type FormResponseToolkit } from '~/src/server/routes/types.js';
2
+ import { type OnRequestCallback, type PreparePageEventRequestOptions } from '../../../../server/plugins/engine/types.js';
3
+ import { type FormRequest, type FormRequestPayload, type FormRequestPayloadRefs, type FormRequestRefs, type FormResponseToolkit } from '../../../../server/routes/types.js';
4
4
  export declare function makeGetHandler(preparePageEventRequestOptions?: PreparePageEventRequestOptions, onRequest?: OnRequestCallback): (request: FormRequest, h: FormResponseToolkit) => ResponseObject | Promise<symbol | ResponseObject>;
5
5
  export declare function makePostHandler(preparePageEventRequestOptions?: PreparePageEventRequestOptions, onRequest?: OnRequestCallback): (request: FormRequestPayload, h: FormResponseToolkit) => Promise<symbol | ResponseObject>;
6
6
  export declare function getRoutes(getRouteOptions: RouteOptions<FormRequestRefs>, postRouteOptions: RouteOptions<FormRequestPayloadRefs>, preparePageEventRequestOptions?: PreparePageEventRequestOptions, onRequest?: OnRequestCallback): (ServerRoute<FormRequestRefs> | ServerRoute<FormRequestPayloadRefs>)[];
@@ -1,4 +1,4 @@
1
1
  import { type RouteOptions, type ServerRoute } from '@hapi/hapi';
2
- import { type OnRequestCallback } from '~/src/server/plugins/engine/types.js';
3
- import { type FormRequestPayloadRefs, type FormRequestRefs } from '~/src/server/routes/types.js';
2
+ import { type OnRequestCallback } from '../../../../../server/plugins/engine/types.js';
3
+ import { type FormRequestPayloadRefs, type FormRequestRefs } from '../../../../../server/routes/types.js';
4
4
  export declare function getRoutes(getRouteOptions: RouteOptions<FormRequestRefs>, postRouteOptions: RouteOptions<FormRequestPayloadRefs>, onRequest?: OnRequestCallback): (ServerRoute<FormRequestRefs> | ServerRoute<FormRequestPayloadRefs>)[];
@@ -1,4 +1,4 @@
1
1
  import { type RouteOptions, type ServerRoute } from '@hapi/hapi';
2
- import { type OnRequestCallback } from '~/src/server/plugins/engine/types.js';
3
- import { type FormRequestPayloadRefs, type FormRequestRefs } from '~/src/server/routes/types.js';
2
+ import { type OnRequestCallback } from '../../../../../server/plugins/engine/types.js';
3
+ import { type FormRequestPayloadRefs, type FormRequestRefs } from '../../../../../server/routes/types.js';
4
4
  export declare function getRoutes(getRouteOptions: RouteOptions<FormRequestRefs>, postRouteOptions: RouteOptions<FormRequestPayloadRefs>, onRequest?: OnRequestCallback): (ServerRoute<FormRequestRefs> | ServerRoute<FormRequestPayloadRefs>)[];
@@ -1,3 +1,3 @@
1
- export * as formsService from "~/src/server/plugins/engine/services/formsService.js";
2
- export * as formSubmissionService from "~/src/server/plugins/engine/services/formSubmissionService.js";
3
- export * as outputService from "~/src/server/plugins/engine/services/notifyService.js";
1
+ export * as formsService from "../../../../server/plugins/engine/services/formsService.js";
2
+ export * as formSubmissionService from "../../../../server/plugins/engine/services/formSubmissionService.js";
3
+ export * as outputService from "../../../../server/plugins/engine/services/notifyService.js";
@@ -1,8 +1,8 @@
1
1
  import { type FormMetadata, type SubmitResponsePayload } from '@defra/forms-model';
2
- import { type FormModel } from '~/src/server/plugins/engine/models/index.js';
3
- import { type DetailItem } from '~/src/server/plugins/engine/models/types.js';
4
- import { type FormContext } from '~/src/server/plugins/engine/types.js';
5
- import { type FormRequestPayload } from '~/src/server/routes/types.js';
2
+ import { type FormModel } from '../../../../server/plugins/engine/models/index.js';
3
+ import { type DetailItem } from '../../../../server/plugins/engine/models/types.js';
4
+ import { type FormContext } from '../../../../server/plugins/engine/types.js';
5
+ import { type FormRequestPayload } from '../../../../server/routes/types.js';
6
6
  /**
7
7
  * Optional GOV.UK Notify service for consumers who want email notifications
8
8
  * Can be disabled by not providing notifyTemplateId in config
@@ -10,5 +10,5 @@ export function initiateUpload(path: string, retrievalKey: string, mimeTypesCsv?
10
10
  * @param {string} uploadId - the ID of the upload
11
11
  */
12
12
  export function getUploadStatus(uploadId: string): Promise<UploadStatusResponse | undefined>;
13
- import type { UploadInitiateResponse } from '~/src/server/plugins/engine/types.js';
14
- import type { UploadStatusResponse } from '~/src/server/plugins/engine/types.js';
13
+ import type { UploadInitiateResponse } from '../../../../server/plugins/engine/types.js';
14
+ import type { UploadStatusResponse } from '../../../../server/plugins/engine/types.js';
@@ -48,6 +48,6 @@ export async function getUploadStatus(uploadId) {
48
48
  }
49
49
 
50
50
  /**
51
- * @import { UploadInitiateResponse, UploadStatusResponse } from '~/src/server/plugins/engine/types.js'
51
+ * @import { UploadInitiateResponse, UploadStatusResponse } from '../../../../server/plugins/engine/types.js'
52
52
  */
53
53
  //# sourceMappingURL=uploadService.js.map
@@ -1,10 +1,10 @@
1
- export type { AnyFormRequest, AnyRequest, CheckAnswers, ErrorMessageTemplate, ErrorMessageTemplateList, FeaturedFormPageViewModel, FileState, FilterFunction, FormAdapterSubmissionMessage, FormAdapterSubmissionMessageData, FormAdapterSubmissionMessageMeta, FormAdapterSubmissionMessageMetaSerialised, FormAdapterSubmissionMessagePayload, FormAdapterSubmissionService, FormContext, FormContextRequest, FormPageViewModel, FormPayload, FormPayloadParams, FormState, FormStateValue, FormSubmissionError, FormSubmissionState, FormValidationResult, FormValue, GlobalFunction, ItemDeletePageViewModel, OnRequestCallback, PageViewModel, PageViewModelBase, PluginOptions, PreparePageEventRequestOptions, RepeatItemState, RepeatListState, RepeaterSummaryPageViewModel, SummaryList, SummaryListAction, SummaryListRow, TempFileState, UploadInitiateResponse, UploadStatusFileResponse, UploadStatusResponse } from '~/src/server/plugins/engine/types.js';
2
- export { FileStatus, UploadStatus } from '~/src/server/plugins/engine/types.js';
3
- export type { Detail, DetailItem, DetailItemBase, DetailItemField, DetailItemRepeat, ExecutableCondition } from '~/src/server/plugins/engine/models/types.js';
4
- export type { BackLink, ComponentText, ComponentViewModel, Content, DateInputItem, DatePartsState, EastingNorthingState, Label, LatLongState, ListItem, ListItemLabel, MonthYearState, ViewModel } from '~/src/server/plugins/engine/components/types.js';
5
- export type { UkAddressState } from '~/src/server/plugins/engine/components/UkAddressField.js';
6
- export type { FormParams, FormQuery, FormRequest, FormRequestPayload, FormRequestPayloadRefs, FormRequestRefs, FormResponseToolkit } from '~/src/server/routes/types.js';
7
- export { FormAction, FormStatus } from '~/src/server/routes/types.js';
8
- export type { FormSubmissionService, FormsService, OutputService, RouteConfig, Services } from '~/src/server/types.js';
9
- export * from '~/src/server/plugins/engine/types/schema.js';
10
- export { FormAdapterSubmissionSchemaVersion } from '~/src/server/plugins/engine/types/enums.js';
1
+ export type { AnyFormRequest, AnyRequest, CheckAnswers, ErrorMessageTemplate, ErrorMessageTemplateList, FeaturedFormPageViewModel, FileState, FilterFunction, FormAdapterSubmissionMessage, FormAdapterSubmissionMessageData, FormAdapterSubmissionMessageMeta, FormAdapterSubmissionMessageMetaSerialised, FormAdapterSubmissionMessagePayload, FormAdapterSubmissionService, FormContext, FormContextRequest, FormPageViewModel, FormPayload, FormPayloadParams, FormState, FormStateValue, FormSubmissionError, FormSubmissionState, FormValidationResult, FormValue, GlobalFunction, ItemDeletePageViewModel, OnRequestCallback, PageViewModel, PageViewModelBase, PluginOptions, PreparePageEventRequestOptions, RepeatItemState, RepeatListState, RepeaterSummaryPageViewModel, SummaryList, SummaryListAction, SummaryListRow, TempFileState, UploadInitiateResponse, UploadStatusFileResponse, UploadStatusResponse } from '../../../../server/plugins/engine/types.js';
2
+ export { FileStatus, UploadStatus } from '../../../../server/plugins/engine/types.js';
3
+ export type { Detail, DetailItem, DetailItemBase, DetailItemField, DetailItemRepeat, ExecutableCondition } from '../../../../server/plugins/engine/models/types.js';
4
+ export type { BackLink, ComponentText, ComponentViewModel, Content, DateInputItem, DatePartsState, EastingNorthingState, Label, LatLongState, ListItem, ListItemLabel, MonthYearState, ViewModel } from '../../../../server/plugins/engine/components/types.js';
5
+ export type { UkAddressState } from '../../../../server/plugins/engine/components/UkAddressField.js';
6
+ export type { FormParams, FormQuery, FormRequest, FormRequestPayload, FormRequestPayloadRefs, FormRequestRefs, FormResponseToolkit } from '../../../../server/routes/types.js';
7
+ export { FormAction, FormStatus } from '../../../../server/routes/types.js';
8
+ export type { FormSubmissionService, FormsService, OutputService, RouteConfig, Services } from '../../../../server/types.js';
9
+ export * from '../../../../server/plugins/engine/types/schema.js';
10
+ export { FormAdapterSubmissionSchemaVersion } from '../../../../server/plugins/engine/types/enums.js';
@@ -1,5 +1,5 @@
1
1
  import Joi from 'joi';
2
- import { type FormAdapterSubmissionMessageData, type FormAdapterSubmissionMessageMeta, type FormAdapterSubmissionMessagePayload, type FormAdapterSubmissionMessageResult } from '~/src/server/plugins/engine/types.js';
2
+ import { type FormAdapterSubmissionMessageData, type FormAdapterSubmissionMessageMeta, type FormAdapterSubmissionMessagePayload, type FormAdapterSubmissionMessageResult } from '../../../../server/plugins/engine/types.js';
3
3
  export declare const formAdapterSubmissionMessageMetaSchema: Joi.ObjectSchema<FormAdapterSubmissionMessageMeta>;
4
4
  export declare const formAdapterSubmissionMessageDataSchema: Joi.ObjectSchema<FormAdapterSubmissionMessageData>;
5
5
  export declare const formAdapterSubmissionMessageResultSchema: Joi.ObjectSchema<FormAdapterSubmissionMessageResult>;
@@ -1,23 +1,32 @@
1
1
  import { type ComponentDef, type Event, type FormVersionMetadata, type Item, type List, type Page, type PaymentFieldComponent, type UkAddressFieldComponent } from '@defra/forms-model';
2
2
  import { type PluginProperties, type Request, type ResponseObject } from '@hapi/hapi';
3
3
  import { type JoiExpression, type ValidationErrorItem } from 'joi';
4
- import { type UkAddressState } from '~/src/server/plugins/engine/components/UkAddressField.js';
5
- import { type Component } from '~/src/server/plugins/engine/components/helpers/components.js';
6
- import { type FileUploadField, type PaymentField } from '~/src/server/plugins/engine/components/index.js';
7
- import { type BackLink, type ComponentText, type ComponentViewModel, type DatePartsState, type EastingNorthingState, type LatLongState, type MonthYearState } from '~/src/server/plugins/engine/components/types.js';
8
- import { type FormModel } from '~/src/server/plugins/engine/models/index.js';
9
- import { type DetailItemField } from '~/src/server/plugins/engine/models/types.js';
10
- import { type PageController } from '~/src/server/plugins/engine/pageControllers/PageController.js';
11
- import { type PageControllerClass } from '~/src/server/plugins/engine/pageControllers/helpers/pages.js';
12
- import { type QuestionPageController } from '~/src/server/plugins/engine/pageControllers/index.js';
13
- import { type FileStatus, type FormAdapterSubmissionSchemaVersion, type UploadStatus } from '~/src/server/plugins/engine/types/enums.js';
14
- import { type ViewContext } from '~/src/server/plugins/nunjucks/types.js';
15
- import { type FormAction, type FormRequest, type FormRequestPayload, type FormResponseToolkit, type FormStatus } from '~/src/server/routes/types.js';
16
- import { type CacheService } from '~/src/server/services/cacheService.js';
17
- import { type RequestOptions } from '~/src/server/services/httpService.js';
18
- import { type Services } from '~/src/server/types.js';
4
+ import { type UkAddressState } from '../../../server/plugins/engine/components/UkAddressField.js';
5
+ import { type Component } from '../../../server/plugins/engine/components/helpers/components.js';
6
+ import { type FileUploadField, type PaymentField } from '../../../server/plugins/engine/components/index.js';
7
+ import { type BackLink, type ComponentText, type ComponentViewModel, type DatePartsState, type EastingNorthingState, type LatLongState, type MonthYearState } from '../../../server/plugins/engine/components/types.js';
8
+ import { type FormModel } from '../../../server/plugins/engine/models/index.js';
9
+ import { type DetailItemField } from '../../../server/plugins/engine/models/types.js';
10
+ import { type PageController } from '../../../server/plugins/engine/pageControllers/PageController.js';
11
+ import { type PageControllerClass } from '../../../server/plugins/engine/pageControllers/helpers/pages.js';
12
+ import { type QuestionPageController } from '../../../server/plugins/engine/pageControllers/index.js';
13
+ import { type FileStatus, type FormAdapterSubmissionSchemaVersion, type UploadStatus } from '../../../server/plugins/engine/types/enums.js';
14
+ import { type ViewContext } from '../../../server/plugins/nunjucks/types.js';
15
+ import { type FormAction, type FormRequest, type FormRequestPayload, type FormResponseToolkit, type FormStatus } from '../../../server/routes/types.js';
16
+ import { type CacheService } from '../../../server/services/cacheService.js';
17
+ import { type RequestOptions } from '../../../server/services/httpService.js';
18
+ import { type Services } from '../../../server/types.js';
19
19
  export type AnyFormRequest = FormRequest | FormRequestPayload;
20
20
  export type AnyRequest = Request | AnyFormRequest;
21
+ export interface CacheRequest {
22
+ yar: {
23
+ id: string | undefined;
24
+ };
25
+ params: {
26
+ slug?: string;
27
+ state?: string;
28
+ };
29
+ }
21
30
  /**
22
31
  * Form submission state stores the following in Redis:
23
32
  * Props containing user's submitted values as `{ [inputId]: value }` or as `{ [sectionName]: { [inputName]: value } }`
@@ -143,7 +152,7 @@ export interface UploadInitiateResponse {
143
152
  uploadUrl: string;
144
153
  statusUrl: string;
145
154
  }
146
- export { FileStatus, UploadStatus } from '~/src/server/plugins/engine/types/enums.js';
155
+ export { FileStatus, UploadStatus } from '../../../server/plugins/engine/types/enums.js';
147
156
  export type UploadState = FileState[];
148
157
  export type FileUpload = {
149
158
  fileId: string;