code:
'use strict';
require('../modules/es.symbol');
require('../modules/es.symbol.description');
require('../modules/es.symbol.async-iterator');
require('../modules/es.symbol.has-instance');
require('../modules/es.symbol.is-concat-spreadable');
require('../modules/es.symbol.iterator');
require('../modules/es.symbol.match');
require('../modules/es.symbol.match-all');
require('../modules/es.symbol.replace');
require('../modules/es.symbol.search');
require('../modules/es.symbol.species');
require('../modules/es.symbol.split');
require('../modules/es.symbol.to-primitive');
require('../modules/es.symbol.to-string-tag');
require('../modules/es.symbol.unscopables');
require('../modules/es.error.cause');
require('../modules/es.error.to-string');
require('../modules/es.aggregate-error');
require('../modules/es.aggregate-error.cause');
require('../modules/es.array.at');
require('../modules/es.array.concat');
require('../modules/es.array.copy-within');
require('../modules/es.array.every');
require('../modules/es.array.fill');
require('../modules/es.array.filter');
require('../modules/es.array.find');
require('../modules/es.array.find-index');
require('../modules/es.array.find-last');
require('../modules/es.array.find-last-index');
require('../modules/es.array.flat');
require('../modules/es.array.flat-map');
require('../modules/es.array.for-each');
require('../modules/es.array.from');
require('../modules/es.array.includes');
require('../modules/es.array.index-of');
require('../modules/es.array.is-array');
require('../modules/es.array.iterator');
require('../modules/es.array.join');
require('../modules/es.array.last-index-of');
require('../modules/es.array.map');
require('../modules/es.array.of');
require('../modules/es.array.push');
require('../modules/es.array.reduce');
require('../modules/es.array.reduce-right');
require('../modules/es.array.reverse');
require('../modules/es.array.slice');
require('../modules/es.array.some');
require('../modules/es.array.sort');
require('../modules/es.array.species');
require('../modules/es.array.splice');
require('../modules/es.array.to-reversed');
require('../modules/es.array.to-sorted');
require('../modules/es.array.to-spliced');
require('../modules/es.array.unscopables.flat');
require('../modules/es.array.unscopables.flat-map');
require('../modules/es.array.unshift');
require('../modules/es.array.with');
require('../modules/es.array-buffer.constructor');
require('../modules/es.array-buffer.is-view');
require('../modules/es.array-buffer.slice');
require('../modules/es.data-view');
require('../modules/es.array-buffer.detached');
require('../modules/es.array-buffer.transfer');
require('../modules/es.array-buffer.transfer-to-fixed-length');
require('../modules/es.date.get-year');
require('../modules/es.date.now');
require('../modules/es.date.set-year');
require('../modules/es.date.to-gmt-string');
require('../modules/es.date.to-iso-string');
require('../modules/es.date.to-json');
require('../modules/es.date.to-primitive');
require('../modules/es.date.to-string');
require('../modules/es.escape');
require('../modules/es.function.bind');
require('../modules/es.function.has-instance');
require('../modules/es.function.name');
require('../modules/es.global-this');
require('../modules/es.iterator.constructor');
require('../modules/es.iterator.drop');
require('../modules/es.iterator.every');
require('../modules/es.iterator.filter');
require('../modules/es.iterator.find');
require('../modules/es.iterator.flat-map');
require('../modules/es.iterator.for-each');
require('../modules/es.iterator.from');
require('../modules/es.iterator.map');
require('../modules/es.iterator.reduce');
require('../modules/es.iterator.some');
require('../modules/es.iterator.take');
require('../modules/es.iterator.to-array');
require('../modules/es.json.stringify');
require('../modules/es.json.to-string-tag');
require('../modules/es.map');
require('../modules/es.map.group-by');
require('../modules/es.math.acosh');
require('../modules/es.math.asinh');
require('../modules/es.math.atanh');
require('../modules/es.math.cbrt');
require('../modules/es.math.clz32');
require('../modules/es.math.cosh');
require('../modules/es.math.expm1');
require('../modules/es.math.fround');
require('../modules/es.math.hypot');
require('../modules/es.math.imul');
require('../modules/es.math.log10');
require('../modules/es.math.log1p');
require('../modules/es.math.log2');
require('../modules/es.math.sign');
require('../modules/es.math.sinh');
require('../modules/es.math.tanh');
require('../modules/es.math.to-string-tag');
require('../modules/es.math.trunc');
require('../modules/es.number.constructor');
require('../modules/es.number.epsilon');
require('../modules/es.number.is-finite');
require('../modules/es.number.is-integer');
require('../modules/es.number.is-nan');
require('../modules/es.number.is-safe-integer');
require('../modules/es.number.max-safe-integer');
require('../modules/es.number.min-safe-integer');
require('../modules/es.number.parse-float');
require('../modules/es.number.parse-int');
require('../modules/es.number.to-exponential');
require('../modules/es.number.to-fixed');
require('../modules/es.number.to-precision');
require('../modules/es.object.assign');
require('../modules/es.object.create');
require('../modules/es.object.define-getter');
require('../modules/es.object.define-properties');
require('../modules/es.object.define-property');
require('../modules/es.object.define-setter');
require('../modules/es.object.entries');
require('../modules/es.object.freeze');
require('../modules/es.object.from-entries');
require('../modules/es.object.get-own-property-descriptor');
require('../modules/es.object.get-own-property-descriptors');
require('../modules/es.object.get-own-property-names');
require('../modules/es.object.get-prototype-of');
require('../modules/es.object.group-by');
require('../modules/es.object.has-own');
require('../modules/es.object.is');
require('../modules/es.object.is-extensible');
require('../modules/es.object.is-frozen');
require('../modules/es.object.is-sealed');
require('../modules/es.object.keys');
require('../modules/es.object.lookup-getter');
require('../modules/es.object.lookup-setter');
require('../modules/es.object.prevent-extensions');
require('../modules/es.object.proto');
require('../modules/es.object.seal');
require('../modules/es.object.set-prototype-of');
require('../modules/es.object.to-string');
require('../modules/es.object.values');
require('../modules/es.parse-float');
require('../modules/es.parse-int');
require('../modules/es.promise');
require('../modules/es.promise.all-settled');
require('../modules/es.promise.any');
require('../modules/es.promise.finally');
require('../modules/es.promise.try');
require('../modules/es.promise.with-resolvers');
require('../modules/es.reflect.apply');
require('../modules/es.reflect.construct');
require('../modules/es.reflect.define-property');
require('../modules/es.reflect.delete-property');
require('../modules/es.reflect.get');
require('../modules/es.reflect.get-own-property-descriptor');
require('../modules/es.reflect.get-prototype-of');
require('../modules/es.reflect.has');
require('../modules/es.reflect.is-extensible');
require('../modules/es.reflect.own-keys');
require('../modules/es.reflect.prevent-extensions');
require('../modules/es.reflect.set');
require('../modules/es.reflect.set-prototype-of');
require('../modules/es.reflect.to-string-tag');
require('../modules/es.regexp.constructor');
require('../modules/es.regexp.dot-all');
require('../modules/es.regexp.exec');
require('../modules/es.regexp.flags');
require('../modules/es.regexp.sticky');
require('../modules/es.regexp.test');
require('../modules/es.regexp.to-string');
require('../modules/es.set');
require('../modules/es.set.difference.v2');
require('../modules/es.set.intersection.v2');
require('../modules/es.set.is-disjoint-from.v2');
require('../modules/es.set.is-subset-of.v2');
require('../modules/es.set.is-superset-of.v2');
require('../modules/es.set.symmetric-difference.v2');
require('../modules/es.set.union.v2');
require('../modules/es.string.at-alternative');
require('../modules/es.string.code-point-at');
require('../modules/es.string.ends-with');
require('../modules/es.string.from-code-point');
require('../modules/es.string.includes');
require('../modules/es.string.is-well-formed');
require('../modules/es.string.iterator');
require('../modules/es.string.match');
require('../modules/es.string.match-all');
require('../modules/es.string.pad-end');
require('../modules/es.string.pad-start');
require('../modules/es.string.raw');
require('../modules/es.string.repeat');
require('../modules/es.string.replace');
require('../modules/es.string.replace-all');
require('../modules/es.string.search');
require('../modules/es.string.split');
require('../modules/es.string.starts-with');
require('../modules/es.string.substr');
require('../modules/es.string.to-well-formed');
require('../modules/es.string.trim');
require('../modules/es.string.trim-end');
require('../modules/es.string.trim-start');
require('../modules/es.string.anchor');
require('../modules/es.string.big');
require('../modules/es.string.blink');
require('../modules/es.string.bold');
require('../modules/es.string.fixed');
require('../modules/es.string.fontcolor');
require('../modules/es.string.fontsize');
require('../modules/es.string.italics');
require('../modules/es.string.link');
require('../modules/es.string.small');
require('../modules/es.string.strike');
require('../modules/es.string.sub');
require('../modules/es.string.sup');
require('../modules/es.typed-array.float32-array');
require('../modules/es.typed-array.float64-array');
require('../modules/es.typed-array.int8-array');
require('../modules/es.typed-array.int16-array');
require('../modules/es.typed-array.int32-array');
require('../modules/es.typed-array.uint8-array');
require('../modules/es.typed-array.uint8-clamped-array');
require('../modules/es.typed-array.uint16-array');
require('../modules/es.typed-array.uint32-array');
require('../modules/es.typed-array.at');
require('../modules/es.typed-array.copy-within');
require('../modules/es.typed-array.every');
require('../modules/es.typed-array.fill');
require('../modules/es.typed-array.filter');
require('../modules/es.typed-array.find');
require('../modules/es.typed-array.find-index');
require('../modules/es.typed-array.find-last');
require('../modules/es.typed-array.find-last-index');
require('../modules/es.typed-array.for-each');
require('../modules/es.typed-array.from');
require('../modules/es.typed-array.includes');
require('../modules/es.typed-array.index-of');
require('../modules/es.typed-array.iterator');
require('../modules/es.typed-array.join');
require('../modules/es.typed-array.last-index-of');
require('../modules/es.typed-array.map');
require('../modules/es.typed-array.of');
require('../modules/es.typed-array.reduce');
require('../modules/es.typed-array.reduce-right');
require('../modules/es.typed-array.reverse');
require('../modules/es.typed-array.set');
require('../modules/es.typed-array.slice');
require('../modules/es.typed-array.some');
require('../modules/es.typed-array.sort');
require('../modules/es.typed-array.subarray');
require('../modules/es.typed-array.to-locale-string');
require('../modules/es.typed-array.to-reversed');
require('../modules/es.typed-array.to-sorted');
require('../modules/es.typed-array.to-string');
require('../modules/es.typed-array.with');
require('../modules/es.unescape');
require('../modules/es.weak-map');
require('../modules/es.weak-set');
require('../modules/web.atob');
require('../modules/web.btoa');
require('../modules/web.dom-collections.for-each');
require('../modules/web.dom-collections.iterator');
require('../modules/web.dom-exception.constructor');
require('../modules/web.dom-exception.stack');
require('../modules/web.dom-exception.to-string-tag');
require('../modules/web.immediate');
require('../modules/web.queue-microtask');
require('../modules/web.self');
require('../modules/web.structured-clone');
require('../modules/web.timers');
require('../modules/web.url');
require('../modules/web.url.can-parse');
require('../modules/web.url.parse');
require('../modules/web.url.to-json');
require('../modules/web.url-search-params');
require('../modules/web.url-search-params.delete');
require('../modules/web.url-search-params.has');
require('../modules/web.url-search-params.size');

