muhammara 2.2.0 → 2.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.
Files changed (41) hide show
  1. package/CHANGELOG.md +9 -1
  2. package/README.md +2 -2
  3. package/node_modules/@mapbox/node-pre-gyp/CHANGELOG.md +4 -0
  4. package/node_modules/@mapbox/node-pre-gyp/lib/util/versioning.js +1 -1
  5. package/node_modules/@mapbox/node-pre-gyp/package.json +10 -10
  6. package/node_modules/debug/README.md +3 -0
  7. package/node_modules/debug/package.json +5 -5
  8. package/node_modules/debug/src/common.js +1 -1
  9. package/node_modules/detect-libc/README.md +124 -42
  10. package/node_modules/detect-libc/index.d.ts +11 -0
  11. package/node_modules/detect-libc/lib/detect-libc.js +166 -80
  12. package/node_modules/detect-libc/lib/process.js +16 -0
  13. package/node_modules/detect-libc/package.json +20 -19
  14. package/node_modules/https-proxy-agent/dist/agent.js +2 -5
  15. package/node_modules/https-proxy-agent/dist/agent.js.map +1 -1
  16. package/node_modules/https-proxy-agent/package.json +5 -5
  17. package/node_modules/node-fetch/package.json +5 -5
  18. package/node_modules/semver/README.md +3 -1
  19. package/node_modules/semver/bin/semver.js +19 -9
  20. package/node_modules/semver/classes/comparator.js +3 -2
  21. package/node_modules/semver/classes/index.js +1 -1
  22. package/node_modules/semver/classes/range.js +31 -22
  23. package/node_modules/semver/classes/semver.js +1 -1
  24. package/node_modules/semver/functions/cmp.js +8 -4
  25. package/node_modules/semver/functions/coerce.js +3 -2
  26. package/node_modules/semver/functions/inc.js +4 -1
  27. package/node_modules/semver/functions/parse.js +1 -1
  28. package/node_modules/semver/internal/constants.js +2 -2
  29. package/node_modules/semver/internal/identifiers.js +1 -1
  30. package/node_modules/semver/internal/parse-options.js +3 -3
  31. package/node_modules/semver/internal/re.js +3 -3
  32. package/node_modules/semver/package.json +46 -13
  33. package/node_modules/semver/ranges/min-version.js +2 -1
  34. package/node_modules/semver/ranges/outside.js +1 -1
  35. package/node_modules/semver/ranges/simplify.js +15 -12
  36. package/node_modules/semver/ranges/subset.js +53 -31
  37. package/package.json +1 -1
  38. package/src/DocumentCopyingContextDriver.cpp +6 -6
  39. package/node_modules/detect-libc/.npmignore +0 -7
  40. package/node_modules/detect-libc/bin/detect-libc.js +0 -18
  41. package/node_modules/semver/CHANGELOG.md +0 -111
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "_from": "semver@^7.3.5",
3
- "_id": "semver@7.3.5",
3
+ "_id": "semver@7.3.7",
4
4
  "_inBundle": false,
5
- "_integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
5
+ "_integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
6
6
  "_location": "/semver",
7
7
  "_phantomChildren": {},
