govuk_publishing_components 17.7.0 → 17.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/govuk_publishing_components/components/cookie-banner.js +3 -24
  3. data/app/assets/stylesheets/govuk_publishing_components/components/_cookie-banner.scss +6 -18
  4. data/app/views/govuk_publishing_components/components/_cookie_banner.html.erb +35 -45
  5. data/app/views/govuk_publishing_components/components/docs/cookie_banner.yml +0 -4
  6. data/lib/govuk_publishing_components.rb +0 -1
  7. data/lib/govuk_publishing_components/version.rb +1 -1
  8. data/node_modules/accessible-autocomplete/package.json +1 -1
  9. data/node_modules/define-properties/package.json +2 -1
  10. data/node_modules/function-bind/package.json +2 -1
  11. data/node_modules/has-symbols/package.json +2 -1
  12. data/node_modules/jsx-ast-utils/CHANGELOG.md +16 -0
  13. data/node_modules/jsx-ast-utils/__tests__/helper.js +2 -0
  14. data/node_modules/jsx-ast-utils/__tests__/src/getPropLiteralValue-test.js +39 -3
  15. data/node_modules/jsx-ast-utils/__tests__/src/getPropValue-test.js +9 -4
  16. data/node_modules/jsx-ast-utils/lib/values/expressions/ObjectExpression.js +9 -2
  17. data/node_modules/jsx-ast-utils/lib/values/expressions/index.js +21 -6
  18. data/node_modules/jsx-ast-utils/lib/values/index.js +5 -1
  19. data/node_modules/jsx-ast-utils/package.json +35 -31
  20. data/node_modules/jsx-ast-utils/src/values/expressions/ObjectExpression.js +3 -1
  21. data/node_modules/jsx-ast-utils/src/values/expressions/index.js +12 -4
  22. data/node_modules/object-keys/package.json +2 -1
  23. data/node_modules/object.assign/CHANGELOG.md +179 -0
  24. data/node_modules/object.assign/LICENSE +21 -0
  25. data/node_modules/object.assign/README.md +135 -0
  26. data/node_modules/object.assign/auto.js +3 -0
  27. data/node_modules/object.assign/dist/browser.js +492 -0
  28. data/node_modules/object.assign/hasSymbols.js +41 -0
  29. data/node_modules/object.assign/implementation.js +41 -0
  30. data/node_modules/object.assign/index.js +17 -0
  31. data/node_modules/object.assign/package.json +148 -0
  32. data/node_modules/object.assign/polyfill.js +51 -0
  33. data/node_modules/object.assign/shim.js +14 -0
  34. data/node_modules/object.assign/test.sh +53 -0
  35. data/node_modules/object.assign/test/index.js +17 -0
  36. data/node_modules/object.assign/test/native.js +47 -0
  37. data/node_modules/object.assign/test/shimmed.js +50 -0
  38. data/node_modules/object.assign/test/tests.js +224 -0
  39. metadata +18 -3
  40. data/lib/govuk_publishing_components/presenters/cookie_banner_helper.rb +0 -23
