@dwp/govuk-casa 7.0.8 → 8.0.0-beta2

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 (132) hide show
  1. package/README.md +22 -17
  2. package/dist/mjs/esm-wrapper.js +10 -0
  3. package/package.json +55 -80
  4. package/views/casa/components/checkboxes/template.njk +4 -1
  5. package/views/casa/components/date-input/template.njk +3 -3
  6. package/views/casa/components/journey-form/README.md +3 -1
  7. package/views/casa/components/journey-form/template.njk +1 -1
  8. package/views/casa/components/postal-address-object/template.njk +5 -5
  9. package/views/casa/components/radios/template.njk +1 -1
  10. package/views/casa/errors/static.njk +11 -0
  11. package/views/casa/layouts/journey.njk +26 -9
  12. package/views/casa/layouts/main.njk +7 -20
  13. package/views/casa/partials/scripts.njk +8 -3
  14. package/views/casa/partials/styles.njk +2 -2
  15. package/casa.js +0 -208
  16. package/definitions/review-page.js +0 -60
  17. package/dist/casa/css/casa-ie8.css +0 -1
  18. package/dist/casa/css/casa.css +0 -1
  19. package/dist/casa/js/casa.js +0 -1
  20. package/index.d.ts +0 -121
  21. package/lib/ConfigIngestor.js +0 -588
  22. package/lib/GatherModifier.js +0 -14
  23. package/lib/I18n.js +0 -160
  24. package/lib/JourneyContext.d.ts +0 -97
  25. package/lib/JourneyContext.js +0 -552
  26. package/lib/JourneyMap.js +0 -233
  27. package/lib/JourneyRoad.js +0 -330
  28. package/lib/Logger.js +0 -59
  29. package/lib/PageDictionary.d.ts +0 -11
  30. package/lib/PageDirectory.js +0 -77
  31. package/lib/Plan.js +0 -423
  32. package/lib/RoadConverter.js +0 -153
  33. package/lib/UserJourney.js +0 -8
  34. package/lib/Util.js +0 -227
  35. package/lib/Validation.js +0 -20
  36. package/lib/bootstrap/end-session.js +0 -44
  37. package/lib/bootstrap/load-definitions.js +0 -64
  38. package/lib/commonBodyParser.js +0 -15
  39. package/lib/enums.js +0 -6
  40. package/lib/gather-modifiers/index.js +0 -7
  41. package/lib/gather-modifiers/trimPostalAddressObject.js +0 -75
  42. package/lib/gather-modifiers/trimWhitespace.js +0 -16
  43. package/lib/utils/createGetRequest.d.ts +0 -5
  44. package/lib/utils/createGetRequest.js +0 -59
  45. package/lib/utils/index.js +0 -11
  46. package/lib/utils/parseRequest.d.ts +0 -5
  47. package/lib/utils/parseRequest.js +0 -72
  48. package/lib/utils/sanitise.js +0 -74
  49. package/lib/utils/validate.js +0 -32
  50. package/lib/validation/ArrayObjectField.js +0 -49
  51. package/lib/validation/ObjectField.js +0 -53
  52. package/lib/validation/SimpleField.d.ts +0 -12
  53. package/lib/validation/SimpleField.js +0 -46
  54. package/lib/validation/ValidationError.d.ts +0 -14
  55. package/lib/validation/ValidationError.js +0 -170
  56. package/lib/validation/ValidatorFactory.d.ts +0 -32
  57. package/lib/validation/ValidatorFactory.js +0 -91
  58. package/lib/validation/index.js +0 -22
  59. package/lib/validation/processor/flattenErrorArray.js +0 -24
  60. package/lib/validation/processor/queue.js +0 -214
  61. package/lib/validation/processor.js +0 -84
  62. package/lib/validation/rules/README.md +0 -3
  63. package/lib/validation/rules/ValidationRules.d.ts +0 -14
  64. package/lib/validation/rules/dateObject.js +0 -156
  65. package/lib/validation/rules/email.js +0 -44
  66. package/lib/validation/rules/inArray.js +0 -61
  67. package/lib/validation/rules/index.js +0 -23
  68. package/lib/validation/rules/nino.js +0 -48
  69. package/lib/validation/rules/optional.js +0 -14
  70. package/lib/validation/rules/postalAddressObject.js +0 -142
  71. package/lib/validation/rules/regex.js +0 -39
  72. package/lib/validation/rules/required.js +0 -57
  73. package/lib/validation/rules/strlen.js +0 -57
  74. package/lib/validation/rules/wordCount.js +0 -61
  75. package/lib/view-filters/formatDateObject.js +0 -35
  76. package/lib/view-filters/includes.js +0 -10
  77. package/lib/view-filters/index.js +0 -23
  78. package/lib/view-filters/mergeObjectsDeep.js +0 -21
  79. package/lib/view-filters/renderAsAttributes.js +0 -33
  80. package/middleware/errors/404.js +0 -12
  81. package/middleware/errors/catch-all.js +0 -27
  82. package/middleware/errors/index.js +0 -9
  83. package/middleware/headers/config-defaults.js +0 -57
  84. package/middleware/headers/headers.js +0 -40
  85. package/middleware/headers/index.js +0 -9
  86. package/middleware/i18n/i18n.js +0 -56
  87. package/middleware/i18n/index.js +0 -16
  88. package/middleware/index.js +0 -55
  89. package/middleware/mount/index.js +0 -9
  90. package/middleware/mount/mount.js +0 -10
  91. package/middleware/nunjucks/environment.js +0 -57
  92. package/middleware/nunjucks/index.js +0 -8
  93. package/middleware/page/csrf.js +0 -37
  94. package/middleware/page/edit-mode.js +0 -52
  95. package/middleware/page/gather.js +0 -75
  96. package/middleware/page/index.js +0 -103
  97. package/middleware/page/journey-continue.js +0 -157
  98. package/middleware/page/journey-rails.js +0 -102
  99. package/middleware/page/prepare-request.js +0 -77
  100. package/middleware/page/render.js +0 -75
  101. package/middleware/page/skip.js +0 -72
  102. package/middleware/page/utils.js +0 -206
  103. package/middleware/page/validate.js +0 -67
  104. package/middleware/session/expiry.js +0 -95
  105. package/middleware/session/genid.js +0 -18
  106. package/middleware/session/index.js +0 -18
  107. package/middleware/session/init.js +0 -25
  108. package/middleware/session/seed.js +0 -50
  109. package/middleware/session/timeout.js +0 -5
  110. package/middleware/static/asset-versions.js +0 -23
  111. package/middleware/static/index.js +0 -104
  112. package/middleware/static/prepare-assets.js +0 -51
  113. package/middleware/static/serve-assets.js +0 -58
  114. package/middleware/variables/index.js +0 -12
  115. package/middleware/variables/variables.js +0 -35
  116. package/src/browserconfig.xml +0 -5
  117. package/src/js/casa.js +0 -132
  118. package/src/scss/_casaElements.scss +0 -11
  119. package/src/scss/_casaGovukTemplateJinjaPolyfill.scss +0 -39
  120. package/src/scss/_casaMountUrl.scss +0 -8
  121. package/src/scss/casa-ie8.scss +0 -3
  122. package/src/scss/casa.scss +0 -14
  123. package/test/unit/templates/README.md +0 -5
  124. package/test/utils/BaseTestWaypoint.js +0 -106
  125. package/test/utils/concatWaypoints.js +0 -26
  126. package/test/utils/index.js +0 -6
  127. package/test/utils/testTraversal.js +0 -90
  128. package/views/casa/partials/cookie_message.njk +0 -3
  129. package/views/casa/partials/phase_banner_alpha.njk +0 -8
  130. package/views/casa/partials/phase_banner_beta.njk +0 -8
  131. package/views/casa/review/page-block.njk +0 -8
  132. package/views/casa/review/review.njk +0 -47
