decidim 0.27.2 → 0.27.4

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of decidim might be problematic. Click here for more details.

Files changed (224) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +17 -10
  3. data/babel.config.json +1 -4
  4. data/docs/modules/customize/pages/data_consent.adoc +1 -1
  5. data/lib/decidim/release_manager.rb.new +43 -0
  6. data/lib/decidim/version.rb +1 -1
  7. data/package-lock.json +343 -255
  8. data/packages/browserslist-config/package.json +1 -1
  9. data/packages/core/node_modules/diff/CONTRIBUTING.md +39 -0
  10. data/packages/core/node_modules/diff/LICENSE +31 -0
  11. data/packages/core/node_modules/diff/README.md +211 -0
  12. data/packages/core/node_modules/diff/dist/diff.js +1627 -0
  13. data/packages/core/node_modules/diff/dist/diff.min.js +38 -0
  14. data/packages/core/node_modules/diff/lib/convert/dmp.js +32 -0
  15. data/packages/core/node_modules/diff/lib/convert/xml.js +42 -0
  16. data/packages/core/node_modules/diff/lib/diff/array.js +45 -0
  17. data/packages/core/node_modules/diff/lib/diff/base.js +307 -0
  18. data/packages/core/node_modules/diff/lib/diff/character.js +37 -0
  19. data/packages/core/node_modules/diff/lib/diff/css.js +41 -0
  20. data/packages/core/node_modules/diff/lib/diff/json.js +163 -0
  21. data/packages/core/node_modules/diff/lib/diff/line.js +89 -0
  22. data/packages/core/node_modules/diff/lib/diff/sentence.js +41 -0
  23. data/packages/core/node_modules/diff/lib/diff/word.js +108 -0
  24. data/packages/core/node_modules/diff/lib/index.es6.js +1561 -0
  25. data/packages/core/node_modules/diff/lib/index.js +216 -0
  26. data/packages/core/node_modules/diff/lib/index.mjs +1561 -0
  27. data/packages/core/node_modules/diff/lib/patch/apply.js +238 -0
  28. data/packages/core/node_modules/diff/lib/patch/create.js +272 -0
  29. data/packages/core/node_modules/diff/lib/patch/merge.js +613 -0
  30. data/packages/core/node_modules/diff/lib/patch/parse.js +167 -0
  31. data/packages/core/node_modules/diff/lib/util/array.js +32 -0
  32. data/packages/core/node_modules/diff/lib/util/distance-iterator.js +57 -0
  33. data/packages/core/node_modules/diff/lib/util/params.js +24 -0
  34. data/packages/core/node_modules/diff/package.json +87 -0
  35. data/packages/core/node_modules/diff/release-notes.md +309 -0
  36. data/packages/core/node_modules/diff/runtime.js +3 -0
  37. data/packages/core/package-lock.json +4889 -0
  38. data/packages/core/package.json +1 -1
  39. data/packages/dev/package.json +1 -1
  40. data/packages/elections/package.json +1 -1
  41. data/packages/eslint-config/package.json +1 -1
  42. data/packages/stylelint-config/package.json +1 -1
  43. data/packages/webpacker/node_modules/argparse/CHANGELOG.md +216 -0
  44. data/packages/webpacker/node_modules/argparse/LICENSE +254 -0
  45. data/packages/webpacker/node_modules/argparse/README.md +84 -0
  46. data/packages/webpacker/node_modules/argparse/argparse.js +3707 -0
  47. data/packages/webpacker/node_modules/argparse/lib/sub.js +67 -0
  48. data/packages/webpacker/node_modules/argparse/lib/textwrap.js +440 -0
  49. data/packages/webpacker/node_modules/argparse/package.json +31 -0
  50. data/packages/{core/node_modules/uuid/LICENSE.md → webpacker/node_modules/brace-expansion/LICENSE} +2 -2
  51. data/packages/webpacker/node_modules/brace-expansion/README.md +135 -0
  52. data/packages/webpacker/node_modules/brace-expansion/index.js +203 -0
  53. data/packages/webpacker/node_modules/brace-expansion/package.json +46 -0
  54. data/packages/webpacker/node_modules/glob/LICENSE +15 -0
  55. data/packages/webpacker/node_modules/glob/README.md +1214 -0
  56. data/packages/webpacker/node_modules/glob/dist/cjs/package.json +4 -0
  57. data/packages/webpacker/node_modules/glob/dist/cjs/src/bin.d.ts +3 -0
  58. data/packages/webpacker/node_modules/glob/dist/cjs/src/bin.d.ts.map +1 -0
  59. data/packages/webpacker/node_modules/glob/dist/cjs/src/bin.js +270 -0
  60. data/packages/webpacker/node_modules/glob/dist/cjs/src/bin.js.map +1 -0
  61. data/packages/webpacker/node_modules/glob/dist/cjs/src/glob.d.ts +344 -0
  62. data/packages/webpacker/node_modules/glob/dist/cjs/src/glob.d.ts.map +1 -0
  63. data/packages/webpacker/node_modules/glob/dist/cjs/src/glob.js +238 -0
  64. data/packages/webpacker/node_modules/glob/dist/cjs/src/glob.js.map +1 -0
  65. data/packages/webpacker/node_modules/glob/dist/cjs/src/has-magic.d.ts +14 -0
  66. data/packages/webpacker/node_modules/glob/dist/cjs/src/has-magic.d.ts.map +1 -0
  67. data/packages/webpacker/node_modules/glob/dist/cjs/src/has-magic.js +27 -0
  68. data/packages/webpacker/node_modules/glob/dist/cjs/src/has-magic.js.map +1 -0
  69. data/packages/webpacker/node_modules/glob/dist/cjs/src/ignore.d.ts +20 -0
  70. data/packages/webpacker/node_modules/glob/dist/cjs/src/ignore.d.ts.map +1 -0
  71. data/packages/webpacker/node_modules/glob/dist/cjs/src/ignore.js +103 -0
  72. data/packages/webpacker/node_modules/glob/dist/cjs/src/ignore.js.map +1 -0
  73. data/packages/webpacker/node_modules/glob/dist/cjs/src/index.d.ts +95 -0
  74. data/packages/webpacker/node_modules/glob/dist/cjs/src/index.d.ts.map +1 -0
  75. data/packages/webpacker/node_modules/glob/dist/cjs/src/index.js +68 -0
  76. data/packages/webpacker/node_modules/glob/dist/cjs/src/index.js.map +1 -0
  77. data/packages/webpacker/node_modules/glob/dist/cjs/src/pattern.d.ts +77 -0
  78. data/packages/webpacker/node_modules/glob/dist/cjs/src/pattern.d.ts.map +1 -0
  79. data/packages/webpacker/node_modules/glob/dist/cjs/src/pattern.js +219 -0
  80. data/packages/webpacker/node_modules/glob/dist/cjs/src/pattern.js.map +1 -0
  81. data/packages/webpacker/node_modules/glob/dist/cjs/src/processor.d.ts +59 -0
  82. data/packages/webpacker/node_modules/glob/dist/cjs/src/processor.d.ts.map +1 -0
  83. data/packages/webpacker/node_modules/glob/dist/cjs/src/processor.js +309 -0
  84. data/packages/webpacker/node_modules/glob/dist/cjs/src/processor.js.map +1 -0
  85. data/packages/webpacker/node_modules/glob/dist/cjs/src/walker.d.ts +96 -0
  86. data/packages/webpacker/node_modules/glob/dist/cjs/src/walker.d.ts.map +1 -0
  87. data/packages/webpacker/node_modules/glob/dist/cjs/src/walker.js +358 -0
  88. data/packages/webpacker/node_modules/glob/dist/cjs/src/walker.js.map +1 -0
  89. data/packages/webpacker/node_modules/glob/dist/mjs/glob.d.ts +344 -0
  90. data/packages/webpacker/node_modules/glob/dist/mjs/glob.d.ts.map +1 -0
  91. data/packages/webpacker/node_modules/glob/dist/mjs/glob.js +234 -0
  92. data/packages/webpacker/node_modules/glob/dist/mjs/glob.js.map +1 -0
  93. data/packages/webpacker/node_modules/glob/dist/mjs/has-magic.d.ts +14 -0
  94. data/packages/webpacker/node_modules/glob/dist/mjs/has-magic.d.ts.map +1 -0
  95. data/packages/webpacker/node_modules/glob/dist/mjs/has-magic.js +23 -0
  96. data/packages/webpacker/node_modules/glob/dist/mjs/has-magic.js.map +1 -0
  97. data/packages/webpacker/node_modules/glob/dist/mjs/ignore.d.ts +20 -0
  98. data/packages/webpacker/node_modules/glob/dist/mjs/ignore.d.ts.map +1 -0
  99. data/packages/webpacker/node_modules/glob/dist/mjs/ignore.js +99 -0
  100. data/packages/webpacker/node_modules/glob/dist/mjs/ignore.js.map +1 -0
  101. data/packages/webpacker/node_modules/glob/dist/mjs/index.d.ts +95 -0
  102. data/packages/webpacker/node_modules/glob/dist/mjs/index.d.ts.map +1 -0
  103. data/packages/webpacker/node_modules/glob/dist/mjs/index.js +56 -0
  104. data/packages/webpacker/node_modules/glob/dist/mjs/index.js.map +1 -0
  105. data/packages/webpacker/node_modules/glob/dist/mjs/package.json +4 -0
  106. data/packages/webpacker/node_modules/glob/dist/mjs/pattern.d.ts +77 -0
  107. data/packages/webpacker/node_modules/glob/dist/mjs/pattern.d.ts.map +1 -0
  108. data/packages/webpacker/node_modules/glob/dist/mjs/pattern.js +215 -0
  109. data/packages/webpacker/node_modules/glob/dist/mjs/pattern.js.map +1 -0
  110. data/packages/webpacker/node_modules/glob/dist/mjs/processor.d.ts +59 -0
  111. data/packages/webpacker/node_modules/glob/dist/mjs/processor.d.ts.map +1 -0
  112. data/packages/webpacker/node_modules/glob/dist/mjs/processor.js +302 -0
  113. data/packages/webpacker/node_modules/glob/dist/mjs/processor.js.map +1 -0
  114. data/packages/webpacker/node_modules/glob/dist/mjs/walker.d.ts +96 -0
  115. data/packages/webpacker/node_modules/glob/dist/mjs/walker.d.ts.map +1 -0
  116. data/packages/webpacker/node_modules/glob/dist/mjs/walker.js +352 -0
  117. data/packages/webpacker/node_modules/glob/dist/mjs/walker.js.map +1 -0
  118. data/packages/webpacker/node_modules/glob/package.json +98 -0
  119. data/packages/webpacker/node_modules/js-yaml/CHANGELOG.md +616 -0
  120. data/packages/webpacker/node_modules/js-yaml/LICENSE +21 -0
  121. data/packages/webpacker/node_modules/js-yaml/README.md +246 -0
  122. data/packages/webpacker/node_modules/js-yaml/bin/js-yaml.js +126 -0
  123. data/packages/webpacker/node_modules/js-yaml/dist/js-yaml.js +3874 -0
  124. data/packages/webpacker/node_modules/js-yaml/dist/js-yaml.min.js +2 -0
  125. data/packages/webpacker/node_modules/js-yaml/dist/js-yaml.mjs +3851 -0
  126. data/packages/webpacker/node_modules/js-yaml/index.js +47 -0
  127. data/packages/webpacker/node_modules/js-yaml/lib/common.js +59 -0
  128. data/packages/webpacker/node_modules/js-yaml/lib/dumper.js +965 -0
  129. data/packages/webpacker/node_modules/js-yaml/lib/exception.js +55 -0
  130. data/packages/webpacker/node_modules/js-yaml/lib/loader.js +1727 -0
  131. data/packages/webpacker/node_modules/js-yaml/lib/schema/core.js +11 -0
  132. data/packages/webpacker/node_modules/js-yaml/lib/schema/default.js +22 -0
  133. data/packages/webpacker/node_modules/js-yaml/lib/schema/failsafe.js +17 -0
  134. data/packages/webpacker/node_modules/js-yaml/lib/schema/json.js +19 -0
  135. data/packages/webpacker/node_modules/js-yaml/lib/schema.js +121 -0
  136. data/packages/webpacker/node_modules/js-yaml/lib/snippet.js +101 -0
  137. data/packages/webpacker/node_modules/js-yaml/lib/type/binary.js +125 -0
  138. data/packages/webpacker/node_modules/js-yaml/lib/type/bool.js +35 -0
  139. data/packages/webpacker/node_modules/js-yaml/lib/type/float.js +97 -0
  140. data/packages/webpacker/node_modules/js-yaml/lib/type/int.js +156 -0
  141. data/packages/webpacker/node_modules/js-yaml/lib/type/map.js +8 -0
  142. data/packages/webpacker/node_modules/js-yaml/lib/type/merge.js +12 -0
  143. data/packages/webpacker/node_modules/js-yaml/lib/type/null.js +35 -0
  144. data/packages/webpacker/node_modules/js-yaml/lib/type/omap.js +44 -0
  145. data/packages/webpacker/node_modules/js-yaml/lib/type/pairs.js +53 -0
  146. data/packages/webpacker/node_modules/js-yaml/lib/type/seq.js +8 -0
  147. data/packages/webpacker/node_modules/js-yaml/lib/type/set.js +29 -0
  148. data/packages/webpacker/node_modules/js-yaml/lib/type/str.js +8 -0
  149. data/packages/webpacker/node_modules/js-yaml/lib/type/timestamp.js +88 -0
  150. data/packages/webpacker/node_modules/js-yaml/lib/type.js +66 -0
  151. data/packages/webpacker/node_modules/js-yaml/package.json +66 -0
  152. data/packages/webpacker/node_modules/minimatch/LICENSE +15 -0
  153. data/packages/webpacker/node_modules/minimatch/README.md +454 -0
  154. data/packages/webpacker/node_modules/minimatch/dist/cjs/assert-valid-pattern.d.ts +2 -0
  155. data/packages/webpacker/node_modules/minimatch/dist/cjs/assert-valid-pattern.d.ts.map +1 -0
  156. data/packages/webpacker/node_modules/minimatch/dist/cjs/assert-valid-pattern.js +14 -0
  157. data/packages/webpacker/node_modules/minimatch/dist/cjs/assert-valid-pattern.js.map +1 -0
  158. data/packages/webpacker/node_modules/minimatch/dist/cjs/ast.d.ts +19 -0
  159. data/packages/webpacker/node_modules/minimatch/dist/cjs/ast.d.ts.map +1 -0
  160. data/packages/webpacker/node_modules/minimatch/dist/cjs/ast.js +589 -0
  161. data/packages/webpacker/node_modules/minimatch/dist/cjs/ast.js.map +1 -0
  162. data/packages/webpacker/node_modules/minimatch/dist/cjs/brace-expressions.d.ts +8 -0
  163. data/packages/webpacker/node_modules/minimatch/dist/cjs/brace-expressions.d.ts.map +1 -0
  164. data/packages/webpacker/node_modules/minimatch/dist/cjs/brace-expressions.js +152 -0
  165. data/packages/webpacker/node_modules/minimatch/dist/cjs/brace-expressions.js.map +1 -0
  166. data/packages/webpacker/node_modules/minimatch/dist/cjs/escape.d.ts +12 -0
  167. data/packages/webpacker/node_modules/minimatch/dist/cjs/escape.d.ts.map +1 -0
  168. data/packages/webpacker/node_modules/minimatch/dist/cjs/escape.js +22 -0
  169. data/packages/webpacker/node_modules/minimatch/dist/cjs/escape.js.map +1 -0
  170. data/packages/webpacker/node_modules/minimatch/dist/cjs/index.d.ts +94 -0
  171. data/packages/webpacker/node_modules/minimatch/dist/cjs/index.d.ts.map +1 -0
  172. data/packages/webpacker/node_modules/minimatch/dist/cjs/index.js +1011 -0
  173. data/packages/webpacker/node_modules/minimatch/dist/cjs/index.js.map +1 -0
  174. data/packages/webpacker/node_modules/minimatch/dist/cjs/package.json +3 -0
  175. data/packages/webpacker/node_modules/minimatch/dist/cjs/unescape.d.ts +17 -0
  176. data/packages/webpacker/node_modules/minimatch/dist/cjs/unescape.d.ts.map +1 -0
  177. data/packages/webpacker/node_modules/minimatch/dist/cjs/unescape.js +24 -0
  178. data/packages/webpacker/node_modules/minimatch/dist/cjs/unescape.js.map +1 -0
  179. data/packages/webpacker/node_modules/minimatch/dist/mjs/assert-valid-pattern.d.ts +2 -0
  180. data/packages/webpacker/node_modules/minimatch/dist/mjs/assert-valid-pattern.d.ts.map +1 -0
  181. data/packages/webpacker/node_modules/minimatch/dist/mjs/assert-valid-pattern.js +10 -0
  182. data/packages/webpacker/node_modules/minimatch/dist/mjs/assert-valid-pattern.js.map +1 -0
  183. data/packages/webpacker/node_modules/minimatch/dist/mjs/ast.d.ts +19 -0
  184. data/packages/webpacker/node_modules/minimatch/dist/mjs/ast.d.ts.map +1 -0
  185. data/packages/webpacker/node_modules/minimatch/dist/mjs/ast.js +585 -0
  186. data/packages/webpacker/node_modules/minimatch/dist/mjs/ast.js.map +1 -0
  187. data/packages/webpacker/node_modules/minimatch/dist/mjs/brace-expressions.d.ts +8 -0
  188. data/packages/webpacker/node_modules/minimatch/dist/mjs/brace-expressions.d.ts.map +1 -0
  189. data/packages/webpacker/node_modules/minimatch/dist/mjs/brace-expressions.js +148 -0
  190. data/packages/webpacker/node_modules/minimatch/dist/mjs/brace-expressions.js.map +1 -0
  191. data/packages/webpacker/node_modules/minimatch/dist/mjs/escape.d.ts +12 -0
  192. data/packages/webpacker/node_modules/minimatch/dist/mjs/escape.d.ts.map +1 -0
  193. data/packages/webpacker/node_modules/minimatch/dist/mjs/escape.js +18 -0
  194. data/packages/webpacker/node_modules/minimatch/dist/mjs/escape.js.map +1 -0
  195. data/packages/webpacker/node_modules/minimatch/dist/mjs/index.d.ts +94 -0
  196. data/packages/webpacker/node_modules/minimatch/dist/mjs/index.d.ts.map +1 -0
  197. data/packages/webpacker/node_modules/minimatch/dist/mjs/index.js +995 -0
  198. data/packages/webpacker/node_modules/minimatch/dist/mjs/index.js.map +1 -0
  199. data/packages/webpacker/node_modules/minimatch/dist/mjs/package.json +3 -0
  200. data/packages/webpacker/node_modules/minimatch/dist/mjs/unescape.d.ts +17 -0
  201. data/packages/webpacker/node_modules/minimatch/dist/mjs/unescape.d.ts.map +1 -0
  202. data/packages/webpacker/node_modules/minimatch/dist/mjs/unescape.js +20 -0
  203. data/packages/webpacker/node_modules/minimatch/dist/mjs/unescape.js.map +1 -0
  204. data/packages/webpacker/node_modules/minimatch/package.json +86 -0
  205. data/packages/webpacker/package.json +2 -2
  206. metadata +238 -65
  207. data/packages/core/node_modules/uuid/AUTHORS +0 -5
  208. data/packages/core/node_modules/uuid/CHANGELOG.md +0 -119
  209. data/packages/core/node_modules/uuid/README.md +0 -276
  210. data/packages/core/node_modules/uuid/bin/uuid +0 -65
  211. data/packages/core/node_modules/uuid/index.js +0 -8
  212. data/packages/core/node_modules/uuid/lib/bytesToUuid.js +0 -26
  213. data/packages/core/node_modules/uuid/lib/md5-browser.js +0 -216
  214. data/packages/core/node_modules/uuid/lib/md5.js +0 -25
  215. data/packages/core/node_modules/uuid/lib/rng-browser.js +0 -34
  216. data/packages/core/node_modules/uuid/lib/rng.js +0 -8
  217. data/packages/core/node_modules/uuid/lib/sha1-browser.js +0 -89
  218. data/packages/core/node_modules/uuid/lib/sha1.js +0 -25
  219. data/packages/core/node_modules/uuid/lib/v35.js +0 -57
  220. data/packages/core/node_modules/uuid/package.json +0 -49
  221. data/packages/core/node_modules/uuid/v1.js +0 -109
  222. data/packages/core/node_modules/uuid/v3.js +0 -4
  223. data/packages/core/node_modules/uuid/v4.js +0 -29
  224. data/packages/core/node_modules/uuid/v5.js +0 -3