@@ -0,0 +1,41 @@
1
+ 'use strict';
2
+
3
+ var keys = require('object-keys');
4
+
5
+ module.exports = function hasSymbols() {
6
+ if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }
7
+ if (typeof Symbol.iterator === 'symbol') { return true; }
8
+
9
+ var obj = {};
10
+ var sym = Symbol('test');
11
+ var symObj = Object(sym);
12
+ if (typeof sym === 'string') { return false; }
13
+
14
+ if (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }
15
+ if (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }
16
+
17
+ // temp disabled per https://github.com/ljharb/object.assign/issues/17
18
+ // if (sym instanceof Symbol) { return false; }
19
+ // temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4
20
+ // if (!(symObj instanceof Symbol)) { return false; }
21
+
22
+ var symVal = 42;
23
+ obj[sym] = symVal;
24
+ for (sym in obj) { return false; }
25
+ if (keys(obj).length !== 0) { return false; }
26
+ if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }
27
+
28
+ if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }
29
+
30
+ var syms = Object.getOwnPropertySymbols(obj);
31
+ if (syms.length !== 1 || syms[0] !== sym) { return false; }
32
+
33
+ if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }
34
+
35
+ if (typeof Object.getOwnPropertyDescriptor === 'function') {
36
+ var descriptor = Object.getOwnPropertyDescriptor(obj, sym);
37
+ if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }
38
+ }
39
+
40
+ return true;
41
+ };
@@ -0,0 +1,41 @@
1
+ 'use strict';
2
+
3
+ // modified from https://github.com/es-shims/es6-shim
4
+ var keys = require('object-keys');
5
+ var bind = require('function-bind');
6
+ var canBeObject = function (obj) {
7
+ return typeof obj !== 'undefined' && obj !== null;
8
+ };
9
+ var hasSymbols = require('has-symbols/shams')();
10
+ var toObject = Object;
11
+ var push = bind.call(Function.call, Array.prototype.push);
12
+ var propIsEnumerable = bind.call(Function.call, Object.prototype.propertyIsEnumerable);
13
+ var originalGetSymbols = hasSymbols ? Object.getOwnPropertySymbols : null;
14
+
15
+ module.exports = function assign(target, source1) {
16
+ if (!canBeObject(target)) { throw new TypeError('target must be an object'); }
17
+ var objTarget = toObject(target);
18
+ var s, source, i, props, syms, value, key;
19
+ for (s = 1; s < arguments.length; ++s) {
20
+ source = toObject(arguments[s]);
21
+ props = keys(source);
22
+ var getSymbols = hasSymbols && (Object.getOwnPropertySymbols || originalGetSymbols);
23
+ if (getSymbols) {
24
+ syms = getSymbols(source);
25
+ for (i = 0; i < syms.length; ++i) {
26
+ key = syms[i];
27
+ if (propIsEnumerable(source, key)) {
28
+ push(props, key);
29
+ }
30
+ }
31
+ }
32
+ for (i = 0; i < props.length; ++i) {
33
+ key = props[i];
34
+ value = source[key];
35
+ if (propIsEnumerable(source, key)) {
36
+ objTarget[key] = value;
37
+ }
38
+ }
39
+ }
40
+ return objTarget;
41
+ };
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+
3
+ var defineProperties = require('define-properties');
4
+
5
+ var implementation = require('./implementation');
6
+ var getPolyfill = require('./polyfill');
7
+ var shim = require('./shim');
8
+
9
+ var polyfill = getPolyfill();
10
+
11
+ defineProperties(polyfill, {
12
+ getPolyfill: getPolyfill,
13
+ implementation: implementation,
14
+ shim: shim
15
+ });
16
+
17
+ module.exports = polyfill;
@@ -0,0 +1,148 @@
1
+ {
2
+ "_args": [
3
+ [
4
+ {
5
+ "raw": "object.assign@^4.1.0",
6
+ "scope": null,
7
+ "escapedName": "object.assign",
8
+ "name": "object.assign",
9
+ "rawSpec": "^4.1.0",
10
+ "spec": ">=4.1.0 <5.0.0",
11
+ "type": "range"
12
+ },
13
+ "/var/lib/jenkins/workspace/ublishing_components_master-N4FWJIUY4CIFHKGZOAAEVVXODRY3YBORQOPIBBXWX72VUPSGJRRQ/node_modules/jsx-ast-utils"
14
+ ]
15
+ ],
16
+ "_from": "object.assign@>=4.1.0 <5.0.0",
17
+ "_id": "object.assign@4.1.0",
18
+ "_inCache": true,
19
+ "_location": "/object.assign",
20
+ "_nodeVersion": "9.3.0",
21
+ "_npmOperationalInternal": {
22
+ "host": "s3://npm-registry-packages",
23
+ "tmp": "tmp/object.assign-4.1.0.tgz_1513887492170_0.7630214935634285"
24
+ },
25
+ "_npmUser": {
26
+ "name": "ljharb",
27
+ "email": "ljharb@gmail.com"
28
+ },
29
+ "_npmVersion": "5.5.1",
30
+ "_phantomChildren": {},
31
+ "_requested": {
32
+ "raw": "object.assign@^4.1.0",
33
+ "scope": null,
34
+ "escapedName": "object.assign",
35
+ "name": "object.assign",
36
+ "rawSpec": "^4.1.0",
37
+ "spec": ">=4.1.0 <5.0.0",
38
+ "type": "range"
39
+ },
40
+ "_requiredBy": [
41
+ "/jsx-ast-utils"
42
+ ],
43
+ "_resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
44
+ "_shasum": "968bf1100d7956bb3ca086f006f846b3bc4008da",
45
+ "_shrinkwrap": null,
46
+ "_spec": "object.assign@^4.1.0",
47
+ "_where": "/var/lib/jenkins/workspace/ublishing_components_master-N4FWJIUY4CIFHKGZOAAEVVXODRY3YBORQOPIBBXWX72VUPSGJRRQ/node_modules/jsx-ast-utils",
48
+ "author": {
49
+ "name": "Jordan Harband"
50
+ },
51
+ "bugs": {
52
+ "url": "https://github.com/ljharb/object.assign/issues"
53
+ },
54
+ "dependencies": {
55
+ "define-properties": "^1.1.2",
56
+ "function-bind": "^1.1.1",
57
+ "has-symbols": "^1.0.0",
58
+ "object-keys": "^1.0.11"
59
+ },
60
+ "description": "ES6 spec-compliant Object.assign shim. From https://github.com/es-shims/es6-shim",
61
+ "devDependencies": {
62
+ "@es-shims/api": "^2.1.1",
63
+ "@ljharb/eslint-config": "^12.2.1",
64
+ "browserify": "^14.5.0",
65
+ "covert": "^1.1.0",
66
+ "eslint": "^4.13.1",
67
+ "for-each": "^0.3.2",
68
+ "is": "^3.2.1",
69
+ "jscs": "^3.0.7",
70
+ "nsp": "^3.1.0",
71
+ "tape": "^4.8.0"
72
+ },
73
+ "directories": {},
74
+ "dist": {
75
+ "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
76
+ "shasum": "968bf1100d7956bb3ca086f006f846b3bc4008da",
77
+ "tarball": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz"
78
+ },
79
+ "engines": {
80
+ "node": ">= 0.4"
81
+ },
82
+ "gitHead": "5fd74aee40aba36e9a8eb0c329abd33a07b93164",
83
+ "homepage": "https://github.com/ljharb/object.assign#readme",
84
+ "keywords": [
85
+ "Object.assign",
86
+ "assign",
87
+ "ES6",
88
+ "extend",
89
+ "$.extend",
90
+ "jQuery",
91
+ "_.extend",
92
+ "Underscore",
93
+ "es-shim API",
94
+ "polyfill",
95
+ "shim"
96
+ ],
97
+ "license": "MIT",
98
+ "main": "index.js",
99
+ "maintainers": [
100
+ {
101
+ "name": "ljharb",
102
+ "email": "ljharb@gmail.com"
103
+ }
104
+ ],
105
+ "name": "object.assign",
106
+ "optionalDependencies": {},
107
+ "readme": "ERROR: No README data found!",
108
+ "repository": {
109
+ "type": "git",
110
+ "url": "git://github.com/ljharb/object.assign.git"
111
+ },
112
+ "scripts": {
113
+ "build": "mkdir -p dist && browserify browserShim.js > dist/browser.js",
114
+ "coverage": "covert test/*.js",
115
+ "coverage:quiet": "covert test/*.js --quiet",
116
+ "eslint": "eslint *.js test/*.js",
117
+ "jscs": "jscs *.js test/*.js",
118
+ "lint": "npm run --silent jscs && npm run --silent eslint",
119
+ "posttest": "npm run --silent security",
120
+ "prepublish": "npm run --silent build",
121
+ "pretest": "npm run --silent lint && es-shim-api",
122
+ "security": "nsp check",
123
+ "test": "npm run --silent tests-only",
124
+ "test:implementation": "node test/index.js",
125
+ "test:native": "node test/native.js",
126
+ "test:shim": "node test/shimmed.js",
127
+ "tests-only": "npm run --silent test:implementation && npm run --silent test:shim"
128
+ },
129
+ "testling": {
130
+ "files": "test/index.js",
131
+ "browsers": [
132
+ "iexplore/6.0..latest",
133
+ "firefox/3.0..6.0",
134
+ "firefox/15.0..latest",
135
+ "firefox/nightly",
136
+ "chrome/4.0..10.0",
137
+ "chrome/20.0..latest",
138
+ "chrome/canary",
139
+ "opera/10.0..latest",
140
+ "opera/next",
141
+ "safari/4.0..latest",
142
+ "ipad/6.0..latest",
143
+ "iphone/6.0..latest",
144
+ "android-browser/4.2"
145
+ ]
146
+ },
147
+ "version": "4.1.0"
148
+ }
@@ -0,0 +1,51 @@
1
+ 'use strict';
2
+
3
+ var implementation = require('./implementation');
4
+
5
+ var lacksProperEnumerationOrder = function () {
6
+ if (!Object.assign) {
7
+ return false;
8
+ }
9
+ // v8, specifically in node 4.x, has a bug with incorrect property enumeration order
10
+ // note: this does not detect the bug unless there's 20 characters
11
+ var str = 'abcdefghijklmnopqrst';
12
+ var letters = str.split('');
13
+ var map = {};
14
+ for (var i = 0; i < letters.length; ++i) {
15
+ map[letters[i]] = letters[i];
16
+ }
17
+ var obj = Object.assign({}, map);
18
+ var actual = '';
19
+ for (var k in obj) {
20
+ actual += k;
21
+ }
22
+ return str !== actual;
23
+ };
24
+
25
+ var assignHasPendingExceptions = function () {
26
+ if (!Object.assign || !Object.preventExtensions) {
27
+ return false;
28
+ }
29
+ // Firefox 37 still has "pending exception" logic in its Object.assign implementation,
30
+ // which is 72% slower than our shim, and Firefox 40's native implementation.
31
+ var thrower = Object.preventExtensions({ 1: 2 });
32
+ try {
33
+ Object.assign(thrower, 'xy');
34
+ } catch (e) {
35
+ return thrower[1] === 'y';
36
+ }
37
+ return false;
38
+ };
39
+
40
+ module.exports = function getPolyfill() {
41
+ if (!Object.assign) {
42
+ return implementation;
43
+ }
44
+ if (lacksProperEnumerationOrder()) {
45
+ return implementation;
46
+ }
47
+ if (assignHasPendingExceptions()) {
48
+ return implementation;
49
+ }
50
+ return Object.assign;
51
+ };
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ var define = require('define-properties');
4
+ var getPolyfill = require('./polyfill');
5
+
6
+ module.exports = function shimAssign() {
7
+ var polyfill = getPolyfill();
8
+ define(
9
+ Object,
10
+ { assign: polyfill },
11
+ { assign: function () { return Object.assign !== polyfill; } }
12
+ );
13
+ return polyfill;
14
+ };
@@ -0,0 +1,53 @@
1
+ ###-begin-npm-completion-###
2
+ #
3
+ # npm command completion script
4
+ #
5
+ # Installation: npm completion >> ~/.bashrc (or ~/.zshrc)
6
+ # Or, maybe: npm completion > /usr/local/etc/bash_completion.d/npm
7
+ #
8
+
9
+ COMP_WORDBREAKS=${COMP_WORDBREAKS/=/}
10
+ COMP_WORDBREAKS=${COMP_WORDBREAKS/@/}
11
+ export COMP_WORDBREAKS
12
+
13
+ if type complete &>/dev/null; then
14
+ _npm_completion () {
15
+ local si="$IFS"
16
+ IFS=$'\n' COMPREPLY=($(COMP_CWORD="$COMP_CWORD" \
17
+ COMP_LINE="$COMP_LINE" \
18
+ COMP_POINT="$COMP_POINT" \
19
+ npm completion -- "${COMP_WORDS[@]}" \
20
+ 2>/dev/null)) || return $?
21
+ IFS="$si"
22
+ }
23
+ complete -F _npm_completion npm
24
+ elif type compdef &>/dev/null; then
25
+ _npm_completion() {
26
+ si=$IFS
27
+ compadd -- $(COMP_CWORD=$((CURRENT-1)) \
28
+ COMP_LINE=$BUFFER \
29
+ COMP_POINT=0 \
30
+ npm completion -- "${words[@]}" \
31
+ 2>/dev/null)
32
+ IFS=$si
33
+ }
34
+ compdef _npm_completion npm
35
+ elif type compctl &>/dev/null; then
36
+ _npm_completion () {
37
+ local cword line point words si
38
+ read -Ac words
39
+ read -cn cword
40
+ let cword-=1
41
+ read -l line
42
+ read -ln point
43
+ si="$IFS"
44
+ IFS=$'\n' reply=($(COMP_CWORD="$cword" \
45
+ COMP_LINE="$line" \
46
+ COMP_POINT="$point" \
47
+ npm completion -- "${words[@]}" \
48
+ 2>/dev/null)) || return $?
49
+ IFS="$si"
50
+ }
51
+ compctl -K _npm_completion npm
52
+ fi
53
+ ###-end-npm-completion-###
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+
3
+ var assign = require('../');
4
+ var test = require('tape');
5
+ var runTests = require('./tests');
6
+
7
+ test('as a function', function (t) {
8
+ t.test('bad array/this value', function (st) {
9
+ st['throws'](function () { assign(undefined); }, TypeError, 'undefined is not an object');
10
+ st['throws'](function () { assign(null); }, TypeError, 'null is not an object');
11
+ st.end();
12
+ });
13
+
14
+ runTests(assign, t);
15
+
16
+ t.end();
17
+ });
@@ -0,0 +1,47 @@
1
+ 'use strict';
2
+
3
+ var test = require('tape');
4
+ var defineProperties = require('define-properties');
5
+ var isEnumerable = Object.prototype.propertyIsEnumerable;
6
+ var functionsHaveNames = function f() {}.name === 'f';
7
+
8
+ var runTests = require('./tests');
9
+
10
+ test('native', function (t) {
11
+ t.equal(Object.assign.length, 2, 'Object.assign has a length of 2');
12
+ t.test('Function name', { skip: !functionsHaveNames }, function (st) {
13
+ st.equal(Object.assign.name, 'assign', 'Object.assign has name "assign"');
14
+ st.end();
15
+ });
16
+
17
+ t.test('enumerability', { skip: !defineProperties.supportsDescriptors }, function (et) {
18
+ et.equal(false, isEnumerable.call(Object, 'assign'), 'Object.assign is not enumerable');
19
+ et.end();
20
+ });
21
+
22
+ var supportsStrictMode = (function () { return typeof this === 'undefined'; }());
23
+
24
+ t.test('bad object value', { skip: !supportsStrictMode }, function (st) {
25
+ st['throws'](function () { return Object.assign(undefined); }, TypeError, 'undefined is not an object');
26
+ st['throws'](function () { return Object.assign(null); }, TypeError, 'null is not an object');
27
+ st.end();
28
+ });
29
+
30
+ // v8 in node 0.8 and 0.10 have non-enumerable string properties
31
+ var stringCharsAreEnumerable = isEnumerable.call('xy', 0);
32
+ t.test('when Object.assign is present and has pending exceptions', { skip: !stringCharsAreEnumerable || !Object.preventExtensions }, function (st) {
33
+ // Firefox 37 still has "pending exception" logic in its Object.assign implementation,
34
+ // which is 72% slower than our shim, and Firefox 40's native implementation.
35
+ var thrower = Object.preventExtensions({ 1: '2' });
36
+ var error;
37
+ try { Object.assign(thrower, 'xy'); } catch (e) { error = e; }
38
+ st.equal(error instanceof TypeError, true, 'error is TypeError');
39
+ st.equal(thrower[1], '2', 'thrower[1] === "2"');
40
+
41
+ st.end();
42
+ });
43
+
44
+ runTests(Object.assign, t);
45
+
46
+ t.end();
47
+ });
@@ -0,0 +1,50 @@
1
+ 'use strict';
2
+
3
+ var assign = require('../');
4
+ assign.shim();
5
+
6
+ var test = require('tape');
7
+ var defineProperties = require('define-properties');
8
+ var isEnumerable = Object.prototype.propertyIsEnumerable;
9
+ var functionsHaveNames = function f() {}.name === 'f';
10
+
11
+ var runTests = require('./tests');
12
+
13
+ test('shimmed', function (t) {
14
+ t.equal(Object.assign.length, 2, 'Object.assign has a length of 2');
15
+ t.test('Function name', { skip: !functionsHaveNames }, function (st) {
16
+ st.equal(Object.assign.name, 'assign', 'Object.assign has name "assign"');
17
+ st.end();
18
+ });
19
+
20
+ t.test('enumerability', { skip: !defineProperties.supportsDescriptors }, function (et) {
21
+ et.equal(false, isEnumerable.call(Object, 'assign'), 'Object.assign is not enumerable');
22
+ et.end();
23
+ });
24
+
25
+ var supportsStrictMode = (function () { return typeof this === 'undefined'; }());
26
+
27
+ t.test('bad object value', { skip: !supportsStrictMode }, function (st) {
28
+ st['throws'](function () { return Object.assign(undefined); }, TypeError, 'undefined is not an object');
29
+ st['throws'](function () { return Object.assign(null); }, TypeError, 'null is not an object');
30
+ st.end();
31
+ });
32
+
33
+ // v8 in node 0.8 and 0.10 have non-enumerable string properties
34
+ var stringCharsAreEnumerable = isEnumerable.call('xy', 0);
35
+ t.test('when Object.assign is present and has pending exceptions', { skip: !stringCharsAreEnumerable || !Object.preventExtensions }, function (st) {
36
+ // Firefox 37 still has "pending exception" logic in its Object.assign implementation,
37
+ // which is 72% slower than our shim, and Firefox 40's native implementation.
38
+ var thrower = Object.preventExtensions({ 1: '2' });
39
+ var error;
40
+ try { Object.assign(thrower, 'xy'); } catch (e) { error = e; }
41
+ st.equal(error instanceof TypeError, true, 'error is TypeError');
42
+ st.equal(thrower[1], '2', 'thrower[1] === "2"');
43
+
44
+ st.end();
45
+ });
46
+
47
+ runTests(Object.assign, t);
48
+
49
+ t.end();
50
+ });