@appthreat/atom 2.1.13 → 2.1.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/package.json +5 -4
  2. package/phpastgen.js +1 -5
  3. package/plugins/autoload.php +1 -4
  4. package/plugins/bin/atom +1 -1
  5. package/plugins/bin/atom.bat +1 -1
  6. package/plugins/bin/bundler +1 -1
  7. package/plugins/bin/ruby_ast_gen +1 -1
  8. package/plugins/composer/InstalledVersions.php +19 -1
  9. package/plugins/composer/installed.php +6 -6
  10. package/plugins/lib/com.github.javaparser.javaparser-core-3.26.4.jar +0 -0
  11. package/plugins/lib/com.github.javaparser.javaparser-symbol-solver-core-3.26.4.jar +0 -0
  12. package/plugins/lib/com.google.errorprone.error_prone_annotations-2.36.0.jar +0 -0
  13. package/plugins/lib/{com.google.guava.guava-33.3.1-jre.jar → com.google.guava.guava-33.4.0-jre.jar} +0 -0
  14. package/plugins/lib/commons-io.commons-io-2.19.0.jar +0 -0
  15. package/plugins/lib/io.appthreat.atom-2.1.15-classpath.jar +0 -0
  16. package/plugins/lib/{io.appthreat.atom-2.1.13.jar → io.appthreat.atom-2.1.15.jar} +0 -0
  17. package/plugins/lib/{io.appthreat.c2cpg_3-2.3.3.jar → io.appthreat.c2cpg_3-2.3.6.jar} +0 -0
  18. package/plugins/lib/{io.appthreat.dataflowengineoss_3-2.3.3.jar → io.appthreat.dataflowengineoss_3-2.3.6.jar} +0 -0
  19. package/plugins/lib/{io.appthreat.javasrc2cpg_3-2.3.3.jar → io.appthreat.javasrc2cpg_3-2.3.6.jar} +0 -0
  20. package/plugins/lib/{io.appthreat.jimple2cpg_3-2.3.3.jar → io.appthreat.jimple2cpg_3-2.3.6.jar} +0 -0
  21. package/plugins/lib/{io.appthreat.jssrc2cpg_3-2.3.3.jar → io.appthreat.jssrc2cpg_3-2.3.6.jar} +0 -0
  22. package/plugins/lib/{io.appthreat.php2atom_3-2.3.3.jar → io.appthreat.php2atom_3-2.3.6.jar} +0 -0
  23. package/plugins/lib/{io.appthreat.pysrc2cpg_3-2.3.3.jar → io.appthreat.pysrc2cpg_3-2.3.6.jar} +0 -0
  24. package/plugins/lib/{io.appthreat.ruby2atom_3-2.3.3.jar → io.appthreat.ruby2atom_3-2.3.6.jar} +0 -0
  25. package/plugins/lib/{io.appthreat.semanticcpg_3-2.3.3.jar → io.appthreat.semanticcpg_3-2.3.6.jar} +0 -0
  26. package/plugins/lib/{io.appthreat.x2cpg_3-2.3.3.jar → io.appthreat.x2cpg_3-2.3.6.jar} +0 -0
  27. package/plugins/lib/io.circe.circe-core_3-0.14.12.jar +0 -0
  28. package/plugins/lib/io.circe.circe-generic_3-0.14.12.jar +0 -0
  29. package/plugins/lib/io.circe.circe-jawn_3-0.14.12.jar +0 -0
  30. package/plugins/lib/io.circe.circe-numbers_3-0.14.12.jar +0 -0
  31. package/plugins/lib/io.circe.circe-parser_3-0.14.12.jar +0 -0
  32. package/plugins/lib/{net.java.dev.jna.jna-5.15.0.jar → net.java.dev.jna.jna-5.16.0.jar} +0 -0
  33. package/plugins/lib/{org.eclipse.cdt.core_8.4.201.202406290148.jar → org.eclipse.cdt.core_9.0.0.202502260255.jar} +0 -0
  34. package/plugins/lib/{org.eclipse.platform.org.eclipse.core.jobs-3.15.400.jar → org.eclipse.platform.org.eclipse.core.jobs-3.15.500.jar} +0 -0
  35. package/plugins/lib/{org.eclipse.platform.org.eclipse.core.resources-3.22.0.jar → org.eclipse.platform.org.eclipse.core.resources-3.22.100.jar} +0 -0
  36. package/plugins/lib/org.eclipse.platform.org.eclipse.core.runtime-3.33.0.jar +0 -0
  37. package/plugins/lib/{org.eclipse.platform.org.eclipse.equinox.app-1.7.200.jar → org.eclipse.platform.org.eclipse.equinox.app-1.7.300.jar} +0 -0
  38. package/plugins/lib/{org.eclipse.platform.org.eclipse.equinox.common-3.19.200.jar → org.eclipse.platform.org.eclipse.equinox.common-3.20.0.jar} +0 -0
  39. package/plugins/lib/{org.eclipse.platform.org.eclipse.equinox.preferences-3.11.200.jar → org.eclipse.platform.org.eclipse.equinox.preferences-3.11.300.jar} +0 -0
  40. package/plugins/lib/{org.eclipse.platform.org.eclipse.equinox.registry-3.12.200.jar → org.eclipse.platform.org.eclipse.equinox.registry-3.12.300.jar} +0 -0
  41. package/plugins/lib/{org.eclipse.platform.org.eclipse.osgi-3.22.0.jar → org.eclipse.platform.org.eclipse.osgi-3.23.0.jar} +0 -0
  42. package/plugins/lib/{org.ow2.asm.asm-9.7.1.jar → org.ow2.asm.asm-9.8.jar} +0 -0
  43. package/plugins/lib/{org.ow2.asm.asm-analysis-9.7.1.jar → org.ow2.asm.asm-analysis-9.8.jar} +0 -0
  44. package/plugins/lib/{org.ow2.asm.asm-tree-9.7.1.jar → org.ow2.asm.asm-tree-9.8.jar} +0 -0
  45. package/plugins/lib/org.ow2.asm.asm-util-9.8.jar +0 -0
  46. package/plugins/lib/{org.projectlombok.lombok-1.18.36.jar → org.projectlombok.lombok-1.18.38.jar} +0 -0
  47. package/plugins/lib/{org.scala-lang.modules.scala-asm-9.7.1-scala-1.jar → org.scala-lang.modules.scala-asm-9.8.0-scala-1.jar} +0 -0
  48. package/plugins/lib/{org.slf4j.slf4j-api-2.0.16.jar → org.slf4j.slf4j-api-2.0.17.jar} +0 -0
  49. package/plugins/lib/org.slf4j.slf4j-nop-2.0.17.jar +0 -0
  50. package/plugins/lib/{org.typelevel.cats-core_3-2.12.0.jar → org.typelevel.cats-core_3-2.13.0.jar} +0 -0
  51. package/plugins/lib/org.typelevel.cats-kernel_3-2.13.0.jar +0 -0
  52. package/plugins/rubyastgen/Gemfile +2 -2
  53. package/plugins/rubyastgen/Gemfile.lock +8 -8
  54. package/plugins/rubyastgen/bundle/bundler/setup.rb +3 -3
  55. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-d8b6ffa44317 → ruby_ast_gen-d8b5c5740b5a}/Gemfile +3 -3
  56. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-d8b6ffa44317 → ruby_ast_gen-d8b5c5740b5a}/lib/ruby_ast_gen/version.rb +1 -1
  57. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-d8b6ffa44317 → ruby_ast_gen-d8b5c5740b5a}/ruby_ast_gen.gemspec +5 -5
  58. package/plugins/rubyastgen/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/racc-1.8.1/gem_make.out +6 -6
  59. package/plugins/rubyastgen/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/racc-1.8.1/racc/cparse.so +0 -0
  60. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{ast-2.4.2 → ast-2.4.3}/lib/ast/node.rb +1 -1
  61. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{ast-2.4.2 → ast-2.4.3}/lib/ast/processor.rb +1 -1
  62. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{ast-2.4.2 → ast-2.4.3}/lib/ast/sexp.rb +2 -2
  63. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{ast-2.4.2 → ast-2.4.3}/lib/ast.rb +3 -3
  64. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/base.rb +3 -0
  65. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/builders/default.rb +21 -8
  66. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/current.rb +12 -3
  67. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/lexer-F0.rb +306 -297
  68. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/lexer-F1.rb +571 -562
  69. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/lexer-strings.rb +89 -80
  70. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/meta.rb +11 -3
  71. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/ruby27.rb +2 -1
  72. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/ruby30.rb +2 -1
  73. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/ruby31.rb +2 -1
  74. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/ruby32.rb +2 -1
  75. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/ruby33.rb +2 -1
  76. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/ruby34.rb +2 -1
  77. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/version.rb +1 -1
  78. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/ext/racc/cparse/Makefile +3 -3
  79. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc/cparse.so +0 -0
  80. package/plugins/rubyastgen/bundle/ruby/3.4.0/specifications/{ast-2.4.2.gemspec → ast-2.4.3.gemspec} +7 -8
  81. package/plugins/rubyastgen/bundle/ruby/3.4.0/specifications/ostruct-0.6.1.gemspec +1 -1
  82. package/plugins/rubyastgen/bundle/ruby/3.4.0/specifications/{parser-3.3.7.1.gemspec → parser-3.3.8.0.gemspec} +6 -6
  83. package/plugins/rubyastgen/bundle/ruby/3.4.0/specifications/racc-1.8.1.gemspec +1 -1
  84. package/rbastgen.js +2 -6
  85. package/scalasem.js +365 -0
  86. package/utils.mjs +27 -2
  87. package/plugins/lib/com.github.javaparser.javaparser-core-3.26.3.jar +0 -0
  88. package/plugins/lib/com.github.javaparser.javaparser-symbol-solver-core-3.26.3.jar +0 -0
  89. package/plugins/lib/com.google.errorprone.error_prone_annotations-2.28.0.jar +0 -0
  90. package/plugins/lib/commons-io.commons-io-2.18.0.jar +0 -0
  91. package/plugins/lib/io.appthreat.atom-2.1.13-classpath.jar +0 -0
  92. package/plugins/lib/io.circe.circe-core_3-0.14.10.jar +0 -0
  93. package/plugins/lib/io.circe.circe-generic_3-0.14.10.jar +0 -0
  94. package/plugins/lib/io.circe.circe-jawn_3-0.14.10.jar +0 -0
  95. package/plugins/lib/io.circe.circe-numbers_3-0.14.10.jar +0 -0
  96. package/plugins/lib/io.circe.circe-parser_3-0.14.10.jar +0 -0
  97. package/plugins/lib/org.eclipse.platform.org.eclipse.core.runtime-3.32.0.jar +0 -0
  98. package/plugins/lib/org.ow2.asm.asm-util-9.7.1.jar +0 -0
  99. package/plugins/lib/org.slf4j.slf4j-nop-2.0.16.jar +0 -0
  100. package/plugins/lib/org.typelevel.cats-kernel_3-2.12.0.jar +0 -0
  101. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.7.1/lib/parser/ruby28.rb +0 -8047
  102. /package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-d8b6ffa44317 → ruby_ast_gen-d8b5c5740b5a}/.rspec +0 -0
  103. /package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-d8b6ffa44317 → ruby_ast_gen-d8b5c5740b5a}/LICENSE.txt +0 -0
  104. /package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-d8b6ffa44317 → ruby_ast_gen-d8b5c5740b5a}/README.md +0 -0
  105. /package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-d8b6ffa44317 → ruby_ast_gen-d8b5c5740b5a}/Rakefile +0 -0
  106. /package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-d8b6ffa44317 → ruby_ast_gen-d8b5c5740b5a}/bin/console +0 -0
  107. /package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-d8b6ffa44317 → ruby_ast_gen-d8b5c5740b5a}/bin/setup +0 -0
  108. /package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-d8b6ffa44317 → ruby_ast_gen-d8b5c5740b5a}/exe/ruby_ast_gen +0 -0
  109. /package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-d8b6ffa44317 → ruby_ast_gen-d8b5c5740b5a}/lib/ruby_ast_gen/node_handling.rb +0 -0
  110. /package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-d8b6ffa44317 → ruby_ast_gen-d8b5c5740b5a}/lib/ruby_ast_gen.rb +0 -0
  111. /package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-d8b6ffa44317 → ruby_ast_gen-d8b5c5740b5a}/spec/ruby_ast_gen_spec.rb +0 -0
  112. /package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-d8b6ffa44317 → ruby_ast_gen-d8b5c5740b5a}/spec/spec_helper.rb +0 -0
  113. /package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-d8b6ffa44317 → ruby_ast_gen-d8b5c5740b5a}/update_version.rb +0 -0
  114. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{ast-2.4.2 → ast-2.4.3}/LICENSE.MIT +0 -0
  115. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{ast-2.4.2 → ast-2.4.3}/README.YARD.md +0 -0
  116. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{ast-2.4.2 → ast-2.4.3}/lib/ast/processor/mixin.rb +0 -0
  117. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/LICENSE.txt +0 -0
  118. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/bin/ruby-parse +0 -0
  119. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/bin/ruby-rewrite +0 -0
  120. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/gauntlet_parser.rb +0 -0
  121. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/all.rb +0 -0
  122. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/ast/node.rb +0 -0
  123. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/ast/processor.rb +0 -0
  124. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/clobbering_error.rb +0 -0
  125. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/color.rb +0 -0
  126. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/context.rb +0 -0
  127. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/current_arg_stack.rb +0 -0
  128. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/deprecation.rb +0 -0
  129. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/diagnostic/engine.rb +0 -0
  130. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/diagnostic.rb +0 -0
  131. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/lexer/dedenter.rb +0 -0
  132. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/lexer/explanation.rb +0 -0
  133. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/lexer/literal.rb +0 -0
  134. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/lexer/stack_state.rb +0 -0
  135. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/macruby.rb +0 -0
  136. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/max_numparam_stack.rb +0 -0
  137. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/messages.rb +0 -0
  138. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/rewriter.rb +0 -0
  139. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/ruby18.rb +0 -0
  140. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/ruby19.rb +0 -0
  141. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/ruby20.rb +0 -0
  142. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/ruby21.rb +0 -0
  143. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/ruby22.rb +0 -0
  144. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/ruby23.rb +0 -0
  145. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/ruby24.rb +0 -0
  146. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/ruby25.rb +0 -0
  147. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/ruby26.rb +0 -0
  148. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/rubymotion.rb +0 -0
  149. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/runner/ruby_parse.rb +0 -0
  150. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/runner/ruby_rewrite.rb +0 -0
  151. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/runner.rb +0 -0
  152. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/source/buffer.rb +0 -0
  153. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/source/comment/associator.rb +0 -0
  154. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/source/comment.rb +0 -0
  155. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/source/map/collection.rb +0 -0
  156. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/source/map/condition.rb +0 -0
  157. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/source/map/constant.rb +0 -0
  158. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/source/map/definition.rb +0 -0
  159. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/source/map/for.rb +0 -0
  160. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/source/map/heredoc.rb +0 -0
  161. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/source/map/index.rb +0 -0
  162. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/source/map/keyword.rb +0 -0
  163. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/source/map/method_definition.rb +0 -0
  164. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/source/map/objc_kwarg.rb +0 -0
  165. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/source/map/operator.rb +0 -0
  166. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/source/map/rescue_body.rb +0 -0
  167. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/source/map/send.rb +0 -0
  168. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/source/map/ternary.rb +0 -0
  169. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/source/map/variable.rb +0 -0
  170. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/source/map.rb +0 -0
  171. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/source/range.rb +0 -0
  172. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/source/rewriter/action.rb +0 -0
  173. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/source/rewriter.rb +0 -0
  174. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/source/tree_rewriter/action.rb +0 -0
  175. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/source/tree_rewriter.rb +0 -0
  176. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/static_environment.rb +0 -0
  177. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/syntax_error.rb +0 -0
  178. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/tree_rewriter.rb +0 -0
  179. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/unknown_encoding_in_magic_comment_error.rb +0 -0
  180. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser/variables_stack.rb +0 -0
  181. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser.rb +0 -0
  182. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/parser.gemspec +0 -0
