@defra/forms-engine-plugin 4.0.0 → 4.0.1

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 (108) hide show
  1. package/.public/stylesheets/application.min.css +3 -3
  2. package/.public/stylesheets/application.min.css.map +1 -1
  3. package/.server/client/stylesheets/application.scss +14 -0
  4. package/.server/config/index.d.ts +1 -0
  5. package/.server/config/index.js +7 -0
  6. package/.server/config/index.js.map +1 -1
  7. package/.server/index.js +6 -2
  8. package/.server/index.js.map +1 -1
  9. package/.server/server/constants.d.ts +2 -0
  10. package/.server/server/constants.js +2 -0
  11. package/.server/server/constants.js.map +1 -1
  12. package/.server/server/forms/components.json +7 -0
  13. package/.server/server/forms/register-as-a-unicorn-breeder.yaml +18 -2
  14. package/.server/server/plugins/engine/components/UkAddressField.d.ts +15 -9
  15. package/.server/server/plugins/engine/components/UkAddressField.js +67 -6
  16. package/.server/server/plugins/engine/components/UkAddressField.js.map +1 -1
  17. package/.server/server/plugins/engine/configureEnginePlugin.d.ts +1 -1
  18. package/.server/server/plugins/engine/configureEnginePlugin.js +6 -3
  19. package/.server/server/plugins/engine/configureEnginePlugin.js.map +1 -1
  20. package/.server/server/plugins/engine/models/FormModel.d.ts +2 -0
  21. package/.server/server/plugins/engine/models/FormModel.js +3 -1
  22. package/.server/server/plugins/engine/models/FormModel.js.map +1 -1
  23. package/.server/server/plugins/engine/options.js +2 -1
  24. package/.server/server/plugins/engine/options.js.map +1 -1
  25. package/.server/server/plugins/engine/pageControllers/QuestionPageController.d.ts +1 -0
  26. package/.server/server/plugins/engine/pageControllers/QuestionPageController.js +46 -3
  27. package/.server/server/plugins/engine/pageControllers/QuestionPageController.js.map +1 -1
  28. package/.server/server/plugins/engine/plugin.js +13 -1
  29. package/.server/server/plugins/engine/plugin.js.map +1 -1
  30. package/.server/server/plugins/engine/routes/index.js +41 -3
  31. package/.server/server/plugins/engine/routes/index.js.map +1 -1
  32. package/.server/server/plugins/engine/types.d.ts +19 -1
  33. package/.server/server/plugins/engine/types.js.map +1 -1
  34. package/.server/server/plugins/engine/validationHelpers.d.ts +15 -0
  35. package/.server/server/plugins/engine/validationHelpers.js +29 -0
  36. package/.server/server/plugins/engine/validationHelpers.js.map +1 -0
  37. package/.server/server/plugins/engine/views/components/ukaddressfield.html +50 -6
  38. package/.server/server/plugins/engine/vision.js +3 -1
  39. package/.server/server/plugins/engine/vision.js.map +1 -1
  40. package/.server/server/plugins/postcode-lookup/index.d.ts +8 -0
  41. package/.server/server/plugins/postcode-lookup/index.js +21 -0
  42. package/.server/server/plugins/postcode-lookup/index.js.map +1 -0
  43. package/.server/server/plugins/postcode-lookup/models/index.d.ts +255 -0
  44. package/.server/server/plugins/postcode-lookup/models/index.js +517 -0
  45. package/.server/server/plugins/postcode-lookup/models/index.js.map +1 -0
  46. package/.server/server/plugins/postcode-lookup/routes/index.d.ts +19 -0
  47. package/.server/server/plugins/postcode-lookup/routes/index.js +267 -0
  48. package/.server/server/plugins/postcode-lookup/routes/index.js.map +1 -0
  49. package/.server/server/plugins/postcode-lookup/service.d.ts +26 -0
  50. package/.server/server/plugins/postcode-lookup/service.js +148 -0
  51. package/.server/server/plugins/postcode-lookup/service.js.map +1 -0
  52. package/.server/server/plugins/postcode-lookup/service.test.js +144 -0
  53. package/.server/server/plugins/postcode-lookup/service.test.js.map +1 -0
  54. package/.server/server/plugins/postcode-lookup/test/__stubs__/postcode.d.ts +282 -0
  55. package/.server/server/plugins/postcode-lookup/test/__stubs__/postcode.js +370 -0
  56. package/.server/server/plugins/postcode-lookup/test/__stubs__/postcode.js.map +1 -0
  57. package/.server/server/plugins/postcode-lookup/test/__stubs__/query.d.ts +131 -0
  58. package/.server/server/plugins/postcode-lookup/test/__stubs__/query.js +195 -0
  59. package/.server/server/plugins/postcode-lookup/test/__stubs__/query.js.map +1 -0
  60. package/.server/server/plugins/postcode-lookup/test/__stubs__/uprn.d.ts +51 -0
  61. package/.server/server/plugins/postcode-lookup/test/__stubs__/uprn.js +52 -0
  62. package/.server/server/plugins/postcode-lookup/test/__stubs__/uprn.js.map +1 -0
  63. package/.server/server/plugins/postcode-lookup/types.d.ts +204 -0
  64. package/.server/server/plugins/postcode-lookup/types.js +144 -0
  65. package/.server/server/plugins/postcode-lookup/types.js.map +1 -0
  66. package/.server/server/plugins/postcode-lookup/views/postcode-lookup-details.html +83 -0
  67. package/.server/server/routes/types.d.ts +6 -1
  68. package/.server/server/routes/types.js +6 -0
  69. package/.server/server/routes/types.js.map +1 -1
  70. package/.server/server/schemas/index.js +1 -1
  71. package/.server/server/schemas/index.js.map +1 -1
  72. package/.server/server/types.d.ts +1 -0
  73. package/.server/server/types.js.map +1 -1
  74. package/package.json +2 -2
  75. package/src/client/stylesheets/application.scss +14 -0
  76. package/src/config/index.ts +9 -1
  77. package/src/index.ts +5 -4
  78. package/src/server/constants.js +2 -0
  79. package/src/server/forms/components.json +7 -0
  80. package/src/server/forms/register-as-a-unicorn-breeder.yaml +18 -2
  81. package/src/server/plugins/engine/components/UkAddressField.test.ts +50 -27
  82. package/src/server/plugins/engine/components/UkAddressField.ts +91 -8
  83. package/src/server/plugins/engine/configureEnginePlugin.ts +5 -3
  84. package/src/server/plugins/engine/models/FormModel.ts +10 -2
  85. package/src/server/plugins/engine/options.js +2 -1
  86. package/src/server/plugins/engine/pageControllers/QuestionPageController.test.ts +1 -0
  87. package/src/server/plugins/engine/pageControllers/QuestionPageController.ts +69 -1
  88. package/src/server/plugins/engine/plugin.ts +13 -1
  89. package/src/server/plugins/engine/routes/index.test.ts +1 -0
  90. package/src/server/plugins/engine/routes/index.ts +71 -3
  91. package/src/server/plugins/engine/types.ts +21 -1
  92. package/src/server/plugins/engine/validationHelpers.ts +48 -0
  93. package/src/server/plugins/engine/views/components/ukaddressfield.html +50 -6
  94. package/src/server/plugins/engine/vision.ts +6 -0
  95. package/src/server/plugins/postcode-lookup/index.js +21 -0
  96. package/src/server/plugins/postcode-lookup/models/index.js +549 -0
  97. package/src/server/plugins/postcode-lookup/routes/index.js +258 -0
  98. package/src/server/plugins/postcode-lookup/service.js +188 -0
  99. package/src/server/plugins/postcode-lookup/service.test.js +177 -0
  100. package/src/server/plugins/postcode-lookup/test/__stubs__/postcode.js +382 -0
  101. package/src/server/plugins/postcode-lookup/test/__stubs__/query.js +200 -0
  102. package/src/server/plugins/postcode-lookup/test/__stubs__/uprn.js +53 -0
  103. package/src/server/plugins/postcode-lookup/types.js +143 -0
  104. package/src/server/plugins/postcode-lookup/views/postcode-lookup-details.html +83 -0
  105. package/src/server/postcode-lookup.test.ts +64 -0
  106. package/src/server/routes/types.ts +7 -1
  107. package/src/server/schemas/index.ts +5 -7
  108. package/src/server/types.ts +1 -0
