semver 6.2.0 → 6.3.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.
- package/CHANGELOG.md +23 -0
- package/package.json +1 -1
- package/semver.js +127 -120
- package/bin/.semver.js.swp +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# changes log
|
|
2
2
|
|
|
3
|
+
## 6.2.0
|
|
4
|
+
|
|
5
|
+
* Coerce numbers to strings when passed to semver.coerce()
|
|
6
|
+
* Add `rtl` option to coerce from right to left
|
|
7
|
+
|
|
8
|
+
## 6.1.3
|
|
9
|
+
|
|
10
|
+
* Handle X-ranges properly in includePrerelease mode
|
|
11
|
+
|
|
12
|
+
## 6.1.2
|
|
13
|
+
|
|
14
|
+
* Do not throw when testing invalid version strings
|
|
15
|
+
|
|
16
|
+
## 6.1.1
|
|
17
|
+
|
|
18
|
+
* Add options support for semver.coerce()
|
|
19
|
+
* Handle undefined version passed to Range.test
|
|
20
|
+
|
|
21
|
+
## 6.1.0
|
|
22
|
+
|
|
23
|
+
* Add semver.compareBuild function
|
|
24
|
+
* Support `*` in semver.intersects
|
|
25
|
+
|
|
3
26
|
## 6.0
|
|
4
27
|
|
|
5
28
|
* Fix `intersects` logic.
|
package/package.json
CHANGED
package/semver.js
CHANGED
|
@@ -29,75 +29,80 @@ var MAX_SAFE_COMPONENT_LENGTH = 16
|
|
|
29
29
|
// The actual regexps go on exports.re
|
|
30
30
|
var re = exports.re = []
|
|
31
31
|
var src = exports.src = []
|
|
32
|
+
var t = exports.tokens = {}
|
|
32
33
|
var R = 0
|
|
33
34
|
|
|
35
|
+
function tok (n) {
|
|
36
|
+
t[n] = R++
|
|
37
|
+
}
|
|
38
|
+
|
|
34
39
|
// The following Regular Expressions can be used for tokenizing,
|
|
35
40
|
// validating, and parsing SemVer version strings.
|
|
36
41
|
|
|
37
42
|
// ## Numeric Identifier
|
|
38
43
|
// A single `0`, or a non-zero digit followed by zero or more digits.
|
|
39
44
|
|
|
40
|
-
|
|
41
|
-
src[NUMERICIDENTIFIER] = '0|[1-9]\\d*'
|
|
42
|
-
|
|
43
|
-
src[NUMERICIDENTIFIERLOOSE] = '[0-9]+'
|
|
45
|
+
tok('NUMERICIDENTIFIER')
|
|
46
|
+
src[t.NUMERICIDENTIFIER] = '0|[1-9]\\d*'
|
|
47
|
+
tok('NUMERICIDENTIFIERLOOSE')
|
|
48
|
+
src[t.NUMERICIDENTIFIERLOOSE] = '[0-9]+'
|
|
44
49
|
|
|
45
50
|
// ## Non-numeric Identifier
|
|
46
51
|
// Zero or more digits, followed by a letter or hyphen, and then zero or
|
|
47
52
|
// more letters, digits, or hyphens.
|
|
48
53
|
|
|
49
|
-
|
|
50
|
-
src[NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-][a-zA-Z0-9-]*'
|
|
54
|
+
tok('NONNUMERICIDENTIFIER')
|
|
55
|
+
src[t.NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-][a-zA-Z0-9-]*'
|
|
51
56
|
|
|
52
57
|
// ## Main Version
|
|
53
58
|
// Three dot-separated numeric identifiers.
|
|
54
59
|
|
|
55
|
-
|
|
56
|
-
src[MAINVERSION] = '(' + src[NUMERICIDENTIFIER] + ')\\.' +
|
|
57
|
-
'(' + src[NUMERICIDENTIFIER] + ')\\.' +
|
|
58
|
-
'(' + src[NUMERICIDENTIFIER] + ')'
|
|
60
|
+
tok('MAINVERSION')
|
|
61
|
+
src[t.MAINVERSION] = '(' + src[t.NUMERICIDENTIFIER] + ')\\.' +
|
|
62
|
+
'(' + src[t.NUMERICIDENTIFIER] + ')\\.' +
|
|
63
|
+
'(' + src[t.NUMERICIDENTIFIER] + ')'
|
|
59
64
|
|
|
60
|
-
|
|
61
|
-
src[MAINVERSIONLOOSE] = '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' +
|
|
62
|
-
'(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' +
|
|
63
|
-
'(' + src[NUMERICIDENTIFIERLOOSE] + ')'
|
|
65
|
+
tok('MAINVERSIONLOOSE')
|
|
66
|
+
src[t.MAINVERSIONLOOSE] = '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\.' +
|
|
67
|
+
'(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\.' +
|
|
68
|
+
'(' + src[t.NUMERICIDENTIFIERLOOSE] + ')'
|
|
64
69
|
|
|
65
70
|
// ## Pre-release Version Identifier
|
|
66
71
|
// A numeric identifier, or a non-numeric identifier.
|
|
67
72
|
|
|
68
|
-
|
|
69
|
-
src[PRERELEASEIDENTIFIER] = '(?:' + src[NUMERICIDENTIFIER] +
|
|
70
|
-
'|' + src[NONNUMERICIDENTIFIER] + ')'
|
|
73
|
+
tok('PRERELEASEIDENTIFIER')
|
|
74
|
+
src[t.PRERELEASEIDENTIFIER] = '(?:' + src[t.NUMERICIDENTIFIER] +
|
|
75
|
+
'|' + src[t.NONNUMERICIDENTIFIER] + ')'
|
|
71
76
|
|
|
72
|
-
|
|
73
|
-
src[PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[NUMERICIDENTIFIERLOOSE] +
|
|
74
|
-
'|' + src[NONNUMERICIDENTIFIER] + ')'
|
|
77
|
+
tok('PRERELEASEIDENTIFIERLOOSE')
|
|
78
|
+
src[t.PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[t.NUMERICIDENTIFIERLOOSE] +
|
|
79
|
+
'|' + src[t.NONNUMERICIDENTIFIER] + ')'
|
|
75
80
|
|
|
76
81
|
// ## Pre-release Version
|
|
77
82
|
// Hyphen, followed by one or more dot-separated pre-release version
|
|
78
83
|
// identifiers.
|
|
79
84
|
|
|
80
|
-
|
|
81
|
-
src[PRERELEASE] = '(?:-(' + src[PRERELEASEIDENTIFIER] +
|
|
82
|
-
'(?:\\.' + src[PRERELEASEIDENTIFIER] + ')*))'
|
|
85
|
+
tok('PRERELEASE')
|
|
86
|
+
src[t.PRERELEASE] = '(?:-(' + src[t.PRERELEASEIDENTIFIER] +
|
|
87
|
+
'(?:\\.' + src[t.PRERELEASEIDENTIFIER] + ')*))'
|
|
83
88
|
|
|
84
|
-
|
|
85
|
-
src[PRERELEASELOOSE] = '(?:-?(' + src[PRERELEASEIDENTIFIERLOOSE] +
|
|
86
|
-
'(?:\\.' + src[PRERELEASEIDENTIFIERLOOSE] + ')*))'
|
|
89
|
+
tok('PRERELEASELOOSE')
|
|
90
|
+
src[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] +
|
|
91
|
+
'(?:\\.' + src[t.PRERELEASEIDENTIFIERLOOSE] + ')*))'
|
|
87
92
|
|
|
88
93
|
// ## Build Metadata Identifier
|
|
89
94
|
// Any combination of digits, letters, or hyphens.
|
|
90
95
|
|
|
91
|
-
|
|
92
|
-
src[BUILDIDENTIFIER] = '[0-9A-Za-z-]+'
|
|
96
|
+
tok('BUILDIDENTIFIER')
|
|
97
|
+
src[t.BUILDIDENTIFIER] = '[0-9A-Za-z-]+'
|
|
93
98
|
|
|
94
99
|
// ## Build Metadata
|
|
95
100
|
// Plus sign, followed by one or more period-separated build metadata
|
|
96
101
|
// identifiers.
|
|
97
102
|
|
|
98
|
-
|
|
99
|
-
src[BUILD] = '(?:\\+(' + src[BUILDIDENTIFIER] +
|
|
100
|
-
'(?:\\.' + src[BUILDIDENTIFIER] + ')*))'
|
|
103
|
+
tok('BUILD')
|
|
104
|
+
src[t.BUILD] = '(?:\\+(' + src[t.BUILDIDENTIFIER] +
|
|
105
|
+
'(?:\\.' + src[t.BUILDIDENTIFIER] + ')*))'
|
|
101
106
|
|
|
102
107
|
// ## Full Version String
|
|
103
108
|
// A main version, followed optionally by a pre-release version and
|
|
@@ -108,131 +113,133 @@ src[BUILD] = '(?:\\+(' + src[BUILDIDENTIFIER] +
|
|
|
108
113
|
// capturing group, because it should not ever be used in version
|
|
109
114
|
// comparison.
|
|
110
115
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
116
|
+
tok('FULL')
|
|
117
|
+
tok('FULLPLAIN')
|
|
118
|
+
src[t.FULLPLAIN] = 'v?' + src[t.MAINVERSION] +
|
|
119
|
+
src[t.PRERELEASE] + '?' +
|
|
120
|
+
src[t.BUILD] + '?'
|
|
115
121
|
|
|
116
|
-
src[FULL] = '^' + FULLPLAIN + '$'
|
|
122
|
+
src[t.FULL] = '^' + src[t.FULLPLAIN] + '$'
|
|
117
123
|
|
|
118
124
|
// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.
|
|
119
125
|
// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty
|
|
120
126
|
// common in the npm registry.
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
127
|
+
tok('LOOSEPLAIN')
|
|
128
|
+
src[t.LOOSEPLAIN] = '[v=\\s]*' + src[t.MAINVERSIONLOOSE] +
|
|
129
|
+
src[t.PRERELEASELOOSE] + '?' +
|
|
130
|
+
src[t.BUILD] + '?'
|
|
124
131
|
|
|
125
|
-
|
|
126
|
-
src[LOOSE] = '^' + LOOSEPLAIN + '$'
|
|
132
|
+
tok('LOOSE')
|
|
133
|
+
src[t.LOOSE] = '^' + src[t.LOOSEPLAIN] + '$'
|
|
127
134
|
|
|
128
|
-
|
|
129
|
-
src[GTLT] = '((?:<|>)?=?)'
|
|
135
|
+
tok('GTLT')
|
|
136
|
+
src[t.GTLT] = '((?:<|>)?=?)'
|
|
130
137
|
|
|
131
138
|
// Something like "2.*" or "1.2.x".
|
|
132
139
|
// Note that "x.x" is a valid xRange identifer, meaning "any version"
|
|
133
140
|
// Only the first item is strictly required.
|
|
134
|
-
|
|
135
|
-
src[XRANGEIDENTIFIERLOOSE] = src[NUMERICIDENTIFIERLOOSE] + '|x|X|\\*'
|
|
136
|
-
|
|
137
|
-
src[XRANGEIDENTIFIER] = src[NUMERICIDENTIFIER] + '|x|X|\\*'
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
src[XRANGEPLAIN] = '[v=\\s]*(' + src[XRANGEIDENTIFIER] + ')' +
|
|
141
|
-
'(?:\\.(' + src[XRANGEIDENTIFIER] + ')' +
|
|
142
|
-
'(?:\\.(' + src[XRANGEIDENTIFIER] + ')' +
|
|
143
|
-
'(?:' + src[PRERELEASE] + ')?' +
|
|
144
|
-
src[BUILD] + '?' +
|
|
141
|
+
tok('XRANGEIDENTIFIERLOOSE')
|
|
142
|
+
src[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + '|x|X|\\*'
|
|
143
|
+
tok('XRANGEIDENTIFIER')
|
|
144
|
+
src[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + '|x|X|\\*'
|
|
145
|
+
|
|
146
|
+
tok('XRANGEPLAIN')
|
|
147
|
+
src[t.XRANGEPLAIN] = '[v=\\s]*(' + src[t.XRANGEIDENTIFIER] + ')' +
|
|
148
|
+
'(?:\\.(' + src[t.XRANGEIDENTIFIER] + ')' +
|
|
149
|
+
'(?:\\.(' + src[t.XRANGEIDENTIFIER] + ')' +
|
|
150
|
+
'(?:' + src[t.PRERELEASE] + ')?' +
|
|
151
|
+
src[t.BUILD] + '?' +
|
|
145
152
|
')?)?'
|
|
146
153
|
|
|
147
|
-
|
|
148
|
-
src[XRANGEPLAINLOOSE] = '[v=\\s]*(' + src[XRANGEIDENTIFIERLOOSE] + ')' +
|
|
149
|
-
'(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' +
|
|
150
|
-
'(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' +
|
|
151
|
-
'(?:' + src[PRERELEASELOOSE] + ')?' +
|
|
152
|
-
src[BUILD] + '?' +
|
|
154
|
+
tok('XRANGEPLAINLOOSE')
|
|
155
|
+
src[t.XRANGEPLAINLOOSE] = '[v=\\s]*(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +
|
|
156
|
+
'(?:\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +
|
|
157
|
+
'(?:\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +
|
|
158
|
+
'(?:' + src[t.PRERELEASELOOSE] + ')?' +
|
|
159
|
+
src[t.BUILD] + '?' +
|
|
153
160
|
')?)?'
|
|
154
161
|
|
|
155
|
-
|
|
156
|
-
src[XRANGE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAIN] + '$'
|
|
157
|
-
|
|
158
|
-
src[XRANGELOOSE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAINLOOSE] + '$'
|
|
162
|
+
tok('XRANGE')
|
|
163
|
+
src[t.XRANGE] = '^' + src[t.GTLT] + '\\s*' + src[t.XRANGEPLAIN] + '$'
|
|
164
|
+
tok('XRANGELOOSE')
|
|
165
|
+
src[t.XRANGELOOSE] = '^' + src[t.GTLT] + '\\s*' + src[t.XRANGEPLAINLOOSE] + '$'
|
|
159
166
|
|
|
160
167
|
// Coercion.
|
|
161
168
|
// Extract anything that could conceivably be a part of a valid semver
|
|
162
|
-
|
|
163
|
-
src[COERCE] = '(^|[^\\d])' +
|
|
169
|
+
tok('COERCE')
|
|
170
|
+
src[t.COERCE] = '(^|[^\\d])' +
|
|
164
171
|
'(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' +
|
|
165
172
|
'(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +
|
|
166
173
|
'(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +
|
|
167
174
|
'(?:$|[^\\d])'
|
|
168
|
-
|
|
169
|
-
re[COERCERTL] = new RegExp(src[COERCE], 'g')
|
|
175
|
+
tok('COERCERTL')
|
|
176
|
+
re[t.COERCERTL] = new RegExp(src[t.COERCE], 'g')
|
|
170
177
|
|
|
171
178
|
// Tilde ranges.
|
|
172
179
|
// Meaning is "reasonably at or greater than"
|
|
173
|
-
|
|
174
|
-
src[LONETILDE] = '(?:~>?)'
|
|
180
|
+
tok('LONETILDE')
|
|
181
|
+
src[t.LONETILDE] = '(?:~>?)'
|
|
175
182
|
|
|
176
|
-
|
|
177
|
-
src[TILDETRIM] = '(\\s*)' + src[LONETILDE] + '\\s+'
|
|
178
|
-
re[TILDETRIM] = new RegExp(src[TILDETRIM], 'g')
|
|
183
|
+
tok('TILDETRIM')
|
|
184
|
+
src[t.TILDETRIM] = '(\\s*)' + src[t.LONETILDE] + '\\s+'
|
|
185
|
+
re[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g')
|
|
179
186
|
var tildeTrimReplace = '$1~'
|
|
180
187
|
|
|
181
|
-
|
|
182
|
-
src[TILDE] = '^' + src[LONETILDE] + src[XRANGEPLAIN] + '$'
|
|
183
|
-
|
|
184
|
-
src[TILDELOOSE] = '^' + src[LONETILDE] + src[XRANGEPLAINLOOSE] + '$'
|
|
188
|
+
tok('TILDE')
|
|
189
|
+
src[t.TILDE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAIN] + '$'
|
|
190
|
+
tok('TILDELOOSE')
|
|
191
|
+
src[t.TILDELOOSE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + '$'
|
|
185
192
|
|
|
186
193
|
// Caret ranges.
|
|
187
194
|
// Meaning is "at least and backwards compatible with"
|
|
188
|
-
|
|
189
|
-
src[LONECARET] = '(?:\\^)'
|
|
195
|
+
tok('LONECARET')
|
|
196
|
+
src[t.LONECARET] = '(?:\\^)'
|
|
190
197
|
|
|
191
|
-
|
|
192
|
-
src[CARETTRIM] = '(\\s*)' + src[LONECARET] + '\\s+'
|
|
193
|
-
re[CARETTRIM] = new RegExp(src[CARETTRIM], 'g')
|
|
198
|
+
tok('CARETTRIM')
|
|
199
|
+
src[t.CARETTRIM] = '(\\s*)' + src[t.LONECARET] + '\\s+'
|
|
200
|
+
re[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g')
|
|
194
201
|
var caretTrimReplace = '$1^'
|
|
195
202
|
|
|
196
|
-
|
|
197
|
-
src[CARET] = '^' + src[LONECARET] + src[XRANGEPLAIN] + '$'
|
|
198
|
-
|
|
199
|
-
src[CARETLOOSE] = '^' + src[LONECARET] + src[XRANGEPLAINLOOSE] + '$'
|
|
203
|
+
tok('CARET')
|
|
204
|
+
src[t.CARET] = '^' + src[t.LONECARET] + src[t.XRANGEPLAIN] + '$'
|
|
205
|
+
tok('CARETLOOSE')
|
|
206
|
+
src[t.CARETLOOSE] = '^' + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + '$'
|
|
200
207
|
|
|
201
208
|
// A simple gt/lt/eq thing, or just "" to indicate "any version"
|
|
202
|
-
|
|
203
|
-
src[COMPARATORLOOSE] = '^' + src[GTLT] + '\\s*(' + LOOSEPLAIN + ')$|^$'
|
|
204
|
-
|
|
205
|
-
src[COMPARATOR] = '^' + src[GTLT] + '\\s*(' + FULLPLAIN + ')$|^$'
|
|
209
|
+
tok('COMPARATORLOOSE')
|
|
210
|
+
src[t.COMPARATORLOOSE] = '^' + src[t.GTLT] + '\\s*(' + src[t.LOOSEPLAIN] + ')$|^$'
|
|
211
|
+
tok('COMPARATOR')
|
|
212
|
+
src[t.COMPARATOR] = '^' + src[t.GTLT] + '\\s*(' + src[t.FULLPLAIN] + ')$|^$'
|
|
206
213
|
|
|
207
214
|
// An expression to strip any whitespace between the gtlt and the thing
|
|
208
215
|
// it modifies, so that `> 1.2.3` ==> `>1.2.3`
|
|
209
|
-
|
|
210
|
-
src[COMPARATORTRIM] = '(\\s*)' + src[GTLT] +
|
|
211
|
-
'\\s*(' + LOOSEPLAIN + '|' + src[XRANGEPLAIN] + ')'
|
|
216
|
+
tok('COMPARATORTRIM')
|
|
217
|
+
src[t.COMPARATORTRIM] = '(\\s*)' + src[t.GTLT] +
|
|
218
|
+
'\\s*(' + src[t.LOOSEPLAIN] + '|' + src[t.XRANGEPLAIN] + ')'
|
|
212
219
|
|
|
213
220
|
// this one has to use the /g flag
|
|
214
|
-
re[COMPARATORTRIM] = new RegExp(src[COMPARATORTRIM], 'g')
|
|
221
|
+
re[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g')
|
|
215
222
|
var comparatorTrimReplace = '$1$2$3'
|
|
216
223
|
|
|
217
224
|
// Something like `1.2.3 - 1.2.4`
|
|
218
225
|
// Note that these all use the loose form, because they'll be
|
|
219
226
|
// checked against either the strict or loose comparator form
|
|
220
227
|
// later.
|
|
221
|
-
|
|
222
|
-
src[HYPHENRANGE] = '^\\s*(' + src[XRANGEPLAIN] + ')' +
|
|
228
|
+
tok('HYPHENRANGE')
|
|
229
|
+
src[t.HYPHENRANGE] = '^\\s*(' + src[t.XRANGEPLAIN] + ')' +
|
|
223
230
|
'\\s+-\\s+' +
|
|
224
|
-
'(' + src[XRANGEPLAIN] + ')' +
|
|
231
|
+
'(' + src[t.XRANGEPLAIN] + ')' +
|
|
225
232
|
'\\s*$'
|
|
226
233
|
|
|
227
|
-
|
|
228
|
-
src[HYPHENRANGELOOSE] = '^\\s*(' + src[XRANGEPLAINLOOSE] + ')' +
|
|
234
|
+
tok('HYPHENRANGELOOSE')
|
|
235
|
+
src[t.HYPHENRANGELOOSE] = '^\\s*(' + src[t.XRANGEPLAINLOOSE] + ')' +
|
|
229
236
|
'\\s+-\\s+' +
|
|
230
|
-
'(' + src[XRANGEPLAINLOOSE] + ')' +
|
|
237
|
+
'(' + src[t.XRANGEPLAINLOOSE] + ')' +
|
|
231
238
|
'\\s*$'
|
|
232
239
|
|
|
233
240
|
// Star ranges basically just allow anything at all.
|
|
234
|
-
|
|
235
|
-
src[STAR] = '(<|>)?=?\\s*\\*'
|
|
241
|
+
tok('STAR')
|
|
242
|
+
src[t.STAR] = '(<|>)?=?\\s*\\*'
|
|
236
243
|
|
|
237
244
|
// Compile to actual regexp objects.
|
|
238
245
|
// All are flag-free, unless they were created above with a flag.
|
|
@@ -264,7 +271,7 @@ function parse (version, options) {
|
|
|
264
271
|
return null
|
|
265
272
|
}
|
|
266
273
|
|
|
267
|
-
var r = options.loose ? re[LOOSE] : re[FULL]
|
|
274
|
+
var r = options.loose ? re[t.LOOSE] : re[t.FULL]
|
|
268
275
|
if (!r.test(version)) {
|
|
269
276
|
return null
|
|
270
277
|
}
|
|
@@ -319,7 +326,7 @@ function SemVer (version, options) {
|
|
|
319
326
|
this.options = options
|
|
320
327
|
this.loose = !!options.loose
|
|
321
328
|
|
|
322
|
-
var m = version.trim().match(options.loose ? re[LOOSE] : re[FULL])
|
|
329
|
+
var m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])
|
|
323
330
|
|
|
324
331
|
if (!m) {
|
|
325
332
|
throw new TypeError('Invalid Version: ' + version)
|
|
@@ -780,7 +787,7 @@ function Comparator (comp, options) {
|
|
|
780
787
|
|
|
781
788
|
var ANY = {}
|
|
782
789
|
Comparator.prototype.parse = function (comp) {
|
|
783
|
-
var r = this.options.loose ? re[COMPARATORLOOSE] : re[COMPARATOR]
|
|
790
|
+
var r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]
|
|
784
791
|
var m = comp.match(r)
|
|
785
792
|
|
|
786
793
|
if (!m) {
|
|
@@ -935,18 +942,18 @@ Range.prototype.parseRange = function (range) {
|
|
|
935
942
|
var loose = this.options.loose
|
|
936
943
|
range = range.trim()
|
|
937
944
|
// `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`
|
|
938
|
-
var hr = loose ? re[HYPHENRANGELOOSE] : re[HYPHENRANGE]
|
|
945
|
+
var hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]
|
|
939
946
|
range = range.replace(hr, hyphenReplace)
|
|
940
947
|
debug('hyphen replace', range)
|
|
941
948
|
// `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`
|
|
942
|
-
range = range.replace(re[COMPARATORTRIM], comparatorTrimReplace)
|
|
943
|
-
debug('comparator trim', range, re[COMPARATORTRIM])
|
|
949
|
+
range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)
|
|
950
|
+
debug('comparator trim', range, re[t.COMPARATORTRIM])
|
|
944
951
|
|
|
945
952
|
// `~ 1.2.3` => `~1.2.3`
|
|
946
|
-
range = range.replace(re[TILDETRIM], tildeTrimReplace)
|
|
953
|
+
range = range.replace(re[t.TILDETRIM], tildeTrimReplace)
|
|
947
954
|
|
|
948
955
|
// `^ 1.2.3` => `^1.2.3`
|
|
949
|
-
range = range.replace(re[CARETTRIM], caretTrimReplace)
|
|
956
|
+
range = range.replace(re[t.CARETTRIM], caretTrimReplace)
|
|
950
957
|
|
|
951
958
|
// normalize spaces
|
|
952
959
|
range = range.split(/\s+/).join(' ')
|
|
@@ -954,7 +961,7 @@ Range.prototype.parseRange = function (range) {
|
|
|
954
961
|
// At this point, the range is completely trimmed and
|
|
955
962
|
// ready to be split into comparators.
|
|
956
963
|
|
|
957
|
-
var compRe = loose ? re[COMPARATORLOOSE] : re[COMPARATOR]
|
|
964
|
+
var compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]
|
|
958
965
|
var set = range.split(' ').map(function (comp) {
|
|
959
966
|
return parseComparator(comp, this.options)
|
|
960
967
|
}, this).join(' ').split(/\s+/)
|
|
@@ -1054,7 +1061,7 @@ function replaceTildes (comp, options) {
|
|
|
1054
1061
|
}
|
|
1055
1062
|
|
|
1056
1063
|
function replaceTilde (comp, options) {
|
|
1057
|
-
var r = options.loose ? re[TILDELOOSE] : re[TILDE]
|
|
1064
|
+
var r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]
|
|
1058
1065
|
return comp.replace(r, function (_, M, m, p, pr) {
|
|
1059
1066
|
debug('tilde', comp, _, M, m, p, pr)
|
|
1060
1067
|
var ret
|
|
@@ -1095,7 +1102,7 @@ function replaceCarets (comp, options) {
|
|
|
1095
1102
|
|
|
1096
1103
|
function replaceCaret (comp, options) {
|
|
1097
1104
|
debug('caret', comp, options)
|
|
1098
|
-
var r = options.loose ? re[CARETLOOSE] : re[CARET]
|
|
1105
|
+
var r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]
|
|
1099
1106
|
return comp.replace(r, function (_, M, m, p, pr) {
|
|
1100
1107
|
debug('caret', comp, _, M, m, p, pr)
|
|
1101
1108
|
var ret
|
|
@@ -1154,7 +1161,7 @@ function replaceXRanges (comp, options) {
|
|
|
1154
1161
|
|
|
1155
1162
|
function replaceXRange (comp, options) {
|
|
1156
1163
|
comp = comp.trim()
|
|
1157
|
-
var r = options.loose ? re[XRANGELOOSE] : re[XRANGE]
|
|
1164
|
+
var r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]
|
|
1158
1165
|
return comp.replace(r, function (ret, gtlt, M, m, p, pr) {
|
|
1159
1166
|
debug('xRange', comp, ret, gtlt, M, m, p, pr)
|
|
1160
1167
|
var xM = isX(M)
|
|
@@ -1229,10 +1236,10 @@ function replaceXRange (comp, options) {
|
|
|
1229
1236
|
function replaceStars (comp, options) {
|
|
1230
1237
|
debug('replaceStars', comp, options)
|
|
1231
1238
|
// Looseness is ignored here. star is always as loose as it gets!
|
|
1232
|
-
return comp.trim().replace(re[STAR], '')
|
|
1239
|
+
return comp.trim().replace(re[t.STAR], '')
|
|
1233
1240
|
}
|
|
1234
1241
|
|
|
1235
|
-
// This function is passed to string.replace(re[HYPHENRANGE])
|
|
1242
|
+
// This function is passed to string.replace(re[t.HYPHENRANGE])
|
|
1236
1243
|
// M, m, patch, prerelease, build
|
|
1237
1244
|
// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5
|
|
1238
1245
|
// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do
|
|
@@ -1555,7 +1562,7 @@ function coerce (version, options) {
|
|
|
1555
1562
|
|
|
1556
1563
|
var match = null
|
|
1557
1564
|
if (!options.rtl) {
|
|
1558
|
-
match = version.match(re[COERCE])
|
|
1565
|
+
match = version.match(re[t.COERCE])
|
|
1559
1566
|
} else {
|
|
1560
1567
|
// Find the right-most coercible string that does not share
|
|
1561
1568
|
// a terminus with a more left-ward coercible string.
|
|
@@ -1566,17 +1573,17 @@ function coerce (version, options) {
|
|
|
1566
1573
|
// Stop when we get a match that ends at the string end, since no
|
|
1567
1574
|
// coercible string can be more right-ward without the same terminus.
|
|
1568
1575
|
var next
|
|
1569
|
-
while ((next = re[COERCERTL].exec(version)) &&
|
|
1576
|
+
while ((next = re[t.COERCERTL].exec(version)) &&
|
|
1570
1577
|
(!match || match.index + match[0].length !== version.length)
|
|
1571
1578
|
) {
|
|
1572
1579
|
if (!match ||
|
|
1573
1580
|
next.index + next[0].length !== match.index + match[0].length) {
|
|
1574
1581
|
match = next
|
|
1575
1582
|
}
|
|
1576
|
-
re[COERCERTL].lastIndex = next.index + next[1].length + next[2].length
|
|
1583
|
+
re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length
|
|
1577
1584
|
}
|
|
1578
1585
|
// leave it in a clean state
|
|
1579
|
-
re[COERCERTL].lastIndex = -1
|
|
1586
|
+
re[t.COERCERTL].lastIndex = -1
|
|
1580
1587
|
}
|
|
1581
1588
|
|
|
1582
1589
|
if (match === null) {
|
package/bin/.semver.js.swp
DELETED
|
Binary file
|