vega 0.2.5 → 0.2.7

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.
@@ -27,8 +27,8 @@
27
27
 
28
28
  /*!
29
29
  * https://github.com/Starcounter-Jack/JSON-Patch
30
- * (c) 2017 Joachim Wester
31
- * MIT license
30
+ * (c) 2017-2022 Joachim Wester
31
+ * MIT licensed
32
32
  */
33
33
  var __extends = undefined && undefined.__extends || function () {
34
34
  var extendStatics = function (d, b) {
@@ -60,13 +60,13 @@
60
60
  }
61
61
  function _objectKeys(obj) {
62
62
  if (Array.isArray(obj)) {
63
- var keys = new Array(obj.length);
63
+ var keys_1 = new Array(obj.length);
64
64
 
65
- for (var k = 0; k < keys.length; k++) {
66
- keys[k] = "" + k;
65
+ for (var k = 0; k < keys_1.length; k++) {
66
+ keys_1[k] = "" + k;
67
67
  }
68
68
 
69
- return keys;
69
+ return keys_1;
70
70
  }
71
71
 
72
72
  if (Object.keys) {
@@ -154,8 +154,8 @@
154
154
 
155
155
  if (obj) {
156
156
  if (Array.isArray(obj)) {
157
- for (var i = 0, len = obj.length; i < len; i++) {
158
- if (hasUndefined(obj[i])) {
157
+ for (var i_1 = 0, len = obj.length; i_1 < len; i_1++) {
158
+ if (hasUndefined(obj[i_1])) {
159
159
  return true;
160
160
  }
161
161
  }
@@ -483,8 +483,8 @@
483
483
  key = unescapePathComponent(key);
484
484
  }
485
485
 
486
- if (banPrototypeModifications && key == '__proto__') {
487
- throw new TypeError('JSON-Patch: modifying `__proto__` prop is banned for security reasons, if this was on purpose, please set `banPrototypeModifications` flag false and pass it to this function. More info in fast-json-patch README');
486
+ if (banPrototypeModifications && (key == '__proto__' || key == 'prototype' && t > 0 && keys[t - 1] == 'constructor')) {
487
+ throw new TypeError('JSON-Patch: modifying `__proto__` or `constructor/prototype` prop is banned for security reasons, if this was on purpose, please set `banPrototypeModifications` flag false and pass it to this function. More info in fast-json-patch README');
488
488
  }
489
489
 
490
490
  if (validateOperation) {
@@ -766,7 +766,7 @@
766
766
 
767
767
  /*!
768
768
  * https://github.com/Starcounter-Jack/JSON-Patch
769
- * (c) 2017 Joachim Wester
769
+ * (c) 2017-2021 Joachim Wester
770
770
  * MIT license
771
771
  */
772
772
  var beforeDict = new WeakMap();
@@ -1918,16 +1918,16 @@
1918
1918
 
1919
1919
  const opts = ['includePrerelease', 'loose', 'rtl'];
1920
1920
 
1921
- const parseOptions$3 = options => !options ? {} : typeof options !== 'object' ? {
1921
+ const parseOptions$1 = options => !options ? {} : typeof options !== 'object' ? {
1922
1922
  loose: true
1923
- } : opts.filter(k => options[k]).reduce((options, k) => {
1924
- options[k] = true;
1925
- return options;
1923
+ } : opts.filter(k => options[k]).reduce((o, k) => {
1924
+ o[k] = true;
1925
+ return o;
1926
1926
  }, {});
1927
1927
 
1928
- var parseOptions_1 = parseOptions$3;
1928
+ var parseOptions_1 = parseOptions$1;
1929
1929
 
1930
- var re$3 = {exports: {}};
1930
+ var re$1 = {exports: {}};
1931
1931
 
1932
1932
  // Not necessarily the package version of this code.
1933
1933
 
@@ -1945,14 +1945,14 @@
1945
1945
  MAX_SAFE_COMPONENT_LENGTH
1946
1946
  };
1947
1947
 
1948
- const debug$3 = typeof process === 'object' && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? function () {
1948
+ const debug$1 = typeof process === 'object' && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? function () {
1949
1949
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
1950
1950
  args[_key] = arguments[_key];
1951
1951
  }
1952
1952
 
1953
1953
  return console.error('SEMVER', ...args);
1954
1954
  } : () => {};
1955
- var debug_1 = debug$3;
1955
+ var debug_1 = debug$1;
1956
1956
 
1957
1957
  (function (module, exports) {
1958
1958
  const {
@@ -1968,7 +1968,7 @@
1968
1968
 
1969
1969
  const createToken = (name, value, isGlobal) => {
1970
1970
  const index = R++;
1971
- debug(index, value);
1971
+ debug(name, index, value);
1972
1972
  t[name] = index;
1973
1973
  src[index] = value;
1974
1974
  re[index] = new RegExp(value, isGlobal ? 'g' : undefined);
@@ -2062,9 +2062,9 @@
2062
2062
 
2063
2063
  createToken('STAR', '(<|>)?=?\\s*\\*'); // >=0.0.0 is like a star
2064
2064
 
2065
- createToken('GTE0', '^\\s*>=\\s*0\.0\.0\\s*$');
2066
- createToken('GTE0PRE', '^\\s*>=\\s*0\.0\.0-0\\s*$');
2067
- })(re$3, re$3.exports);
2065
+ createToken('GTE0', '^\\s*>=\\s*0\\.0\\.0\\s*$');
2066
+ createToken('GTE0PRE', '^\\s*>=\\s*0\\.0\\.0-0\\s*$');
2067
+ })(re$1, re$1.exports);
2068
2068
 
2069
2069
  const numeric = /^[0-9]+$/;
2070
2070
 
@@ -2087,25 +2087,25 @@
2087
2087
  rcompareIdentifiers
2088
2088
  };
2089
2089
 
2090
- const debug$2 = debug_1;
2090
+ const debug = debug_1;
2091
2091
  const {
2092
2092
  MAX_LENGTH,
2093
2093
  MAX_SAFE_INTEGER
2094
2094
  } = constants;
2095
2095
  const {
2096
- re: re$2,
2097
- t: t$2
2098
- } = re$3.exports;
2099
- const parseOptions$2 = parseOptions_1;
2096
+ re,
2097
+ t
2098
+ } = re$1.exports;
2099
+ const parseOptions = parseOptions_1;
2100
2100
  const {
2101
2101
  compareIdentifiers
2102
2102
  } = identifiers;
2103
2103
 
2104
- class SemVer$3 {
2104
+ class SemVer$1 {
2105
2105
  constructor(version, options) {
2106
- options = parseOptions$2(options);
2106
+ options = parseOptions(options);
2107
2107
 
2108
- if (version instanceof SemVer$3) {
2108
+ if (version instanceof SemVer$1) {
2109
2109
  if (version.loose === !!options.loose && version.includePrerelease === !!options.includePrerelease) {
2110
2110
  return version;
2111
2111
  } else {
@@ -2119,13 +2119,13 @@
2119
2119
  throw new TypeError("version is longer than ".concat(MAX_LENGTH, " characters"));
2120
2120
  }
2121
2121
 
2122
- debug$2('SemVer', version, options);
2122
+ debug('SemVer', version, options);
2123
2123
  this.options = options;
2124
2124
  this.loose = !!options.loose; // this isn't actually relevant for versions, but keep it so that we
2125
2125
  // don't run into trouble passing this.options around.
2126
2126
 
2127
2127
  this.includePrerelease = !!options.includePrerelease;
2128
- const m = version.trim().match(options.loose ? re$2[t$2.LOOSE] : re$2[t$2.FULL]);
2128
+ const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL]);
2129
2129
 
2130
2130
  if (!m) {
2131
2131
  throw new TypeError("Invalid Version: ".concat(version));
@@ -2185,14 +2185,14 @@
2185
2185
  }
2186
2186
 
2187
2187
  compare(other) {
2188
- debug$2('SemVer.compare', this.version, this.options, other);
2188
+ debug('SemVer.compare', this.version, this.options, other);
2189
2189
 
2190
- if (!(other instanceof SemVer$3)) {
2190
+ if (!(other instanceof SemVer$1)) {
2191
2191
  if (typeof other === 'string' && other === this.version) {
2192
2192
  return 0;
2193
2193
  }
2194
2194
 
2195
- other = new SemVer$3(other, this.options);
2195
+ other = new SemVer$1(other, this.options);
2196
2196
  }
2197
2197
 
2198
2198
  if (other.version === this.version) {
@@ -2203,16 +2203,16 @@
2203
2203
  }
2204
2204
 
2205
2205
  compareMain(other) {
2206
- if (!(other instanceof SemVer$3)) {
2207
- other = new SemVer$3(other, this.options);
2206
+ if (!(other instanceof SemVer$1)) {
2207
+ other = new SemVer$1(other, this.options);
2208
2208
  }
2209
2209
 
2210
2210
  return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch);
2211
2211
  }
2212
2212
 
2213
2213
  comparePre(other) {
2214
- if (!(other instanceof SemVer$3)) {
2215
- other = new SemVer$3(other, this.options);
2214
+ if (!(other instanceof SemVer$1)) {
2215
+ other = new SemVer$1(other, this.options);
2216
2216
  } // NOT having a prerelease is > having one
2217
2217
 
2218
2218
 
@@ -2229,7 +2229,7 @@
2229
2229
  do {
2230
2230
  const a = this.prerelease[i];
2231
2231
  const b = other.prerelease[i];
2232
- debug$2('prerelease compare', i, a, b);
2232
+ debug('prerelease compare', i, a, b);
2233
2233
 
2234
2234
  if (a === undefined && b === undefined) {
2235
2235
  return 0;
@@ -2246,8 +2246,8 @@
2246
2246
  }
2247
2247
 
2248
2248
  compareBuild(other) {
2249
- if (!(other instanceof SemVer$3)) {
2250
- other = new SemVer$3(other, this.options);
2249
+ if (!(other instanceof SemVer$1)) {
2250
+ other = new SemVer$1(other, this.options);
2251
2251
  }
2252
2252
 
2253
2253
  let i = 0;
@@ -2255,7 +2255,7 @@
2255
2255
  do {
2256
2256
  const a = this.build[i];
2257
2257
  const b = other.build[i];
2258
- debug$2('prerelease compare', i, a, b);
2258
+ debug('prerelease compare', i, a, b);
2259
2259
 
2260
2260
  if (a === undefined && b === undefined) {
2261
2261
  return 0;
@@ -2372,7 +2372,7 @@
2372
2372
  if (identifier) {
2373
2373
  // 1.2.0-beta.1 bumps to 1.2.0-beta.2,
2374
2374
  // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0
2375
- if (this.prerelease[0] === identifier) {
2375
+ if (compareIdentifiers(this.prerelease[0], identifier) === 0) {
2376
2376
  if (isNaN(this.prerelease[1])) {
2377
2377
  this.prerelease = [identifier, 0];
2378
2378
  }
@@ -2394,11 +2394,11 @@
2394
2394
 
2395
2395
  }
2396
2396
 
2397
- var semver = SemVer$3;
2397
+ var semver = SemVer$1;
2398
2398
 
2399
- const SemVer$2 = semver;
2399
+ const SemVer = semver;
2400
2400
 
2401
- const compare$6 = (a, b, loose) => new SemVer$2(a, loose).compare(new SemVer$2(b, loose));
2401
+ const compare$6 = (a, b, loose) => new SemVer(a, loose).compare(new SemVer(b, loose));
2402
2402
 
2403
2403
  var compare_1 = compare$6;
2404
2404
 
@@ -2445,16 +2445,28 @@
2445
2445
  const lt = lt_1;
2446
2446
  const lte = lte_1;
2447
2447
 
2448
- const cmp$1 = (a, op, b, loose) => {
2448
+ const cmp = (a, op, b, loose) => {
2449
2449
  switch (op) {
2450
2450
  case '===':
2451
- if (typeof a === 'object') a = a.version;
2452
- if (typeof b === 'object') b = b.version;
2451
+ if (typeof a === 'object') {
2452
+ a = a.version;
2453
+ }
2454
+
2455
+ if (typeof b === 'object') {
2456
+ b = b.version;
2457
+ }
2458
+
2453
2459
  return a === b;
2454
2460
 
2455
2461
  case '!==':
2456
- if (typeof a === 'object') a = a.version;
2457
- if (typeof b === 'object') b = b.version;
2462
+ if (typeof a === 'object') {
2463
+ a = a.version;
2464
+ }
2465
+
2466
+ if (typeof b === 'object') {
2467
+ b = b.version;
2468
+ }
2469
+
2458
2470
  return a !== b;
2459
2471
 
2460
2472
  case '':
@@ -2482,599 +2494,641 @@
2482
2494
  }
2483
2495
  };
2484
2496
 
2485
- var cmp_1 = cmp$1;
2497
+ var cmp_1 = cmp;
2486
2498
 
2487
- const ANY = Symbol('SemVer ANY'); // hoisted class for cyclic dependency
2499
+ var comparator;
2500
+ var hasRequiredComparator;
2488
2501
 
2489
- class Comparator$1 {
2490
- static get ANY() {
2491
- return ANY;
2492
- }
2502
+ function requireComparator() {
2503
+ if (hasRequiredComparator) return comparator;
2504
+ hasRequiredComparator = 1;
2505
+ const ANY = Symbol('SemVer ANY'); // hoisted class for cyclic dependency
2493
2506
 
2494
- constructor(comp, options) {
2495
- options = parseOptions$1(options);
2496
-
2497
- if (comp instanceof Comparator$1) {
2498
- if (comp.loose === !!options.loose) {
2499
- return comp;
2500
- } else {
2501
- comp = comp.value;
2502
- }
2507
+ class Comparator {
2508
+ static get ANY() {
2509
+ return ANY;
2503
2510
  }
2504
2511
 
2505
- debug$1('comparator', comp, options);
2506
- this.options = options;
2507
- this.loose = !!options.loose;
2508
- this.parse(comp);
2512
+ constructor(comp, options) {
2513
+ options = parseOptions(options);
2509
2514
 
2510
- if (this.semver === ANY) {
2511
- this.value = '';
2512
- } else {
2513
- this.value = this.operator + this.semver.version;
2514
- }
2515
+ if (comp instanceof Comparator) {
2516
+ if (comp.loose === !!options.loose) {
2517
+ return comp;
2518
+ } else {
2519
+ comp = comp.value;
2520
+ }
2521
+ }
2515
2522
 
2516
- debug$1('comp', this);
2517
- }
2523
+ debug('comparator', comp, options);
2524
+ this.options = options;
2525
+ this.loose = !!options.loose;
2526
+ this.parse(comp);
2518
2527
 
2519
- parse(comp) {
2520
- const r = this.options.loose ? re$1[t$1.COMPARATORLOOSE] : re$1[t$1.COMPARATOR];
2521
- const m = comp.match(r);
2528
+ if (this.semver === ANY) {
2529
+ this.value = '';
2530
+ } else {
2531
+ this.value = this.operator + this.semver.version;
2532
+ }
2522
2533
 
2523
- if (!m) {
2524
- throw new TypeError("Invalid comparator: ".concat(comp));
2534
+ debug('comp', this);
2525
2535
  }
2526
2536
 
2527
- this.operator = m[1] !== undefined ? m[1] : '';
2537
+ parse(comp) {
2538
+ const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR];
2539
+ const m = comp.match(r);
2528
2540
 
2529
- if (this.operator === '=') {
2530
- this.operator = '';
2531
- } // if it literally is just '>' or '' then allow anything.
2541
+ if (!m) {
2542
+ throw new TypeError("Invalid comparator: ".concat(comp));
2543
+ }
2532
2544
 
2545
+ this.operator = m[1] !== undefined ? m[1] : '';
2533
2546
 
2534
- if (!m[2]) {
2535
- this.semver = ANY;
2536
- } else {
2537
- this.semver = new SemVer$1(m[2], this.options.loose);
2538
- }
2539
- }
2547
+ if (this.operator === '=') {
2548
+ this.operator = '';
2549
+ } // if it literally is just '>' or '' then allow anything.
2540
2550
 
2541
- toString() {
2542
- return this.value;
2543
- }
2544
2551
 
2545
- test(version) {
2546
- debug$1('Comparator.test', version, this.options.loose);
2552
+ if (!m[2]) {
2553
+ this.semver = ANY;
2554
+ } else {
2555
+ this.semver = new SemVer(m[2], this.options.loose);
2556
+ }
2557
+ }
2547
2558
 
2548
- if (this.semver === ANY || version === ANY) {
2549
- return true;
2559
+ toString() {
2560
+ return this.value;
2550
2561
  }
2551
2562
 
2552
- if (typeof version === 'string') {
2553
- try {
2554
- version = new SemVer$1(version, this.options);
2555
- } catch (er) {
2556
- return false;
2563
+ test(version) {
2564
+ debug('Comparator.test', version, this.options.loose);
2565
+
2566
+ if (this.semver === ANY || version === ANY) {
2567
+ return true;
2557
2568
  }
2558
- }
2559
2569
 
2560
- return cmp(version, this.operator, this.semver, this.options);
2561
- }
2570
+ if (typeof version === 'string') {
2571
+ try {
2572
+ version = new SemVer(version, this.options);
2573
+ } catch (er) {
2574
+ return false;
2575
+ }
2576
+ }
2562
2577
 
2563
- intersects(comp, options) {
2564
- if (!(comp instanceof Comparator$1)) {
2565
- throw new TypeError('a Comparator is required');
2578
+ return cmp(version, this.operator, this.semver, this.options);
2566
2579
  }
2567
2580
 
2568
- if (!options || typeof options !== 'object') {
2569
- options = {
2570
- loose: !!options,
2571
- includePrerelease: false
2572
- };
2573
- }
2581
+ intersects(comp, options) {
2582
+ if (!(comp instanceof Comparator)) {
2583
+ throw new TypeError('a Comparator is required');
2584
+ }
2574
2585
 
2575
- if (this.operator === '') {
2576
- if (this.value === '') {
2577
- return true;
2586
+ if (!options || typeof options !== 'object') {
2587
+ options = {
2588
+ loose: !!options,
2589
+ includePrerelease: false
2590
+ };
2578
2591
  }
2579
2592
 
2580
- return new Range$2(comp.value, options).test(this.value);
2581
- } else if (comp.operator === '') {
2582
- if (comp.value === '') {
2583
- return true;
2593
+ if (this.operator === '') {
2594
+ if (this.value === '') {
2595
+ return true;
2596
+ }
2597
+
2598
+ return new Range(comp.value, options).test(this.value);
2599
+ } else if (comp.operator === '') {
2600
+ if (comp.value === '') {
2601
+ return true;
2602
+ }
2603
+
2604
+ return new Range(this.value, options).test(comp.semver);
2584
2605
  }
2585
2606
 
2586
- return new Range$2(this.value, options).test(comp.semver);
2607
+ const sameDirectionIncreasing = (this.operator === '>=' || this.operator === '>') && (comp.operator === '>=' || comp.operator === '>');
2608
+ const sameDirectionDecreasing = (this.operator === '<=' || this.operator === '<') && (comp.operator === '<=' || comp.operator === '<');
2609
+ const sameSemVer = this.semver.version === comp.semver.version;
2610
+ const differentDirectionsInclusive = (this.operator === '>=' || this.operator === '<=') && (comp.operator === '>=' || comp.operator === '<=');
2611
+ const oppositeDirectionsLessThan = cmp(this.semver, '<', comp.semver, options) && (this.operator === '>=' || this.operator === '>') && (comp.operator === '<=' || comp.operator === '<');
2612
+ const oppositeDirectionsGreaterThan = cmp(this.semver, '>', comp.semver, options) && (this.operator === '<=' || this.operator === '<') && (comp.operator === '>=' || comp.operator === '>');
2613
+ return sameDirectionIncreasing || sameDirectionDecreasing || sameSemVer && differentDirectionsInclusive || oppositeDirectionsLessThan || oppositeDirectionsGreaterThan;
2587
2614
  }
2588
2615
 
2589
- const sameDirectionIncreasing = (this.operator === '>=' || this.operator === '>') && (comp.operator === '>=' || comp.operator === '>');
2590
- const sameDirectionDecreasing = (this.operator === '<=' || this.operator === '<') && (comp.operator === '<=' || comp.operator === '<');
2591
- const sameSemVer = this.semver.version === comp.semver.version;
2592
- const differentDirectionsInclusive = (this.operator === '>=' || this.operator === '<=') && (comp.operator === '>=' || comp.operator === '<=');
2593
- const oppositeDirectionsLessThan = cmp(this.semver, '<', comp.semver, options) && (this.operator === '>=' || this.operator === '>') && (comp.operator === '<=' || comp.operator === '<');
2594
- const oppositeDirectionsGreaterThan = cmp(this.semver, '>', comp.semver, options) && (this.operator === '<=' || this.operator === '<') && (comp.operator === '>=' || comp.operator === '>');
2595
- return sameDirectionIncreasing || sameDirectionDecreasing || sameSemVer && differentDirectionsInclusive || oppositeDirectionsLessThan || oppositeDirectionsGreaterThan;
2596
2616
  }
2597
2617
 
2618
+ comparator = Comparator;
2619
+ const parseOptions = parseOptions_1;
2620
+ const {
2621
+ re,
2622
+ t
2623
+ } = re$1.exports;
2624
+ const cmp = cmp_1;
2625
+ const debug = debug_1;
2626
+ const SemVer = semver;
2627
+ const Range = requireRange();
2628
+ return comparator;
2598
2629
  }
2599
2630
 
2600
- var comparator = Comparator$1;
2601
- const parseOptions$1 = parseOptions_1;
2602
- const {
2603
- re: re$1,
2604
- t: t$1
2605
- } = re$3.exports;
2606
- const cmp = cmp_1;
2607
- const debug$1 = debug_1;
2608
- const SemVer$1 = semver;
2609
- const Range$2 = range;
2610
-
2611
- class Range$1 {
2612
- constructor(range, options) {
2613
- options = parseOptions(options);
2631
+ var range;
2632
+ var hasRequiredRange;
2614
2633
 
2615
- if (range instanceof Range$1) {
2616
- if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) {
2617
- return range;
2618
- } else {
2619
- return new Range$1(range.raw, options);
2634
+ function requireRange() {
2635
+ if (hasRequiredRange) return range;
2636
+ hasRequiredRange = 1; // hoisted class for cyclic dependency
2637
+
2638
+ class Range {
2639
+ constructor(range, options) {
2640
+ options = parseOptions(options);
2641
+
2642
+ if (range instanceof Range) {
2643
+ if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) {
2644
+ return range;
2645
+ } else {
2646
+ return new Range(range.raw, options);
2647
+ }
2620
2648
  }
2621
- }
2622
2649
 
2623
- if (range instanceof Comparator) {
2624
- // just put it in the set and return
2625
- this.raw = range.value;
2626
- this.set = [[range]];
2627
- this.format();
2628
- return this;
2629
- }
2650
+ if (range instanceof Comparator) {
2651
+ // just put it in the set and return
2652
+ this.raw = range.value;
2653
+ this.set = [[range]];
2654
+ this.format();
2655
+ return this;
2656
+ }
2630
2657
 
2631
- this.options = options;
2632
- this.loose = !!options.loose;
2633
- this.includePrerelease = !!options.includePrerelease; // First, split based on boolean or ||
2634
-
2635
- this.raw = range;
2636
- this.set = range.split(/\s*\|\|\s*/) // map the range to a 2d array of comparators
2637
- .map(range => this.parseRange(range.trim())) // throw out any comparator lists that are empty
2638
- // this generally means that it was not a valid range, which is allowed
2639
- // in loose mode, but will still throw if the WHOLE range is invalid.
2640
- .filter(c => c.length);
2641
-
2642
- if (!this.set.length) {
2643
- throw new TypeError("Invalid SemVer Range: ".concat(range));
2644
- } // if we have any that are not the null set, throw out null sets.
2645
-
2646
-
2647
- if (this.set.length > 1) {
2648
- // keep the first one, in case they're all null sets
2649
- const first = this.set[0];
2650
- this.set = this.set.filter(c => !isNullSet(c[0]));
2651
- if (this.set.length === 0) this.set = [first];else if (this.set.length > 1) {
2652
- // if we have any that are *, then the range is just *
2653
- for (const c of this.set) {
2654
- if (c.length === 1 && isAny(c[0])) {
2655
- this.set = [c];
2656
- break;
2658
+ this.options = options;
2659
+ this.loose = !!options.loose;
2660
+ this.includePrerelease = !!options.includePrerelease; // First, split based on boolean or ||
2661
+
2662
+ this.raw = range;
2663
+ this.set = range.split('||') // map the range to a 2d array of comparators
2664
+ .map(r => this.parseRange(r.trim())) // throw out any comparator lists that are empty
2665
+ // this generally means that it was not a valid range, which is allowed
2666
+ // in loose mode, but will still throw if the WHOLE range is invalid.
2667
+ .filter(c => c.length);
2668
+
2669
+ if (!this.set.length) {
2670
+ throw new TypeError("Invalid SemVer Range: ".concat(range));
2671
+ } // if we have any that are not the null set, throw out null sets.
2672
+
2673
+
2674
+ if (this.set.length > 1) {
2675
+ // keep the first one, in case they're all null sets
2676
+ const first = this.set[0];
2677
+ this.set = this.set.filter(c => !isNullSet(c[0]));
2678
+
2679
+ if (this.set.length === 0) {
2680
+ this.set = [first];
2681
+ } else if (this.set.length > 1) {
2682
+ // if we have any that are *, then the range is just *
2683
+ for (const c of this.set) {
2684
+ if (c.length === 1 && isAny(c[0])) {
2685
+ this.set = [c];
2686
+ break;
2687
+ }
2657
2688
  }
2658
2689
  }
2659
2690
  }
2691
+
2692
+ this.format();
2660
2693
  }
2661
2694
 
2662
- this.format();
2663
- }
2695
+ format() {
2696
+ this.range = this.set.map(comps => {
2697
+ return comps.join(' ').trim();
2698
+ }).join('||').trim();
2699
+ return this.range;
2700
+ }
2664
2701
 
2665
- format() {
2666
- this.range = this.set.map(comps => {
2667
- return comps.join(' ').trim();
2668
- }).join('||').trim();
2669
- return this.range;
2670
- }
2702
+ toString() {
2703
+ return this.range;
2704
+ }
2671
2705
 
2672
- toString() {
2673
- return this.range;
2674
- }
2706
+ parseRange(range) {
2707
+ range = range.trim(); // memoize range parsing for performance.
2708
+ // this is a very hot path, and fully deterministic.
2675
2709
 
2676
- parseRange(range) {
2677
- range = range.trim(); // memoize range parsing for performance.
2678
- // this is a very hot path, and fully deterministic.
2710
+ const memoOpts = Object.keys(this.options).join(',');
2711
+ const memoKey = "parseRange:".concat(memoOpts, ":").concat(range);
2712
+ const cached = cache.get(memoKey);
2679
2713
 
2680
- const memoOpts = Object.keys(this.options).join(',');
2681
- const memoKey = "parseRange:".concat(memoOpts, ":").concat(range);
2682
- const cached = cache.get(memoKey);
2683
- if (cached) return cached;
2684
- const loose = this.options.loose; // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`
2714
+ if (cached) {
2715
+ return cached;
2716
+ }
2685
2717
 
2686
- const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE];
2687
- range = range.replace(hr, hyphenReplace(this.options.includePrerelease));
2688
- debug('hyphen replace', range); // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`
2718
+ const loose = this.options.loose; // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`
2689
2719
 
2690
- range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace);
2691
- debug('comparator trim', range, re[t.COMPARATORTRIM]); // `~ 1.2.3` => `~1.2.3`
2720
+ const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE];
2721
+ range = range.replace(hr, hyphenReplace(this.options.includePrerelease));
2722
+ debug('hyphen replace', range); // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`
2692
2723
 
2693
- range = range.replace(re[t.TILDETRIM], tildeTrimReplace); // `^ 1.2.3` => `^1.2.3`
2724
+ range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace);
2725
+ debug('comparator trim', range); // `~ 1.2.3` => `~1.2.3`
2694
2726
 
2695
- range = range.replace(re[t.CARETTRIM], caretTrimReplace); // normalize spaces
2727
+ range = range.replace(re[t.TILDETRIM], tildeTrimReplace); // `^ 1.2.3` => `^1.2.3`
2696
2728
 
2697
- range = range.split(/\s+/).join(' '); // At this point, the range is completely trimmed and
2698
- // ready to be split into comparators.
2729
+ range = range.replace(re[t.CARETTRIM], caretTrimReplace); // normalize spaces
2699
2730
 
2700
- const compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR];
2701
- const rangeList = range.split(' ').map(comp => parseComparator(comp, this.options)).join(' ').split(/\s+/) // >=0.0.0 is equivalent to *
2702
- .map(comp => replaceGTE0(comp, this.options)) // in loose mode, throw out any that are not valid comparators
2703
- .filter(this.options.loose ? comp => !!comp.match(compRe) : () => true).map(comp => new Comparator(comp, this.options)); // if any comparators are the null set, then replace with JUST null set
2704
- // if more than one comparator, remove any * comparators
2705
- // also, don't include the same comparator more than once
2731
+ range = range.split(/\s+/).join(' '); // At this point, the range is completely trimmed and
2732
+ // ready to be split into comparators.
2706
2733
 
2707
- rangeList.length;
2708
- const rangeMap = new Map();
2734
+ let rangeList = range.split(' ').map(comp => parseComparator(comp, this.options)).join(' ').split(/\s+/) // >=0.0.0 is equivalent to *
2735
+ .map(comp => replaceGTE0(comp, this.options));
2709
2736
 
2710
- for (const comp of rangeList) {
2711
- if (isNullSet(comp)) return [comp];
2712
- rangeMap.set(comp.value, comp);
2713
- }
2737
+ if (loose) {
2738
+ // in loose mode, throw out any that are not valid comparators
2739
+ rangeList = rangeList.filter(comp => {
2740
+ debug('loose invalid filter', comp, this.options);
2741
+ return !!comp.match(re[t.COMPARATORLOOSE]);
2742
+ });
2743
+ }
2714
2744
 
2715
- if (rangeMap.size > 1 && rangeMap.has('')) rangeMap.delete('');
2716
- const result = [...rangeMap.values()];
2717
- cache.set(memoKey, result);
2718
- return result;
2719
- }
2745
+ debug('range list', rangeList); // if any comparators are the null set, then replace with JUST null set
2746
+ // if more than one comparator, remove any * comparators
2747
+ // also, don't include the same comparator more than once
2748
+
2749
+ const rangeMap = new Map();
2750
+ const comparators = rangeList.map(comp => new Comparator(comp, this.options));
2751
+
2752
+ for (const comp of comparators) {
2753
+ if (isNullSet(comp)) {
2754
+ return [comp];
2755
+ }
2756
+
2757
+ rangeMap.set(comp.value, comp);
2758
+ }
2720
2759
 
2721
- intersects(range, options) {
2722
- if (!(range instanceof Range$1)) {
2723
- throw new TypeError('a Range is required');
2760
+ if (rangeMap.size > 1 && rangeMap.has('')) {
2761
+ rangeMap.delete('');
2762
+ }
2763
+
2764
+ const result = [...rangeMap.values()];
2765
+ cache.set(memoKey, result);
2766
+ return result;
2724
2767
  }
2725
2768
 
2726
- return this.set.some(thisComparators => {
2727
- return isSatisfiable(thisComparators, options) && range.set.some(rangeComparators => {
2728
- return isSatisfiable(rangeComparators, options) && thisComparators.every(thisComparator => {
2729
- return rangeComparators.every(rangeComparator => {
2730
- return thisComparator.intersects(rangeComparator, options);
2769
+ intersects(range, options) {
2770
+ if (!(range instanceof Range)) {
2771
+ throw new TypeError('a Range is required');
2772
+ }
2773
+
2774
+ return this.set.some(thisComparators => {
2775
+ return isSatisfiable(thisComparators, options) && range.set.some(rangeComparators => {
2776
+ return isSatisfiable(rangeComparators, options) && thisComparators.every(thisComparator => {
2777
+ return rangeComparators.every(rangeComparator => {
2778
+ return thisComparator.intersects(rangeComparator, options);
2779
+ });
2731
2780
  });
2732
2781
  });
2733
2782
  });
2734
- });
2735
- } // if ANY of the sets match ALL of its comparators, then pass
2736
-
2783
+ } // if ANY of the sets match ALL of its comparators, then pass
2737
2784
 
2738
- test(version) {
2739
- if (!version) {
2740
- return false;
2741
- }
2742
2785
 
2743
- if (typeof version === 'string') {
2744
- try {
2745
- version = new SemVer(version, this.options);
2746
- } catch (er) {
2786
+ test(version) {
2787
+ if (!version) {
2747
2788
  return false;
2748
2789
  }
2749
- }
2750
2790
 
2751
- for (let i = 0; i < this.set.length; i++) {
2752
- if (testSet(this.set[i], version, this.options)) {
2753
- return true;
2791
+ if (typeof version === 'string') {
2792
+ try {
2793
+ version = new SemVer(version, this.options);
2794
+ } catch (er) {
2795
+ return false;
2796
+ }
2797
+ }
2798
+
2799
+ for (let i = 0; i < this.set.length; i++) {
2800
+ if (testSet(this.set[i], version, this.options)) {
2801
+ return true;
2802
+ }
2754
2803
  }
2804
+
2805
+ return false;
2755
2806
  }
2756
2807
 
2757
- return false;
2758
2808
  }
2759
2809
 
2760
- }
2810
+ range = Range;
2811
+ const LRU = lruCache;
2812
+ const cache = new LRU({
2813
+ max: 1000
2814
+ });
2815
+ const parseOptions = parseOptions_1;
2816
+ const Comparator = requireComparator();
2817
+ const debug = debug_1;
2818
+ const SemVer = semver;
2819
+ const {
2820
+ re,
2821
+ t,
2822
+ comparatorTrimReplace,
2823
+ tildeTrimReplace,
2824
+ caretTrimReplace
2825
+ } = re$1.exports;
2761
2826
 
2762
- var range = Range$1;
2763
- const LRU = lruCache;
2764
- const cache = new LRU({
2765
- max: 1000
2766
- });
2767
- const parseOptions = parseOptions_1;
2768
- const Comparator = comparator;
2769
- const debug = debug_1;
2770
- const SemVer = semver;
2771
- const {
2772
- re,
2773
- t,
2774
- comparatorTrimReplace,
2775
- tildeTrimReplace,
2776
- caretTrimReplace
2777
- } = re$3.exports;
2827
+ const isNullSet = c => c.value === '<0.0.0-0';
2778
2828
 
2779
- const isNullSet = c => c.value === '<0.0.0-0';
2829
+ const isAny = c => c.value === ''; // take a set of comparators and determine whether there
2830
+ // exists a version which can satisfy it
2780
2831
 
2781
- const isAny = c => c.value === ''; // take a set of comparators and determine whether there
2782
- // exists a version which can satisfy it
2783
2832
 
2833
+ const isSatisfiable = (comparators, options) => {
2834
+ let result = true;
2835
+ const remainingComparators = comparators.slice();
2836
+ let testComparator = remainingComparators.pop();
2784
2837
 
2785
- const isSatisfiable = (comparators, options) => {
2786
- let result = true;
2787
- const remainingComparators = comparators.slice();
2788
- let testComparator = remainingComparators.pop();
2838
+ while (result && remainingComparators.length) {
2839
+ result = remainingComparators.every(otherComparator => {
2840
+ return testComparator.intersects(otherComparator, options);
2841
+ });
2842
+ testComparator = remainingComparators.pop();
2843
+ }
2789
2844
 
2790
- while (result && remainingComparators.length) {
2791
- result = remainingComparators.every(otherComparator => {
2792
- return testComparator.intersects(otherComparator, options);
2793
- });
2794
- testComparator = remainingComparators.pop();
2795
- }
2796
-
2797
- return result;
2798
- }; // comprised of xranges, tildes, stars, and gtlt's at this point.
2799
- // already replaced the hyphen ranges
2800
- // turn into a set of JUST comparators.
2801
-
2802
-
2803
- const parseComparator = (comp, options) => {
2804
- debug('comp', comp, options);
2805
- comp = replaceCarets(comp, options);
2806
- debug('caret', comp);
2807
- comp = replaceTildes(comp, options);
2808
- debug('tildes', comp);
2809
- comp = replaceXRanges(comp, options);
2810
- debug('xrange', comp);
2811
- comp = replaceStars(comp, options);
2812
- debug('stars', comp);
2813
- return comp;
2814
- };
2845
+ return result;
2846
+ }; // comprised of xranges, tildes, stars, and gtlt's at this point.
2847
+ // already replaced the hyphen ranges
2848
+ // turn into a set of JUST comparators.
2849
+
2850
+
2851
+ const parseComparator = (comp, options) => {
2852
+ debug('comp', comp, options);
2853
+ comp = replaceCarets(comp, options);
2854
+ debug('caret', comp);
2855
+ comp = replaceTildes(comp, options);
2856
+ debug('tildes', comp);
2857
+ comp = replaceXRanges(comp, options);
2858
+ debug('xrange', comp);
2859
+ comp = replaceStars(comp, options);
2860
+ debug('stars', comp);
2861
+ return comp;
2862
+ };
2815
2863
 
2816
- const isX = id => !id || id.toLowerCase() === 'x' || id === '*'; // ~, ~> --> * (any, kinda silly)
2817
- // ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0
2818
- // ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0
2819
- // ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0
2820
- // ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0
2821
- // ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0
2822
-
2823
-
2824
- const replaceTildes = (comp, options) => comp.trim().split(/\s+/).map(comp => {
2825
- return replaceTilde(comp, options);
2826
- }).join(' ');
2827
-
2828
- const replaceTilde = (comp, options) => {
2829
- const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE];
2830
- return comp.replace(r, (_, M, m, p, pr) => {
2831
- debug('tilde', comp, _, M, m, p, pr);
2832
- let ret;
2833
-
2834
- if (isX(M)) {
2835
- ret = '';
2836
- } else if (isX(m)) {
2837
- ret = ">=".concat(M, ".0.0 <").concat(+M + 1, ".0.0-0");
2838
- } else if (isX(p)) {
2839
- // ~1.2 == >=1.2.0 <1.3.0-0
2840
- ret = ">=".concat(M, ".").concat(m, ".0 <").concat(M, ".").concat(+m + 1, ".0-0");
2841
- } else if (pr) {
2842
- debug('replaceTilde pr', pr);
2843
- ret = ">=".concat(M, ".").concat(m, ".").concat(p, "-").concat(pr, " <").concat(M, ".").concat(+m + 1, ".0-0");
2844
- } else {
2845
- // ~1.2.3 == >=1.2.3 <1.3.0-0
2846
- ret = ">=".concat(M, ".").concat(m, ".").concat(p, " <").concat(M, ".").concat(+m + 1, ".0-0");
2847
- }
2864
+ const isX = id => !id || id.toLowerCase() === 'x' || id === '*'; // ~, ~> --> * (any, kinda silly)
2865
+ // ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0
2866
+ // ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0
2867
+ // ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0
2868
+ // ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0
2869
+ // ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0
2848
2870
 
2849
- debug('tilde return', ret);
2850
- return ret;
2851
- });
2852
- }; // ^ --> * (any, kinda silly)
2853
- // ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0
2854
- // ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0
2855
- // ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0
2856
- // ^1.2.3 --> >=1.2.3 <2.0.0-0
2857
- // ^1.2.0 --> >=1.2.0 <2.0.0-0
2858
-
2859
-
2860
- const replaceCarets = (comp, options) => comp.trim().split(/\s+/).map(comp => {
2861
- return replaceCaret(comp, options);
2862
- }).join(' ');
2863
-
2864
- const replaceCaret = (comp, options) => {
2865
- debug('caret', comp, options);
2866
- const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET];
2867
- const z = options.includePrerelease ? '-0' : '';
2868
- return comp.replace(r, (_, M, m, p, pr) => {
2869
- debug('caret', comp, _, M, m, p, pr);
2870
- let ret;
2871
-
2872
- if (isX(M)) {
2873
- ret = '';
2874
- } else if (isX(m)) {
2875
- ret = ">=".concat(M, ".0.0").concat(z, " <").concat(+M + 1, ".0.0-0");
2876
- } else if (isX(p)) {
2877
- if (M === '0') {
2878
- ret = ">=".concat(M, ".").concat(m, ".0").concat(z, " <").concat(M, ".").concat(+m + 1, ".0-0");
2871
+
2872
+ const replaceTildes = (comp, options) => comp.trim().split(/\s+/).map(c => {
2873
+ return replaceTilde(c, options);
2874
+ }).join(' ');
2875
+
2876
+ const replaceTilde = (comp, options) => {
2877
+ const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE];
2878
+ return comp.replace(r, (_, M, m, p, pr) => {
2879
+ debug('tilde', comp, _, M, m, p, pr);
2880
+ let ret;
2881
+
2882
+ if (isX(M)) {
2883
+ ret = '';
2884
+ } else if (isX(m)) {
2885
+ ret = ">=".concat(M, ".0.0 <").concat(+M + 1, ".0.0-0");
2886
+ } else if (isX(p)) {
2887
+ // ~1.2 == >=1.2.0 <1.3.0-0
2888
+ ret = ">=".concat(M, ".").concat(m, ".0 <").concat(M, ".").concat(+m + 1, ".0-0");
2889
+ } else if (pr) {
2890
+ debug('replaceTilde pr', pr);
2891
+ ret = ">=".concat(M, ".").concat(m, ".").concat(p, "-").concat(pr, " <").concat(M, ".").concat(+m + 1, ".0-0");
2879
2892
  } else {
2880
- ret = ">=".concat(M, ".").concat(m, ".0").concat(z, " <").concat(+M + 1, ".0.0-0");
2893
+ // ~1.2.3 == >=1.2.3 <1.3.0-0
2894
+ ret = ">=".concat(M, ".").concat(m, ".").concat(p, " <").concat(M, ".").concat(+m + 1, ".0-0");
2881
2895
  }
2882
- } else if (pr) {
2883
- debug('replaceCaret pr', pr);
2884
2896
 
2885
- if (M === '0') {
2886
- if (m === '0') {
2887
- ret = ">=".concat(M, ".").concat(m, ".").concat(p, "-").concat(pr, " <").concat(M, ".").concat(m, ".").concat(+p + 1, "-0");
2897
+ debug('tilde return', ret);
2898
+ return ret;
2899
+ });
2900
+ }; // ^ --> * (any, kinda silly)
2901
+ // ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0
2902
+ // ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0
2903
+ // ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0
2904
+ // ^1.2.3 --> >=1.2.3 <2.0.0-0
2905
+ // ^1.2.0 --> >=1.2.0 <2.0.0-0
2906
+
2907
+
2908
+ const replaceCarets = (comp, options) => comp.trim().split(/\s+/).map(c => {
2909
+ return replaceCaret(c, options);
2910
+ }).join(' ');
2911
+
2912
+ const replaceCaret = (comp, options) => {
2913
+ debug('caret', comp, options);
2914
+ const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET];
2915
+ const z = options.includePrerelease ? '-0' : '';
2916
+ return comp.replace(r, (_, M, m, p, pr) => {
2917
+ debug('caret', comp, _, M, m, p, pr);
2918
+ let ret;
2919
+
2920
+ if (isX(M)) {
2921
+ ret = '';
2922
+ } else if (isX(m)) {
2923
+ ret = ">=".concat(M, ".0.0").concat(z, " <").concat(+M + 1, ".0.0-0");
2924
+ } else if (isX(p)) {
2925
+ if (M === '0') {
2926
+ ret = ">=".concat(M, ".").concat(m, ".0").concat(z, " <").concat(M, ".").concat(+m + 1, ".0-0");
2888
2927
  } else {
2889
- ret = ">=".concat(M, ".").concat(m, ".").concat(p, "-").concat(pr, " <").concat(M, ".").concat(+m + 1, ".0-0");
2928
+ ret = ">=".concat(M, ".").concat(m, ".0").concat(z, " <").concat(+M + 1, ".0.0-0");
2890
2929
  }
2891
- } else {
2892
- ret = ">=".concat(M, ".").concat(m, ".").concat(p, "-").concat(pr, " <").concat(+M + 1, ".0.0-0");
2893
- }
2894
- } else {
2895
- debug('no pr');
2930
+ } else if (pr) {
2931
+ debug('replaceCaret pr', pr);
2896
2932
 
2897
- if (M === '0') {
2898
- if (m === '0') {
2899
- ret = ">=".concat(M, ".").concat(m, ".").concat(p).concat(z, " <").concat(M, ".").concat(m, ".").concat(+p + 1, "-0");
2933
+ if (M === '0') {
2934
+ if (m === '0') {
2935
+ ret = ">=".concat(M, ".").concat(m, ".").concat(p, "-").concat(pr, " <").concat(M, ".").concat(m, ".").concat(+p + 1, "-0");
2936
+ } else {
2937
+ ret = ">=".concat(M, ".").concat(m, ".").concat(p, "-").concat(pr, " <").concat(M, ".").concat(+m + 1, ".0-0");
2938
+ }
2900
2939
  } else {
2901
- ret = ">=".concat(M, ".").concat(m, ".").concat(p).concat(z, " <").concat(M, ".").concat(+m + 1, ".0-0");
2940
+ ret = ">=".concat(M, ".").concat(m, ".").concat(p, "-").concat(pr, " <").concat(+M + 1, ".0.0-0");
2902
2941
  }
2903
2942
  } else {
2904
- ret = ">=".concat(M, ".").concat(m, ".").concat(p, " <").concat(+M + 1, ".0.0-0");
2943
+ debug('no pr');
2944
+
2945
+ if (M === '0') {
2946
+ if (m === '0') {
2947
+ ret = ">=".concat(M, ".").concat(m, ".").concat(p).concat(z, " <").concat(M, ".").concat(m, ".").concat(+p + 1, "-0");
2948
+ } else {
2949
+ ret = ">=".concat(M, ".").concat(m, ".").concat(p).concat(z, " <").concat(M, ".").concat(+m + 1, ".0-0");
2950
+ }
2951
+ } else {
2952
+ ret = ">=".concat(M, ".").concat(m, ".").concat(p, " <").concat(+M + 1, ".0.0-0");
2953
+ }
2905
2954
  }
2906
- }
2907
2955
 
2908
- debug('caret return', ret);
2909
- return ret;
2910
- });
2911
- };
2956
+ debug('caret return', ret);
2957
+ return ret;
2958
+ });
2959
+ };
2912
2960
 
2913
- const replaceXRanges = (comp, options) => {
2914
- debug('replaceXRanges', comp, options);
2915
- return comp.split(/\s+/).map(comp => {
2916
- return replaceXRange(comp, options);
2917
- }).join(' ');
2918
- };
2961
+ const replaceXRanges = (comp, options) => {
2962
+ debug('replaceXRanges', comp, options);
2963
+ return comp.split(/\s+/).map(c => {
2964
+ return replaceXRange(c, options);
2965
+ }).join(' ');
2966
+ };
2919
2967
 
2920
- const replaceXRange = (comp, options) => {
2921
- comp = comp.trim();
2922
- const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE];
2923
- return comp.replace(r, (ret, gtlt, M, m, p, pr) => {
2924
- debug('xRange', comp, ret, gtlt, M, m, p, pr);
2925
- const xM = isX(M);
2926
- const xm = xM || isX(m);
2927
- const xp = xm || isX(p);
2928
- const anyX = xp;
2968
+ const replaceXRange = (comp, options) => {
2969
+ comp = comp.trim();
2970
+ const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE];
2971
+ return comp.replace(r, (ret, gtlt, M, m, p, pr) => {
2972
+ debug('xRange', comp, ret, gtlt, M, m, p, pr);
2973
+ const xM = isX(M);
2974
+ const xm = xM || isX(m);
2975
+ const xp = xm || isX(p);
2976
+ const anyX = xp;
2929
2977
 
2930
- if (gtlt === '=' && anyX) {
2931
- gtlt = '';
2932
- } // if we're including prereleases in the match, then we need
2933
- // to fix this to -0, the lowest possible prerelease value
2978
+ if (gtlt === '=' && anyX) {
2979
+ gtlt = '';
2980
+ } // if we're including prereleases in the match, then we need
2981
+ // to fix this to -0, the lowest possible prerelease value
2934
2982
 
2935
2983
 
2936
- pr = options.includePrerelease ? '-0' : '';
2984
+ pr = options.includePrerelease ? '-0' : '';
2937
2985
 
2938
- if (xM) {
2939
- if (gtlt === '>' || gtlt === '<') {
2940
- // nothing is allowed
2941
- ret = '<0.0.0-0';
2942
- } else {
2943
- // nothing is forbidden
2944
- ret = '*';
2945
- }
2946
- } else if (gtlt && anyX) {
2947
- // we know patch is an x, because we have any x at all.
2948
- // replace X with 0
2949
- if (xm) {
2950
- m = 0;
2951
- }
2986
+ if (xM) {
2987
+ if (gtlt === '>' || gtlt === '<') {
2988
+ // nothing is allowed
2989
+ ret = '<0.0.0-0';
2990
+ } else {
2991
+ // nothing is forbidden
2992
+ ret = '*';
2993
+ }
2994
+ } else if (gtlt && anyX) {
2995
+ // we know patch is an x, because we have any x at all.
2996
+ // replace X with 0
2997
+ if (xm) {
2998
+ m = 0;
2999
+ }
2952
3000
 
2953
- p = 0;
3001
+ p = 0;
2954
3002
 
2955
- if (gtlt === '>') {
2956
- // >1 => >=2.0.0
2957
- // >1.2 => >=1.3.0
2958
- gtlt = '>=';
3003
+ if (gtlt === '>') {
3004
+ // >1 => >=2.0.0
3005
+ // >1.2 => >=1.3.0
3006
+ gtlt = '>=';
2959
3007
 
2960
- if (xm) {
2961
- M = +M + 1;
2962
- m = 0;
2963
- p = 0;
2964
- } else {
2965
- m = +m + 1;
2966
- p = 0;
3008
+ if (xm) {
3009
+ M = +M + 1;
3010
+ m = 0;
3011
+ p = 0;
3012
+ } else {
3013
+ m = +m + 1;
3014
+ p = 0;
3015
+ }
3016
+ } else if (gtlt === '<=') {
3017
+ // <=0.7.x is actually <0.8.0, since any 0.7.x should
3018
+ // pass. Similarly, <=7.x is actually <8.0.0, etc.
3019
+ gtlt = '<';
3020
+
3021
+ if (xm) {
3022
+ M = +M + 1;
3023
+ } else {
3024
+ m = +m + 1;
3025
+ }
2967
3026
  }
2968
- } else if (gtlt === '<=') {
2969
- // <=0.7.x is actually <0.8.0, since any 0.7.x should
2970
- // pass. Similarly, <=7.x is actually <8.0.0, etc.
2971
- gtlt = '<';
2972
3027
 
2973
- if (xm) {
2974
- M = +M + 1;
2975
- } else {
2976
- m = +m + 1;
3028
+ if (gtlt === '<') {
3029
+ pr = '-0';
2977
3030
  }
3031
+
3032
+ ret = "".concat(gtlt + M, ".").concat(m, ".").concat(p).concat(pr);
3033
+ } else if (xm) {
3034
+ ret = ">=".concat(M, ".0.0").concat(pr, " <").concat(+M + 1, ".0.0-0");
3035
+ } else if (xp) {
3036
+ ret = ">=".concat(M, ".").concat(m, ".0").concat(pr, " <").concat(M, ".").concat(+m + 1, ".0-0");
2978
3037
  }
2979
3038
 
2980
- if (gtlt === '<') pr = '-0';
2981
- ret = "".concat(gtlt + M, ".").concat(m, ".").concat(p).concat(pr);
2982
- } else if (xm) {
2983
- ret = ">=".concat(M, ".0.0").concat(pr, " <").concat(+M + 1, ".0.0-0");
2984
- } else if (xp) {
2985
- ret = ">=".concat(M, ".").concat(m, ".0").concat(pr, " <").concat(M, ".").concat(+m + 1, ".0-0");
2986
- }
3039
+ debug('xRange return', ret);
3040
+ return ret;
3041
+ });
3042
+ }; // Because * is AND-ed with everything else in the comparator,
3043
+ // and '' means "any version", just remove the *s entirely.
2987
3044
 
2988
- debug('xRange return', ret);
2989
- return ret;
2990
- });
2991
- }; // Because * is AND-ed with everything else in the comparator,
2992
- // and '' means "any version", just remove the *s entirely.
2993
3045
 
3046
+ const replaceStars = (comp, options) => {
3047
+ debug('replaceStars', comp, options); // Looseness is ignored here. star is always as loose as it gets!
2994
3048
 
2995
- const replaceStars = (comp, options) => {
2996
- debug('replaceStars', comp, options); // Looseness is ignored here. star is always as loose as it gets!
3049
+ return comp.trim().replace(re[t.STAR], '');
3050
+ };
2997
3051
 
2998
- return comp.trim().replace(re[t.STAR], '');
2999
- };
3052
+ const replaceGTE0 = (comp, options) => {
3053
+ debug('replaceGTE0', comp, options);
3054
+ return comp.trim().replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '');
3055
+ }; // This function is passed to string.replace(re[t.HYPHENRANGE])
3056
+ // M, m, patch, prerelease, build
3057
+ // 1.2 - 3.4.5 => >=1.2.0 <=3.4.5
3058
+ // 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do
3059
+ // 1.2 - 3.4 => >=1.2.0 <3.5.0-0
3060
+
3061
+
3062
+ const hyphenReplace = incPr => ($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb) => {
3063
+ if (isX(fM)) {
3064
+ from = '';
3065
+ } else if (isX(fm)) {
3066
+ from = ">=".concat(fM, ".0.0").concat(incPr ? '-0' : '');
3067
+ } else if (isX(fp)) {
3068
+ from = ">=".concat(fM, ".").concat(fm, ".0").concat(incPr ? '-0' : '');
3069
+ } else if (fpr) {
3070
+ from = ">=".concat(from);
3071
+ } else {
3072
+ from = ">=".concat(from).concat(incPr ? '-0' : '');
3073
+ }
3000
3074
 
3001
- const replaceGTE0 = (comp, options) => {
3002
- debug('replaceGTE0', comp, options);
3003
- return comp.trim().replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '');
3004
- }; // This function is passed to string.replace(re[t.HYPHENRANGE])
3005
- // M, m, patch, prerelease, build
3006
- // 1.2 - 3.4.5 => >=1.2.0 <=3.4.5
3007
- // 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do
3008
- // 1.2 - 3.4 => >=1.2.0 <3.5.0-0
3009
-
3010
-
3011
- const hyphenReplace = incPr => ($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb) => {
3012
- if (isX(fM)) {
3013
- from = '';
3014
- } else if (isX(fm)) {
3015
- from = ">=".concat(fM, ".0.0").concat(incPr ? '-0' : '');
3016
- } else if (isX(fp)) {
3017
- from = ">=".concat(fM, ".").concat(fm, ".0").concat(incPr ? '-0' : '');
3018
- } else if (fpr) {
3019
- from = ">=".concat(from);
3020
- } else {
3021
- from = ">=".concat(from).concat(incPr ? '-0' : '');
3022
- }
3023
-
3024
- if (isX(tM)) {
3025
- to = '';
3026
- } else if (isX(tm)) {
3027
- to = "<".concat(+tM + 1, ".0.0-0");
3028
- } else if (isX(tp)) {
3029
- to = "<".concat(tM, ".").concat(+tm + 1, ".0-0");
3030
- } else if (tpr) {
3031
- to = "<=".concat(tM, ".").concat(tm, ".").concat(tp, "-").concat(tpr);
3032
- } else if (incPr) {
3033
- to = "<".concat(tM, ".").concat(tm, ".").concat(+tp + 1, "-0");
3034
- } else {
3035
- to = "<=".concat(to);
3036
- }
3075
+ if (isX(tM)) {
3076
+ to = '';
3077
+ } else if (isX(tm)) {
3078
+ to = "<".concat(+tM + 1, ".0.0-0");
3079
+ } else if (isX(tp)) {
3080
+ to = "<".concat(tM, ".").concat(+tm + 1, ".0-0");
3081
+ } else if (tpr) {
3082
+ to = "<=".concat(tM, ".").concat(tm, ".").concat(tp, "-").concat(tpr);
3083
+ } else if (incPr) {
3084
+ to = "<".concat(tM, ".").concat(tm, ".").concat(+tp + 1, "-0");
3085
+ } else {
3086
+ to = "<=".concat(to);
3087
+ }
3037
3088
 
3038
- return "".concat(from, " ").concat(to).trim();
3039
- };
3089
+ return "".concat(from, " ").concat(to).trim();
3090
+ };
3040
3091
 
3041
- const testSet = (set, version, options) => {
3042
- for (let i = 0; i < set.length; i++) {
3043
- if (!set[i].test(version)) {
3044
- return false;
3092
+ const testSet = (set, version, options) => {
3093
+ for (let i = 0; i < set.length; i++) {
3094
+ if (!set[i].test(version)) {
3095
+ return false;
3096
+ }
3045
3097
  }
3046
- }
3047
3098
 
3048
- if (version.prerelease.length && !options.includePrerelease) {
3049
- // Find the set of versions that are allowed to have prereleases
3050
- // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0
3051
- // That should allow `1.2.3-pr.2` to pass.
3052
- // However, `1.2.4-alpha.notready` should NOT be allowed,
3053
- // even though it's within the range set by the comparators.
3054
- for (let i = 0; i < set.length; i++) {
3055
- debug(set[i].semver);
3099
+ if (version.prerelease.length && !options.includePrerelease) {
3100
+ // Find the set of versions that are allowed to have prereleases
3101
+ // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0
3102
+ // That should allow `1.2.3-pr.2` to pass.
3103
+ // However, `1.2.4-alpha.notready` should NOT be allowed,
3104
+ // even though it's within the range set by the comparators.
3105
+ for (let i = 0; i < set.length; i++) {
3106
+ debug(set[i].semver);
3056
3107
 
3057
- if (set[i].semver === Comparator.ANY) {
3058
- continue;
3059
- }
3108
+ if (set[i].semver === Comparator.ANY) {
3109
+ continue;
3110
+ }
3060
3111
 
3061
- if (set[i].semver.prerelease.length > 0) {
3062
- const allowed = set[i].semver;
3112
+ if (set[i].semver.prerelease.length > 0) {
3113
+ const allowed = set[i].semver;
3063
3114
 
3064
- if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) {
3065
- return true;
3115
+ if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) {
3116
+ return true;
3117
+ }
3066
3118
  }
3067
- }
3068
- } // Version has a -pre, but it's not one of the ones we like.
3119
+ } // Version has a -pre, but it's not one of the ones we like.
3069
3120
 
3070
3121
 
3071
- return false;
3072
- }
3122
+ return false;
3123
+ }
3073
3124
 
3074
- return true;
3075
- };
3125
+ return true;
3126
+ };
3127
+
3128
+ return range;
3129
+ }
3076
3130
 
3077
- const Range = range;
3131
+ const Range = requireRange();
3078
3132
 
3079
3133
  const satisfies = (version, range, options) => {
3080
3134
  try {
@@ -4340,7 +4394,7 @@
4340
4394
  } // generated with build-style.sh
4341
4395
 
4342
4396
 
4343
- var defaultStyle = "#vg-tooltip-element {\n visibility: hidden;\n padding: 8px;\n position: fixed;\n z-index: 1000;\n font-family: sans-serif;\n font-size: 11px;\n border-radius: 3px;\n box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);\n /* The default theme is the light theme. */\n background-color: rgba(255, 255, 255, 0.95);\n border: 1px solid #d9d9d9;\n color: black; }\n #vg-tooltip-element.visible {\n visibility: visible; }\n #vg-tooltip-element h2 {\n margin-top: 0;\n margin-bottom: 10px;\n font-size: 13px; }\n #vg-tooltip-element img {\n max-width: 200px;\n max-height: 200px; }\n #vg-tooltip-element table {\n border-spacing: 0; }\n #vg-tooltip-element table tr {\n border: none; }\n #vg-tooltip-element table tr td {\n overflow: hidden;\n text-overflow: ellipsis;\n padding-top: 2px;\n padding-bottom: 2px; }\n #vg-tooltip-element table tr td.key {\n color: #808080;\n max-width: 150px;\n text-align: right;\n padding-right: 4px; }\n #vg-tooltip-element table tr td.value {\n display: block;\n max-width: 300px;\n max-height: 7em;\n text-align: left; }\n #vg-tooltip-element.dark-theme {\n background-color: rgba(32, 32, 32, 0.9);\n border: 1px solid #f5f5f5;\n color: white; }\n #vg-tooltip-element.dark-theme td.key {\n color: #bfbfbf; }\n";
4397
+ var defaultStyle = "#vg-tooltip-element {\n visibility: hidden;\n padding: 8px;\n position: fixed;\n z-index: 1000;\n font-family: sans-serif;\n font-size: 11px;\n border-radius: 3px;\n box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);\n /* The default theme is the light theme. */\n background-color: rgba(255, 255, 255, 0.95);\n border: 1px solid #d9d9d9;\n color: black;\n}\n#vg-tooltip-element.visible {\n visibility: visible;\n}\n#vg-tooltip-element h2 {\n margin-top: 0;\n margin-bottom: 10px;\n font-size: 13px;\n}\n#vg-tooltip-element img {\n max-width: 200px;\n max-height: 200px;\n}\n#vg-tooltip-element table {\n border-spacing: 0;\n}\n#vg-tooltip-element table tr {\n border: none;\n}\n#vg-tooltip-element table tr td {\n overflow: hidden;\n text-overflow: ellipsis;\n padding-top: 2px;\n padding-bottom: 2px;\n}\n#vg-tooltip-element table tr td.key {\n color: #808080;\n max-width: 150px;\n text-align: right;\n padding-right: 4px;\n}\n#vg-tooltip-element table tr td.value {\n display: block;\n max-width: 300px;\n max-height: 7em;\n text-align: left;\n}\n#vg-tooltip-element.dark-theme {\n background-color: rgba(32, 32, 32, 0.9);\n border: 1px solid #f5f5f5;\n color: white;\n}\n#vg-tooltip-element.dark-theme td.key {\n color: #bfbfbf;\n}\n";
4344
4398
  const EL_ID = 'vg-tooltip-element';
4345
4399
  const DEFAULT_OPTIONS = {
4346
4400
  /**
@@ -4488,11 +4542,10 @@
4488
4542
  this.el = document.createElement('div');
4489
4543
  this.el.setAttribute('id', this.options.id);
4490
4544
  this.el.classList.add('vg-tooltip');
4491
- document.body.appendChild(this.el);
4492
- }
4545
+ const tooltipContainer = (_a = document.fullscreenElement) !== null && _a !== void 0 ? _a : document.body;
4546
+ tooltipContainer.appendChild(this.el);
4547
+ } // hide tooltip for null, undefined, or empty string values
4493
4548
 
4494
- const tooltipContainer = (_a = document.fullscreenElement) !== null && _a !== void 0 ? _a : document.body;
4495
- tooltipContainer.appendChild(this.el); // hide tooltip for null, undefined, or empty string values
4496
4549
 
4497
4550
  if (value == null || value === '') {
4498
4551
  this.el.classList.remove('visible', "".concat(this.options.theme, "-theme"));
@@ -4550,7 +4603,7 @@
4550
4603
  }
4551
4604
 
4552
4605
  // generated with build-style.sh
4553
- var embedStyle = ".vega-embed {\n position: relative;\n display: inline-block;\n box-sizing: border-box;\n}\n.vega-embed.has-actions {\n padding-right: 38px;\n}\n.vega-embed details:not([open]) > :not(summary) {\n display: none !important;\n}\n.vega-embed summary {\n list-style: none;\n position: absolute;\n top: 0;\n right: 0;\n padding: 6px;\n z-index: 1000;\n background: white;\n box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);\n color: #1b1e23;\n border: 1px solid #aaa;\n border-radius: 999px;\n opacity: 0.2;\n transition: opacity 0.4s ease-in;\n outline: none;\n cursor: pointer;\n line-height: 0px;\n}\n.vega-embed summary::-webkit-details-marker {\n display: none;\n}\n.vega-embed summary:active {\n box-shadow: #aaa 0px 0px 0px 1px inset;\n}\n.vega-embed summary svg {\n width: 14px;\n height: 14px;\n}\n.vega-embed details[open] summary {\n opacity: 0.7;\n}\n.vega-embed:hover summary, .vega-embed:focus summary {\n opacity: 1 !important;\n transition: opacity 0.2s ease;\n}\n.vega-embed .vega-actions {\n position: absolute;\n z-index: 1001;\n top: 35px;\n right: -9px;\n display: flex;\n flex-direction: column;\n padding-bottom: 8px;\n padding-top: 8px;\n border-radius: 4px;\n box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.2);\n border: 1px solid #d9d9d9;\n background: white;\n animation-duration: 0.15s;\n animation-name: scale-in;\n animation-timing-function: cubic-bezier(0.2, 0, 0.13, 1.5);\n text-align: left;\n}\n.vega-embed .vega-actions a {\n padding: 8px 16px;\n font-family: sans-serif;\n font-size: 14px;\n font-weight: 600;\n white-space: nowrap;\n color: #434a56;\n text-decoration: none;\n}\n.vega-embed .vega-actions a:hover {\n background-color: #f7f7f9;\n color: black;\n}\n.vega-embed .vega-actions::before, .vega-embed .vega-actions::after {\n content: \"\";\n display: inline-block;\n position: absolute;\n}\n.vega-embed .vega-actions::before {\n left: auto;\n right: 14px;\n top: -16px;\n border: 8px solid #0000;\n border-bottom-color: #d9d9d9;\n}\n.vega-embed .vega-actions::after {\n left: auto;\n right: 15px;\n top: -14px;\n border: 7px solid #0000;\n border-bottom-color: #fff;\n}\n.vega-embed .chart-wrapper.fit-x {\n width: 100%;\n}\n.vega-embed .chart-wrapper.fit-y {\n height: 100%;\n}\n\n.vega-embed-wrapper {\n max-width: 100%;\n overflow: auto;\n padding-right: 14px;\n}\n\n@keyframes scale-in {\n from {\n opacity: 0;\n transform: scale(0.6);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n";
4606
+ var embedStyle = ".vega-embed {\n position: relative;\n display: inline-block;\n box-sizing: border-box;\n}\n.vega-embed.has-actions {\n padding-right: 38px;\n}\n.vega-embed details:not([open]) > :not(summary) {\n display: none !important;\n}\n.vega-embed summary {\n list-style: none;\n position: absolute;\n top: 0;\n right: 0;\n padding: 6px;\n z-index: 1000;\n background: white;\n box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);\n color: #1b1e23;\n border: 1px solid #aaa;\n border-radius: 999px;\n opacity: 0.2;\n transition: opacity 0.4s ease-in;\n cursor: pointer;\n line-height: 0px;\n}\n.vega-embed summary::-webkit-details-marker {\n display: none;\n}\n.vega-embed summary:active {\n box-shadow: #aaa 0px 0px 0px 1px inset;\n}\n.vega-embed summary svg {\n width: 14px;\n height: 14px;\n}\n.vega-embed details[open] summary {\n opacity: 0.7;\n}\n.vega-embed:hover summary, .vega-embed:focus-within summary {\n opacity: 1 !important;\n transition: opacity 0.2s ease;\n}\n.vega-embed .vega-actions {\n position: absolute;\n z-index: 1001;\n top: 35px;\n right: -9px;\n display: flex;\n flex-direction: column;\n padding-bottom: 8px;\n padding-top: 8px;\n border-radius: 4px;\n box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.2);\n border: 1px solid #d9d9d9;\n background: white;\n animation-duration: 0.15s;\n animation-name: scale-in;\n animation-timing-function: cubic-bezier(0.2, 0, 0.13, 1.5);\n text-align: left;\n}\n.vega-embed .vega-actions a {\n padding: 8px 16px;\n font-family: sans-serif;\n font-size: 14px;\n font-weight: 600;\n white-space: nowrap;\n color: #434a56;\n text-decoration: none;\n}\n.vega-embed .vega-actions a:hover, .vega-embed .vega-actions a:focus {\n background-color: #f7f7f9;\n color: black;\n}\n.vega-embed .vega-actions::before, .vega-embed .vega-actions::after {\n content: \"\";\n display: inline-block;\n position: absolute;\n}\n.vega-embed .vega-actions::before {\n left: auto;\n right: 14px;\n top: -16px;\n border: 8px solid rgba(0, 0, 0, 0);\n border-bottom-color: #d9d9d9;\n}\n.vega-embed .vega-actions::after {\n left: auto;\n right: 15px;\n top: -14px;\n border: 7px solid rgba(0, 0, 0, 0);\n border-bottom-color: #fff;\n}\n.vega-embed .chart-wrapper.fit-x {\n width: 100%;\n}\n.vega-embed .chart-wrapper.fit-y {\n height: 100%;\n}\n\n.vega-embed-wrapper {\n max-width: 100%;\n overflow: auto;\n padding-right: 14px;\n}\n\n@keyframes scale-in {\n from {\n opacity: 0;\n transform: scale(0.6);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n";
4554
4607
 
4555
4608
  if (!String.prototype.startsWith) {
4556
4609
  // eslint-disable-next-line no-extend-native,func-names
@@ -4581,7 +4634,7 @@
4581
4634
  }
4582
4635
 
4583
4636
  var name = "vega-embed";
4584
- var version$1 = "6.20.5";
4637
+ var version$1 = "6.21.0";
4585
4638
  var description = "Publish Vega visualizations as embedded web components.";
4586
4639
  var keywords = ["vega", "data", "visualization", "component", "embed"];
4587
4640
  var repository = {
@@ -4608,28 +4661,28 @@
4608
4661
  var types = "build/vega-embed.module.d.ts";
4609
4662
  var files = ["src", "build", "build-es5", "patches"];
4610
4663
  var devDependencies = {
4611
- "@auto-it/conventional-commits": "^10.32.3",
4612
- "@auto-it/first-time-contributor": "^10.32.3",
4613
- "@babel/plugin-transform-runtime": "^7.16.4",
4614
- "@rollup/plugin-commonjs": "21.0.1",
4664
+ "@auto-it/conventional-commits": "^10.37.1",
4665
+ "@auto-it/first-time-contributor": "^10.37.1",
4666
+ "@babel/plugin-transform-runtime": "^7.18.2",
4667
+ "@rollup/plugin-commonjs": "22.0.0",
4615
4668
  "@rollup/plugin-json": "^4.1.0",
4616
- "@rollup/plugin-node-resolve": "^13.0.6",
4669
+ "@rollup/plugin-node-resolve": "^13.3.0",
4617
4670
  "@types/semver": "^7.3.9",
4618
- auto: "^10.32.3",
4619
- "browser-sync": "^2.27.7",
4620
- concurrently: "^6.4.0",
4671
+ auto: "^10.37.1",
4672
+ "browser-sync": "^2.27.10",
4673
+ concurrently: "^7.2.1",
4621
4674
  "del-cli": "^4.0.1",
4622
- "jest-canvas-mock": "^2.3.1",
4675
+ "jest-canvas-mock": "^2.4.0",
4623
4676
  "patch-package": "^6.4.7",
4624
4677
  "postinstall-postinstall": "^2.1.0",
4625
- rollup: "2.60.1",
4678
+ rollup: "2.75.6",
4626
4679
  "rollup-plugin-bundle-size": "^1.0.3",
4627
4680
  "rollup-plugin-terser": "^7.0.2",
4628
- "rollup-plugin-ts": "^2.0.4",
4629
- sass: "^1.43.5",
4630
- typescript: "^4.5.2",
4631
- vega: "^5.21.0",
4632
- "vega-lite": "^5.0.0",
4681
+ "rollup-plugin-ts": "^3.0.0",
4682
+ sass: "^1.52.1",
4683
+ typescript: "^4.7.2",
4684
+ vega: "^5.22.1",
4685
+ "vega-lite": "^5.2.0",
4633
4686
  "vega-lite-dev-config": "^0.20.0"
4634
4687
  };
4635
4688
  var peerDependencies = {
@@ -4637,14 +4690,14 @@
4637
4690
  "vega-lite": "*"
4638
4691
  };
4639
4692
  var dependencies = {
4640
- "fast-json-patch": "^3.1.0",
4693
+ "fast-json-patch": "^3.1.1",
4641
4694
  "json-stringify-pretty-compact": "^3.0.0",
4642
- semver: "^7.3.5",
4643
- tslib: "^2.3.1",
4695
+ semver: "^7.3.7",
4696
+ tslib: "^2.4.0",
4644
4697
  "vega-interpreter": "^1.0.4",
4645
4698
  "vega-schema-url-parser": "^2.2.0",
4646
4699
  "vega-themes": "^2.10.0",
4647
- "vega-tooltip": "^0.27.0"
4700
+ "vega-tooltip": "^0.28.0"
4648
4701
  };
4649
4702
  var bundledDependencies = ["yallist"];
4650
4703
  var scripts = {
@@ -4795,9 +4848,16 @@
4795
4848
  }
4796
4849
 
4797
4850
  function embedOptionsFromUsermeta(parsedSpec) {
4798
- var _ref;
4851
+ var _embedOptions, _parsedSpec$usermeta;
4852
+
4853
+ const opts = (_embedOptions = (_parsedSpec$usermeta = parsedSpec.usermeta) === null || _parsedSpec$usermeta === void 0 ? void 0 : _parsedSpec$usermeta.embedOptions) !== null && _embedOptions !== void 0 ? _embedOptions : {};
4799
4854
 
4800
- return (_ref = parsedSpec.usermeta && parsedSpec.usermeta.embedOptions) !== null && _ref !== void 0 ? _ref : {};
4855
+ if (vegaImport.isString(opts.defaultStyle)) {
4856
+ // we don't allow styles set via usermeta since it would allow injection of logic (we set the style via innerHTML)
4857
+ opts.defaultStyle = false;
4858
+ }
4859
+
4860
+ return opts;
4801
4861
  }
4802
4862
  /**
4803
4863
  * Embed a Vega visualization component in a web page. This function returns a promise.
@@ -4823,7 +4883,8 @@
4823
4883
  parsedSpec = spec;
4824
4884
  }
4825
4885
 
4826
- const usermetaLoader = embedOptionsFromUsermeta(parsedSpec).loader; // either create the loader for the first time or create a new loader if the spec has new loader options
4886
+ const loadedEmbedOptions = embedOptionsFromUsermeta(parsedSpec);
4887
+ const usermetaLoader = loadedEmbedOptions.loader; // either create the loader for the first time or create a new loader if the spec has new loader options
4827
4888
 
4828
4889
  if (!loader || usermetaLoader) {
4829
4890
  var _opts$loader;
@@ -4831,7 +4892,7 @@
4831
4892
  loader = createLoader((_opts$loader = opts.loader) !== null && _opts$loader !== void 0 ? _opts$loader : usermetaLoader);
4832
4893
  }
4833
4894
 
4834
- const usermetaOpts = await loadOpts(embedOptionsFromUsermeta(parsedSpec), loader);
4895
+ const usermetaOpts = await loadOpts(loadedEmbedOptions, loader);
4835
4896
  const parsedOpts = await loadOpts(opts, loader);
4836
4897
  const mergedOpts = { ...mergeDeep(parsedOpts, usermetaOpts),
4837
4898
  config: vegaImport.mergeConfig((_parsedOpts$config = parsedOpts.config) !== null && _parsedOpts$config !== void 0 ? _parsedOpts$config : {}, (_usermetaOpts$config = usermetaOpts.config) !== null && _usermetaOpts$config !== void 0 ? _usermetaOpts$config : {})
@@ -4868,7 +4929,7 @@
4868
4929
  }
4869
4930
 
4870
4931
  async function _embed(el, spec) {
4871
- var _opts$config, _opts$actions, _opts$renderer, _opts$logLevel, _opts$downloadFileNam, _ref2, _vega$expressionInter;
4932
+ var _opts$config, _opts$actions, _opts$renderer, _opts$logLevel, _opts$downloadFileNam, _ref, _expressionInterprete;
4872
4933
 
4873
4934
  let opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
4874
4935
  let loader = arguments.length > 3 ? arguments[3] : undefined;
@@ -4887,7 +4948,6 @@
4887
4948
  }
4888
4949
 
4889
4950
  if (opts.defaultStyle !== false) {
4890
- // Add a default stylesheet to the head of the document.
4891
4951
  const ID = 'vega-embed-style';
4892
4952
  const {
4893
4953
  root,
@@ -4897,7 +4957,7 @@
4897
4957
  if (!root.getElementById(ID)) {
4898
4958
  const style = document.createElement('style');
4899
4959
  style.id = ID;
4900
- style.innerText = opts.defaultStyle === undefined || opts.defaultStyle === true ? (embedStyle ).toString() : opts.defaultStyle;
4960
+ style.innerHTML = opts.defaultStyle === undefined || opts.defaultStyle === true ? (embedStyle ).toString() : opts.defaultStyle;
4901
4961
  rootContainer.appendChild(style);
4902
4962
  }
4903
4963
  }
@@ -4945,6 +5005,19 @@
4945
5005
 
4946
5006
  if (opts.timeFormatLocale) {
4947
5007
  vega.timeFormatLocale(opts.timeFormatLocale);
5008
+ } // Set custom expression functions
5009
+
5010
+
5011
+ if (opts.expressionFunctions) {
5012
+ for (const name in opts.expressionFunctions) {
5013
+ const expressionFunction = opts.expressionFunctions[name];
5014
+
5015
+ if ('fn' in expressionFunction) {
5016
+ vega.expressionFunction(name, expressionFunction.fn, expressionFunction['visitor']);
5017
+ } else if (expressionFunction instanceof Function) {
5018
+ vega.expressionFunction(name, expressionFunction);
5019
+ }
5020
+ }
4948
5021
  }
4949
5022
 
4950
5023
  const {
@@ -4960,7 +5033,7 @@
4960
5033
  logLevel,
4961
5034
  renderer,
4962
5035
  ...(ast ? {
4963
- expr: (_ref2 = (_vega$expressionInter = vega.expressionInterpreter) !== null && _vega$expressionInter !== void 0 ? _vega$expressionInter : opts.expr) !== null && _ref2 !== void 0 ? _ref2 : expression
5036
+ expr: (_ref = (_expressionInterprete = vega.expressionInterpreter) !== null && _expressionInterprete !== void 0 ? _expressionInterprete : opts.expr) !== null && _ref !== void 0 ? _ref : expression
4964
5037
  } : {})
4965
5038
  });
4966
5039
  view.addSignalListener('autosize', (_, autosize) => {
@@ -5126,7 +5199,8 @@
5126
5199
  view,
5127
5200
  spec,
5128
5201
  vgSpec,
5129
- finalize
5202
+ finalize,
5203
+ embedOptions: opts
5130
5204
  };
5131
5205
  }
5132
5206