govuk_publishing_components 21.22.0 → 21.22.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_button.scss +2 -1
  3. data/app/views/govuk_publishing_components/components/_character_count.html.erb +14 -13
  4. data/app/views/govuk_publishing_components/components/docs/character_count.yml +8 -0
  5. data/app/views/govuk_publishing_components/components/docs/govspeak.yml +17 -4
  6. data/lib/govuk_publishing_components/version.rb +1 -1
  7. data/node_modules/axe-core/CHANGELOG.md +37 -0
  8. data/node_modules/axe-core/README.md +2 -2
  9. data/node_modules/axe-core/axe.d.ts +1 -1
  10. data/node_modules/axe-core/axe.js +2430 -2242
  11. data/node_modules/axe-core/axe.min.js +3 -3
  12. data/node_modules/axe-core/bower.json +1 -1
  13. data/node_modules/axe-core/doc/API.md +10 -0
  14. data/node_modules/axe-core/doc/check-message-template.md +124 -0
  15. data/node_modules/axe-core/doc/examples/jasmine/package-lock.json +1489 -0
  16. data/node_modules/axe-core/doc/examples/jest_react/package-lock.json +7525 -0
  17. data/node_modules/axe-core/doc/examples/mocha/package-lock.json +1671 -0
  18. data/node_modules/axe-core/doc/examples/phantomjs/package-lock.json +862 -0
  19. data/node_modules/axe-core/doc/examples/qunit/package-lock.json +2951 -0
  20. data/node_modules/axe-core/doc/rule-descriptions.md +2 -2
  21. data/node_modules/axe-core/lib/checks/aria/allowed-attr.json +4 -1
  22. data/node_modules/axe-core/lib/checks/aria/aria-allowed-role.json +8 -2
  23. data/node_modules/axe-core/lib/checks/aria/errormessage.json +4 -1
  24. data/node_modules/axe-core/lib/checks/aria/implicit-role-fallback.json +1 -0
  25. data/node_modules/axe-core/lib/checks/aria/no-implicit-explicit-label.json +1 -1
  26. data/node_modules/axe-core/lib/checks/aria/required-attr.json +4 -1
  27. data/node_modules/axe-core/lib/checks/aria/required-children.json +8 -2
  28. data/node_modules/axe-core/lib/checks/aria/required-parent.json +4 -1
  29. data/node_modules/axe-core/lib/checks/aria/unsupportedattr.json +1 -1
  30. data/node_modules/axe-core/lib/checks/aria/unsupportedrole.json +1 -1
  31. data/node_modules/axe-core/lib/checks/aria/valid-attr-value.json +8 -2
  32. data/node_modules/axe-core/lib/checks/aria/valid-attr.json +5 -2
  33. data/node_modules/axe-core/lib/checks/color/color-contrast.js +1 -1
  34. data/node_modules/axe-core/lib/checks/color/color-contrast.json +4 -4
  35. data/node_modules/axe-core/lib/checks/color/link-in-text-block.js +2 -2
  36. data/node_modules/axe-core/lib/checks/color/link-in-text-block.json +2 -2
  37. data/node_modules/axe-core/lib/checks/forms/fieldset.js +1 -1
  38. data/node_modules/axe-core/lib/checks/forms/fieldset.json +8 -1
  39. data/node_modules/axe-core/lib/checks/forms/group-labelledby.js +2 -2
  40. data/node_modules/axe-core/lib/checks/forms/group-labelledby.json +6 -2
  41. data/node_modules/axe-core/lib/checks/keyboard/landmark-is-top-level.json +2 -2
  42. data/node_modules/axe-core/lib/checks/lists/listitem.js +3 -1
  43. data/node_modules/axe-core/lib/checks/lists/listitem.json +4 -1
  44. data/node_modules/axe-core/lib/checks/mobile/css-orientation-lock.js +216 -99
  45. data/node_modules/axe-core/lib/checks/mobile/css-orientation-lock.json +3 -0
  46. data/node_modules/axe-core/lib/checks/mobile/meta-viewport.json +1 -1
  47. data/node_modules/axe-core/lib/checks/parsing/duplicate-id-active.json +1 -1
  48. data/node_modules/axe-core/lib/checks/parsing/duplicate-id-aria.json +1 -1
  49. data/node_modules/axe-core/lib/checks/shared/aria-label.js +1 -1
  50. data/node_modules/axe-core/lib/checks/shared/avoid-inline-spacing.json +4 -1
  51. data/node_modules/axe-core/lib/checks/shared/non-empty-if-present.js +5 -1
  52. data/node_modules/axe-core/lib/checks/shared/non-empty-if-present.json +4 -1
  53. data/node_modules/axe-core/lib/checks/tables/has-caption.json +1 -0
  54. data/node_modules/axe-core/lib/checks/tables/has-summary.json +1 -0
  55. data/node_modules/axe-core/lib/checks/tables/has-th.json +1 -0
  56. data/node_modules/axe-core/lib/commons/aria/arialabel-text.js +7 -4
  57. data/node_modules/axe-core/lib/commons/aria/get-element-unallowed-roles.js +21 -0
  58. data/node_modules/axe-core/lib/commons/dom/get-element-stack.js +465 -0
  59. data/node_modules/axe-core/lib/commons/dom/shadow-elements-from-point.js +2 -1
  60. data/node_modules/axe-core/lib/core/base/audit.js +39 -17
  61. data/node_modules/axe-core/lib/core/base/virtual-node/serial-virtual-node.js +2 -0
  62. data/node_modules/axe-core/lib/core/base/virtual-node/virtual-node.js +43 -0
  63. data/node_modules/axe-core/lib/core/reporters/helpers/incomplete-fallback-msg.js +3 -1
  64. data/node_modules/axe-core/lib/core/utils/parse-crossorigin-stylesheet.js +1 -0
  65. data/node_modules/axe-core/lib/core/utils/preload-cssom.js +4 -3
  66. data/node_modules/axe-core/lib/core/utils/process-message.js +72 -0
  67. data/node_modules/axe-core/lib/core/utils/publish-metadata.js +20 -7
  68. data/node_modules/axe-core/lib/rules/aria-dpub-role-fallback.json +2 -1
  69. data/node_modules/axe-core/lib/rules/label-content-name-mismatch-matches.js +1 -1
  70. data/node_modules/axe-core/lib/rules/layout-table.json +2 -1
  71. data/node_modules/axe-core/locales/ja.json +1 -1
  72. data/node_modules/axe-core/package.json +16 -16
  73. data/node_modules/axe-core/sri-history.json +4 -0
  74. data/node_modules/axe-core/typings/axe-core/axe-core-tests.js +151 -0
  75. data/node_modules/axe-core/typings/axe-core/axe-core-tests.ts +18 -0
  76. metadata +11 -2
