forked from dachan/dach
		
	a lot of changes
This commit is contained in:
		
							
								
								
									
										1
									
								
								node_modules/side-channel/.eslintignore
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/side-channel/.eslintignore
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
coverage/
 | 
			
		||||
							
								
								
									
										11
									
								
								node_modules/side-channel/.eslintrc
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								node_modules/side-channel/.eslintrc
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
			
		||||
{
 | 
			
		||||
	"root": true,
 | 
			
		||||
 | 
			
		||||
	"extends": "@ljharb",
 | 
			
		||||
 | 
			
		||||
	"rules": {
 | 
			
		||||
		"max-lines-per-function": 0,
 | 
			
		||||
		"max-params": 0,
 | 
			
		||||
		"new-cap": [2, { "capIsNewExceptions": ["GetIntrinsic"] }],
 | 
			
		||||
	},
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										12
									
								
								node_modules/side-channel/.github/FUNDING.yml
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								node_modules/side-channel/.github/FUNDING.yml
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
# These are supported funding model platforms
 | 
			
		||||
 | 
			
		||||
github: [ljharb]
 | 
			
		||||
patreon: # Replace with a single Patreon username
 | 
			
		||||
open_collective: # Replace with a single Open Collective username
 | 
			
		||||
ko_fi: # Replace with a single Ko-fi username
 | 
			
		||||
tidelift: npm/side-channel
 | 
			
		||||
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
 | 
			
		||||
liberapay: # Replace with a single Liberapay username
 | 
			
		||||
issuehunt: # Replace with a single IssueHunt username
 | 
			
		||||
otechie: # Replace with a single Otechie username
 | 
			
		||||
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
 | 
			
		||||
							
								
								
									
										13
									
								
								node_modules/side-channel/.nycrc
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								node_modules/side-channel/.nycrc
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
{
 | 
			
		||||
	"all": true,
 | 
			
		||||
	"check-coverage": false,
 | 
			
		||||
	"reporter": ["text-summary", "text", "html", "json"],
 | 
			
		||||
	"lines": 86,
 | 
			
		||||
	"statements": 85.93,
 | 
			
		||||
	"functions": 82.43,
 | 
			
		||||
	"branches": 76.06,
 | 
			
		||||
	"exclude": [
 | 
			
		||||
		"coverage",
 | 
			
		||||
		"test"
 | 
			
		||||
	]
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										65
									
								
								node_modules/side-channel/CHANGELOG.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								node_modules/side-channel/CHANGELOG.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,65 @@
 | 
			
		||||
# Changelog
 | 
			
		||||
 | 
			
		||||
All notable changes to this project will be documented in this file.
 | 
			
		||||
 | 
			
		||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
 | 
			
		||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
 | 
			
		||||
 | 
			
		||||
## [v1.0.4](https://github.com/ljharb/side-channel/compare/v1.0.3...v1.0.4) - 2020-12-29
 | 
			
		||||
 | 
			
		||||
### Commits
 | 
			
		||||
 | 
			
		||||
- [Tests] migrate tests to Github Actions [`10909cb`](https://github.com/ljharb/side-channel/commit/10909cbf8ce9c0bf96f604cf13d7ffd5a22c2d40)
 | 
			
		||||
- [Refactor] Use a linked list rather than an array, and move accessed nodes to the beginning [`195613f`](https://github.com/ljharb/side-channel/commit/195613f28b5c1e6072ef0b61b5beebaf2b6a304e)
 | 
			
		||||
- [meta] do not publish github action workflow files [`290ec29`](https://github.com/ljharb/side-channel/commit/290ec29cd21a60585145b4a7237ec55228c52c27)
 | 
			
		||||
- [Tests] run `nyc` on all tests; use `tape` runner [`ea6d030`](https://github.com/ljharb/side-channel/commit/ea6d030ff3fe6be2eca39e859d644c51ecd88869)
 | 
			
		||||
- [actions] add "Allow Edits" workflow [`d464d8f`](https://github.com/ljharb/side-channel/commit/d464d8fe52b5eddf1504a0ed97f0941a90f32c15)
 | 
			
		||||
- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog` [`02daca8`](https://github.com/ljharb/side-channel/commit/02daca87c6809821c97be468d1afa2f5ef447383)
 | 
			
		||||
- [Refactor] use `call-bind` and `get-intrinsic` instead of `es-abstract` [`e09d481`](https://github.com/ljharb/side-channel/commit/e09d481528452ebafa5cdeae1af665c35aa2deee)
 | 
			
		||||
- [Deps] update `object.assign` [`ee83aa8`](https://github.com/ljharb/side-channel/commit/ee83aa81df313b5e46319a63adb05cf0c179079a)
 | 
			
		||||
- [actions] update rebase action to use checkout v2 [`7726b0b`](https://github.com/ljharb/side-channel/commit/7726b0b058b632fccea709f58960871defaaa9d7)
 | 
			
		||||
 | 
			
		||||
## [v1.0.3](https://github.com/ljharb/side-channel/compare/v1.0.2...v1.0.3) - 2020-08-23
 | 
			
		||||
 | 
			
		||||
### Commits
 | 
			
		||||
 | 
			
		||||
- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`1f10561`](https://github.com/ljharb/side-channel/commit/1f105611ef3acf32dec8032ae5c0baa5e56bb868)
 | 
			
		||||
- [Deps] update `es-abstract`, `object-inspect` [`bc20159`](https://github.com/ljharb/side-channel/commit/bc201597949a505e37cef9eaf24c7010831e6f03)
 | 
			
		||||
- [Dev Deps] update `@ljharb/eslint-config`, `tape` [`b9b2b22`](https://github.com/ljharb/side-channel/commit/b9b2b225f9e0ea72a6ec2b89348f0bd690bc9ed1)
 | 
			
		||||
- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`7055ab4`](https://github.com/ljharb/side-channel/commit/7055ab4de0860606efd2003674a74f1fe6ebc07e)
 | 
			
		||||
- [Dev Deps] update `auto-changelog`; add `aud` [`d278c37`](https://github.com/ljharb/side-channel/commit/d278c37d08227be4f84aa769fcd919e73feeba40)
 | 
			
		||||
- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`3bcf982`](https://github.com/ljharb/side-channel/commit/3bcf982faa122745b39c33ce83d32fdf003741c6)
 | 
			
		||||
- [Tests] only audit prod deps [`18d01c4`](https://github.com/ljharb/side-channel/commit/18d01c4015b82a3d75044c4d5ba7917b2eac01ec)
 | 
			
		||||
- [Deps] update `es-abstract` [`6ab096d`](https://github.com/ljharb/side-channel/commit/6ab096d9de2b482cf5e0717e34e212f5b2b9bc9a)
 | 
			
		||||
- [Dev Deps] update `tape` [`9dc174c`](https://github.com/ljharb/side-channel/commit/9dc174cc651dfd300b4b72da936a0a7eda5f9452)
 | 
			
		||||
- [Deps] update `es-abstract` [`431d0f0`](https://github.com/ljharb/side-channel/commit/431d0f0ff11fbd2ae6f3115582a356d3a1cfce82)
 | 
			
		||||
- [Deps] update `es-abstract` [`49869fd`](https://github.com/ljharb/side-channel/commit/49869fd323bf4453f0ba515c0fb265cf5ab7b932)
 | 
			
		||||
- [meta] Add package.json to package's exports [`77d9cdc`](https://github.com/ljharb/side-channel/commit/77d9cdceb2a9e47700074f2ae0c0a202e7dac0d4)
 | 
			
		||||
 | 
			
		||||
## [v1.0.2](https://github.com/ljharb/side-channel/compare/v1.0.1...v1.0.2) - 2019-12-20
 | 
			
		||||
 | 
			
		||||
### Commits
 | 
			
		||||
 | 
			
		||||
- [Dev Deps] update `@ljharb/eslint-config`, `tape` [`4a526df`](https://github.com/ljharb/side-channel/commit/4a526df44e4701566ed001ec78546193f818b082)
 | 
			
		||||
- [Deps] update `es-abstract` [`d4f6e62`](https://github.com/ljharb/side-channel/commit/d4f6e629b6fb93a07415db7f30d3c90fd7f264fe)
 | 
			
		||||
 | 
			
		||||
## [v1.0.1](https://github.com/ljharb/side-channel/compare/v1.0.0...v1.0.1) - 2019-12-01
 | 
			
		||||
 | 
			
		||||
### Commits
 | 
			
		||||
 | 
			
		||||
- [Fix] add missing "exports" [`d212907`](https://github.com/ljharb/side-channel/commit/d2129073abf0701a5343bf28aa2145617604dc2e)
 | 
			
		||||
 | 
			
		||||
## v1.0.0 - 2019-12-01
 | 
			
		||||
 | 
			
		||||
### Commits
 | 
			
		||||
 | 
			
		||||
- Initial implementation [`dbebd3a`](https://github.com/ljharb/side-channel/commit/dbebd3a4b5ed64242f9a6810efe7c4214cd8cde4)
 | 
			
		||||
- Initial tests [`73bdefe`](https://github.com/ljharb/side-channel/commit/73bdefe568c9076cf8c0b8719bc2141aec0e19b8)
 | 
			
		||||
- Initial commit [`43c03e1`](https://github.com/ljharb/side-channel/commit/43c03e1c2849ec50a87b7a5cd76238a62b0b8770)
 | 
			
		||||
- npm init [`5c090a7`](https://github.com/ljharb/side-channel/commit/5c090a765d66a5527d9889b89aeff78dee91348c)
 | 
			
		||||
- [meta] add `auto-changelog` [`a5c4e56`](https://github.com/ljharb/side-channel/commit/a5c4e5675ec02d5eb4d84b4243aeea2a1d38fbec)
 | 
			
		||||
- [actions] add automatic rebasing / merge commit blocking [`bab1683`](https://github.com/ljharb/side-channel/commit/bab1683d8f9754b086e94397699fdc645e0d7077)
 | 
			
		||||
- [meta] add `funding` field; create FUNDING.yml [`63d7aea`](https://github.com/ljharb/side-channel/commit/63d7aeaf34f5650650ae97ca4b9fae685bd0937c)
 | 
			
		||||
- [Tests] add `npm run lint` [`46a5a81`](https://github.com/ljharb/side-channel/commit/46a5a81705cd2664f83df232c01dbbf2ee952885)
 | 
			
		||||
- Only apps should have lockfiles [`8b16b03`](https://github.com/ljharb/side-channel/commit/8b16b0305f00895d90c4e2e5773c854cfea0e448)
 | 
			
		||||
- [meta] add `safe-publish-latest` [`2f098ef`](https://github.com/ljharb/side-channel/commit/2f098ef092a39399cfe548b19a1fc03c2fd2f490)
 | 
			
		||||
							
								
								
									
										21
									
								
								node_modules/side-channel/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								node_modules/side-channel/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
MIT License
 | 
			
		||||
 | 
			
		||||
Copyright (c) 2019 Jordan Harband
 | 
			
		||||
 | 
			
		||||
Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
			
		||||
of this software and associated documentation files (the "Software"), to deal
 | 
			
		||||
in the Software without restriction, including without limitation the rights
 | 
			
		||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
			
		||||
copies of the Software, and to permit persons to whom the Software is
 | 
			
		||||
furnished to do so, subject to the following conditions:
 | 
			
		||||
 | 
			
		||||
The above copyright notice and this permission notice shall be included in all
 | 
			
		||||
copies or substantial portions of the Software.
 | 
			
		||||
 | 
			
		||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
			
		||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
			
		||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
			
		||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
			
		||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
			
		||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
			
		||||
SOFTWARE.
 | 
			
		||||
							
								
								
									
										2
									
								
								node_modules/side-channel/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								node_modules/side-channel/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
			
		||||
# side-channel
 | 
			
		||||
Store information about any JS value in a side channel. Uses WeakMap if available.
 | 
			
		||||
							
								
								
									
										124
									
								
								node_modules/side-channel/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										124
									
								
								node_modules/side-channel/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,124 @@
 | 
			
		||||
'use strict';
 | 
			
		||||
 | 
			
		||||
var GetIntrinsic = require('get-intrinsic');
 | 
			
		||||
var callBound = require('call-bind/callBound');
 | 
			
		||||
var inspect = require('object-inspect');
 | 
			
		||||
 | 
			
		||||
var $TypeError = GetIntrinsic('%TypeError%');
 | 
			
		||||
var $WeakMap = GetIntrinsic('%WeakMap%', true);
 | 
			
		||||
var $Map = GetIntrinsic('%Map%', true);
 | 
			
		||||
 | 
			
		||||
var $weakMapGet = callBound('WeakMap.prototype.get', true);
 | 
			
		||||
var $weakMapSet = callBound('WeakMap.prototype.set', true);
 | 
			
		||||
var $weakMapHas = callBound('WeakMap.prototype.has', true);
 | 
			
		||||
var $mapGet = callBound('Map.prototype.get', true);
 | 
			
		||||
var $mapSet = callBound('Map.prototype.set', true);
 | 
			
		||||
var $mapHas = callBound('Map.prototype.has', true);
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * This function traverses the list returning the node corresponding to the
 | 
			
		||||
 * given key.
 | 
			
		||||
 *
 | 
			
		||||
 * That node is also moved to the head of the list, so that if it's accessed
 | 
			
		||||
 * again we don't need to traverse the whole list. By doing so, all the recently
 | 
			
		||||
 * used nodes can be accessed relatively quickly.
 | 
			
		||||
 */
 | 
			
		||||
var listGetNode = function (list, key) { // eslint-disable-line consistent-return
 | 
			
		||||
	for (var prev = list, curr; (curr = prev.next) !== null; prev = curr) {
 | 
			
		||||
		if (curr.key === key) {
 | 
			
		||||
			prev.next = curr.next;
 | 
			
		||||
			curr.next = list.next;
 | 
			
		||||
			list.next = curr; // eslint-disable-line no-param-reassign
 | 
			
		||||
			return curr;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
var listGet = function (objects, key) {
 | 
			
		||||
	var node = listGetNode(objects, key);
 | 
			
		||||
	return node && node.value;
 | 
			
		||||
};
 | 
			
		||||
var listSet = function (objects, key, value) {
 | 
			
		||||
	var node = listGetNode(objects, key);
 | 
			
		||||
	if (node) {
 | 
			
		||||
		node.value = value;
 | 
			
		||||
	} else {
 | 
			
		||||
		// Prepend the new node to the beginning of the list
 | 
			
		||||
		objects.next = { // eslint-disable-line no-param-reassign
 | 
			
		||||
			key: key,
 | 
			
		||||
			next: objects.next,
 | 
			
		||||
			value: value
 | 
			
		||||
		};
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
var listHas = function (objects, key) {
 | 
			
		||||
	return !!listGetNode(objects, key);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
module.exports = function getSideChannel() {
 | 
			
		||||
	var $wm;
 | 
			
		||||
	var $m;
 | 
			
		||||
	var $o;
 | 
			
		||||
	var channel = {
 | 
			
		||||
		assert: function (key) {
 | 
			
		||||
			if (!channel.has(key)) {
 | 
			
		||||
				throw new $TypeError('Side channel does not contain ' + inspect(key));
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		get: function (key) { // eslint-disable-line consistent-return
 | 
			
		||||
			if ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {
 | 
			
		||||
				if ($wm) {
 | 
			
		||||
					return $weakMapGet($wm, key);
 | 
			
		||||
				}
 | 
			
		||||
			} else if ($Map) {
 | 
			
		||||
				if ($m) {
 | 
			
		||||
					return $mapGet($m, key);
 | 
			
		||||
				}
 | 
			
		||||
			} else {
 | 
			
		||||
				if ($o) { // eslint-disable-line no-lonely-if
 | 
			
		||||
					return listGet($o, key);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		has: function (key) {
 | 
			
		||||
			if ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {
 | 
			
		||||
				if ($wm) {
 | 
			
		||||
					return $weakMapHas($wm, key);
 | 
			
		||||
				}
 | 
			
		||||
			} else if ($Map) {
 | 
			
		||||
				if ($m) {
 | 
			
		||||
					return $mapHas($m, key);
 | 
			
		||||
				}
 | 
			
		||||
			} else {
 | 
			
		||||
				if ($o) { // eslint-disable-line no-lonely-if
 | 
			
		||||
					return listHas($o, key);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			return false;
 | 
			
		||||
		},
 | 
			
		||||
		set: function (key, value) {
 | 
			
		||||
			if ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {
 | 
			
		||||
				if (!$wm) {
 | 
			
		||||
					$wm = new $WeakMap();
 | 
			
		||||
				}
 | 
			
		||||
				$weakMapSet($wm, key, value);
 | 
			
		||||
			} else if ($Map) {
 | 
			
		||||
				if (!$m) {
 | 
			
		||||
					$m = new $Map();
 | 
			
		||||
				}
 | 
			
		||||
				$mapSet($m, key, value);
 | 
			
		||||
			} else {
 | 
			
		||||
				if (!$o) {
 | 
			
		||||
					/*
 | 
			
		||||
					 * Initialize the linked list as an empty node, so that we don't have
 | 
			
		||||
					 * to special-case handling of the first node: we can always refer to
 | 
			
		||||
					 * it as (previous node).next, instead of something like (list).head
 | 
			
		||||
					 */
 | 
			
		||||
					$o = { key: {}, next: null };
 | 
			
		||||
				}
 | 
			
		||||
				listSet($o, key, value);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	};
 | 
			
		||||
	return channel;
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										67
									
								
								node_modules/side-channel/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								node_modules/side-channel/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,67 @@
 | 
			
		||||
{
 | 
			
		||||
	"name": "side-channel",
 | 
			
		||||
	"version": "1.0.4",
 | 
			
		||||
	"description": "Store information about any JS value in a side channel. Uses WeakMap if available.",
 | 
			
		||||
	"main": "index.js",
 | 
			
		||||
	"exports": {
 | 
			
		||||
		"./package.json": "./package.json",
 | 
			
		||||
		".": [
 | 
			
		||||
			{
 | 
			
		||||
				"default": "./index.js"
 | 
			
		||||
			},
 | 
			
		||||
			"./index.js"
 | 
			
		||||
		]
 | 
			
		||||
	},
 | 
			
		||||
	"scripts": {
 | 
			
		||||
		"prepublish": "safe-publish-latest",
 | 
			
		||||
		"lint": "eslint .",
 | 
			
		||||
		"pretest": "npm run lint",
 | 
			
		||||
		"tests-only": "nyc tape 'test/**/*.js'",
 | 
			
		||||
		"test": "npm run tests-only",
 | 
			
		||||
		"posttest": "npx aud --production",
 | 
			
		||||
		"version": "auto-changelog && git add CHANGELOG.md",
 | 
			
		||||
		"postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\""
 | 
			
		||||
	},
 | 
			
		||||
	"repository": {
 | 
			
		||||
		"type": "git",
 | 
			
		||||
		"url": "git+https://github.com/ljharb/side-channel.git"
 | 
			
		||||
	},
 | 
			
		||||
	"keywords": [
 | 
			
		||||
		"weakmap",
 | 
			
		||||
		"map",
 | 
			
		||||
		"side",
 | 
			
		||||
		"channel",
 | 
			
		||||
		"metadata"
 | 
			
		||||
	],
 | 
			
		||||
	"author": "Jordan Harband <ljharb@gmail.com>",
 | 
			
		||||
	"funding": {
 | 
			
		||||
		"url": "https://github.com/sponsors/ljharb"
 | 
			
		||||
	},
 | 
			
		||||
	"license": "MIT",
 | 
			
		||||
	"bugs": {
 | 
			
		||||
		"url": "https://github.com/ljharb/side-channel/issues"
 | 
			
		||||
	},
 | 
			
		||||
	"homepage": "https://github.com/ljharb/side-channel#readme",
 | 
			
		||||
	"devDependencies": {
 | 
			
		||||
		"@ljharb/eslint-config": "^17.3.0",
 | 
			
		||||
		"aud": "^1.1.3",
 | 
			
		||||
		"auto-changelog": "^2.2.1",
 | 
			
		||||
		"eslint": "^7.16.0",
 | 
			
		||||
		"nyc": "^10.3.2",
 | 
			
		||||
		"safe-publish-latest": "^1.1.4",
 | 
			
		||||
		"tape": "^5.0.1"
 | 
			
		||||
	},
 | 
			
		||||
	"dependencies": {
 | 
			
		||||
		"call-bind": "^1.0.0",
 | 
			
		||||
		"get-intrinsic": "^1.0.2",
 | 
			
		||||
		"object-inspect": "^1.9.0"
 | 
			
		||||
	},
 | 
			
		||||
	"auto-changelog": {
 | 
			
		||||
		"output": "CHANGELOG.md",
 | 
			
		||||
		"template": "keepachangelog",
 | 
			
		||||
		"unreleased": false,
 | 
			
		||||
		"commitLimit": false,
 | 
			
		||||
		"backfillLimit": false,
 | 
			
		||||
		"hideCredit": true
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										78
									
								
								node_modules/side-channel/test/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								node_modules/side-channel/test/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,78 @@
 | 
			
		||||
'use strict';
 | 
			
		||||
 | 
			
		||||
var test = require('tape');
 | 
			
		||||
 | 
			
		||||
var getSideChannel = require('../');
 | 
			
		||||
 | 
			
		||||
test('export', function (t) {
 | 
			
		||||
	t.equal(typeof getSideChannel, 'function', 'is a function');
 | 
			
		||||
	t.equal(getSideChannel.length, 0, 'takes no arguments');
 | 
			
		||||
 | 
			
		||||
	var channel = getSideChannel();
 | 
			
		||||
	t.ok(channel, 'is truthy');
 | 
			
		||||
	t.equal(typeof channel, 'object', 'is an object');
 | 
			
		||||
 | 
			
		||||
	t.end();
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
test('assert', function (t) {
 | 
			
		||||
	var channel = getSideChannel();
 | 
			
		||||
	t['throws'](
 | 
			
		||||
		function () { channel.assert({}); },
 | 
			
		||||
		TypeError,
 | 
			
		||||
		'nonexistent value throws'
 | 
			
		||||
	);
 | 
			
		||||
 | 
			
		||||
	var o = {};
 | 
			
		||||
	channel.set(o, 'data');
 | 
			
		||||
	t.doesNotThrow(function () { channel.assert(o); }, 'existent value noops');
 | 
			
		||||
 | 
			
		||||
	t.end();
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
test('has', function (t) {
 | 
			
		||||
	var channel = getSideChannel();
 | 
			
		||||
	var o = [];
 | 
			
		||||
 | 
			
		||||
	t.equal(channel.has(o), false, 'nonexistent value yields false');
 | 
			
		||||
 | 
			
		||||
	channel.set(o, 'foo');
 | 
			
		||||
	t.equal(channel.has(o), true, 'existent value yields true');
 | 
			
		||||
 | 
			
		||||
	t.end();
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
test('get', function (t) {
 | 
			
		||||
	var channel = getSideChannel();
 | 
			
		||||
	var o = {};
 | 
			
		||||
	t.equal(channel.get(o), undefined, 'nonexistent value yields undefined');
 | 
			
		||||
 | 
			
		||||
	var data = {};
 | 
			
		||||
	channel.set(o, data);
 | 
			
		||||
	t.equal(channel.get(o), data, '"get" yields data set by "set"');
 | 
			
		||||
 | 
			
		||||
	t.end();
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
test('set', function (t) {
 | 
			
		||||
	var channel = getSideChannel();
 | 
			
		||||
	var o = function () {};
 | 
			
		||||
	t.equal(channel.get(o), undefined, 'value not set');
 | 
			
		||||
 | 
			
		||||
	channel.set(o, 42);
 | 
			
		||||
	t.equal(channel.get(o), 42, 'value was set');
 | 
			
		||||
 | 
			
		||||
	channel.set(o, Infinity);
 | 
			
		||||
	t.equal(channel.get(o), Infinity, 'value was set again');
 | 
			
		||||
 | 
			
		||||
	var o2 = {};
 | 
			
		||||
	channel.set(o2, 17);
 | 
			
		||||
	t.equal(channel.get(o), Infinity, 'o is not modified');
 | 
			
		||||
	t.equal(channel.get(o2), 17, 'o2 is set');
 | 
			
		||||
 | 
			
		||||
	channel.set(o, 14);
 | 
			
		||||
	t.equal(channel.get(o), 14, 'o is modified');
 | 
			
		||||
	t.equal(channel.get(o2), 17, 'o2 is not modified');
 | 
			
		||||
 | 
			
		||||
	t.end();
 | 
			
		||||
});
 | 
			
		||||
		Reference in New Issue
	
	Block a user