@@ -11162,11 +11162,12 @@ end
11162
11162
 
11163
11163
  def _reduce_538(val, _values, result)
11164
11164
  name = val[1][0]
11165
+ lvar = @builder.accessible(@builder.ident(val[1]))
11166
+
11165
11167
  unless static_env.declared?(name)
11166
11168
  diagnostic :error, :undefined_lvar, { :name => name }, val[1]
11167
11169
  end
11168
11170
 
11169
- lvar = @builder.accessible(@builder.ident(val[1]))
11170
11171
  result = @builder.pin(val[0], lvar)
11171
11172
 
11172
11173
  result
@@ -11589,11 +11589,12 @@ end
11589
11589
 
11590
11590
  def _reduce_548(val, _values, result)
11591
11591
  name = val[1][0]
11592
+ lvar = @builder.accessible(@builder.ident(val[1]))
11593
+
11592
11594
  unless static_env.declared?(name)
11593
11595
  diagnostic :error, :undefined_lvar, { :name => name }, val[1]
11594
11596
  end
11595
11597
 
11596
- lvar = @builder.accessible(@builder.ident(val[1]))
11597
11598
  result = @builder.pin(val[0], lvar)
11598
11599
 
11599
11600
  result
@@ -11585,11 +11585,12 @@ end
11585
11585
 