8
8
  "_requested": {
@@ -18,10 +18,13 @@
18
18
  "_requiredBy": [
19
19
  "/@mapbox/node-pre-gyp"
20
20
  ],
21
- "_resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
22
- "_shasum": "0b621c879348d8998e4b0e4be94b3f12e6018ef7",
21
+ "_resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
22
+ "_shasum": "12c5b649afdbf9049707796e22a4028814ce523f",
23
23
  "_spec": "semver@^7.3.5",
24
24
  "_where": "/home/runner/work/MuhammaraJS/MuhammaraJS/node_modules/@mapbox/node-pre-gyp",
25
+ "author": {
26
+ "name": "GitHub Inc."
27
+ },
25
28
  "bin": {
26
29
  "semver": "bin/semver.js"
27
30
  },
@@ -35,20 +38,22 @@
35
38
  "deprecated": false,
36
39
  "description": "The semantic version parser used by npm.",
37
40
  "devDependencies": {
38
- "tap": "^14.10.7"
41
+ "@npmcli/eslint-config": "^3.0.1",
42
+ "@npmcli/template-oss": "3.3.2",
43
+ "tap": "^16.0.0"
39
44
  },
40
45
  "engines": {
41
46
  "node": ">=10"
42
47
  },
43
48
  "files": [
44
- "bin/**/*.js",
45
- "range.bnf",
46
- "classes/**/*.js",
47
- "functions/**/*.js",
48
- "internal/**/*.js",
49
- "ranges/**/*.js",
49
+ "bin/",
50
+ "classes/",
51
+ "functions/",
52
+ "internal/",
53
+ "ranges/",
50
54
  "index.js",
51
- "preload.js"
55
+ "preload.js",
56
+ "range.bnf"
52
57
  ],
53
58
  "homepage": "https://github.com/npm/node-semver#readme",
54
59
  "license": "ISC",
@@ -59,15 +64,43 @@
59
64
  "url": "git+https://github.com/npm/node-semver.git"
60
65
  },
61
66
  "scripts": {
67
+ "lint": "eslint \"**/*.js\"",
68
+ "lintfix": "npm run lint -- --fix",
69
+ "postlint": "template-oss-check",
62
70
  "postpublish": "git push origin --follow-tags",
71
+ "posttest": "npm run lint",
63
72
  "postversion": "npm publish",
73
+ "prepublishOnly": "git push origin --follow-tags",
64
74
  "preversion": "npm test",
65
75
  "snap": "tap",
76
+ "template-oss-apply": "template-oss-apply --force",
66
77
  "test": "tap"
67
78
  },
68
79
  "tap": {
69
80
  "check-coverage": true,
70
81
  "coverage-map": "map.js"
71
82
  },
72
- "version": "7.3.5"
83
+ "templateOSS": {
84
+ "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",
85
+ "version": "3.3.2",
86
+ "engines": ">=10",
87
+ "ciVersions": [
88
+ "10.0.0",
89
+ "10.x",
90
+ "12.x",
91
+ "14.x",
92
+ "16.x"
93
+ ],
94
+ "distPaths": [
95
+ "bin/",
96
+ "classes/",
97
+ "functions/",
98
+ "internal/",
99
+ "ranges/",
100
+ "index.js",
101
+ "preload.js",
102
+ "range.bnf"
103
+ ]
104
+ },
105
+ "version": "7.3.7"
73
106
  }
@@ -47,8 +47,9 @@ const minVersion = (range, loose) => {
47
47
  throw new Error(`Unexpected operation: ${comparator.operator}`)
48
48
  }
49
49
  })
50
- if (setMin && (!minver || gt(minver, setMin)))
50
+ if (setMin && (!minver || gt(minver, setMin))) {
51
51
  minver = setMin
52
+ }
52
53
  }
53
54
 
