importmap-package-manager 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +14 -1
- data/lib/importmap-package-manager/manager.rb +10 -3
- data/lib/importmap-package-manager/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 791dde6e33bec01df8818663bfb94d209c8fa02b71a40bea24312d27f5561cf6
|
4
|
+
data.tar.gz: 3f361e19c1872803ced8a0244df898400d44ba65cf376e62e580ee13d18fb504
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ac524099ee91327feb693e6b204e4dd7cd1268d194dff7992b288913c7598805f1d09d073f2764ba378403d077c4e6d40ac22521d2cefe886061a47dea01962e
|
7
|
+
data.tar.gz: 1cf2c31735e802eaab2bbcfdf86a0b0bd5ce651c044e209701000fd7bb20d5871a776a1c9ddb16608a70c5e74bf7bccf261f6870b01554daf04384f073f333ee
|
data/README.md
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
[![Version][rubygems_badge]][rubygems]
|
2
|
+
[![CI][ci_badge]][ci]
|
3
|
+
[![License][license_badge]][license]
|
4
|
+
|
5
|
+
|
1
6
|
# importmap-package-manager
|
2
7
|
|
3
8
|
`importmap-package-manager` adds package version management to [importmap-rails](https://github.com/rails/importmap-rails) via version ranges, similar to how version ranges can be specified in `Gemfile` (eg `~> 4.0`).
|
@@ -55,7 +60,8 @@ In this case, the key is just a unique identifier. It isn't used at all.
|
|
55
60
|
|
56
61
|
The options that can be passed for each import are:
|
57
62
|
|
58
|
-
|
63
|
+
| Option | Description |
|
64
|
+
| ------ | ----------- |
|
59
65
|
| package | Package name, as listed in npmjs.com |
|
60
66
|
| version | Version number constraint, using [ruby syntax](https://guides.rubygems.org/patterns/#pessimistic-version-constraint) |
|
61
67
|
| subpath | A subpath within the package to pin. This will be used in both the import name, and the path. |
|
@@ -78,3 +84,10 @@ importmap-package-manager is released under the [MIT License](https://opensource
|
|
78
84
|
## Code of Conduct
|
79
85
|
|
80
86
|
Everyone interacting in the Importmap::Version::Manager project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/quimbee/importmap-package-manager/blob/master/CODE_OF_CONDUCT.md).
|
87
|
+
|
88
|
+
[rubygems_badge]: https://badgen.net/rubygems/v/importmap-package-manager
|
89
|
+
[rubygems]: https://rubygems.org/gems/importmap-package-manager
|
90
|
+
[ci_badge]: https://badgen.net/circleci/github/Quimbee/importmap-package-manager/main
|
91
|
+
[ci]: https://app.circleci.com/pipelines/github/Quimbee/importmap-package-manager?branch=main
|
92
|
+
[license_badge]: https://badgen.net/static/license/MIT/blue
|
93
|
+
[license]: LICENSE
|
@@ -50,10 +50,13 @@ module ImportmapPackageManager
|
|
50
50
|
def resolve_package_version(package, version_requirement)
|
51
51
|
# Step 1: Query NPM registry for all versions
|
52
52
|
response = Net::HTTP.get(URI("https://registry.npmjs.org/#{package}"))
|
53
|
-
versions = JSON.parse(response)["versions"].keys
|
53
|
+
versions = JSON.parse(response)["versions"].keys
|
54
54
|
|
55
55
|
# Step 2: Find latest version that matches version_requirement
|
56
|
-
versions.
|
56
|
+
satisfying_versions = versions.select { |version| version_requirement.satisfied_by?(Gem::Version.new(version)) }
|
57
|
+
allow_prerelease = satisfying_versions.all? { |version| prerelease?(version) }
|
58
|
+
sorted = satisfying_versions.sort { |a, b| Gem::Version.new(a) <=> Gem::Version.new(b) }.reverse
|
59
|
+
sorted.find { |version| (allow_prerelease || !prerelease?(version)) }
|
57
60
|
rescue StandardError => e
|
58
61
|
raise HTTPError, "Unexpected transport error (#{e.class}: #{e.message})"
|
59
62
|
end
|
@@ -65,7 +68,7 @@ module ImportmapPackageManager
|
|
65
68
|
install: import_definitions,
|
66
69
|
flattenScope: true,
|
67
70
|
env: %w[browser module production],
|
68
|
-
defaultProvider: "jspm"
|
71
|
+
defaultProvider: "jspm.io"
|
69
72
|
}.to_json,
|
70
73
|
"Content-Type" => "application/json"
|
71
74
|
)
|
@@ -94,6 +97,10 @@ module ImportmapPackageManager
|
|
94
97
|
end
|
95
98
|
end
|
96
99
|
end
|
100
|
+
|
101
|
+
def prerelease?(version_string)
|
102
|
+
/[a-zA-Z]/.match?(version_string)
|
103
|
+
end
|
97
104
|
end
|
98
105
|
end
|
99
106
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: importmap-package-manager
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Derek Kniffin
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-05-27 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description:
|
14
14
|
email:
|
@@ -47,7 +47,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
47
47
|
- !ruby/object:Gem::Version
|
48
48
|
version: '0'
|
49
49
|
requirements: []
|
50
|
-
rubygems_version: 3.
|
50
|
+
rubygems_version: 3.5.11
|
51
51
|
signing_key:
|
52
52
|
specification_version: 4
|
53
53
|
summary: Manages importmap package versions using ruby-like version constraints
|