Index: imaps-frontend/node_modules/es-abstract/2020/AbstractEqualityComparison.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/AbstractEqualityComparison.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/AbstractEqualityComparison.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -7,12 +7,11 @@
 var Type = require('./Type');
 
-var isNaN = require('../helpers/isNaN');
+var isNaN = require('math-intrinsics/isNaN');
+var isObject = require('../helpers/isObject');
 
 // https://262.ecma-international.org/11.0/#sec-abstract-equality-comparison
 
 module.exports = function AbstractEqualityComparison(x, y) {
-	var xType = Type(x);
-	var yType = Type(y);
-	if (xType === yType) {
+	if (Type(x) === Type(y)) {
 		return StrictEqualityComparison(x, y);
 	}
@@ -20,11 +19,11 @@
 		return true;
 	}
-	if (xType === 'Number' && yType === 'String') {
+	if (typeof x === 'number' && typeof y === 'string') {
 		return AbstractEqualityComparison(x, ToNumber(y));
 	}
-	if (xType === 'String' && yType === 'Number') {
+	if (typeof x === 'string' && typeof y === 'number') {
 		return AbstractEqualityComparison(ToNumber(x), y);
 	}
-	if (xType === 'BigInt' && yType === 'String') {
+	if (typeof x === 'bigint' && typeof y === 'string') {
 		var n = StringToBigInt(y);
 		if (isNaN(n)) {
@@ -33,20 +32,20 @@
 		return AbstractEqualityComparison(x, n);
 	}
-	if (xType === 'String' && yType === 'BigInt') {
+	if (typeof x === 'string' && typeof y === 'bigint') {
 		return AbstractEqualityComparison(y, x);
 	}
-	if (xType === 'Boolean') {
+	if (typeof x === 'boolean') {
 		return AbstractEqualityComparison(ToNumber(x), y);
 	}
-	if (yType === 'Boolean') {
+	if (typeof y === 'boolean') {
 		return AbstractEqualityComparison(x, ToNumber(y));
 	}
-	if ((xType === 'String' || xType === 'Number' || xType === 'BigInt' || xType === 'Symbol') && yType === 'Object') {
+	if ((typeof x === 'string' || typeof x === 'number' || typeof x === 'bigint' || typeof x === 'symbol') && isObject(y)) {
 		return AbstractEqualityComparison(x, ToPrimitive(y));
 	}
-	if (xType === 'Object' && (yType === 'String' || yType === 'Number' || yType === 'BigInt' || yType === 'Symbol')) {
+	if (isObject(x) && (typeof y === 'string' || typeof y === 'number' || typeof y === 'bigint' || typeof y === 'symbol')) {
 		return AbstractEqualityComparison(ToPrimitive(x), y);
 	}
-	if ((xType === 'BigInt' && yType === 'Number') || (xType === 'Number' && yType === 'BigInt')) {
+	if ((typeof x === 'bigint' && typeof y === 'number') || (typeof x === 'number' && typeof y === 'bigint')) {
 		if (isNaN(x) || isNaN(y) || x === Infinity || y === Infinity || x === -Infinity || y === -Infinity) {
 			return false;
Index: imaps-frontend/node_modules/es-abstract/2020/AbstractRelationalComparison.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/AbstractRelationalComparison.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/AbstractRelationalComparison.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -6,5 +6,5 @@
 var $TypeError = require('es-errors/type');
 
-var $isNaN = require('../helpers/isNaN');
+var $isNaN = require('math-intrinsics/isNaN');
 
 var IsStringPrefix = require('./IsStringPrefix');
@@ -43,9 +43,7 @@
 	}
 
-	var pxType = Type(px);
-	var pyType = Type(py);
 	var nx;
 	var ny;
-	if (pxType === 'BigInt' && pyType === 'String') {
+	if (typeof px === 'bigint' && typeof py === 'string') {
 		ny = StringToBigInt(py);
 		if ($isNaN(ny)) {
@@ -54,5 +52,5 @@
 		return BigIntLessThan(px, ny);
 	}
-	if (pxType === 'String' && pyType === 'BigInt') {
+	if (typeof px === 'string' && typeof py === 'bigint') {
 		nx = StringToBigInt(px);
 		if ($isNaN(nx)) {
@@ -64,7 +62,6 @@
 	nx = ToNumeric(px);
 	ny = ToNumeric(py);
-	var nxType = Type(nx);
-	if (nxType === Type(ny)) {
-		return nxType === 'Number' ? NumberLessThan(nx, ny) : BigIntLessThan(nx, ny);
+	if (Type(nx) === Type(ny)) {
+		return typeof nx === 'number' ? NumberLessThan(nx, ny) : BigIntLessThan(nx, ny);
 	}
 
Index: imaps-frontend/node_modules/es-abstract/2020/AddEntriesFromIterable.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/AddEntriesFromIterable.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/AddEntriesFromIterable.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -13,5 +13,6 @@
 var IteratorValue = require('./IteratorValue');
 var ThrowCompletion = require('./ThrowCompletion');
-var Type = require('./Type');
+
+var isObject = require('../helpers/isObject');
 
 // https://262.ecma-international.org/10.0/#sec-add-entries-from-iterable
@@ -31,5 +32,5 @@
 		}
 		var nextItem = IteratorValue(next);
-		if (Type(nextItem) !== 'Object') {
+		if (!isObject(nextItem)) {
 			var error = ThrowCompletion(new $TypeError('iterator next must return an Object, got ' + inspect(nextItem)));
 			return IteratorClose(iteratorRecord, error);
Index: imaps-frontend/node_modules/es-abstract/2020/AdvanceStringIndex.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/AdvanceStringIndex.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/AdvanceStringIndex.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -3,8 +3,7 @@
 var CodePointAt = require('./CodePointAt');
 
-var isInteger = require('../helpers/isInteger');
-var MAX_SAFE_INTEGER = require('../helpers/maxSafeInteger');
-
 var $TypeError = require('es-errors/type');
+var isInteger = require('math-intrinsics/isInteger');
+var MAX_SAFE_INTEGER = require('math-intrinsics/constants/maxSafeInteger');
 
 // https://262.ecma-international.org/11.0/#sec-advancestringindex
Index: imaps-frontend/node_modules/es-abstract/2020/ArrayCreate.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/ArrayCreate.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/ArrayCreate.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -7,19 +7,7 @@
 var $SyntaxError = require('es-errors/syntax');
 var $TypeError = require('es-errors/type');
-
-var isInteger = require('../helpers/isInteger');
-
-var hasProto = require('has-proto')();
-
-var MAX_ARRAY_LENGTH = Math.pow(2, 32) - 1;
-
-var $setProto = GetIntrinsic('%Object.setPrototypeOf%', true) || (
-	hasProto
-		? function (O, proto) {
-			O.__proto__ = proto; // eslint-disable-line no-proto, no-param-reassign
-			return O;
-		}
-		: null
-);
+var isInteger = require('math-intrinsics/isInteger');
+var MAX_ARRAY_LENGTH = require('math-intrinsics/constants/maxArrayLength');
+var $setProto = require('set-proto');
 
 // https://262.ecma-international.org/6.0/#sec-arraycreate
Index: imaps-frontend/node_modules/es-abstract/2020/ArraySpeciesCreate.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/ArraySpeciesCreate.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/ArraySpeciesCreate.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -6,11 +6,11 @@
 var $species = GetIntrinsic('%Symbol.species%', true);
 var $TypeError = require('es-errors/type');
+var isInteger = require('math-intrinsics/isInteger');
 
 var Get = require('./Get');
 var IsArray = require('./IsArray');
 var IsConstructor = require('./IsConstructor');
-var Type = require('./Type');
 
-var isInteger = require('../helpers/isInteger');
+var isObject = require('../helpers/isObject');
 
 // https://262.ecma-international.org/6.0/#sec-arrayspeciescreate
@@ -30,5 +30,5 @@
 		// 	Object.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(Array))) === null ?
 		// }
-		if ($species && Type(C) === 'Object') {
+		if ($species && isObject(C)) {
 			C = Get(C, $species);
 			if (C === null) {
Index: imaps-frontend/node_modules/es-abstract/2020/AsyncFromSyncIteratorContinuation.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/AsyncFromSyncIteratorContinuation.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/AsyncFromSyncIteratorContinuation.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -7,5 +7,5 @@
 var $Promise = GetIntrinsic('%Promise%', true);
 
-var callBound = require('call-bind/callBound');
+var callBound = require('call-bound');
 
 var CreateIterResultObject = require('./CreateIterResultObject');
@@ -13,5 +13,6 @@
 var IteratorValue = require('./IteratorValue');
 var PromiseResolve = require('./PromiseResolve');
-var Type = require('./Type');
+
+var isObject = require('../helpers/isObject');
 
 var $then = callBound('Promise.prototype.then', true);
@@ -20,5 +21,5 @@
 
 module.exports = function AsyncFromSyncIteratorContinuation(result) {
-	if (Type(result) !== 'Object') {
+	if (!isObject(result)) {
 		throw new $TypeError('Assertion failed: Type(O) is not Object');
 	}
Index: imaps-frontend/node_modules/es-abstract/2020/AsyncIteratorClose.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/AsyncIteratorClose.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/AsyncIteratorClose.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -10,9 +10,9 @@
 var CompletionRecord = require('./CompletionRecord');
 var GetMethod = require('./GetMethod');
-var Type = require('./Type');
 
+var isObject = require('../helpers/isObject');
 var isIteratorRecord = require('../helpers/records/iterator-record-2023');
 
-var callBound = require('call-bind/callBound');
+var callBound = require('call-bound');
 
 var $then = callBound('Promise.prototype.then', true);
@@ -47,5 +47,5 @@
 				}),
 				function (innerResult) {
-					if (Type(innerResult) !== 'Object') {
+					if (!isObject(innerResult)) {
 						throw new $TypeError('`innerResult` must be an Object'); // step 10
 					}
Index: imaps-frontend/node_modules/es-abstract/2020/BigIntBitwiseOp.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/BigIntBitwiseOp.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/BigIntBitwiseOp.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -3,5 +3,5 @@
 var $TypeError = require('es-errors/type');
 // var $BigInt = GetIntrinsic('%BigInt%', true);
-// var $pow = GetIntrinsic('%Math.pow%');
+// var $pow = require('math-intrinsics/pow');
 
 // var BinaryAnd = require('./BinaryAnd');
Index: imaps-frontend/node_modules/es-abstract/2020/Call.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/Call.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/Call.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -2,5 +2,5 @@
 
 var GetIntrinsic = require('get-intrinsic');
-var callBound = require('call-bind/callBound');
+var callBound = require('call-bound');
 
 var $TypeError = require('es-errors/type');
Index: imaps-frontend/node_modules/es-abstract/2020/Canonicalize.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/Canonicalize.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/Canonicalize.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -3,5 +3,5 @@
 var $TypeError = require('es-errors/type');
 
-var callBound = require('call-bind/callBound');
+var callBound = require('call-bound');
 var hasOwn = require('hasown');
 
Index: imaps-frontend/node_modules/es-abstract/2020/CharacterRange.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/CharacterRange.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/CharacterRange.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -2,5 +2,5 @@
 
 var GetIntrinsic = require('get-intrinsic');
-var callBound = require('call-bind/callBound');
+var callBound = require('call-bound');
 
 var $fromCharCode = GetIntrinsic('%String.fromCharCode%');
Index: imaps-frontend/node_modules/es-abstract/2020/CodePointAt.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/CodePointAt.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/CodePointAt.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -2,5 +2,5 @@
 
 var $TypeError = require('es-errors/type');
-var callBound = require('call-bind/callBound');
+var callBound = require('call-bound');
 var isLeadingSurrogate = require('../helpers/isLeadingSurrogate');
 var isTrailingSurrogate = require('../helpers/isTrailingSurrogate');
Index: imaps-frontend/node_modules/es-abstract/2020/CopyDataProperties.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/CopyDataProperties.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/CopyDataProperties.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -3,8 +3,8 @@
 var $TypeError = require('es-errors/type');
 
-var callBound = require('call-bind/callBound');
+var callBound = require('call-bound');
 var forEach = require('../helpers/forEach');
 var every = require('../helpers/every');
-var OwnPropertyKeys = require('../helpers/OwnPropertyKeys');
+var OwnPropertyKeys = require('own-keys');
 
 var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable');
@@ -14,18 +14,19 @@
 var IsArray = require('./IsArray');
 var IsInteger = require('./IsInteger');
-var IsPropertyKey = require('./IsPropertyKey');
+var isPropertyKey = require('../helpers/isPropertyKey');
 var SameValue = require('./SameValue');
 var ToNumber = require('./ToNumber');
 var ToObject = require('./ToObject');
-var Type = require('./Type');
+
+var isObject = require('../helpers/isObject');
 
 // https://262.ecma-international.org/11.0/#sec-copydataproperties
 
 module.exports = function CopyDataProperties(target, source, excludedItems) {
-	if (Type(target) !== 'Object') {
+	if (!isObject(target)) {
 		throw new $TypeError('Assertion failed: "target" must be an Object');
 	}
 
-	if (!IsArray(excludedItems) || !every(excludedItems, IsPropertyKey)) {
+	if (!IsArray(excludedItems) || !every(excludedItems, isPropertyKey)) {
 		throw new $TypeError('Assertion failed: "excludedItems" must be a List of Property Keys');
 	}
Index: imaps-frontend/node_modules/es-abstract/2020/CreateAsyncFromSyncIterator.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/CreateAsyncFromSyncIterator.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/CreateAsyncFromSyncIterator.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -14,6 +14,6 @@
 var IteratorNext = require('./IteratorNext');
 var OrdinaryObjectCreate = require('./OrdinaryObjectCreate');
-var Type = require('./Type');
 
+var isObject = require('../helpers/isObject');
 var isIteratorRecord = require('../helpers/records/iterator-record-2023');
 
@@ -70,5 +70,5 @@
 				result = Call(iteratorReturn, syncIterator); // step 9.a
 			}
-			if (Type(result) !== 'Object') { // step 11
+			if (!isObject(result)) { // step 11
 				Call(reject, undefined, [new $TypeError('Iterator `return` method returned a non-object value.')]); // step 11.a
 				return;
@@ -106,5 +106,5 @@
 				result = Call(throwMethod, syncIterator); // step 9.a
 			}
-			if (Type(result) !== 'Object') { // step 11
+			if (!isObject(result)) { // step 11
 				Call(reject, undefined, [new $TypeError('Iterator `throw` method returned a non-object value.')]); // step 11.a
 				return;
Index: imaps-frontend/node_modules/es-abstract/2020/CreateDataProperty.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/CreateDataProperty.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/CreateDataProperty.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -3,16 +3,17 @@
 var $TypeError = require('es-errors/type');
 
-var IsPropertyKey = require('./IsPropertyKey');
+var isPropertyKey = require('../helpers/isPropertyKey');
 var OrdinaryDefineOwnProperty = require('./OrdinaryDefineOwnProperty');
-var Type = require('./Type');
+
+var isObject = require('../helpers/isObject');
 
 // https://262.ecma-international.org/6.0/#sec-createdataproperty
 
 module.exports = function CreateDataProperty(O, P, V) {
-	if (Type(O) !== 'Object') {
+	if (!isObject(O)) {
 		throw new $TypeError('Assertion failed: Type(O) is not Object');
 	}
-	if (!IsPropertyKey(P)) {
-		throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
+	if (!isPropertyKey(P)) {
+		throw new $TypeError('Assertion failed: P is not a Property Key');
 	}
 	var newDesc = {
Index: imaps-frontend/node_modules/es-abstract/2020/CreateDataPropertyOrThrow.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/CreateDataPropertyOrThrow.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/CreateDataPropertyOrThrow.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -4,15 +4,16 @@
 
 var CreateDataProperty = require('./CreateDataProperty');
-var IsPropertyKey = require('./IsPropertyKey');
-var Type = require('./Type');
+
+var isObject = require('../helpers/isObject');
+var isPropertyKey = require('../helpers/isPropertyKey');
 
 // // https://262.ecma-international.org/6.0/#sec-createdatapropertyorthrow
 
 module.exports = function CreateDataPropertyOrThrow(O, P, V) {
-	if (Type(O) !== 'Object') {
+	if (!isObject(O)) {
 		throw new $TypeError('Assertion failed: Type(O) is not Object');
 	}
-	if (!IsPropertyKey(P)) {
-		throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
+	if (!isPropertyKey(P)) {
+		throw new $TypeError('Assertion failed: P is not a Property Key');
 	}
 	var success = CreateDataProperty(O, P, V);
Index: imaps-frontend/node_modules/es-abstract/2020/CreateHTML.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/CreateHTML.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/CreateHTML.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -3,5 +3,5 @@
 var $TypeError = require('es-errors/type');
 
-var callBound = require('call-bind/callBound');
+var callBound = require('call-bound');
 
 var $replace = callBound('String.prototype.replace');
Index: imaps-frontend/node_modules/es-abstract/2020/CreateListFromArrayLike.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/CreateListFromArrayLike.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/CreateListFromArrayLike.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -1,5 +1,5 @@
 'use strict';
 
-var callBound = require('call-bind/callBound');
+var callBound = require('call-bound');
 
 var $TypeError = require('es-errors/type');
@@ -13,8 +13,11 @@
 var Type = require('./Type');
 
+var isObject = require('../helpers/isObject');
+
 var defaultElementTypes = ['Undefined', 'Null', 'Boolean', 'String', 'Symbol', 'Number', 'BigInt', 'Object'];
 
 // https://262.ecma-international.org/11.0/#sec-createlistfromarraylike
 
+/** @type {(obj: object, elementTypes?: typeof defaultElementTypes) => unknown[]} */
 module.exports = function CreateListFromArrayLike(obj) {
 	var elementTypes = arguments.length > 1
@@ -22,5 +25,5 @@
 		: defaultElementTypes;
 
-	if (Type(obj) !== 'Object') {
+	if (!isObject(obj)) {
 		throw new $TypeError('Assertion failed: `obj` must be an Object');
 	}
@@ -29,4 +32,5 @@
 	}
 	var len = LengthOfArrayLike(obj);
+	/** @type {(typeof elementTypes)[]} */
 	var list = [];
 	var index = 0;
Index: imaps-frontend/node_modules/es-abstract/2020/CreateMethodProperty.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/CreateMethodProperty.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/CreateMethodProperty.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -7,17 +7,18 @@
 var FromPropertyDescriptor = require('./FromPropertyDescriptor');
 var IsDataDescriptor = require('./IsDataDescriptor');
-var IsPropertyKey = require('./IsPropertyKey');
+var isPropertyKey = require('../helpers/isPropertyKey');
 var SameValue = require('./SameValue');
-var Type = require('./Type');
+
+var isObject = require('../helpers/isObject');
 
 // https://262.ecma-international.org/6.0/#sec-createmethodproperty
 
 module.exports = function CreateMethodProperty(O, P, V) {
-	if (Type(O) !== 'Object') {
+	if (!isObject(O)) {
 		throw new $TypeError('Assertion failed: Type(O) is not Object');
 	}
 
-	if (!IsPropertyKey(P)) {
-		throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
+	if (!isPropertyKey(P)) {
+		throw new $TypeError('Assertion failed: P is not a Property Key');
 	}
 
Index: imaps-frontend/node_modules/es-abstract/2020/CreateRegExpStringIterator.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/CreateRegExpStringIterator.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/CreateRegExpStringIterator.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -16,5 +16,6 @@
 var ToLength = require('./ToLength');
 var ToString = require('./ToString');
-var Type = require('./Type');
+
+var isObject = require('../helpers/isObject');
 
 var SLOT = require('internal-slot');
@@ -44,5 +45,5 @@
 var RegExpStringIteratorNext = function next() {
 	var O = this; // eslint-disable-line no-invalid-this
-	if (Type(O) !== 'Object') {
+	if (!isObject(O)) {
 		throw new $TypeError('receiver must be an object');
 	}
Index: imaps-frontend/node_modules/es-abstract/2020/DateString.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/DateString.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/DateString.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -6,5 +6,5 @@
 var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
 
-var $isNaN = require('../helpers/isNaN');
+var $isNaN = require('math-intrinsics/isNaN');
 var padTimeComponent = require('../helpers/padTimeComponent');
 
Index: imaps-frontend/node_modules/es-abstract/2020/DefinePropertyOrThrow.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/DefinePropertyOrThrow.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/DefinePropertyOrThrow.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -8,18 +8,19 @@
 var FromPropertyDescriptor = require('./FromPropertyDescriptor');
 var IsDataDescriptor = require('./IsDataDescriptor');
-var IsPropertyKey = require('./IsPropertyKey');
+var isPropertyKey = require('../helpers/isPropertyKey');
 var SameValue = require('./SameValue');
 var ToPropertyDescriptor = require('./ToPropertyDescriptor');
-var Type = require('./Type');
+
+var isObject = require('../helpers/isObject');
 
 // https://262.ecma-international.org/6.0/#sec-definepropertyorthrow
 
 module.exports = function DefinePropertyOrThrow(O, P, desc) {
-	if (Type(O) !== 'Object') {
+	if (!isObject(O)) {
 		throw new $TypeError('Assertion failed: Type(O) is not Object');
 	}
 
-	if (!IsPropertyKey(P)) {
-		throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
+	if (!isPropertyKey(P)) {
+		throw new $TypeError('Assertion failed: P is not a Property Key');
 	}
 
Index: imaps-frontend/node_modules/es-abstract/2020/DeletePropertyOrThrow.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/DeletePropertyOrThrow.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/DeletePropertyOrThrow.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -3,16 +3,16 @@
 var $TypeError = require('es-errors/type');
 
-var IsPropertyKey = require('./IsPropertyKey');
-var Type = require('./Type');
+var isObject = require('../helpers/isObject');
+var isPropertyKey = require('../helpers/isPropertyKey');
 
 // https://262.ecma-international.org/6.0/#sec-deletepropertyorthrow
 
 module.exports = function DeletePropertyOrThrow(O, P) {
-	if (Type(O) !== 'Object') {
+	if (!isObject(O)) {
 		throw new $TypeError('Assertion failed: Type(O) is not Object');
 	}
 
-	if (!IsPropertyKey(P)) {
-		throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
+	if (!isPropertyKey(P)) {
+		throw new $TypeError('Assertion failed: P is not a Property Key');
 	}
 
Index: imaps-frontend/node_modules/es-abstract/2020/EnumerableOwnPropertyNames.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/EnumerableOwnPropertyNames.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/EnumerableOwnPropertyNames.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -1,25 +1,19 @@
 'use strict';
-
-var GetIntrinsic = require('get-intrinsic');
 
 var $TypeError = require('es-errors/type');
 
 var objectKeys = require('object-keys');
-
-var callBound = require('call-bind/callBound');
-
-var callBind = require('call-bind');
+var safePushApply = require('safe-push-apply');
+var callBound = require('call-bound');
 
 var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable');
-var $pushApply = callBind.apply(GetIntrinsic('%Array.prototype.push%'));
 
 var forEach = require('../helpers/forEach');
-
-var Type = require('./Type');
+var isObject = require('../helpers/isObject');
 
 // https://262.ecma-international.org/8.0/#sec-enumerableownproperties
 
 module.exports = function EnumerableOwnPropertyNames(O, kind) {
-	if (Type(O) !== 'Object') {
+	if (!isObject(O)) {
 		throw new $TypeError('Assertion failed: Type(O) is not Object');
 	}
@@ -33,5 +27,5 @@
 		forEach(keys, function (key) {
 			if ($isEnumerable(O, key)) {
-				$pushApply(results, [
+				safePushApply(results, [
 					kind === 'value' ? O[key] : [key, O[key]]
 				]);
Index: imaps-frontend/node_modules/es-abstract/2020/FlattenIntoArray.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/FlattenIntoArray.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/FlattenIntoArray.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -3,5 +3,5 @@
 var $TypeError = require('es-errors/type');
 
-var MAX_SAFE_INTEGER = require('../helpers/maxSafeInteger');
+var MAX_SAFE_INTEGER = require('math-intrinsics/constants/maxSafeInteger');
 
 var Call = require('./Call');
Index: imaps-frontend/node_modules/es-abstract/2020/Get.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/Get.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/Get.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -5,6 +5,6 @@
 var inspect = require('object-inspect');
 
-var IsPropertyKey = require('./IsPropertyKey');
-var Type = require('./Type');
+var isObject = require('../helpers/isObject');
+var isPropertyKey = require('../helpers/isPropertyKey');
 
 // https://262.ecma-international.org/6.0/#sec-get-o-p
@@ -12,10 +12,10 @@
 module.exports = function Get(O, P) {
 	// 7.3.1.1
-	if (Type(O) !== 'Object') {
+	if (!isObject(O)) {
 		throw new $TypeError('Assertion failed: Type(O) is not Object');
 	}
 	// 7.3.1.2
-	if (!IsPropertyKey(P)) {
-		throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true, got ' + inspect(P));
+	if (!isPropertyKey(P)) {
+		throw new $TypeError('Assertion failed: P is not a Property Key, got ' + inspect(P));
 	}
 	// 7.3.1.3
Index: imaps-frontend/node_modules/es-abstract/2020/GetIterator.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/GetIterator.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/GetIterator.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -15,5 +15,12 @@
 var GetMethod = require('./GetMethod');
 var IsArray = require('./IsArray');
-var Type = require('./Type');
+
+var isObject = require('../helpers/isObject');
+
+var ES = {
+	AdvanceStringIndex: AdvanceStringIndex,
+	GetMethod: GetMethod,
+	IsArray: IsArray
+};
 
 // https://262.ecma-international.org/11.0/#sec-getiterator
@@ -38,16 +45,9 @@
 			}
 		} else {
-			actualMethod = getIteratorMethod(
-				{
-					AdvanceStringIndex: AdvanceStringIndex,
-					GetMethod: GetMethod,
-					IsArray: IsArray
-				},
-				obj
-			);
+			actualMethod = getIteratorMethod(ES, obj);
 		}
 	}
 	var iterator = Call(actualMethod, obj);
-	if (Type(iterator) !== 'Object') {
+	if (!isObject(iterator)) {
 		throw new $TypeError('iterator must return an object');
 	}
Index: imaps-frontend/node_modules/es-abstract/2020/GetMethod.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/GetMethod.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/GetMethod.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -5,5 +5,5 @@
 var GetV = require('./GetV');
 var IsCallable = require('./IsCallable');
-var IsPropertyKey = require('./IsPropertyKey');
+var isPropertyKey = require('../helpers/isPropertyKey');
 
 var inspect = require('object-inspect');
@@ -13,6 +13,6 @@
 module.exports = function GetMethod(O, P) {
 	// 7.3.9.1
-	if (!IsPropertyKey(P)) {
-		throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
+	if (!isPropertyKey(P)) {
+		throw new $TypeError('Assertion failed: P is not a Property Key');
 	}
 
Index: imaps-frontend/node_modules/es-abstract/2020/GetOwnPropertyKeys.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/GetOwnPropertyKeys.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/GetOwnPropertyKeys.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -11,10 +11,10 @@
 var keys = require('object-keys');
 
-var esType = require('./Type');
+var isObject = require('../helpers/isObject');
 
 // https://262.ecma-international.org/6.0/#sec-getownpropertykeys
 
 module.exports = function GetOwnPropertyKeys(O, Type) {
-	if (esType(O) !== 'Object') {
+	if (!isObject(O)) {
 		throw new $TypeError('Assertion failed: Type(O) is not Object');
 	}
Index: imaps-frontend/node_modules/es-abstract/2020/GetPrototypeFromConstructor.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/GetPrototypeFromConstructor.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/GetPrototypeFromConstructor.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -9,5 +9,6 @@
 var Get = require('./Get');
 var IsConstructor = require('./IsConstructor');
-var Type = require('./Type');
+
+var isObject = require('../helpers/isObject');
 
 // https://262.ecma-international.org/6.0/#sec-getprototypefromconstructor
@@ -15,5 +16,5 @@
 module.exports = function GetPrototypeFromConstructor(constructor, intrinsicDefaultProto) {
 	var intrinsic = GetIntrinsic(intrinsicDefaultProto); // throws if not a valid intrinsic
-	if (Type(intrinsic) !== 'Object') {
+	if (!isObject(intrinsic)) {
 		throw new $TypeError('intrinsicDefaultProto must be an object');
 	}
@@ -22,5 +23,5 @@
 	}
 	var proto = Get(constructor, 'prototype');
-	if (Type(proto) !== 'Object') {
+	if (!isObject(proto)) {
 		if (!(constructor instanceof $Function)) {
 			// ignore other realms, for now
Index: imaps-frontend/node_modules/es-abstract/2020/GetSubstitution.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/GetSubstitution.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/GetSubstitution.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -3,5 +3,5 @@
 var $TypeError = require('es-errors/type');
 
-var callBound = require('call-bind/callBound');
+var callBound = require('call-bound');
 var regexTester = require('safe-regex-test');
 var every = require('../helpers/every');
@@ -15,4 +15,5 @@
 
 var inspect = require('object-inspect');
+var isInteger = require('math-intrinsics/isInteger');
 
 var Get = require('./Get');
@@ -21,5 +22,4 @@
 var ToString = require('./ToString');
 
-var isInteger = require('../helpers/isInteger');
 var isStringOrUndefined = require('../helpers/isStringOrUndefined');
 
Index: imaps-frontend/node_modules/es-abstract/2020/GetV.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/GetV.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/GetV.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -5,5 +5,5 @@
 var inspect = require('object-inspect');
 
-var IsPropertyKey = require('./IsPropertyKey');
+var isPropertyKey = require('../helpers/isPropertyKey');
 // var ToObject = require('./ToObject');
 
@@ -12,6 +12,6 @@
 module.exports = function GetV(V, P) {
 	// 7.3.2.1
-	if (!IsPropertyKey(P)) {
-		throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true, got ' + inspect(P));
+	if (!isPropertyKey(P)) {
+		throw new $TypeError('Assertion failed: P is not a Property Key, got ' + inspect(P));
 	}
 
Index: imaps-frontend/node_modules/es-abstract/2020/GetValueFromBuffer.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/GetValueFromBuffer.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/GetValueFromBuffer.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -6,10 +6,9 @@
 var $TypeError = require('es-errors/type');
 var $Uint8Array = GetIntrinsic('%Uint8Array%', true);
+var isInteger = require('math-intrinsics/isInteger');
 
-var callBound = require('call-bind/callBound');
+var callBound = require('call-bound');
 
 var $slice = callBound('Array.prototype.slice');
-
-var isInteger = require('../helpers/isInteger');
 
 var IsDetachedBuffer = require('./IsDetachedBuffer');
Index: imaps-frontend/node_modules/es-abstract/2020/HasOwnProperty.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/HasOwnProperty.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/HasOwnProperty.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -5,14 +5,14 @@
 var hasOwn = require('hasown');
 
-var IsPropertyKey = require('./IsPropertyKey');
-var Type = require('./Type');
+var isObject = require('../helpers/isObject');
+var isPropertyKey = require('../helpers/isPropertyKey');
 
 // https://262.ecma-international.org/6.0/#sec-hasownproperty
 
 module.exports = function HasOwnProperty(O, P) {
-	if (Type(O) !== 'Object') {
+	if (!isObject(O)) {
 		throw new $TypeError('Assertion failed: `O` must be an Object');
 	}
-	if (!IsPropertyKey(P)) {
+	if (!isPropertyKey(P)) {
 		throw new $TypeError('Assertion failed: `P` must be a Property Key');
 	}
Index: imaps-frontend/node_modules/es-abstract/2020/HasProperty.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/HasProperty.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/HasProperty.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -3,14 +3,14 @@
 var $TypeError = require('es-errors/type');
 
-var IsPropertyKey = require('./IsPropertyKey');
-var Type = require('./Type');
+var isObject = require('../helpers/isObject');
+var isPropertyKey = require('../helpers/isPropertyKey');
 
 // https://262.ecma-international.org/6.0/#sec-hasproperty
 
 module.exports = function HasProperty(O, P) {
-	if (Type(O) !== 'Object') {
+	if (!isObject(O)) {
 		throw new $TypeError('Assertion failed: `O` must be an Object');
 	}
-	if (!IsPropertyKey(P)) {
+	if (!isPropertyKey(P)) {
 		throw new $TypeError('Assertion failed: `P` must be a Property Key');
 	}
Index: imaps-frontend/node_modules/es-abstract/2020/InstanceofOperator.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/InstanceofOperator.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/InstanceofOperator.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -5,5 +5,5 @@
 var $TypeError = require('es-errors/type');
 
-var $hasInstance = GetIntrinsic('Symbol.hasInstance', true);
+var $hasInstance = GetIntrinsic('%Symbol.hasInstance%', true);
 
 var Call = require('./Call');
@@ -12,10 +12,11 @@
 var OrdinaryHasInstance = require('./OrdinaryHasInstance');
 var ToBoolean = require('./ToBoolean');
-var Type = require('./Type');
+
+var isObject = require('../helpers/isObject');
 
 // https://262.ecma-international.org/6.0/#sec-instanceofoperator
 
 module.exports = function InstanceofOperator(O, C) {
-	if (Type(O) !== 'Object') {
+	if (!isObject(O)) {
 		throw new $TypeError('Assertion failed: Type(O) is not Object');
 	}
Index: imaps-frontend/node_modules/es-abstract/2020/InternalizeJSONProperty.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/InternalizeJSONProperty.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/InternalizeJSONProperty.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -10,12 +10,12 @@
 var LengthOfArrayLike = require('./LengthOfArrayLike');
 var ToString = require('./ToString');
-var Type = require('./Type');
 
 var forEach = require('../helpers/forEach');
+var isObject = require('../helpers/isObject');
 
 // https://262.ecma-international.org/11.0/#sec-internalizejsonproperty
 
 module.exports = function InternalizeJSONProperty(holder, name, reviver) {
-	if (Type(holder) !== 'Object') {
+	if (!isObject(holder)) {
 		throw new $TypeError('Assertion failed: `holder` is not an Object');
 	}
@@ -29,5 +29,5 @@
 	var val = Get(holder, name); // step 1
 
-	if (Type(val) === 'Object') { // step 2
+	if (isObject(val)) { // step 2
 		var isArray = IsArray(val); // step 2.a
 		if (isArray) { // step 2.b
Index: imaps-frontend/node_modules/es-abstract/2020/Invoke.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/Invoke.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/Invoke.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -6,10 +6,10 @@
 var IsArray = require('./IsArray');
 var GetV = require('./GetV');
-var IsPropertyKey = require('./IsPropertyKey');
+var isPropertyKey = require('../helpers/isPropertyKey');
 
 // https://262.ecma-international.org/6.0/#sec-invoke
 
 module.exports = function Invoke(O, P) {
-	if (!IsPropertyKey(P)) {
+	if (!isPropertyKey(P)) {
 		throw new $TypeError('Assertion failed: P must be a Property Key');
 	}
Index: imaps-frontend/node_modules/es-abstract/2020/IsConcatSpreadable.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/IsConcatSpreadable.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/IsConcatSpreadable.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -8,10 +8,11 @@
 var IsArray = require('./IsArray');
 var ToBoolean = require('./ToBoolean');
-var Type = require('./Type');
+
+var isObject = require('../helpers/isObject');
 
 // https://262.ecma-international.org/6.0/#sec-isconcatspreadable
 
 module.exports = function IsConcatSpreadable(O) {
-	if (Type(O) !== 'Object') {
+	if (!isObject(O)) {
 		return false;
 	}
Index: imaps-frontend/node_modules/es-abstract/2020/IsDetachedBuffer.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/IsDetachedBuffer.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/IsDetachedBuffer.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -5,5 +5,5 @@
 var $byteLength = require('array-buffer-byte-length');
 var availableTypedArrays = require('available-typed-arrays')();
-var callBound = require('call-bind/callBound');
+var callBound = require('call-bound');
 var isArrayBuffer = require('is-array-buffer');
 var isSharedArrayBuffer = require('is-shared-array-buffer');
Index: imaps-frontend/node_modules/es-abstract/2020/IsInteger.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/IsInteger.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/IsInteger.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -1,5 +1,5 @@
 'use strict';
 
-var isInteger = require('../helpers/isInteger');
+var isInteger = require('math-intrinsics/isInteger');
 
 // https://262.ecma-international.org/6.0/#sec-isinteger
Index: imaps-frontend/node_modules/es-abstract/2020/IsPromise.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/IsPromise.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/IsPromise.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -1,14 +1,14 @@
 'use strict';
 
-var callBound = require('call-bind/callBound');
+var callBound = require('call-bound');
 
 var $PromiseThen = callBound('Promise.prototype.then', true);
 
-var Type = require('./Type');
+var isObject = require('../helpers/isObject');
 
 // https://262.ecma-international.org/6.0/#sec-ispromise
 
 module.exports = function IsPromise(x) {
-	if (Type(x) !== 'Object') {
+	if (!isObject(x)) {
 		return false;
 	}
Index: imaps-frontend/node_modules/es-abstract/2020/IsPropertyKey.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/IsPropertyKey.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/IsPropertyKey.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -1,7 +1,9 @@
 'use strict';
+
+var isPropertyKey = require('../helpers/isPropertyKey');
 
 // https://262.ecma-international.org/6.0/#sec-ispropertykey
 
 module.exports = function IsPropertyKey(argument) {
-	return typeof argument === 'string' || typeof argument === 'symbol';
+	return isPropertyKey(argument);
 };
Index: imaps-frontend/node_modules/es-abstract/2020/IsRegExp.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/IsRegExp.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/IsRegExp.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -9,8 +9,10 @@
 var ToBoolean = require('./ToBoolean');
 
+var isObject = require('../helpers/isObject');
+
 // https://262.ecma-international.org/6.0/#sec-isregexp
 
 module.exports = function IsRegExp(argument) {
-	if (!argument || typeof argument !== 'object') {
+	if (!isObject(argument)) {
 		return false;
 	}
Index: imaps-frontend/node_modules/es-abstract/2020/IsSharedArrayBuffer.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/IsSharedArrayBuffer.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/IsSharedArrayBuffer.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -3,5 +3,5 @@
 var $TypeError = require('es-errors/type');
 
-var Type = require('./Type');
+var isObject = require('../helpers/isObject');
 
 var isSharedArrayBuffer = require('is-shared-array-buffer');
@@ -10,5 +10,5 @@
 
 module.exports = function IsSharedArrayBuffer(obj) {
-	if (Type(obj) !== 'Object') {
+	if (!isObject(obj)) {
 		throw new $TypeError('Assertion failed: Type(O) is not Object');
 	}
Index: imaps-frontend/node_modules/es-abstract/2020/IsStringPrefix.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/IsStringPrefix.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/IsStringPrefix.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -5,5 +5,5 @@
 var isPrefixOf = require('../helpers/isPrefixOf');
 
-// var callBound = require('call-bind/callBound');
+// var callBound = require('call-bound');
 
 // var $charAt = callBound('String.prototype.charAt');
Index: imaps-frontend/node_modules/es-abstract/2020/IsValidIntegerIndex.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/IsValidIntegerIndex.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/IsValidIntegerIndex.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -5,5 +5,5 @@
 var IsInteger = require('./IsInteger');
 
-var isNegativeZero = require('../helpers/isNegativeZero');
+var isNegativeZero = require('math-intrinsics/isNegativeZero');
 
 var isTypedArray = require('is-typed-array');
Index: imaps-frontend/node_modules/es-abstract/2020/IsWordChar.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/IsWordChar.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/IsWordChar.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -3,5 +3,5 @@
 var $TypeError = require('es-errors/type');
 
-var callBound = require('call-bind/callBound');
+var callBound = require('call-bound');
 
 var $indexOf = callBound('String.prototype.indexOf');
Index: imaps-frontend/node_modules/es-abstract/2020/IterableToList.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/IterableToList.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/IterableToList.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -1,5 +1,5 @@
 'use strict';
 
-var callBound = require('call-bind/callBound');
+var callBound = require('call-bound');
 var $arrayPush = callBound('Array.prototype.push');
 
Index: imaps-frontend/node_modules/es-abstract/2020/IteratorClose.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/IteratorClose.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/IteratorClose.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -7,10 +7,11 @@
 var GetMethod = require('./GetMethod');
 var IsCallable = require('./IsCallable');
-var Type = require('./Type');
+
+var isObject = require('../helpers/isObject');
 
 // https://262.ecma-international.org/6.0/#sec-iteratorclose
 
 module.exports = function IteratorClose(iterator, completion) {
-	if (Type(iterator) !== 'Object') {
+	if (!isObject(iterator)) {
 		throw new $TypeError('Assertion failed: Type(iterator) is not Object');
 	}
@@ -42,5 +43,5 @@
 	completionThunk = null; // ensure it's not called twice.
 
-	if (Type(innerResult) !== 'Object') {
+	if (!isObject(innerResult)) {
 		throw new $TypeError('iterator .return must return an object');
 	}
Index: imaps-frontend/node_modules/es-abstract/2020/IteratorComplete.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/IteratorComplete.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/IteratorComplete.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -5,10 +5,11 @@
 var Get = require('./Get');
 var ToBoolean = require('./ToBoolean');
-var Type = require('./Type');
+
+var isObject = require('../helpers/isObject');
 
 // https://262.ecma-international.org/6.0/#sec-iteratorcomplete
 
 module.exports = function IteratorComplete(iterResult) {
-	if (Type(iterResult) !== 'Object') {
+	if (!isObject(iterResult)) {
 		throw new $TypeError('Assertion failed: Type(iterResult) is not Object');
 	}
Index: imaps-frontend/node_modules/es-abstract/2020/IteratorNext.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/IteratorNext.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/IteratorNext.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -4,5 +4,6 @@
 
 var Invoke = require('./Invoke');
-var Type = require('./Type');
+
+var isObject = require('../helpers/isObject');
 
 // https://262.ecma-international.org/6.0/#sec-iteratornext
@@ -10,5 +11,5 @@
 module.exports = function IteratorNext(iterator, value) {
 	var result = Invoke(iterator, 'next', arguments.length < 2 ? [] : [value]);
-	if (Type(result) !== 'Object') {
+	if (!isObject(result)) {
 		throw new $TypeError('iterator next must return an object');
 	}
Index: imaps-frontend/node_modules/es-abstract/2020/IteratorValue.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/IteratorValue.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/IteratorValue.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -4,10 +4,11 @@
 
 var Get = require('./Get');
-var Type = require('./Type');
+
+var isObject = require('../helpers/isObject');
 
 // https://262.ecma-international.org/6.0/#sec-iteratorvalue
 
 module.exports = function IteratorValue(iterResult) {
-	if (Type(iterResult) !== 'Object') {
+	if (!isObject(iterResult)) {
 		throw new $TypeError('Assertion failed: Type(iterResult) is not Object');
 	}
Index: imaps-frontend/node_modules/es-abstract/2020/LengthOfArrayLike.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/LengthOfArrayLike.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/LengthOfArrayLike.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -5,10 +5,11 @@
 var Get = require('./Get');
 var ToLength = require('./ToLength');
-var Type = require('./Type');
+
+var isObject = require('../helpers/isObject');
 
 // https://262.ecma-international.org/11.0/#sec-lengthofarraylike
 
 module.exports = function LengthOfArrayLike(obj) {
-	if (Type(obj) !== 'Object') {
+	if (!isObject(obj)) {
 		throw new $TypeError('Assertion failed: `obj` must be an Object');
 	}
Index: imaps-frontend/node_modules/es-abstract/2020/MakeDate.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/MakeDate.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/MakeDate.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -1,5 +1,6 @@
 'use strict';
 
-var $isFinite = require('../helpers/isFinite');
+var $isFinite = require('math-intrinsics/isFinite');
+
 var msPerDay = require('../helpers/timeConstants').msPerDay;
 
Index: imaps-frontend/node_modules/es-abstract/2020/MakeDay.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/MakeDay.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/MakeDay.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -5,5 +5,5 @@
 var $DateUTC = GetIntrinsic('%Date.UTC%');
 
-var $isFinite = require('../helpers/isFinite');
+var $isFinite = require('math-intrinsics/isFinite');
 
 var DateFromTime = require('./DateFromTime');
Index: imaps-frontend/node_modules/es-abstract/2020/MakeTime.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/MakeTime.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/MakeTime.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -1,5 +1,6 @@
 'use strict';
 
-var $isFinite = require('../helpers/isFinite');
+var $isFinite = require('math-intrinsics/isFinite');
+
 var timeConstants = require('../helpers/timeConstants');
 var msPerSecond = timeConstants.msPerSecond;
Index: imaps-frontend/node_modules/es-abstract/2020/MonthFromTime.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/MonthFromTime.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/MonthFromTime.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -1,3 +1,5 @@
 'use strict';
+
+var $RangeError = require('es-errors/range');
 
 var DayWithinYear = require('./DayWithinYear');
@@ -45,3 +47,5 @@
 		return 11;
 	}
+
+	throw new $RangeError('Assertion failed: `day` is out of range');
 };
Index: imaps-frontend/node_modules/es-abstract/2020/Number/divide.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/Number/divide.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/Number/divide.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -2,7 +2,6 @@
 
 var $TypeError = require('es-errors/type');
-
-var isFinite = require('../../helpers/isFinite');
-var isNaN = require('../../helpers/isNaN');
+var isFinite = require('math-intrinsics/isFinite');
+var isNaN = require('math-intrinsics/isNaN');
 
 // https://262.ecma-international.org/11.0/#sec-numeric-types-number-divide
Index: imaps-frontend/node_modules/es-abstract/2020/Number/exponentiate.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/Number/exponentiate.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/Number/exponentiate.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -1,17 +1,15 @@
 'use strict';
 
-var GetIntrinsic = require('get-intrinsic');
-// var isNegativeZero = require('is-negative-zero');
-
-var $pow = GetIntrinsic('%Math.pow%');
+// var isNegativeZero = require('math-intrinsics/isNegativeZero');
+var $pow = require('math-intrinsics/pow');
 
 var $TypeError = require('es-errors/type');
 
 /*
-var abs = require('../../helpers/abs');
-var isFinite = require('../../helpers/isFinite');
-var isNaN = require('../../helpers/isNaN');
+var abs = require('math-intrinsics/abs');
+var isFinite = require('math-intrinsics/isFinite');
+var isNaN = require('math-intrinsics/isNaN');
 
-var IsInteger = require('../IsInteger');
+var IsInteger = require('math-intrinsics/isInteger');
 */
 
Index: imaps-frontend/node_modules/es-abstract/2020/Number/sameValue.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/Number/sameValue.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/Number/sameValue.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -1,6 +1,5 @@
 'use strict';
 
-var isNegativeZero = require('is-negative-zero');
-
+var isNegativeZero = require('math-intrinsics/isNegativeZero');
 var $TypeError = require('es-errors/type');
 
Index: imaps-frontend/node_modules/es-abstract/2020/NumberToBigInt.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/NumberToBigInt.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/NumberToBigInt.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -7,6 +7,5 @@
 var $SyntaxError = require('es-errors/syntax');
 var $TypeError = require('es-errors/type');
-
-var isInteger = require('../helpers/isInteger');
+var isInteger = require('math-intrinsics/isInteger');
 
 // https://262.ecma-international.org/11.0/#sec-numbertobigint
Index: imaps-frontend/node_modules/es-abstract/2020/ObjectDefineProperties.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/ObjectDefineProperties.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/ObjectDefineProperties.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -1,5 +1,5 @@
 'use strict';
 
-var callBound = require('call-bind/callBound');
+var callBound = require('call-bound');
 
 var DefinePropertyOrThrow = require('./DefinePropertyOrThrow');
@@ -10,12 +10,15 @@
 var forEach = require('../helpers/forEach');
 var getOwnPropertyDescriptor = require('gopd');
-var OwnPropertyKeys = require('../helpers/OwnPropertyKeys');
+var OwnPropertyKeys = require('own-keys');
 
 var $push = callBound('Array.prototype.push');
 
 // https://262.ecma-international.org/6.0/#sec-objectdefineproperties
+
+/** @type {<T extends Record<PropertyKey, unknown> = {}>(O: T, Properties: object) => T} */
 module.exports = function ObjectDefineProperties(O, Properties) {
 	var props = ToObject(Properties); // step 1
 	var keys = OwnPropertyKeys(props); // step 2
+	/** @type {[string | symbol, import('../types').Descriptor][]} */
 	var descriptors = []; // step 3
 
Index: imaps-frontend/node_modules/es-abstract/2020/OrdinaryDefineOwnProperty.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/OrdinaryDefineOwnProperty.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/OrdinaryDefineOwnProperty.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -9,17 +9,18 @@
 var IsAccessorDescriptor = require('./IsAccessorDescriptor');
 var IsExtensible = require('./IsExtensible');
-var IsPropertyKey = require('./IsPropertyKey');
+var isPropertyKey = require('../helpers/isPropertyKey');
 var ToPropertyDescriptor = require('./ToPropertyDescriptor');
 var SameValue = require('./SameValue');
-var Type = require('./Type');
 var ValidateAndApplyPropertyDescriptor = require('./ValidateAndApplyPropertyDescriptor');
+
+var isObject = require('../helpers/isObject');
 
 // https://262.ecma-international.org/6.0/#sec-ordinarydefineownproperty
 
 module.exports = function OrdinaryDefineOwnProperty(O, P, Desc) {
-	if (Type(O) !== 'Object') {
+	if (!isObject(O)) {
 		throw new $TypeError('Assertion failed: O must be an Object');
 	}
-	if (!IsPropertyKey(P)) {
+	if (!isPropertyKey(P)) {
 		throw new $TypeError('Assertion failed: P must be a Property Key');
 	}
Index: imaps-frontend/node_modules/es-abstract/2020/OrdinaryGetOwnProperty.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/OrdinaryGetOwnProperty.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/OrdinaryGetOwnProperty.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -4,5 +4,5 @@
 var $TypeError = require('es-errors/type');
 
-var callBound = require('call-bind/callBound');
+var callBound = require('call-bound');
 
 var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable');
@@ -11,16 +11,17 @@
 
 var IsArray = require('./IsArray');
-var IsPropertyKey = require('./IsPropertyKey');
+var isPropertyKey = require('../helpers/isPropertyKey');
 var IsRegExp = require('./IsRegExp');
 var ToPropertyDescriptor = require('./ToPropertyDescriptor');
-var Type = require('./Type');
+
+var isObject = require('../helpers/isObject');
 
 // https://262.ecma-international.org/6.0/#sec-ordinarygetownproperty
 
 module.exports = function OrdinaryGetOwnProperty(O, P) {
-	if (Type(O) !== 'Object') {
+	if (!isObject(O)) {
 		throw new $TypeError('Assertion failed: O must be an Object');
 	}
-	if (!IsPropertyKey(P)) {
+	if (!isPropertyKey(P)) {
 		throw new $TypeError('Assertion failed: P must be a Property Key');
 	}
Index: imaps-frontend/node_modules/es-abstract/2020/OrdinaryGetPrototypeOf.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/OrdinaryGetPrototypeOf.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/OrdinaryGetPrototypeOf.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -3,12 +3,11 @@
 var $TypeError = require('es-errors/type');
 
-var $getProto = require('../helpers/getProto');
-
-var Type = require('./Type');
+var $getProto = require('get-proto');
+var isObject = require('../helpers/isObject');
 
 // https://262.ecma-international.org/7.0/#sec-ordinarygetprototypeof
 
 module.exports = function OrdinaryGetPrototypeOf(O) {
-	if (Type(O) !== 'Object') {
+	if (!isObject(O)) {
 		throw new $TypeError('Assertion failed: O must be an Object');
 	}
Index: imaps-frontend/node_modules/es-abstract/2020/OrdinaryHasInstance.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/OrdinaryHasInstance.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/OrdinaryHasInstance.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -5,5 +5,6 @@
 var Get = require('./Get');
 var IsCallable = require('./IsCallable');
-var Type = require('./Type');
+
+var isObject = require('../helpers/isObject');
 
 // https://262.ecma-international.org/6.0/#sec-ordinaryhasinstance
@@ -13,9 +14,9 @@
 		return false;
 	}
-	if (Type(O) !== 'Object') {
+	if (!isObject(O)) {
 		return false;
 	}
 	var P = Get(C, 'prototype');
-	if (Type(P) !== 'Object') {
+	if (!isObject(P)) {
 		throw new $TypeError('OrdinaryHasInstance called on an object with an invalid prototype property.');
 	}
Index: imaps-frontend/node_modules/es-abstract/2020/OrdinaryHasProperty.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/OrdinaryHasProperty.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/OrdinaryHasProperty.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -3,14 +3,14 @@
 var $TypeError = require('es-errors/type');
 
-var IsPropertyKey = require('./IsPropertyKey');
-var Type = require('./Type');
+var isObject = require('../helpers/isObject');
+var isPropertyKey = require('../helpers/isPropertyKey');
 
 // https://262.ecma-international.org/6.0/#sec-ordinaryhasproperty
 
 module.exports = function OrdinaryHasProperty(O, P) {
-	if (Type(O) !== 'Object') {
+	if (!isObject(O)) {
 		throw new $TypeError('Assertion failed: Type(O) is not Object');
 	}
-	if (!IsPropertyKey(P)) {
+	if (!isPropertyKey(P)) {
 		throw new $TypeError('Assertion failed: P must be a Property Key');
 	}
Index: imaps-frontend/node_modules/es-abstract/2020/OrdinaryObjectCreate.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/OrdinaryObjectCreate.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/OrdinaryObjectCreate.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -8,7 +8,7 @@
 
 var IsArray = require('./IsArray');
-var Type = require('./Type');
 
 var forEach = require('../helpers/forEach');
+var isObject = require('../helpers/isObject');
 
 var SLOT = require('internal-slot');
@@ -19,5 +19,5 @@
 
 module.exports = function OrdinaryObjectCreate(proto) {
-	if (proto !== null && Type(proto) !== 'Object') {
+	if (proto !== null && !isObject(proto)) {
 		throw new $TypeError('Assertion failed: `proto` must be null or an object');
 	}
Index: imaps-frontend/node_modules/es-abstract/2020/OrdinarySetPrototypeOf.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/OrdinarySetPrototypeOf.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/OrdinarySetPrototypeOf.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -2,13 +2,14 @@
 
 var $TypeError = require('es-errors/type');
-
-var $setProto = require('../helpers/setProto');
+var $setProto = require('set-proto');
 
 var OrdinaryGetPrototypeOf = require('./OrdinaryGetPrototypeOf');
+
+var isObject = require('../helpers/isObject');
 
 // https://262.ecma-international.org/7.0/#sec-ordinarysetprototypeof
 
 module.exports = function OrdinarySetPrototypeOf(O, V) {
-	if (typeof V !== 'object') {
+	if (V !== null && !isObject(V)) {
 		throw new $TypeError('Assertion failed: V must be Object or Null');
 	}
Index: imaps-frontend/node_modules/es-abstract/2020/OrdinaryToPrimitive.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/OrdinaryToPrimitive.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/OrdinaryToPrimitive.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -6,5 +6,6 @@
 var Get = require('./Get');
 var IsCallable = require('./IsCallable');
-var Type = require('./Type');
+
+var isObject = require('../helpers/isObject');
 
 var inspect = require('object-inspect');
@@ -13,5 +14,5 @@
 
 module.exports = function OrdinaryToPrimitive(O, hint) {
-	if (Type(O) !== 'Object') {
+	if (!isObject(O)) {
 		throw new $TypeError('Assertion failed: Type(O) is not Object');
 	}
@@ -27,5 +28,5 @@
 		if (IsCallable(method)) {
 			var result = Call(method, O);
-			if (Type(result) !== 'Object') {
+			if (!isObject(result)) {
 				return result;
 			}
Index: imaps-frontend/node_modules/es-abstract/2020/QuoteJSONString.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/QuoteJSONString.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/QuoteJSONString.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -3,5 +3,5 @@
 var $TypeError = require('es-errors/type');
 
-var callBound = require('call-bind/callBound');
+var callBound = require('call-bound');
 var forEach = require('../helpers/forEach');
 var isLeadingSurrogate = require('../helpers/isLeadingSurrogate');
@@ -9,4 +9,5 @@
 
 var $charCodeAt = callBound('String.prototype.charCodeAt');
+var $strSplit = callBound('String.prototype.split');
 
 var UnicodeEscape = require('./UnicodeEscape');
@@ -34,10 +35,10 @@
 	var product = '"';
 	if (value) {
-		forEach(UTF16DecodeString(value), function (C) {
+		forEach($strSplit(UTF16DecodeString(value), ''), function (C) {
 			if (hasOwn(escapes, C)) {
 				product += escapes[C];
 			} else {
 				var cCharCode = $charCodeAt(C, 0);
-				if (cCharCode < 0x20 || isLeadingSurrogate(C) || isTrailingSurrogate(C)) {
+				if (cCharCode < 0x20 || isLeadingSurrogate(cCharCode) || isTrailingSurrogate(cCharCode)) {
 					product += UnicodeEscape(C);
 				} else {
Index: imaps-frontend/node_modules/es-abstract/2020/RawBytesToNumeric.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/RawBytesToNumeric.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/RawBytesToNumeric.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -2,5 +2,5 @@
 
 var GetIntrinsic = require('get-intrinsic');
-var callBound = require('call-bind/callBound');
+var callBound = require('call-bound');
 
 var $RangeError = require('es-errors/range');
Index: imaps-frontend/node_modules/es-abstract/2020/RegExpExec.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/RegExpExec.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/RegExpExec.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -3,15 +3,16 @@
 var $TypeError = require('es-errors/type');
 
-var regexExec = require('call-bind/callBound')('RegExp.prototype.exec');
+var regexExec = require('call-bound')('RegExp.prototype.exec');
 
 var Call = require('./Call');
 var Get = require('./Get');
 var IsCallable = require('./IsCallable');
-var Type = require('./Type');
+
+var isObject = require('../helpers/isObject');
 
 // https://262.ecma-international.org/6.0/#sec-regexpexec
 
 module.exports = function RegExpExec(R, S) {
-	if (Type(R) !== 'Object') {
+	if (!isObject(R)) {
 		throw new $TypeError('Assertion failed: `R` must be an Object');
 	}
@@ -22,5 +23,5 @@
 	if (IsCallable(exec)) {
 		var result = Call(exec, R, [S]);
-		if (typeof result === 'object') {
+		if (result === null || isObject(result)) {
 			return result;
 		}
Index: imaps-frontend/node_modules/es-abstract/2020/SameValue.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/SameValue.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/SameValue.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -1,5 +1,5 @@
 'use strict';
 
-var $isNaN = require('../helpers/isNaN');
+var $isNaN = require('math-intrinsics/isNaN');
 
 // http://262.ecma-international.org/5.1/#sec-9.12
Index: imaps-frontend/node_modules/es-abstract/2020/SameValueZero.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/SameValueZero.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/SameValueZero.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -1,5 +1,5 @@
 'use strict';
 
-var $isNaN = require('../helpers/isNaN');
+var $isNaN = require('math-intrinsics/isNaN');
 
 // https://262.ecma-international.org/6.0/#sec-samevaluezero
Index: imaps-frontend/node_modules/es-abstract/2020/Set.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/Set.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/Set.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -3,7 +3,8 @@
 var $TypeError = require('es-errors/type');
 
-var IsPropertyKey = require('./IsPropertyKey');
+var isPropertyKey = require('../helpers/isPropertyKey');
 var SameValue = require('./SameValue');
-var Type = require('./Type');
+
+var isObject = require('../helpers/isObject');
 
 // IE 9 does not throw in strict mode when writability/configurability/extensibility is violated
@@ -20,8 +21,8 @@
 
 module.exports = function Set(O, P, V, Throw) {
-	if (Type(O) !== 'Object') {
+	if (!isObject(O)) {
 		throw new $TypeError('Assertion failed: `O` must be an Object');
 	}
-	if (!IsPropertyKey(P)) {
+	if (!isPropertyKey(P)) {
 		throw new $TypeError('Assertion failed: `P` must be a Property Key');
 	}
Index: imaps-frontend/node_modules/es-abstract/2020/SetIntegrityLevel.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/SetIntegrityLevel.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/SetIntegrityLevel.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -14,10 +14,11 @@
 var IsAccessorDescriptor = require('./IsAccessorDescriptor');
 var ToPropertyDescriptor = require('./ToPropertyDescriptor');
-var Type = require('./Type');
+
+var isObject = require('../helpers/isObject');
 
 // https://262.ecma-international.org/6.0/#sec-setintegritylevel
 
 module.exports = function SetIntegrityLevel(O, level) {
-	if (Type(O) !== 'Object') {
+	if (!isObject(O)) {
 		throw new $TypeError('Assertion failed: Type(O) is not Object');
 	}
Index: imaps-frontend/node_modules/es-abstract/2020/SetValueInBuffer.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/SetValueInBuffer.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/SetValueInBuffer.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -6,6 +6,5 @@
 var $TypeError = require('es-errors/type');
 var $Uint8Array = GetIntrinsic('%Uint8Array%', true);
-
-var isInteger = require('../helpers/isInteger');
+var isInteger = require('math-intrinsics/isInteger');
 
 var IsBigIntElementType = require('./IsBigIntElementType');
@@ -69,9 +68,9 @@
 	}
 
-	// 5. Let block be arrayBuffer’s [[ArrayBufferData]] internal slot.
+	// 5. Let block be arrayBuffer.[[ArrayBufferData]].
 
 	var elementSize = tableTAO.size['$' + type]; // step 6
 
-	// 8. If isLittleEndian is not present, set isLittleEndian to either true or false. The choice is implementation dependent and should be the alternative that is most efficient for the implementation. An implementation must use the same value each time this step is executed and the same value must be used for the corresponding step in the GetValueFromBuffer abstract operation.
+	// 7. If isLittleEndian is not present, set isLittleEndian to to the value of the [[LittleEndian]] field of the surrounding agent's Agent Record.
 	var isLittleEndian = arguments.length > 6 ? arguments[6] : defaultEndianness === 'little'; // step 8
 
Index: imaps-frontend/node_modules/es-abstract/2020/SpeciesConstructor.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/SpeciesConstructor.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/SpeciesConstructor.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -7,10 +7,11 @@
 
 var IsConstructor = require('./IsConstructor');
-var Type = require('./Type');
+
+var isObject = require('../helpers/isObject');
 
 // https://262.ecma-international.org/6.0/#sec-speciesconstructor
 
 module.exports = function SpeciesConstructor(O, defaultConstructor) {
-	if (Type(O) !== 'Object') {
+	if (!isObject(O)) {
 		throw new $TypeError('Assertion failed: Type(O) is not Object');
 	}
@@ -19,5 +20,5 @@
 		return defaultConstructor;
 	}
-	if (Type(C) !== 'Object') {
+	if (!isObject(C)) {
 		throw new $TypeError('O.constructor is not an Object');
 	}
Index: imaps-frontend/node_modules/es-abstract/2020/SplitMatch.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/SplitMatch.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/SplitMatch.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -1,9 +1,8 @@
 'use strict';
 
-var callBound = require('call-bind/callBound');
+var callBound = require('call-bound');
 
 var $TypeError = require('es-errors/type');
-
-var isInteger = require('../helpers/isInteger');
+var isInteger = require('math-intrinsics/isInteger');
 
 var $charAt = callBound('String.prototype.charAt');
Index: imaps-frontend/node_modules/es-abstract/2020/StrictEqualityComparison.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/StrictEqualityComparison.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/StrictEqualityComparison.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -6,10 +6,8 @@
 
 module.exports = function StrictEqualityComparison(x, y) {
-	var xType = Type(x);
-	var yType = Type(y);
-	if (xType !== yType) {
+	if (Type(x) !== Type(y)) {
 		return false;
 	}
-	if (xType === 'Undefined' || xType === 'Null') {
+	if (typeof x === 'undefined' || x === null) {
 		return true;
 	}
Index: imaps-frontend/node_modules/es-abstract/2020/StringCreate.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/StringCreate.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/StringCreate.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -7,8 +7,7 @@
 var $SyntaxError = require('es-errors/syntax');
 var $TypeError = require('es-errors/type');
+var setProto = require('set-proto');
 
 var DefinePropertyOrThrow = require('./DefinePropertyOrThrow');
-
-var setProto = require('../helpers/setProto');
 
 // https://262.ecma-international.org/6.0/#sec-stringcreate
Index: imaps-frontend/node_modules/es-abstract/2020/StringGetOwnProperty.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/StringGetOwnProperty.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/StringGetOwnProperty.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -3,5 +3,5 @@
 var $TypeError = require('es-errors/type');
 
-var callBound = require('call-bind/callBound');
+var callBound = require('call-bound');
 var $charAt = callBound('String.prototype.charAt');
 var $stringToString = callBound('String.prototype.toString');
@@ -9,8 +9,9 @@
 var CanonicalNumericIndexString = require('./CanonicalNumericIndexString');
 var IsInteger = require('./IsInteger');
-var IsPropertyKey = require('./IsPropertyKey');
-var Type = require('./Type');
 
-var isNegativeZero = require('is-negative-zero');
+var isObject = require('../helpers/isObject');
+var isPropertyKey = require('../helpers/isPropertyKey');
+
+var isNegativeZero = require('math-intrinsics/isNegativeZero');
 
 // https://262.ecma-international.org/8.0/#sec-stringgetownproperty
@@ -18,5 +19,5 @@
 module.exports = function StringGetOwnProperty(S, P) {
 	var str;
-	if (Type(S) === 'Object') {
+	if (isObject(S)) {
 		try {
 			str = $stringToString(S);
@@ -26,6 +27,6 @@
 		throw new $TypeError('Assertion failed: `S` must be a boxed string object');
 	}
-	if (!IsPropertyKey(P)) {
-		throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
+	if (!isPropertyKey(P)) {
+		throw new $TypeError('Assertion failed: P is not a Property Key');
 	}
 	if (typeof P !== 'string') {
Index: imaps-frontend/node_modules/es-abstract/2020/StringPad.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/StringPad.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/StringPad.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -3,5 +3,5 @@
 var $TypeError = require('es-errors/type');
 
-var callBound = require('call-bind/callBound');
+var callBound = require('call-bound');
 
 var ToLength = require('./ToLength');
Index: imaps-frontend/node_modules/es-abstract/2020/SymbolDescriptiveString.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/SymbolDescriptiveString.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/SymbolDescriptiveString.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -3,5 +3,5 @@
 var $TypeError = require('es-errors/type');
 
-var callBound = require('call-bind/callBound');
+var callBound = require('call-bound');
 
 var $SymbolToString = callBound('Symbol.prototype.toString', true);
Index: imaps-frontend/node_modules/es-abstract/2020/TestIntegrityLevel.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/TestIntegrityLevel.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/TestIntegrityLevel.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -5,15 +5,16 @@
 
 var every = require('../helpers/every');
-var OwnPropertyKeys = require('../helpers/OwnPropertyKeys');
+var OwnPropertyKeys = require('own-keys');
 
 var IsDataDescriptor = require('./IsDataDescriptor');
 var IsExtensible = require('./IsExtensible');
 var ToPropertyDescriptor = require('./ToPropertyDescriptor');
-var Type = require('./Type');
+
+var isObject = require('../helpers/isObject');
 
 // https://262.ecma-international.org/6.0/#sec-testintegritylevel
 
 module.exports = function TestIntegrityLevel(O, level) {
-	if (Type(O) !== 'Object') {
+	if (!isObject(O)) {
 		throw new $TypeError('Assertion failed: Type(O) is not Object');
 	}
@@ -22,5 +23,5 @@
 	}
 	var status = IsExtensible(O);
-	if (status) {
+	if (status || !$gOPD) {
 		return false;
 	}
Index: imaps-frontend/node_modules/es-abstract/2020/TimeClip.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/TimeClip.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/TimeClip.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -4,9 +4,8 @@
 
 var $Date = GetIntrinsic('%Date%');
-var $Number = GetIntrinsic('%Number%');
 
-var $isFinite = require('../helpers/isFinite');
+var $isFinite = require('math-intrinsics/isFinite');
+var abs = require('math-intrinsics/abs');
 
-var abs = require('./abs');
 var ToNumber = require('./ToNumber');
 
@@ -17,5 +16,5 @@
 		return NaN;
 	}
-	return $Number(new $Date(ToNumber(time)));
+	return +new $Date(ToNumber(time));
 };
 
Index: imaps-frontend/node_modules/es-abstract/2020/TimeString.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/TimeString.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/TimeString.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -3,5 +3,5 @@
 var $TypeError = require('es-errors/type');
 
-var $isNaN = require('../helpers/isNaN');
+var $isNaN = require('math-intrinsics/isNaN');
 var padTimeComponent = require('../helpers/padTimeComponent');
 
Index: imaps-frontend/node_modules/es-abstract/2020/TimeZoneString.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/TimeZoneString.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/TimeZoneString.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -6,7 +6,7 @@
 var $TypeError = require('es-errors/type');
 
-var isNaN = require('../helpers/isNaN');
+var isNaN = require('math-intrinsics/isNaN');
 
-var callBound = require('call-bind/callBound');
+var callBound = require('call-bound');
 
 var $indexOf = callBound('String.prototype.indexOf');
Index: imaps-frontend/node_modules/es-abstract/2020/ToBigInt.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/ToBigInt.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/ToBigInt.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -11,5 +11,5 @@
 var ToPrimitive = require('./ToPrimitive');
 
-var isNaN = require('../helpers/isNaN');
+var isNaN = require('math-intrinsics/isNaN');
 
 // https://262.ecma-international.org/11.0/#sec-tobigint
Index: imaps-frontend/node_modules/es-abstract/2020/ToBigInt64.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/ToBigInt64.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/ToBigInt64.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -4,5 +4,5 @@
 
 var $BigInt = GetIntrinsic('%BigInt%', true);
-var $pow = GetIntrinsic('%Math.pow%');
+var $pow = require('math-intrinsics/pow');
 
 var ToBigInt = require('./ToBigInt');
Index: imaps-frontend/node_modules/es-abstract/2020/ToBigUint64.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/ToBigUint64.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/ToBigUint64.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -4,5 +4,6 @@
 
 var $BigInt = GetIntrinsic('%BigInt%', true);
-var $pow = GetIntrinsic('%Math.pow%');
+
+var $pow = require('math-intrinsics/pow');
 
 var ToBigInt = require('./ToBigInt');
Index: imaps-frontend/node_modules/es-abstract/2020/ToDateString.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/ToDateString.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/ToDateString.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -7,5 +7,5 @@
 var $String = GetIntrinsic('%String%');
 
-var $isNaN = require('../helpers/isNaN');
+var $isNaN = require('math-intrinsics/isNaN');
 
 // https://262.ecma-international.org/6.0/#sec-todatestring
Index: imaps-frontend/node_modules/es-abstract/2020/ToLength.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/ToLength.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/ToLength.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -1,5 +1,5 @@
 'use strict';
 
-var MAX_SAFE_INTEGER = require('../helpers/maxSafeInteger');
+var MAX_SAFE_INTEGER = require('math-intrinsics/constants/maxSafeInteger');
 
 var ToInteger = require('./ToInteger');
Index: imaps-frontend/node_modules/es-abstract/2020/ToNumber.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/ToNumber.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/ToNumber.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -8,5 +8,5 @@
 var $parseInteger = GetIntrinsic('%parseInt%');
 
-var callBound = require('call-bind/callBound');
+var callBound = require('call-bound');
 var regexTester = require('safe-regex-test');
 var isPrimitive = require('../helpers/isPrimitive');
@@ -48,4 +48,4 @@
 
 	}
-	return $Number(value);
+	return +value;
 };
Index: imaps-frontend/node_modules/es-abstract/2020/ToPropertyDescriptor.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/ToPropertyDescriptor.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/ToPropertyDescriptor.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -5,12 +5,13 @@
 var $TypeError = require('es-errors/type');
 
-var Type = require('./Type');
+var IsCallable = require('./IsCallable');
 var ToBoolean = require('./ToBoolean');
-var IsCallable = require('./IsCallable');
+
+var isObject = require('../helpers/isObject');
 
 // https://262.ecma-international.org/5.1/#sec-8.10.5
 
 module.exports = function ToPropertyDescriptor(Obj) {
-	if (Type(Obj) !== 'Object') {
+	if (!isObject(Obj)) {
 		throw new $TypeError('ToPropertyDescriptor requires an object');
 	}
Index: imaps-frontend/node_modules/es-abstract/2020/ToUint16.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/ToUint16.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/ToUint16.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -1,12 +1,12 @@
 'use strict';
 
-var abs = require('./abs');
-var floor = require('./floor');
 var modulo = require('./modulo');
 var ToNumber = require('./ToNumber');
 
-var $isNaN = require('../helpers/isNaN');
-var $isFinite = require('../helpers/isFinite');
-var $sign = require('../helpers/sign');
+var abs = require('math-intrinsics/abs');
+var floor = require('math-intrinsics/floor');
+var $isNaN = require('math-intrinsics/isNaN');
+var $isFinite = require('math-intrinsics/isFinite');
+var $sign = require('math-intrinsics/sign');
 
 // http://262.ecma-international.org/5.1/#sec-9.7
Index: imaps-frontend/node_modules/es-abstract/2020/ToUint8.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/ToUint8.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/ToUint8.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -3,11 +3,10 @@
 var ToNumber = require('./ToNumber');
 
-var $isNaN = require('../helpers/isNaN');
-var $isFinite = require('../helpers/isFinite');
-var $sign = require('../helpers/sign');
-
-var abs = require('./abs');
-var floor = require('./floor');
-var modulo = require('./modulo');
+var $isNaN = require('math-intrinsics/isNaN');
+var $isFinite = require('math-intrinsics/isFinite');
+var $sign = require('math-intrinsics/sign');
+var abs = require('math-intrinsics/abs');
+var floor = require('math-intrinsics/floor');
+var modulo = require('math-intrinsics/mod');
 
 // https://262.ecma-international.org/6.0/#sec-touint8
Index: imaps-frontend/node_modules/es-abstract/2020/ToUint8Clamp.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/ToUint8Clamp.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/ToUint8Clamp.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -4,5 +4,5 @@
 var floor = require('./floor');
 
-var $isNaN = require('../helpers/isNaN');
+var $isNaN = require('math-intrinsics/isNaN');
 
 // https://262.ecma-international.org/6.0/#sec-touint8clamp
Index: imaps-frontend/node_modules/es-abstract/2020/UTF16DecodeString.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/UTF16DecodeString.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/UTF16DecodeString.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -3,5 +3,5 @@
 var $TypeError = require('es-errors/type');
 
-var callBound = require('call-bind/callBound');
+var callBound = require('call-bound');
 
 var $push = callBound('Array.prototype.push');
Index: imaps-frontend/node_modules/es-abstract/2020/UnicodeEscape.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/UnicodeEscape.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/UnicodeEscape.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -3,5 +3,5 @@
 var $TypeError = require('es-errors/type');
 
-var callBound = require('call-bind/callBound');
+var callBound = require('call-bound');
 
 var $charCodeAt = callBound('String.prototype.charCodeAt');
Index: imaps-frontend/node_modules/es-abstract/2020/ValidateAndApplyPropertyDescriptor.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/ValidateAndApplyPropertyDescriptor.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/ValidateAndApplyPropertyDescriptor.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -11,7 +11,8 @@
 var IsDataDescriptor = require('./IsDataDescriptor');
 var IsGenericDescriptor = require('./IsGenericDescriptor');
-var IsPropertyKey = require('./IsPropertyKey');
+var isPropertyKey = require('../helpers/isPropertyKey');
 var SameValue = require('./SameValue');
-var Type = require('./Type');
+
+var isObject = require('../helpers/isObject');
 
 // https://262.ecma-international.org/6.0/#sec-validateandapplypropertydescriptor
@@ -21,6 +22,5 @@
 module.exports = function ValidateAndApplyPropertyDescriptor(O, P, extensible, Desc, current) {
 	// this uses the ES2017+ logic, since it fixes a number of bugs in the ES2015 logic.
-	var oType = Type(O);
-	if (oType !== 'Undefined' && oType !== 'Object') {
+	if (typeof O !== 'undefined' && !isObject(O)) {
 		throw new $TypeError('Assertion failed: O must be undefined or an Object');
 	}
@@ -34,5 +34,5 @@
 		throw new $TypeError('Assertion failed: current must be a Property Descriptor, or undefined');
 	}
-	if (oType !== 'Undefined' && !IsPropertyKey(P)) {
+	if (typeof O !== 'undefined' && !isPropertyKey(P)) {
 		throw new $TypeError('Assertion failed: if O is not undefined, P must be a Property Key');
 	}
@@ -42,5 +42,5 @@
 		}
 		if (IsGenericDescriptor(Desc) || IsDataDescriptor(Desc)) {
-			if (oType !== 'Undefined') {
+			if (typeof O !== 'undefined') {
 				DefineOwnProperty(
 					IsDataDescriptor,
@@ -61,5 +61,5 @@
 				throw new $TypeError('Assertion failed: Desc is not an accessor descriptor');
 			}
-			if (oType !== 'Undefined') {
+			if (typeof O !== 'undefined') {
 				return DefineOwnProperty(
 					IsDataDescriptor,
@@ -96,5 +96,5 @@
 		}
 		if (IsDataDescriptor(current)) {
-			if (oType !== 'Undefined') {
+			if (typeof O !== 'undefined') {
 				DefineOwnProperty(
 					IsDataDescriptor,
@@ -110,5 +110,5 @@
 				);
 			}
-		} else if (oType !== 'Undefined') {
+		} else if (typeof O !== 'undefined') {
 			DefineOwnProperty(
 				IsDataDescriptor,
@@ -147,5 +147,5 @@
 		throw new $TypeError('Assertion failed: current and Desc are not both data, both accessors, or one accessor and one data.');
 	}
-	if (oType !== 'Undefined') {
+	if (typeof O !== 'undefined') {
 		return DefineOwnProperty(
 			IsDataDescriptor,
Index: imaps-frontend/node_modules/es-abstract/2020/ValidateTypedArray.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/ValidateTypedArray.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/ValidateTypedArray.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -4,5 +4,6 @@
 
 var IsDetachedBuffer = require('./IsDetachedBuffer');
-var Type = require('./Type');
+
+var isObject = require('../helpers/isObject');
 
 var isTypedArray = require('is-typed-array');
@@ -12,5 +13,5 @@
 
 module.exports = function ValidateTypedArray(O) {
-	if (Type(O) !== 'Object') {
+	if (!isObject(O)) {
 		throw new $TypeError('Assertion failed: `O` must be an Object'); // step 1
 	}
Index: imaps-frontend/node_modules/es-abstract/2020/WordCharacters.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/WordCharacters.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/WordCharacters.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -3,5 +3,5 @@
 var $TypeError = require('es-errors/type');
 
-var callBound = require('call-bind/callBound');
+var callBound = require('call-bound');
 var $indexOf = callBound('String.prototype.indexOf', true);
 
@@ -10,5 +10,5 @@
 var caseFolding = require('../helpers/caseFolding.json');
 var forEach = require('../helpers/forEach');
-var OwnPropertyKeys = require('../helpers/OwnPropertyKeys');
+var OwnPropertyKeys = require('own-keys');
 
 var A = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_'; // step 1
Index: imaps-frontend/node_modules/es-abstract/2020/YearFromTime.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/YearFromTime.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/YearFromTime.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -5,5 +5,5 @@
 var $Date = GetIntrinsic('%Date%');
 
-var callBound = require('call-bind/callBound');
+var callBound = require('call-bound');
 
 var $getUTCFullYear = callBound('Date.prototype.getUTCFullYear');
Index: imaps-frontend/node_modules/es-abstract/2020/abs.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/abs.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/abs.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -1,7 +1,5 @@
 'use strict';
 
-var GetIntrinsic = require('get-intrinsic');
-
-var $abs = GetIntrinsic('%Math.abs%');
+var $abs = require('math-intrinsics/abs');
 
 // http://262.ecma-international.org/5.1/#sec-5.2
Index: imaps-frontend/node_modules/es-abstract/2020/floor.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/floor.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/floor.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -2,5 +2,5 @@
 
 // var modulo = require('./modulo');
-var $floor = Math.floor;
+var $floor = require('math-intrinsics/floor');
 
 // http://262.ecma-international.org/11.0/#eqn-floor
Index: imaps-frontend/node_modules/es-abstract/2020/max.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/max.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/max.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -1,7 +1,5 @@
 'use strict';
-
-var GetIntrinsic = require('get-intrinsic');
 
 // https://262.ecma-international.org/6.0/#sec-algorithm-conventions
 
-module.exports = GetIntrinsic('%Math.max%');
+module.exports = require('math-intrinsics/max');
Index: imaps-frontend/node_modules/es-abstract/2020/min.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/min.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/min.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -1,7 +1,5 @@
 'use strict';
-
-var GetIntrinsic = require('get-intrinsic');
 
 // https://262.ecma-international.org/6.0/#sec-algorithm-conventions
 
-module.exports = GetIntrinsic('%Math.min%');
+module.exports = require('math-intrinsics/min');
Index: imaps-frontend/node_modules/es-abstract/2020/thisBigIntValue.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/thisBigIntValue.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/thisBigIntValue.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -1,16 +1,13 @@
 'use strict';
 
-var callBound = require('call-bind/callBound');
+var callBound = require('call-bound');
 
 var $SyntaxError = require('es-errors/syntax');
 var $bigIntValueOf = callBound('BigInt.prototype.valueOf', true);
 
-var Type = require('./Type');
-
 // https://262.ecma-international.org/11.0/#sec-thisbigintvalue
 
 module.exports = function thisBigIntValue(value) {
-	var type = Type(value);
-	if (type === 'BigInt') {
+	if (typeof value === 'bigint') {
 		return value;
 	}
Index: imaps-frontend/node_modules/es-abstract/2020/thisBooleanValue.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/thisBooleanValue.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/thisBooleanValue.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -1,5 +1,5 @@
 'use strict';
 
-var $BooleanValueOf = require('call-bind/callBound')('Boolean.prototype.valueOf');
+var $BooleanValueOf = require('call-bound')('Boolean.prototype.valueOf');
 
 // https://262.ecma-international.org/6.0/#sec-properties-of-the-boolean-prototype-object
Index: imaps-frontend/node_modules/es-abstract/2020/thisNumberValue.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/thisNumberValue.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/thisNumberValue.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -1,5 +1,5 @@
 'use strict';
 
-var callBound = require('call-bind/callBound');
+var callBound = require('call-bound');
 
 var $NumberValueOf = callBound('Number.prototype.valueOf');
Index: imaps-frontend/node_modules/es-abstract/2020/thisStringValue.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/thisStringValue.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/thisStringValue.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -1,5 +1,5 @@
 'use strict';
 
-var $StringValueOf = require('call-bind/callBound')('String.prototype.valueOf');
+var $StringValueOf = require('call-bound')('String.prototype.valueOf');
 
 // https://262.ecma-international.org/6.0/#sec-properties-of-the-string-prototype-object
Index: imaps-frontend/node_modules/es-abstract/2020/thisSymbolValue.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/thisSymbolValue.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/thisSymbolValue.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -2,5 +2,5 @@
 
 var $SyntaxError = require('es-errors/syntax');
-var callBound = require('call-bind/callBound');
+var callBound = require('call-bound');
 
 var $SymbolValueOf = callBound('Symbol.prototype.valueOf', true);
@@ -9,10 +9,12 @@
 
 module.exports = function thisSymbolValue(value) {
+	if (typeof value === 'symbol') {
+		return value;
+	}
+
 	if (!$SymbolValueOf) {
 		throw new $SyntaxError('Symbols are not supported; thisSymbolValue requires that `value` be a Symbol or a Symbol object');
 	}
-	if (typeof value === 'symbol') {
-		return value;
-	}
+
 	return $SymbolValueOf(value);
 };
Index: imaps-frontend/node_modules/es-abstract/2020/thisTimeValue.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2020/thisTimeValue.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-abstract/2020/thisTimeValue.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -1,9 +1,9 @@
 'use strict';
 
-var $DateGetTime = require('call-bind/callBound')('Date.prototype.getTime');
+var timeValue = require('../helpers/timeValue');
 
 // https://262.ecma-international.org/6.0/#sec-properties-of-the-date-prototype-object
 
 module.exports = function thisTimeValue(value) {
-	return $DateGetTime(value);
+	return timeValue(value);
 };