54
55
  if (minver && range.test(minver)) {
@@ -1,6 +1,6 @@
1
1
  const SemVer = require('../classes/semver')
2
2
  const Comparator = require('../classes/comparator')
3
- const {ANY} = Comparator
3
+ const { ANY } = Comparator
4
4
  const Range = require('../classes/range')
5
5
  const satisfies = require('../functions/satisfies')
6
6
  const gt = require('../functions/gt')
@@ -5,38 +5,41 @@ const satisfies = require('../functions/satisfies.js')
5
5
  const compare = require('../functions/compare.js')
6
6
  module.exports = (versions, range, options) => {
7
7
  const set = []
8
- let min = null
8
+ let first = null
9
9
  let prev = null
10
10
  const v = versions.sort((a, b) => compare(a, b, options))
11
11
  for (const version of v) {
12
12
  const included = satisfies(version, range, options)
13
13
  if (included) {
14
14
  prev = version
15
- if (!min)
16
- min = version
15
+ if (!first) {
16
+ first = version
17
+ }
17
18
  } else {
18
19
  if (prev) {
19
- set.push([min, prev])
20
+ set.push([first, prev])
20
21
  }
21
22
  prev = null
22
- min = null
23
+ first = null
23
24
  }
24
25
  }
25
- if (min)
26
- set.push([min, null])
26
+ if (first) {
27
+ set.push([first, null])
28
+ }
27
29
 
28
30
  const ranges = []
29
31
  for (const [min, max] of set) {
30
- if (min === max)
32
+ if (min === max) {
31
33
  ranges.push(min)
32
- else if (!max && min === v[0])
34
+ } else if (!max && min === v[0]) {
33
35
  ranges.push('*')
34
- else if (!max)
36
+ } else if (!max) {
35
37
  ranges.push(`>=${min}`)
36
- else if (min === v[0])
38
+ } else if (min === v[0]) {
37
39
  ranges.push(`<=${max}`)
38
- else
40
+ } else {
39
41
  ranges.push(`${min} - ${max}`)
42
+ }
40
43
  }
41
44
  const simplified = ranges.join(' || ')
42
45
  const original = typeof range.raw === 'string' ? range.raw : String(range)
@@ -41,8 +41,9 @@ const compare = require('../functions/compare.js')
41
41
  // - Else return true
42
42
 
43
43
  const subset = (sub, dom, options = {}) => {
44
- if (sub === dom)
44
+ if (sub === dom) {
45
45
  return true
46
+ }
46
47
 
47
48
  sub = new Range(sub, options)
48
49
  dom = new Range(dom, options)
@@ -52,73 +53,84 @@ const subset = (sub, dom, options = {}) => {
52
53
  for (const simpleDom of dom.set) {
53
54
  const isSub = simpleSubset(simpleSub, simpleDom, options)
54
55
  sawNonNull = sawNonNull || isSub !== null
55
- if (isSub)
56
+ if (isSub) {
56
57
  continue OUTER
58
+ }
57
59
  }
58
60
  // the null set is a subset of everything, but null simple ranges in
59
61
  // a complex range should be ignored. so if we saw a non-null range,
60
62
  // then we know this isn't a subset, but if EVERY simple range was null,
61
63
  // then it is a subset.
62
- if (sawNonNull)
64
+ if (sawNonNull) {
63
65
  return false
66
+ }
64
67
  }
65
68
  return true
66
69
  }
67
70
 
68
71
  const simpleSubset = (sub, dom, options) => {
69
- if (sub === dom)
72
+ if (sub === dom) {
70
73
  return true
74
+ }
71
75
 
72
76
  if (sub.length === 1 && sub[0].semver === ANY) {
73
- if (dom.length === 1 && dom[0].semver === ANY)
77
+ if (dom.length === 1 && dom[0].semver === ANY) {
74
78
  return true
75
- else if (options.includePrerelease)
76
- sub = [ new Comparator('>=0.0.0-0') ]
77
- else
78
- sub = [ new Comparator('>=0.0.0') ]
79
+ } else if (options.includePrerelease) {
80
+ sub = [new Comparator('>=0.0.0-0')]
81
+ } else {
82
+ sub = [new Comparator('>=0.0.0')]
83
+ }
79
84
  }
80
85
 
81
86
  if (dom.length === 1 && dom[0].semver === ANY) {
82
- if (options.includePrerelease)
87
+ if (options.includePrerelease) {
83
88
  return true
84
- else
85
- dom = [ new Comparator('>=0.0.0') ]
89
+ } else {
90
+ dom = [new Comparator('>=0.0.0')]
91
+ }
86
92
  }
87
93
 
88
94
  const eqSet = new Set()
89
95
  let gt, lt
90
96
  for (const c of sub) {
91
- if (c.operator === '>' || c.operator === '>=')
97
+ if (c.operator === '>' || c.operator === '>=') {
92
98
  gt = higherGT(gt, c, options)
93
- else if (c.operator === '<' || c.operator === '<=')
99
+ } else if (c.operator === '<' || c.operator === '<=') {
94
100
  lt = lowerLT(lt, c, options)
95
- else
101
+ } else {
96
102
  eqSet.add(c.semver)
103
+ }
97
104
  }
98
105
 
99
- if (eqSet.size > 1)
106
+ if (eqSet.size > 1) {
100
107
  return null
108
+ }
101
109
 
102
110
  let gtltComp
103
111
  if (gt && lt) {
104
112
  gtltComp = compare(gt.semver, lt.semver, options)
105
- if (gtltComp > 0)
113
+ if (gtltComp > 0) {
106
114
  return null
107
- else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<='))
115
+ } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) {
108
116
  return null
117
+ }
109
118
  }
110
119
 
111
120
  // will iterate one or zero times
112
121
  for (const eq of eqSet) {
113
- if (gt && !satisfies(eq, String(gt), options))
122
+ if (gt && !satisfies(eq, String(gt), options)) {
114
123
  return null
124
+ }
115
125
 
116
- if (lt && !satisfies(eq, String(lt), options))
126
+ if (lt && !satisfies(eq, String(lt), options)) {
117
127
  return null
128
+ }
118
129
 
119
130
  for (const c of dom) {
120
- if (!satisfies(eq, String(c), options))
131
+ if (!satisfies(eq, String(c), options)) {
121
132
  return false
133
+ }
122
134
  }
123
135
 
124
136
  return true
@@ -154,10 +166,12 @@ const simpleSubset = (sub, dom, options) => {
154
166
  }
155
167
  if (c.operator === '>' || c.operator === '>=') {
156
168
  higher = higherGT(gt, c, options)
157
- if (higher === c && higher !== gt)
169
+ if (higher === c && higher !== gt) {
158
170
  return false
159
- } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options))
171
+ }
172
+ } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) {
160
173
  return false
174
+ }
161
175
  }