@@ -14,7 +14,8 @@ dom.shadowElementsFromPoint = function(nodeX, nodeY, root = document, i = 0) {
14
14
  throw new Error('Infinite loop detected');
15
15
  }
16
16
  return (
17
- Array.from(root.elementsFromPoint(nodeX, nodeY))
17
+ // IE can return null when there are no elements
18
+ Array.from(root.elementsFromPoint(nodeX, nodeY) || [])
18
19
  // As of Chrome 66, elementFromPoint will return elements from parent trees.
19
20
  // We only want to touch each tree once, so we're filtering out nodes on other trees.
20
21
  .filter(nodes => dom.getRootNode(nodes) === root)
@@ -1,4 +1,6 @@
1
1
  /*global Rule, Check, RuleResult, commons: true */
2
+ const dotRegex = /\{\{.+?\}\}/g;
3
+
2
4
  /*eslint no-unused-vars: 0*/
3
5
  function getDefaultConfiguration(audit) {
4
6
  'use strict';
@@ -146,10 +148,10 @@ const mergeCheckLocale = (a, b) => {
146
148
  let { pass, fail } = b;
147
149
  // If the message(s) are Strings, they have not yet been run
148
150
  // thru doT (which will return a Function).
149
- if (typeof pass === 'string') {
151
+ if (typeof pass === 'string' && dotRegex.test(pass)) {
150
152
  pass = axe.imports.doT.compile(pass);
151
153
  }
152
- if (typeof fail === 'string') {
154
+ if (typeof fail === 'string' && dotRegex.test(fail)) {
153
155
  fail = axe.imports.doT.compile(fail);
154
156
  }
155
157
  return {
@@ -177,10 +179,10 @@ const mergeRuleLocale = (a, b) => {
177
179
  let { help, description } = b;
178
180
  // If the message(s) are Strings, they have not yet been run
179
181
  // thru doT (which will return a Function).
180
- if (typeof help === 'string') {
182
+ if (typeof help === 'string' && dotRegex.test(help)) {
181
183
  help = axe.imports.doT.compile(help);
182
184
  }
183
- if (typeof description === 'string') {
185
+ if (typeof description === 'string' && dotRegex.test(description)) {
184
186
  description = axe.imports.doT.compile(description);
185
187
  }
186
188
  return {
@@ -198,7 +200,7 @@ const mergeFailureMessage = (a, b) => {
198
200
  let { failureMessage } = b;
199
201
  // If the message(s) are Strings, they have not yet been run
200
202
  // thru doT (which will return a Function).
201
- if (typeof failureMessage === 'string') {
203
+ if (typeof failureMessage === 'string' && dotRegex.test(failureMessage)) {
202
204
  failureMessage = axe.imports.doT.compile(failureMessage);
203
205
  }
204
206
  return {
@@ -212,7 +214,7 @@ const mergeFailureMessage = (a, b) => {
212
214
  */
213
215
 
214
216
  const mergeFallbackMessage = (a, b) => {
215
- if (typeof b === 'string') {
217
+ if (typeof b === 'string' && dotRegex.test(b)) {
216
218
  b = axe.imports.doT.compile(b);
217
219
  }
218
220
  return b || a;
@@ -630,13 +632,37 @@ Audit.prototype.normalizeOptions = function(options) {
630
632
  'use strict';
631
633
  var audit = this;
632
634
 
635
+ const tags = [];
636
+ const ruleIds = [];
637
+ audit.rules.forEach(rule => {
638
+ ruleIds.push(rule.id);
639
+ rule.tags.forEach(tag => {
640
+ if (!tags.includes(tag)) {
641
+ tags.push(tag);
642
+ }
643
+ });
644
+ });
645
+
633
646
  // Validate runOnly
634
647
  if (typeof options.runOnly === 'object') {
635
648
  if (Array.isArray(options.runOnly)) {
636
- options.runOnly = {
637
- type: 'tag',
638
- values: options.runOnly
639
- };
649
+ const hasTag = options.runOnly.find(value => tags.includes(value));
650
+ const hasRule = options.runOnly.find(value => ruleIds.includes(value));
651
+
652
+ if (hasTag && hasRule) {
653
+ throw new Error('runOnly cannot be both rules and tags');
654
+ }
655
+ if (hasRule) {
656
+ options.runOnly = {
657
+ type: 'rule',
658
+ values: options.runOnly
659
+ };
660
+ } else {
661
+ options.runOnly = {
662
+ type: 'tag',
663
+ values: options.runOnly
664
+ };
665
+ }
640
666
  }
641
667
  const only = options.runOnly;
642
668
  if (only.value && !only.values) {
@@ -652,7 +678,7 @@ Audit.prototype.normalizeOptions = function(options) {
652
678
  if (['rule', 'rules'].includes(only.type)) {
653
679
  only.type = 'rule';
654
680
  only.values.forEach(function(ruleId) {
655
- if (!audit.getRule(ruleId)) {
681
+ if (!ruleIds.includes(ruleId)) {
656
682
  throw new Error('unknown rule `' + ruleId + '` in options.runOnly');
657
683
  }
658
684
  });
@@ -660,11 +686,7 @@ Audit.prototype.normalizeOptions = function(options) {
660
686
  // Validate 'tags' (e.g. anything not 'rule')
661
687
  } else if (['tag', 'tags', undefined].includes(only.type)) {
662
688
  only.type = 'tag';
663
- const unmatchedTags = audit.rules.reduce((unmatchedTags, rule) => {
664
- return unmatchedTags.length
665
- ? unmatchedTags.filter(tag => !rule.tags.includes(tag))
666
- : unmatchedTags;
667
- }, only.values);
689
+ const unmatchedTags = only.values.filter(tag => !tags.includes(tag));
668
690
 
669
691
  if (unmatchedTags.length !== 0) {
670
692
  axe.log('Could not find tags `' + unmatchedTags.join('`, `') + '`');
@@ -676,7 +698,7 @@ Audit.prototype.normalizeOptions = function(options) {
676
698
 
677
699
  if (typeof options.rules === 'object') {
678
700
  Object.keys(options.rules).forEach(function(ruleId) {
679
- if (!audit.getRule(ruleId)) {
701
+ if (!ruleIds.includes(ruleId)) {
680
702
  throw new Error('unknown rule `' + ruleId + '` in options.rules');
681
703
  }
682
704
  });
@@ -84,3 +84,5 @@ function normaliseAttrs({ attributes = {} }) {
84
84
  return attrs;
85
85
  }, {});
86
86
  }
87
+
88
+ axe.SerialVirtualNode = SerialVirtualNode;
@@ -61,6 +61,23 @@ class VirtualNode extends axe.AbstractVirtualNode {
61
61
  return this.actualNode.hasAttribute(attrName);
62
62
  }
63
63
 
64
+ /**
65
+ * Return a property of the computed style for this element and cache the result. This is much faster than called `getPropteryValue` every time.
66
+ * @see https://jsperf.com/get-property-value
67
+ * @return {String}
68
+ */
69
+ getComputedStylePropertyValue(property) {
70
+ const key = 'computedStyle_' + property;
71
+ if (!this._cache.hasOwnProperty(key)) {
72
+ if (!this._cache.hasOwnProperty('computedStyle')) {
73
+ this._cache.computedStyle = window.getComputedStyle(this.actualNode);
74
+ }
75
+
76
+ this._cache[key] = this._cache.computedStyle.getPropertyValue(property);
77
+ }
78
+ return this._cache[key];
79
+ }
80
+
64
81
  /**
65
82
  * Determine if the element is focusable and cache the result.
66
83
  * @return {Boolean} True if the element is focusable, false otherwise.
@@ -82,4 +99,30 @@ class VirtualNode extends axe.AbstractVirtualNode {
82
99
  }
83
100
  return this._cache.tabbableElements;
84
101
  }
102
+
103
+ /**
104
+ * Return the client rects for this element and cache the result.
105
+ * @return {DOMRect[]}
106
+ */
107
+ get clientRects() {
108
+ if (!this._cache.hasOwnProperty('clientRects')) {
109
+ this._cache.clientRects = Array.from(
110
+ this.actualNode.getClientRects()
111
+ ).filter(rect => rect.width > 0);
112
+ }
113
+ return this._cache.clientRects;
114
+ }
115
+
116
+ /**
117
+ * Return the bounding rect for this element and cache the result.
118
+ * @return {DOMRect}
119
+ */
120
+ get boundingClientRect() {
121
+ if (!this._cache.hasOwnProperty('boundingClientRect')) {
122
+ this._cache.boundingClientRect = this.actualNode.getBoundingClientRect();
123
+ }
124
+ return this._cache.boundingClientRect;
125
+ }
85
126
  }
127
+
128
+ axe.VirtualNode = VirtualNode;
@@ -7,5 +7,7 @@
7
7
  */
8
8
  helpers.incompleteFallbackMessage = function incompleteFallbackMessage() {
9
9
  'use strict';
10
- return axe._audit.data.incompleteFallbackMessage();
10
+ return typeof axe._audit.data.incompleteFallbackMessage === 'function'
11
+ ? axe._audit.data.incompleteFallbackMessage()
12
+ : axe._audit.data.incompleteFallbackMessage;
11
13
  };
@@ -19,6 +19,7 @@ axe.utils.parseCrossOriginStylesheet = function parseCrossOriginStylesheet(
19
19
  ) {
20
20
  const axiosOptions = {
21
21
  method: 'get',
22
+ timeout: axe.constants.preload.timeout,
22
23
  url
23
24
  };
24
25
 
@@ -33,9 +33,10 @@ axe.utils.preloadCssom = function preloadCssom({ treeRoot = axe._tree[0] }) {
33
33
 
34
34
  const convertDataToStylesheet = axe.utils.getStyleSheetFactory(dynamicDoc);
35
35
 
36
- return getCssomForAllRootNodes(rootNodes, convertDataToStylesheet).then(
37
- assets => flattenAssets(assets)
38
- );
36
+ return getCssomForAllRootNodes(
37
+ rootNodes,
38
+ convertDataToStylesheet
39
+ ).then(assets => flattenAssets(assets));
39
40
  };
40
41
 
41
42
  /**
@@ -0,0 +1,72 @@
1
+ /* global helpers */
2
+ const dataRegex = /\$\{\s?data\s?\}/g;
3
+
4
+ /**
5
+ * Replace a placeholder with the value of a data string or object
6
+ * @param {String} str
7
+ * @param {String|Object} data
8
+ */
9
+ function substitute(str, data) {
10
+ // replace all instances of ${ data } with the value of the string
11
+ if (typeof data === 'string') {
12
+ return str.replace(dataRegex, data);
13
+ }
14
+
15
+ // replace all instances of ${ data[prop] } with the value of the property
16
+ for (const prop in data) {
17
+ if (data.hasOwnProperty(prop)) {
18
+ const regex = new RegExp('\\${\\s?data\\.' + prop + '\\s?}', 'g');
19
+ str = str.replace(regex, data[prop]);
20
+ }
21
+ }
22
+
23
+ return str;
24
+ }
25
+
26
+ /**
27
+ * Process a metadata message.
28
+ * @param {String|Object} message
29
+ * @param {Object} data
30
+ * @return {String}
31
+ */
32
+ axe.utils.processMessage = function processMessage(message, data) {
33
+ if (!message) {
34
+ return;
35
+ }
36
+
37
+ // data as array
38
+ if (Array.isArray(data)) {
39
+ data.values = data.join(', ');
40
+
41
+ if (
42
+ typeof message.singular === 'string' &&
43
+ typeof message.plural === 'string'
44
+ ) {
45
+ const str = data.length === 1 ? message.singular : message.plural;
46
+ return substitute(str, data);
47
+ }
48
+
49
+ // no singular/plural message so just pass data
50
+ return substitute(message, data);
51
+ }
52
+
53
+ // message is a string that uses data as a string or object properties
54
+ if (typeof message === 'string') {
55
+ return substitute(message, data);
56
+ }
57
+
58
+ // message is an object that uses value of data to determine message
59
+ if (typeof data === 'string') {
60
+ const str = message[data];
61
+ return substitute(str, data);
62
+ }
63
+
64
+ // message uses value of data property to determine message
65
+ let str = message.default || helpers.incompleteFallbackMessage();
66
+
67
+ if (data && data.messageKey && message[data.messageKey]) {
68
+ str = message[data.messageKey];
69
+ }
70
+
71
+ return processMessage(str, data);
72
+ };
@@ -1,4 +1,4 @@
1
- /*global helpers */
1
+ /* global helpers */
2
2
  /**
3
3
  * Construct incomplete message from check.data
4
4
  * @param {Object} checkData Check result with reason specified
@@ -30,10 +30,13 @@ function getIncompleteReason(checkData, messages) {
30
30
  return getDefaultMsg(messages);
31
31
  }
32
32
  }
33
+ } else if (checkData && checkData.messageKey) {
34
+ return messages.incomplete[checkData.messageKey];
33
35
  } else {
34
36
  return getDefaultMsg(messages);
35
37
  }
36
38
  }
39
+
37
40
  /**
38
41
  * Extend checksData with the correct result message
39
42
  * @param {Object} checksData The check result data
@@ -49,18 +52,28 @@ function extender(checksData, shouldBeTrue) {
49
52
  var data = Object.assign({}, sourceData);
50
53
  delete data.messages;
51
54
  if (check.result === undefined) {
52
- if (typeof messages.incomplete === 'object') {
53
- data.message = function() {
54
- return getIncompleteReason(check.data, messages);
55
- };
56
- } else {
57
- // fall back to string function
55
+ // handle old doT template
56
+ if (
57
+ typeof messages.incomplete === 'object' &&
58
+ !Array.isArray(check.data)
59
+ ) {
60
+ data.message = getIncompleteReason(check.data, messages);
61
+ }
62
+
63
+ // fallback to new process message style
64
+ if (!data.message) {
58
65
  data.message = messages.incomplete;
59
66
  }
60
67
  } else {
61
68
  data.message =
62
69
  check.result === shouldBeTrue ? messages.pass : messages.fail;
63
70
  }
71
+
72
+ // don't process doT template functions
73
+ if (typeof data.message !== 'function') {
74
+ data.message = axe.utils.processMessage(data.message, check.data);
75
+ }
76
+
64
77
  axe.utils.extendMetaData(check, data);
65
78
  };
66
79
  }
@@ -2,11 +2,12 @@
2
2
  "id": "aria-dpub-role-fallback",
3
3
  "selector": "[role]",
4
4
  "matches": "aria-dpub-role-fallback-matches.js",
5
- "tags": ["cat.aria", "wcag2a", "wcag131"],
5
+ "tags": ["cat.aria", "wcag2a", "wcag131", "deprecated"],
6
6
  "metadata": {
7
7
  "description": "Ensures unsupported DPUB roles are only used on elements with implicit fallback roles",
8
8
  "help": "Unsupported DPUB ARIA roles should be used on elements with implicit fallback roles"
9
9
  },
10
+ "enabled": false,
10
11
  "all": ["implicit-role-fallback"],
11
12
  "any": [],
12
13
  "none": []
@@ -26,7 +26,7 @@ if (!rolesWithNameFromContents.includes(role)) {
26
26
  * if no `aria-label` or `aria-labelledby` attribute - ignore `node`
27
27
  */
28
28
  if (
29
- !text.sanitize(aria.arialabelText(node)) &&
29
+ !text.sanitize(aria.arialabelText(virtualNode)) &&
30
30
  !text.sanitize(aria.arialabelledbyText(node))
31
31
  ) {
32
32
  return false;
@@ -2,11 +2,12 @@
2
2
  "id": "layout-table",
3
3
  "selector": "table",
4
4
  "matches": "layout-table-matches.js",
5
- "tags": ["cat.semantics", "wcag2a", "wcag131"],
5
+ "tags": ["cat.semantics", "wcag2a", "wcag131", "deprecated"],
6
6
  "metadata": {
7
7
  "description": "Ensures presentational <table> elements do not use <th>, <caption> elements or the summary attribute",
8
8
  "help": "Layout tables must not use data table elements"
9
9
  },
10
+ "enabled": false,
10
11
  "all": [],
11
12
  "any": [],
12
13
  "none": ["has-th", "has-caption", "has-summary"]
@@ -685,7 +685,7 @@
685
685
  },
686
686
  "exists": {
687
687
  "pass": "要素は存在していません",
688
- "fail": "要素が存在しています"
688
+ "incomplete": "要素が存在しています"
689
689
  },
690
690
  "has-alt": {
691
691
  "pass": "要素にalt属性が存在しています",
@@ -15,19 +15,19 @@
15
15
  ],
16
16
  "_from": "axe-core@>=3.4.1 <4.0.0",
17
17
  "_hasShrinkwrap": false,
18
- "_id": "axe-core@3.4.1",
18
+ "_id": "axe-core@3.4.2",
19
19
  "_inCache": true,
20
20
  "_location": "/axe-core",
21
- "_nodeVersion": "10.17.0",
21
+ "_nodeVersion": "10.14.0",
22
22
  "_npmOperationalInternal": {
23
23
  "host": "s3://npm-registry-packages",
24
- "tmp": "tmp/axe-core_3.4.1_1576688221301_0.6001479670462013"
24
+ "tmp": "tmp/axe-core_3.4.2_1581014982110_0.3250163683829628"
25
25
  },
26
26
  "_npmUser": {
27
- "name": "npmdeque",
28
- "email": "axe@deque.com"
27
+ "name": "wilcofiers",
28
+ "email": "wilcofiers@gmail.com"
29
29
  },
30
- "_npmVersion": "6.11.3",
30
+ "_npmVersion": "6.13.4",
31
31
  "_phantomChildren": {},
32
32
  "_requested": {
33
33
  "raw": "axe-core@^3.4.1",
@@ -41,8 +41,8 @@
41
41
  "_requiredBy": [
42
42
  "/"
43
43
  ],
44
- "_resolved": "https://registry.npmjs.org/axe-core/-/axe-core-3.4.1.tgz",
45
- "_shasum": "e42623918bb85b5ef674633852cb9029db0309c5",
44
+ "_resolved": "https://registry.npmjs.org/axe-core/-/axe-core-3.4.2.tgz",
45
+ "_shasum": "d51d2fcb401685e8b49a1dd94212da0759fd7ca0",
46
46
  "_shrinkwrap": null,
47
47
  "_spec": "axe-core@^3.4.1",
48
48
  "_where": "/var/lib/jenkins/workspace/ublishing_components_master-N4FWJIUY4CIFHKGZOAAEVVXODRY3YBORQOPIBBXWX72VUPSGJRRQ",
@@ -131,17 +131,17 @@
131
131
  },
132
132
  "directories": {},
133
133
  "dist": {
134
- "integrity": "sha512-+EhIdwR0hF6aeMx46gFDUy6qyCfsL0DmBrV3Z+LxYbsOd8e1zBaPHa3f9Rbjsz2dEwSBkLw6TwML/CAIIAqRpw==",
135
- "shasum": "e42623918bb85b5ef674633852cb9029db0309c5",
136
- "tarball": "https://registry.npmjs.org/axe-core/-/axe-core-3.4.1.tgz",
137
- "fileCount": 567,
138
- "unpackedSize": 2431945,
139
- "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd+lpdCRA9TVsSAnZWagAA+ugP/ROcxO85rr1hyKC17dMd\n4MohjiY3yMX+eMb/mAEHdgFcY0GIADGnxg2+qVluujKF9sAud+6Mhvqm5m3C\nyN1HL5ei2ikKIIBdGrVmBjIwg32j7Y26gjDT74neFESeWj8J97eL0auX2XJY\nw+PieGcuyXYZd/e7Nm8pXrLw3BoYDKdCTwZ1r/N3oo2NdmUtW2Ak/GNRZ/YJ\n2/2iCI305ME8Q1aygDdXxAmfSTExdWggzKJzBtui84TB+KzIlNx2NT9y08Xl\nKnxiCbcoo/E2JhqLNbvrIlR6E4dTlZhEzgFsPM9mEYXDUrsGMVMumr37LWN3\n1UO7qafVjiuLV+9BuNx5qMPWDgHrcEeoAtUoVhsjGxaxJHMZDVLs498QWcsy\n4r0gtxbNW94UpPtSp9pPbZiE0X4E1AIP/xh6KZX7LYdOVHc+k8bGUpft4sIo\nitHSLLz/7Lb+JktAUP+OdraYmHpI8tW902j4EV/yyJFl32DYdMdQpaGu2rH4\nQRPCow1YVQdqoha0gcKDU9tF71TYsfv2ZicweIEJmWUrlFHDmnnUrlLojeSp\nwgx0KzQUXt3WZatH4d40GdjGdLCZGTdRXbWpeTjZ/grIfXqA+vMyd/rfql5d\nvp5U3zH9YPmosgk54WnsJ+lFUDySB9eQ0vtSyWf0E+kSGi/NjYZ18ojoA425\npdma\r\n=SxSY\r\n-----END PGP SIGNATURE-----\r\n"
134
+ "integrity": "sha512-aPpM84KPiRfeaK3LhA9ag4OmjLUZkNKMH0sZuK+YRBS+QJcegjveidCyvWSBlBr/iIMQdn/1hU00e3YBiuTEdw==",
135
+ "shasum": "d51d2fcb401685e8b49a1dd94212da0759fd7ca0",
136
+ "tarball": "https://registry.npmjs.org/axe-core/-/axe-core-3.4.2.tgz",
137
+ "fileCount": 576,
138
+ "unpackedSize": 2929556,
139
+ "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJePF/GCRA9TVsSAnZWagAAbeEP/i0WNObH5qoxRV+5z1I5\nSWIaIj60P7FFPEyp39VQrmQM4uhCfb74+73yPOuTQF8PA/kicQ12Sb5IeDgb\nxpG1VBhC73YLa7/ab4WF5SrebQNPmejg+C2VLnxnctWz4irJVyap2qvIXGj1\nca+GdmvTz+gOqflv3eFjl5ByPGk5NOAbbIUL8WMu8dT4V/6MrHbHHeuNpRMO\nASDUxikTGbXGZspf8kezWmDr0n5VoikjkAefUINs2E3ZGDx5Of82a+8CGPTg\nhmjTGEPDpo9JYJweGNqDCgBTZgFWDht0T5PEj7/+w6GCd/ePAsDh5jD/5w3E\nn2mgY4zsiYNM/1gdU4LD3gD45h6MqtEETcY9OeDiKEWH17xv/3v05Z1fESek\nv+6sloZ8EExg/o5zsvhvWQNtmPtD37j/1hRhMYJFgp2oQskGfLBJUHSOnpxN\n+vbPtZDrp2+U4eBrX2dPgDIQABuOvWJ4gaTmNVwoSiV4ID/IOfBdE117nEAY\nVNR+rgpXnpt2AKaIQvTsHjFRrjiVoTXkQslMMGXjkOlD1fn3kMClW75yLy4I\nN/z/ErjWpmZ48vcT0u90LIgXLiJjcLsTG2rfNRnZe7H8Pjim85nRjXxze9gO\nUO+IGxMJ22VlGcCdBH1c5wO4PjO4LX7Au0aVaixq3xSaZrkIDE9bYO4i/dxr\nwgR6\r\n=Dtk7\r\n-----END PGP SIGNATURE-----\r\n"
140
140
  },
141
141
  "engines": {
142
142
  "node": ">=4"
143
143
  },
144
- "gitHead": "9e76417d8d46c3c80d4c085ec03f32074ee5b50b",
144
+ "gitHead": "467df229adab25b2c8ca4df92a23ea9a9c3459c8",
145
145
  "homepage": "https://github.com/dequelabs/axe-core#readme",
146
146
  "keywords": [
147
147
  "Accessibility",
@@ -215,5 +215,5 @@
215
215
  }
216
216
  },
217
217
  "typings": "axe.d.ts",
218
- "version": "3.4.1"
218
+ "version": "3.4.2"
219
219
  }