module.exports = require('../internals/path');


code:
'use strict';
var parent = require('../../es/instance/at');

module.exports = parent;

license: mit


code:
'use strict';
var parent = require('../../es/instance/bind');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/code-point-at');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/concat');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/copy-within');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/ends-with');

module.exports = parent;


code:
'use strict';
require('../../modules/web.dom-collections.iterator');
var classof = require('../../internals/classof');
var hasOwn = require('../../internals/has-own-property');
var isPrototypeOf = require('../../internals/object-is-prototype-of');
var method = require('../array/virtual/entries');

var ArrayPrototype = Array.prototype;

var DOMIterables = {
  DOMTokenList: true,
  NodeList: true
};

module.exports = function (it) {
  var own = it.entries;
  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.entries)
    || hasOwn(DOMIterables, classof(it)) ? method : own;
};


code:
'use strict';
var parent = require('../../es/instance/every');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/fill');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/filter');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/find-index');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/find-last-index');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/find-last');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/find');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/flags');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/flat-map');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/flat');

module.exports = parent;


code:
'use strict';
var classof = require('../../internals/classof');
var hasOwn = require('../../internals/has-own-property');
var isPrototypeOf = require('../../internals/object-is-prototype-of');
var method = require('../array/virtual/for-each');
require('../../modules/web.dom-collections.for-each');

var ArrayPrototype = Array.prototype;

var DOMIterables = {
  DOMTokenList: true,
  NodeList: true
};

module.exports = function (it) {
  var own = it.forEach;
  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.forEach)
    || hasOwn(DOMIterables, classof(it)) ? method : own;
};


code:
'use strict';
var parent = require('../../es/instance/includes');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/index-of');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/is-well-formed');

module.exports = parent;


code:
'use strict';
require('../../modules/web.dom-collections.iterator');
var classof = require('../../internals/classof');
var hasOwn = require('../../internals/has-own-property');
var isPrototypeOf = require('../../internals/object-is-prototype-of');
var method = require('../array/virtual/keys');

var ArrayPrototype = Array.prototype;

var DOMIterables = {
  DOMTokenList: true,
  NodeList: true
};

module.exports = function (it) {
  var own = it.keys;
  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.keys)
    || hasOwn(DOMIterables, classof(it)) ? method : own;
};


code:
'use strict';
var parent = require('../../es/instance/last-index-of');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/map');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/match-all');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/pad-end');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/pad-start');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/push');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/reduce-right');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/reduce');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/repeat');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/replace-all');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/reverse');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/slice');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/some');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/sort');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/splice');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/starts-with');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/to-reversed');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/to-sorted');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/to-spliced');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/to-well-formed');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/trim-end');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/trim-left');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/trim-right');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/trim-start');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/trim');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/instance/unshift');

module.exports = parent;


code:
'use strict';
require('../../modules/web.dom-collections.iterator');
var classof = require('../../internals/classof');
var hasOwn = require('../../internals/has-own-property');
var isPrototypeOf = require('../../internals/object-is-prototype-of');
var method = require('../array/virtual/values');

var ArrayPrototype = Array.prototype;

var DOMIterables = {
  DOMTokenList: true,
  NodeList: true
};

module.exports = function (it) {
  var own = it.values;
  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.values)
    || hasOwn(DOMIterables, classof(it)) ? method : own;
};


code:
'use strict';
var parent = require('../../es/instance/with');

module.exports = parent;


code:
'use strict';
var parent = require('../es/is-iterable');
require('../modules/web.dom-collections.iterator');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/iterator/drop');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/iterator/every');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/iterator/filter');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/iterator/find');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/iterator/flat-map');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/iterator/for-each');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/iterator/from');
require('../../modules/web.dom-collections.iterator');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/iterator');
require('../../modules/web.dom-collections.iterator');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/iterator/map');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/iterator/reduce');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/iterator/some');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/iterator/take');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/iterator/to-array');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/json');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/json/stringify');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/json/to-string-tag');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/map/group-by');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/map');
require('../../modules/web.dom-collections.iterator');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/math/acosh');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/math/asinh');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/math/atanh');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/math/cbrt');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/math/clz32');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/math/cosh');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/math/expm1');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/math/fround');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/math/hypot');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/math/imul');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/math');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/math/log10');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/math/log1p');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/math/log2');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/math/sign');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/math/sinh');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/math/tanh');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/math/to-string-tag');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/math/trunc');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/number/constructor');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/number/epsilon');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/number');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/number/is-finite');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/number/is-integer');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/number/is-nan');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/number/is-safe-integer');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/number/max-safe-integer');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/number/min-safe-integer');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/number/parse-float');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/number/parse-int');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/number/to-exponential');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/number/to-fixed');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/number/to-precision');

module.exports = parent;


code:
'use strict';
var parent = require('../../../es/number/virtual');

module.exports = parent;


code:
'use strict';
var parent = require('../../../es/number/virtual/to-exponential');

module.exports = parent;


code:
'use strict';
var parent = require('../../../es/number/virtual/to-fixed');

module.exports = parent;


code:
'use strict';
var parent = require('../../../es/number/virtual/to-precision');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/object/assign');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/object/create');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/object/define-getter');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/object/define-properties');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/object/define-property');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/object/define-setter');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/object/entries');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/object/freeze');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/object/from-entries');
require('../../modules/web.dom-collections.iterator');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/object/get-own-property-descriptor');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/object/get-own-property-descriptors');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/object/get-own-property-names');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/object/get-own-property-symbols');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/object/get-prototype-of');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/object/group-by');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/object/has-own');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/object');
require('../../modules/web.dom-collections.iterator');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/object/is-extensible');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/object/is-frozen');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/object/is-sealed');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/object/is');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/object/keys');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/object/lookup-getter');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/object/lookup-setter');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/object/prevent-extensions');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/object/proto');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/object/seal');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/object/set-prototype-of');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/object/to-string');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/object/values');

module.exports = parent;


code:
'use strict';
var parent = require('../es/parse-float');

module.exports = parent;


code:
'use strict';
var parent = require('../es/parse-int');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/promise/all-settled');
require('../../modules/web.dom-collections.iterator');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/promise/any');
require('../../modules/web.dom-collections.iterator');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/promise/finally');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/promise');
require('../../modules/web.dom-collections.iterator');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/promise/try');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/promise/with-resolvers');

module.exports = parent;


code:
'use strict';
var parent = require('../web/queue-microtask');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/reflect/apply');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/reflect/construct');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/reflect/define-property');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/reflect/delete-property');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/reflect/get-own-property-descriptor');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/reflect/get-prototype-of');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/reflect/get');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/reflect/has');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/reflect');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/reflect/is-extensible');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/reflect/own-keys');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/reflect/prevent-extensions');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/reflect/set-prototype-of');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/reflect/set');

module.exports = parent;


code:
'use strict';
require('../../modules/es.reflect.to-string-tag');

module.exports = 'Reflect';


