| 12345678910111213141516171819202122232425262728293031323334353637383940414243 | 'use strict';var $TypeError = require('es-errors/type');var inspect = require('object-inspect');var getSideChannelList = require('side-channel-list');var getSideChannelMap = require('side-channel-map');var getSideChannelWeakMap = require('side-channel-weakmap');var makeChannel = getSideChannelWeakMap || getSideChannelMap || getSideChannelList;/** @type {import('.')} */module.exports = function getSideChannel() {	/** @typedef {ReturnType<typeof getSideChannel>} Channel */	/** @type {Channel | undefined} */ var $channelData;	/** @type {Channel} */	var channel = {		assert: function (key) {			if (!channel.has(key)) {				throw new $TypeError('Side channel does not contain ' + inspect(key));			}		},		'delete': function (key) {			return !!$channelData && $channelData['delete'](key);		},		get: function (key) {			return $channelData && $channelData.get(key);		},		has: function (key) {			return !!$channelData && $channelData.has(key);		},		set: function (key, value) {			if (!$channelData) {				$channelData = makeChannel();			}			$channelData.set(key, value);		}	};	// @ts-expect-error TODO: figure out why this is erroring	return channel;};
 |