@defra/forms-engine-plugin 4.7.2 → 4.8.0

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 (407) hide show
  1. package/.public/javascripts/shared.min.js +1 -1
  2. package/.public/javascripts/shared.min.js.map +1 -1
  3. package/.server/client/javascripts/geospatial-map.d.ts +6 -6
  4. package/.server/client/javascripts/geospatial-map.js +3 -3
  5. package/.server/client/javascripts/location-map.d.ts +1 -1
  6. package/.server/client/javascripts/location-map.js +1 -1
  7. package/.server/client/javascripts/map.d.ts +5 -1
  8. package/.server/client/javascripts/map.js +10 -2
  9. package/.server/client/javascripts/map.js.map +1 -1
  10. package/.server/client/javascripts/shared.d.ts +7 -7
  11. package/.server/server/index.d.ts +1 -1
  12. package/.server/server/plugins/crumb.d.ts +1 -1
  13. package/.server/server/plugins/engine/beta/form-context.d.ts +6 -6
  14. package/.server/server/plugins/engine/components/AutocompleteField.d.ts +4 -4
  15. package/.server/server/plugins/engine/components/CheckboxesField.d.ts +2 -2
  16. package/.server/server/plugins/engine/components/CheckboxesField.js +2 -2
  17. package/.server/server/plugins/engine/components/CheckboxesField.js.map +1 -1
  18. package/.server/server/plugins/engine/components/ComponentBase.d.ts +5 -5
  19. package/.server/server/plugins/engine/components/ComponentCollection.d.ts +8 -8
  20. package/.server/server/plugins/engine/components/DatePartsField.d.ts +11 -11
  21. package/.server/server/plugins/engine/components/DeclarationField.d.ts +3 -3
  22. package/.server/server/plugins/engine/components/Details.d.ts +1 -1
  23. package/.server/server/plugins/engine/components/EastingNorthingField.d.ts +22 -22
  24. package/.server/server/plugins/engine/components/EmailAddressField.d.ts +4 -4
  25. package/.server/server/plugins/engine/components/FileUploadField.d.ts +3 -3
  26. package/.server/server/plugins/engine/components/FormComponent.d.ts +10 -10
  27. package/.server/server/plugins/engine/components/GeospatialField.d.ts +6 -6
  28. package/.server/server/plugins/engine/components/HiddenField.d.ts +2 -2
  29. package/.server/server/plugins/engine/components/Html.d.ts +1 -1
  30. package/.server/server/plugins/engine/components/InsetText.d.ts +1 -1
  31. package/.server/server/plugins/engine/components/LatLongField.d.ts +22 -22
  32. package/.server/server/plugins/engine/components/List.d.ts +8 -8
  33. package/.server/server/plugins/engine/components/ListFormComponent.d.ts +10 -10
  34. package/.server/server/plugins/engine/components/LocationFieldBase.d.ts +6 -6
  35. package/.server/server/plugins/engine/components/LocationFieldHelpers.d.ts +14 -14
  36. package/.server/server/plugins/engine/components/Markdown.d.ts +1 -1
  37. package/.server/server/plugins/engine/components/MonthYearField.d.ts +11 -11
  38. package/.server/server/plugins/engine/components/MultilineTextField.d.ts +5 -5
  39. package/.server/server/plugins/engine/components/NationalGridFieldNumberField.d.ts +1 -1
  40. package/.server/server/plugins/engine/components/NumberField.d.ts +3 -3
  41. package/.server/server/plugins/engine/components/OsGridRefField.d.ts +1 -1
  42. package/.server/server/plugins/engine/components/PaymentField.d.ts +12 -12
  43. package/.server/server/plugins/engine/components/RadiosField.d.ts +1 -1
  44. package/.server/server/plugins/engine/components/SelectField.d.ts +4 -4
  45. package/.server/server/plugins/engine/components/SelectionControlField.d.ts +10 -10
  46. package/.server/server/plugins/engine/components/TelephoneNumberField.d.ts +4 -4
  47. package/.server/server/plugins/engine/components/TextField.d.ts +2 -2
  48. package/.server/server/plugins/engine/components/UkAddressField.d.ts +11 -11
  49. package/.server/server/plugins/engine/components/YesNoField.d.ts +2 -2
  50. package/.server/server/plugins/engine/components/helpers/__stubs__/geospatial.d.ts +1 -1
  51. package/.server/server/plugins/engine/components/helpers/components.d.ts +5 -5
  52. package/.server/server/plugins/engine/components/helpers/geospatial.d.ts +1 -1
  53. package/.server/server/plugins/engine/components/index.d.ts +27 -27
  54. package/.server/server/plugins/engine/components/types.d.ts +1 -1
  55. package/.server/server/plugins/engine/configureEnginePlugin.d.ts +4 -4
  56. package/.server/server/plugins/engine/date-helper.d.ts +1 -1
  57. package/.server/server/plugins/engine/helpers.d.ts +8 -8
  58. package/.server/server/plugins/engine/index.d.ts +5 -5
  59. package/.server/server/plugins/engine/models/FormModel.d.ts +6 -6
  60. package/.server/server/plugins/engine/models/SummaryViewModel.d.ts +6 -6
  61. package/.server/server/plugins/engine/models/index.d.ts +2 -2
  62. package/.server/server/plugins/engine/models/types.d.ts +4 -4
  63. package/.server/server/plugins/engine/options.d.ts +1 -1
  64. package/.server/server/plugins/engine/options.js +1 -1
  65. package/.server/server/plugins/engine/options.test.js +1 -1
  66. package/.server/server/plugins/engine/outputFormatters/adapter/v1.d.ts +4 -4
  67. package/.server/server/plugins/engine/outputFormatters/human/v1.d.ts +4 -4
  68. package/.server/server/plugins/engine/outputFormatters/index.d.ts +5 -5
  69. package/.server/server/plugins/engine/outputFormatters/machine/v1.d.ts +4 -4
  70. package/.server/server/plugins/engine/outputFormatters/machine/v2.d.ts +4 -4
  71. package/.server/server/plugins/engine/pageControllers/FileUploadPageController.d.ts +8 -8
  72. package/.server/server/plugins/engine/pageControllers/PageController.d.ts +6 -6
  73. package/.server/server/plugins/engine/pageControllers/QuestionPageController.d.ts +8 -8
  74. package/.server/server/plugins/engine/pageControllers/RepeatPageController.d.ts +5 -5
  75. package/.server/server/plugins/engine/pageControllers/StartPageController.d.ts +4 -4
  76. package/.server/server/plugins/engine/pageControllers/StatusPageController.d.ts +4 -4
  77. package/.server/server/plugins/engine/pageControllers/SummaryPageController.d.ts +5 -5
  78. package/.server/server/plugins/engine/pageControllers/TerminalPageController.d.ts +3 -3
  79. package/.server/server/plugins/engine/pageControllers/__stubs__/request.d.ts +2 -2
  80. package/.server/server/plugins/engine/pageControllers/errors.d.ts +1 -1
  81. package/.server/server/plugins/engine/pageControllers/helpers/pages.d.ts +2 -2
  82. package/.server/server/plugins/engine/pageControllers/helpers/state.d.ts +5 -5
  83. package/.server/server/plugins/engine/pageControllers/helpers/state.js +1 -1
  84. package/.server/server/plugins/engine/pageControllers/helpers/state.js.map +1 -1
  85. package/.server/server/plugins/engine/pageControllers/helpers/submission.d.ts +1 -1
  86. package/.server/server/plugins/engine/pageControllers/index.d.ts +7 -7
  87. package/.server/server/plugins/engine/plugin.d.ts +1 -1
  88. package/.server/server/plugins/engine/routes/file-upload.d.ts +1 -1
  89. package/.server/server/plugins/engine/routes/index.d.ts +3 -3
  90. package/.server/server/plugins/engine/routes/payment-helper.d.ts +3 -3
  91. package/.server/server/plugins/engine/routes/payment-helper.js +2 -2
  92. package/.server/server/plugins/engine/routes/payment.js +5 -5
  93. package/.server/server/plugins/engine/routes/payment.test.js +1 -1
  94. package/.server/server/plugins/engine/routes/questions.d.ts +2 -2
  95. package/.server/server/plugins/engine/routes/repeaters/item-delete.d.ts +2 -2
  96. package/.server/server/plugins/engine/routes/repeaters/summary.d.ts +2 -2
  97. package/.server/server/plugins/engine/services/index.d.ts +3 -3
  98. package/.server/server/plugins/engine/services/notifyService.d.ts +4 -4
  99. package/.server/server/plugins/engine/services/uploadService.d.ts +2 -2
  100. package/.server/server/plugins/engine/services/uploadService.js +1 -1
  101. package/.server/server/plugins/engine/types/index.d.ts +10 -10
  102. package/.server/server/plugins/engine/types/schema.d.ts +1 -1
  103. package/.server/server/plugins/engine/types.d.ts +25 -16
  104. package/.server/server/plugins/engine/types.js.map +1 -1
  105. package/.server/server/plugins/engine/validationHelpers.d.ts +2 -2
  106. package/.server/server/plugins/engine/vision.d.ts +1 -1
  107. package/.server/server/plugins/map/index.d.ts +1 -1
  108. package/.server/server/plugins/map/index.js +1 -1
  109. package/.server/server/plugins/map/routes/get-os-token.d.ts +11 -1
  110. package/.server/server/plugins/map/routes/get-os-token.js +12 -2
  111. package/.server/server/plugins/map/routes/get-os-token.js.map +1 -1
  112. package/.server/server/plugins/map/routes/index.d.ts +4 -4
  113. package/.server/server/plugins/map/routes/index.js +3 -2
  114. package/.server/server/plugins/map/routes/index.js.map +1 -1
  115. package/.server/server/plugins/map/routes/vts/esri-aerial.json +23 -0
  116. package/.server/server/plugins/map/service.d.ts +1 -1
  117. package/.server/server/plugins/map/service.js +5 -2
  118. package/.server/server/plugins/map/service.js.map +1 -1
  119. package/.server/server/plugins/map/test/__stubs__/find.d.ts +1 -1
  120. package/.server/server/plugins/map/test/__stubs__/find.js +1 -1
  121. package/.server/server/plugins/nunjucks/context.d.ts +2 -2
  122. package/.server/server/plugins/nunjucks/context.js +2 -2
  123. package/.server/server/plugins/nunjucks/context.test.js +1 -1
  124. package/.server/server/plugins/nunjucks/enviroment.test.js +1 -1
  125. package/.server/server/plugins/nunjucks/environment.d.ts +3 -3
  126. package/.server/server/plugins/nunjucks/environment.js +3 -3
  127. package/.server/server/plugins/nunjucks/filters/answer.d.ts +1 -1
  128. package/.server/server/plugins/nunjucks/filters/answer.js +2 -2
  129. package/.server/server/plugins/nunjucks/filters/answer.test.js +1 -1
  130. package/.server/server/plugins/nunjucks/filters/evaluate.d.ts +1 -1
  131. package/.server/server/plugins/nunjucks/filters/evaluate.js +1 -1
  132. package/.server/server/plugins/nunjucks/filters/field.d.ts +1 -1
  133. package/.server/server/plugins/nunjucks/filters/field.js +1 -1
  134. package/.server/server/plugins/nunjucks/filters/field.test.js +1 -1
  135. package/.server/server/plugins/nunjucks/filters/href.d.ts +1 -1
  136. package/.server/server/plugins/nunjucks/filters/href.js +1 -1
  137. package/.server/server/plugins/nunjucks/filters/href.test.js +1 -1
  138. package/.server/server/plugins/nunjucks/filters/index.d.ts +8 -8
  139. package/.server/server/plugins/nunjucks/filters/page.d.ts +1 -1
  140. package/.server/server/plugins/nunjucks/filters/page.js +1 -1
  141. package/.server/server/plugins/nunjucks/filters/page.test.js +1 -1
  142. package/.server/server/plugins/nunjucks/index.d.ts +3 -3
  143. package/.server/server/plugins/nunjucks/render.d.ts +2 -2
  144. package/.server/server/plugins/nunjucks/render.js +1 -1
  145. package/.server/server/plugins/nunjucks/types.d.ts +1 -1
  146. package/.server/server/plugins/nunjucks/types.js +1 -1
  147. package/.server/server/plugins/payment/helper.d.ts +2 -2
  148. package/.server/server/plugins/payment/helper.js +1 -1
  149. package/.server/server/plugins/payment/service.d.ts +3 -3
  150. package/.server/server/plugins/payment/service.js +1 -1
  151. package/.server/server/plugins/postcode-lookup/index.d.ts +1 -1
  152. package/.server/server/plugins/postcode-lookup/index.js +1 -1
  153. package/.server/server/plugins/postcode-lookup/models/index.d.ts +6 -6
  154. package/.server/server/plugins/postcode-lookup/models/index.js +1 -1
  155. package/.server/server/plugins/postcode-lookup/routes/index.d.ts +6 -6
  156. package/.server/server/plugins/postcode-lookup/routes/index.js +15 -15
  157. package/.server/server/plugins/postcode-lookup/routes/index.js.map +1 -1
  158. package/.server/server/plugins/postcode-lookup/service.d.ts +1 -1
  159. package/.server/server/plugins/postcode-lookup/service.js +5 -2
  160. package/.server/server/plugins/postcode-lookup/service.js.map +1 -1
  161. package/.server/server/plugins/postcode-lookup/types.js +1 -1
  162. package/.server/server/routes/index.d.ts +2 -2
  163. package/.server/server/routes/types.d.ts +1 -1
  164. package/.server/server/schemas/index.d.ts +2 -2
  165. package/.server/server/services/cacheService.d.ts +8 -8
  166. package/.server/server/services/cacheService.js +2 -5
  167. package/.server/server/services/cacheService.js.map +1 -1
  168. package/.server/server/services/httpService.test.js +1 -1
  169. package/.server/server/services/index.d.ts +1 -1
  170. package/.server/server/types.d.ts +7 -7
  171. package/.server/server/utils/file-form-service.d.ts +2 -2
  172. package/.server/server/utils/file-form-service.js +1 -1
  173. package/package.json +8 -4
  174. package/src/client/javascripts/application.js +1 -1
  175. package/src/client/javascripts/geospatial-map.js +4 -4
  176. package/src/client/javascripts/location-map.js +2 -2
  177. package/src/client/javascripts/map.js +13 -4
  178. package/src/client/javascripts/shared.js +7 -7
  179. package/src/index.ts +3 -3
  180. package/src/server/common/helpers/logging/logger-options.ts +1 -1
  181. package/src/server/common/helpers/logging/logger.ts +1 -1
  182. package/src/server/common/helpers/logging/request-logger.ts +1 -1
  183. package/src/server/common/helpers/logging/request-tracing.js +1 -1
  184. package/src/server/common/helpers/redis-client.js +2 -2
  185. package/src/server/index.ts +13 -13
  186. package/src/server/plugins/crumb.ts +2 -2
  187. package/src/server/plugins/engine/beta/form-context.ts +9 -9
  188. package/src/server/plugins/engine/components/AutocompleteField.ts +3 -3
  189. package/src/server/plugins/engine/components/CheckboxesField.ts +7 -8
  190. package/src/server/plugins/engine/components/ComponentBase.ts +5 -5
  191. package/src/server/plugins/engine/components/ComponentCollection.ts +9 -9
  192. package/src/server/plugins/engine/components/DatePartsField.ts +8 -8
  193. package/src/server/plugins/engine/components/DeclarationField.ts +3 -3
  194. package/src/server/plugins/engine/components/Details.ts +1 -1
  195. package/src/server/plugins/engine/components/EastingNorthingField.ts +9 -9
  196. package/src/server/plugins/engine/components/EmailAddressField.ts +3 -3
  197. package/src/server/plugins/engine/components/FileUploadField.ts +6 -6
  198. package/src/server/plugins/engine/components/FormComponent.ts +4 -4
  199. package/src/server/plugins/engine/components/GeospatialField.ts +5 -5
  200. package/src/server/plugins/engine/components/HiddenField.ts +4 -4
  201. package/src/server/plugins/engine/components/Html.ts +1 -1
  202. package/src/server/plugins/engine/components/InsetText.ts +1 -1
  203. package/src/server/plugins/engine/components/LatLongField.ts +9 -9
  204. package/src/server/plugins/engine/components/List.ts +2 -2
  205. package/src/server/plugins/engine/components/ListFormComponent.ts +4 -4
  206. package/src/server/plugins/engine/components/LocationFieldBase.ts +5 -5
  207. package/src/server/plugins/engine/components/LocationFieldHelpers.ts +5 -5
  208. package/src/server/plugins/engine/components/Markdown.ts +1 -1
  209. package/src/server/plugins/engine/components/MonthYearField.ts +8 -8
  210. package/src/server/plugins/engine/components/MultilineTextField.ts +4 -4
  211. package/src/server/plugins/engine/components/NationalGridFieldNumberField.ts +2 -2
  212. package/src/server/plugins/engine/components/NumberField.ts +3 -3
  213. package/src/server/plugins/engine/components/OsGridRefField.ts +2 -2
  214. package/src/server/plugins/engine/components/PaymentField.ts +8 -8
  215. package/src/server/plugins/engine/components/RadiosField.ts +1 -1
  216. package/src/server/plugins/engine/components/SelectField.ts +2 -2
  217. package/src/server/plugins/engine/components/SelectionControlField.ts +4 -4
  218. package/src/server/plugins/engine/components/TelephoneNumberField.ts +4 -4
  219. package/src/server/plugins/engine/components/TextField.ts +3 -3
  220. package/src/server/plugins/engine/components/UkAddressField.ts +7 -7
  221. package/src/server/plugins/engine/components/YesNoField.ts +5 -5
  222. package/src/server/plugins/engine/components/helpers/__stubs__/geospatial.ts +1 -1
  223. package/src/server/plugins/engine/components/helpers/components.ts +8 -8
  224. package/src/server/plugins/engine/components/helpers/geospatial.ts +1 -1
  225. package/src/server/plugins/engine/components/index.ts +27 -27
  226. package/src/server/plugins/engine/components/types.ts +1 -1
  227. package/src/server/plugins/engine/configureEnginePlugin.ts +10 -10
  228. package/src/server/plugins/engine/date-helper.ts +1 -1
  229. package/src/server/plugins/engine/helpers.ts +8 -8
  230. package/src/server/plugins/engine/index.ts +8 -8
  231. package/src/server/plugins/engine/models/FormModel.ts +15 -15
  232. package/src/server/plugins/engine/models/SummaryViewModel.ts +10 -10
  233. package/src/server/plugins/engine/models/index.ts +2 -2
  234. package/src/server/plugins/engine/models/types.ts +4 -4
  235. package/src/server/plugins/engine/options.js +3 -3
  236. package/src/server/plugins/engine/outputFormatters/adapter/v1.ts +6 -6
  237. package/src/server/plugins/engine/outputFormatters/human/v1.ts +9 -9
  238. package/src/server/plugins/engine/outputFormatters/index.ts +8 -8
  239. package/src/server/plugins/engine/outputFormatters/machine/v1.ts +7 -7
  240. package/src/server/plugins/engine/outputFormatters/machine/v2.ts +6 -6
  241. package/src/server/plugins/engine/pageControllers/FileUploadPageController.ts +9 -9
  242. package/src/server/plugins/engine/pageControllers/PageController.ts +7 -7
  243. package/src/server/plugins/engine/pageControllers/QuestionPageController.ts +13 -13
  244. package/src/server/plugins/engine/pageControllers/RepeatPageController.ts +6 -6
  245. package/src/server/plugins/engine/pageControllers/StartPageController.ts +3 -3
  246. package/src/server/plugins/engine/pageControllers/StatusPageController.ts +5 -5
  247. package/src/server/plugins/engine/pageControllers/SummaryPageController.ts +12 -12
  248. package/src/server/plugins/engine/pageControllers/TerminalPageController.ts +3 -3
  249. package/src/server/plugins/engine/pageControllers/__stubs__/request.ts +3 -3
  250. package/src/server/plugins/engine/pageControllers/__stubs__/server.ts +2 -2
  251. package/src/server/plugins/engine/pageControllers/errors.ts +1 -1
  252. package/src/server/plugins/engine/pageControllers/helpers/pages.ts +2 -2
  253. package/src/server/plugins/engine/pageControllers/helpers/state.ts +9 -9
  254. package/src/server/plugins/engine/pageControllers/helpers/submission.ts +5 -5
  255. package/src/server/plugins/engine/pageControllers/index.ts +7 -7
  256. package/src/server/plugins/engine/pageControllers/validationOptions.ts +1 -1
  257. package/src/server/plugins/engine/plugin.ts +14 -14
  258. package/src/server/plugins/engine/routes/file-upload.ts +2 -2
  259. package/src/server/plugins/engine/routes/index.ts +10 -10
  260. package/src/server/plugins/engine/routes/payment-helper.js +4 -4
  261. package/src/server/plugins/engine/routes/payment.js +9 -9
  262. package/src/server/plugins/engine/routes/questions.ts +10 -10
  263. package/src/server/plugins/engine/routes/repeaters/item-delete.ts +6 -6
  264. package/src/server/plugins/engine/routes/repeaters/summary.ts +5 -5
  265. package/src/server/plugins/engine/services/formSubmissionService.js +2 -2
  266. package/src/server/plugins/engine/services/index.js +3 -3
  267. package/src/server/plugins/engine/services/localFormsService.js +2 -2
  268. package/src/server/plugins/engine/services/notifyService.ts +9 -9
  269. package/src/server/plugins/engine/services/uploadService.js +3 -3
  270. package/src/server/plugins/engine/types/index.ts +10 -10
  271. package/src/server/plugins/engine/types/schema.ts +2 -2
  272. package/src/server/plugins/engine/types.ts +22 -17
  273. package/src/server/plugins/engine/validationHelpers.ts +3 -3
  274. package/src/server/plugins/engine/vision.ts +3 -3
  275. package/src/server/plugins/map/index.js +2 -2
  276. package/src/server/plugins/map/routes/get-os-token.js +15 -3
  277. package/src/server/plugins/map/routes/index.js +7 -5
  278. package/src/server/plugins/map/routes/vts/esri-aerial.json +23 -0
  279. package/src/server/plugins/map/service.js +7 -4
  280. package/src/server/plugins/map/test/__stubs__/find.js +1 -1
  281. package/src/server/plugins/nunjucks/context.js +5 -5
  282. package/src/server/plugins/nunjucks/environment.js +6 -6
  283. package/src/server/plugins/nunjucks/filters/answer.js +3 -3
  284. package/src/server/plugins/nunjucks/filters/evaluate.js +2 -2
  285. package/src/server/plugins/nunjucks/filters/field.js +1 -1
  286. package/src/server/plugins/nunjucks/filters/href.js +2 -2
  287. package/src/server/plugins/nunjucks/filters/index.js +8 -8
  288. package/src/server/plugins/nunjucks/filters/page.js +1 -1
  289. package/src/server/plugins/nunjucks/index.js +3 -3
  290. package/src/server/plugins/nunjucks/plugin.js +3 -3
  291. package/src/server/plugins/nunjucks/render.js +2 -2
  292. package/src/server/plugins/nunjucks/types.js +1 -1
  293. package/src/server/plugins/payment/helper.js +2 -2
  294. package/src/server/plugins/payment/service.js +4 -4
  295. package/src/server/plugins/postcode-lookup/index.js +2 -2
  296. package/src/server/plugins/postcode-lookup/models/index.js +3 -3
  297. package/src/server/plugins/postcode-lookup/routes/index.js +24 -14
  298. package/src/server/plugins/postcode-lookup/service.js +7 -4
  299. package/src/server/plugins/postcode-lookup/types.js +1 -1
  300. package/src/server/plugins/session.ts +1 -1
  301. package/src/server/routes/index.ts +2 -2
  302. package/src/server/routes/public.ts +1 -1
  303. package/src/server/routes/types.ts +1 -1
  304. package/src/server/schemas/index.ts +2 -2
  305. package/src/server/secure-context.js +1 -1
  306. package/src/server/services/cacheService.ts +13 -18
  307. package/src/server/services/httpService.ts +1 -1
  308. package/src/server/services/index.ts +1 -1
  309. package/src/server/types.ts +7 -7
  310. package/src/server/utils/notify.ts +2 -2
  311. package/src/server/utils/utils.js +1 -1
  312. package/src/typings/hapi/index.d.ts +4 -4
  313. package/src/typings/joi/index.d.ts +1 -1
  314. package/src/server/common/helpers/logging/logger-options.test.ts +0 -50
  315. package/src/server/index.test.ts +0 -644
  316. package/src/server/plugins/engine/beta/form-context.test.ts +0 -373
  317. package/src/server/plugins/engine/components/AutocompleteField.test.ts +0 -362
  318. package/src/server/plugins/engine/components/CheckboxesField.test.ts +0 -486
  319. package/src/server/plugins/engine/components/DatePartsField.test.ts +0 -927
  320. package/src/server/plugins/engine/components/DeclarationField.test.ts +0 -560
  321. package/src/server/plugins/engine/components/Details.test.ts +0 -49
  322. package/src/server/plugins/engine/components/EastingNorthingField.test.ts +0 -727
  323. package/src/server/plugins/engine/components/EmailAddressField.test.ts +0 -445
  324. package/src/server/plugins/engine/components/FileUploadField.test.ts +0 -1079
  325. package/src/server/plugins/engine/components/GeospatialField.test.ts +0 -380
  326. package/src/server/plugins/engine/components/HiddenField.test.ts +0 -188
  327. package/src/server/plugins/engine/components/Html.test.ts +0 -48
  328. package/src/server/plugins/engine/components/InsetText.test.ts +0 -48
  329. package/src/server/plugins/engine/components/LatLongField.test.ts +0 -898
  330. package/src/server/plugins/engine/components/List.test.ts +0 -79
  331. package/src/server/plugins/engine/components/LocationFieldBase.test.ts +0 -253
  332. package/src/server/plugins/engine/components/LocationFieldHelpers.test.ts +0 -743
  333. package/src/server/plugins/engine/components/Markdown.test.ts +0 -48
  334. package/src/server/plugins/engine/components/MonthYearField.test.ts +0 -617
  335. package/src/server/plugins/engine/components/MultilineTextField.test.ts +0 -647
  336. package/src/server/plugins/engine/components/NationalGridFieldNumberField.test.ts +0 -449
  337. package/src/server/plugins/engine/components/NumberField.test.ts +0 -723
  338. package/src/server/plugins/engine/components/OsGridRefField.test.ts +0 -460
  339. package/src/server/plugins/engine/components/PaymentField.test.ts +0 -745
  340. package/src/server/plugins/engine/components/RadiosField.test.ts +0 -297
  341. package/src/server/plugins/engine/components/SelectField.test.ts +0 -289
  342. package/src/server/plugins/engine/components/TelephoneNumberField.test.ts +0 -384
  343. package/src/server/plugins/engine/components/TextField.test.ts +0 -521
  344. package/src/server/plugins/engine/components/UkAddressField.test.ts +0 -806
  345. package/src/server/plugins/engine/components/YesNoField.test.ts +0 -256
  346. package/src/server/plugins/engine/components/helpers/components.test.ts +0 -399
  347. package/src/server/plugins/engine/components/helpers/geospatial.test.js +0 -55
  348. package/src/server/plugins/engine/components/helpers/helpers.test.ts +0 -219
  349. package/src/server/plugins/engine/date-helper.test.ts +0 -47
  350. package/src/server/plugins/engine/helpers.test.ts +0 -868
  351. package/src/server/plugins/engine/models/FormModel.test.ts +0 -725
  352. package/src/server/plugins/engine/models/SummaryViewModel.test.ts +0 -472
  353. package/src/server/plugins/engine/options.test.js +0 -63
  354. package/src/server/plugins/engine/outputFormatters/adapter/v1.location.test.ts +0 -356
  355. package/src/server/plugins/engine/outputFormatters/adapter/v1.test.ts +0 -871
  356. package/src/server/plugins/engine/outputFormatters/human/v1.payment.test.ts +0 -147
  357. package/src/server/plugins/engine/outputFormatters/human/v1.test.ts +0 -145
  358. package/src/server/plugins/engine/outputFormatters/index.test.ts +0 -17
  359. package/src/server/plugins/engine/outputFormatters/machine/v1.test.ts +0 -268
  360. package/src/server/plugins/engine/outputFormatters/machine/v2.location.test.ts +0 -341
  361. package/src/server/plugins/engine/outputFormatters/machine/v2.payment.test.ts +0 -115
  362. package/src/server/plugins/engine/outputFormatters/machine/v2.test.ts +0 -311
  363. package/src/server/plugins/engine/pageControllers/FileUploadPageController.test.ts +0 -1372
  364. package/src/server/plugins/engine/pageControllers/PageController.test.ts +0 -246
  365. package/src/server/plugins/engine/pageControllers/QuestionPageController.test.ts +0 -1686
  366. package/src/server/plugins/engine/pageControllers/RepeatPageController.test.ts +0 -279
  367. package/src/server/plugins/engine/pageControllers/StartPageController.test.ts +0 -32
  368. package/src/server/plugins/engine/pageControllers/StatusPageController.test.ts +0 -32
  369. package/src/server/plugins/engine/pageControllers/SummaryPageController.test.ts +0 -89
  370. package/src/server/plugins/engine/pageControllers/TerminalController.test.ts +0 -37
  371. package/src/server/plugins/engine/pageControllers/errors.test.ts +0 -78
  372. package/src/server/plugins/engine/pageControllers/helpers/helpers.test.ts +0 -182
  373. package/src/server/plugins/engine/pageControllers/helpers/state.test.ts +0 -359
  374. package/src/server/plugins/engine/pageControllers/helpers/submission.test.ts +0 -373
  375. package/src/server/plugins/engine/referenceNumbers.test.ts +0 -74
  376. package/src/server/plugins/engine/routes/index.test.ts +0 -332
  377. package/src/server/plugins/engine/routes/payment-helper.test.js +0 -136
  378. package/src/server/plugins/engine/routes/payment.test.js +0 -180
  379. package/src/server/plugins/engine/routes/questions.test.ts +0 -502
  380. package/src/server/plugins/engine/routes/repeaters/item-delete.test.ts +0 -83
  381. package/src/server/plugins/engine/routes/repeaters/summary.test.ts +0 -75
  382. package/src/server/plugins/engine/services/formsService.test.js +0 -26
  383. package/src/server/plugins/engine/services/notifyService.test.ts +0 -310
  384. package/src/server/plugins/engine/types/schema.test.ts +0 -234
  385. package/src/server/plugins/engine/views/components/service-banner/template.test.js +0 -43
  386. package/src/server/plugins/engine/views/components/tag-env/template.test.js +0 -28
  387. package/src/server/plugins/engine/views/partials/preview-banner.test.js +0 -122
  388. package/src/server/plugins/map/routes/get-os-token.test.js +0 -55
  389. package/src/server/plugins/map/service.test.js +0 -144
  390. package/src/server/plugins/nunjucks/context.test.js +0 -109
  391. package/src/server/plugins/nunjucks/enviroment.test.js +0 -207
  392. package/src/server/plugins/nunjucks/filters/answer.test.js +0 -92
  393. package/src/server/plugins/nunjucks/filters/field.test.js +0 -75
  394. package/src/server/plugins/nunjucks/filters/href.test.js +0 -80
  395. package/src/server/plugins/nunjucks/filters/merge.test.js +0 -15
  396. package/src/server/plugins/nunjucks/filters/page.test.js +0 -65
  397. package/src/server/plugins/payment/helper.test.js +0 -29
  398. package/src/server/plugins/payment/service.test.js +0 -218
  399. package/src/server/plugins/postcode-lookup/service.test.js +0 -177
  400. package/src/server/postcode-lookup.test.ts +0 -64
  401. package/src/server/routes/dummy-api.test.ts +0 -97
  402. package/src/server/services/cacheService.test.ts +0 -308
  403. package/src/server/services/httpService.test.js +0 -491
  404. package/src/server/utils/file-form-service.test.js +0 -127
  405. package/src/server/utils/notify.test.ts +0 -37
  406. package/src/server/utils/secure-context/get-trust-store-certs.test.js +0 -19
  407. package/src/server/utils/utils.test.js +0 -69