code:
'use strict';
var parent = require('../../es/regexp/constructor');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/regexp/dot-all');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/regexp/flags');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/regexp');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/regexp/match');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/regexp/replace');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/regexp/search');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/regexp/split');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/regexp/sticky');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/regexp/test');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/regexp/to-string');

module.exports = parent;


code:
'use strict';
require('../modules/web.self');
var path = require('../internals/path');

module.exports = path.self;


code:
'use strict';
require('../modules/web.immediate');
var path = require('../internals/path');

module.exports = path.setImmediate;


code:
'use strict';
require('../modules/web.timers');
var path = require('../internals/path');

module.exports = path.setInterval;


code:
'use strict';
require('../modules/web.timers');
var path = require('../internals/path');

module.exports = path.setTimeout;


code:
'use strict';
var parent = require('../../es/set/difference');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/set');
require('../../modules/web.dom-collections.iterator');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/set/intersection');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/set/is-disjoint-from');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/set/is-subset-of');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/set/is-superset-of');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/set/symmetric-difference');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/set/union');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string/anchor');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string/at');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string/big');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string/blink');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string/bold');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string/code-point-at');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string/ends-with');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string/fixed');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string/fontcolor');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string/fontsize');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string/from-code-point');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string/includes');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string/is-well-formed');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string/italics');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string/iterator');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string/link');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string/match-all');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string/match');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string/pad-end');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string/pad-start');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string/raw');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string/repeat');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string/replace-all');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string/replace');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string/search');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string/small');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string/split');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string/starts-with');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string/strike');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string/sub');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string/substr');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string/sup');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string/to-well-formed');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string/trim-end');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string/trim-left');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string/trim-right');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string/trim-start');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/string/trim');

module.exports = parent;


code:
'use strict';
var parent = require('../../../es/string/virtual/anchor');

module.exports = parent;


code:
'use strict';
var parent = require('../../../es/string/virtual/at');

module.exports = parent;


code:
'use strict';
var parent = require('../../../es/string/virtual/big');

module.exports = parent;


code:
'use strict';
var parent = require('../../../es/string/virtual/blink');

module.exports = parent;


code:
'use strict';
var parent = require('../../../es/string/virtual/bold');

module.exports = parent;


code:
'use strict';
var parent = require('../../../es/string/virtual/code-point-at');

module.exports = parent;


code:
'use strict';
var parent = require('../../../es/string/virtual/ends-with');

module.exports = parent;


code:
'use strict';
var parent = require('../../../es/string/virtual/fixed');

module.exports = parent;


code:
'use strict';
var parent = require('../../../es/string/virtual/fontcolor');

module.exports = parent;


code:
'use strict';
var parent = require('../../../es/string/virtual/fontsize');

module.exports = parent;


code:
'use strict';
var parent = require('../../../es/string/virtual/includes');

module.exports = parent;


code:
'use strict';
var parent = require('../../../es/string/virtual');

module.exports = parent;


code:
'use strict';
var parent = require('../../../es/string/virtual/is-well-formed');

module.exports = parent;


code:
'use strict';
var parent = require('../../../es/string/virtual/italics');

module.exports = parent;


code:
'use strict';
var parent = require('../../../es/string/virtual/iterator');

module.exports = parent;


code:
'use strict';
var parent = require('../../../es/string/virtual/link');

module.exports = parent;


code:
'use strict';
var parent = require('../../../es/string/virtual/match-all');

module.exports = parent;


code:
'use strict';
var parent = require('../../../es/string/virtual/pad-end');

module.exports = parent;


code:
'use strict';
var parent = require('../../../es/string/virtual/pad-start');

module.exports = parent;


code:
'use strict';
var parent = require('../../../es/string/virtual/repeat');

module.exports = parent;


code:
'use strict';
var parent = require('../../../es/string/virtual/replace-all');

module.exports = parent;


code:
'use strict';
var parent = require('../../../es/string/virtual/small');

module.exports = parent;


code:
'use strict';
var parent = require('../../../es/string/virtual/starts-with');

module.exports = parent;


code:
'use strict';
var parent = require('../../../es/string/virtual/strike');

module.exports = parent;


code:
'use strict';
var parent = require('../../../es/string/virtual/sub');

module.exports = parent;


code:
'use strict';
var parent = require('../../../es/string/virtual/substr');

module.exports = parent;


code:
'use strict';
var parent = require('../../../es/string/virtual/sup');

module.exports = parent;


code:
'use strict';
var parent = require('../../../es/string/virtual/to-well-formed');

module.exports = parent;


code:
'use strict';
var parent = require('../../../es/string/virtual/trim-end');

module.exports = parent;


code:
'use strict';
var parent = require('../../../es/string/virtual/trim-left');

module.exports = parent;


code:
'use strict';
var parent = require('../../../es/string/virtual/trim-right');

module.exports = parent;


code:
'use strict';
var parent = require('../../../es/string/virtual/trim-start');

module.exports = parent;


code:
'use strict';
var parent = require('../../../es/string/virtual/trim');

module.exports = parent;


code:
'use strict';
require('../modules/es.error.to-string');
require('../modules/es.array.iterator');
require('../modules/es.object.keys');
require('../modules/es.object.to-string');
require('../modules/es.map');
require('../modules/es.set');
require('../modules/web.dom-exception.constructor');
require('../modules/web.dom-exception.stack');
require('../modules/web.dom-exception.to-string-tag');
require('../modules/web.structured-clone');
var path = require('../internals/path');

module.exports = path.structuredClone;


code:
'use strict';
var parent = require('../../es/symbol/async-iterator');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/symbol/description');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/symbol/for');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/symbol/has-instance');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/symbol');
require('../../modules/web.dom-collections.iterator');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/symbol/is-concat-spreadable');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/symbol/iterator');
require('../../modules/web.dom-collections.iterator');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/symbol/key-for');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/symbol/match-all');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/symbol/match');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/symbol/replace');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/symbol/search');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/symbol/species');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/symbol/split');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/symbol/to-primitive');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/symbol/to-string-tag');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/symbol/unscopables');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/at');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/copy-within');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/entries');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/every');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/fill');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/filter');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/find-index');

module.exports = parent;


code:
'use strict';
module.exports = require('../../es/typed-array/find-last-index');


code:
'use strict';
module.exports = require('../../es/typed-array/find-last');


code:
'use strict';
var parent = require('../../es/typed-array/find');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/float32-array');
require('../../stable/typed-array/methods');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/float64-array');
require('../../stable/typed-array/methods');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/for-each');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/from');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/includes');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/index-of');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/int16-array');
require('../../stable/typed-array/methods');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/int32-array');
require('../../stable/typed-array/methods');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/int8-array');
require('../../stable/typed-array/methods');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/iterator');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/join');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/keys');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/last-index-of');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/map');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/methods');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/of');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/reduce-right');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/reduce');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/reverse');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/set');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/slice');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/some');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/sort');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/subarray');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/to-locale-string');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/to-reversed');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/to-sorted');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/to-string');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/uint16-array');
require('../../stable/typed-array/methods');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/uint32-array');
require('../../stable/typed-array/methods');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/uint8-array');
require('../../stable/typed-array/methods');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/uint8-clamped-array');
require('../../stable/typed-array/methods');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/values');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/typed-array/with');

module.exports = parent;


code:
'use strict';
var parent = require('../es/unescape');

module.exports = parent;


code:
'use strict';
var parent = require('../../web/url-search-params');
require('../../modules/web.dom-collections.iterator');

module.exports = parent;


code:
'use strict';
require('../../modules/web.url');
require('../../modules/web.url.can-parse');
var path = require('../../internals/path');

module.exports = path.URL.canParse;


code:
'use strict';
var parent = require('../../web/url');

module.exports = parent;


code:
'use strict';
require('../../modules/web.url');
require('../../modules/web.url.parse');
var path = require('../../internals/path');

module.exports = path.URL.parse;


code:
'use strict';
var parent = require('../../es/weak-map');
require('../../modules/web.dom-collections.iterator');

module.exports = parent;


code:
'use strict';
var parent = require('../../es/weak-set');
require('../../modules/web.dom-collections.iterator');

module.exports = parent;


code:
'use strict';
var parent = require('./1');

require('../proposals/efficient-64-bit-arithmetic');
require('../proposals/function-demethodize');
require('../proposals/function-is-callable-is-constructor');
require('../proposals/string-at');
require('../proposals/url');
// TODO: Obsolete versions, remove from `core-js@4`:
require('../proposals/array-filtering');
require('../proposals/function-un-this');

module.exports = parent;


code:
'use strict';
var parent = require('./2');

require('../proposals/array-filtering-stage-1');
require('../proposals/array-last');
require('../proposals/array-unique');
require('../proposals/collection-methods');
require('../proposals/collection-of-from');
require('../proposals/data-view-get-set-uint8-clamped');
require('../proposals/keys-composition');
require('../proposals/math-extensions');
require('../proposals/math-signbit');
require('../proposals/number-from-string');
require('../proposals/object-iteration');
require('../proposals/observable');
require('../proposals/pattern-matching-v2');
require('../proposals/seeded-random');
require('../proposals/string-code-points');
require('../proposals/string-cooked');
// TODO: Obsolete versions, remove from `core-js@4`:
require('../proposals/array-from-async');
require('../proposals/map-upsert');
require('../proposals/number-range');
require('../proposals/pattern-matching');
require('../proposals/string-replace-all');