11586
11586
  def _reduce_548(val, _values, result)
11587
11587
  name = val[1][0]
11588
+ lvar = @builder.accessible(@builder.ident(val[1]))
11589
+
11588
11590
  unless static_env.declared?(name)
11589
11591
  diagnostic :error, :undefined_lvar, { :name => name }, val[1]
11590
11592
  end
11591
11593
 
11592
- lvar = @builder.accessible(@builder.ident(val[1]))
11593
11594
  result = @builder.pin(val[0], lvar)
11594
11595
 
11595
11596
  result
@@ -11471,11 +11471,12 @@ end
11471
11471
 
11472
11472
  def _reduce_548(val, _values, result)
11473
11473
  name = val[1][0]
11474
+ lvar = @builder.accessible(@builder.ident(val[1]))
11475
+
11474
11476
  unless static_env.declared?(name)
11475
11477
  diagnostic :error, :undefined_lvar, { :name => name }, val[1]
11476
11478
  end
11477
11479
 
11478
- lvar = @builder.accessible(@builder.ident(val[1]))
11479
11480
  result = @builder.pin(val[0], lvar)
11480
11481
 
11481
11482
  result
@@ -11478,11 +11478,12 @@ end
11478
11478
 
11479
11479
  def _reduce_548(val, _values, result)
