smock 0.1.217 → 0.1.218

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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
+ });