module.exports = parent;


code:
'use strict';
var parent = require('./3');

require('../proposals/iterator-sequencing');

module.exports = parent;


code:
'use strict';
var parent = require('./2.7');

require('../proposals/array-is-template-object');
require('../proposals/async-iterator-helpers');
require('../proposals/extractors');
require('../proposals/iterator-range');
require('../proposals/map-upsert-v4');
require('../proposals/string-dedent');
require('../proposals/symbol-predicates-v2');
// TODO: Obsolete versions, remove from `core-js@4`
require('../proposals/array-grouping');
require('../proposals/async-explicit-resource-management');
require('../proposals/decorators');
require('../proposals/decorator-metadata');
require('../proposals/iterator-helpers');
require('../proposals/map-upsert-stage-2');
require('../proposals/set-methods');
require('../proposals/symbol-predicates');
require('../proposals/using-statement');

module.exports = parent;


code:
'use strict';
var parent = require('./4');

require('../proposals/array-buffer-base64');
require('../proposals/array-from-async-stage-2');
require('../proposals/decorator-metadata-v2');
require('../proposals/explicit-resource-management');
require('../proposals/float16');
require('../proposals/json-parse-with-source');
require('../proposals/math-sum');
require('../proposals/regexp-escaping');
// TODO: Obsolete versions, remove from `core-js@4`
require('../proposals/array-grouping-stage-3');
require('../proposals/array-grouping-stage-3-2');
require('../proposals/change-array-by-copy');
require('../proposals/iterator-helpers-stage-3');

module.exports = parent;


code:
'use strict';
// TODO: Remove this entry from `core-js@4`
require('../proposals/accessible-object-hasownproperty');
require('../proposals/array-buffer-transfer');
require('../proposals/array-find-from-last');
require('../proposals/array-grouping-v2');
require('../proposals/change-array-by-copy-stage-4');
// require('../proposals/error-cause');
require('../proposals/global-this');
require('../proposals/iterator-helpers-stage-3-2');
require('../proposals/promise-all-settled');
require('../proposals/promise-any');
require('../proposals/promise-try');
require('../proposals/promise-with-resolvers');
require('../proposals/relative-indexing-method');
require('../proposals/set-methods-v2');
require('../proposals/string-match-all');
require('../proposals/string-replace-all-stage-4');
require('../proposals/well-formed-unicode-strings');

var path = require('../internals/path');

module.exports = path;


