appmap 0.62.1 → 0.65.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2281) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -1
  3. data/ARCHITECTURE.md +4 -4
  4. data/CHANGELOG.md +39 -0
  5. data/README.md +2 -2
  6. data/Rakefile +8 -8
  7. data/lib/appmap/command/agent_setup/init.rb +1 -0
  8. data/lib/appmap/config.rb +2 -2
  9. data/lib/appmap/cucumber.rb +1 -0
  10. data/lib/appmap/depends/util.rb +2 -0
  11. data/lib/appmap/event.rb +38 -14
  12. data/lib/appmap/handler/rails/sql_handler.rb +0 -28
  13. data/lib/appmap/minitest.rb +1 -0
  14. data/lib/appmap/node_cli.rb +1 -1
  15. data/lib/appmap/rspec.rb +1 -0
  16. data/lib/appmap/service/validator/config_validator.rb +8 -4
  17. data/lib/appmap/swagger/rake_tasks.rb +1 -0
  18. data/lib/appmap/util.rb +1 -1
  19. data/lib/appmap/version.rb +2 -3
  20. data/node_modules/@appland/appmap/CHANGELOG.md +136 -0
  21. data/node_modules/@appland/appmap/package.json +50 -0
  22. data/node_modules/@appland/appmap/src/agentInstaller/buildToolInstallerBase.js +28 -0
  23. data/node_modules/@appland/appmap/src/agentInstaller/commandStruct.js +17 -0
  24. data/node_modules/@appland/appmap/src/agentInstaller/installAgentStep.js +30 -0
  25. data/node_modules/@appland/appmap/src/agentInstaller/javaAgentInstaller.js +321 -0
  26. data/node_modules/@appland/appmap/src/agentInstaller/pythonAgentInstaller.js +174 -0
  27. data/node_modules/@appland/appmap/src/agentInstaller/rubyAgentInstaller.js +129 -0
  28. data/node_modules/@appland/appmap/src/agentInstaller/types.d.ts +76 -0
  29. data/node_modules/@appland/{cli → appmap}/src/appMapCatalog.js +0 -0
  30. data/node_modules/@appland/{cli → appmap}/src/appland/getAppMap.js +0 -0
  31. data/node_modules/@appland/appmap/src/appland/listAppMaps.js +58 -0
  32. data/node_modules/@appland/{cli → appmap}/src/appland/settings.js +0 -0
  33. data/node_modules/@appland/appmap/src/appland/types.d.ts +16 -0
  34. data/node_modules/@appland/appmap/src/cli.js +729 -0
  35. data/node_modules/@appland/{cli → appmap}/src/database.js +0 -0
  36. data/node_modules/@appland/{cli → appmap}/src/depends.js +0 -0
  37. data/node_modules/@appland/appmap/src/errors/abortError.js +5 -0
  38. data/node_modules/@appland/appmap/src/errors/validationError.js +5 -0
  39. data/node_modules/@appland/{cli → appmap}/src/fingerprint/algorithms.js +0 -0
  40. data/node_modules/@appland/{cli → appmap}/src/fingerprint/canonicalize/base.js +0 -0
  41. data/node_modules/@appland/{cli → appmap}/src/fingerprint/canonicalize/classDependencies.js +0 -0
  42. data/node_modules/@appland/{cli → appmap}/src/fingerprint/canonicalize/classes.js +0 -0
  43. data/node_modules/@appland/{cli → appmap}/src/fingerprint/canonicalize/eventTree.js +0 -0
  44. data/node_modules/@appland/{cli → appmap}/src/fingerprint/canonicalize/httpClientRequests.js +0 -0
  45. data/node_modules/@appland/{cli → appmap}/src/fingerprint/canonicalize/httpServerRequests.js +0 -0
  46. data/node_modules/@appland/{cli → appmap}/src/fingerprint/canonicalize/info.js +0 -0
  47. data/node_modules/@appland/{cli → appmap}/src/fingerprint/canonicalize/labels.js +0 -0
  48. data/node_modules/@appland/{cli → appmap}/src/fingerprint/canonicalize/packageDependencies.js +0 -0
  49. data/node_modules/@appland/{cli → appmap}/src/fingerprint/canonicalize/packages.js +0 -0
  50. data/node_modules/@appland/{cli → appmap}/src/fingerprint/canonicalize/sqlNormalized.js +0 -0
  51. data/node_modules/@appland/{cli → appmap}/src/fingerprint/canonicalize/sqlTables.js +0 -0
  52. data/node_modules/@appland/{cli → appmap}/src/fingerprint/canonicalize/trace.js +0 -0
  53. data/node_modules/@appland/{cli → appmap}/src/fingerprint/canonicalize/unique.js +0 -0
  54. data/node_modules/@appland/{cli → appmap}/src/fingerprint/canonicalize/update.js +0 -0
  55. data/node_modules/@appland/{cli → appmap}/src/fingerprint/canonicalize.js +0 -0
  56. data/node_modules/@appland/{cli → appmap}/src/fingerprint/fingerprintDirectoryCommand.js +0 -0
  57. data/node_modules/@appland/{cli → appmap}/src/fingerprint/fingerprintQueue.js +0 -0
  58. data/node_modules/@appland/{cli → appmap}/src/fingerprint/fingerprintWatchCommand.js +0 -0
  59. data/node_modules/@appland/{cli → appmap}/src/fingerprint/fingerprinter.js +0 -0
  60. data/node_modules/@appland/{cli → appmap}/src/fingerprint/index.js +0 -0
  61. data/node_modules/@appland/{cli → appmap}/src/functionStats.js +0 -0
  62. data/node_modules/@appland/{cli → appmap}/src/inspect/fields.js +0 -0
  63. data/node_modules/@appland/{cli → appmap}/src/inspect/filter.js +0 -0
  64. data/node_modules/@appland/{cli → appmap}/src/inspect/home.js +0 -0
  65. data/node_modules/@appland/{cli → appmap}/src/inspect/print.js +0 -0
  66. data/node_modules/@appland/{cli → appmap}/src/inspect/reset.js +0 -0
  67. data/node_modules/@appland/{cli → appmap}/src/inspect/types.d.ts +0 -0
  68. data/node_modules/@appland/{cli → appmap}/src/inspect/undoFilter.js +0 -0
  69. data/node_modules/@appland/{cli → appmap}/src/inspect.js +0 -0
  70. data/node_modules/@appland/{cli → appmap}/src/inventoryCommand.js +0 -0
  71. data/node_modules/@appland/{cli → appmap}/src/search/codeObjectMatcher.js +0 -0
  72. data/node_modules/@appland/{cli → appmap}/src/search/constants.js +0 -0
  73. data/node_modules/@appland/{cli → appmap}/src/search/findCodeObjects.js +0 -0
  74. data/node_modules/@appland/{cli → appmap}/src/search/findEvents.js +0 -0
  75. data/node_modules/@appland/{cli → appmap}/src/search/matchFilter.js +0 -0
  76. data/node_modules/@appland/{cli → appmap}/src/search/matchSpec.js +0 -0
  77. data/node_modules/@appland/{cli → appmap}/src/search/trigram.js +0 -0
  78. data/node_modules/@appland/{cli → appmap}/src/search/types.d.ts +0 -0
  79. data/node_modules/@appland/{cli → appmap}/src/search/utils.js +0 -0
  80. data/node_modules/@appland/{cli → appmap}/src/swagger/README.md +0 -0
  81. data/node_modules/@appland/{cli → appmap}/src/swagger/command.js +0 -0
  82. data/node_modules/@appland/{cli → appmap}/src/swagger/method.js +0 -0
  83. data/node_modules/@appland/{cli → appmap}/src/swagger/model.js +0 -0
  84. data/node_modules/@appland/{cli → appmap}/src/swagger/path.js +0 -0
  85. data/node_modules/@appland/{cli → appmap}/src/swagger/response.js +0 -0
  86. data/node_modules/@appland/{cli → appmap}/src/swagger/schema.js +0 -0
  87. data/node_modules/@appland/{cli → appmap}/src/swagger/securitySchemes.js +0 -0
  88. data/node_modules/@appland/{cli → appmap}/src/swagger/settings.js +0 -0
  89. data/node_modules/@appland/{cli → appmap}/src/swagger/util.js +0 -0
  90. data/node_modules/@appland/appmap/src/utils.js +165 -0
  91. data/node_modules/@appland/appmap/tests/unit/agentInstall/python.js +0 -0
  92. data/node_modules/@appland/appmap/tests/unit/agentInstall/python.spec.js +109 -0
  93. data/node_modules/@appland/appmap/tests/unit/depends.spec.js +63 -0
  94. data/node_modules/@appland/appmap/tests/unit/fingerprint/canonicalize.spec.js +42 -0
  95. data/node_modules/@appland/{cli → appmap}/tests/unit/fingerprint/sql.spec.js +0 -0
  96. data/node_modules/@appland/appmap/tests/unit/fixtures/python/pip/requirements.txt +2 -0
  97. data/node_modules/@appland/appmap/tests/unit/fixtures/python/poetry/poetry.lock +2 -0
  98. data/node_modules/@appland/{cli/tests/unit/fixtures → appmap/tests/unit/fixtures/ruby}/app/controllers/organizations_controller.rb +0 -0
  99. data/node_modules/@appland/{cli/tests/unit/fixtures → appmap/tests/unit/fixtures/ruby}/app/models/configuration.rb +0 -0
  100. data/node_modules/@appland/{cli/tests/unit/fixtures → appmap/tests/unit/fixtures/ruby}/app/models/show.rb +0 -0
  101. data/node_modules/@appland/{cli/tests/unit/fixtures → appmap/tests/unit/fixtures/ruby}/app/models/user.rb +0 -0
  102. data/node_modules/@appland/appmap/tests/unit/fixtures/ruby/canonicalize/revoke_api_key.info.json +170 -0
  103. data/node_modules/@appland/appmap/tests/unit/fixtures/ruby/canonicalize/revoke_api_key.trace.json +213 -0
  104. data/node_modules/@appland/appmap/tests/unit/fixtures/ruby/canonicalize/revoke_api_key.update.json +54 -0
  105. data/node_modules/@appland/appmap/tests/unit/fixtures/ruby/revoke_api_key.appmap.json +884 -0
  106. data/node_modules/@appland/appmap/tests/unit/fixtures/ruby/user_page_scenario.appmap.json +1750 -0
  107. data/node_modules/@appland/appmap/tests/unit/inspect.spec.js +105 -0
  108. data/node_modules/@appland/models/CHANGELOG.md +7 -0
  109. data/node_modules/@appland/models/package.json +2 -2
  110. data/node_modules/@tootallnate/once/dist/index.d.ts +14 -0
  111. data/node_modules/@tootallnate/once/dist/index.js +39 -0
  112. data/node_modules/@tootallnate/once/dist/index.js.map +1 -0
  113. data/node_modules/@tootallnate/once/package.json +45 -0
  114. data/node_modules/abab/CHANGELOG.md +45 -0
  115. data/node_modules/abab/LICENSE.md +13 -0
  116. data/node_modules/abab/README.md +51 -0
  117. data/node_modules/abab/index.d.ts +2 -0
  118. data/node_modules/abab/index.js +9 -0
  119. data/node_modules/abab/lib/atob.js +97 -0
  120. data/node_modules/abab/lib/btoa.js +58 -0
  121. data/node_modules/abab/package.json +42 -0
  122. data/node_modules/acorn/CHANGELOG.md +744 -0
  123. data/node_modules/acorn/LICENSE +21 -0
  124. data/node_modules/acorn/README.md +280 -0
  125. data/node_modules/acorn/bin/acorn +4 -0
  126. data/node_modules/acorn/dist/acorn.d.ts +211 -0
  127. data/node_modules/acorn/dist/acorn.js +5525 -0
  128. data/node_modules/acorn/dist/acorn.mjs +5494 -0
  129. data/node_modules/acorn/dist/acorn.mjs.d.ts +2 -0
  130. data/node_modules/acorn/dist/bin.js +65 -0
  131. data/node_modules/acorn/package.json +46 -0
  132. data/node_modules/acorn-globals/LICENSE +19 -0
  133. data/node_modules/acorn-globals/README.md +81 -0
  134. data/node_modules/acorn-globals/index.js +179 -0
  135. data/node_modules/acorn-globals/node_modules/acorn/CHANGELOG.md +620 -0
  136. data/node_modules/acorn-globals/node_modules/acorn/LICENSE +21 -0
  137. data/node_modules/acorn-globals/node_modules/acorn/README.md +269 -0
  138. data/node_modules/acorn-globals/node_modules/acorn/bin/acorn +4 -0
  139. data/node_modules/acorn-globals/node_modules/acorn/dist/acorn.d.ts +209 -0
  140. data/node_modules/acorn-globals/node_modules/acorn/dist/acorn.js +5186 -0
  141. data/node_modules/acorn-globals/node_modules/acorn/dist/acorn.js.map +1 -0
  142. data/node_modules/acorn-globals/node_modules/acorn/dist/acorn.mjs +5155 -0
  143. data/node_modules/acorn-globals/node_modules/acorn/dist/acorn.mjs.d.ts +2 -0
  144. data/node_modules/acorn-globals/node_modules/acorn/dist/acorn.mjs.map +1 -0
  145. data/node_modules/acorn-globals/node_modules/acorn/dist/bin.js +64 -0
  146. data/node_modules/acorn-globals/node_modules/acorn/package.json +35 -0
  147. data/node_modules/acorn-globals/package.json +35 -0
  148. data/node_modules/acorn-walk/CHANGELOG.md +131 -0
  149. data/node_modules/acorn-walk/LICENSE +19 -0
  150. data/node_modules/acorn-walk/README.md +126 -0
  151. data/node_modules/acorn-walk/dist/walk.d.ts +112 -0
  152. data/node_modules/acorn-walk/dist/walk.js +463 -0
  153. data/node_modules/acorn-walk/dist/walk.js.map +1 -0
  154. data/node_modules/acorn-walk/dist/walk.mjs +443 -0
  155. data/node_modules/acorn-walk/dist/walk.mjs.map +1 -0
  156. data/node_modules/acorn-walk/package.json +34 -0
  157. data/node_modules/agent-base/README.md +145 -0
  158. data/node_modules/agent-base/dist/src/index.d.ts +78 -0
  159. data/node_modules/agent-base/dist/src/index.js +203 -0
  160. data/node_modules/agent-base/dist/src/index.js.map +1 -0
  161. data/node_modules/agent-base/dist/src/promisify.d.ts +4 -0
  162. data/node_modules/agent-base/dist/src/promisify.js +18 -0
  163. data/node_modules/agent-base/dist/src/promisify.js.map +1 -0
  164. data/node_modules/agent-base/package.json +64 -0
  165. data/node_modules/agent-base/src/index.ts +345 -0
  166. data/node_modules/agent-base/src/promisify.ts +33 -0
  167. data/node_modules/asynckit/LICENSE +21 -0
  168. data/node_modules/asynckit/README.md +233 -0
  169. data/node_modules/asynckit/bench.js +76 -0
  170. data/node_modules/asynckit/index.js +6 -0
  171. data/node_modules/asynckit/lib/abort.js +29 -0
  172. data/node_modules/asynckit/lib/async.js +34 -0
  173. data/node_modules/asynckit/lib/defer.js +26 -0
  174. data/node_modules/asynckit/lib/iterate.js +75 -0
  175. data/node_modules/asynckit/lib/readable_asynckit.js +91 -0
  176. data/node_modules/asynckit/lib/readable_parallel.js +25 -0
  177. data/node_modules/asynckit/lib/readable_serial.js +25 -0
  178. data/node_modules/asynckit/lib/readable_serial_ordered.js +29 -0
  179. data/node_modules/asynckit/lib/state.js +37 -0
  180. data/node_modules/asynckit/lib/streamify.js +141 -0
  181. data/node_modules/asynckit/lib/terminator.js +29 -0
  182. data/node_modules/asynckit/package.json +63 -0
  183. data/node_modules/asynckit/parallel.js +43 -0
  184. data/node_modules/asynckit/serial.js +17 -0
  185. data/node_modules/asynckit/serialOrdered.js +75 -0
  186. data/node_modules/asynckit/stream.js +21 -0
  187. data/node_modules/browser-process-hrtime/LICENSE +9 -0
  188. data/node_modules/browser-process-hrtime/README.md +27 -0
  189. data/node_modules/browser-process-hrtime/index.d.ts +4 -0
  190. data/node_modules/browser-process-hrtime/index.js +28 -0
  191. data/node_modules/browser-process-hrtime/package.json +15 -0
  192. data/node_modules/combined-stream/License +19 -0
  193. data/node_modules/combined-stream/Readme.md +138 -0
  194. data/node_modules/combined-stream/lib/combined_stream.js +208 -0
  195. data/node_modules/combined-stream/package.json +25 -0
  196. data/node_modules/combined-stream/yarn.lock +17 -0
  197. data/node_modules/cssom/LICENSE.txt +20 -0
  198. data/node_modules/cssom/README.mdown +67 -0
  199. data/node_modules/cssom/lib/CSSDocumentRule.js +39 -0
  200. data/node_modules/cssom/lib/CSSFontFaceRule.js +36 -0
  201. data/node_modules/cssom/lib/CSSHostRule.js +37 -0
  202. data/node_modules/cssom/lib/CSSImportRule.js +132 -0
  203. data/node_modules/cssom/lib/CSSKeyframeRule.js +37 -0
  204. data/node_modules/cssom/lib/CSSKeyframesRule.js +39 -0
  205. data/node_modules/cssom/lib/CSSMediaRule.js +41 -0
  206. data/node_modules/cssom/lib/CSSOM.js +3 -0
  207. data/node_modules/cssom/lib/CSSRule.js +43 -0
  208. data/node_modules/cssom/lib/CSSStyleDeclaration.js +148 -0
  209. data/node_modules/cssom/lib/CSSStyleRule.js +190 -0
  210. data/node_modules/cssom/lib/CSSStyleSheet.js +88 -0
  211. data/node_modules/cssom/lib/CSSSupportsRule.js +36 -0
  212. data/node_modules/cssom/lib/CSSValue.js +43 -0
  213. data/node_modules/cssom/lib/CSSValueExpression.js +344 -0
  214. data/node_modules/cssom/lib/MatcherList.js +62 -0
  215. data/node_modules/cssom/lib/MediaList.js +61 -0
  216. data/node_modules/cssom/lib/StyleSheet.js +17 -0
  217. data/node_modules/cssom/lib/clone.js +71 -0
  218. data/node_modules/cssom/lib/index.js +21 -0
  219. data/node_modules/cssom/lib/parse.js +463 -0
  220. data/node_modules/cssom/package.json +18 -0
  221. data/node_modules/cssstyle/LICENSE +20 -0
  222. data/node_modules/cssstyle/README.md +15 -0
  223. data/node_modules/cssstyle/lib/CSSStyleDeclaration.js +260 -0
  224. data/node_modules/cssstyle/lib/CSSStyleDeclaration.test.js +556 -0
  225. data/node_modules/cssstyle/lib/allExtraProperties.js +67 -0
  226. data/node_modules/cssstyle/lib/allProperties.js +462 -0
  227. data/node_modules/cssstyle/lib/allWebkitProperties.js +194 -0
  228. data/node_modules/cssstyle/lib/constants.js +6 -0
  229. data/node_modules/cssstyle/lib/implementedProperties.js +90 -0
  230. data/node_modules/cssstyle/lib/named_colors.json +152 -0
  231. data/node_modules/cssstyle/lib/parsers.js +722 -0
  232. data/node_modules/cssstyle/lib/parsers.test.js +139 -0
  233. data/node_modules/cssstyle/lib/properties/azimuth.js +67 -0
  234. data/node_modules/cssstyle/lib/properties/background.js +19 -0
  235. data/node_modules/cssstyle/lib/properties/backgroundAttachment.js +24 -0
  236. data/node_modules/cssstyle/lib/properties/backgroundColor.js +36 -0
  237. data/node_modules/cssstyle/lib/properties/backgroundImage.js +32 -0
  238. data/node_modules/cssstyle/lib/properties/backgroundPosition.js +58 -0
  239. data/node_modules/cssstyle/lib/properties/backgroundRepeat.js +32 -0
  240. data/node_modules/cssstyle/lib/properties/border.js +33 -0
  241. data/node_modules/cssstyle/lib/properties/borderBottom.js +17 -0
  242. data/node_modules/cssstyle/lib/properties/borderBottomColor.js +16 -0
  243. data/node_modules/cssstyle/lib/properties/borderBottomStyle.js +21 -0
  244. data/node_modules/cssstyle/lib/properties/borderBottomWidth.js +16 -0
  245. data/node_modules/cssstyle/lib/properties/borderCollapse.js +26 -0
  246. data/node_modules/cssstyle/lib/properties/borderColor.js +30 -0
  247. data/node_modules/cssstyle/lib/properties/borderLeft.js +17 -0
  248. data/node_modules/cssstyle/lib/properties/borderLeftColor.js +16 -0
  249. data/node_modules/cssstyle/lib/properties/borderLeftStyle.js +21 -0
  250. data/node_modules/cssstyle/lib/properties/borderLeftWidth.js +16 -0
  251. data/node_modules/cssstyle/lib/properties/borderRight.js +17 -0
  252. data/node_modules/cssstyle/lib/properties/borderRightColor.js +16 -0
  253. data/node_modules/cssstyle/lib/properties/borderRightStyle.js +21 -0
  254. data/node_modules/cssstyle/lib/properties/borderRightWidth.js +16 -0
  255. data/node_modules/cssstyle/lib/properties/borderSpacing.js +41 -0
  256. data/node_modules/cssstyle/lib/properties/borderStyle.js +38 -0
  257. data/node_modules/cssstyle/lib/properties/borderTop.js +17 -0
  258. data/node_modules/cssstyle/lib/properties/borderTopColor.js +16 -0
  259. data/node_modules/cssstyle/lib/properties/borderTopStyle.js +21 -0
  260. data/node_modules/cssstyle/lib/properties/borderTopWidth.js +17 -0
  261. data/node_modules/cssstyle/lib/properties/borderWidth.js +46 -0
  262. data/node_modules/cssstyle/lib/properties/bottom.js +14 -0
  263. data/node_modules/cssstyle/lib/properties/clear.js +16 -0
  264. data/node_modules/cssstyle/lib/properties/clip.js +47 -0
  265. data/node_modules/cssstyle/lib/properties/color.js +14 -0
  266. data/node_modules/cssstyle/lib/properties/cssFloat.js +12 -0
  267. data/node_modules/cssstyle/lib/properties/flex.js +45 -0
  268. data/node_modules/cssstyle/lib/properties/flexBasis.js +28 -0
  269. data/node_modules/cssstyle/lib/properties/flexGrow.js +19 -0
  270. data/node_modules/cssstyle/lib/properties/flexShrink.js +19 -0
  271. data/node_modules/cssstyle/lib/properties/float.js +12 -0
  272. data/node_modules/cssstyle/lib/properties/floodColor.js +14 -0
  273. data/node_modules/cssstyle/lib/properties/font.js +43 -0
  274. data/node_modules/cssstyle/lib/properties/fontFamily.js +33 -0
  275. data/node_modules/cssstyle/lib/properties/fontSize.js +38 -0
  276. data/node_modules/cssstyle/lib/properties/fontStyle.js +18 -0
  277. data/node_modules/cssstyle/lib/properties/fontVariant.js +18 -0
  278. data/node_modules/cssstyle/lib/properties/fontWeight.js +33 -0
  279. data/node_modules/cssstyle/lib/properties/height.js +24 -0
  280. data/node_modules/cssstyle/lib/properties/left.js +14 -0
  281. data/node_modules/cssstyle/lib/properties/lightingColor.js +14 -0
  282. data/node_modules/cssstyle/lib/properties/lineHeight.js +26 -0
  283. data/node_modules/cssstyle/lib/properties/margin.js +68 -0
  284. data/node_modules/cssstyle/lib/properties/marginBottom.js +13 -0
  285. data/node_modules/cssstyle/lib/properties/marginLeft.js +13 -0
  286. data/node_modules/cssstyle/lib/properties/marginRight.js +13 -0
  287. data/node_modules/cssstyle/lib/properties/marginTop.js +13 -0
  288. data/node_modules/cssstyle/lib/properties/opacity.js +14 -0
  289. data/node_modules/cssstyle/lib/properties/outlineColor.js +14 -0
  290. data/node_modules/cssstyle/lib/properties/padding.js +61 -0
  291. data/node_modules/cssstyle/lib/properties/paddingBottom.js +13 -0
  292. data/node_modules/cssstyle/lib/properties/paddingLeft.js +13 -0
  293. data/node_modules/cssstyle/lib/properties/paddingRight.js +13 -0
  294. data/node_modules/cssstyle/lib/properties/paddingTop.js +13 -0
  295. data/node_modules/cssstyle/lib/properties/right.js +14 -0
  296. data/node_modules/cssstyle/lib/properties/stopColor.js +14 -0
  297. data/node_modules/cssstyle/lib/properties/textLineThroughColor.js +14 -0
  298. data/node_modules/cssstyle/lib/properties/textOverlineColor.js +14 -0
  299. data/node_modules/cssstyle/lib/properties/textUnderlineColor.js +14 -0
  300. data/node_modules/cssstyle/lib/properties/top.js +14 -0
  301. data/node_modules/cssstyle/lib/properties/webkitBorderAfterColor.js +14 -0
  302. data/node_modules/cssstyle/lib/properties/webkitBorderBeforeColor.js +14 -0
  303. data/node_modules/cssstyle/lib/properties/webkitBorderEndColor.js +14 -0
  304. data/node_modules/cssstyle/lib/properties/webkitBorderStartColor.js +14 -0
  305. data/node_modules/cssstyle/lib/properties/webkitColumnRuleColor.js +14 -0
  306. data/node_modules/cssstyle/lib/properties/webkitMatchNearestMailBlockquoteColor.js +14 -0
  307. data/node_modules/cssstyle/lib/properties/webkitTapHighlightColor.js +14 -0
  308. data/node_modules/cssstyle/lib/properties/webkitTextEmphasisColor.js +14 -0
  309. data/node_modules/cssstyle/lib/properties/webkitTextFillColor.js +14 -0
  310. data/node_modules/cssstyle/lib/properties/webkitTextStrokeColor.js +14 -0
  311. data/node_modules/cssstyle/lib/properties/width.js +24 -0
  312. data/node_modules/cssstyle/lib/properties.js +1833 -0
  313. data/node_modules/cssstyle/lib/utils/colorSpace.js +21 -0
  314. data/node_modules/cssstyle/lib/utils/getBasicPropertyDescriptor.js +14 -0
  315. data/node_modules/cssstyle/node_modules/cssom/LICENSE.txt +20 -0
  316. data/node_modules/cssstyle/node_modules/cssom/README.mdown +67 -0
  317. data/node_modules/cssstyle/node_modules/cssom/lib/CSSDocumentRule.js +39 -0
  318. data/node_modules/cssstyle/node_modules/cssom/lib/CSSFontFaceRule.js +36 -0
  319. data/node_modules/cssstyle/node_modules/cssom/lib/CSSHostRule.js +37 -0
  320. data/node_modules/cssstyle/node_modules/cssom/lib/CSSImportRule.js +132 -0
  321. data/node_modules/cssstyle/node_modules/cssom/lib/CSSKeyframeRule.js +37 -0
  322. data/node_modules/cssstyle/node_modules/cssom/lib/CSSKeyframesRule.js +39 -0
  323. data/node_modules/cssstyle/node_modules/cssom/lib/CSSMediaRule.js +41 -0
  324. data/node_modules/cssstyle/node_modules/cssom/lib/CSSOM.js +3 -0
  325. data/node_modules/cssstyle/node_modules/cssom/lib/CSSRule.js +43 -0
  326. data/node_modules/cssstyle/node_modules/cssom/lib/CSSStyleDeclaration.js +148 -0
  327. data/node_modules/cssstyle/node_modules/cssom/lib/CSSStyleRule.js +190 -0
  328. data/node_modules/cssstyle/node_modules/cssom/lib/CSSStyleSheet.js +88 -0
  329. data/node_modules/cssstyle/node_modules/cssom/lib/CSSSupportsRule.js +36 -0
  330. data/node_modules/cssstyle/node_modules/cssom/lib/CSSValue.js +43 -0
  331. data/node_modules/cssstyle/node_modules/cssom/lib/CSSValueExpression.js +344 -0
  332. data/node_modules/cssstyle/node_modules/cssom/lib/MatcherList.js +62 -0
  333. data/node_modules/cssstyle/node_modules/cssom/lib/MediaList.js +61 -0
  334. data/node_modules/cssstyle/node_modules/cssom/lib/StyleSheet.js +17 -0
  335. data/node_modules/cssstyle/node_modules/cssom/lib/clone.js +82 -0
  336. data/node_modules/cssstyle/node_modules/cssom/lib/index.js +21 -0
  337. data/node_modules/cssstyle/node_modules/cssom/lib/parse.js +464 -0
  338. data/node_modules/cssstyle/node_modules/cssom/package.json +18 -0
  339. data/node_modules/cssstyle/package.json +72 -0
  340. data/node_modules/data-urls/LICENSE.txt +7 -0
  341. data/node_modules/data-urls/README.md +64 -0
  342. data/node_modules/data-urls/lib/parser.js +74 -0
  343. data/node_modules/data-urls/lib/utils.js +23 -0
  344. data/node_modules/data-urls/package.json +53 -0
  345. data/node_modules/debug/LICENSE +19 -0
  346. data/node_modules/debug/README.md +455 -0
  347. data/node_modules/debug/package.json +59 -0
  348. data/node_modules/debug/src/browser.js +269 -0
  349. data/node_modules/debug/src/common.js +274 -0
  350. data/node_modules/debug/src/index.js +10 -0
  351. data/node_modules/debug/src/node.js +263 -0
  352. data/node_modules/decimal.js/CHANGELOG.md +231 -0
  353. data/node_modules/decimal.js/LICENCE.md +23 -0
  354. data/node_modules/decimal.js/README.md +246 -0
  355. data/node_modules/decimal.js/decimal.d.ts +300 -0
  356. data/node_modules/decimal.js/decimal.js +4934 -0
  357. data/node_modules/decimal.js/decimal.mjs +4898 -0
  358. data/node_modules/decimal.js/package.json +40 -0
  359. data/node_modules/deep-is/LICENSE +22 -0
  360. data/node_modules/deep-is/README.markdown +70 -0
  361. data/node_modules/deep-is/example/cmp.js +11 -0
  362. data/node_modules/deep-is/index.js +102 -0
  363. data/node_modules/deep-is/package.json +61 -0
  364. data/node_modules/deep-is/test/NaN.js +16 -0
  365. data/node_modules/deep-is/test/cmp.js +23 -0
  366. data/node_modules/deep-is/test/neg-vs-pos-0.js +15 -0
  367. data/node_modules/delayed-stream/License +19 -0
  368. data/node_modules/delayed-stream/Makefile +7 -0
  369. data/node_modules/delayed-stream/Readme.md +141 -0
  370. data/node_modules/delayed-stream/lib/delayed_stream.js +107 -0
  371. data/node_modules/delayed-stream/package.json +27 -0
  372. data/node_modules/domexception/LICENSE.txt +21 -0
  373. data/node_modules/domexception/README.md +31 -0
  374. data/node_modules/domexception/index.js +7 -0
  375. data/node_modules/domexception/lib/DOMException-impl.js +22 -0
  376. data/node_modules/domexception/lib/DOMException.js +205 -0
  377. data/node_modules/domexception/lib/legacy-error-codes.json +27 -0
  378. data/node_modules/domexception/lib/utils.js +115 -0
  379. data/node_modules/domexception/node_modules/webidl-conversions/LICENSE.md +12 -0
  380. data/node_modules/domexception/node_modules/webidl-conversions/README.md +79 -0
  381. data/node_modules/domexception/node_modules/webidl-conversions/lib/index.js +361 -0
  382. data/node_modules/domexception/node_modules/webidl-conversions/package.json +30 -0
  383. data/node_modules/domexception/package.json +42 -0
  384. data/node_modules/domexception/webidl2js-wrapper.js +15 -0
  385. data/node_modules/escodegen/LICENSE.BSD +21 -0
  386. data/node_modules/escodegen/README.md +84 -0
  387. data/node_modules/escodegen/bin/escodegen.js +77 -0
  388. data/node_modules/escodegen/bin/esgenerate.js +64 -0
  389. data/node_modules/escodegen/escodegen.js +2647 -0
  390. data/node_modules/escodegen/package.json +62 -0
  391. data/node_modules/estraverse/LICENSE.BSD +19 -0
  392. data/node_modules/estraverse/README.md +153 -0
  393. data/node_modules/estraverse/estraverse.js +801 -0
  394. data/node_modules/estraverse/gulpfile.js +70 -0
  395. data/node_modules/estraverse/package.json +40 -0
  396. data/node_modules/esutils/LICENSE.BSD +19 -0
  397. data/node_modules/esutils/README.md +174 -0
  398. data/node_modules/esutils/lib/ast.js +144 -0
  399. data/node_modules/esutils/lib/code.js +135 -0
  400. data/node_modules/esutils/lib/keyword.js +165 -0
  401. data/node_modules/esutils/lib/utils.js +33 -0
  402. data/node_modules/esutils/package.json +44 -0
  403. data/node_modules/fast-levenshtein/LICENSE.md +25 -0
  404. data/node_modules/fast-levenshtein/README.md +104 -0
  405. data/node_modules/fast-levenshtein/levenshtein.js +136 -0
  406. data/node_modules/fast-levenshtein/package.json +39 -0
  407. data/node_modules/form-data/License +19 -0
  408. data/node_modules/form-data/README.md.bak +356 -0
  409. data/node_modules/form-data/Readme.md +356 -0
  410. data/node_modules/form-data/index.d.ts +62 -0
  411. data/node_modules/form-data/lib/browser.js +2 -0
  412. data/node_modules/form-data/lib/form_data.js +498 -0
  413. data/node_modules/form-data/lib/populate.js +10 -0
  414. data/node_modules/form-data/package.json +68 -0
  415. data/node_modules/html-encoding-sniffer/LICENSE.txt +7 -0
  416. data/node_modules/html-encoding-sniffer/README.md +38 -0
  417. data/node_modules/html-encoding-sniffer/lib/html-encoding-sniffer.js +295 -0
  418. data/node_modules/html-encoding-sniffer/package.json +30 -0
  419. data/node_modules/http-proxy-agent/README.md +74 -0
  420. data/node_modules/http-proxy-agent/dist/agent.d.ts +32 -0
  421. data/node_modules/http-proxy-agent/dist/agent.js +145 -0
  422. data/node_modules/http-proxy-agent/dist/agent.js.map +1 -0
  423. data/node_modules/http-proxy-agent/dist/index.d.ts +21 -0
  424. data/node_modules/http-proxy-agent/dist/index.js +14 -0
  425. data/node_modules/http-proxy-agent/dist/index.js.map +1 -0
  426. data/node_modules/http-proxy-agent/package.json +57 -0
  427. data/node_modules/https-proxy-agent/README.md +137 -0
  428. data/node_modules/https-proxy-agent/dist/agent.d.ts +30 -0
  429. data/node_modules/https-proxy-agent/dist/agent.js +180 -0
  430. data/node_modules/https-proxy-agent/dist/agent.js.map +1 -0
  431. data/node_modules/https-proxy-agent/dist/index.d.ts +23 -0
  432. data/node_modules/https-proxy-agent/dist/index.js +14 -0
  433. data/node_modules/https-proxy-agent/dist/index.js.map +1 -0
  434. data/node_modules/https-proxy-agent/dist/parse-proxy-response.d.ts +7 -0
  435. data/node_modules/https-proxy-agent/dist/parse-proxy-response.js +66 -0
  436. data/node_modules/https-proxy-agent/dist/parse-proxy-response.js.map +1 -0
  437. data/node_modules/https-proxy-agent/package.json +56 -0
  438. data/node_modules/iconv-lite/Changelog.md +162 -0
  439. data/node_modules/iconv-lite/LICENSE +21 -0
  440. data/node_modules/iconv-lite/README.md +156 -0
  441. data/node_modules/iconv-lite/encodings/dbcs-codec.js +555 -0
  442. data/node_modules/iconv-lite/encodings/dbcs-data.js +176 -0
  443. data/node_modules/iconv-lite/encodings/index.js +22 -0
  444. data/node_modules/iconv-lite/encodings/internal.js +188 -0
  445. data/node_modules/iconv-lite/encodings/sbcs-codec.js +72 -0
  446. data/node_modules/iconv-lite/encodings/sbcs-data-generated.js +451 -0
  447. data/node_modules/iconv-lite/encodings/sbcs-data.js +174 -0
  448. data/node_modules/iconv-lite/encodings/tables/big5-added.json +122 -0
  449. data/node_modules/iconv-lite/encodings/tables/cp936.json +264 -0
  450. data/node_modules/iconv-lite/encodings/tables/cp949.json +273 -0
  451. data/node_modules/iconv-lite/encodings/tables/cp950.json +177 -0
  452. data/node_modules/iconv-lite/encodings/tables/eucjp.json +182 -0
  453. data/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +1 -0
  454. data/node_modules/iconv-lite/encodings/tables/gbk-added.json +55 -0
  455. data/node_modules/iconv-lite/encodings/tables/shiftjis.json +125 -0
  456. data/node_modules/iconv-lite/encodings/utf16.js +177 -0
  457. data/node_modules/iconv-lite/encodings/utf7.js +290 -0
  458. data/node_modules/iconv-lite/lib/bom-handling.js +52 -0
  459. data/node_modules/iconv-lite/lib/extend-node.js +217 -0
  460. data/node_modules/iconv-lite/lib/index.d.ts +24 -0
  461. data/node_modules/iconv-lite/lib/index.js +153 -0
  462. data/node_modules/iconv-lite/lib/streams.js +121 -0
  463. data/node_modules/iconv-lite/package.json +46 -0
  464. data/node_modules/is-potential-custom-element-name/LICENSE-MIT.txt +20 -0
  465. data/node_modules/is-potential-custom-element-name/README.md +40 -0
  466. data/node_modules/is-potential-custom-element-name/index.js +9 -0
  467. data/node_modules/is-potential-custom-element-name/package.json +35 -0
  468. data/node_modules/jsdom/LICENSE.txt +22 -0
  469. data/node_modules/jsdom/README.md +522 -0
  470. data/node_modules/jsdom/lib/api.js +333 -0
  471. data/node_modules/jsdom/lib/jsdom/browser/Window.js +933 -0
  472. data/node_modules/jsdom/lib/jsdom/browser/default-stylesheet.js +789 -0
  473. data/node_modules/jsdom/lib/jsdom/browser/js-globals.json +307 -0
  474. data/node_modules/jsdom/lib/jsdom/browser/not-implemented.js +13 -0
  475. data/node_modules/jsdom/lib/jsdom/browser/parser/html.js +223 -0
  476. data/node_modules/jsdom/lib/jsdom/browser/parser/index.js +37 -0
  477. data/node_modules/jsdom/lib/jsdom/browser/parser/xml.js +202 -0
  478. data/node_modules/jsdom/lib/jsdom/browser/resources/async-resource-queue.js +114 -0
  479. data/node_modules/jsdom/lib/jsdom/browser/resources/no-op-resource-loader.js +8 -0
  480. data/node_modules/jsdom/lib/jsdom/browser/resources/per-document-resource-loader.js +95 -0
  481. data/node_modules/jsdom/lib/jsdom/browser/resources/request-manager.js +33 -0
  482. data/node_modules/jsdom/lib/jsdom/browser/resources/resource-loader.js +142 -0
  483. data/node_modules/jsdom/lib/jsdom/browser/resources/resource-queue.js +142 -0
  484. data/node_modules/jsdom/lib/jsdom/level2/style.js +57 -0
  485. data/node_modules/jsdom/lib/jsdom/level3/xpath.js +1874 -0
  486. data/node_modules/jsdom/lib/jsdom/living/aborting/AbortController-impl.js +17 -0
  487. data/node_modules/jsdom/lib/jsdom/living/aborting/AbortSignal-impl.js +55 -0
  488. data/node_modules/jsdom/lib/jsdom/living/attributes/Attr-impl.js +60 -0
  489. data/node_modules/jsdom/lib/jsdom/living/attributes/NamedNodeMap-impl.js +78 -0
  490. data/node_modules/jsdom/lib/jsdom/living/attributes.js +312 -0
  491. data/node_modules/jsdom/lib/jsdom/living/constraint-validation/DefaultConstraintValidation-impl.js +75 -0
  492. data/node_modules/jsdom/lib/jsdom/living/constraint-validation/ValidityState-impl.js +66 -0
  493. data/node_modules/jsdom/lib/jsdom/living/cssom/StyleSheetList-impl.js +38 -0
  494. data/node_modules/jsdom/lib/jsdom/living/custom-elements/CustomElementRegistry-impl.js +265 -0
  495. data/node_modules/jsdom/lib/jsdom/living/documents.js +15 -0
  496. data/node_modules/jsdom/lib/jsdom/living/domparsing/DOMParser-impl.js +58 -0
  497. data/node_modules/jsdom/lib/jsdom/living/domparsing/InnerHTML-impl.js +29 -0
  498. data/node_modules/jsdom/lib/jsdom/living/domparsing/XMLSerializer-impl.js +18 -0
  499. data/node_modules/jsdom/lib/jsdom/living/domparsing/parse5-adapter-serialization.js +63 -0
  500. data/node_modules/jsdom/lib/jsdom/living/domparsing/serialization.js +45 -0
  501. data/node_modules/jsdom/lib/jsdom/living/events/CloseEvent-impl.js +10 -0
  502. data/node_modules/jsdom/lib/jsdom/living/events/CompositionEvent-impl.js +20 -0
  503. data/node_modules/jsdom/lib/jsdom/living/events/CustomEvent-impl.js +21 -0
  504. data/node_modules/jsdom/lib/jsdom/living/events/ErrorEvent-impl.js +14 -0
  505. data/node_modules/jsdom/lib/jsdom/living/events/Event-impl.js +197 -0
  506. data/node_modules/jsdom/lib/jsdom/living/events/EventModifierMixin-impl.js +18 -0
  507. data/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js +403 -0
  508. data/node_modules/jsdom/lib/jsdom/living/events/FocusEvent-impl.js +9 -0
  509. data/node_modules/jsdom/lib/jsdom/living/events/HashChangeEvent-impl.js +14 -0
  510. data/node_modules/jsdom/lib/jsdom/living/events/InputEvent-impl.js +11 -0
  511. data/node_modules/jsdom/lib/jsdom/living/events/KeyboardEvent-impl.js +29 -0
  512. data/node_modules/jsdom/lib/jsdom/living/events/MessageEvent-impl.js +25 -0
  513. data/node_modules/jsdom/lib/jsdom/living/events/MouseEvent-impl.js +49 -0
  514. data/node_modules/jsdom/lib/jsdom/living/events/PageTransitionEvent-impl.js +20 -0
  515. data/node_modules/jsdom/lib/jsdom/living/events/PopStateEvent-impl.js +9 -0
  516. data/node_modules/jsdom/lib/jsdom/living/events/ProgressEvent-impl.js +14 -0
  517. data/node_modules/jsdom/lib/jsdom/living/events/StorageEvent-impl.js +26 -0
  518. data/node_modules/jsdom/lib/jsdom/living/events/TouchEvent-impl.js +14 -0
  519. data/node_modules/jsdom/lib/jsdom/living/events/UIEvent-impl.js +59 -0
  520. data/node_modules/jsdom/lib/jsdom/living/events/WheelEvent-impl.js +12 -0
  521. data/node_modules/jsdom/lib/jsdom/living/fetch/Headers-impl.js +165 -0
  522. data/node_modules/jsdom/lib/jsdom/living/fetch/header-list.js +54 -0
  523. data/node_modules/jsdom/lib/jsdom/living/fetch/header-types.js +103 -0
  524. data/node_modules/jsdom/lib/jsdom/living/file-api/Blob-impl.js +93 -0
  525. data/node_modules/jsdom/lib/jsdom/living/file-api/File-impl.js +12 -0
  526. data/node_modules/jsdom/lib/jsdom/living/file-api/FileList-impl.js +15 -0
  527. data/node_modules/jsdom/lib/jsdom/living/file-api/FileReader-impl.js +130 -0
  528. data/node_modules/jsdom/lib/jsdom/living/generated/AbortController.js +130 -0
  529. data/node_modules/jsdom/lib/jsdom/living/generated/AbortSignal.js +159 -0
  530. data/node_modules/jsdom/lib/jsdom/living/generated/AbstractRange.js +162 -0
  531. data/node_modules/jsdom/lib/jsdom/living/generated/AddEventListenerOptions.js +44 -0
  532. data/node_modules/jsdom/lib/jsdom/living/generated/AssignedNodesOptions.js +28 -0
  533. data/node_modules/jsdom/lib/jsdom/living/generated/Attr.js +215 -0
  534. data/node_modules/jsdom/lib/jsdom/living/generated/BarProp.js +118 -0
  535. data/node_modules/jsdom/lib/jsdom/living/generated/BinaryType.js +12 -0
  536. data/node_modules/jsdom/lib/jsdom/living/generated/Blob.js +198 -0
  537. data/node_modules/jsdom/lib/jsdom/living/generated/BlobCallback.js +34 -0
  538. data/node_modules/jsdom/lib/jsdom/living/generated/BlobPropertyBag.js +42 -0
  539. data/node_modules/jsdom/lib/jsdom/living/generated/CDATASection.js +114 -0
  540. data/node_modules/jsdom/lib/jsdom/living/generated/CanPlayTypeResult.js +12 -0
  541. data/node_modules/jsdom/lib/jsdom/living/generated/CharacterData.js +436 -0
  542. data/node_modules/jsdom/lib/jsdom/living/generated/CloseEvent.js +164 -0
  543. data/node_modules/jsdom/lib/jsdom/living/generated/CloseEventInit.js +56 -0
  544. data/node_modules/jsdom/lib/jsdom/living/generated/Comment.js +122 -0
  545. data/node_modules/jsdom/lib/jsdom/living/generated/CompositionEvent.js +217 -0
  546. data/node_modules/jsdom/lib/jsdom/living/generated/CompositionEventInit.js +32 -0
  547. data/node_modules/jsdom/lib/jsdom/living/generated/CustomElementConstructor.js +38 -0
  548. data/node_modules/jsdom/lib/jsdom/living/generated/CustomElementRegistry.js +242 -0
  549. data/node_modules/jsdom/lib/jsdom/living/generated/CustomEvent.js +200 -0
  550. data/node_modules/jsdom/lib/jsdom/living/generated/CustomEventInit.js +32 -0
  551. data/node_modules/jsdom/lib/jsdom/living/generated/DOMImplementation.js +232 -0
  552. data/node_modules/jsdom/lib/jsdom/living/generated/DOMParser.js +140 -0
  553. data/node_modules/jsdom/lib/jsdom/living/generated/DOMStringMap.js +322 -0
  554. data/node_modules/jsdom/lib/jsdom/living/generated/DOMTokenList.js +531 -0
  555. data/node_modules/jsdom/lib/jsdom/living/generated/Document.js +3322 -0
  556. data/node_modules/jsdom/lib/jsdom/living/generated/DocumentFragment.js +325 -0
  557. data/node_modules/jsdom/lib/jsdom/living/generated/DocumentReadyState.js +12 -0
  558. data/node_modules/jsdom/lib/jsdom/living/generated/DocumentType.js +246 -0
  559. data/node_modules/jsdom/lib/jsdom/living/generated/Element.js +1609 -0
  560. data/node_modules/jsdom/lib/jsdom/living/generated/ElementCreationOptions.js +26 -0
  561. data/node_modules/jsdom/lib/jsdom/living/generated/ElementDefinitionOptions.js +26 -0
  562. data/node_modules/jsdom/lib/jsdom/living/generated/EndingType.js +12 -0
  563. data/node_modules/jsdom/lib/jsdom/living/generated/ErrorEvent.js +186 -0
  564. data/node_modules/jsdom/lib/jsdom/living/generated/ErrorEventInit.js +80 -0
  565. data/node_modules/jsdom/lib/jsdom/living/generated/Event.js +390 -0
  566. data/node_modules/jsdom/lib/jsdom/living/generated/EventHandlerNonNull.js +40 -0
  567. data/node_modules/jsdom/lib/jsdom/living/generated/EventInit.js +52 -0
  568. data/node_modules/jsdom/lib/jsdom/living/generated/EventListener.js +35 -0
  569. data/node_modules/jsdom/lib/jsdom/living/generated/EventListenerOptions.js +28 -0
  570. data/node_modules/jsdom/lib/jsdom/living/generated/EventModifierInit.js +188 -0
  571. data/node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js +252 -0
  572. data/node_modules/jsdom/lib/jsdom/living/generated/External.js +129 -0
  573. data/node_modules/jsdom/lib/jsdom/living/generated/File.js +176 -0
  574. data/node_modules/jsdom/lib/jsdom/living/generated/FileList.js +305 -0
  575. data/node_modules/jsdom/lib/jsdom/living/generated/FilePropertyBag.js +30 -0
  576. data/node_modules/jsdom/lib/jsdom/living/generated/FileReader.js +440 -0
  577. data/node_modules/jsdom/lib/jsdom/living/generated/FocusEvent.js +142 -0
  578. data/node_modules/jsdom/lib/jsdom/living/generated/FocusEventInit.js +36 -0
  579. data/node_modules/jsdom/lib/jsdom/living/generated/FormData.js +421 -0
  580. data/node_modules/jsdom/lib/jsdom/living/generated/Function.js +46 -0
  581. data/node_modules/jsdom/lib/jsdom/living/generated/GetRootNodeOptions.js +28 -0
  582. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLAnchorElement.js +915 -0
  583. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLAreaElement.js +739 -0
  584. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLAudioElement.js +115 -0
  585. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLBRElement.js +153 -0
  586. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLBaseElement.js +188 -0
  587. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLBodyElement.js +808 -0
  588. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLButtonElement.js +487 -0
  589. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLCanvasElement.js +291 -0
  590. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLCollection.js +358 -0
  591. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLDListElement.js +156 -0
  592. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLDataElement.js +153 -0
  593. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLDataListElement.js +128 -0
  594. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLDetailsElement.js +156 -0
  595. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLDialogElement.js +156 -0
  596. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLDirectoryElement.js +156 -0
  597. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLDivElement.js +153 -0
  598. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLElement.js +2269 -0
  599. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLEmbedElement.js +346 -0
  600. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLFieldSetElement.js +315 -0
  601. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLFontElement.js +226 -0
  602. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLFormElement.js +457 -0
  603. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLFrameElement.js +459 -0
  604. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLFrameSetElement.js +683 -0
  605. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLHRElement.js +300 -0
  606. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLHeadElement.js +115 -0
  607. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLHeadingElement.js +153 -0
  608. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLHtmlElement.js +153 -0
  609. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLIFrameElement.js +621 -0
  610. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLImageElement.js +789 -0
  611. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLInputElement.js +1696 -0
  612. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLLIElement.js +194 -0
  613. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLLabelElement.js +175 -0
  614. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLLegendElement.js +164 -0
  615. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLLinkElement.js +496 -0
  616. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLMapElement.js +166 -0
  617. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLMarqueeElement.js +509 -0
  618. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLMediaElement.js +802 -0
  619. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLMenuElement.js +156 -0
  620. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLMetaElement.js +261 -0
  621. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLMeterElement.js +338 -0
  622. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLModElement.js +202 -0
  623. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLOListElement.js +266 -0
  624. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLObjectElement.js +839 -0
  625. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptGroupElement.js +192 -0
  626. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptionElement.js +351 -0
  627. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptionsCollection.js +533 -0
  628. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLOutputElement.js +371 -0
  629. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLParagraphElement.js +153 -0
  630. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLParamElement.js +261 -0
  631. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLPictureElement.js +115 -0
  632. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLPreElement.js +158 -0
  633. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLProgressElement.js +209 -0
  634. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLQuoteElement.js +166 -0
  635. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLScriptElement.js +424 -0
  636. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLSelectElement.js +957 -0
  637. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLSlotElement.js +188 -0
  638. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLSourceElement.js +310 -0
  639. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLSpanElement.js +115 -0
  640. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLStyleElement.js +200 -0
  641. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableCaptionElement.js +153 -0
  642. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableCellElement.js +635 -0
  643. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableColElement.js +339 -0
  644. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableElement.js +725 -0
  645. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableRowElement.js +386 -0
  646. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableSectionElement.js +329 -0
  647. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLTemplateElement.js +126 -0
  648. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLTextAreaElement.js +1088 -0
  649. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLTimeElement.js +153 -0
  650. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLTitleElement.js +152 -0
  651. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLTrackElement.js +334 -0
  652. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLUListElement.js +192 -0
  653. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLUnknownElement.js +114 -0
  654. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLVideoElement.js +310 -0
  655. data/node_modules/jsdom/lib/jsdom/living/generated/HashChangeEvent.js +153 -0
  656. data/node_modules/jsdom/lib/jsdom/living/generated/HashChangeEventInit.js +44 -0
  657. data/node_modules/jsdom/lib/jsdom/living/generated/Headers.js +379 -0
  658. data/node_modules/jsdom/lib/jsdom/living/generated/History.js +256 -0
  659. data/node_modules/jsdom/lib/jsdom/living/generated/InputEvent.js +164 -0
  660. data/node_modules/jsdom/lib/jsdom/living/generated/InputEventInit.js +59 -0
  661. data/node_modules/jsdom/lib/jsdom/living/generated/KeyboardEvent.js +413 -0
  662. data/node_modules/jsdom/lib/jsdom/living/generated/KeyboardEventInit.js +104 -0
  663. data/node_modules/jsdom/lib/jsdom/living/generated/Location.js +370 -0
  664. data/node_modules/jsdom/lib/jsdom/living/generated/MessageEvent.js +301 -0
  665. data/node_modules/jsdom/lib/jsdom/living/generated/MessageEventInit.js +94 -0
  666. data/node_modules/jsdom/lib/jsdom/living/generated/MimeType.js +151 -0
  667. data/node_modules/jsdom/lib/jsdom/living/generated/MimeTypeArray.js +330 -0
  668. data/node_modules/jsdom/lib/jsdom/living/generated/MouseEvent.js +463 -0
  669. data/node_modules/jsdom/lib/jsdom/living/generated/MouseEventInit.js +108 -0
  670. data/node_modules/jsdom/lib/jsdom/living/generated/MutationCallback.js +38 -0
  671. data/node_modules/jsdom/lib/jsdom/living/generated/MutationObserver.js +171 -0
  672. data/node_modules/jsdom/lib/jsdom/living/generated/MutationObserverInit.js +103 -0
  673. data/node_modules/jsdom/lib/jsdom/living/generated/MutationRecord.js +216 -0
  674. data/node_modules/jsdom/lib/jsdom/living/generated/NamedNodeMap.js +522 -0
  675. data/node_modules/jsdom/lib/jsdom/living/generated/Navigator.js +297 -0
  676. data/node_modules/jsdom/lib/jsdom/living/generated/Node.js +736 -0
  677. data/node_modules/jsdom/lib/jsdom/living/generated/NodeFilter.js +74 -0
  678. data/node_modules/jsdom/lib/jsdom/living/generated/NodeIterator.js +196 -0
  679. data/node_modules/jsdom/lib/jsdom/living/generated/NodeList.js +309 -0
  680. data/node_modules/jsdom/lib/jsdom/living/generated/OnBeforeUnloadEventHandlerNonNull.js +46 -0
  681. data/node_modules/jsdom/lib/jsdom/living/generated/OnErrorEventHandlerNonNull.js +60 -0
  682. data/node_modules/jsdom/lib/jsdom/living/generated/PageTransitionEvent.js +146 -0
  683. data/node_modules/jsdom/lib/jsdom/living/generated/PageTransitionEventInit.js +32 -0
  684. data/node_modules/jsdom/lib/jsdom/living/generated/Performance.js +145 -0
  685. data/node_modules/jsdom/lib/jsdom/living/generated/Plugin.js +361 -0
  686. data/node_modules/jsdom/lib/jsdom/living/generated/PluginArray.js +340 -0
  687. data/node_modules/jsdom/lib/jsdom/living/generated/PopStateEvent.js +142 -0
  688. data/node_modules/jsdom/lib/jsdom/living/generated/PopStateEventInit.js +32 -0
  689. data/node_modules/jsdom/lib/jsdom/living/generated/ProcessingInstruction.js +125 -0
  690. data/node_modules/jsdom/lib/jsdom/living/generated/ProgressEvent.js +166 -0
  691. data/node_modules/jsdom/lib/jsdom/living/generated/ProgressEventInit.js +56 -0
  692. data/node_modules/jsdom/lib/jsdom/living/generated/Range.js +619 -0
  693. data/node_modules/jsdom/lib/jsdom/living/generated/SVGAnimatedString.js +143 -0
  694. data/node_modules/jsdom/lib/jsdom/living/generated/SVGBoundingBoxOptions.js +64 -0
  695. data/node_modules/jsdom/lib/jsdom/living/generated/SVGElement.js +1986 -0
  696. data/node_modules/jsdom/lib/jsdom/living/generated/SVGGraphicsElement.js +144 -0
  697. data/node_modules/jsdom/lib/jsdom/living/generated/SVGNumber.js +130 -0
  698. data/node_modules/jsdom/lib/jsdom/living/generated/SVGSVGElement.js +681 -0
  699. data/node_modules/jsdom/lib/jsdom/living/generated/SVGStringList.js +504 -0
  700. data/node_modules/jsdom/lib/jsdom/living/generated/SVGTitleElement.js +114 -0
  701. data/node_modules/jsdom/lib/jsdom/living/generated/Screen.js +173 -0
  702. data/node_modules/jsdom/lib/jsdom/living/generated/ScrollBehavior.js +12 -0
  703. data/node_modules/jsdom/lib/jsdom/living/generated/ScrollIntoViewOptions.js +45 -0
  704. data/node_modules/jsdom/lib/jsdom/living/generated/ScrollLogicalPosition.js +12 -0
  705. data/node_modules/jsdom/lib/jsdom/living/generated/ScrollOptions.js +30 -0
  706. data/node_modules/jsdom/lib/jsdom/living/generated/ScrollRestoration.js +12 -0
  707. data/node_modules/jsdom/lib/jsdom/living/generated/Selection.js +527 -0
  708. data/node_modules/jsdom/lib/jsdom/living/generated/SelectionMode.js +12 -0
  709. data/node_modules/jsdom/lib/jsdom/living/generated/ShadowRoot.js +185 -0
  710. data/node_modules/jsdom/lib/jsdom/living/generated/ShadowRootInit.js +30 -0
  711. data/node_modules/jsdom/lib/jsdom/living/generated/ShadowRootMode.js +12 -0
  712. data/node_modules/jsdom/lib/jsdom/living/generated/StaticRange.js +126 -0
  713. data/node_modules/jsdom/lib/jsdom/living/generated/StaticRangeInit.js +66 -0
  714. data/node_modules/jsdom/lib/jsdom/living/generated/Storage.js +389 -0
  715. data/node_modules/jsdom/lib/jsdom/living/generated/StorageEvent.js +305 -0
  716. data/node_modules/jsdom/lib/jsdom/living/generated/StorageEventInit.js +93 -0
  717. data/node_modules/jsdom/lib/jsdom/living/generated/StyleSheetList.js +307 -0
  718. data/node_modules/jsdom/lib/jsdom/living/generated/SupportedType.js +18 -0
  719. data/node_modules/jsdom/lib/jsdom/living/generated/Text.js +169 -0
  720. data/node_modules/jsdom/lib/jsdom/living/generated/TextTrackKind.js +12 -0
  721. data/node_modules/jsdom/lib/jsdom/living/generated/TouchEvent.js +208 -0
  722. data/node_modules/jsdom/lib/jsdom/living/generated/TouchEventInit.js +89 -0
  723. data/node_modules/jsdom/lib/jsdom/living/generated/TreeWalker.js +236 -0
  724. data/node_modules/jsdom/lib/jsdom/living/generated/UIEvent.js +235 -0
  725. data/node_modules/jsdom/lib/jsdom/living/generated/UIEventInit.js +59 -0
  726. data/node_modules/jsdom/lib/jsdom/living/generated/ValidityState.js +228 -0
  727. data/node_modules/jsdom/lib/jsdom/living/generated/VisibilityState.js +12 -0
  728. data/node_modules/jsdom/lib/jsdom/living/generated/VoidFunction.js +30 -0
  729. data/node_modules/jsdom/lib/jsdom/living/generated/WebSocket.js +444 -0
  730. data/node_modules/jsdom/lib/jsdom/living/generated/WheelEvent.js +183 -0
  731. data/node_modules/jsdom/lib/jsdom/living/generated/WheelEventInit.js +68 -0
  732. data/node_modules/jsdom/lib/jsdom/living/generated/XMLDocument.js +114 -0
  733. data/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequest.js +617 -0
  734. data/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequestEventTarget.js +341 -0
  735. data/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequestResponseType.js +12 -0
  736. data/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequestUpload.js +114 -0
  737. data/node_modules/jsdom/lib/jsdom/living/generated/XMLSerializer.js +133 -0
  738. data/node_modules/jsdom/lib/jsdom/living/generated/utils.js +141 -0
  739. data/node_modules/jsdom/lib/jsdom/living/helpers/agent-factory.js +15 -0
  740. data/node_modules/jsdom/lib/jsdom/living/helpers/binary-data.js +9 -0
  741. data/node_modules/jsdom/lib/jsdom/living/helpers/create-element.js +320 -0
  742. data/node_modules/jsdom/lib/jsdom/living/helpers/create-event-accessor.js +188 -0
  743. data/node_modules/jsdom/lib/jsdom/living/helpers/custom-elements.js +270 -0
  744. data/node_modules/jsdom/lib/jsdom/living/helpers/dates-and-times.js +270 -0
  745. data/node_modules/jsdom/lib/jsdom/living/helpers/details.js +15 -0
  746. data/node_modules/jsdom/lib/jsdom/living/helpers/document-base-url.js +54 -0
  747. data/node_modules/jsdom/lib/jsdom/living/helpers/events.js +24 -0
  748. data/node_modules/jsdom/lib/jsdom/living/helpers/focusing.js +104 -0
  749. data/node_modules/jsdom/lib/jsdom/living/helpers/form-controls.js +306 -0
  750. data/node_modules/jsdom/lib/jsdom/living/helpers/html-constructor.js +78 -0
  751. data/node_modules/jsdom/lib/jsdom/living/helpers/http-request.js +254 -0
  752. data/node_modules/jsdom/lib/jsdom/living/helpers/internal-constants.js +12 -0
  753. data/node_modules/jsdom/lib/jsdom/living/helpers/iterable-weak-set.js +48 -0
  754. data/node_modules/jsdom/lib/jsdom/living/helpers/json.js +12 -0
  755. data/node_modules/jsdom/lib/jsdom/living/helpers/mutation-observers.js +198 -0
  756. data/node_modules/jsdom/lib/jsdom/living/helpers/namespaces.js +15 -0
  757. data/node_modules/jsdom/lib/jsdom/living/helpers/node.js +68 -0
  758. data/node_modules/jsdom/lib/jsdom/living/helpers/number-and-date-inputs.js +195 -0
  759. data/node_modules/jsdom/lib/jsdom/living/helpers/ordered-set.js +104 -0
  760. data/node_modules/jsdom/lib/jsdom/living/helpers/runtime-script-errors.js +76 -0
  761. data/node_modules/jsdom/lib/jsdom/living/helpers/selectors.js +47 -0
  762. data/node_modules/jsdom/lib/jsdom/living/helpers/shadow-dom.js +285 -0
  763. data/node_modules/jsdom/lib/jsdom/living/helpers/strings.js +148 -0
  764. data/node_modules/jsdom/lib/jsdom/living/helpers/style-rules.js +114 -0
  765. data/node_modules/jsdom/lib/jsdom/living/helpers/stylesheets.js +113 -0
  766. data/node_modules/jsdom/lib/jsdom/living/helpers/svg/basic-types.js +41 -0
  767. data/node_modules/jsdom/lib/jsdom/living/helpers/svg/render.js +46 -0
  768. data/node_modules/jsdom/lib/jsdom/living/helpers/text.js +19 -0
  769. data/node_modules/jsdom/lib/jsdom/living/helpers/traversal.js +72 -0
  770. data/node_modules/jsdom/lib/jsdom/living/helpers/validate-names.js +75 -0
  771. data/node_modules/jsdom/lib/jsdom/living/hr-time/Performance-impl.js +25 -0
  772. data/node_modules/jsdom/lib/jsdom/living/interfaces.js +217 -0
  773. data/node_modules/jsdom/lib/jsdom/living/mutation-observer/MutationObserver-impl.js +95 -0
  774. data/node_modules/jsdom/lib/jsdom/living/mutation-observer/MutationRecord-impl.js +37 -0
  775. data/node_modules/jsdom/lib/jsdom/living/named-properties-window.js +141 -0
  776. data/node_modules/jsdom/lib/jsdom/living/navigator/MimeType-impl.js +3 -0
  777. data/node_modules/jsdom/lib/jsdom/living/navigator/MimeTypeArray-impl.js +21 -0
  778. data/node_modules/jsdom/lib/jsdom/living/navigator/Navigator-impl.js +29 -0
  779. data/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorConcurrentHardware-impl.js +8 -0
  780. data/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorCookies-impl.js +7 -0
  781. data/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorID-impl.js +37 -0
  782. data/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorLanguage-impl.js +9 -0
  783. data/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorOnLine-impl.js +7 -0
  784. data/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorPlugins-impl.js +8 -0
  785. data/node_modules/jsdom/lib/jsdom/living/navigator/Plugin-impl.js +3 -0
  786. data/node_modules/jsdom/lib/jsdom/living/navigator/PluginArray-impl.js +23 -0
  787. data/node_modules/jsdom/lib/jsdom/living/node-document-position.js +10 -0
  788. data/node_modules/jsdom/lib/jsdom/living/node-type.js +16 -0
  789. data/node_modules/jsdom/lib/jsdom/living/node.js +331 -0
  790. data/node_modules/jsdom/lib/jsdom/living/nodes/CDATASection-impl.js +16 -0
  791. data/node_modules/jsdom/lib/jsdom/living/nodes/CharacterData-impl.js +118 -0
  792. data/node_modules/jsdom/lib/jsdom/living/nodes/ChildNode-impl.js +80 -0
  793. data/node_modules/jsdom/lib/jsdom/living/nodes/Comment-impl.js +20 -0
  794. data/node_modules/jsdom/lib/jsdom/living/nodes/DOMImplementation-impl.js +120 -0
  795. data/node_modules/jsdom/lib/jsdom/living/nodes/DOMStringMap-impl.js +64 -0
  796. data/node_modules/jsdom/lib/jsdom/living/nodes/DOMTokenList-impl.js +171 -0
  797. data/node_modules/jsdom/lib/jsdom/living/nodes/Document-impl.js +946 -0
  798. data/node_modules/jsdom/lib/jsdom/living/nodes/DocumentFragment-impl.js +44 -0
  799. data/node_modules/jsdom/lib/jsdom/living/nodes/DocumentOrShadowRoot-impl.js +28 -0
  800. data/node_modules/jsdom/lib/jsdom/living/nodes/DocumentType-impl.js +24 -0
  801. data/node_modules/jsdom/lib/jsdom/living/nodes/Element-impl.js +578 -0
  802. data/node_modules/jsdom/lib/jsdom/living/nodes/ElementCSSInlineStyle-impl.js +25 -0
  803. data/node_modules/jsdom/lib/jsdom/living/nodes/ElementContentEditable-impl.js +7 -0
  804. data/node_modules/jsdom/lib/jsdom/living/nodes/GlobalEventHandlers-impl.js +95 -0
  805. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLAnchorElement-impl.js +50 -0
  806. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLAreaElement-impl.js +43 -0
  807. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLAudioElement-impl.js +9 -0
  808. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLBRElement-impl.js +9 -0
  809. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLBaseElement-impl.js +27 -0
  810. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLBodyElement-impl.js +17 -0
  811. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLButtonElement-impl.js +79 -0
  812. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLCanvasElement-impl.js +130 -0
  813. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLCollection-impl.js +96 -0
  814. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDListElement-impl.js +9 -0
  815. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDataElement-impl.js +9 -0
  816. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDataListElement-impl.js +20 -0
  817. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDetailsElement-impl.js +35 -0
  818. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDialogElement-impl.js +9 -0
  819. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDirectoryElement-impl.js +9 -0
  820. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDivElement-impl.js +9 -0
  821. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLElement-impl.js +160 -0
  822. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLEmbedElement-impl.js +8 -0
  823. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFieldSetElement-impl.js +43 -0
  824. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFontElement-impl.js +9 -0
  825. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFormElement-impl.js +226 -0
  826. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFrameElement-impl.js +261 -0
  827. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFrameSetElement-impl.js +17 -0
  828. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHRElement-impl.js +9 -0
  829. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHeadElement-impl.js +9 -0
  830. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHeadingElement-impl.js +9 -0
  831. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHtmlElement-impl.js +9 -0
  832. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHyperlinkElementUtils-impl.js +371 -0
  833. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLIFrameElement-impl.js +9 -0
  834. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLImageElement-impl.js +132 -0
  835. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLInputElement-impl.js +1128 -0
  836. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLLIElement-impl.js +9 -0
  837. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLLabelElement-impl.js +94 -0
  838. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLLegendElement-impl.js +18 -0
  839. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLLinkElement-impl.js +101 -0
  840. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMapElement-impl.js +13 -0
  841. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMarqueeElement-impl.js +9 -0
  842. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMediaElement-impl.js +138 -0
  843. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMenuElement-impl.js +9 -0
  844. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMetaElement-impl.js +9 -0
  845. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMeterElement-impl.js +180 -0
  846. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLModElement-impl.js +9 -0
  847. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOListElement-impl.js +22 -0
  848. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLObjectElement-impl.js +26 -0
  849. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOptGroupElement-impl.js +9 -0
  850. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOptionElement-impl.js +146 -0
  851. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOptionsCollection-impl.js +110 -0
  852. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOrSVGElement-impl.js +85 -0
  853. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOutputElement-impl.js +88 -0
  854. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLParagraphElement-impl.js +9 -0
  855. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLParamElement-impl.js +9 -0
  856. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLPictureElement-impl.js +9 -0
  857. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLPreElement-impl.js +9 -0
  858. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLProgressElement-impl.js +74 -0
  859. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLQuoteElement-impl.js +9 -0
  860. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLScriptElement-impl.js +265 -0
  861. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLSelectElement-impl.js +283 -0
  862. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLSlotElement-impl.js +59 -0
  863. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLSourceElement-impl.js +8 -0
  864. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLSpanElement-impl.js +9 -0
  865. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLStyleElement-impl.js +74 -0
  866. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableCaptionElement-impl.js +9 -0
  867. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableCellElement-impl.js +73 -0
  868. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableColElement-impl.js +9 -0
  869. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableElement-impl.js +236 -0
  870. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableRowElement-impl.js +88 -0
  871. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableSectionElement-impl.js +61 -0
  872. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTemplateElement-impl.js +67 -0
  873. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTextAreaElement-impl.js +272 -0
  874. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTimeElement-impl.js +9 -0
  875. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTitleElement-impl.js +18 -0
  876. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTrackElement-impl.js +13 -0
  877. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLUListElement-impl.js +9 -0
  878. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLUnknownElement-impl.js +9 -0
  879. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLVideoElement-impl.js +17 -0
  880. data/node_modules/jsdom/lib/jsdom/living/nodes/LinkStyle-impl.js +2 -0
  881. data/node_modules/jsdom/lib/jsdom/living/nodes/Node-impl.js +1165 -0
  882. data/node_modules/jsdom/lib/jsdom/living/nodes/NodeList-impl.js +43 -0
  883. data/node_modules/jsdom/lib/jsdom/living/nodes/NonDocumentTypeChildNode-impl.js +28 -0
  884. data/node_modules/jsdom/lib/jsdom/living/nodes/NonElementParentNode-impl.js +11 -0
  885. data/node_modules/jsdom/lib/jsdom/living/nodes/ParentNode-impl.js +91 -0
  886. data/node_modules/jsdom/lib/jsdom/living/nodes/ProcessingInstruction-impl.js +22 -0
  887. data/node_modules/jsdom/lib/jsdom/living/nodes/SVGElement-impl.js +64 -0
  888. data/node_modules/jsdom/lib/jsdom/living/nodes/SVGGraphicsElement-impl.js +16 -0
  889. data/node_modules/jsdom/lib/jsdom/living/nodes/SVGSVGElement-impl.js +42 -0
  890. data/node_modules/jsdom/lib/jsdom/living/nodes/SVGTests-impl.js +42 -0
  891. data/node_modules/jsdom/lib/jsdom/living/nodes/SVGTitleElement-impl.js +9 -0
  892. data/node_modules/jsdom/lib/jsdom/living/nodes/ShadowRoot-impl.js +40 -0
  893. data/node_modules/jsdom/lib/jsdom/living/nodes/Slotable-impl.js +48 -0
  894. data/node_modules/jsdom/lib/jsdom/living/nodes/Text-impl.js +96 -0
  895. data/node_modules/jsdom/lib/jsdom/living/nodes/WindowEventHandlers-impl.js +52 -0
  896. data/node_modules/jsdom/lib/jsdom/living/nodes/XMLDocument-impl.js +4 -0
  897. data/node_modules/jsdom/lib/jsdom/living/post-message.js +39 -0
  898. data/node_modules/jsdom/lib/jsdom/living/range/AbstractRange-impl.js +43 -0
  899. data/node_modules/jsdom/lib/jsdom/living/range/Range-impl.js +889 -0
  900. data/node_modules/jsdom/lib/jsdom/living/range/StaticRange-impl.js +39 -0
  901. data/node_modules/jsdom/lib/jsdom/living/range/boundary-point.js +47 -0
  902. data/node_modules/jsdom/lib/jsdom/living/selection/Selection-impl.js +342 -0
  903. data/node_modules/jsdom/lib/jsdom/living/svg/SVGAnimatedString-impl.js +38 -0
  904. data/node_modules/jsdom/lib/jsdom/living/svg/SVGListBase.js +195 -0
  905. data/node_modules/jsdom/lib/jsdom/living/svg/SVGNumber-impl.js +48 -0
  906. data/node_modules/jsdom/lib/jsdom/living/svg/SVGStringList-impl.js +16 -0
  907. data/node_modules/jsdom/lib/jsdom/living/traversal/NodeIterator-impl.js +127 -0
  908. data/node_modules/jsdom/lib/jsdom/living/traversal/TreeWalker-impl.js +217 -0
  909. data/node_modules/jsdom/lib/jsdom/living/traversal/helpers.js +44 -0
  910. data/node_modules/jsdom/lib/jsdom/living/websockets/WebSocket-impl-browser.js +175 -0
  911. data/node_modules/jsdom/lib/jsdom/living/websockets/WebSocket-impl.js +328 -0
  912. data/node_modules/jsdom/lib/jsdom/living/webstorage/Storage-impl.js +102 -0
  913. data/node_modules/jsdom/lib/jsdom/living/window/BarProp-impl.js +10 -0
  914. data/node_modules/jsdom/lib/jsdom/living/window/External-impl.js +9 -0
  915. data/node_modules/jsdom/lib/jsdom/living/window/History-impl.js +134 -0
  916. data/node_modules/jsdom/lib/jsdom/living/window/Location-impl.js +238 -0
  917. data/node_modules/jsdom/lib/jsdom/living/window/Screen-impl.js +13 -0
  918. data/node_modules/jsdom/lib/jsdom/living/window/SessionHistory.js +163 -0
  919. data/node_modules/jsdom/lib/jsdom/living/window/navigation.js +84 -0
  920. data/node_modules/jsdom/lib/jsdom/living/xhr/FormData-impl.js +171 -0
  921. data/node_modules/jsdom/lib/jsdom/living/xhr/XMLHttpRequest-impl.js +1023 -0
  922. data/node_modules/jsdom/lib/jsdom/living/xhr/XMLHttpRequestEventTarget-impl.js +17 -0
  923. data/node_modules/jsdom/lib/jsdom/living/xhr/XMLHttpRequestUpload-impl.js +4 -0
  924. data/node_modules/jsdom/lib/jsdom/living/xhr/xhr-sync-worker.js +60 -0
  925. data/node_modules/jsdom/lib/jsdom/living/xhr/xhr-utils.js +438 -0
  926. data/node_modules/jsdom/lib/jsdom/named-properties-tracker.js +158 -0
  927. data/node_modules/jsdom/lib/jsdom/utils.js +165 -0
  928. data/node_modules/jsdom/lib/jsdom/virtual-console.js +34 -0
  929. data/node_modules/jsdom/lib/jsdom/vm-shim.js +106 -0
  930. data/node_modules/jsdom/package.json +116 -0
  931. data/node_modules/levn/LICENSE +22 -0
  932. data/node_modules/levn/README.md +196 -0
  933. data/node_modules/levn/lib/cast.js +298 -0
  934. data/node_modules/levn/lib/coerce.js +285 -0
  935. data/node_modules/levn/lib/index.js +22 -0
  936. data/node_modules/levn/lib/parse-string.js +113 -0
  937. data/node_modules/levn/lib/parse.js +102 -0
  938. data/node_modules/levn/package.json +47 -0
  939. data/node_modules/lodash/LICENSE +47 -0
  940. data/node_modules/lodash/README.md +39 -0
  941. data/node_modules/lodash/_DataView.js +7 -0
  942. data/node_modules/lodash/_Hash.js +32 -0
  943. data/node_modules/lodash/_LazyWrapper.js +28 -0
  944. data/node_modules/lodash/_ListCache.js +32 -0
  945. data/node_modules/lodash/_LodashWrapper.js +22 -0
  946. data/node_modules/lodash/_Map.js +7 -0
  947. data/node_modules/lodash/_MapCache.js +32 -0
  948. data/node_modules/lodash/_Promise.js +7 -0
  949. data/node_modules/lodash/_Set.js +7 -0
  950. data/node_modules/lodash/_SetCache.js +27 -0
  951. data/node_modules/lodash/_Stack.js +27 -0
  952. data/node_modules/lodash/_Symbol.js +6 -0
  953. data/node_modules/lodash/_Uint8Array.js +6 -0
  954. data/node_modules/lodash/_WeakMap.js +7 -0
  955. data/node_modules/lodash/_apply.js +21 -0
  956. data/node_modules/lodash/_arrayAggregator.js +22 -0
  957. data/node_modules/lodash/_arrayEach.js +22 -0
  958. data/node_modules/lodash/_arrayEachRight.js +21 -0
  959. data/node_modules/lodash/_arrayEvery.js +23 -0
  960. data/node_modules/lodash/_arrayFilter.js +25 -0
  961. data/node_modules/lodash/_arrayIncludes.js +17 -0
  962. data/node_modules/lodash/_arrayIncludesWith.js +22 -0
  963. data/node_modules/lodash/_arrayLikeKeys.js +49 -0
  964. data/node_modules/lodash/_arrayMap.js +21 -0
  965. data/node_modules/lodash/_arrayPush.js +20 -0
  966. data/node_modules/lodash/_arrayReduce.js +26 -0
  967. data/node_modules/lodash/_arrayReduceRight.js +24 -0
  968. data/node_modules/lodash/_arraySample.js +15 -0
  969. data/node_modules/lodash/_arraySampleSize.js +17 -0
  970. data/node_modules/lodash/_arrayShuffle.js +15 -0
  971. data/node_modules/lodash/_arraySome.js +23 -0
  972. data/node_modules/lodash/_asciiSize.js +12 -0
  973. data/node_modules/lodash/_asciiToArray.js +12 -0
  974. data/node_modules/lodash/_asciiWords.js +15 -0
  975. data/node_modules/lodash/_assignMergeValue.js +20 -0
  976. data/node_modules/lodash/_assignValue.js +28 -0
  977. data/node_modules/lodash/_assocIndexOf.js +21 -0
  978. data/node_modules/lodash/_baseAggregator.js +21 -0
  979. data/node_modules/lodash/_baseAssign.js +17 -0
  980. data/node_modules/lodash/_baseAssignIn.js +17 -0
  981. data/node_modules/lodash/_baseAssignValue.js +25 -0
  982. data/node_modules/lodash/_baseAt.js +23 -0
  983. data/node_modules/lodash/_baseClamp.js +22 -0
  984. data/node_modules/lodash/_baseClone.js +166 -0
  985. data/node_modules/lodash/_baseConforms.js +18 -0
  986. data/node_modules/lodash/_baseConformsTo.js +27 -0
  987. data/node_modules/lodash/_baseCreate.js +30 -0
  988. data/node_modules/lodash/_baseDelay.js +21 -0
  989. data/node_modules/lodash/_baseDifference.js +67 -0
  990. data/node_modules/lodash/_baseEach.js +14 -0
  991. data/node_modules/lodash/_baseEachRight.js +14 -0
  992. data/node_modules/lodash/_baseEvery.js +21 -0
  993. data/node_modules/lodash/_baseExtremum.js +32 -0
  994. data/node_modules/lodash/_baseFill.js +32 -0
  995. data/node_modules/lodash/_baseFilter.js +21 -0
  996. data/node_modules/lodash/_baseFindIndex.js +24 -0
  997. data/node_modules/lodash/_baseFindKey.js +23 -0
  998. data/node_modules/lodash/_baseFlatten.js +38 -0
  999. data/node_modules/lodash/_baseFor.js +16 -0
  1000. data/node_modules/lodash/_baseForOwn.js +16 -0
  1001. data/node_modules/lodash/_baseForOwnRight.js +16 -0
  1002. data/node_modules/lodash/_baseForRight.js +15 -0
  1003. data/node_modules/lodash/_baseFunctions.js +19 -0
  1004. data/node_modules/lodash/_baseGet.js +24 -0
  1005. data/node_modules/lodash/_baseGetAllKeys.js +20 -0
  1006. data/node_modules/lodash/_baseGetTag.js +28 -0
  1007. data/node_modules/lodash/_baseGt.js +14 -0
  1008. data/node_modules/lodash/_baseHas.js +19 -0
  1009. data/node_modules/lodash/_baseHasIn.js +13 -0
  1010. data/node_modules/lodash/_baseInRange.js +18 -0
  1011. data/node_modules/lodash/_baseIndexOf.js +20 -0
  1012. data/node_modules/lodash/_baseIndexOfWith.js +23 -0
  1013. data/node_modules/lodash/_baseIntersection.js +74 -0
  1014. data/node_modules/lodash/_baseInverter.js +21 -0
  1015. data/node_modules/lodash/_baseInvoke.js +24 -0
  1016. data/node_modules/lodash/_baseIsArguments.js +18 -0
  1017. data/node_modules/lodash/_baseIsArrayBuffer.js +17 -0
  1018. data/node_modules/lodash/_baseIsDate.js +18 -0
  1019. data/node_modules/lodash/_baseIsEqual.js +28 -0
  1020. data/node_modules/lodash/_baseIsEqualDeep.js +83 -0
  1021. data/node_modules/lodash/_baseIsMap.js +18 -0
  1022. data/node_modules/lodash/_baseIsMatch.js +62 -0
  1023. data/node_modules/lodash/_baseIsNaN.js +12 -0
  1024. data/node_modules/lodash/_baseIsNative.js +47 -0
  1025. data/node_modules/lodash/_baseIsRegExp.js +18 -0
  1026. data/node_modules/lodash/_baseIsSet.js +18 -0
  1027. data/node_modules/lodash/_baseIsTypedArray.js +60 -0
  1028. data/node_modules/lodash/_baseIteratee.js +31 -0
  1029. data/node_modules/lodash/_baseKeys.js +30 -0
  1030. data/node_modules/lodash/_baseKeysIn.js +33 -0
  1031. data/node_modules/lodash/_baseLodash.js +10 -0
  1032. data/node_modules/lodash/_baseLt.js +14 -0
  1033. data/node_modules/lodash/_baseMap.js +22 -0
  1034. data/node_modules/lodash/_baseMatches.js +22 -0
  1035. data/node_modules/lodash/_baseMatchesProperty.js +33 -0
  1036. data/node_modules/lodash/_baseMean.js +20 -0
  1037. data/node_modules/lodash/_baseMerge.js +42 -0
  1038. data/node_modules/lodash/_baseMergeDeep.js +94 -0
  1039. data/node_modules/lodash/_baseNth.js +20 -0
  1040. data/node_modules/lodash/_baseOrderBy.js +49 -0
  1041. data/node_modules/lodash/_basePick.js +19 -0
  1042. data/node_modules/lodash/_basePickBy.js +30 -0
  1043. data/node_modules/lodash/_baseProperty.js +14 -0
  1044. data/node_modules/lodash/_basePropertyDeep.js +16 -0
  1045. data/node_modules/lodash/_basePropertyOf.js +14 -0
  1046. data/node_modules/lodash/_basePullAll.js +51 -0
  1047. data/node_modules/lodash/_basePullAt.js +37 -0
  1048. data/node_modules/lodash/_baseRandom.js +18 -0
  1049. data/node_modules/lodash/_baseRange.js +28 -0
  1050. data/node_modules/lodash/_baseReduce.js +23 -0
  1051. data/node_modules/lodash/_baseRepeat.js +35 -0
  1052. data/node_modules/lodash/_baseRest.js +17 -0
  1053. data/node_modules/lodash/_baseSample.js +15 -0
  1054. data/node_modules/lodash/_baseSampleSize.js +18 -0
  1055. data/node_modules/lodash/_baseSet.js +51 -0
  1056. data/node_modules/lodash/_baseSetData.js +17 -0
  1057. data/node_modules/lodash/_baseSetToString.js +22 -0
  1058. data/node_modules/lodash/_baseShuffle.js +15 -0
  1059. data/node_modules/lodash/_baseSlice.js +31 -0
  1060. data/node_modules/lodash/_baseSome.js +22 -0
  1061. data/node_modules/lodash/_baseSortBy.js +21 -0
  1062. data/node_modules/lodash/_baseSortedIndex.js +42 -0
  1063. data/node_modules/lodash/_baseSortedIndexBy.js +67 -0
  1064. data/node_modules/lodash/_baseSortedUniq.js +30 -0
  1065. data/node_modules/lodash/_baseSum.js +24 -0
  1066. data/node_modules/lodash/_baseTimes.js +20 -0
  1067. data/node_modules/lodash/_baseToNumber.js +24 -0
  1068. data/node_modules/lodash/_baseToPairs.js +18 -0
  1069. data/node_modules/lodash/_baseToString.js +37 -0
  1070. data/node_modules/lodash/_baseTrim.js +19 -0
  1071. data/node_modules/lodash/_baseUnary.js +14 -0
  1072. data/node_modules/lodash/_baseUniq.js +72 -0
  1073. data/node_modules/lodash/_baseUnset.js +20 -0
  1074. data/node_modules/lodash/_baseUpdate.js +18 -0
  1075. data/node_modules/lodash/_baseValues.js +19 -0
  1076. data/node_modules/lodash/_baseWhile.js +26 -0
  1077. data/node_modules/lodash/_baseWrapperValue.js +25 -0
  1078. data/node_modules/lodash/_baseXor.js +36 -0
  1079. data/node_modules/lodash/_baseZipObject.js +23 -0
  1080. data/node_modules/lodash/_cacheHas.js +13 -0
  1081. data/node_modules/lodash/_castArrayLikeObject.js +14 -0
  1082. data/node_modules/lodash/_castFunction.js +14 -0
  1083. data/node_modules/lodash/_castPath.js +21 -0
  1084. data/node_modules/lodash/_castRest.js +14 -0
  1085. data/node_modules/lodash/_castSlice.js +18 -0
  1086. data/node_modules/lodash/_charsEndIndex.js +19 -0
  1087. data/node_modules/lodash/_charsStartIndex.js +20 -0
  1088. data/node_modules/lodash/_cloneArrayBuffer.js +16 -0
  1089. data/node_modules/lodash/_cloneBuffer.js +35 -0
  1090. data/node_modules/lodash/_cloneDataView.js +16 -0
  1091. data/node_modules/lodash/_cloneRegExp.js +17 -0
  1092. data/node_modules/lodash/_cloneSymbol.js +18 -0
  1093. data/node_modules/lodash/_cloneTypedArray.js +16 -0
  1094. data/node_modules/lodash/_compareAscending.js +41 -0
  1095. data/node_modules/lodash/_compareMultiple.js +44 -0
  1096. data/node_modules/lodash/_composeArgs.js +39 -0
  1097. data/node_modules/lodash/_composeArgsRight.js +41 -0
  1098. data/node_modules/lodash/_copyArray.js +20 -0
  1099. data/node_modules/lodash/_copyObject.js +40 -0
  1100. data/node_modules/lodash/_copySymbols.js +16 -0
  1101. data/node_modules/lodash/_copySymbolsIn.js +16 -0
  1102. data/node_modules/lodash/_coreJsData.js +6 -0
  1103. data/node_modules/lodash/_countHolders.js +21 -0
  1104. data/node_modules/lodash/_createAggregator.js +23 -0
  1105. data/node_modules/lodash/_createAssigner.js +37 -0
  1106. data/node_modules/lodash/_createBaseEach.js +32 -0
  1107. data/node_modules/lodash/_createBaseFor.js +25 -0
  1108. data/node_modules/lodash/_createBind.js +28 -0
  1109. data/node_modules/lodash/_createCaseFirst.js +33 -0
  1110. data/node_modules/lodash/_createCompounder.js +24 -0
  1111. data/node_modules/lodash/_createCtor.js +37 -0
  1112. data/node_modules/lodash/_createCurry.js +46 -0
  1113. data/node_modules/lodash/_createFind.js +25 -0
  1114. data/node_modules/lodash/_createFlow.js +78 -0
  1115. data/node_modules/lodash/_createHybrid.js +92 -0
  1116. data/node_modules/lodash/_createInverter.js +17 -0
  1117. data/node_modules/lodash/_createMathOperation.js +38 -0
  1118. data/node_modules/lodash/_createOver.js +27 -0
  1119. data/node_modules/lodash/_createPadding.js +33 -0
  1120. data/node_modules/lodash/_createPartial.js +43 -0
  1121. data/node_modules/lodash/_createRange.js +30 -0
  1122. data/node_modules/lodash/_createRecurry.js +56 -0
  1123. data/node_modules/lodash/_createRelationalOperation.js +20 -0
  1124. data/node_modules/lodash/_createRound.js +35 -0
  1125. data/node_modules/lodash/_createSet.js +19 -0
  1126. data/node_modules/lodash/_createToPairs.js +30 -0
  1127. data/node_modules/lodash/_createWrap.js +106 -0
  1128. data/node_modules/lodash/_customDefaultsAssignIn.js +29 -0
  1129. data/node_modules/lodash/_customDefaultsMerge.js +28 -0
  1130. data/node_modules/lodash/_customOmitClone.js +16 -0
  1131. data/node_modules/lodash/_deburrLetter.js +71 -0
  1132. data/node_modules/lodash/_defineProperty.js +11 -0
  1133. data/node_modules/lodash/_equalArrays.js +84 -0
  1134. data/node_modules/lodash/_equalByTag.js +112 -0
  1135. data/node_modules/lodash/_equalObjects.js +90 -0
  1136. data/node_modules/lodash/_escapeHtmlChar.js +21 -0
  1137. data/node_modules/lodash/_escapeStringChar.js +22 -0
  1138. data/node_modules/lodash/_flatRest.js +16 -0
  1139. data/node_modules/lodash/_freeGlobal.js +4 -0
  1140. data/node_modules/lodash/_getAllKeys.js +16 -0
  1141. data/node_modules/lodash/_getAllKeysIn.js +17 -0
  1142. data/node_modules/lodash/_getData.js +15 -0
  1143. data/node_modules/lodash/_getFuncName.js +31 -0
  1144. data/node_modules/lodash/_getHolder.js +13 -0
  1145. data/node_modules/lodash/_getMapData.js +18 -0
  1146. data/node_modules/lodash/_getMatchData.js +24 -0
  1147. data/node_modules/lodash/_getNative.js +17 -0
  1148. data/node_modules/lodash/_getPrototype.js +6 -0
  1149. data/node_modules/lodash/_getRawTag.js +46 -0
  1150. data/node_modules/lodash/_getSymbols.js +30 -0
  1151. data/node_modules/lodash/_getSymbolsIn.js +25 -0
  1152. data/node_modules/lodash/_getTag.js +58 -0
  1153. data/node_modules/lodash/_getValue.js +13 -0
  1154. data/node_modules/lodash/_getView.js +33 -0
  1155. data/node_modules/lodash/_getWrapDetails.js +17 -0
  1156. data/node_modules/lodash/_hasPath.js +39 -0
  1157. data/node_modules/lodash/_hasUnicode.js +26 -0
  1158. data/node_modules/lodash/_hasUnicodeWord.js +15 -0
  1159. data/node_modules/lodash/_hashClear.js +15 -0
  1160. data/node_modules/lodash/_hashDelete.js +17 -0
  1161. data/node_modules/lodash/_hashGet.js +30 -0
  1162. data/node_modules/lodash/_hashHas.js +23 -0
  1163. data/node_modules/lodash/_hashSet.js +23 -0
  1164. data/node_modules/lodash/_initCloneArray.js +26 -0
  1165. data/node_modules/lodash/_initCloneByTag.js +77 -0
  1166. data/node_modules/lodash/_initCloneObject.js +18 -0
  1167. data/node_modules/lodash/_insertWrapDetails.js +23 -0
  1168. data/node_modules/lodash/_isFlattenable.js +20 -0
  1169. data/node_modules/lodash/_isIndex.js +25 -0
  1170. data/node_modules/lodash/_isIterateeCall.js +30 -0
  1171. data/node_modules/lodash/_isKey.js +29 -0
  1172. data/node_modules/lodash/_isKeyable.js +15 -0
  1173. data/node_modules/lodash/_isLaziable.js +28 -0
  1174. data/node_modules/lodash/_isMaskable.js +14 -0
  1175. data/node_modules/lodash/_isMasked.js +20 -0
  1176. data/node_modules/lodash/_isPrototype.js +18 -0
  1177. data/node_modules/lodash/_isStrictComparable.js +15 -0
  1178. data/node_modules/lodash/_iteratorToArray.js +18 -0
  1179. data/node_modules/lodash/_lazyClone.js +23 -0
  1180. data/node_modules/lodash/_lazyReverse.js +23 -0
  1181. data/node_modules/lodash/_lazyValue.js +69 -0
  1182. data/node_modules/lodash/_listCacheClear.js +13 -0
  1183. data/node_modules/lodash/_listCacheDelete.js +35 -0
  1184. data/node_modules/lodash/_listCacheGet.js +19 -0
  1185. data/node_modules/lodash/_listCacheHas.js +16 -0
  1186. data/node_modules/lodash/_listCacheSet.js +26 -0
  1187. data/node_modules/lodash/_mapCacheClear.js +21 -0
  1188. data/node_modules/lodash/_mapCacheDelete.js +18 -0
  1189. data/node_modules/lodash/_mapCacheGet.js +16 -0
  1190. data/node_modules/lodash/_mapCacheHas.js +16 -0
  1191. data/node_modules/lodash/_mapCacheSet.js +22 -0
  1192. data/node_modules/lodash/_mapToArray.js +18 -0
  1193. data/node_modules/lodash/_matchesStrictComparable.js +20 -0
  1194. data/node_modules/lodash/_memoizeCapped.js +26 -0
  1195. data/node_modules/lodash/_mergeData.js +90 -0
  1196. data/node_modules/lodash/_metaMap.js +6 -0
  1197. data/node_modules/lodash/_nativeCreate.js +6 -0
  1198. data/node_modules/lodash/_nativeKeys.js +6 -0
  1199. data/node_modules/lodash/_nativeKeysIn.js +20 -0
  1200. data/node_modules/lodash/_nodeUtil.js +30 -0
  1201. data/node_modules/lodash/_objectToString.js +22 -0
  1202. data/node_modules/lodash/_overArg.js +15 -0
  1203. data/node_modules/lodash/_overRest.js +36 -0
  1204. data/node_modules/lodash/_parent.js +16 -0
  1205. data/node_modules/lodash/_reEscape.js +4 -0
  1206. data/node_modules/lodash/_reEvaluate.js +4 -0
  1207. data/node_modules/lodash/_reInterpolate.js +4 -0
  1208. data/node_modules/lodash/_realNames.js +4 -0
  1209. data/node_modules/lodash/_reorder.js +29 -0
  1210. data/node_modules/lodash/_replaceHolders.js +29 -0
  1211. data/node_modules/lodash/_root.js +9 -0
  1212. data/node_modules/lodash/_safeGet.js +21 -0
  1213. data/node_modules/lodash/_setCacheAdd.js +19 -0
  1214. data/node_modules/lodash/_setCacheHas.js +14 -0
  1215. data/node_modules/lodash/_setData.js +20 -0
  1216. data/node_modules/lodash/_setToArray.js +18 -0
  1217. data/node_modules/lodash/_setToPairs.js +18 -0
  1218. data/node_modules/lodash/_setToString.js +14 -0
  1219. data/node_modules/lodash/_setWrapToString.js +21 -0
  1220. data/node_modules/lodash/_shortOut.js +37 -0
  1221. data/node_modules/lodash/_shuffleSelf.js +28 -0
  1222. data/node_modules/lodash/_stackClear.js +15 -0
  1223. data/node_modules/lodash/_stackDelete.js +18 -0
  1224. data/node_modules/lodash/_stackGet.js +14 -0
  1225. data/node_modules/lodash/_stackHas.js +14 -0
  1226. data/node_modules/lodash/_stackSet.js +34 -0
  1227. data/node_modules/lodash/_strictIndexOf.js +23 -0
  1228. data/node_modules/lodash/_strictLastIndexOf.js +21 -0
  1229. data/node_modules/lodash/_stringSize.js +18 -0
  1230. data/node_modules/lodash/_stringToArray.js +18 -0
  1231. data/node_modules/lodash/_stringToPath.js +27 -0
  1232. data/node_modules/lodash/_toKey.js +21 -0
  1233. data/node_modules/lodash/_toSource.js +26 -0
  1234. data/node_modules/lodash/_trimmedEndIndex.js +19 -0
  1235. data/node_modules/lodash/_unescapeHtmlChar.js +21 -0
  1236. data/node_modules/lodash/_unicodeSize.js +44 -0
  1237. data/node_modules/lodash/_unicodeToArray.js +40 -0
  1238. data/node_modules/lodash/_unicodeWords.js +69 -0
  1239. data/node_modules/lodash/_updateWrapDetails.js +46 -0
  1240. data/node_modules/lodash/_wrapperClone.js +23 -0
  1241. data/node_modules/lodash/add.js +22 -0
  1242. data/node_modules/lodash/after.js +42 -0
  1243. data/node_modules/lodash/array.js +67 -0
  1244. data/node_modules/lodash/ary.js +29 -0
  1245. data/node_modules/lodash/assign.js +58 -0
  1246. data/node_modules/lodash/assignIn.js +40 -0
  1247. data/node_modules/lodash/assignInWith.js +38 -0
  1248. data/node_modules/lodash/assignWith.js +37 -0
  1249. data/node_modules/lodash/at.js +23 -0
  1250. data/node_modules/lodash/attempt.js +35 -0
  1251. data/node_modules/lodash/before.js +40 -0
  1252. data/node_modules/lodash/bind.js +57 -0
  1253. data/node_modules/lodash/bindAll.js +41 -0
  1254. data/node_modules/lodash/bindKey.js +68 -0
  1255. data/node_modules/lodash/camelCase.js +29 -0
  1256. data/node_modules/lodash/capitalize.js +23 -0
  1257. data/node_modules/lodash/castArray.js +44 -0
  1258. data/node_modules/lodash/ceil.js +26 -0
  1259. data/node_modules/lodash/chain.js +38 -0
  1260. data/node_modules/lodash/chunk.js +50 -0
  1261. data/node_modules/lodash/clamp.js +39 -0
  1262. data/node_modules/lodash/clone.js +36 -0
  1263. data/node_modules/lodash/cloneDeep.js +29 -0
  1264. data/node_modules/lodash/cloneDeepWith.js +40 -0
  1265. data/node_modules/lodash/cloneWith.js +42 -0
  1266. data/node_modules/lodash/collection.js +30 -0
  1267. data/node_modules/lodash/commit.js +33 -0
  1268. data/node_modules/lodash/compact.js +31 -0
  1269. data/node_modules/lodash/concat.js +43 -0
  1270. data/node_modules/lodash/cond.js +60 -0
  1271. data/node_modules/lodash/conforms.js +35 -0
  1272. data/node_modules/lodash/conformsTo.js +32 -0
  1273. data/node_modules/lodash/constant.js +26 -0
  1274. data/node_modules/lodash/core.js +3877 -0
  1275. data/node_modules/lodash/core.min.js +29 -0
  1276. data/node_modules/lodash/countBy.js +40 -0
  1277. data/node_modules/lodash/create.js +43 -0
  1278. data/node_modules/lodash/curry.js +57 -0
  1279. data/node_modules/lodash/curryRight.js +54 -0
  1280. data/node_modules/lodash/date.js +3 -0
  1281. data/node_modules/lodash/debounce.js +191 -0
  1282. data/node_modules/lodash/deburr.js +45 -0
  1283. data/node_modules/lodash/defaultTo.js +25 -0
  1284. data/node_modules/lodash/defaults.js +64 -0
  1285. data/node_modules/lodash/defaultsDeep.js +30 -0
  1286. data/node_modules/lodash/defer.js +26 -0
  1287. data/node_modules/lodash/delay.js +28 -0
  1288. data/node_modules/lodash/difference.js +33 -0
  1289. data/node_modules/lodash/differenceBy.js +44 -0
  1290. data/node_modules/lodash/differenceWith.js +40 -0
  1291. data/node_modules/lodash/divide.js +22 -0
  1292. data/node_modules/lodash/drop.js +38 -0
  1293. data/node_modules/lodash/dropRight.js +39 -0
  1294. data/node_modules/lodash/dropRightWhile.js +45 -0
  1295. data/node_modules/lodash/dropWhile.js +45 -0
  1296. data/node_modules/lodash/each.js +1 -0
  1297. data/node_modules/lodash/eachRight.js +1 -0
  1298. data/node_modules/lodash/endsWith.js +43 -0
  1299. data/node_modules/lodash/entries.js +1 -0
  1300. data/node_modules/lodash/entriesIn.js +1 -0
  1301. data/node_modules/lodash/eq.js +37 -0
  1302. data/node_modules/lodash/escape.js +43 -0
  1303. data/node_modules/lodash/escapeRegExp.js +32 -0
  1304. data/node_modules/lodash/every.js +56 -0
  1305. data/node_modules/lodash/extend.js +1 -0
  1306. data/node_modules/lodash/extendWith.js +1 -0
  1307. data/node_modules/lodash/fill.js +45 -0
  1308. data/node_modules/lodash/filter.js +52 -0
  1309. data/node_modules/lodash/find.js +42 -0
  1310. data/node_modules/lodash/findIndex.js +55 -0
  1311. data/node_modules/lodash/findKey.js +44 -0
  1312. data/node_modules/lodash/findLast.js +25 -0
  1313. data/node_modules/lodash/findLastIndex.js +59 -0
  1314. data/node_modules/lodash/findLastKey.js +44 -0
  1315. data/node_modules/lodash/first.js +1 -0
  1316. data/node_modules/lodash/flake.lock +40 -0
  1317. data/node_modules/lodash/flake.nix +20 -0
  1318. data/node_modules/lodash/flatMap.js +29 -0
  1319. data/node_modules/lodash/flatMapDeep.js +31 -0
  1320. data/node_modules/lodash/flatMapDepth.js +31 -0
  1321. data/node_modules/lodash/flatten.js +22 -0
  1322. data/node_modules/lodash/flattenDeep.js +25 -0
  1323. data/node_modules/lodash/flattenDepth.js +33 -0
  1324. data/node_modules/lodash/flip.js +28 -0
  1325. data/node_modules/lodash/floor.js +26 -0
  1326. data/node_modules/lodash/flow.js +27 -0
  1327. data/node_modules/lodash/flowRight.js +26 -0
  1328. data/node_modules/lodash/forEach.js +41 -0
  1329. data/node_modules/lodash/forEachRight.js +31 -0
  1330. data/node_modules/lodash/forIn.js +39 -0
  1331. data/node_modules/lodash/forInRight.js +37 -0
  1332. data/node_modules/lodash/forOwn.js +36 -0
  1333. data/node_modules/lodash/forOwnRight.js +34 -0
  1334. data/node_modules/lodash/fp/F.js +1 -0
  1335. data/node_modules/lodash/fp/T.js +1 -0
  1336. data/node_modules/lodash/fp/__.js +1 -0
  1337. data/node_modules/lodash/fp/_baseConvert.js +569 -0
  1338. data/node_modules/lodash/fp/_convertBrowser.js +18 -0
  1339. data/node_modules/lodash/fp/_falseOptions.js +7 -0
  1340. data/node_modules/lodash/fp/_mapping.js +358 -0
  1341. data/node_modules/lodash/fp/_util.js +16 -0
  1342. data/node_modules/lodash/fp/add.js +5 -0
  1343. data/node_modules/lodash/fp/after.js +5 -0
  1344. data/node_modules/lodash/fp/all.js +1 -0
  1345. data/node_modules/lodash/fp/allPass.js +1 -0
  1346. data/node_modules/lodash/fp/always.js +1 -0
  1347. data/node_modules/lodash/fp/any.js +1 -0
  1348. data/node_modules/lodash/fp/anyPass.js +1 -0
  1349. data/node_modules/lodash/fp/apply.js +1 -0
  1350. data/node_modules/lodash/fp/array.js +2 -0
  1351. data/node_modules/lodash/fp/ary.js +5 -0
  1352. data/node_modules/lodash/fp/assign.js +5 -0
  1353. data/node_modules/lodash/fp/assignAll.js +5 -0
  1354. data/node_modules/lodash/fp/assignAllWith.js +5 -0
  1355. data/node_modules/lodash/fp/assignIn.js +5 -0
  1356. data/node_modules/lodash/fp/assignInAll.js +5 -0
  1357. data/node_modules/lodash/fp/assignInAllWith.js +5 -0
  1358. data/node_modules/lodash/fp/assignInWith.js +5 -0
  1359. data/node_modules/lodash/fp/assignWith.js +5 -0
  1360. data/node_modules/lodash/fp/assoc.js +1 -0
  1361. data/node_modules/lodash/fp/assocPath.js +1 -0
  1362. data/node_modules/lodash/fp/at.js +5 -0
  1363. data/node_modules/lodash/fp/attempt.js +5 -0
  1364. data/node_modules/lodash/fp/before.js +5 -0
  1365. data/node_modules/lodash/fp/bind.js +5 -0
  1366. data/node_modules/lodash/fp/bindAll.js +5 -0
  1367. data/node_modules/lodash/fp/bindKey.js +5 -0
  1368. data/node_modules/lodash/fp/camelCase.js +5 -0
  1369. data/node_modules/lodash/fp/capitalize.js +5 -0
  1370. data/node_modules/lodash/fp/castArray.js +5 -0
  1371. data/node_modules/lodash/fp/ceil.js +5 -0
  1372. data/node_modules/lodash/fp/chain.js +5 -0
  1373. data/node_modules/lodash/fp/chunk.js +5 -0
  1374. data/node_modules/lodash/fp/clamp.js +5 -0
  1375. data/node_modules/lodash/fp/clone.js +5 -0
  1376. data/node_modules/lodash/fp/cloneDeep.js +5 -0
  1377. data/node_modules/lodash/fp/cloneDeepWith.js +5 -0
  1378. data/node_modules/lodash/fp/cloneWith.js +5 -0
  1379. data/node_modules/lodash/fp/collection.js +2 -0
  1380. data/node_modules/lodash/fp/commit.js +5 -0
  1381. data/node_modules/lodash/fp/compact.js +5 -0
  1382. data/node_modules/lodash/fp/complement.js +1 -0
  1383. data/node_modules/lodash/fp/compose.js +1 -0
  1384. data/node_modules/lodash/fp/concat.js +5 -0
  1385. data/node_modules/lodash/fp/cond.js +5 -0
  1386. data/node_modules/lodash/fp/conforms.js +1 -0
  1387. data/node_modules/lodash/fp/conformsTo.js +5 -0
  1388. data/node_modules/lodash/fp/constant.js +5 -0
  1389. data/node_modules/lodash/fp/contains.js +1 -0
  1390. data/node_modules/lodash/fp/convert.js +18 -0
  1391. data/node_modules/lodash/fp/countBy.js +5 -0
  1392. data/node_modules/lodash/fp/create.js +5 -0
  1393. data/node_modules/lodash/fp/curry.js +5 -0
  1394. data/node_modules/lodash/fp/curryN.js +5 -0
  1395. data/node_modules/lodash/fp/curryRight.js +5 -0
  1396. data/node_modules/lodash/fp/curryRightN.js +5 -0
  1397. data/node_modules/lodash/fp/date.js +2 -0
  1398. data/node_modules/lodash/fp/debounce.js +5 -0
  1399. data/node_modules/lodash/fp/deburr.js +5 -0
  1400. data/node_modules/lodash/fp/defaultTo.js +5 -0
  1401. data/node_modules/lodash/fp/defaults.js +5 -0
  1402. data/node_modules/lodash/fp/defaultsAll.js +5 -0
  1403. data/node_modules/lodash/fp/defaultsDeep.js +5 -0
  1404. data/node_modules/lodash/fp/defaultsDeepAll.js +5 -0
  1405. data/node_modules/lodash/fp/defer.js +5 -0
  1406. data/node_modules/lodash/fp/delay.js +5 -0
  1407. data/node_modules/lodash/fp/difference.js +5 -0
  1408. data/node_modules/lodash/fp/differenceBy.js +5 -0
  1409. data/node_modules/lodash/fp/differenceWith.js +5 -0
  1410. data/node_modules/lodash/fp/dissoc.js +1 -0
  1411. data/node_modules/lodash/fp/dissocPath.js +1 -0
  1412. data/node_modules/lodash/fp/divide.js +5 -0
  1413. data/node_modules/lodash/fp/drop.js +5 -0
  1414. data/node_modules/lodash/fp/dropLast.js +1 -0
  1415. data/node_modules/lodash/fp/dropLastWhile.js +1 -0
  1416. data/node_modules/lodash/fp/dropRight.js +5 -0
  1417. data/node_modules/lodash/fp/dropRightWhile.js +5 -0
  1418. data/node_modules/lodash/fp/dropWhile.js +5 -0
  1419. data/node_modules/lodash/fp/each.js +1 -0
  1420. data/node_modules/lodash/fp/eachRight.js +1 -0
  1421. data/node_modules/lodash/fp/endsWith.js +5 -0
  1422. data/node_modules/lodash/fp/entries.js +1 -0
  1423. data/node_modules/lodash/fp/entriesIn.js +1 -0
  1424. data/node_modules/lodash/fp/eq.js +5 -0
  1425. data/node_modules/lodash/fp/equals.js +1 -0
  1426. data/node_modules/lodash/fp/escape.js +5 -0
  1427. data/node_modules/lodash/fp/escapeRegExp.js +5 -0
  1428. data/node_modules/lodash/fp/every.js +5 -0
  1429. data/node_modules/lodash/fp/extend.js +1 -0
  1430. data/node_modules/lodash/fp/extendAll.js +1 -0
  1431. data/node_modules/lodash/fp/extendAllWith.js +1 -0
  1432. data/node_modules/lodash/fp/extendWith.js +1 -0
  1433. data/node_modules/lodash/fp/fill.js +5 -0
  1434. data/node_modules/lodash/fp/filter.js +5 -0
  1435. data/node_modules/lodash/fp/find.js +5 -0
  1436. data/node_modules/lodash/fp/findFrom.js +5 -0
  1437. data/node_modules/lodash/fp/findIndex.js +5 -0
  1438. data/node_modules/lodash/fp/findIndexFrom.js +5 -0
  1439. data/node_modules/lodash/fp/findKey.js +5 -0
  1440. data/node_modules/lodash/fp/findLast.js +5 -0
  1441. data/node_modules/lodash/fp/findLastFrom.js +5 -0
  1442. data/node_modules/lodash/fp/findLastIndex.js +5 -0
  1443. data/node_modules/lodash/fp/findLastIndexFrom.js +5 -0
  1444. data/node_modules/lodash/fp/findLastKey.js +5 -0
  1445. data/node_modules/lodash/fp/first.js +1 -0
  1446. data/node_modules/lodash/fp/flatMap.js +5 -0
  1447. data/node_modules/lodash/fp/flatMapDeep.js +5 -0
  1448. data/node_modules/lodash/fp/flatMapDepth.js +5 -0
  1449. data/node_modules/lodash/fp/flatten.js +5 -0
  1450. data/node_modules/lodash/fp/flattenDeep.js +5 -0
  1451. data/node_modules/lodash/fp/flattenDepth.js +5 -0
  1452. data/node_modules/lodash/fp/flip.js +5 -0
  1453. data/node_modules/lodash/fp/floor.js +5 -0
  1454. data/node_modules/lodash/fp/flow.js +5 -0
  1455. data/node_modules/lodash/fp/flowRight.js +5 -0
  1456. data/node_modules/lodash/fp/forEach.js +5 -0
  1457. data/node_modules/lodash/fp/forEachRight.js +5 -0
  1458. data/node_modules/lodash/fp/forIn.js +5 -0
  1459. data/node_modules/lodash/fp/forInRight.js +5 -0
  1460. data/node_modules/lodash/fp/forOwn.js +5 -0
  1461. data/node_modules/lodash/fp/forOwnRight.js +5 -0
  1462. data/node_modules/lodash/fp/fromPairs.js +5 -0
  1463. data/node_modules/lodash/fp/function.js +2 -0
  1464. data/node_modules/lodash/fp/functions.js +5 -0
  1465. data/node_modules/lodash/fp/functionsIn.js +5 -0
  1466. data/node_modules/lodash/fp/get.js +5 -0
  1467. data/node_modules/lodash/fp/getOr.js +5 -0
  1468. data/node_modules/lodash/fp/groupBy.js +5 -0
  1469. data/node_modules/lodash/fp/gt.js +5 -0
  1470. data/node_modules/lodash/fp/gte.js +5 -0
  1471. data/node_modules/lodash/fp/has.js +5 -0
  1472. data/node_modules/lodash/fp/hasIn.js +5 -0
  1473. data/node_modules/lodash/fp/head.js +5 -0
  1474. data/node_modules/lodash/fp/identical.js +1 -0
  1475. data/node_modules/lodash/fp/identity.js +5 -0
  1476. data/node_modules/lodash/fp/inRange.js +5 -0
  1477. data/node_modules/lodash/fp/includes.js +5 -0
  1478. data/node_modules/lodash/fp/includesFrom.js +5 -0
  1479. data/node_modules/lodash/fp/indexBy.js +1 -0
  1480. data/node_modules/lodash/fp/indexOf.js +5 -0
  1481. data/node_modules/lodash/fp/indexOfFrom.js +5 -0
  1482. data/node_modules/lodash/fp/init.js +1 -0
  1483. data/node_modules/lodash/fp/initial.js +5 -0
  1484. data/node_modules/lodash/fp/intersection.js +5 -0
  1485. data/node_modules/lodash/fp/intersectionBy.js +5 -0
  1486. data/node_modules/lodash/fp/intersectionWith.js +5 -0
  1487. data/node_modules/lodash/fp/invert.js +5 -0
  1488. data/node_modules/lodash/fp/invertBy.js +5 -0
  1489. data/node_modules/lodash/fp/invertObj.js +1 -0
  1490. data/node_modules/lodash/fp/invoke.js +5 -0
  1491. data/node_modules/lodash/fp/invokeArgs.js +5 -0
  1492. data/node_modules/lodash/fp/invokeArgsMap.js +5 -0
  1493. data/node_modules/lodash/fp/invokeMap.js +5 -0
  1494. data/node_modules/lodash/fp/isArguments.js +5 -0
  1495. data/node_modules/lodash/fp/isArray.js +5 -0
  1496. data/node_modules/lodash/fp/isArrayBuffer.js +5 -0
  1497. data/node_modules/lodash/fp/isArrayLike.js +5 -0
  1498. data/node_modules/lodash/fp/isArrayLikeObject.js +5 -0
  1499. data/node_modules/lodash/fp/isBoolean.js +5 -0
  1500. data/node_modules/lodash/fp/isBuffer.js +5 -0
  1501. data/node_modules/lodash/fp/isDate.js +5 -0
  1502. data/node_modules/lodash/fp/isElement.js +5 -0
  1503. data/node_modules/lodash/fp/isEmpty.js +5 -0
  1504. data/node_modules/lodash/fp/isEqual.js +5 -0
  1505. data/node_modules/lodash/fp/isEqualWith.js +5 -0
  1506. data/node_modules/lodash/fp/isError.js +5 -0
  1507. data/node_modules/lodash/fp/isFinite.js +5 -0
  1508. data/node_modules/lodash/fp/isFunction.js +5 -0
  1509. data/node_modules/lodash/fp/isInteger.js +5 -0
  1510. data/node_modules/lodash/fp/isLength.js +5 -0
  1511. data/node_modules/lodash/fp/isMap.js +5 -0
  1512. data/node_modules/lodash/fp/isMatch.js +5 -0
  1513. data/node_modules/lodash/fp/isMatchWith.js +5 -0
  1514. data/node_modules/lodash/fp/isNaN.js +5 -0
  1515. data/node_modules/lodash/fp/isNative.js +5 -0
  1516. data/node_modules/lodash/fp/isNil.js +5 -0
  1517. data/node_modules/lodash/fp/isNull.js +5 -0
  1518. data/node_modules/lodash/fp/isNumber.js +5 -0
  1519. data/node_modules/lodash/fp/isObject.js +5 -0
  1520. data/node_modules/lodash/fp/isObjectLike.js +5 -0
  1521. data/node_modules/lodash/fp/isPlainObject.js +5 -0
  1522. data/node_modules/lodash/fp/isRegExp.js +5 -0
  1523. data/node_modules/lodash/fp/isSafeInteger.js +5 -0
  1524. data/node_modules/lodash/fp/isSet.js +5 -0
  1525. data/node_modules/lodash/fp/isString.js +5 -0
  1526. data/node_modules/lodash/fp/isSymbol.js +5 -0
  1527. data/node_modules/lodash/fp/isTypedArray.js +5 -0
  1528. data/node_modules/lodash/fp/isUndefined.js +5 -0
  1529. data/node_modules/lodash/fp/isWeakMap.js +5 -0
  1530. data/node_modules/lodash/fp/isWeakSet.js +5 -0
  1531. data/node_modules/lodash/fp/iteratee.js +5 -0
  1532. data/node_modules/lodash/fp/join.js +5 -0
  1533. data/node_modules/lodash/fp/juxt.js +1 -0
  1534. data/node_modules/lodash/fp/kebabCase.js +5 -0
  1535. data/node_modules/lodash/fp/keyBy.js +5 -0
  1536. data/node_modules/lodash/fp/keys.js +5 -0
  1537. data/node_modules/lodash/fp/keysIn.js +5 -0
  1538. data/node_modules/lodash/fp/lang.js +2 -0
  1539. data/node_modules/lodash/fp/last.js +5 -0
  1540. data/node_modules/lodash/fp/lastIndexOf.js +5 -0
  1541. data/node_modules/lodash/fp/lastIndexOfFrom.js +5 -0
  1542. data/node_modules/lodash/fp/lowerCase.js +5 -0
  1543. data/node_modules/lodash/fp/lowerFirst.js +5 -0
  1544. data/node_modules/lodash/fp/lt.js +5 -0
  1545. data/node_modules/lodash/fp/lte.js +5 -0
  1546. data/node_modules/lodash/fp/map.js +5 -0
  1547. data/node_modules/lodash/fp/mapKeys.js +5 -0
  1548. data/node_modules/lodash/fp/mapValues.js +5 -0
  1549. data/node_modules/lodash/fp/matches.js +1 -0
  1550. data/node_modules/lodash/fp/matchesProperty.js +5 -0
  1551. data/node_modules/lodash/fp/math.js +2 -0
  1552. data/node_modules/lodash/fp/max.js +5 -0
  1553. data/node_modules/lodash/fp/maxBy.js +5 -0
  1554. data/node_modules/lodash/fp/mean.js +5 -0
  1555. data/node_modules/lodash/fp/meanBy.js +5 -0
  1556. data/node_modules/lodash/fp/memoize.js +5 -0
  1557. data/node_modules/lodash/fp/merge.js +5 -0
  1558. data/node_modules/lodash/fp/mergeAll.js +5 -0
  1559. data/node_modules/lodash/fp/mergeAllWith.js +5 -0
  1560. data/node_modules/lodash/fp/mergeWith.js +5 -0
  1561. data/node_modules/lodash/fp/method.js +5 -0
  1562. data/node_modules/lodash/fp/methodOf.js +5 -0
  1563. data/node_modules/lodash/fp/min.js +5 -0
  1564. data/node_modules/lodash/fp/minBy.js +5 -0
  1565. data/node_modules/lodash/fp/mixin.js +5 -0
  1566. data/node_modules/lodash/fp/multiply.js +5 -0
  1567. data/node_modules/lodash/fp/nAry.js +1 -0
  1568. data/node_modules/lodash/fp/negate.js +5 -0
  1569. data/node_modules/lodash/fp/next.js +5 -0
  1570. data/node_modules/lodash/fp/noop.js +5 -0
  1571. data/node_modules/lodash/fp/now.js +5 -0
  1572. data/node_modules/lodash/fp/nth.js +5 -0
  1573. data/node_modules/lodash/fp/nthArg.js +5 -0
  1574. data/node_modules/lodash/fp/number.js +2 -0
  1575. data/node_modules/lodash/fp/object.js +2 -0
  1576. data/node_modules/lodash/fp/omit.js +5 -0
  1577. data/node_modules/lodash/fp/omitAll.js +1 -0
  1578. data/node_modules/lodash/fp/omitBy.js +5 -0
  1579. data/node_modules/lodash/fp/once.js +5 -0
  1580. data/node_modules/lodash/fp/orderBy.js +5 -0
  1581. data/node_modules/lodash/fp/over.js +5 -0
  1582. data/node_modules/lodash/fp/overArgs.js +5 -0
  1583. data/node_modules/lodash/fp/overEvery.js +5 -0
  1584. data/node_modules/lodash/fp/overSome.js +5 -0
  1585. data/node_modules/lodash/fp/pad.js +5 -0
  1586. data/node_modules/lodash/fp/padChars.js +5 -0
  1587. data/node_modules/lodash/fp/padCharsEnd.js +5 -0
  1588. data/node_modules/lodash/fp/padCharsStart.js +5 -0
  1589. data/node_modules/lodash/fp/padEnd.js +5 -0
  1590. data/node_modules/lodash/fp/padStart.js +5 -0
  1591. data/node_modules/lodash/fp/parseInt.js +5 -0
  1592. data/node_modules/lodash/fp/partial.js +5 -0
  1593. data/node_modules/lodash/fp/partialRight.js +5 -0
  1594. data/node_modules/lodash/fp/partition.js +5 -0
  1595. data/node_modules/lodash/fp/path.js +1 -0
  1596. data/node_modules/lodash/fp/pathEq.js +1 -0
  1597. data/node_modules/lodash/fp/pathOr.js +1 -0
  1598. data/node_modules/lodash/fp/paths.js +1 -0
  1599. data/node_modules/lodash/fp/pick.js +5 -0
  1600. data/node_modules/lodash/fp/pickAll.js +1 -0
  1601. data/node_modules/lodash/fp/pickBy.js +5 -0
  1602. data/node_modules/lodash/fp/pipe.js +1 -0
  1603. data/node_modules/lodash/fp/placeholder.js +6 -0
  1604. data/node_modules/lodash/fp/plant.js +5 -0
  1605. data/node_modules/lodash/fp/pluck.js +1 -0
  1606. data/node_modules/lodash/fp/prop.js +1 -0
  1607. data/node_modules/lodash/fp/propEq.js +1 -0
  1608. data/node_modules/lodash/fp/propOr.js +1 -0
  1609. data/node_modules/lodash/fp/property.js +1 -0
  1610. data/node_modules/lodash/fp/propertyOf.js +5 -0
  1611. data/node_modules/lodash/fp/props.js +1 -0
  1612. data/node_modules/lodash/fp/pull.js +5 -0
  1613. data/node_modules/lodash/fp/pullAll.js +5 -0
  1614. data/node_modules/lodash/fp/pullAllBy.js +5 -0
  1615. data/node_modules/lodash/fp/pullAllWith.js +5 -0
  1616. data/node_modules/lodash/fp/pullAt.js +5 -0
  1617. data/node_modules/lodash/fp/random.js +5 -0
  1618. data/node_modules/lodash/fp/range.js +5 -0
  1619. data/node_modules/lodash/fp/rangeRight.js +5 -0
  1620. data/node_modules/lodash/fp/rangeStep.js +5 -0
  1621. data/node_modules/lodash/fp/rangeStepRight.js +5 -0
  1622. data/node_modules/lodash/fp/rearg.js +5 -0
  1623. data/node_modules/lodash/fp/reduce.js +5 -0
  1624. data/node_modules/lodash/fp/reduceRight.js +5 -0
  1625. data/node_modules/lodash/fp/reject.js +5 -0
  1626. data/node_modules/lodash/fp/remove.js +5 -0
  1627. data/node_modules/lodash/fp/repeat.js +5 -0
  1628. data/node_modules/lodash/fp/replace.js +5 -0
  1629. data/node_modules/lodash/fp/rest.js +5 -0
  1630. data/node_modules/lodash/fp/restFrom.js +5 -0
  1631. data/node_modules/lodash/fp/result.js +5 -0
  1632. data/node_modules/lodash/fp/reverse.js +5 -0
  1633. data/node_modules/lodash/fp/round.js +5 -0
  1634. data/node_modules/lodash/fp/sample.js +5 -0
  1635. data/node_modules/lodash/fp/sampleSize.js +5 -0
  1636. data/node_modules/lodash/fp/seq.js +2 -0
  1637. data/node_modules/lodash/fp/set.js +5 -0
  1638. data/node_modules/lodash/fp/setWith.js +5 -0
  1639. data/node_modules/lodash/fp/shuffle.js +5 -0
  1640. data/node_modules/lodash/fp/size.js +5 -0
  1641. data/node_modules/lodash/fp/slice.js +5 -0
  1642. data/node_modules/lodash/fp/snakeCase.js +5 -0
  1643. data/node_modules/lodash/fp/some.js +5 -0
  1644. data/node_modules/lodash/fp/sortBy.js +5 -0
  1645. data/node_modules/lodash/fp/sortedIndex.js +5 -0
  1646. data/node_modules/lodash/fp/sortedIndexBy.js +5 -0
  1647. data/node_modules/lodash/fp/sortedIndexOf.js +5 -0
  1648. data/node_modules/lodash/fp/sortedLastIndex.js +5 -0
  1649. data/node_modules/lodash/fp/sortedLastIndexBy.js +5 -0
  1650. data/node_modules/lodash/fp/sortedLastIndexOf.js +5 -0
  1651. data/node_modules/lodash/fp/sortedUniq.js +5 -0
  1652. data/node_modules/lodash/fp/sortedUniqBy.js +5 -0
  1653. data/node_modules/lodash/fp/split.js +5 -0
  1654. data/node_modules/lodash/fp/spread.js +5 -0
  1655. data/node_modules/lodash/fp/spreadFrom.js +5 -0
  1656. data/node_modules/lodash/fp/startCase.js +5 -0
  1657. data/node_modules/lodash/fp/startsWith.js +5 -0
  1658. data/node_modules/lodash/fp/string.js +2 -0
  1659. data/node_modules/lodash/fp/stubArray.js +5 -0
  1660. data/node_modules/lodash/fp/stubFalse.js +5 -0
  1661. data/node_modules/lodash/fp/stubObject.js +5 -0
  1662. data/node_modules/lodash/fp/stubString.js +5 -0
  1663. data/node_modules/lodash/fp/stubTrue.js +5 -0
  1664. data/node_modules/lodash/fp/subtract.js +5 -0
  1665. data/node_modules/lodash/fp/sum.js +5 -0
  1666. data/node_modules/lodash/fp/sumBy.js +5 -0
  1667. data/node_modules/lodash/fp/symmetricDifference.js +1 -0
  1668. data/node_modules/lodash/fp/symmetricDifferenceBy.js +1 -0
  1669. data/node_modules/lodash/fp/symmetricDifferenceWith.js +1 -0
  1670. data/node_modules/lodash/fp/tail.js +5 -0
  1671. data/node_modules/lodash/fp/take.js +5 -0
  1672. data/node_modules/lodash/fp/takeLast.js +1 -0
  1673. data/node_modules/lodash/fp/takeLastWhile.js +1 -0
  1674. data/node_modules/lodash/fp/takeRight.js +5 -0
  1675. data/node_modules/lodash/fp/takeRightWhile.js +5 -0
  1676. data/node_modules/lodash/fp/takeWhile.js +5 -0
  1677. data/node_modules/lodash/fp/tap.js +5 -0
  1678. data/node_modules/lodash/fp/template.js +5 -0
  1679. data/node_modules/lodash/fp/templateSettings.js +5 -0
  1680. data/node_modules/lodash/fp/throttle.js +5 -0
  1681. data/node_modules/lodash/fp/thru.js +5 -0
  1682. data/node_modules/lodash/fp/times.js +5 -0
  1683. data/node_modules/lodash/fp/toArray.js +5 -0
  1684. data/node_modules/lodash/fp/toFinite.js +5 -0
  1685. data/node_modules/lodash/fp/toInteger.js +5 -0
  1686. data/node_modules/lodash/fp/toIterator.js +5 -0
  1687. data/node_modules/lodash/fp/toJSON.js +5 -0
  1688. data/node_modules/lodash/fp/toLength.js +5 -0
  1689. data/node_modules/lodash/fp/toLower.js +5 -0
  1690. data/node_modules/lodash/fp/toNumber.js +5 -0
  1691. data/node_modules/lodash/fp/toPairs.js +5 -0
  1692. data/node_modules/lodash/fp/toPairsIn.js +5 -0
  1693. data/node_modules/lodash/fp/toPath.js +5 -0
  1694. data/node_modules/lodash/fp/toPlainObject.js +5 -0
  1695. data/node_modules/lodash/fp/toSafeInteger.js +5 -0
  1696. data/node_modules/lodash/fp/toString.js +5 -0
  1697. data/node_modules/lodash/fp/toUpper.js +5 -0
  1698. data/node_modules/lodash/fp/transform.js +5 -0
  1699. data/node_modules/lodash/fp/trim.js +5 -0
  1700. data/node_modules/lodash/fp/trimChars.js +5 -0
  1701. data/node_modules/lodash/fp/trimCharsEnd.js +5 -0
  1702. data/node_modules/lodash/fp/trimCharsStart.js +5 -0
  1703. data/node_modules/lodash/fp/trimEnd.js +5 -0
  1704. data/node_modules/lodash/fp/trimStart.js +5 -0
  1705. data/node_modules/lodash/fp/truncate.js +5 -0
  1706. data/node_modules/lodash/fp/unapply.js +1 -0
  1707. data/node_modules/lodash/fp/unary.js +5 -0
  1708. data/node_modules/lodash/fp/unescape.js +5 -0
  1709. data/node_modules/lodash/fp/union.js +5 -0
  1710. data/node_modules/lodash/fp/unionBy.js +5 -0
  1711. data/node_modules/lodash/fp/unionWith.js +5 -0
  1712. data/node_modules/lodash/fp/uniq.js +5 -0
  1713. data/node_modules/lodash/fp/uniqBy.js +5 -0
  1714. data/node_modules/lodash/fp/uniqWith.js +5 -0
  1715. data/node_modules/lodash/fp/uniqueId.js +5 -0
  1716. data/node_modules/lodash/fp/unnest.js +1 -0
  1717. data/node_modules/lodash/fp/unset.js +5 -0
  1718. data/node_modules/lodash/fp/unzip.js +5 -0
  1719. data/node_modules/lodash/fp/unzipWith.js +5 -0
  1720. data/node_modules/lodash/fp/update.js +5 -0
  1721. data/node_modules/lodash/fp/updateWith.js +5 -0
  1722. data/node_modules/lodash/fp/upperCase.js +5 -0
  1723. data/node_modules/lodash/fp/upperFirst.js +5 -0
  1724. data/node_modules/lodash/fp/useWith.js +1 -0
  1725. data/node_modules/lodash/fp/util.js +2 -0
  1726. data/node_modules/lodash/fp/value.js +5 -0
  1727. data/node_modules/lodash/fp/valueOf.js +5 -0
  1728. data/node_modules/lodash/fp/values.js +5 -0
  1729. data/node_modules/lodash/fp/valuesIn.js +5 -0
  1730. data/node_modules/lodash/fp/where.js +1 -0
  1731. data/node_modules/lodash/fp/whereEq.js +1 -0
  1732. data/node_modules/lodash/fp/without.js +5 -0
  1733. data/node_modules/lodash/fp/words.js +5 -0
  1734. data/node_modules/lodash/fp/wrap.js +5 -0
  1735. data/node_modules/lodash/fp/wrapperAt.js +5 -0
  1736. data/node_modules/lodash/fp/wrapperChain.js +5 -0
  1737. data/node_modules/lodash/fp/wrapperLodash.js +5 -0
  1738. data/node_modules/lodash/fp/wrapperReverse.js +5 -0
  1739. data/node_modules/lodash/fp/wrapperValue.js +5 -0
  1740. data/node_modules/lodash/fp/xor.js +5 -0
  1741. data/node_modules/lodash/fp/xorBy.js +5 -0
  1742. data/node_modules/lodash/fp/xorWith.js +5 -0
  1743. data/node_modules/lodash/fp/zip.js +5 -0
  1744. data/node_modules/lodash/fp/zipAll.js +5 -0
  1745. data/node_modules/lodash/fp/zipObj.js +1 -0
  1746. data/node_modules/lodash/fp/zipObject.js +5 -0
  1747. data/node_modules/lodash/fp/zipObjectDeep.js +5 -0
  1748. data/node_modules/lodash/fp/zipWith.js +5 -0
  1749. data/node_modules/lodash/fp.js +2 -0
  1750. data/node_modules/lodash/fromPairs.js +28 -0
  1751. data/node_modules/lodash/function.js +25 -0
  1752. data/node_modules/lodash/functions.js +31 -0
  1753. data/node_modules/lodash/functionsIn.js +31 -0
  1754. data/node_modules/lodash/get.js +33 -0
  1755. data/node_modules/lodash/groupBy.js +41 -0
  1756. data/node_modules/lodash/gt.js +29 -0
  1757. data/node_modules/lodash/gte.js +30 -0
  1758. data/node_modules/lodash/has.js +35 -0
  1759. data/node_modules/lodash/hasIn.js +34 -0
  1760. data/node_modules/lodash/head.js +23 -0
  1761. data/node_modules/lodash/identity.js +21 -0
  1762. data/node_modules/lodash/inRange.js +55 -0
  1763. data/node_modules/lodash/includes.js +53 -0
  1764. data/node_modules/lodash/index.js +1 -0
  1765. data/node_modules/lodash/indexOf.js +42 -0
  1766. data/node_modules/lodash/initial.js +22 -0
  1767. data/node_modules/lodash/intersection.js +30 -0
  1768. data/node_modules/lodash/intersectionBy.js +45 -0
  1769. data/node_modules/lodash/intersectionWith.js +41 -0
  1770. data/node_modules/lodash/invert.js +42 -0
  1771. data/node_modules/lodash/invertBy.js +56 -0
  1772. data/node_modules/lodash/invoke.js +24 -0
  1773. data/node_modules/lodash/invokeMap.js +41 -0
  1774. data/node_modules/lodash/isArguments.js +36 -0
  1775. data/node_modules/lodash/isArray.js +26 -0
  1776. data/node_modules/lodash/isArrayBuffer.js +27 -0
  1777. data/node_modules/lodash/isArrayLike.js +33 -0
  1778. data/node_modules/lodash/isArrayLikeObject.js +33 -0
  1779. data/node_modules/lodash/isBoolean.js +29 -0
  1780. data/node_modules/lodash/isBuffer.js +38 -0
  1781. data/node_modules/lodash/isDate.js +27 -0
  1782. data/node_modules/lodash/isElement.js +25 -0
  1783. data/node_modules/lodash/isEmpty.js +77 -0
  1784. data/node_modules/lodash/isEqual.js +35 -0
  1785. data/node_modules/lodash/isEqualWith.js +41 -0
  1786. data/node_modules/lodash/isError.js +36 -0
  1787. data/node_modules/lodash/isFinite.js +36 -0
  1788. data/node_modules/lodash/isFunction.js +37 -0
  1789. data/node_modules/lodash/isInteger.js +33 -0
  1790. data/node_modules/lodash/isLength.js +35 -0
  1791. data/node_modules/lodash/isMap.js +27 -0
  1792. data/node_modules/lodash/isMatch.js +36 -0
  1793. data/node_modules/lodash/isMatchWith.js +41 -0
  1794. data/node_modules/lodash/isNaN.js +38 -0
  1795. data/node_modules/lodash/isNative.js +40 -0
  1796. data/node_modules/lodash/isNil.js +25 -0
  1797. data/node_modules/lodash/isNull.js +22 -0
  1798. data/node_modules/lodash/isNumber.js +38 -0
  1799. data/node_modules/lodash/isObject.js +31 -0
  1800. data/node_modules/lodash/isObjectLike.js +29 -0
  1801. data/node_modules/lodash/isPlainObject.js +62 -0
  1802. data/node_modules/lodash/isRegExp.js +27 -0
  1803. data/node_modules/lodash/isSafeInteger.js +37 -0
  1804. data/node_modules/lodash/isSet.js +27 -0
  1805. data/node_modules/lodash/isString.js +30 -0
  1806. data/node_modules/lodash/isSymbol.js +29 -0
  1807. data/node_modules/lodash/isTypedArray.js +27 -0
  1808. data/node_modules/lodash/isUndefined.js +22 -0
  1809. data/node_modules/lodash/isWeakMap.js +28 -0
  1810. data/node_modules/lodash/isWeakSet.js +28 -0
  1811. data/node_modules/lodash/iteratee.js +53 -0
  1812. data/node_modules/lodash/join.js +26 -0
  1813. data/node_modules/lodash/kebabCase.js +28 -0
  1814. data/node_modules/lodash/keyBy.js +36 -0
  1815. data/node_modules/lodash/keys.js +37 -0
  1816. data/node_modules/lodash/keysIn.js +32 -0
  1817. data/node_modules/lodash/lang.js +58 -0
  1818. data/node_modules/lodash/last.js +20 -0
  1819. data/node_modules/lodash/lastIndexOf.js +46 -0
  1820. data/node_modules/lodash/lodash.js +17209 -0
  1821. data/node_modules/lodash/lodash.min.js +140 -0
  1822. data/node_modules/lodash/lowerCase.js +27 -0
  1823. data/node_modules/lodash/lowerFirst.js +22 -0
  1824. data/node_modules/lodash/lt.js +29 -0
  1825. data/node_modules/lodash/lte.js +30 -0
  1826. data/node_modules/lodash/map.js +53 -0
  1827. data/node_modules/lodash/mapKeys.js +36 -0
  1828. data/node_modules/lodash/mapValues.js +43 -0
  1829. data/node_modules/lodash/matches.js +46 -0
  1830. data/node_modules/lodash/matchesProperty.js +44 -0
  1831. data/node_modules/lodash/math.js +17 -0
  1832. data/node_modules/lodash/max.js +29 -0
  1833. data/node_modules/lodash/maxBy.js +34 -0
  1834. data/node_modules/lodash/mean.js +22 -0
  1835. data/node_modules/lodash/meanBy.js +31 -0
  1836. data/node_modules/lodash/memoize.js +73 -0
  1837. data/node_modules/lodash/merge.js +39 -0
  1838. data/node_modules/lodash/mergeWith.js +39 -0
  1839. data/node_modules/lodash/method.js +34 -0
  1840. data/node_modules/lodash/methodOf.js +33 -0
  1841. data/node_modules/lodash/min.js +29 -0
  1842. data/node_modules/lodash/minBy.js +34 -0
  1843. data/node_modules/lodash/mixin.js +74 -0
  1844. data/node_modules/lodash/multiply.js +22 -0
  1845. data/node_modules/lodash/negate.js +40 -0
  1846. data/node_modules/lodash/next.js +35 -0
  1847. data/node_modules/lodash/noop.js +17 -0
  1848. data/node_modules/lodash/now.js +23 -0
  1849. data/node_modules/lodash/nth.js +29 -0
  1850. data/node_modules/lodash/nthArg.js +32 -0
  1851. data/node_modules/lodash/number.js +5 -0
  1852. data/node_modules/lodash/object.js +49 -0
  1853. data/node_modules/lodash/omit.js +57 -0
  1854. data/node_modules/lodash/omitBy.js +29 -0
  1855. data/node_modules/lodash/once.js +25 -0
  1856. data/node_modules/lodash/orderBy.js +47 -0
  1857. data/node_modules/lodash/over.js +24 -0
  1858. data/node_modules/lodash/overArgs.js +61 -0
  1859. data/node_modules/lodash/overEvery.js +34 -0
  1860. data/node_modules/lodash/overSome.js +37 -0
  1861. data/node_modules/lodash/package.json +17 -0
  1862. data/node_modules/lodash/pad.js +49 -0
  1863. data/node_modules/lodash/padEnd.js +39 -0
  1864. data/node_modules/lodash/padStart.js +39 -0
  1865. data/node_modules/lodash/parseInt.js +43 -0
  1866. data/node_modules/lodash/partial.js +50 -0
  1867. data/node_modules/lodash/partialRight.js +49 -0
  1868. data/node_modules/lodash/partition.js +43 -0
  1869. data/node_modules/lodash/pick.js +25 -0
  1870. data/node_modules/lodash/pickBy.js +37 -0
  1871. data/node_modules/lodash/plant.js +48 -0
  1872. data/node_modules/lodash/property.js +32 -0
  1873. data/node_modules/lodash/propertyOf.js +30 -0
  1874. data/node_modules/lodash/pull.js +29 -0
  1875. data/node_modules/lodash/pullAll.js +29 -0
  1876. data/node_modules/lodash/pullAllBy.js +33 -0
  1877. data/node_modules/lodash/pullAllWith.js +32 -0
  1878. data/node_modules/lodash/pullAt.js +43 -0
  1879. data/node_modules/lodash/random.js +82 -0
  1880. data/node_modules/lodash/range.js +46 -0
  1881. data/node_modules/lodash/rangeRight.js +41 -0
  1882. data/node_modules/lodash/rearg.js +33 -0
  1883. data/node_modules/lodash/reduce.js +51 -0
  1884. data/node_modules/lodash/reduceRight.js +36 -0
  1885. data/node_modules/lodash/reject.js +46 -0
  1886. data/node_modules/lodash/release.md +48 -0
  1887. data/node_modules/lodash/remove.js +53 -0
  1888. data/node_modules/lodash/repeat.js +37 -0
  1889. data/node_modules/lodash/replace.js +29 -0
  1890. data/node_modules/lodash/rest.js +40 -0
  1891. data/node_modules/lodash/result.js +56 -0
  1892. data/node_modules/lodash/reverse.js +34 -0
  1893. data/node_modules/lodash/round.js +26 -0
  1894. data/node_modules/lodash/sample.js +24 -0
  1895. data/node_modules/lodash/sampleSize.js +37 -0
  1896. data/node_modules/lodash/seq.js +16 -0
  1897. data/node_modules/lodash/set.js +35 -0
  1898. data/node_modules/lodash/setWith.js +32 -0
  1899. data/node_modules/lodash/shuffle.js +25 -0
  1900. data/node_modules/lodash/size.js +46 -0
  1901. data/node_modules/lodash/slice.js +37 -0
  1902. data/node_modules/lodash/snakeCase.js +28 -0
  1903. data/node_modules/lodash/some.js +51 -0
  1904. data/node_modules/lodash/sortBy.js +48 -0
  1905. data/node_modules/lodash/sortedIndex.js +24 -0
  1906. data/node_modules/lodash/sortedIndexBy.js +33 -0
  1907. data/node_modules/lodash/sortedIndexOf.js +31 -0
  1908. data/node_modules/lodash/sortedLastIndex.js +25 -0
  1909. data/node_modules/lodash/sortedLastIndexBy.js +33 -0
  1910. data/node_modules/lodash/sortedLastIndexOf.js +31 -0
  1911. data/node_modules/lodash/sortedUniq.js +24 -0
  1912. data/node_modules/lodash/sortedUniqBy.js +26 -0
  1913. data/node_modules/lodash/split.js +52 -0
  1914. data/node_modules/lodash/spread.js +63 -0
  1915. data/node_modules/lodash/startCase.js +29 -0
  1916. data/node_modules/lodash/startsWith.js +39 -0
  1917. data/node_modules/lodash/string.js +33 -0
  1918. data/node_modules/lodash/stubArray.js +23 -0
  1919. data/node_modules/lodash/stubFalse.js +18 -0
  1920. data/node_modules/lodash/stubObject.js +23 -0
  1921. data/node_modules/lodash/stubString.js +18 -0
  1922. data/node_modules/lodash/stubTrue.js +18 -0
  1923. data/node_modules/lodash/subtract.js +22 -0
  1924. data/node_modules/lodash/sum.js +24 -0
  1925. data/node_modules/lodash/sumBy.js +33 -0
  1926. data/node_modules/lodash/tail.js +22 -0
  1927. data/node_modules/lodash/take.js +37 -0
  1928. data/node_modules/lodash/takeRight.js +39 -0
  1929. data/node_modules/lodash/takeRightWhile.js +45 -0
  1930. data/node_modules/lodash/takeWhile.js +45 -0
  1931. data/node_modules/lodash/tap.js +29 -0
  1932. data/node_modules/lodash/template.js +272 -0
  1933. data/node_modules/lodash/templateSettings.js +67 -0
  1934. data/node_modules/lodash/throttle.js +69 -0
  1935. data/node_modules/lodash/thru.js +28 -0
  1936. data/node_modules/lodash/times.js +51 -0
  1937. data/node_modules/lodash/toArray.js +58 -0
  1938. data/node_modules/lodash/toFinite.js +42 -0
  1939. data/node_modules/lodash/toInteger.js +36 -0
  1940. data/node_modules/lodash/toIterator.js +23 -0
  1941. data/node_modules/lodash/toJSON.js +1 -0
  1942. data/node_modules/lodash/toLength.js +38 -0
  1943. data/node_modules/lodash/toLower.js +28 -0
  1944. data/node_modules/lodash/toNumber.js +64 -0
  1945. data/node_modules/lodash/toPairs.js +30 -0
  1946. data/node_modules/lodash/toPairsIn.js +30 -0
  1947. data/node_modules/lodash/toPath.js +33 -0
  1948. data/node_modules/lodash/toPlainObject.js +32 -0
  1949. data/node_modules/lodash/toSafeInteger.js +37 -0
  1950. data/node_modules/lodash/toString.js +28 -0
  1951. data/node_modules/lodash/toUpper.js +28 -0
  1952. data/node_modules/lodash/transform.js +65 -0
  1953. data/node_modules/lodash/trim.js +47 -0
  1954. data/node_modules/lodash/trimEnd.js +41 -0
  1955. data/node_modules/lodash/trimStart.js +43 -0
  1956. data/node_modules/lodash/truncate.js +111 -0
  1957. data/node_modules/lodash/unary.js +22 -0
  1958. data/node_modules/lodash/unescape.js +34 -0
  1959. data/node_modules/lodash/union.js +26 -0
  1960. data/node_modules/lodash/unionBy.js +39 -0
  1961. data/node_modules/lodash/unionWith.js +34 -0
  1962. data/node_modules/lodash/uniq.js +25 -0
  1963. data/node_modules/lodash/uniqBy.js +31 -0
  1964. data/node_modules/lodash/uniqWith.js +28 -0
  1965. data/node_modules/lodash/uniqueId.js +28 -0
  1966. data/node_modules/lodash/unset.js +34 -0
  1967. data/node_modules/lodash/unzip.js +45 -0
  1968. data/node_modules/lodash/unzipWith.js +39 -0
  1969. data/node_modules/lodash/update.js +35 -0
  1970. data/node_modules/lodash/updateWith.js +33 -0
  1971. data/node_modules/lodash/upperCase.js +27 -0
  1972. data/node_modules/lodash/upperFirst.js +22 -0
  1973. data/node_modules/lodash/util.js +34 -0
  1974. data/node_modules/lodash/value.js +1 -0
  1975. data/node_modules/lodash/valueOf.js +1 -0
  1976. data/node_modules/lodash/values.js +34 -0
  1977. data/node_modules/lodash/valuesIn.js +32 -0
  1978. data/node_modules/lodash/without.js +31 -0
  1979. data/node_modules/lodash/words.js +35 -0
  1980. data/node_modules/lodash/wrap.js +30 -0
  1981. data/node_modules/lodash/wrapperAt.js +48 -0
  1982. data/node_modules/lodash/wrapperChain.js +34 -0
  1983. data/node_modules/lodash/wrapperLodash.js +147 -0
  1984. data/node_modules/lodash/wrapperReverse.js +44 -0
  1985. data/node_modules/lodash/wrapperValue.js +21 -0
  1986. data/node_modules/lodash/xor.js +28 -0
  1987. data/node_modules/lodash/xorBy.js +39 -0
  1988. data/node_modules/lodash/xorWith.js +34 -0
  1989. data/node_modules/lodash/zip.js +22 -0
  1990. data/node_modules/lodash/zipObject.js +24 -0
  1991. data/node_modules/lodash/zipObjectDeep.js +23 -0
  1992. data/node_modules/lodash/zipWith.js +32 -0
  1993. data/node_modules/mime-db/HISTORY.md +486 -0
  1994. data/node_modules/mime-db/LICENSE +22 -0
  1995. data/node_modules/mime-db/README.md +100 -0
  1996. data/node_modules/mime-db/db.json +8417 -0
  1997. data/node_modules/mime-db/index.js +11 -0
  1998. data/node_modules/mime-db/package.json +59 -0
  1999. data/node_modules/mime-types/HISTORY.md +378 -0
  2000. data/node_modules/mime-types/LICENSE +23 -0
  2001. data/node_modules/mime-types/README.md +113 -0
  2002. data/node_modules/mime-types/index.js +188 -0
  2003. data/node_modules/mime-types/package.json +44 -0
  2004. data/node_modules/ms/index.js +162 -0
  2005. data/node_modules/ms/license.md +21 -0
  2006. data/node_modules/ms/package.json +37 -0
  2007. data/node_modules/ms/readme.md +60 -0
  2008. data/node_modules/nwsapi/LICENSE +22 -0
  2009. data/node_modules/nwsapi/README.md +132 -0
  2010. data/node_modules/nwsapi/dist/lint.log +0 -0
  2011. data/node_modules/nwsapi/package.json +38 -0
  2012. data/node_modules/nwsapi/src/modules/nwsapi-jquery.js +135 -0
  2013. data/node_modules/nwsapi/src/modules/nwsapi-traversal.js +90 -0
  2014. data/node_modules/nwsapi/src/nwsapi.js +1800 -0
  2015. data/node_modules/optionator/CHANGELOG.md +56 -0
  2016. data/node_modules/optionator/LICENSE +22 -0
  2017. data/node_modules/optionator/README.md +238 -0
  2018. data/node_modules/optionator/lib/help.js +260 -0
  2019. data/node_modules/optionator/lib/index.js +465 -0
  2020. data/node_modules/optionator/lib/util.js +54 -0
  2021. data/node_modules/optionator/package.json +44 -0
  2022. data/node_modules/parse5/LICENSE +19 -0
  2023. data/node_modules/parse5/README.md +38 -0
  2024. data/node_modules/parse5/lib/common/doctype.js +162 -0
  2025. data/node_modules/parse5/lib/common/error-codes.js +65 -0
  2026. data/node_modules/parse5/lib/common/foreign-content.js +265 -0
  2027. data/node_modules/parse5/lib/common/html.js +272 -0
  2028. data/node_modules/parse5/lib/common/unicode.js +109 -0
  2029. data/node_modules/parse5/lib/extensions/error-reporting/mixin-base.js +43 -0
  2030. data/node_modules/parse5/lib/extensions/error-reporting/parser-mixin.js +52 -0
  2031. data/node_modules/parse5/lib/extensions/error-reporting/preprocessor-mixin.js +24 -0
  2032. data/node_modules/parse5/lib/extensions/error-reporting/tokenizer-mixin.js +17 -0
  2033. data/node_modules/parse5/lib/extensions/location-info/open-element-stack-mixin.js +35 -0
  2034. data/node_modules/parse5/lib/extensions/location-info/parser-mixin.js +223 -0
  2035. data/node_modules/parse5/lib/extensions/location-info/tokenizer-mixin.js +146 -0
  2036. data/node_modules/parse5/lib/extensions/position-tracking/preprocessor-mixin.js +64 -0
  2037. data/node_modules/parse5/lib/index.js +29 -0
  2038. data/node_modules/parse5/lib/parser/formatting-element-list.js +181 -0
  2039. data/node_modules/parse5/lib/parser/index.js +2956 -0
  2040. data/node_modules/parse5/lib/parser/open-element-stack.js +482 -0
  2041. data/node_modules/parse5/lib/serializer/index.js +176 -0
  2042. data/node_modules/parse5/lib/tokenizer/index.js +2196 -0
  2043. data/node_modules/parse5/lib/tokenizer/named-entity-data.js +5 -0
  2044. data/node_modules/parse5/lib/tokenizer/preprocessor.js +159 -0
  2045. data/node_modules/parse5/lib/tree-adapters/default.js +221 -0
  2046. data/node_modules/parse5/lib/utils/merge-options.js +13 -0
  2047. data/node_modules/parse5/lib/utils/mixin.js +39 -0
  2048. data/node_modules/parse5/package.json +35 -0
  2049. data/node_modules/prelude-ls/CHANGELOG.md +99 -0
  2050. data/node_modules/prelude-ls/LICENSE +22 -0
  2051. data/node_modules/prelude-ls/README.md +15 -0
  2052. data/node_modules/prelude-ls/lib/Func.js +65 -0
  2053. data/node_modules/prelude-ls/lib/List.js +686 -0
  2054. data/node_modules/prelude-ls/lib/Num.js +130 -0
  2055. data/node_modules/prelude-ls/lib/Obj.js +154 -0
  2056. data/node_modules/prelude-ls/lib/Str.js +92 -0
  2057. data/node_modules/prelude-ls/lib/index.js +178 -0
  2058. data/node_modules/prelude-ls/package.json +52 -0
  2059. data/node_modules/psl/LICENSE +9 -0
  2060. data/node_modules/psl/README.md +215 -0
  2061. data/node_modules/psl/browserstack-logo.svg +90 -0
  2062. data/node_modules/psl/data/rules.json +8834 -0
  2063. data/node_modules/psl/dist/psl.js +9645 -0
  2064. data/node_modules/psl/dist/psl.min.js +1 -0
  2065. data/node_modules/psl/index.js +269 -0
  2066. data/node_modules/psl/package.json +44 -0
  2067. data/node_modules/punycode/LICENSE-MIT.txt +20 -0
  2068. data/node_modules/punycode/README.md +122 -0
  2069. data/node_modules/punycode/package.json +58 -0
  2070. data/node_modules/punycode/punycode.es6.js +441 -0
  2071. data/node_modules/punycode/punycode.js +440 -0
  2072. data/node_modules/safer-buffer/LICENSE +21 -0
  2073. data/node_modules/safer-buffer/Porting-Buffer.md +268 -0
  2074. data/node_modules/safer-buffer/Readme.md +156 -0
  2075. data/node_modules/safer-buffer/dangerous.js +58 -0
  2076. data/node_modules/safer-buffer/package.json +34 -0
  2077. data/node_modules/safer-buffer/safer.js +77 -0
  2078. data/node_modules/safer-buffer/tests.js +406 -0
  2079. data/node_modules/saxes/README.md +323 -0
  2080. data/node_modules/saxes/package.json +70 -0
  2081. data/node_modules/saxes/saxes.d.ts +635 -0
  2082. data/node_modules/saxes/saxes.js +2064 -0
  2083. data/node_modules/saxes/saxes.js.map +1 -0
  2084. data/node_modules/source-map/CHANGELOG.md +301 -0
  2085. data/node_modules/source-map/LICENSE +28 -0
  2086. data/node_modules/source-map/README.md +742 -0
  2087. data/node_modules/source-map/dist/source-map.debug.js +3234 -0
  2088. data/node_modules/source-map/dist/source-map.js +3233 -0
  2089. data/node_modules/source-map/dist/source-map.min.js +2 -0
  2090. data/node_modules/source-map/dist/source-map.min.js.map +1 -0
  2091. data/node_modules/source-map/lib/array-set.js +121 -0
  2092. data/node_modules/source-map/lib/base64-vlq.js +140 -0
  2093. data/node_modules/source-map/lib/base64.js +67 -0
  2094. data/node_modules/source-map/lib/binary-search.js +111 -0
  2095. data/node_modules/source-map/lib/mapping-list.js +79 -0
  2096. data/node_modules/source-map/lib/quick-sort.js +114 -0
  2097. data/node_modules/source-map/lib/source-map-consumer.js +1145 -0
  2098. data/node_modules/source-map/lib/source-map-generator.js +425 -0
  2099. data/node_modules/source-map/lib/source-node.js +413 -0
  2100. data/node_modules/source-map/lib/util.js +488 -0
  2101. data/node_modules/source-map/package.json +73 -0
  2102. data/node_modules/source-map/source-map.d.ts +98 -0
  2103. data/node_modules/source-map/source-map.js +8 -0
  2104. data/node_modules/symbol-tree/LICENSE +21 -0
  2105. data/node_modules/symbol-tree/README.md +545 -0
  2106. data/node_modules/symbol-tree/lib/SymbolTree.js +838 -0
  2107. data/node_modules/symbol-tree/lib/SymbolTreeNode.js +54 -0
  2108. data/node_modules/symbol-tree/lib/TreeIterator.js +69 -0
  2109. data/node_modules/symbol-tree/lib/TreePosition.js +11 -0
  2110. data/node_modules/symbol-tree/package.json +47 -0
  2111. data/node_modules/tough-cookie/LICENSE +12 -0
  2112. data/node_modules/tough-cookie/README.md +582 -0
  2113. data/node_modules/tough-cookie/lib/cookie.js +1671 -0
  2114. data/node_modules/tough-cookie/lib/memstore.js +190 -0
  2115. data/node_modules/tough-cookie/lib/pathMatch.js +61 -0
  2116. data/node_modules/tough-cookie/lib/permuteDomain.js +70 -0
  2117. data/node_modules/tough-cookie/lib/pubsuffix-psl.js +38 -0
  2118. data/node_modules/tough-cookie/lib/store.js +76 -0
  2119. data/node_modules/tough-cookie/lib/version.js +2 -0
  2120. data/node_modules/tough-cookie/node_modules/universalify/LICENSE +20 -0
  2121. data/node_modules/tough-cookie/node_modules/universalify/README.md +76 -0
  2122. data/node_modules/tough-cookie/node_modules/universalify/index.js +25 -0
  2123. data/node_modules/tough-cookie/node_modules/universalify/package.json +34 -0
  2124. data/node_modules/tough-cookie/package.json +109 -0
  2125. data/node_modules/tr46/LICENSE.md +21 -0
  2126. data/node_modules/tr46/README.md +72 -0
  2127. data/node_modules/tr46/index.js +297 -0
  2128. data/node_modules/tr46/lib/mappingTable.json +1 -0
  2129. data/node_modules/tr46/lib/regexes.js +29 -0
  2130. data/node_modules/tr46/lib/statusMapping.js +11 -0
  2131. data/node_modules/tr46/package.json +46 -0
  2132. data/node_modules/type-check/LICENSE +22 -0
  2133. data/node_modules/type-check/README.md +210 -0
  2134. data/node_modules/type-check/lib/check.js +126 -0
  2135. data/node_modules/type-check/lib/index.js +16 -0
  2136. data/node_modules/type-check/lib/parse-type.js +196 -0
  2137. data/node_modules/type-check/package.json +40 -0
  2138. data/node_modules/w3c-hr-time/CHANGELOG.md +19 -0
  2139. data/node_modules/w3c-hr-time/LICENSE.md +21 -0
  2140. data/node_modules/w3c-hr-time/README.md +130 -0
  2141. data/node_modules/w3c-hr-time/index.js +11 -0
  2142. data/node_modules/w3c-hr-time/lib/calculate-clock-offset.js +39 -0
  2143. data/node_modules/w3c-hr-time/lib/clock-is-accurate.js +61 -0
  2144. data/node_modules/w3c-hr-time/lib/global-monotonic-clock.js +10 -0
  2145. data/node_modules/w3c-hr-time/lib/performance.js +53 -0
  2146. data/node_modules/w3c-hr-time/lib/utils.js +11 -0
  2147. data/node_modules/w3c-hr-time/package.json +26 -0
  2148. data/node_modules/w3c-xmlserializer/LICENSE.md +25 -0
  2149. data/node_modules/w3c-xmlserializer/README.md +41 -0
  2150. data/node_modules/w3c-xmlserializer/lib/attributes.js +128 -0
  2151. data/node_modules/w3c-xmlserializer/lib/constants.js +44 -0
  2152. data/node_modules/w3c-xmlserializer/lib/serialize.js +371 -0
  2153. data/node_modules/w3c-xmlserializer/package.json +32 -0
  2154. data/node_modules/webidl-conversions/LICENSE.md +12 -0
  2155. data/node_modules/webidl-conversions/README.md +101 -0
  2156. data/node_modules/webidl-conversions/lib/index.js +489 -0
  2157. data/node_modules/webidl-conversions/package.json +30 -0
  2158. data/node_modules/whatwg-encoding/LICENSE.txt +7 -0
  2159. data/node_modules/whatwg-encoding/README.md +50 -0
  2160. data/node_modules/whatwg-encoding/lib/labels-to-names.json +207 -0
  2161. data/node_modules/whatwg-encoding/lib/supported-names.json +37 -0
  2162. data/node_modules/whatwg-encoding/lib/whatwg-encoding.js +47 -0
  2163. data/node_modules/whatwg-encoding/package.json +29 -0
  2164. data/node_modules/whatwg-mimetype/LICENSE.txt +7 -0
  2165. data/node_modules/whatwg-mimetype/README.md +101 -0
  2166. data/node_modules/whatwg-mimetype/lib/mime-type.js +191 -0
  2167. data/node_modules/whatwg-mimetype/lib/parser.js +124 -0
  2168. data/node_modules/whatwg-mimetype/lib/serializer.js +25 -0
  2169. data/node_modules/whatwg-mimetype/lib/utils.js +25 -0
  2170. data/node_modules/whatwg-mimetype/package.json +43 -0
  2171. data/node_modules/whatwg-url/LICENSE.txt +21 -0
  2172. data/node_modules/whatwg-url/README.md +104 -0
  2173. data/node_modules/whatwg-url/dist/Function.js +46 -0
  2174. data/node_modules/whatwg-url/dist/URL-impl.js +217 -0
  2175. data/node_modules/whatwg-url/dist/URL.js +417 -0
  2176. data/node_modules/whatwg-url/dist/URLSearchParams-impl.js +122 -0
  2177. data/node_modules/whatwg-url/dist/URLSearchParams.js +457 -0
  2178. data/node_modules/whatwg-url/dist/VoidFunction.js +30 -0
  2179. data/node_modules/whatwg-url/dist/encoding.js +26 -0
  2180. data/node_modules/whatwg-url/dist/infra.js +26 -0
  2181. data/node_modules/whatwg-url/dist/percent-encoding.js +141 -0
  2182. data/node_modules/whatwg-url/dist/url-state-machine.js +1210 -0
  2183. data/node_modules/whatwg-url/dist/urlencoded.js +102 -0
  2184. data/node_modules/whatwg-url/dist/utils.js +141 -0
  2185. data/node_modules/whatwg-url/index.js +24 -0
  2186. data/node_modules/whatwg-url/package.json +60 -0
  2187. data/node_modules/whatwg-url/webidl2js-wrapper.js +7 -0
  2188. data/node_modules/word-wrap/LICENSE +21 -0
  2189. data/node_modules/word-wrap/README.md +182 -0
  2190. data/node_modules/word-wrap/index.d.ts +50 -0
  2191. data/node_modules/word-wrap/index.js +46 -0
  2192. data/node_modules/word-wrap/package.json +77 -0
  2193. data/node_modules/ws/LICENSE +21 -0
  2194. data/node_modules/ws/README.md +496 -0
  2195. data/node_modules/ws/browser.js +8 -0
  2196. data/node_modules/ws/index.js +10 -0
  2197. data/node_modules/ws/lib/buffer-util.js +129 -0
  2198. data/node_modules/ws/lib/constants.js +10 -0
  2199. data/node_modules/ws/lib/event-target.js +184 -0
  2200. data/node_modules/ws/lib/extension.js +223 -0
  2201. data/node_modules/ws/lib/limiter.js +55 -0
  2202. data/node_modules/ws/lib/permessage-deflate.js +518 -0
  2203. data/node_modules/ws/lib/receiver.js +607 -0
  2204. data/node_modules/ws/lib/sender.js +409 -0
  2205. data/node_modules/ws/lib/stream.js +177 -0
  2206. data/node_modules/ws/lib/validation.js +104 -0
  2207. data/node_modules/ws/lib/websocket-server.js +447 -0
  2208. data/node_modules/ws/lib/websocket.js +1078 -0
  2209. data/node_modules/ws/package.json +56 -0
  2210. data/node_modules/xml-name-validator/LICENSE.txt +176 -0
  2211. data/node_modules/xml-name-validator/README.md +36 -0
  2212. data/node_modules/xml-name-validator/lib/generated-parser.js +504 -0
  2213. data/node_modules/xml-name-validator/lib/grammar.pegjs +35 -0
  2214. data/node_modules/xml-name-validator/lib/xml-name-validator.js +17 -0
  2215. data/node_modules/xml-name-validator/package.json +28 -0
  2216. data/node_modules/xmlchars/LICENSE +18 -0
  2217. data/node_modules/xmlchars/README.md +33 -0
  2218. data/node_modules/xmlchars/package.json +51 -0
  2219. data/node_modules/xmlchars/xml/1.0/ed4.d.ts +31 -0
  2220. data/node_modules/xmlchars/xml/1.0/ed4.js +44 -0
  2221. data/node_modules/xmlchars/xml/1.0/ed4.js.map +1 -0
  2222. data/node_modules/xmlchars/xml/1.0/ed5.d.ts +51 -0
  2223. data/node_modules/xmlchars/xml/1.0/ed5.js +105 -0
  2224. data/node_modules/xmlchars/xml/1.0/ed5.js.map +1 -0
  2225. data/node_modules/xmlchars/xml/1.1/ed2.d.ts +73 -0
  2226. data/node_modules/xmlchars/xml/1.1/ed2.js +145 -0
  2227. data/node_modules/xmlchars/xml/1.1/ed2.js.map +1 -0
  2228. data/node_modules/xmlchars/xmlchars.d.ts +170 -0
  2229. data/node_modules/xmlchars/xmlchars.js +191 -0
  2230. data/node_modules/xmlchars/xmlchars.js.map +1 -0
  2231. data/node_modules/xmlchars/xmlns/1.0/ed3.d.ts +28 -0
  2232. data/node_modules/xmlchars/xmlns/1.0/ed3.js +65 -0
  2233. data/node_modules/xmlchars/xmlns/1.0/ed3.js.map +1 -0
  2234. data/package.json +1 -1
  2235. data/release.sh +2 -1
  2236. data/spec/depends/api_spec.rb +1 -1
  2237. data/spec/fixtures/depends/revoke_api_key.appmap.json +3 -3
  2238. data/spec/fixtures/depends/user_page_scenario.appmap.json +3 -3
  2239. data/spec/fixtures/rails6_users_app/Gemfile +1 -1
  2240. data/spec/fixtures/rails6_users_app/docker-compose.yml +1 -1
  2241. data/spec/hook_spec.rb +6 -4
  2242. data/spec/rails_recording_spec.rb +5 -2
  2243. data/spec/railtie_spec.rb +3 -3
  2244. data/spec/record_sql_rails_pg_spec.rb +1 -1
  2245. data/spec/remote_recording_spec.rb +3 -3
  2246. data/spec/spec_helper.rb +4 -0
  2247. data/test/agent_setup_validate_test.rb +3 -3
  2248. data/yarn.lock +408 -20
  2249. metadata +2219 -100
  2250. data/node_modules/@appland/cli/CHANGELOG.md +0 -96
  2251. data/node_modules/@appland/cli/package.json +0 -49
  2252. data/node_modules/@appland/cli/src/appland/listAppMaps.js +0 -58
  2253. data/node_modules/@appland/cli/src/appland/types.d.ts +0 -16
  2254. data/node_modules/@appland/cli/src/cli.js +0 -576
  2255. data/node_modules/@appland/cli/src/utils.js +0 -164
  2256. data/node_modules/@appland/cli/tests/unit/depends.spec.js +0 -55
  2257. data/node_modules/@appland/cli/tests/unit/fingerprint/canonicalize.spec.js +0 -42
  2258. data/node_modules/@appland/cli/tests/unit/fixtures/canonicalize/revoke_api_key.info.json +0 -246
  2259. data/node_modules/@appland/cli/tests/unit/fixtures/canonicalize/revoke_api_key.trace.json +0 -289
  2260. data/node_modules/@appland/cli/tests/unit/fixtures/canonicalize/revoke_api_key.update.json +0 -78
  2261. data/node_modules/@appland/cli/tests/unit/fixtures/revoke_api_key.appmap.json +0 -899
  2262. data/node_modules/@appland/cli/tests/unit/fixtures/user_page_scenario.appmap.json +0 -1774
  2263. data/node_modules/@appland/cli/tests/unit/inspect.spec.js +0 -94
  2264. data/node_modules/@rollup/plugin-alias/CHANGELOG.md +0 -92
  2265. data/node_modules/@rollup/plugin-alias/LICENSE +0 -21
  2266. data/node_modules/@rollup/plugin-alias/README.md +0 -174
  2267. data/node_modules/@rollup/plugin-alias/dist/index.es.js +0 -95
  2268. data/node_modules/@rollup/plugin-alias/dist/index.js +0 -101
  2269. data/node_modules/@rollup/plugin-alias/package.json +0 -78
  2270. data/node_modules/@rollup/plugin-alias/types/index.d.ts +0 -36
  2271. data/node_modules/fsevents/LICENSE +0 -22
  2272. data/node_modules/fsevents/README.md +0 -83
  2273. data/node_modules/fsevents/fsevents.d.ts +0 -46
  2274. data/node_modules/fsevents/fsevents.js +0 -82
  2275. data/node_modules/fsevents/fsevents.node +0 -0
  2276. data/node_modules/fsevents/package.json +0 -62
  2277. data/node_modules/slash/index.d.ts +0 -25
  2278. data/node_modules/slash/index.js +0 -11
  2279. data/node_modules/slash/license +0 -9
  2280. data/node_modules/slash/package.json +0 -35
  2281. data/node_modules/slash/readme.md +0 -44
