@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.
- package/package.json +5 -4
- package/phpastgen.js +1 -5
- package/plugins/autoload.php +1 -4
- package/plugins/bin/atom +1 -1
- package/plugins/bin/atom.bat +1 -1
- package/plugins/bin/bundler +1 -1
- package/plugins/bin/ruby_ast_gen +1 -1
- package/plugins/composer/InstalledVersions.php +19 -1
- package/plugins/composer/installed.php +6 -6
- package/plugins/lib/com.github.javaparser.javaparser-core-3.26.4.jar +0 -0
- package/plugins/lib/com.github.javaparser.javaparser-symbol-solver-core-3.26.4.jar +0 -0
- package/plugins/lib/com.google.errorprone.error_prone_annotations-2.36.0.jar +0 -0
- package/plugins/lib/{com.google.guava.guava-33.3.1-jre.jar → com.google.guava.guava-33.4.0-jre.jar} +0 -0
- package/plugins/lib/commons-io.commons-io-2.19.0.jar +0 -0
- package/plugins/lib/io.appthreat.atom-2.1.15-classpath.jar +0 -0
- package/plugins/lib/{io.appthreat.atom-2.1.13.jar → io.appthreat.atom-2.1.15.jar} +0 -0
- package/plugins/lib/{io.appthreat.c2cpg_3-2.3.3.jar → io.appthreat.c2cpg_3-2.3.6.jar} +0 -0
- package/plugins/lib/{io.appthreat.dataflowengineoss_3-2.3.3.jar → io.appthreat.dataflowengineoss_3-2.3.6.jar} +0 -0
- package/plugins/lib/{io.appthreat.javasrc2cpg_3-2.3.3.jar → io.appthreat.javasrc2cpg_3-2.3.6.jar} +0 -0
- package/plugins/lib/{io.appthreat.jimple2cpg_3-2.3.3.jar → io.appthreat.jimple2cpg_3-2.3.6.jar} +0 -0
- package/plugins/lib/{io.appthreat.jssrc2cpg_3-2.3.3.jar → io.appthreat.jssrc2cpg_3-2.3.6.jar} +0 -0
- package/plugins/lib/{io.appthreat.php2atom_3-2.3.3.jar → io.appthreat.php2atom_3-2.3.6.jar} +0 -0
- package/plugins/lib/{io.appthreat.pysrc2cpg_3-2.3.3.jar → io.appthreat.pysrc2cpg_3-2.3.6.jar} +0 -0
- package/plugins/lib/{io.appthreat.ruby2atom_3-2.3.3.jar → io.appthreat.ruby2atom_3-2.3.6.jar} +0 -0
- package/plugins/lib/{io.appthreat.semanticcpg_3-2.3.3.jar → io.appthreat.semanticcpg_3-2.3.6.jar} +0 -0
- package/plugins/lib/{io.appthreat.x2cpg_3-2.3.3.jar → io.appthreat.x2cpg_3-2.3.6.jar} +0 -0
- package/plugins/lib/io.circe.circe-core_3-0.14.12.jar +0 -0
- package/plugins/lib/io.circe.circe-generic_3-0.14.12.jar +0 -0
- package/plugins/lib/io.circe.circe-jawn_3-0.14.12.jar +0 -0
- package/plugins/lib/io.circe.circe-numbers_3-0.14.12.jar +0 -0
- package/plugins/lib/io.circe.circe-parser_3-0.14.12.jar +0 -0
- package/plugins/lib/{net.java.dev.jna.jna-5.15.0.jar → net.java.dev.jna.jna-5.16.0.jar} +0 -0
- package/plugins/lib/{org.eclipse.cdt.core_8.4.201.202406290148.jar → org.eclipse.cdt.core_9.0.0.202502260255.jar} +0 -0
- 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
- 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
- package/plugins/lib/org.eclipse.platform.org.eclipse.core.runtime-3.33.0.jar +0 -0
- 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
- 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
- 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
- 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
- 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
- package/plugins/lib/{org.ow2.asm.asm-9.7.1.jar → org.ow2.asm.asm-9.8.jar} +0 -0
- package/plugins/lib/{org.ow2.asm.asm-analysis-9.7.1.jar → org.ow2.asm.asm-analysis-9.8.jar} +0 -0
- package/plugins/lib/{org.ow2.asm.asm-tree-9.7.1.jar → org.ow2.asm.asm-tree-9.8.jar} +0 -0
- package/plugins/lib/org.ow2.asm.asm-util-9.8.jar +0 -0
- package/plugins/lib/{org.projectlombok.lombok-1.18.36.jar → org.projectlombok.lombok-1.18.38.jar} +0 -0
- 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
- package/plugins/lib/{org.slf4j.slf4j-api-2.0.16.jar → org.slf4j.slf4j-api-2.0.17.jar} +0 -0
- package/plugins/lib/org.slf4j.slf4j-nop-2.0.17.jar +0 -0
- package/plugins/lib/{org.typelevel.cats-core_3-2.12.0.jar → org.typelevel.cats-core_3-2.13.0.jar} +0 -0
- package/plugins/lib/org.typelevel.cats-kernel_3-2.13.0.jar +0 -0
- package/plugins/rubyastgen/Gemfile +2 -2
- package/plugins/rubyastgen/Gemfile.lock +8 -8
- package/plugins/rubyastgen/bundle/bundler/setup.rb +3 -3
- package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-d8b6ffa44317 → ruby_ast_gen-d8b5c5740b5a}/Gemfile +3 -3
- 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
- package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-d8b6ffa44317 → ruby_ast_gen-d8b5c5740b5a}/ruby_ast_gen.gemspec +5 -5
- package/plugins/rubyastgen/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/racc-1.8.1/gem_make.out +6 -6
- package/plugins/rubyastgen/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/racc-1.8.1/racc/cparse.so +0 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{ast-2.4.2 → ast-2.4.3}/lib/ast/node.rb +1 -1
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{ast-2.4.2 → ast-2.4.3}/lib/ast/processor.rb +1 -1
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{ast-2.4.2 → ast-2.4.3}/lib/ast/sexp.rb +2 -2
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{ast-2.4.2 → ast-2.4.3}/lib/ast.rb +3 -3
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/ext/racc/cparse/Makefile +3 -3
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc/cparse.so +0 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/specifications/{ast-2.4.2.gemspec → ast-2.4.3.gemspec} +7 -8
- package/plugins/rubyastgen/bundle/ruby/3.4.0/specifications/ostruct-0.6.1.gemspec +1 -1
- package/plugins/rubyastgen/bundle/ruby/3.4.0/specifications/{parser-3.3.7.1.gemspec → parser-3.3.8.0.gemspec} +6 -6
- package/plugins/rubyastgen/bundle/ruby/3.4.0/specifications/racc-1.8.1.gemspec +1 -1
- package/rbastgen.js +2 -6
- package/scalasem.js +365 -0
- package/utils.mjs +27 -2
- package/plugins/lib/com.github.javaparser.javaparser-core-3.26.3.jar +0 -0
- package/plugins/lib/com.github.javaparser.javaparser-symbol-solver-core-3.26.3.jar +0 -0
- package/plugins/lib/com.google.errorprone.error_prone_annotations-2.28.0.jar +0 -0
- package/plugins/lib/commons-io.commons-io-2.18.0.jar +0 -0
- package/plugins/lib/io.appthreat.atom-2.1.13-classpath.jar +0 -0
- package/plugins/lib/io.circe.circe-core_3-0.14.10.jar +0 -0
- package/plugins/lib/io.circe.circe-generic_3-0.14.10.jar +0 -0
- package/plugins/lib/io.circe.circe-jawn_3-0.14.10.jar +0 -0
- package/plugins/lib/io.circe.circe-numbers_3-0.14.10.jar +0 -0
- package/plugins/lib/io.circe.circe-parser_3-0.14.10.jar +0 -0
- package/plugins/lib/org.eclipse.platform.org.eclipse.core.runtime-3.32.0.jar +0 -0
- package/plugins/lib/org.ow2.asm.asm-util-9.7.1.jar +0 -0
- package/plugins/lib/org.slf4j.slf4j-nop-2.0.16.jar +0 -0
- package/plugins/lib/org.typelevel.cats-kernel_3-2.12.0.jar +0 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.7.1/lib/parser/ruby28.rb +0 -8047
- /package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-d8b6ffa44317 → ruby_ast_gen-d8b5c5740b5a}/.rspec +0 -0
- /package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-d8b6ffa44317 → ruby_ast_gen-d8b5c5740b5a}/LICENSE.txt +0 -0
- /package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-d8b6ffa44317 → ruby_ast_gen-d8b5c5740b5a}/README.md +0 -0
- /package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-d8b6ffa44317 → ruby_ast_gen-d8b5c5740b5a}/Rakefile +0 -0
- /package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-d8b6ffa44317 → ruby_ast_gen-d8b5c5740b5a}/bin/console +0 -0
- /package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-d8b6ffa44317 → ruby_ast_gen-d8b5c5740b5a}/bin/setup +0 -0
- /package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-d8b6ffa44317 → ruby_ast_gen-d8b5c5740b5a}/exe/ruby_ast_gen +0 -0
- /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
- /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
- /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
- /package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-d8b6ffa44317 → ruby_ast_gen-d8b5c5740b5a}/spec/spec_helper.rb +0 -0
- /package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-d8b6ffa44317 → ruby_ast_gen-d8b5c5740b5a}/update_version.rb +0 -0
- /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{ast-2.4.2 → ast-2.4.3}/LICENSE.MIT +0 -0
- /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{ast-2.4.2 → ast-2.4.3}/README.YARD.md +0 -0
- /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{ast-2.4.2 → ast-2.4.3}/lib/ast/processor/mixin.rb +0 -0
- /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/LICENSE.txt +0 -0
- /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/bin/ruby-parse +0 -0
- /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/bin/ruby-rewrite +0 -0
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{parser-3.3.7.1 → parser-3.3.8.0}/lib/parser.rb +0 -0
- /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
|
|
@@ -13,12 +13,12 @@ NULLCMD = :
|
|
|
13
13
|
#### Start of system configuration section. ####
|
|
14
14
|
|
|
15
15
|
srcdir = .
|
|
16
|
-
topdir = /opt/hostedtoolcache/Ruby/3.4.
|
|
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.
|
|
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.
|
|
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)
|
|
Binary file
|
package/plugins/rubyastgen/bundle/ruby/3.4.0/specifications/{ast-2.4.2.gemspec → ast-2.4.3.gemspec}
RENAMED
|
@@ -1,28 +1,27 @@
|
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
|
2
|
-
# stub: ast 2.4.
|
|
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.
|
|
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 = "
|
|
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
|
|
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.
|
|
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, ["~>
|
|
24
|
-
s.add_development_dependency(%q<
|
|
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])
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
|
2
|
-
# stub: parser 3.3.
|
|
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.
|
|
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.
|
|
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-
|
|
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.
|
|
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.
|
|
23
|
+
s.installed_by_version = "3.6.7".freeze
|
|
24
24
|
|
|
25
25
|
s.specification_version = 4
|
|
26
26
|
|
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.
|
|
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
|
-
"(
|
|
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 (
|
|
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
|
+
};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|