11480
11480
  name = val[1][0]
11481
+ lvar = @builder.accessible(@builder.ident(val[1]))
11482
+
11481
11483
  unless static_env.declared?(name)
11482
11484
  diagnostic :error, :undefined_lvar, { :name => name }, val[1]
11483
11485
  end
11484
11486
 
11485
- lvar = @builder.accessible(@builder.ident(val[1]))
11486
11487
  result = @builder.pin(val[0], lvar)
11487
11488
 
11488
11489
  result
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Parser
4
- VERSION = '3.3.7.1'
4
+ VERSION = '3.3.8.0'
5
5
  end
@@ -13,12 +13,12 @@ NULLCMD = :
13
13
  #### Start of system configuration section. ####
14
14
 
15
15
  srcdir = .
16
- topdir = /opt/hostedtoolcache/Ruby/3.4.2/x64/include/ruby-3.4.0
16
+ topdir = /opt/hostedtoolcache/Ruby/3.4.3/x64/include/ruby-3.4.0
17
17
  hdrdir = $(topdir)
18
- arch_hdrdir = /opt/hostedtoolcache/Ruby/3.4.2/x64/include/ruby-3.4.0/x86_64-linux
18
+ arch_hdrdir = /opt/hostedtoolcache/Ruby/3.4.3/x64/include/ruby-3.4.0/x86_64-linux
19
19
  PATH_SEPARATOR = :
20
20
  VPATH = $(srcdir):$(arch_hdrdir)/ruby:$(hdrdir)/ruby
21
- prefix = $(DESTDIR)/opt/hostedtoolcache/Ruby/3.4.2/x64
21
+ prefix = $(DESTDIR)/opt/hostedtoolcache/Ruby/3.4.3/x64
22
22
  rubysitearchprefix = $(rubylibprefix)/$(sitearch)
23
23
  rubyarchprefix = $(rubylibprefix)/$(arch)
24
24
  rubylibprefix = $(libdir)/$(RUBY_BASE_NAME)
@@ -1,28 +1,27 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: ast 2.4.2 ruby lib
2
+ # stub: ast 2.4.3 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "ast".freeze
6
- s.version = "2.4.2".freeze
6
+ s.version = "2.4.3".freeze
7
7
 
8
8
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
9
9
  s.require_paths = ["lib".freeze]
10
10
  s.authors = ["whitequark".freeze]
11
- s.date = "2021-01-23"
11
+ s.date = "2025-03-19"
12
12
  s.description = "A library for working with Abstract Syntax Trees.".freeze
13
13
  s.email = ["whitequark@whitequark.org".freeze]