@@ -0,0 +1,255 @@
1
+ /**
2
+ * The postcode lookup details form view model
3
+ * @param {PostcodeLookupSessionData} data
4
+ * @param {PostcodeLookupDetailsData} [payload]
5
+ * @param {Error} [err]
6
+ */
7
+ export function detailsViewModel(data: PostcodeLookupSessionData, payload?: PostcodeLookupDetailsData, err?: Error): {
8
+ step: string;
9
+ showTitle: boolean;
10
+ name: string;
11
+ serviceUrl: string;
12
+ pageTitle: string;
13
+ backLink: {
14
+ href: string;
15
+ };
16
+ errors: {
17
+ text: string;
18
+ href: string;
19
+ }[] | undefined;
20
+ fields: {
21
+ postcodeQuery: {
22
+ id: string;
23
+ name: string;
24
+ label: {
25
+ text: string;
26
+ };
27
+ hint: {
28
+ text: string;
29
+ };
30
+ value: string | undefined;
31
+ errorMessage: {
32
+ text: string;
33
+ } | undefined;
34
+ };
35
+ buildingNameQuery: {
36
+ id: string;
37
+ name: string;
38
+ label: {
39
+ text: string;
40
+ };
41
+ hint: {
42
+ text: string;
43
+ };
44
+ value: string | undefined;
45
+ errorMessage: {
46
+ text: string;
47
+ } | undefined;
48
+ };
49
+ };
50
+ buttons: {
51
+ continueButton: {
52
+ text: string;
53
+ classes: string;
54
+ };
55
+ manualLink: {
56
+ text: string;
57
+ href: string;
58
+ };
59
+ };
60
+ };
61
+ /**
62
+ * The postcode lookup select form view model
63
+ * @param {{ session: PostcodeLookupSessionData, apiKey: string }} data
64
+ * @param {PostcodeLookupSelectPayload} [payload]
65
+ * @param {Error} [err]
66
+ */
67
+ export function selectViewModel(data: {
68
+ session: PostcodeLookupSessionData;
69
+ apiKey: string;
70
+ }, payload?: PostcodeLookupSelectPayload, err?: Error): Promise<{
71
+ step: string;
72
+ showTitle: boolean;
73
+ name: string;
74
+ serviceUrl: string;
75
+ pageTitle: string;
76
+ backLink: {
77
+ href: string;
78
+ };
79
+ errors: {
80
+ text: string;
81
+ href: string;
82
+ }[] | undefined;
83
+ searchAgainLink: {
84
+ text: string;
85
+ href: string;
86
+ };
87
+ fields: {
88
+ postcodeQuery: {
89
+ id: string;
90
+ name: string;
91
+ type: string;
92
+ value: string;
93
+ };
94
+ buildingNameQuery: {
95
+ id: string;
96
+ name: string;
97
+ type: string;
98
+ value: string;
99
+ };
100
+ uprn: {
101
+ id: string;
102
+ name: string;
103
+ label: {
104
+ text: string;
105
+ } | undefined;
106
+ value: string | undefined;
107
+ errorMessage: {
108
+ text: string;
109
+ } | undefined;
110
+ items: {
111
+ text: string;
112
+ value: string;
113
+ }[] | undefined;
114
+ type: string | undefined;
115
+ };
116
+ };
117
+ details: PostcodeLookupDetailsData;
118
+ addressCount: number;
119
+ singleAddress: Address | undefined;
120
+ hasAddresses: boolean;
121
+ hasMultipleAddresses: boolean;
122
+ buttons: {
123
+ continueButton: {
124
+ href: string | undefined;
125
+ text: string;
126
+ classes: string;
127
+ };
128
+ manualLink: {
129
+ text: string;
130
+ href: string;
131
+ };
132
+ };
133
+ }>;
134
+ /**
135
+ * The postcode lookup manual form view model
136
+ * @param {PostcodeLookupSessionData} data
137
+ * @param {PostcodeLookupManualPayload} [payload]
138
+ * @param {Error} [err]
139
+ */
140
+ export function manualViewModel(data: PostcodeLookupSessionData, payload?: PostcodeLookupManualPayload, err?: Error): {
141
+ step: string;
142
+ showTitle: boolean;
143
+ name: string;
144
+ serviceUrl: string;
145
+ pageTitle: string;
146
+ backLink: {
147
+ href: string;
148
+ };
149
+ errors: {
150
+ text: string;
151
+ href: string;
152
+ }[] | undefined;
153
+ hint: "" | {
154
+ text: string;
155
+ } | undefined;
156
+ fields: {
157
+ addressLine1: {
158
+ id: string;
159
+ name: string;
160
+ label: {
161
+ text: string;
162
+ };
163
+ value: string | undefined;
164
+ errorMessage: {
165
+ text: string;
166
+ } | undefined;
167
+ };
168
+ addressLine2: {
169
+ id: string;
170
+ name: string;
171
+ label: {
172
+ text: string;
173
+ };
174
+ value: string | undefined;
175
+ errorMessage: {
176
+ text: string;
177
+ } | undefined;
178
+ };
179
+ town: {
180
+ id: string;
181
+ name: string;
182
+ label: {
183
+ text: string;
184
+ };
185
+ classes: string;
186
+ value: string | undefined;
187
+ errorMessage: {
188
+ text: string;
189
+ } | undefined;
190
+ };
191
+ county: {
192
+ id: string;
193
+ name: string;
194
+ label: {
195
+ text: string;
196
+ };
197
+ value: string | undefined;
198
+ errorMessage: {
199
+ text: string;
200
+ } | undefined;
201
+ };
202
+ postcode: {
203
+ id: string;
204
+ name: string;
205
+ label: {
206
+ text: string;
207
+ };
208
+ classes: string;
209
+ value: string | undefined;
210
+ errorMessage: {
211
+ text: string;
212
+ } | undefined;
213
+ };
214
+ };
215
+ buttons: {
216
+ continueButton: {
217
+ text: string;
218
+ classes: string;
219
+ };
220
+ detailsLink: {
221
+ text: string;
222
+ href: string;
223
+ };
224
+ };
225
+ };
226
+ export namespace steps {
227
+ let details: string;
228
+ let select: string;
229
+ let manual: string;
230
+ }
231
+ export const JOURNEY_BASE_URL: "/postcode-lookup";
232
+ export const stepSchema: Joi.StringSchema<string>;
233
+ /**
234
+ * Postcode lookup details form payload schema
235
+ * @type {ObjectSchema<PostcodeLookupDetailsPayload>}
236
+ */
237
+ export const detailsPayloadSchema: Joi.ObjectSchema<PostcodeLookupDetailsPayload>;
238
+ /**
239
+ * Postcode lookup select form payload schema
240
+ * @type {ObjectSchema<PostcodeLookupSelectPayload>}
241
+ */
242
+ export const selectPayloadSchema: Joi.ObjectSchema<PostcodeLookupSelectPayload>;
243
+ /**
244
+ * Postcode lookup manual form payload schema
245
+ * @type {ObjectSchema<PostcodeLookupManualPayload>}
246
+ */
247
+ export const manualPayloadSchema: Joi.ObjectSchema<PostcodeLookupManualPayload>;
248
+ export type OptionalValidationErrorItem = Joi.ValidationErrorItem | undefined;
249
+ import type { PostcodeLookupSessionData } from '~/src/server/plugins/postcode-lookup/types.js';
250
+ import type { PostcodeLookupDetailsData } from '~/src/server/plugins/postcode-lookup/types.js';
251
+ import type { PostcodeLookupSelectPayload } from '~/src/server/plugins/postcode-lookup/types.js';
252
+ import type { Address } from '~/src/server/plugins/postcode-lookup/types.js';
253
+ import type { PostcodeLookupManualPayload } from '~/src/server/plugins/postcode-lookup/types.js';
254
+ import Joi from 'joi';
255
+ import type { PostcodeLookupDetailsPayload } from '~/src/server/plugins/postcode-lookup/types.js';