@@ -0,0 +1,11 @@
1
+ // Standard YAML's Core schema.
2
+ // http://www.yaml.org/spec/1.2/spec.html#id2804923
3
+ //
4
+ // NOTE: JS-YAML does not support schema-specific tag resolution restrictions.
5
+ // So, Core schema has no distinctions from JSON schema is JS-YAML.
6
+
7
+
8
+ 'use strict';
9
+
10
+
11
+ module.exports = require('./json');
@@ -0,0 +1,22 @@
1
+ // JS-YAML's default schema for `safeLoad` function.
2
+ // It is not described in the YAML specification.
3
+ //
4
+ // This schema is based on standard YAML's Core schema and includes most of
5
+ // extra types described at YAML tag repository. (http://yaml.org/type/)
6
+
7
+
8
+ 'use strict';
9
+
10
+
11
+ module.exports = require('./core').extend({
12
+ implicit: [
13
+ require('../type/timestamp'),
14
+ require('../type/merge')
15
+ ],
16
+ explicit: [
17
+ require('../type/binary'),
18
+ require('../type/omap'),
19
+ require('../type/pairs'),
20
+ require('../type/set')
21
+ ]
22
+ });
@@ -0,0 +1,17 @@
1
+ // Standard YAML's Failsafe schema.
2
+ // http://www.yaml.org/spec/1.2/spec.html#id2802346
3
+
4
+
5
+ 'use strict';
6
+
7
+
8
+ var Schema = require('../schema');
9
+
10
+
11
+ module.exports = new Schema({
12
+ explicit: [
13
+ require('../type/str'),
14
+ require('../type/seq'),
15
+ require('../type/map')
16
+ ]
17
+ });
@@ -0,0 +1,19 @@
1
+ // Standard YAML's JSON schema.
2
+ // http://www.yaml.org/spec/1.2/spec.html#id2803231
3
+ //
4
+ // NOTE: JS-YAML does not support schema-specific tag resolution restrictions.
5
+ // So, this schema is not such strict as defined in the YAML specification.
6
+ // It allows numbers in binary notaion, use `Null` and `NULL` as `null`, etc.
7
+
8
+
9
+ 'use strict';
10
+
11
+
12
+ module.exports = require('./failsafe').extend({
13
+ implicit: [
14
+ require('../type/null'),
15
+ require('../type/bool'),
16
+ require('../type/int'),
17
+ require('../type/float')
18
+ ]
19
+ });
@@ -0,0 +1,121 @@
1
+ 'use strict';
2
+
3
+ /*eslint-disable max-len*/
4
+
5
+ var YAMLException = require('./exception');
6
+ var Type = require('./type');
7
+
8
+
9
+ function compileList(schema, name) {
10
+ var result = [];
11
+
12
+ schema[name].forEach(function (currentType) {
13
+ var newIndex = result.length;
14
+
15
+ result.forEach(function (previousType, previousIndex) {
16
+ if (previousType.tag === currentType.tag &&
17
+ previousType.kind === currentType.kind &&
18
+ previousType.multi === currentType.multi) {
19
+
20
+ newIndex = previousIndex;
21
+ }
22
+ });
23
+
24
+ result[newIndex] = currentType;
25
+ });
26
+
27
+ return result;
28
+ }
29
+
30
+
31
+ function compileMap(/* lists... */) {
32
+ var result = {
33
+ scalar: {},
34
+ sequence: {},
35
+ mapping: {},
36
+ fallback: {},
37
+ multi: {
38
+ scalar: [],
39
+ sequence: [],
40
+ mapping: [],
41
+ fallback: []
42
+ }
43
+ }, index, length;
44
+
45
+ function collectType(type) {
46
+ if (type.multi) {
47
+ result.multi[type.kind].push(type);
48
+ result.multi['fallback'].push(type);
49
+ } else {
50
+ result[type.kind][type.tag] = result['fallback'][type.tag] = type;
51
+ }
52
+ }
53
+
54
+ for (index = 0, length = arguments.length; index < length; index += 1) {
55
+ arguments[index].forEach(collectType);
56
+ }
57
+ return result;
58
+ }
59
+
60
+
61
+ function Schema(definition) {
62
+ return this.extend(definition);
63
+ }
64
+
65
+
66
+ Schema.prototype.extend = function extend(definition) {
67
+ var implicit = [];
68
+ var explicit = [];
69
+
70
+ if (definition instanceof Type) {
71
+ // Schema.extend(type)
72
+ explicit.push(definition);
73
+
74
+ } else if (Array.isArray(definition)) {
75
+ // Schema.extend([ type1, type2, ... ])
76
+ explicit = explicit.concat(definition);
77
+
78
+ } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {
79
+ // Schema.extend({ explicit: [ type1, type2, ... ], implicit: [ type1, type2, ... ] })
80
+ if (definition.implicit) implicit = implicit.concat(definition.implicit);
81
+ if (definition.explicit) explicit = explicit.concat(definition.explicit);
82
+
83
+ } else {
84
+ throw new YAMLException('Schema.extend argument should be a Type, [ Type ], ' +
85
+ 'or a schema definition ({ implicit: [...], explicit: [...] })');
86
+ }
87
+
88
+ implicit.forEach(function (type) {
89
+ if (!(type instanceof Type)) {
90
+ throw new YAMLException('Specified list of YAML types (or a single Type object) contains a non-Type object.');
91
+ }
92
+
93
+ if (type.loadKind && type.loadKind !== 'scalar') {
94
+ throw new YAMLException('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.');
95
+ }
96
+
97
+ if (type.multi) {
98
+ throw new YAMLException('There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.');
99
+ }
100
+ });
101
+
102
+ explicit.forEach(function (type) {
103
+ if (!(type instanceof Type)) {
104
+ throw new YAMLException('Specified list of YAML types (or a single Type object) contains a non-Type object.');
105
+ }
106
+ });
107
+
108
+ var result = Object.create(Schema.prototype);
109
+
110
+ result.implicit = (this.implicit || []).concat(implicit);
111
+ result.explicit = (this.explicit || []).concat(explicit);
112
+
113
+ result.compiledImplicit = compileList(result, 'implicit');
114
+ result.compiledExplicit = compileList(result, 'explicit');
115
+ result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);
116
+
117
+ return result;
118
+ };
119
+
120
+
121
+ module.exports = Schema;
@@ -0,0 +1,101 @@
1
+ 'use strict';
2
+
3
+
4
+ var common = require('./common');
5
+
6
+
7
+ // get snippet for a single line, respecting maxLength
8
+ function getLine(buffer, lineStart, lineEnd, position, maxLineLength) {
9
+ var head = '';
10
+ var tail = '';
11
+ var maxHalfLength = Math.floor(maxLineLength / 2) - 1;
12
+
13
+ if (position - lineStart > maxHalfLength) {
14
+ head = ' ... ';
15
+ lineStart = position - maxHalfLength + head.length;
16
+ }
17
+
18
+ if (lineEnd - position > maxHalfLength) {
19
+ tail = ' ...';
20
+ lineEnd = position + maxHalfLength - tail.length;
21
+ }
22
+
23
+ return {
24
+ str: head + buffer.slice(lineStart, lineEnd).replace(/\t/g, '→') + tail,
25
+ pos: position - lineStart + head.length // relative position
26
+ };
27
+ }
28
+
29
+
30
+ function padStart(string, max) {
31
+ return common.repeat(' ', max - string.length) + string;
32
+ }
33
+
34
+
35
+ function makeSnippet(mark, options) {
36
+ options = Object.create(options || null);
37
+
38
+ if (!mark.buffer) return null;
39
+
40
+ if (!options.maxLength) options.maxLength = 79;
41
+ if (typeof options.indent !== 'number') options.indent = 1;
42
+ if (typeof options.linesBefore !== 'number') options.linesBefore = 3;
43
+ if (typeof options.linesAfter !== 'number') options.linesAfter = 2;
44
+
45
+ var re = /\r?\n|\r|\0/g;
46
+ var lineStarts = [ 0 ];
47
+ var lineEnds = [];
48
+ var match;
49
+ var foundLineNo = -1;
50
+
51
+ while ((match = re.exec(mark.buffer))) {
52
+ lineEnds.push(match.index);
53
+ lineStarts.push(match.index + match[0].length);
54
+
55
+ if (mark.position <= match.index && foundLineNo < 0) {
56
+ foundLineNo = lineStarts.length - 2;
57
+ }
58
+ }
59
+
60
+ if (foundLineNo < 0) foundLineNo = lineStarts.length - 1;
61
+
62
+ var result = '', i, line;
63
+ var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length;
64
+ var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3);
65
+
66
+ for (i = 1; i <= options.linesBefore; i++) {
67
+ if (foundLineNo - i < 0) break;
68
+ line = getLine(
69
+ mark.buffer,
70
+ lineStarts[foundLineNo - i],
71
+ lineEnds[foundLineNo - i],
72
+ mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]),
73
+ maxLineLength
74
+ );
75
+ result = common.repeat(' ', options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) +
76
+ ' | ' + line.str + '\n' + result;
77
+ }
78
+
79
+ line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);
80
+ result += common.repeat(' ', options.indent) + padStart((mark.line + 1).toString(), lineNoLength) +
81
+ ' | ' + line.str + '\n';
82
+ result += common.repeat('-', options.indent + lineNoLength + 3 + line.pos) + '^' + '\n';
83
+
84
+ for (i = 1; i <= options.linesAfter; i++) {
85
+ if (foundLineNo + i >= lineEnds.length) break;
86
+ line = getLine(
87
+ mark.buffer,
88
+ lineStarts[foundLineNo + i],
89
+ lineEnds[foundLineNo + i],
90
+ mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]),
91
+ maxLineLength
92
+ );
93
+ result += common.repeat(' ', options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) +
94
+ ' | ' + line.str + '\n';
95
+ }
96
+
97
+ return result.replace(/\n$/, '');
98
+ }
99
+
100
+
101
+ module.exports = makeSnippet;
@@ -0,0 +1,125 @@
1
+ 'use strict';
2
+
3
+ /*eslint-disable no-bitwise*/
4
+
5
+
6
+ var Type = require('../type');
7
+
8
+
9
+ // [ 64, 65, 66 ] -> [ padding, CR, LF ]
10
+ var BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r';
11
+
12
+
13
+ function resolveYamlBinary(data) {
14
+ if (data === null) return false;
15
+
16
+ var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;
17
+
18
+ // Convert one by one.
19
+ for (idx = 0; idx < max; idx++) {
20
+ code = map.indexOf(data.charAt(idx));
21
+
22
+ // Skip CR/LF
23
+ if (code > 64) continue;
24
+
25
+ // Fail on illegal characters
26
+ if (code < 0) return false;
27
+
28
+ bitlen += 6;
29
+ }
30
+
31
+ // If there are any bits left, source was corrupted
32
+ return (bitlen % 8) === 0;
33
+ }
34
+
35
+ function constructYamlBinary(data) {
36
+ var idx, tailbits,
37
+ input = data.replace(/[\r\n=]/g, ''), // remove CR/LF & padding to simplify scan
38
+ max = input.length,
39
+ map = BASE64_MAP,
40
+ bits = 0,
41
+ result = [];
42
+
43
+ // Collect by 6*4 bits (3 bytes)
44
+
45
+ for (idx = 0; idx < max; idx++) {
46
+ if ((idx % 4 === 0) && idx) {
47
+ result.push((bits >> 16) & 0xFF);
48
+ result.push((bits >> 8) & 0xFF);
49
+ result.push(bits & 0xFF);
50
+ }
51
+
52
+ bits = (bits << 6) | map.indexOf(input.charAt(idx));
53
+ }
54
+
55
+ // Dump tail
56
+
57
+ tailbits = (max % 4) * 6;
58
+
59
+ if (tailbits === 0) {
60
+ result.push((bits >> 16) & 0xFF);
61
+ result.push((bits >> 8) & 0xFF);
62
+ result.push(bits & 0xFF);
63
+ } else if (tailbits === 18) {
64
+ result.push((bits >> 10) & 0xFF);
65
+ result.push((bits >> 2) & 0xFF);
66
+ } else if (tailbits === 12) {
67
+ result.push((bits >> 4) & 0xFF);
68
+ }
69
+
70
+ return new Uint8Array(result);
71
+ }
72
+
73
+ function representYamlBinary(object /*, style*/) {
74
+ var result = '', bits = 0, idx, tail,
75
+ max = object.length,
76
+ map = BASE64_MAP;
77
+
78
+ // Convert every three bytes to 4 ASCII characters.
79
+
80
+ for (idx = 0; idx < max; idx++) {
81
+ if ((idx % 3 === 0) && idx) {
82
+ result += map[(bits >> 18) & 0x3F];
83
+ result += map[(bits >> 12) & 0x3F];
84
+ result += map[(bits >> 6) & 0x3F];
85
+ result += map[bits & 0x3F];
86
+ }
87
+
88
+ bits = (bits << 8) + object[idx];
89
+ }
90
+
91
+ // Dump tail
92
+
93
+ tail = max % 3;
94
+
95
+ if (tail === 0) {
96
+ result += map[(bits >> 18) & 0x3F];
97
+ result += map[(bits >> 12) & 0x3F];
98
+ result += map[(bits >> 6) & 0x3F];
99
+ result += map[bits & 0x3F];
100
+ } else if (tail === 2) {
101
+ result += map[(bits >> 10) & 0x3F];
102
+ result += map[(bits >> 4) & 0x3F];
103
+ result += map[(bits << 2) & 0x3F];
104
+ result += map[64];
105
+ } else if (tail === 1) {
106
+ result += map[(bits >> 2) & 0x3F];
107
+ result += map[(bits << 4) & 0x3F];
108
+ result += map[64];
109
+ result += map[64];
110
+ }
111
+
112
+ return result;
113
+ }
114
+
115
+ function isBinary(obj) {
116
+ return Object.prototype.toString.call(obj) === '[object Uint8Array]';
117
+ }
118
+
119
+ module.exports = new Type('tag:yaml.org,2002:binary', {
120
+ kind: 'scalar',
121
+ resolve: resolveYamlBinary,
122
+ construct: constructYamlBinary,
123
+ predicate: isBinary,
124
+ represent: representYamlBinary
125
+ });
@@ -0,0 +1,35 @@
1
+ 'use strict';
2
+
3
+ var Type = require('../type');
4
+
5
+ function resolveYamlBoolean(data) {
6
+ if (data === null) return false;
7
+
8
+ var max = data.length;
9
+
10
+ return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||
11
+ (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));
12
+ }
13
+
14
+ function constructYamlBoolean(data) {
15
+ return data === 'true' ||
16
+ data === 'True' ||
17
+ data === 'TRUE';
18
+ }
19
+
20
+ function isBoolean(object) {
21
+ return Object.prototype.toString.call(object) === '[object Boolean]';
22
+ }
23
+
24
+ module.exports = new Type('tag:yaml.org,2002:bool', {
25
+ kind: 'scalar',
26
+ resolve: resolveYamlBoolean,
27
+ construct: constructYamlBoolean,
28
+ predicate: isBoolean,
29
+ represent: {
30
+ lowercase: function (object) { return object ? 'true' : 'false'; },
31
+ uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },
32
+ camelcase: function (object) { return object ? 'True' : 'False'; }
33
+ },
34
+ defaultStyle: 'lowercase'
35
+ });
@@ -0,0 +1,97 @@
1
+ 'use strict';
2
+
3
+ var common = require('../common');
4
+ var Type = require('../type');
5
+
6
+ var YAML_FLOAT_PATTERN = new RegExp(
7
+ // 2.5e4, 2.5 and integers
8
+ '^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' +
9
+ // .2e4, .2
10
+ // special case, seems not from spec
11
+ '|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' +
12
+ // .inf
13
+ '|[-+]?\\.(?:inf|Inf|INF)' +
14
+ // .nan
15
+ '|\\.(?:nan|NaN|NAN))$');
16
+
17
+ function resolveYamlFloat(data) {
18
+ if (data === null) return false;
19
+
20
+ if (!YAML_FLOAT_PATTERN.test(data) ||
21
+ // Quick hack to not allow integers end with `_`
22
+ // Probably should update regexp & check speed
23
+ data[data.length - 1] === '_') {
24
+ return false;
25
+ }
26
+
27
+ return true;
28
+ }
29
+
30
+ function constructYamlFloat(data) {
31
+ var value, sign;
32
+
33
+ value = data.replace(/_/g, '').toLowerCase();
34
+ sign = value[0] === '-' ? -1 : 1;
35
+
36
+ if ('+-'.indexOf(value[0]) >= 0) {
37
+ value = value.slice(1);
38
+ }
39
+
40
+ if (value === '.inf') {
41
+ return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;
42
+
43
+ } else if (value === '.nan') {
44
+ return NaN;
45
+ }
46
+ return sign * parseFloat(value, 10);
47
+ }
48
+
49
+
50
+ var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;
51
+
52
+ function representYamlFloat(object, style) {
53
+ var res;
54
+
55
+ if (isNaN(object)) {
56
+ switch (style) {
57
+ case 'lowercase': return '.nan';
58
+ case 'uppercase': return '.NAN';
59
+ case 'camelcase': return '.NaN';
60
+ }
61
+ } else if (Number.POSITIVE_INFINITY === object) {
62
+ switch (style) {
63
+ case 'lowercase': return '.inf';
64
+ case 'uppercase': return '.INF';
65
+ case 'camelcase': return '.Inf';
66
+ }
67
+ } else if (Number.NEGATIVE_INFINITY === object) {
68
+ switch (style) {
69
+ case 'lowercase': return '-.inf';
70
+ case 'uppercase': return '-.INF';
71
+ case 'camelcase': return '-.Inf';
72
+ }
73
+ } else if (common.isNegativeZero(object)) {
74
+ return '-0.0';
75
+ }
76
+
77
+ res = object.toString(10);
78
+
79
+ // JS stringifier can build scientific format without dots: 5e-100,
80
+ // while YAML requres dot: 5.e-100. Fix it with simple hack
81
+
82
+ return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res;
83
+ }
84
+
85
+ function isFloat(object) {
86
+ return (Object.prototype.toString.call(object) === '[object Number]') &&
87
+ (object % 1 !== 0 || common.isNegativeZero(object));
88
+ }
89
+
90
+ module.exports = new Type('tag:yaml.org,2002:float', {
91
+ kind: 'scalar',
92
+ resolve: resolveYamlFloat,
93
+ construct: constructYamlFloat,
94
+ predicate: isFloat,
95
+ represent: representYamlFloat,
96
+ defaultStyle: 'lowercase'
97
+ });