diff --git a/.circleci/config.yml b/.circleci/config.yml index 749f5581..7293b4ef 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -5,7 +5,7 @@ orbs: executors: bibliothecary: docker: - - image: cimg/ruby:3.0.7 + - image: cimg/ruby:3.2.4 working_directory: ~/bibliothecary diff --git a/.ruby-version b/.ruby-version index 2451c27c..351227fc 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.0.7 +3.2.4 diff --git a/CHANGELOG.md b/CHANGELOG.md index 0b4c819a..fb3c5a6d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Removed +## [12.0.0] - 2025-01-27 + +### Removed + +- This is a MAJOR release in that it removes support for hackage, carthage, hex, clojar, and swiftpm + from Bibliothecary. We are no longer doing any network calls when using Bibliothecary and reimplementing + parsing for those file types natively is non-trivial. Patches welcome :-) + +### Changed + +- Rewrote conda and yarn parsers to be in process vs calling out over the network ## [11.0.1] - 2024-12-20 diff --git a/bibliothecary.gemspec b/bibliothecary.gemspec index 19daf2ba..59d36590 100644 --- a/bibliothecary.gemspec +++ b/bibliothecary.gemspec @@ -31,7 +31,6 @@ Gem::Specification.new do |spec| spec.add_development_dependency "rake", "~> 12.0" spec.add_development_dependency "rspec", "~> 3.0" spec.add_development_dependency "webmock" - spec.add_development_dependency "vcr" spec.add_development_dependency "rubocop" spec.add_development_dependency "rubocop-rails" end diff --git a/lib/bibliothecary/configuration.rb b/lib/bibliothecary/configuration.rb index 52a35f73..9e1fcfe2 100644 --- a/lib/bibliothecary/configuration.rb +++ b/lib/bibliothecary/configuration.rb @@ -5,7 +5,6 @@ class Configuration attr_accessor :carthage_parser_host attr_accessor :clojars_parser_host attr_accessor :mix_parser_host - attr_accessor :yarn_parser_host attr_accessor :conda_parser_host attr_accessor :swift_parser_host attr_accessor :cabal_parser_host @@ -16,8 +15,6 @@ def initialize @carthage_parser_host = "https://carthage.libraries.io" @clojars_parser_host = "https://clojars.libraries.io" @mix_parser_host = "https://mix.libraries.io" - @yarn_parser_host = "https://yarn-parser.libraries.io" - @conda_parser_host = "https://conda-parser.libraries.io" @swift_parser_host = "http://swift.libraries.io" @cabal_parser_host = "http://cabal.libraries.io" end diff --git a/lib/bibliothecary/parsers/carthage.rb b/lib/bibliothecary/parsers/carthage.rb deleted file mode 100644 index 8310668f..00000000 --- a/lib/bibliothecary/parsers/carthage.rb +++ /dev/null @@ -1,52 +0,0 @@ -module Bibliothecary - module Parsers - class Carthage - include Bibliothecary::Analyser - - def self.mapping - { - match_filename("Cartfile") => { - kind: "manifest", - parser: :parse_cartfile, - }, - match_filename("Cartfile.private") => { - kind: "manifest", - parser: :parse_cartfile_private, - }, - match_filename("Cartfile.resolved") => { - kind: "lockfile", - parser: :parse_cartfile_resolved, - }, - } - end - - add_multi_parser(Bibliothecary::MultiParsers::DependenciesCSV) - - def self.parse_cartfile(file_contents, options: {}) # rubocop:disable Lint/UnusedMethodArgument - map_dependencies(file_contents, "cartfile") - end - - def self.parse_cartfile_private(file_contents, options: {}) # rubocop:disable Lint/UnusedMethodArgument - map_dependencies(file_contents, "cartfile.private") - end - - def self.parse_cartfile_resolved(file_contents, options: {}) # rubocop:disable Lint/UnusedMethodArgument - map_dependencies(file_contents, "cartfile.resolved") - end - - def self.map_dependencies(manifest, path) - response = Typhoeus.post("#{Bibliothecary.configuration.carthage_parser_host}/#{path}", params: { body: manifest }) - raise Bibliothecary::RemoteParsingError.new("Http Error #{response.response_code} when contacting: #{Bibliothecary.configuration.carthage_parser_host}/#{path}", response.response_code) unless response.success? - json = JSON.parse(response.body) - - json.map do |dependency| - Dependency.new( - name: dependency["name"], - requirement: dependency["version"], - type: dependency["type"], - ) - end - end - end - end -end diff --git a/lib/bibliothecary/parsers/clojars.rb b/lib/bibliothecary/parsers/clojars.rb deleted file mode 100644 index c49f96e4..00000000 --- a/lib/bibliothecary/parsers/clojars.rb +++ /dev/null @@ -1,38 +0,0 @@ -require "json" -require "typhoeus" - -module Bibliothecary - module Parsers - class Clojars - include Bibliothecary::Analyser - - def self.mapping - { - match_filename("project.clj") => { - kind: "manifest", - parser: :parse_manifest, - }, - } - end - - add_multi_parser(Bibliothecary::MultiParsers::DependenciesCSV) - - def self.parse_manifest(file_contents, options: {}) # rubocop:disable Lint/UnusedMethodArgument - response = Typhoeus.post("#{Bibliothecary.configuration.clojars_parser_host}/project.clj", body: file_contents) - raise Bibliothecary::RemoteParsingError.new("Http Error #{response.response_code} when contacting: #{Bibliothecary.configuration.clojars_parser_host}/project.clj", response.response_code) unless response.success? - json = JSON.parse response.body - index = json.index("dependencies") - - return [] unless index; - dependencies = json[index + 1] - dependencies.map do |dependency| - Dependency.new( - name: dependency[0], - requirement: dependency[1], - type: "runtime", - ) - end - end - end - end -end diff --git a/lib/bibliothecary/parsers/conda.rb b/lib/bibliothecary/parsers/conda.rb index e77013f5..e815536f 100644 --- a/lib/bibliothecary/parsers/conda.rb +++ b/lib/bibliothecary/parsers/conda.rb @@ -1,4 +1,4 @@ -require "json" +require "yaml" module Bibliothecary module Parsers @@ -15,14 +15,6 @@ def self.mapping parser: :parse_conda, kind: "manifest", }, - match_filename("environment.yml.lock") => { - parser: :parse_conda_lockfile, - kind: "lockfile", - }, - match_filename("environment.yaml.lock") => { - parser: :parse_conda_lockfile, - kind: "lockfile", - }, } end @@ -31,34 +23,63 @@ def self.mapping add_multi_parser(Bibliothecary::MultiParsers::Spdx) def self.parse_conda(file_contents, options: {}) # rubocop:disable Lint/UnusedMethodArgument - parse_conda_with_kind(file_contents, "manifest") - end + manifest = YAML.load(file_contents) + deps = manifest.dig("dependencies") + deps.map do |dep| + next unless dep.is_a? String # only deal with strings to skip parsing pip stuff - def self.parse_conda_lockfile(file_contents, options: {}) # rubocop:disable Lint/UnusedMethodArgument - parse_conda_with_kind(file_contents, "lockfile") + parsed = parse_name_requirement_from_matchspec(dep) + Dependency.new(**parsed.merge(type: "runtime")) + end.compact end - def self.parse_conda_with_kind(info, kind) - dependencies = call_conda_parser_web(info, kind)[kind.to_sym] - dependencies.map { |dep_kv| Dependency.new(**dep_kv.merge(type: "runtime")) } - end + def self.parse_name_requirement_from_matchspec(ms) + # simplified version of the implementation in conda to handle what we care about + # https://github.com/conda/conda/blob/main/conda/models/match_spec.py#L598 + # (channel(/subdir):(namespace):)name(version(build))[key1=value1,key2=value2] + return if ms.end_with?("@") - private_class_method def self.call_conda_parser_web(file_contents, kind) - host = Bibliothecary.configuration.conda_parser_host - response = Typhoeus.post( - "#{host}/parse", - headers: { - ContentType: "multipart/form-data", - }, - body: { - file: file_contents, - # Unfortunately we do not get the filename in the mapping parsers, so hardcoding the file name depending on the kind - filename: kind == "manifest" ? "environment.yml" : "environment.yml.lock", - } - ) - raise Bibliothecary::RemoteParsingError.new("Http Error #{response.response_code} when contacting: #{host}/parse", response.response_code) unless response.success? + # strip off comments and optional features + ms = ms.split(/#/, 2).first + ms = ms.split(/ if /, 2).first + + # strip off brackets + ms = ms.match(/^(.*)(?:\[(.*)\])?$/)[1] - JSON.parse(response.body, symbolize_names: true) + # strip off any parens + ms = ms.match(/^(.*)(?:(\(.*\)))?$/)[1] + + # deal with channel and namespace, I wish there was rsplit in ruby + split = ms.reverse.split(":", 2) + ms = split.last.reverse + + # split the name from the version/build combo + matches = ms.match(/([^ =<>!~]+)?([>~])(?:[ =])([^-=,|<>~]+?))?$/) + version = if matches + matches[1].strip + else + version_build.strip + end + end + # if it's an exact requirement, lose the = + if version&.start_with?("==") + version = version[2..] + elsif version&.start_with?("=") + version = version[1..] + end + + return { + name: name, + requirement: version || "", # NOTE: this ignores build info + } end end end diff --git a/lib/bibliothecary/parsers/go.rb b/lib/bibliothecary/parsers/go.rb index 727d1809..4ef6d5b7 100644 --- a/lib/bibliothecary/parsers/go.rb +++ b/lib/bibliothecary/parsers/go.rb @@ -105,7 +105,7 @@ def self.parse_glide_yaml(file_contents, options: {}) # rubocop:disable Lint/Unu end def self.parse_glide_lockfile(file_contents, options: {}) # rubocop:disable Lint/UnusedMethodArgument - manifest = YAML.load file_contents + manifest = YAML.load(file_contents, permitted_classes: [Time]) map_dependencies(manifest, "imports", "name", "version", "runtime") end diff --git a/lib/bibliothecary/parsers/hackage.rb b/lib/bibliothecary/parsers/hackage.rb deleted file mode 100644 index 3b5a08b3..00000000 --- a/lib/bibliothecary/parsers/hackage.rb +++ /dev/null @@ -1,53 +0,0 @@ -require "json" -require "deb_control" - -module Bibliothecary - module Parsers - class Hackage - include Bibliothecary::Analyser - - def self.mapping - { - match_extension(".cabal") => { - kind: "manifest", - parser: :parse_cabal, - }, - match_extension("cabal.config") => { - kind: "lockfile", - parser: :parse_cabal_config, - }, - } - end - - add_multi_parser(Bibliothecary::MultiParsers::CycloneDX) - add_multi_parser(Bibliothecary::MultiParsers::DependenciesCSV) - add_multi_parser(Bibliothecary::MultiParsers::Spdx) - - def self.parse_cabal(file_contents, options: {}) # rubocop:disable Lint/UnusedMethodArgument - headers = { - "Content-Type" => "text/plain;charset=utf-8", - } - - response = Typhoeus.post("#{Bibliothecary.configuration.cabal_parser_host}/parse", headers: headers, body: file_contents) - - raise Bibliothecary::RemoteParsingError.new("Http Error #{response.response_code} when contacting: #{Bibliothecary.configuration.cabal_parser_host}/parse", response.response_code) unless response.success? - JSON - .parse(response.body, symbolize_names: true) - .map { |dep_kvs| Dependency.new(**dep_kvs) } - end - - def self.parse_cabal_config(file_contents, options: {}) # rubocop:disable Lint/UnusedMethodArgument - manifest = DebControl::ControlFileBase.parse(file_contents) - deps = manifest.first["constraints"].delete("\n").split(",").map(&:strip) - deps.map do |dependency| - dep = dependency.delete("==").split(" ") - Dependency.new( - name: dep[0], - requirement: dep[1], - type: "runtime", - ) - end - end - end - end -end diff --git a/lib/bibliothecary/parsers/hex.rb b/lib/bibliothecary/parsers/hex.rb deleted file mode 100644 index b85433af..00000000 --- a/lib/bibliothecary/parsers/hex.rb +++ /dev/null @@ -1,54 +0,0 @@ -require "json" - -module Bibliothecary - module Parsers - class Hex - include Bibliothecary::Analyser - - def self.mapping - { - match_filename("mix.exs") => { - kind: "manifest", - parser: :parse_mix, - }, - match_filename("mix.lock") => { - kind: "lockfile", - parser: :parse_mix_lock, - }, - } - end - - add_multi_parser(Bibliothecary::MultiParsers::CycloneDX) - add_multi_parser(Bibliothecary::MultiParsers::DependenciesCSV) - add_multi_parser(Bibliothecary::MultiParsers::Spdx) - - def self.parse_mix(file_contents, options: {}) # rubocop:disable Lint/UnusedMethodArgument - response = Typhoeus.post("#{Bibliothecary.configuration.mix_parser_host}/", body: file_contents) - raise Bibliothecary::RemoteParsingError.new("Http Error #{response.response_code} when contacting: #{Bibliothecary.configuration.mix_parser_host}/", response.response_code) unless response.success? - json = JSON.parse response.body - - json.map do |name, version| - Dependency.new( - name: name, - requirement: version, - type: "runtime", - ) - end - end - - def self.parse_mix_lock(file_contents, options: {}) # rubocop:disable Lint/UnusedMethodArgument - response = Typhoeus.post("#{Bibliothecary.configuration.mix_parser_host}/lock", body: file_contents) - raise Bibliothecary::RemoteParsingError.new("Http Error #{response.response_code} when contacting: #{Bibliothecary.configuration.mix_parser_host}/", response.response_code) unless response.success? - json = JSON.parse response.body - - json.map do |name, info| - Dependency.new( - name: name, - requirement: info["version"], - type: "runtime", - ) - end - end - end - end -end diff --git a/lib/bibliothecary/parsers/npm.rb b/lib/bibliothecary/parsers/npm.rb index 88c0ae5f..7cd5205c 100644 --- a/lib/bibliothecary/parsers/npm.rb +++ b/lib/bibliothecary/parsers/npm.rb @@ -128,25 +128,74 @@ def self.parse_manifest(file_contents, options: {}) # rubocop:disable Lint/Unuse end def self.parse_yarn_lock(file_contents, options: {}) # rubocop:disable Lint/UnusedMethodArgument - response = Typhoeus.post("#{Bibliothecary.configuration.yarn_parser_host}/parse", body: file_contents) + dep_hash = if file_contents.match(/__metadata:/) + parse_v2_yarn_lock(file_contents) + else + parse_v1_yarn_lock(file_contents) + end - raise Bibliothecary::RemoteParsingError.new("Http Error #{response.response_code} when contacting: #{Bibliothecary.configuration.yarn_parser_host}/parse", response.response_code) unless response.success? + dep_hash.map do |dep| + Dependency.new( + name: dep[:name], + requirement: dep[:version], + type: "runtime", # lockfile doesn't tell us more about the type of dep + local: dep[:requirements]&.first&.start_with?("file:"), + ) + end + end - json = JSON.parse(response.body, symbolize_names: true) - json - .uniq - .reject do |dep| - dep[:requirement]&.include?("workspace") && dep[:version].include?("use.local") - end - .map do |dep| - Dependency.new( - name: dep[:name], - requirement: dep[:version], - type: dep[:type], - local: dep[:requirement]&.start_with?("file:"), - ) - end - end + # Returns a hash representation of the deps in yarn.lock, eg: + # [{ + # name: "foo", + # requirements: [["foo", "^1.0.0"], ["foo", "^1.0.1"]], + # version: "1.2.0", + # }, ...] + def self.parse_v1_yarn_lock(contents) + contents + .gsub(/^#.*/, "") + .strip + .split("\n\n") + .map do |chunk| + requirements = chunk + .lines + .find { |l| !l.start_with?(" ") && l.strip.end_with?(":") } # first line, eg: '"@bar/foo@1.0.0", "@bar/foo@^1.0.1":' + .strip + .gsub(/"|:$/, "") # don't need quotes or trailing colon + .split(",") # split the list of requirements + .map { |d| d.strip.split(/(? { - parser: :parse_conda, - kind: "lockfile", - }, - match_filename("environment.yaml.lock") => { - parser: :parse_conda, - kind: "lockfile", - }, } end diff --git a/lib/bibliothecary/parsers/swift_pm.rb b/lib/bibliothecary/parsers/swift_pm.rb deleted file mode 100644 index 2d45c2d1..00000000 --- a/lib/bibliothecary/parsers/swift_pm.rb +++ /dev/null @@ -1,35 +0,0 @@ -module Bibliothecary - module Parsers - class SwiftPM - include Bibliothecary::Analyser - - def self.mapping - { - match_filename("Package.swift", case_insensitive: true) => { - kind: "manifest", - parser: :parse_package_swift, - }, - } - end - - add_multi_parser(Bibliothecary::MultiParsers::CycloneDX) - add_multi_parser(Bibliothecary::MultiParsers::DependenciesCSV) - add_multi_parser(Bibliothecary::MultiParsers::Spdx) - - def self.parse_package_swift(file_contents, options: {}) # rubocop:disable Lint/UnusedMethodArgument - response = Typhoeus.post("#{Bibliothecary.configuration.swift_parser_host}/to-json", body: file_contents) - raise Bibliothecary::RemoteParsingError.new("Http Error #{response.response_code} when contacting: #{Bibliothecary.configuration.swift_parser_host}/to-json", response.response_code) unless response.success? - json = JSON.parse(response.body) - json["dependencies"].map do |dependency| - name = dependency["url"].gsub(/^https?:\/\//, "").gsub(/\.git$/,"") - version = "#{dependency['version']['lowerBound']} - #{dependency['version']['upperBound']}" - Dependency.new( - name: name, - requirement: version, - type: "runtime", - ) - end - end - end - end -end diff --git a/lib/bibliothecary/purl_util.rb b/lib/bibliothecary/purl_util.rb index e8935c3e..56c5eac0 100644 --- a/lib/bibliothecary/purl_util.rb +++ b/lib/bibliothecary/purl_util.rb @@ -13,11 +13,8 @@ class PurlUtil "conda" => :conda, "cran" => :cran, "gem" => :rubygems, - "hackage" => :hackage, - "hex" => :hex, "nuget" => :nuget, "pypi" => :pypi, - "swift" => :swift_pm, }.freeze diff --git a/lib/bibliothecary/version.rb b/lib/bibliothecary/version.rb index 40563fe9..b7cecafa 100644 --- a/lib/bibliothecary/version.rb +++ b/lib/bibliothecary/version.rb @@ -1,3 +1,3 @@ module Bibliothecary - VERSION = "11.0.1" + VERSION = "12.0.0" end diff --git a/spec/bibliothecary/configuration_spec.rb b/spec/bibliothecary/configuration_spec.rb index 1723330f..7fd3108e 100644 --- a/spec/bibliothecary/configuration_spec.rb +++ b/spec/bibliothecary/configuration_spec.rb @@ -6,28 +6,4 @@ it "should have a default list of ignored dirs" do expect(config.ignored_dirs).to eq([".git", "node_modules", "bower_components", "vendor", "dist"]) end - - it "should have a default host for carthage parser" do - expect(config.carthage_parser_host).to eq("https://carthage.libraries.io") - end - - it "should have a default host for clojars parser" do - expect(config.clojars_parser_host).to eq("https://clojars.libraries.io") - end - - it "should have a default host for mix parser" do - expect(config.mix_parser_host).to eq("https://mix.libraries.io") - end - - it "should have a default host for yarn parser" do - expect(config.yarn_parser_host).to eq("https://yarn-parser.libraries.io") - end - - it "should have a default host for swift parser" do - expect(config.swift_parser_host).to eq("http://swift.libraries.io") - end - - it "should have a default host for swift parser" do - expect(config.cabal_parser_host).to eq("http://cabal.libraries.io") - end end diff --git a/spec/bibliothecary_spec.rb b/spec/bibliothecary_spec.rb index b4881abf..4dc80392 100644 --- a/spec/bibliothecary_spec.rb +++ b/spec/bibliothecary_spec.rb @@ -9,8 +9,6 @@ expect(described_class.package_managers).to eq([ Bibliothecary::Parsers::Bower, Bibliothecary::Parsers::Cargo, - Bibliothecary::Parsers::Carthage, - Bibliothecary::Parsers::Clojars, Bibliothecary::Parsers::CocoaPods, Bibliothecary::Parsers::Conda, Bibliothecary::Parsers::CPAN, @@ -18,9 +16,7 @@ Bibliothecary::Parsers::Dub, Bibliothecary::Parsers::Elm, Bibliothecary::Parsers::Go, - Bibliothecary::Parsers::Hackage, Bibliothecary::Parsers::Haxelib, - Bibliothecary::Parsers::Hex, Bibliothecary::Parsers::Julia, Bibliothecary::Parsers::Maven, Bibliothecary::Parsers::Meteor, @@ -31,7 +27,6 @@ Bibliothecary::Parsers::Pypi, Bibliothecary::Parsers::Rubygems, Bibliothecary::Parsers::Shard, - Bibliothecary::Parsers::SwiftPM, ]) end @@ -135,7 +130,7 @@ related_paths: ["Gemfile", "Gemfile.lock"] }]) end - it "handles a complicated folder with many manifests", :vcr do + it "handles a complicated folder with many manifests" do # If we run the analysis in pwd, confusion about absolute vs. # relative paths is concealed because both work orig_pwd = Dir.pwd @@ -212,7 +207,7 @@ Bibliothecary.reset end - it "handles a complicated folder with many manifests", :vcr do + it "handles a complicated folder with many manifests" do # If we run the analysis in pwd, confusion about absolute vs. # relative paths is concealed because both work orig_pwd = Dir.pwd @@ -298,7 +293,7 @@ Bibliothecary.reset end - it "handles a dual-platformed file (pip/conda)", :vcr do + it "handles a dual-platformed file (pip/conda)" do # If we run the analysis in pwd, confusion about absolute vs. # relative paths is concealed because both work orig_pwd = Dir.pwd diff --git a/spec/parsers/carthage_spec.rb b/spec/parsers/carthage_spec.rb deleted file mode 100644 index f0101b5b..00000000 --- a/spec/parsers/carthage_spec.rb +++ /dev/null @@ -1,66 +0,0 @@ -require "spec_helper" - -describe Bibliothecary::Parsers::Carthage do - it "has a platform name" do - expect(described_class.platform_name).to eq("carthage") - end - - it "parses dependencies from Cartfile", :vcr do - expect(described_class.analyse_contents("Cartfile", load_fixture("Cartfile"))).to eq({ - platform: "carthage", - path: "Cartfile", - dependencies: [ - Bibliothecary::Dependency.new(name: "ReactiveCocoa/ReactiveCocoa", requirement: ">= 2.3.1", type: "runtime"), - Bibliothecary::Dependency.new(name: "Mantle/Mantle", requirement: "~> 1.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "jspahrsummers/libextobjc", requirement: "== 0.4.1", type: "runtime"), - Bibliothecary::Dependency.new(name: "jspahrsummers/xcconfigs", requirement: " ", type: "runtime"), - Bibliothecary::Dependency.new(name: "jspahrsummers/xcconfigs", requirement: "branch ", type: "runtime"), - Bibliothecary::Dependency.new(name: "https://enterprise.local/ghe/desktop/git-error-translations",requirement: " ",type: "runtime"), - Bibliothecary::Dependency.new(name: "https://enterprise.local/desktop/git-error-translations2.git",requirement: "development ",type: "runtime"), - Bibliothecary::Dependency.new(name: "file:///directory/to/project", requirement: "branch ", type: "runtime"), - ], - kind: "manifest", - success: true, - }) - end - - it "parses dependencies from Cartfile.private", :vcr do - expect(described_class.analyse_contents("Cartfile.private", load_fixture("Cartfile.private"))).to eq({ - platform: "carthage", - path: "Cartfile.private", - dependencies: [ - Bibliothecary::Dependency.new(name: "Quick/Quick", requirement: "~> 0.9", type: "development"), - Bibliothecary::Dependency.new(name: "Quick/Nimble", requirement: "~> 3.1", type: "development"), - Bibliothecary::Dependency.new(name: "jspahrsummers/xcconfigs",requirement: "ec5753493605deed7358dec5f9260f503d3ed650 ",type: "development"), - ], - kind: "manifest", - success: true, - }) - end - - it "parses dependencies from Cartfile.resolved", :vcr do - expect(described_class.analyse_contents("Cartfile.resolved", load_fixture("Cartfile.resolved"))).to eq({ - platform: "carthage", - path: "Cartfile.resolved", - dependencies: [ - Bibliothecary::Dependency.new(name: "thoughtbot/Argo", requirement: "v2.2.0 ", type: "runtime"), - Bibliothecary::Dependency.new(name: "Quick/Nimble", requirement: "v3.1.0 ", type: "runtime"), - Bibliothecary::Dependency.new(name: "jdhealy/PrettyColors", requirement: "v3.0.0 ", type: "runtime"), - Bibliothecary::Dependency.new(name: "Quick/Quick", requirement: "v0.9.1 ", type: "runtime"), - Bibliothecary::Dependency.new(name: "antitypical/Result", requirement: "1.0.2 ", type: "runtime"), - Bibliothecary::Dependency.new(name: "jspahrsummers/xcconfigs",requirement: "ec5753493605deed7358dec5f9260f503d3ed650 ",type: "runtime"), - Bibliothecary::Dependency.new(name: "Carthage/Commandant", requirement: "0.8.3 ", type: "runtime"), - Bibliothecary::Dependency.new(name: "ReactiveCocoa/ReactiveCocoa", requirement: "v4.0.1 ", type: "runtime"), - Bibliothecary::Dependency.new(name: "Carthage/ReactiveTask", requirement: "0.9.1 ", type: "runtime"), - ], - kind: "lockfile", - success: true, - }) - end - - it "matches valid manifest filepaths" do - expect(described_class.match?("Cartfile")).to be_truthy - expect(described_class.match?("Cartfile.private")).to be_truthy - expect(described_class.match?("Cartfile.resolved")).to be_truthy - end -end diff --git a/spec/parsers/clojars_spec.rb b/spec/parsers/clojars_spec.rb deleted file mode 100644 index 048041e6..00000000 --- a/spec/parsers/clojars_spec.rb +++ /dev/null @@ -1,27 +0,0 @@ -require "spec_helper" - -describe Bibliothecary::Parsers::Clojars do - it "has a platform name" do - expect(described_class.platform_name).to eq("clojars") - end - - it "parses dependencies from project.clj", :vcr do - expect(described_class.analyse_contents("project.clj", load_fixture("project.clj"))).to eq({ - platform: "clojars", - path: "project.clj", - dependencies: [ - Bibliothecary::Dependency.new(name: "org.clojure/clojure", requirement: "1.6.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "cheshire", requirement: "5.4.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "compojure", requirement: "1.3.2", type: "runtime"), - Bibliothecary::Dependency.new(name: "ring/ring-defaults", requirement: "0.1.2", type: "runtime"), - Bibliothecary::Dependency.new(name: "ring/ring-jetty-adapter", requirement: "1.2.1", type: "runtime"), - ], - kind: "manifest", - success: true, - }) - end - - it "matches valid manifest filepaths" do - expect(described_class.match?("project.clj")).to be_truthy - end -end diff --git a/spec/parsers/conda_spec.rb b/spec/parsers/conda_spec.rb index b8c9e8b3..1dce9164 100644 --- a/spec/parsers/conda_spec.rb +++ b/spec/parsers/conda_spec.rb @@ -5,7 +5,7 @@ expect(described_class.platform_name).to eq("conda") end - it "parses dependencies from environment.yml", :vcr do + it "parses dependencies from environment.yml" do expect(described_class.analyse_contents("environment.yml", load_fixture("environment.yml"))).to eq( { platform: "conda", @@ -29,47 +29,18 @@ ) end - it "parses dependencies from environment.yml.lock", :vcr do - expect(described_class.analyse_contents("environment.yml.lock", load_fixture("environment.yml"))).to eq( + it "parses dependencies from environment.yml ignoring pip" do + expect(described_class.analyse_contents("conda_with_pip/environment.yml", load_fixture("conda_with_pip/environment.yml"))).to eq( { - platform: "conda", - path: "environment.yml.lock", - dependencies: [ - Bibliothecary::Dependency.new(name: "_libgcc_mutex", requirement: "0.1", type: "runtime"), - Bibliothecary::Dependency.new(name: "beautifulsoup4", requirement: "4.7.1", type: "runtime"), - Bibliothecary::Dependency.new(name: "biopython", requirement: "1.74", type: "runtime"), - Bibliothecary::Dependency.new(name: "blas", requirement: "1.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "ca-certificates", requirement: "2019.8.28", type: "runtime"), - Bibliothecary::Dependency.new(name: "certifi", requirement: "2019.6.16", type: "runtime"), - Bibliothecary::Dependency.new(name: "intel-openmp", requirement: "2019.4", type: "runtime"), - Bibliothecary::Dependency.new(name: "libedit", requirement: "3.1.20181209", type: "runtime"), - Bibliothecary::Dependency.new(name: "libffi", requirement: "3.2.1", type: "runtime"), - Bibliothecary::Dependency.new(name: "libgcc-ng", requirement: "9.1.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "libgfortran-ng", requirement: "7.3.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "libstdcxx-ng", requirement: "9.1.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "mkl", requirement: "2019.4", type: "runtime"), - Bibliothecary::Dependency.new(name: "mkl-service", requirement: "2.3.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "mkl_fft", requirement: "1.0.14", type: "runtime"), - Bibliothecary::Dependency.new(name: "mkl_random", requirement: "1.1.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "ncurses", requirement: "6.1", type: "runtime"), - Bibliothecary::Dependency.new(name: "numpy", requirement: "1.16.4", type: "runtime"), - Bibliothecary::Dependency.new(name: "numpy-base", requirement: "1.16.4", type: "runtime"), - Bibliothecary::Dependency.new(name: "openssl", requirement: "1.1.1c", type: "runtime"), - Bibliothecary::Dependency.new(name: "pip", requirement: "19.2.3", type: "runtime"), - Bibliothecary::Dependency.new(name: "python", requirement: "3.7.3", type: "runtime"), - Bibliothecary::Dependency.new(name: "readline", requirement: "7.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "setuptools", requirement: "41.2.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "six", requirement: "1.12.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "soupsieve", requirement: "1.9.3", type: "runtime"), + platform: "conda", + path: "conda_with_pip/environment.yml", + dependencies: [ + Bibliothecary::Dependency.new(name: "pip", requirement: "", type: "runtime"), Bibliothecary::Dependency.new(name: "sqlite", requirement: "3.29.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "tk", requirement: "8.6.8", type: "runtime"), - Bibliothecary::Dependency.new(name: "wheel", requirement: "0.33.6", type: "runtime"), - Bibliothecary::Dependency.new(name: "xz", requirement: "5.2.4", type: "runtime"), - Bibliothecary::Dependency.new(name: "zlib", requirement: "1.2.11", type: "runtime"), - ], - kind: "lockfile", - success: true, - } + ], + kind: "manifest", + success: true, + } ) end @@ -80,4 +51,27 @@ it "doesn't match invalid manifest filepaths" do expect(described_class.match?("test/foo/aenvironment.yml")).to be_falsey end + + describe "matchspecs" do + it "parses name and requirements" do + examples = [ + ["nltk=3.0.0=np18py27_0", "nltk", "3.0.0"], + ["nltk=3.0.0", "nltk", "3.0.0"], + ["nltk==3.0.0=np18py27_0", "nltk", "3.0.0"], + ["nltk==3.0.0", "nltk", "3.0.0"], + ["nltk", "nltk", ""], + ["yaml>=3.0=py27_0", "yaml", ">=3.0"], + ["yaml>=3.0", "yaml", ">=3.0"], + ["numpy 1.8", "numpy", "1.8"], + ["numpy 1.8*", "numpy", "1.8*"], + ["numpy >=1.8,<2", "numpy", ">=1.8,<2"], + ["numpy 1.8 ppy27_0", "numpy", "1.8"], + ["numpy >=1.8,<2|1.9", "numpy", ">=1.8,<2|1.9"], + ] + + examples.each do |ex| + expect(described_class.parse_name_requirement_from_matchspec(ex[0])).to eq({"name": ex[1], "requirement": ex[2]}) + end + end + end end diff --git a/spec/parsers/hackage_spec.rb b/spec/parsers/hackage_spec.rb deleted file mode 100644 index dc9808a7..00000000 --- a/spec/parsers/hackage_spec.rb +++ /dev/null @@ -1,176 +0,0 @@ -require "spec_helper" - -describe Bibliothecary::Parsers::Hackage do - it "has a platform name" do - expect(described_class.platform_name).to eq("hackage") - end - - it "matches valid manifest filepaths" do - expect(described_class.match?("cabal-parser.cabal")).to be_truthy - end - - it "doesn't match invalid manifest filepaths" do - expect(described_class.match?("cabal.nix")).to be_falsey - expect(described_class.match?("cabal-parser.nix")).to be_falsey - expect(described_class.match?("cabal.sandbox.config")).to be_falsey - expect(described_class.match?("ChangeLog.md")).to be_falsey - expect(described_class.match?("CODE_OF_CONDUCT.md")).to be_falsey - expect(described_class.match?("default.nix")).to be_falsey - expect(described_class.match?("dist")).to be_falsey - expect(described_class.match?("docker-compose.yml")).to be_falsey - expect(described_class.match?("Dockerfile")).to be_falsey - expect(described_class.match?("LICENSE")).to be_falsey - expect(described_class.match?("README.md")).to be_falsey - expect(described_class.match?("Setup.hs")).to be_falsey - expect(described_class.match?("shell.nix")).to be_falsey - expect(described_class.match?("src")).to be_falsey - expect(described_class.match?("test")).to be_falsey - end - - it "parses dependencies from *.cabal files", :vcr do - expect(described_class.analyse_contents("example.cabal", load_fixture("example.cabal"))).to eq({ - platform: "hackage", - path: "example.cabal", - dependencies: [ - Bibliothecary::Dependency.new(requirement: "==1.1.*", name: "aeson", type: "runtime"), - Bibliothecary::Dependency.new(requirement: ">=4.9 && <4.11", name: "base", type: "runtime"), - Bibliothecary::Dependency.new(requirement: "==2.0.*", name: "Cabal", type: "runtime"), - Bibliothecary::Dependency.new(requirement: "==1.3.*", name: "envy", type: "runtime"), - Bibliothecary::Dependency.new(requirement: "==1.1.*", name: "pretty", type: "runtime"), - Bibliothecary::Dependency.new(requirement: "==0.11.*", name: "servant-server", type: "runtime"), - Bibliothecary::Dependency.new(requirement: "==1.2.*", name: "text", type: "runtime"), - Bibliothecary::Dependency.new(requirement: "==1.0.*", name: "utf8-string", type: "runtime"), - Bibliothecary::Dependency.new(requirement: "==3.2.*", name: "warp", type: "runtime"), - Bibliothecary::Dependency.new(requirement: "==2.4.*", name: "hspec-discover", type: "build"), - Bibliothecary::Dependency.new(requirement: "==1.1.*", name: "aeson", type: "test"), - Bibliothecary::Dependency.new(requirement: ">=4.9 && <4.11", name: "base", type: "test"), - Bibliothecary::Dependency.new(requirement: "==0.10.*", name: "bytestring", type: "test"), - Bibliothecary::Dependency.new(requirement: "==2.0.*", name: "Cabal", type: "test"), - Bibliothecary::Dependency.new(requirement: "==2.4.*", name: "hspec", type: "test"), - Bibliothecary::Dependency.new(requirement: "==1.1.*", name: "pretty", type: "test"), - Bibliothecary::Dependency.new(requirement: "==1.2.*", name: "text", type: "test"), - ], - kind: "manifest", - success: true, - }) - end - - it "parses dependencies from cabal.config files" do - expect(described_class.analyse_contents("cabal.config", load_fixture("cabal.config"))).to eq({ - platform: "hackage", - path: "cabal.config", - dependencies: [ - Bibliothecary::Dependency.new(name: "Cabal", requirement: "2.0.1.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "aeson", requirement: "1.1.2.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "ansi-terminal", requirement: "0.8", type: "runtime"), - Bibliothecary::Dependency.new(name: "ansi-wl-pprint", requirement: "0.6.8.2", type: "runtime"), - Bibliothecary::Dependency.new(name: "appar", requirement: "0.1.4", type: "runtime"), - Bibliothecary::Dependency.new(name: "array", requirement: "0.5.2.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "async", requirement: "2.1.1.1", type: "runtime"), - Bibliothecary::Dependency.new(name: "attoparsec", requirement: "0.13.2.2", type: "runtime"), - Bibliothecary::Dependency.new(name: "attoparsec-iso8601", requirement: "1.0.0.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "auto-update", requirement: "0.1.4", type: "runtime"), - Bibliothecary::Dependency.new(name: "base", requirement: "4.10.1.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "base-compat", requirement: "0.9.3", type: "runtime"), - Bibliothecary::Dependency.new(name: "base64-bytestring", requirement: "1.0.0.1", type: "runtime"), - Bibliothecary::Dependency.new(name: "basement", requirement: "0.0.5", type: "runtime"), - Bibliothecary::Dependency.new(name: "binary", requirement: "0.8.5.1", type: "runtime"), - Bibliothecary::Dependency.new(name: "blaze-builder", requirement: "0.4.0.2", type: "runtime"), - Bibliothecary::Dependency.new(name: "blaze-html", requirement: "0.9.0.1", type: "runtime"), - Bibliothecary::Dependency.new(name: "blaze-markup", requirement: "0.8.2.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "byteorder", requirement: "1.0.4", type: "runtime"), - Bibliothecary::Dependency.new(name: "bytestring", requirement: "0.10.8.2", type: "runtime"), - Bibliothecary::Dependency.new(name: "bytestring-builder", requirement: "0.10.8.1.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "case-insensitive", requirement: "1.2.0.10", type: "runtime"), - Bibliothecary::Dependency.new(name: "colour", requirement: "2.3.4", type: "runtime"), - Bibliothecary::Dependency.new(name: "containers", requirement: "0.5.10.2", type: "runtime"), - Bibliothecary::Dependency.new(name: "cookie", requirement: "0.4.3", type: "runtime"), - Bibliothecary::Dependency.new(name: "cryptonite", requirement: "0.24", type: "runtime"), - Bibliothecary::Dependency.new(name: "data-default-class", requirement: "0.1.2.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "deepseq", requirement: "1.4.3.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "directory", requirement: "1.3.0.2", type: "runtime"), - Bibliothecary::Dependency.new(name: "dlist", requirement: "0.8.0.3", type: "runtime"), - Bibliothecary::Dependency.new(name: "easy-file", requirement: "0.2.1", type: "runtime"), - Bibliothecary::Dependency.new(name: "envy", requirement: "1.3.0.2", type: "runtime"), - Bibliothecary::Dependency.new(name: "exceptions", requirement: "0.8.3", type: "runtime"), - Bibliothecary::Dependency.new(name: "fail", requirement: "4.9.0.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "fast-logger", requirement: "2.4.10", type: "runtime"), - Bibliothecary::Dependency.new(name: "file-embed", requirement: "0.0.10.1", type: "runtime"), - Bibliothecary::Dependency.new(name: "filepath", requirement: "1.4.1.2", type: "runtime"), - Bibliothecary::Dependency.new(name: "foundation", requirement: "0.0.18", type: "runtime"), - Bibliothecary::Dependency.new(name: "ghc-boot-th", requirement: "8.2.2", type: "runtime"), - Bibliothecary::Dependency.new(name: "ghc-prim", requirement: "0.5.1.1", type: "runtime"), - Bibliothecary::Dependency.new(name: "hashable", requirement: "1.2.6.1", type: "runtime"), - Bibliothecary::Dependency.new(name: "http-api-data", requirement: "0.3.7.1", type: "runtime"), - Bibliothecary::Dependency.new(name: "http-date", requirement: "0.0.6.1", type: "runtime"), - Bibliothecary::Dependency.new(name: "http-media", requirement: "0.7.1.1", type: "runtime"), - Bibliothecary::Dependency.new(name: "http-types", requirement: "0.10", type: "runtime"), - Bibliothecary::Dependency.new(name: "http2", requirement: "1.6.3", type: "runtime"), - Bibliothecary::Dependency.new(name: "integer-gmp", requirement: "1.0.1.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "integer-logarithms", requirement: "1.0.2", type: "runtime"), - Bibliothecary::Dependency.new(name: "iproute", requirement: "1.7.1", type: "runtime"), - Bibliothecary::Dependency.new(name: "lifted-base", requirement: "0.2.3.11", type: "runtime"), - Bibliothecary::Dependency.new(name: "memory", requirement: "0.14.12", type: "runtime"), - Bibliothecary::Dependency.new(name: "mime-types", requirement: "0.1.0.7", type: "runtime"), - Bibliothecary::Dependency.new(name: "mmorph", requirement: "1.1.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "monad-control", requirement: "1.0.2.2", type: "runtime"), - Bibliothecary::Dependency.new(name: "mtl", requirement: "2.2.1", type: "runtime"), - Bibliothecary::Dependency.new(name: "natural-transformation", requirement: "0.4", type: "runtime"), - Bibliothecary::Dependency.new(name: "network", requirement: "2.6.3.3", type: "runtime"), - Bibliothecary::Dependency.new(name: "network-uri", requirement: "2.6.1.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "old-locale", requirement: "1.0.0.7", type: "runtime"), - Bibliothecary::Dependency.new(name: "old-time", requirement: "1.1.0.3", type: "runtime"), - Bibliothecary::Dependency.new(name: "optparse-applicative", requirement: "0.14.0.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "parsec", requirement: "3.1.11", type: "runtime"), - Bibliothecary::Dependency.new(name: "pretty", requirement: "1.1.3.3", type: "runtime"), - Bibliothecary::Dependency.new(name: "primitive", requirement: "0.6.2.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "process", requirement: "1.6.1.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "psqueues", requirement: "0.2.4.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "random", requirement: "1.1", type: "runtime"), - Bibliothecary::Dependency.new(name: "resourcet", requirement: "1.1.11", type: "runtime"), - Bibliothecary::Dependency.new(name: "rts", requirement: "1.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "safe", requirement: "0.3.16", type: "runtime"), - Bibliothecary::Dependency.new(name: "scientific", requirement: "0.3.5.2", type: "runtime"), - Bibliothecary::Dependency.new(name: "servant", requirement: "0.11", type: "runtime"), - Bibliothecary::Dependency.new(name: "servant-server", requirement: "0.11.0.1", type: "runtime"), - Bibliothecary::Dependency.new(name: "simple-sendfile", requirement: "0.2.26", type: "runtime"), - Bibliothecary::Dependency.new(name: "split", requirement: "0.2.3.2", type: "runtime"), - Bibliothecary::Dependency.new(name: "stm", requirement: "2.4.4.1", type: "runtime"), - Bibliothecary::Dependency.new(name: "streaming-commons", requirement: "0.1.18", type: "runtime"), - Bibliothecary::Dependency.new(name: "string-conversions", requirement: "0.4.0.1", type: "runtime"), - Bibliothecary::Dependency.new(name: "stringsearch", requirement: "0.3.6.6", type: "runtime"), - Bibliothecary::Dependency.new(name: "system-filepath", requirement: "0.4.13.4", type: "runtime"), - Bibliothecary::Dependency.new(name: "tagged", requirement: "0.8.5", type: "runtime"), - Bibliothecary::Dependency.new(name: "template-haskell", requirement: "2.12.0.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "text", requirement: "1.2.3.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "th-lift", requirement: "0.7.7", type: "runtime"), - Bibliothecary::Dependency.new(name: "th-lift-instances", requirement: "0.1.11", type: "runtime"), - Bibliothecary::Dependency.new(name: "time", requirement: "1.8.0.2", type: "runtime"), - Bibliothecary::Dependency.new(name: "time-locale-compat", requirement: "0.1.1.3", type: "runtime"), - Bibliothecary::Dependency.new(name: "transformers", requirement: "0.5.2.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "transformers-base", requirement: "0.4.4", type: "runtime"), - Bibliothecary::Dependency.new(name: "transformers-compat", requirement: "0.5.1.4", type: "runtime"), - Bibliothecary::Dependency.new(name: "unix", requirement: "2.7.2.2", type: "runtime"), - Bibliothecary::Dependency.new(name: "unix-compat", requirement: "0.5.0.1", type: "runtime"), - Bibliothecary::Dependency.new(name: "unix-time", requirement: "0.3.7", type: "runtime"), - Bibliothecary::Dependency.new(name: "unliftio-core", requirement: "0.1.1.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "unordered-containers", requirement: "0.2.8.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "uri-bytestring", requirement: "0.3.1.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "utf8-string", requirement: "1.0.1.1", type: "runtime"), - Bibliothecary::Dependency.new(name: "uuid-types", requirement: "1.0.3", type: "runtime"), - Bibliothecary::Dependency.new(name: "vault", requirement: "0.3.0.7", type: "runtime"), - Bibliothecary::Dependency.new(name: "vector", requirement: "0.12.0.1", type: "runtime"), - Bibliothecary::Dependency.new(name: "void", requirement: "0.7.2", type: "runtime"), - Bibliothecary::Dependency.new(name: "wai", requirement: "3.2.1.1", type: "runtime"), - Bibliothecary::Dependency.new(name: "wai-app-static", requirement: "3.1.6.1", type: "runtime"), - Bibliothecary::Dependency.new(name: "wai-extra", requirement: "3.0.21.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "wai-logger", requirement: "2.3.1", type: "runtime"), - Bibliothecary::Dependency.new(name: "warp", requirement: "3.2.13", type: "runtime"), - Bibliothecary::Dependency.new(name: "word8", requirement: "0.1.3", type: "runtime"), - Bibliothecary::Dependency.new(name: "zlib", requirement: "0.6.1.2", type: "runtime"), - ], - kind: "lockfile", - success: true, - }) - end -end diff --git a/spec/parsers/hex_spec.rb b/spec/parsers/hex_spec.rb deleted file mode 100644 index 7adbfdb3..00000000 --- a/spec/parsers/hex_spec.rb +++ /dev/null @@ -1,42 +0,0 @@ -require "spec_helper" - -describe Bibliothecary::Parsers::Hex do - it "has a platform name" do - expect(described_class.platform_name).to eq("hex") - end - - it "parses dependencies from mix.exs", :vcr do - expect(described_class.analyse_contents("mix.exs", load_fixture("mix.exs"))).to eq({ - platform: "hex", - path: "mix.exs", - dependencies: [ - Bibliothecary::Dependency.new(name: "poison", requirement: "~> 1.3.1", type: "runtime"), - Bibliothecary::Dependency.new(name: "plug", requirement: "~> 0.11.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "cowboy", requirement: "~> 1.0.0", type: "runtime"), - ], - kind: "manifest", - success: true, - }) - end - - it "parses dependencies from mix.lock", :vcr do - expect(described_class.analyse_contents("mix.lock", load_fixture("mix.lock"))).to eq({ - platform: "hex", - path: "mix.lock", - dependencies: [ - Bibliothecary::Dependency.new(name: "ranch", requirement: "1.2.1", type: "runtime"), - Bibliothecary::Dependency.new(name: "poison", requirement: "2.1.0", type: "runtime"), - Bibliothecary::Dependency.new(name: "plug", requirement: "1.1.6", type: "runtime"), - Bibliothecary::Dependency.new(name: "cowlib", requirement: "1.0.2", type: "runtime"), - Bibliothecary::Dependency.new(name: "cowboy", requirement: "1.0.4", type: "runtime"), - ], - kind: "lockfile", - success: true, - }) - end - - it "matches valid manifest filepaths" do - expect(described_class.match?("mix.exs")).to be_truthy - expect(described_class.match?("mix.lock")).to be_truthy - end -end diff --git a/spec/parsers/npm_spec.rb b/spec/parsers/npm_spec.rb index 95e4bf85..ab190c19 100644 --- a/spec/parsers/npm_spec.rb +++ b/spec/parsers/npm_spec.rb @@ -90,7 +90,7 @@ ) end - it "parses dependencies from yarn.lock", :vcr do + it "parses dependencies from yarn.lock" do expect(described_class.analyse_contents("yarn.lock", load_fixture("yarn.lock"))).to eq({ platform: "npm", path: "yarn.lock", @@ -121,7 +121,7 @@ }) end - it "parses git dependencies from yarn.lock", :vcr do + it "parses git dependencies from yarn.lock" do expect(described_class.analyse_contents("yarn.lock", load_fixture("yarn-with-git-repo/yarn.lock"))).to eq({ platform: "npm", path: "yarn.lock", @@ -402,7 +402,7 @@ }) end - it "parses local path dependencies from yarn.lock", :vcr do + it "parses local path dependencies from yarn.lock" do expect(described_class.analyse_contents("yarn.lock", load_fixture("npm-local-file/yarn.lock"))).to eq({ platform: "npm", path: "yarn.lock", @@ -419,7 +419,7 @@ end end - it "does not parse self-referential dependencies from yarn.lock", :vcr do + it "does not parse self-referential dependencies from yarn.lock" do expect(described_class.analyse_contents("yarn.lock", load_fixture("yarn-v4-lockfile/yarn.lock"))).to eq({ platform: "npm", path: "yarn.lock", @@ -521,7 +521,7 @@ }) end - it "parses dependencies that have multiple versions in yarn.json", :vcr do + it "parses dependencies that have multiple versions in yarn.json" do expect(described_class.analyse_contents("yarn.lock", load_fixture("multiple_versions/yarn.lock"))).to eq({ dependencies: [ Bibliothecary::Dependency.new(name: "find-versions", requirement: "4.0.0", type: "runtime", local: false), diff --git a/spec/parsers/pypi_spec.rb b/spec/parsers/pypi_spec.rb index 8a375ce7..df0714fe 100644 --- a/spec/parsers/pypi_spec.rb +++ b/spec/parsers/pypi_spec.rb @@ -374,16 +374,16 @@ }) end - it "parses dependencies from conda environment.yml.lock with pip" do - expect(described_class.analyse_contents("conda_with_pip/environment.yml.lock", load_fixture("conda_with_pip/environment.yml"))).to eq( + it "parses dependencies from conda environment.yml with pip" do + expect(described_class.analyse_contents("conda_with_pip/environment.yml", load_fixture("conda_with_pip/environment.yml"))).to eq( { platform: "pypi", - path: "conda_with_pip/environment.yml.lock", + path: "conda_with_pip/environment.yml", dependencies: [ Bibliothecary::Dependency.new( name: "urllib3", requirement: "*", type: "runtime"), Bibliothecary::Dependency.new( name: "Django", requirement: "==2.0.0", type: "runtime"), ], - kind: "lockfile", + kind: "manifest", success: true, } ) diff --git a/spec/parsers/swift_pm_spec.rb b/spec/parsers/swift_pm_spec.rb deleted file mode 100644 index bc307783..00000000 --- a/spec/parsers/swift_pm_spec.rb +++ /dev/null @@ -1,25 +0,0 @@ -require "spec_helper" - -describe Bibliothecary::Parsers::SwiftPM do - it "has a platform name" do - expect(described_class.platform_name).to eq("swiftpm") - end - - it "parses dependencies from Package.swift", :vcr do - expect(described_class.analyse_contents("Package.swift", load_fixture("Package.swift"))).to eq({ - platform: "swiftpm", - path: "Package.swift", - dependencies: [ - Bibliothecary::Dependency.new(name: "github.com/qutheory/vapor", requirement: "0.12.0 - 0.12.9223372036854775807", type: "runtime"), - Bibliothecary::Dependency.new(name: "github.com/czechboy0/Tasks", requirement: "0.2.0 - 0.2.9223372036854775807", type: "runtime"), - Bibliothecary::Dependency.new(name: "github.com/czechboy0/Environment", requirement: "0.4.0 - 0.4.9223372036854775807", type: "runtime"), - ], - kind: "manifest", - success: true, - }) - end - - it "matches valid manifest filepaths" do - expect(described_class.match?("Package.swift")).to be_truthy - end -end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 7f0e102c..e0904f33 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -21,14 +21,7 @@ def load_fixture(name) end end -require "vcr" require "webmock/rspec" WebMock.disable_net_connect!(allow_localhost: true) -VCR.configure do |c| - c.cassette_library_dir = "spec/vcr" - c.configure_rspec_metadata! - c.hook_into :webmock -end - require "pry" diff --git a/spec/vcr/Bibliothecary/handles_a_complicated_folder_with_many_manifests.yml b/spec/vcr/Bibliothecary/handles_a_complicated_folder_with_many_manifests.yml deleted file mode 100644 index ace71edc..00000000 --- a/spec/vcr/Bibliothecary/handles_a_complicated_folder_with_many_manifests.yml +++ /dev/null @@ -1,156 +0,0 @@ ---- -http_interactions: -- request: - method: post - uri: https://yarn-parser.libraries.io/parse - body: - encoding: UTF-8 - string: | - # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. - # yarn lockfile v1 - - - body-parser@^1.15.2: - version "1.16.1" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.16.1.tgz#51540d045adfa7a0c6995a014bb6b1ed9b802329" - dependencies: - bytes "2.4.0" - content-type "~1.0.2" - debug "2.6.1" - depd "~1.1.0" - http-errors "~1.5.1" - iconv-lite "0.4.15" - on-finished "~2.3.0" - qs "6.2.1" - raw-body "~2.2.0" - type-is "~1.6.14" - - bytes@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.4.0.tgz#7d97196f9d5baf7f6935e25985549edd2a6c2339" - - content-type@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed" - - debug@2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.1.tgz#79855090ba2c4e3115cc7d8769491d58f0491351" - dependencies: - ms "0.7.2" - - depd@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3" - - ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - - http-errors@~1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.5.1.tgz#788c0d2c1de2c81b9e6e8c01843b6b97eb920750" - dependencies: - inherits "2.0.3" - setprototypeof "1.0.2" - statuses ">= 1.3.1 < 2" - - iconv-lite@0.4.15: - version "0.4.15" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb" - - inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - - media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - - mime-db@~1.26.0: - version "1.26.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.26.0.tgz#eaffcd0e4fc6935cf8134da246e2e6c35305adff" - - mime-types@~2.1.13: - version "2.1.14" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.14.tgz#f7ef7d97583fcaf3b7d282b6f8b5679dab1e94ee" - dependencies: - mime-db "~1.26.0" - - ms@0.7.2: - version "0.7.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" - - on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - dependencies: - ee-first "1.1.1" - - qs@6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.1.tgz#ce03c5ff0935bc1d9d69a9f14cbd18e568d67625" - - raw-body@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.2.0.tgz#994976cf6a5096a41162840492f0bdc5d6e7fb96" - dependencies: - bytes "2.4.0" - iconv-lite "0.4.15" - unpipe "1.0.0" - - setprototypeof@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.2.tgz#81a552141ec104b88e89ce383103ad5c66564d08" - - "statuses@>= 1.3.1 < 2": - version "1.3.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" - - type-is@~1.6.14: - version "1.6.14" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.14.tgz#e219639c17ded1ca0789092dd54a03826b817cb2" - dependencies: - media-typer "0.3.0" - mime-types "~2.1.13" - - unpipe@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - headers: - User-Agent: - - Typhoeus - https://github.com/typhoeus/typhoeus - Expect: - - '' - response: - status: - code: 200 - message: OK - headers: - Date: - - Thu, 28 Jun 2018 15:57:24 GMT - Content-Type: - - application/json; charset=utf-8 - Content-Length: - - '1106' - Connection: - - keep-alive - Set-Cookie: - - __cfduid=d460fe3c8da9d516457fe70ac598b5cdd1530201443; expires=Fri, 28-Jun-19 - 15:57:23 GMT; path=/; domain=.libraries.io; HttpOnly - Access-Control-Allow-Origin: - - "*" - Etag: - - W/"452-n1qmHvnZbxlptttUr+/kx7nLbFU" - Expect-Ct: - - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" - Server: - - cloudflare - Cf-Ray: - - 4321594fff7782bb-ATL - body: - encoding: UTF-8 - string: '[{"name":"body-parser","version":"1.16.1","type":"runtime"},{"name":"bytes","version":"2.4.0","type":"runtime"},{"name":"content-type","version":"1.0.2","type":"runtime"},{"name":"debug","version":"2.6.1","type":"runtime"},{"name":"depd","version":"1.1.0","type":"runtime"},{"name":"ee-first","version":"1.1.1","type":"runtime"},{"name":"http-errors","version":"1.5.1","type":"runtime"},{"name":"iconv-lite","version":"0.4.15","type":"runtime"},{"name":"inherits","version":"2.0.3","type":"runtime"},{"name":"media-typer","version":"0.3.0","type":"runtime"},{"name":"mime-db","version":"1.26.0","type":"runtime"},{"name":"mime-types","version":"2.1.14","type":"runtime"},{"name":"ms","version":"0.7.2","type":"runtime"},{"name":"on-finished","version":"2.3.0","type":"runtime"},{"name":"qs","version":"6.2.1","type":"runtime"},{"name":"raw-body","version":"2.2.0","type":"runtime"},{"name":"setprototypeof","version":"1.0.2","type":"runtime"},{"name":"statuses","version":"1.3.1","type":"runtime"},{"name":"type-is","version":"1.6.14","type":"runtime"},{"name":"unpipe","version":"1.0.0","type":"runtime"}]' - http_version: - recorded_at: Thu, 28 Jun 2018 15:57:24 GMT -recorded_with: VCR 4.0.0 diff --git a/spec/vcr/Bibliothecary/handles_a_complicated_folder_with_many_manifests_complaining_about_no-parser_files.yml b/spec/vcr/Bibliothecary/handles_a_complicated_folder_with_many_manifests_complaining_about_no-parser_files.yml deleted file mode 100644 index 8a17b3c7..00000000 --- a/spec/vcr/Bibliothecary/handles_a_complicated_folder_with_many_manifests_complaining_about_no-parser_files.yml +++ /dev/null @@ -1,158 +0,0 @@ ---- -http_interactions: -- request: - method: post - uri: https://yarn-parser.libraries.io/parse - body: - encoding: UTF-8 - string: | - # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. - # yarn lockfile v1 - - - body-parser@^1.15.2: - version "1.16.1" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.16.1.tgz#51540d045adfa7a0c6995a014bb6b1ed9b802329" - dependencies: - bytes "2.4.0" - content-type "~1.0.2" - debug "2.6.1" - depd "~1.1.0" - http-errors "~1.5.1" - iconv-lite "0.4.15" - on-finished "~2.3.0" - qs "6.2.1" - raw-body "~2.2.0" - type-is "~1.6.14" - - bytes@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.4.0.tgz#7d97196f9d5baf7f6935e25985549edd2a6c2339" - - content-type@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed" - - debug@2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.1.tgz#79855090ba2c4e3115cc7d8769491d58f0491351" - dependencies: - ms "0.7.2" - - depd@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3" - - ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - - http-errors@~1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.5.1.tgz#788c0d2c1de2c81b9e6e8c01843b6b97eb920750" - dependencies: - inherits "2.0.3" - setprototypeof "1.0.2" - statuses ">= 1.3.1 < 2" - - iconv-lite@0.4.15: - version "0.4.15" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb" - - inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - - media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - - mime-db@~1.26.0: - version "1.26.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.26.0.tgz#eaffcd0e4fc6935cf8134da246e2e6c35305adff" - - mime-types@~2.1.13: - version "2.1.14" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.14.tgz#f7ef7d97583fcaf3b7d282b6f8b5679dab1e94ee" - dependencies: - mime-db "~1.26.0" - - ms@0.7.2: - version "0.7.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" - - on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - dependencies: - ee-first "1.1.1" - - qs@6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.1.tgz#ce03c5ff0935bc1d9d69a9f14cbd18e568d67625" - - raw-body@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.2.0.tgz#994976cf6a5096a41162840492f0bdc5d6e7fb96" - dependencies: - bytes "2.4.0" - iconv-lite "0.4.15" - unpipe "1.0.0" - - setprototypeof@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.2.tgz#81a552141ec104b88e89ce383103ad5c66564d08" - - "statuses@>= 1.3.1 < 2": - version "1.3.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" - - type-is@~1.6.14: - version "1.6.14" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.14.tgz#e219639c17ded1ca0789092dd54a03826b817cb2" - dependencies: - media-typer "0.3.0" - mime-types "~2.1.13" - - unpipe@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - headers: - User-Agent: - - Typhoeus - https://github.com/typhoeus/typhoeus - Expect: - - '' - response: - status: - code: 200 - message: OK - headers: - Date: - - Wed, 07 Nov 2018 16:02:16 GMT - Content-Type: - - application/json; charset=utf-8 - Content-Length: - - '1106' - Connection: - - keep-alive - Set-Cookie: - - __cfduid=dd25f4095eb2c0797955ba22db12bddd11541606536; expires=Thu, 07-Nov-19 - 16:02:16 GMT; path=/; domain=.libraries.io; HttpOnly - Access-Control-Allow-Origin: - - "*" - Etag: - - W/"452-n1qmHvnZbxlptttUr+/kx7nLbFU" - Via: - - 1.1 google - Expect-Ct: - - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" - Server: - - cloudflare - Cf-Ray: - - 476105f7bc07ba90-ATL - body: - encoding: UTF-8 - string: '[{"name":"body-parser","version":"1.16.1","type":"runtime"},{"name":"bytes","version":"2.4.0","type":"runtime"},{"name":"content-type","version":"1.0.2","type":"runtime"},{"name":"debug","version":"2.6.1","type":"runtime"},{"name":"depd","version":"1.1.0","type":"runtime"},{"name":"ee-first","version":"1.1.1","type":"runtime"},{"name":"http-errors","version":"1.5.1","type":"runtime"},{"name":"iconv-lite","version":"0.4.15","type":"runtime"},{"name":"inherits","version":"2.0.3","type":"runtime"},{"name":"media-typer","version":"0.3.0","type":"runtime"},{"name":"mime-db","version":"1.26.0","type":"runtime"},{"name":"mime-types","version":"2.1.14","type":"runtime"},{"name":"ms","version":"0.7.2","type":"runtime"},{"name":"on-finished","version":"2.3.0","type":"runtime"},{"name":"qs","version":"6.2.1","type":"runtime"},{"name":"raw-body","version":"2.2.0","type":"runtime"},{"name":"setprototypeof","version":"1.0.2","type":"runtime"},{"name":"statuses","version":"1.3.1","type":"runtime"},{"name":"type-is","version":"1.6.14","type":"runtime"},{"name":"unpipe","version":"1.0.0","type":"runtime"}]' - http_version: - recorded_at: Wed, 07 Nov 2018 16:02:16 GMT -recorded_with: VCR 4.0.0 diff --git a/spec/vcr/Bibliothecary/handles_a_dual-platformed_file_pip/conda_.yml b/spec/vcr/Bibliothecary/handles_a_dual-platformed_file_pip/conda_.yml deleted file mode 100644 index 01cd5c2d..00000000 --- a/spec/vcr/Bibliothecary/handles_a_dual-platformed_file_pip/conda_.yml +++ /dev/null @@ -1,40 +0,0 @@ ---- -http_interactions: -- request: - method: post - uri: https://conda-parser.libraries.io/parse - body: - encoding: UTF-8 - string: file=name%3A%20testingenv%0Achannels%3A%0A%20%20-%20defaults%0Adependencies%3A%0A%20%20-%20pip%0A%20%20-%20pip%3A%0A%20%20%20%20%20%20-%20urllib3%0A%20%20%20%20%20%20-%20Django%3D%3D2.0.0%0A%20%20-%20sqlite%3D3.29.0%3Dh7b6447c_0%0A&filename=environment.yml - headers: - User-Agent: - - Typhoeus - https://github.com/typhoeus/typhoeus - Contenttype: - - multipart/form-data - Expect: - - '' - response: - status: - code: 200 - message: '' - headers: - Server: - - gunicorn/19.9.0 - Date: - - Tue, 11 May 2021 16:48:25 GMT - Content-Type: - - application/json - Content-Length: - - '143' - Via: - - 1.1 google - Alt-Svc: - - clear - body: - encoding: ASCII-8BIT - string: '{"bad_specs":[],"channels":["defaults"],"lockfile":null,"manifest":[{"name":"pip","requirement":""},{"name":"sqlite","requirement":"3.29.0"}]} - -' - http_version: null - recorded_at: Tue, 11 May 2021 16:48:25 GMT -recorded_with: VCR 5.1.0 diff --git a/spec/vcr/Bibliothecary_Parsers_Carthage/parses_dependencies_from_Cartfile.yml b/spec/vcr/Bibliothecary_Parsers_Carthage/parses_dependencies_from_Cartfile.yml deleted file mode 100644 index c0dddd2c..00000000 --- a/spec/vcr/Bibliothecary_Parsers_Carthage/parses_dependencies_from_Cartfile.yml +++ /dev/null @@ -1,50 +0,0 @@ ---- -http_interactions: -- request: - method: post - uri: https://carthage.libraries.io/cartfile?body=%23%20Require%20version%202.3.1%20or%20later%0Agithub%20%22ReactiveCocoa/ReactiveCocoa%22%20%3E=%202.3.1%0A%0A%23%20Require%20version%201.x%0Agithub%20%22Mantle/Mantle%22%20~%3E%201.0%20%20%20%20%23%20(1.0%20or%20later,%20but%20less%20than%202.0)%0A%0A%23%20Require%20exactly%20version%200.4.1%0Agithub%20%22jspahrsummers/libextobjc%22%20==%200.4.1%0A%0A%23%20Use%20the%20latest%20version%0Agithub%20%22jspahrsummers/xcconfigs%22%0A%0A%23%20Use%20the%20branch%0Agithub%20%22jspahrsummers/xcconfigs%22%20%22branch%22%0A%0A%23%20Use%20a%20project%20from%20GitHub%20Enterprise%0Agithub%20%22https://enterprise.local/ghe/desktop/git-error-translations%22%0A%0A%23%20Use%20a%20project%20from%20any%20arbitrary%20server,%20on%20the%20%22development%22%20branch%0Agit%20%22https://enterprise.local/desktop/git-error-translations2.git%22%20%22development%22%0A%0A%23%20Use%20a%20local%20project%0Agit%20%22file:///directory/to/project%22%20%22branch%22%0A - body: - encoding: US-ASCII - string: '' - headers: - User-Agent: - - Typhoeus - https://github.com/typhoeus/typhoeus - Expect: - - '' - response: - status: - code: 200 - message: OK - headers: - Date: - - Fri, 18 May 2018 13:56:41 GMT - Content-Type: - - application/json - Transfer-Encoding: - - chunked - Connection: - - keep-alive - Set-Cookie: - - __cfduid=d056b94cb92b8df77260831e85fba555a1526651801; expires=Sat, 18-May-19 - 13:56:41 GMT; path=/; domain=.libraries.io; HttpOnly - Vary: - - Accept-Encoding - X-Content-Type-Options: - - nosniff - Expect-Ct: - - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" - Server: - - cloudflare - Cf-Ray: - - 41ced4204a1335d2-LHR - body: - encoding: UTF-8 - string: '[{"name":"ReactiveCocoa/ReactiveCocoa","version":">= 2.3.1","type":"runtime"},{"name":"Mantle/Mantle","version":"~> - 1.0","type":"runtime"},{"name":"jspahrsummers/libextobjc","version":"== 0.4.1","type":"runtime"},{"name":"jspahrsummers/xcconfigs","version":" - ","type":"runtime"},{"name":"jspahrsummers/xcconfigs","version":"branch ","type":"runtime"},{"name":"https://enterprise.local/ghe/desktop/git-error-translations","version":" - ","type":"runtime"},{"name":"https://enterprise.local/desktop/git-error-translations2.git","version":"development - ","type":"runtime"},{"name":"file:///directory/to/project","version":"branch - ","type":"runtime"}]' - http_version: - recorded_at: Fri, 18 May 2018 13:56:41 GMT -recorded_with: VCR 4.0.0 diff --git a/spec/vcr/Bibliothecary_Parsers_Carthage/parses_dependencies_from_Cartfile_private.yml b/spec/vcr/Bibliothecary_Parsers_Carthage/parses_dependencies_from_Cartfile_private.yml deleted file mode 100644 index ffa6d557..00000000 --- a/spec/vcr/Bibliothecary_Parsers_Carthage/parses_dependencies_from_Cartfile_private.yml +++ /dev/null @@ -1,47 +0,0 @@ ---- -http_interactions: -- request: - method: post - uri: https://carthage.libraries.io/cartfile.private?body=github%20%22Quick/Quick%22%20~%3E%200.9%0Agithub%20%22Quick/Nimble%22%20~%3E%203.1%0Agithub%20%22jspahrsummers/xcconfigs%22%20%22ec5753493605deed7358dec5f9260f503d3ed650%22%0A - body: - encoding: US-ASCII - string: '' - headers: - User-Agent: - - Typhoeus - https://github.com/typhoeus/typhoeus - Expect: - - '' - response: - status: - code: 200 - message: OK - headers: - Date: - - Fri, 18 May 2018 13:56:41 GMT - Content-Type: - - application/json - Transfer-Encoding: - - chunked - Connection: - - keep-alive - Set-Cookie: - - __cfduid=d056b94cb92b8df77260831e85fba555a1526651801; expires=Sat, 18-May-19 - 13:56:41 GMT; path=/; domain=.libraries.io; HttpOnly - Vary: - - Accept-Encoding - X-Content-Type-Options: - - nosniff - Expect-Ct: - - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" - Server: - - cloudflare - Cf-Ray: - - 41ced420ba4035d2-LHR - body: - encoding: UTF-8 - string: '[{"name":"Quick/Quick","version":"~> 0.9","type":"development"},{"name":"Quick/Nimble","version":"~> - 3.1","type":"development"},{"name":"jspahrsummers/xcconfigs","version":"ec5753493605deed7358dec5f9260f503d3ed650 - ","type":"development"}]' - http_version: - recorded_at: Fri, 18 May 2018 13:56:41 GMT -recorded_with: VCR 4.0.0 diff --git a/spec/vcr/Bibliothecary_Parsers_Carthage/parses_dependencies_from_Cartfile_resolved.yml b/spec/vcr/Bibliothecary_Parsers_Carthage/parses_dependencies_from_Cartfile_resolved.yml deleted file mode 100644 index 396e1877..00000000 --- a/spec/vcr/Bibliothecary_Parsers_Carthage/parses_dependencies_from_Cartfile_resolved.yml +++ /dev/null @@ -1,49 +0,0 @@ ---- -http_interactions: -- request: - method: post - uri: https://carthage.libraries.io/cartfile.resolved?body=github%20%22thoughtbot/Argo%22%20%22v2.2.0%22%0Agithub%20%22Quick/Nimble%22%20%22v3.1.0%22%0Agithub%20%22jdhealy/PrettyColors%22%20%22v3.0.0%22%0Agithub%20%22Quick/Quick%22%20%22v0.9.1%22%0Agithub%20%22antitypical/Result%22%20%221.0.2%22%0Agithub%20%22jspahrsummers/xcconfigs%22%20%22ec5753493605deed7358dec5f9260f503d3ed650%22%0Agithub%20%22Carthage/Commandant%22%20%220.8.3%22%0Agithub%20%22ReactiveCocoa/ReactiveCocoa%22%20%22v4.0.1%22%0Agithub%20%22Carthage/ReactiveTask%22%20%220.9.1%22%0A - body: - encoding: US-ASCII - string: '' - headers: - User-Agent: - - Typhoeus - https://github.com/typhoeus/typhoeus - Expect: - - '' - response: - status: - code: 200 - message: OK - headers: - Date: - - Fri, 18 May 2018 13:56:41 GMT - Content-Type: - - application/json - Transfer-Encoding: - - chunked - Connection: - - keep-alive - Set-Cookie: - - __cfduid=d056b94cb92b8df77260831e85fba555a1526651801; expires=Sat, 18-May-19 - 13:56:41 GMT; path=/; domain=.libraries.io; HttpOnly - Vary: - - Accept-Encoding - X-Content-Type-Options: - - nosniff - Expect-Ct: - - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" - Server: - - cloudflare - Cf-Ray: - - 41ced4212a7535d2-LHR - body: - encoding: UTF-8 - string: '[{"name":"thoughtbot/Argo","version":"v2.2.0 ","type":"runtime"},{"name":"Quick/Nimble","version":"v3.1.0 - ","type":"runtime"},{"name":"jdhealy/PrettyColors","version":"v3.0.0 ","type":"runtime"},{"name":"Quick/Quick","version":"v0.9.1 - ","type":"runtime"},{"name":"antitypical/Result","version":"1.0.2 ","type":"runtime"},{"name":"jspahrsummers/xcconfigs","version":"ec5753493605deed7358dec5f9260f503d3ed650 - ","type":"runtime"},{"name":"Carthage/Commandant","version":"0.8.3 ","type":"runtime"},{"name":"ReactiveCocoa/ReactiveCocoa","version":"v4.0.1 - ","type":"runtime"},{"name":"Carthage/ReactiveTask","version":"0.9.1 ","type":"runtime"}]' - http_version: - recorded_at: Fri, 18 May 2018 13:56:41 GMT -recorded_with: VCR 4.0.0 diff --git a/spec/vcr/Bibliothecary_Parsers_Clojars/parses_dependencies_from_project_clj.yml b/spec/vcr/Bibliothecary_Parsers_Clojars/parses_dependencies_from_project_clj.yml deleted file mode 100644 index 8bdd2a44..00000000 --- a/spec/vcr/Bibliothecary_Parsers_Clojars/parses_dependencies_from_project_clj.yml +++ /dev/null @@ -1,59 +0,0 @@ ---- -http_interactions: -- request: - method: post - uri: https://clojars.libraries.io/project.clj - body: - encoding: UTF-8 - string: | - (defproject clojars-json "0.1.0" - :description "FIXME: write description" - :url "http://example.com/FIXME" - :license {:name "Eclipse Public License" - :url "http://www.eclipse.org/legal/epl-v10.html"} - :dependencies [[org.clojure/clojure "1.6.0"] - [cheshire "5.4.0"] - [compojure "1.3.2"] - [ring/ring-defaults "0.1.2"] - [ring/ring-jetty-adapter "1.2.1"]] - :plugins [[lein-ring "0.8.13"]] - :min-lein-version "2.0.0" - :ring {:handler clojars-json.core/app} - :uberjar-name "clojars-json.jar" - :profiles {:uberjar {:aot :all}} - :main clojars-json.core - ) - headers: - User-Agent: - - Typhoeus - https://github.com/typhoeus/typhoeus - Expect: - - '' - response: - status: - code: 200 - message: OK - headers: - Date: - - Fri, 18 May 2018 13:56:41 GMT - Content-Type: - - application/json - Content-Length: - - '567' - Connection: - - keep-alive - Set-Cookie: - - __cfduid=d5ac4d8d2aff7472cbb6f4470d7cd6a6c1526651801; expires=Sat, 18-May-19 - 13:56:41 GMT; path=/; domain=.libraries.io; HttpOnly - Expect-Ct: - - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" - Server: - - cloudflare - Cf-Ray: - - 41ced42238bcbba8-LHR - body: - encoding: UTF-8 - string: '["defproject","clojars-json","0.1.0","description","FIXME: write description","url","http://example.com/FIXME","license",{"name":"Eclipse - Public License","url":"http://www.eclipse.org/legal/epl-v10.html"},"dependencies",[["org.clojure/clojure","1.6.0"],["cheshire","5.4.0"],["compojure","1.3.2"],["ring/ring-defaults","0.1.2"],["ring/ring-jetty-adapter","1.2.1"]],"plugins",[["lein-ring","0.8.13"]],"min-lein-version","2.0.0","ring",{"handler":"clojars-json.core/app"},"uberjar-name","clojars-json.jar","profiles",{"uberjar":{"aot":"all"}},"main","clojars-json.core"]' - http_version: - recorded_at: Fri, 18 May 2018 13:56:42 GMT -recorded_with: VCR 4.0.0 diff --git a/spec/vcr/Bibliothecary_Parsers_Conda/parses_dependencies_from_environment_yml.yml b/spec/vcr/Bibliothecary_Parsers_Conda/parses_dependencies_from_environment_yml.yml deleted file mode 100644 index adfa80d2..00000000 --- a/spec/vcr/Bibliothecary_Parsers_Conda/parses_dependencies_from_environment_yml.yml +++ /dev/null @@ -1,40 +0,0 @@ ---- -http_interactions: -- request: - method: post - uri: https://conda-parser.libraries.io/parse - body: - encoding: UTF-8 - string: file=name%3A%20testingenv%0Achannels%3A%0A%20%20-%20defaults%0Adependencies%3A%0A%20%20-%20beautifulsoup4%3D4.7.1%3Dpy37_1%0A%20%20-%20biopython%3D1.74%3Dpy37h7b6447c_0%0A%20%20-%20certifi%3D2019.6.16%3Dpy37_1%0A%20%20-%20ncurses%3D6.1%3Dhe6710b0_1%0A%20%20-%20numpy%3D1.16.4%3Dpy37h7e9f1db_0%0A%20%20-%20openssl%3D1.1.1c%3Dh7b6447c_1%0A%20%20-%20pip%0A%20%20-%20python%3D3.7.3%3Dh0371630_0%0A%20%20-%20readline%3D7.0%3Dh7b6447c_5%0A%20%20-%20setuptools%0A%20%20-%20sqlite%3D3.29.0%3Dh7b6447c_0&filename=environment.yml.lock - headers: - User-Agent: - - Typhoeus - https://github.com/typhoeus/typhoeus - Contenttype: - - multipart/form-data - Expect: - - '' - response: - status: - code: 200 - message: OK - headers: - Server: - - gunicorn/19.9.0 - Date: - - Tue, 01 Oct 2019 14:57:48 GMT - Content-Type: - - application/json - Content-Length: - - '1827' - Via: - - 1.1 google - Alt-Svc: - - clear - body: - encoding: UTF-8 - string: '{"bad_specs":[],"channels":["defaults"],"lockfile":[{"name":"_libgcc_mutex","requirement":"0.1"},{"name":"beautifulsoup4","requirement":"4.7.1"},{"name":"biopython","requirement":"1.74"},{"name":"blas","requirement":"1.0"},{"name":"ca-certificates","requirement":"2019.8.28"},{"name":"certifi","requirement":"2019.6.16"},{"name":"intel-openmp","requirement":"2019.4"},{"name":"libedit","requirement":"3.1.20181209"},{"name":"libffi","requirement":"3.2.1"},{"name":"libgcc-ng","requirement":"9.1.0"},{"name":"libgfortran-ng","requirement":"7.3.0"},{"name":"libstdcxx-ng","requirement":"9.1.0"},{"name":"mkl","requirement":"2019.4"},{"name":"mkl-service","requirement":"2.3.0"},{"name":"mkl_fft","requirement":"1.0.14"},{"name":"mkl_random","requirement":"1.1.0"},{"name":"ncurses","requirement":"6.1"},{"name":"numpy","requirement":"1.16.4"},{"name":"numpy-base","requirement":"1.16.4"},{"name":"openssl","requirement":"1.1.1c"},{"name":"pip","requirement":"19.2.3"},{"name":"python","requirement":"3.7.3"},{"name":"readline","requirement":"7.0"},{"name":"setuptools","requirement":"41.2.0"},{"name":"six","requirement":"1.12.0"},{"name":"soupsieve","requirement":"1.9.3"},{"name":"sqlite","requirement":"3.29.0"},{"name":"tk","requirement":"8.6.8"},{"name":"wheel","requirement":"0.33.6"},{"name":"xz","requirement":"5.2.4"},{"name":"zlib","requirement":"1.2.11"}],"manifest":[{"name":"beautifulsoup4","requirement":"4.7.1"},{"name":"biopython","requirement":"1.74"},{"name":"certifi","requirement":"2019.6.16"},{"name":"ncurses","requirement":"6.1"},{"name":"numpy","requirement":"1.16.4"},{"name":"openssl","requirement":"1.1.1c"},{"name":"pip","requirement":""},{"name":"python","requirement":"3.7.3"},{"name":"readline","requirement":"7.0"},{"name":"setuptools","requirement":""},{"name":"sqlite","requirement":"3.29.0"}]} - - ' - http_version: - recorded_at: Tue, 01 Oct 2019 14:57:48 GMT -recorded_with: VCR 5.0.0 diff --git a/spec/vcr/Bibliothecary_Parsers_Conda/parses_dependencies_from_environment_yml_lock.yml b/spec/vcr/Bibliothecary_Parsers_Conda/parses_dependencies_from_environment_yml_lock.yml deleted file mode 100644 index a17396dc..00000000 --- a/spec/vcr/Bibliothecary_Parsers_Conda/parses_dependencies_from_environment_yml_lock.yml +++ /dev/null @@ -1,40 +0,0 @@ ---- -http_interactions: -- request: - method: post - uri: https://conda-parser.libraries.io/parse - body: - encoding: UTF-8 - string: file=name%3A%20testingenv%0Achannels%3A%0A%20%20-%20defaults%0Adependencies%3A%0A%20%20-%20beautifulsoup4%3D4.7.1%3Dpy37_1%0A%20%20-%20biopython%3D1.74%3Dpy37h7b6447c_0%0A%20%20-%20certifi%3D2019.6.16%3Dpy37_1%0A%20%20-%20ncurses%3D6.1%3Dhe6710b0_1%0A%20%20-%20numpy%3D1.16.4%3Dpy37h7e9f1db_0%0A%20%20-%20openssl%3D1.1.1c%3Dh7b6447c_1%0A%20%20-%20pip%0A%20%20-%20python%3D3.7.3%3Dh0371630_0%0A%20%20-%20readline%3D7.0%3Dh7b6447c_5%0A%20%20-%20setuptools%0A%20%20-%20sqlite%3D3.29.0%3Dh7b6447c_0&filename=environment.yml.lock - headers: - User-Agent: - - Typhoeus - https://github.com/typhoeus/typhoeus - Contenttype: - - multipart/form-data - Expect: - - '' - response: - status: - code: 200 - message: OK - headers: - Server: - - gunicorn/19.9.0 - Date: - - Tue, 01 Oct 2019 14:57:49 GMT - Content-Type: - - application/json - Content-Length: - - '1827' - Via: - - 1.1 google - Alt-Svc: - - clear - body: - encoding: UTF-8 - string: '{"bad_specs":[],"channels":["defaults"],"lockfile":[{"name":"_libgcc_mutex","requirement":"0.1"},{"name":"beautifulsoup4","requirement":"4.7.1"},{"name":"biopython","requirement":"1.74"},{"name":"blas","requirement":"1.0"},{"name":"ca-certificates","requirement":"2019.8.28"},{"name":"certifi","requirement":"2019.6.16"},{"name":"intel-openmp","requirement":"2019.4"},{"name":"libedit","requirement":"3.1.20181209"},{"name":"libffi","requirement":"3.2.1"},{"name":"libgcc-ng","requirement":"9.1.0"},{"name":"libgfortran-ng","requirement":"7.3.0"},{"name":"libstdcxx-ng","requirement":"9.1.0"},{"name":"mkl","requirement":"2019.4"},{"name":"mkl-service","requirement":"2.3.0"},{"name":"mkl_fft","requirement":"1.0.14"},{"name":"mkl_random","requirement":"1.1.0"},{"name":"ncurses","requirement":"6.1"},{"name":"numpy","requirement":"1.16.4"},{"name":"numpy-base","requirement":"1.16.4"},{"name":"openssl","requirement":"1.1.1c"},{"name":"pip","requirement":"19.2.3"},{"name":"python","requirement":"3.7.3"},{"name":"readline","requirement":"7.0"},{"name":"setuptools","requirement":"41.2.0"},{"name":"six","requirement":"1.12.0"},{"name":"soupsieve","requirement":"1.9.3"},{"name":"sqlite","requirement":"3.29.0"},{"name":"tk","requirement":"8.6.8"},{"name":"wheel","requirement":"0.33.6"},{"name":"xz","requirement":"5.2.4"},{"name":"zlib","requirement":"1.2.11"}],"manifest":[{"name":"beautifulsoup4","requirement":"4.7.1"},{"name":"biopython","requirement":"1.74"},{"name":"certifi","requirement":"2019.6.16"},{"name":"ncurses","requirement":"6.1"},{"name":"numpy","requirement":"1.16.4"},{"name":"openssl","requirement":"1.1.1c"},{"name":"pip","requirement":""},{"name":"python","requirement":"3.7.3"},{"name":"readline","requirement":"7.0"},{"name":"setuptools","requirement":""},{"name":"sqlite","requirement":"3.29.0"}]} - - ' - http_version: - recorded_at: Tue, 01 Oct 2019 14:57:49 GMT -recorded_with: VCR 5.0.0 diff --git a/spec/vcr/Bibliothecary_Parsers_Conda/parses_dependencies_from_environment_yml_lock_with_pip.yml b/spec/vcr/Bibliothecary_Parsers_Conda/parses_dependencies_from_environment_yml_lock_with_pip.yml deleted file mode 100644 index 964f29ac..00000000 --- a/spec/vcr/Bibliothecary_Parsers_Conda/parses_dependencies_from_environment_yml_lock_with_pip.yml +++ /dev/null @@ -1,40 +0,0 @@ ---- -http_interactions: -- request: - method: post - uri: https://conda-parser.libraries.io/parse - body: - encoding: UTF-8 - string: file=name%3A%20testingenv%0Achannels%3A%0A%20%20-%20defaults%0Adependencies%3A%0A%20%20-%20pip%0A%20%20-%20pip%3A%0A%20%20%20%20%20%20-%20urllib3%0A%20%20%20%20%20%20-%20Django%3D%3D2.0.0%0A%20%20-%20sqlite%3D3.29.0%3Dh7b6447c_0%0A&filename=environment.yml.lock - headers: - User-Agent: - - Typhoeus - https://github.com/typhoeus/typhoeus - Contenttype: - - multipart/form-data - Expect: - - '' - response: - status: - code: 200 - message: OK - headers: - Server: - - gunicorn/19.9.0 - Date: - - Tue, 01 Oct 2019 14:57:50 GMT - Content-Type: - - application/json - Content-Length: - - '896' - Via: - - 1.1 google - Alt-Svc: - - clear - body: - encoding: UTF-8 - string: '{"bad_specs":[],"channels":["defaults"],"lockfile":[{"name":"_libgcc_mutex","requirement":"0.1"},{"name":"ca-certificates","requirement":"2019.8.28"},{"name":"certifi","requirement":"2019.9.11"},{"name":"libedit","requirement":"3.1.20181209"},{"name":"libffi","requirement":"3.2.1"},{"name":"libgcc-ng","requirement":"9.1.0"},{"name":"libstdcxx-ng","requirement":"9.1.0"},{"name":"ncurses","requirement":"6.1"},{"name":"openssl","requirement":"1.1.1d"},{"name":"pip","requirement":"19.2.3"},{"name":"python","requirement":"3.7.4"},{"name":"readline","requirement":"7.0"},{"name":"setuptools","requirement":"41.2.0"},{"name":"sqlite","requirement":"3.29.0"},{"name":"tk","requirement":"8.6.8"},{"name":"wheel","requirement":"0.33.6"},{"name":"xz","requirement":"5.2.4"},{"name":"zlib","requirement":"1.2.11"}],"manifest":[{"name":"pip","requirement":""},{"name":"sqlite","requirement":"3.29.0"}]} - - ' - http_version: - recorded_at: Tue, 01 Oct 2019 14:57:50 GMT -recorded_with: VCR 5.0.0 diff --git a/spec/vcr/Bibliothecary_Parsers_Hackage/parses_dependencies_from_cabal_files.yml b/spec/vcr/Bibliothecary_Parsers_Hackage/parses_dependencies_from_cabal_files.yml deleted file mode 100644 index 248d31df..00000000 --- a/spec/vcr/Bibliothecary_Parsers_Hackage/parses_dependencies_from_cabal_files.yml +++ /dev/null @@ -1,146 +0,0 @@ ---- -http_interactions: -- request: - method: post - uri: http://cabal.libraries.io/parse - body: - encoding: UTF-8 - string: | - name: cabal-parser - version: 0.1.0.0 - synopsis: Tiny Web Service for Parsing Cabal Files - - description: - Helper service for bibliothecary to parse cabal files from various sources. - Provides a fiat JSON represenation for a given cabal file posted to this HTTP API. - - homepage: https://github.com/alunduil/librariesio-cabal-parser - bug-reports: https://github.com/alunduil/librariesio-cabal-parser/issues - license: GPL-3 - license-file: LICENSE - author: Alex Brandt - maintainer: alunduil@alunduil.com - copyright: (c) 2018 Alex Brandt - category: Development - build-type: Simple - cabal-version: >= 1.10 - tested-with: GHC == 8.* - - extra-source-files: - ChangeLog.md - , LICENSE - , README.md - , Setup.hs - , test/examples/*.cabal - - source-repository head - type: git - location: https://github.com/alunduil/librariesio-cabal-parser - branch: develop - - executable cabal-parser - default-language: Haskell2010 - main-is: Main.hs - - ghc-options: -Wall -fwarn-tabs -fwarn-monomorphism-restriction - -fwarn-unused-do-bind - - hs-source-dirs: - src - - other-modules: - API - , Dependencies - , Dependency - , Distribution.Types.GenericPackageDescription.MimeUnrender - , Distribution.Types.PackageName.JSON - , Distribution.Version.JSON - , Environment - - build-depends: - aeson == 1.1.* - , base >= 4.9 && < 4.11 - , Cabal == 2.0.* - , envy == 1.3.* - , pretty == 1.1.* - , servant-server == 0.11.* - , text == 1.2.* - , utf8-string == 1.0.* - , warp == 3.2.* - - other-extensions: - DataKinds - , FlexibleInstances - , MultiParamTypeClasses - , OverloadedStrings - , RecordWildCards - , TypeOperators - - test-suite cabal-parser-tests - default-language: Haskell2010 - type: exitcode-stdio-1.0 - main-is: Spec.hs - - ghc-options: -Wall -fwarn-tabs -fwarn-monomorphism-restriction - -fwarn-unused-do-bind - - hs-source-dirs: - src - , test - - other-modules: - Dependencies - , DependenciesSpec - , Dependency - , Distribution.Types.PackageName.JSON - , Distribution.Version.JSON - , Distribution.Version.JSONSpec - - build-tool-depends: - hspec-discover:hspec-discover == 2.4.* - - build-depends: - aeson == 1.1.* - , base >= 4.9 && < 4.11 - , bytestring == 0.10.* - , Cabal == 2.0.* - , hspec == 2.4.* - , pretty == 1.1.* - , text == 1.2.* - - other-extensions: - headers: - User-Agent: - - Typhoeus - https://github.com/typhoeus/typhoeus - Content-Type: - - text/plain;charset=utf-8 - Expect: - - '' - response: - status: - code: 200 - message: OK - headers: - Date: - - Fri, 18 May 2018 14:14:18 GMT - Content-Type: - - application/json;charset=utf-8 - Transfer-Encoding: - - chunked - Connection: - - keep-alive - Set-Cookie: - - __cfduid=d1235dc5aac0b8d9cca4a2ff63b913fe31526652858; expires=Sat, 18-May-19 - 14:14:18 GMT; path=/; domain=.libraries.io; HttpOnly - Server: - - cloudflare - Cf-Ray: - - 41ceedef102e35b4-LHR - body: - encoding: UTF-8 - string: '[{"requirement":"==1.1.*","name":"aeson","type":"runtime"},{"requirement":">=4.9 - && <4.11","name":"base","type":"runtime"},{"requirement":"==2.0.*","name":"Cabal","type":"runtime"},{"requirement":"==1.3.*","name":"envy","type":"runtime"},{"requirement":"==1.1.*","name":"pretty","type":"runtime"},{"requirement":"==0.11.*","name":"servant-server","type":"runtime"},{"requirement":"==1.2.*","name":"text","type":"runtime"},{"requirement":"==1.0.*","name":"utf8-string","type":"runtime"},{"requirement":"==3.2.*","name":"warp","type":"runtime"},{"requirement":"==2.4.*","name":"hspec-discover","type":"build"},{"requirement":"==1.1.*","name":"aeson","type":"test"},{"requirement":">=4.9 - && <4.11","name":"base","type":"test"},{"requirement":"==0.10.*","name":"bytestring","type":"test"},{"requirement":"==2.0.*","name":"Cabal","type":"test"},{"requirement":"==2.4.*","name":"hspec","type":"test"},{"requirement":"==1.1.*","name":"pretty","type":"test"},{"requirement":"==1.2.*","name":"text","type":"test"}]' - http_version: - recorded_at: Fri, 18 May 2018 14:14:18 GMT -recorded_with: VCR 4.0.0 diff --git a/spec/vcr/Bibliothecary_Parsers_Hex/parses_dependencies_from_mix_exs.yml b/spec/vcr/Bibliothecary_Parsers_Hex/parses_dependencies_from_mix_exs.yml deleted file mode 100644 index eeec64d3..00000000 --- a/spec/vcr/Bibliothecary_Parsers_Hex/parses_dependencies_from_mix_exs.yml +++ /dev/null @@ -1,78 +0,0 @@ ---- -http_interactions: -- request: - method: post - uri: https://mix.libraries.io/ - body: - encoding: UTF-8 - string: | - defmodule Mixup.Mixfile do - use Mix.Project - - def project do - [app: :mixup, - version: "0.0.1", - elixir: "~> 1.0", - deps: deps, - default_task: "server"] - end - - # Configuration for the OTP application - # - # Type `mix help compile.app` for more information - def application do - [applications: [:logger, :cowboy, :plug]] - end - - # defp escript_config do - # [main_module: Servelet] - # end - - # Dependencies can be Hex packages: - # - # {:mydep, "~> 0.3.0"} - # - # Or git/path repositories: - # - # {:mydep, git: "https://github.com/elixir-lang/mydep.git", tag: "0.1.0"} - # - # Type `mix help deps` for more examples and options - defp deps do - [{:poison, "~> 1.3.1"}, - {:plug, "~> 0.11.0"}, - {:cowboy, "~> 1.0.0"}] - end - end - headers: - User-Agent: - - Typhoeus - https://github.com/typhoeus/typhoeus - Expect: - - '' - response: - status: - code: 200 - message: OK - headers: - Date: - - Fri, 18 May 2018 13:55:02 GMT - Content-Length: - - '60' - Connection: - - keep-alive - Set-Cookie: - - __cfduid=d88bd65817c2f3c6acbcbb6f2378e163e1526651702; expires=Sat, 18-May-19 - 13:55:02 GMT; path=/; domain=.libraries.io; HttpOnly - Cache-Control: - - max-age=0, private, must-revalidate - Expect-Ct: - - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" - Server: - - cloudflare - Cf-Ray: - - 41ced1b2dc1f69e3-LHR - body: - encoding: UTF-8 - string: '{"poison":"~> 1.3.1","plug":"~> 0.11.0","cowboy":"~> 1.0.0"}' - http_version: - recorded_at: Fri, 18 May 2018 13:55:02 GMT -recorded_with: VCR 4.0.0 diff --git a/spec/vcr/Bibliothecary_Parsers_Hex/parses_dependencies_from_mix_lock.yml b/spec/vcr/Bibliothecary_Parsers_Hex/parses_dependencies_from_mix_lock.yml deleted file mode 100644 index d130c823..00000000 --- a/spec/vcr/Bibliothecary_Parsers_Hex/parses_dependencies_from_mix_lock.yml +++ /dev/null @@ -1,46 +0,0 @@ ---- -http_interactions: -- request: - method: post - uri: https://mix.libraries.io/lock - body: - encoding: UTF-8 - string: | - %{"cowboy": {:hex, :cowboy, "1.0.4", "a324a8df9f2316c833a470d918aaf73ae894278b8aa6226ce7a9bf699388f878", [:rebar, :make], [{:cowlib, "~> 1.0.0", [hex: :cowlib, optional: false]}, {:ranch, "~> 1.0", [hex: :ranch, optional: false]}]}, - "cowlib": {:hex, :cowlib, "1.0.2", "9d769a1d062c9c3ac753096f868ca121e2730b9a377de23dec0f7e08b1df84ee", [:make], []}, - "plug": {:hex, :plug, "1.1.6", "8927e4028433fcb859e000b9389ee9c37c80eb28378eeeea31b0273350bf668b", [:mix], [{:cowboy, "~> 1.0", [hex: :cowboy, optional: true]}]}, - "poison": {:hex, :poison, "2.1.0", "f583218ced822675e484648fa26c933d621373f01c6c76bd00005d7bd4b82e27", [:mix], []}, - "ranch": {:hex, :ranch, "1.2.1", "a6fb992c10f2187b46ffd17ce398ddf8a54f691b81768f9ef5f461ea7e28c762", [:make], []}} - headers: - User-Agent: - - Typhoeus - https://github.com/typhoeus/typhoeus - Expect: - - '' - response: - status: - code: 200 - message: OK - headers: - Date: - - Fri, 18 May 2018 13:54:15 GMT - Content-Length: - - '218' - Connection: - - keep-alive - Set-Cookie: - - __cfduid=dc63955932290e91982439826434b1dff1526651655; expires=Sat, 18-May-19 - 13:54:15 GMT; path=/; domain=.libraries.io; HttpOnly - Cache-Control: - - max-age=0, private, must-revalidate - Expect-Ct: - - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" - Server: - - cloudflare - Cf-Ray: - - 41ced08c7b1269e3-LHR - body: - encoding: UTF-8 - string: '{"ranch":{"version":"1.2.1","source":"hex"},"poison":{"version":"2.1.0","source":"hex"},"plug":{"version":"1.1.6","source":"hex"},"cowlib":{"version":"1.0.2","source":"hex"},"cowboy":{"version":"1.0.4","source":"hex"}}' - http_version: - recorded_at: Fri, 18 May 2018 13:54:15 GMT -recorded_with: VCR 4.0.0 diff --git a/spec/vcr/Bibliothecary_Parsers_NPM/does_not_parse_self-referential_dependencies_from_yarn_lock.yml b/spec/vcr/Bibliothecary_Parsers_NPM/does_not_parse_self-referential_dependencies_from_yarn_lock.yml deleted file mode 100644 index 4f19d8e6..00000000 --- a/spec/vcr/Bibliothecary_Parsers_NPM/does_not_parse_self-referential_dependencies_from_yarn_lock.yml +++ /dev/null @@ -1,86 +0,0 @@ ---- -http_interactions: -- request: - method: post - uri: https://yarn-parser.libraries.io/parse - body: - encoding: UTF-8 - string: | - # This file is generated by running "yarn install" inside your project. - # Manual changes might be lost - proceed with caution! - - __metadata: - version: 8 - cacheKey: 10c0 - - "js-tokens@npm:^3.0.0 || ^4.0.0": - version: 4.0.0 - resolution: "js-tokens@npm:4.0.0" - checksum: 10c0/e248708d377aa058eacf2037b07ded847790e6de892bbad3dac0abba2e759cb9f121b00099a65195616badcb6eca8d14d975cb3e89eb1cfda644756402c8aeed - languageName: node - linkType: hard - - "left-pad@npm:^1.3.0": - version: 1.3.0 - resolution: "left-pad@npm:1.3.0" - checksum: 10c0/3fb59c76e281a2f5c810ad71dbbb8eba8b10c6cf94733dc7f27b8c516a5376cacea53543e76f6ae477d866c8954b27f1e15ca349424c2542474eb5bb1d2b6955 - languageName: node - linkType: hard - - "loose-envify@npm:^1.1.0": - version: 1.4.0 - resolution: "loose-envify@npm:1.4.0" - dependencies: - js-tokens: "npm:^3.0.0 || ^4.0.0" - bin: - loose-envify: cli.js - checksum: 10c0/655d110220983c1a4b9c0c679a2e8016d4b67f6e9c7b5435ff5979ecdb20d0813f4dec0a08674fcbdd4846a3f07edbb50a36811fd37930b94aaa0d9daceb017e - languageName: node - linkType: hard - - "react@npm:^18.3.1": - version: 18.3.1 - resolution: "react@npm:18.3.1" - dependencies: - loose-envify: "npm:^1.1.0" - checksum: 10c0/283e8c5efcf37802c9d1ce767f302dd569dd97a70d9bb8c7be79a789b9902451e0d16334b05d73299b20f048cbc3c7d288bbbde10b701fa194e2089c237dbea3 - languageName: node - linkType: hard - - "yarn-lock@workspace:.": - version: 0.0.0-use.local - resolution: "yarn-lock@workspace:." - dependencies: - left-pad: "npm:^1.3.0" - react: "npm:^18.3.1" - languageName: unknown - linkType: soft - headers: - User-Agent: - - Typhoeus - https://github.com/typhoeus/typhoeus - Expect: - - '' - response: - status: - code: 200 - message: '' - headers: - Access-Control-Allow-Origin: - - "*" - Content-Type: - - application/json; charset=utf-8 - Content-Length: - - '421' - Etag: - - W/"1a5-EDXxFmsJ+BlbCxU/bYvf/EPilrU" - Date: - - Mon, 22 Jul 2024 20:18:18 GMT - Via: - - 1.1 google - Alt-Svc: - - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 - body: - encoding: ASCII-8BIT - string: '[{"name":"js-tokens","version":"4.0.0","requirement":"^3.0.0 || ^4.0.0","type":"runtime"},{"name":"left-pad","version":"1.3.0","requirement":"^1.3.0","type":"runtime"},{"name":"loose-envify","version":"1.4.0","requirement":"^1.1.0","type":"runtime"},{"name":"react","version":"18.3.1","requirement":"^18.3.1","type":"runtime"},{"name":"yarn-lock","version":"0.0.0-use.local","requirement":"workspace:.","type":"runtime"}]' - recorded_at: Mon, 22 Jul 2024 20:18:18 GMT -recorded_with: VCR 6.1.0 diff --git a/spec/vcr/Bibliothecary_Parsers_NPM/parses_dependencies_from_yarn_lock.yml b/spec/vcr/Bibliothecary_Parsers_NPM/parses_dependencies_from_yarn_lock.yml deleted file mode 100644 index 39743072..00000000 --- a/spec/vcr/Bibliothecary_Parsers_NPM/parses_dependencies_from_yarn_lock.yml +++ /dev/null @@ -1,149 +0,0 @@ ---- -http_interactions: -- request: - method: post - uri: https://yarn-parser.libraries.io/parse - body: - encoding: UTF-8 - string: | - # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. - # yarn lockfile v1 - - - body-parser@^1.15.2: - version "1.16.1" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.16.1.tgz#51540d045adfa7a0c6995a014bb6b1ed9b802329" - dependencies: - bytes "2.4.0" - content-type "~1.0.2" - debug "2.6.1" - depd "~1.1.0" - http-errors "~1.5.1" - iconv-lite "0.4.15" - on-finished "~2.3.0" - qs "6.2.1" - raw-body "~2.2.0" - type-is "~1.6.14" - - bytes@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.4.0.tgz#7d97196f9d5baf7f6935e25985549edd2a6c2339" - - content-type@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed" - - debug@2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.1.tgz#79855090ba2c4e3115cc7d8769491d58f0491351" - dependencies: - ms "0.7.2" - - depd@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3" - - ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - - http-errors@~1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.5.1.tgz#788c0d2c1de2c81b9e6e8c01843b6b97eb920750" - dependencies: - inherits "2.0.3" - setprototypeof "1.0.2" - statuses ">= 1.3.1 < 2" - - iconv-lite@0.4.15: - version "0.4.15" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb" - - inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - - media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - - mime-db@~1.26.0: - version "1.26.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.26.0.tgz#eaffcd0e4fc6935cf8134da246e2e6c35305adff" - - mime-types@~2.1.13: - version "2.1.14" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.14.tgz#f7ef7d97583fcaf3b7d282b6f8b5679dab1e94ee" - dependencies: - mime-db "~1.26.0" - - ms@0.7.2: - version "0.7.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" - - on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - dependencies: - ee-first "1.1.1" - - qs@6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.1.tgz#ce03c5ff0935bc1d9d69a9f14cbd18e568d67625" - - raw-body@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.2.0.tgz#994976cf6a5096a41162840492f0bdc5d6e7fb96" - dependencies: - bytes "2.4.0" - iconv-lite "0.4.15" - unpipe "1.0.0" - - setprototypeof@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.2.tgz#81a552141ec104b88e89ce383103ad5c66564d08" - - "statuses@>= 1.3.1 < 2": - version "1.3.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" - - type-is@~1.6.14: - version "1.6.14" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.14.tgz#e219639c17ded1ca0789092dd54a03826b817cb2" - dependencies: - media-typer "0.3.0" - mime-types "~2.1.13" - - unpipe@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - headers: - User-Agent: - - Typhoeus - https://github.com/typhoeus/typhoeus - Expect: - - '' - response: - status: - code: 200 - message: '' - headers: - Access-Control-Allow-Origin: - - "*" - Content-Type: - - application/json; charset=utf-8 - Content-Length: - - '1567' - Etag: - - W/"61f-Zg/H+LMERNyPvokiR7vWmFyW/gU" - Date: - - Fri, 04 Sep 2020 19:40:00 GMT - Via: - - 1.1 google - Alt-Svc: - - clear - body: - encoding: UTF-8 - string: '[{"name":"body-parser","version":"1.16.1","requirement":"^1.15.2","type":"runtime"},{"name":"bytes","version":"2.4.0","requirement":"2.4.0","type":"runtime"},{"name":"content-type","version":"1.0.2","requirement":"~1.0.2","type":"runtime"},{"name":"debug","version":"2.6.1","requirement":"2.6.1","type":"runtime"},{"name":"depd","version":"1.1.0","requirement":"~1.1.0","type":"runtime"},{"name":"ee-first","version":"1.1.1","requirement":"1.1.1","type":"runtime"},{"name":"http-errors","version":"1.5.1","requirement":"~1.5.1","type":"runtime"},{"name":"iconv-lite","version":"0.4.15","requirement":"0.4.15","type":"runtime"},{"name":"inherits","version":"2.0.3","requirement":"2.0.3","type":"runtime"},{"name":"media-typer","version":"0.3.0","requirement":"0.3.0","type":"runtime"},{"name":"mime-db","version":"1.26.0","requirement":"~1.26.0","type":"runtime"},{"name":"mime-types","version":"2.1.14","requirement":"~2.1.13","type":"runtime"},{"name":"ms","version":"0.7.2","requirement":"0.7.2","type":"runtime"},{"name":"on-finished","version":"2.3.0","requirement":"~2.3.0","type":"runtime"},{"name":"qs","version":"6.2.1","requirement":"6.2.1","type":"runtime"},{"name":"raw-body","version":"2.2.0","requirement":"~2.2.0","type":"runtime"},{"name":"setprototypeof","version":"1.0.2","requirement":"1.0.2","type":"runtime"},{"name":"statuses","version":"1.3.1","requirement":">= - 1.3.1 < 2","type":"runtime"},{"name":"type-is","version":"1.6.14","requirement":"~1.6.14","type":"runtime"},{"name":"unpipe","version":"1.0.0","requirement":"1.0.0","type":"runtime"}]' - recorded_at: Fri, 04 Sep 2020 19:40:00 GMT -recorded_with: VCR 6.0.0 diff --git a/spec/vcr/Bibliothecary_Parsers_NPM/parses_dependencies_that_have_multiple_versions_in_yarn_json.yml b/spec/vcr/Bibliothecary_Parsers_NPM/parses_dependencies_that_have_multiple_versions_in_yarn_json.yml deleted file mode 100644 index 9854b99b..00000000 --- a/spec/vcr/Bibliothecary_Parsers_NPM/parses_dependencies_that_have_multiple_versions_in_yarn_json.yml +++ /dev/null @@ -1,57 +0,0 @@ ---- -http_interactions: -- request: - method: post - uri: https://yarn-parser.libraries.io/parse - body: - encoding: UTF-8 - string: | - # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. - # yarn lockfile v1 - - - find-versions@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-4.0.0.tgz#3c57e573bf97769b8cb8df16934b627915da4965" - integrity sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ== - dependencies: - semver-regex "^3.1.2" - - semver-regex@^3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-3.1.3.tgz#b2bcc6f97f63269f286994e297e229b6245d0dc3" - integrity sha512-Aqi54Mk9uYTjVexLnR67rTyBusmwd04cLkHy9hNvk3+G3nT2Oyg7E0l4XVbOaNwIvQ3hHeYxGcyEy+mKreyBFQ== - - semver-regex@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-4.0.2.tgz#fd3124efe81647b33eb90a9de07cb72992424a02" - integrity sha512-xyuBZk1XYqQkB687hMQqrCP+J9bdJSjPpZwdmmNjyxKW1K3LDXxqxw91Egaqkh/yheBIVtKPt4/1eybKVdCx3g== - headers: - User-Agent: - - Typhoeus - https://github.com/typhoeus/typhoeus - Expect: - - '' - response: - status: - code: 200 - message: '' - headers: - Access-Control-Allow-Origin: - - "*" - Content-Type: - - application/json; charset=utf-8 - Content-Length: - - '247' - Etag: - - W/"f7-fWJr4R+dXKOJZsgt4ZxHPxJbUdg" - Date: - - Fri, 22 Oct 2021 02:18:36 GMT - Via: - - 1.1 google - Alt-Svc: - - clear - body: - encoding: ASCII-8BIT - string: '[{"name":"find-versions","version":"4.0.0","requirement":"4.0.0","type":"runtime"},{"name":"semver-regex","version":"3.1.3","requirement":"^3.1.2","type":"runtime"},{"name":"semver-regex","version":"4.0.2","requirement":"^4.0.0","type":"runtime"}]' - recorded_at: Fri, 22 Oct 2021 02:18:36 GMT -recorded_with: VCR 6.0.0 diff --git a/spec/vcr/Bibliothecary_Parsers_NPM/parses_git_dependencies_from_yarn_lock.yml b/spec/vcr/Bibliothecary_Parsers_NPM/parses_git_dependencies_from_yarn_lock.yml deleted file mode 100644 index 47e8c628..00000000 --- a/spec/vcr/Bibliothecary_Parsers_NPM/parses_git_dependencies_from_yarn_lock.yml +++ /dev/null @@ -1,44 +0,0 @@ ---- -http_interactions: -- request: - method: post - uri: https://yarn-parser.libraries.io/parse - body: - encoding: UTF-8 - string: | - # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. - # yarn lockfile v1 - - - "vue@https://github.com/vuejs/vue.git#v2.6.12": - version "2.6.12" - resolved "https://github.com/vuejs/vue.git#bb253db0b3e17124b6d1fe93fbf2db35470a1347" - headers: - User-Agent: - - Typhoeus - https://github.com/typhoeus/typhoeus - Expect: - - '' - response: - status: - code: 200 - message: '' - headers: - Access-Control-Allow-Origin: - - "*" - Content-Type: - - application/json; charset=utf-8 - Content-Length: - - '109' - Etag: - - W/"6d-oLKqikq+LrY+b/Lx0yRs25w0LB0" - Date: - - Fri, 04 Sep 2020 19:40:00 GMT - Via: - - 1.1 google - Alt-Svc: - - clear - body: - encoding: UTF-8 - string: '[{"name":"vue","version":"2.6.12","requirement":"https://github.com/vuejs/vue.git#v2.6.12","type":"runtime"}]' - recorded_at: Fri, 04 Sep 2020 19:40:00 GMT -recorded_with: VCR 6.0.0 diff --git a/spec/vcr/Bibliothecary_Parsers_NPM/with_local_path_dependencies/parses_local_path_dependencies_from_yarn_lock.yml b/spec/vcr/Bibliothecary_Parsers_NPM/with_local_path_dependencies/parses_local_path_dependencies_from_yarn_lock.yml deleted file mode 100644 index e2052ac7..00000000 --- a/spec/vcr/Bibliothecary_Parsers_NPM/with_local_path_dependencies/parses_local_path_dependencies_from_yarn_lock.yml +++ /dev/null @@ -1,67 +0,0 @@ ---- -http_interactions: -- request: - method: post - uri: https://yarn-parser.libraries.io/parse - body: - encoding: UTF-8 - string: | - # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. - # yarn lockfile v1 - - - "js-tokens@^3.0.0 || ^4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - - left-pad@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz" - integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== - - loose-envify@^1.1.0: - version "1.4.0" - resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - - "other-package@file:src/other-package": - version "1.0.0" - - react@^18.3.1: - version "18.3.1" - resolved "https://registry.npmjs.org/react/-/react-18.3.1.tgz" - integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== - dependencies: - loose-envify "^1.1.0" - headers: - User-Agent: - - Typhoeus - https://github.com/typhoeus/typhoeus - Expect: - - '' - response: - status: - code: 200 - message: '' - headers: - Access-Control-Allow-Origin: - - "*" - Content-Type: - - application/json; charset=utf-8 - Content-Length: - - '426' - Etag: - - W/"1aa-l82QDTBVXlkGCgODe/BTFaAujpg" - Date: - - Wed, 08 May 2024 20:21:52 GMT - Via: - - 1.1 google - Alt-Svc: - - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 - body: - encoding: ASCII-8BIT - string: '[{"name":"js-tokens","version":"4.0.0","requirement":"^3.0.0 || ^4.0.0","type":"runtime"},{"name":"left-pad","version":"1.3.0","requirement":"^1.3.0","type":"runtime"},{"name":"loose-envify","version":"1.4.0","requirement":"^1.1.0","type":"runtime"},{"name":"other-package","version":"1.0.0","requirement":"file:src/other-package","type":"runtime"},{"name":"react","version":"18.3.1","requirement":"^18.3.1","type":"runtime"}]' - recorded_at: Wed, 08 May 2024 20:21:52 GMT -recorded_with: VCR 6.2.0 diff --git a/spec/vcr/Bibliothecary_Parsers_SwiftPM/parses_dependencies_from_Package_swift.yml b/spec/vcr/Bibliothecary_Parsers_SwiftPM/parses_dependencies_from_Package_swift.yml deleted file mode 100644 index 37de2240..00000000 --- a/spec/vcr/Bibliothecary_Parsers_SwiftPM/parses_dependencies_from_Package_swift.yml +++ /dev/null @@ -1,43 +0,0 @@ ---- -http_interactions: -- request: - method: post - uri: http://swift.libraries.io/to-json - body: - encoding: UTF-8 - string: "import PackageDescription\n\nlet package = Package(\n name: \"swift-package-converter\",\n - \ dependencies: [\n \t.Package(url: \"https://github.com/qutheory/vapor.git\", - majorVersion: 0, minor: 12),\n \t.Package(url: \"https://github.com/czechboy0/Tasks.git\", - majorVersion: 0, minor: 2),\n \t.Package(url: \"https://github.com/czechboy0/Environment.git\", - majorVersion: 0, minor: 4),\n ]\n)\n" - headers: - User-Agent: - - Typhoeus - https://github.com/typhoeus/typhoeus - Expect: - - '' - response: - status: - code: 200 - message: OK - headers: - Content-Length: - - '474' - Vapor-Duration: - - 539.948 ms - Content-Type: - - application/json - Date: - - Fri, 18 May 2018 14:24:02 GMT - Server: - - Vapor 1.0.2 - body: - encoding: UTF-8 - string: '{"dependencies": [{"url": "https://github.com/qutheory/vapor.git", - "version": {"lowerBound": "0.12.0", "upperBound": "0.12.9223372036854775807"}}, - {"url": "https://github.com/czechboy0/Tasks.git", "version": {"lowerBound": - "0.2.0", "upperBound": "0.2.9223372036854775807"}}, {"url": "https://github.com/czechboy0/Environment.git", - "version": {"lowerBound": "0.4.0", "upperBound": "0.4.9223372036854775807"}}], - "exclude": [], "name": "swift-package-converter", "targets": []}' - http_version: - recorded_at: Fri, 18 May 2018 14:24:02 GMT -recorded_with: VCR 4.0.0