14
14
  s.homepage = "https://whitequark.github.io/ast/".freeze
15
15
  s.licenses = ["MIT".freeze]
16
- s.rubygems_version = "3.2.3".freeze
16
+ s.rubygems_version = "3.6.2".freeze
17
17
  s.summary = "A library for working with Abstract Syntax Trees.".freeze
18
18
 
19
- s.installed_by_version = "3.6.2".freeze
19
+ s.installed_by_version = "3.6.7".freeze
20
20
 
21
21
  s.specification_version = 4
22
22
 
23
- s.add_development_dependency(%q<rake>.freeze, ["~> 12.3".freeze])
24
- s.add_development_dependency(%q<bacon>.freeze, ["~> 1.2".freeze])
25
- s.add_development_dependency(%q<bacon-colored_output>.freeze, [">= 0".freeze])
23
+ s.add_development_dependency(%q<rake>.freeze, ["~> 13.2".freeze])
24
+ s.add_development_dependency(%q<rspec>.freeze, ["~> 3.13".freeze])
26
25
  s.add_development_dependency(%q<simplecov>.freeze, [">= 0".freeze])
27
26
  s.add_development_dependency(%q<coveralls>.freeze, ["~> 0.8.23".freeze])
28
27
  s.add_development_dependency(%q<yard>.freeze, [">= 0".freeze])
@@ -17,5 +17,5 @@ Gem::Specification.new do |s|
17
17
  s.rubygems_version = "3.5.11".freeze
18
18
  s.summary = "Class to build custom data structures, similar to a Hash.".freeze
19
19
 
20
- s.installed_by_version = "3.6.2".freeze
20
+ s.installed_by_version = "3.6.7".freeze
21
21
  end
@@ -1,15 +1,15 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: parser 3.3.7.1 ruby lib
2
+ # stub: parser 3.3.8.0 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "parser".freeze
6
- s.version = "3.3.7.1".freeze
6
+ s.version = "3.3.8.0".freeze
7
7
 
8
8
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
9
- s.metadata = { "bug_tracker_uri" => "https://github.com/whitequark/parser/issues", "changelog_uri" => "https://github.com/whitequark/parser/blob/v3.3.7.1/CHANGELOG.md", "documentation_uri" => "https://www.rubydoc.info/gems/parser/3.3.7.1", "source_code_uri" => "https://github.com/whitequark/parser/tree/v3.3.7.1" } if s.respond_to? :metadata=
9
+ s.metadata = { "bug_tracker_uri" => "https://github.com/whitequark/parser/issues", "changelog_uri" => "https://github.com/whitequark/parser/blob/v3.3.8.0/CHANGELOG.md", "documentation_uri" => "https://www.rubydoc.info/gems/parser/3.3.8.0", "source_code_uri" => "https://github.com/whitequark/parser/tree/v3.3.8.0" } if s.respond_to? :metadata=
10
10
  s.require_paths = ["lib".freeze]
11
11
  s.authors = ["whitequark".freeze]
12
- s.date = "2025-02-05"
12
+ s.date = "2025-04-14"
13
13
  s.description = "A Ruby parser written in pure Ruby.".freeze
14
14
  s.email = ["whitequark@whitequark.org".freeze]
15
15
  s.executables = ["ruby-parse".freeze, "ruby-rewrite".freeze]
@@ -17,10 +17,10 @@ Gem::Specification.new do |s|
17
17
  s.homepage = "https://github.com/whitequark/parser".freeze
18
18
  s.licenses = ["MIT".freeze]
19
19
  s.required_ruby_version = Gem::Requirement.new(">= 2.0.0".freeze)
20
- s.rubygems_version = "3.5.3".freeze
20
+ s.rubygems_version = "3.6.2".freeze
21
21
  s.summary = "A Ruby parser written in pure Ruby.".freeze
22
22
 
23
- s.installed_by_version = "3.6.2".freeze
23
+ s.installed_by_version = "3.6.7".freeze
24
24
 
25
25
  s.specification_version = 4
26
26
 
@@ -24,5 +24,5 @@ Gem::Specification.new do |s|
24
24
  s.rubygems_version = "3.5.0.dev".freeze
25
25
  s.summary = "Racc is an LALR(1) parser generator".freeze
26
26
 
27
- s.installed_by_version = "3.6.2".freeze
27
+ s.installed_by_version = "3.6.7".freeze
28
28
  end
package/rbastgen.js CHANGED
@@ -15,14 +15,10 @@ export const PLUGINS_HOME = join(dirName, "plugins");
15
15
  const RUBY_ASTGEN_BIN =
16
16
  process.env.RUBY_ASTGEN_BIN || join(PLUGINS_HOME, "bin", "ruby_ast_gen");
17
17
  // Ruby version needed