162
176
  if (lt) {
163
177
  if (needDomLTPre) {
@@ -170,37 +184,44 @@ const simpleSubset = (sub, dom, options) => {
170
184
  }
171
185
  if (c.operator === '<' || c.operator === '<=') {
172
186
  lower = lowerLT(lt, c, options)
173
- if (lower === c && lower !== lt)
187
+ if (lower === c && lower !== lt) {
174
188
  return false
175
- } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options))
189
+ }
190
+ } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) {
176
191
  return false
192
+ }
177
193
  }
178
- if (!c.operator && (lt || gt) && gtltComp !== 0)
194
+ if (!c.operator && (lt || gt) && gtltComp !== 0) {
179
195
  return false
196
+ }
180
197
  }
181
198
 
182
199
  // if there was a < or >, and nothing in the dom, then must be false
183
200
  // UNLESS it was limited by another range in the other direction.
184
201
  // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0
185
- if (gt && hasDomLT && !lt && gtltComp !== 0)
202
+ if (gt && hasDomLT && !lt && gtltComp !== 0) {
186
203
  return false
204
+ }
187
205
 
188
- if (lt && hasDomGT && !gt && gtltComp !== 0)
206
+ if (lt && hasDomGT && !gt && gtltComp !== 0) {
189
207
  return false
208
+ }
190
209
 
191
210
  // we needed a prerelease range in a specific tuple, but didn't get one
192
211
  // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,
193
212
  // because it includes prereleases in the 1.2.3 tuple
194
- if (needDomGTPre || needDomLTPre)
213
+ if (needDomGTPre || needDomLTPre) {
195
214
  return false
215
+ }
196
216
 
197
217
  return true
198
218
  }
199
219
 
200
220
  // >=1.2.3 is lower than >1.2.3
