semver 1.0.10 → 1.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/semver.js +26 -255
- package/test.js +405 -0
- package/cp.js +0 -9
- package/no-exit.js +0 -35
- package/pipeout.js +0 -22
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{ "name" : "semver"
|
|
2
|
-
, "version" : "1.0.
|
|
2
|
+
, "version" : "1.0.14"
|
|
3
3
|
, "description" : "The semantic version parser used by npm."
|
|
4
4
|
, "main" : "semver.js"
|
|
5
|
-
, "scripts" : { "test" : "tap
|
|
5
|
+
, "scripts" : { "test" : "tap test.js" }
|
|
6
6
|
, "devDependencies": { "tap" : "0.x >=0.0.4" }
|
|
7
7
|
, "license" :
|
|
8
8
|
{ "type" : "MIT"
|
package/semver.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
;(function (exports) { // nothing in here is node-specific.
|
|
1
2
|
|
|
2
3
|
// See http://semver.org/
|
|
3
4
|
// This implementation is a *hair* less strict in that it allows
|
|
@@ -11,8 +12,9 @@ var semver = "\\s*[v=]*\\s*([0-9]+)" // major
|
|
|
11
12
|
, exprComparator = "^((<|>)?=?)\s*("+semver+")$|^$"
|
|
12
13
|
, xRangePlain = "[v=]*([0-9]+|x|X|\\*)"
|
|
13
14
|
+ "(?:\\.([0-9]+|x|X|\\*)"
|
|
14
|
-
+ "(?:\\.([0-9]+|x|X|\\*)
|
|
15
|
-
|
|
15
|
+
+ "(?:\\.([0-9]+|x|X|\\*)"
|
|
16
|
+
+ "([a-zA-Z-][a-zA-Z0-9-\.:]*)?)?)?"
|
|
17
|
+
, xRange = "((?:<|>)=?)?\\s*" + xRangePlain
|
|
16
18
|
, exprSpermy = "(?:~>?)"+xRange
|
|
17
19
|
, expressions = exports.expressions =
|
|
18
20
|
{ parse : new RegExp("^\\s*"+semver+"\\s*$")
|
|
@@ -24,6 +26,7 @@ var semver = "\\s*[v=]*\\s*([0-9]+)" // major
|
|
|
24
26
|
, parseSpermy : new RegExp("^"+exprSpermy+"$")
|
|
25
27
|
}
|
|
26
28
|
|
|
29
|
+
|
|
27
30
|
Object.getOwnPropertyNames(expressions).forEach(function (i) {
|
|
28
31
|
exports[i] = function (str) {
|
|
29
32
|
return ("" + (str || "")).match(expressions[i])
|
|
@@ -33,6 +36,7 @@ Object.getOwnPropertyNames(expressions).forEach(function (i) {
|
|
|
33
36
|
exports.rangeReplace = ">=$1 <=$7"
|
|
34
37
|
exports.clean = clean
|
|
35
38
|
exports.compare = compare
|
|
39
|
+
exports.rcompare = rcompare
|
|
36
40
|
exports.satisfies = satisfies
|
|
37
41
|
exports.gt = gt
|
|
38
42
|
exports.gte = gte
|
|
@@ -48,6 +52,9 @@ exports.validPackage = validPackage
|
|
|
48
52
|
exports.validRange = validRange
|
|
49
53
|
exports.maxSatisfying = maxSatisfying
|
|
50
54
|
|
|
55
|
+
exports.replaceStars = replaceStars
|
|
56
|
+
exports.toComparators = toComparators
|
|
57
|
+
|
|
51
58
|
function stringify (version) {
|
|
52
59
|
var v = version
|
|
53
60
|
return [v[1]||'', v[2]||'', v[3]||''].join(".") + (v[4]||'') + (v[5]||'')
|
|
@@ -107,11 +114,11 @@ function toComparators (range) {
|
|
|
107
114
|
}
|
|
108
115
|
|
|
109
116
|
function replaceStars (stars) {
|
|
110
|
-
return stars.replace(starExpression, starReplace)
|
|
117
|
+
return stars.trim().replace(starExpression, starReplace)
|
|
111
118
|
}
|
|
112
119
|
|
|
113
|
-
// "2.x","2.x.x" --> ">=2.0.0 <2.1"
|
|
114
|
-
// "2.3.x" --> ">=2.3.0 <2.4.0"
|
|
120
|
+
// "2.x","2.x.x" --> ">=2.0.0- <2.1.0-"
|
|
121
|
+
// "2.3.x" --> ">=2.3.0- <2.4.0-"
|
|
115
122
|
function replaceXRanges (ranges) {
|
|
116
123
|
return ranges.split(/\s+/)
|
|
117
124
|
.map(replaceXRange)
|
|
@@ -120,7 +127,7 @@ function replaceXRanges (ranges) {
|
|
|
120
127
|
|
|
121
128
|
function replaceXRange (version) {
|
|
122
129
|
return version.trim().replace(expressions.parseXRange,
|
|
123
|
-
function (v, gtlt, M, m, p) {
|
|
130
|
+
function (v, gtlt, M, m, p, t) {
|
|
124
131
|
var anyX = !M || M.toLowerCase() === "x" || M === "*"
|
|
125
132
|
|| !m || m.toLowerCase() === "x" || m === "*"
|
|
126
133
|
|| !p || p.toLowerCase() === "x" || p === "*"
|
|
@@ -131,7 +138,7 @@ function replaceXRange (version) {
|
|
|
131
138
|
;(!M || M === "*" || M.toLowerCase() === "x") && (M = 0)
|
|
132
139
|
;(!m || m === "*" || m.toLowerCase() === "x") && (m = 0)
|
|
133
140
|
;(!p || p === "*" || p.toLowerCase() === "x") && (p = 0)
|
|
134
|
-
ret = gtlt + M+"."+m+"."+p
|
|
141
|
+
ret = gtlt + M+"."+m+"."+p+"-"
|
|
135
142
|
} else if (!M || M === "*" || M.toLowerCase() === "x") {
|
|
136
143
|
ret = "*" // allow any
|
|
137
144
|
} else if (!m || m === "*" || m.toLowerCase() === "x") {
|
|
@@ -155,27 +162,29 @@ function replaceXRange (version) {
|
|
|
155
162
|
// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0
|
|
156
163
|
function replaceSpermies (version) {
|
|
157
164
|
return version.trim().replace(expressions.parseSpermy,
|
|
158
|
-
function (v, gtlt, M, m, p) {
|
|
165
|
+
function (v, gtlt, M, m, p, t) {
|
|
159
166
|
if (gtlt) throw new Error(
|
|
160
167
|
"Using '"+gtlt+"' with ~ makes no sense. Don't do it.")
|
|
168
|
+
|
|
161
169
|
if (!M || M.toLowerCase() === "x") {
|
|
162
|
-
return "
|
|
170
|
+
return ""
|
|
163
171
|
}
|
|
164
|
-
// ~1 == >=1.0.0 <2.0.0
|
|
172
|
+
// ~1 == >=1.0.0- <2.0.0-
|
|
165
173
|
if (!m || m.toLowerCase() === "x") {
|
|
166
|
-
return ">="+M+".0.0 <"+(+M+1)+".0.0"
|
|
174
|
+
return ">="+M+".0.0- <"+(+M+1)+".0.0-"
|
|
167
175
|
}
|
|
168
|
-
// ~1.2 == >=1.2.0 <1.3.0
|
|
176
|
+
// ~1.2 == >=1.2.0- <1.3.0-
|
|
169
177
|
if (!p || p.toLowerCase() === "x") {
|
|
170
|
-
return ">="+M+"."+m+".0 <"+M+"."+(+m+1)+".0"
|
|
178
|
+
return ">="+M+"."+m+".0- <"+M+"."+(+m+1)+".0-"
|
|
171
179
|
}
|
|
172
|
-
// ~1.2.3 == >=1.2.3 <1.3.0
|
|
173
|
-
|
|
180
|
+
// ~1.2.3 == >=1.2.3- <1.3.0-
|
|
181
|
+
t = t || "-"
|
|
182
|
+
return ">="+M+"."+m+"."+p+t+" <"+M+"."+(+m+1)+".0-"
|
|
174
183
|
})
|
|
175
184
|
}
|
|
176
185
|
|
|
177
186
|
function validRange (range) {
|
|
178
|
-
range = range
|
|
187
|
+
range = replaceStars(range)
|
|
179
188
|
var c = toComparators(range)
|
|
180
189
|
return (c.length === 0)
|
|
181
190
|
? null
|
|
@@ -293,242 +302,4 @@ function inc (version, release) {
|
|
|
293
302
|
|
|
294
303
|
return stringify(version)
|
|
295
304
|
}
|
|
296
|
-
|
|
297
|
-
if (module === require.main) { // tests below
|
|
298
|
-
|
|
299
|
-
var tap = require("tap")
|
|
300
|
-
, test = tap.test
|
|
301
|
-
|
|
302
|
-
tap.plan(5)
|
|
303
|
-
|
|
304
|
-
test("\ncomparison tests", function (t) {
|
|
305
|
-
; [ ["0.0.0", "0.0.0foo"]
|
|
306
|
-
, ["0.0.1", "0.0.0"]
|
|
307
|
-
, ["1.0.0", "0.9.9"]
|
|
308
|
-
, ["0.10.0", "0.9.0"]
|
|
309
|
-
, ["0.99.0", "0.10.0"]
|
|
310
|
-
, ["2.0.0", "1.2.3"]
|
|
311
|
-
, ["v0.0.0", "0.0.0foo"]
|
|
312
|
-
, ["v0.0.1", "0.0.0"]
|
|
313
|
-
, ["v1.0.0", "0.9.9"]
|
|
314
|
-
, ["v0.10.0", "0.9.0"]
|
|
315
|
-
, ["v0.99.0", "0.10.0"]
|
|
316
|
-
, ["v2.0.0", "1.2.3"]
|
|
317
|
-
, ["0.0.0", "v0.0.0foo"]
|
|
318
|
-
, ["0.0.1", "v0.0.0"]
|
|
319
|
-
, ["1.0.0", "v0.9.9"]
|
|
320
|
-
, ["0.10.0", "v0.9.0"]
|
|
321
|
-
, ["0.99.0", "v0.10.0"]
|
|
322
|
-
, ["2.0.0", "v1.2.3"]
|
|
323
|
-
, ["1.2.3", "1.2.3-asdf"]
|
|
324
|
-
, ["1.2.3-4", "1.2.3"]
|
|
325
|
-
, ["1.2.3-4-foo", "1.2.3"]
|
|
326
|
-
, ["1.2.3-5", "1.2.3-5-foo"]
|
|
327
|
-
, ["1.2.3-5", "1.2.3-4"]
|
|
328
|
-
, ["1.2.3-5-foo", "1.2.3-5-Foo"]
|
|
329
|
-
].forEach(function (v) {
|
|
330
|
-
var v0 = v[0]
|
|
331
|
-
, v1 = v[1]
|
|
332
|
-
t.ok(gt(v0, v1), "gt('"+v0+"', '"+v1+"')")
|
|
333
|
-
t.ok(lt(v1, v0), "lt('"+v1+"', '"+v0+"')")
|
|
334
|
-
t.ok(!gt(v1, v0), "!gt('"+v1+"', '"+v0+"')")
|
|
335
|
-
t.ok(!lt(v0, v1), "!lt('"+v0+"', '"+v1+"')")
|
|
336
|
-
t.ok(eq(v0, v0), "eq('"+v0+"', '"+v0+"')")
|
|
337
|
-
t.ok(eq(v1, v1), "eq('"+v1+"', '"+v1+"')")
|
|
338
|
-
t.ok(neq(v0, v1), "neq('"+v0+"', '"+v1+"')")
|
|
339
|
-
t.ok(cmp(v1, "==", v1), "cmp('"+v1+"' == '"+v1+"')")
|
|
340
|
-
t.ok(cmp(v0, ">=", v1), "cmp('"+v0+"' >= '"+v1+"')")
|
|
341
|
-
t.ok(cmp(v1, "<=", v0), "cmp('"+v1+"' <= '"+v0+"')")
|
|
342
|
-
t.ok(cmp(v0, "!=", v1), "cmp('"+v0+"' != '"+v1+"')")
|
|
343
|
-
})
|
|
344
|
-
t.end()
|
|
345
|
-
})
|
|
346
|
-
|
|
347
|
-
test("\nequality tests", function (t) {
|
|
348
|
-
; [ ["1.2.3", "v1.2.3"]
|
|
349
|
-
, ["1.2.3", "=1.2.3"]
|
|
350
|
-
, ["1.2.3", "v 1.2.3"]
|
|
351
|
-
, ["1.2.3", "= 1.2.3"]
|
|
352
|
-
, ["1.2.3", " v1.2.3"]
|
|
353
|
-
, ["1.2.3", " =1.2.3"]
|
|
354
|
-
, ["1.2.3", " v 1.2.3"]
|
|
355
|
-
, ["1.2.3", " = 1.2.3"]
|
|
356
|
-
, ["1.2.3-0", "v1.2.3-0"]
|
|
357
|
-
, ["1.2.3-0", "=1.2.3-0"]
|
|
358
|
-
, ["1.2.3-0", "v 1.2.3-0"]
|
|
359
|
-
, ["1.2.3-0", "= 1.2.3-0"]
|
|
360
|
-
, ["1.2.3-0", " v1.2.3-0"]
|
|
361
|
-
, ["1.2.3-0", " =1.2.3-0"]
|
|
362
|
-
, ["1.2.3-0", " v 1.2.3-0"]
|
|
363
|
-
, ["1.2.3-0", " = 1.2.3-0"]
|
|
364
|
-
, ["1.2.3-01", "v1.2.3-1"]
|
|
365
|
-
, ["1.2.3-01", "=1.2.3-1"]
|
|
366
|
-
, ["1.2.3-01", "v 1.2.3-1"]
|
|
367
|
-
, ["1.2.3-01", "= 1.2.3-1"]
|
|
368
|
-
, ["1.2.3-01", " v1.2.3-1"]
|
|
369
|
-
, ["1.2.3-01", " =1.2.3-1"]
|
|
370
|
-
, ["1.2.3-01", " v 1.2.3-1"]
|
|
371
|
-
, ["1.2.3-01", " = 1.2.3-1"]
|
|
372
|
-
, ["1.2.3beta", "v1.2.3beta"]
|
|
373
|
-
, ["1.2.3beta", "=1.2.3beta"]
|
|
374
|
-
, ["1.2.3beta", "v 1.2.3beta"]
|
|
375
|
-
, ["1.2.3beta", "= 1.2.3beta"]
|
|
376
|
-
, ["1.2.3beta", " v1.2.3beta"]
|
|
377
|
-
, ["1.2.3beta", " =1.2.3beta"]
|
|
378
|
-
, ["1.2.3beta", " v 1.2.3beta"]
|
|
379
|
-
, ["1.2.3beta", " = 1.2.3beta"]
|
|
380
|
-
].forEach(function (v) {
|
|
381
|
-
var v0 = v[0]
|
|
382
|
-
, v1 = v[1]
|
|
383
|
-
t.ok(eq(v0, v1), "eq('"+v0+"', '"+v1+"')")
|
|
384
|
-
t.ok(!neq(v0, v1), "!neq('"+v0+"', '"+v1+"')")
|
|
385
|
-
t.ok(cmp(v0, "==", v1), "cmp("+v0+"=="+v1+")")
|
|
386
|
-
t.ok(!cmp(v0, "!=", v1), "!cmp("+v0+"!="+v1+")")
|
|
387
|
-
t.ok(!cmp(v0, "===", v1), "!cmp("+v0+"==="+v1+")")
|
|
388
|
-
t.ok(cmp(v0, "!==", v1), "cmp("+v0+"!=="+v1+")")
|
|
389
|
-
t.ok(!gt(v0, v1), "!gt('"+v0+"', '"+v1+"')")
|
|
390
|
-
t.ok(gte(v0, v1), "gte('"+v0+"', '"+v1+"')")
|
|
391
|
-
t.ok(!lt(v0, v1), "!lt('"+v0+"', '"+v1+"')")
|
|
392
|
-
t.ok(lte(v0, v1), "lte('"+v0+"', '"+v1+"')")
|
|
393
|
-
})
|
|
394
|
-
t.end()
|
|
395
|
-
})
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
test("\nrange tests", function (t) {
|
|
399
|
-
; [ ["1.0.0 - 2.0.0", "1.2.3"]
|
|
400
|
-
, ["1.0.0", "1.0.0"]
|
|
401
|
-
, [">=*", "0.2.4"]
|
|
402
|
-
, ["", "1.0.0"]
|
|
403
|
-
, ["*", "1.2.3"]
|
|
404
|
-
, ["*", "v1.2.3-foo"]
|
|
405
|
-
, [">=1.0.0", "1.0.0"]
|
|
406
|
-
, [">=1.0.0", "1.0.1"]
|
|
407
|
-
, [">=1.0.0", "1.1.0"]
|
|
408
|
-
, [">1.0.0", "1.0.1"]
|
|
409
|
-
, [">1.0.0", "1.1.0"]
|
|
410
|
-
, ["<=2.0.0", "2.0.0"]
|
|
411
|
-
, ["<=2.0.0", "1.9999.9999"]
|
|
412
|
-
, ["<=2.0.0", "0.2.9"]
|
|
413
|
-
, ["<2.0.0", "1.9999.9999"]
|
|
414
|
-
, ["<2.0.0", "0.2.9"]
|
|
415
|
-
, [">= 1.0.0", "1.0.0"]
|
|
416
|
-
, [">= 1.0.0", "1.0.1"]
|
|
417
|
-
, [">= 1.0.0", "1.1.0"]
|
|
418
|
-
, ["> 1.0.0", "1.0.1"]
|
|
419
|
-
, ["> 1.0.0", "1.1.0"]
|
|
420
|
-
, ["<= 2.0.0", "2.0.0"]
|
|
421
|
-
, ["<= 2.0.0", "1.9999.9999"]
|
|
422
|
-
, ["<= 2.0.0", "0.2.9"]
|
|
423
|
-
, ["< 2.0.0", "1.9999.9999"]
|
|
424
|
-
, ["<\t2.0.0", "0.2.9"]
|
|
425
|
-
, [">=0.1.97", "v0.1.97"]
|
|
426
|
-
, [">=0.1.97", "0.1.97"]
|
|
427
|
-
, ["0.1.20 || 1.2.4", "1.2.4"]
|
|
428
|
-
, [">=0.2.3 || <0.0.1", "0.0.0"]
|
|
429
|
-
, [">=0.2.3 || <0.0.1", "0.2.3"]
|
|
430
|
-
, [">=0.2.3 || <0.0.1", "0.2.4"]
|
|
431
|
-
, ["||", "1.3.4"]
|
|
432
|
-
, ["2.x.x", "2.1.3"]
|
|
433
|
-
, ["1.2.x", "1.2.3"]
|
|
434
|
-
, ["1.2.x || 2.x", "2.1.3"]
|
|
435
|
-
, ["1.2.x || 2.x", "1.2.3"]
|
|
436
|
-
, ["x", "1.2.3"]
|
|
437
|
-
, ["2.*.*", "2.1.3"]
|
|
438
|
-
, ["1.2.*", "1.2.3"]
|
|
439
|
-
, ["1.2.* || 2.*", "2.1.3"]
|
|
440
|
-
, ["1.2.* || 2.*", "1.2.3"]
|
|
441
|
-
, ["*", "1.2.3"]
|
|
442
|
-
, ["2", "2.1.2"]
|
|
443
|
-
, ["2.3", "2.3.1"]
|
|
444
|
-
, ["~2.4", "2.4.0"] // >=2.4.0 <2.5.0
|
|
445
|
-
, ["~2.4", "2.4.5"]
|
|
446
|
-
, ["~>3.2.1", "3.2.2"] // >=3.2.1 <3.3.0
|
|
447
|
-
, ["~1", "1.2.3"] // >=1.0.0 <2.0.0
|
|
448
|
-
, ["~>1", "1.2.3"]
|
|
449
|
-
, ["~> 1", "1.2.3"]
|
|
450
|
-
, ["~1.0", "1.0.2"] // >=1.0.0 <1.1.0
|
|
451
|
-
, ["~ 1.0", "1.0.2"]
|
|
452
|
-
, ["<1", "1.0.0beta"]
|
|
453
|
-
, ["< 1", "1.0.0beta"]
|
|
454
|
-
, [">=1", "1.0.0"]
|
|
455
|
-
, [">= 1", "1.0.0"]
|
|
456
|
-
, ["<1.2", "1.1.1"]
|
|
457
|
-
, ["< 1.2", "1.1.1"]
|
|
458
|
-
, ["1", "1.0.0beta"]
|
|
459
|
-
].forEach(function (v) {
|
|
460
|
-
t.ok(satisfies(v[1], v[0]), v[0]+" satisfied by "+v[1])
|
|
461
|
-
})
|
|
462
|
-
t.end()
|
|
463
|
-
})
|
|
464
|
-
|
|
465
|
-
test("\nnegative range tests", function (t) {
|
|
466
|
-
; [ ["1.0.0 - 2.0.0", "2.2.3"]
|
|
467
|
-
, ["1.0.0", "1.0.1"]
|
|
468
|
-
, [">=1.0.0", "0.0.0"]
|
|
469
|
-
, [">=1.0.0", "0.0.1"]
|
|
470
|
-
, [">=1.0.0", "0.1.0"]
|
|
471
|
-
, [">1.0.0", "0.0.1"]
|
|
472
|
-
, [">1.0.0", "0.1.0"]
|
|
473
|
-
, ["<=2.0.0", "3.0.0"]
|
|
474
|
-
, ["<=2.0.0", "2.9999.9999"]
|
|
475
|
-
, ["<=2.0.0", "2.2.9"]
|
|
476
|
-
, ["<2.0.0", "2.9999.9999"]
|
|
477
|
-
, ["<2.0.0", "2.2.9"]
|
|
478
|
-
, [">=0.1.97", "v0.1.93"]
|
|
479
|
-
, [">=0.1.97", "0.1.93"]
|
|
480
|
-
, ["0.1.20 || 1.2.4", "1.2.3"]
|
|
481
|
-
, [">=0.2.3 || <0.0.1", "0.0.3"]
|
|
482
|
-
, [">=0.2.3 || <0.0.1", "0.2.2"]
|
|
483
|
-
, ["2.x.x", "1.1.3"]
|
|
484
|
-
, ["2.x.x", "3.1.3"]
|
|
485
|
-
, ["1.2.x", "1.3.3"]
|
|
486
|
-
, ["1.2.x || 2.x", "3.1.3"]
|
|
487
|
-
, ["1.2.x || 2.x", "1.1.3"]
|
|
488
|
-
, ["2.*.*", "1.1.3"]
|
|
489
|
-
, ["2.*.*", "3.1.3"]
|
|
490
|
-
, ["1.2.*", "1.3.3"]
|
|
491
|
-
, ["1.2.* || 2.*", "3.1.3"]
|
|
492
|
-
, ["1.2.* || 2.*", "1.1.3"]
|
|
493
|
-
, ["2", "1.1.2"]
|
|
494
|
-
, ["2.3", "2.4.1"]
|
|
495
|
-
, ["~2.4", "2.5.0"] // >=2.4.0 <2.5.0
|
|
496
|
-
, ["~2.4", "2.3.9"]
|
|
497
|
-
, ["~>3.2.1", "3.3.2"] // >=3.2.1 <3.3.0
|
|
498
|
-
, ["~>3.2.1", "3.2.0"] // >=3.2.1 <3.3.0
|
|
499
|
-
, ["~1", "0.2.3"] // >=1.0.0 <2.0.0
|
|
500
|
-
, ["~>1", "2.2.3"]
|
|
501
|
-
, ["~1.0", "1.1.0"] // >=1.0.0 <1.1.0
|
|
502
|
-
, ["<1", "1.0.0"]
|
|
503
|
-
, [">=1.2", "1.1.1"]
|
|
504
|
-
, ["1", "2.0.0beta"]
|
|
505
|
-
].forEach(function (v) {
|
|
506
|
-
t.ok(!satisfies(v[1], v[0]), v[0]+" not satisfied by "+v[1])
|
|
507
|
-
})
|
|
508
|
-
t.end()
|
|
509
|
-
})
|
|
510
|
-
|
|
511
|
-
test("\nincrement versions test", function (t) {
|
|
512
|
-
; [ [ "1.2.3", "major", "2.0.0" ]
|
|
513
|
-
, [ "1.2.3", "minor", "1.3.0" ]
|
|
514
|
-
, [ "1.2.3", "patch", "1.2.4" ]
|
|
515
|
-
, [ "1.2.3", "build", "1.2.3-1" ]
|
|
516
|
-
, [ "1.2.3-4", "build", "1.2.3-5" ]
|
|
517
|
-
|
|
518
|
-
, [ "1.2.3tag", "major", "2.0.0" ]
|
|
519
|
-
, [ "1.2.3-tag", "major", "2.0.0" ]
|
|
520
|
-
, [ "1.2.3tag", "build", "1.2.3-1" ]
|
|
521
|
-
, [ "1.2.3-tag", "build", "1.2.3-1" ]
|
|
522
|
-
, [ "1.2.3-4-tag", "build", "1.2.3-5" ]
|
|
523
|
-
, [ "1.2.3-4tag", "build", "1.2.3-5" ]
|
|
524
|
-
|
|
525
|
-
, [ "1.2.3", "fake", null ]
|
|
526
|
-
, [ "fake", "major", null ]
|
|
527
|
-
].forEach(function (v) {
|
|
528
|
-
t.equal(inc(v[0], v[1]), v[2], "inc("+v[0]+", "+v[1]+") === "+v[2])
|
|
529
|
-
})
|
|
530
|
-
|
|
531
|
-
t.end()
|
|
532
|
-
})
|
|
533
|
-
|
|
534
|
-
}
|
|
305
|
+
})(typeof exports === "object" ? exports : semver = {})
|
package/test.js
ADDED
|
@@ -0,0 +1,405 @@
|
|
|
1
|
+
var tap = require("tap")
|
|
2
|
+
, test = tap.test
|
|
3
|
+
, semver = require("./semver.js")
|
|
4
|
+
, eq = semver.eq
|
|
5
|
+
, gt = semver.gt
|
|
6
|
+
, lt = semver.lt
|
|
7
|
+
, neq = semver.neq
|
|
8
|
+
, cmp = semver.cmp
|
|
9
|
+
, gte = semver.gte
|
|
10
|
+
, lte = semver.lte
|
|
11
|
+
, satisfies = semver.satisfies
|
|
12
|
+
, validRange = semver.validRange
|
|
13
|
+
, inc = semver.inc
|
|
14
|
+
, replaceStars = semver.replaceStars
|
|
15
|
+
, toComparators = semver.toComparators
|
|
16
|
+
|
|
17
|
+
tap.plan(8)
|
|
18
|
+
|
|
19
|
+
test("\ncomparison tests", function (t) {
|
|
20
|
+
; [ ["0.0.0", "0.0.0foo"]
|
|
21
|
+
, ["0.0.1", "0.0.0"]
|
|
22
|
+
, ["1.0.0", "0.9.9"]
|
|
23
|
+
, ["0.10.0", "0.9.0"]
|
|
24
|
+
, ["0.99.0", "0.10.0"]
|
|
25
|
+
, ["2.0.0", "1.2.3"]
|
|
26
|
+
, ["v0.0.0", "0.0.0foo"]
|
|
27
|
+
, ["v0.0.1", "0.0.0"]
|
|
28
|
+
, ["v1.0.0", "0.9.9"]
|
|
29
|
+
, ["v0.10.0", "0.9.0"]
|
|
30
|
+
, ["v0.99.0", "0.10.0"]
|
|
31
|
+
, ["v2.0.0", "1.2.3"]
|
|
32
|
+
, ["0.0.0", "v0.0.0foo"]
|
|
33
|
+
, ["0.0.1", "v0.0.0"]
|
|
34
|
+
, ["1.0.0", "v0.9.9"]
|
|
35
|
+
, ["0.10.0", "v0.9.0"]
|
|
36
|
+
, ["0.99.0", "v0.10.0"]
|
|
37
|
+
, ["2.0.0", "v1.2.3"]
|
|
38
|
+
, ["1.2.3", "1.2.3-asdf"]
|
|
39
|
+
, ["1.2.3-4", "1.2.3"]
|
|
40
|
+
, ["1.2.3-4-foo", "1.2.3"]
|
|
41
|
+
, ["1.2.3-5", "1.2.3-5-foo"]
|
|
42
|
+
, ["1.2.3-5", "1.2.3-4"]
|
|
43
|
+
, ["1.2.3-5-foo", "1.2.3-5-Foo"]
|
|
44
|
+
].forEach(function (v) {
|
|
45
|
+
var v0 = v[0]
|
|
46
|
+
, v1 = v[1]
|
|
47
|
+
t.ok(gt(v0, v1), "gt('"+v0+"', '"+v1+"')")
|
|
48
|
+
t.ok(lt(v1, v0), "lt('"+v1+"', '"+v0+"')")
|
|
49
|
+
t.ok(!gt(v1, v0), "!gt('"+v1+"', '"+v0+"')")
|
|
50
|
+
t.ok(!lt(v0, v1), "!lt('"+v0+"', '"+v1+"')")
|
|
51
|
+
t.ok(eq(v0, v0), "eq('"+v0+"', '"+v0+"')")
|
|
52
|
+
t.ok(eq(v1, v1), "eq('"+v1+"', '"+v1+"')")
|
|
53
|
+
t.ok(neq(v0, v1), "neq('"+v0+"', '"+v1+"')")
|
|
54
|
+
t.ok(cmp(v1, "==", v1), "cmp('"+v1+"' == '"+v1+"')")
|
|
55
|
+
t.ok(cmp(v0, ">=", v1), "cmp('"+v0+"' >= '"+v1+"')")
|
|
56
|
+
t.ok(cmp(v1, "<=", v0), "cmp('"+v1+"' <= '"+v0+"')")
|
|
57
|
+
t.ok(cmp(v0, "!=", v1), "cmp('"+v0+"' != '"+v1+"')")
|
|
58
|
+
})
|
|
59
|
+
t.end()
|
|
60
|
+
})
|
|
61
|
+
|
|
62
|
+
test("\nequality tests", function (t) {
|
|
63
|
+
; [ ["1.2.3", "v1.2.3"]
|
|
64
|
+
, ["1.2.3", "=1.2.3"]
|
|
65
|
+
, ["1.2.3", "v 1.2.3"]
|
|
66
|
+
, ["1.2.3", "= 1.2.3"]
|
|
67
|
+
, ["1.2.3", " v1.2.3"]
|
|
68
|
+
, ["1.2.3", " =1.2.3"]
|
|
69
|
+
, ["1.2.3", " v 1.2.3"]
|
|
70
|
+
, ["1.2.3", " = 1.2.3"]
|
|
71
|
+
, ["1.2.3-0", "v1.2.3-0"]
|
|
72
|
+
, ["1.2.3-0", "=1.2.3-0"]
|
|
73
|
+
, ["1.2.3-0", "v 1.2.3-0"]
|
|
74
|
+
, ["1.2.3-0", "= 1.2.3-0"]
|
|
75
|
+
, ["1.2.3-0", " v1.2.3-0"]
|
|
76
|
+
, ["1.2.3-0", " =1.2.3-0"]
|
|
77
|
+
, ["1.2.3-0", " v 1.2.3-0"]
|
|
78
|
+
, ["1.2.3-0", " = 1.2.3-0"]
|
|
79
|
+
, ["1.2.3-01", "v1.2.3-1"]
|
|
80
|
+
, ["1.2.3-01", "=1.2.3-1"]
|
|
81
|
+
, ["1.2.3-01", "v 1.2.3-1"]
|
|
82
|
+
, ["1.2.3-01", "= 1.2.3-1"]
|
|
83
|
+
, ["1.2.3-01", " v1.2.3-1"]
|
|
84
|
+
, ["1.2.3-01", " =1.2.3-1"]
|
|
85
|
+
, ["1.2.3-01", " v 1.2.3-1"]
|
|
86
|
+
, ["1.2.3-01", " = 1.2.3-1"]
|
|
87
|
+
, ["1.2.3beta", "v1.2.3beta"]
|
|
88
|
+
, ["1.2.3beta", "=1.2.3beta"]
|
|
89
|
+
, ["1.2.3beta", "v 1.2.3beta"]
|
|
90
|
+
, ["1.2.3beta", "= 1.2.3beta"]
|
|
91
|
+
, ["1.2.3beta", " v1.2.3beta"]
|
|
92
|
+
, ["1.2.3beta", " =1.2.3beta"]
|
|
93
|
+
, ["1.2.3beta", " v 1.2.3beta"]
|
|
94
|
+
, ["1.2.3beta", " = 1.2.3beta"]
|
|
95
|
+
].forEach(function (v) {
|
|
96
|
+
var v0 = v[0]
|
|
97
|
+
, v1 = v[1]
|
|
98
|
+
t.ok(eq(v0, v1), "eq('"+v0+"', '"+v1+"')")
|
|
99
|
+
t.ok(!neq(v0, v1), "!neq('"+v0+"', '"+v1+"')")
|
|
100
|
+
t.ok(cmp(v0, "==", v1), "cmp("+v0+"=="+v1+")")
|
|
101
|
+
t.ok(!cmp(v0, "!=", v1), "!cmp("+v0+"!="+v1+")")
|
|
102
|
+
t.ok(!cmp(v0, "===", v1), "!cmp("+v0+"==="+v1+")")
|
|
103
|
+
t.ok(cmp(v0, "!==", v1), "cmp("+v0+"!=="+v1+")")
|
|
104
|
+
t.ok(!gt(v0, v1), "!gt('"+v0+"', '"+v1+"')")
|
|
105
|
+
t.ok(gte(v0, v1), "gte('"+v0+"', '"+v1+"')")
|
|
106
|
+
t.ok(!lt(v0, v1), "!lt('"+v0+"', '"+v1+"')")
|
|
107
|
+
t.ok(lte(v0, v1), "lte('"+v0+"', '"+v1+"')")
|
|
108
|
+
})
|
|
109
|
+
t.end()
|
|
110
|
+
})
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
test("\nrange tests", function (t) {
|
|
114
|
+
; [ ["1.0.0 - 2.0.0", "1.2.3"]
|
|
115
|
+
, ["1.0.0", "1.0.0"]
|
|
116
|
+
, [">=*", "0.2.4"]
|
|
117
|
+
, ["", "1.0.0"]
|
|
118
|
+
, ["*", "1.2.3"]
|
|
119
|
+
, ["*", "v1.2.3-foo"]
|
|
120
|
+
, [">=1.0.0", "1.0.0"]
|
|
121
|
+
, [">=1.0.0", "1.0.1"]
|
|
122
|
+
, [">=1.0.0", "1.1.0"]
|
|
123
|
+
, [">1.0.0", "1.0.1"]
|
|
124
|
+
, [">1.0.0", "1.1.0"]
|
|
125
|
+
, ["<=2.0.0", "2.0.0"]
|
|
126
|
+
, ["<=2.0.0", "1.9999.9999"]
|
|
127
|
+
, ["<=2.0.0", "0.2.9"]
|
|
128
|
+
, ["<2.0.0", "1.9999.9999"]
|
|
129
|
+
, ["<2.0.0", "0.2.9"]
|
|
130
|
+
, [">= 1.0.0", "1.0.0"]
|
|
131
|
+
, [">= 1.0.0", "1.0.1"]
|
|
132
|
+
, [">= 1.0.0", "1.1.0"]
|
|
133
|
+
, ["> 1.0.0", "1.0.1"]
|
|
134
|
+
, ["> 1.0.0", "1.1.0"]
|
|
135
|
+
, ["<= 2.0.0", "2.0.0"]
|
|
136
|
+
, ["<= 2.0.0", "1.9999.9999"]
|
|
137
|
+
, ["<= 2.0.0", "0.2.9"]
|
|
138
|
+
, ["< 2.0.0", "1.9999.9999"]
|
|
139
|
+
, ["<\t2.0.0", "0.2.9"]
|
|
140
|
+
, [">=0.1.97", "v0.1.97"]
|
|
141
|
+
, [">=0.1.97", "0.1.97"]
|
|
142
|
+
, ["0.1.20 || 1.2.4", "1.2.4"]
|
|
143
|
+
, [">=0.2.3 || <0.0.1", "0.0.0"]
|
|
144
|
+
, [">=0.2.3 || <0.0.1", "0.2.3"]
|
|
145
|
+
, [">=0.2.3 || <0.0.1", "0.2.4"]
|
|
146
|
+
, ["||", "1.3.4"]
|
|
147
|
+
, ["2.x.x", "2.1.3"]
|
|
148
|
+
, ["1.2.x", "1.2.3"]
|
|
149
|
+
, ["1.2.x || 2.x", "2.1.3"]
|
|
150
|
+
, ["1.2.x || 2.x", "1.2.3"]
|
|
151
|
+
, ["x", "1.2.3"]
|
|
152
|
+
, ["2.*.*", "2.1.3"]
|
|
153
|
+
, ["1.2.*", "1.2.3"]
|
|
154
|
+
, ["1.2.* || 2.*", "2.1.3"]
|
|
155
|
+
, ["1.2.* || 2.*", "1.2.3"]
|
|
156
|
+
, ["*", "1.2.3"]
|
|
157
|
+
, ["2", "2.1.2"]
|
|
158
|
+
, ["2.3", "2.3.1"]
|
|
159
|
+
, ["~2.4", "2.4.0"] // >=2.4.0 <2.5.0
|
|
160
|
+
, ["~2.4", "2.4.5"]
|
|
161
|
+
, ["~>3.2.1", "3.2.2"] // >=3.2.1 <3.3.0
|
|
162
|
+
, ["~1", "1.2.3"] // >=1.0.0 <2.0.0
|
|
163
|
+
, ["~>1", "1.2.3"]
|
|
164
|
+
, ["~> 1", "1.2.3"]
|
|
165
|
+
, ["~1.0", "1.0.2"] // >=1.0.0 <1.1.0
|
|
166
|
+
, ["~ 1.0", "1.0.2"]
|
|
167
|
+
, [">=1", "1.0.0"]
|
|
168
|
+
, [">= 1", "1.0.0"]
|
|
169
|
+
, ["<1.2", "1.1.1"]
|
|
170
|
+
, ["< 1.2", "1.1.1"]
|
|
171
|
+
, ["1", "1.0.0beta"]
|
|
172
|
+
, ["~v0.5.4-pre", "0.5.5"]
|
|
173
|
+
, ["~v0.5.4-pre", "0.5.4"]
|
|
174
|
+
, ["=0.7.x", "0.7.2"]
|
|
175
|
+
, [">=0.7.x", "0.7.2"]
|
|
176
|
+
, ["=0.7.x", "0.7.0-asdf"]
|
|
177
|
+
, [">=0.7.x", "0.7.0-asdf"]
|
|
178
|
+
, ["<=0.7.x", "0.6.2"]
|
|
179
|
+
].forEach(function (v) {
|
|
180
|
+
t.ok(satisfies(v[1], v[0]), v[0]+" satisfied by "+v[1])
|
|
181
|
+
})
|
|
182
|
+
t.end()
|
|
183
|
+
})
|
|
184
|
+
|
|
185
|
+
test("\nnegative range tests", function (t) {
|
|
186
|
+
; [ ["1.0.0 - 2.0.0", "2.2.3"]
|
|
187
|
+
, ["1.0.0", "1.0.1"]
|
|
188
|
+
, [">=1.0.0", "0.0.0"]
|
|
189
|
+
, [">=1.0.0", "0.0.1"]
|
|
190
|
+
, [">=1.0.0", "0.1.0"]
|
|
191
|
+
, [">1.0.0", "0.0.1"]
|
|
192
|
+
, [">1.0.0", "0.1.0"]
|
|
193
|
+
, ["<=2.0.0", "3.0.0"]
|
|
194
|
+
, ["<=2.0.0", "2.9999.9999"]
|
|
195
|
+
, ["<=2.0.0", "2.2.9"]
|
|
196
|
+
, ["<2.0.0", "2.9999.9999"]
|
|
197
|
+
, ["<2.0.0", "2.2.9"]
|
|
198
|
+
, [">=0.1.97", "v0.1.93"]
|
|
199
|
+
, [">=0.1.97", "0.1.93"]
|
|
200
|
+
, ["0.1.20 || 1.2.4", "1.2.3"]
|
|
201
|
+
, [">=0.2.3 || <0.0.1", "0.0.3"]
|
|
202
|
+
, [">=0.2.3 || <0.0.1", "0.2.2"]
|
|
203
|
+
, ["2.x.x", "1.1.3"]
|
|
204
|
+
, ["2.x.x", "3.1.3"]
|
|
205
|
+
, ["1.2.x", "1.3.3"]
|
|
206
|
+
, ["1.2.x || 2.x", "3.1.3"]
|
|
207
|
+
, ["1.2.x || 2.x", "1.1.3"]
|
|
208
|
+
, ["2.*.*", "1.1.3"]
|
|
209
|
+
, ["2.*.*", "3.1.3"]
|
|
210
|
+
, ["1.2.*", "1.3.3"]
|
|
211
|
+
, ["1.2.* || 2.*", "3.1.3"]
|
|
212
|
+
, ["1.2.* || 2.*", "1.1.3"]
|
|
213
|
+
, ["2", "1.1.2"]
|
|
214
|
+
, ["2.3", "2.4.1"]
|
|
215
|
+
, ["~2.4", "2.5.0"] // >=2.4.0 <2.5.0
|
|
216
|
+
, ["~2.4", "2.3.9"]
|
|
217
|
+
, ["~>3.2.1", "3.3.2"] // >=3.2.1 <3.3.0
|
|
218
|
+
, ["~>3.2.1", "3.2.0"] // >=3.2.1 <3.3.0
|
|
219
|
+
, ["~1", "0.2.3"] // >=1.0.0 <2.0.0
|
|
220
|
+
, ["~>1", "2.2.3"]
|
|
221
|
+
, ["~1.0", "1.1.0"] // >=1.0.0 <1.1.0
|
|
222
|
+
, ["<1", "1.0.0"]
|
|
223
|
+
, [">=1.2", "1.1.1"]
|
|
224
|
+
, ["1", "2.0.0beta"]
|
|
225
|
+
, ["~v0.5.4-beta", "0.5.4-alpha"]
|
|
226
|
+
, ["<1", "1.0.0beta"]
|
|
227
|
+
, ["< 1", "1.0.0beta"]
|
|
228
|
+
, ["=0.7.x", "0.8.2"]
|
|
229
|
+
, [">=0.7.x", "0.6.2"]
|
|
230
|
+
, ["<=0.7.x", "0.7.2"]
|
|
231
|
+
].forEach(function (v) {
|
|
232
|
+
t.ok(!satisfies(v[1], v[0]), v[0]+" not satisfied by "+v[1])
|
|
233
|
+
})
|
|
234
|
+
t.end()
|
|
235
|
+
})
|
|
236
|
+
|
|
237
|
+
test("\nincrement versions test", function (t) {
|
|
238
|
+
; [ [ "1.2.3", "major", "2.0.0" ]
|
|
239
|
+
, [ "1.2.3", "minor", "1.3.0" ]
|
|
240
|
+
, [ "1.2.3", "patch", "1.2.4" ]
|
|
241
|
+
, [ "1.2.3", "build", "1.2.3-1" ]
|
|
242
|
+
, [ "1.2.3-4", "build", "1.2.3-5" ]
|
|
243
|
+
, [ "1.2.3tag", "major", "2.0.0" ]
|
|
244
|
+
, [ "1.2.3-tag", "major", "2.0.0" ]
|
|
245
|
+
, [ "1.2.3tag", "build", "1.2.3-1" ]
|
|
246
|
+
, [ "1.2.3-tag", "build", "1.2.3-1" ]
|
|
247
|
+
, [ "1.2.3-4-tag", "build", "1.2.3-5" ]
|
|
248
|
+
, [ "1.2.3-4tag", "build", "1.2.3-5" ]
|
|
249
|
+
, [ "1.2.3", "fake", null ]
|
|
250
|
+
, [ "fake", "major", null ]
|
|
251
|
+
].forEach(function (v) {
|
|
252
|
+
t.equal(inc(v[0], v[1]), v[2], "inc("+v[0]+", "+v[1]+") === "+v[2])
|
|
253
|
+
})
|
|
254
|
+
|
|
255
|
+
t.end()
|
|
256
|
+
})
|
|
257
|
+
|
|
258
|
+
test("\nreplace stars test", function (t) {
|
|
259
|
+
; [ [ "", "" ]
|
|
260
|
+
, [ "*", "" ]
|
|
261
|
+
, [ "> *", "" ]
|
|
262
|
+
, [ "<*", "" ]
|
|
263
|
+
, [ " >= *", "" ]
|
|
264
|
+
, [ "* || 1.2.3", " || 1.2.3" ]
|
|
265
|
+
].forEach(function (v) {
|
|
266
|
+
t.equal(replaceStars(v[0]), v[1], "replaceStars("+v[0]+") === "+v[1])
|
|
267
|
+
})
|
|
268
|
+
|
|
269
|
+
t.end()
|
|
270
|
+
})
|
|
271
|
+
|
|
272
|
+
test("\nvalid range test", function (t) {
|
|
273
|
+
; [ ["1.0.0 - 2.0.0", ">=1.0.0 <=2.0.0"]
|
|
274
|
+
, ["1.0.0", "1.0.0"]
|
|
275
|
+
, [">=*", ""]
|
|
276
|
+
, ["", ""]
|
|
277
|
+
, ["*", ""]
|
|
278
|
+
, ["*", ""]
|
|
279
|
+
, [">=1.0.0", ">=1.0.0"]
|
|
280
|
+
, [">1.0.0", ">1.0.0"]
|
|
281
|
+
, ["<=2.0.0", "<=2.0.0"]
|
|
282
|
+
, ["1", ">=1.0.0- <2.0.0-"]
|
|
283
|
+
, ["<=2.0.0", "<=2.0.0"]
|
|
284
|
+
, ["<=2.0.0", "<=2.0.0"]
|
|
285
|
+
, ["<2.0.0", "<2.0.0"]
|
|
286
|
+
, ["<2.0.0", "<2.0.0"]
|
|
287
|
+
, [">= 1.0.0", ">=1.0.0"]
|
|
288
|
+
, [">= 1.0.0", ">=1.0.0"]
|
|
289
|
+
, [">= 1.0.0", ">=1.0.0"]
|
|
290
|
+
, ["> 1.0.0", ">1.0.0"]
|
|
291
|
+
, ["> 1.0.0", ">1.0.0"]
|
|
292
|
+
, ["<= 2.0.0", "<=2.0.0"]
|
|
293
|
+
, ["<= 2.0.0", "<=2.0.0"]
|
|
294
|
+
, ["<= 2.0.0", "<=2.0.0"]
|
|
295
|
+
, ["< 2.0.0", "<2.0.0"]
|
|
296
|
+
, ["< 2.0.0", "<2.0.0"]
|
|
297
|
+
, [">=0.1.97", ">=0.1.97"]
|
|
298
|
+
, [">=0.1.97", ">=0.1.97"]
|
|
299
|
+
, ["0.1.20 || 1.2.4", "0.1.20||1.2.4"]
|
|
300
|
+
, [">=0.2.3 || <0.0.1", ">=0.2.3||<0.0.1"]
|
|
301
|
+
, [">=0.2.3 || <0.0.1", ">=0.2.3||<0.0.1"]
|
|
302
|
+
, [">=0.2.3 || <0.0.1", ">=0.2.3||<0.0.1"]
|
|
303
|
+
, ["||", "||"]
|
|
304
|
+
, ["2.x.x", ">=2.0.0- <3.0.0-"]
|
|
305
|
+
, ["1.2.x", ">=1.2.0- <1.3.0-"]
|
|
306
|
+
, ["1.2.x || 2.x", ">=1.2.0- <1.3.0-||>=2.0.0- <3.0.0-"]
|
|
307
|
+
, ["1.2.x || 2.x", ">=1.2.0- <1.3.0-||>=2.0.0- <3.0.0-"]
|
|
308
|
+
, ["x", ""]
|
|
309
|
+
, ["2.*.*", null]
|
|
310
|
+
, ["1.2.*", null]
|
|
311
|
+
, ["1.2.* || 2.*", null]
|
|
312
|
+
, ["1.2.* || 2.*", null]
|
|
313
|
+
, ["*", ""]
|
|
314
|
+
, ["2", ">=2.0.0- <3.0.0-"]
|
|
315
|
+
, ["2.3", ">=2.3.0- <2.4.0-"]
|
|
316
|
+
, ["~2.4", ">=2.4.0- <2.5.0-"]
|
|
317
|
+
, ["~2.4", ">=2.4.0- <2.5.0-"]
|
|
318
|
+
, ["~>3.2.1", ">=3.2.1- <3.3.0-"]
|
|
319
|
+
, ["~1", ">=1.0.0- <2.0.0-"]
|
|
320
|
+
, ["~>1", ">=1.0.0- <2.0.0-"]
|
|
321
|
+
, ["~> 1", ">=1.0.0- <2.0.0-"]
|
|
322
|
+
, ["~1.0", ">=1.0.0- <1.1.0-"]
|
|
323
|
+
, ["~ 1.0", ">=1.0.0- <1.1.0-"]
|
|
324
|
+
, ["<1", "<1.0.0-"]
|
|
325
|
+
, ["< 1", "<1.0.0-"]
|
|
326
|
+
, [">=1", ">=1.0.0-"]
|
|
327
|
+
, [">= 1", ">=1.0.0-"]
|
|
328
|
+
, ["<1.2", "<1.2.0-"]
|
|
329
|
+
, ["< 1.2", "<1.2.0-"]
|
|
330
|
+
, ["1", ">=1.0.0- <2.0.0-"]
|
|
331
|
+
].forEach(function (v) {
|
|
332
|
+
t.equal(validRange(v[0]), v[1], "validRange("+v[0]+") === "+v[1])
|
|
333
|
+
})
|
|
334
|
+
|
|
335
|
+
t.end()
|
|
336
|
+
})
|
|
337
|
+
|
|
338
|
+
test("\ncomparators test", function (t) {
|
|
339
|
+
; [ ["1.0.0 - 2.0.0", [[">=1.0.0", "<=2.0.0"]] ]
|
|
340
|
+
, ["1.0.0", [["1.0.0"]] ]
|
|
341
|
+
, [">=*", [[">=0.0.0-"]] ]
|
|
342
|
+
, ["", [[""]]]
|
|
343
|
+
, ["*", [[""]] ]
|
|
344
|
+
, ["*", [[""]] ]
|
|
345
|
+
, [">=1.0.0", [[">=1.0.0"]] ]
|
|
346
|
+
, [">=1.0.0", [[">=1.0.0"]] ]
|
|
347
|
+
, [">=1.0.0", [[">=1.0.0"]] ]
|
|
348
|
+
, [">1.0.0", [[">1.0.0"]] ]
|
|
349
|
+
, [">1.0.0", [[">1.0.0"]] ]
|
|
350
|
+
, ["<=2.0.0", [["<=2.0.0"]] ]
|
|
351
|
+
, ["1", [[">=1.0.0-", "<2.0.0-"]] ]
|
|
352
|
+
, ["<=2.0.0", [["<=2.0.0"]] ]
|
|
353
|
+
, ["<=2.0.0", [["<=2.0.0"]] ]
|
|
354
|
+
, ["<2.0.0", [["<2.0.0"]] ]
|
|
355
|
+
, ["<2.0.0", [["<2.0.0"]] ]
|
|
356
|
+
, [">= 1.0.0", [[">=1.0.0"]] ]
|
|
357
|
+
, [">= 1.0.0", [[">=1.0.0"]] ]
|
|
358
|
+
, [">= 1.0.0", [[">=1.0.0"]] ]
|
|
359
|
+
, ["> 1.0.0", [[">1.0.0"]] ]
|
|
360
|
+
, ["> 1.0.0", [[">1.0.0"]] ]
|
|
361
|
+
, ["<= 2.0.0", [["<=2.0.0"]] ]
|
|
362
|
+
, ["<= 2.0.0", [["<=2.0.0"]] ]
|
|
363
|
+
, ["<= 2.0.0", [["<=2.0.0"]] ]
|
|
364
|
+
, ["< 2.0.0", [["<2.0.0"]] ]
|
|
365
|
+
, ["<\t2.0.0", [["<2.0.0"]] ]
|
|
366
|
+
, [">=0.1.97", [[">=0.1.97"]] ]
|
|
367
|
+
, [">=0.1.97", [[">=0.1.97"]] ]
|
|
368
|
+
, ["0.1.20 || 1.2.4", [["0.1.20"], ["1.2.4"]] ]
|
|
369
|
+
, [">=0.2.3 || <0.0.1", [[">=0.2.3"], ["<0.0.1"]] ]
|
|
370
|
+
, [">=0.2.3 || <0.0.1", [[">=0.2.3"], ["<0.0.1"]] ]
|
|
371
|
+
, [">=0.2.3 || <0.0.1", [[">=0.2.3"], ["<0.0.1"]] ]
|
|
372
|
+
, ["||", [[""], [""]] ]
|
|
373
|
+
, ["2.x.x", [[">=2.0.0-", "<3.0.0-"]] ]
|
|
374
|
+
, ["1.2.x", [[">=1.2.0-", "<1.3.0-"]] ]
|
|
375
|
+
, ["1.2.x || 2.x", [[">=1.2.0-", "<1.3.0-"], [">=2.0.0-", "<3.0.0-"]] ]
|
|
376
|
+
, ["1.2.x || 2.x", [[">=1.2.0-", "<1.3.0-"], [">=2.0.0-", "<3.0.0-"]] ]
|
|
377
|
+
, ["x", [[""]] ]
|
|
378
|
+
, ["2.*.*", [[">=2.0.0-", "<3.0.0-"]] ]
|
|
379
|
+
, ["1.2.*", [[">=1.2.0-", "<1.3.0-"]] ]
|
|
380
|
+
, ["1.2.* || 2.*", [[">=1.2.0-", "<1.3.0-"], [">=2.0.0-", "<3.0.0-"]] ]
|
|
381
|
+
, ["1.2.* || 2.*", [[">=1.2.0-", "<1.3.0-"], [">=2.0.0-", "<3.0.0-"]] ]
|
|
382
|
+
, ["*", [[""]] ]
|
|
383
|
+
, ["2", [[">=2.0.0-", "<3.0.0-"]] ]
|
|
384
|
+
, ["2.3", [[">=2.3.0-", "<2.4.0-"]] ]
|
|
385
|
+
, ["~2.4", [[">=2.4.0-", "<2.5.0-"]] ]
|
|
386
|
+
, ["~2.4", [[">=2.4.0-", "<2.5.0-"]] ]
|
|
387
|
+
, ["~>3.2.1", [[">=3.2.1-", "<3.3.0-"]] ]
|
|
388
|
+
, ["~1", [[">=1.0.0-", "<2.0.0-"]] ]
|
|
389
|
+
, ["~>1", [[">=1.0.0-", "<2.0.0-"]] ]
|
|
390
|
+
, ["~> 1", [[">=1.0.0-", "<2.0.0-"]] ]
|
|
391
|
+
, ["~1.0", [[">=1.0.0-", "<1.1.0-"]] ]
|
|
392
|
+
, ["~ 1.0", [[">=1.0.0-", "<1.1.0-"]] ]
|
|
393
|
+
, ["<1", [["<1.0.0-"]] ]
|
|
394
|
+
, ["< 1", [["<1.0.0-"]] ]
|
|
395
|
+
, [">=1", [[">=1.0.0-"]] ]
|
|
396
|
+
, [">= 1", [[">=1.0.0-"]] ]
|
|
397
|
+
, ["<1.2", [["<1.2.0-"]] ]
|
|
398
|
+
, ["< 1.2", [["<1.2.0-"]] ]
|
|
399
|
+
, ["1", [[">=1.0.0-", "<2.0.0-"]] ]
|
|
400
|
+
].forEach(function (v) {
|
|
401
|
+
t.equivalent(toComparators(v[0]), v[1], "toComparators("+v[0]+") === "+JSON.stringify(v[1]))
|
|
402
|
+
})
|
|
403
|
+
|
|
404
|
+
t.end()
|
|
405
|
+
})
|
package/cp.js
DELETED
package/no-exit.js
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
;(function () {
|
|
3
|
-
|
|
4
|
-
var gen = +(process.argv[2] || 0);
|
|
5
|
-
var maxGen = 5;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
if (gen === maxGen) {
|
|
9
|
-
console.log("hit maxGen, exiting", maxGen);
|
|
10
|
-
return;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
var ch = require("child_process");
|
|
14
|
-
var cp = ch.spawn("node", [__filename, gen + 1]);
|
|
15
|
-
|
|
16
|
-
console.log("gen=%d", gen);
|
|
17
|
-
|
|
18
|
-
var timer = setTimeout(function () {
|
|
19
|
-
console.error(cp.stdout)
|
|
20
|
-
throw new Error("timeout! gen="+gen);
|
|
21
|
-
}, 10000);
|
|
22
|
-
|
|
23
|
-
process.on("exit", function (code) {
|
|
24
|
-
console.error("exiting %d with code %d", gen, code || 0);
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
cp.on("exit", function (code) {
|
|
28
|
-
console.error("exit %d from gen %d", code, gen + 1);
|
|
29
|
-
clearTimeout(timer);
|
|
30
|
-
})
|
|
31
|
-
|
|
32
|
-
cp.stdout.pipe(process.stdout);
|
|
33
|
-
cp.stderr.pipe(process.stderr);
|
|
34
|
-
|
|
35
|
-
})();
|
package/pipeout.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
var stream = require("stream")
|
|
2
|
-
var util = require("util")
|
|
3
|
-
|
|
4
|
-
function Piper() {}
|
|
5
|
-
util.inherits(Piper, stream.Stream)
|
|
6
|
-
Piper.prototype.write = function (c) {
|
|
7
|
-
console.error("data", c)
|
|
8
|
-
this.emit("data", c)
|
|
9
|
-
}
|
|
10
|
-
Piper.prototype.end = function () {
|
|
11
|
-
this.emit("end")
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
var pied = new Piper
|
|
15
|
-
pied.pipe(process.stdout)
|
|
16
|
-
pied.write("yo")
|
|
17
|
-
setTimeout(function () {
|
|
18
|
-
console.error("step 2", c)
|
|
19
|
-
pied.write("ho ho")
|
|
20
|
-
setTimeout(function () {
|
|
21
|
-
pied.end()
|
|
22
|
-
}) })
|