package/lib/I18n.js DELETED
@@ -1,160 +0,0 @@
1
- /**
2
- * I18n utilities.
3
- *
4
- * When this module is first required, be sure to invoke with the directories
5
- * and list of supported locales, e.g:
6
- * const I18n = require('govuk-casa/lib/I18n')(localeDirs, supportedLocales);
7
- *
8
- * This essentially iniialises the I18n singleton object.
9
- */
10
-
11
- const npath = require('path');
12
- const fs = require('fs');
13
- const logger = require('./Logger')('i18n');
14
-
15
- const LOCALE_DATA = Object.create(null);
16
-
17
- /**
18
- * Translator class.
19
- */
20
- class Translator {
21
- /**
22
- * Constructor.
23
- *
24
- * @param {string} lang Language to use for all translations.
25
- */
26
- constructor(lang) {
27
- if (typeof lang !== 'string') {
28
- throw new TypeError('Translator must be instantiated with a language');
29
- }
30
- this.language = lang;
31
- }
32
-
33
- /**
34
- * Retrieve the language.
35
- *
36
- * @returns {string} Language code.
37
- */
38
- getLanguage() {
39
- return this.language;
40
- }
41
-
42
- /**
43
- * Translate string.
44
- *
45
- * The replacements can be primitives, a function or a object containing such
46
- * values. For example, the following are all valid:
47
- * t('Hello, %s', 'World') = Hello, World
48
- * t('Pay £${fee}', {fee:100}) = Pay £100
49
- *
50
- * @param {string} key String to translate
51
- * @param {...any} subs Replacements
52
- * @returns {string} Translated string
53
- * @throws {Error} When a function substitution is used
54
- */
55
- t(key, ...subs) {
56
- const k = (key || '').split(':');
57
- let str = key;
58
- if (typeof LOCALE_DATA[this.language][k[0]] !== 'undefined') {
59
- str = typeof LOCALE_DATA[this.language][k[0]][k[1]] === 'undefined'
60
- ? key
61
- : LOCALE_DATA[this.language][k[0]][k[1]];
62
- }
63
-
64
- subs.forEach((sub) => {
65
- if (typeof sub === 'object') {
66
- Object.keys(sub).forEach((subkey) => {
67
- str = str.replace(new RegExp(`\\$\\{${subkey}\\}`), sub[subkey]);
68
- });
69
- } else if (typeof sub === 'function') {
70
- throw new Error('Function substitions are not yet supported');
71
- } else {
72
- str = str.replace(/%s/, sub);
73
- }
74
- });
75
-
76
- return str;
77
- }
78
- }
79
-
80
- module.exports = function TranslaterInit(localeDirs, supportedLocales) {
81
- /**
82
- * Flattens a JSON object structure into a "flat" object indexed by paths in a
83
- * dot-notation. For example, calling `flatten()` on the structure ...
84
- * {
85
- * "person": {
86
- * "title": {
87
- * "label": "Miss"
88
- * }.
89
- * }.
90
- * }.
91
- *
92
- * ... Results in the new object, written to `tgt`:
93
- * {
94
- * "person.title.label": "Miss"
95
- * }
96
- *
97
- * @param {string} path Current path (used by recursive element)
98
- * @param {object} src Source object to flatten
99
- * @param {object} tgt Object into which the resulting data is written
100
- * @returns {void}
101
- */
102
- function flatten(path, src, tgt) {
103
- Object.keys(src).forEach((key) => {
104
- const nodepath = path ? [path, key].join('.') : key;
105
- if (typeof src[key] === 'object') {
106
- flatten(nodepath, src[key], tgt);
107
- } else {
108
- tgt[nodepath] = src[key]; /* eslint-disable-line no-param-reassign */
109
- }
110
- });
111
- }
112
-
113
- /**
114
- * Load the locale into the `LOCALE_DATA` object.
115
- *
116
- * @param {string} locale Locale to load (e.g. "en").
117
- * @returns {void}
118
- * @throws {Error} When locale is missing
119
- */
120
- function loadLocale(locale) {
121
- try {
122
- LOCALE_DATA[locale] = Object.create(null);
123
- localeDirs.forEach((localeDir) => {
124
- const langDir = npath.resolve(localeDir, locale);
125
- if (fs.existsSync(langDir)) {
126
- logger.info('Loading %s locale from %s ...', locale, langDir);
127
- fs.readdirSync(langDir).forEach((file) => {
128
- const ns = npath.basename(file, '.json');
129
- if (typeof LOCALE_DATA[locale][ns] === 'undefined') {
130
- LOCALE_DATA[locale][ns] = Object.create(null);
131
- }
132
-
133
- // Load file and strip newlines out, otherwise JSON.parse will fail.
134
- // Newlines may be in the file to make them more readable during
135
- // content creation, but they are invalid in JSON.
136
- let json = fs.readFileSync(npath.resolve(langDir, file), 'utf8');
137
- json = json.replace(/[\r\n]/g, '');
138
- json = JSON.parse(json);
139
- flatten(null, json, LOCALE_DATA[locale][ns]);
140
- });
141
- }
142
- });
143
- } catch (e) {
144
- logger.error('Error loading locale: %s', e);
145
- throw e;
146
- }
147
- }
148
-
149
- // Load data for all supported locales
150
- if (!Array.isArray(supportedLocales) || !supportedLocales.length) {
151
- throw new Error('You must define at least one supported locale');
152
- }
153
- supportedLocales.forEach((l) => {
154
- loadLocale(l);
155
- });
156
-
157
- return {
158
- Translator,
159
- };
160
- };
@@ -1,97 +0,0 @@
1
- import ValidationError = require("./validation/ValidationError");
2
- import PageMeta from '../index';
3
-
4
- export = JourneyContext;
5
-
6
- declare class JourneyContext {
7
- constructor(data?: object, validation?: { [key: string]: JourneyContextPageValidation }, nav?: object, identity?: object);
8
-
9
- toObject(): JourneyContextObject;
10
-
11
- static fromObject(obj: JourneyContextObject): JourneyContext;
12
-
13
- static fromContext(context: JourneyContext): JourneyContext;
14
-
15
- public data: object;
16
-
17
- public validation: JourneyContextPageValidation;
18
-
19
- public nav: JourneyContextNavObject;
20
-
21
- public identity: JourneyContextIdentityObject;
22
-
23
- getData(): object;
24
-
25
- getDataForPage(pageId: string | typeof PageMeta): object;
26
-
27
- setData(data: object): JourneyContext;
28
-
29
- setDataForPage(page: string | typeof PageMeta, data: object): JourneyContext;
30
-
31
- getValidationErrors(): { [key: string]: JourneyContextPageValidation };
32
-
33
- removeValidationStateForPage(pageId: string): JourneyContext;
34
-
35
- clearValidationErrorsForPage(pageId: string): JourneyContext;
36
-
37
- setValidationErrorsForPage(pageId: string, errors: JourneyContextPageValidation): JourneyContext;
38
-
39
- getValidationErrorsForPage(pageId: string): JourneyContextPageValidation;
40
-
41
- hasValidationErrorsForPage(pageId: string): boolean;
42
-
43
- getNavigation(): JourneyContextNavObject;
44
-
45
- setNavigationLanguage(language: string): JourneyContext;
46
-
47
- isPageValid(pageId: string): boolean;
48
-
49
- getIdentity(): JourneyContextIdentityObject;
50
-
51
- isDefault(): boolean;
52
-
53
- static initContextStore(session: object): void;
54
-
55
- static validateContextId(id: string): string;
56
-
57
- static getContextById(session: object, id: string): JourneyContext;
58
-
59
- static getContextByName(session: object, name: string): JourneyContext;
60
-
61
- static getContextsByTag(session: object, tag: string): JourneyContext;
62
-
63
- static getContexts(session: object): Array<JourneyContext>;
64
-
65
- static putContext(session: object, context:JourneyContext): void;
66
-
67
- static removeContext(session: object, context:JourneyContext): void;
68
-
69
- static removeContextById(session: object, id:string): void;
70
-
71
- static removeContextByName(session: object, name:string): void;
72
-
73
- static removeContextsByTag(session: object, tag:string): void;
74
-
75
- static removeContexts(session: object): void;
76
- }
77
-
78
- interface JourneyContextObject {
79
- data?: object;
80
- validation?: JourneyContextPageValidation;
81
- nav?: JourneyContextNavObject;
82
- identity?: JourneyContextIdentityObject;
83
- }
84
-
85
- interface JourneyContextPageValidation {
86
- [key: string]: Array<ValidationError>
87
- }
88
-
89
- interface JourneyContextNavObject {
90
- language?: string;
91
- }
92
-
93
- interface JourneyContextIdentityObject {
94
- id: String,
95
- name?: String,
96
- tags?: Array<String>,
97
- }