smock 0.1.217 → 0.1.218

Sign up to get free protection for your applications and to get access to all the features.
Files changed (315) hide show
  1. data/Gemfile.lock +1 -1
  2. data/app/assets/javascripts/modules/category_dropdown.coffee +0 -1
  3. data/examples/pages/homepage.html +1 -0
  4. data/node_modules/exports-loader/.npmignore +1 -0
  5. data/node_modules/exports-loader/README.md +18 -0
  6. data/node_modules/exports-loader/index.js +36 -0
  7. data/node_modules/exports-loader/node_modules/loader-utils/.npmignore +1 -0
  8. data/node_modules/exports-loader/node_modules/loader-utils/README.md +129 -0
  9. data/node_modules/exports-loader/node_modules/loader-utils/index.js +229 -0
  10. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/.bin/json5 +41 -0
  11. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/.npmignore +0 -0
  12. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/LICENCE +23 -0
  13. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/README.md +214 -0
  14. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/big.js +1026 -0
  15. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/big.min.js +1 -0
  16. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/doc/bigAPI.html +1026 -0
  17. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/package.json +61 -0
  18. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/perf/big-vs-bigdecimal.html +678 -0
  19. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/perf/bigtime.js +324 -0
  20. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_GWT/BigDecTest.class +0 -0
  21. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_GWT/BigDecTest.java +60 -0
  22. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_GWT/LICENCE.txt +205 -0
  23. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_GWT/bigdecimal.js +592 -0
  24. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_GWT/bugs.js +53 -0
  25. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_ICU4J/BigDecimal-all-last.js +5724 -0
  26. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_ICU4J/BigDecimal-all-last.min.js +61 -0
  27. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_ICU4J/LICENCE.txt +30 -0
  28. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/abs.js +555 -0
  29. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/browser/big-vs-number.html +249 -0
  30. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/browser/every-test.html +66 -0
  31. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/browser/single-test.html +26 -0
  32. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/cmp.js +4305 -0
  33. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/div.js +9978 -0
  34. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/every-test.js +31 -0
  35. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/minus.js +1793 -0
  36. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/mod.js +1838 -0
  37. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/plus.js +1916 -0
  38. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/pow.js +1233 -0
  39. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/round.js +5173 -0
  40. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/sqrt.js +788 -0
  41. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/times.js +2159 -0
  42. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/toExponential.js +472 -0
  43. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/toFixed.js +1030 -0
  44. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/toPrecision.js +508 -0
  45. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/toString.js +1068 -0
  46. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/.npmignore +4 -0
  47. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/CHANGELOG.md +56 -0
  48. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/Makefile +27 -0
  49. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/README.md +173 -0
  50. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/lib/cli.js +41 -0
  51. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/lib/json5.js +462 -0
  52. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/lib/require.js +18 -0
  53. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/package.json +66 -0
  54. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/package.json5 +24 -0
  55. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/arrays/empty-array.json +1 -0
  56. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/arrays/leading-comma-array.js +3 -0
  57. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/arrays/lone-trailing-comma-array.js +3 -0
  58. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/arrays/no-comma-array.txt +4 -0
  59. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/arrays/regular-array.json +5 -0
  60. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/arrays/trailing-comma-array.json5 +3 -0
  61. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/block-comment-following-array-element.json5 +6 -0
  62. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/block-comment-following-top-level-value.json5 +5 -0
  63. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/block-comment-in-string.json +1 -0
  64. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/block-comment-preceding-top-level-value.json5 +5 -0
  65. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/block-comment-with-asterisks.json5 +7 -0
  66. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/inline-comment-following-array-element.json5 +3 -0
  67. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/inline-comment-following-top-level-value.json5 +1 -0
  68. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/inline-comment-in-string.json +1 -0
  69. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/inline-comment-preceding-top-level-value.json5 +2 -0
  70. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/top-level-block-comment.txt +4 -0
  71. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/top-level-inline-comment.txt +1 -0
  72. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/unterminated-block-comment.txt +5 -0
  73. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/misc/empty.txt +0 -0
  74. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/misc/npm-package.json +106 -0
  75. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/misc/npm-package.json5 +106 -0
  76. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/misc/readme-example.json5 +23 -0
  77. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/decimal-literal-with-exponent.json +1 -0
  78. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/decimal-literal-with-negative-exponent.json +1 -0
  79. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/decimal-literal.json +1 -0
  80. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/hexadecimal-literal-with-lowercase-letter.json5 +1 -0
  81. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/hexadecimal-literal-with-no-digits.txt +1 -0
  82. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/hexadecimal-literal-with-uppercase-x.json5 +1 -0
  83. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/hexadecimal-literal.json5 +1 -0
  84. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/leading-decimal-point.json5 +1 -0
  85. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/negative-decimal-literal.json +1 -0
  86. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/negative-hexadecimal-literal.json5 +1 -0
  87. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/negative-leading-decimal-point.json5 +1 -0
  88. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/noctal-literal-with-octal-digit-after-leading-zero.js +1 -0
  89. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/noctal-literal.js +1 -0
  90. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/octal-literal.txt +1 -0
  91. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/trailing-decimal-point-with-exponent.js +1 -0
  92. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/trailing-decimal-point.js +1 -0
  93. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/zero-literal.json +1 -0
  94. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/empty-object.json +1 -0
  95. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/illegal-unquoted-key-number.txt +3 -0
  96. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/illegal-unquoted-key-symbol.txt +3 -0
  97. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/leading-comma-object.txt +3 -0
  98. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/lone-trailing-comma-object.txt +3 -0
  99. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/no-comma-object.txt +4 -0
  100. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/reserved-unquoted-key.json5 +3 -0
  101. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/single-quoted-key.json5 +3 -0
  102. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/trailing-comma-object.json5 +3 -0
  103. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/unquoted-keys.json5 +8 -0
  104. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/strings/escaped-single-quoted-string.json5 +1 -0
  105. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/strings/multi-line-string.json5 +2 -0
  106. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/strings/single-quoted-string.json5 +1 -0
  107. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/todo/unicode-escaped-unquoted-key.json5 +3 -0
  108. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/todo/unicode-unquoted-key.json5 +3 -0
  109. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse.js +74 -0
  110. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/readme.md +23 -0
  111. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/require.js +18 -0
  112. data/node_modules/exports-loader/node_modules/loader-utils/package.json +54 -0
  113. data/node_modules/exports-loader/node_modules/loader-utils/test/index.js +62 -0
  114. data/node_modules/exports-loader/node_modules/source-map/.npmignore +2 -0
  115. data/node_modules/exports-loader/node_modules/source-map/.travis.yml +4 -0
  116. data/node_modules/exports-loader/node_modules/source-map/CHANGELOG.md +194 -0
  117. data/node_modules/exports-loader/node_modules/source-map/LICENSE +28 -0
  118. data/node_modules/exports-loader/node_modules/source-map/Makefile.dryice.js +166 -0
  119. data/node_modules/exports-loader/node_modules/source-map/README.md +475 -0
  120. data/node_modules/exports-loader/node_modules/source-map/build/assert-shim.js +56 -0
  121. data/node_modules/exports-loader/node_modules/source-map/build/mini-require.js +152 -0
  122. data/node_modules/exports-loader/node_modules/source-map/build/prefix-source-map.jsm +20 -0
  123. data/node_modules/exports-loader/node_modules/source-map/build/prefix-utils.jsm +18 -0
  124. data/node_modules/exports-loader/node_modules/source-map/build/suffix-browser.js +8 -0
  125. data/node_modules/exports-loader/node_modules/source-map/build/suffix-source-map.jsm +6 -0
  126. data/node_modules/exports-loader/node_modules/source-map/build/suffix-utils.jsm +21 -0
  127. data/node_modules/exports-loader/node_modules/source-map/build/test-prefix.js +8 -0
  128. data/node_modules/exports-loader/node_modules/source-map/build/test-suffix.js +3 -0
  129. data/node_modules/exports-loader/node_modules/source-map/lib/source-map.js +8 -0
  130. data/node_modules/exports-loader/node_modules/source-map/lib/source-map/array-set.js +97 -0
  131. data/node_modules/exports-loader/node_modules/source-map/lib/source-map/base64-vlq.js +142 -0
  132. data/node_modules/exports-loader/node_modules/source-map/lib/source-map/base64.js +42 -0
  133. data/node_modules/exports-loader/node_modules/source-map/lib/source-map/binary-search.js +80 -0
  134. data/node_modules/exports-loader/node_modules/source-map/lib/source-map/mapping-list.js +86 -0
  135. data/node_modules/exports-loader/node_modules/source-map/lib/source-map/source-map-consumer.js +575 -0
  136. data/node_modules/exports-loader/node_modules/source-map/lib/source-map/source-map-generator.js +400 -0
  137. data/node_modules/exports-loader/node_modules/source-map/lib/source-map/source-node.js +414 -0
  138. data/node_modules/exports-loader/node_modules/source-map/lib/source-map/util.js +319 -0
  139. data/node_modules/exports-loader/node_modules/source-map/node_modules/amdefine/LICENSE +58 -0
  140. data/node_modules/exports-loader/node_modules/source-map/node_modules/amdefine/README.md +171 -0
  141. data/node_modules/exports-loader/node_modules/source-map/node_modules/amdefine/amdefine.js +299 -0
  142. data/node_modules/exports-loader/node_modules/source-map/node_modules/amdefine/intercept.js +36 -0
  143. data/node_modules/exports-loader/node_modules/source-map/node_modules/amdefine/package.json +37 -0
  144. data/node_modules/exports-loader/node_modules/source-map/package.json +186 -0
  145. data/node_modules/exports-loader/node_modules/source-map/test/run-tests.js +62 -0
  146. data/node_modules/exports-loader/node_modules/source-map/test/source-map/test-api.js +26 -0
  147. data/node_modules/exports-loader/node_modules/source-map/test/source-map/test-array-set.js +104 -0
  148. data/node_modules/exports-loader/node_modules/source-map/test/source-map/test-base64-vlq.js +23 -0
  149. data/node_modules/exports-loader/node_modules/source-map/test/source-map/test-base64.js +35 -0
  150. data/node_modules/exports-loader/node_modules/source-map/test/source-map/test-binary-search.js +54 -0
  151. data/node_modules/exports-loader/node_modules/source-map/test/source-map/test-dog-fooding.js +84 -0
  152. data/node_modules/exports-loader/node_modules/source-map/test/source-map/test-source-map-consumer.js +702 -0
  153. data/node_modules/exports-loader/node_modules/source-map/test/source-map/test-source-map-generator.js +679 -0
  154. data/node_modules/exports-loader/node_modules/source-map/test/source-map/test-source-node.js +612 -0
  155. data/node_modules/exports-loader/node_modules/source-map/test/source-map/test-util.js +216 -0
  156. data/node_modules/exports-loader/node_modules/source-map/test/source-map/util.js +192 -0
  157. data/node_modules/exports-loader/package.json +46 -0
  158. data/node_modules/imports-loader/.npmignore +1 -0
  159. data/node_modules/imports-loader/README.md +17 -0
  160. data/node_modules/imports-loader/index.js +46 -0
  161. data/node_modules/imports-loader/node_modules/loader-utils/.npmignore +1 -0
  162. data/node_modules/imports-loader/node_modules/loader-utils/README.md +129 -0
  163. data/node_modules/imports-loader/node_modules/loader-utils/index.js +229 -0
  164. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/.bin/json5 +41 -0
  165. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/.npmignore +0 -0
  166. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/LICENCE +23 -0
  167. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/README.md +214 -0
  168. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/big.js +1026 -0
  169. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/big.min.js +1 -0
  170. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/doc/bigAPI.html +1026 -0
  171. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/package.json +61 -0
  172. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/perf/big-vs-bigdecimal.html +678 -0
  173. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/perf/bigtime.js +324 -0
  174. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_GWT/BigDecTest.class +0 -0
  175. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_GWT/BigDecTest.java +60 -0
  176. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_GWT/LICENCE.txt +205 -0
  177. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_GWT/bigdecimal.js +592 -0
  178. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_GWT/bugs.js +53 -0
  179. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_ICU4J/BigDecimal-all-last.js +5724 -0
  180. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_ICU4J/BigDecimal-all-last.min.js +61 -0
  181. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_ICU4J/LICENCE.txt +30 -0
  182. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/abs.js +555 -0
  183. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/browser/big-vs-number.html +249 -0
  184. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/browser/every-test.html +66 -0
  185. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/browser/single-test.html +26 -0
  186. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/cmp.js +4305 -0
  187. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/div.js +9978 -0
  188. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/every-test.js +31 -0
  189. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/minus.js +1793 -0
  190. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/mod.js +1838 -0
  191. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/plus.js +1916 -0
  192. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/pow.js +1233 -0
  193. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/round.js +5173 -0
  194. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/sqrt.js +788 -0
  195. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/times.js +2159 -0
  196. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/toExponential.js +472 -0
  197. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/toFixed.js +1030 -0
  198. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/toPrecision.js +508 -0
  199. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/toString.js +1068 -0
  200. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/.npmignore +4 -0
  201. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/CHANGELOG.md +56 -0
  202. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/Makefile +27 -0
  203. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/README.md +173 -0
  204. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/lib/cli.js +41 -0
  205. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/lib/json5.js +462 -0
  206. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/lib/require.js +18 -0
  207. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/package.json +66 -0
  208. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/package.json5 +24 -0
  209. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/arrays/empty-array.json +1 -0
  210. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/arrays/leading-comma-array.js +3 -0
  211. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/arrays/lone-trailing-comma-array.js +3 -0
  212. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/arrays/no-comma-array.txt +4 -0
  213. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/arrays/regular-array.json +5 -0
  214. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/arrays/trailing-comma-array.json5 +3 -0
  215. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/block-comment-following-array-element.json5 +6 -0
  216. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/block-comment-following-top-level-value.json5 +5 -0
  217. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/block-comment-in-string.json +1 -0
  218. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/block-comment-preceding-top-level-value.json5 +5 -0
  219. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/block-comment-with-asterisks.json5 +7 -0
  220. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/inline-comment-following-array-element.json5 +3 -0
  221. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/inline-comment-following-top-level-value.json5 +1 -0
  222. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/inline-comment-in-string.json +1 -0
  223. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/inline-comment-preceding-top-level-value.json5 +2 -0
  224. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/top-level-block-comment.txt +4 -0
  225. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/top-level-inline-comment.txt +1 -0
  226. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/unterminated-block-comment.txt +5 -0
  227. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/misc/empty.txt +0 -0
  228. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/misc/npm-package.json +106 -0
  229. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/misc/npm-package.json5 +106 -0
  230. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/misc/readme-example.json5 +23 -0
  231. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/decimal-literal-with-exponent.json +1 -0
  232. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/decimal-literal-with-negative-exponent.json +1 -0
  233. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/decimal-literal.json +1 -0
  234. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/hexadecimal-literal-with-lowercase-letter.json5 +1 -0
  235. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/hexadecimal-literal-with-no-digits.txt +1 -0
  236. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/hexadecimal-literal-with-uppercase-x.json5 +1 -0
  237. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/hexadecimal-literal.json5 +1 -0
  238. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/leading-decimal-point.json5 +1 -0
  239. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/negative-decimal-literal.json +1 -0
  240. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/negative-hexadecimal-literal.json5 +1 -0
  241. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/negative-leading-decimal-point.json5 +1 -0
  242. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/noctal-literal-with-octal-digit-after-leading-zero.js +1 -0
  243. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/noctal-literal.js +1 -0
  244. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/octal-literal.txt +1 -0
  245. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/trailing-decimal-point-with-exponent.js +1 -0
  246. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/trailing-decimal-point.js +1 -0
  247. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/zero-literal.json +1 -0
  248. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/empty-object.json +1 -0
  249. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/illegal-unquoted-key-number.txt +3 -0
  250. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/illegal-unquoted-key-symbol.txt +3 -0
  251. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/leading-comma-object.txt +3 -0
  252. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/lone-trailing-comma-object.txt +3 -0
  253. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/no-comma-object.txt +4 -0
  254. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/reserved-unquoted-key.json5 +3 -0
  255. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/single-quoted-key.json5 +3 -0
  256. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/trailing-comma-object.json5 +3 -0
  257. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/unquoted-keys.json5 +8 -0
  258. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/strings/escaped-single-quoted-string.json5 +1 -0
  259. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/strings/multi-line-string.json5 +2 -0
  260. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/strings/single-quoted-string.json5 +1 -0
  261. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/todo/unicode-escaped-unquoted-key.json5 +3 -0
  262. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/todo/unicode-unquoted-key.json5 +3 -0
  263. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse.js +74 -0
  264. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/readme.md +23 -0
  265. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/require.js +18 -0
  266. data/node_modules/imports-loader/node_modules/loader-utils/package.json +53 -0
  267. data/node_modules/imports-loader/node_modules/loader-utils/test/index.js +62 -0
  268. data/node_modules/imports-loader/node_modules/source-map/.npmignore +2 -0
  269. data/node_modules/imports-loader/node_modules/source-map/.travis.yml +4 -0
  270. data/node_modules/imports-loader/node_modules/source-map/CHANGELOG.md +194 -0
  271. data/node_modules/imports-loader/node_modules/source-map/LICENSE +28 -0
  272. data/node_modules/imports-loader/node_modules/source-map/Makefile.dryice.js +166 -0
  273. data/node_modules/imports-loader/node_modules/source-map/README.md +475 -0
  274. data/node_modules/imports-loader/node_modules/source-map/build/assert-shim.js +56 -0
  275. data/node_modules/imports-loader/node_modules/source-map/build/mini-require.js +152 -0
  276. data/node_modules/imports-loader/node_modules/source-map/build/prefix-source-map.jsm +20 -0
  277. data/node_modules/imports-loader/node_modules/source-map/build/prefix-utils.jsm +18 -0
  278. data/node_modules/imports-loader/node_modules/source-map/build/suffix-browser.js +8 -0
  279. data/node_modules/imports-loader/node_modules/source-map/build/suffix-source-map.jsm +6 -0
  280. data/node_modules/imports-loader/node_modules/source-map/build/suffix-utils.jsm +21 -0
  281. data/node_modules/imports-loader/node_modules/source-map/build/test-prefix.js +8 -0
  282. data/node_modules/imports-loader/node_modules/source-map/build/test-suffix.js +3 -0
  283. data/node_modules/imports-loader/node_modules/source-map/lib/source-map.js +8 -0
  284. data/node_modules/imports-loader/node_modules/source-map/lib/source-map/array-set.js +97 -0
  285. data/node_modules/imports-loader/node_modules/source-map/lib/source-map/base64-vlq.js +142 -0
  286. data/node_modules/imports-loader/node_modules/source-map/lib/source-map/base64.js +42 -0
  287. data/node_modules/imports-loader/node_modules/source-map/lib/source-map/binary-search.js +80 -0
  288. data/node_modules/imports-loader/node_modules/source-map/lib/source-map/mapping-list.js +86 -0
  289. data/node_modules/imports-loader/node_modules/source-map/lib/source-map/source-map-consumer.js +575 -0
  290. data/node_modules/imports-loader/node_modules/source-map/lib/source-map/source-map-generator.js +400 -0
  291. data/node_modules/imports-loader/node_modules/source-map/lib/source-map/source-node.js +414 -0
  292. data/node_modules/imports-loader/node_modules/source-map/lib/source-map/util.js +319 -0
  293. data/node_modules/imports-loader/node_modules/source-map/node_modules/amdefine/LICENSE +58 -0
  294. data/node_modules/imports-loader/node_modules/source-map/node_modules/amdefine/README.md +171 -0
  295. data/node_modules/imports-loader/node_modules/source-map/node_modules/amdefine/amdefine.js +299 -0
  296. data/node_modules/imports-loader/node_modules/source-map/node_modules/amdefine/intercept.js +36 -0
  297. data/node_modules/imports-loader/node_modules/source-map/node_modules/amdefine/package.json +37 -0
  298. data/node_modules/imports-loader/node_modules/source-map/package.json +186 -0
  299. data/node_modules/imports-loader/node_modules/source-map/test/run-tests.js +62 -0
  300. data/node_modules/imports-loader/node_modules/source-map/test/source-map/test-api.js +26 -0
  301. data/node_modules/imports-loader/node_modules/source-map/test/source-map/test-array-set.js +104 -0
  302. data/node_modules/imports-loader/node_modules/source-map/test/source-map/test-base64-vlq.js +23 -0
  303. data/node_modules/imports-loader/node_modules/source-map/test/source-map/test-base64.js +35 -0
  304. data/node_modules/imports-loader/node_modules/source-map/test/source-map/test-binary-search.js +54 -0
  305. data/node_modules/imports-loader/node_modules/source-map/test/source-map/test-dog-fooding.js +84 -0
  306. data/node_modules/imports-loader/node_modules/source-map/test/source-map/test-source-map-consumer.js +702 -0
  307. data/node_modules/imports-loader/node_modules/source-map/test/source-map/test-source-map-generator.js +679 -0
  308. data/node_modules/imports-loader/node_modules/source-map/test/source-map/test-source-node.js +612 -0
  309. data/node_modules/imports-loader/node_modules/source-map/test/source-map/test-util.js +216 -0
  310. data/node_modules/imports-loader/node_modules/source-map/test/source-map/util.js +192 -0
  311. data/node_modules/imports-loader/package.json +46 -0
  312. data/package.json +4 -2
  313. data/webpack.config.js +3 -6
  314. metadata +312 -5
  315. data/app/assets/javascripts/vendor/jquery.js +0 -10346
