govuk_publishing_components 16.29.0 → 17.0.0

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 (185) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/govuk_publishing_components/components/cookie-banner.js +46 -23
  3. data/app/assets/javascripts/govuk_publishing_components/components/feedback.js +8 -2
  4. data/app/assets/javascripts/govuk_publishing_components/lib/cookie-functions.js +101 -21
  5. data/app/assets/javascripts/govuk_publishing_components/lib/govspeak/youtube-link-enhancement.js +9 -2
  6. data/app/assets/stylesheets/govuk_publishing_components/_all_components.scss +0 -1
  7. data/app/assets/stylesheets/govuk_publishing_components/components/_button.scss +4 -6
  8. data/app/assets/stylesheets/govuk_publishing_components/components/_cookie-banner.scss +36 -5
  9. data/app/assets/stylesheets/govuk_publishing_components/components/_heading.scss +14 -14
  10. data/app/assets/stylesheets/govuk_publishing_components/components/_highlight-boxes.scss +23 -23
  11. data/app/assets/stylesheets/govuk_publishing_components/components/_inverse-header.scss +8 -8
  12. data/app/assets/stylesheets/govuk_publishing_components/components/_lead-paragraph.scss +2 -2
  13. data/app/assets/stylesheets/govuk_publishing_components/components/_metadata.scss +8 -8
  14. data/app/assets/stylesheets/govuk_publishing_components/components/_organisation-logo.scss +10 -10
  15. data/app/assets/stylesheets/govuk_publishing_components/components/_previous-and-next-navigation.scss +11 -14
  16. data/app/assets/stylesheets/govuk_publishing_components/components/_related-navigation.scss +14 -14
  17. data/app/assets/stylesheets/govuk_publishing_components/components/_share-links.scss +8 -8
  18. data/app/assets/stylesheets/govuk_publishing_components/components/_step-by-step-nav-header.scss +7 -7
  19. data/app/assets/stylesheets/govuk_publishing_components/components/_step-by-step-nav-related.scss +20 -16
  20. data/app/assets/stylesheets/govuk_publishing_components/components/_subscription-links.scss +4 -4
  21. data/app/assets/stylesheets/govuk_publishing_components/components/_success-alert.scss +5 -5
  22. data/app/assets/stylesheets/govuk_publishing_components/components/_taxonomy-list.scss +5 -5
  23. data/app/assets/stylesheets/govuk_publishing_components/components/_title.scss +8 -8
  24. data/app/assets/stylesheets/govuk_publishing_components/components/print/_step-by-step-nav-header.scss +1 -1
  25. data/app/views/govuk_publishing_components/components/_cookie_banner.html.erb +33 -25
  26. data/app/views/govuk_publishing_components/components/_error_summary.html.erb +4 -2
  27. data/app/views/govuk_publishing_components/components/_notice.html.erb +4 -1
  28. data/app/views/govuk_publishing_components/components/docs/cookie_banner.yml +2 -0
  29. data/app/views/govuk_publishing_components/components/docs/error_summary.yml +6 -0
  30. data/app/views/govuk_publishing_components/components/docs/notice.yml +6 -0
  31. data/app/views/govuk_publishing_components/components/docs/success_alert.yml +1 -1
  32. data/lib/govuk_publishing_components/presenters/cookie_banner_helper.rb +0 -4
  33. data/lib/govuk_publishing_components/version.rb +1 -1
  34. data/node_modules/accessible-autocomplete/dist/accessible-autocomplete.min.js +1 -1
  35. data/node_modules/accessible-autocomplete/dist/accessible-autocomplete.min.js.map +1 -1
  36. data/node_modules/accessible-autocomplete/dist/lib/accessible-autocomplete.preact.min.js +1 -1
  37. data/node_modules/accessible-autocomplete/dist/lib/accessible-autocomplete.preact.min.js.map +1 -1
  38. data/node_modules/accessible-autocomplete/dist/lib/accessible-autocomplete.react.min.js +1 -1
  39. data/node_modules/accessible-autocomplete/dist/lib/accessible-autocomplete.react.min.js.map +1 -1
  40. data/node_modules/accessible-autocomplete/package.json +3 -3
  41. data/node_modules/accessible-autocomplete/src/autocomplete.js +4 -2
  42. data/node_modules/accessible-autocomplete/src/wrapper.js +5 -1
  43. data/node_modules/d/CHANGELOG.md +9 -0
  44. data/node_modules/d/CHANGES +4 -0
  45. data/node_modules/d/LICENSE +12 -16
  46. data/node_modules/d/README.md +49 -19
  47. data/node_modules/d/auto-bind.js +11 -10
  48. data/node_modules/d/index.js +23 -24
  49. data/node_modules/d/lazy.js +21 -23
  50. data/node_modules/d/package.json +63 -16
  51. data/node_modules/d/test/auto-bind.js +6 -7
  52. data/node_modules/d/test/index.js +78 -51
  53. data/node_modules/d/test/lazy.js +65 -50
  54. data/node_modules/es6-weak-map/CHANGELOG.md +5 -0
  55. data/node_modules/es6-weak-map/LICENSE +12 -16
  56. data/node_modules/es6-weak-map/README.md +34 -19
  57. data/node_modules/es6-weak-map/implement.js +9 -5
  58. data/node_modules/es6-weak-map/index.js +2 -2
  59. data/node_modules/es6-weak-map/is-implemented.js +10 -9
  60. data/node_modules/es6-weak-map/is-native-implemented.js +3 -3
  61. data/node_modules/es6-weak-map/is-weak-map.js +8 -8
  62. data/node_modules/es6-weak-map/package.json +30 -19
  63. data/node_modules/es6-weak-map/polyfill.js +31 -32
  64. data/node_modules/es6-weak-map/test/implement.js +4 -2
  65. data/node_modules/es6-weak-map/test/index.js +4 -3
  66. data/node_modules/es6-weak-map/test/is-implemented.js +9 -8
  67. data/node_modules/es6-weak-map/test/is-native-implemented.js +4 -2
  68. data/node_modules/es6-weak-map/test/is-weak-map.js +4 -4
  69. data/node_modules/es6-weak-map/test/polyfill.js +13 -13
  70. data/node_modules/es6-weak-map/test/valid-weak-map.js +22 -9
  71. data/node_modules/es6-weak-map/valid-weak-map.js +5 -5
  72. data/node_modules/resolve/lib/async.js +1 -1
  73. data/node_modules/resolve/lib/node-modules-paths.js +1 -1
  74. data/node_modules/resolve/lib/sync.js +0 -2
  75. data/node_modules/resolve/package.json +13 -13
  76. data/node_modules/resolve/test/node-modules-paths.js +0 -22
  77. data/node_modules/resolve/test/resolver.js +11 -0
  78. data/node_modules/resolve/test/resolver_sync.js +11 -0
  79. data/node_modules/standard/node_modules/ms/index.js +2 -2
  80. data/node_modules/standard/node_modules/ms/package.json +205 -16
  81. data/node_modules/standard/node_modules/ms/readme.md +1 -1
  82. data/node_modules/type/CHANGELOG.md +62 -0
  83. data/node_modules/type/README.md +743 -0
  84. data/node_modules/type/array-length/coerce.js +10 -0
  85. data/node_modules/type/array-length/ensure.js +10 -0
  86. data/node_modules/type/array-like/ensure.js +9 -0
  87. data/node_modules/type/array-like/is.js +21 -0
  88. data/node_modules/type/array/ensure.js +9 -0
  89. data/node_modules/type/array/is.js +27 -0
  90. data/node_modules/type/date/ensure.js +9 -0
  91. data/node_modules/type/date/is.js +26 -0
  92. data/node_modules/type/error/ensure.js +9 -0
  93. data/node_modules/type/error/is.js +24 -0
  94. data/node_modules/type/finite/coerce.js +8 -0
  95. data/node_modules/type/finite/ensure.js +10 -0
  96. data/node_modules/type/function/ensure.js +9 -0
  97. data/node_modules/type/function/is.js +19 -0
  98. data/node_modules/type/integer/coerce.js +11 -0
  99. data/node_modules/type/integer/ensure.js +10 -0
  100. data/node_modules/type/iterable/ensure.js +9 -0
  101. data/node_modules/type/iterable/is.js +20 -0
  102. data/node_modules/type/lib/is-to-string-tag-supported.js +3 -0
  103. data/node_modules/type/lib/resolve-exception.js +21 -0
  104. data/node_modules/type/lib/safe-to-string.js +10 -0
  105. data/node_modules/type/lib/to-short-string.js +29 -0
  106. data/node_modules/type/natural-number/coerce.js +10 -0
  107. data/node_modules/type/natural-number/ensure.js +10 -0
  108. data/node_modules/type/number/coerce.js +14 -0
  109. data/node_modules/type/number/ensure.js +10 -0
  110. data/node_modules/type/object/ensure.js +9 -0
  111. data/node_modules/type/object/is.js +11 -0
  112. data/node_modules/type/package.json +159 -0
  113. data/node_modules/type/plain-function/ensure.js +9 -0
  114. data/node_modules/type/plain-function/is.js +11 -0
  115. data/node_modules/type/plain-object/ensure.js +9 -0
  116. data/node_modules/type/plain-object/is.js +28 -0
  117. data/node_modules/type/promise/ensure.js +9 -0
  118. data/node_modules/type/promise/is.js +27 -0
  119. data/node_modules/type/prototype/is.js +13 -0
  120. data/node_modules/type/reg-exp/ensure.js +9 -0
  121. data/node_modules/type/reg-exp/is.js +37 -0
  122. data/node_modules/type/safe-integer/coerce.js +13 -0
  123. data/node_modules/type/safe-integer/ensure.js +10 -0
  124. data/node_modules/type/string/coerce.js +23 -0
  125. data/node_modules/type/string/ensure.js +10 -0
  126. data/node_modules/type/test/_lib/arrow-function-if-supported.js +4 -0
  127. data/node_modules/type/test/_lib/class-if-supported.js +4 -0
  128. data/node_modules/type/test/array-length/coerce.js +47 -0
  129. data/node_modules/type/test/array-length/ensure.js +19 -0
  130. data/node_modules/type/test/array-like/ensure.js +24 -0
  131. data/node_modules/type/test/array-like/is.js +47 -0
  132. data/node_modules/type/test/array/ensure.js +20 -0
  133. data/node_modules/type/test/array/is.js +41 -0
  134. data/node_modules/type/test/date/ensure.js +20 -0
  135. data/node_modules/type/test/date/is.js +46 -0
  136. data/node_modules/type/test/error/ensure.js +20 -0
  137. data/node_modules/type/test/error/is.js +42 -0
  138. data/node_modules/type/test/finite/coerce.js +40 -0
  139. data/node_modules/type/test/finite/ensure.js +17 -0
  140. data/node_modules/type/test/function/ensure.js +20 -0
  141. data/node_modules/type/test/function/is.js +46 -0
  142. data/node_modules/type/test/integer/coerce.js +49 -0
  143. data/node_modules/type/test/integer/ensure.js +17 -0
  144. data/node_modules/type/test/iterable/ensure.js +24 -0
  145. data/node_modules/type/test/iterable/is.js +50 -0
  146. data/node_modules/type/test/lib/is-to-string-tag-supported.js +10 -0
  147. data/node_modules/type/test/lib/resolve-exception.js +39 -0
  148. data/node_modules/type/test/lib/safe-to-string.js +32 -0
  149. data/node_modules/type/test/lib/to-short-string.js +41 -0
  150. data/node_modules/type/test/natural-number/coerce.js +47 -0
  151. data/node_modules/type/test/natural-number/ensure.js +19 -0
  152. data/node_modules/type/test/number/coerce.js +40 -0
  153. data/node_modules/type/test/number/ensure.js +17 -0
  154. data/node_modules/type/test/object/ensure.js +20 -0
  155. data/node_modules/type/test/object/is.js +30 -0
  156. data/node_modules/type/test/plain-function/ensure.js +20 -0
  157. data/node_modules/type/test/plain-function/is.js +56 -0
  158. data/node_modules/type/test/plain-object/ensure.js +20 -0
  159. data/node_modules/type/test/plain-object/is.js +47 -0
  160. data/node_modules/type/test/promise/ensure.js +20 -0
  161. data/node_modules/type/test/promise/is.js +39 -0
  162. data/node_modules/type/test/prototype/is.js +39 -0
  163. data/node_modules/type/test/reg-exp/ensure.js +20 -0
  164. data/node_modules/type/test/reg-exp/is.js +47 -0
  165. data/node_modules/type/test/safe-integer/coerce.js +49 -0
  166. data/node_modules/type/test/safe-integer/ensure.js +19 -0
  167. data/node_modules/type/test/string/coerce.js +36 -0
  168. data/node_modules/type/test/string/ensure.js +17 -0
  169. data/node_modules/type/test/thenable/ensure.js +20 -0
  170. data/node_modules/type/test/thenable/is.js +44 -0
  171. data/node_modules/type/test/time-value/coerce.js +47 -0
  172. data/node_modules/type/test/time-value/ensure.js +17 -0
  173. data/node_modules/type/test/value/ensure.js +20 -0
  174. data/node_modules/type/test/value/is.js +29 -0
  175. data/node_modules/type/thenable/ensure.js +9 -0
  176. data/node_modules/type/thenable/is.js +9 -0
  177. data/node_modules/type/time-value/coerce.js +12 -0
  178. data/node_modules/type/time-value/ensure.js +10 -0
  179. data/node_modules/type/value/ensure.js +9 -0
  180. data/node_modules/type/value/is.js +6 -0
  181. metadata +118 -21
  182. data/app/assets/stylesheets/govuk_publishing_components/components/_taxonomy-navigation.scss +0 -94
  183. data/node_modules/resolve/reaf +0 -0
  184. data/node_modules/resolve/test/shadowed_core.js +0 -38
  185. data/node_modules/resolve/test/shadowed_core/node_modules/util/index.js +0 -0
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ var coerceToSafeInteger = require("../safe-integer/coerce");
4
+
5
+ module.exports = function (value) {
6
+ value = coerceToSafeInteger(value);
7
+ if (!value) return value;
8
+ if (value < 0) return null;
9
+ return value;
10
+ };
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ var resolveException = require("../lib/resolve-exception")
4
+ , coerce = require("./coerce");
5
+
6
+ module.exports = function (value/*, options*/) {
7
+ var coerced = coerce(value);
8
+ if (coerced !== null) return coerced;
9
+ return resolveException(value, "%v is not a valid array length", arguments[1]);
10
+ };
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ var resolveException = require("../lib/resolve-exception")
4
+ , is = require("./is");
5
+
6
+ module.exports = function (value/*, options*/) {
7
+ if (is(value, arguments[1])) return value;
8
+ return resolveException(value, "%v is not an array like value", arguments[1]);
9
+ };
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ var coerceToArrayLength = require("../array-length/coerce")
4
+ , isObject = require("../object/is");
5
+
6
+ module.exports = function (value/*, options*/) {
7
+ if (!isObject(value)) {
8
+ var options = arguments[1];
9
+ if (isObject(options) && options.allowString && typeof value === "string") return true;
10
+ return false;
11
+ }
12
+
13
+ if (typeof value === "function") return false;
14
+
15
+ var length;
16
+ try { length = value.length; }
17
+ catch (error) { return false; }
18
+
19
+ if (coerceToArrayLength(length) === null) return false;
20
+ return true;
21
+ };
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ var resolveException = require("../lib/resolve-exception")
4
+ , is = require("./is");
5
+
6
+ module.exports = function (value/*, options*/) {
7
+ if (is(value)) return value;
8
+ return resolveException(value, "%v is not an array object", arguments[1]);
9
+ };
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ var isPrototype = require("../prototype/is");
4
+
5
+ var isArray;
6
+ if (typeof Array.isArray === "function") {
7
+ isArray = Array.isArray;
8
+ } else {
9
+ var objectToString = Object.prototype.toString, objectTaggedString = objectToString.call([]);
10
+ isArray = function (value) { return objectToString.call(value) === objectTaggedString; };
11
+ }
12
+
13
+ module.exports = function (value) {
14
+ if (!isArray(value)) return false;
15
+
16
+ // Sanity check (reject objects which do not expose common Array interface)
17
+ if (!hasOwnProperty.call(value, "length")) return false;
18
+ try {
19
+ if (typeof value.length !== "number") return false;
20
+ if (typeof value.push !== "function") return false;
21
+ if (typeof value.splice !== "function") return false;
22
+ } catch (error) {
23
+ return false;
24
+ }
25
+
26
+ return !isPrototype(value);
27
+ };
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ var resolveException = require("../lib/resolve-exception")
4
+ , is = require("./is");
5
+
6
+ module.exports = function (value/*, options*/) {
7
+ if (is(value)) return value;
8
+ return resolveException(value, "%v is not a date object", arguments[1]);
9
+ };
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ var isPrototype = require("../prototype/is");
4
+
5
+ var dateValueOf = Date.prototype.valueOf;
6
+
7
+ module.exports = function (value) {
8
+ if (!value) return false;
9
+
10
+ try {
11
+ // Sanity check (reject objects which do not expose common Date interface)
12
+ if (typeof value.getFullYear !== "function") return false;
13
+ if (typeof value.getTimezoneOffset !== "function") return false;
14
+ if (typeof value.setFullYear !== "function") return false;
15
+
16
+ // Ensure its native Date object (has [[DateValue]] slot)
17
+ dateValueOf.call(value);
18
+ } catch (error) {
19
+ return false;
20
+ }
21
+
22
+ // Ensure it hosts valid date
23
+ if (isNaN(value)) return false;
24
+
25
+ return !isPrototype(value);
26
+ };
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ var resolveException = require("../lib/resolve-exception")
4
+ , is = require("./is");
5
+
6
+ module.exports = function (value/*, options*/) {
7
+ if (is(value)) return value;
8
+ return resolveException(value, "%v is not an error object", arguments[1]);
9
+ };
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ var isPrototype = require("../prototype/is");
4
+
5
+ var objectToString = Object.prototype.toString
6
+ , objectTaggedString = objectToString.call(new Error());
7
+
8
+ module.exports = function (value) {
9
+ if (!value) return false;
10
+
11
+ // Sanity check (reject objects which do not expose common Error interface)
12
+ try {
13
+ if (typeof value.message !== "string") return false;
14
+ } catch (error) {
15
+ return false;
16
+ }
17
+
18
+ // Ensure its native Error object (has [[ErrorData]] slot)
19
+ // Note: it's not 100% precise as string tag may be overriden
20
+ // and other objects can be hacked to expose it
21
+ if (objectToString.call(value) !== objectTaggedString) return false;
22
+
23
+ return !isPrototype(value);
24
+ };
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ var coerceToNumber = require("../number/coerce");
4
+
5
+ module.exports = function (value) {
6
+ value = coerceToNumber(value);
7
+ return isFinite(value) ? value : null;
8
+ };
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ var resolveException = require("../lib/resolve-exception")
4
+ , coerce = require("./coerce");
5
+
6
+ module.exports = function (value/*, options*/) {
7
+ var coerced = coerce(value);
8
+ if (coerced !== null) return coerced;
9
+ return resolveException(value, "%v is not a finite number", arguments[1]);
10
+ };
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ var resolveException = require("../lib/resolve-exception")
4
+ , is = require("./is");
5
+
6
+ module.exports = function (value/*, options*/) {
7
+ if (is(value)) return value;
8
+ return resolveException(value, "%v is not a function", arguments[1]);
9
+ };
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ var isPrototype = require("../prototype/is");
4
+
5
+ module.exports = function (value) {
6
+ if (typeof value !== "function") return false;
7
+
8
+ if (!hasOwnProperty.call(value, "length")) return false;
9
+
10
+ try {
11
+ if (typeof value.length !== "number") return false;
12
+ if (typeof value.call !== "function") return false;
13
+ if (typeof value.apply !== "function") return false;
14
+ } catch (error) {
15
+ return false;
16
+ }
17
+
18
+ return !isPrototype(value);
19
+ };
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ var coerceToFinite = require("../finite/coerce");
4
+
5
+ var abs = Math.abs, floor = Math.floor;
6
+
7
+ module.exports = function (value) {
8
+ value = coerceToFinite(value);
9
+ if (!value) return value;
10
+ return (value > 0 ? 1 : -1) * floor(abs(value));
11
+ };
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ var resolveException = require("../lib/resolve-exception")
4
+ , coerce = require("./coerce");
5
+
6
+ module.exports = function (value/*, options*/) {
7
+ var coerced = coerce(value);
8
+ if (coerced !== null) return coerced;
9
+ return resolveException(value, "%v is not an integer", arguments[1]);
10
+ };
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ var resolveException = require("../lib/resolve-exception")
4
+ , is = require("./is");
5
+
6
+ module.exports = function (value/*, options*/) {
7
+ if (is(value, arguments[1])) return value;
8
+ return resolveException(value, "%v is not an iterable value", arguments[1]);
9
+ };
@@ -0,0 +1,20 @@
1
+ // Polyfills friendly, therefore ES5 syntax
2
+
3
+ "use strict";
4
+
5
+ var isObject = require("../object/is");
6
+
7
+ var iteratorSymbol = Symbol.iterator;
8
+
9
+ if (!iteratorSymbol) {
10
+ throw new Error("Cannot initialize iterator/is due to Symbol.iterator not being implemented");
11
+ }
12
+
13
+ module.exports = function (value/*, options*/) {
14
+ if (!isObject(value)) {
15
+ var options = arguments[1];
16
+ if (!isObject(options) || !options.allowString || typeof value !== "string") return false;
17
+ }
18
+ try { return typeof value[iteratorSymbol] === "function"; }
19
+ catch (error) { return false; }
20
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+
3
+ module.exports = typeof Symbol === "function" && typeof Symbol.toStringTag === "symbol";
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ var isValue = require("../value/is")
4
+ , isObject = require("../object/is")
5
+ , stringCoerce = require("../string/coerce")
6
+ , toShortString = require("./to-short-string");
7
+
8
+ var resolveMessage = function (message, value) {
9
+ return message.replace("%v", toShortString(value));
10
+ };
11
+
12
+ module.exports = function (value, defaultMessage, inputOptions) {
13
+ if (!isObject(inputOptions)) throw new TypeError(resolveMessage(defaultMessage, value));
14
+ if (!isValue(value)) {
15
+ if ("default" in inputOptions) return inputOptions["default"];
16
+ if (inputOptions.isOptional) return null;
17
+ }
18
+ var errorMessage = stringCoerce(inputOptions.errorMessage);
19
+ if (!isValue(errorMessage)) errorMessage = defaultMessage;
20
+ throw new TypeError(resolveMessage(errorMessage, value));
21
+ };
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ module.exports = function (value) {
4
+ try {
5
+ return value.toString();
6
+ } catch (error) {
7
+ try { return String(value); }
8
+ catch (error2) { return null; }
9
+ }
10
+ };
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ var safeToString = require("./safe-to-string");
4
+
5
+ var reNewLine = /[\n\r\u2028\u2029]/g;
6
+
7
+ module.exports = function (value) {
8
+ var string = safeToString(value);
9
+ if (string === null) return "<Non-coercible to string value>";
10
+ // Trim if too long
11
+ if (string.length > 100) string = string.slice(0, 99) + "…";
12
+ // Replace eventual new lines
13
+ string = string.replace(reNewLine, function (char) {
14
+ switch (char) {
15
+ case "\n":
16
+ return "\\n";
17
+ case "\r":
18
+ return "\\r";
19
+ case "\u2028":
20
+ return "\\u2028";
21
+ case "\u2029":
22
+ return "\\u2029";
23
+ /* istanbul ignore next */
24
+ default:
25
+ throw new Error("Unexpected character");
26
+ }
27
+ });
28
+ return string;
29
+ };
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ var coerceToInteger = require("../integer/coerce");
4
+
5
+ module.exports = function (value) {
6
+ value = coerceToInteger(value);
7
+ if (!value) return value;
8
+ if (value < 0) return null;
9
+ return value;
10
+ };
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ var resolveException = require("../lib/resolve-exception")
4
+ , coerce = require("./coerce");
5
+
6
+ module.exports = function (value/*, options*/) {
7
+ var coerced = coerce(value);
8
+ if (coerced !== null) return coerced;
9
+ return resolveException(value, "%v is not a natural number", arguments[1]);
10
+ };
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ var isValue = require("../value/is");
4
+
5
+ module.exports = function (value) {
6
+ if (!isValue(value)) return null;
7
+ try {
8
+ value = +value; // Ensure implicit coercion
9
+ } catch (error) {
10
+ return null;
11
+ }
12
+ if (isNaN(value)) return null;
13
+ return value;
14
+ };
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ var resolveException = require("../lib/resolve-exception")
4
+ , coerce = require("./coerce");
5
+
6
+ module.exports = function (value/*, options*/) {
7
+ var coerced = coerce(value);
8
+ if (coerced !== null) return coerced;
9
+ return resolveException(value, "%v is not a number", arguments[1]);
10
+ };
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ var resolveException = require("../lib/resolve-exception")
4
+ , is = require("./is");
5
+
6
+ module.exports = function (value/*, options*/) {
7
+ if (is(value)) return value;
8
+ return resolveException(value, "%v is not an object", arguments[1]);
9
+ };
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ var isValue = require("../value/is");
4
+
5
+ // prettier-ignore
6
+ var possibleTypes = { "object": true, "function": true, "undefined": true /* document.all */ };
7
+
8
+ module.exports = function (value) {
9
+ if (!isValue(value)) return false;
10
+ return hasOwnProperty.call(possibleTypes, typeof value);
11
+ };
@@ -0,0 +1,159 @@
1
+ {
2
+ "_args": [
3
+ [
4
+ {
5
+ "raw": "type@^1.0.1",
6
+ "scope": null,
7
+ "escapedName": "type",
8
+ "name": "type",
9
+ "rawSpec": "^1.0.1",
10
+ "spec": ">=1.0.1 <2.0.0",
11
+ "type": "range"
12
+ },
13
+ "/var/lib/jenkins/workspace/ublishing_components_master-N4FWJIUY4CIFHKGZOAAEVVXODRY3YBORQOPIBBXWX72VUPSGJRRQ/node_modules/d"
14
+ ]
15
+ ],
16
+ "_from": "type@>=1.0.1 <2.0.0",
17
+ "_hasShrinkwrap": false,
18
+ "_id": "type@1.0.1",
19
+ "_inCache": true,
20
+ "_location": "/type",
21
+ "_nodeVersion": "11.13.0",
22
+ "_npmOperationalInternal": {
23
+ "host": "s3://npm-registry-packages",
24
+ "tmp": "tmp/type_1.0.1_1554733326657_0.6015133915569804"
25
+ },
26
+ "_npmUser": {
27
+ "name": "medikoo",
28
+ "email": "medikoo+npm@medikoo.com"
29
+ },
30
+ "_npmVersion": "6.7.0",
31
+ "_phantomChildren": {},
32
+ "_requested": {
33
+ "raw": "type@^1.0.1",
34
+ "scope": null,
35
+ "escapedName": "type",
36
+ "name": "type",
37
+ "rawSpec": "^1.0.1",
38
+ "spec": ">=1.0.1 <2.0.0",
39
+ "type": "range"
40
+ },
41
+ "_requiredBy": [
42
+ "/d"
43
+ ],
44
+ "_resolved": "https://registry.npmjs.org/type/-/type-1.0.1.tgz",
45
+ "_shasum": "084c9a17fcc9151a2cdb1459905c2e45e4bb7d61",
46
+ "_shrinkwrap": null,
47
+ "_spec": "type@^1.0.1",
48
+ "_where": "/var/lib/jenkins/workspace/ublishing_components_master-N4FWJIUY4CIFHKGZOAAEVVXODRY3YBORQOPIBBXWX72VUPSGJRRQ/node_modules/d",
49
+ "author": {
50
+ "name": "Mariusz Nowak",
51
+ "email": "medyk@medikoo.com",
52
+ "url": "https://www.medikoo.com/"
53
+ },
54
+ "bugs": {
55
+ "url": "https://github.com/medikoo/type/issues"
56
+ },
57
+ "dependencies": {},
58
+ "description": "Runtime validation and processing of JavaScript types",
59
+ "devDependencies": {
60
+ "chai": "^4.2.0",
61
+ "eslint": "^5.15.3",
62
+ "eslint-config-medikoo-es3": "^2.1.0",
63
+ "git-list-updated": "^1.1.2",
64
+ "husky": "^1.3.1",
65
+ "lint-staged": "^8.1.5",
66
+ "mocha": "^6.0.2",
67
+ "nyc": "^13.3.0",
68
+ "prettier-elastic": "^1.16.4"
69
+ },
70
+ "directories": {},
71
+ "dist": {
72
+ "integrity": "sha512-MAM5dBMJCJNKs9E7JXo4CXRAansRfG0nlJxW7Wf6GZzSOvH31zClSaHdIMWLehe/EGMBkqeC55rrkaOr5Oo7Nw==",
73
+ "shasum": "084c9a17fcc9151a2cdb1459905c2e45e4bb7d61",
74
+ "tarball": "https://registry.npmjs.org/type/-/type-1.0.1.tgz",
75
+ "fileCount": 101,
76
+ "unpackedSize": 96534,
77
+ "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcq1kPCRA9TVsSAnZWagAAVE8QAJJjMCA7+LIxgjYVhAwD\n85yQgnZ6fknasTdqYOo7qjYIntEgZ5smEKWzh9eofRv/pWEN/80+B4cOX6Hr\niZVJdvTH//Ahd9d6cNK34pVan5DbhUYX8SW8RLFgangaLAmzcCo+17C4TxWv\nHRi5vFbl8dQLHda28EOfMC2CWzxnp91flTxjGCDBGwhLIv8kAEI6z8lM+PnL\nP3Hg6GK2Q87aOHU287RvsZxpegn4pLDuRmfHYg/25tfDT5sdr2us481oGx6S\nb1o4B37AS3Kv65yShe55ymx4JvZd/EKLaWUfwBltKPaoOBO3/yuZA8HMbaDk\nRKPlCbiPOQndTsiwEzjgyKDZL8u+xIdtl3M8vSbPf5a3yZDZ970kDIoCmQe8\nFEDSTpiyKXMeroLbxGlN3LeIc1gE1a/HlAQmURlP4DxkH4WjjWPiKjBtcFwM\nhzXyiYyUX4O3DjdHfeDVU+G6y2OnQOLXKhT08ijZzCHaVEhSUAsVqfZroRM1\nSCZfUC03D0/DGDtPUhrsFTf4hdyr1OkS14DWJmF9ydSps5NGKdVGmXvcGIGJ\nuPTk8u7Cu9fTjJerG1hv5s7d9C9A2OU9/RV3e1s2hnVv/mhFeUGrY3GAvibH\nGtue/TeGFkkHJVrtHORQJO0dRaSP7hLjx0Eh3Sdp2Z8fPvKhfPRmW+PNgKhL\nrmu9\r\n=1gzz\r\n-----END PGP SIGNATURE-----\r\n"
78
+ },
79
+ "eslintConfig": {
80
+ "extends": "medikoo-es3",
81
+ "root": true,
82
+ "globals": {
83
+ "Map": true,
84
+ "Promise": true,
85
+ "Set": true,
86
+ "Symbol": true
87
+ },
88
+ "overrides": [
89
+ {
90
+ "files": "test/**/*.js",
91
+ "env": {
92
+ "mocha": true
93
+ },
94
+ "rules": {
95
+ "no-eval": "off",
96
+ "no-new-wrappers": "off"
97
+ }
98
+ },
99
+ {
100
+ "files": [
101
+ "string/coerce.js",
102
+ "number/coerce.js"
103
+ ],
104
+ "rules": {
105
+ "no-implicit-coercion": "off"
106
+ }
107
+ },
108
+ {
109
+ "files": "plain-object/is.js",
110
+ "rules": {
111
+ "no-proto": "off"
112
+ }
113
+ }
114
+ ]
115
+ },
116
+ "gitHead": "eb9e77ae26450e8d250db7f1f1b5e01f13011750",
117
+ "homepage": "https://github.com/medikoo/type#readme",
118
+ "husky": {
119
+ "hooks": {
120
+ "pre-commit": "lint-staged"
121
+ }
122
+ },
123
+ "keywords": [
124
+ "type",
125
+ "coercion"
126
+ ],
127
+ "license": "ISC",
128
+ "lint-staged": {
129
+ "*.js": [
130
+ "eslint"
131
+ ],
132
+ "*.{css,html,js,json,md,yaml,yml}": [
133
+ "prettier -c"
134
+ ]
135
+ },
136
+ "maintainers": [
137
+ {
138
+ "name": "gozala",
139
+ "email": "rfobic@gmail.com"
140
+ }
141
+ ],
142
+ "name": "type",
143
+ "optionalDependencies": {},
144
+ "readme": "ERROR: No README data found!",
145
+ "repository": {
146
+ "type": "git",
147
+ "url": "git+https://github.com/medikoo/type.git"
148
+ },
149
+ "scripts": {
150
+ "check-coverage": "npm run coverage && nyc check-coverage --statements 80 --function 80 --branches 80 --lines 80",
151
+ "coverage": "nyc --reporter=lcov --reporter=html --reporter=text-summary npm test",
152
+ "lint": "eslint --ignore-path=.gitignore .",
153
+ "lint-updated": "pipe-git-updated --ext=js -- eslint --ignore-pattern '!*'",
154
+ "prettier-check-updated": "pipe-git-updated --ext=css --ext=html --ext=js --ext=json --ext=md --ext=yaml --ext=yml -- prettier -c",
155
+ "prettify": "prettier --write --ignore-path .gitignore '**/*.{css,html,js,json,md,yaml,yml}'",
156
+ "test": "mocha --recursive"
157
+ },
158
+ "version": "1.0.1"
159
+ }