code: This folder contains entry points for [ECMAScript proposals](https://github.com/zloirock/core-js#ecmascript-proposals) with dependencies.


code:
'use strict';
var proposals = require('./pre');

module.exports = proposals;


code:
'use strict';
var parent = require('./0');

require('../proposals/reflect-metadata');

module.exports = parent;


code: This folder contains entry points for features from [WHATWG / W3C](https://github.com/zloirock/core-js#web-standards) with dependencies.


code:
'use strict';
require('../modules/web.dom-collections.for-each');
require('../modules/web.dom-collections.iterator');
var path = require('../internals/path');

module.exports = path;


code:
'use strict';
require('../modules/es.error.to-string');
require('../modules/web.dom-exception.constructor');
require('../modules/web.dom-exception.stack');
require('../modules/web.dom-exception.to-string-tag');
var path = require('../internals/path');

module.exports = path.DOMException;


code:
'use strict';
require('../modules/web.immediate');
var path = require('../internals/path');

module.exports = path;


code:
'use strict';
require('../modules/web.atob');
require('../modules/web.btoa');
require('../modules/web.dom-collections.for-each');
require('../modules/web.dom-collections.iterator');
require('../modules/web.dom-exception.constructor');
require('../modules/web.dom-exception.stack');
require('../modules/web.dom-exception.to-string-tag');
require('../modules/web.immediate');
require('../modules/web.queue-microtask');
require('../modules/web.self');
require('../modules/web.structured-clone');
require('../modules/web.timers');
require('../modules/web.url');
require('../modules/web.url.can-parse');
require('../modules/web.url.parse');
require('../modules/web.url.to-json');
require('../modules/web.url-search-params');
require('../modules/web.url-search-params.delete');
require('../modules/web.url-search-params.has');
require('../modules/web.url-search-params.size');
var path = require('../internals/path');

module.exports = path;


code:
'use strict';
require('../modules/web.queue-microtask');
var path = require('../internals/path');

module.exports = path.queueMicrotask;


code:
'use strict';
require('../modules/es.array.iterator');
require('../modules/es.object.to-string');
require('../modules/es.map');
require('../modules/es.set');
require('../modules/web.structured-clone');
var path = require('../internals/path');

module.exports = path.structuredClone;


code:
'use strict';
require('../modules/web.timers');
var path = require('../internals/path');

module.exports = path;


code:
'use strict';
require('../modules/web.url-search-params');
require('../modules/web.url-search-params.delete');
require('../modules/web.url-search-params.has');
require('../modules/web.url-search-params.size');
var path = require('../internals/path');

module.exports = path.URLSearchParams;


code:
'use strict';
require('./url-search-params');
require('../modules/web.url');
require('../modules/web.url.can-parse');
require('../modules/web.url.parse');
require('../modules/web.url.to-json');
var path = require('../internals/path');

module.exports = path.URL;


code:
# core-util-is

The `util.is*` functions introduced in Node v0.12.


code:
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.

// NOTE: These type checking functions intentionally don't use `instanceof`
// because it is fragile and can be easily faked with `Object.create()`.

function isArray(arg) {
  if (Array.isArray) {
    return Array.isArray(arg);
  }
  return objectToString(arg) === '[object Array]';
}
exports.isArray = isArray;

function isBoolean(arg) {
  return typeof arg === 'boolean';
}
exports.isBoolean = isBoolean;

function isNull(arg) {
  return arg === null;
}
exports.isNull = isNull;

function isNullOrUndefined(arg) {
  return arg == null;
}
exports.isNullOrUndefined = isNullOrUndefined;

function isNumber(arg) {
  return typeof arg === 'number';
}
exports.isNumber = isNumber;

function isString(arg) {
  return typeof arg === 'string';
}
exports.isString = isString;

function isSymbol(arg) {
  return typeof arg === 'symbol';
}
exports.isSymbol = isSymbol;

function isUndefined(arg) {
  return arg === void 0;
}
exports.isUndefined = isUndefined;

function isRegExp(re) {
  return objectToString(re) === '[object RegExp]';
}
exports.isRegExp = isRegExp;

function isObject(arg) {
  return typeof arg === 'object' && arg !== null;
}
exports.isObject = isObject;

function isDate(d) {
  return objectToString(d) === '[object Date]';
}
exports.isDate = isDate;

function isError(e) {
  return (objectToString(e) === '[object Error]' || e instanceof Error);
}
exports.isError = isError;

function isFunction(arg) {
  return typeof arg === 'function';
}
exports.isFunction = isFunction;

function isPrimitive(arg) {
  return arg === null ||
         typeof arg === 'boolean' ||
         typeof arg === 'number' ||
         typeof arg === 'string' ||
         typeof arg === 'symbol' ||  // ES6 symbol
         typeof arg === 'undefined';
}
exports.isPrimitive = isPrimitive;

exports.isBuffer = require('buffer').Buffer.isBuffer;

function objectToString(o) {
  return Object.prototype.toString.call(o);
}


core-util-is

description: The `util.is*` functions introduced in Node v0.12.

type: git

keywords: util isBuffer isArray isNumber isString isRegExp isThis isThat polyfill

author: Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)

license: MIT

test: tap test.js

preversion: npm test

postversion: npm publish

prepublishOnly: git push origin --follow-tags


code:
# cosmiconfig

[![Build Status](https://img.shields.io/travis/davidtheclark/cosmiconfig/main.svg?label=unix%20build)](https://travis-ci.org/davidtheclark/cosmiconfig) [![Build status](https://img.shields.io/appveyor/ci/davidtheclark/cosmiconfig/main.svg?label=windows%20build)](https://ci.appveyor.com/project/davidtheclark/cosmiconfig/branch/main)
[![codecov](https://codecov.io/gh/davidtheclark/cosmiconfig/branch/main/graph/badge.svg)](https://codecov.io/gh/davidtheclark/cosmiconfig)

Cosmiconfig searches for and loads configuration for your program.

It features smart defaults based on conventional expectations in the JavaScript ecosystem.
But it's also flexible enough to search wherever you'd like to search, and load whatever you'd like to load.

By default, Cosmiconfig will start where you tell it to start and search up the directory tree for the following:

- a `package.json` property
- a JSON or YAML, extensionless "rc file"
- an "rc file" with the extensions `.json`, `.yaml`, `.yml`, `.js`, or `.cjs`
- any of the above two inside a `.config` subdirectory
- a `.config.js` or `.config.cjs` CommonJS module

For example, if your module's name is "myapp", cosmiconfig will search up the directory tree for configuration in the following places:

- a `myapp` property in `package.json`
- a `.myapprc` file in JSON or YAML format
- a `.myapprc.json`, `.myapprc.yaml`, `.myapprc.yml`, `.myapprc.js`, or `.myapprc.cjs` file
- a `myapprc`, `myapprc.json`, `myapprc.yaml`, `myapprc.yml`, `myapprc.js` or `myapprc.cjs` file inside a `.config` subdirectory`
- a `myapp.config.js` or `myapp.config.cjs` CommonJS module exporting an object

Cosmiconfig continues to search up the directory tree, checking each of these places in each directory, until it finds some acceptable configuration (or hits the home directory).

## Table of contents

- [Installation](#installation)
- [Usage](#usage)
- [Result](#result)
- [Asynchronous API](#asynchronous-api)
  - [cosmiconfig()](#cosmiconfig-1)
  - [explorer.search()](#explorersearch)
  - [explorer.load()](#explorerload)
  - [explorer.clearLoadCache()](#explorerclearloadcache)
  - [explorer.clearSearchCache()](#explorerclearsearchcache)
  - [explorer.clearCaches()](#explorerclearcaches)
- [Synchronous API](#synchronous-api)
  - [cosmiconfigSync()](#cosmiconfigsync)
  - [explorerSync.search()](#explorersyncsearch)
  - [explorerSync.load()](#explorersyncload)
  - [explorerSync.clearLoadCache()](#explorersyncclearloadcache)
  - [explorerSync.clearSearchCache()](#explorersyncclearsearchcache)
  - [explorerSync.clearCaches()](#explorersyncclearcaches)
- [cosmiconfigOptions](#cosmiconfigoptions)
  - [searchPlaces](#searchplaces)
  - [loaders](#loaders)
  - [packageProp](#packageprop)
  - [stopDir](#stopdir)
  - [cache](#cache)
  - [transform](#transform)
  - [ignoreEmptySearchPlaces](#ignoreemptysearchplaces)
- [Caching](#caching)
- [Differences from rc](#differences-from-rc)
- [Contributing & Development](#contributing--development)

## Installation

```
npm install cosmiconfig
```

Tested in Node 10+.

## Usage

Create a Cosmiconfig explorer, then either `search` for or directly `load` a configuration file.

```js
const { cosmiconfig, cosmiconfigSync } = require('cosmiconfig');
// ...
const explorer = cosmiconfig(moduleName);

// Search for a configuration by walking up directories.
// See documentation for search, below.
explorer.search()
  .then((result) => {
    // result.config is the parsed configuration object.
    // result.filepath is the path to the config file that was found.
    // result.isEmpty is true if there was nothing to parse in the config file.
  })
  .catch((error) => {
    // Do something constructive.
  });

// Load a configuration directly when you know where it should be.
// The result object is the same as for search.
// See documentation for load, below.
explorer.load(pathToConfig).then(..);

// You can also search and load synchronously.
const explorerSync = cosmiconfigSync(moduleName);

const searchedFor = explorerSync.search();
const loaded = explorerSync.load(pathToConfig);
```

## Result

The result object you get from `search` or `load` has the following properties:

- **config:** The parsed configuration object. `undefined` if the file is empty.
- **filepath:** The path to the configuration file that was found.
- **isEmpty:** `true` if the configuration file is empty. This property will not be present if the configuration file is not empty.

## Asynchronous API

### cosmiconfig()

```js
const { cosmiconfig } = require('cosmiconfig');
const explorer = cosmiconfig(moduleName[, cosmiconfigOptions])
```

Creates a cosmiconfig instance ("explorer") configured according to the arguments, and initializes its caches.

#### moduleName

Type: `string`. **Required.**

Your module name. This is used to create the default [`searchPlaces`] and [`packageProp`].

If your [`searchPlaces`] value will include files, as it does by default (e.g. `${moduleName}rc`), your `moduleName` must consist of characters allowed in filenames. That means you should not copy scoped package names, such as `@my-org/my-package`, directly into `moduleName`.

**[`cosmiconfigOptions`] are documented below.**
You may not need them, and should first read about the functions you'll use.

### explorer.search()

```js
explorer.search([searchFrom]).then(result => {..})
```

Searches for a configuration file. Returns a Promise that resolves with a [result] or with `null`, if no configuration file is found.

You can do the same thing synchronously with [`explorerSync.search()`].

Let's say your module name is `goldengrahams` so you initialized with `const explorer = cosmiconfig('goldengrahams');`.
Here's how your default [`search()`] will work:

- Starting from `process.cwd()` (or some other directory defined by the `searchFrom` argument to [`search()`]), look for configuration objects in the following places:
  1. A `goldengrahams` property in a `package.json` file.
  2. A `.goldengrahamsrc` file with JSON or YAML syntax.
  3. A `.goldengrahamsrc.json`, `.goldengrahamsrc.yaml`, `.goldengrahamsrc.yml`, `.goldengrahamsrc.js`, or `.goldengrahamsrc.cjs` file.
  4. A `goldengrahamsrc`, `goldengrahamsrc.json`, `goldengrahamsrc.yaml`, `goldengrahamsrc.yml`, `goldengrahamsrc.js`, or `goldengrahamsrc.cjs` file in the `.config` subdirectory.
  5. A `goldengrahams.config.js` or `goldengrahams.config.cjs` CommonJS module exporting the object.
- If none of those searches reveal a configuration object, move up one directory level and try again.
  So the search continues in `./`, `../`, `../../`, `../../../`, etc., checking the same places in each directory.
- Continue searching until arriving at your home directory (or some other directory defined by the cosmiconfig option [`stopDir`]).
- If at any point a parsable configuration is found, the [`search()`] Promise resolves with its [result] \(or, with [`explorerSync.search()`], the [result] is returned).
- If no configuration object is found, the [`search()`] Promise resolves with `null` (or, with [`explorerSync.search()`], `null` is returned).
- If a configuration object is found *but is malformed* (causing a parsing error), the [`search()`] Promise rejects with that error (so you should `.catch()` it). (Or, with [`explorerSync.search()`], the error is thrown.)

**If you know exactly where your configuration file should be, you can use [`load()`], instead.**

**The search process is highly customizable.**
Use the cosmiconfig options [`searchPlaces`] and [`loaders`] to precisely define where you want to look for configurations and how you want to load them.

#### searchFrom

Type: `string`.
Default: `process.cwd()`.

A filename.
[`search()`] will start its search here.

If the value is a directory, that's where the search starts.
If it's a file, the search starts in that file's directory.

### explorer.load()

```js
explorer.load(loadPath).then(result => {..})
```

Loads a configuration file. Returns a Promise that resolves with a [result] or rejects with an error (if the file does not exist or cannot be loaded).

Use `load` if you already know where the configuration file is and you just need to load it.

```js
explorer.load('load/this/file.json'); // Tries to load load/this/file.json.
```

If you load a `package.json` file, the result will be derived from whatever property is specified as your [`packageProp`].

You can do the same thing synchronously with [`explorerSync.load()`].

### explorer.clearLoadCache()

Clears the cache used in [`load()`].

### explorer.clearSearchCache()

Clears the cache used in [`search()`].

### explorer.clearCaches()

Performs both [`clearLoadCache()`] and [`clearSearchCache()`].

## Synchronous API

### cosmiconfigSync()

```js
const { cosmiconfigSync } = require('cosmiconfig');
const explorerSync = cosmiconfigSync(moduleName[, cosmiconfigOptions])
```

Creates a *synchronous* cosmiconfig instance ("explorerSync") configured according to the arguments, and initializes its caches.

See [`cosmiconfig()`].

### explorerSync.search()

```js
const result = explorerSync.search([searchFrom]);
```

Synchronous version of [`explorer.search()`].

Returns a [result] or `null`.

### explorerSync.load()

```js
const result = explorerSync.load(loadPath);
```

Synchronous version of [`explorer.load()`].

Returns a [result].

### explorerSync.clearLoadCache()

Clears the cache used in [`load()`].

### explorerSync.clearSearchCache()

Clears the cache used in [`search()`].

### explorerSync.clearCaches()

Performs both [`clearLoadCache()`] and [`clearSearchCache()`].

## cosmiconfigOptions

Type: `Object`.

Possible options are documented below.

### searchPlaces

Type: `Array<string>`.
Default: See below.

An array of places that [`search()`] will check in each directory as it moves up the directory tree.
Each place is relative to the directory being searched, and the places are checked in the specified order.

**Default `searchPlaces`:**

```js
[
  'package.json',
  `.${moduleName}rc`,
  `.${moduleName}rc.json`,
  `.${moduleName}rc.yaml`,
  `.${moduleName}rc.yml`,
  `.${moduleName}rc.js`,
  `.${moduleName}rc.cjs`,
  `.config/${moduleName}rc`,
  `.config/${moduleName}rc.json`,
  `.config/${moduleName}rc.yaml`,
  `.config/${moduleName}rc.yml`,
  `.config/${moduleName}rc.js`,
  `.config/${moduleName}rc.cjs`,
  `${moduleName}.config.js`,
  `${moduleName}.config.cjs`,
]
```

Create your own array to search more, fewer, or altogether different places.

Every item in `searchPlaces` needs to have a loader in [`loaders`] that corresponds to its extension.
(Common extensions are covered by default loaders.)
Read more about [`loaders`] below.

`package.json` is a special value: When it is included in `searchPlaces`, Cosmiconfig will always parse it as JSON and load a property within it, not the whole file.
That property is defined with the [`packageProp`] option, and defaults to your module name.

Examples, with a module named `porgy`:

```js
// Disallow extensions on rc files:
[
  'package.json',
  '.porgyrc',
  'porgy.config.js'
]

// ESLint searches for configuration in these places:
[
  '.eslintrc.js',
  '.eslintrc.yaml',
  '.eslintrc.yml',
  '.eslintrc.json',
  '.eslintrc',
  'package.json'
]

// Babel looks in fewer places:
[
  'package.json',
  '.babelrc'
]

// Maybe you want to look for a wide variety of JS flavors:
[
  'porgy.config.js',
  'porgy.config.mjs',
  'porgy.config.ts',
  'porgy.config.coffee'
]
// ^^ You will need to designate custom loaders to tell
// Cosmiconfig how to handle these special JS flavors.

// Look within a .config/ subdirectory of every searched directory:
[
  'package.json',
  '.porgyrc',
  '.config/.porgyrc',
  '.porgyrc.json',
  '.config/.porgyrc.json'
]
```

### loaders

Type: `Object`.
Default: See below.

An object that maps extensions to the loader functions responsible for loading and parsing files with those extensions.

Cosmiconfig exposes its default loaders on a named export `defaultLoaders`.

**Default `loaders`:**

```js
const { defaultLoaders } = require('cosmiconfig');

console.log(Object.entries(defaultLoaders))
// [
//   [ '.cjs', [Function: loadJs] ],
//   [ '.js', [Function: loadJs] ],
//   [ '.json', [Function: loadJson] ],
//   [ '.yaml', [Function: loadYaml] ],
//   [ '.yml', [Function: loadYaml] ],
//   [ 'noExt', [Function: loadYaml] ]
// ]
```

(YAML is a superset of JSON; which means YAML parsers can parse JSON; which is how extensionless files can be either YAML *or* JSON with only one parser.)

**If you provide a `loaders` object, your object will be *merged* with the defaults.**
So you can override one or two without having to override them all.

**Keys in `loaders`** are extensions (starting with a period), or `noExt` to specify the loader for files *without* extensions, like `.myapprc`.

**Values in `loaders`** are a loader function (described below) whose values are loader functions.

**The most common use case for custom loaders value is to load extensionless `rc` files as strict JSON**, instead of JSON *or* YAML (the default).
To accomplish that, provide the following `loaders` value:

```js
{
  noExt: defaultLoaders['.json']
}
```

If you want to load files that are not handled by the loader functions Cosmiconfig exposes, you can write a custom loader function or use one from NPM if it exists.

**Third-party loaders:**

- [cosmiconfig-typescript-loader](https://github.com/codex-/cosmiconfig-typescript-loader)

**Use cases for custom loader function:**

- Allow configuration syntaxes that aren't handled by Cosmiconfig's defaults, like JSON5, INI, or XML.
- Allow ES2015 modules from `.mjs` configuration files.
- Parse JS files with Babel before deriving the configuration.

**Custom loader functions** have the following signature:

```js
// Sync
(filepath: string, content: string) => Object | null

// Async
(filepath: string, content: string) => Object | null | Promise<Object | null>
```

Cosmiconfig reads the file when it checks whether the file exists, so it will provide you with both the file's path and its content.
Do whatever you need to, and return either a configuration object or `null` (or, for async-only loaders, a Promise that resolves with one of those).
`null` indicates that no real configuration was found and the search should continue.

A few things to note:

- If you use a custom loader, be aware of whether it's sync or async: you cannot use async customer loaders with the sync API ([`cosmiconfigSync()`]).
- **Special JS syntax can also be handled by using a `require` hook**, because `defaultLoaders['.js']` just uses `require`.
  Whether you use custom loaders or a `require` hook is up to you.

Examples:

```js
// Allow JSON5 syntax:
{
  '.json': json5Loader
}

// Allow a special configuration syntax of your own creation:
{
  '.special': specialLoader
}

// Allow many flavors of JS, using custom loaders:
{
  '.mjs': esmLoader,
  '.ts': typeScriptLoader,
  '.coffee': coffeeScriptLoader
}

// Allow many flavors of JS but rely on require hooks:
{
  '.mjs': defaultLoaders['.js'],
  '.ts': defaultLoaders['.js'],
  '.coffee': defaultLoaders['.js']
}
```

### packageProp

Type: `string | Array<string>`.
Default: `` `${moduleName}` ``.

Name of the property in `package.json` to look for.

Use a period-delimited string or an array of strings to describe a path to nested properties.

For example, the value `'configs.myPackage'` or `['configs', 'myPackage']` will get you the `"myPackage"` value in a `package.json` like this:

```json
{
  "configs": {
    "myPackage": {..}
  }
}
```

If nested property names within the path include periods, you need to use an array of strings. For example, the value `['configs', 'foo.bar', 'baz']` will get you the `"baz"` value in a `package.json` like this:

```json
{
  "configs": {
    "foo.bar": {
      "baz": {..}
    }
  }
}
```

If a string includes period but corresponds to a top-level property name, it will not be interpreted as a period-delimited path. For example, the value `'one.two'` will get you the `"three"` value in a `package.json` like this:

```json
{
  "one.two": "three",
  "one": {
    "two": "four"
  }
}
```

### stopDir

Type: `string`.
Default: Absolute path to your home directory.

Directory where the search will stop.

### cache

Type: `boolean`.
Default: `true`.

If `false`, no caches will be used.
Read more about ["Caching"](#caching) below.

### transform

Type: `(Result) => Promise<Result> | Result`.

A function that transforms the parsed configuration. Receives the [result].

If using [`search()`] or [`load()`] \(which are async), the transform function can return the transformed result or return a Promise that resolves with the transformed result.
If using `cosmiconfigSync`, [`search()`] or [`load()`], the function must be synchronous and return the transformed result.

The reason you might use this option — instead of simply applying your transform function some other way — is that *the transformed result will be cached*. If your transformation involves additional filesystem I/O or other potentially slow processing, you can use this option to avoid repeating those steps every time a given configuration is searched or loaded.

### ignoreEmptySearchPlaces

Type: `boolean`.
Default: `true`.

By default, if [`search()`] encounters an empty file (containing nothing but whitespace) in one of the [`searchPlaces`], it will ignore the empty file and move on.
If you'd like to load empty configuration files, instead, set this option to `false`.

Why might you want to load empty configuration files?
If you want to throw an error, or if an empty configuration file means something to your program.

## Caching

As of v2, cosmiconfig uses caching to reduce the need for repetitious reading of the filesystem or expensive transforms. Every new cosmiconfig instance (created with `cosmiconfig()`) has its own caches.

To avoid or work around caching, you can do the following:

- Set the `cosmiconfig` option [`cache`] to `false`.
- Use the cache-clearing methods [`clearLoadCache()`], [`clearSearchCache()`], and [`clearCaches()`].
- Create separate instances of cosmiconfig (separate "explorers").

## Differences from [rc](https://github.com/dominictarr/rc)

[rc](https://github.com/dominictarr/rc) serves its focused purpose well. cosmiconfig differs in a few key ways — making it more useful for some projects, less useful for others:

- Looks for configuration in some different places: in a `package.json` property, an rc file, a `.config.js` file, and rc files with extensions.
- Built-in support for JSON, YAML, and CommonJS formats.
- Stops at the first configuration found, instead of finding all that can be found up the directory tree and merging them automatically.
- Options.
- Asynchronous by default (though can be run synchronously).

## Contributing & Development

Please note that this project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms.

And please do participate!

[result]: #result

[`load()`]: #explorerload

[`search()`]: #explorersearch

[`clearloadcache()`]: #explorerclearloadcache

[`clearsearchcache()`]: #explorerclearsearchcache

[`cosmiconfig()`]: #cosmiconfig

[`cosmiconfigSync()`]: #cosmiconfigsync

[`clearcaches()`]: #explorerclearcaches

[`packageprop`]: #packageprop

[`cache`]: #cache

[`stopdir`]: #stopdir

[`searchplaces`]: #searchplaces

[`loaders`]: #loaders

[`cosmiconfigoptions`]: #cosmiconfigoptions

[`explorerSync.search()`]: #explorersyncsearch

[`explorerSync.load()`]: #explorersyncload

[`explorer.search()`]: #explorersearch

[`explorer.load()`]: #explorerload


code:
import { ExplorerBase } from './ExplorerBase';
import { CosmiconfigResult, ExplorerOptions } from './types';
declare class Explorer extends ExplorerBase<ExplorerOptions> {
    constructor(options: ExplorerOptions);
    search(searchFrom?: string): Promise<CosmiconfigResult>;
    private searchFromDirectory;
    private searchDirectory;
    private loadSearchPlace;
    private loadFileContent;
    private createCosmiconfigResult;
    load(filepath: string): Promise<CosmiconfigResult>;
}
export { Explorer };
//# sourceMappingURL=Explorer.d.ts.map


code:
"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.Explorer = void 0;

var _path = _interopRequireDefault(require("path"));

var _ExplorerBase = require("./ExplorerBase");

var _readFile = require("./readFile");

var _cacheWrapper = require("./cacheWrapper");

var _getDirectory = require("./getDirectory");

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

class Explorer extends _ExplorerBase.ExplorerBase {
  constructor(options) {
    super(options);
  }

  async search(searchFrom = process.cwd()) {
    const startDirectory = await (0, _getDirectory.getDirectory)(searchFrom);
    const result = await this.searchFromDirectory(startDirectory);
    return result;
  }

  async searchFromDirectory(dir) {
    const absoluteDir = _path.default.resolve(process.cwd(), dir);

    const run = async () => {
      const result = await this.searchDirectory(absoluteDir);
      const nextDir = this.nextDirectoryToSearch(absoluteDir, result);

      if (nextDir) {
        return this.searchFromDirectory(nextDir);
      }

      const transformResult = await this.config.transform(result);
      return transformResult;
    };

    if (this.searchCache) {
      return (0, _cacheWrapper.cacheWrapper)(this.searchCache, absoluteDir, run);
    }

    return run();
  }

  async searchDirectory(dir) {
    for await (const place of this.config.searchPlaces) {
      const placeResult = await this.loadSearchPlace(dir, place);

      if (this.shouldSearchStopWithResult(placeResult) === true) {
        return placeResult;
      }
    } // config not found

    return null;
  }

  async loadSearchPlace(dir, place) {
    const filepath = _path.default.join(dir, place);

    const fileContents = await (0, _readFile.readFile)(filepath);
    const result = await this.createCosmiconfigResult(filepath, fileContents);
    return result;
  }

  async loadFileContent(filepath, content) {
    if (content === null) {
      return null;
    }

    if (content.trim() === '') {
      return undefined;
    }

    const loader = this.getLoaderEntryForFile(filepath);
    const loaderResult = await loader(filepath, content);
    return loaderResult;
  }

  async createCosmiconfigResult(filepath, content) {
    const fileContent = await this.loadFileContent(filepath, content);
    const result = this.loadedContentToCosmiconfigResult(filepath, fileContent);
    return result;
  }

  async load(filepath) {
    this.validateFilePath(filepath);

    const absoluteFilePath = _path.default.resolve(process.cwd(), filepath);

    const runLoad = async () => {
      const fileContents = await (0, _readFile.readFile)(absoluteFilePath, {
        throwNotFound: true
      });
      const result = await this.createCosmiconfigResult(absoluteFilePath, fileContents);
      const transformResult = await this.config.transform(result);
      return transformResult;
    };

    if (this.loadCache) {
      return (0, _cacheWrapper.cacheWrapper)(this.loadCache, absoluteFilePath, runLoad);
    }

    return runLoad();
  }

}

exports.Explorer = Explorer;
//# sourceMappingURL=Explorer.js.map


code:
import { CosmiconfigResult, ExplorerOptions, ExplorerOptionsSync, Cache, LoadedFileContent } from './types';
import { Loader } from './index';
declare class ExplorerBase<T extends ExplorerOptions | ExplorerOptionsSync> {
    protected readonly loadCache?: Cache;
    protected readonly searchCache?: Cache;
    protected readonly config: T;
    constructor(options: T);
    clearLoadCache(): void;
    clearSearchCache(): void;
    clearCaches(): void;
    private validateConfig;
    protected shouldSearchStopWithResult(result: CosmiconfigResult): boolean;
    protected nextDirectoryToSearch(currentDir: string, currentResult: CosmiconfigResult): string | null;
    private loadPackageProp;
    protected getLoaderEntryForFile(filepath: string): Loader;
    protected loadedContentToCosmiconfigResult(filepath: string, loadedContent: LoadedFileContent): CosmiconfigResult;
    protected validateFilePath(filepath: string): void;
}
declare function getExtensionDescription(filepath: string): string;
export { ExplorerBase, getExtensionDescription };
//# sourceMappingURL=ExplorerBase.d.ts.map


code:
"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.ExplorerBase = void 0;
exports.getExtensionDescription = getExtensionDescription;

var _path = _interopRequireDefault(require("path"));

var _loaders = require("./loaders");

var _getPropertyByPath = require("./getPropertyByPath");

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

class ExplorerBase {
  constructor(options) {
    if (options.cache === true) {
      this.loadCache = new Map();
      this.searchCache = new Map();
    }

    this.config = options;
    this.validateConfig();
  }

  clearLoadCache() {
    if (this.loadCache) {
      this.loadCache.clear();
    }
  }

  clearSearchCache() {
    if (this.searchCache) {
      this.searchCache.clear();
    }
  }

  clearCaches() {
    this.clearLoadCache();
    this.clearSearchCache();
  }

  validateConfig() {
    const config = this.config;
    config.searchPlaces.forEach(place => {
      const loaderKey = _path.default.extname(place) || 'noExt';
      const loader = config.loaders[loaderKey];

      if (!loader) {
        throw new Error(`No loader specified for ${getExtensionDescription(place)}, so searchPlaces item "${place}" is invalid`);
      }

      if (typeof loader !== 'function') {
        throw new Error(`loader for ${getExtensionDescription(place)} is not a function (type provided: "${typeof loader}"), so searchPlaces item "${place}" is invalid`);
      }
    });
  }

  shouldSearchStopWithResult(result) {
    if (result === null) return false;
    if (result.isEmpty && this.config.ignoreEmptySearchPlaces) return false;
    return true;
  }

  nextDirectoryToSearch(currentDir, currentResult) {
    if (this.shouldSearchStopWithResult(currentResult)) {
      return null;
    }

    const nextDir = nextDirUp(currentDir);

    if (nextDir === currentDir || currentDir === this.config.stopDir) {
      return null;
    }

    return nextDir;
  }

  loadPackageProp(filepath, content) {
    const parsedContent = _loaders.loaders.loadJson(filepath, content);

    const packagePropValue = (0, _getPropertyByPath.getPropertyByPath)(parsedContent, this.config.packageProp);
    return packagePropValue || null;
  }

  getLoaderEntryForFile(filepath) {
    if (_path.default.basename(filepath) === 'package.json') {
      const loader = this.loadPackageProp.bind(this);
      return loader;
    }

    const loaderKey = _path.default.extname(filepath) || 'noExt';
    const loader = this.config.loaders[loaderKey];

    if (!loader) {
      throw new Error(`No loader specified for ${getExtensionDescription(filepath)}`);
    }

    return loader;
  }

  loadedContentToCosmiconfigResult(filepath, loadedContent) {
    if (loadedContent === null) {
      return null;
    }

    if (loadedContent === undefined) {
      return {
        filepath,
        config: undefined,
        isEmpty: true
      };
    }

    return {
      config: loadedContent,
      filepath
    };
  }

  validateFilePath(filepath) {
    if (!filepath) {
      throw new Error('load must pass a non-empty string');
    }
  }

}

exports.ExplorerBase = ExplorerBase;

function nextDirUp(dir) {
  return _path.default.dirname(dir);
}

function getExtensionDescription(filepath) {
  const ext = _path.default.extname(filepath);

  return ext ? `extension "${ext}"` : 'files without extensions';
}
//# sourceMappingURL=ExplorerBase.js.map


code:
import { ExplorerBase } from './ExplorerBase';
import { CosmiconfigResult, ExplorerOptionsSync } from './types';
declare class ExplorerSync extends ExplorerBase<ExplorerOptionsSync> {
    constructor(options: ExplorerOptionsSync);
    searchSync(searchFrom?: string): CosmiconfigResult;
    private searchFromDirectorySync;
    private searchDirectorySync;
    private loadSearchPlaceSync;
    private loadFileContentSync;
    private createCosmiconfigResultSync;
    loadSync(filepath: string): CosmiconfigResult;
}
export { ExplorerSync };
//# sourceMappingURL=ExplorerSync.d.ts.map


code:
"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.ExplorerSync = void 0;

var _path = _interopRequireDefault(require("path"));

var _ExplorerBase = require("./ExplorerBase");

var _readFile = require("./readFile");

var _cacheWrapper = require("./cacheWrapper");

var _getDirectory = require("./getDirectory");

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

class ExplorerSync extends _ExplorerBase.ExplorerBase {
  constructor(options) {
    super(options);
  }

  searchSync(searchFrom = process.cwd()) {
    const startDirectory = (0, _getDirectory.getDirectorySync)(searchFrom);
    const result = this.searchFromDirectorySync(startDirectory);
    return result;
  }

  searchFromDirectorySync(dir) {
    const absoluteDir = _path.default.resolve(process.cwd(), dir);

    const run = () => {
      const result = this.searchDirectorySync(absoluteDir);
      const nextDir = this.nextDirectoryToSearch(absoluteDir, result);

      if (nextDir) {
        return this.searchFromDirectorySync(nextDir);
      }

      const transformResult = this.config.transform(result);
      return transformResult;
    };

    if (this.searchCache) {
      return (0, _cacheWrapper.cacheWrapperSync)(this.searchCache, absoluteDir, run);
    }

    return run();
  }

  searchDirectorySync(dir) {
    for (const place of this.config.searchPlaces) {
      const placeResult = this.loadSearchPlaceSync(dir, place);

      if (this.shouldSearchStopWithResult(placeResult) === true) {
        return placeResult;
      }
    } // config not found

    return null;
  }

  loadSearchPlaceSync(dir, place) {
    const filepath = _path.default.join(dir, place);

    const content = (0, _readFile.readFileSync)(filepath);
    const result = this.createCosmiconfigResultSync(filepath, content);
    return result;
  }

  loadFileContentSync(filepath, content) {
    if (content === null) {
      return null;
    }

    if (content.trim() === '') {
      return undefined;
    }

    const loader = this.getLoaderEntryForFile(filepath);
    const loaderResult = loader(filepath, content);
    return loaderResult;
  }

  createCosmiconfigResultSync(filepath, content) {
    const fileContent = this.loadFileContentSync(filepath, content);
    const result = this.loadedContentToCosmiconfigResult(filepath, fileContent);
    return result;
  }

  loadSync(filepath) {
    this.validateFilePath(filepath);

    const absoluteFilePath = _path.default.resolve(process.cwd(), filepath);

    const runLoadSync = () => {
      const content = (0, _readFile.readFileSync)(absoluteFilePath, {
        throwNotFound: true
      });
      const cosmiconfigResult = this.createCosmiconfigResultSync(absoluteFilePath, content);
      const transformResult = this.config.transform(cosmiconfigResult);
      return transformResult;
    };

    if (this.loadCache) {
      return (0, _cacheWrapper.cacheWrapperSync)(this.loadCache, absoluteFilePath, runLoadSync);
    }

    return runLoadSync();
  }

}

exports.ExplorerSync = ExplorerSync;
//# sourceMappingURL=ExplorerSync.js.map


code:
import { Cache, CosmiconfigResult } from './types';
declare function cacheWrapper(cache: Cache, key: string, fn: () => Promise<CosmiconfigResult>): Promise<CosmiconfigResult>;
declare function cacheWrapperSync(cache: Cache, key: string, fn: () => CosmiconfigResult): CosmiconfigResult;
export { cacheWrapper, cacheWrapperSync };
//# sourceMappingURL=cacheWrapper.d.ts.map


code:
"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.cacheWrapper = cacheWrapper;
exports.cacheWrapperSync = cacheWrapperSync;

async function cacheWrapper(cache, key, fn) {
  const cached = cache.get(key);

  if (cached !== undefined) {
    return cached;
  }

  const result = await fn();
  cache.set(key, result);
  return result;
}

function cacheWrapperSync(cache, key, fn) {
  const cached = cache.get(key);

  if (cached !== undefined) {
    return cached;
  }

  const result = fn();
  cache.set(key, result);
  return result;
}
//# sourceMappingURL=cacheWrapper.js.map


code:
declare function getDirectory(filepath: string): Promise<string>;
declare function getDirectorySync(filepath: string): string;
export { getDirectory, getDirectorySync };
//# sourceMappingURL=getDirectory.d.ts.map


code:
"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.getDirectory = getDirectory;
exports.getDirectorySync = getDirectorySync;

var _path = _interopRequireDefault(require("path"));

var _pathType = require("path-type");

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

async function getDirectory(filepath) {
  const filePathIsDirectory = await (0, _pathType.isDirectory)(filepath);

  if (filePathIsDirectory === true) {
    return filepath;
  }

  const directory = _path.default.dirname(filepath);

  return directory;
}

function getDirectorySync(filepath) {
  const filePathIsDirectory = (0, _pathType.isDirectorySync)(filepath);

  if (filePathIsDirectory === true) {
    return filepath;
  }

  const directory = _path.default.dirname(filepath);

  return directory;
}
//# sourceMappingURL=getDirectory.js.map


code:
declare function getPropertyByPath(source: {
    [key: string]: unknown;
}, path: string | Array<string>): unknown;
export { getPropertyByPath };
//# sourceMappingURL=getPropertyByPath.d.ts.map


code:
"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.getPropertyByPath = getPropertyByPath;

// Resolves property names or property paths defined with period-delimited
// strings or arrays of strings. Property names that are found on the source
// object are used directly (even if they include a period).
// Nested property names that include periods, within a path, are only
// understood in array paths.
function getPropertyByPath(source, path) {
  if (typeof path === 'string' && Object.prototype.hasOwnProperty.call(source, path)) {
    return source[path];
  }

  const parsedPath = typeof path === 'string' ? path.split('.') : path; // eslint-disable-next-line @typescript-eslint/no-explicit-any

  return parsedPath.reduce((previous, key) => {
    if (previous === undefined) {
      return previous;
    }

    return previous[key];
  }, source);
}
//# sourceMappingURL=getPropertyByPath.js.map


code:
import { Config, CosmiconfigResult, Loaders, LoadersSync } from './types';
declare type LoaderResult = Config | null;
export declare type Loader = ((filepath: string, content: string) => Promise<LoaderResult>) | LoaderSync;
export declare type LoaderSync = (filepath: string, content: string) => LoaderResult;
export declare type Transform = ((CosmiconfigResult: CosmiconfigResult) => Promise<CosmiconfigResult>) | TransformSync;
export declare type TransformSync = (CosmiconfigResult: CosmiconfigResult) => CosmiconfigResult;
interface OptionsBase {
    packageProp?: string | Array<string>;
    searchPlaces?: Array<string>;
    ignoreEmptySearchPlaces?: boolean;
    stopDir?: string;
    cache?: boolean;
}
export interface Options extends OptionsBase {
    loaders?: Loaders;
    transform?: Transform;
}
export interface OptionsSync extends OptionsBase {
    loaders?: LoadersSync;
    transform?: TransformSync;
}
declare function cosmiconfig(moduleName: string, options?: Options): {
    readonly search: (searchFrom?: string) => Promise<CosmiconfigResult>;
    readonly load: (filepath: string) => Promise<CosmiconfigResult>;
    readonly clearLoadCache: () => void;
    readonly clearSearchCache: () => void;
    readonly clearCaches: () => void;
};
declare function cosmiconfigSync(moduleName: string, options?: OptionsSync): {
    readonly search: (searchFrom?: string) => CosmiconfigResult;
    readonly load: (filepath: string) => CosmiconfigResult;
    readonly clearLoadCache: () => void;
    readonly clearSearchCache: () => void;
    readonly clearCaches: () => void;
};
declare const defaultLoaders: Readonly<{
    readonly '.cjs': LoaderSync;
    readonly '.js': LoaderSync;
    readonly '.json': LoaderSync;
    readonly '.yaml': LoaderSync;
    readonly '.yml': LoaderSync;
    readonly noExt: LoaderSync;
}>;
export { cosmiconfig, cosmiconfigSync, defaultLoaders };
//# sourceMappingURL=index.d.ts.map


code:
"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.cosmiconfig = cosmiconfig;
exports.cosmiconfigSync = cosmiconfigSync;
exports.defaultLoaders = void 0;

var _os = _interopRequireDefault(require("os"));

var _Explorer = require("./Explorer");

var _ExplorerSync = require("./ExplorerSync");

var _loaders = require("./loaders");

var _types = require("./types");

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
function cosmiconfig(moduleName, options = {}) {
  const normalizedOptions = normalizeOptions(moduleName, options);
  const explorer = new _Explorer.Explorer(normalizedOptions);
  return {
    search: explorer.search.bind(explorer),
    load: explorer.load.bind(explorer),
    clearLoadCache: explorer.clearLoadCache.bind(explorer),
    clearSearchCache: explorer.clearSearchCache.bind(explorer),
    clearCaches: explorer.clearCaches.bind(explorer)
  };
} // eslint-disable-next-line @typescript-eslint/explicit-function-return-type

function cosmiconfigSync(moduleName, options = {}) {
  const normalizedOptions = normalizeOptions(moduleName, options);
  const explorerSync = new _ExplorerSync.ExplorerSync(normalizedOptions);
  return {
    search: explorerSync.searchSync.bind(explorerSync),
    load: explorerSync.loadSync.bind(explorerSync),
    clearLoadCache: explorerSync.clearLoadCache.bind(explorerSync),
    clearSearchCache: explorerSync.clearSearchCache.bind(explorerSync),
    clearCaches: explorerSync.clearCaches.bind(explorerSync)
  };
} // do not allow mutation of default loaders. Make sure it is set inside options

const defaultLoaders = Object.freeze({
  '.cjs': _loaders.loaders.loadJs,
  '.js': _loaders.loaders.loadJs,
  '.json': _loaders.loaders.loadJson,
  '.yaml': _loaders.loaders.loadYaml,
  '.yml': _loaders.loaders.loadYaml,
  noExt: _loaders.loaders.loadYaml
});
exports.defaultLoaders = defaultLoaders;

const identity = function identity(x) {
  return x;
};

function normalizeOptions(moduleName, options) {
  const defaults = {
    packageProp: moduleName,
    searchPlaces: ['package.json', `.${moduleName}rc`, `.${moduleName}rc.json`, `.${moduleName}rc.yaml`, `.${moduleName}rc.yml`, `.${moduleName}rc.js`, `.${moduleName}rc.cjs`, `.config/${moduleName}rc`, `.config/${moduleName}rc.json`, `.config/${moduleName}rc.yaml`, `.config/${moduleName}rc.yml`, `.config/${moduleName}rc.js`, `.config/${moduleName}rc.cjs`, `${moduleName}.config.js`, `${moduleName}.config.cjs`],
    ignoreEmptySearchPlaces: true,
    stopDir: _os.default.homedir(),
    cache: true,
    transform: identity,
    loaders: defaultLoaders
  };
  const normalizedOptions = { ...defaults,
    ...options,
    loaders: { ...defaults.loaders,
      ...options.loaders
    }
  };
  return normalizedOptions;
}
//# sourceMappingURL=index.js.map


code:
import { LoadersSync } from './types';
declare const loaders: LoadersSync;
export { loaders };
//# sourceMappingURL=loaders.d.ts.map