@@ -0,0 +1,42 @@
1
+ /* -*- Mode: js; js-indent-level: 2; -*- */
2
+ /*
3
+ * Copyright 2011 Mozilla Foundation and contributors
4
+ * Licensed under the New BSD license. See LICENSE or:
5
+ * http://opensource.org/licenses/BSD-3-Clause
6
+ */
7
+ if (typeof define !== 'function') {
8
+ var define = require('amdefine')(module, require);
9
+ }
10
+ define(function (require, exports, module) {
11
+
12
+ var charToIntMap = {};
13
+ var intToCharMap = {};
14
+
15
+ 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
16
+ .split('')
17
+ .forEach(function (ch, index) {
18
+ charToIntMap[ch] = index;
19
+ intToCharMap[index] = ch;
20
+ });
21
+
22
+ /**
23
+ * Encode an integer in the range of 0 to 63 to a single base 64 digit.
24
+ */
25
+ exports.encode = function base64_encode(aNumber) {
26
+ if (aNumber in intToCharMap) {
27
+ return intToCharMap[aNumber];
28
+ }
29
+ throw new TypeError("Must be between 0 and 63: " + aNumber);
30
+ };
31
+
32
+ /**
33
+ * Decode a single base 64 digit to an integer.
34
+ */
35
+ exports.decode = function base64_decode(aChar) {
36
+ if (aChar in charToIntMap) {
37
+ return charToIntMap[aChar];
38
+ }
39
+ throw new TypeError("Not a valid base 64 digit: " + aChar);
40
+ };
41
+
42
+ });
@@ -0,0 +1,80 @@
1
+ /* -*- Mode: js; js-indent-level: 2; -*- */
2
+ /*
3
+ * Copyright 2011 Mozilla Foundation and contributors
4
+ * Licensed under the New BSD license. See LICENSE or:
5
+ * http://opensource.org/licenses/BSD-3-Clause
6
+ */
7
+ if (typeof define !== 'function') {
8
+ var define = require('amdefine')(module, require);
9
+ }
10
+ define(function (require, exports, module) {
11
+
12
+ /**
13
+ * Recursive implementation of binary search.
14
+ *
15
+ * @param aLow Indices here and lower do not contain the needle.
16
+ * @param aHigh Indices here and higher do not contain the needle.
17
+ * @param aNeedle The element being searched for.
18
+ * @param aHaystack The non-empty array being searched.
19
+ * @param aCompare Function which takes two elements and returns -1, 0, or 1.
20
+ */
21
+ function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare) {
22
+ // This function terminates when one of the following is true:
23
+ //
24
+ // 1. We find the exact element we are looking for.
25
+ //
26
+ // 2. We did not find the exact element, but we can return the index of
27
+ // the next closest element that is less than that element.
28
+ //
29
+ // 3. We did not find the exact element, and there is no next-closest
30
+ // element which is less than the one we are searching for, so we
31
+ // return -1.
32
+ var mid = Math.floor((aHigh - aLow) / 2) + aLow;
33
+ var cmp = aCompare(aNeedle, aHaystack[mid], true);
34
+ if (cmp === 0) {
35
+ // Found the element we are looking for.
36
+ return mid;
37
+ }
38
+ else if (cmp > 0) {
39
+ // aHaystack[mid] is greater than our needle.
40
+ if (aHigh - mid > 1) {
41
+ // The element is in the upper half.
42
+ return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare);
43
+ }
44
+ // We did not find an exact match, return the next closest one
45
+ // (termination case 2).
46
+ return mid;
47
+ }
48
+ else {
49
+ // aHaystack[mid] is less than our needle.
50
+ if (mid - aLow > 1) {
51
+ // The element is in the lower half.
52
+ return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare);
53
+ }
54
+ // The exact needle element was not found in this haystack. Determine if
55
+ // we are in termination case (2) or (3) and return the appropriate thing.
56
+ return aLow < 0 ? -1 : aLow;
57
+ }
58
+ }
59
+
60
+ /**
61
+ * This is an implementation of binary search which will always try and return
62
+ * the index of next lowest value checked if there is no exact hit. This is
63
+ * because mappings between original and generated line/col pairs are single
64
+ * points, and there is an implicit region between each of them, so a miss
65
+ * just means that you aren't on the very start of a region.
66
+ *
67
+ * @param aNeedle The element you are looking for.
68
+ * @param aHaystack The array that is being searched.
69
+ * @param aCompare A function which takes the needle and an element in the
70
+ * array and returns -1, 0, or 1 depending on whether the needle is less
71
+ * than, equal to, or greater than the element, respectively.
72
+ */
73
+ exports.search = function search(aNeedle, aHaystack, aCompare) {
74
+ if (aHaystack.length === 0) {
75
+ return -1;
76
+ }
77
+ return recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack, aCompare)
78
+ };
79
+
80
+ });
@@ -0,0 +1,86 @@
1
+ /* -*- Mode: js; js-indent-level: 2; -*- */
2
+ /*
3
+ * Copyright 2014 Mozilla Foundation and contributors
4
+ * Licensed under the New BSD license. See LICENSE or:
5
+ * http://opensource.org/licenses/BSD-3-Clause
6
+ */
7
+ if (typeof define !== 'function') {
8
+ var define = require('amdefine')(module, require);
9
+ }
10
+ define(function (require, exports, module) {
11
+
12
+ var util = require('./util');
13
+
14
+ /**
15
+ * Determine whether mappingB is after mappingA with respect to generated
16
+ * position.
17
+ */
18
+ function generatedPositionAfter(mappingA, mappingB) {
19
+ // Optimized for most common case
20
+ var lineA = mappingA.generatedLine;
21
+ var lineB = mappingB.generatedLine;
22
+ var columnA = mappingA.generatedColumn;
23
+ var columnB = mappingB.generatedColumn;
24
+ return lineB > lineA || lineB == lineA && columnB >= columnA ||
25
+ util.compareByGeneratedPositions(mappingA, mappingB) <= 0;
26
+ }
27
+
28
+ /**
29
+ * A data structure to provide a sorted view of accumulated mappings in a
30
+ * performance conscious manner. It trades a neglibable overhead in general
31
+ * case for a large speedup in case of mappings being added in order.
32
+ */
33
+ function MappingList() {
34
+ this._array = [];
35
+ this._sorted = true;
36
+ // Serves as infimum
37
+ this._last = {generatedLine: -1, generatedColumn: 0};
38
+ }
39
+
40
+ /**
41
+ * Iterate through internal items. This method takes the same arguments that
42
+ * `Array.prototype.forEach` takes.
43
+ *
44
+ * NOTE: The order of the mappings is NOT guaranteed.
45
+ */
46
+ MappingList.prototype.unsortedForEach =
47
+ function MappingList_forEach(aCallback, aThisArg) {
48
+ this._array.forEach(aCallback, aThisArg);
49
+ };
50
+
51
+ /**
52
+ * Add the given source mapping.
53
+ *
54
+ * @param Object aMapping
55
+ */
56
+ MappingList.prototype.add = function MappingList_add(aMapping) {
57
+ var mapping;
58
+ if (generatedPositionAfter(this._last, aMapping)) {
59
+ this._last = aMapping;
60
+ this._array.push(aMapping);
61
+ } else {
62
+ this._sorted = false;
63
+ this._array.push(aMapping);
64
+ }
65
+ };
66
+
67
+ /**
68
+ * Returns the flat, sorted array of mappings. The mappings are sorted by
69
+ * generated position.
70
+ *
71
+ * WARNING: This method returns internal data without copying, for
72
+ * performance. The return value must NOT be mutated, and should be treated as
73
+ * an immutable borrow. If you want to take ownership, you must make your own
74
+ * copy.
75
+ */
76
+ MappingList.prototype.toArray = function MappingList_toArray() {
77
+ if (!this._sorted) {
78
+ this._array.sort(util.compareByGeneratedPositions);
79
+ this._sorted = true;
80
+ }
81
+ return this._array;
82
+ };
83
+
84
+ exports.MappingList = MappingList;
85
+
86
+ });
@@ -0,0 +1,575 @@
1
+ /* -*- Mode: js; js-indent-level: 2; -*- */
2
+ /*
3
+ * Copyright 2011 Mozilla Foundation and contributors
4
+ * Licensed under the New BSD license. See LICENSE or:
5
+ * http://opensource.org/licenses/BSD-3-Clause
6
+ */
7
+ if (typeof define !== 'function') {
8
+ var define = require('amdefine')(module, require);
9
+ }
10
+ define(function (require, exports, module) {
11
+
12
+ var util = require('./util');
13
+ var binarySearch = require('./binary-search');
14
+ var ArraySet = require('./array-set').ArraySet;
15
+ var base64VLQ = require('./base64-vlq');
16
+
17
+ /**
18
+ * A SourceMapConsumer instance represents a parsed source map which we can
19
+ * query for information about the original file positions by giving it a file
20
+ * position in the generated source.
21
+ *
22
+ * The only parameter is the raw source map (either as a JSON string, or
23
+ * already parsed to an object). According to the spec, source maps have the
24
+ * following attributes:
25
+ *
26
+ * - version: Which version of the source map spec this map is following.
27
+ * - sources: An array of URLs to the original source files.
28
+ * - names: An array of identifiers which can be referrenced by individual mappings.
29
+ * - sourceRoot: Optional. The URL root from which all sources are relative.
30
+ * - sourcesContent: Optional. An array of contents of the original source files.
31
+ * - mappings: A string of base64 VLQs which contain the actual mappings.
32
+ * - file: Optional. The generated file this source map is associated with.
33
+ *
34
+ * Here is an example source map, taken from the source map spec[0]:
35
+ *
36
+ * {
37
+ * version : 3,
38
+ * file: "out.js",
39
+ * sourceRoot : "",
40
+ * sources: ["foo.js", "bar.js"],
41
+ * names: ["src", "maps", "are", "fun"],
42
+ * mappings: "AA,AB;;ABCDE;"
43
+ * }
44
+ *
45
+ * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#
46
+ */
47
+ function SourceMapConsumer(aSourceMap) {
48
+ var sourceMap = aSourceMap;
49
+ if (typeof aSourceMap === 'string') {
50
+ sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, ''));
51
+ }
52
+
53
+ var version = util.getArg(sourceMap, 'version');
54
+ var sources = util.getArg(sourceMap, 'sources');
55
+ // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which
56
+ // requires the array) to play nice here.
57
+ var names = util.getArg(sourceMap, 'names', []);
58
+ var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);
59
+ var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);
60
+ var mappings = util.getArg(sourceMap, 'mappings');
61
+ var file = util.getArg(sourceMap, 'file', null);
62
+
63
+ // Once again, Sass deviates from the spec and supplies the version as a
64
+ // string rather than a number, so we use loose equality checking here.
65
+ if (version != this._version) {
66
+ throw new Error('Unsupported version: ' + version);
67
+ }
68
+
69
+ // Some source maps produce relative source paths like "./foo.js" instead of
70
+ // "foo.js". Normalize these first so that future comparisons will succeed.
71
+ // See bugzil.la/1090768.
72
+ sources = sources.map(util.normalize);
73
+
74
+ // Pass `true` below to allow duplicate names and sources. While source maps
75
+ // are intended to be compressed and deduplicated, the TypeScript compiler
76
+ // sometimes generates source maps with duplicates in them. See Github issue
77
+ // #72 and bugzil.la/889492.
78
+ this._names = ArraySet.fromArray(names, true);
79
+ this._sources = ArraySet.fromArray(sources, true);
80
+
81
+ this.sourceRoot = sourceRoot;
82
+ this.sourcesContent = sourcesContent;
83
+ this._mappings = mappings;
84
+ this.file = file;
85
+ }
86
+
87
+ /**
88
+ * Create a SourceMapConsumer from a SourceMapGenerator.
89
+ *
90
+ * @param SourceMapGenerator aSourceMap
91
+ * The source map that will be consumed.
92
+ * @returns SourceMapConsumer
93
+ */
94
+ SourceMapConsumer.fromSourceMap =
95
+ function SourceMapConsumer_fromSourceMap(aSourceMap) {
96
+ var smc = Object.create(SourceMapConsumer.prototype);
97
+
98
+ smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);
99
+ smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);
100
+ smc.sourceRoot = aSourceMap._sourceRoot;
101
+ smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),
102
+ smc.sourceRoot);
103
+ smc.file = aSourceMap._file;
104
+
105
+ smc.__generatedMappings = aSourceMap._mappings.toArray().slice();
106
+ smc.__originalMappings = aSourceMap._mappings.toArray().slice()
107
+ .sort(util.compareByOriginalPositions);
108
+
109
+ return smc;
110
+ };
111
+
112
+ /**
113
+ * The version of the source mapping spec that we are consuming.
114
+ */
115
+ SourceMapConsumer.prototype._version = 3;
116
+
117
+ /**
118
+ * The list of original sources.
119
+ */
120
+ Object.defineProperty(SourceMapConsumer.prototype, 'sources', {
121
+ get: function () {
122
+ return this._sources.toArray().map(function (s) {
123
+ return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;
124
+ }, this);
125
+ }
126
+ });
127
+
128
+ // `__generatedMappings` and `__originalMappings` are arrays that hold the
129
+ // parsed mapping coordinates from the source map's "mappings" attribute. They
130
+ // are lazily instantiated, accessed via the `_generatedMappings` and
131
+ // `_originalMappings` getters respectively, and we only parse the mappings
132
+ // and create these arrays once queried for a source location. We jump through
133
+ // these hoops because there can be many thousands of mappings, and parsing
134
+ // them is expensive, so we only want to do it if we must.
135
+ //
136
+ // Each object in the arrays is of the form:
137
+ //
138
+ // {
139
+ // generatedLine: The line number in the generated code,
140
+ // generatedColumn: The column number in the generated code,
141
+ // source: The path to the original source file that generated this
142
+ // chunk of code,
143
+ // originalLine: The line number in the original source that
144
+ // corresponds to this chunk of generated code,
145
+ // originalColumn: The column number in the original source that
146
+ // corresponds to this chunk of generated code,
147
+ // name: The name of the original symbol which generated this chunk of
148
+ // code.
149
+ // }
150
+ //
151
+ // All properties except for `generatedLine` and `generatedColumn` can be
152
+ // `null`.
153
+ //
154
+ // `_generatedMappings` is ordered by the generated positions.
155
+ //
156
+ // `_originalMappings` is ordered by the original positions.
157
+
158
+ SourceMapConsumer.prototype.__generatedMappings = null;
159
+ Object.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {
160
+ get: function () {
161
+ if (!this.__generatedMappings) {
162
+ this.__generatedMappings = [];
163
+ this.__originalMappings = [];
164
+ this._parseMappings(this._mappings, this.sourceRoot);
165
+ }
166
+
167
+ return this.__generatedMappings;
168
+ }
169
+ });
170
+
171
+ SourceMapConsumer.prototype.__originalMappings = null;
172
+ Object.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {
173
+ get: function () {
174
+ if (!this.__originalMappings) {
175
+ this.__generatedMappings = [];
176
+ this.__originalMappings = [];
177
+ this._parseMappings(this._mappings, this.sourceRoot);
178
+ }
179
+
180
+ return this.__originalMappings;
181
+ }
182
+ });
183
+
184
+ SourceMapConsumer.prototype._nextCharIsMappingSeparator =
185
+ function SourceMapConsumer_nextCharIsMappingSeparator(aStr) {
186
+ var c = aStr.charAt(0);
187
+ return c === ";" || c === ",";
188
+ };
189
+
190
+ /**
191
+ * Parse the mappings in a string in to a data structure which we can easily
192
+ * query (the ordered arrays in the `this.__generatedMappings` and
193
+ * `this.__originalMappings` properties).
194
+ */
195
+ SourceMapConsumer.prototype._parseMappings =
196
+ function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {
197
+ var generatedLine = 1;
198
+ var previousGeneratedColumn = 0;
199
+ var previousOriginalLine = 0;
200
+ var previousOriginalColumn = 0;
201
+ var previousSource = 0;
202
+ var previousName = 0;
203
+ var str = aStr;
204
+ var temp = {};
205
+ var mapping;
206
+
207
+ while (str.length > 0) {
208
+ if (str.charAt(0) === ';') {
209
+ generatedLine++;
210
+ str = str.slice(1);
211
+ previousGeneratedColumn = 0;
212
+ }
213
+ else if (str.charAt(0) === ',') {
214
+ str = str.slice(1);
215
+ }
216
+ else {
217
+ mapping = {};
218
+ mapping.generatedLine = generatedLine;
219
+
220
+ // Generated column.
221
+ base64VLQ.decode(str, temp);
222
+ mapping.generatedColumn = previousGeneratedColumn + temp.value;
223
+ previousGeneratedColumn = mapping.generatedColumn;
224
+ str = temp.rest;
225
+
226
+ if (str.length > 0 && !this._nextCharIsMappingSeparator(str)) {
227
+ // Original source.
228
+ base64VLQ.decode(str, temp);
229
+ mapping.source = this._sources.at(previousSource + temp.value);
230
+ previousSource += temp.value;
231
+ str = temp.rest;
232
+ if (str.length === 0 || this._nextCharIsMappingSeparator(str)) {
233
+ throw new Error('Found a source, but no line and column');
234
+ }
235
+
236
+ // Original line.
237
+ base64VLQ.decode(str, temp);
238
+ mapping.originalLine = previousOriginalLine + temp.value;
239
+ previousOriginalLine = mapping.originalLine;
240
+ // Lines are stored 0-based
241
+ mapping.originalLine += 1;
242
+ str = temp.rest;
243
+ if (str.length === 0 || this._nextCharIsMappingSeparator(str)) {
244
+ throw new Error('Found a source and line, but no column');
245
+ }
246
+
247
+ // Original column.
248
+ base64VLQ.decode(str, temp);
249
+ mapping.originalColumn = previousOriginalColumn + temp.value;
250
+ previousOriginalColumn = mapping.originalColumn;
251
+ str = temp.rest;
252
+
253
+ if (str.length > 0 && !this._nextCharIsMappingSeparator(str)) {
254
+ // Original name.
255
+ base64VLQ.decode(str, temp);
256
+ mapping.name = this._names.at(previousName + temp.value);
257
+ previousName += temp.value;
258
+ str = temp.rest;
259
+ }
260
+ }
261
+
262
+ this.__generatedMappings.push(mapping);
263
+ if (typeof mapping.originalLine === 'number') {
264
+ this.__originalMappings.push(mapping);
265
+ }
266
+ }
267
+ }
268
+
269
+ this.__generatedMappings.sort(util.compareByGeneratedPositions);
270
+ this.__originalMappings.sort(util.compareByOriginalPositions);
271
+ };
272
+
273
+ /**
274
+ * Find the mapping that best matches the hypothetical "needle" mapping that
275
+ * we are searching for in the given "haystack" of mappings.
276
+ */
277
+ SourceMapConsumer.prototype._findMapping =
278
+ function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,
279
+ aColumnName, aComparator) {
280
+ // To return the position we are searching for, we must first find the
281
+ // mapping for the given position and then return the opposite position it
282
+ // points to. Because the mappings are sorted, we can use binary search to
283
+ // find the best mapping.
284
+
285
+ if (aNeedle[aLineName] <= 0) {
286
+ throw new TypeError('Line must be greater than or equal to 1, got '
287
+ + aNeedle[aLineName]);
288
+ }
289
+ if (aNeedle[aColumnName] < 0) {
290
+ throw new TypeError('Column must be greater than or equal to 0, got '
291
+ + aNeedle[aColumnName]);
292
+ }
293
+
294
+ return binarySearch.search(aNeedle, aMappings, aComparator);
295
+ };
296
+
297
+ /**
298
+ * Compute the last column for each generated mapping. The last column is
299
+ * inclusive.
300
+ */
301
+ SourceMapConsumer.prototype.computeColumnSpans =
302
+ function SourceMapConsumer_computeColumnSpans() {
303
+ for (var index = 0; index < this._generatedMappings.length; ++index) {
304
+ var mapping = this._generatedMappings[index];
305
+
306
+ // Mappings do not contain a field for the last generated columnt. We
307
+ // can come up with an optimistic estimate, however, by assuming that
308
+ // mappings are contiguous (i.e. given two consecutive mappings, the
309
+ // first mapping ends where the second one starts).
310
+ if (index + 1 < this._generatedMappings.length) {
311
+ var nextMapping = this._generatedMappings[index + 1];
312
+
313
+ if (mapping.generatedLine === nextMapping.generatedLine) {
314
+ mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;
315
+ continue;
316
+ }
317
+ }
318
+
319
+ // The last mapping for each line spans the entire line.
320
+ mapping.lastGeneratedColumn = Infinity;
321
+ }
322
+ };
323
+
324
+ /**
325
+ * Returns the original source, line, and column information for the generated
326
+ * source's line and column positions provided. The only argument is an object
327
+ * with the following properties:
328
+ *
329
+ * - line: The line number in the generated source.
330
+ * - column: The column number in the generated source.
331
+ *
332
+ * and an object is returned with the following properties:
333
+ *
334
+ * - source: The original source file, or null.
335
+ * - line: The line number in the original source, or null.
336
+ * - column: The column number in the original source, or null.
337
+ * - name: The original identifier, or null.
338
+ */
339
+ SourceMapConsumer.prototype.originalPositionFor =
340
+ function SourceMapConsumer_originalPositionFor(aArgs) {
341
+ var needle = {
342
+ generatedLine: util.getArg(aArgs, 'line'),
343
+ generatedColumn: util.getArg(aArgs, 'column')
344
+ };
345
+
346
+ var index = this._findMapping(needle,
347
+ this._generatedMappings,
348
+ "generatedLine",
349
+ "generatedColumn",
350
+ util.compareByGeneratedPositions);
351
+
352
+ if (index >= 0) {
353
+ var mapping = this._generatedMappings[index];
354
+
355
+ if (mapping.generatedLine === needle.generatedLine) {
356
+ var source = util.getArg(mapping, 'source', null);
357
+ if (source != null && this.sourceRoot != null) {
358
+ source = util.join(this.sourceRoot, source);
359
+ }
360
+ return {
361
+ source: source,
362
+ line: util.getArg(mapping, 'originalLine', null),
363
+ column: util.getArg(mapping, 'originalColumn', null),
364
+ name: util.getArg(mapping, 'name', null)
365
+ };
366
+ }
367
+ }
368
+
369
+ return {
370
+ source: null,
371
+ line: null,
372
+ column: null,
373
+ name: null
374
+ };
375
+ };
376
+
377
+ /**
378
+ * Returns the original source content. The only argument is the url of the
379
+ * original source file. Returns null if no original source content is
380
+ * availible.
381
+ */
382
+ SourceMapConsumer.prototype.sourceContentFor =
383
+ function SourceMapConsumer_sourceContentFor(aSource) {
384
+ if (!this.sourcesContent) {
385
+ return null;
386
+ }
387
+
388
+ if (this.sourceRoot != null) {
389
+ aSource = util.relative(this.sourceRoot, aSource);
390
+ }
391
+
392
+ if (this._sources.has(aSource)) {
393
+ return this.sourcesContent[this._sources.indexOf(aSource)];
394
+ }
395
+
396
+ var url;
397
+ if (this.sourceRoot != null
398
+ && (url = util.urlParse(this.sourceRoot))) {
399
+ // XXX: file:// URIs and absolute paths lead to unexpected behavior for
400
+ // many users. We can help them out when they expect file:// URIs to
401
+ // behave like it would if they were running a local HTTP server. See
402
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.
403
+ var fileUriAbsPath = aSource.replace(/^file:\/\//, "");
404
+ if (url.scheme == "file"
405
+ && this._sources.has(fileUriAbsPath)) {
406
+ return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]
407
+ }
408
+
409
+ if ((!url.path || url.path == "/")
410
+ && this._sources.has("/" + aSource)) {
411
+ return this.sourcesContent[this._sources.indexOf("/" + aSource)];
412
+ }
413
+ }
414
+
415
+ throw new Error('"' + aSource + '" is not in the SourceMap.');
416
+ };
417
+
418
+ /**
419
+ * Returns the generated line and column information for the original source,
420
+ * line, and column positions provided. The only argument is an object with
421
+ * the following properties:
422
+ *
423
+ * - source: The filename of the original source.
424
+ * - line: The line number in the original source.
425
+ * - column: The column number in the original source.
426
+ *
427
+ * and an object is returned with the following properties:
428
+ *
429
+ * - line: The line number in the generated source, or null.
430
+ * - column: The column number in the generated source, or null.
431
+ */
432
+ SourceMapConsumer.prototype.generatedPositionFor =
433
+ function SourceMapConsumer_generatedPositionFor(aArgs) {
434
+ var needle = {
435
+ source: util.getArg(aArgs, 'source'),
436
+ originalLine: util.getArg(aArgs, 'line'),
437
+ originalColumn: util.getArg(aArgs, 'column')
438
+ };
439
+
440
+ if (this.sourceRoot != null) {
441
+ needle.source = util.relative(this.sourceRoot, needle.source);
442
+ }
443
+
444
+ var index = this._findMapping(needle,
445
+ this._originalMappings,
446
+ "originalLine",
447
+ "originalColumn",
448
+ util.compareByOriginalPositions);
449
+
450
+ if (index >= 0) {
451
+ var mapping = this._originalMappings[index];
452
+
453
+ return {
454
+ line: util.getArg(mapping, 'generatedLine', null),
455
+ column: util.getArg(mapping, 'generatedColumn', null),
456
+ lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)
457
+ };
458
+ }
459
+
460
+ return {
461
+ line: null,
462
+ column: null,
463
+ lastColumn: null
464
+ };
465
+ };
466
+
467
+ /**
468
+ * Returns all generated line and column information for the original source
469
+ * and line provided. The only argument is an object with the following
470
+ * properties:
471
+ *
472
+ * - source: The filename of the original source.
473
+ * - line: The line number in the original source.
474
+ *
475
+ * and an array of objects is returned, each with the following properties:
476
+ *
477
+ * - line: The line number in the generated source, or null.
478
+ * - column: The column number in the generated source, or null.
479
+ */
480
+ SourceMapConsumer.prototype.allGeneratedPositionsFor =
481
+ function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {
482
+ // When there is no exact match, SourceMapConsumer.prototype._findMapping
483
+ // returns the index of the closest mapping less than the needle. By
484
+ // setting needle.originalColumn to Infinity, we thus find the last
485
+ // mapping for the given line, provided such a mapping exists.
486
+ var needle = {
487
+ source: util.getArg(aArgs, 'source'),
488
+ originalLine: util.getArg(aArgs, 'line'),
489
+ originalColumn: Infinity
490
+ };
491
+
492
+ if (this.sourceRoot != null) {
493
+ needle.source = util.relative(this.sourceRoot, needle.source);
494
+ }
495
+
496
+ var mappings = [];
497
+
498
+ var index = this._findMapping(needle,
499
+ this._originalMappings,
500
+ "originalLine",
501
+ "originalColumn",
502
+ util.compareByOriginalPositions);
503
+ if (index >= 0) {
504
+ var mapping = this._originalMappings[index];
505
+
506
+ while (mapping && mapping.originalLine === needle.originalLine) {
507
+ mappings.push({
508
+ line: util.getArg(mapping, 'generatedLine', null),
509
+ column: util.getArg(mapping, 'generatedColumn', null),
510
+ lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)
511
+ });
512
+
513
+ mapping = this._originalMappings[--index];
514
+ }
515
+ }
516
+
517
+ return mappings.reverse();
518
+ };
519
+
520
+ SourceMapConsumer.GENERATED_ORDER = 1;
521
+ SourceMapConsumer.ORIGINAL_ORDER = 2;
522
+
523
+ /**
524
+ * Iterate over each mapping between an original source/line/column and a
525
+ * generated line/column in this source map.
526
+ *
527
+ * @param Function aCallback
528
+ * The function that is called with each mapping.
529
+ * @param Object aContext
530
+ * Optional. If specified, this object will be the value of `this` every
531
+ * time that `aCallback` is called.
532
+ * @param aOrder
533
+ * Either `SourceMapConsumer.GENERATED_ORDER` or
534
+ * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to
535
+ * iterate over the mappings sorted by the generated file's line/column
536
+ * order or the original's source/line/column order, respectively. Defaults to
537
+ * `SourceMapConsumer.GENERATED_ORDER`.
538
+ */
539
+ SourceMapConsumer.prototype.eachMapping =
540
+ function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {
541
+ var context = aContext || null;
542
+ var order = aOrder || SourceMapConsumer.GENERATED_ORDER;
543
+
544
+ var mappings;
545
+ switch (order) {
546
+ case SourceMapConsumer.GENERATED_ORDER:
547
+ mappings = this._generatedMappings;
548
+ break;
549
+ case SourceMapConsumer.ORIGINAL_ORDER:
550
+ mappings = this._originalMappings;
551
+ break;
552
+ default:
553
+ throw new Error("Unknown order of iteration.");
554
+ }
555
+
556
+ var sourceRoot = this.sourceRoot;
557
+ mappings.map(function (mapping) {
558
+ var source = mapping.source;
559
+ if (source != null && sourceRoot != null) {
560
+ source = util.join(sourceRoot, source);
561
+ }
562
+ return {
563
+ source: source,
564
+ generatedLine: mapping.generatedLine,
565
+ generatedColumn: mapping.generatedColumn,
566
+ originalLine: mapping.originalLine,
567
+ originalColumn: mapping.originalColumn,
568
+ name: mapping.name
569
+ };
570
+ }).forEach(aCallback, context);
571
+ };
572
+
573
+ exports.SourceMapConsumer = SourceMapConsumer;
574
+
575
+ });