201
221
  const higherGT = (a, b, options) => {
202
- if (!a)
222
+ if (!a) {
203
223
  return b
224
+ }
204
225
  const comp = compare(a.semver, b.semver, options)
205
226
  return comp > 0 ? a
206
227
  : comp < 0 ? b
@@ -210,8 +231,9 @@ const higherGT = (a, b, options) => {
210
231
 
211
232
  // <=1.2.3 is higher than <1.2.3
212
233
  const lowerLT = (a, b, options) => {
213
- if (!a)
234
+ if (!a) {
214
235
  return b
236
+ }
215
237
  const comp = compare(a.semver, b.semver, options)
216
238
  return comp < 0 ? a
217
239
  : comp > 0 ? b
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "muhammara",
3
- "version": "2.2.0",
3
+ "version": "2.3.0",
4
4
  "description": "Create, read and modify PDF files and streams. A drop in replacement for hummujs PDF library",
5
5
  "homepage": "https://github.com/julianhille/Muhammarajs",
6
6
  "license": "Apache-2.0",
@@ -156,7 +156,7 @@ METHOD_RETURN_TYPE DocumentCopyingContextDriver::CreateFormXObjectFromPDFPage(co
156
156
 
157
157
  if(result.first != eSuccess)
158
158
  {
159
- THROW_EXCEPTION("Unable to create form xobject from PDF page, parhaps the page index does not fit the total pages count");
159
+ THROW_EXCEPTION("Unable to create form xobject from PDF page, perhaps the page index does not fit the total pages count");
160
160
  SET_FUNCTION_RETURN_VALUE(UNDEFINED)
161
161
  }
162
162
 
@@ -191,7 +191,7 @@ METHOD_RETURN_TYPE DocumentCopyingContextDriver::MergePDFPageToPage(const ARGS_T
191
191
  TO_UINT32(args[1])->Value());
192
192
 
193
193
  if(status != eSuccess)
194
- THROW_EXCEPTION("Unable to merge page index to page. parhaps the page index is wrong");
194
+ THROW_EXCEPTION("Unable to merge page index to page. Perhaps the page index is wrong");
195
195
  SET_FUNCTION_RETURN_VALUE(UNDEFINED)
196
196
 
197
197
  }
@@ -220,7 +220,7 @@ METHOD_RETURN_TYPE DocumentCopyingContextDriver::AppendPDFPageFromPDF(const ARGS
220
220
 
221
221
  if(result.first != eSuccess)
222
222
  {
223
- THROW_EXCEPTION("Unable to append page. parhaps the page index is wrong");
223
+ THROW_EXCEPTION("Unable to append page. Perhaps the page index is wrong");
224
224
  SET_FUNCTION_RETURN_VALUE(UNDEFINED)
225
225
  }
226
226
 
@@ -255,7 +255,7 @@ METHOD_RETURN_TYPE DocumentCopyingContextDriver::MergePDFPageToFormXObject(const
255
255
  TO_UINT32(args[1])->Value());
256
256
 
257
257
  if(status != eSuccess)
258
- THROW_EXCEPTION("Unable to merge page index to form. parhaps the page index is wrong");
258
+ THROW_EXCEPTION("Unable to merge page index to form. Perhaps the page index is wrong");
259
259
  SET_FUNCTION_RETURN_VALUE(UNDEFINED)
260
260
 
261
261
  }
@@ -293,7 +293,7 @@ METHOD_RETURN_TYPE DocumentCopyingContextDriver::CopyDirectObjectAsIs(const ARGS
293
293
 
294
294
  EStatusCode status = copyingContextDriver->CopyingContext->CopyDirectObjectAsIs(ObjectWrap::Unwrap<PDFObjectDriver>(args[0]->TO_OBJECT())->GetObject());
295
295
  if(status != eSuccess)
296
- THROW_EXCEPTION("Unable to merge page index to form. parhaps the page index is wrong");
296
+ THROW_EXCEPTION("Unable to merge page index to form. Perhaps the page index is wrong");
297
297
  SET_FUNCTION_RETURN_VALUE(UNDEFINED)
298
298
 
299
299
  }
@@ -347,7 +347,7 @@ METHOD_RETURN_TYPE DocumentCopyingContextDriver::CopyDirectObjectWithDeepCopy(co
347
347
 
348
348
  EStatusCodeAndObjectIDTypeList result = copyingContextDriver->CopyingContext->CopyDirectObjectWithDeepCopy(ObjectWrap::Unwrap<PDFObjectDriver>(args[0]->TO_OBJECT())->GetObject());
349
349
  if(result.first != eSuccess)
350
- THROW_EXCEPTION("Unable to copy object, parhaps the object id is wrong");
350
+ THROW_EXCEPTION("Unable to copy object, perhaps the object id is wrong");
351
351
 
352
352
  Local<Array> resultObjectIDs = NEW_ARRAY((unsigned int)result.second.size());
353
353
  unsigned int index = 0;
@@ -1,7 +0,0 @@
1
- .nyc_output
2
- .travis.yml
3
- coverage
4
- test.js
5
- node_modules
6
- /.circleci
7
- /tests/integration
@@ -1,18 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- 'use strict';
4
-
5
- var spawnSync = require('child_process').spawnSync;
6
- var libc = require('../');
7
-
8
- var spawnOptions = {
9
- env: process.env,
10
- shell: true,
11
- stdio: 'inherit'
12
- };
13
-
14
- if (libc.isNonGlibcLinux) {
15
- spawnOptions.env.LIBC = process.env.LIBC || libc.family;
16
- }
17
-
18
- process.exit(spawnSync(process.argv[2], process.argv.slice(3), spawnOptions).status);
@@ -1,111 +0,0 @@
1
- # changes log
2
-
3
- ## 7.3.0
4
-
5
- * Add `subset(r1, r2)` method to determine if `r1` range is entirely
6
- contained by `r2` range.
7
-
8
- ## 7.2.3
9
-
10
- * Fix handling of `includePrelease` mode where version ranges like `1.0.0 -
11
- 2.0.0` would include `3.0.0-pre` and not `1.0.0-pre`.
12
-
13
- ## 7.2.2
14
-
15
- * Fix bug where `2.0.0-pre` would be included in `^1.0.0` if
16
- `includePrerelease` was set to true.
17
-
18
- ## 7.2.0
19
-
20
- * Add `simplifyRange` method to attempt to generate a more human-readable
21
- range expression that is equivalent to a supplied range, for a given set
22
- of versions.
23
-
24
- ## 7.1.2
25
-
26
- * Remove fancy lazy-loading logic, as it was causing problems for webpack
27
- users.
28
-
29
- ## 7.1.0
30
-
31
- * Add `require('semver/preload')` to load the entire module without using
32
- lazy getter methods.
33
-
34
- ## 7.0.0
35
-
36
- * Refactor module into separate files for better tree-shaking
37
- * Drop support for very old node versions, use const/let, `=>` functions,
38
- and classes.
39
-
40
- ## 6.3.0
41
-
42
- * Expose the token enum on the exports
43
-
44
- ## 6.2.0
45
-
46
- * Coerce numbers to strings when passed to semver.coerce()
47
- * Add `rtl` option to coerce from right to left
48
-
49
- ## 6.1.3
50
-
51
- * Handle X-ranges properly in includePrerelease mode
52
-
53
- ## 6.1.2
54
-
55
- * Do not throw when testing invalid version strings
56
-
57
- ## 6.1.1
58
-
59
- * Add options support for semver.coerce()
60
- * Handle undefined version passed to Range.test
61
-
62
- ## 6.1.0
63
-
64
- * Add semver.compareBuild function
65
- * Support `*` in semver.intersects
66
-
67
- ## 6.0
68
-
69
- * Fix `intersects` logic.
70
-
71
- This is technically a bug fix, but since it is also a change to behavior
72
- that may require users updating their code, it is marked as a major
73
- version increment.
74
-
75
- ## 5.7
76
-
77
- * Add `minVersion` method
78
-
79
- ## 5.6
80
-
81
- * Move boolean `loose` param to an options object, with
82
- backwards-compatibility protection.
83
- * Add ability to opt out of special prerelease version handling with
84
- the `includePrerelease` option flag.
85
-
86
- ## 5.5
87
-
88
- * Add version coercion capabilities
89
-
90
- ## 5.4
91
-
92
- * Add intersection checking
93
-
94
- ## 5.3
95
-
96
- * Add `minSatisfying` method
97
-
98
- ## 5.2
99
-
100
- * Add `prerelease(v)` that returns prerelease components
101
-
102
- ## 5.1
103
-
104
- * Add Backus-Naur for ranges
105
- * Remove excessively cute inspection methods
106
-
107
- ## 5.0
108
-
109
- * Remove AMD/Browserified build artifacts
110
- * Fix ltr and gtr when using the `*` range
111
- * Fix for range `*` with a prerelease identifier