18
- const RUBY_VERSION_NEEDED = "3.4.2";
18
+ const RUBY_VERSION_NEEDED = "3.4.3";
19
19
  function main(argvs) {
20
20
  const cwd = process.env.ATOM_CWD || process.cwd();
21
- argvs.splice(
22
- 0,
23
- 0,
24
- process.env.RUBY_ASTGEN_BIN || join(PLUGINS_HOME, "bin", "ruby_ast_gen")
25
- );
21
+ argvs.splice(0, 0, RUBY_ASTGEN_BIN);
26
22
  const env = {
27
23
  ...process.env
28
24
  };
package/scalasem.js ADDED
@@ -0,0 +1,365 @@
1
+ #!/usr/bin/env node
2
+ // Usage: scalasem $(pwd) slices.json
3
+ import { tmpdir } from "node:os";
4
+ import { basename, dirname, join, relative } from "node:path";
5
+ import { spawnSync } from "node:child_process";
6
+ import { detectScala, detectScalac, getAllFiles } from "./utils.mjs";
7
+ import process from "node:process";
8
+ import {
9
+ existsSync,
10
+ mkdtempSync,
11
+ mkdirSync,
12
+ readFileSync,
13
+ rmSync,
14
+ writeFileSync
15
+ } from "node:fs";
16
+
17
+ function main(argvs) {
18
+ if (!detectScala() && !detectScalac()) {
19
+ console.warn("Scala is not installed!");
20
+ return false;
21
+ }
22
+ let configFiles = getAllFiles(argvs[0], "routes");
23
+ configFiles = configFiles.concat(getAllFiles(argvs[0], ".conf"));
24
+ let tastyFiles = getAllFiles(argvs[0], ".tasty");
25
+ if (!tastyFiles.length) {
26
+ let buildTool = "sbt";
27
+ const millFiles = getAllFiles(argvs[0], "build.mill");
28
+ if (millFiles.length) {
29
+ buildTool = "mill";
30
+ }
31
+ const cwd = process.env.ATOM_CWD || process.cwd();
32
+ let compileCommand =
33
+ process?.env[`${buildTool.toUpperCase()}_COMPILE_COMMAND`] || "compile";
34
+ if (process.env.SCALA_VERSION && buildTool === "sbt") {
35
+ compileCommand = `++${process.env.SCALA_VERSION} ${compileCommand}`;
36
+ } else {
37
+ // Detect crossScalaVersions
38
+ const scalaVersion = findScalaVersion(cwd);
39
+ if (scalaVersion) {
40
+ compileCommand = `++${scalaVersion} ${compileCommand}`;
41
+ }
42
+ }
43
+ console.log(`Executing '${buildTool} ${compileCommand}' in ${argvs[0]}`);
44
+ const result = spawnSync(buildTool, compileCommand.split(" "), {
45
+ encoding: "utf-8",
46
+ cwd,
47
+ stdio: "ignore",
48
+ stderr: "inherit",
49
+ env: process.env,
50
+ timeout: process.env.ATOM_TIMEOUT || process.env.ASTGEN_TIMEOUT
51
+ });
52
+ if (result.error || result.status !== 0) {
53
+ if (result.stderr) {
54
+ console.log(result.stderr);
55
+ }
56
+ return false;
57
+ }
58
+ tastyFiles = getAllFiles(argvs[0], ".tasty");
59
+ console.log(`Obtained ${tastyFiles.length} IR files after compilation.`);
60
+ }
61
+ const slicesFile =
62
+ argvs.length > 1 ? argvs[1] : join(argvs[0], "slices.json");
63
+ createSemanticSlices(tastyFiles, configFiles, slicesFile);
64
+ }
65
+ main(process.argv.slice(2));
66
+
67
+ function findScalaVersion(cwd) {
68
+ let scalaVersion;
69
+ const buildSbtFile = join(cwd, "build.sbt");
70
+ if (existsSync(buildSbtFile)) {
71
+ const buildData = readFileSync(buildSbtFile, "utf-8");
72
+ for (let line of buildData.split("\n")) {
73
+ if (line.trim().includes("val ") && line.includes("scala")) {
74
+ const match = line.match(/"(3\.[^"]+)"/);
75
+ if (match) {
76
+ return match[1];
77
+ }
78
+ }
79
+ if (line.trim().includes("crossScalaVersions")) {
80
+ const crossVersions = line.split("crossScalaVersions").pop().trim();
81
+ if (crossVersions.includes("3.")) {
82
+ const match = crossVersions.match(/"(3\.[^"]+)"/);
83
+ if (match) {
84
+ return match[1];
85
+ }
86
+ }
87
+ }
88
+ }
89
+ }
90
+ return scalaVersion;
91
+ }
92
+
93
+ function createSemanticSlices(tastyFiles, configFiles, slicesFile) {
94
+ const outDir = mkdtempSync(join(tmpdir(), "scalasem-"));
95
+ const MAX_BUFFER =
96
+ Number.parseInt(process.env.ATOM_MAX_BUFFER) || 100 * 1024 * 1024;
97
+ const cwd = process.env.ATOM_CWD || process.cwd();
98
+ const slices = {};
99
+ slices.config = parseConfigFiles(configFiles);
100
+ for (const af of tastyFiles) {
101
+ const result = spawnSync(
102
+ process.env.SCALAC_CMD || "scalac",
103
+ ["-color:never", "-print-tasty", af],
104
+ {
105
+ encoding: "utf-8",
106
+ cwd,
107
+ env: process.env,
108
+ maxBuffer: MAX_BUFFER,
109
+ timeout: process.env.ATOM_TIMEOUT || process.env.ASTGEN_TIMEOUT
110
+ }
111
+ );
112
+ if (result.error || result.status !== 0) {
113
+ if (result.stderr) {
114
+ console.log(result.stderr);
115
+ }
116
+ }
117
+ if (result.stdout) {
118
+ let fileOutDir = join(outDir, relative(cwd, dirname(af)));
119
+ const scalaDir = relative(cwd, dirname(af)).replace(
120
+ new RegExp("target/scala-(.)*/classes"),
121
+ ""
122
+ );
123
+ if (fileOutDir.includes("classes")) {
124
+ fileOutDir = fileOutDir.replace(
125
+ new RegExp("target/scala-(.)*/classes"),
126
+ ""
127
+ );
128
+ }
129
+ mkdirSync(fileOutDir, { recursive: true });
130
+ const astFile = join(
131
+ fileOutDir,
132
+ basename(af).replace(".tasty", ".scala.ast")
133
+ );
134
+ const scalaFile = join(
135
+ scalaDir,
136
+ basename(af).replace(".tasty", ".scala")
137
+ );
138
+ writeFileSync(astFile, Buffer.from(result.stdout).toString());
139
+ const usages = parseTasty(astFile);
140
+ slices[usages.sourceFile || scalaFile] = usages;
141
+ rmSync(astFile);
142
+ }
143
+ }
144
+ const slicesJson = JSON.stringify(slices, null, null);
145
+ writeFileSync(slicesFile, slicesJson);
146
+ if (!Object.keys(slices).length) {
147
+ console.log("Empty slices file created.");
148
+ } else {
149
+ console.log(
150
+ `Slices file ${slicesFile} created successfully with ${
151
+ Object.keys(slices).length
152
+ } entries.`
153
+ );
154
+ }
155
+ if (outDir?.startsWith(tmpdir())) {
156
+ rmSync(outDir, { recursive: true });
157
+ }
158
+ }
159
+
160
+ function parseTasty(tastyAstFile) {
161
+ const astData = readFileSync(tastyAstFile, "utf-8");
162
+ let namesMode = false;
163
+ let treesMode = false;
164
+ let sourcePathsMode = false;
165
+ const literals = new Set();
166
+ const usedTypes = new Set();
167
+ const tags = new Set();
168
+ let sourceFile;
169
+ for (let line of astData.split("\n")) {
170
+ line = line.replace("\r", "").trim();
171
+ if (!line.length || line.startsWith("---")) {
172
+ continue;
173
+ }
174
+ if (line.startsWith("Names ") || line.startsWith("Names:")) {
175
+ namesMode = true;
176
+ }
177
+ if (line.startsWith("Trees ") || line.startsWith("Trees:")) {
178
+ namesMode = false;
179
+ treesMode = true;
180
+ }
181
+ if (line.startsWith("Positions ") || line.startsWith("positions:")) {
182
+ namesMode = false;
183
+ treesMode = false;
184
+ }
185
+ if (namesMode) {
186
+ // 3: api
187
+ if (line.includes(": ")) {
188
+ const literal = line.split(": ").pop().trim();
189
+ if (literal.length > 1) {
190
+ literals.add(literal);
191
+ }
192
+ }
193
+ }
194
+ if (treesMode && line.includes(" Signature(")) {
195
+ // 139: SELECTin(12) 38 [<init>[Signed Signature(List(play.api.mvc.MessagesControllerComponents),play.api.mvc.MessagesAbstractController) @<init>]]
196
+ const signatureTypes = line
197
+ .split(" Signature(")
198
+ .pop()
199
+ .split(") ")[0]
200
+ .replaceAll("List(", "")
201
+ .replaceAll(")", "")
202
+ .split(",");
203
+ for (let sig of signatureTypes) {
204
+ sig = sig.trim();
205
+ if (
206
+ sig.length > 3 &&
207
+ !sig.startsWith("scala.") &&
208
+ !sig.startsWith("java.") &&
209
+ !sig.startsWith("javax.inject.")
210
+ ) {
211
+ usedTypes.add(sig);
212
+ if (sig.startsWith("play.api.")) {
213
+ tags.add("framework");
214
+ }
215
+ if (
216
+ sig.startsWith("play.api.data.Form") ||
217
+ sig.startsWith("play.api.mvc.Request") ||
218
+ sig.startsWith("play.twirl.api")
219
+ ) {
220
+ tags.add("framework-input");
221
+ }
222
+ if (
223
+ sig.startsWith("play.twirl.api.Html") ||
224
+ sig.startsWith("play.api.mvc.Result") ||
225
+ sig.startsWith("play.api.mvc.Action")
226
+ ) {
227
+ tags.add("framework-output");
228
+ }
229
+ if (
230
+ sig.startsWith("play.api.routing.") ||
231
+ sig.startsWith("play.core.routing") ||
232
+ sig.startsWith("router.RoutesPrefix")
233
+ ) {
234
+ tags.add("framework-route");
235
+ }
236
+ if (
237
+ sig.startsWith("slick.sql.") ||
238
+ sig.startsWith("play.db.") ||
239
+ sig.startsWith("slick.jdbc.")
240
+ ) {
241
+ tags.add("database");
242
+ }
243
+ }
244
+ }
245
+ }
246
+ if (line.includes("source paths:")) {
247
+ sourcePathsMode = true;
248
+ }
249
+ if (sourcePathsMode) {
250
+ if (line.includes(" [") && line.endsWith("]")) {
251
+ sourceFile = line.split(" [").pop().replace(/]/g, "");
252
+ sourcePathsMode = false;
253
+ } else if (line.includes(".scala") && line.includes(": ")) {
254
+ sourceFile = line.split(": ").pop().trim();
255
+ sourcePathsMode = false;
256
+ }
257
+ }
258
+ if (!namesMode && !treesMode && !sourcePathsMode) {
259
+ continue;
260
+ }
261
+ }
262
+ if (sourceFile?.includes("target")) {
263
+ tags.add("generated");
264
+ }
265
+ return {
266
+ sourceFile,
267
+ tags: Array.from(tags).sort(),
268
+ usedTypes: Array.from(usedTypes).sort(),
269
+ literals: Array.from(literals)
270
+ };
271
+ }
272
+
273
+ function parseConfigFiles(configFiles) {
274
+ const configMetadata = { routes: [] };
275
+ for (const aconfig of configFiles) {
276
+ if (aconfig.endsWith("routes")) {
277
+ const routes = parseRoutes(aconfig);
278
+ if (routes?.length) {
279
+ for (const aroute of routes) {
280
+ let duplicate = false;
281
+ for (const exisRoute of configMetadata.routes) {
282
+ if (
283
+ exisRoute.method === aroute.method &&
284
+ exisRoute.pattern === aroute.pattern
285
+ ) {
286
+ if (
287
+ exisRoute.controllerMethod &&
288
+ exisRoute.controllerMethod === aroute.controllerMethod
289
+ ) {
290
+ duplicate = true;
291
+ continue;
292
+ }
293
+ }
294
+ }
295
+ if (!duplicate) {
296
+ configMetadata["routes"].push(aroute);
297
+ }
298
+ }
299
+ }
300
+ }
301
+ }
302
+ if (configMetadata.routes.length) {
303
+ console.log("Found", configMetadata.routes.length, "routes.");
304
+ }
305
+ return configMetadata;
306
+ }
307
+
308
+ function parseRoutes(routesFile) {
309
+ const routes = [];
310
+ const routesData = readFileSync(routesFile, "utf-8");
311
+ for (let aline of routesData.split("\n")) {
312
+ aline = aline.replace("\r", "").trim();
313
+ if (aline.startsWith("#") || aline.startsWith("+")) {
314
+ continue;
315
+ }
316
+ const tmpA = aline.split(/\s+/);
317
+ if (tmpA.length < 2) {
318
+ continue;
319
+ }
320
+ // Ignore static assets
321
+ if (["/webjars"].includes(tmpA[1])) {
322
+ continue;
323
+ }
324
+ if (
325
+ [
326
+ "GET",
327
+ "PATCH",
328
+ "POST",
329
+ "OPTIONS",
330
+ "HEAD",
331
+ "DELETE",
332
+ "PUT",
333
+ "->"
334
+ ].includes(tmpA[0].toUpperCase())
335
+ ) {
336
+ let controllerMethod = tmpA.length > 2 ? tmpA[2] : undefined;
337
+ if (controllerMethod.includes("(")) {
338
+ controllerMethod = controllerMethod.split("(")[0];
339
+ }
340
+ // Exclude webjars
341
+ if (controllerMethod.startsWith("webjars.")) {
342
+ continue;
343
+ }
344
+ // Handle wildcards
345
+ if (tmpA[0] === "->") {
346
+ // We now need to parse a method called "routes" in the controllerMethod to identify the list of http methods
347
+ // Let's keep things simple for now
348
+ for (const m of ["GET", "PATCH", "POST", "DELETE", "PUT"]) {
349
+ routes.push({
350
+ method: m,
351
+ pattern: tmpA[1],
352
+ controllerMethod
353
+ });
354
+ }
355
+ } else {
356
+ routes.push({
357
+ method: tmpA[0],
358
+ pattern: tmpA[1],
359
+ controllerMethod
360
+ });
361
+ }
362
+ }
363
+ }
364
+ return routes;
365
+ }
package/utils.mjs CHANGED
@@ -28,7 +28,7 @@ const IGNORE_DIRS = process.env.ASTGEN_IGNORE_DIRS
28
28
 
