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 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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "semver",
3
- "version": "6.2.0",
3
+ "version": "6.3.0",
4
4
  "description": "The semantic version parser used by npm.",
5
5
  "main": "semver.js",
6
6
  "scripts": {
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
- var NUMERICIDENTIFIER = R++
41
- src[NUMERICIDENTIFIER] = '0|[1-9]\\d*'
42
- var NUMERICIDENTIFIERLOOSE = R++
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
- var NONNUMERICIDENTIFIER = R++
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
- var MAINVERSION = R++
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
- var MAINVERSIONLOOSE = R++
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
- var PRERELEASEIDENTIFIER = R++
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
- var PRERELEASEIDENTIFIERLOOSE = R++
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
- var PRERELEASE = R++
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
- var PRERELEASELOOSE = R++
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
- var BUILDIDENTIFIER = R++
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
- var BUILD = R++
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
- var FULL = R++
112
- var FULLPLAIN = 'v?' + src[MAINVERSION] +
113
- src[PRERELEASE] + '?' +
114
- src[BUILD] + '?'
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
- var LOOSEPLAIN = '[v=\\s]*' + src[MAINVERSIONLOOSE] +
122
- src[PRERELEASELOOSE] + '?' +
123
- src[BUILD] + '?'
127
+ tok('LOOSEPLAIN')
128
+ src[t.LOOSEPLAIN] = '[v=\\s]*' + src[t.MAINVERSIONLOOSE] +
129
+ src[t.PRERELEASELOOSE] + '?' +
130
+ src[t.BUILD] + '?'
124
131
 
125
- var LOOSE = R++
126
- src[LOOSE] = '^' + LOOSEPLAIN + '$'
132
+ tok('LOOSE')
133
+ src[t.LOOSE] = '^' + src[t.LOOSEPLAIN] + '$'
127
134
 
128
- var GTLT = R++
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
- var XRANGEIDENTIFIERLOOSE = R++
135
- src[XRANGEIDENTIFIERLOOSE] = src[NUMERICIDENTIFIERLOOSE] + '|x|X|\\*'
136
- var XRANGEIDENTIFIER = R++
137
- src[XRANGEIDENTIFIER] = src[NUMERICIDENTIFIER] + '|x|X|\\*'
138
-
139
- var XRANGEPLAIN = R++
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
- var XRANGEPLAINLOOSE = R++
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
- var XRANGE = R++
156
- src[XRANGE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAIN] + '$'
157
- var XRANGELOOSE = R++
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
- var COERCE = R++
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
- var COERCERTL = R++
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
- var LONETILDE = R++
174
- src[LONETILDE] = '(?:~>?)'
180
+ tok('LONETILDE')
181
+ src[t.LONETILDE] = '(?:~>?)'
175
182
 
176
- var TILDETRIM = R++
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
- var TILDE = R++
182
- src[TILDE] = '^' + src[LONETILDE] + src[XRANGEPLAIN] + '$'
183
- var TILDELOOSE = R++
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
- var LONECARET = R++
189
- src[LONECARET] = '(?:\\^)'
195
+ tok('LONECARET')
196
+ src[t.LONECARET] = '(?:\\^)'
190
197
 
191
- var CARETTRIM = R++
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
- var CARET = R++
197
- src[CARET] = '^' + src[LONECARET] + src[XRANGEPLAIN] + '$'
198
- var CARETLOOSE = R++
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
- var COMPARATORLOOSE = R++
203
- src[COMPARATORLOOSE] = '^' + src[GTLT] + '\\s*(' + LOOSEPLAIN + ')$|^$'
204
- var COMPARATOR = R++
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
- var COMPARATORTRIM = R++
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
- var HYPHENRANGE = R++
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
- var HYPHENRANGELOOSE = R++
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
- var STAR = R++
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) {
Binary file