@@ -1,182 +0,0 @@
1
- import {
2
- ComponentType,
3
- ControllerType,
4
- ControllerTypes,
5
- PageTypes,
6
- type Page
7
- } from '@defra/forms-model'
8
-
9
- import { FormModel } from '~/src/server/plugins/engine/models/FormModel.js'
10
- import { PageController } from '~/src/server/plugins/engine/pageControllers/PageController.js'
11
- import { getProxyUrlForLocalDevelopment } from '~/src/server/plugins/engine/pageControllers/helpers/index.js'
12
- import {
13
- createPage,
14
- type PageControllerType
15
- } from '~/src/server/plugins/engine/pageControllers/helpers/pages.js'
16
- import {
17
- FileUploadPageController,
18
- QuestionPageController,
19
- RepeatPageController,
20
- StartPageController,
21
- StatusPageController,
22
- SummaryPageController,
23
- TerminalPageController
24
- } from '~/src/server/plugins/engine/pageControllers/index.js'
25
- import definition from '~/test/form/definitions/blank.js'
26
-
27
- describe('Page controller helpers', () => {
28
- const examples = PageTypes.filter(
29
- (pageType) =>
30
- pageType.controller !== ControllerType.SummaryWithConfirmationEmail
31
- ).map((pageType) => {
32
- const pageDef = structuredClone(pageType)
33
-
34
- let controller: PageControllerType | undefined
35
-
36
- switch (pageDef.controller) {
37
- case ControllerType.Start:
38
- controller = StartPageController
39
- break
40
-
41
- case ControllerType.Page:
42
- controller = QuestionPageController
43
- break
44
-
45
- case ControllerType.Terminal:
46
- controller = TerminalPageController
47
- break
48
-
49
- case ControllerType.Repeat:
50
- controller = RepeatPageController
51
- break
52
-
53
- case ControllerType.FileUpload:
54
- controller = FileUploadPageController
55
-
56
- // Avoid minimum component requirements
57
- pageDef.components = [
58
- {
59
- type: ComponentType.FileUploadField,
60
- name: 'fileUpload',
61
- title: 'Upload something',
62
- options: {},
63
- schema: {}
64
- }
65
- ]
66
- break
67
-
68
- case ControllerType.Summary:
69
- controller = SummaryPageController
70
- break
71
-
72
- case ControllerType.Status:
73
- controller = StatusPageController
74
- break
75
- }
76
-
77
- return {
78
- controller,
79
- pageDef
80
- }
81
- })
82
-
83
- describe('Helper: createPage', () => {
84
- const model = new FormModel(definition, {
85
- basePath: 'test'
86
- })
87
-
88
- it.each([...examples])(
89
- "creates page for controller '$pageDef.controller'",
90
- ({ controller, pageDef }) => {
91
- const pageDef1 = structuredClone(pageDef)
92
- const pageDef2 = structuredClone(pageDef)
93
-
94
- expect(createPage(model, pageDef1)).toBeInstanceOf(controller)
95
-
96
- const controllerType = ControllerTypes.find(
97
- ({ name }) => name === pageDef1.controller
98
- )
99
-
100
- // @ts-expect-error - Allow invalid property for test
101
- pageDef2.controller = controllerType?.path
102
-
103
- // Check for legacy path support
104
- expect(createPage(model, pageDef2)).toBeInstanceOf(controller)
105
- }
106
- )
107
-
108
- describe('Helper: createPage (custom controllers)', () => {
109
- it('uses custom controllers from model.controllers', () => {
110
- class CustomPageController extends PageController {
111
- customProperty: string
112
-
113
- constructor(model: FormModel, pageDef: Page) {
114
- super(model, pageDef)
115
- this.customProperty = 'some-value'
116
- }
117
- }
118
-
119
- const customPageDef = {
120
- path: '/custom-page',
121
- title: 'Custom Page',
122
- controller: 'CustomController',
123
- components: []
124
- }
125
-
126
- const testModel = new FormModel(definition, {
127
- basePath: 'test'
128
- })
129
-
130
- type ControllerMap = Record<string, typeof PageController>
131
- testModel.controllers = {
132
- CustomController: CustomPageController
133
- } as ControllerMap
134
-
135
- const controller = createPage(testModel, customPageDef as Page)
136
-
137
- expect(controller).toBeInstanceOf(CustomPageController)
138
- expect(controller).toHaveProperty('customProperty', 'some-value')
139
- })
140
- })
141
-
142
- it('throws if page controller is unknown', () => {
143
- const pageDef: Page = {
144
- title: 'Unknown page',
145
- path: '/unknown-page',
146
- // @ts-expect-error - Allow invalid property for test
147
- controller: 'UnknownPageController'
148
- }
149
-
150
- expect(() => createPage(model, pageDef)).toThrow(
151
- `Page controller ${pageDef.controller} does not exist`
152
- )
153
- })
154
- })
155
-
156
- describe('Helper: getProxyUrlForLocalDevelopment', () => {
157
- it('returns null if uploadUrl is undefined', () => {
158
- expect(getProxyUrlForLocalDevelopment(undefined)).toBeNull()
159
- })
160
-
161
- it('returns null if uploadUrl does not include localhost:7337', () => {
162
- expect(getProxyUrlForLocalDevelopment('https://some-url.com')).toBeNull()
163
- expect(getProxyUrlForLocalDevelopment('http://localhost:8080')).toBeNull()
164
- })
165
-
166
- it('replaces localhost:7337 with uploader.127.0.0.1.sslip.io:7300', () => {
167
- const originalUrl = 'http://localhost:7337/upload'
168
- const expectedUrl = 'http://uploader.127.0.0.1.sslip.io:7300/upload'
169
-
170
- expect(getProxyUrlForLocalDevelopment(originalUrl)).toBe(expectedUrl)
171
- })
172
-
173
- it('handles multiple occurrences of localhost:7337', () => {
174
- const originalUrl =
175
- 'http://localhost:7337/path?redirect=http://localhost:7337/callback'
176
- const expectedUrl =
177
- 'http://uploader.127.0.0.1.sslip.io:7300/path?redirect=http://uploader.127.0.0.1.sslip.io:7300/callback'
178
-
179
- expect(getProxyUrlForLocalDevelopment(originalUrl)).toBe(expectedUrl)
180
- })
181
- })
182
- })
@@ -1,359 +0,0 @@
1
- import { ComponentType, ControllerType, type Page } from '@defra/forms-model'
2
-
3
- import { type FormModel } from '~/src/server/plugins/engine/models/FormModel.js'
4
- import { type PageControllerClass } from '~/src/server/plugins/engine/pageControllers/helpers/pages.js'
5
- import {
6
- checkSaveAndExitRepeater,
7
- copyNotYetValidatedState,
8
- prefillStateFromQueryParameters,
9
- stripParam
10
- } from '~/src/server/plugins/engine/pageControllers/helpers/state.js'
11
- import {
12
- type AnyFormRequest,
13
- type FormContext
14
- } from '~/src/server/plugins/engine/types.js'
15
- import { type FormsService, type Services } from '~/src/server/types.js'
16
-
17
- const mockGetCacheService = jest.fn()
18
- const mockCacheService = { setState: jest.fn() }
19
-
20
- jest.mock('~/src/server/plugins/engine/helpers.ts', () => ({
21
- __esModule: true,
22
- getCacheService: (...args: unknown[]) => mockGetCacheService(...args)
23
- }))
24
-
25
- function buildMockPage(
26
- pagesOverride = {},
27
- stateOverride = {},
28
- servicesOverride = {} as Services
29
- ) {
30
- return {
31
- model: {
32
- def: {
33
- metadata: {
34
- submission: { code: 'TEST-CODE' }
35
- } as { submission: { code: string } },
36
- pages: pagesOverride
37
- },
38
- getFormContext: jest.fn().mockReturnValue({
39
- isForceAccess: false,
40
- data: {}
41
- }),
42
- services: servicesOverride
43
- } as unknown as FormModel,
44
- ...stateOverride
45
- } as unknown as PageControllerClass
46
- }
47
-
48
- describe('State helpers', () => {
49
- describe('prefillStateFromQueryParameters', () => {
50
- const mockGetState = jest.fn()
51
- const mockMergeState = jest.fn()
52
- const mockRequestPrefill: AnyFormRequest = {
53
- app: {},
54
- yar: { flash: () => [] },
55
- params: { path: 'test-path' },
56
- query: {}
57
- } as unknown as AnyFormRequest
58
-
59
- it('should not add any state if no params', async () => {
60
- const mockPagePrefill = buildMockPage([], {
61
- getState: mockGetState,
62
- mergeState: mockMergeState
63
- })
64
-
65
- expect(
66
- await prefillStateFromQueryParameters(
67
- mockRequestPrefill,
68
- mockPagePrefill
69
- )
70
- ).toBeFalse()
71
- expect(mockMergeState).not.toHaveBeenCalled()
72
- })
73
-
74
- it('should ignore if no params (but some hidden fields)', async () => {
75
- const mockRequest2 = {
76
- ...mockRequestPrefill,
77
- query: {}
78
- } as unknown as AnyFormRequest
79
-
80
- const mockPagePrefill = buildMockPage(
81
- [
82
- {
83
- components: [
84
- {
85
- type: ComponentType.HiddenField,
86
- name: 'param2'
87
- },
88
- {
89
- type: ComponentType.HiddenField,
90
- name: 'param4'
91
- }
92
- ],
93
- next: []
94
- } as unknown as Page
95
- ],
96
- {
97
- getState: mockGetState,
98
- mergeState: mockMergeState
99
- }
100
- )
101
-
102
- expect(
103
- await prefillStateFromQueryParameters(mockRequest2, mockPagePrefill)
104
- ).toBeFalse()
105
- expect(mockMergeState).not.toHaveBeenCalled()
106
- })
107
-
108
- it('should only add state where param names match hidden field names', async () => {
109
- const mockRequest2 = {
110
- ...mockRequestPrefill,
111
- query: {
112
- param1: 'val1',
113
- param2: 'val2',
114
- param3: 'val3',
115
- param4: 'val4'
116
- }
117
- } as unknown as AnyFormRequest
118
-
119
- const mockPagePrefill = buildMockPage(
120
- [
121
- {
122
- components: [
123
- {
124
- type: ComponentType.HiddenField,
125
- name: 'param2'
126
- },
127
- {
128
- type: ComponentType.HiddenField,
129
- name: 'param4'
130
- }
131
- ],
132
- next: []
133
- } as unknown as Page
134
- ],
135
- {
136
- getState: mockGetState.mockResolvedValue({}),
137
- mergeState: mockMergeState
138
- }
139
- )
140
-
141
- expect(
142
- await prefillStateFromQueryParameters(mockRequest2, mockPagePrefill)
143
- ).toBe(true)
144
- expect(mockMergeState).toHaveBeenCalledWith(
145
- expect.anything(),
146
- expect.anything(),
147
- {
148
- param2: 'val2',
149
- param4: 'val4'
150
- }
151
- )
152
- })
153
-
154
- it('should call lookup function for formId', async () => {
155
- const mockRequest3 = {
156
- ...mockRequestPrefill,
157
- query: {
158
- formId: 'c644804b-2f23-4c96-a2fc-ad4975974723'
159
- }
160
- } as unknown as AnyFormRequest
161
-
162
- const mockPagePrefill = buildMockPage(
163
- [
164
- {
165
- components: [
166
- {
167
- type: ComponentType.HiddenField,
168
- name: 'formId'
169
- }
170
- ],
171
- next: []
172
- } as unknown as Page
173
- ],
174
- {
175
- getState: mockGetState.mockResolvedValue({}),
176
- mergeState: mockMergeState
177
- },
178
- {
179
- formsService: {
180
- getFormMetadata: jest.fn(),
181
- getFormMetadataById: jest
182
- .fn()
183
- .mockResolvedValue({ title: 'My looked-up form name' }),
184
- getFormDefinition: jest.fn()
185
- } as unknown as FormsService
186
- } as Services
187
- )
188
-
189
- await prefillStateFromQueryParameters(mockRequest3, mockPagePrefill)
190
- expect(mockMergeState).toHaveBeenCalledWith(
191
- expect.anything(),
192
- expect.anything(),
193
- {
194
- formId: 'c644804b-2f23-4c96-a2fc-ad4975974723',
195
- formName: 'My looked-up form name'
196
- }
197
- )
198
- })
199
- })
200
-
201
- describe('stripParam', () => {
202
- it('should remove param when exists', () => {
203
- const params = {
204
- paramName1: 'val1',
205
- returnUrl: 'http://somesite.com',
206
- paramName2: 'val2',
207
- paramName3: undefined
208
- }
209
- expect(stripParam(params, 'returnUrl')).toStrictEqual({
210
- paramName1: 'val1',
211
- paramName2: 'val2',
212
- paramName3: ''
213
- })
214
- })
215
-
216
- it('should handle param missing', () => {
217
- const params = {
218
- paramName1: 'val1',
219
- returnUrl: 'http://somesite.com',
220
- paramName2: 'val2'
221
- }
222
- expect(stripParam(params, 'paramNotThere')).toStrictEqual({
223
- paramName1: 'val1',
224
- returnUrl: 'http://somesite.com',
225
- paramName2: 'val2'
226
- })
227
- })
228
-
229
- it('should handle no params', () => {
230
- const params = {}
231
- expect(stripParam(params, 'anyParam')).toBeUndefined()
232
- })
233
- })
234
-
235
- describe('copyNotYetValidatedState', () => {
236
- beforeEach(() => {
237
- mockGetCacheService.mockReturnValue(mockCacheService)
238
- })
239
- it('should ignore if no invalid state', async () => {
240
- const mockRequest = {} as AnyFormRequest
241
- const mockContext = {
242
- state: { abc: '123' },
243
- payload: {}
244
- } as unknown as FormContext
245
- await copyNotYetValidatedState(mockRequest, mockContext)
246
- expect(mockContext.state).toEqual({ abc: '123' })
247
- expect(mockContext.payload).toEqual({})
248
- })
249
-
250
- it('should ignore if wrong path', async () => {
251
- const mockRequest = {
252
- url: {
253
- pathname: '/form-page1'
254
- }
255
- } as unknown as AnyFormRequest
256
- const mockContext = {
257
- state: {
258
- abc: '123',
259
- __stateNotYetValidated: {
260
- def: '456',
261
- __currentPagePath: '/root'
262
- }
263
- },
264
- payload: {}
265
- } as unknown as FormContext
266
- await copyNotYetValidatedState(mockRequest, mockContext)
267
- expect(mockContext.state).toEqual({
268
- abc: '123',
269
- __stateNotYetValidated: {
270
- def: '456',
271
- __currentPagePath: '/root'
272
- }
273
- })
274
- expect(mockContext.payload).toEqual({})
275
- })
276
-
277
- it('should apply if correct path', async () => {
278
- const mockRequest = {
279
- url: {
280
- pathname: '/form-page1'
281
- }
282
- } as unknown as AnyFormRequest
283
- const mockContext = {
284
- state: {
285
- abc: '123',
286
- __stateNotYetValidated: {
287
- def: '456',
288
- __currentPagePath: '/form-page1'
289
- }
290
- },
291
- payload: {}
292
- } as unknown as FormContext
293
- await copyNotYetValidatedState(mockRequest, mockContext)
294
- expect(mockContext.state).toEqual({
295
- abc: '123',
296
- __stateNotYetValidated: undefined
297
- })
298
- expect(mockContext.payload).toEqual({
299
- def: '456'
300
- })
301
- })
302
- })
303
-
304
- describe('checkSaveAndExitRepeater', () => {
305
- function createMockContextWithPath(path: string) {
306
- return {
307
- state: {
308
- abc: '123',
309
- __stateNotYetValidated: {
310
- def: '456',
311
- __currentPagePath: path
312
- }
313
- },
314
- payload: {}
315
- } as unknown as FormContext
316
- }
317
-
318
- const mockModel = {
319
- def: {
320
- pages: [
321
- {
322
- controller: ControllerType.Repeat,
323
- path: '/personal_details'
324
- }
325
- ]
326
- },
327
- basePath: 'form/preview/draft/repeater-test'
328
- } as unknown as FormModel
329
-
330
- it('should return undefined if url does not end in a guid', () => {
331
- const mockContext = createMockContextWithPath(
332
- '/form/preview/draft/repeater-test/personal_details'
333
- )
334
- expect(checkSaveAndExitRepeater(mockContext, mockModel)).toBeUndefined()
335
- })
336
-
337
- it('should return undefined if url ends in a guid but not a repeater path', () => {
338
- const mockContext = createMockContextWithPath(
339
- '/form/preview/draft/repeater-test/wrong_page/7d27fe6e-73e8-4265-84bd-1e118c92470b'
340
- )
341
- expect(checkSaveAndExitRepeater(mockContext, mockModel)).toBeUndefined()
342
- })
343
-
344
- it('should return undefined if url is not a string', () => {
345
- // @ts-expect-error - invalid dataype on purpose for this test
346
- const mockContext = createMockContextWithPath({})
347
- expect(checkSaveAndExitRepeater(mockContext, mockModel)).toBeUndefined()
348
- })
349
-
350
- it('should return correct urls if url ends in a guid and is a repeater path', () => {
351
- const mockContext = createMockContextWithPath(
352
- '/form/preview/draft/repeater-test/personal_details/7d27fe6e-73e8-4265-84bd-1e118c92470b'
353
- )
354
- expect(checkSaveAndExitRepeater(mockContext, mockModel)).toBe(
355
- '/form/preview/draft/repeater-test/personal_details/7d27fe6e-73e8-4265-84bd-1e118c92470b'
356
- )
357
- })
358
- })
359
- })