29
29
  const IGNORE_FILE_PATTERN = new RegExp(
30
30
  process.env.ASTGEN_IGNORE_FILE_PATTERN ||
31
- "(conf|config|test|spec|min|three|\\.d)\\.(js|ts|jsx|tsx)$",
31
+ "(test|spec|min|three|\\.d)\\.(js|ts|jsx|tsx)$",
32
32
  "i"
33
33
  );
34
34
 
@@ -69,7 +69,12 @@ export const getAllFiles = (dir, extn, files, result, regex) => {
69
69
  // ignore
70
70
  }
71
71
  } else {
72
- if (regex.test(fileWithDir)) {
72
+ if (
73
+ regex.test(fileWithDir) ||
74
+ (extn &&
75
+ !extn.includes(".") &&
76
+ fileWithDir.toLowerCase().endsWith(extn.toLowerCase()))
77
+ ) {
73
78
  result.push(fileWithDir);
74
79
  }
75
80
  }
@@ -112,3 +117,23 @@ export const detectRuby = (versionNeeded) => {
112
117
  }
113
118
  return true;
114
119
  };
120
+
121
+ export const detectScala = () => {
122
+ let result = spawnSync(process.env.SCALA_CMD || "scala", ["--version"], {
123
+ encoding: "utf-8"
124
+ });
125
+ if (result.status !== 0 || result.error) {
126
+ return false;
127
+ }
128
+ return true;
129
+ };
130
+
131
+ export const detectScalac = () => {
132
+ let result = spawnSync(process.env.SCALAC_CMD || "scalac", ["--version"], {
133
+ encoding: "utf-8"
134
+ });
135
+ if (result.status !== 0 || result.error) {
136
+ return false;
137
+ }
138
+ return true;
139
+ };