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.
- checksums.yaml +4 -4
- data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_button.scss +2 -1
- data/app/views/govuk_publishing_components/components/_character_count.html.erb +14 -13
- data/app/views/govuk_publishing_components/components/docs/character_count.yml +8 -0
- data/app/views/govuk_publishing_components/components/docs/govspeak.yml +17 -4
- data/lib/govuk_publishing_components/version.rb +1 -1
- data/node_modules/axe-core/CHANGELOG.md +37 -0
- data/node_modules/axe-core/README.md +2 -2
- data/node_modules/axe-core/axe.d.ts +1 -1
- data/node_modules/axe-core/axe.js +2430 -2242
- data/node_modules/axe-core/axe.min.js +3 -3
- data/node_modules/axe-core/bower.json +1 -1
- data/node_modules/axe-core/doc/API.md +10 -0
- data/node_modules/axe-core/doc/check-message-template.md +124 -0
- data/node_modules/axe-core/doc/examples/jasmine/package-lock.json +1489 -0
- data/node_modules/axe-core/doc/examples/jest_react/package-lock.json +7525 -0
- data/node_modules/axe-core/doc/examples/mocha/package-lock.json +1671 -0
- data/node_modules/axe-core/doc/examples/phantomjs/package-lock.json +862 -0
- data/node_modules/axe-core/doc/examples/qunit/package-lock.json +2951 -0
- data/node_modules/axe-core/doc/rule-descriptions.md +2 -2
- data/node_modules/axe-core/lib/checks/aria/allowed-attr.json +4 -1
- data/node_modules/axe-core/lib/checks/aria/aria-allowed-role.json +8 -2
- data/node_modules/axe-core/lib/checks/aria/errormessage.json +4 -1
- data/node_modules/axe-core/lib/checks/aria/implicit-role-fallback.json +1 -0
- data/node_modules/axe-core/lib/checks/aria/no-implicit-explicit-label.json +1 -1
- data/node_modules/axe-core/lib/checks/aria/required-attr.json +4 -1
- data/node_modules/axe-core/lib/checks/aria/required-children.json +8 -2
- data/node_modules/axe-core/lib/checks/aria/required-parent.json +4 -1
- data/node_modules/axe-core/lib/checks/aria/unsupportedattr.json +1 -1
- data/node_modules/axe-core/lib/checks/aria/unsupportedrole.json +1 -1
- data/node_modules/axe-core/lib/checks/aria/valid-attr-value.json +8 -2
- data/node_modules/axe-core/lib/checks/aria/valid-attr.json +5 -2
- data/node_modules/axe-core/lib/checks/color/color-contrast.js +1 -1
- data/node_modules/axe-core/lib/checks/color/color-contrast.json +4 -4
- data/node_modules/axe-core/lib/checks/color/link-in-text-block.js +2 -2
- data/node_modules/axe-core/lib/checks/color/link-in-text-block.json +2 -2
- data/node_modules/axe-core/lib/checks/forms/fieldset.js +1 -1
- data/node_modules/axe-core/lib/checks/forms/fieldset.json +8 -1
- data/node_modules/axe-core/lib/checks/forms/group-labelledby.js +2 -2
- data/node_modules/axe-core/lib/checks/forms/group-labelledby.json +6 -2
- data/node_modules/axe-core/lib/checks/keyboard/landmark-is-top-level.json +2 -2
- data/node_modules/axe-core/lib/checks/lists/listitem.js +3 -1
- data/node_modules/axe-core/lib/checks/lists/listitem.json +4 -1
- data/node_modules/axe-core/lib/checks/mobile/css-orientation-lock.js +216 -99
- data/node_modules/axe-core/lib/checks/mobile/css-orientation-lock.json +3 -0
- data/node_modules/axe-core/lib/checks/mobile/meta-viewport.json +1 -1
- data/node_modules/axe-core/lib/checks/parsing/duplicate-id-active.json +1 -1
- data/node_modules/axe-core/lib/checks/parsing/duplicate-id-aria.json +1 -1
- data/node_modules/axe-core/lib/checks/shared/aria-label.js +1 -1
- data/node_modules/axe-core/lib/checks/shared/avoid-inline-spacing.json +4 -1
- data/node_modules/axe-core/lib/checks/shared/non-empty-if-present.js +5 -1
- data/node_modules/axe-core/lib/checks/shared/non-empty-if-present.json +4 -1
- data/node_modules/axe-core/lib/checks/tables/has-caption.json +1 -0
- data/node_modules/axe-core/lib/checks/tables/has-summary.json +1 -0
- data/node_modules/axe-core/lib/checks/tables/has-th.json +1 -0
- data/node_modules/axe-core/lib/commons/aria/arialabel-text.js +7 -4
- data/node_modules/axe-core/lib/commons/aria/get-element-unallowed-roles.js +21 -0
- data/node_modules/axe-core/lib/commons/dom/get-element-stack.js +465 -0
- data/node_modules/axe-core/lib/commons/dom/shadow-elements-from-point.js +2 -1
- data/node_modules/axe-core/lib/core/base/audit.js +39 -17
- data/node_modules/axe-core/lib/core/base/virtual-node/serial-virtual-node.js +2 -0
- data/node_modules/axe-core/lib/core/base/virtual-node/virtual-node.js +43 -0
- data/node_modules/axe-core/lib/core/reporters/helpers/incomplete-fallback-msg.js +3 -1
- data/node_modules/axe-core/lib/core/utils/parse-crossorigin-stylesheet.js +1 -0
- data/node_modules/axe-core/lib/core/utils/preload-cssom.js +4 -3
- data/node_modules/axe-core/lib/core/utils/process-message.js +72 -0
- data/node_modules/axe-core/lib/core/utils/publish-metadata.js +20 -7
- data/node_modules/axe-core/lib/rules/aria-dpub-role-fallback.json +2 -1
- data/node_modules/axe-core/lib/rules/label-content-name-mismatch-matches.js +1 -1
- data/node_modules/axe-core/lib/rules/layout-table.json +2 -1
- data/node_modules/axe-core/locales/ja.json +1 -1
- data/node_modules/axe-core/package.json +16 -16
- data/node_modules/axe-core/sri-history.json +4 -0
- data/node_modules/axe-core/typings/axe-core/axe-core-tests.js +151 -0
- data/node_modules/axe-core/typings/axe-core/axe-core-tests.ts +18 -0
- 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
|
-
|
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
|
-
|
638
|
-
|
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 (!
|
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 =
|
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 (!
|
701
|
+
if (!ruleIds.includes(ruleId)) {
|
680
702
|
throw new Error('unknown rule `' + ruleId + '` in options.rules');
|
681
703
|
}
|
682
704
|
});
|
@@ -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
|
};
|
@@ -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(
|
37
|
-
|
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
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
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(
|
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"]
|
@@ -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.
|
18
|
+
"_id": "axe-core@3.4.2",
|
19
19
|
"_inCache": true,
|
20
20
|
"_location": "/axe-core",
|
21
|
-
"_nodeVersion": "10.
|
21
|
+
"_nodeVersion": "10.14.0",
|
22
22
|
"_npmOperationalInternal": {
|
23
23
|
"host": "s3://npm-registry-packages",
|
24
|
-
"tmp": "tmp/axe-core_3.4.
|
24
|
+
"tmp": "tmp/axe-core_3.4.2_1581014982110_0.3250163683829628"
|
25
25
|
},
|
26
26
|
"_npmUser": {
|
27
|
-
"name": "
|
28
|
-
"email": "
|
27
|
+
"name": "wilcofiers",
|
28
|
+
"email": "wilcofiers@gmail.com"
|
29
29
|
},
|
30
|
-
"_npmVersion": "6.
|
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.
|
45
|
-
"_shasum": "
|
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
|
135
|
-
"shasum": "
|
136
|
-
"tarball": "https://registry.npmjs.org/axe-core/-/axe-core-3.4.
|
137
|
-
"fileCount":
|
138
|
-
"unpackedSize":
|
139
|
-
"npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\
|
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": "
|
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.
|
218
|
+
"version": "3.4.2"
|
219
219
|
}
|