@@ -0,0 +1,30 @@
1
+ {
2
+ "name": "webidl-conversions",
3
+ "version": "5.0.0",
4
+ "description": "Implements the WebIDL algorithms for converting to and from JavaScript values",
5
+ "main": "lib/index.js",
6
+ "scripts": {
7
+ "lint": "eslint .",
8
+ "test": "mocha test/*.js",
9
+ "coverage": "nyc mocha test/*.js"
10
+ },
11
+ "repository": "jsdom/webidl-conversions",
12
+ "keywords": [
13
+ "webidl",
14
+ "web",
15
+ "types"
16
+ ],
17
+ "files": [
18
+ "lib/"
19
+ ],
20
+ "author": "Domenic Denicola <d@domenic.me> (https://domenic.me/)",
21
+ "license": "BSD-2-Clause",
22
+ "devDependencies": {
23
+ "eslint": "^6.7.2",
24
+ "mocha": "^6.2.2",
25
+ "nyc": "^14.1.1"
26
+ },
27
+ "engines": {
28
+ "node": ">=8"
29
+ }
30
+ }
@@ -0,0 +1,42 @@
1
+ {
2
+ "name": "domexception",
3
+ "description": "An implementation of the DOMException class from browsers",
4
+ "keywords": [
5
+ "dom",
6
+ "webidl",
7
+ "web idl",
8
+ "domexception",
9
+ "error",
10
+ "exception"
11
+ ],
12
+ "version": "2.0.1",
13
+ "author": "Domenic Denicola <d@domenic.me> (https://domenic.me/)",
14
+ "license": "MIT",
15
+ "repository": "jsdom/domexception",
16
+ "main": "index.js",
17
+ "files": [
18
+ "index.js",
19
+ "webidl2js-wrapper.js",
20
+ "lib/"
21
+ ],
22
+ "scripts": {
23
+ "prepare": "node scripts/generate.js",
24
+ "init-wpt": "node scripts/get-latest-platform-tests.js",
25
+ "pretest": "npm run prepare && npm run init-wpt",
26
+ "test": "mocha",
27
+ "lint": "eslint lib"
28
+ },
29
+ "dependencies": {
30
+ "webidl-conversions": "^5.0.0"
31
+ },
32
+ "devDependencies": {
33
+ "eslint": "^6.7.2",
34
+ "mkdirp": "^0.5.1",
35
+ "mocha": "^6.2.2",
36
+ "request": "^2.88.0",
37
+ "webidl2js": "^12.0.0"
38
+ },
39
+ "engines": {
40
+ "node": ">=8"
41
+ }
42
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ const DOMException = require("./lib/DOMException.js");
3
+
4
+ // Special install function to make the DOMException inherit from Error.
5
+ // https://heycam.github.io/webidl/#es-DOMException-specialness
6
+ function installOverride(globalObject) {
7
+ if (typeof globalObject.Error !== "function") {
8
+ throw new Error("Internal error: Error constructor is not present on the given global object.");
9
+ }
10
+
11
+ DOMException.install(globalObject);
12
+ Object.setPrototypeOf(globalObject.DOMException.prototype, globalObject.Error.prototype);
13
+ }
14
+
15
+ module.exports = {...DOMException, install: installOverride };
@@ -0,0 +1,21 @@
1
+ Copyright (C) 2012 Yusuke Suzuki (twitter: @Constellation) and other contributors.
2
+
3
+ Redistribution and use in source and binary forms, with or without
4
+ modification, are permitted provided that the following conditions are met:
5
+
6
+ * Redistributions of source code must retain the above copyright
7
+ notice, this list of conditions and the following disclaimer.
8
+ * Redistributions in binary form must reproduce the above copyright
9
+ notice, this list of conditions and the following disclaimer in the
10
+ documentation and/or other materials provided with the distribution.
11
+
12
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
13
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
14
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
15
+ ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
16
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
17
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
18
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
19
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
20
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
21
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,84 @@
1
+ ## Escodegen
2
+ [![npm version](https://badge.fury.io/js/escodegen.svg)](http://badge.fury.io/js/escodegen)
3
+ [![Build Status](https://secure.travis-ci.org/estools/escodegen.svg)](http://travis-ci.org/estools/escodegen)
4
+ [![Dependency Status](https://david-dm.org/estools/escodegen.svg)](https://david-dm.org/estools/escodegen)
5
+ [![devDependency Status](https://david-dm.org/estools/escodegen/dev-status.svg)](https://david-dm.org/estools/escodegen#info=devDependencies)
6
+
7
+ Escodegen ([escodegen](http://github.com/estools/escodegen)) is an
8
+ [ECMAScript](http://www.ecma-international.org/publications/standards/Ecma-262.htm)
9
+ (also popularly known as [JavaScript](http://en.wikipedia.org/wiki/JavaScript))
10
+ code generator from [Mozilla's Parser API](https://developer.mozilla.org/en/SpiderMonkey/Parser_API)
11
+ AST. See the [online generator](https://estools.github.io/escodegen/demo/index.html)
12
+ for a demo.
13
+
14
+
15
+ ### Install
16
+
17
+ Escodegen can be used in a web browser:
18
+
19
+ <script src="escodegen.browser.js"></script>
20
+
21
+ escodegen.browser.js can be found in tagged revisions on GitHub.
22
+
23
+ Or in a Node.js application via npm:
24
+
25
+ npm install escodegen
26
+
27
+ ### Usage
28
+
29
+ A simple example: the program
30
+
31
+ escodegen.generate({
32
+ type: 'BinaryExpression',
33
+ operator: '+',
34
+ left: { type: 'Literal', value: 40 },
35
+ right: { type: 'Literal', value: 2 }
36
+ });
37
+
38
+ produces the string `'40 + 2'`.
39
+
40
+ See the [API page](https://github.com/estools/escodegen/wiki/API) for
41
+ options. To run the tests, execute `npm test` in the root directory.
42
+
43
+ ### Building browser bundle / minified browser bundle
44
+
45
+ At first, execute `npm install` to install the all dev dependencies.
46
+ After that,
47
+
48
+ npm run-script build
49
+
50
+ will generate `escodegen.browser.js`, which can be used in browser environments.
51
+
52
+ And,
53
+
54
+ npm run-script build-min
55
+
56
+ will generate the minified file `escodegen.browser.min.js`.
57
+
58
+ ### License
59
+
60
+ #### Escodegen
61
+
62
+ Copyright (C) 2012 [Yusuke Suzuki](http://github.com/Constellation)
63
+ (twitter: [@Constellation](http://twitter.com/Constellation)) and other contributors.
64
+
65
+ Redistribution and use in source and binary forms, with or without
66
+ modification, are permitted provided that the following conditions are met:
67
+
68
+ * Redistributions of source code must retain the above copyright
69
+ notice, this list of conditions and the following disclaimer.
70
+
71
+ * Redistributions in binary form must reproduce the above copyright
72
+ notice, this list of conditions and the following disclaimer in the
73
+ documentation and/or other materials provided with the distribution.
74
+
75
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
76
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
77
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
78
+ ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
79
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
80
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
81
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
82
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
83
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
84
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,77 @@
1
+ #!/usr/bin/env node
2
+ /*
3
+ Copyright (C) 2012 Yusuke Suzuki <utatane.tea@gmail.com>
4
+
5
+ Redistribution and use in source and binary forms, with or without
6
+ modification, are permitted provided that the following conditions are met:
7
+
8
+ * Redistributions of source code must retain the above copyright
9
+ notice, this list of conditions and the following disclaimer.
10
+ * Redistributions in binary form must reproduce the above copyright
11
+ notice, this list of conditions and the following disclaimer in the
12
+ documentation and/or other materials provided with the distribution.
13
+
14
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
15
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17
+ ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
18
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24
+ */
25
+
26
+ /*jslint sloppy:true node:true */
27
+
28
+ var fs = require('fs'),
29
+ path = require('path'),
30
+ root = path.join(path.dirname(fs.realpathSync(__filename)), '..'),
31
+ esprima = require('esprima'),
32
+ escodegen = require(root),
33
+ optionator = require('optionator')({
34
+ prepend: 'Usage: escodegen [options] file...',
35
+ options: [
36
+ {
37
+ option: 'config',
38
+ alias: 'c',
39
+ type: 'String',
40
+ description: 'configuration json for escodegen'
41
+ }
42
+ ]
43
+ }),
44
+ args = optionator.parse(process.argv),
45
+ files = args._,
46
+ options,
47
+ esprimaOptions = {
48
+ raw: true,
49
+ tokens: true,
50
+ range: true,
51
+ comment: true
52
+ };
53
+
54
+ if (files.length === 0) {
55
+ console.log(optionator.generateHelp());
56
+ process.exit(1);
57
+ }
58
+
59
+ if (args.config) {
60
+ try {
61
+ options = JSON.parse(fs.readFileSync(args.config, 'utf-8'));
62
+ } catch (err) {
63
+ console.error('Error parsing config: ', err);
64
+ }
65
+ }
66
+
67
+ files.forEach(function (filename) {
68
+ var content = fs.readFileSync(filename, 'utf-8'),
69
+ syntax = esprima.parse(content, esprimaOptions);
70
+
71
+ if (options.comment) {
72
+ escodegen.attachComments(syntax, syntax.comments, syntax.tokens);
73
+ }
74
+
75
+ console.log(escodegen.generate(syntax, options));
76
+ });
77
+ /* vim: set sw=4 ts=4 et tw=80 : */
@@ -0,0 +1,64 @@
1
+ #!/usr/bin/env node
2
+ /*
3
+ Copyright (C) 2012 Yusuke Suzuki <utatane.tea@gmail.com>
4
+
5
+ Redistribution and use in source and binary forms, with or without
6
+ modification, are permitted provided that the following conditions are met:
7
+
8
+ * Redistributions of source code must retain the above copyright
9
+ notice, this list of conditions and the following disclaimer.
10
+ * Redistributions in binary form must reproduce the above copyright
11
+ notice, this list of conditions and the following disclaimer in the
12
+ documentation and/or other materials provided with the distribution.
13
+
14
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
15
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17
+ ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
18
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24
+ */
25
+
26
+ /*jslint sloppy:true node:true */
27
+
28
+ var fs = require('fs'),
29
+ path = require('path'),
30
+ root = path.join(path.dirname(fs.realpathSync(__filename)), '..'),
31
+ escodegen = require(root),
32
+ optionator = require('optionator')({
33
+ prepend: 'Usage: esgenerate [options] file.json ...',
34
+ options: [
35
+ {
36
+ option: 'config',
37
+ alias: 'c',
38
+ type: 'String',
39
+ description: 'configuration json for escodegen'
40
+ }
41
+ ]
42
+ }),
43
+ args = optionator.parse(process.argv),
44
+ files = args._,
45
+ options;
46
+
47
+ if (files.length === 0) {
48
+ console.log(optionator.generateHelp());
49
+ process.exit(1);
50
+ }
51
+
52
+ if (args.config) {
53
+ try {
54
+ options = JSON.parse(fs.readFileSync(args.config, 'utf-8'))
55
+ } catch (err) {
56
+ console.error('Error parsing config: ', err);
57
+ }
58
+ }
59
+
60
+ files.forEach(function (filename) {
61
+ var content = fs.readFileSync(filename, 'utf-8');
62
+ console.log(escodegen.generate(JSON.parse(content), options));
63
+ });
64
+ /* vim: set sw=4 ts=4 et tw=80 : */
@@ -0,0 +1,2647 @@
1
+ /*
2
+ Copyright (C) 2012-2014 Yusuke Suzuki <utatane.tea@gmail.com>
3
+ Copyright (C) 2015 Ingvar Stepanyan <me@rreverser.com>
4
+ Copyright (C) 2014 Ivan Nikulin <ifaaan@gmail.com>
5
+ Copyright (C) 2012-2013 Michael Ficarra <escodegen.copyright@michael.ficarra.me>
6
+ Copyright (C) 2012-2013 Mathias Bynens <mathias@qiwi.be>
7
+ Copyright (C) 2013 Irakli Gozalishvili <rfobic@gmail.com>
8
+ Copyright (C) 2012 Robert Gust-Bardon <donate@robert.gust-bardon.org>
9
+ Copyright (C) 2012 John Freeman <jfreeman08@gmail.com>
10
+ Copyright (C) 2011-2012 Ariya Hidayat <ariya.hidayat@gmail.com>
11
+ Copyright (C) 2012 Joost-Wim Boekesteijn <joost-wim@boekesteijn.nl>
12
+ Copyright (C) 2012 Kris Kowal <kris.kowal@cixar.com>
13
+ Copyright (C) 2012 Arpad Borsos <arpad.borsos@googlemail.com>
14
+
15
+ Redistribution and use in source and binary forms, with or without
16
+ modification, are permitted provided that the following conditions are met:
17
+
18
+ * Redistributions of source code must retain the above copyright
19
+ notice, this list of conditions and the following disclaimer.
20
+ * Redistributions in binary form must reproduce the above copyright
21
+ notice, this list of conditions and the following disclaimer in the
22
+ documentation and/or other materials provided with the distribution.
23
+
24
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
25
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27
+ ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
28
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
29
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
31
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
33
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
+ */
35
+
36
+ /*global exports:true, require:true, global:true*/
37
+ (function () {
38
+ 'use strict';
39
+
40
+ var Syntax,
41
+ Precedence,
42
+ BinaryPrecedence,
43
+ SourceNode,
44
+ estraverse,
45
+ esutils,
46
+ base,
47
+ indent,
48
+ json,
49
+ renumber,
50
+ hexadecimal,
51
+ quotes,
52
+ escapeless,
53
+ newline,
54
+ space,
55
+ parentheses,
56
+ semicolons,
57
+ safeConcatenation,
58
+ directive,
59
+ extra,
60
+ parse,
61
+ sourceMap,
62
+ sourceCode,
63
+ preserveBlankLines,
64
+ FORMAT_MINIFY,
65
+ FORMAT_DEFAULTS;
66
+
67
+ estraverse = require('estraverse');
68
+ esutils = require('esutils');
69
+
70
+ Syntax = estraverse.Syntax;
71
+
72
+ // Generation is done by generateExpression.
73
+ function isExpression(node) {
74
+ return CodeGenerator.Expression.hasOwnProperty(node.type);
75
+ }
76
+
77
+ // Generation is done by generateStatement.
78
+ function isStatement(node) {
79
+ return CodeGenerator.Statement.hasOwnProperty(node.type);
80
+ }
81
+
82
+ Precedence = {
83
+ Sequence: 0,
84
+ Yield: 1,
85
+ Assignment: 1,
86
+ Conditional: 2,
87
+ ArrowFunction: 2,
88
+ LogicalOR: 3,
89
+ LogicalAND: 4,
90
+ BitwiseOR: 5,
91
+ BitwiseXOR: 6,
92
+ BitwiseAND: 7,
93
+ Equality: 8,
94
+ Relational: 9,
95
+ BitwiseSHIFT: 10,
96
+ Additive: 11,
97
+ Multiplicative: 12,
98
+ Exponentiation: 13,
99
+ Await: 14,
100
+ Unary: 14,
101
+ Postfix: 15,
102
+ OptionalChaining: 16,
103
+ Call: 17,
104
+ New: 18,
105
+ TaggedTemplate: 19,
106
+ Member: 20,
107
+ Primary: 21
108
+ };
109
+
110
+ BinaryPrecedence = {
111
+ '||': Precedence.LogicalOR,
112
+ '&&': Precedence.LogicalAND,
113
+ '|': Precedence.BitwiseOR,
114
+ '^': Precedence.BitwiseXOR,
115
+ '&': Precedence.BitwiseAND,
116
+ '==': Precedence.Equality,
117
+ '!=': Precedence.Equality,
118
+ '===': Precedence.Equality,
119
+ '!==': Precedence.Equality,
120
+ 'is': Precedence.Equality,
121
+ 'isnt': Precedence.Equality,
122
+ '<': Precedence.Relational,
123
+ '>': Precedence.Relational,
124
+ '<=': Precedence.Relational,
125
+ '>=': Precedence.Relational,
126
+ 'in': Precedence.Relational,
127
+ 'instanceof': Precedence.Relational,
128
+ '<<': Precedence.BitwiseSHIFT,
129
+ '>>': Precedence.BitwiseSHIFT,
130
+ '>>>': Precedence.BitwiseSHIFT,
131
+ '+': Precedence.Additive,
132
+ '-': Precedence.Additive,
133
+ '*': Precedence.Multiplicative,
134
+ '%': Precedence.Multiplicative,
135
+ '/': Precedence.Multiplicative,
136
+ '**': Precedence.Exponentiation
137
+ };
138
+
139
+ //Flags
140
+ var F_ALLOW_IN = 1,
141
+ F_ALLOW_CALL = 1 << 1,
142
+ F_ALLOW_UNPARATH_NEW = 1 << 2,
143
+ F_FUNC_BODY = 1 << 3,
144
+ F_DIRECTIVE_CTX = 1 << 4,
145
+ F_SEMICOLON_OPT = 1 << 5;
146
+
147
+ //Expression flag sets
148
+ //NOTE: Flag order:
149
+ // F_ALLOW_IN
150
+ // F_ALLOW_CALL
151
+ // F_ALLOW_UNPARATH_NEW
152
+ var E_FTT = F_ALLOW_CALL | F_ALLOW_UNPARATH_NEW,
153
+ E_TTF = F_ALLOW_IN | F_ALLOW_CALL,
154
+ E_TTT = F_ALLOW_IN | F_ALLOW_CALL | F_ALLOW_UNPARATH_NEW,
155
+ E_TFF = F_ALLOW_IN,
156
+ E_FFT = F_ALLOW_UNPARATH_NEW,
157
+ E_TFT = F_ALLOW_IN | F_ALLOW_UNPARATH_NEW;
158
+
159
+ //Statement flag sets
160
+ //NOTE: Flag order:
161
+ // F_ALLOW_IN
162
+ // F_FUNC_BODY
163
+ // F_DIRECTIVE_CTX
164
+ // F_SEMICOLON_OPT
165
+ var S_TFFF = F_ALLOW_IN,
166
+ S_TFFT = F_ALLOW_IN | F_SEMICOLON_OPT,
167
+ S_FFFF = 0x00,
168
+ S_TFTF = F_ALLOW_IN | F_DIRECTIVE_CTX,
169
+ S_TTFF = F_ALLOW_IN | F_FUNC_BODY;
170
+
171
+ function getDefaultOptions() {
172
+ // default options
173
+ return {
174
+ indent: null,
175
+ base: null,
176
+ parse: null,
177
+ comment: false,
178
+ format: {
179
+ indent: {
180
+ style: ' ',
181
+ base: 0,
182
+ adjustMultilineComment: false
183
+ },
184
+ newline: '\n',
185
+ space: ' ',
186
+ json: false,
187
+ renumber: false,
188
+ hexadecimal: false,
189
+ quotes: 'single',
190
+ escapeless: false,
191
+ compact: false,
192
+ parentheses: true,
193
+ semicolons: true,
194
+ safeConcatenation: false,
195
+ preserveBlankLines: false
196
+ },
197
+ moz: {
198
+ comprehensionExpressionStartsWithAssignment: false,
199
+ starlessGenerator: false
200
+ },
201
+ sourceMap: null,
202
+ sourceMapRoot: null,
203
+ sourceMapWithCode: false,
204
+ directive: false,
205
+ raw: true,
206
+ verbatim: null,
207
+ sourceCode: null
208
+ };
209
+ }
210
+
211
+ function stringRepeat(str, num) {
212
+ var result = '';
213
+
214
+ for (num |= 0; num > 0; num >>>= 1, str += str) {
215
+ if (num & 1) {
216
+ result += str;
217
+ }
218
+ }
219
+
220
+ return result;
221
+ }
222
+
223
+ function hasLineTerminator(str) {
224
+ return (/[\r\n]/g).test(str);
225
+ }
226
+
227
+ function endsWithLineTerminator(str) {
228
+ var len = str.length;
229
+ return len && esutils.code.isLineTerminator(str.charCodeAt(len - 1));
230
+ }
231
+
232
+ function merge(target, override) {
233
+ var key;
234
+ for (key in override) {
235
+ if (override.hasOwnProperty(key)) {
236
+ target[key] = override[key];
237
+ }
238
+ }
239
+ return target;
240
+ }
241
+
242
+ function updateDeeply(target, override) {
243
+ var key, val;
244
+
245
+ function isHashObject(target) {
246
+ return typeof target === 'object' && target instanceof Object && !(target instanceof RegExp);
247
+ }
248
+
249
+ for (key in override) {
250
+ if (override.hasOwnProperty(key)) {
251
+ val = override[key];
252
+ if (isHashObject(val)) {
253
+ if (isHashObject(target[key])) {
254
+ updateDeeply(target[key], val);
255
+ } else {
256
+ target[key] = updateDeeply({}, val);
257
+ }
258
+ } else {
259
+ target[key] = val;
260
+ }
261
+ }
262
+ }
263
+ return target;
264
+ }
265
+
266
+ function generateNumber(value) {
267
+ var result, point, temp, exponent, pos;
268
+
269
+ if (value !== value) {
270
+ throw new Error('Numeric literal whose value is NaN');
271
+ }
272
+ if (value < 0 || (value === 0 && 1 / value < 0)) {
273
+ throw new Error('Numeric literal whose value is negative');
274
+ }
275
+
276
+ if (value === 1 / 0) {
277
+ return json ? 'null' : renumber ? '1e400' : '1e+400';
278
+ }
279
+
280
+ result = '' + value;
281
+ if (!renumber || result.length < 3) {
282
+ return result;
283
+ }
284
+
285
+ point = result.indexOf('.');
286
+ if (!json && result.charCodeAt(0) === 0x30 /* 0 */ && point === 1) {
287
+ point = 0;
288
+ result = result.slice(1);
289
+ }
290
+ temp = result;
291
+ result = result.replace('e+', 'e');
292
+ exponent = 0;
293
+ if ((pos = temp.indexOf('e')) > 0) {
294
+ exponent = +temp.slice(pos + 1);
295
+ temp = temp.slice(0, pos);
296
+ }
297
+ if (point >= 0) {
298
+ exponent -= temp.length - point - 1;
299
+ temp = +(temp.slice(0, point) + temp.slice(point + 1)) + '';
300
+ }
301
+ pos = 0;
302
+ while (temp.charCodeAt(temp.length + pos - 1) === 0x30 /* 0 */) {
303
+ --pos;
304
+ }
305
+ if (pos !== 0) {
306
+ exponent -= pos;
307
+ temp = temp.slice(0, pos);
308
+ }
309
+ if (exponent !== 0) {
310
+ temp += 'e' + exponent;
311
+ }
312
+ if ((temp.length < result.length ||
313
+ (hexadecimal && value > 1e12 && Math.floor(value) === value && (temp = '0x' + value.toString(16)).length < result.length)) &&
314
+ +temp === value) {
315
+ result = temp;
316
+ }
317
+
318
+ return result;
319
+ }
320
+
321
+ // Generate valid RegExp expression.
322
+ // This function is based on https://github.com/Constellation/iv Engine
323
+
324
+ function escapeRegExpCharacter(ch, previousIsBackslash) {
325
+ // not handling '\' and handling \u2028 or \u2029 to unicode escape sequence
326
+ if ((ch & ~1) === 0x2028) {
327
+ return (previousIsBackslash ? 'u' : '\\u') + ((ch === 0x2028) ? '2028' : '2029');
328
+ } else if (ch === 10 || ch === 13) { // \n, \r
329
+ return (previousIsBackslash ? '' : '\\') + ((ch === 10) ? 'n' : 'r');
330
+ }
331
+ return String.fromCharCode(ch);
332
+ }
333
+
334
+ function generateRegExp(reg) {
335
+ var match, result, flags, i, iz, ch, characterInBrack, previousIsBackslash;
336
+
337
+ result = reg.toString();
338
+
339
+ if (reg.source) {
340
+ // extract flag from toString result
341
+ match = result.match(/\/([^/]*)$/);
342
+ if (!match) {
343
+ return result;
344
+ }
345
+
346
+ flags = match[1];
347
+ result = '';
348
+
349
+ characterInBrack = false;
350
+ previousIsBackslash = false;
351
+ for (i = 0, iz = reg.source.length; i < iz; ++i) {
352
+ ch = reg.source.charCodeAt(i);
353
+
354
+ if (!previousIsBackslash) {
355
+ if (characterInBrack) {
356
+ if (ch === 93) { // ]
357
+ characterInBrack = false;
358
+ }
359
+ } else {
360
+ if (ch === 47) { // /
361
+ result += '\\';
362
+ } else if (ch === 91) { // [
363
+ characterInBrack = true;
364
+ }
365
+ }
366
+ result += escapeRegExpCharacter(ch, previousIsBackslash);
367
+ previousIsBackslash = ch === 92; // \
368
+ } else {
369
+ // if new RegExp("\\\n') is provided, create /\n/
370
+ result += escapeRegExpCharacter(ch, previousIsBackslash);
371
+ // prevent like /\\[/]/
372
+ previousIsBackslash = false;
373
+ }
374
+ }
375
+
376
+ return '/' + result + '/' + flags;
377
+ }
378
+
379
+ return result;
380
+ }
381
+
382
+ function escapeAllowedCharacter(code, next) {
383
+ var hex;
384
+
385
+ if (code === 0x08 /* \b */) {
386
+ return '\\b';
387
+ }
388
+
389
+ if (code === 0x0C /* \f */) {
390
+ return '\\f';
391
+ }
392
+
393
+ if (code === 0x09 /* \t */) {
394
+ return '\\t';
395
+ }
396
+
397
+ hex = code.toString(16).toUpperCase();
398
+ if (json || code > 0xFF) {
399
+ return '\\u' + '0000'.slice(hex.length) + hex;
400
+ } else if (code === 0x0000 && !esutils.code.isDecimalDigit(next)) {
401
+ return '\\0';
402
+ } else if (code === 0x000B /* \v */) { // '\v'
403
+ return '\\x0B';
404
+ } else {
405
+ return '\\x' + '00'.slice(hex.length) + hex;
406
+ }
407
+ }
408
+
409
+ function escapeDisallowedCharacter(code) {
410
+ if (code === 0x5C /* \ */) {
411
+ return '\\\\';
412
+ }
413
+
414
+ if (code === 0x0A /* \n */) {
415
+ return '\\n';
416
+ }
417
+
418
+ if (code === 0x0D /* \r */) {
419
+ return '\\r';
420
+ }
421
+
422
+ if (code === 0x2028) {
423
+ return '\\u2028';
424
+ }
425
+
426
+ if (code === 0x2029) {
427
+ return '\\u2029';
428
+ }
429
+
430
+ throw new Error('Incorrectly classified character');
431
+ }
432
+
433
+ function escapeDirective(str) {
434
+ var i, iz, code, quote;
435
+
436
+ quote = quotes === 'double' ? '"' : '\'';
437
+ for (i = 0, iz = str.length; i < iz; ++i) {
438
+ code = str.charCodeAt(i);
439
+ if (code === 0x27 /* ' */) {
440
+ quote = '"';
441
+ break;
442
+ } else if (code === 0x22 /* " */) {
443
+ quote = '\'';
444
+ break;
445
+ } else if (code === 0x5C /* \ */) {
446
+ ++i;
447
+ }
448
+ }
449
+
450
+ return quote + str + quote;
451
+ }
452
+
453
+ function escapeString(str) {
454
+ var result = '', i, len, code, singleQuotes = 0, doubleQuotes = 0, single, quote;
455
+
456
+ for (i = 0, len = str.length; i < len; ++i) {
457
+ code = str.charCodeAt(i);
458
+ if (code === 0x27 /* ' */) {
459
+ ++singleQuotes;
460
+ } else if (code === 0x22 /* " */) {
461
+ ++doubleQuotes;
462
+ } else if (code === 0x2F /* / */ && json) {
463
+ result += '\\';
464
+ } else if (esutils.code.isLineTerminator(code) || code === 0x5C /* \ */) {
465
+ result += escapeDisallowedCharacter(code);
466
+ continue;
467
+ } else if (!esutils.code.isIdentifierPartES5(code) && (json && code < 0x20 /* SP */ || !json && !escapeless && (code < 0x20 /* SP */ || code > 0x7E /* ~ */))) {
468
+ result += escapeAllowedCharacter(code, str.charCodeAt(i + 1));
469
+ continue;
470
+ }
471
+ result += String.fromCharCode(code);
472
+ }
473
+
474
+ single = !(quotes === 'double' || (quotes === 'auto' && doubleQuotes < singleQuotes));
475
+ quote = single ? '\'' : '"';
476
+
477
+ if (!(single ? singleQuotes : doubleQuotes)) {
478
+ return quote + result + quote;
479
+ }
480
+
481
+ str = result;
482
+ result = quote;
483
+
484
+ for (i = 0, len = str.length; i < len; ++i) {
485
+ code = str.charCodeAt(i);
486
+ if ((code === 0x27 /* ' */ && single) || (code === 0x22 /* " */ && !single)) {
487
+ result += '\\';
488
+ }
489
+ result += String.fromCharCode(code);
490
+ }
491
+
492
+ return result + quote;
493
+ }
494
+
495
+ /**
496
+ * flatten an array to a string, where the array can contain
497
+ * either strings or nested arrays
498
+ */
499
+ function flattenToString(arr) {
500
+ var i, iz, elem, result = '';
501
+ for (i = 0, iz = arr.length; i < iz; ++i) {
502
+ elem = arr[i];
503
+ result += Array.isArray(elem) ? flattenToString(elem) : elem;
504
+ }
505
+ return result;
506
+ }
507
+
508
+ /**
509
+ * convert generated to a SourceNode when source maps are enabled.
510
+ */
511
+ function toSourceNodeWhenNeeded(generated, node) {
512
+ if (!sourceMap) {
513
+ // with no source maps, generated is either an
514
+ // array or a string. if an array, flatten it.
515
+ // if a string, just return it
516
+ if (Array.isArray(generated)) {
517
+ return flattenToString(generated);
518
+ } else {
519
+ return generated;
520
+ }
521
+ }
522
+ if (node == null) {
523
+ if (generated instanceof SourceNode) {
524
+ return generated;
525
+ } else {
526
+ node = {};
527
+ }
528
+ }
529
+ if (node.loc == null) {
530
+ return new SourceNode(null, null, sourceMap, generated, node.name || null);
531
+ }
532
+ return new SourceNode(node.loc.start.line, node.loc.start.column, (sourceMap === true ? node.loc.source || null : sourceMap), generated, node.name || null);
533
+ }
534
+
535
+ function noEmptySpace() {
536
+ return (space) ? space : ' ';
537
+ }
538
+
539
+ function join(left, right) {
540
+ var leftSource,
541
+ rightSource,
542
+ leftCharCode,
543
+ rightCharCode;
544
+
545
+ leftSource = toSourceNodeWhenNeeded(left).toString();
546
+ if (leftSource.length === 0) {
547
+ return [right];
548
+ }
549
+
550
+ rightSource = toSourceNodeWhenNeeded(right).toString();
551
+ if (rightSource.length === 0) {
552
+ return [left];
553
+ }
554
+
555
+ leftCharCode = leftSource.charCodeAt(leftSource.length - 1);
556
+ rightCharCode = rightSource.charCodeAt(0);
557
+
558
+ if ((leftCharCode === 0x2B /* + */ || leftCharCode === 0x2D /* - */) && leftCharCode === rightCharCode ||
559
+ esutils.code.isIdentifierPartES5(leftCharCode) && esutils.code.isIdentifierPartES5(rightCharCode) ||
560
+ leftCharCode === 0x2F /* / */ && rightCharCode === 0x69 /* i */) { // infix word operators all start with `i`
561
+ return [left, noEmptySpace(), right];
562
+ } else if (esutils.code.isWhiteSpace(leftCharCode) || esutils.code.isLineTerminator(leftCharCode) ||
563
+ esutils.code.isWhiteSpace(rightCharCode) || esutils.code.isLineTerminator(rightCharCode)) {
564
+ return [left, right];
565
+ }
566
+ return [left, space, right];
567
+ }
568
+
569
+ function addIndent(stmt) {
570
+ return [base, stmt];
571
+ }
572
+
573
+ function withIndent(fn) {
574
+ var previousBase;
575
+ previousBase = base;
576
+ base += indent;
577
+ fn(base);
578
+ base = previousBase;
579
+ }
580
+
581
+ function calculateSpaces(str) {
582
+ var i;
583
+ for (i = str.length - 1; i >= 0; --i) {
584
+ if (esutils.code.isLineTerminator(str.charCodeAt(i))) {
585
+ break;
586
+ }
587
+ }
588
+ return (str.length - 1) - i;
589
+ }
590
+
591
+ function adjustMultilineComment(value, specialBase) {
592
+ var array, i, len, line, j, spaces, previousBase, sn;
593
+
594
+ array = value.split(/\r\n|[\r\n]/);
595
+ spaces = Number.MAX_VALUE;
596
+
597
+ // first line doesn't have indentation
598
+ for (i = 1, len = array.length; i < len; ++i) {
599
+ line = array[i];
600
+ j = 0;
601
+ while (j < line.length && esutils.code.isWhiteSpace(line.charCodeAt(j))) {
602
+ ++j;
603
+ }
604
+ if (spaces > j) {
605
+ spaces = j;
606
+ }
607
+ }
608
+
609
+ if (typeof specialBase !== 'undefined') {
610
+ // pattern like
611
+ // {
612
+ // var t = 20; /*
613
+ // * this is comment
614
+ // */
615
+ // }
616
+ previousBase = base;
617
+ if (array[1][spaces] === '*') {
618
+ specialBase += ' ';
619
+ }
620
+ base = specialBase;
621
+ } else {
622
+ if (spaces & 1) {
623
+ // /*
624
+ // *
625
+ // */
626
+ // If spaces are odd number, above pattern is considered.
627
+ // We waste 1 space.
628
+ --spaces;
629
+ }
630
+ previousBase = base;
631
+ }
632
+
633
+ for (i = 1, len = array.length; i < len; ++i) {
634
+ sn = toSourceNodeWhenNeeded(addIndent(array[i].slice(spaces)));
635
+ array[i] = sourceMap ? sn.join('') : sn;
636
+ }
637
+
638
+ base = previousBase;
639
+
640
+ return array.join('\n');
641
+ }
642
+
643
+ function generateComment(comment, specialBase) {
644
+ if (comment.type === 'Line') {
645
+ if (endsWithLineTerminator(comment.value)) {
646
+ return '//' + comment.value;
647
+ } else {
648
+ // Always use LineTerminator
649
+ var result = '//' + comment.value;
650
+ if (!preserveBlankLines) {
651
+ result += '\n';
652
+ }
653
+ return result;
654
+ }
655
+ }
656
+ if (extra.format.indent.adjustMultilineComment && /[\n\r]/.test(comment.value)) {
657
+ return adjustMultilineComment('/*' + comment.value + '*/', specialBase);
658
+ }
659
+ return '/*' + comment.value + '*/';
660
+ }
661
+
662
+ function addComments(stmt, result) {
663
+ var i, len, comment, save, tailingToStatement, specialBase, fragment,
664
+ extRange, range, prevRange, prefix, infix, suffix, count;
665
+
666
+ if (stmt.leadingComments && stmt.leadingComments.length > 0) {
667
+ save = result;
668
+
669
+ if (preserveBlankLines) {
670
+ comment = stmt.leadingComments[0];
671
+ result = [];
672
+
673
+ extRange = comment.extendedRange;
674
+ range = comment.range;
675
+
676
+ prefix = sourceCode.substring(extRange[0], range[0]);
677
+ count = (prefix.match(/\n/g) || []).length;
678
+ if (count > 0) {
679
+ result.push(stringRepeat('\n', count));
680
+ result.push(addIndent(generateComment(comment)));
681
+ } else {
682
+ result.push(prefix);
683
+ result.push(generateComment(comment));
684
+ }
685
+
686
+ prevRange = range;
687
+
688
+ for (i = 1, len = stmt.leadingComments.length; i < len; i++) {
689
+ comment = stmt.leadingComments[i];
690
+ range = comment.range;
691
+
692
+ infix = sourceCode.substring(prevRange[1], range[0]);
693
+ count = (infix.match(/\n/g) || []).length;
694
+ result.push(stringRepeat('\n', count));
695
+ result.push(addIndent(generateComment(comment)));
696
+
697
+ prevRange = range;
698
+ }
699
+
700
+ suffix = sourceCode.substring(range[1], extRange[1]);
701
+ count = (suffix.match(/\n/g) || []).length;
702
+ result.push(stringRepeat('\n', count));
703
+ } else {
704
+ comment = stmt.leadingComments[0];
705
+ result = [];
706
+ if (safeConcatenation && stmt.type === Syntax.Program && stmt.body.length === 0) {
707
+ result.push('\n');
708
+ }
709
+ result.push(generateComment(comment));
710
+ if (!endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) {
711
+ result.push('\n');
712
+ }
713
+
714
+ for (i = 1, len = stmt.leadingComments.length; i < len; ++i) {
715
+ comment = stmt.leadingComments[i];
716
+ fragment = [generateComment(comment)];
717
+ if (!endsWithLineTerminator(toSourceNodeWhenNeeded(fragment).toString())) {
718
+ fragment.push('\n');
719
+ }
720
+ result.push(addIndent(fragment));
721
+ }
722
+ }
723
+
724
+ result.push(addIndent(save));
725
+ }
726
+
727
+ if (stmt.trailingComments) {
728
+
729
+ if (preserveBlankLines) {
730
+ comment = stmt.trailingComments[0];
731
+ extRange = comment.extendedRange;
732
+ range = comment.range;
733
+
734
+ prefix = sourceCode.substring(extRange[0], range[0]);
735
+ count = (prefix.match(/\n/g) || []).length;
736
+
737
+ if (count > 0) {
738
+ result.push(stringRepeat('\n', count));
739
+ result.push(addIndent(generateComment(comment)));
740
+ } else {
741
+ result.push(prefix);
742
+ result.push(generateComment(comment));
743
+ }
744
+ } else {
745
+ tailingToStatement = !endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString());
746
+ specialBase = stringRepeat(' ', calculateSpaces(toSourceNodeWhenNeeded([base, result, indent]).toString()));
747
+ for (i = 0, len = stmt.trailingComments.length; i < len; ++i) {
748
+ comment = stmt.trailingComments[i];
749
+ if (tailingToStatement) {
750
+ // We assume target like following script
751
+ //
752
+ // var t = 20; /**
753
+ // * This is comment of t
754
+ // */
755
+ if (i === 0) {
756
+ // first case
757
+ result = [result, indent];
758
+ } else {
759
+ result = [result, specialBase];
760
+ }
761
+ result.push(generateComment(comment, specialBase));
762
+ } else {
763
+ result = [result, addIndent(generateComment(comment))];
764
+ }
765
+ if (i !== len - 1 && !endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) {
766
+ result = [result, '\n'];
767
+ }
768
+ }
769
+ }
770
+ }
771
+
772
+ return result;
773
+ }
774
+
775
+ function generateBlankLines(start, end, result) {
776
+ var j, newlineCount = 0;
777
+
778
+ for (j = start; j < end; j++) {
779
+ if (sourceCode[j] === '\n') {
780
+ newlineCount++;
781
+ }
782
+ }
783
+
784
+ for (j = 1; j < newlineCount; j++) {
785
+ result.push(newline);
786
+ }
787
+ }
788
+
789
+ function parenthesize(text, current, should) {
790
+ if (current < should) {
791
+ return ['(', text, ')'];
792
+ }
793
+ return text;
794
+ }
795
+
796
+ function generateVerbatimString(string) {
797
+ var i, iz, result;
798
+ result = string.split(/\r\n|\n/);
799
+ for (i = 1, iz = result.length; i < iz; i++) {
800
+ result[i] = newline + base + result[i];
801
+ }
802
+ return result;
803
+ }
804
+
805
+ function generateVerbatim(expr, precedence) {
806
+ var verbatim, result, prec;
807
+ verbatim = expr[extra.verbatim];
808
+
809
+ if (typeof verbatim === 'string') {
810
+ result = parenthesize(generateVerbatimString(verbatim), Precedence.Sequence, precedence);
811
+ } else {
812
+ // verbatim is object
813
+ result = generateVerbatimString(verbatim.content);
814
+ prec = (verbatim.precedence != null) ? verbatim.precedence : Precedence.Sequence;
815
+ result = parenthesize(result, prec, precedence);
816
+ }
817
+
818
+ return toSourceNodeWhenNeeded(result, expr);
819
+ }
820
+
821
+ function CodeGenerator() {
822
+ }
823
+
824
+ // Helpers.
825
+
826
+ CodeGenerator.prototype.maybeBlock = function(stmt, flags) {
827
+ var result, noLeadingComment, that = this;
828
+
829
+ noLeadingComment = !extra.comment || !stmt.leadingComments;
830
+
831
+ if (stmt.type === Syntax.BlockStatement && noLeadingComment) {
832
+ return [space, this.generateStatement(stmt, flags)];
833
+ }
834
+
835
+ if (stmt.type === Syntax.EmptyStatement && noLeadingComment) {
836
+ return ';';
837
+ }
838
+
839
+ withIndent(function () {
840
+ result = [
841
+ newline,
842
+ addIndent(that.generateStatement(stmt, flags))
843
+ ];
844
+ });
845
+
846
+ return result;
847
+ };
848
+
849
+ CodeGenerator.prototype.maybeBlockSuffix = function (stmt, result) {
850
+ var ends = endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString());
851
+ if (stmt.type === Syntax.BlockStatement && (!extra.comment || !stmt.leadingComments) && !ends) {
852
+ return [result, space];
853
+ }
854
+ if (ends) {
855
+ return [result, base];
856
+ }
857
+ return [result, newline, base];
858
+ };
859
+
860
+ function generateIdentifier(node) {
861
+ return toSourceNodeWhenNeeded(node.name, node);
862
+ }
863
+
864
+ function generateAsyncPrefix(node, spaceRequired) {
865
+ return node.async ? 'async' + (spaceRequired ? noEmptySpace() : space) : '';
866
+ }
867
+
868
+ function generateStarSuffix(node) {
869
+ var isGenerator = node.generator && !extra.moz.starlessGenerator;
870
+ return isGenerator ? '*' + space : '';
871
+ }
872
+
873
+ function generateMethodPrefix(prop) {
874
+ var func = prop.value, prefix = '';
875
+ if (func.async) {
876
+ prefix += generateAsyncPrefix(func, !prop.computed);
877
+ }
878
+ if (func.generator) {
879
+ // avoid space before method name
880
+ prefix += generateStarSuffix(func) ? '*' : '';
881
+ }
882
+ return prefix;
883
+ }
884
+
885
+ CodeGenerator.prototype.generatePattern = function (node, precedence, flags) {
886
+ if (node.type === Syntax.Identifier) {
887
+ return generateIdentifier(node);
888
+ }
889
+ return this.generateExpression(node, precedence, flags);
890
+ };
891
+
892
+ CodeGenerator.prototype.generateFunctionParams = function (node) {
893
+ var i, iz, result, hasDefault;
894
+
895
+ hasDefault = false;
896
+
897
+ if (node.type === Syntax.ArrowFunctionExpression &&
898
+ !node.rest && (!node.defaults || node.defaults.length === 0) &&
899
+ node.params.length === 1 && node.params[0].type === Syntax.Identifier) {
900
+ // arg => { } case
901
+ result = [generateAsyncPrefix(node, true), generateIdentifier(node.params[0])];
902
+ } else {
903
+ result = node.type === Syntax.ArrowFunctionExpression ? [generateAsyncPrefix(node, false)] : [];
904
+ result.push('(');
905
+ if (node.defaults) {
906
+ hasDefault = true;
907
+ }
908
+ for (i = 0, iz = node.params.length; i < iz; ++i) {
909
+ if (hasDefault && node.defaults[i]) {
910
+ // Handle default values.
911
+ result.push(this.generateAssignment(node.params[i], node.defaults[i], '=', Precedence.Assignment, E_TTT));
912
+ } else {
913
+ result.push(this.generatePattern(node.params[i], Precedence.Assignment, E_TTT));
914
+ }
915
+ if (i + 1 < iz) {
916
+ result.push(',' + space);
917
+ }
918
+ }
919
+
920
+ if (node.rest) {
921
+ if (node.params.length) {
922
+ result.push(',' + space);
923
+ }
924
+ result.push('...');
925
+ result.push(generateIdentifier(node.rest));
926
+ }
927
+
928
+ result.push(')');
929
+ }
930
+
931
+ return result;
932
+ };
933
+
934
+ CodeGenerator.prototype.generateFunctionBody = function (node) {
935
+ var result, expr;
936
+
937
+ result = this.generateFunctionParams(node);
938
+
939
+ if (node.type === Syntax.ArrowFunctionExpression) {
940
+ result.push(space);
941
+ result.push('=>');
942
+ }
943
+
944
+ if (node.expression) {
945
+ result.push(space);
946
+ expr = this.generateExpression(node.body, Precedence.Assignment, E_TTT);
947
+ if (expr.toString().charAt(0) === '{') {
948
+ expr = ['(', expr, ')'];
949
+ }
950
+ result.push(expr);
951
+ } else {
952
+ result.push(this.maybeBlock(node.body, S_TTFF));
953
+ }
954
+
955
+ return result;
956
+ };
957
+
958
+ CodeGenerator.prototype.generateIterationForStatement = function (operator, stmt, flags) {
959
+ var result = ['for' + (stmt.await ? noEmptySpace() + 'await' : '') + space + '('], that = this;
960
+ withIndent(function () {
961
+ if (stmt.left.type === Syntax.VariableDeclaration) {
962
+ withIndent(function () {
963
+ result.push(stmt.left.kind + noEmptySpace());
964
+ result.push(that.generateStatement(stmt.left.declarations[0], S_FFFF));
965
+ });
966
+ } else {
967
+ result.push(that.generateExpression(stmt.left, Precedence.Call, E_TTT));
968
+ }
969
+
970
+ result = join(result, operator);
971
+ result = [join(
972
+ result,
973
+ that.generateExpression(stmt.right, Precedence.Assignment, E_TTT)
974
+ ), ')'];
975
+ });
976
+ result.push(this.maybeBlock(stmt.body, flags));
977
+ return result;
978
+ };
979
+
980
+ CodeGenerator.prototype.generatePropertyKey = function (expr, computed) {
981
+ var result = [];
982
+
983
+ if (computed) {
984
+ result.push('[');
985
+ }
986
+
987
+ result.push(this.generateExpression(expr, Precedence.Assignment, E_TTT));
988
+
989
+ if (computed) {
990
+ result.push(']');
991
+ }
992
+
993
+ return result;
994
+ };
995
+
996
+ CodeGenerator.prototype.generateAssignment = function (left, right, operator, precedence, flags) {
997
+ if (Precedence.Assignment < precedence) {
998
+ flags |= F_ALLOW_IN;
999
+ }
1000
+
1001
+ return parenthesize(
1002
+ [
1003
+ this.generateExpression(left, Precedence.Call, flags),
1004
+ space + operator + space,
1005
+ this.generateExpression(right, Precedence.Assignment, flags)
1006
+ ],
1007
+ Precedence.Assignment,
1008
+ precedence
1009
+ );
1010
+ };
1011
+
1012
+ CodeGenerator.prototype.semicolon = function (flags) {
1013
+ if (!semicolons && flags & F_SEMICOLON_OPT) {
1014
+ return '';
1015
+ }
1016
+ return ';';
1017
+ };
1018
+
1019
+ // Statements.
1020
+
1021
+ CodeGenerator.Statement = {
1022
+
1023
+ BlockStatement: function (stmt, flags) {
1024
+ var range, content, result = ['{', newline], that = this;
1025
+
1026
+ withIndent(function () {
1027
+ // handle functions without any code
1028
+ if (stmt.body.length === 0 && preserveBlankLines) {
1029
+ range = stmt.range;
1030
+ if (range[1] - range[0] > 2) {
1031
+ content = sourceCode.substring(range[0] + 1, range[1] - 1);
1032
+ if (content[0] === '\n') {
1033
+ result = ['{'];
1034
+ }
1035
+ result.push(content);
1036
+ }
1037
+ }
1038
+
1039
+ var i, iz, fragment, bodyFlags;
1040
+ bodyFlags = S_TFFF;
1041
+ if (flags & F_FUNC_BODY) {
1042
+ bodyFlags |= F_DIRECTIVE_CTX;
1043
+ }
1044
+
1045
+ for (i = 0, iz = stmt.body.length; i < iz; ++i) {
1046
+ if (preserveBlankLines) {
1047
+ // handle spaces before the first line
1048
+ if (i === 0) {
1049
+ if (stmt.body[0].leadingComments) {
1050
+ range = stmt.body[0].leadingComments[0].extendedRange;
1051
+ content = sourceCode.substring(range[0], range[1]);
1052
+ if (content[0] === '\n') {
1053
+ result = ['{'];
1054
+ }
1055
+ }
1056
+ if (!stmt.body[0].leadingComments) {
1057
+ generateBlankLines(stmt.range[0], stmt.body[0].range[0], result);
1058
+ }
1059
+ }
1060
+
1061
+ // handle spaces between lines
1062
+ if (i > 0) {
1063
+ if (!stmt.body[i - 1].trailingComments && !stmt.body[i].leadingComments) {
1064
+ generateBlankLines(stmt.body[i - 1].range[1], stmt.body[i].range[0], result);
1065
+ }
1066
+ }
1067
+ }
1068
+
1069
+ if (i === iz - 1) {
1070
+ bodyFlags |= F_SEMICOLON_OPT;
1071
+ }
1072
+
1073
+ if (stmt.body[i].leadingComments && preserveBlankLines) {
1074
+ fragment = that.generateStatement(stmt.body[i], bodyFlags);
1075
+ } else {
1076
+ fragment = addIndent(that.generateStatement(stmt.body[i], bodyFlags));
1077
+ }
1078
+
1079
+ result.push(fragment);
1080
+ if (!endsWithLineTerminator(toSourceNodeWhenNeeded(fragment).toString())) {
1081
+ if (preserveBlankLines && i < iz - 1) {
1082
+ // don't add a new line if there are leading coments
1083
+ // in the next statement
1084
+ if (!stmt.body[i + 1].leadingComments) {
1085
+ result.push(newline);
1086
+ }
1087
+ } else {
1088
+ result.push(newline);
1089
+ }
1090
+ }
1091
+
1092
+ if (preserveBlankLines) {
1093
+ // handle spaces after the last line
1094
+ if (i === iz - 1) {
1095
+ if (!stmt.body[i].trailingComments) {
1096
+ generateBlankLines(stmt.body[i].range[1], stmt.range[1], result);
1097
+ }
1098
+ }
1099
+ }
1100
+ }
1101
+ });
1102
+
1103
+ result.push(addIndent('}'));
1104
+ return result;
1105
+ },
1106
+
1107
+ BreakStatement: function (stmt, flags) {
1108
+ if (stmt.label) {
1109
+ return 'break ' + stmt.label.name + this.semicolon(flags);
1110
+ }
1111
+ return 'break' + this.semicolon(flags);
1112
+ },
1113
+
1114
+ ContinueStatement: function (stmt, flags) {
1115
+ if (stmt.label) {
1116
+ return 'continue ' + stmt.label.name + this.semicolon(flags);
1117
+ }
1118
+ return 'continue' + this.semicolon(flags);
1119
+ },
1120
+
1121
+ ClassBody: function (stmt, flags) {
1122
+ var result = [ '{', newline], that = this;
1123
+
1124
+ withIndent(function (indent) {
1125
+ var i, iz;
1126
+
1127
+ for (i = 0, iz = stmt.body.length; i < iz; ++i) {
1128
+ result.push(indent);
1129
+ result.push(that.generateExpression(stmt.body[i], Precedence.Sequence, E_TTT));
1130
+ if (i + 1 < iz) {
1131
+ result.push(newline);
1132
+ }
1133
+ }
1134
+ });
1135
+
1136
+ if (!endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) {
1137
+ result.push(newline);
1138
+ }
1139
+ result.push(base);
1140
+ result.push('}');
1141
+ return result;
1142
+ },
1143
+
1144
+ ClassDeclaration: function (stmt, flags) {
1145
+ var result, fragment;
1146
+ result = ['class'];
1147
+ if (stmt.id) {
1148
+ result = join(result, this.generateExpression(stmt.id, Precedence.Sequence, E_TTT));
1149
+ }
1150
+ if (stmt.superClass) {
1151
+ fragment = join('extends', this.generateExpression(stmt.superClass, Precedence.Unary, E_TTT));
1152
+ result = join(result, fragment);
1153
+ }
1154
+ result.push(space);
1155
+ result.push(this.generateStatement(stmt.body, S_TFFT));
1156
+ return result;
1157
+ },
1158
+
1159
+ DirectiveStatement: function (stmt, flags) {
1160
+ if (extra.raw && stmt.raw) {
1161
+ return stmt.raw + this.semicolon(flags);
1162
+ }
1163
+ return escapeDirective(stmt.directive) + this.semicolon(flags);
1164
+ },
1165
+
1166
+ DoWhileStatement: function (stmt, flags) {
1167
+ // Because `do 42 while (cond)` is Syntax Error. We need semicolon.
1168
+ var result = join('do', this.maybeBlock(stmt.body, S_TFFF));
1169
+ result = this.maybeBlockSuffix(stmt.body, result);
1170
+ return join(result, [
1171
+ 'while' + space + '(',
1172
+ this.generateExpression(stmt.test, Precedence.Sequence, E_TTT),
1173
+ ')' + this.semicolon(flags)
1174
+ ]);
1175
+ },
1176
+
1177
+ CatchClause: function (stmt, flags) {
1178
+ var result, that = this;
1179
+ withIndent(function () {
1180
+ var guard;
1181
+
1182
+ if (stmt.param) {
1183
+ result = [
1184
+ 'catch' + space + '(',
1185
+ that.generateExpression(stmt.param, Precedence.Sequence, E_TTT),
1186
+ ')'
1187
+ ];
1188
+
1189
+ if (stmt.guard) {
1190
+ guard = that.generateExpression(stmt.guard, Precedence.Sequence, E_TTT);
1191
+ result.splice(2, 0, ' if ', guard);
1192
+ }
1193
+ } else {
1194
+ result = ['catch'];
1195
+ }
1196
+ });
1197
+ result.push(this.maybeBlock(stmt.body, S_TFFF));
1198
+ return result;
1199
+ },
1200
+
1201
+ DebuggerStatement: function (stmt, flags) {
1202
+ return 'debugger' + this.semicolon(flags);
1203
+ },
1204
+
1205
+ EmptyStatement: function (stmt, flags) {
1206
+ return ';';
1207
+ },
1208
+
1209
+ ExportDefaultDeclaration: function (stmt, flags) {
1210
+ var result = [ 'export' ], bodyFlags;
1211
+
1212
+ bodyFlags = (flags & F_SEMICOLON_OPT) ? S_TFFT : S_TFFF;
1213
+
1214
+ // export default HoistableDeclaration[Default]
1215
+ // export default AssignmentExpression[In] ;
1216
+ result = join(result, 'default');
1217
+ if (isStatement(stmt.declaration)) {
1218
+ result = join(result, this.generateStatement(stmt.declaration, bodyFlags));
1219
+ } else {
1220
+ result = join(result, this.generateExpression(stmt.declaration, Precedence.Assignment, E_TTT) + this.semicolon(flags));
1221
+ }
1222
+ return result;
1223
+ },
1224
+
1225
+ ExportNamedDeclaration: function (stmt, flags) {
1226
+ var result = [ 'export' ], bodyFlags, that = this;
1227
+
1228
+ bodyFlags = (flags & F_SEMICOLON_OPT) ? S_TFFT : S_TFFF;
1229
+
1230
+ // export VariableStatement
1231
+ // export Declaration[Default]
1232
+ if (stmt.declaration) {
1233
+ return join(result, this.generateStatement(stmt.declaration, bodyFlags));
1234
+ }
1235
+
1236
+ // export ExportClause[NoReference] FromClause ;
1237
+ // export ExportClause ;
1238
+ if (stmt.specifiers) {
1239
+ if (stmt.specifiers.length === 0) {
1240
+ result = join(result, '{' + space + '}');
1241
+ } else if (stmt.specifiers[0].type === Syntax.ExportBatchSpecifier) {
1242
+ result = join(result, this.generateExpression(stmt.specifiers[0], Precedence.Sequence, E_TTT));
1243
+ } else {
1244
+ result = join(result, '{');
1245
+ withIndent(function (indent) {
1246
+ var i, iz;
1247
+ result.push(newline);
1248
+ for (i = 0, iz = stmt.specifiers.length; i < iz; ++i) {
1249
+ result.push(indent);
1250
+ result.push(that.generateExpression(stmt.specifiers[i], Precedence.Sequence, E_TTT));
1251
+ if (i + 1 < iz) {
1252
+ result.push(',' + newline);
1253
+ }
1254
+ }
1255
+ });
1256
+ if (!endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) {
1257
+ result.push(newline);
1258
+ }
1259
+ result.push(base + '}');
1260
+ }
1261
+
1262
+ if (stmt.source) {
1263
+ result = join(result, [
1264
+ 'from' + space,
1265
+ // ModuleSpecifier
1266
+ this.generateExpression(stmt.source, Precedence.Sequence, E_TTT),
1267
+ this.semicolon(flags)
1268
+ ]);
1269
+ } else {
1270
+ result.push(this.semicolon(flags));
1271
+ }
1272
+ }
1273
+ return result;
1274
+ },
1275
+
1276
+ ExportAllDeclaration: function (stmt, flags) {
1277
+ // export * FromClause ;
1278
+ return [
1279
+ 'export' + space,
1280
+ '*' + space,
1281
+ 'from' + space,
1282
+ // ModuleSpecifier
1283
+ this.generateExpression(stmt.source, Precedence.Sequence, E_TTT),
1284
+ this.semicolon(flags)
1285
+ ];
1286
+ },
1287
+
1288
+ ExpressionStatement: function (stmt, flags) {
1289
+ var result, fragment;
1290
+
1291
+ function isClassPrefixed(fragment) {
1292
+ var code;
1293
+ if (fragment.slice(0, 5) !== 'class') {
1294
+ return false;
1295
+ }
1296
+ code = fragment.charCodeAt(5);
1297
+ return code === 0x7B /* '{' */ || esutils.code.isWhiteSpace(code) || esutils.code.isLineTerminator(code);
1298
+ }
1299
+
1300
+ function isFunctionPrefixed(fragment) {
1301
+ var code;
1302
+ if (fragment.slice(0, 8) !== 'function') {
1303
+ return false;
1304
+ }
1305
+ code = fragment.charCodeAt(8);
1306
+ return code === 0x28 /* '(' */ || esutils.code.isWhiteSpace(code) || code === 0x2A /* '*' */ || esutils.code.isLineTerminator(code);
1307
+ }
1308
+
1309
+ function isAsyncPrefixed(fragment) {
1310
+ var code, i, iz;
1311
+ if (fragment.slice(0, 5) !== 'async') {
1312
+ return false;
1313
+ }
1314
+ if (!esutils.code.isWhiteSpace(fragment.charCodeAt(5))) {
1315
+ return false;
1316
+ }
1317
+ for (i = 6, iz = fragment.length; i < iz; ++i) {
1318
+ if (!esutils.code.isWhiteSpace(fragment.charCodeAt(i))) {
1319
+ break;
1320
+ }
1321
+ }
1322
+ if (i === iz) {
1323
+ return false;
1324
+ }
1325
+ if (fragment.slice(i, i + 8) !== 'function') {
1326
+ return false;
1327
+ }
1328
+ code = fragment.charCodeAt(i + 8);
1329
+ return code === 0x28 /* '(' */ || esutils.code.isWhiteSpace(code) || code === 0x2A /* '*' */ || esutils.code.isLineTerminator(code);
1330
+ }
1331
+
1332
+ result = [this.generateExpression(stmt.expression, Precedence.Sequence, E_TTT)];
1333
+ // 12.4 '{', 'function', 'class' is not allowed in this position.
1334
+ // wrap expression with parentheses
1335
+ fragment = toSourceNodeWhenNeeded(result).toString();
1336
+ if (fragment.charCodeAt(0) === 0x7B /* '{' */ || // ObjectExpression
1337
+ isClassPrefixed(fragment) ||
1338
+ isFunctionPrefixed(fragment) ||
1339
+ isAsyncPrefixed(fragment) ||
1340
+ (directive && (flags & F_DIRECTIVE_CTX) && stmt.expression.type === Syntax.Literal && typeof stmt.expression.value === 'string')) {
1341
+ result = ['(', result, ')' + this.semicolon(flags)];
1342
+ } else {
1343
+ result.push(this.semicolon(flags));
1344
+ }
1345
+ return result;
1346
+ },
1347
+
1348
+ ImportDeclaration: function (stmt, flags) {
1349
+ // ES6: 15.2.1 valid import declarations:
1350
+ // - import ImportClause FromClause ;
1351
+ // - import ModuleSpecifier ;
1352
+ var result, cursor, that = this;
1353
+
1354
+ // If no ImportClause is present,
1355
+ // this should be `import ModuleSpecifier` so skip `from`
1356
+ // ModuleSpecifier is StringLiteral.
1357
+ if (stmt.specifiers.length === 0) {
1358
+ // import ModuleSpecifier ;
1359
+ return [
1360
+ 'import',
1361
+ space,
1362
+ // ModuleSpecifier
1363
+ this.generateExpression(stmt.source, Precedence.Sequence, E_TTT),
1364
+ this.semicolon(flags)
1365
+ ];
1366
+ }
1367
+
1368
+ // import ImportClause FromClause ;
1369
+ result = [
1370
+ 'import'
1371
+ ];
1372
+ cursor = 0;
1373
+
1374
+ // ImportedBinding
1375
+ if (stmt.specifiers[cursor].type === Syntax.ImportDefaultSpecifier) {
1376
+ result = join(result, [
1377
+ this.generateExpression(stmt.specifiers[cursor], Precedence.Sequence, E_TTT)
1378
+ ]);
1379
+ ++cursor;
1380
+ }
1381
+
1382
+ if (stmt.specifiers[cursor]) {
1383
+ if (cursor !== 0) {
1384
+ result.push(',');
1385
+ }
1386
+
1387
+ if (stmt.specifiers[cursor].type === Syntax.ImportNamespaceSpecifier) {
1388
+ // NameSpaceImport
1389
+ result = join(result, [
1390
+ space,
1391
+ this.generateExpression(stmt.specifiers[cursor], Precedence.Sequence, E_TTT)
1392
+ ]);
1393
+ } else {
1394
+ // NamedImports
1395
+ result.push(space + '{');
1396
+
1397
+ if ((stmt.specifiers.length - cursor) === 1) {
1398
+ // import { ... } from "...";
1399
+ result.push(space);
1400
+ result.push(this.generateExpression(stmt.specifiers[cursor], Precedence.Sequence, E_TTT));
1401
+ result.push(space + '}' + space);
1402
+ } else {
1403
+ // import {
1404
+ // ...,
1405
+ // ...,
1406
+ // } from "...";
1407
+ withIndent(function (indent) {
1408
+ var i, iz;
1409
+ result.push(newline);
1410
+ for (i = cursor, iz = stmt.specifiers.length; i < iz; ++i) {
1411
+ result.push(indent);
1412
+ result.push(that.generateExpression(stmt.specifiers[i], Precedence.Sequence, E_TTT));
1413
+ if (i + 1 < iz) {
1414
+ result.push(',' + newline);
1415
+ }
1416
+ }
1417
+ });
1418
+ if (!endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) {
1419
+ result.push(newline);
1420
+ }
1421
+ result.push(base + '}' + space);
1422
+ }
1423
+ }
1424
+ }
1425
+
1426
+ result = join(result, [
1427
+ 'from' + space,
1428
+ // ModuleSpecifier
1429
+ this.generateExpression(stmt.source, Precedence.Sequence, E_TTT),
1430
+ this.semicolon(flags)
1431
+ ]);
1432
+ return result;
1433
+ },
1434
+
1435
+ VariableDeclarator: function (stmt, flags) {
1436
+ var itemFlags = (flags & F_ALLOW_IN) ? E_TTT : E_FTT;
1437
+ if (stmt.init) {
1438
+ return [
1439
+ this.generateExpression(stmt.id, Precedence.Assignment, itemFlags),
1440
+ space,
1441
+ '=',
1442
+ space,
1443
+ this.generateExpression(stmt.init, Precedence.Assignment, itemFlags)
1444
+ ];
1445
+ }
1446
+ return this.generatePattern(stmt.id, Precedence.Assignment, itemFlags);
1447
+ },
1448
+
1449
+ VariableDeclaration: function (stmt, flags) {
1450
+ // VariableDeclarator is typed as Statement,
1451
+ // but joined with comma (not LineTerminator).
1452
+ // So if comment is attached to target node, we should specialize.
1453
+ var result, i, iz, node, bodyFlags, that = this;
1454
+
1455
+ result = [ stmt.kind ];
1456
+
1457
+ bodyFlags = (flags & F_ALLOW_IN) ? S_TFFF : S_FFFF;
1458
+
1459
+ function block() {
1460
+ node = stmt.declarations[0];
1461
+ if (extra.comment && node.leadingComments) {
1462
+ result.push('\n');
1463
+ result.push(addIndent(that.generateStatement(node, bodyFlags)));
1464
+ } else {
1465
+ result.push(noEmptySpace());
1466
+ result.push(that.generateStatement(node, bodyFlags));
1467
+ }
1468
+
1469
+ for (i = 1, iz = stmt.declarations.length; i < iz; ++i) {
1470
+ node = stmt.declarations[i];
1471
+ if (extra.comment && node.leadingComments) {
1472
+ result.push(',' + newline);
1473
+ result.push(addIndent(that.generateStatement(node, bodyFlags)));
1474
+ } else {
1475
+ result.push(',' + space);
1476
+ result.push(that.generateStatement(node, bodyFlags));
1477
+ }
1478
+ }
1479
+ }
1480
+
1481
+ if (stmt.declarations.length > 1) {
1482
+ withIndent(block);
1483
+ } else {
1484
+ block();
1485
+ }
1486
+
1487
+ result.push(this.semicolon(flags));
1488
+
1489
+ return result;
1490
+ },
1491
+
1492
+ ThrowStatement: function (stmt, flags) {
1493
+ return [join(
1494
+ 'throw',
1495
+ this.generateExpression(stmt.argument, Precedence.Sequence, E_TTT)
1496
+ ), this.semicolon(flags)];
1497
+ },
1498
+
1499
+ TryStatement: function (stmt, flags) {
1500
+ var result, i, iz, guardedHandlers;
1501
+
1502
+ result = ['try', this.maybeBlock(stmt.block, S_TFFF)];
1503
+ result = this.maybeBlockSuffix(stmt.block, result);
1504
+
1505
+ if (stmt.handlers) {
1506
+ // old interface
1507
+ for (i = 0, iz = stmt.handlers.length; i < iz; ++i) {
1508
+ result = join(result, this.generateStatement(stmt.handlers[i], S_TFFF));
1509
+ if (stmt.finalizer || i + 1 !== iz) {
1510
+ result = this.maybeBlockSuffix(stmt.handlers[i].body, result);
1511
+ }
1512
+ }
1513
+ } else {
1514
+ guardedHandlers = stmt.guardedHandlers || [];
1515
+
1516
+ for (i = 0, iz = guardedHandlers.length; i < iz; ++i) {
1517
+ result = join(result, this.generateStatement(guardedHandlers[i], S_TFFF));
1518
+ if (stmt.finalizer || i + 1 !== iz) {
1519
+ result = this.maybeBlockSuffix(guardedHandlers[i].body, result);
1520
+ }
1521
+ }
1522
+
1523
+ // new interface
1524
+ if (stmt.handler) {
1525
+ if (Array.isArray(stmt.handler)) {
1526
+ for (i = 0, iz = stmt.handler.length; i < iz; ++i) {
1527
+ result = join(result, this.generateStatement(stmt.handler[i], S_TFFF));
1528
+ if (stmt.finalizer || i + 1 !== iz) {
1529
+ result = this.maybeBlockSuffix(stmt.handler[i].body, result);
1530
+ }
1531
+ }
1532
+ } else {
1533
+ result = join(result, this.generateStatement(stmt.handler, S_TFFF));
1534
+ if (stmt.finalizer) {
1535
+ result = this.maybeBlockSuffix(stmt.handler.body, result);
1536
+ }
1537
+ }
1538
+ }
1539
+ }
1540
+ if (stmt.finalizer) {
1541
+ result = join(result, ['finally', this.maybeBlock(stmt.finalizer, S_TFFF)]);
1542
+ }
1543
+ return result;
1544
+ },
1545
+
1546
+ SwitchStatement: function (stmt, flags) {
1547
+ var result, fragment, i, iz, bodyFlags, that = this;
1548
+ withIndent(function () {
1549
+ result = [
1550
+ 'switch' + space + '(',
1551
+ that.generateExpression(stmt.discriminant, Precedence.Sequence, E_TTT),
1552
+ ')' + space + '{' + newline
1553
+ ];
1554
+ });
1555
+ if (stmt.cases) {
1556
+ bodyFlags = S_TFFF;
1557
+ for (i = 0, iz = stmt.cases.length; i < iz; ++i) {
1558
+ if (i === iz - 1) {
1559
+ bodyFlags |= F_SEMICOLON_OPT;
1560
+ }
1561
+ fragment = addIndent(this.generateStatement(stmt.cases[i], bodyFlags));
1562
+ result.push(fragment);
1563
+ if (!endsWithLineTerminator(toSourceNodeWhenNeeded(fragment).toString())) {
1564
+ result.push(newline);
1565
+ }
1566
+ }
1567
+ }
1568
+ result.push(addIndent('}'));
1569
+ return result;
1570
+ },
1571
+
1572
+ SwitchCase: function (stmt, flags) {
1573
+ var result, fragment, i, iz, bodyFlags, that = this;
1574
+ withIndent(function () {
1575
+ if (stmt.test) {
1576
+ result = [
1577
+ join('case', that.generateExpression(stmt.test, Precedence.Sequence, E_TTT)),
1578
+ ':'
1579
+ ];
1580
+ } else {
1581
+ result = ['default:'];
1582
+ }
1583
+
1584
+ i = 0;
1585
+ iz = stmt.consequent.length;
1586
+ if (iz && stmt.consequent[0].type === Syntax.BlockStatement) {
1587
+ fragment = that.maybeBlock(stmt.consequent[0], S_TFFF);
1588
+ result.push(fragment);
1589
+ i = 1;
1590
+ }
1591
+
1592
+ if (i !== iz && !endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) {
1593
+ result.push(newline);
1594
+ }
1595
+
1596
+ bodyFlags = S_TFFF;
1597
+ for (; i < iz; ++i) {
1598
+ if (i === iz - 1 && flags & F_SEMICOLON_OPT) {
1599
+ bodyFlags |= F_SEMICOLON_OPT;
1600
+ }
1601
+ fragment = addIndent(that.generateStatement(stmt.consequent[i], bodyFlags));
1602
+ result.push(fragment);
1603
+ if (i + 1 !== iz && !endsWithLineTerminator(toSourceNodeWhenNeeded(fragment).toString())) {
1604
+ result.push(newline);
1605
+ }
1606
+ }
1607
+ });
1608
+ return result;
1609
+ },
1610
+
1611
+ IfStatement: function (stmt, flags) {
1612
+ var result, bodyFlags, semicolonOptional, that = this;
1613
+ withIndent(function () {
1614
+ result = [
1615
+ 'if' + space + '(',
1616
+ that.generateExpression(stmt.test, Precedence.Sequence, E_TTT),
1617
+ ')'
1618
+ ];
1619
+ });
1620
+ semicolonOptional = flags & F_SEMICOLON_OPT;
1621
+ bodyFlags = S_TFFF;
1622
+ if (semicolonOptional) {
1623
+ bodyFlags |= F_SEMICOLON_OPT;
1624
+ }
1625
+ if (stmt.alternate) {
1626
+ result.push(this.maybeBlock(stmt.consequent, S_TFFF));
1627
+ result = this.maybeBlockSuffix(stmt.consequent, result);
1628
+ if (stmt.alternate.type === Syntax.IfStatement) {
1629
+ result = join(result, ['else ', this.generateStatement(stmt.alternate, bodyFlags)]);
1630
+ } else {
1631
+ result = join(result, join('else', this.maybeBlock(stmt.alternate, bodyFlags)));
1632
+ }
1633
+ } else {
1634
+ result.push(this.maybeBlock(stmt.consequent, bodyFlags));
1635
+ }
1636
+ return result;
1637
+ },
1638
+
1639
+ ForStatement: function (stmt, flags) {
1640
+ var result, that = this;
1641
+ withIndent(function () {
1642
+ result = ['for' + space + '('];
1643
+ if (stmt.init) {
1644
+ if (stmt.init.type === Syntax.VariableDeclaration) {
1645
+ result.push(that.generateStatement(stmt.init, S_FFFF));
1646
+ } else {
1647
+ // F_ALLOW_IN becomes false.
1648
+ result.push(that.generateExpression(stmt.init, Precedence.Sequence, E_FTT));
1649
+ result.push(';');
1650
+ }
1651
+ } else {
1652
+ result.push(';');
1653
+ }
1654
+
1655
+ if (stmt.test) {
1656
+ result.push(space);
1657
+ result.push(that.generateExpression(stmt.test, Precedence.Sequence, E_TTT));
1658
+ result.push(';');
1659
+ } else {
1660
+ result.push(';');
1661
+ }
1662
+
1663
+ if (stmt.update) {
1664
+ result.push(space);
1665
+ result.push(that.generateExpression(stmt.update, Precedence.Sequence, E_TTT));
1666
+ result.push(')');
1667
+ } else {
1668
+ result.push(')');
1669
+ }
1670
+ });
1671
+
1672
+ result.push(this.maybeBlock(stmt.body, flags & F_SEMICOLON_OPT ? S_TFFT : S_TFFF));
1673
+ return result;
1674
+ },
1675
+
1676
+ ForInStatement: function (stmt, flags) {
1677
+ return this.generateIterationForStatement('in', stmt, flags & F_SEMICOLON_OPT ? S_TFFT : S_TFFF);
1678
+ },
1679
+
1680
+ ForOfStatement: function (stmt, flags) {
1681
+ return this.generateIterationForStatement('of', stmt, flags & F_SEMICOLON_OPT ? S_TFFT : S_TFFF);
1682
+ },
1683
+
1684
+ LabeledStatement: function (stmt, flags) {
1685
+ return [stmt.label.name + ':', this.maybeBlock(stmt.body, flags & F_SEMICOLON_OPT ? S_TFFT : S_TFFF)];
1686
+ },
1687
+
1688
+ Program: function (stmt, flags) {
1689
+ var result, fragment, i, iz, bodyFlags;
1690
+ iz = stmt.body.length;
1691
+ result = [safeConcatenation && iz > 0 ? '\n' : ''];
1692
+ bodyFlags = S_TFTF;
1693
+ for (i = 0; i < iz; ++i) {
1694
+ if (!safeConcatenation && i === iz - 1) {
1695
+ bodyFlags |= F_SEMICOLON_OPT;
1696
+ }
1697
+
1698
+ if (preserveBlankLines) {
1699
+ // handle spaces before the first line
1700
+ if (i === 0) {
1701
+ if (!stmt.body[0].leadingComments) {
1702
+ generateBlankLines(stmt.range[0], stmt.body[i].range[0], result);
1703
+ }
1704
+ }
1705
+
1706
+ // handle spaces between lines
1707
+ if (i > 0) {
1708
+ if (!stmt.body[i - 1].trailingComments && !stmt.body[i].leadingComments) {
1709
+ generateBlankLines(stmt.body[i - 1].range[1], stmt.body[i].range[0], result);
1710
+ }
1711
+ }
1712
+ }
1713
+
1714
+ fragment = addIndent(this.generateStatement(stmt.body[i], bodyFlags));
1715
+ result.push(fragment);
1716
+ if (i + 1 < iz && !endsWithLineTerminator(toSourceNodeWhenNeeded(fragment).toString())) {
1717
+ if (preserveBlankLines) {
1718
+ if (!stmt.body[i + 1].leadingComments) {
1719
+ result.push(newline);
1720
+ }
1721
+ } else {
1722
+ result.push(newline);
1723
+ }
1724
+ }
1725
+
1726
+ if (preserveBlankLines) {
1727
+ // handle spaces after the last line
1728
+ if (i === iz - 1) {
1729
+ if (!stmt.body[i].trailingComments) {
1730
+ generateBlankLines(stmt.body[i].range[1], stmt.range[1], result);
1731
+ }
1732
+ }
1733
+ }
1734
+ }
1735
+ return result;
1736
+ },
1737
+
1738
+ FunctionDeclaration: function (stmt, flags) {
1739
+ return [
1740
+ generateAsyncPrefix(stmt, true),
1741
+ 'function',
1742
+ generateStarSuffix(stmt) || noEmptySpace(),
1743
+ stmt.id ? generateIdentifier(stmt.id) : '',
1744
+ this.generateFunctionBody(stmt)
1745
+ ];
1746
+ },
1747
+
1748
+ ReturnStatement: function (stmt, flags) {
1749
+ if (stmt.argument) {
1750
+ return [join(
1751
+ 'return',
1752
+ this.generateExpression(stmt.argument, Precedence.Sequence, E_TTT)
1753
+ ), this.semicolon(flags)];
1754
+ }
1755
+ return ['return' + this.semicolon(flags)];
1756
+ },
1757
+
1758
+ WhileStatement: function (stmt, flags) {
1759
+ var result, that = this;
1760
+ withIndent(function () {
1761
+ result = [
1762
+ 'while' + space + '(',
1763
+ that.generateExpression(stmt.test, Precedence.Sequence, E_TTT),
1764
+ ')'
1765
+ ];
1766
+ });
1767
+ result.push(this.maybeBlock(stmt.body, flags & F_SEMICOLON_OPT ? S_TFFT : S_TFFF));
1768
+ return result;
1769
+ },
1770
+
1771
+ WithStatement: function (stmt, flags) {
1772
+ var result, that = this;
1773
+ withIndent(function () {
1774
+ result = [
1775
+ 'with' + space + '(',
1776
+ that.generateExpression(stmt.object, Precedence.Sequence, E_TTT),
1777
+ ')'
1778
+ ];
1779
+ });
1780
+ result.push(this.maybeBlock(stmt.body, flags & F_SEMICOLON_OPT ? S_TFFT : S_TFFF));
1781
+ return result;
1782
+ }
1783
+
1784
+ };
1785
+
1786
+ merge(CodeGenerator.prototype, CodeGenerator.Statement);
1787
+
1788
+ // Expressions.
1789
+
1790
+ CodeGenerator.Expression = {
1791
+
1792
+ SequenceExpression: function (expr, precedence, flags) {
1793
+ var result, i, iz;
1794
+ if (Precedence.Sequence < precedence) {
1795
+ flags |= F_ALLOW_IN;
1796
+ }
1797
+ result = [];
1798
+ for (i = 0, iz = expr.expressions.length; i < iz; ++i) {
1799
+ result.push(this.generateExpression(expr.expressions[i], Precedence.Assignment, flags));
1800
+ if (i + 1 < iz) {
1801
+ result.push(',' + space);
1802
+ }
1803
+ }
1804
+ return parenthesize(result, Precedence.Sequence, precedence);
1805
+ },
1806
+
1807
+ AssignmentExpression: function (expr, precedence, flags) {
1808
+ return this.generateAssignment(expr.left, expr.right, expr.operator, precedence, flags);
1809
+ },
1810
+
1811
+ ArrowFunctionExpression: function (expr, precedence, flags) {
1812
+ return parenthesize(this.generateFunctionBody(expr), Precedence.ArrowFunction, precedence);
1813
+ },
1814
+
1815
+ ConditionalExpression: function (expr, precedence, flags) {
1816
+ if (Precedence.Conditional < precedence) {
1817
+ flags |= F_ALLOW_IN;
1818
+ }
1819
+ return parenthesize(
1820
+ [
1821
+ this.generateExpression(expr.test, Precedence.LogicalOR, flags),
1822
+ space + '?' + space,
1823
+ this.generateExpression(expr.consequent, Precedence.Assignment, flags),
1824
+ space + ':' + space,
1825
+ this.generateExpression(expr.alternate, Precedence.Assignment, flags)
1826
+ ],
1827
+ Precedence.Conditional,
1828
+ precedence
1829
+ );
1830
+ },
1831
+
1832
+ LogicalExpression: function (expr, precedence, flags) {
1833
+ return this.BinaryExpression(expr, precedence, flags);
1834
+ },
1835
+
1836
+ BinaryExpression: function (expr, precedence, flags) {
1837
+ var result, leftPrecedence, rightPrecedence, currentPrecedence, fragment, leftSource;
1838
+ currentPrecedence = BinaryPrecedence[expr.operator];
1839
+ leftPrecedence = expr.operator === '**' ? Precedence.Postfix : currentPrecedence;
1840
+ rightPrecedence = expr.operator === '**' ? currentPrecedence : currentPrecedence + 1;
1841
+
1842
+ if (currentPrecedence < precedence) {
1843
+ flags |= F_ALLOW_IN;
1844
+ }
1845
+
1846
+ fragment = this.generateExpression(expr.left, leftPrecedence, flags);
1847
+
1848
+ leftSource = fragment.toString();
1849
+
1850
+ if (leftSource.charCodeAt(leftSource.length - 1) === 0x2F /* / */ && esutils.code.isIdentifierPartES5(expr.operator.charCodeAt(0))) {
1851
+ result = [fragment, noEmptySpace(), expr.operator];
1852
+ } else {
1853
+ result = join(fragment, expr.operator);
1854
+ }
1855
+
1856
+ fragment = this.generateExpression(expr.right, rightPrecedence, flags);
1857
+
1858
+ if (expr.operator === '/' && fragment.toString().charAt(0) === '/' ||
1859
+ expr.operator.slice(-1) === '<' && fragment.toString().slice(0, 3) === '!--') {
1860
+ // If '/' concats with '/' or `<` concats with `!--`, it is interpreted as comment start
1861
+ result.push(noEmptySpace());
1862
+ result.push(fragment);
1863
+ } else {
1864
+ result = join(result, fragment);
1865
+ }
1866
+
1867
+ if (expr.operator === 'in' && !(flags & F_ALLOW_IN)) {
1868
+ return ['(', result, ')'];
1869
+ }
1870
+ return parenthesize(result, currentPrecedence, precedence);
1871
+ },
1872
+
1873
+ CallExpression: function (expr, precedence, flags) {
1874
+ var result, i, iz;
1875
+
1876
+ // F_ALLOW_UNPARATH_NEW becomes false.
1877
+ result = [this.generateExpression(expr.callee, Precedence.Call, E_TTF)];
1878
+
1879
+ if (expr.optional) {
1880
+ result.push('?.');
1881
+ }
1882
+
1883
+ result.push('(');
1884
+ for (i = 0, iz = expr['arguments'].length; i < iz; ++i) {
1885
+ result.push(this.generateExpression(expr['arguments'][i], Precedence.Assignment, E_TTT));
1886
+ if (i + 1 < iz) {
1887
+ result.push(',' + space);
1888
+ }
1889
+ }
1890
+ result.push(')');
1891
+
1892
+ if (!(flags & F_ALLOW_CALL)) {
1893
+ return ['(', result, ')'];
1894
+ }
1895
+
1896
+ return parenthesize(result, Precedence.Call, precedence);
1897
+ },
1898
+
1899
+ ChainExpression: function (expr, precedence, flags) {
1900
+ if (Precedence.OptionalChaining < precedence) {
1901
+ flags |= F_ALLOW_CALL;
1902
+ }
1903
+
1904
+ var result = this.generateExpression(expr.expression, Precedence.OptionalChaining, flags);
1905
+
1906
+ return parenthesize(result, Precedence.OptionalChaining, precedence);
1907
+ },
1908
+
1909
+ NewExpression: function (expr, precedence, flags) {
1910
+ var result, length, i, iz, itemFlags;
1911
+ length = expr['arguments'].length;
1912
+
1913
+ // F_ALLOW_CALL becomes false.
1914
+ // F_ALLOW_UNPARATH_NEW may become false.
1915
+ itemFlags = (flags & F_ALLOW_UNPARATH_NEW && !parentheses && length === 0) ? E_TFT : E_TFF;
1916
+
1917
+ result = join(
1918
+ 'new',
1919
+ this.generateExpression(expr.callee, Precedence.New, itemFlags)
1920
+ );
1921
+
1922
+ if (!(flags & F_ALLOW_UNPARATH_NEW) || parentheses || length > 0) {
1923
+ result.push('(');
1924
+ for (i = 0, iz = length; i < iz; ++i) {
1925
+ result.push(this.generateExpression(expr['arguments'][i], Precedence.Assignment, E_TTT));
1926
+ if (i + 1 < iz) {
1927
+ result.push(',' + space);
1928
+ }
1929
+ }
1930
+ result.push(')');
1931
+ }
1932
+
1933
+ return parenthesize(result, Precedence.New, precedence);
1934
+ },
1935
+
1936
+ MemberExpression: function (expr, precedence, flags) {
1937
+ var result, fragment;
1938
+
1939
+ // F_ALLOW_UNPARATH_NEW becomes false.
1940
+ result = [this.generateExpression(expr.object, Precedence.Call, (flags & F_ALLOW_CALL) ? E_TTF : E_TFF)];
1941
+
1942
+ if (expr.computed) {
1943
+ if (expr.optional) {
1944
+ result.push('?.');
1945
+ }
1946
+
1947
+ result.push('[');
1948
+ result.push(this.generateExpression(expr.property, Precedence.Sequence, flags & F_ALLOW_CALL ? E_TTT : E_TFT));
1949
+ result.push(']');
1950
+ } else {
1951
+ if (!expr.optional && expr.object.type === Syntax.Literal && typeof expr.object.value === 'number') {
1952
+ fragment = toSourceNodeWhenNeeded(result).toString();
1953
+ // When the following conditions are all true,
1954
+ // 1. No floating point
1955
+ // 2. Don't have exponents
1956
+ // 3. The last character is a decimal digit
1957
+ // 4. Not hexadecimal OR octal number literal
1958
+ // we should add a floating point.
1959
+ if (
1960
+ fragment.indexOf('.') < 0 &&
1961
+ !/[eExX]/.test(fragment) &&
1962
+ esutils.code.isDecimalDigit(fragment.charCodeAt(fragment.length - 1)) &&
1963
+ !(fragment.length >= 2 && fragment.charCodeAt(0) === 48) // '0'
1964
+ ) {
1965
+ result.push(' ');
1966
+ }
1967
+ }
1968
+ result.push(expr.optional ? '?.' : '.');
1969
+ result.push(generateIdentifier(expr.property));
1970
+ }
1971
+
1972
+ return parenthesize(result, Precedence.Member, precedence);
1973
+ },
1974
+
1975
+ MetaProperty: function (expr, precedence, flags) {
1976
+ var result;
1977
+ result = [];
1978
+ result.push(typeof expr.meta === "string" ? expr.meta : generateIdentifier(expr.meta));
1979
+ result.push('.');
1980
+ result.push(typeof expr.property === "string" ? expr.property : generateIdentifier(expr.property));
1981
+ return parenthesize(result, Precedence.Member, precedence);
1982
+ },
1983
+
1984
+ UnaryExpression: function (expr, precedence, flags) {
1985
+ var result, fragment, rightCharCode, leftSource, leftCharCode;
1986
+ fragment = this.generateExpression(expr.argument, Precedence.Unary, E_TTT);
1987
+
1988
+ if (space === '') {
1989
+ result = join(expr.operator, fragment);
1990
+ } else {
1991
+ result = [expr.operator];
1992
+ if (expr.operator.length > 2) {
1993
+ // delete, void, typeof
1994
+ // get `typeof []`, not `typeof[]`
1995
+ result = join(result, fragment);
1996
+ } else {
1997
+ // Prevent inserting spaces between operator and argument if it is unnecessary
1998
+ // like, `!cond`
1999
+ leftSource = toSourceNodeWhenNeeded(result).toString();
2000
+ leftCharCode = leftSource.charCodeAt(leftSource.length - 1);
2001
+ rightCharCode = fragment.toString().charCodeAt(0);
2002
+
2003
+ if (((leftCharCode === 0x2B /* + */ || leftCharCode === 0x2D /* - */) && leftCharCode === rightCharCode) ||
2004
+ (esutils.code.isIdentifierPartES5(leftCharCode) && esutils.code.isIdentifierPartES5(rightCharCode))) {
2005
+ result.push(noEmptySpace());
2006
+ result.push(fragment);
2007
+ } else {
2008
+ result.push(fragment);
2009
+ }
2010
+ }
2011
+ }
2012
+ return parenthesize(result, Precedence.Unary, precedence);
2013
+ },
2014
+
2015
+ YieldExpression: function (expr, precedence, flags) {
2016
+ var result;
2017
+ if (expr.delegate) {
2018
+ result = 'yield*';
2019
+ } else {
2020
+ result = 'yield';
2021
+ }
2022
+ if (expr.argument) {
2023
+ result = join(
2024
+ result,
2025
+ this.generateExpression(expr.argument, Precedence.Yield, E_TTT)
2026
+ );
2027
+ }
2028
+ return parenthesize(result, Precedence.Yield, precedence);
2029
+ },
2030
+
2031
+ AwaitExpression: function (expr, precedence, flags) {
2032
+ var result = join(
2033
+ expr.all ? 'await*' : 'await',
2034
+ this.generateExpression(expr.argument, Precedence.Await, E_TTT)
2035
+ );
2036
+ return parenthesize(result, Precedence.Await, precedence);
2037
+ },
2038
+
2039
+ UpdateExpression: function (expr, precedence, flags) {
2040
+ if (expr.prefix) {
2041
+ return parenthesize(
2042
+ [
2043
+ expr.operator,
2044
+ this.generateExpression(expr.argument, Precedence.Unary, E_TTT)
2045
+ ],
2046
+ Precedence.Unary,
2047
+ precedence
2048
+ );
2049
+ }
2050
+ return parenthesize(
2051
+ [
2052
+ this.generateExpression(expr.argument, Precedence.Postfix, E_TTT),
2053
+ expr.operator
2054
+ ],
2055
+ Precedence.Postfix,
2056
+ precedence
2057
+ );
2058
+ },
2059
+
2060
+ FunctionExpression: function (expr, precedence, flags) {
2061
+ var result = [
2062
+ generateAsyncPrefix(expr, true),
2063
+ 'function'
2064
+ ];
2065
+ if (expr.id) {
2066
+ result.push(generateStarSuffix(expr) || noEmptySpace());
2067
+ result.push(generateIdentifier(expr.id));
2068
+ } else {
2069
+ result.push(generateStarSuffix(expr) || space);
2070
+ }
2071
+ result.push(this.generateFunctionBody(expr));
2072
+ return result;
2073
+ },
2074
+
2075
+ ArrayPattern: function (expr, precedence, flags) {
2076
+ return this.ArrayExpression(expr, precedence, flags, true);
2077
+ },
2078
+
2079
+ ArrayExpression: function (expr, precedence, flags, isPattern) {
2080
+ var result, multiline, that = this;
2081
+ if (!expr.elements.length) {
2082
+ return '[]';
2083
+ }
2084
+ multiline = isPattern ? false : expr.elements.length > 1;
2085
+ result = ['[', multiline ? newline : ''];
2086
+ withIndent(function (indent) {
2087
+ var i, iz;
2088
+ for (i = 0, iz = expr.elements.length; i < iz; ++i) {
2089
+ if (!expr.elements[i]) {
2090
+ if (multiline) {
2091
+ result.push(indent);
2092
+ }
2093
+ if (i + 1 === iz) {
2094
+ result.push(',');
2095
+ }
2096
+ } else {
2097
+ result.push(multiline ? indent : '');
2098
+ result.push(that.generateExpression(expr.elements[i], Precedence.Assignment, E_TTT));
2099
+ }
2100
+ if (i + 1 < iz) {
2101
+ result.push(',' + (multiline ? newline : space));
2102
+ }
2103
+ }
2104
+ });
2105
+ if (multiline && !endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) {
2106
+ result.push(newline);
2107
+ }
2108
+ result.push(multiline ? base : '');
2109
+ result.push(']');
2110
+ return result;
2111
+ },
2112
+
2113
+ RestElement: function(expr, precedence, flags) {
2114
+ return '...' + this.generatePattern(expr.argument);
2115
+ },
2116
+
2117
+ ClassExpression: function (expr, precedence, flags) {
2118
+ var result, fragment;
2119
+ result = ['class'];
2120
+ if (expr.id) {
2121
+ result = join(result, this.generateExpression(expr.id, Precedence.Sequence, E_TTT));
2122
+ }
2123
+ if (expr.superClass) {
2124
+ fragment = join('extends', this.generateExpression(expr.superClass, Precedence.Unary, E_TTT));
2125
+ result = join(result, fragment);
2126
+ }
2127
+ result.push(space);
2128
+ result.push(this.generateStatement(expr.body, S_TFFT));
2129
+ return result;
2130
+ },
2131
+
2132
+ MethodDefinition: function (expr, precedence, flags) {
2133
+ var result, fragment;
2134
+ if (expr['static']) {
2135
+ result = ['static' + space];
2136
+ } else {
2137
+ result = [];
2138
+ }
2139
+ if (expr.kind === 'get' || expr.kind === 'set') {
2140
+ fragment = [
2141
+ join(expr.kind, this.generatePropertyKey(expr.key, expr.computed)),
2142
+ this.generateFunctionBody(expr.value)
2143
+ ];
2144
+ } else {
2145
+ fragment = [
2146
+ generateMethodPrefix(expr),
2147
+ this.generatePropertyKey(expr.key, expr.computed),
2148
+ this.generateFunctionBody(expr.value)
2149
+ ];
2150
+ }
2151
+ return join(result, fragment);
2152
+ },
2153
+
2154
+ Property: function (expr, precedence, flags) {
2155
+ if (expr.kind === 'get' || expr.kind === 'set') {
2156
+ return [
2157
+ expr.kind, noEmptySpace(),
2158
+ this.generatePropertyKey(expr.key, expr.computed),
2159
+ this.generateFunctionBody(expr.value)
2160
+ ];
2161
+ }
2162
+
2163
+ if (expr.shorthand) {
2164
+ if (expr.value.type === "AssignmentPattern") {
2165
+ return this.AssignmentPattern(expr.value, Precedence.Sequence, E_TTT);
2166
+ }
2167
+ return this.generatePropertyKey(expr.key, expr.computed);
2168
+ }
2169
+
2170
+ if (expr.method) {
2171
+ return [
2172
+ generateMethodPrefix(expr),
2173
+ this.generatePropertyKey(expr.key, expr.computed),
2174
+ this.generateFunctionBody(expr.value)
2175
+ ];
2176
+ }
2177
+
2178
+ return [
2179
+ this.generatePropertyKey(expr.key, expr.computed),
2180
+ ':' + space,
2181
+ this.generateExpression(expr.value, Precedence.Assignment, E_TTT)
2182
+ ];
2183
+ },
2184
+
2185
+ ObjectExpression: function (expr, precedence, flags) {
2186
+ var multiline, result, fragment, that = this;
2187
+
2188
+ if (!expr.properties.length) {
2189
+ return '{}';
2190
+ }
2191
+ multiline = expr.properties.length > 1;
2192
+
2193
+ withIndent(function () {
2194
+ fragment = that.generateExpression(expr.properties[0], Precedence.Sequence, E_TTT);
2195
+ });
2196
+
2197
+ if (!multiline) {
2198
+ // issues 4
2199
+ // Do not transform from
2200
+ // dejavu.Class.declare({
2201
+ // method2: function () {}
2202
+ // });
2203
+ // to
2204
+ // dejavu.Class.declare({method2: function () {
2205
+ // }});
2206
+ if (!hasLineTerminator(toSourceNodeWhenNeeded(fragment).toString())) {
2207
+ return [ '{', space, fragment, space, '}' ];
2208
+ }
2209
+ }
2210
+
2211
+ withIndent(function (indent) {
2212
+ var i, iz;
2213
+ result = [ '{', newline, indent, fragment ];
2214
+
2215
+ if (multiline) {
2216
+ result.push(',' + newline);
2217
+ for (i = 1, iz = expr.properties.length; i < iz; ++i) {
2218
+ result.push(indent);
2219
+ result.push(that.generateExpression(expr.properties[i], Precedence.Sequence, E_TTT));
2220
+ if (i + 1 < iz) {
2221
+ result.push(',' + newline);
2222
+ }
2223
+ }
2224
+ }
2225
+ });
2226
+
2227
+ if (!endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) {
2228
+ result.push(newline);
2229
+ }
2230
+ result.push(base);
2231
+ result.push('}');
2232
+ return result;
2233
+ },
2234
+
2235
+ AssignmentPattern: function(expr, precedence, flags) {
2236
+ return this.generateAssignment(expr.left, expr.right, '=', precedence, flags);
2237
+ },
2238
+
2239
+ ObjectPattern: function (expr, precedence, flags) {
2240
+ var result, i, iz, multiline, property, that = this;
2241
+ if (!expr.properties.length) {
2242
+ return '{}';
2243
+ }
2244
+
2245
+ multiline = false;
2246
+ if (expr.properties.length === 1) {
2247
+ property = expr.properties[0];
2248
+ if (
2249
+ property.type === Syntax.Property
2250
+ && property.value.type !== Syntax.Identifier
2251
+ ) {
2252
+ multiline = true;
2253
+ }
2254
+ } else {
2255
+ for (i = 0, iz = expr.properties.length; i < iz; ++i) {
2256
+ property = expr.properties[i];
2257
+ if (
2258
+ property.type === Syntax.Property
2259
+ && !property.shorthand
2260
+ ) {
2261
+ multiline = true;
2262
+ break;
2263
+ }
2264
+ }
2265
+ }
2266
+ result = ['{', multiline ? newline : '' ];
2267
+
2268
+ withIndent(function (indent) {
2269
+ var i, iz;
2270
+ for (i = 0, iz = expr.properties.length; i < iz; ++i) {
2271
+ result.push(multiline ? indent : '');
2272
+ result.push(that.generateExpression(expr.properties[i], Precedence.Sequence, E_TTT));
2273
+ if (i + 1 < iz) {
2274
+ result.push(',' + (multiline ? newline : space));
2275
+ }
2276
+ }
2277
+ });
2278
+
2279
+ if (multiline && !endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) {
2280
+ result.push(newline);
2281
+ }
2282
+ result.push(multiline ? base : '');
2283
+ result.push('}');
2284
+ return result;
2285
+ },
2286
+
2287
+ ThisExpression: function (expr, precedence, flags) {
2288
+ return 'this';
2289
+ },
2290
+
2291
+ Super: function (expr, precedence, flags) {
2292
+ return 'super';
2293
+ },
2294
+
2295
+ Identifier: function (expr, precedence, flags) {
2296
+ return generateIdentifier(expr);
2297
+ },
2298
+
2299
+ ImportDefaultSpecifier: function (expr, precedence, flags) {
2300
+ return generateIdentifier(expr.id || expr.local);
2301
+ },
2302
+
2303
+ ImportNamespaceSpecifier: function (expr, precedence, flags) {
2304
+ var result = ['*'];
2305
+ var id = expr.id || expr.local;
2306
+ if (id) {
2307
+ result.push(space + 'as' + noEmptySpace() + generateIdentifier(id));
2308
+ }
2309
+ return result;
2310
+ },
2311
+
2312
+ ImportSpecifier: function (expr, precedence, flags) {
2313
+ var imported = expr.imported;
2314
+ var result = [ imported.name ];
2315
+ var local = expr.local;
2316
+ if (local && local.name !== imported.name) {
2317
+ result.push(noEmptySpace() + 'as' + noEmptySpace() + generateIdentifier(local));
2318
+ }
2319
+ return result;
2320
+ },
2321
+
2322
+ ExportSpecifier: function (expr, precedence, flags) {
2323
+ var local = expr.local;
2324
+ var result = [ local.name ];
2325
+ var exported = expr.exported;
2326
+ if (exported && exported.name !== local.name) {
2327
+ result.push(noEmptySpace() + 'as' + noEmptySpace() + generateIdentifier(exported));
2328
+ }
2329
+ return result;
2330
+ },
2331
+
2332
+ Literal: function (expr, precedence, flags) {
2333
+ var raw;
2334
+ if (expr.hasOwnProperty('raw') && parse && extra.raw) {
2335
+ try {
2336
+ raw = parse(expr.raw).body[0].expression;
2337
+ if (raw.type === Syntax.Literal) {
2338
+ if (raw.value === expr.value) {
2339
+ return expr.raw;
2340
+ }
2341
+ }
2342
+ } catch (e) {
2343
+ // not use raw property
2344
+ }
2345
+ }
2346
+
2347
+ if (expr.regex) {
2348
+ return '/' + expr.regex.pattern + '/' + expr.regex.flags;
2349
+ }
2350
+
2351
+ if (expr.value === null) {
2352
+ return 'null';
2353
+ }
2354
+
2355
+ if (typeof expr.value === 'string') {
2356
+ return escapeString(expr.value);
2357
+ }
2358
+
2359
+ if (typeof expr.value === 'number') {
2360
+ return generateNumber(expr.value);
2361
+ }
2362
+
2363
+ if (typeof expr.value === 'boolean') {
2364
+ return expr.value ? 'true' : 'false';
2365
+ }
2366
+
2367
+ return generateRegExp(expr.value);
2368
+ },
2369
+
2370
+ GeneratorExpression: function (expr, precedence, flags) {
2371
+ return this.ComprehensionExpression(expr, precedence, flags);
2372
+ },
2373
+
2374
+ ComprehensionExpression: function (expr, precedence, flags) {
2375
+ // GeneratorExpression should be parenthesized with (...), ComprehensionExpression with [...]
2376
+ // Due to https://bugzilla.mozilla.org/show_bug.cgi?id=883468 position of expr.body can differ in Spidermonkey and ES6
2377
+
2378
+ var result, i, iz, fragment, that = this;
2379
+ result = (expr.type === Syntax.GeneratorExpression) ? ['('] : ['['];
2380
+
2381
+ if (extra.moz.comprehensionExpressionStartsWithAssignment) {
2382
+ fragment = this.generateExpression(expr.body, Precedence.Assignment, E_TTT);
2383
+ result.push(fragment);
2384
+ }
2385
+
2386
+ if (expr.blocks) {
2387
+ withIndent(function () {
2388
+ for (i = 0, iz = expr.blocks.length; i < iz; ++i) {
2389
+ fragment = that.generateExpression(expr.blocks[i], Precedence.Sequence, E_TTT);
2390
+ if (i > 0 || extra.moz.comprehensionExpressionStartsWithAssignment) {
2391
+ result = join(result, fragment);
2392
+ } else {
2393
+ result.push(fragment);
2394
+ }
2395
+ }
2396
+ });
2397
+ }
2398
+
2399
+ if (expr.filter) {
2400
+ result = join(result, 'if' + space);
2401
+ fragment = this.generateExpression(expr.filter, Precedence.Sequence, E_TTT);
2402
+ result = join(result, [ '(', fragment, ')' ]);
2403
+ }
2404
+
2405
+ if (!extra.moz.comprehensionExpressionStartsWithAssignment) {
2406
+ fragment = this.generateExpression(expr.body, Precedence.Assignment, E_TTT);
2407
+
2408
+ result = join(result, fragment);
2409
+ }
2410
+
2411
+ result.push((expr.type === Syntax.GeneratorExpression) ? ')' : ']');
2412
+ return result;
2413
+ },
2414
+
2415
+ ComprehensionBlock: function (expr, precedence, flags) {
2416
+ var fragment;
2417
+ if (expr.left.type === Syntax.VariableDeclaration) {
2418
+ fragment = [
2419
+ expr.left.kind, noEmptySpace(),
2420
+ this.generateStatement(expr.left.declarations[0], S_FFFF)
2421
+ ];
2422
+ } else {
2423
+ fragment = this.generateExpression(expr.left, Precedence.Call, E_TTT);
2424
+ }
2425
+
2426
+ fragment = join(fragment, expr.of ? 'of' : 'in');
2427
+ fragment = join(fragment, this.generateExpression(expr.right, Precedence.Sequence, E_TTT));
2428
+
2429
+ return [ 'for' + space + '(', fragment, ')' ];
2430
+ },
2431
+
2432
+ SpreadElement: function (expr, precedence, flags) {
2433
+ return [
2434
+ '...',
2435
+ this.generateExpression(expr.argument, Precedence.Assignment, E_TTT)
2436
+ ];
2437
+ },
2438
+
2439
+ TaggedTemplateExpression: function (expr, precedence, flags) {
2440
+ var itemFlags = E_TTF;
2441
+ if (!(flags & F_ALLOW_CALL)) {
2442
+ itemFlags = E_TFF;
2443
+ }
2444
+ var result = [
2445
+ this.generateExpression(expr.tag, Precedence.Call, itemFlags),
2446
+ this.generateExpression(expr.quasi, Precedence.Primary, E_FFT)
2447
+ ];
2448
+ return parenthesize(result, Precedence.TaggedTemplate, precedence);
2449
+ },
2450
+
2451
+ TemplateElement: function (expr, precedence, flags) {
2452
+ // Don't use "cooked". Since tagged template can use raw template
2453
+ // representation. So if we do so, it breaks the script semantics.
2454
+ return expr.value.raw;
2455
+ },
2456
+
2457
+ TemplateLiteral: function (expr, precedence, flags) {
2458
+ var result, i, iz;
2459
+ result = [ '`' ];
2460
+ for (i = 0, iz = expr.quasis.length; i < iz; ++i) {
2461
+ result.push(this.generateExpression(expr.quasis[i], Precedence.Primary, E_TTT));
2462
+ if (i + 1 < iz) {
2463
+ result.push('${' + space);
2464
+ result.push(this.generateExpression(expr.expressions[i], Precedence.Sequence, E_TTT));
2465
+ result.push(space + '}');
2466
+ }
2467
+ }
2468
+ result.push('`');
2469
+ return result;
2470
+ },
2471
+
2472
+ ModuleSpecifier: function (expr, precedence, flags) {
2473
+ return this.Literal(expr, precedence, flags);
2474
+ },
2475
+
2476
+ ImportExpression: function(expr, precedence, flag) {
2477
+ return parenthesize([
2478
+ 'import(',
2479
+ this.generateExpression(expr.source, Precedence.Assignment, E_TTT),
2480
+ ')'
2481
+ ], Precedence.Call, precedence);
2482
+ }
2483
+ };
2484
+
2485
+ merge(CodeGenerator.prototype, CodeGenerator.Expression);
2486
+
2487
+ CodeGenerator.prototype.generateExpression = function (expr, precedence, flags) {
2488
+ var result, type;
2489
+
2490
+ type = expr.type || Syntax.Property;
2491
+
2492
+ if (extra.verbatim && expr.hasOwnProperty(extra.verbatim)) {
2493
+ return generateVerbatim(expr, precedence);
2494
+ }
2495
+
2496
+ result = this[type](expr, precedence, flags);
2497
+
2498
+
2499
+ if (extra.comment) {
2500
+ result = addComments(expr, result);
2501
+ }
2502
+ return toSourceNodeWhenNeeded(result, expr);
2503
+ };
2504
+
2505
+ CodeGenerator.prototype.generateStatement = function (stmt, flags) {
2506
+ var result,
2507
+ fragment;
2508
+
2509
+ result = this[stmt.type](stmt, flags);
2510
+
2511
+ // Attach comments
2512
+
2513
+ if (extra.comment) {
2514
+ result = addComments(stmt, result);
2515
+ }
2516
+
2517
+ fragment = toSourceNodeWhenNeeded(result).toString();
2518
+ if (stmt.type === Syntax.Program && !safeConcatenation && newline === '' && fragment.charAt(fragment.length - 1) === '\n') {
2519
+ result = sourceMap ? toSourceNodeWhenNeeded(result).replaceRight(/\s+$/, '') : fragment.replace(/\s+$/, '');
2520
+ }
2521
+
2522
+ return toSourceNodeWhenNeeded(result, stmt);
2523
+ };
2524
+
2525
+ function generateInternal(node) {
2526
+ var codegen;
2527
+
2528
+ codegen = new CodeGenerator();
2529
+ if (isStatement(node)) {
2530
+ return codegen.generateStatement(node, S_TFFF);
2531
+ }
2532
+
2533
+ if (isExpression(node)) {
2534
+ return codegen.generateExpression(node, Precedence.Sequence, E_TTT);
2535
+ }
2536
+
2537
+ throw new Error('Unknown node type: ' + node.type);
2538
+ }
2539
+
2540
+ function generate(node, options) {
2541
+ var defaultOptions = getDefaultOptions(), result, pair;
2542
+
2543
+ if (options != null) {
2544
+ // Obsolete options
2545
+ //
2546
+ // `options.indent`
2547
+ // `options.base`
2548
+ //
2549
+ // Instead of them, we can use `option.format.indent`.
2550
+ if (typeof options.indent === 'string') {
2551
+ defaultOptions.format.indent.style = options.indent;
2552
+ }
2553
+ if (typeof options.base === 'number') {
2554
+ defaultOptions.format.indent.base = options.base;
2555
+ }
2556
+ options = updateDeeply(defaultOptions, options);
2557
+ indent = options.format.indent.style;
2558
+ if (typeof options.base === 'string') {
2559
+ base = options.base;
2560
+ } else {
2561
+ base = stringRepeat(indent, options.format.indent.base);
2562
+ }
2563
+ } else {
2564
+ options = defaultOptions;
2565
+ indent = options.format.indent.style;
2566
+ base = stringRepeat(indent, options.format.indent.base);
2567
+ }
2568
+ json = options.format.json;
2569
+ renumber = options.format.renumber;
2570
+ hexadecimal = json ? false : options.format.hexadecimal;
2571
+ quotes = json ? 'double' : options.format.quotes;
2572
+ escapeless = options.format.escapeless;
2573
+ newline = options.format.newline;
2574
+ space = options.format.space;
2575
+ if (options.format.compact) {
2576
+ newline = space = indent = base = '';
2577
+ }
2578
+ parentheses = options.format.parentheses;
2579
+ semicolons = options.format.semicolons;
2580
+ safeConcatenation = options.format.safeConcatenation;
2581
+ directive = options.directive;
2582
+ parse = json ? null : options.parse;
2583
+ sourceMap = options.sourceMap;
2584
+ sourceCode = options.sourceCode;
2585
+ preserveBlankLines = options.format.preserveBlankLines && sourceCode !== null;
2586
+ extra = options;
2587
+
2588
+ if (sourceMap) {
2589
+ if (!exports.browser) {
2590
+ // We assume environment is node.js
2591
+ // And prevent from including source-map by browserify
2592
+ SourceNode = require('source-map').SourceNode;
2593
+ } else {
2594
+ SourceNode = global.sourceMap.SourceNode;
2595
+ }
2596
+ }
2597
+
2598
+ result = generateInternal(node);
2599
+
2600
+ if (!sourceMap) {
2601
+ pair = {code: result.toString(), map: null};
2602
+ return options.sourceMapWithCode ? pair : pair.code;
2603
+ }
2604
+
2605
+
2606
+ pair = result.toStringWithSourceMap({
2607
+ file: options.file,
2608
+ sourceRoot: options.sourceMapRoot
2609
+ });
2610
+
2611
+ if (options.sourceContent) {
2612
+ pair.map.setSourceContent(options.sourceMap,
2613
+ options.sourceContent);
2614
+ }
2615
+
2616
+ if (options.sourceMapWithCode) {
2617
+ return pair;
2618
+ }
2619
+
2620
+ return pair.map.toString();
2621
+ }
2622
+
2623
+ FORMAT_MINIFY = {
2624
+ indent: {
2625
+ style: '',
2626
+ base: 0
2627
+ },
2628
+ renumber: true,
2629
+ hexadecimal: true,
2630
+ quotes: 'auto',
2631
+ escapeless: true,
2632
+ compact: true,
2633
+ parentheses: false,
2634
+ semicolons: false
2635
+ };
2636
+
2637
+ FORMAT_DEFAULTS = getDefaultOptions().format;
2638
+
2639
+ exports.version = require('./package.json').version;
2640
+ exports.generate = generate;
2641
+ exports.attachComments = estraverse.attachComments;
2642
+ exports.Precedence = updateDeeply({}, Precedence);
2643
+ exports.browser = false;
2644
+ exports.FORMAT_MINIFY = FORMAT_MINIFY;
2645
+ exports.FORMAT_DEFAULTS = FORMAT_DEFAULTS;
2646
+ }());
2647
+ /* vim: set sw=4 ts=4 et tw=80 : */