diff --git a/index.html b/index.html
index 54ae766..667f1f4 100644
--- a/index.html
+++ b/index.html
@@ -1,7 +1,7 @@
- SVR.JS 3.14.17
+ SVR.JS 3.14.18
- Welcome to SVR.JS 3.14.17
+ Welcome to SVR.JS 3.14.18
@@ -84,7 +84,13 @@
Changes:
- Lifted PBKDF2 restrictions on Bun 1.1.13 and later.
+ Fix bug in getting public IP address without crypto support.
+ Fix bug in the factory reset function.
+ Fix bug in the IP address match function.
+ Fix bug with config.json read errors being undefined.
+ Fix bugs in the block list.
+ Server crashes now results in exit code of 1 if no exit code is not specified.
+ Updated dependencies.
Tests
diff --git a/licenses/define-data-property.txt b/licenses/define-data-property.txt
new file mode 100644
index 0000000..b4213ac
--- /dev/null
+++ b/licenses/define-data-property.txt
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2023 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.
diff --git a/licenses/es-define-property.txt b/licenses/es-define-property.txt
new file mode 100644
index 0000000..f82f389
--- /dev/null
+++ b/licenses/es-define-property.txt
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2024 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.
diff --git a/licenses/es-errors.txt b/licenses/es-errors.txt
new file mode 100644
index 0000000..f82f389
--- /dev/null
+++ b/licenses/es-errors.txt
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2024 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.
diff --git a/licenses/gopd.txt b/licenses/gopd.txt
new file mode 100644
index 0000000..6abfe14
--- /dev/null
+++ b/licenses/gopd.txt
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2022 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.
diff --git a/licenses/graceful-fs.txt b/licenses/graceful-fs.txt
index 9d2c803..e906a25 100644
--- a/licenses/graceful-fs.txt
+++ b/licenses/graceful-fs.txt
@@ -1,6 +1,6 @@
The ISC License
-Copyright (c) Isaac Z. Schlueter, Ben Noordhuis, and Contributors
+Copyright (c) 2011-2022 Isaac Z. Schlueter, Ben Noordhuis, and Contributors
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
diff --git a/licenses/has-property-descriptors.txt b/licenses/has-property-descriptors.txt
new file mode 100644
index 0000000..2e7b9a3
--- /dev/null
+++ b/licenses/has-property-descriptors.txt
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2022 Inspect JS
+
+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.
diff --git a/licenses/has-proto.txt b/licenses/has-proto.txt
new file mode 100644
index 0000000..2e7b9a3
--- /dev/null
+++ b/licenses/has-proto.txt
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2022 Inspect JS
+
+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.
diff --git a/licenses/has.txt b/licenses/has.txt
deleted file mode 100644
index ae7014d..0000000
--- a/licenses/has.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2013 Thiago de Arruda
-
-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.
diff --git a/licenses/hasown.txt b/licenses/hasown.txt
new file mode 100644
index 0000000..0314929
--- /dev/null
+++ b/licenses/hasown.txt
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) Jordan Harband and contributors
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/licenses/index.html b/licenses/index.html
index b962596..c6c4c05 100644
--- a/licenses/index.html
+++ b/licenses/index.html
@@ -1,19 +1,83 @@
- SVR.JS 3.14.17 Licenses
+ SVR.JS 3.14.18 Licenses
- SVR.JS 3.14.17 Licenses
- SVR.JS 3.14.17
+ SVR.JS 3.14.18 Licenses
+ SVR.JS 3.14.18
MIT License
@@ -37,9 +101,9 @@
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
- Packages used by SVR.JS 3.14.17
+ Packages used by SVR.JS 3.14.18
-
+
License: MIT
asap
@@ -48,7 +112,7 @@
High-priority task queue for Node.js and browsers
-
+
License: MIT
asn1.js (by Fedor Indutny)
@@ -57,7 +121,7 @@
ASN.1 encoder and decoder
-
+
License: MIT
asn1.js-rfc2560 (by Fedor Indutny)
@@ -66,7 +130,7 @@
RFC2560 structures for asn1.js
-
+
License: MIT
asn1.js-rfc5280 (by Felix Hanley)
@@ -75,7 +139,7 @@
RFC5280 extension structures for asn1.js
-
+
License: MIT
async (by Caolan McMahon)
@@ -84,7 +148,7 @@
Higher-order functions and common patterns for asynchronous code
-
+
License: MIT
bn.js (by Fedor Indutny)
@@ -93,7 +157,7 @@
Big number implementation in pure javascript
-
+
License: MIT
call-bind (by Jordan Harband)
@@ -102,7 +166,7 @@
Robustly `.call.bind()` a function
-
+
License: ISC
chownr (by Isaac Z. Schlueter)
@@ -111,7 +175,16 @@
like `chown -R`
-
+
+
License: MIT
+
+
+ Define a data property on an object. Will fall back to assignment in an engine without descriptors.
+
+
+
License: ISC
dezalgo (by Isaac Z. Schlueter)
@@ -120,7 +193,25 @@
Contain async insanity so that the dark pony lord doesn't eat souls
-
+
+
License: MIT
+
+
+ `Object.defineProperty`, but not IE 8's broken one.
+
+
+
+
License: MIT
+
+
+ A simple cache for a few of the JS Error constructors.
+
+
+
-
+
License: ISC
fs-minipass (by Isaac Z. Schlueter)
@@ -140,7 +231,7 @@
Patched to work with Bun
-
+
License: MIT
function-bind (by Raynos)
@@ -149,7 +240,7 @@
Implementation of Function.prototype.bind
-
+
License: MIT
get-intrinsic (by Jordan Harband)
@@ -158,7 +249,16 @@
Get and robustly cache all JS language-level intrinsics at first require time
-
+
+
License: MIT
+
+
gopd (by Jordan Harband)
+
+
+ `Object.getOwnPropertyDescriptor`, but accounts for IE's broken implementation.
+
+
+
-
+
License: MIT
- Object.prototype.hasOwnProperty.call shortcut
+ Does the environment have full property descriptor support? Handles IE 8's broken defineProperty/gOPD.
-
+
+
License: MIT
+
+
+ Does this environment have the ability to get the [[Prototype]] of an object on creation with __proto__
?
+
+
+
License: MIT
has-symbols (by Jordan Harband)
@@ -186,7 +295,16 @@
Determine if the JS environment has Symbol support. Supports spec, or shams.
-
+
+
License: MIT
+
+
hasown (by Jordan Harband)
+
+
+ A robust, ES3 compatible, "has own property" predicate.
+
+
+
License: MIT
hexoid (by Luke Edwards)
@@ -195,7 +313,7 @@
A tiny (190B) and extremely fast utility to generate random IDs of fixed length
-
+
License: ISC
inherits
@@ -204,7 +322,7 @@
Browser-friendly inheritance fully compatible with standard node.js inherits()
-
+
License: MIT
mime-db
@@ -213,7 +331,7 @@
Media Type Database
-
+
License: MIT
mime-types
@@ -223,7 +341,7 @@
Required by SVR.JS.
-
+
-
+
License: ISC
minipass (by Isaac Z. Schlueter)
@@ -241,7 +359,7 @@
minimal implementation of a PassThrough stream
-
+
License: MIT
minizlib (by Isaac Z. Schlueter)
@@ -250,7 +368,7 @@
A small fast zlib stream built on
minipass and Node.js's zlib binding.
-
+
License: MIT
mkdirp
@@ -259,7 +377,7 @@
Recursively mkdir, like `mkdir -p`
-
+
License: MIT
object-inspect (by James Halliday)
@@ -268,7 +386,7 @@
string representations of objects in node and the browser
-
+
License: MIT
ocsp (by Fedor Indutny)
@@ -278,7 +396,7 @@
Required by SVR.JS.
-
+
License: ISC
once (by Isaac Z. Schlueter)
@@ -287,7 +405,7 @@
Run a function exactly one time
-
+
License: BSD-3
qs
@@ -296,7 +414,16 @@
A querystring parser that supports nesting and arrays, with a depth limit
-
+
+
License: MIT
+
+
+ Set a function's length property
+
+
+
License: MIT
side-channel (by Jordan Harband)
@@ -305,7 +432,7 @@
Store information about any JS value in a side channel. Uses WeakMap if available.
-
+
License: MIT
simple-lru-cache (by Gabriel Eisbruch)
@@ -314,17 +441,17 @@
node-simple-lru-cache =====================
-
+
License: ISC
-
tar (by Isaac Z. Schlueter)
+
tar (by GitHub Inc.)
tar for node
Required by SVR.JS.
-
+
License: ISC
wrappy (by Isaac Z. Schlueter)
@@ -333,7 +460,7 @@
Callback wrapping utility
-
+
License: ISC
yallist (by Isaac Z. Schlueter)
diff --git a/licenses/mime-db.txt b/licenses/mime-db.txt
index a7ae8ee..0751cb1 100644
--- a/licenses/mime-db.txt
+++ b/licenses/mime-db.txt
@@ -1,22 +1,23 @@
+(The MIT License)
-The MIT License (MIT)
+Copyright (c) 2014 Jonathan Ong
+Copyright (c) 2015-2022 Douglas Christopher Wilson
-Copyright (c) 2014 Jonathan Ong me@jongleberry.com
+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:
-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 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.
+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.
diff --git a/licenses/minipass.txt b/licenses/minipass.txt
index 20a4762..97f8e32 100644
--- a/licenses/minipass.txt
+++ b/licenses/minipass.txt
@@ -1,6 +1,6 @@
The ISC License
-Copyright (c) npm, Inc. and Contributors
+Copyright (c) 2017-2023 npm, Inc., Isaac Z. Schlueter, and Contributors
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
diff --git a/licenses/pretty-bytes.txt b/licenses/pretty-bytes.txt
deleted file mode 100644
index e7af2f7..0000000
--- a/licenses/pretty-bytes.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-MIT License
-
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-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.
diff --git a/licenses/set-function-length.txt b/licenses/set-function-length.txt
new file mode 100644
index 0000000..0314929
--- /dev/null
+++ b/licenses/set-function-length.txt
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) Jordan Harband and contributors
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/node_modules/asap/package.json b/node_modules/asap/package.json
index a2edd2d..ae9f303 100644
--- a/node_modules/asap/package.json
+++ b/node_modules/asap/package.json
@@ -1,27 +1,18 @@
{
- "_from": "asap@^2.0.0",
- "_id": "asap@2.0.6",
- "_inBundle": false,
- "_integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==",
- "_location": "/asap",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "asap@^2.0.0",
- "name": "asap",
- "escapedName": "asap",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/dezalgo"
+ "name": "asap",
+ "version": "2.0.6",
+ "description": "High-priority task queue for Node.js and browsers",
+ "keywords": [
+ "event",
+ "task",
+ "queue"
],
- "_resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
- "_shasum": "e50347611d7e690943208bbdafebcbc2fb866d46",
- "_spec": "asap@^2.0.0",
- "_where": "/home/ubuntu/formidable/node_modules/dezalgo",
+ "license": "MIT",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/kriskowal/asap.git"
+ },
+ "main": "./asap.js",
"browser": {
"./asap": "./browser-asap.js",
"./asap.js": "./browser-asap.js",
@@ -29,14 +20,29 @@
"./raw.js": "./browser-raw.js",
"./test/domain.js": "./test/browser-domain.js"
},
- "bugs": {
- "url": "https://github.com/kriskowal/asap/issues"
+ "react-native": {
+ "domain": false
+ },
+ "files": [
+ "raw.js",
+ "asap.js",
+ "browser-raw.js",
+ "browser-asap.js"
+ ],
+ "scripts": {
+ "test": "npm run lint && npm run test-node",
+ "test-travis": "npm run lint && npm run test-node && npm run test-saucelabs && npm run test-saucelabs-worker",
+ "test-node": "node test/asap-test.js",
+ "test-publish": "node scripts/publish-bundle.js test/asap-test.js | pbcopy",
+ "test-browser": "node scripts/publish-bundle.js test/asap-test.js | xargs opener",
+ "test-saucelabs": "node scripts/saucelabs.js test/asap-test.js scripts/saucelabs-spot-configurations.json",
+ "test-saucelabs-all": "node scripts/saucelabs.js test/asap-test.js scripts/saucelabs-all-configurations.json",
+ "test-saucelabs-worker": "node scripts/saucelabs-worker-test.js scripts/saucelabs-spot-configurations.json",
+ "test-saucelabs-worker-all": "node scripts/saucelabs-worker-test.js scripts/saucelabs-all-configurations.json",
+ "lint": "jshint raw.js asap.js browser-raw.js browser-asap.js $(find scripts -name '*.js' | grep -v gauntlet)",
+ "benchmarks": "node benchmarks"
},
- "bundleDependencies": false,
- "deprecated": false,
- "description": "High-priority task queue for Node.js and browsers",
"devDependencies": {
- "benchmark": "^1.0.0",
"events": "^1.0.1",
"jshint": "^2.5.1",
"knox": "^0.8.10",
@@ -46,42 +52,7 @@
"q-io": "^2.0.3",
"saucelabs": "^0.1.1",
"wd": "^0.2.21",
- "weak-map": "^1.0.5"
- },
- "files": [
- "raw.js",
- "asap.js",
- "browser-raw.js",
- "browser-asap.js"
- ],
- "homepage": "https://github.com/kriskowal/asap#readme",
- "keywords": [
- "event",
- "task",
- "queue"
- ],
- "license": "MIT",
- "main": "./asap.js",
- "name": "asap",
- "react-native": {
- "domain": false
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/kriskowal/asap.git"
- },
- "scripts": {
- "benchmarks": "node benchmarks",
- "lint": "jshint raw.js asap.js browser-raw.js browser-asap.js $(find scripts -name '*.js' | grep -v gauntlet)",
- "test": "npm run lint && npm run test-node",
- "test-browser": "node scripts/publish-bundle.js test/asap-test.js | xargs opener",
- "test-node": "node test/asap-test.js",
- "test-publish": "node scripts/publish-bundle.js test/asap-test.js | pbcopy",
- "test-saucelabs": "node scripts/saucelabs.js test/asap-test.js scripts/saucelabs-spot-configurations.json",
- "test-saucelabs-all": "node scripts/saucelabs.js test/asap-test.js scripts/saucelabs-all-configurations.json",
- "test-saucelabs-worker": "node scripts/saucelabs-worker-test.js scripts/saucelabs-spot-configurations.json",
- "test-saucelabs-worker-all": "node scripts/saucelabs-worker-test.js scripts/saucelabs-all-configurations.json",
- "test-travis": "npm run lint && npm run test-node && npm run test-saucelabs && npm run test-saucelabs-worker"
- },
- "version": "2.0.6"
+ "weak-map": "^1.0.5",
+ "benchmark": "^1.0.0"
+ }
}
diff --git a/node_modules/asn1.js-rfc2560/package.json b/node_modules/asn1.js-rfc2560/package.json
index 3c281a9..b4ff73e 100644
--- a/node_modules/asn1.js-rfc2560/package.json
+++ b/node_modules/asn1.js-rfc2560/package.json
@@ -1,60 +1,33 @@
{
- "_from": "asn1.js-rfc2560@^4.0.0",
- "_id": "asn1.js-rfc2560@4.0.6",
- "_inBundle": false,
- "_integrity": "sha512-ysf48ni+f/efNPilq4+ApbifUPcSW/xbDeQAh055I+grr2gXgNRQqHew7kkO70WSMQ2tEOURVwsK+dJqUNjIIg==",
- "_location": "/asn1.js-rfc2560",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "asn1.js-rfc2560@^4.0.0",
- "name": "asn1.js-rfc2560",
- "escapedName": "asn1.js-rfc2560",
- "rawSpec": "^4.0.0",
- "saveSpec": null,
- "fetchSpec": "^4.0.0"
- },
- "_requiredBy": [
- "/ocsp"
- ],
- "_resolved": "https://registry.npmjs.org/asn1.js-rfc2560/-/asn1.js-rfc2560-4.0.6.tgz",
- "_shasum": "0975ce84768a8401e95884ad13e2d00e7b25a280",
- "_spec": "asn1.js-rfc2560@^4.0.0",
- "_where": "/home/ubuntu/OCSP/node_modules/ocsp",
- "author": {
- "name": "Fedor Indutny"
- },
- "bugs": {
- "url": "https://github.com/indutny/asn1.js/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "asn1.js-rfc5280": "^2.0.0"
- },
- "deprecated": false,
+ "name": "asn1.js-rfc2560",
+ "version": "4.0.6",
"description": "RFC2560 structures for asn1.js",
- "devDependencies": {
- "mocha": "^4.0.1"
+ "main": "index.js",
+ "repository": {
+ "type": "git",
+ "url": "git@github.com:indutny/asn1.js"
},
- "homepage": "https://github.com/indutny/asn1.js",
"keywords": [
"asn1",
"rfc2560",
"der"
],
- "license": "MIT",
- "main": "index.js",
- "name": "asn1.js-rfc2560",
- "peerDependencies": {
- "asn1.js": "^4.4.0"
- },
- "repository": {
- "type": "git",
- "url": "git+ssh://git@github.com/indutny/asn1.js.git"
- },
"scripts": {
"test": "mocha --reporter=spec test/*-test.js"
},
- "version": "4.0.6"
+ "author": "Fedor Indutny",
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/indutny/asn1.js/issues"
+ },
+ "homepage": "https://github.com/indutny/asn1.js",
+ "dependencies": {
+ "asn1.js-rfc5280": "^2.0.0"
+ },
+ "peerDependencies": {
+ "asn1.js": "^4.4.0"
+ },
+ "devDependencies": {
+ "mocha": "^4.0.1"
+ }
}
diff --git a/node_modules/asn1.js-rfc5280/package.json b/node_modules/asn1.js-rfc5280/package.json
index f52fb24..318cd81 100644
--- a/node_modules/asn1.js-rfc5280/package.json
+++ b/node_modules/asn1.js-rfc5280/package.json
@@ -1,58 +1,30 @@
{
- "_from": "asn1.js-rfc5280@^2.0.0",
- "_id": "asn1.js-rfc5280@2.0.1",
- "_inBundle": false,
- "_integrity": "sha512-1e2ypnvTbYD/GdxWK77tdLBahvo1fZUHlQJqAVUuZWdYj0rdjGcf2CWYUtbsyRYpYUMwMWLZFUtLxog8ZXTrcg==",
- "_location": "/asn1.js-rfc5280",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "asn1.js-rfc5280@^2.0.0",
- "name": "asn1.js-rfc5280",
- "escapedName": "asn1.js-rfc5280",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/asn1.js-rfc2560",
- "/ocsp"
- ],
- "_resolved": "https://registry.npmjs.org/asn1.js-rfc5280/-/asn1.js-rfc5280-2.0.1.tgz",
- "_shasum": "072f3dfc03f86d1faae7485c6197584ba2bb5ddc",
- "_spec": "asn1.js-rfc5280@^2.0.0",
- "_where": "/home/ubuntu/OCSP/node_modules/ocsp",
- "author": {
- "name": "Felix Hanley"
- },
- "bugs": {
- "url": "https://github.com/indutny/asn1.js/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "asn1.js": "^4.5.0"
- },
- "deprecated": false,
+ "name": "asn1.js-rfc5280",
+ "version": "2.0.1",
"description": "RFC5280 extension structures for asn1.js",
- "devDependencies": {
- "mocha": "^4.0.1"
+ "main": "index.js",
+ "repository": {
+ "type": "git",
+ "url": "git@github.com:indutny/asn1.js"
},
- "homepage": "https://github.com/indutny/asn1.js",
"keywords": [
"asn1",
"rfc5280",
"der"
],
- "license": "MIT",
- "main": "index.js",
- "name": "asn1.js-rfc5280",
- "repository": {
- "type": "git",
- "url": "git+ssh://git@github.com/indutny/asn1.js.git"
- },
"scripts": {
"test": "mocha --reporter=spec test/*-test.js"
},
- "version": "2.0.1"
+ "author": "Felix Hanley",
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/indutny/asn1.js/issues"
+ },
+ "homepage": "https://github.com/indutny/asn1.js",
+ "dependencies": {
+ "asn1.js": "^4.5.0"
+ },
+ "devDependencies": {
+ "mocha": "^4.0.1"
+ }
}
diff --git a/node_modules/asn1.js/package.json b/node_modules/asn1.js/package.json
index d61172c..911b821 100644
--- a/node_modules/asn1.js/package.json
+++ b/node_modules/asn1.js/package.json
@@ -1,59 +1,31 @@
{
- "_from": "asn1.js@^4.8.0",
- "_id": "asn1.js@4.10.1",
- "_inBundle": false,
- "_integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==",
- "_location": "/asn1.js",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "asn1.js@^4.8.0",
- "name": "asn1.js",
- "escapedName": "asn1.js",
- "rawSpec": "^4.8.0",
- "saveSpec": null,
- "fetchSpec": "^4.8.0"
- },
- "_requiredBy": [
- "/asn1.js-rfc5280",
- "/ocsp"
- ],
- "_resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz",
- "_shasum": "b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0",
- "_spec": "asn1.js@^4.8.0",
- "_where": "/home/ubuntu/OCSP/node_modules/ocsp",
- "author": {
- "name": "Fedor Indutny"
- },
- "bugs": {
- "url": "https://github.com/indutny/asn1.js/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "bn.js": "^4.0.0",
- "inherits": "^2.0.1",
- "minimalistic-assert": "^1.0.0"
- },
- "deprecated": false,
+ "name": "asn1.js",
+ "version": "4.10.1",
"description": "ASN.1 encoder and decoder",
- "devDependencies": {
- "mocha": "^2.3.4"
+ "main": "lib/asn1.js",
+ "scripts": {
+ "test": "mocha --reporter spec test/*-test.js && cd rfc/2560 && npm i && npm test && cd ../../rfc/5280 && npm i && npm test"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git@github.com:indutny/asn1.js"
},
- "homepage": "https://github.com/indutny/asn1.js",
"keywords": [
"asn.1",
"der"
],
+ "author": "Fedor Indutny",
"license": "MIT",
- "main": "lib/asn1.js",
- "name": "asn1.js",
- "repository": {
- "type": "git",
- "url": "git+ssh://git@github.com/indutny/asn1.js.git"
+ "bugs": {
+ "url": "https://github.com/indutny/asn1.js/issues"
},
- "scripts": {
- "test": "mocha --reporter spec test/*-test.js && cd rfc/2560 && npm i && npm test && cd ../../rfc/5280 && npm i && npm test"
+ "homepage": "https://github.com/indutny/asn1.js",
+ "devDependencies": {
+ "mocha": "^2.3.4"
},
- "version": "4.10.1"
+ "dependencies": {
+ "bn.js": "^4.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0"
+ }
}
diff --git a/node_modules/async/package.json b/node_modules/async/package.json
index d879ff6..11725e8 100644
--- a/node_modules/async/package.json
+++ b/node_modules/async/package.json
@@ -1,38 +1,30 @@
{
- "_from": "async@^1.5.2",
- "_id": "async@1.5.2",
- "_inBundle": false,
- "_integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==",
- "_location": "/async",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "async@^1.5.2",
- "name": "async",
- "escapedName": "async",
- "rawSpec": "^1.5.2",
- "saveSpec": null,
- "fetchSpec": "^1.5.2"
- },
- "_requiredBy": [
- "/ocsp"
+ "name": "async",
+ "description": "Higher-order functions and common patterns for asynchronous code",
+ "main": "lib/async.js",
+ "files": [
+ "lib",
+ "dist/async.js",
+ "dist/async.min.js"
],
- "_resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
- "_shasum": "ec6a61ae56480c0c3cb241c95618e20892f9672a",
- "_spec": "async@^1.5.2",
- "_where": "/home/ubuntu/OCSP/node_modules/ocsp",
- "author": {
- "name": "Caolan McMahon"
+ "author": "Caolan McMahon",
+ "version": "1.5.2",
+ "keywords": [
+ "async",
+ "callback",
+ "utility",
+ "module"
+ ],
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
},
"bugs": {
"url": "https://github.com/caolan/async/issues"
},
- "bundleDependencies": false,
- "deprecated": false,
- "description": "Higher-order functions and common patterns for asynchronous code",
+ "license": "MIT",
"devDependencies": {
- "benchmark": "github:bestiejs/benchmark.js",
+ "benchmark": "bestiejs/benchmark.js",
"bluebird": "^2.9.32",
"chai": "^3.1.0",
"coveralls": "^2.11.2",
@@ -56,12 +48,6 @@
"xyz": "^0.5.0",
"yargs": "~3.9.1"
},
- "files": [
- "lib",
- "dist/async.js",
- "dist/async.min.js"
- ],
- "homepage": "https://github.com/caolan/async#readme",
"jam": {
"main": "lib/async.js",
"include": [
@@ -73,33 +59,19 @@
"Utilities"
]
},
- "keywords": [
- "async",
- "callback",
- "utility",
- "module"
- ],
- "license": "MIT",
- "main": "lib/async.js",
- "name": "async",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/caolan/async.git"
- },
"scripts": {
- "coverage": "nyc npm test && nyc report",
- "coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls",
- "lint": "jshint lib/*.js test/*.js perf/*.js && jscs lib/*.js test/*.js perf/*.js",
- "mocha-browser-test": "karma start",
"mocha-node-test": "mocha mocha_test/",
+ "mocha-browser-test": "karma start",
"mocha-test": "npm run mocha-node-test && npm run mocha-browser-test",
"nodeunit-test": "nodeunit test/test-async.js",
- "test": "npm run-script lint && npm run nodeunit-test && npm run mocha-test"
+ "test": "npm run-script lint && npm run nodeunit-test && npm run mocha-test",
+ "lint": "jshint lib/*.js test/*.js perf/*.js && jscs lib/*.js test/*.js perf/*.js",
+ "coverage": "nyc npm test && nyc report",
+ "coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls"
},
"spm": {
"main": "lib/async.js"
},
- "version": "1.5.2",
"volo": {
"main": "lib/async.js",
"ignore": [
diff --git a/node_modules/bn.js/package.json b/node_modules/bn.js/package.json
index 36c3961..098b805 100644
--- a/node_modules/bn.js/package.json
+++ b/node_modules/bn.js/package.json
@@ -1,46 +1,17 @@
{
- "_from": "bn.js@^4.0.0",
- "_id": "bn.js@4.12.0",
- "_inBundle": false,
- "_integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
- "_location": "/bn.js",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "bn.js@^4.0.0",
- "name": "bn.js",
- "escapedName": "bn.js",
- "rawSpec": "^4.0.0",
- "saveSpec": null,
- "fetchSpec": "^4.0.0"
- },
- "_requiredBy": [
- "/asn1.js"
- ],
- "_resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "_shasum": "775b3f278efbb9718eec7361f483fb36fbbfea88",
- "_spec": "bn.js@^4.0.0",
- "_where": "/home/ubuntu/OCSP/node_modules/asn1.js",
- "author": {
- "name": "Fedor Indutny",
- "email": "fedor@indutny.com"
- },
- "browser": {
- "buffer": false
- },
- "bugs": {
- "url": "https://github.com/indutny/bn.js/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
+ "name": "bn.js",
+ "version": "4.12.0",
"description": "Big number implementation in pure javascript",
- "devDependencies": {
- "istanbul": "^0.3.5",
- "mocha": "^2.1.0",
- "semistandard": "^7.0.4"
+ "main": "lib/bn.js",
+ "scripts": {
+ "lint": "semistandard",
+ "unit": "mocha --reporter=spec test/*-test.js",
+ "test": "npm run lint && npm run unit"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git@github.com:indutny/bn.js"
},
- "homepage": "https://github.com/indutny/bn.js",
"keywords": [
"BN",
"BigNum",
@@ -48,17 +19,18 @@
"Modulo",
"Montgomery"
],
+ "author": "Fedor Indutny ",
"license": "MIT",
- "main": "lib/bn.js",
- "name": "bn.js",
- "repository": {
- "type": "git",
- "url": "git+ssh://git@github.com/indutny/bn.js.git"
+ "bugs": {
+ "url": "https://github.com/indutny/bn.js/issues"
},
- "scripts": {
- "lint": "semistandard",
- "test": "npm run lint && npm run unit",
- "unit": "mocha --reporter=spec test/*-test.js"
+ "homepage": "https://github.com/indutny/bn.js",
+ "browser": {
+ "buffer": false
},
- "version": "4.12.0"
+ "devDependencies": {
+ "istanbul": "^0.3.5",
+ "mocha": "^2.1.0",
+ "semistandard": "^7.0.4"
+ }
}
diff --git a/node_modules/call-bind/.eslintrc b/node_modules/call-bind/.eslintrc
index e5d3c9a..dfa9a6c 100644
--- a/node_modules/call-bind/.eslintrc
+++ b/node_modules/call-bind/.eslintrc
@@ -12,6 +12,5 @@
],
}],
"no-magic-numbers": 0,
- "operator-linebreak": [2, "before"],
},
}
diff --git a/node_modules/call-bind/.nycrc b/node_modules/call-bind/.nycrc
index 1826526..bdd626c 100644
--- a/node_modules/call-bind/.nycrc
+++ b/node_modules/call-bind/.nycrc
@@ -2,10 +2,6 @@
"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"
diff --git a/node_modules/call-bind/CHANGELOG.md b/node_modules/call-bind/CHANGELOG.md
index 62a3727..c653f70 100644
--- a/node_modules/call-bind/CHANGELOG.md
+++ b/node_modules/call-bind/CHANGELOG.md
@@ -5,6 +5,57 @@ 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.7](https://github.com/ljharb/call-bind/compare/v1.0.6...v1.0.7) - 2024-02-12
+
+### Commits
+
+- [Refactor] use `es-define-property` [`09b76a0`](https://github.com/ljharb/call-bind/commit/09b76a01634440461d44a80c9924ec4b500f3b03)
+- [Deps] update `get-intrinsic`, `set-function-length` [`ad5136d`](https://github.com/ljharb/call-bind/commit/ad5136ddda2a45c590959829ad3dce0c9f4e3590)
+
+## [v1.0.6](https://github.com/ljharb/call-bind/compare/v1.0.5...v1.0.6) - 2024-02-05
+
+### Commits
+
+- [Dev Deps] update `aud`, `npmignore`, `tape` [`d564d5c`](https://github.com/ljharb/call-bind/commit/d564d5ce3e06a19df4d499c77f8d1a9da44e77aa)
+- [Deps] update `get-intrinsic`, `set-function-length` [`cfc2bdc`](https://github.com/ljharb/call-bind/commit/cfc2bdca7b633df0e0e689e6b637f668f1c6792e)
+- [Refactor] use `es-errors`, so things that only need those do not need `get-intrinsic` [`64cd289`](https://github.com/ljharb/call-bind/commit/64cd289ae5862c250a4ca80aa8d461047c166af5)
+- [meta] add missing `engines.node` [`32a4038`](https://github.com/ljharb/call-bind/commit/32a4038857b62179f7f9b7b3df2c5260036be582)
+
+## [v1.0.5](https://github.com/ljharb/call-bind/compare/v1.0.4...v1.0.5) - 2023-10-19
+
+### Commits
+
+- [Fix] throw an error on non-functions as early as possible [`f262408`](https://github.com/ljharb/call-bind/commit/f262408f822c840fbc268080f3ad7c429611066d)
+- [Deps] update `set-function-length` [`3fff271`](https://github.com/ljharb/call-bind/commit/3fff27145a1e3a76a5b74f1d7c3c43d0fa3b9871)
+
+## [v1.0.4](https://github.com/ljharb/call-bind/compare/v1.0.3...v1.0.4) - 2023-10-19
+
+## [v1.0.3](https://github.com/ljharb/call-bind/compare/v1.0.2...v1.0.3) - 2023-10-19
+
+### Commits
+
+- [actions] reuse common workflows [`a994df6`](https://github.com/ljharb/call-bind/commit/a994df69f401f4bf735a4ccd77029b85d1549453)
+- [meta] use `npmignore` to autogenerate an npmignore file [`eef3ef2`](https://github.com/ljharb/call-bind/commit/eef3ef21e1f002790837fedb8af2679c761fbdf5)
+- [readme] flesh out content [`1845ccf`](https://github.com/ljharb/call-bind/commit/1845ccfd9976a607884cfc7157c93192cc16cf22)
+- [actions] use `node/install` instead of `node/run`; use `codecov` action [`5b47d53`](https://github.com/ljharb/call-bind/commit/5b47d53d2fd74af5ea0a44f1d51e503cd42f7a90)
+- [Refactor] use `set-function-length` [`a0e165c`](https://github.com/ljharb/call-bind/commit/a0e165c5dc61db781cbc919b586b1c2b8da0b150)
+- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `tape` [`9c50103`](https://github.com/ljharb/call-bind/commit/9c50103f44137279a817317cf6cc421a658f85b4)
+- [meta] simplify "exports" [`019c6d0`](https://github.com/ljharb/call-bind/commit/019c6d06b0e1246ceed8e579f57e44441cbbf6d9)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `safe-publish-latest`, `tape` [`23bd718`](https://github.com/ljharb/call-bind/commit/23bd718a288d3b03042062b4ef5153b3cea83f11)
+- [actions] update codecov uploader [`62552d7`](https://github.com/ljharb/call-bind/commit/62552d79cc79e05825e99aaba134ae5b37f33da5)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`ec81665`](https://github.com/ljharb/call-bind/commit/ec81665b300f87eabff597afdc8b8092adfa7afd)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `tape` [`35d67fc`](https://github.com/ljharb/call-bind/commit/35d67fcea883e686650f736f61da5ddca2592de8)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`0266d8d`](https://github.com/ljharb/call-bind/commit/0266d8d2a45086a922db366d0c2932fa463662ff)
+- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `tape` [`43a5b28`](https://github.com/ljharb/call-bind/commit/43a5b28a444e710e1bbf92adb8afb5cf7523a223)
+- [Deps] update `define-data-property`, `function-bind`, `get-intrinsic` [`780eb36`](https://github.com/ljharb/call-bind/commit/780eb36552514f8cc99c70821ce698697c2726a5)
+- [Dev Deps] update `aud`, `tape` [`90d50ad`](https://github.com/ljharb/call-bind/commit/90d50ad03b061e0268b3380b0065fcaec183dc05)
+- [meta] use `prepublishOnly` script for npm 7+ [`44c5433`](https://github.com/ljharb/call-bind/commit/44c5433b7980e02b4870007046407cf6fc543329)
+- [Deps] update `get-intrinsic` [`86bfbfc`](https://github.com/ljharb/call-bind/commit/86bfbfcf34afdc6eabc93ce3d408548d0e27d958)
+- [Deps] update `get-intrinsic` [`5c53354`](https://github.com/ljharb/call-bind/commit/5c5335489be0294c18cd7a8bb6e08226ee019ff5)
+- [actions] update checkout action [`4c393a8`](https://github.com/ljharb/call-bind/commit/4c393a8173b3c8e5b30d5b3297b3b94d48bf87f3)
+- [Deps] update `get-intrinsic` [`4e70bde`](https://github.com/ljharb/call-bind/commit/4e70bdec0626acb11616d66250fc14565e716e91)
+- [Deps] update `get-intrinsic` [`55ae803`](https://github.com/ljharb/call-bind/commit/55ae803a920bd93c369cd798c20de31f91e9fc60)
+
## [v1.0.2](https://github.com/ljharb/call-bind/compare/v1.0.1...v1.0.2) - 2021-01-11
### Commits
diff --git a/node_modules/call-bind/README.md b/node_modules/call-bind/README.md
index 53649eb..48e9047 100644
--- a/node_modules/call-bind/README.md
+++ b/node_modules/call-bind/README.md
@@ -1,2 +1,64 @@
-# call-bind
+# call-bind [![Version Badge][npm-version-svg]][package-url]
+
+[![github actions][actions-image]][actions-url]
+[![coverage][codecov-image]][codecov-url]
+[![dependency status][deps-svg]][deps-url]
+[![dev dependency status][dev-deps-svg]][dev-deps-url]
+[![License][license-image]][license-url]
+[![Downloads][downloads-image]][downloads-url]
+
+[![npm badge][npm-badge-png]][package-url]
+
Robustly `.call.bind()` a function.
+
+## Getting started
+
+```sh
+npm install --save call-bind
+```
+
+## Usage/Examples
+
+```js
+const assert = require('assert');
+const callBind = require('call-bind');
+const callBound = require('call-bind/callBound');
+
+function f(a, b) {
+ assert.equal(this, 1);
+ assert.equal(a, 2);
+ assert.equal(b, 3);
+ assert.equal(arguments.length, 2);
+}
+
+const fBound = callBind(f);
+
+const slice = callBound('Array.prototype.slice');
+
+delete Function.prototype.call;
+delete Function.prototype.bind;
+
+fBound(1, 2, 3);
+
+assert.deepEqual(slice([1, 2, 3, 4], 1, -1), [2, 3]);
+```
+
+## Tests
+
+Clone the repo, `npm install`, and run `npm test`
+
+[package-url]: https://npmjs.org/package/call-bind
+[npm-version-svg]: https://versionbadg.es/ljharb/call-bind.svg
+[deps-svg]: https://david-dm.org/ljharb/call-bind.svg
+[deps-url]: https://david-dm.org/ljharb/call-bind
+[dev-deps-svg]: https://david-dm.org/ljharb/call-bind/dev-status.svg
+[dev-deps-url]: https://david-dm.org/ljharb/call-bind#info=devDependencies
+[npm-badge-png]: https://nodei.co/npm/call-bind.png?downloads=true&stars=true
+[license-image]: https://img.shields.io/npm/l/call-bind.svg
+[license-url]: LICENSE
+[downloads-image]: https://img.shields.io/npm/dm/call-bind.svg
+[downloads-url]: https://npm-stat.com/charts.html?package=call-bind
+[codecov-image]: https://codecov.io/gh/ljharb/call-bind/branch/main/graphs/badge.svg
+[codecov-url]: https://app.codecov.io/gh/ljharb/call-bind/
+[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/call-bind
+[actions-url]: https://github.com/ljharb/call-bind/actions
diff --git a/node_modules/call-bind/index.js b/node_modules/call-bind/index.js
index 6fa3e4a..01c5b3d 100644
--- a/node_modules/call-bind/index.js
+++ b/node_modules/call-bind/index.js
@@ -2,38 +2,26 @@
var bind = require('function-bind');
var GetIntrinsic = require('get-intrinsic');
+var setFunctionLength = require('set-function-length');
+var $TypeError = require('es-errors/type');
var $apply = GetIntrinsic('%Function.prototype.apply%');
var $call = GetIntrinsic('%Function.prototype.call%');
var $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);
-var $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);
-var $defineProperty = GetIntrinsic('%Object.defineProperty%', true);
+var $defineProperty = require('es-define-property');
var $max = GetIntrinsic('%Math.max%');
-if ($defineProperty) {
- try {
- $defineProperty({}, 'a', { value: 1 });
- } catch (e) {
- // IE 8 has a broken defineProperty
- $defineProperty = null;
- }
-}
-
module.exports = function callBind(originalFunction) {
- var func = $reflectApply(bind, $call, arguments);
- if ($gOPD && $defineProperty) {
- var desc = $gOPD(func, 'length');
- if (desc.configurable) {
- // original length, plus the receiver, minus any additional arguments (after the receiver)
- $defineProperty(
- func,
- 'length',
- { value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }
- );
- }
+ if (typeof originalFunction !== 'function') {
+ throw new $TypeError('a function is required');
}
- return func;
+ var func = $reflectApply(bind, $call, arguments);
+ return setFunctionLength(
+ func,
+ 1 + $max(0, originalFunction.length - (arguments.length - 1)),
+ true
+ );
};
var applyBind = function applyBind() {
diff --git a/node_modules/call-bind/package.json b/node_modules/call-bind/package.json
index c22e52f..5ba88ff 100644
--- a/node_modules/call-bind/package.json
+++ b/node_modules/call-bind/package.json
@@ -1,108 +1,95 @@
{
- "_from": "call-bind@^1.0.0",
- "_id": "call-bind@1.0.2",
- "_inBundle": false,
- "_integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
- "_location": "/call-bind",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "call-bind@^1.0.0",
- "name": "call-bind",
- "escapedName": "call-bind",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/side-channel"
- ],
- "_resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "_shasum": "b1d4e89e688119c3c9a903ad30abb2f6a919be3c",
- "_spec": "call-bind@^1.0.0",
- "_where": "/home/ubuntu/formidable/node_modules/side-channel",
- "author": {
- "name": "Jordan Harband",
- "email": "ljharb@gmail.com"
- },
- "auto-changelog": {
- "output": "CHANGELOG.md",
- "template": "keepachangelog",
- "unreleased": false,
- "commitLimit": false,
- "backfillLimit": false,
- "hideCredit": true
- },
- "bugs": {
- "url": "https://github.com/ljharb/call-bind/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
- },
- "deprecated": false,
- "description": "Robustly `.call.bind()` a function",
- "devDependencies": {
- "@ljharb/eslint-config": "^17.3.0",
- "aud": "^1.1.3",
- "auto-changelog": "^2.2.1",
- "eslint": "^7.17.0",
- "nyc": "^10.3.2",
- "safe-publish-latest": "^1.1.4",
- "tape": "^5.1.1"
- },
- "exports": {
- ".": [
- {
- "default": "./index.js"
- },
- "./index.js"
- ],
- "./callBound": [
- {
- "default": "./callBound.js"
- },
- "./callBound.js"
- ],
- "./package.json": "./package.json"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- },
- "homepage": "https://github.com/ljharb/call-bind#readme",
- "keywords": [
- "javascript",
- "ecmascript",
- "es",
- "js",
- "callbind",
- "callbound",
- "call",
- "bind",
- "bound",
- "call-bind",
- "call-bound",
- "function",
- "es-abstract"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "call-bind",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/ljharb/call-bind.git"
- },
- "scripts": {
- "lint": "eslint --ext=.js,.mjs .",
- "posttest": "aud --production",
- "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"",
- "prepublish": "safe-publish-latest",
- "pretest": "npm run lint",
- "test": "npm run tests-only",
- "tests-only": "nyc tape 'test/*'",
- "version": "auto-changelog && git add CHANGELOG.md"
- },
- "version": "1.0.2"
+ "name": "call-bind",
+ "version": "1.0.7",
+ "description": "Robustly `.call.bind()` a function",
+ "main": "index.js",
+ "exports": {
+ ".": "./index.js",
+ "./callBound": "./callBound.js",
+ "./package.json": "./package.json"
+ },
+ "scripts": {
+ "prepack": "npmignore --auto --commentLines=auto",
+ "prepublish": "not-in-publish || npm run prepublishOnly",
+ "prepublishOnly": "safe-publish-latest",
+ "lint": "eslint --ext=.js,.mjs .",
+ "postlint": "evalmd README.md",
+ "pretest": "npm run lint",
+ "tests-only": "nyc tape 'test/**/*.js'",
+ "test": "npm run tests-only",
+ "posttest": "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/call-bind.git"
+ },
+ "keywords": [
+ "javascript",
+ "ecmascript",
+ "es",
+ "js",
+ "callbind",
+ "callbound",
+ "call",
+ "bind",
+ "bound",
+ "call-bind",
+ "call-bound",
+ "function",
+ "es-abstract"
+ ],
+ "author": "Jordan Harband ",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ },
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/ljharb/call-bind/issues"
+ },
+ "homepage": "https://github.com/ljharb/call-bind#readme",
+ "devDependencies": {
+ "@ljharb/eslint-config": "^21.1.0",
+ "aud": "^2.0.4",
+ "auto-changelog": "^2.4.0",
+ "es-value-fixtures": "^1.4.2",
+ "eslint": "=8.8.0",
+ "evalmd": "^0.0.19",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-strict-mode": "^1.0.1",
+ "in-publish": "^2.0.1",
+ "npmignore": "^0.3.1",
+ "nyc": "^10.3.2",
+ "object-inspect": "^1.13.1",
+ "safe-publish-latest": "^2.0.0",
+ "tape": "^5.7.4"
+ },
+ "dependencies": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "set-function-length": "^1.2.1"
+ },
+ "testling": {
+ "files": "test/index.js"
+ },
+ "auto-changelog": {
+ "output": "CHANGELOG.md",
+ "template": "keepachangelog",
+ "unreleased": false,
+ "commitLimit": false,
+ "backfillLimit": false,
+ "hideCredit": true
+ },
+ "publishConfig": {
+ "ignore": [
+ ".github/workflows"
+ ]
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
}
diff --git a/node_modules/call-bind/test/callBound.js b/node_modules/call-bind/test/callBound.js
index 209ce3c..c32319d 100644
--- a/node_modules/call-bind/test/callBound.js
+++ b/node_modules/call-bind/test/callBound.js
@@ -40,7 +40,6 @@ test('callBound', function (t) {
'allowMissing arg still throws for unknown intrinsic'
);
- /* globals WeakRef: false */
t.test('real but absent intrinsic', { skip: typeof WeakRef !== 'undefined' }, function (st) {
st['throws'](
function () { callBound('WeakRef'); },
diff --git a/node_modules/call-bind/test/index.js b/node_modules/call-bind/test/index.js
index bf6769c..1fd4668 100644
--- a/node_modules/call-bind/test/index.js
+++ b/node_modules/call-bind/test/index.js
@@ -2,6 +2,11 @@
var callBind = require('../');
var bind = require('function-bind');
+var gOPD = require('gopd');
+var hasStrictMode = require('has-strict-mode')();
+var forEach = require('for-each');
+var inspect = require('object-inspect');
+var v = require('es-value-fixtures');
var test = require('tape');
@@ -10,15 +15,24 @@ var test = require('tape');
* in io.js v3, it is configurable except on bound functions, hence the .bind()
*/
var functionsHaveConfigurableLengths = !!(
- Object.getOwnPropertyDescriptor
+ gOPD
+ && Object.getOwnPropertyDescriptor
&& Object.getOwnPropertyDescriptor(bind.call(function () {}), 'length').configurable
);
test('callBind', function (t) {
+ forEach(v.nonFunctions, function (nonFunction) {
+ t['throws'](
+ function () { callBind(nonFunction); },
+ TypeError,
+ inspect(nonFunction) + ' is not a function'
+ );
+ });
+
var sentinel = { sentinel: true };
var func = function (a, b) {
// eslint-disable-next-line no-invalid-this
- return [this, a, b];
+ return [!hasStrictMode && this === global ? undefined : this, a, b];
};
t.equal(func.length, 2, 'original function length is 2');
t.deepEqual(func(), [undefined, undefined, undefined], 'unbound func with too few args');
@@ -28,8 +42,8 @@ test('callBind', function (t) {
var bound = callBind(func);
t.equal(bound.length, func.length + 1, 'function length is preserved', { skip: !functionsHaveConfigurableLengths });
t.deepEqual(bound(), [undefined, undefined, undefined], 'bound func with too few args');
- t.deepEqual(bound(1, 2), [1, 2, undefined], 'bound func with right args');
- t.deepEqual(bound(1, 2, 3), [1, 2, 3], 'bound func with too many args');
+ t.deepEqual(bound(1, 2), [hasStrictMode ? 1 : Object(1), 2, undefined], 'bound func with right args');
+ t.deepEqual(bound(1, 2, 3), [hasStrictMode ? 1 : Object(1), 2, 3], 'bound func with too many args');
var boundR = callBind(func, sentinel);
t.equal(boundR.length, func.length, 'function length is preserved', { skip: !functionsHaveConfigurableLengths });
diff --git a/node_modules/define-data-property/.eslintrc b/node_modules/define-data-property/.eslintrc
new file mode 100644
index 0000000..75443e8
--- /dev/null
+++ b/node_modules/define-data-property/.eslintrc
@@ -0,0 +1,24 @@
+{
+ "root": true,
+
+ "extends": "@ljharb",
+
+ "rules": {
+ "complexity": 0,
+ "id-length": 0,
+ "new-cap": ["error", {
+ "capIsNewExceptions": [
+ "GetIntrinsic",
+ ],
+ }],
+ },
+
+ "overrides": [
+ {
+ "files": "test/**",
+ "rules": {
+ "max-lines-per-function": "off",
+ },
+ },
+ ],
+}
diff --git a/node_modules/define-data-property/.github/FUNDING.yml b/node_modules/define-data-property/.github/FUNDING.yml
new file mode 100644
index 0000000..3e17725
--- /dev/null
+++ b/node_modules/define-data-property/.github/FUNDING.yml
@@ -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/define-data-property
+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']
diff --git a/node_modules/define-data-property/.nycrc b/node_modules/define-data-property/.nycrc
new file mode 100644
index 0000000..1826526
--- /dev/null
+++ b/node_modules/define-data-property/.nycrc
@@ -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"
+ ]
+}
diff --git a/node_modules/define-data-property/CHANGELOG.md b/node_modules/define-data-property/CHANGELOG.md
new file mode 100644
index 0000000..4eed75e
--- /dev/null
+++ b/node_modules/define-data-property/CHANGELOG.md
@@ -0,0 +1,70 @@
+# 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.1.4](https://github.com/ljharb/define-data-property/compare/v1.1.3...v1.1.4) - 2024-02-13
+
+### Commits
+
+- [Refactor] use `es-define-property` [`90f2f4c`](https://github.com/ljharb/define-data-property/commit/90f2f4cc20298401e71c28e1e08888db12021453)
+- [Dev Deps] update `@types/object.getownpropertydescriptors` [`cd929d9`](https://github.com/ljharb/define-data-property/commit/cd929d9a04f5f2fdcfa9d5be140940b91a083153)
+
+## [v1.1.3](https://github.com/ljharb/define-data-property/compare/v1.1.2...v1.1.3) - 2024-02-12
+
+### Commits
+
+- [types] hand-write d.ts instead of emitting it [`0cbc988`](https://github.com/ljharb/define-data-property/commit/0cbc988203c105f2d97948327c7167ebd33bd318)
+- [meta] simplify `exports` [`690781e`](https://github.com/ljharb/define-data-property/commit/690781eed28bbf2d6766237efda0ba6dd591609e)
+- [Dev Deps] update `hasown`; clean up DT packages [`6cdfd1c`](https://github.com/ljharb/define-data-property/commit/6cdfd1cb2d91d791bfd18cda5d5cab232fd5d8fc)
+- [actions] cleanup [`3142bc6`](https://github.com/ljharb/define-data-property/commit/3142bc6a4bc406a51f5b04f31e98562a27f35ffd)
+- [meta] add `funding` [`8474423`](https://github.com/ljharb/define-data-property/commit/847442391a79779af3e0f1bf0b5bb923552b7804)
+- [Deps] update `get-intrinsic` [`3e9be00`](https://github.com/ljharb/define-data-property/commit/3e9be00e07784ba34e7c77d8bc0fdbc832ad61de)
+
+## [v1.1.2](https://github.com/ljharb/define-data-property/compare/v1.1.1...v1.1.2) - 2024-02-05
+
+### Commits
+
+- [Dev Deps] update @types packages, `object-inspect`, `tape`, `typescript` [`df41bf8`](https://github.com/ljharb/define-data-property/commit/df41bf84ca3456be6226055caab44e38e3a7fd2f)
+- [Dev Deps] update DT packages, `aud`, `npmignore`, `tape`, typescript` [`fab0e4e`](https://github.com/ljharb/define-data-property/commit/fab0e4ec709ee02b79f42d6db3ee5f26e0a34b8a)
+- [Dev Deps] use `hasown` instead of `has` [`aa51ef9`](https://github.com/ljharb/define-data-property/commit/aa51ef93f6403d49d9bb72a807bcdb6e418978c0)
+- [Refactor] use `es-errors`, so things that only need those do not need `get-intrinsic` [`d89be50`](https://github.com/ljharb/define-data-property/commit/d89be50571175888d391238605122679f7e65ffc)
+- [Deps] update `has-property-descriptors` [`7af887c`](https://github.com/ljharb/define-data-property/commit/7af887c9083b59b195b0079e04815cfed9fcee2b)
+- [Deps] update `get-intrinsic` [`bb8728e`](https://github.com/ljharb/define-data-property/commit/bb8728ec42cd998505a7157ae24853a560c20646)
+
+## [v1.1.1](https://github.com/ljharb/define-data-property/compare/v1.1.0...v1.1.1) - 2023-10-12
+
+### Commits
+
+- [Tests] fix tests in ES3 engines [`5c6920e`](https://github.com/ljharb/define-data-property/commit/5c6920edd1f52f675b02f417e539c28135b43f94)
+- [Dev Deps] update `@types/es-value-fixtures`, `@types/for-each`, `@types/gopd`, `@types/has-property-descriptors`, `tape`, `typescript` [`7d82dfc`](https://github.com/ljharb/define-data-property/commit/7d82dfc20f778b4465bba06335dd53f6f431aea3)
+- [Fix] IE 8 has a broken `Object.defineProperty` [`0672e1a`](https://github.com/ljharb/define-data-property/commit/0672e1af2a9fcc787e7c23b96dea60d290df5548)
+- [meta] emit types on prepack [`73acb1f`](https://github.com/ljharb/define-data-property/commit/73acb1f903c21b314ec7156bf10f73c7910530c0)
+- [Dev Deps] update `tape`, `typescript` [`9489a77`](https://github.com/ljharb/define-data-property/commit/9489a7738bf2ecf0ac71d5b78ec4ca6ad7ba0142)
+
+## [v1.1.0](https://github.com/ljharb/define-data-property/compare/v1.0.1...v1.1.0) - 2023-09-13
+
+### Commits
+
+- [New] add `loose` arg [`155235a`](https://github.com/ljharb/define-data-property/commit/155235a4c4d7741f6de01cd87c99599a56654b72)
+- [New] allow `null` to be passed for the non* args [`7d2fa5f`](https://github.com/ljharb/define-data-property/commit/7d2fa5f06be0392736c13b126f7cd38979f34792)
+
+## [v1.0.1](https://github.com/ljharb/define-data-property/compare/v1.0.0...v1.0.1) - 2023-09-12
+
+### Commits
+
+- [meta] add TS types [`43d763c`](https://github.com/ljharb/define-data-property/commit/43d763c6c883f652de1c9c02ef6216ee507ffa69)
+- [Dev Deps] update `@types/tape`, `typescript` [`f444985`](https://github.com/ljharb/define-data-property/commit/f444985811c36f3e6448a03ad2f9b7898917f4c7)
+- [meta] add `safe-publish-latest`, [`172bb10`](https://github.com/ljharb/define-data-property/commit/172bb10890896ebb160e64398f6ee55760107bee)
+
+## v1.0.0 - 2023-09-12
+
+### Commits
+
+- Initial implementation, tests, readme [`5b43d6b`](https://github.com/ljharb/define-data-property/commit/5b43d6b44e675a904810467a7d4e0adb7efc3196)
+- Initial commit [`35e577a`](https://github.com/ljharb/define-data-property/commit/35e577a6ba59a98befa97776d70d90f3bea9009d)
+- npm init [`82a0a04`](https://github.com/ljharb/define-data-property/commit/82a0a04a321ca7de220af02d41e2745e8a9962ed)
+- Only apps should have lockfiles [`96df244`](https://github.com/ljharb/define-data-property/commit/96df244a3c6f426f9a2437be825d1c6f5dd7158e)
+- [meta] use `npmignore` to autogenerate an npmignore file [`a87ff18`](https://github.com/ljharb/define-data-property/commit/a87ff18cb79e14c2eb5720486c4759fd9a189375)
diff --git a/node_modules/define-data-property/LICENSE b/node_modules/define-data-property/LICENSE
new file mode 100644
index 0000000..b4213ac
--- /dev/null
+++ b/node_modules/define-data-property/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2023 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.
diff --git a/node_modules/define-data-property/README.md b/node_modules/define-data-property/README.md
new file mode 100644
index 0000000..f2304da
--- /dev/null
+++ b/node_modules/define-data-property/README.md
@@ -0,0 +1,67 @@
+# define-data-property [![Version Badge][npm-version-svg]][package-url]
+
+[![github actions][actions-image]][actions-url]
+[![coverage][codecov-image]][codecov-url]
+[![License][license-image]][license-url]
+[![Downloads][downloads-image]][downloads-url]
+
+[![npm badge][npm-badge-png]][package-url]
+
+Define a data property on an object. Will fall back to assignment in an engine without descriptors.
+
+The three `non*` argument can also be passed `null`, which will use the existing state if available.
+
+The `loose` argument will mean that if you attempt to set a non-normal data property, in an environment without descriptor support, it will fall back to normal assignment.
+
+## Usage
+
+```javascript
+var defineDataProperty = require('define-data-property');
+var assert = require('assert');
+
+var obj = {};
+defineDataProperty(obj, 'key', 'value');
+defineDataProperty(
+ obj,
+ 'key2',
+ 'value',
+ true, // nonEnumerable, optional
+ false, // nonWritable, optional
+ true, // nonConfigurable, optional
+ false // loose, optional
+);
+
+assert.deepEqual(
+ Object.getOwnPropertyDescriptors(obj),
+ {
+ key: {
+ configurable: true,
+ enumerable: true,
+ value: 'value',
+ writable: true,
+ },
+ key2: {
+ configurable: false,
+ enumerable: false,
+ value: 'value',
+ writable: true,
+ },
+ }
+);
+```
+
+[package-url]: https://npmjs.org/package/define-data-property
+[npm-version-svg]: https://versionbadg.es/ljharb/define-data-property.svg
+[deps-svg]: https://david-dm.org/ljharb/define-data-property.svg
+[deps-url]: https://david-dm.org/ljharb/define-data-property
+[dev-deps-svg]: https://david-dm.org/ljharb/define-data-property/dev-status.svg
+[dev-deps-url]: https://david-dm.org/ljharb/define-data-property#info=devDependencies
+[npm-badge-png]: https://nodei.co/npm/define-data-property.png?downloads=true&stars=true
+[license-image]: https://img.shields.io/npm/l/define-data-property.svg
+[license-url]: LICENSE
+[downloads-image]: https://img.shields.io/npm/dm/define-data-property.svg
+[downloads-url]: https://npm-stat.com/charts.html?package=define-data-property
+[codecov-image]: https://codecov.io/gh/ljharb/define-data-property/branch/main/graphs/badge.svg
+[codecov-url]: https://app.codecov.io/gh/ljharb/define-data-property/
+[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/define-data-property
+[actions-url]: https://github.com/ljharb/define-data-property/actions
diff --git a/node_modules/define-data-property/index.d.ts b/node_modules/define-data-property/index.d.ts
new file mode 100644
index 0000000..b56a77d
--- /dev/null
+++ b/node_modules/define-data-property/index.d.ts
@@ -0,0 +1,12 @@
+
+declare function defineDataProperty(
+ obj: Record,
+ property: keyof typeof obj,
+ value: typeof obj[typeof property],
+ nonEnumerable?: boolean | null,
+ nonWritable?: boolean | null,
+ nonConfigurable?: boolean | null,
+ loose?: boolean
+): void;
+
+export = defineDataProperty;
\ No newline at end of file
diff --git a/node_modules/define-data-property/index.js b/node_modules/define-data-property/index.js
new file mode 100644
index 0000000..e1a38c0
--- /dev/null
+++ b/node_modules/define-data-property/index.js
@@ -0,0 +1,56 @@
+'use strict';
+
+var $defineProperty = require('es-define-property');
+
+var $SyntaxError = require('es-errors/syntax');
+var $TypeError = require('es-errors/type');
+
+var gopd = require('gopd');
+
+/** @type {import('.')} */
+module.exports = function defineDataProperty(
+ obj,
+ property,
+ value
+) {
+ if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {
+ throw new $TypeError('`obj` must be an object or a function`');
+ }
+ if (typeof property !== 'string' && typeof property !== 'symbol') {
+ throw new $TypeError('`property` must be a string or a symbol`');
+ }
+ if (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {
+ throw new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');
+ }
+ if (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {
+ throw new $TypeError('`nonWritable`, if provided, must be a boolean or null');
+ }
+ if (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {
+ throw new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');
+ }
+ if (arguments.length > 6 && typeof arguments[6] !== 'boolean') {
+ throw new $TypeError('`loose`, if provided, must be a boolean');
+ }
+
+ var nonEnumerable = arguments.length > 3 ? arguments[3] : null;
+ var nonWritable = arguments.length > 4 ? arguments[4] : null;
+ var nonConfigurable = arguments.length > 5 ? arguments[5] : null;
+ var loose = arguments.length > 6 ? arguments[6] : false;
+
+ /* @type {false | TypedPropertyDescriptor} */
+ var desc = !!gopd && gopd(obj, property);
+
+ if ($defineProperty) {
+ $defineProperty(obj, property, {
+ configurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,
+ enumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,
+ value: value,
+ writable: nonWritable === null && desc ? desc.writable : !nonWritable
+ });
+ } else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {
+ // must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable
+ obj[property] = value; // eslint-disable-line no-param-reassign
+ } else {
+ throw new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');
+ }
+};
diff --git a/node_modules/define-data-property/package.json b/node_modules/define-data-property/package.json
new file mode 100644
index 0000000..eec4097
--- /dev/null
+++ b/node_modules/define-data-property/package.json
@@ -0,0 +1,106 @@
+{
+ "name": "define-data-property",
+ "version": "1.1.4",
+ "description": "Define a data property on an object. Will fall back to assignment in an engine without descriptors.",
+ "main": "index.js",
+ "types": "./index.d.ts",
+ "exports": {
+ ".": "./index.js",
+ "./package.json": "./package.json"
+ },
+ "sideEffects": false,
+ "scripts": {
+ "prepack": "npmignore --auto --commentLines=autogenerated",
+ "prepublish": "not-in-publish || npm run prepublishOnly",
+ "prepublishOnly": "safe-publish-latest",
+ "tsc": "tsc -p .",
+ "prelint": "evalmd README.md",
+ "lint": "eslint --ext=js,mjs .",
+ "postlint": "npm run tsc",
+ "pretest": "npm run lint",
+ "tests-only": "nyc tape 'test/**/*.js'",
+ "test": "npm run tests-only",
+ "posttest": "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/define-data-property.git"
+ },
+ "keywords": [
+ "define",
+ "data",
+ "property",
+ "object",
+ "accessor",
+ "javascript",
+ "ecmascript",
+ "enumerable",
+ "configurable",
+ "writable"
+ ],
+ "author": "Jordan Harband ",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ },
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/ljharb/define-data-property/issues"
+ },
+ "homepage": "https://github.com/ljharb/define-data-property#readme",
+ "dependencies": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.0.1"
+ },
+ "devDependencies": {
+ "@ljharb/eslint-config": "^21.1.0",
+ "@types/call-bind": "^1.0.5",
+ "@types/define-properties": "^1.1.5",
+ "@types/es-value-fixtures": "^1.4.4",
+ "@types/for-each": "^0.3.3",
+ "@types/get-intrinsic": "^1.2.2",
+ "@types/gopd": "^1.0.3",
+ "@types/has-property-descriptors": "^1.0.3",
+ "@types/object-inspect": "^1.8.4",
+ "@types/object.getownpropertydescriptors": "^2.1.4",
+ "@types/tape": "^5.6.4",
+ "aud": "^2.0.4",
+ "auto-changelog": "^2.4.0",
+ "es-value-fixtures": "^1.4.2",
+ "eslint": "=8.8.0",
+ "evalmd": "^0.0.19",
+ "for-each": "^0.3.3",
+ "hasown": "^2.0.1",
+ "in-publish": "^2.0.1",
+ "npmignore": "^0.3.1",
+ "nyc": "^10.3.2",
+ "object-inspect": "^1.13.1",
+ "object.getownpropertydescriptors": "^2.1.7",
+ "reflect.ownkeys": "^1.1.4",
+ "safe-publish-latest": "^2.0.0",
+ "tape": "^5.7.4",
+ "typescript": "next"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "testling": {
+ "files": "test/index.js"
+ },
+ "auto-changelog": {
+ "output": "CHANGELOG.md",
+ "template": "keepachangelog",
+ "unreleased": false,
+ "commitLimit": false,
+ "backfillLimit": false,
+ "hideCredit": true
+ },
+ "publishConfig": {
+ "ignore": [
+ ".github/workflows",
+ "types/reflect.ownkeys"
+ ]
+ }
+}
diff --git a/node_modules/define-data-property/test/index.js b/node_modules/define-data-property/test/index.js
new file mode 100644
index 0000000..68204c6
--- /dev/null
+++ b/node_modules/define-data-property/test/index.js
@@ -0,0 +1,392 @@
+'use strict';
+
+var test = require('tape');
+var v = require('es-value-fixtures');
+var forEach = require('for-each');
+var inspect = require('object-inspect');
+var hasOwn = require('hasown');
+var hasPropertyDescriptors = require('has-property-descriptors')();
+var getOwnPropertyDescriptors = require('object.getownpropertydescriptors');
+var ownKeys = require('reflect.ownkeys');
+
+var defineDataProperty = require('../');
+
+test('defineDataProperty', function (t) {
+ t.test('argument validation', function (st) {
+ forEach(v.primitives, function (nonObject) {
+ st['throws'](
+ // @ts-expect-error
+ function () { defineDataProperty(nonObject, 'key', 'value'); },
+ TypeError,
+ 'throws on non-object input: ' + inspect(nonObject)
+ );
+ });
+
+ forEach(v.nonPropertyKeys, function (nonPropertyKey) {
+ st['throws'](
+ // @ts-expect-error
+ function () { defineDataProperty({}, nonPropertyKey, 'value'); },
+ TypeError,
+ 'throws on non-PropertyKey input: ' + inspect(nonPropertyKey)
+ );
+ });
+
+ forEach(v.nonBooleans, function (nonBoolean) {
+ if (nonBoolean !== null) {
+ st['throws'](
+ // @ts-expect-error
+ function () { defineDataProperty({}, 'key', 'value', nonBoolean); },
+ TypeError,
+ 'throws on non-boolean nonEnumerable: ' + inspect(nonBoolean)
+ );
+
+ st['throws'](
+ // @ts-expect-error
+ function () { defineDataProperty({}, 'key', 'value', false, nonBoolean); },
+ TypeError,
+ 'throws on non-boolean nonWritable: ' + inspect(nonBoolean)
+ );
+
+ st['throws'](
+ // @ts-expect-error
+ function () { defineDataProperty({}, 'key', 'value', false, false, nonBoolean); },
+ TypeError,
+ 'throws on non-boolean nonConfigurable: ' + inspect(nonBoolean)
+ );
+ }
+ });
+
+ st.end();
+ });
+
+ t.test('normal data property', function (st) {
+ /** @type {Record} */
+ var obj = { existing: 'existing property' };
+ st.ok(hasOwn(obj, 'existing'), 'has initial own property');
+ st.equal(obj.existing, 'existing property', 'has expected initial value');
+
+ var res = defineDataProperty(obj, 'added', 'added property');
+ st.equal(res, void undefined, 'returns `undefined`');
+ st.ok(hasOwn(obj, 'added'), 'has expected own property');
+ st.equal(obj.added, 'added property', 'has expected value');
+
+ defineDataProperty(obj, 'existing', 'new value');
+ st.ok(hasOwn(obj, 'existing'), 'still has expected own property');
+ st.equal(obj.existing, 'new value', 'has new expected value');
+
+ defineDataProperty(obj, 'explicit1', 'new value', false);
+ st.ok(hasOwn(obj, 'explicit1'), 'has expected own property (explicit enumerable)');
+ st.equal(obj.explicit1, 'new value', 'has new expected value (explicit enumerable)');
+
+ defineDataProperty(obj, 'explicit2', 'new value', false, false);
+ st.ok(hasOwn(obj, 'explicit2'), 'has expected own property (explicit writable)');
+ st.equal(obj.explicit2, 'new value', 'has new expected value (explicit writable)');
+
+ defineDataProperty(obj, 'explicit3', 'new value', false, false, false);
+ st.ok(hasOwn(obj, 'explicit3'), 'has expected own property (explicit configurable)');
+ st.equal(obj.explicit3, 'new value', 'has new expected value (explicit configurable)');
+
+ st.end();
+ });
+
+ t.test('loose mode', { skip: !hasPropertyDescriptors }, function (st) {
+ var obj = { existing: 'existing property' };
+
+ defineDataProperty(obj, 'added', 'added value 1', true, null, null, true);
+ st.deepEqual(
+ getOwnPropertyDescriptors(obj),
+ {
+ existing: {
+ configurable: true,
+ enumerable: true,
+ value: 'existing property',
+ writable: true
+ },
+ added: {
+ configurable: true,
+ enumerable: !hasPropertyDescriptors,
+ value: 'added value 1',
+ writable: true
+ }
+ },
+ 'in loose mode, obj still adds property 1'
+ );
+
+ defineDataProperty(obj, 'added', 'added value 2', false, true, null, true);
+ st.deepEqual(
+ getOwnPropertyDescriptors(obj),
+ {
+ existing: {
+ configurable: true,
+ enumerable: true,
+ value: 'existing property',
+ writable: true
+ },
+ added: {
+ configurable: true,
+ enumerable: true,
+ value: 'added value 2',
+ writable: !hasPropertyDescriptors
+ }
+ },
+ 'in loose mode, obj still adds property 2'
+ );
+
+ defineDataProperty(obj, 'added', 'added value 3', false, false, true, true);
+ st.deepEqual(
+ getOwnPropertyDescriptors(obj),
+ {
+ existing: {
+ configurable: true,
+ enumerable: true,
+ value: 'existing property',
+ writable: true
+ },
+ added: {
+ configurable: !hasPropertyDescriptors,
+ enumerable: true,
+ value: 'added value 3',
+ writable: true
+ }
+ },
+ 'in loose mode, obj still adds property 3'
+ );
+
+ st.end();
+ });
+
+ t.test('non-normal data property, ES3', { skip: hasPropertyDescriptors }, function (st) {
+ /** @type {Record} */
+ var obj = { existing: 'existing property' };
+
+ st['throws'](
+ function () { defineDataProperty(obj, 'added', 'added value', true); },
+ SyntaxError,
+ 'nonEnumerable throws a Syntax Error'
+ );
+
+ st['throws'](
+ function () { defineDataProperty(obj, 'added', 'added value', false, true); },
+ SyntaxError,
+ 'nonWritable throws a Syntax Error'
+ );
+
+ st['throws'](
+ function () { defineDataProperty(obj, 'added', 'added value', false, false, true); },
+ SyntaxError,
+ 'nonWritable throws a Syntax Error'
+ );
+
+ st.deepEqual(
+ ownKeys(obj),
+ ['existing'],
+ 'obj still has expected keys'
+ );
+ st.equal(obj.existing, 'existing property', 'obj still has expected values');
+
+ st.end();
+ });
+
+ t.test('new non-normal data property, ES5+', { skip: !hasPropertyDescriptors }, function (st) {
+ /** @type {Record} */
+ var obj = { existing: 'existing property' };
+
+ defineDataProperty(obj, 'nonEnum', null, true);
+ defineDataProperty(obj, 'nonWrit', null, false, true);
+ defineDataProperty(obj, 'nonConf', null, false, false, true);
+
+ st.deepEqual(
+ getOwnPropertyDescriptors(obj),
+ {
+ existing: {
+ configurable: true,
+ enumerable: true,
+ value: 'existing property',
+ writable: true
+ },
+ nonEnum: {
+ configurable: true,
+ enumerable: false,
+ value: null,
+ writable: true
+ },
+ nonWrit: {
+ configurable: true,
+ enumerable: true,
+ value: null,
+ writable: false
+ },
+ nonConf: {
+ configurable: false,
+ enumerable: true,
+ value: null,
+ writable: true
+ }
+ },
+ 'obj has expected property descriptors'
+ );
+
+ st.end();
+ });
+
+ t.test('existing non-normal data property, ES5+', { skip: !hasPropertyDescriptors }, function (st) {
+ // test case changing an existing non-normal property
+
+ /** @type {Record} */
+ var obj = {};
+ Object.defineProperty(obj, 'nonEnum', { configurable: true, enumerable: false, value: null, writable: true });
+ Object.defineProperty(obj, 'nonWrit', { configurable: true, enumerable: true, value: null, writable: false });
+ Object.defineProperty(obj, 'nonConf', { configurable: false, enumerable: true, value: null, writable: true });
+
+ st.deepEqual(
+ getOwnPropertyDescriptors(obj),
+ {
+ nonEnum: {
+ configurable: true,
+ enumerable: false,
+ value: null,
+ writable: true
+ },
+ nonWrit: {
+ configurable: true,
+ enumerable: true,
+ value: null,
+ writable: false
+ },
+ nonConf: {
+ configurable: false,
+ enumerable: true,
+ value: null,
+ writable: true
+ }
+ },
+ 'obj initially has expected property descriptors'
+ );
+
+ defineDataProperty(obj, 'nonEnum', 'new value', false);
+ defineDataProperty(obj, 'nonWrit', 'new value', false, false);
+ st['throws'](
+ function () { defineDataProperty(obj, 'nonConf', 'new value', false, false, false); },
+ TypeError,
+ 'can not alter a nonconfigurable property'
+ );
+
+ st.deepEqual(
+ getOwnPropertyDescriptors(obj),
+ {
+ nonEnum: {
+ configurable: true,
+ enumerable: true,
+ value: 'new value',
+ writable: true
+ },
+ nonWrit: {
+ configurable: true,
+ enumerable: true,
+ value: 'new value',
+ writable: true
+ },
+ nonConf: {
+ configurable: false,
+ enumerable: true,
+ value: null,
+ writable: true
+ }
+ },
+ 'obj ends up with expected property descriptors'
+ );
+
+ st.end();
+ });
+
+ t.test('frozen object, ES5+', { skip: !hasPropertyDescriptors }, function (st) {
+ var frozen = Object.freeze({ existing: true });
+
+ st['throws'](
+ function () { defineDataProperty(frozen, 'existing', 'new value'); },
+ TypeError,
+ 'frozen object can not modify an existing property'
+ );
+
+ st['throws'](
+ function () { defineDataProperty(frozen, 'new', 'new property'); },
+ TypeError,
+ 'frozen object can not add a new property'
+ );
+
+ st.end();
+ });
+
+ t.test('sealed object, ES5+', { skip: !hasPropertyDescriptors }, function (st) {
+ var sealed = Object.seal({ existing: true });
+ st.deepEqual(
+ Object.getOwnPropertyDescriptor(sealed, 'existing'),
+ {
+ configurable: false,
+ enumerable: true,
+ value: true,
+ writable: true
+ },
+ 'existing value on sealed object has expected descriptor'
+ );
+
+ defineDataProperty(sealed, 'existing', 'new value');
+
+ st.deepEqual(
+ Object.getOwnPropertyDescriptor(sealed, 'existing'),
+ {
+ configurable: false,
+ enumerable: true,
+ value: 'new value',
+ writable: true
+ },
+ 'existing value on sealed object has changed descriptor'
+ );
+
+ st['throws'](
+ function () { defineDataProperty(sealed, 'new', 'new property'); },
+ TypeError,
+ 'sealed object can not add a new property'
+ );
+
+ st.end();
+ });
+
+ t.test('nonextensible object, ES5+', { skip: !hasPropertyDescriptors }, function (st) {
+ var nonExt = Object.preventExtensions({ existing: true });
+
+ st.deepEqual(
+ Object.getOwnPropertyDescriptor(nonExt, 'existing'),
+ {
+ configurable: true,
+ enumerable: true,
+ value: true,
+ writable: true
+ },
+ 'existing value on non-extensible object has expected descriptor'
+ );
+
+ defineDataProperty(nonExt, 'existing', 'new value', true);
+
+ st.deepEqual(
+ Object.getOwnPropertyDescriptor(nonExt, 'existing'),
+ {
+ configurable: true,
+ enumerable: false,
+ value: 'new value',
+ writable: true
+ },
+ 'existing value on non-extensible object has changed descriptor'
+ );
+
+ st['throws'](
+ function () { defineDataProperty(nonExt, 'new', 'new property'); },
+ TypeError,
+ 'non-extensible object can not add a new property'
+ );
+
+ st.end();
+ });
+
+ t.end();
+});
diff --git a/node_modules/define-data-property/tsconfig.json b/node_modules/define-data-property/tsconfig.json
new file mode 100644
index 0000000..69f060d
--- /dev/null
+++ b/node_modules/define-data-property/tsconfig.json
@@ -0,0 +1,59 @@
+{
+ "compilerOptions": {
+ /* Visit https://aka.ms/tsconfig to read more about this file */
+
+ /* Projects */
+
+ /* Language and Environment */
+ "target": "es2022", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
+ // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
+ // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */
+ "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
+ // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */
+
+ /* Modules */
+ "module": "commonjs", /* Specify what module code is generated. */
+ // "rootDir": "./", /* Specify the root folder within your source files. */
+ // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */
+ // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
+ // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
+ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
+ "typeRoots": ["types"], /* Specify multiple folders that act like './node_modules/@types'. */
+ "resolveJsonModule": true, /* Enable importing .json files. */
+
+ /* JavaScript Support */
+ "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */
+ "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
+ "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */
+
+ /* Emit */
+ "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
+ "declarationMap": true, /* Create sourcemaps for d.ts files. */
+ // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */
+ "noEmit": true, /* Disable emitting files from a compilation. */
+
+ /* Interop Constraints */
+ "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */
+ "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */
+ "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */
+
+ /* Type Checking */
+ "strict": true, /* Enable all strict type-checking options. */
+ "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */
+ "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */
+ "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */
+ "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */
+ "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */
+ "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */
+ "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */
+ "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */
+ "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */
+ // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */
+
+ /* Completeness */
+ // "skipLibCheck": true /* Skip type checking all .d.ts files. */
+ },
+ "exclude": [
+ "coverage"
+ ]
+}
diff --git a/node_modules/dezalgo/package.json b/node_modules/dezalgo/package.json
index 4c5f545..f8ba8ec 100644
--- a/node_modules/dezalgo/package.json
+++ b/node_modules/dezalgo/package.json
@@ -1,52 +1,28 @@
{
- "_from": "dezalgo@^1.0.4",
- "_id": "dezalgo@1.0.4",
- "_inBundle": false,
- "_integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==",
- "_location": "/dezalgo",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "dezalgo@^1.0.4",
- "name": "dezalgo",
- "escapedName": "dezalgo",
- "rawSpec": "^1.0.4",
- "saveSpec": null,
- "fetchSpec": "^1.0.4"
- },
- "_requiredBy": [
- "/formidable"
+ "name": "dezalgo",
+ "version": "1.0.4",
+ "description": "Contain async insanity so that the dark pony lord doesn't eat souls",
+ "main": "dezalgo.js",
+ "files": [
+ "dezalgo.js"
],
- "_resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz",
- "_shasum": "751235260469084c132157dfa857f386d4c33d81",
- "_spec": "dezalgo@^1.0.4",
- "_where": "/home/ubuntu/formidable/node_modules/formidable",
- "author": {
- "name": "Isaac Z. Schlueter",
- "email": "i@izs.me",
- "url": "http://blog.izs.me/"
+ "directories": {
+ "test": "test"
},
- "bugs": {
- "url": "https://github.com/npm/dezalgo/issues"
- },
- "bundleDependencies": false,
"dependencies": {
"asap": "^2.0.0",
"wrappy": "1"
},
- "deprecated": false,
- "description": "Contain async insanity so that the dark pony lord doesn't eat souls",
"devDependencies": {
"tap": "^12.4.0"
},
- "directories": {
- "test": "test"
+ "scripts": {
+ "test": "tap test/*.js"
+ },
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/npm/dezalgo"
},
- "files": [
- "dezalgo.js"
- ],
- "homepage": "https://github.com/npm/dezalgo",
"keywords": [
"async",
"zalgo",
@@ -61,15 +37,10 @@
"HE COMES",
"there used to be some funky unicode keywords here, but it broke the npm website on chrome, so they were removed, sorry"
],
+ "author": "Isaac Z. Schlueter (http://blog.izs.me/)",
"license": "ISC",
- "main": "dezalgo.js",
- "name": "dezalgo",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/npm/dezalgo.git"
+ "bugs": {
+ "url": "https://github.com/npm/dezalgo/issues"
},
- "scripts": {
- "test": "tap test/*.js"
- },
- "version": "1.0.4"
+ "homepage": "https://github.com/npm/dezalgo"
}
diff --git a/node_modules/es-define-property/.eslintrc b/node_modules/es-define-property/.eslintrc
new file mode 100644
index 0000000..46f3b12
--- /dev/null
+++ b/node_modules/es-define-property/.eslintrc
@@ -0,0 +1,13 @@
+{
+ "root": true,
+
+ "extends": "@ljharb",
+
+ "rules": {
+ "new-cap": ["error", {
+ "capIsNewExceptions": [
+ "GetIntrinsic",
+ ],
+ }],
+ },
+}
diff --git a/node_modules/es-define-property/.github/FUNDING.yml b/node_modules/es-define-property/.github/FUNDING.yml
new file mode 100644
index 0000000..4445451
--- /dev/null
+++ b/node_modules/es-define-property/.github/FUNDING.yml
@@ -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/es-define-property
+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 a single custom sponsorship URL
diff --git a/node_modules/es-define-property/.nycrc b/node_modules/es-define-property/.nycrc
new file mode 100644
index 0000000..bdd626c
--- /dev/null
+++ b/node_modules/es-define-property/.nycrc
@@ -0,0 +1,9 @@
+{
+ "all": true,
+ "check-coverage": false,
+ "reporter": ["text-summary", "text", "html", "json"],
+ "exclude": [
+ "coverage",
+ "test"
+ ]
+}
diff --git a/node_modules/es-define-property/CHANGELOG.md b/node_modules/es-define-property/CHANGELOG.md
new file mode 100644
index 0000000..4dce2ec
--- /dev/null
+++ b/node_modules/es-define-property/CHANGELOG.md
@@ -0,0 +1,15 @@
+# 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.0 - 2024-02-12
+
+### Commits
+
+- Initial implementation, tests, readme, types [`3e154e1`](https://github.com/ljharb/es-define-property/commit/3e154e11a2fee09127220f5e503bf2c0a31dd480)
+- Initial commit [`07d98de`](https://github.com/ljharb/es-define-property/commit/07d98de34a4dc31ff5e83a37c0c3f49e0d85cd50)
+- npm init [`c4eb634`](https://github.com/ljharb/es-define-property/commit/c4eb6348b0d3886aac36cef34ad2ee0665ea6f3e)
+- Only apps should have lockfiles [`7af86ec`](https://github.com/ljharb/es-define-property/commit/7af86ec1d311ec0b17fdfe616a25f64276903856)
diff --git a/node_modules/es-define-property/LICENSE b/node_modules/es-define-property/LICENSE
new file mode 100644
index 0000000..f82f389
--- /dev/null
+++ b/node_modules/es-define-property/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2024 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.
diff --git a/node_modules/es-define-property/README.md b/node_modules/es-define-property/README.md
new file mode 100644
index 0000000..9b291bd
--- /dev/null
+++ b/node_modules/es-define-property/README.md
@@ -0,0 +1,49 @@
+# es-define-property [![Version Badge][npm-version-svg]][package-url]
+
+[![github actions][actions-image]][actions-url]
+[![coverage][codecov-image]][codecov-url]
+[![License][license-image]][license-url]
+[![Downloads][downloads-image]][downloads-url]
+
+[![npm badge][npm-badge-png]][package-url]
+
+`Object.defineProperty`, but not IE 8's broken one.
+
+## Example
+
+```js
+const assert = require('assert');
+
+const $defineProperty = require('es-define-property');
+
+if ($defineProperty) {
+ assert.equal($defineProperty, Object.defineProperty);
+} else if (Object.defineProperty) {
+ assert.equal($defineProperty, false, 'this is IE 8');
+} else {
+ assert.equal($defineProperty, false, 'this is an ES3 engine');
+}
+```
+
+## Tests
+Simply clone the repo, `npm install`, and run `npm test`
+
+## Security
+
+Please email [@ljharb](https://github.com/ljharb) or see https://tidelift.com/security if you have a potential security vulnerability to report.
+
+[package-url]: https://npmjs.org/package/es-define-property
+[npm-version-svg]: https://versionbadg.es/ljharb/es-define-property.svg
+[deps-svg]: https://david-dm.org/ljharb/es-define-property.svg
+[deps-url]: https://david-dm.org/ljharb/es-define-property
+[dev-deps-svg]: https://david-dm.org/ljharb/es-define-property/dev-status.svg
+[dev-deps-url]: https://david-dm.org/ljharb/es-define-property#info=devDependencies
+[npm-badge-png]: https://nodei.co/npm/es-define-property.png?downloads=true&stars=true
+[license-image]: https://img.shields.io/npm/l/es-define-property.svg
+[license-url]: LICENSE
+[downloads-image]: https://img.shields.io/npm/dm/es-define-property.svg
+[downloads-url]: https://npm-stat.com/charts.html?package=es-define-property
+[codecov-image]: https://codecov.io/gh/ljharb/es-define-property/branch/main/graphs/badge.svg
+[codecov-url]: https://app.codecov.io/gh/ljharb/es-define-property/
+[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/es-define-property
+[actions-url]: https://github.com/ljharb/es-define-property/actions
diff --git a/node_modules/es-define-property/index.d.ts b/node_modules/es-define-property/index.d.ts
new file mode 100644
index 0000000..6012247
--- /dev/null
+++ b/node_modules/es-define-property/index.d.ts
@@ -0,0 +1,3 @@
+declare const defineProperty: false | typeof Object.defineProperty;
+
+export = defineProperty;
\ No newline at end of file
diff --git a/node_modules/es-define-property/index.js b/node_modules/es-define-property/index.js
new file mode 100644
index 0000000..f32737d
--- /dev/null
+++ b/node_modules/es-define-property/index.js
@@ -0,0 +1,16 @@
+'use strict';
+
+var GetIntrinsic = require('get-intrinsic');
+
+/** @type {import('.')} */
+var $defineProperty = GetIntrinsic('%Object.defineProperty%', true) || false;
+if ($defineProperty) {
+ try {
+ $defineProperty({}, 'a', { value: 1 });
+ } catch (e) {
+ // IE 8 has a broken defineProperty
+ $defineProperty = false;
+ }
+}
+
+module.exports = $defineProperty;
diff --git a/node_modules/es-define-property/package.json b/node_modules/es-define-property/package.json
new file mode 100644
index 0000000..45bc90f
--- /dev/null
+++ b/node_modules/es-define-property/package.json
@@ -0,0 +1,81 @@
+{
+ "name": "es-define-property",
+ "version": "1.0.0",
+ "description": "`Object.defineProperty`, but not IE 8's broken one.",
+ "main": "index.js",
+ "types": "./index.d.ts",
+ "exports": {
+ ".": "./index.js",
+ "./package.json": "./package.json"
+ },
+ "sideEffects": false,
+ "scripts": {
+ "prepack": "npmignore --auto --commentLines=autogenerated",
+ "prepublish": "not-in-publish || npm run prepublishOnly",
+ "prepublishOnly": "safe-publish-latest",
+ "prelint": "evalmd README.md",
+ "lint": "eslint --ext=js,mjs .",
+ "postlint": "tsc -p .",
+ "pretest": "npm run lint",
+ "tests-only": "nyc tape 'test/**/*.js'",
+ "test": "npm run tests-only",
+ "posttest": "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/es-define-property.git"
+ },
+ "keywords": [
+ "javascript",
+ "ecmascript",
+ "object",
+ "define",
+ "property",
+ "defineProperty",
+ "Object.defineProperty"
+ ],
+ "author": "Jordan Harband ",
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/ljharb/es-define-property/issues"
+ },
+ "homepage": "https://github.com/ljharb/es-define-property#readme",
+ "dependencies": {
+ "get-intrinsic": "^1.2.4"
+ },
+ "devDependencies": {
+ "@ljharb/eslint-config": "^21.1.0",
+ "@types/get-intrinsic": "^1.2.2",
+ "@types/gopd": "^1.0.3",
+ "@types/tape": "^5.6.4",
+ "aud": "^2.0.4",
+ "auto-changelog": "^2.4.0",
+ "eslint": "^8.8.0",
+ "evalmd": "^0.0.19",
+ "gopd": "^1.0.1",
+ "in-publish": "^2.0.1",
+ "npmignore": "^0.3.1",
+ "nyc": "^10.3.2",
+ "safe-publish-latest": "^2.0.0",
+ "tape": "^5.7.4",
+ "typescript": "next"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "auto-changelog": {
+ "output": "CHANGELOG.md",
+ "template": "keepachangelog",
+ "unreleased": false,
+ "commitLimit": false,
+ "backfillLimit": false,
+ "hideCredit": true
+ },
+ "publishConfig": {
+ "ignore": [
+ ".github/workflows"
+ ]
+ }
+}
diff --git a/node_modules/es-define-property/test/index.js b/node_modules/es-define-property/test/index.js
new file mode 100644
index 0000000..dbc054e
--- /dev/null
+++ b/node_modules/es-define-property/test/index.js
@@ -0,0 +1,55 @@
+'use strict';
+
+var $defineProperty = require('../');
+
+var test = require('tape');
+var gOPD = require('gopd');
+
+test('defineProperty: supported', { skip: !$defineProperty }, function (t) {
+ t.plan(4);
+
+ t.equal(typeof $defineProperty, 'function', 'defineProperty is supported');
+ if ($defineProperty && gOPD) { // this `if` check is just to shut TS up
+ var o = { a: 1 };
+
+ $defineProperty(o, 'b', { enumerable: true, value: 2 });
+ t.deepEqual(
+ gOPD(o, 'b'),
+ {
+ configurable: false,
+ enumerable: true,
+ value: 2,
+ writable: false
+ },
+ 'property descriptor is as expected'
+ );
+
+ $defineProperty(o, 'c', { enumerable: false, value: 3, writable: true });
+ t.deepEqual(
+ gOPD(o, 'c'),
+ {
+ configurable: false,
+ enumerable: false,
+ value: 3,
+ writable: true
+ },
+ 'property descriptor is as expected'
+ );
+ }
+
+ t.equal($defineProperty, Object.defineProperty, 'defineProperty is Object.defineProperty');
+
+ t.end();
+});
+
+test('defineProperty: not supported', { skip: !!$defineProperty }, function (t) {
+ t.notOk($defineProperty, 'defineProperty is not supported');
+
+ t.match(
+ typeof $defineProperty,
+ /^(?:undefined|boolean)$/,
+ '`typeof defineProperty` is `undefined` or `boolean`'
+ );
+
+ t.end();
+});
diff --git a/node_modules/es-define-property/tsconfig.json b/node_modules/es-define-property/tsconfig.json
new file mode 100644
index 0000000..fdfa155
--- /dev/null
+++ b/node_modules/es-define-property/tsconfig.json
@@ -0,0 +1,50 @@
+{
+ "compilerOptions": {
+ /* Visit https://aka.ms/tsconfig.json to read more about this file */
+
+ /* Projects */
+
+ /* Language and Environment */
+ "target": "es2022", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
+ // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
+ // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */
+ "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
+ // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */
+
+ /* Modules */
+ "module": "commonjs", /* Specify what module code is generated. */
+ // "rootDir": "./", /* Specify the root folder within your source files. */
+ // "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */
+ // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
+ // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
+ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
+ // "typeRoots": ["types"], /* Specify multiple folders that act like `./node_modules/@types`. */
+ "resolveJsonModule": true, /* Enable importing .json files. */
+ // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */
+
+ /* JavaScript Support */
+ "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */
+ "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
+ "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */
+
+ /* Emit */
+ "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
+ "declarationMap": true, /* Create sourcemaps for d.ts files. */
+ "noEmit": true, /* Disable emitting files from a compilation. */
+
+ /* Interop Constraints */
+ "allowSyntheticDefaultImports": true, /* Allow `import x from y` when a module doesn't have a default export. */
+ "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */
+ "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */
+
+ /* Type Checking */
+ "strict": true, /* Enable all strict type-checking options. */
+
+ /* Completeness */
+ // "skipLibCheck": true /* Skip type checking all .d.ts files. */
+ },
+ "exclude": [
+ "coverage",
+ "test/list-exports"
+ ],
+}
diff --git a/node_modules/es-errors/.eslintrc b/node_modules/es-errors/.eslintrc
new file mode 100644
index 0000000..3b5d9e9
--- /dev/null
+++ b/node_modules/es-errors/.eslintrc
@@ -0,0 +1,5 @@
+{
+ "root": true,
+
+ "extends": "@ljharb",
+}
diff --git a/node_modules/es-errors/.github/FUNDING.yml b/node_modules/es-errors/.github/FUNDING.yml
new file mode 100644
index 0000000..f1b8805
--- /dev/null
+++ b/node_modules/es-errors/.github/FUNDING.yml
@@ -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/es-errors
+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 a single custom sponsorship URL
diff --git a/node_modules/es-errors/CHANGELOG.md b/node_modules/es-errors/CHANGELOG.md
new file mode 100644
index 0000000..204a9e9
--- /dev/null
+++ b/node_modules/es-errors/CHANGELOG.md
@@ -0,0 +1,40 @@
+# 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.3.0](https://github.com/ljharb/es-errors/compare/v1.2.1...v1.3.0) - 2024-02-05
+
+### Commits
+
+- [New] add `EvalError` and `URIError` [`1927627`](https://github.com/ljharb/es-errors/commit/1927627ba68cb6c829d307231376c967db53acdf)
+
+## [v1.2.1](https://github.com/ljharb/es-errors/compare/v1.2.0...v1.2.1) - 2024-02-04
+
+### Commits
+
+- [Fix] add missing `exports` entry [`5bb5f28`](https://github.com/ljharb/es-errors/commit/5bb5f280f98922701109d6ebb82eea2257cecc7e)
+
+## [v1.2.0](https://github.com/ljharb/es-errors/compare/v1.1.0...v1.2.0) - 2024-02-04
+
+### Commits
+
+- [New] add `ReferenceError` [`6d8cf5b`](https://github.com/ljharb/es-errors/commit/6d8cf5bbb6f3f598d02cf6f30e468ba2caa8e143)
+
+## [v1.1.0](https://github.com/ljharb/es-errors/compare/v1.0.0...v1.1.0) - 2024-02-04
+
+### Commits
+
+- [New] add base Error [`2983ab6`](https://github.com/ljharb/es-errors/commit/2983ab65f7bc5441276cb021dc3aa03c78881698)
+
+## v1.0.0 - 2024-02-03
+
+### Commits
+
+- Initial implementation, tests, readme, type [`8f47631`](https://github.com/ljharb/es-errors/commit/8f476317e9ad76f40ad648081829b1a1a3a1288b)
+- Initial commit [`ea5d099`](https://github.com/ljharb/es-errors/commit/ea5d099ef18e550509ab9e2be000526afd81c385)
+- npm init [`6f5ebf9`](https://github.com/ljharb/es-errors/commit/6f5ebf9cead474dadd72b9e63dad315820a089ae)
+- Only apps should have lockfiles [`e1a0aeb`](https://github.com/ljharb/es-errors/commit/e1a0aeb7b80f5cfc56be54d6b2100e915d47def8)
+- [meta] add `sideEffects` flag [`a9c7d46`](https://github.com/ljharb/es-errors/commit/a9c7d460a492f1d8a241c836bc25a322a19cc043)
diff --git a/node_modules/es-errors/LICENSE b/node_modules/es-errors/LICENSE
new file mode 100644
index 0000000..f82f389
--- /dev/null
+++ b/node_modules/es-errors/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2024 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.
diff --git a/node_modules/es-errors/README.md b/node_modules/es-errors/README.md
new file mode 100644
index 0000000..8dbfacf
--- /dev/null
+++ b/node_modules/es-errors/README.md
@@ -0,0 +1,55 @@
+# es-errors [![Version Badge][npm-version-svg]][package-url]
+
+[![github actions][actions-image]][actions-url]
+[![coverage][codecov-image]][codecov-url]
+[![License][license-image]][license-url]
+[![Downloads][downloads-image]][downloads-url]
+
+[![npm badge][npm-badge-png]][package-url]
+
+A simple cache for a few of the JS Error constructors.
+
+## Example
+
+```js
+const assert = require('assert');
+
+const Base = require('es-errors');
+const Eval = require('es-errors/eval');
+const Range = require('es-errors/range');
+const Ref = require('es-errors/ref');
+const Syntax = require('es-errors/syntax');
+const Type = require('es-errors/type');
+const URI = require('es-errors/uri');
+
+assert.equal(Base, Error);
+assert.equal(Eval, EvalError);
+assert.equal(Range, RangeError);
+assert.equal(Ref, ReferenceError);
+assert.equal(Syntax, SyntaxError);
+assert.equal(Type, TypeError);
+assert.equal(URI, URIError);
+```
+
+## Tests
+Simply clone the repo, `npm install`, and run `npm test`
+
+## Security
+
+Please email [@ljharb](https://github.com/ljharb) or see https://tidelift.com/security if you have a potential security vulnerability to report.
+
+[package-url]: https://npmjs.org/package/es-errors
+[npm-version-svg]: https://versionbadg.es/ljharb/es-errors.svg
+[deps-svg]: https://david-dm.org/ljharb/es-errors.svg
+[deps-url]: https://david-dm.org/ljharb/es-errors
+[dev-deps-svg]: https://david-dm.org/ljharb/es-errors/dev-status.svg
+[dev-deps-url]: https://david-dm.org/ljharb/es-errors#info=devDependencies
+[npm-badge-png]: https://nodei.co/npm/es-errors.png?downloads=true&stars=true
+[license-image]: https://img.shields.io/npm/l/es-errors.svg
+[license-url]: LICENSE
+[downloads-image]: https://img.shields.io/npm/dm/es-errors.svg
+[downloads-url]: https://npm-stat.com/charts.html?package=es-errors
+[codecov-image]: https://codecov.io/gh/ljharb/es-errors/branch/main/graphs/badge.svg
+[codecov-url]: https://app.codecov.io/gh/ljharb/es-errors/
+[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/es-errors
+[actions-url]: https://github.com/ljharb/es-errors/actions
diff --git a/node_modules/es-errors/eval.d.ts b/node_modules/es-errors/eval.d.ts
new file mode 100644
index 0000000..e4210e0
--- /dev/null
+++ b/node_modules/es-errors/eval.d.ts
@@ -0,0 +1,3 @@
+declare const EvalError: EvalErrorConstructor;
+
+export = EvalError;
diff --git a/node_modules/es-errors/eval.js b/node_modules/es-errors/eval.js
new file mode 100644
index 0000000..725ccb6
--- /dev/null
+++ b/node_modules/es-errors/eval.js
@@ -0,0 +1,4 @@
+'use strict';
+
+/** @type {import('./eval')} */
+module.exports = EvalError;
diff --git a/node_modules/es-errors/index.d.ts b/node_modules/es-errors/index.d.ts
new file mode 100644
index 0000000..69bdbc9
--- /dev/null
+++ b/node_modules/es-errors/index.d.ts
@@ -0,0 +1,3 @@
+declare const Error: ErrorConstructor;
+
+export = Error;
diff --git a/node_modules/es-errors/index.js b/node_modules/es-errors/index.js
new file mode 100644
index 0000000..cc0c521
--- /dev/null
+++ b/node_modules/es-errors/index.js
@@ -0,0 +1,4 @@
+'use strict';
+
+/** @type {import('.')} */
+module.exports = Error;
diff --git a/node_modules/es-errors/package.json b/node_modules/es-errors/package.json
new file mode 100644
index 0000000..ff8c2a5
--- /dev/null
+++ b/node_modules/es-errors/package.json
@@ -0,0 +1,80 @@
+{
+ "name": "es-errors",
+ "version": "1.3.0",
+ "description": "A simple cache for a few of the JS Error constructors.",
+ "main": "index.js",
+ "exports": {
+ ".": "./index.js",
+ "./eval": "./eval.js",
+ "./range": "./range.js",
+ "./ref": "./ref.js",
+ "./syntax": "./syntax.js",
+ "./type": "./type.js",
+ "./uri": "./uri.js",
+ "./package.json": "./package.json"
+ },
+ "sideEffects": false,
+ "scripts": {
+ "prepack": "npmignore --auto --commentLines=autogenerated",
+ "prepublishOnly": "safe-publish-latest",
+ "prepublish": "not-in-publish || npm run prepublishOnly",
+ "pretest": "npm run lint",
+ "test": "npm run tests-only",
+ "tests-only": "nyc tape 'test/**/*.js'",
+ "posttest": "aud --production",
+ "prelint": "evalmd README.md",
+ "lint": "eslint --ext=js,mjs .",
+ "postlint": "tsc -p . && eclint check $(git ls-files | xargs find 2> /dev/null | grep -vE 'node_modules|\\.git' | grep -v dist/)",
+ "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/es-errors.git"
+ },
+ "keywords": [
+ "javascript",
+ "ecmascript",
+ "error",
+ "typeerror",
+ "syntaxerror",
+ "rangeerror"
+ ],
+ "author": "Jordan Harband ",
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/ljharb/es-errors/issues"
+ },
+ "homepage": "https://github.com/ljharb/es-errors#readme",
+ "devDependencies": {
+ "@ljharb/eslint-config": "^21.1.0",
+ "@types/tape": "^5.6.4",
+ "aud": "^2.0.4",
+ "auto-changelog": "^2.4.0",
+ "eclint": "^2.8.1",
+ "eslint": "^8.8.0",
+ "evalmd": "^0.0.19",
+ "in-publish": "^2.0.1",
+ "npmignore": "^0.3.1",
+ "nyc": "^10.3.2",
+ "safe-publish-latest": "^2.0.0",
+ "tape": "^5.7.4",
+ "typescript": "next"
+ },
+ "auto-changelog": {
+ "output": "CHANGELOG.md",
+ "template": "keepachangelog",
+ "unreleased": false,
+ "commitLimit": false,
+ "backfillLimit": false,
+ "hideCredit": true
+ },
+ "publishConfig": {
+ "ignore": [
+ ".github/workflows"
+ ]
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+}
diff --git a/node_modules/es-errors/range.d.ts b/node_modules/es-errors/range.d.ts
new file mode 100644
index 0000000..3a12e86
--- /dev/null
+++ b/node_modules/es-errors/range.d.ts
@@ -0,0 +1,3 @@
+declare const RangeError: RangeErrorConstructor;
+
+export = RangeError;
diff --git a/node_modules/es-errors/range.js b/node_modules/es-errors/range.js
new file mode 100644
index 0000000..2044fe0
--- /dev/null
+++ b/node_modules/es-errors/range.js
@@ -0,0 +1,4 @@
+'use strict';
+
+/** @type {import('./range')} */
+module.exports = RangeError;
diff --git a/node_modules/es-errors/ref.d.ts b/node_modules/es-errors/ref.d.ts
new file mode 100644
index 0000000..a13107e
--- /dev/null
+++ b/node_modules/es-errors/ref.d.ts
@@ -0,0 +1,3 @@
+declare const ReferenceError: ReferenceErrorConstructor;
+
+export = ReferenceError;
diff --git a/node_modules/es-errors/ref.js b/node_modules/es-errors/ref.js
new file mode 100644
index 0000000..d7c430f
--- /dev/null
+++ b/node_modules/es-errors/ref.js
@@ -0,0 +1,4 @@
+'use strict';
+
+/** @type {import('./ref')} */
+module.exports = ReferenceError;
diff --git a/node_modules/es-errors/syntax.d.ts b/node_modules/es-errors/syntax.d.ts
new file mode 100644
index 0000000..6a0c53c
--- /dev/null
+++ b/node_modules/es-errors/syntax.d.ts
@@ -0,0 +1,3 @@
+declare const SyntaxError: SyntaxErrorConstructor;
+
+export = SyntaxError;
diff --git a/node_modules/es-errors/syntax.js b/node_modules/es-errors/syntax.js
new file mode 100644
index 0000000..5f5fdde
--- /dev/null
+++ b/node_modules/es-errors/syntax.js
@@ -0,0 +1,4 @@
+'use strict';
+
+/** @type {import('./syntax')} */
+module.exports = SyntaxError;
diff --git a/node_modules/es-errors/test/index.js b/node_modules/es-errors/test/index.js
new file mode 100644
index 0000000..1ff0277
--- /dev/null
+++ b/node_modules/es-errors/test/index.js
@@ -0,0 +1,19 @@
+'use strict';
+
+var test = require('tape');
+
+var E = require('../');
+var R = require('../range');
+var Ref = require('../ref');
+var S = require('../syntax');
+var T = require('../type');
+
+test('errors', function (t) {
+ t.equal(E, Error);
+ t.equal(R, RangeError);
+ t.equal(Ref, ReferenceError);
+ t.equal(S, SyntaxError);
+ t.equal(T, TypeError);
+
+ t.end();
+});
diff --git a/node_modules/es-errors/tsconfig.json b/node_modules/es-errors/tsconfig.json
new file mode 100644
index 0000000..99dfeb6
--- /dev/null
+++ b/node_modules/es-errors/tsconfig.json
@@ -0,0 +1,49 @@
+{
+ "compilerOptions": {
+ /* Visit https://aka.ms/tsconfig.json to read more about this file */
+
+ /* Projects */
+
+ /* Language and Environment */
+ "target": "es5", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
+ // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
+ // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */
+ "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
+ // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */
+
+ /* Modules */
+ "module": "commonjs", /* Specify what module code is generated. */
+ // "rootDir": "./", /* Specify the root folder within your source files. */
+ // "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */
+ // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
+ // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
+ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
+ // "typeRoots": ["types"], /* Specify multiple folders that act like `./node_modules/@types`. */
+ "resolveJsonModule": true, /* Enable importing .json files. */
+ // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */
+
+ /* JavaScript Support */
+ "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */
+ "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
+ "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */
+
+ /* Emit */
+ "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
+ "declarationMap": true, /* Create sourcemaps for d.ts files. */
+ "noEmit": true, /* Disable emitting files from a compilation. */
+
+ /* Interop Constraints */
+ "allowSyntheticDefaultImports": true, /* Allow `import x from y` when a module doesn't have a default export. */
+ "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */
+ "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */
+
+ /* Type Checking */
+ "strict": true, /* Enable all strict type-checking options. */
+
+ /* Completeness */
+ // "skipLibCheck": true /* Skip type checking all .d.ts files. */
+ },
+ "exclude": [
+ "coverage",
+ ],
+}
diff --git a/node_modules/es-errors/type.d.ts b/node_modules/es-errors/type.d.ts
new file mode 100644
index 0000000..576fb51
--- /dev/null
+++ b/node_modules/es-errors/type.d.ts
@@ -0,0 +1,3 @@
+declare const TypeError: TypeErrorConstructor
+
+export = TypeError;
diff --git a/node_modules/es-errors/type.js b/node_modules/es-errors/type.js
new file mode 100644
index 0000000..9769e44
--- /dev/null
+++ b/node_modules/es-errors/type.js
@@ -0,0 +1,4 @@
+'use strict';
+
+/** @type {import('./type')} */
+module.exports = TypeError;
diff --git a/node_modules/es-errors/uri.d.ts b/node_modules/es-errors/uri.d.ts
new file mode 100644
index 0000000..c3261c9
--- /dev/null
+++ b/node_modules/es-errors/uri.d.ts
@@ -0,0 +1,3 @@
+declare const URIError: URIErrorConstructor;
+
+export = URIError;
diff --git a/node_modules/es-errors/uri.js b/node_modules/es-errors/uri.js
new file mode 100644
index 0000000..e9cd1c7
--- /dev/null
+++ b/node_modules/es-errors/uri.js
@@ -0,0 +1,4 @@
+'use strict';
+
+/** @type {import('./uri')} */
+module.exports = URIError;
diff --git a/node_modules/function-bind/.eslintrc b/node_modules/function-bind/.eslintrc
index 9b33d8e..71a054f 100644
--- a/node_modules/function-bind/.eslintrc
+++ b/node_modules/function-bind/.eslintrc
@@ -6,10 +6,16 @@
"rules": {
"func-name-matching": 0,
"indent": [2, 4],
- "max-nested-callbacks": [2, 3],
- "max-params": [2, 3],
- "max-statements": [2, 20],
"no-new-func": [1],
- "strict": [0]
- }
+ },
+
+ "overrides": [
+ {
+ "files": "test/**",
+ "rules": {
+ "max-lines-per-function": 0,
+ "strict": [0]
+ },
+ },
+ ],
}
diff --git a/node_modules/function-bind/.github/FUNDING.yml b/node_modules/function-bind/.github/FUNDING.yml
new file mode 100644
index 0000000..7448219
--- /dev/null
+++ b/node_modules/function-bind/.github/FUNDING.yml
@@ -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/function-bind
+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']
diff --git a/node_modules/function-bind/.github/SECURITY.md b/node_modules/function-bind/.github/SECURITY.md
new file mode 100644
index 0000000..82e4285
--- /dev/null
+++ b/node_modules/function-bind/.github/SECURITY.md
@@ -0,0 +1,3 @@
+# Security
+
+Please email [@ljharb](https://github.com/ljharb) or see https://tidelift.com/security if you have a potential security vulnerability to report.
diff --git a/node_modules/function-bind/.jscs.json b/node_modules/function-bind/.jscs.json
deleted file mode 100644
index 8c44794..0000000
--- a/node_modules/function-bind/.jscs.json
+++ /dev/null
@@ -1,176 +0,0 @@
-{
- "es3": true,
-
- "additionalRules": [],
-
- "requireSemicolons": true,
-
- "disallowMultipleSpaces": true,
-
- "disallowIdentifierNames": [],
-
- "requireCurlyBraces": {
- "allExcept": [],
- "keywords": ["if", "else", "for", "while", "do", "try", "catch"]
- },
-
- "requireSpaceAfterKeywords": ["if", "else", "for", "while", "do", "switch", "return", "try", "catch", "function"],
-
- "disallowSpaceAfterKeywords": [],
-
- "disallowSpaceBeforeComma": true,
- "disallowSpaceAfterComma": false,
- "disallowSpaceBeforeSemicolon": true,
-
- "disallowNodeTypes": [
- "DebuggerStatement",
- "ForInStatement",
- "LabeledStatement",
- "SwitchCase",
- "SwitchStatement",
- "WithStatement"
- ],
-
- "requireObjectKeysOnNewLine": { "allExcept": ["sameLine"] },
-
- "requireSpacesInAnonymousFunctionExpression": { "beforeOpeningRoundBrace": true, "beforeOpeningCurlyBrace": true },
- "requireSpacesInNamedFunctionExpression": { "beforeOpeningCurlyBrace": true },
- "disallowSpacesInNamedFunctionExpression": { "beforeOpeningRoundBrace": true },
- "requireSpacesInFunctionDeclaration": { "beforeOpeningCurlyBrace": true },
- "disallowSpacesInFunctionDeclaration": { "beforeOpeningRoundBrace": true },
-
- "requireSpaceBetweenArguments": true,
-
- "disallowSpacesInsideParentheses": true,
-
- "disallowSpacesInsideArrayBrackets": true,
-
- "disallowQuotedKeysInObjects": { "allExcept": ["reserved"] },
-
- "disallowSpaceAfterObjectKeys": true,
-
- "requireCommaBeforeLineBreak": true,
-
- "disallowSpaceAfterPrefixUnaryOperators": ["++", "--", "+", "-", "~", "!"],
- "requireSpaceAfterPrefixUnaryOperators": [],
-
- "disallowSpaceBeforePostfixUnaryOperators": ["++", "--"],
- "requireSpaceBeforePostfixUnaryOperators": [],
-
- "disallowSpaceBeforeBinaryOperators": [],
- "requireSpaceBeforeBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!=="],
-
- "requireSpaceAfterBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!=="],
- "disallowSpaceAfterBinaryOperators": [],
-
- "disallowImplicitTypeConversion": ["binary", "string"],
-
- "disallowKeywords": ["with", "eval"],
-
- "requireKeywordsOnNewLine": [],
- "disallowKeywordsOnNewLine": ["else"],
-
- "requireLineFeedAtFileEnd": true,
-
- "disallowTrailingWhitespace": true,
-
- "disallowTrailingComma": true,
-
- "excludeFiles": ["node_modules/**", "vendor/**"],
-
- "disallowMultipleLineStrings": true,
-
- "requireDotNotation": { "allExcept": ["keywords"] },
-
- "requireParenthesesAroundIIFE": true,
-
- "validateLineBreaks": "LF",
-
- "validateQuoteMarks": {
- "escape": true,
- "mark": "'"
- },
-
- "disallowOperatorBeforeLineBreak": [],
-
- "requireSpaceBeforeKeywords": [
- "do",
- "for",
- "if",
- "else",
- "switch",
- "case",
- "try",
- "catch",
- "finally",
- "while",
- "with",
- "return"
- ],
-
- "validateAlignedFunctionParameters": {
- "lineBreakAfterOpeningBraces": true,
- "lineBreakBeforeClosingBraces": true
- },
-
- "requirePaddingNewLinesBeforeExport": true,
-
- "validateNewlineAfterArrayElements": {
- "maximum": 8
- },
-
- "requirePaddingNewLinesAfterUseStrict": true,
-
- "disallowArrowFunctions": true,
-
- "disallowMultiLineTernary": true,
-
- "validateOrderInObjectKeys": "asc-insensitive",
-
- "disallowIdenticalDestructuringNames": true,
-
- "disallowNestedTernaries": { "maxLevel": 1 },
-
- "requireSpaceAfterComma": { "allExcept": ["trailing"] },
- "requireAlignedMultilineParams": false,
-
- "requireSpacesInGenerator": {
- "afterStar": true
- },
-
- "disallowSpacesInGenerator": {
- "beforeStar": true
- },
-
- "disallowVar": false,
-
- "requireArrayDestructuring": false,
-
- "requireEnhancedObjectLiterals": false,
-
- "requireObjectDestructuring": false,
-
- "requireEarlyReturn": false,
-
- "requireCapitalizedConstructorsNew": {
- "allExcept": ["Function", "String", "Object", "Symbol", "Number", "Date", "RegExp", "Error", "Boolean", "Array"]
- },
-
- "requireImportAlphabetized": false,
-
- "requireSpaceBeforeObjectValues": true,
- "requireSpaceBeforeDestructuredValues": true,
-
- "disallowSpacesInsideTemplateStringPlaceholders": true,
-
- "disallowArrayDestructuringReturn": false,
-
- "requireNewlineBeforeSingleStatementsInIf": false,
-
- "disallowUnusedVariables": true,
-
- "requireSpacesInsideImportedObjectBraces": true,
-
- "requireUseStrict": true
-}
-
diff --git a/node_modules/function-bind/.npmignore b/node_modules/function-bind/.npmignore
deleted file mode 100644
index dbb555f..0000000
--- a/node_modules/function-bind/.npmignore
+++ /dev/null
@@ -1,22 +0,0 @@
-# gitignore
-.DS_Store
-.monitor
-.*.swp
-.nodemonignore
-releases
-*.log
-*.err
-fleet.json
-public/browserify
-bin/*.json
-.bin
-build
-compile
-.lock-wscript
-coverage
-node_modules
-
-# Only apps should have lockfiles
-npm-shrinkwrap.json
-package-lock.json
-yarn.lock
diff --git a/node_modules/function-bind/.nycrc b/node_modules/function-bind/.nycrc
new file mode 100644
index 0000000..1826526
--- /dev/null
+++ b/node_modules/function-bind/.nycrc
@@ -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"
+ ]
+}
diff --git a/node_modules/function-bind/.travis.yml b/node_modules/function-bind/.travis.yml
deleted file mode 100644
index 85f70d2..0000000
--- a/node_modules/function-bind/.travis.yml
+++ /dev/null
@@ -1,168 +0,0 @@
-language: node_js
-os:
- - linux
-node_js:
- - "8.4"
- - "7.10"
- - "6.11"
- - "5.12"
- - "4.8"
- - "iojs-v3.3"
- - "iojs-v2.5"
- - "iojs-v1.8"
- - "0.12"
- - "0.10"
- - "0.8"
-before_install:
- - 'if [ "${TRAVIS_NODE_VERSION}" = "0.6" ]; then npm install -g npm@1.3 ; elif [ "${TRAVIS_NODE_VERSION}" != "0.9" ]; then case "$(npm --version)" in 1.*) npm install -g npm@1.4.28 ;; 2.*) npm install -g npm@2 ;; esac ; fi'
- - 'if [ "${TRAVIS_NODE_VERSION}" != "0.6" ] && [ "${TRAVIS_NODE_VERSION}" != "0.9" ]; then if [ "${TRAVIS_NODE_VERSION%${TRAVIS_NODE_VERSION#[0-9]}}" = "0" ] || [ "${TRAVIS_NODE_VERSION:0:4}" = "iojs" ]; then npm install -g npm@4.5 ; else npm install -g npm; fi; fi'
-install:
- - 'if [ "${TRAVIS_NODE_VERSION}" = "0.6" ]; then nvm install 0.8 && npm install -g npm@1.3 && npm install -g npm@1.4.28 && npm install -g npm@2 && npm install && nvm use "${TRAVIS_NODE_VERSION}"; else npm install; fi;'
-script:
- - 'if [ -n "${PRETEST-}" ]; then npm run pretest ; fi'
- - 'if [ -n "${POSTTEST-}" ]; then npm run posttest ; fi'
- - 'if [ -n "${COVERAGE-}" ]; then npm run coverage ; fi'
- - 'if [ -n "${TEST-}" ]; then npm run tests-only ; fi'
-sudo: false
-env:
- - TEST=true
-matrix:
- fast_finish: true
- include:
- - node_js: "node"
- env: PRETEST=true
- - node_js: "4"
- env: COVERAGE=true
- - node_js: "8.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.9"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.8"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.10"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.9"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.8"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.11"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.10"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.9"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.8"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v3.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v3.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v3.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v2.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v2.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v2.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v2.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v2.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "0.11"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "0.9"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "0.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "0.4"
- env: TEST=true ALLOW_FAILURE=true
- allow_failures:
- - os: osx
- - env: TEST=true ALLOW_FAILURE=true
diff --git a/node_modules/function-bind/CHANGELOG.md b/node_modules/function-bind/CHANGELOG.md
new file mode 100644
index 0000000..f9e6cc0
--- /dev/null
+++ b/node_modules/function-bind/CHANGELOG.md
@@ -0,0 +1,136 @@
+# 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.1.2](https://github.com/ljharb/function-bind/compare/v1.1.1...v1.1.2) - 2023-10-12
+
+### Merged
+
+- Point to the correct file [`#16`](https://github.com/ljharb/function-bind/pull/16)
+
+### Commits
+
+- [Tests] migrate tests to Github Actions [`4f8b57c`](https://github.com/ljharb/function-bind/commit/4f8b57c02f2011fe9ae353d5e74e8745f0988af8)
+- [Tests] remove `jscs` [`90eb2ed`](https://github.com/ljharb/function-bind/commit/90eb2edbeefd5b76cd6c3a482ea3454db169b31f)
+- [meta] update `.gitignore` [`53fcdc3`](https://github.com/ljharb/function-bind/commit/53fcdc371cd66634d6e9b71c836a50f437e89fed)
+- [Tests] up to `node` `v11.10`, `v10.15`, `v9.11`, `v8.15`, `v6.16`, `v4.9`; use `nvm install-latest-npm`; run audit script in tests [`1fe8f6e`](https://github.com/ljharb/function-bind/commit/1fe8f6e9aed0dfa8d8b3cdbd00c7f5ea0cd2b36e)
+- [meta] add `auto-changelog` [`1921fcb`](https://github.com/ljharb/function-bind/commit/1921fcb5b416b63ffc4acad051b6aad5722f777d)
+- [Robustness] remove runtime dependency on all builtins except `.apply` [`f743e61`](https://github.com/ljharb/function-bind/commit/f743e61aa6bb2360358c04d4884c9db853d118b7)
+- Docs: enable badges; update wording [`503cb12`](https://github.com/ljharb/function-bind/commit/503cb12d998b5f91822776c73332c7adcd6355dd)
+- [readme] update badges [`290c5db`](https://github.com/ljharb/function-bind/commit/290c5dbbbda7264efaeb886552a374b869a4bb48)
+- [Tests] switch to nyc for coverage [`ea360ba`](https://github.com/ljharb/function-bind/commit/ea360ba907fc2601ed18d01a3827fa2d3533cdf8)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`cae5e9e`](https://github.com/ljharb/function-bind/commit/cae5e9e07a5578dc6df26c03ee22851ce05b943c)
+- [meta] add `funding` field; create FUNDING.yml [`c9f4274`](https://github.com/ljharb/function-bind/commit/c9f4274aa80ea3aae9657a3938fdba41a3b04ca6)
+- [Tests] fix eslint errors from #15 [`f69aaa2`](https://github.com/ljharb/function-bind/commit/f69aaa2beb2fdab4415bfb885760a699d0b9c964)
+- [actions] fix permissions [`99a0cd9`](https://github.com/ljharb/function-bind/commit/99a0cd9f3b5bac223a0d572f081834cd73314be7)
+- [meta] use `npmignore` to autogenerate an npmignore file [`f03b524`](https://github.com/ljharb/function-bind/commit/f03b524ca91f75a109a5d062f029122c86ecd1ae)
+- [Dev Deps] update `@ljharb/eslint‑config`, `eslint`, `tape` [`7af9300`](https://github.com/ljharb/function-bind/commit/7af930023ae2ce7645489532821e4fbbcd7a2280)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `covert`, `tape` [`64a9127`](https://github.com/ljharb/function-bind/commit/64a9127ab0bd331b93d6572eaf6e9971967fc08c)
+- [Tests] use `aud` instead of `npm audit` [`e75069c`](https://github.com/ljharb/function-bind/commit/e75069c50010a8fcce2a9ce2324934c35fdb4386)
+- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `tape` [`d03555c`](https://github.com/ljharb/function-bind/commit/d03555ca59dea3b71ce710045e4303b9e2619e28)
+- [meta] add `safe-publish-latest` [`9c8f809`](https://github.com/ljharb/function-bind/commit/9c8f8092aed027d7e80c94f517aa892385b64f09)
+- [Dev Deps] update `@ljharb/eslint-config`, `tape` [`baf6893`](https://github.com/ljharb/function-bind/commit/baf6893e27f5b59abe88bc1995e6f6ed1e527397)
+- [meta] create SECURITY.md [`4db1779`](https://github.com/ljharb/function-bind/commit/4db17799f1f28ae294cb95e0081ca2b591c3911b)
+- [Tests] add `npm run audit` [`c8b38ec`](https://github.com/ljharb/function-bind/commit/c8b38ec40ed3f85dabdee40ed4148f1748375bc2)
+- Revert "Point to the correct file" [`05cdf0f`](https://github.com/ljharb/function-bind/commit/05cdf0fa205c6a3c5ba40bbedd1dfa9874f915c9)
+
+## [v1.1.1](https://github.com/ljharb/function-bind/compare/v1.1.0...v1.1.1) - 2017-08-28
+
+### Commits
+
+- [Tests] up to `node` `v8`; newer npm breaks on older node; fix scripts [`817f7d2`](https://github.com/ljharb/function-bind/commit/817f7d28470fdbff8ef608d4d565dd4d1430bc5e)
+- [Dev Deps] update `eslint`, `jscs`, `tape`, `@ljharb/eslint-config` [`854288b`](https://github.com/ljharb/function-bind/commit/854288b1b6f5c555f89aceb9eff1152510262084)
+- [Dev Deps] update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`83e639f`](https://github.com/ljharb/function-bind/commit/83e639ff74e6cd6921285bccec22c1bcf72311bd)
+- Only apps should have lockfiles [`5ed97f5`](https://github.com/ljharb/function-bind/commit/5ed97f51235c17774e0832e122abda0f3229c908)
+- Use a SPDX-compliant “license” field. [`5feefea`](https://github.com/ljharb/function-bind/commit/5feefea0dc0193993e83e5df01ded424403a5381)
+
+## [v1.1.0](https://github.com/ljharb/function-bind/compare/v1.0.2...v1.1.0) - 2016-02-14
+
+### Commits
+
+- Update `eslint`, `tape`; use my personal shared `eslint` config [`9c9062a`](https://github.com/ljharb/function-bind/commit/9c9062abbe9dd70b59ea2c3a3c3a81f29b457097)
+- Add `npm run eslint` [`dd96c56`](https://github.com/ljharb/function-bind/commit/dd96c56720034a3c1ffee10b8a59a6f7c53e24ad)
+- [New] return the native `bind` when available. [`82186e0`](https://github.com/ljharb/function-bind/commit/82186e03d73e580f95ff167e03f3582bed90ed72)
+- [Dev Deps] update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`a3dd767`](https://github.com/ljharb/function-bind/commit/a3dd76720c795cb7f4586b0544efabf8aa107b8b)
+- Update `eslint` [`3dae2f7`](https://github.com/ljharb/function-bind/commit/3dae2f7423de30a2d20313ddb1edc19660142fe9)
+- Update `tape`, `covert`, `jscs` [`a181eee`](https://github.com/ljharb/function-bind/commit/a181eee0cfa24eb229c6e843a971f36e060a2f6a)
+- [Tests] up to `node` `v5.6`, `v4.3` [`964929a`](https://github.com/ljharb/function-bind/commit/964929a6a4ddb36fb128de2bcc20af5e4f22e1ed)
+- Test up to `io.js` `v2.1` [`2be7310`](https://github.com/ljharb/function-bind/commit/2be7310f2f74886a7124ca925be411117d41d5ea)
+- Update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`45f3d68`](https://github.com/ljharb/function-bind/commit/45f3d6865c6ca93726abcef54febe009087af101)
+- [Dev Deps] update `tape`, `jscs` [`6e1340d`](https://github.com/ljharb/function-bind/commit/6e1340d94642deaecad3e717825db641af4f8b1f)
+- [Tests] up to `io.js` `v3.3`, `node` `v4.1` [`d9bad2b`](https://github.com/ljharb/function-bind/commit/d9bad2b778b1b3a6dd2876087b88b3acf319f8cc)
+- Update `eslint` [`935590c`](https://github.com/ljharb/function-bind/commit/935590caa024ab356102e4858e8fc315b2ccc446)
+- [Dev Deps] update `jscs`, `eslint`, `@ljharb/eslint-config` [`8c9a1ef`](https://github.com/ljharb/function-bind/commit/8c9a1efd848e5167887aa8501857a0940a480c57)
+- Test on `io.js` `v2.2` [`9a3a38c`](https://github.com/ljharb/function-bind/commit/9a3a38c92013aed6e108666e7bd40969b84ac86e)
+- Run `travis-ci` tests on `iojs` and `node` v0.12; speed up builds; allow 0.8 failures. [`69afc26`](https://github.com/ljharb/function-bind/commit/69afc2617405b147dd2a8d8ae73ca9e9283f18b4)
+- [Dev Deps] Update `tape`, `eslint` [`36c1be0`](https://github.com/ljharb/function-bind/commit/36c1be0ab12b45fe5df6b0fdb01a5d5137fd0115)
+- Update `tape`, `jscs` [`98d8303`](https://github.com/ljharb/function-bind/commit/98d8303cd5ca1c6b8f985469f86b0d44d7d45f6e)
+- Update `jscs` [`9633a4e`](https://github.com/ljharb/function-bind/commit/9633a4e9fbf82051c240855166e468ba8ba0846f)
+- Update `tape`, `jscs` [`c80ef0f`](https://github.com/ljharb/function-bind/commit/c80ef0f46efc9791e76fa50de4414092ac147831)
+- Test up to `io.js` `v3.0` [`7e2c853`](https://github.com/ljharb/function-bind/commit/7e2c8537d52ab9cf5a655755561d8917684c0df4)
+- Test on `io.js` `v2.4` [`5a199a2`](https://github.com/ljharb/function-bind/commit/5a199a27ba46795ba5eaf0845d07d4b8232895c9)
+- Test on `io.js` `v2.3` [`a511b88`](https://github.com/ljharb/function-bind/commit/a511b8896de0bddf3b56862daa416c701f4d0453)
+- Fixing a typo from 822b4e1938db02dc9584aa434fd3a45cb20caf43 [`732d6b6`](https://github.com/ljharb/function-bind/commit/732d6b63a9b33b45230e630dbcac7a10855d3266)
+- Update `jscs` [`da52a48`](https://github.com/ljharb/function-bind/commit/da52a4886c06d6490f46ae30b15e4163ba08905d)
+- Lock covert to v1.0.0. [`d6150fd`](https://github.com/ljharb/function-bind/commit/d6150fda1e6f486718ebdeff823333d9e48e7430)
+
+## [v1.0.2](https://github.com/ljharb/function-bind/compare/v1.0.1...v1.0.2) - 2014-10-04
+
+## [v1.0.1](https://github.com/ljharb/function-bind/compare/v1.0.0...v1.0.1) - 2014-10-03
+
+### Merged
+
+- make CI build faster [`#3`](https://github.com/ljharb/function-bind/pull/3)
+
+### Commits
+
+- Using my standard jscs.json [`d8ee94c`](https://github.com/ljharb/function-bind/commit/d8ee94c993eff0a84cf5744fe6a29627f5cffa1a)
+- Adding `npm run lint` [`7571ab7`](https://github.com/ljharb/function-bind/commit/7571ab7dfdbd99b25a1dbb2d232622bd6f4f9c10)
+- Using consistent indentation [`e91a1b1`](https://github.com/ljharb/function-bind/commit/e91a1b13a61e99ec1e530e299b55508f74218a95)
+- Updating jscs [`7e17892`](https://github.com/ljharb/function-bind/commit/7e1789284bc629bc9c1547a61c9b227bbd8c7a65)
+- Using consistent quotes [`c50b57f`](https://github.com/ljharb/function-bind/commit/c50b57fcd1c5ec38320979c837006069ebe02b77)
+- Adding keywords [`cb94631`](https://github.com/ljharb/function-bind/commit/cb946314eed35f21186a25fb42fc118772f9ee00)
+- Directly export a function expression instead of using a declaration, and relying on hoisting. [`5a33c5f`](https://github.com/ljharb/function-bind/commit/5a33c5f45642de180e0d207110bf7d1843ceb87c)
+- Naming npm URL and badge in README; use SVG [`2aef8fc`](https://github.com/ljharb/function-bind/commit/2aef8fcb79d54e63a58ae557c4e60949e05d5e16)
+- Naming deps URLs in README [`04228d7`](https://github.com/ljharb/function-bind/commit/04228d766670ee45ca24e98345c1f6a7621065b5)
+- Naming travis-ci URLs in README; using SVG [`62c810c`](https://github.com/ljharb/function-bind/commit/62c810c2f54ced956cd4d4ab7b793055addfe36e)
+- Make sure functions are invoked correctly (also passing coverage tests) [`2b289b4`](https://github.com/ljharb/function-bind/commit/2b289b4dfbf037ffcfa4dc95eb540f6165e9e43a)
+- Removing the strict mode pragmas; they make tests fail. [`1aa701d`](https://github.com/ljharb/function-bind/commit/1aa701d199ddc3782476e8f7eef82679be97b845)
+- Adding myself as a contributor [`85fd57b`](https://github.com/ljharb/function-bind/commit/85fd57b0860e5a7af42de9a287f3f265fc6d72fc)
+- Adding strict mode pragmas [`915b08e`](https://github.com/ljharb/function-bind/commit/915b08e084c86a722eafe7245e21db74aa21ca4c)
+- Adding devDeps URLs to README [`4ccc731`](https://github.com/ljharb/function-bind/commit/4ccc73112c1769859e4ca3076caf4086b3cba2cd)
+- Fixing the description. [`a7a472c`](https://github.com/ljharb/function-bind/commit/a7a472cf649af515c635cf560fc478fbe48999c8)
+- Using a function expression instead of a function declaration. [`b5d3e4e`](https://github.com/ljharb/function-bind/commit/b5d3e4ea6aaffc63888953eeb1fbc7ff45f1fa14)
+- Updating tape [`f086be6`](https://github.com/ljharb/function-bind/commit/f086be6029fb56dde61a258c1340600fa174d1e0)
+- Updating jscs [`5f9bdb3`](https://github.com/ljharb/function-bind/commit/5f9bdb375ab13ba48f30852aab94029520c54d71)
+- Updating jscs [`9b409ba`](https://github.com/ljharb/function-bind/commit/9b409ba6118e23395a4e5d83ef39152aab9d3bfc)
+- Run coverage as part of tests. [`8e1b6d4`](https://github.com/ljharb/function-bind/commit/8e1b6d459f047d1bd4fee814e01247c984c80bd0)
+- Run linter as part of tests [`c1ca83f`](https://github.com/ljharb/function-bind/commit/c1ca83f832df94587d09e621beba682fabfaa987)
+- Updating covert [`701e837`](https://github.com/ljharb/function-bind/commit/701e83774b57b4d3ef631e1948143f43a72f4bb9)
+
+## [v1.0.0](https://github.com/ljharb/function-bind/compare/v0.2.0...v1.0.0) - 2014-08-09
+
+### Commits
+
+- Make sure old and unstable nodes don't fail Travis [`27adca3`](https://github.com/ljharb/function-bind/commit/27adca34a4ab6ad67b6dfde43942a1b103ce4d75)
+- Fixing an issue when the bound function is called as a constructor in ES3. [`e20122d`](https://github.com/ljharb/function-bind/commit/e20122d267d92ce553859b280cbbea5d27c07731)
+- Adding `npm run coverage` [`a2e29c4`](https://github.com/ljharb/function-bind/commit/a2e29c4ecaef9e2f6cd1603e868c139073375502)
+- Updating tape [`b741168`](https://github.com/ljharb/function-bind/commit/b741168b12b235b1717ff696087645526b69213c)
+- Upgrading tape [`63631a0`](https://github.com/ljharb/function-bind/commit/63631a04c7fbe97cc2fa61829cc27246d6986f74)
+- Updating tape [`363cb46`](https://github.com/ljharb/function-bind/commit/363cb46dafb23cb3e347729a22f9448051d78464)
+
+## v0.2.0 - 2014-03-23
+
+### Commits
+
+- Updating test coverage to match es5-shim. [`aa94d44`](https://github.com/ljharb/function-bind/commit/aa94d44b8f9d7f69f10e060db7709aa7a694e5d4)
+- initial [`942ee07`](https://github.com/ljharb/function-bind/commit/942ee07e94e542d91798137bc4b80b926137e066)
+- Setting the bound function's length properly. [`079f46a`](https://github.com/ljharb/function-bind/commit/079f46a2d3515b7c0b308c2c13fceb641f97ca25)
+- Ensuring that some older browsers will throw when given a regex. [`36ac55b`](https://github.com/ljharb/function-bind/commit/36ac55b87f460d4330253c92870aa26fbfe8227f)
+- Removing npm scripts that don't have dependencies [`9d2be60`](https://github.com/ljharb/function-bind/commit/9d2be600002cb8bc8606f8f3585ad3e05868c750)
+- Updating tape [`297a4ac`](https://github.com/ljharb/function-bind/commit/297a4acc5464db381940aafb194d1c88f4e678f3)
+- Skipping length tests for now. [`d9891ea`](https://github.com/ljharb/function-bind/commit/d9891ea4d2aaffa69f408339cdd61ff740f70565)
+- don't take my tea [`dccd930`](https://github.com/ljharb/function-bind/commit/dccd930bfd60ea10cb178d28c97550c3bc8c1e07)
diff --git a/node_modules/function-bind/README.md b/node_modules/function-bind/README.md
index 81862a0..814c20b 100644
--- a/node_modules/function-bind/README.md
+++ b/node_modules/function-bind/README.md
@@ -1,22 +1,19 @@
-# function-bind
+# function-bind [![Version Badge][npm-version-svg]][package-url]
-
+[![github actions][actions-image]][actions-url]
+
+[![dependency status][deps-svg]][deps-url]
+[![dev dependency status][dev-deps-svg]][dev-deps-url]
+[![License][license-image]][license-url]
+[![Downloads][downloads-image]][downloads-url]
-
+[![npm badge][npm-badge-png]][package-url]
Implementation of function.prototype.bind
-## Example
+Old versions of phantomjs, Internet Explorer < 9, and node < 0.6 don't support `Function.prototype.bind`.
-I mainly do this for unit tests I run on phantomjs.
-PhantomJS does not have Function.prototype.bind :(
+## Example
```js
Function.prototype.bind = require("function-bind")
@@ -32,17 +29,18 @@ Function.prototype.bind = require("function-bind")
## MIT Licenced
- [travis-svg]: https://travis-ci.org/Raynos/function-bind.svg
- [travis-url]: https://travis-ci.org/Raynos/function-bind
- [npm-badge-svg]: https://badge.fury.io/js/function-bind.svg
- [npm-url]: https://npmjs.org/package/function-bind
- [5]: https://coveralls.io/repos/Raynos/function-bind/badge.png
- [6]: https://coveralls.io/r/Raynos/function-bind
- [7]: https://gemnasium.com/Raynos/function-bind.png
- [8]: https://gemnasium.com/Raynos/function-bind
- [deps-svg]: https://david-dm.org/Raynos/function-bind.svg
- [deps-url]: https://david-dm.org/Raynos/function-bind
- [dev-deps-svg]: https://david-dm.org/Raynos/function-bind/dev-status.svg
- [dev-deps-url]: https://david-dm.org/Raynos/function-bind#info=devDependencies
- [11]: https://ci.testling.com/Raynos/function-bind.png
- [12]: https://ci.testling.com/Raynos/function-bind
+[package-url]: https://npmjs.org/package/function-bind
+[npm-version-svg]: https://versionbadg.es/Raynos/function-bind.svg
+[deps-svg]: https://david-dm.org/Raynos/function-bind.svg
+[deps-url]: https://david-dm.org/Raynos/function-bind
+[dev-deps-svg]: https://david-dm.org/Raynos/function-bind/dev-status.svg
+[dev-deps-url]: https://david-dm.org/Raynos/function-bind#info=devDependencies
+[npm-badge-png]: https://nodei.co/npm/function-bind.png?downloads=true&stars=true
+[license-image]: https://img.shields.io/npm/l/function-bind.svg
+[license-url]: LICENSE
+[downloads-image]: https://img.shields.io/npm/dm/function-bind.svg
+[downloads-url]: https://npm-stat.com/charts.html?package=function-bind
+[codecov-image]: https://codecov.io/gh/Raynos/function-bind/branch/main/graphs/badge.svg
+[codecov-url]: https://app.codecov.io/gh/Raynos/function-bind/
+[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/Raynos/function-bind
+[actions-url]: https://github.com/Raynos/function-bind/actions
diff --git a/node_modules/function-bind/implementation.js b/node_modules/function-bind/implementation.js
index cc4daec..fd4384c 100644
--- a/node_modules/function-bind/implementation.js
+++ b/node_modules/function-bind/implementation.js
@@ -3,43 +3,75 @@
/* eslint no-invalid-this: 1 */
var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';
-var slice = Array.prototype.slice;
var toStr = Object.prototype.toString;
+var max = Math.max;
var funcType = '[object Function]';
+var concatty = function concatty(a, b) {
+ var arr = [];
+
+ for (var i = 0; i < a.length; i += 1) {
+ arr[i] = a[i];
+ }
+ for (var j = 0; j < b.length; j += 1) {
+ arr[j + a.length] = b[j];
+ }
+
+ return arr;
+};
+
+var slicy = function slicy(arrLike, offset) {
+ var arr = [];
+ for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {
+ arr[j] = arrLike[i];
+ }
+ return arr;
+};
+
+var joiny = function (arr, joiner) {
+ var str = '';
+ for (var i = 0; i < arr.length; i += 1) {
+ str += arr[i];
+ if (i + 1 < arr.length) {
+ str += joiner;
+ }
+ }
+ return str;
+};
+
module.exports = function bind(that) {
var target = this;
- if (typeof target !== 'function' || toStr.call(target) !== funcType) {
+ if (typeof target !== 'function' || toStr.apply(target) !== funcType) {
throw new TypeError(ERROR_MESSAGE + target);
}
- var args = slice.call(arguments, 1);
+ var args = slicy(arguments, 1);
var bound;
var binder = function () {
if (this instanceof bound) {
var result = target.apply(
this,
- args.concat(slice.call(arguments))
+ concatty(args, arguments)
);
if (Object(result) === result) {
return result;
}
return this;
- } else {
- return target.apply(
- that,
- args.concat(slice.call(arguments))
- );
}
+ return target.apply(
+ that,
+ concatty(args, arguments)
+ );
+
};
- var boundLength = Math.max(0, target.length - args.length);
+ var boundLength = max(0, target.length - args.length);
var boundArgs = [];
for (var i = 0; i < boundLength; i++) {
- boundArgs.push('$' + i);
+ boundArgs[i] = '$' + i;
}
- bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);
+ bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);
if (target.prototype) {
var Empty = function Empty() {};
diff --git a/node_modules/function-bind/package.json b/node_modules/function-bind/package.json
index 505498b..6185963 100644
--- a/node_modules/function-bind/package.json
+++ b/node_modules/function-bind/package.json
@@ -1,38 +1,23 @@
{
- "_from": "function-bind@^1.1.1",
- "_id": "function-bind@1.1.1",
- "_inBundle": false,
- "_integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
- "_location": "/function-bind",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "function-bind@^1.1.1",
- "name": "function-bind",
- "escapedName": "function-bind",
- "rawSpec": "^1.1.1",
- "saveSpec": null,
- "fetchSpec": "^1.1.1"
- },
- "_requiredBy": [
- "/call-bind",
- "/get-intrinsic",
- "/has"
+ "name": "function-bind",
+ "version": "1.1.2",
+ "description": "Implementation of Function.prototype.bind",
+ "keywords": [
+ "function",
+ "bind",
+ "shim",
+ "es5"
],
- "_resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "_shasum": "a56899d3ea3c9bab874bb9773b7c5ede92f4895d",
- "_spec": "function-bind@^1.1.1",
- "_where": "/home/ubuntu/formidable/node_modules/call-bind",
- "author": {
- "name": "Raynos",
- "email": "raynos2@gmail.com"
+ "author": "Raynos ",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/Raynos/function-bind.git"
},
- "bugs": {
- "url": "https://github.com/Raynos/function-bind/issues",
- "email": "raynos2@gmail.com"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
},
- "bundleDependencies": false,
+ "main": "index",
+ "homepage": "https://github.com/Raynos/function-bind",
"contributors": [
{
"name": "Raynos"
@@ -42,39 +27,33 @@
"url": "https://github.com/ljharb"
}
],
- "dependencies": {},
- "deprecated": false,
- "description": "Implementation of Function.prototype.bind",
+ "bugs": {
+ "url": "https://github.com/Raynos/function-bind/issues",
+ "email": "raynos2@gmail.com"
+ },
"devDependencies": {
- "@ljharb/eslint-config": "^12.2.1",
- "covert": "^1.1.0",
- "eslint": "^4.5.0",
- "jscs": "^3.0.7",
- "tape": "^4.8.0"
+ "@ljharb/eslint-config": "^21.1.0",
+ "aud": "^2.0.3",
+ "auto-changelog": "^2.4.0",
+ "eslint": "=8.8.0",
+ "in-publish": "^2.0.1",
+ "npmignore": "^0.3.0",
+ "nyc": "^10.3.2",
+ "safe-publish-latest": "^2.0.0",
+ "tape": "^5.7.1"
},
- "homepage": "https://github.com/Raynos/function-bind",
- "keywords": [
- "function",
- "bind",
- "shim",
- "es5"
- ],
"license": "MIT",
- "main": "index",
- "name": "function-bind",
- "repository": {
- "type": "git",
- "url": "git://github.com/Raynos/function-bind.git"
- },
"scripts": {
- "coverage": "covert test/*.js",
- "eslint": "eslint *.js */*.js",
- "jscs": "jscs *.js */*.js",
- "lint": "npm run jscs && npm run eslint",
- "posttest": "npm run coverage -- --quiet",
+ "prepublishOnly": "safe-publish-latest",
+ "prepublish": "not-in-publish || npm run prepublishOnly",
+ "prepack": "npmignore --auto --commentLines=autogenerated",
"pretest": "npm run lint",
"test": "npm run tests-only",
- "tests-only": "node test"
+ "posttest": "aud --production",
+ "tests-only": "nyc tape 'test/**/*.js'",
+ "lint": "eslint --ext=js,mjs .",
+ "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)\")\""
},
"testling": {
"files": "test/index.js",
@@ -92,5 +71,17 @@
"android-browser/4.2..latest"
]
},
- "version": "1.1.1"
+ "auto-changelog": {
+ "output": "CHANGELOG.md",
+ "template": "keepachangelog",
+ "unreleased": false,
+ "commitLimit": false,
+ "backfillLimit": false,
+ "hideCredit": true
+ },
+ "publishConfig": {
+ "ignore": [
+ ".github/workflows"
+ ]
+ }
}
diff --git a/node_modules/get-intrinsic/CHANGELOG.md b/node_modules/get-intrinsic/CHANGELOG.md
index 15e7a37..96d5397 100644
--- a/node_modules/get-intrinsic/CHANGELOG.md
+++ b/node_modules/get-intrinsic/CHANGELOG.md
@@ -5,6 +5,39 @@ 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.2.4](https://github.com/ljharb/get-intrinsic/compare/v1.2.3...v1.2.4) - 2024-02-05
+
+### Commits
+
+- [Refactor] use all 7 <+ ES6 Errors from `es-errors` [`bcac811`](https://github.com/ljharb/get-intrinsic/commit/bcac811abdc1c982e12abf848a410d6aae148d14)
+
+## [v1.2.3](https://github.com/ljharb/get-intrinsic/compare/v1.2.2...v1.2.3) - 2024-02-03
+
+### Commits
+
+- [Refactor] use `es-errors`, so things that only need those do not need `get-intrinsic` [`f11db9c`](https://github.com/ljharb/get-intrinsic/commit/f11db9c4fb97d87bbd53d3c73ac6b3db3613ad3b)
+- [Dev Deps] update `aud`, `es-abstract`, `mock-property`, `npmignore` [`b7ac7d1`](https://github.com/ljharb/get-intrinsic/commit/b7ac7d1616fefb03877b1aed0c8f8d61aad32b6c)
+- [meta] simplify `exports` [`faa0cc6`](https://github.com/ljharb/get-intrinsic/commit/faa0cc618e2830ffb51a8202490b0c215d965cbc)
+- [meta] add missing `engines.node` [`774dd0b`](https://github.com/ljharb/get-intrinsic/commit/774dd0b3e8f741c3f05a6322d124d6087f146af1)
+- [Dev Deps] update `tape` [`5828e8e`](https://github.com/ljharb/get-intrinsic/commit/5828e8e4a04e69312e87a36c0ea39428a7a4c3d8)
+- [Robustness] use null objects for lookups [`eb9a11f`](https://github.com/ljharb/get-intrinsic/commit/eb9a11fa9eb3e13b193fcc05a7fb814341b1a7b7)
+- [meta] add `sideEffects` flag [`89bcc7a`](https://github.com/ljharb/get-intrinsic/commit/89bcc7a42e19bf07b7c21e3094d5ab177109e6d2)
+
+## [v1.2.2](https://github.com/ljharb/get-intrinsic/compare/v1.2.1...v1.2.2) - 2023-10-20
+
+### Commits
+
+- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `call-bind`, `es-abstract`, `mock-property`, `object-inspect`, `tape` [`f51bcf2`](https://github.com/ljharb/get-intrinsic/commit/f51bcf26412d58d17ce17c91c9afd0ad271f0762)
+- [Refactor] use `hasown` instead of `has` [`18d14b7`](https://github.com/ljharb/get-intrinsic/commit/18d14b799bea6b5765e1cec91890830cbcdb0587)
+- [Deps] update `function-bind` [`6e109c8`](https://github.com/ljharb/get-intrinsic/commit/6e109c81e03804cc5e7824fb64353cdc3d8ee2c7)
+
+## [v1.2.1](https://github.com/ljharb/get-intrinsic/compare/v1.2.0...v1.2.1) - 2023-05-13
+
+### Commits
+
+- [Fix] avoid a crash in envs without `__proto__` [`7bad8d0`](https://github.com/ljharb/get-intrinsic/commit/7bad8d061bf8721733b58b73a2565af2b6756b64)
+- [Dev Deps] update `es-abstract` [`c60e6b7`](https://github.com/ljharb/get-intrinsic/commit/c60e6b7b4cf9660c7f27ed970970fd55fac48dc5)
+
## [v1.2.0](https://github.com/ljharb/get-intrinsic/compare/v1.1.3...v1.2.0) - 2023-01-19
### Commits
diff --git a/node_modules/get-intrinsic/index.js b/node_modules/get-intrinsic/index.js
index 8fd7de0..c25e2c4 100644
--- a/node_modules/get-intrinsic/index.js
+++ b/node_modules/get-intrinsic/index.js
@@ -2,9 +2,15 @@
var undefined;
-var $SyntaxError = SyntaxError;
+var $Error = require('es-errors');
+var $EvalError = require('es-errors/eval');
+var $RangeError = require('es-errors/range');
+var $ReferenceError = require('es-errors/ref');
+var $SyntaxError = require('es-errors/syntax');
+var $TypeError = require('es-errors/type');
+var $URIError = require('es-errors/uri');
+
var $Function = Function;
-var $TypeError = TypeError;
// eslint-disable-next-line consistent-return
var getEvalledConstructor = function (expressionSyntax) {
@@ -43,18 +49,24 @@ var ThrowTypeError = $gOPD
: throwTypeError;
var hasSymbols = require('has-symbols')();
+var hasProto = require('has-proto')();
-var getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto
+var getProto = Object.getPrototypeOf || (
+ hasProto
+ ? function (x) { return x.__proto__; } // eslint-disable-line no-proto
+ : null
+);
var needsEval = {};
-var TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);
+var TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);
var INTRINSICS = {
+ __proto__: null,
'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,
'%Array%': Array,
'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,
- '%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,
+ '%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,
'%AsyncFromSyncIteratorPrototype%': undefined,
'%AsyncFunction%': needsEval,
'%AsyncGenerator%': needsEval,
@@ -71,9 +83,9 @@ var INTRINSICS = {
'%decodeURIComponent%': decodeURIComponent,
'%encodeURI%': encodeURI,
'%encodeURIComponent%': encodeURIComponent,
- '%Error%': Error,
+ '%Error%': $Error,
'%eval%': eval, // eslint-disable-line no-eval
- '%EvalError%': EvalError,
+ '%EvalError%': $EvalError,
'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,
'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,
'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,
@@ -84,10 +96,10 @@ var INTRINSICS = {
'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,
'%isFinite%': isFinite,
'%isNaN%': isNaN,
- '%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,
+ '%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,
'%JSON%': typeof JSON === 'object' ? JSON : undefined,
'%Map%': typeof Map === 'undefined' ? undefined : Map,
- '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),
+ '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),
'%Math%': Math,
'%Number%': Number,
'%Object%': Object,
@@ -95,15 +107,15 @@ var INTRINSICS = {
'%parseInt%': parseInt,
'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,
'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,
- '%RangeError%': RangeError,
- '%ReferenceError%': ReferenceError,
+ '%RangeError%': $RangeError,
+ '%ReferenceError%': $ReferenceError,
'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,
'%RegExp%': RegExp,
'%Set%': typeof Set === 'undefined' ? undefined : Set,
- '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),
+ '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),
'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,
'%String%': String,
- '%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,
+ '%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,
'%Symbol%': hasSymbols ? Symbol : undefined,
'%SyntaxError%': $SyntaxError,
'%ThrowTypeError%': ThrowTypeError,
@@ -113,18 +125,20 @@ var INTRINSICS = {
'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,
'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,
'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,
- '%URIError%': URIError,
+ '%URIError%': $URIError,
'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,
'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,
'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet
};
-try {
- null.error; // eslint-disable-line no-unused-expressions
-} catch (e) {
- // https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229
- var errorProto = getProto(getProto(e));
- INTRINSICS['%Error.prototype%'] = errorProto;
+if (getProto) {
+ try {
+ null.error; // eslint-disable-line no-unused-expressions
+ } catch (e) {
+ // https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229
+ var errorProto = getProto(getProto(e));
+ INTRINSICS['%Error.prototype%'] = errorProto;
+ }
}
var doEval = function doEval(name) {
@@ -142,7 +156,7 @@ var doEval = function doEval(name) {
}
} else if (name === '%AsyncIteratorPrototype%') {
var gen = doEval('%AsyncGenerator%');
- if (gen) {
+ if (gen && getProto) {
value = getProto(gen.prototype);
}
}
@@ -153,6 +167,7 @@ var doEval = function doEval(name) {
};
var LEGACY_ALIASES = {
+ __proto__: null,
'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],
'%ArrayPrototype%': ['Array', 'prototype'],
'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],
@@ -207,7 +222,7 @@ var LEGACY_ALIASES = {
};
var bind = require('function-bind');
-var hasOwn = require('has');
+var hasOwn = require('hasown');
var $concat = bind.call(Function.call, Array.prototype.concat);
var $spliceApply = bind.call(Function.apply, Array.prototype.splice);
var $replace = bind.call(Function.call, String.prototype.replace);
diff --git a/node_modules/get-intrinsic/package.json b/node_modules/get-intrinsic/package.json
index 1a0cc5c..568dff9 100644
--- a/node_modules/get-intrinsic/package.json
+++ b/node_modules/get-intrinsic/package.json
@@ -1,121 +1,93 @@
{
- "_from": "get-intrinsic@^1.0.2",
- "_id": "get-intrinsic@1.2.0",
- "_inBundle": false,
- "_integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
- "_location": "/get-intrinsic",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "get-intrinsic@^1.0.2",
- "name": "get-intrinsic",
- "escapedName": "get-intrinsic",
- "rawSpec": "^1.0.2",
- "saveSpec": null,
- "fetchSpec": "^1.0.2"
- },
- "_requiredBy": [
- "/call-bind",
- "/side-channel"
- ],
- "_resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
- "_shasum": "7ad1dc0535f3a2904bba075772763e5051f6d05f",
- "_spec": "get-intrinsic@^1.0.2",
- "_where": "/home/ubuntu/formidable/node_modules/side-channel",
- "author": {
- "name": "Jordan Harband",
- "email": "ljharb@gmail.com"
- },
- "auto-changelog": {
- "output": "CHANGELOG.md",
- "template": "keepachangelog",
- "unreleased": false,
- "commitLimit": false,
- "backfillLimit": false,
- "hideCredit": true
- },
- "bugs": {
- "url": "https://github.com/ljharb/get-intrinsic/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.3"
- },
- "deprecated": false,
- "description": "Get and robustly cache all JS language-level intrinsics at first require time",
- "devDependencies": {
- "@ljharb/eslint-config": "^21.0.1",
- "aud": "^2.0.2",
- "auto-changelog": "^2.4.0",
- "call-bind": "^1.0.2",
- "es-abstract": "^1.21.1",
- "es-value-fixtures": "^1.4.2",
- "eslint": "=8.8.0",
- "evalmd": "^0.0.19",
- "for-each": "^0.3.3",
- "gopd": "^1.0.1",
- "make-async-function": "^1.0.0",
- "make-async-generator-function": "^1.0.0",
- "make-generator-function": "^2.0.0",
- "mock-property": "^1.0.0",
- "npmignore": "^0.3.0",
- "nyc": "^10.3.2",
- "object-inspect": "^1.12.3",
- "safe-publish-latest": "^2.0.0",
- "tape": "^5.6.3"
- },
- "exports": {
- ".": [
- {
- "default": "./index.js"
- },
- "./index.js"
- ],
- "./package.json": "./package.json"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- },
- "homepage": "https://github.com/ljharb/get-intrinsic#readme",
- "keywords": [
- "javascript",
- "ecmascript",
- "es",
- "js",
- "intrinsic",
- "getintrinsic",
- "es-abstract"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "get-intrinsic",
- "publishConfig": {
- "ignore": [
- ".github/workflows"
- ]
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/ljharb/get-intrinsic.git"
- },
- "scripts": {
- "lint": "eslint --ext=.js,.mjs .",
- "posttest": "aud --production",
- "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"",
- "prelint": "evalmd README.md",
- "prepack": "npmignore --auto --commentLines=autogenerated",
- "prepublish": "not-in-publish || npm run prepublishOnly",
- "prepublishOnly": "safe-publish-latest",
- "pretest": "npm run lint",
- "test": "npm run tests-only",
- "tests-only": "nyc tape 'test/**/*.js'",
- "version": "auto-changelog && git add CHANGELOG.md"
- },
- "testling": {
- "files": "test/GetIntrinsic.js"
- },
- "version": "1.2.0"
+ "name": "get-intrinsic",
+ "version": "1.2.4",
+ "description": "Get and robustly cache all JS language-level intrinsics at first require time",
+ "main": "index.js",
+ "exports": {
+ ".": "./index.js",
+ "./package.json": "./package.json"
+ },
+ "sideEffects": false,
+ "scripts": {
+ "prepack": "npmignore --auto --commentLines=autogenerated",
+ "prepublish": "not-in-publish || npm run prepublishOnly",
+ "prepublishOnly": "safe-publish-latest",
+ "prelint": "evalmd README.md",
+ "lint": "eslint --ext=.js,.mjs .",
+ "pretest": "npm run lint",
+ "tests-only": "nyc tape 'test/**/*.js'",
+ "test": "npm run tests-only",
+ "posttest": "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/get-intrinsic.git"
+ },
+ "keywords": [
+ "javascript",
+ "ecmascript",
+ "es",
+ "js",
+ "intrinsic",
+ "getintrinsic",
+ "es-abstract"
+ ],
+ "author": "Jordan Harband ",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ },
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/ljharb/get-intrinsic/issues"
+ },
+ "homepage": "https://github.com/ljharb/get-intrinsic#readme",
+ "devDependencies": {
+ "@ljharb/eslint-config": "^21.1.0",
+ "aud": "^2.0.4",
+ "auto-changelog": "^2.4.0",
+ "call-bind": "^1.0.5",
+ "es-abstract": "^1.22.3",
+ "es-value-fixtures": "^1.4.2",
+ "eslint": "=8.8.0",
+ "evalmd": "^0.0.19",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "make-async-function": "^1.0.0",
+ "make-async-generator-function": "^1.0.0",
+ "make-generator-function": "^2.0.0",
+ "mock-property": "^1.0.3",
+ "npmignore": "^0.3.1",
+ "nyc": "^10.3.2",
+ "object-inspect": "^1.13.1",
+ "safe-publish-latest": "^2.0.0",
+ "tape": "^5.7.4"
+ },
+ "auto-changelog": {
+ "output": "CHANGELOG.md",
+ "template": "keepachangelog",
+ "unreleased": false,
+ "commitLimit": false,
+ "backfillLimit": false,
+ "hideCredit": true
+ },
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0"
+ },
+ "testling": {
+ "files": "test/GetIntrinsic.js"
+ },
+ "publishConfig": {
+ "ignore": [
+ ".github/workflows"
+ ]
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
}
diff --git a/node_modules/gopd/.eslintrc b/node_modules/gopd/.eslintrc
new file mode 100644
index 0000000..e2550c0
--- /dev/null
+++ b/node_modules/gopd/.eslintrc
@@ -0,0 +1,16 @@
+{
+ "root": true,
+
+ "extends": "@ljharb",
+
+ "rules": {
+ "func-style": [2, "declaration"],
+ "id-length": 0,
+ "multiline-comment-style": 0,
+ "new-cap": [2, {
+ "capIsNewExceptions": [
+ "GetIntrinsic",
+ ],
+ }],
+ },
+}
diff --git a/node_modules/gopd/.github/FUNDING.yml b/node_modules/gopd/.github/FUNDING.yml
new file mode 100644
index 0000000..94a44a8
--- /dev/null
+++ b/node_modules/gopd/.github/FUNDING.yml
@@ -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/gopd
+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']
diff --git a/node_modules/gopd/CHANGELOG.md b/node_modules/gopd/CHANGELOG.md
new file mode 100644
index 0000000..f111eb1
--- /dev/null
+++ b/node_modules/gopd/CHANGELOG.md
@@ -0,0 +1,25 @@
+# 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.1](https://github.com/ljharb/gopd/compare/v1.0.0...v1.0.1) - 2022-11-01
+
+### Commits
+
+- [Fix] actually export gOPD instead of dP [`4b624bf`](https://github.com/ljharb/gopd/commit/4b624bfbeff788c5e3ff16d9443a83627847234f)
+
+## v1.0.0 - 2022-11-01
+
+### Commits
+
+- Initial implementation, tests, readme [`0911e01`](https://github.com/ljharb/gopd/commit/0911e012cd642092bd88b732c161c58bf4f20bea)
+- Initial commit [`b84e33f`](https://github.com/ljharb/gopd/commit/b84e33f5808a805ac57ff88d4247ad935569acbe)
+- [actions] add reusable workflows [`12ae28a`](https://github.com/ljharb/gopd/commit/12ae28ae5f50f86e750215b6e2188901646d0119)
+- npm init [`280118b`](https://github.com/ljharb/gopd/commit/280118badb45c80b4483836b5cb5315bddf6e582)
+- [meta] add `auto-changelog` [`bb78de5`](https://github.com/ljharb/gopd/commit/bb78de5639a180747fb290c28912beaaf1615709)
+- [meta] create FUNDING.yml; add `funding` in package.json [`11c22e6`](https://github.com/ljharb/gopd/commit/11c22e6355bb01f24e7fac4c9bb3055eb5b25002)
+- [meta] use `npmignore` to autogenerate an npmignore file [`4f4537a`](https://github.com/ljharb/gopd/commit/4f4537a843b39f698c52f072845092e6fca345bb)
+- Only apps should have lockfiles [`c567022`](https://github.com/ljharb/gopd/commit/c567022a18573aa7951cf5399445d9840e23e98b)
diff --git a/node_modules/gopd/LICENSE b/node_modules/gopd/LICENSE
new file mode 100644
index 0000000..6abfe14
--- /dev/null
+++ b/node_modules/gopd/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2022 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.
diff --git a/node_modules/gopd/README.md b/node_modules/gopd/README.md
new file mode 100644
index 0000000..784e56a
--- /dev/null
+++ b/node_modules/gopd/README.md
@@ -0,0 +1,40 @@
+# gopd [![Version Badge][npm-version-svg]][package-url]
+
+[![github actions][actions-image]][actions-url]
+[![coverage][codecov-image]][codecov-url]
+[![License][license-image]][license-url]
+[![Downloads][downloads-image]][downloads-url]
+
+[![npm badge][npm-badge-png]][package-url]
+
+`Object.getOwnPropertyDescriptor`, but accounts for IE's broken implementation.
+
+## Usage
+
+```javascript
+var gOPD = require('gopd');
+var assert = require('assert');
+
+if (gOPD) {
+ assert.equal(typeof gOPD, 'function', 'descriptors supported');
+ // use gOPD like Object.getOwnPropertyDescriptor here
+} else {
+ assert.ok(!gOPD, 'descriptors not supported');
+}
+```
+
+[package-url]: https://npmjs.org/package/gopd
+[npm-version-svg]: https://versionbadg.es/ljharb/gopd.svg
+[deps-svg]: https://david-dm.org/ljharb/gopd.svg
+[deps-url]: https://david-dm.org/ljharb/gopd
+[dev-deps-svg]: https://david-dm.org/ljharb/gopd/dev-status.svg
+[dev-deps-url]: https://david-dm.org/ljharb/gopd#info=devDependencies
+[npm-badge-png]: https://nodei.co/npm/gopd.png?downloads=true&stars=true
+[license-image]: https://img.shields.io/npm/l/gopd.svg
+[license-url]: LICENSE
+[downloads-image]: https://img.shields.io/npm/dm/gopd.svg
+[downloads-url]: https://npm-stat.com/charts.html?package=gopd
+[codecov-image]: https://codecov.io/gh/ljharb/gopd/branch/main/graphs/badge.svg
+[codecov-url]: https://app.codecov.io/gh/ljharb/gopd/
+[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/gopd
+[actions-url]: https://github.com/ljharb/gopd/actions
diff --git a/node_modules/gopd/index.js b/node_modules/gopd/index.js
new file mode 100644
index 0000000..fb6d3bb
--- /dev/null
+++ b/node_modules/gopd/index.js
@@ -0,0 +1,16 @@
+'use strict';
+
+var GetIntrinsic = require('get-intrinsic');
+
+var $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);
+
+if ($gOPD) {
+ try {
+ $gOPD([], 'length');
+ } catch (e) {
+ // IE 8 has a broken gOPD
+ $gOPD = null;
+ }
+}
+
+module.exports = $gOPD;
diff --git a/node_modules/gopd/package.json b/node_modules/gopd/package.json
new file mode 100644
index 0000000..d5e1fa4
--- /dev/null
+++ b/node_modules/gopd/package.json
@@ -0,0 +1,71 @@
+{
+ "name": "gopd",
+ "version": "1.0.1",
+ "description": "`Object.getOwnPropertyDescriptor`, but accounts for IE's broken implementation.",
+ "main": "index.js",
+ "exports": {
+ ".": "./index.js",
+ "./package.json": "./package.json"
+ },
+ "sideEffects": false,
+ "scripts": {
+ "prepack": "npmignore --auto --commentLines=autogenerated",
+ "prepublishOnly": "safe-publish-latest",
+ "prepublish": "not-in-publish || npm run prepublishOnly",
+ "lint": "eslint --ext=js,mjs .",
+ "postlint": "evalmd README.md",
+ "pretest": "npm run lint",
+ "tests-only": "tape 'test/**/*.js'",
+ "test": "npm run tests-only",
+ "posttest": "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/gopd.git"
+ },
+ "keywords": [
+ "ecmascript",
+ "javascript",
+ "getownpropertydescriptor",
+ "property",
+ "descriptor"
+ ],
+ "author": "Jordan Harband ",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ },
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/ljharb/gopd/issues"
+ },
+ "homepage": "https://github.com/ljharb/gopd#readme",
+ "dependencies": {
+ "get-intrinsic": "^1.1.3"
+ },
+ "devDependencies": {
+ "@ljharb/eslint-config": "^21.0.0",
+ "aud": "^2.0.1",
+ "auto-changelog": "^2.4.0",
+ "eslint": "=8.8.0",
+ "evalmd": "^0.0.19",
+ "in-publish": "^2.0.1",
+ "npmignore": "^0.3.0",
+ "safe-publish-latest": "^2.0.0",
+ "tape": "^5.6.1"
+ },
+ "auto-changelog": {
+ "output": "CHANGELOG.md",
+ "template": "keepachangelog",
+ "unreleased": false,
+ "commitLimit": false,
+ "backfillLimit": false,
+ "hideCredit": true
+ },
+ "publishConfig": {
+ "ignore": [
+ ".github/workflows"
+ ]
+ }
+}
diff --git a/node_modules/gopd/test/index.js b/node_modules/gopd/test/index.js
new file mode 100644
index 0000000..0376bfb
--- /dev/null
+++ b/node_modules/gopd/test/index.js
@@ -0,0 +1,35 @@
+'use strict';
+
+var test = require('tape');
+var gOPD = require('../');
+
+test('gOPD', function (t) {
+ t.test('supported', { skip: !gOPD }, function (st) {
+ st.equal(typeof gOPD, 'function', 'is a function');
+
+ var obj = { x: 1 };
+ st.ok('x' in obj, 'property exists');
+
+ var desc = gOPD(obj, 'x');
+ st.deepEqual(
+ desc,
+ {
+ configurable: true,
+ enumerable: true,
+ value: 1,
+ writable: true
+ },
+ 'descriptor is as expected'
+ );
+
+ st.end();
+ });
+
+ t.test('not supported', { skip: gOPD }, function (st) {
+ st.notOk(gOPD, 'is falsy');
+
+ st.end();
+ });
+
+ t.end();
+});
diff --git a/node_modules/has-property-descriptors/.eslintrc b/node_modules/has-property-descriptors/.eslintrc
new file mode 100644
index 0000000..2fcc002
--- /dev/null
+++ b/node_modules/has-property-descriptors/.eslintrc
@@ -0,0 +1,13 @@
+{
+ "root": true,
+
+ "extends": "@ljharb",
+
+ "rules": {
+ "func-name-matching": 0,
+ "id-length": 0,
+ "new-cap": [2, {
+ "capIsNewExceptions": ["GetIntrinsic"],
+ }],
+ },
+}
diff --git a/node_modules/has-property-descriptors/.github/FUNDING.yml b/node_modules/has-property-descriptors/.github/FUNDING.yml
new file mode 100644
index 0000000..817aacf
--- /dev/null
+++ b/node_modules/has-property-descriptors/.github/FUNDING.yml
@@ -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/has-property-descriptors
+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']
diff --git a/node_modules/has-property-descriptors/.nycrc b/node_modules/has-property-descriptors/.nycrc
new file mode 100644
index 0000000..bdd626c
--- /dev/null
+++ b/node_modules/has-property-descriptors/.nycrc
@@ -0,0 +1,9 @@
+{
+ "all": true,
+ "check-coverage": false,
+ "reporter": ["text-summary", "text", "html", "json"],
+ "exclude": [
+ "coverage",
+ "test"
+ ]
+}
diff --git a/node_modules/has-property-descriptors/CHANGELOG.md b/node_modules/has-property-descriptors/CHANGELOG.md
new file mode 100644
index 0000000..19c8a95
--- /dev/null
+++ b/node_modules/has-property-descriptors/CHANGELOG.md
@@ -0,0 +1,35 @@
+# 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.2](https://github.com/inspect-js/has-property-descriptors/compare/v1.0.1...v1.0.2) - 2024-02-12
+
+### Commits
+
+- [Refactor] use `es-define-property` [`f93a8c8`](https://github.com/inspect-js/has-property-descriptors/commit/f93a8c85eba70cbceab500f2619fb5cce73a1805)
+- [Dev Deps] update `aud`, `npmignore`, `tape` [`42b0c9d`](https://github.com/inspect-js/has-property-descriptors/commit/42b0c9d1c23e747755f0f2924923c418ea34a9ee)
+- [Deps] update `get-intrinsic` [`35e9b46`](https://github.com/inspect-js/has-property-descriptors/commit/35e9b46a7f14331bf0de98b644dd803676746037)
+
+## [v1.0.1](https://github.com/inspect-js/has-property-descriptors/compare/v1.0.0...v1.0.1) - 2023-10-20
+
+### Commits
+
+- [meta] use `npmignore` to autogenerate an npmignore file [`5bbf4da`](https://github.com/inspect-js/has-property-descriptors/commit/5bbf4dae1b58950d87bb3af508bee7513e640868)
+- [actions] update rebase action to use reusable workflow [`3a5585b`](https://github.com/inspect-js/has-property-descriptors/commit/3a5585bf74988f71a8f59e67a07d594e62c51fd8)
+- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `tape` [`e5c1212`](https://github.com/inspect-js/has-property-descriptors/commit/e5c1212048a8fda549794c47863724ca60b89cae)
+- [Dev Deps] update `aud`, `tape` [`e942917`](https://github.com/inspect-js/has-property-descriptors/commit/e942917b6c2f7c090d5623048989cf20d0834ebf)
+- [Deps] update `get-intrinsic` [`f4a44ec`](https://github.com/inspect-js/has-property-descriptors/commit/f4a44ec6d94146fa6c550d3c15c31a2062c83ef4)
+- [Deps] update `get-intrinsic` [`eeb275b`](https://github.com/inspect-js/has-property-descriptors/commit/eeb275b473e5d72ca843b61ca25cfcb06a5d4300)
+
+## v1.0.0 - 2022-04-14
+
+### Commits
+
+- Initial implementation, tests [`303559f`](https://github.com/inspect-js/has-property-descriptors/commit/303559f2a72dfe7111573a1aec475ed4a184c35a)
+- Initial commit [`3a7ca2d`](https://github.com/inspect-js/has-property-descriptors/commit/3a7ca2dc49f1fff0279a28bb16265e7615e14749)
+- read me [`dd73dce`](https://github.com/inspect-js/has-property-descriptors/commit/dd73dce09d89d0f7a4a6e3b1e562a506f979a767)
+- npm init [`c1e6557`](https://github.com/inspect-js/has-property-descriptors/commit/c1e655779de632d68cb944c50da6b71bcb7b8c85)
+- Only apps should have lockfiles [`e72f7c6`](https://github.com/inspect-js/has-property-descriptors/commit/e72f7c68de534b2d273ee665f8b18d4ecc7f70b0)
diff --git a/node_modules/has-property-descriptors/LICENSE b/node_modules/has-property-descriptors/LICENSE
new file mode 100644
index 0000000..2e7b9a3
--- /dev/null
+++ b/node_modules/has-property-descriptors/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2022 Inspect JS
+
+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.
diff --git a/node_modules/has-property-descriptors/README.md b/node_modules/has-property-descriptors/README.md
new file mode 100644
index 0000000..d81fbd9
--- /dev/null
+++ b/node_modules/has-property-descriptors/README.md
@@ -0,0 +1,43 @@
+# has-property-descriptors [![Version Badge][npm-version-svg]][package-url]
+
+[![github actions][actions-image]][actions-url]
+[![coverage][codecov-image]][codecov-url]
+[![dependency status][deps-svg]][deps-url]
+[![dev dependency status][dev-deps-svg]][dev-deps-url]
+[![License][license-image]][license-url]
+[![Downloads][downloads-image]][downloads-url]
+
+[![npm badge][npm-badge-png]][package-url]
+
+Does the environment have full property descriptor support? Handles IE 8's broken defineProperty/gOPD.
+
+## Example
+
+```js
+var hasPropertyDescriptors = require('has-property-descriptors');
+var assert = require('assert');
+
+assert.equal(hasPropertyDescriptors(), true); // will be `false` in IE 6-8, and ES5 engines
+
+// Arrays can not have their length `[[Defined]]` in some engines
+assert.equal(hasPropertyDescriptors.hasArrayLengthDefineBug(), false); // will be `true` in Firefox 4-22, and node v0.6
+```
+
+## Tests
+Simply clone the repo, `npm install`, and run `npm test`
+
+[package-url]: https://npmjs.org/package/has-property-descriptors
+[npm-version-svg]: https://versionbadg.es/inspect-js/has-property-descriptors.svg
+[deps-svg]: https://david-dm.org/inspect-js/has-property-descriptors.svg
+[deps-url]: https://david-dm.org/inspect-js/has-property-descriptors
+[dev-deps-svg]: https://david-dm.org/inspect-js/has-property-descriptors/dev-status.svg
+[dev-deps-url]: https://david-dm.org/inspect-js/has-property-descriptors#info=devDependencies
+[npm-badge-png]: https://nodei.co/npm/has-property-descriptors.png?downloads=true&stars=true
+[license-image]: https://img.shields.io/npm/l/has-property-descriptors.svg
+[license-url]: LICENSE
+[downloads-image]: https://img.shields.io/npm/dm/has-property-descriptors.svg
+[downloads-url]: https://npm-stat.com/charts.html?package=has-property-descriptors
+[codecov-image]: https://codecov.io/gh/inspect-js/has-property-descriptors/branch/main/graphs/badge.svg
+[codecov-url]: https://app.codecov.io/gh/inspect-js/has-property-descriptors/
+[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/has-property-descriptors
+[actions-url]: https://github.com/inspect-js/has-property-descriptors/actions
diff --git a/node_modules/has-property-descriptors/index.js b/node_modules/has-property-descriptors/index.js
new file mode 100644
index 0000000..0480437
--- /dev/null
+++ b/node_modules/has-property-descriptors/index.js
@@ -0,0 +1,22 @@
+'use strict';
+
+var $defineProperty = require('es-define-property');
+
+var hasPropertyDescriptors = function hasPropertyDescriptors() {
+ return !!$defineProperty;
+};
+
+hasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {
+ // node v0.6 has a bug where array lengths can be Set but not Defined
+ if (!$defineProperty) {
+ return null;
+ }
+ try {
+ return $defineProperty([], 'length', { value: 1 }).length !== 1;
+ } catch (e) {
+ // In Firefox 4-22, defining length on an array throws an exception.
+ return true;
+ }
+};
+
+module.exports = hasPropertyDescriptors;
diff --git a/node_modules/has-property-descriptors/package.json b/node_modules/has-property-descriptors/package.json
new file mode 100644
index 0000000..7e70218
--- /dev/null
+++ b/node_modules/has-property-descriptors/package.json
@@ -0,0 +1,77 @@
+{
+ "name": "has-property-descriptors",
+ "version": "1.0.2",
+ "description": "Does the environment have full property descriptor support? Handles IE 8's broken defineProperty/gOPD.",
+ "main": "index.js",
+ "exports": {
+ ".": "./index.js",
+ "./package.json": "./package.json"
+ },
+ "sideEffects": false,
+ "scripts": {
+ "prepack": "npmignore --auto --commentLines=autogenerated",
+ "prepublishOnly": "safe-publish-latest",
+ "prepublish": "not-in-publish || npm run prepublishOnly",
+ "pretest": "npm run lint",
+ "prelint": "evalmd README.md",
+ "lint": "eslint --ext=js,mjs .",
+ "tests-only": "nyc tape 'test/**/*.js'",
+ "test": "npm run tests-only",
+ "posttest": "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/inspect-js/has-property-descriptors.git"
+ },
+ "keywords": [
+ "property",
+ "descriptors",
+ "has",
+ "environment",
+ "env",
+ "defineProperty",
+ "getOwnPropertyDescriptor"
+ ],
+ "author": "Jordan Harband ",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ },
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/inspect-js/has-property-descriptors/issues"
+ },
+ "homepage": "https://github.com/inspect-js/has-property-descriptors#readme",
+ "devDependencies": {
+ "@ljharb/eslint-config": "^21.1.0",
+ "aud": "^2.0.4",
+ "auto-changelog": "^2.4.0",
+ "eslint": "=8.8.0",
+ "evalmd": "^0.0.19",
+ "in-publish": "^2.0.1",
+ "npmignore": "^0.3.1",
+ "nyc": "^10.3.2",
+ "safe-publish-latest": "^2.0.0",
+ "tape": "^5.7.4"
+ },
+ "dependencies": {
+ "es-define-property": "^1.0.0"
+ },
+ "testling": {
+ "files": "test/index.js"
+ },
+ "auto-changelog": {
+ "output": "CHANGELOG.md",
+ "template": "keepachangelog",
+ "unreleased": false,
+ "commitLimit": false,
+ "backfillLimit": false,
+ "hideCredit": true
+ },
+ "publishConfig": {
+ "ignore": [
+ ".github/workflows"
+ ]
+ }
+}
diff --git a/node_modules/has-property-descriptors/test/index.js b/node_modules/has-property-descriptors/test/index.js
new file mode 100644
index 0000000..7f02bd3
--- /dev/null
+++ b/node_modules/has-property-descriptors/test/index.js
@@ -0,0 +1,57 @@
+'use strict';
+
+var test = require('tape');
+
+var hasPropertyDescriptors = require('../');
+
+var sentinel = {};
+
+test('hasPropertyDescriptors', function (t) {
+ t.equal(typeof hasPropertyDescriptors, 'function', 'is a function');
+ t.equal(typeof hasPropertyDescriptors.hasArrayLengthDefineBug, 'function', '`hasArrayLengthDefineBug` property is a function');
+
+ var yes = hasPropertyDescriptors();
+ t.test('property descriptors', { skip: !yes }, function (st) {
+ var o = { a: sentinel };
+
+ st.deepEqual(
+ Object.getOwnPropertyDescriptor(o, 'a'),
+ {
+ configurable: true,
+ enumerable: true,
+ value: sentinel,
+ writable: true
+ },
+ 'has expected property descriptor'
+ );
+
+ Object.defineProperty(o, 'a', { enumerable: false, writable: false });
+
+ st.deepEqual(
+ Object.getOwnPropertyDescriptor(o, 'a'),
+ {
+ configurable: true,
+ enumerable: false,
+ value: sentinel,
+ writable: false
+ },
+ 'has expected property descriptor after [[Define]]'
+ );
+
+ st.end();
+ });
+
+ var arrayBug = hasPropertyDescriptors.hasArrayLengthDefineBug();
+ t.test('defining array lengths', { skip: !yes || arrayBug }, function (st) {
+ var arr = [1, , 3]; // eslint-disable-line no-sparse-arrays
+ st.equal(arr.length, 3, 'array starts with length 3');
+
+ Object.defineProperty(arr, 'length', { value: 5 });
+
+ st.equal(arr.length, 5, 'array ends with length 5');
+
+ st.end();
+ });
+
+ t.end();
+});
diff --git a/node_modules/has-proto/.eslintrc b/node_modules/has-proto/.eslintrc
new file mode 100644
index 0000000..3b5d9e9
--- /dev/null
+++ b/node_modules/has-proto/.eslintrc
@@ -0,0 +1,5 @@
+{
+ "root": true,
+
+ "extends": "@ljharb",
+}
diff --git a/node_modules/has-proto/.github/FUNDING.yml b/node_modules/has-proto/.github/FUNDING.yml
new file mode 100644
index 0000000..613705c
--- /dev/null
+++ b/node_modules/has-proto/.github/FUNDING.yml
@@ -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/has-proto
+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']
diff --git a/node_modules/has-proto/CHANGELOG.md b/node_modules/has-proto/CHANGELOG.md
new file mode 100644
index 0000000..6690f28
--- /dev/null
+++ b/node_modules/has-proto/CHANGELOG.md
@@ -0,0 +1,38 @@
+# 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.3](https://github.com/inspect-js/has-proto/compare/v1.0.2...v1.0.3) - 2024-02-19
+
+### Commits
+
+- [types] add missing declaration file [`26ecade`](https://github.com/inspect-js/has-proto/commit/26ecade05d253bb5dc376945ee3186d1fbe334f8)
+
+## [v1.0.2](https://github.com/inspect-js/has-proto/compare/v1.0.1...v1.0.2) - 2024-02-19
+
+### Commits
+
+- add types [`6435262`](https://github.com/inspect-js/has-proto/commit/64352626cf511c0276d5f4bb6be770a0bf0f8524)
+- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `npmignore`, `tape` [`f16a5e4`](https://github.com/inspect-js/has-proto/commit/f16a5e4121651e551271419f9d60fdd3561fd82c)
+- [Refactor] tiny cleanup [`d1f1a4b`](https://github.com/inspect-js/has-proto/commit/d1f1a4bdc135f115a10f148ce302676224534702)
+- [meta] add `sideEffects` flag [`e7ab1a6`](https://github.com/inspect-js/has-proto/commit/e7ab1a6f153b3e80dee68d1748b71e46767a0531)
+
+## [v1.0.1](https://github.com/inspect-js/has-proto/compare/v1.0.0...v1.0.1) - 2022-12-21
+
+### Commits
+
+- [meta] correct URLs and description [`ef34483`](https://github.com/inspect-js/has-proto/commit/ef34483ca0d35680f271b6b96e35526151b25dfc)
+- [patch] add an additional criteria [`e81959e`](https://github.com/inspect-js/has-proto/commit/e81959ed7c7a77fbf459f00cb4ef824f1099497f)
+- [Dev Deps] update `aud` [`2bec2c4`](https://github.com/inspect-js/has-proto/commit/2bec2c47b072b122ff5443fba0263f6dc649531f)
+
+## v1.0.0 - 2022-12-12
+
+### Commits
+
+- Initial implementation, tests, readme [`6886fea`](https://github.com/inspect-js/has-proto/commit/6886fea578f67daf69a7920b2eb7637ea6ebb0bc)
+- Initial commit [`99129c8`](https://github.com/inspect-js/has-proto/commit/99129c8f42471ac89cb681ba9cb9d52a583eb94f)
+- npm init [`2844ad8`](https://github.com/inspect-js/has-proto/commit/2844ad8e75b84d66a46765b3bab9d2e8ea692e10)
+- Only apps should have lockfiles [`c65bc5e`](https://github.com/inspect-js/has-proto/commit/c65bc5e40b9004463f7336d47c67245fb139a36a)
diff --git a/node_modules/has-proto/LICENSE b/node_modules/has-proto/LICENSE
new file mode 100644
index 0000000..2e7b9a3
--- /dev/null
+++ b/node_modules/has-proto/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2022 Inspect JS
+
+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.
diff --git a/node_modules/has-proto/README.md b/node_modules/has-proto/README.md
new file mode 100644
index 0000000..1456765
--- /dev/null
+++ b/node_modules/has-proto/README.md
@@ -0,0 +1,38 @@
+# has-proto [![Version Badge][npm-version-svg]][package-url]
+
+[![github actions][actions-image]][actions-url]
+[![coverage][codecov-image]][codecov-url]
+[![License][license-image]][license-url]
+[![Downloads][downloads-image]][downloads-url]
+
+[![npm badge][npm-badge-png]][package-url]
+
+Does this environment have the ability to set the [[Prototype]] of an object on creation with `__proto__`?
+
+## Example
+
+```js
+var hasProto = require('has-proto');
+var assert = require('assert');
+
+assert.equal(typeof hasProto(), 'boolean');
+```
+
+## Tests
+Simply clone the repo, `npm install`, and run `npm test`
+
+[package-url]: https://npmjs.org/package/has-proto
+[npm-version-svg]: https://versionbadg.es/inspect-js/has-proto.svg
+[deps-svg]: https://david-dm.org/inspect-js/has-proto.svg
+[deps-url]: https://david-dm.org/inspect-js/has-proto
+[dev-deps-svg]: https://david-dm.org/inspect-js/has-proto/dev-status.svg
+[dev-deps-url]: https://david-dm.org/inspect-js/has-proto#info=devDependencies
+[npm-badge-png]: https://nodei.co/npm/has-proto.png?downloads=true&stars=true
+[license-image]: https://img.shields.io/npm/l/has-proto.svg
+[license-url]: LICENSE
+[downloads-image]: https://img.shields.io/npm/dm/has-proto.svg
+[downloads-url]: https://npm-stat.com/charts.html?package=has-proto
+[codecov-image]: https://codecov.io/gh/inspect-js/has-proto/branch/main/graphs/badge.svg
+[codecov-url]: https://app.codecov.io/gh/inspect-js/has-proto/
+[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/has-proto
+[actions-url]: https://github.com/inspect-js/has-proto/actions
diff --git a/node_modules/has-proto/index.d.ts b/node_modules/has-proto/index.d.ts
new file mode 100644
index 0000000..cfed695
--- /dev/null
+++ b/node_modules/has-proto/index.d.ts
@@ -0,0 +1,3 @@
+declare function hasProto(): boolean;
+
+export = hasProto;
\ No newline at end of file
diff --git a/node_modules/has-proto/index.js b/node_modules/has-proto/index.js
new file mode 100644
index 0000000..d3c8a0a
--- /dev/null
+++ b/node_modules/has-proto/index.js
@@ -0,0 +1,15 @@
+'use strict';
+
+var test = {
+ __proto__: null,
+ foo: {}
+};
+
+var $Object = Object;
+
+/** @type {import('.')} */
+module.exports = function hasProto() {
+ // @ts-expect-error: TS errors on an inherited property for some reason
+ return { __proto__: test }.foo === test.foo
+ && !(test instanceof $Object);
+};
diff --git a/node_modules/has-proto/package.json b/node_modules/has-proto/package.json
new file mode 100644
index 0000000..9d37e4e
--- /dev/null
+++ b/node_modules/has-proto/package.json
@@ -0,0 +1,78 @@
+{
+ "name": "has-proto",
+ "version": "1.0.3",
+ "description": "Does this environment have the ability to get the [[Prototype]] of an object on creation with `__proto__`?",
+ "main": "index.js",
+ "exports": {
+ ".": "./index.js",
+ "./package.json": "./package.json"
+ },
+ "sideEffects": false,
+ "scripts": {
+ "prepack": "npmignore --auto --commentLines=autogenerated",
+ "prepublishOnly": "safe-publish-latest",
+ "prepublish": "not-in-publish || npm run prepublishOnly",
+ "lint": "eslint --ext=js,mjs .",
+ "postlint": "tsc -p .",
+ "pretest": "npm run lint",
+ "tests-only": "tape 'test/**/*.js'",
+ "test": "npm run tests-only",
+ "posttest": "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/inspect-js/has-proto.git"
+ },
+ "keywords": [
+ "prototype",
+ "proto",
+ "set",
+ "get",
+ "__proto__",
+ "getPrototypeOf",
+ "setPrototypeOf",
+ "has"
+ ],
+ "author": "Jordan Harband ",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ },
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/inspect-js/has-proto/issues"
+ },
+ "homepage": "https://github.com/inspect-js/has-proto#readme",
+ "testling": {
+ "files": "test/index.js"
+ },
+ "devDependencies": {
+ "@ljharb/eslint-config": "^21.1.0",
+ "@types/tape": "^5.6.4",
+ "aud": "^2.0.4",
+ "auto-changelog": "^2.4.0",
+ "eslint": "=8.8.0",
+ "in-publish": "^2.0.1",
+ "npmignore": "^0.3.1",
+ "safe-publish-latest": "^2.0.0",
+ "tape": "^5.7.5",
+ "typescript": "next"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "auto-changelog": {
+ "output": "CHANGELOG.md",
+ "template": "keepachangelog",
+ "unreleased": false,
+ "commitLimit": false,
+ "backfillLimit": false,
+ "hideCredit": true
+ },
+ "publishConfig": {
+ "ignore": [
+ ".github/workflows"
+ ]
+ }
+}
diff --git a/node_modules/has-proto/test/index.js b/node_modules/has-proto/test/index.js
new file mode 100644
index 0000000..5da1a3a
--- /dev/null
+++ b/node_modules/has-proto/test/index.js
@@ -0,0 +1,19 @@
+'use strict';
+
+var test = require('tape');
+var hasProto = require('../');
+
+test('hasProto', function (t) {
+ var result = hasProto();
+ t.equal(typeof result, 'boolean', 'returns a boolean (' + result + ')');
+
+ var obj = { __proto__: null };
+ if (result) {
+ t.notOk('toString' in obj, 'null object lacks toString');
+ } else {
+ t.ok('toString' in obj, 'without proto, null object has toString');
+ t.equal(obj.__proto__, null); // eslint-disable-line no-proto
+ }
+
+ t.end();
+});
diff --git a/node_modules/has-proto/tsconfig.json b/node_modules/has-proto/tsconfig.json
new file mode 100644
index 0000000..2002ce5
--- /dev/null
+++ b/node_modules/has-proto/tsconfig.json
@@ -0,0 +1,49 @@
+{
+ "compilerOptions": {
+ /* Visit https://aka.ms/tsconfig to read more about this file */
+
+ /* Projects */
+
+ /* Language and Environment */
+ "target": "ESNext", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
+ // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
+ // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */
+ "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
+ // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */
+
+ /* Modules */
+ "module": "commonjs", /* Specify what module code is generated. */
+ // "rootDir": "./", /* Specify the root folder within your source files. */
+ // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */
+ // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
+ // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
+ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
+ "typeRoots": ["types"], /* Specify multiple folders that act like './node_modules/@types'. */
+ "resolveJsonModule": true, /* Enable importing .json files. */
+ // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */
+
+ /* JavaScript Support */
+ "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */
+ "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
+ "maxNodeModuleJsDepth": 0, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */
+
+ /* Emit */
+ "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
+ "declarationMap": true, /* Create sourcemaps for d.ts files. */
+ "noEmit": true, /* Disable emitting files from a compilation. */
+
+ /* Interop Constraints */
+ "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */
+ "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */
+ "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */
+
+ /* Type Checking */
+ "strict": true, /* Enable all strict type-checking options. */
+
+ /* Completeness */
+ //"skipLibCheck": true /* Skip type checking all .d.ts files. */
+ },
+ "exclude": [
+ "coverage"
+ ]
+}
diff --git a/node_modules/has-symbols/package.json b/node_modules/has-symbols/package.json
index a39b25b..fe7004a 100644
--- a/node_modules/has-symbols/package.json
+++ b/node_modules/has-symbols/package.json
@@ -1,126 +1,101 @@
{
- "_from": "has-symbols@^1.0.3",
- "_id": "has-symbols@1.0.3",
- "_inBundle": false,
- "_integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
- "_location": "/has-symbols",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "has-symbols@^1.0.3",
- "name": "has-symbols",
- "escapedName": "has-symbols",
- "rawSpec": "^1.0.3",
- "saveSpec": null,
- "fetchSpec": "^1.0.3"
- },
- "_requiredBy": [
- "/get-intrinsic"
- ],
- "_resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "_shasum": "bb7b2c4349251dce87b125f7bdf874aa7c8b39f8",
- "_spec": "has-symbols@^1.0.3",
- "_where": "/home/ubuntu/formidable/node_modules/get-intrinsic",
- "author": {
- "name": "Jordan Harband",
- "email": "ljharb@gmail.com",
- "url": "http://ljharb.codes"
- },
- "auto-changelog": {
- "output": "CHANGELOG.md",
- "template": "keepachangelog",
- "unreleased": false,
- "commitLimit": false,
- "backfillLimit": false,
- "hideCredit": true
- },
- "bugs": {
- "url": "https://github.com/ljharb/has-symbols/issues"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "Jordan Harband",
- "email": "ljharb@gmail.com",
- "url": "http://ljharb.codes"
- }
- ],
- "deprecated": false,
- "description": "Determine if the JS environment has Symbol support. Supports spec, or shams.",
- "devDependencies": {
- "@ljharb/eslint-config": "^20.2.3",
- "aud": "^2.0.0",
- "auto-changelog": "^2.4.0",
- "core-js": "^2.6.12",
- "eslint": "=8.8.0",
- "get-own-property-symbols": "^0.9.5",
- "nyc": "^10.3.2",
- "safe-publish-latest": "^2.0.0",
- "tape": "^5.5.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- },
- "greenkeeper": {
- "ignore": [
- "core-js"
- ]
- },
- "homepage": "https://github.com/ljharb/has-symbols#readme",
- "keywords": [
- "Symbol",
- "symbols",
- "typeof",
- "sham",
- "polyfill",
- "native",
- "core-js",
- "ES6"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "has-symbols",
- "repository": {
- "type": "git",
- "url": "git://github.com/inspect-js/has-symbols.git"
- },
- "scripts": {
- "lint": "eslint --ext=js,mjs .",
- "posttest": "aud --production",
- "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"",
- "prepublish": "not-in-publish || npm run prepublishOnly",
- "prepublishOnly": "safe-publish-latest",
- "pretest": "npm run --silent lint",
- "test": "npm run tests-only",
- "test:shams": "npm run --silent test:shams:getownpropertysymbols && npm run --silent test:shams:corejs",
- "test:shams:corejs": "nyc node test/shams/core-js.js",
- "test:shams:getownpropertysymbols": "nyc node test/shams/get-own-property-symbols.js",
- "test:staging": "nyc node --harmony --es-staging test",
- "test:stock": "nyc node test",
- "tests-only": "npm run test:stock && npm run test:staging && npm run test:shams",
- "version": "auto-changelog && git add CHANGELOG.md"
- },
- "testling": {
- "files": "test/index.js",
- "browsers": [
- "iexplore/6.0..latest",
- "firefox/3.0..6.0",
- "firefox/15.0..latest",
- "firefox/nightly",
- "chrome/4.0..10.0",
- "chrome/20.0..latest",
- "chrome/canary",
- "opera/10.0..latest",
- "opera/next",
- "safari/4.0..latest",
- "ipad/6.0..latest",
- "iphone/6.0..latest",
- "android-browser/4.2"
- ]
- },
- "version": "1.0.3"
+ "name": "has-symbols",
+ "version": "1.0.3",
+ "description": "Determine if the JS environment has Symbol support. Supports spec, or shams.",
+ "main": "index.js",
+ "scripts": {
+ "prepublishOnly": "safe-publish-latest",
+ "prepublish": "not-in-publish || npm run prepublishOnly",
+ "pretest": "npm run --silent lint",
+ "test": "npm run tests-only",
+ "posttest": "aud --production",
+ "tests-only": "npm run test:stock && npm run test:staging && npm run test:shams",
+ "test:stock": "nyc node test",
+ "test:staging": "nyc node --harmony --es-staging test",
+ "test:shams": "npm run --silent test:shams:getownpropertysymbols && npm run --silent test:shams:corejs",
+ "test:shams:corejs": "nyc node test/shams/core-js.js",
+ "test:shams:getownpropertysymbols": "nyc node test/shams/get-own-property-symbols.js",
+ "lint": "eslint --ext=js,mjs .",
+ "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://github.com/inspect-js/has-symbols.git"
+ },
+ "keywords": [
+ "Symbol",
+ "symbols",
+ "typeof",
+ "sham",
+ "polyfill",
+ "native",
+ "core-js",
+ "ES6"
+ ],
+ "author": {
+ "name": "Jordan Harband",
+ "email": "ljharb@gmail.com",
+ "url": "http://ljharb.codes"
+ },
+ "contributors": [
+ {
+ "name": "Jordan Harband",
+ "email": "ljharb@gmail.com",
+ "url": "http://ljharb.codes"
+ }
+ ],
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ },
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/ljharb/has-symbols/issues"
+ },
+ "homepage": "https://github.com/ljharb/has-symbols#readme",
+ "devDependencies": {
+ "@ljharb/eslint-config": "^20.2.3",
+ "aud": "^2.0.0",
+ "auto-changelog": "^2.4.0",
+ "core-js": "^2.6.12",
+ "eslint": "=8.8.0",
+ "get-own-property-symbols": "^0.9.5",
+ "nyc": "^10.3.2",
+ "safe-publish-latest": "^2.0.0",
+ "tape": "^5.5.2"
+ },
+ "testling": {
+ "files": "test/index.js",
+ "browsers": [
+ "iexplore/6.0..latest",
+ "firefox/3.0..6.0",
+ "firefox/15.0..latest",
+ "firefox/nightly",
+ "chrome/4.0..10.0",
+ "chrome/20.0..latest",
+ "chrome/canary",
+ "opera/10.0..latest",
+ "opera/next",
+ "safari/4.0..latest",
+ "ipad/6.0..latest",
+ "iphone/6.0..latest",
+ "android-browser/4.2"
+ ]
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "auto-changelog": {
+ "output": "CHANGELOG.md",
+ "template": "keepachangelog",
+ "unreleased": false,
+ "commitLimit": false,
+ "backfillLimit": false,
+ "hideCredit": true
+ },
+ "greenkeeper": {
+ "ignore": [
+ "core-js"
+ ]
+ }
}
diff --git a/node_modules/has/LICENSE-MIT b/node_modules/has/LICENSE-MIT
deleted file mode 100644
index ae7014d..0000000
--- a/node_modules/has/LICENSE-MIT
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2013 Thiago de Arruda
-
-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.
diff --git a/node_modules/has/README.md b/node_modules/has/README.md
deleted file mode 100644
index 635e3a4..0000000
--- a/node_modules/has/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# has
-
-> Object.prototype.hasOwnProperty.call shortcut
-
-## Installation
-
-```sh
-npm install --save has
-```
-
-## Usage
-
-```js
-var has = require('has');
-
-has({}, 'hasOwnProperty'); // false
-has(Object.prototype, 'hasOwnProperty'); // true
-```
diff --git a/node_modules/has/package.json b/node_modules/has/package.json
deleted file mode 100644
index db105f2..0000000
--- a/node_modules/has/package.json
+++ /dev/null
@@ -1,73 +0,0 @@
-{
- "_from": "has@^1.0.3",
- "_id": "has@1.0.3",
- "_inBundle": false,
- "_integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "_location": "/has",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "has@^1.0.3",
- "name": "has",
- "escapedName": "has",
- "rawSpec": "^1.0.3",
- "saveSpec": null,
- "fetchSpec": "^1.0.3"
- },
- "_requiredBy": [
- "/get-intrinsic"
- ],
- "_resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "_shasum": "722d7cbfc1f6aa8241f16dd814e011e1f41e8796",
- "_spec": "has@^1.0.3",
- "_where": "/home/ubuntu/formidable/node_modules/get-intrinsic",
- "author": {
- "name": "Thiago de Arruda",
- "email": "tpadilha84@gmail.com"
- },
- "bugs": {
- "url": "https://github.com/tarruda/has/issues"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "Jordan Harband",
- "email": "ljharb@gmail.com",
- "url": "http://ljharb.codes"
- }
- ],
- "dependencies": {
- "function-bind": "^1.1.1"
- },
- "deprecated": false,
- "description": "Object.prototype.hasOwnProperty.call shortcut",
- "devDependencies": {
- "@ljharb/eslint-config": "^12.2.1",
- "eslint": "^4.19.1",
- "tape": "^4.9.0"
- },
- "engines": {
- "node": ">= 0.4.0"
- },
- "homepage": "https://github.com/tarruda/has",
- "license": "MIT",
- "licenses": [
- {
- "type": "MIT",
- "url": "https://github.com/tarruda/has/blob/master/LICENSE-MIT"
- }
- ],
- "main": "./src",
- "name": "has",
- "repository": {
- "type": "git",
- "url": "git://github.com/tarruda/has.git"
- },
- "scripts": {
- "lint": "eslint .",
- "pretest": "npm run lint",
- "test": "tape test"
- },
- "version": "1.0.3"
-}
diff --git a/node_modules/has/src/index.js b/node_modules/has/src/index.js
deleted file mode 100644
index dd92dd9..0000000
--- a/node_modules/has/src/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-'use strict';
-
-var bind = require('function-bind');
-
-module.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);
diff --git a/node_modules/has/test/index.js b/node_modules/has/test/index.js
deleted file mode 100644
index 43d480b..0000000
--- a/node_modules/has/test/index.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-
-var test = require('tape');
-var has = require('../');
-
-test('has', function (t) {
- t.equal(has({}, 'hasOwnProperty'), false, 'object literal does not have own property "hasOwnProperty"');
- t.equal(has(Object.prototype, 'hasOwnProperty'), true, 'Object.prototype has own property "hasOwnProperty"');
- t.end();
-});
diff --git a/node_modules/hasown/.eslintrc b/node_modules/hasown/.eslintrc
new file mode 100644
index 0000000..3b5d9e9
--- /dev/null
+++ b/node_modules/hasown/.eslintrc
@@ -0,0 +1,5 @@
+{
+ "root": true,
+
+ "extends": "@ljharb",
+}
diff --git a/node_modules/hasown/.github/FUNDING.yml b/node_modules/hasown/.github/FUNDING.yml
new file mode 100644
index 0000000..d68c8b7
--- /dev/null
+++ b/node_modules/hasown/.github/FUNDING.yml
@@ -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/hasown
+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 a single custom sponsorship URL
diff --git a/node_modules/hasown/.nycrc b/node_modules/hasown/.nycrc
new file mode 100644
index 0000000..1826526
--- /dev/null
+++ b/node_modules/hasown/.nycrc
@@ -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"
+ ]
+}
diff --git a/node_modules/hasown/CHANGELOG.md b/node_modules/hasown/CHANGELOG.md
new file mode 100644
index 0000000..2b0a980
--- /dev/null
+++ b/node_modules/hasown/CHANGELOG.md
@@ -0,0 +1,40 @@
+# 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).
+
+## [v2.0.2](https://github.com/inspect-js/hasOwn/compare/v2.0.1...v2.0.2) - 2024-03-10
+
+### Commits
+
+- [types] use shared config [`68e9d4d`](https://github.com/inspect-js/hasOwn/commit/68e9d4dab6facb4f05f02c6baea94a3f2a4e44b2)
+- [actions] remove redundant finisher; use reusable workflow [`241a68e`](https://github.com/inspect-js/hasOwn/commit/241a68e13ea1fe52bec5ba7f74144befc31fae7b)
+- [Tests] increase coverage [`4125c0d`](https://github.com/inspect-js/hasOwn/commit/4125c0d6121db56ae30e38346dfb0c000b04f0a7)
+- [Tests] skip `npm ls` in old node due to TS [`01b9282`](https://github.com/inspect-js/hasOwn/commit/01b92822f9971dea031eafdd14767df41d61c202)
+- [types] improve predicate type [`d340f85`](https://github.com/inspect-js/hasOwn/commit/d340f85ce02e286ef61096cbbb6697081d40a12b)
+- [Dev Deps] update `tape` [`70089fc`](https://github.com/inspect-js/hasOwn/commit/70089fcf544e64acc024cbe60f5a9b00acad86de)
+- [Tests] use `@arethetypeswrong/cli` [`50b272c`](https://github.com/inspect-js/hasOwn/commit/50b272c829f40d053a3dd91c9796e0ac0b2af084)
+
+## [v2.0.1](https://github.com/inspect-js/hasOwn/compare/v2.0.0...v2.0.1) - 2024-02-10
+
+### Commits
+
+- [types] use a handwritten d.ts file; fix exported type [`012b989`](https://github.com/inspect-js/hasOwn/commit/012b9898ccf91dc441e2ebf594ff70270a5fda58)
+- [Dev Deps] update `@types/function-bind`, `@types/mock-property`, `@types/tape`, `aud`, `mock-property`, `npmignore`, `tape`, `typescript` [`977a56f`](https://github.com/inspect-js/hasOwn/commit/977a56f51a1f8b20566f3c471612137894644025)
+- [meta] add `sideEffects` flag [`3a60b7b`](https://github.com/inspect-js/hasOwn/commit/3a60b7bf42fccd8c605e5f145a6fcc83b13cb46f)
+
+## [v2.0.0](https://github.com/inspect-js/hasOwn/compare/v1.0.1...v2.0.0) - 2023-10-19
+
+### Commits
+
+- revamped implementation, tests, readme [`72bf8b3`](https://github.com/inspect-js/hasOwn/commit/72bf8b338e77a638f0a290c63ffaed18339c36b4)
+- [meta] revamp package.json [`079775f`](https://github.com/inspect-js/hasOwn/commit/079775fb1ec72c1c6334069593617a0be3847458)
+- Only apps should have lockfiles [`6640e23`](https://github.com/inspect-js/hasOwn/commit/6640e233d1bb8b65260880f90787637db157d215)
+
+## v1.0.1 - 2023-10-10
+
+### Commits
+
+- Initial commit [`8dbfde6`](https://github.com/inspect-js/hasOwn/commit/8dbfde6e8fb0ebb076fab38d138f2984eb340a62)
diff --git a/node_modules/hasown/LICENSE b/node_modules/hasown/LICENSE
new file mode 100644
index 0000000..0314929
--- /dev/null
+++ b/node_modules/hasown/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) Jordan Harband and contributors
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/node_modules/hasown/README.md b/node_modules/hasown/README.md
new file mode 100644
index 0000000..f759b8a
--- /dev/null
+++ b/node_modules/hasown/README.md
@@ -0,0 +1,40 @@
+# hasown [![Version Badge][npm-version-svg]][package-url]
+
+[![github actions][actions-image]][actions-url]
+[![coverage][codecov-image]][codecov-url]
+[![License][license-image]][license-url]
+[![Downloads][downloads-image]][downloads-url]
+
+[![npm badge][npm-badge-png]][package-url]
+
+A robust, ES3 compatible, "has own property" predicate.
+
+## Example
+
+```js
+const assert = require('assert');
+const hasOwn = require('hasown');
+
+assert.equal(hasOwn({}, 'toString'), false);
+assert.equal(hasOwn([], 'length'), true);
+assert.equal(hasOwn({ a: 42 }, 'a'), true);
+```
+
+## Tests
+Simply clone the repo, `npm install`, and run `npm test`
+
+[package-url]: https://npmjs.org/package/hasown
+[npm-version-svg]: https://versionbadg.es/inspect-js/hasown.svg
+[deps-svg]: https://david-dm.org/inspect-js/hasOwn.svg
+[deps-url]: https://david-dm.org/inspect-js/hasOwn
+[dev-deps-svg]: https://david-dm.org/inspect-js/hasOwn/dev-status.svg
+[dev-deps-url]: https://david-dm.org/inspect-js/hasOwn#info=devDependencies
+[npm-badge-png]: https://nodei.co/npm/hasown.png?downloads=true&stars=true
+[license-image]: https://img.shields.io/npm/l/hasown.svg
+[license-url]: LICENSE
+[downloads-image]: https://img.shields.io/npm/dm/hasown.svg
+[downloads-url]: https://npm-stat.com/charts.html?package=hasown
+[codecov-image]: https://codecov.io/gh/inspect-js/hasOwn/branch/main/graphs/badge.svg
+[codecov-url]: https://app.codecov.io/gh/inspect-js/hasOwn/
+[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/hasOwn
+[actions-url]: https://github.com/inspect-js/hasOwn/actions
diff --git a/node_modules/hasown/index.d.ts b/node_modules/hasown/index.d.ts
new file mode 100644
index 0000000..aafdf3b
--- /dev/null
+++ b/node_modules/hasown/index.d.ts
@@ -0,0 +1,3 @@
+declare function hasOwn(o: O, p: K): o is O & Record;
+
+export = hasOwn;
diff --git a/node_modules/hasown/index.js b/node_modules/hasown/index.js
new file mode 100644
index 0000000..34e6059
--- /dev/null
+++ b/node_modules/hasown/index.js
@@ -0,0 +1,8 @@
+'use strict';
+
+var call = Function.prototype.call;
+var $hasOwn = Object.prototype.hasOwnProperty;
+var bind = require('function-bind');
+
+/** @type {import('.')} */
+module.exports = bind.call(call, $hasOwn);
diff --git a/node_modules/hasown/package.json b/node_modules/hasown/package.json
new file mode 100644
index 0000000..8502e13
--- /dev/null
+++ b/node_modules/hasown/package.json
@@ -0,0 +1,92 @@
+{
+ "name": "hasown",
+ "version": "2.0.2",
+ "description": "A robust, ES3 compatible, \"has own property\" predicate.",
+ "main": "index.js",
+ "exports": {
+ ".": "./index.js",
+ "./package.json": "./package.json"
+ },
+ "types": "index.d.ts",
+ "sideEffects": false,
+ "scripts": {
+ "prepack": "npmignore --auto --commentLines=autogenerated",
+ "prepublish": "not-in-publish || npm run prepublishOnly",
+ "prepublishOnly": "safe-publish-latest",
+ "prelint": "evalmd README.md",
+ "lint": "eslint --ext=js,mjs .",
+ "postlint": "npm run tsc",
+ "pretest": "npm run lint",
+ "tsc": "tsc -p .",
+ "posttsc": "attw -P",
+ "tests-only": "nyc tape 'test/**/*.js'",
+ "test": "npm run tests-only",
+ "posttest": "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/inspect-js/hasOwn.git"
+ },
+ "keywords": [
+ "has",
+ "hasOwnProperty",
+ "hasOwn",
+ "has-own",
+ "own",
+ "has",
+ "property",
+ "in",
+ "javascript",
+ "ecmascript"
+ ],
+ "author": "Jordan Harband ",
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/inspect-js/hasOwn/issues"
+ },
+ "homepage": "https://github.com/inspect-js/hasOwn#readme",
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "devDependencies": {
+ "@arethetypeswrong/cli": "^0.15.1",
+ "@ljharb/eslint-config": "^21.1.0",
+ "@ljharb/tsconfig": "^0.2.0",
+ "@types/function-bind": "^1.1.10",
+ "@types/mock-property": "^1.0.2",
+ "@types/tape": "^5.6.4",
+ "aud": "^2.0.4",
+ "auto-changelog": "^2.4.0",
+ "eslint": "=8.8.0",
+ "evalmd": "^0.0.19",
+ "in-publish": "^2.0.1",
+ "mock-property": "^1.0.3",
+ "npmignore": "^0.3.1",
+ "nyc": "^10.3.2",
+ "safe-publish-latest": "^2.0.0",
+ "tape": "^5.7.5",
+ "typescript": "next"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "testling": {
+ "files": "test/index.js"
+ },
+ "auto-changelog": {
+ "output": "CHANGELOG.md",
+ "template": "keepachangelog",
+ "unreleased": false,
+ "commitLimit": false,
+ "backfillLimit": false,
+ "hideCredit": true
+ },
+ "publishConfig": {
+ "ignore": [
+ ".github/workflows",
+ "test"
+ ]
+ }
+}
diff --git a/node_modules/hasown/tsconfig.json b/node_modules/hasown/tsconfig.json
new file mode 100644
index 0000000..0930c56
--- /dev/null
+++ b/node_modules/hasown/tsconfig.json
@@ -0,0 +1,6 @@
+{
+ "extends": "@ljharb/tsconfig",
+ "exclude": [
+ "coverage",
+ ],
+}
diff --git a/node_modules/hexoid/package.json b/node_modules/hexoid/package.json
index facfc5f..df7097c 100644
--- a/node_modules/hexoid/package.json
+++ b/node_modules/hexoid/package.json
@@ -1,52 +1,30 @@
{
- "_from": "hexoid@^1.0.0",
- "_id": "hexoid@1.0.0",
- "_inBundle": false,
- "_integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==",
- "_location": "/hexoid",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "hexoid@^1.0.0",
- "name": "hexoid",
- "escapedName": "hexoid",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/formidable"
- ],
- "_resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz",
- "_shasum": "ad10c6573fb907de23d9ec63a711267d9dc9bc18",
- "_spec": "hexoid@^1.0.0",
- "_where": "/home/ubuntu/formidable/node_modules/formidable",
+ "name": "hexoid",
+ "version": "1.0.0",
+ "repository": "lukeed/hexoid",
+ "description": "A tiny (190B) and extremely fast utility to generate random IDs of fixed length",
+ "unpkg": "dist/index.min.js",
+ "module": "dist/index.mjs",
+ "main": "dist/index.js",
+ "types": "hexoid.d.ts",
+ "license": "MIT",
"author": {
"name": "Luke Edwards",
"email": "luke.edwards05@gmail.com",
"url": "https://lukeed.com"
},
- "bugs": {
- "url": "https://github.com/lukeed/hexoid/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "A tiny (190B) and extremely fast utility to generate random IDs of fixed length",
- "devDependencies": {
- "bundt": "1.0.0",
- "esm": "3.2.25",
- "tap-spec": "5.0.0",
- "tape": "4.9.1"
- },
"engines": {
"node": ">=8"
},
+ "scripts": {
+ "build": "bundt",
+ "pretest": "npm run build",
+ "test": "tape -r esm test/*.js | tap-spec"
+ },
"files": [
"*.d.ts",
"dist"
],
- "homepage": "https://github.com/lukeed/hexoid#readme",
"keywords": [
"id",
"uid",
@@ -54,20 +32,10 @@
"random",
"generate"
],
- "license": "MIT",
- "main": "dist/index.js",
- "module": "dist/index.mjs",
- "name": "hexoid",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lukeed/hexoid.git"
- },
- "scripts": {
- "build": "bundt",
- "pretest": "npm run build",
- "test": "tape -r esm test/*.js | tap-spec"
- },
- "types": "hexoid.d.ts",
- "unpkg": "dist/index.min.js",
- "version": "1.0.0"
+ "devDependencies": {
+ "bundt": "1.0.0",
+ "esm": "3.2.25",
+ "tap-spec": "5.0.0",
+ "tape": "4.9.1"
+ }
}
diff --git a/node_modules/inherits/package.json b/node_modules/inherits/package.json
index 9300ddb..37b4366 100644
--- a/node_modules/inherits/package.json
+++ b/node_modules/inherits/package.json
@@ -1,42 +1,7 @@
{
- "_from": "inherits@^2.0.1",
- "_id": "inherits@2.0.4",
- "_inBundle": false,
- "_integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
- "_location": "/inherits",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "inherits@^2.0.1",
- "name": "inherits",
- "escapedName": "inherits",
- "rawSpec": "^2.0.1",
- "saveSpec": null,
- "fetchSpec": "^2.0.1"
- },
- "_requiredBy": [
- "/asn1.js"
- ],
- "_resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "_shasum": "0fa2c64f932917c3433a0ded55363aae37416b7c",
- "_spec": "inherits@^2.0.1",
- "_where": "/home/ubuntu/OCSP/node_modules/asn1.js",
- "browser": "./inherits_browser.js",
- "bugs": {
- "url": "https://github.com/isaacs/inherits/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
+ "name": "inherits",
"description": "Browser-friendly inheritance fully compatible with standard node.js inherits()",
- "devDependencies": {
- "tap": "^14.2.4"
- },
- "files": [
- "inherits.js",
- "inherits_browser.js"
- ],
- "homepage": "https://github.com/isaacs/inherits#readme",
+ "version": "2.0.4",
"keywords": [
"inheritance",
"class",
@@ -47,15 +12,18 @@
"browser",
"browserify"
],
- "license": "ISC",
"main": "./inherits.js",
- "name": "inherits",
- "repository": {
- "type": "git",
- "url": "git://github.com/isaacs/inherits.git"
- },
+ "browser": "./inherits_browser.js",
+ "repository": "git://github.com/isaacs/inherits",
+ "license": "ISC",
"scripts": {
"test": "tap"
},
- "version": "2.0.4"
+ "devDependencies": {
+ "tap": "^14.2.4"
+ },
+ "files": [
+ "inherits.js",
+ "inherits_browser.js"
+ ]
}
diff --git a/node_modules/minimalistic-assert/package.json b/node_modules/minimalistic-assert/package.json
index e878679..f8de10d 100644
--- a/node_modules/minimalistic-assert/package.json
+++ b/node_modules/minimalistic-assert/package.json
@@ -1,44 +1,19 @@
{
- "_from": "minimalistic-assert@^1.0.0",
- "_id": "minimalistic-assert@1.0.1",
- "_inBundle": false,
- "_integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
- "_location": "/minimalistic-assert",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "minimalistic-assert@^1.0.0",
- "name": "minimalistic-assert",
- "escapedName": "minimalistic-assert",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/asn1.js"
- ],
- "_resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
- "_shasum": "2e194de044626d4a10e7f7fbc00ce73e83e4d5c7",
- "_spec": "minimalistic-assert@^1.0.0",
- "_where": "/home/ubuntu/OCSP/node_modules/asn1.js",
- "author": "",
- "bugs": {
- "url": "https://github.com/calvinmetcalf/minimalistic-assert/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "minimalistic-assert ===",
- "homepage": "https://github.com/calvinmetcalf/minimalistic-assert",
- "license": "ISC",
- "main": "index.js",
"name": "minimalistic-assert",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/calvinmetcalf/minimalistic-assert.git"
- },
+ "version": "1.0.1",
+ "description": "minimalistic-assert ===",
+ "main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
- "version": "1.0.1"
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/calvinmetcalf/minimalistic-assert.git"
+ },
+ "author": "",
+ "license": "ISC",
+ "bugs": {
+ "url": "https://github.com/calvinmetcalf/minimalistic-assert/issues"
+ },
+ "homepage": "https://github.com/calvinmetcalf/minimalistic-assert"
}
diff --git a/node_modules/object-inspect/CHANGELOG.md b/node_modules/object-inspect/CHANGELOG.md
index d42237c..056fbcc 100644
--- a/node_modules/object-inspect/CHANGELOG.md
+++ b/node_modules/object-inspect/CHANGELOG.md
@@ -5,6 +5,40 @@ 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.13.2](https://github.com/inspect-js/object-inspect/compare/v1.13.1...v1.13.2) - 2024-06-21
+
+### Commits
+
+- [readme] update badges [`8a51e6b`](https://github.com/inspect-js/object-inspect/commit/8a51e6bedaf389ec40cc4659e9df53e8543d176e)
+- [Dev Deps] update `@ljharb/eslint-config`, `tape` [`ef05f58`](https://github.com/inspect-js/object-inspect/commit/ef05f58c9761a41416ab907299bf0fa79517014b)
+- [Dev Deps] update `error-cause`, `has-tostringtag`, `tape` [`c0c6c26`](https://github.com/inspect-js/object-inspect/commit/c0c6c26c44cee6671f7c5d43d2b91d27c5c00d90)
+- [Fix] Don't throw when `global` is not defined [`d4d0965`](https://github.com/inspect-js/object-inspect/commit/d4d096570f7dbd0e03266a96de11d05eb7b63e0f)
+- [meta] add missing `engines.node` [`17a352a`](https://github.com/inspect-js/object-inspect/commit/17a352af6fe1ba6b70a19081674231eb1a50c940)
+- [Dev Deps] update `globalthis` [`9c08884`](https://github.com/inspect-js/object-inspect/commit/9c08884aa662a149e2f11403f413927736b97da7)
+- [Dev Deps] update `error-cause` [`6af352d`](https://github.com/inspect-js/object-inspect/commit/6af352d7c3929a4cc4c55768c27bf547a5e900f4)
+- [Dev Deps] update `npmignore` [`94e617d`](https://github.com/inspect-js/object-inspect/commit/94e617d38831722562fa73dff4c895746861d267)
+- [Dev Deps] update `mock-property` [`2ac24d7`](https://github.com/inspect-js/object-inspect/commit/2ac24d7e58cd388ad093c33249e413e05bbfd6c3)
+- [Dev Deps] update `tape` [`46125e5`](https://github.com/inspect-js/object-inspect/commit/46125e58f1d1dcfb170ed3d1ea69da550ea8d77b)
+
+## [v1.13.1](https://github.com/inspect-js/object-inspect/compare/v1.13.0...v1.13.1) - 2023-10-19
+
+### Commits
+
+- [Fix] in IE 8, global can !== window despite them being prototypes of each other [`30d0859`](https://github.com/inspect-js/object-inspect/commit/30d0859dc4606cf75c2410edcd5d5c6355f8d372)
+
+## [v1.13.0](https://github.com/inspect-js/object-inspect/compare/v1.12.3...v1.13.0) - 2023-10-14
+
+### Commits
+
+- [New] add special handling for the global object [`431bab2`](https://github.com/inspect-js/object-inspect/commit/431bab21a490ee51d35395966a504501e8c685da)
+- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `tape` [`fd4f619`](https://github.com/inspect-js/object-inspect/commit/fd4f6193562b4b0e95dcf5c0201b4e8cbbc4f58d)
+- [Dev Deps] update `mock-property`, `tape` [`b453f6c`](https://github.com/inspect-js/object-inspect/commit/b453f6ceeebf8a1b738a1029754092e0367a4134)
+- [Dev Deps] update `error-cause` [`e8ffc57`](https://github.com/inspect-js/object-inspect/commit/e8ffc577d73b92bb6a4b00c44f14e3319e374888)
+- [Dev Deps] update `tape` [`054b8b9`](https://github.com/inspect-js/object-inspect/commit/054b8b9b98633284cf989e582450ebfbbe53503c)
+- [Dev Deps] temporarily remove `aud` due to breaking change in transitive deps [`2476845`](https://github.com/inspect-js/object-inspect/commit/2476845e0678dd290c541c81cd3dec8420782c52)
+- [Dev Deps] pin `glob`, since v10.3.8+ requires a broken `jackspeak` [`383fa5e`](https://github.com/inspect-js/object-inspect/commit/383fa5eebc0afd705cc778a4b49d8e26452e49a8)
+- [Dev Deps] pin `jackspeak` since 2.1.2+ depends on npm aliases, which kill the install process in npm < 6 [`68c244c`](https://github.com/inspect-js/object-inspect/commit/68c244c5174cdd877e5dcb8ee90aa3f44b2f25be)
+
## [v1.12.3](https://github.com/inspect-js/object-inspect/compare/v1.12.2...v1.12.3) - 2023-01-12
### Commits
diff --git a/node_modules/object-inspect/index.js b/node_modules/object-inspect/index.js
index 8496225..eb89faf 100644
--- a/node_modules/object-inspect/index.js
+++ b/node_modules/object-inspect/index.js
@@ -239,6 +239,17 @@ module.exports = function inspect_(obj, options, depth, seen) {
if (isString(obj)) {
return markBoxed(inspect(String(obj)));
}
+ // note: in IE 8, sometimes `global !== window` but both are the prototypes of each other
+ /* eslint-env browser */
+ if (typeof window !== 'undefined' && obj === window) {
+ return '{ [object Window] }';
+ }
+ if (
+ (typeof globalThis !== 'undefined' && obj === globalThis)
+ || (typeof global !== 'undefined' && obj === global)
+ ) {
+ return '{ [object globalThis] }';
+ }
if (!isDate(obj) && !isRegExp(obj)) {
var ys = arrObjKeys(obj, inspect);
var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;
diff --git a/node_modules/object-inspect/package.json b/node_modules/object-inspect/package.json
index 3003daa..9974d21 100644
--- a/node_modules/object-inspect/package.json
+++ b/node_modules/object-inspect/package.json
@@ -1,110 +1,48 @@
{
- "_from": "object-inspect@^1.9.0",
- "_id": "object-inspect@1.12.3",
- "_inBundle": false,
- "_integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
- "_location": "/object-inspect",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "object-inspect@^1.9.0",
- "name": "object-inspect",
- "escapedName": "object-inspect",
- "rawSpec": "^1.9.0",
- "saveSpec": null,
- "fetchSpec": "^1.9.0"
- },
- "_requiredBy": [
- "/side-channel"
- ],
- "_resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
- "_shasum": "ba62dffd67ee256c8c086dfae69e016cd1f198b9",
- "_spec": "object-inspect@^1.9.0",
- "_where": "/home/ubuntu/formidable/node_modules/side-channel",
- "author": {
- "name": "James Halliday",
- "email": "mail@substack.net",
- "url": "http://substack.net"
- },
- "auto-changelog": {
- "output": "CHANGELOG.md",
- "template": "keepachangelog",
- "unreleased": false,
- "commitLimit": false,
- "backfillLimit": false,
- "hideCredit": true
- },
- "browser": {
- "./util.inspect.js": false
- },
- "bugs": {
- "url": "https://github.com/inspect-js/object-inspect/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
+ "name": "object-inspect",
+ "version": "1.13.2",
"description": "string representations of objects in node and the browser",
+ "main": "index.js",
+ "sideEffects": false,
"devDependencies": {
- "@ljharb/eslint-config": "^21.0.1",
+ "@ljharb/eslint-config": "^21.1.1",
"@pkgjs/support": "^0.0.6",
- "aud": "^2.0.2",
"auto-changelog": "^2.4.0",
"core-js": "^2.6.12",
- "error-cause": "^1.0.5",
+ "error-cause": "^1.0.8",
"es-value-fixtures": "^1.4.2",
"eslint": "=8.8.0",
"for-each": "^0.3.3",
"functions-have-names": "^1.2.3",
- "has-tostringtag": "^1.0.0",
+ "glob": "=10.3.7",
+ "globalthis": "^1.0.4",
+ "has-symbols": "^1.0.3",
+ "has-tostringtag": "^1.0.2",
"in-publish": "^2.0.1",
+ "jackspeak": "=2.1.1",
"make-arrow-function": "^1.2.0",
- "mock-property": "^1.0.0",
- "npmignore": "^0.3.0",
+ "mock-property": "^1.0.3",
+ "npmignore": "^0.3.1",
"nyc": "^10.3.2",
"safe-publish-latest": "^2.0.0",
+ "safer-buffer": "^2.1.2",
"string.prototype.repeat": "^1.0.0",
- "tape": "^5.6.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- },
- "homepage": "https://github.com/inspect-js/object-inspect",
- "keywords": [
- "inspect",
- "util.inspect",
- "object",
- "stringify",
- "pretty"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "object-inspect",
- "publishConfig": {
- "ignore": [
- ".github/workflows",
- "./test-core-js.js"
- ]
- },
- "repository": {
- "type": "git",
- "url": "git://github.com/inspect-js/object-inspect.git"
+ "tape": "^5.8.1"
},
"scripts": {
- "lint": "eslint --ext=js,mjs .",
- "postlint": "npx @pkgjs/support validate",
- "posttest": "npx aud --production",
- "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"",
"prepack": "npmignore --auto --commentLines=autogenerated",
"prepublish": "not-in-publish || npm run prepublishOnly",
"prepublishOnly": "safe-publish-latest",
"pretest": "npm run lint",
+ "lint": "eslint --ext=js,mjs .",
+ "postlint": "npx @pkgjs/support validate",
"test": "npm run tests-only && npm run test:corejs",
- "test:corejs": "nyc tape test-core-js.js 'test/*.js'",
"tests-only": "nyc tape 'test/*.js'",
- "version": "auto-changelog && git add CHANGELOG.md"
+ "test:corejs": "nyc tape test-core-js.js 'test/*.js'",
+ "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)\")\""
},
- "sideEffects": false,
- "support": true,
"testling": {
"files": [
"test/*.js",
@@ -121,5 +59,46 @@
"android/latest"
]
},
- "version": "1.12.3"
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/inspect-js/object-inspect.git"
+ },
+ "homepage": "https://github.com/inspect-js/object-inspect",
+ "keywords": [
+ "inspect",
+ "util.inspect",
+ "object",
+ "stringify",
+ "pretty"
+ ],
+ "author": {
+ "name": "James Halliday",
+ "email": "mail@substack.net",
+ "url": "http://substack.net"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ },
+ "license": "MIT",
+ "browser": {
+ "./util.inspect.js": false
+ },
+ "auto-changelog": {
+ "output": "CHANGELOG.md",
+ "template": "keepachangelog",
+ "unreleased": false,
+ "commitLimit": false,
+ "backfillLimit": false,
+ "hideCredit": true
+ },
+ "publishConfig": {
+ "ignore": [
+ ".github/workflows",
+ "./test-core-js.js"
+ ]
+ },
+ "support": true,
+ "engines": {
+ "node": ">= 0.4"
+ }
}
diff --git a/node_modules/object-inspect/readme.markdown b/node_modules/object-inspect/readme.markdown
index 9ff6bec..f91617d 100644
--- a/node_modules/object-inspect/readme.markdown
+++ b/node_modules/object-inspect/readme.markdown
@@ -1,15 +1,13 @@
-# object-inspect [![Version Badge][2]][1]
+# object-inspect [![Version Badge][npm-version-svg]][package-url]
string representations of objects in node and the browser
[![github actions][actions-image]][actions-url]
[![coverage][codecov-image]][codecov-url]
-[![dependency status][5]][6]
-[![dev dependency status][7]][8]
[![License][license-image]][license-url]
[![Downloads][downloads-image]][downloads-url]
-[![npm badge][11]][1]
+[![npm badge][npm-badge-png]][package-url]
# example
@@ -69,13 +67,13 @@ npm install object-inspect
MIT
-[1]: https://npmjs.org/package/object-inspect
-[2]: https://versionbadg.es/inspect-js/object-inspect.svg
-[5]: https://david-dm.org/inspect-js/object-inspect.svg
-[6]: https://david-dm.org/inspect-js/object-inspect
-[7]: https://david-dm.org/inspect-js/object-inspect/dev-status.svg
-[8]: https://david-dm.org/inspect-js/object-inspect#info=devDependencies
-[11]: https://nodei.co/npm/object-inspect.png?downloads=true&stars=true
+[package-url]: https://npmjs.org/package/object-inspect
+[npm-version-svg]: https://versionbadg.es/inspect-js/object-inspect.svg
+[deps-svg]: https://david-dm.org/inspect-js/object-inspect.svg
+[deps-url]: https://david-dm.org/inspect-js/object-inspect
+[dev-deps-svg]: https://david-dm.org/inspect-js/object-inspect/dev-status.svg
+[dev-deps-url]: https://david-dm.org/inspect-js/object-inspect#info=devDependencies
+[npm-badge-png]: https://nodei.co/npm/object-inspect.png?downloads=true&stars=true
[license-image]: https://img.shields.io/npm/l/object-inspect.svg
[license-url]: LICENSE
[downloads-image]: https://img.shields.io/npm/dm/object-inspect.svg
diff --git a/node_modules/object-inspect/test/global.js b/node_modules/object-inspect/test/global.js
new file mode 100644
index 0000000..c57216a
--- /dev/null
+++ b/node_modules/object-inspect/test/global.js
@@ -0,0 +1,17 @@
+'use strict';
+
+var inspect = require('../');
+
+var test = require('tape');
+var globalThis = require('globalthis')();
+
+test('global object', function (t) {
+ /* eslint-env browser */
+ var expected = typeof window === 'undefined' ? 'globalThis' : 'Window';
+ t.equal(
+ inspect([globalThis]),
+ '[ { [object ' + expected + '] } ]'
+ );
+
+ t.end();
+});
diff --git a/node_modules/ocsp/package.json b/node_modules/ocsp/package.json
index beedf6e..e05b07f 100644
--- a/node_modules/ocsp/package.json
+++ b/node_modules/ocsp/package.json
@@ -1,67 +1,34 @@
{
- "_from": "ocsp",
- "_id": "ocsp@1.2.0",
- "_inBundle": false,
- "_integrity": "sha512-r4Q3oYKU+3b6iD4bn+5O2dQqctu8pFrJfWouUiKjiNXXjdr99lN/EaTVkFQevGlV/lKsomgtt/XRGB8xV8rq3Q==",
- "_location": "/ocsp",
- "_phantomChildren": {},
- "_requested": {
- "type": "tag",
- "registry": true,
- "raw": "ocsp",
- "name": "ocsp",
- "escapedName": "ocsp",
- "rawSpec": "",
- "saveSpec": null,
- "fetchSpec": "latest"
- },
- "_requiredBy": [
- "#USER",
- "/"
- ],
- "_resolved": "https://registry.npmjs.org/ocsp/-/ocsp-1.2.0.tgz",
- "_shasum": "469a1776b457dee67eb0201408c1946bac4076cc",
- "_spec": "ocsp",
- "_where": "/home/ubuntu/OCSP",
- "author": {
- "name": "Fedor Indutny",
- "email": "fedor@indutny.com"
- },
- "bugs": {
- "url": "https://github.com/indutny/ocsp/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "asn1.js": "^4.8.0",
- "asn1.js-rfc2560": "^4.0.0",
- "asn1.js-rfc5280": "^2.0.0",
- "async": "^1.5.2",
- "simple-lru-cache": "0.0.2"
- },
- "deprecated": false,
+ "name": "ocsp",
+ "version": "1.2.0",
"description": "OCSP Stapling implementation",
+ "main": "lib/ocsp.js",
+ "scripts": {
+ "lint": "jshint lib/*.js lib/**/*.js && jscs lib/*.js lib/**/*.js test/*.js test/**/*.js",
+ "test": "mocha test/*-test.js"
+ },
+ "keywords": [
+ "OCSP",
+ "ASN.1",
+ "Stapling"
+ ],
+ "author": "Fedor Indutny ",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/indutny/ocsp.git"
+ },
+ "license": "MIT",
"devDependencies": {
"jscs": "^2.4.0",
"jshint": "^2.8.0",
"mocha": "^2.2.5",
"selfsigned.js": "^3.0.1"
},
- "homepage": "https://github.com/indutny/ocsp#readme",
- "keywords": [
- "OCSP",
- "ASN.1",
- "Stapling"
- ],
- "license": "MIT",
- "main": "lib/ocsp.js",
- "name": "ocsp",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/indutny/ocsp.git"
- },
- "scripts": {
- "lint": "jshint lib/*.js lib/**/*.js && jscs lib/*.js lib/**/*.js test/*.js test/**/*.js",
- "test": "mocha test/*-test.js"
- },
- "version": "1.2.0"
+ "dependencies": {
+ "asn1.js": "^4.8.0",
+ "asn1.js-rfc2560": "^4.0.0",
+ "asn1.js-rfc5280": "^2.0.0",
+ "async": "^1.5.2",
+ "simple-lru-cache": "0.0.2"
+ }
}
diff --git a/node_modules/once/package.json b/node_modules/once/package.json
index 841ccf5..16815b2 100644
--- a/node_modules/once/package.json
+++ b/node_modules/once/package.json
@@ -1,66 +1,33 @@
{
- "_from": "once@^1.4.0",
- "_id": "once@1.4.0",
- "_inBundle": false,
- "_integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
- "_location": "/once",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "once@^1.4.0",
- "name": "once",
- "escapedName": "once",
- "rawSpec": "^1.4.0",
- "saveSpec": null,
- "fetchSpec": "^1.4.0"
+ "name": "once",
+ "version": "1.4.0",
+ "description": "Run a function exactly one time",
+ "main": "once.js",
+ "directories": {
+ "test": "test"
},
- "_requiredBy": [
- "/formidable"
- ],
- "_resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "_shasum": "583b1aa775961d4b113ac17d9c50baef9dd76bd1",
- "_spec": "once@^1.4.0",
- "_where": "/home/ubuntu/formidable/node_modules/formidable",
- "author": {
- "name": "Isaac Z. Schlueter",
- "email": "i@izs.me",
- "url": "http://blog.izs.me/"
- },
- "bugs": {
- "url": "https://github.com/isaacs/once/issues"
- },
- "bundleDependencies": false,
"dependencies": {
"wrappy": "1"
},
- "deprecated": false,
- "description": "Run a function exactly one time",
"devDependencies": {
"tap": "^7.0.1"
},
- "directories": {
- "test": "test"
+ "scripts": {
+ "test": "tap test/*.js"
},
"files": [
"once.js"
],
- "homepage": "https://github.com/isaacs/once#readme",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/isaacs/once"
+ },
"keywords": [
"once",
"function",
"one",
"single"
],
- "license": "ISC",
- "main": "once.js",
- "name": "once",
- "repository": {
- "type": "git",
- "url": "git://github.com/isaacs/once.git"
- },
- "scripts": {
- "test": "tap test/*.js"
- },
- "version": "1.4.0"
+ "author": "Isaac Z. Schlueter (http://blog.izs.me/)",
+ "license": "ISC"
}
diff --git a/node_modules/qs/.editorconfig b/node_modules/qs/.editorconfig
index 2f08444..6adecfb 100644
--- a/node_modules/qs/.editorconfig
+++ b/node_modules/qs/.editorconfig
@@ -41,3 +41,6 @@ max_line_length = off
[.nycrc]
indent_style = tab
+
+[tea.yaml]
+indent_size = 2
diff --git a/node_modules/qs/.eslintrc b/node_modules/qs/.eslintrc
index 919dbc0..b692761 100644
--- a/node_modules/qs/.eslintrc
+++ b/node_modules/qs/.eslintrc
@@ -14,7 +14,7 @@
"id-length": [2, { "min": 1, "max": 25, "properties": "never" }],
"indent": [2, 4],
"max-lines-per-function": [2, { "max": 150 }],
- "max-params": [2, 16],
+ "max-params": [2, 18],
"max-statements": [2, 100],
"multiline-comment-style": 0,
"no-continue": 1,
diff --git a/node_modules/qs/CHANGELOG.md b/node_modules/qs/CHANGELOG.md
index 0a6504c..02a6b50 100644
--- a/node_modules/qs/CHANGELOG.md
+++ b/node_modules/qs/CHANGELOG.md
@@ -1,3 +1,48 @@
+## **6.13.0**
+- [New] `parse`: add `strictDepth` option (#511)
+- [Tests] use `npm audit` instead of `aud`
+
+## **6.12.3**
+- [Fix] `parse`: properly account for `strictNullHandling` when `allowEmptyArrays`
+- [meta] fix changelog indentation
+
+## **6.12.2**
+- [Fix] `parse`: parse encoded square brackets (#506)
+- [readme] add CII best practices badge
+
+## **6.12.1**
+- [Fix] `parse`: Disable `decodeDotInKeys` by default to restore previous behavior (#501)
+- [Performance] `utils`: Optimize performance under large data volumes, reduce memory usage, and speed up processing (#502)
+- [Refactor] `utils`: use `+=`
+- [Tests] increase coverage
+
+## **6.12.0**
+
+- [New] `parse`/`stringify`: add `decodeDotInKeys`/`encodeDotKeys` options (#488)
+- [New] `parse`: add `duplicates` option
+- [New] `parse`/`stringify`: add `allowEmptyArrays` option to allow [] in object values (#487)
+- [Refactor] `parse`/`stringify`: move allowDots config logic to its own variable
+- [Refactor] `stringify`: move option-handling code into `normalizeStringifyOptions`
+- [readme] update readme, add logos (#484)
+- [readme] `stringify`: clarify default `arrayFormat` behavior
+- [readme] fix line wrapping
+- [readme] remove dead badges
+- [Deps] update `side-channel`
+- [meta] make the dist build 50% smaller
+- [meta] add `sideEffects` flag
+- [meta] run build in prepack, not prepublish
+- [Tests] `parse`: remove useless tests; add coverage
+- [Tests] `stringify`: increase coverage
+- [Tests] use `mock-property`
+- [Tests] `stringify`: improve coverage
+- [Dev Deps] update `@ljharb/eslint-config `, `aud`, `has-override-mistake`, `has-property-descriptors`, `mock-property`, `npmignore`, `object-inspect`, `tape`
+- [Dev Deps] pin `glob`, since v10.3.8+ requires a broken `jackspeak`
+- [Dev Deps] pin `jackspeak` since 2.1.2+ depends on npm aliases, which kill the install process in npm < 6
+
+## **6.11.2**
+- [Fix] `parse`: Fix parsing when the global Object prototype is frozen (#473)
+- [Tests] add passing test cases with empty keys (#473)
+
## **6.11.1**
- [Fix] `stringify`: encode comma values more consistently (#463)
- [readme] add usage of `filter` option for injecting custom serialization, i.e. of custom types (#447)
diff --git a/node_modules/qs/README.md b/node_modules/qs/README.md
index 6635471..1e0d9ad 100644
--- a/node_modules/qs/README.md
+++ b/node_modules/qs/README.md
@@ -1,11 +1,14 @@
+
+
+
+
# qs [![Version Badge][npm-version-svg]][package-url]
[![github actions][actions-image]][actions-url]
[![coverage][codecov-image]][codecov-url]
-[![dependency status][deps-svg]][deps-url]
-[![dev dependency status][dev-deps-svg]][dev-deps-url]
[![License][license-image]][license-url]
[![Downloads][downloads-image]][downloads-url]
+[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/9058/badge)](https://bestpractices.coreinfrastructure.org/projects/9058)
[![npm badge][npm-badge-png]][package-url]
@@ -53,7 +56,9 @@ var nullObject = qs.parse('a[hasOwnProperty]=b', { plainObjects: true });
assert.deepEqual(nullObject, { a: { hasOwnProperty: 'b' } });
```
-By default parameters that would overwrite properties on the object prototype are ignored, if you wish to keep the data from those fields either use `plainObjects` as mentioned above, or set `allowPrototypes` to `true` which will allow user input to overwrite those properties. *WARNING* It is generally a bad idea to enable this option as it can cause problems when attempting to use the properties that have been overwritten. Always be careful with this option.
+By default parameters that would overwrite properties on the object prototype are ignored, if you wish to keep the data from those fields either use `plainObjects` as mentioned above, or set `allowPrototypes` to `true` which will allow user input to overwrite those properties.
+*WARNING* It is generally a bad idea to enable this option as it can cause problems when attempting to use the properties that have been overwritten.
+Always be careful with this option.
```javascript
var protoObject = qs.parse('a[hasOwnProperty]=b', { allowPrototypes: true });
@@ -80,8 +85,8 @@ assert.deepEqual(qs.parse('foo[bar][baz]=foobarbaz'), {
});
```
-By default, when nesting objects **qs** will only parse up to 5 children deep. This means if you attempt to parse a string like
-`'a[b][c][d][e][f][g][h][i]=j'` your resulting object will be:
+By default, when nesting objects **qs** will only parse up to 5 children deep.
+This means if you attempt to parse a string like `'a[b][c][d][e][f][g][h][i]=j'` your resulting object will be:
```javascript
var expected = {
@@ -110,7 +115,18 @@ var deep = qs.parse('a[b][c][d][e][f][g][h][i]=j', { depth: 1 });
assert.deepEqual(deep, { a: { b: { '[c][d][e][f][g][h][i]': 'j' } } });
```
-The depth limit helps mitigate abuse when **qs** is used to parse user input, and it is recommended to keep it a reasonably small number.
+You can configure **qs** to throw an error when parsing nested input beyond this depth using the `strictDepth` option (defaulted to false):
+
+```javascript
+try {
+ qs.parse('a[b][c][d][e][f][g][h][i]=j', { depth: 1, strictDepth: true });
+} catch (err) {
+ assert(err instanceof RangeError);
+ assert.strictEqual(err.message, 'Input depth exceeded depth option of 1 and strictDepth is true');
+}
+```
+
+The depth limit helps mitigate abuse when **qs** is used to parse user input, and it is recommended to keep it a reasonably small number. The strictDepth option adds a layer of protection by throwing an error when the limit is exceeded, allowing you to catch and handle such cases.
For similar reasons, by default **qs** will only parse up to 1000 parameters. This can be overridden by passing a `parameterLimit` option:
@@ -147,32 +163,44 @@ var withDots = qs.parse('a.b=c', { allowDots: true });
assert.deepEqual(withDots, { a: { b: 'c' } });
```
-If you have to deal with legacy browsers or services, there's
-also support for decoding percent-encoded octets as iso-8859-1:
+Option `decodeDotInKeys` can be used to decode dots in keys
+Note: it implies `allowDots`, so `parse` will error if you set `decodeDotInKeys` to `true`, and `allowDots` to `false`.
+
+```javascript
+var withDots = qs.parse('name%252Eobj.first=John&name%252Eobj.last=Doe', { decodeDotInKeys: true });
+assert.deepEqual(withDots, { 'name.obj': { first: 'John', last: 'Doe' }});
+```
+
+Option `allowEmptyArrays` can be used to allowing empty array values in object
+```javascript
+var withEmptyArrays = qs.parse('foo[]&bar=baz', { allowEmptyArrays: true });
+assert.deepEqual(withEmptyArrays, { foo: [], bar: 'baz' });
+```
+
+Option `duplicates` can be used to change the behavior when duplicate keys are encountered
+```javascript
+assert.deepEqual(qs.parse('foo=bar&foo=baz'), { foo: ['bar', 'baz'] });
+assert.deepEqual(qs.parse('foo=bar&foo=baz', { duplicates: 'combine' }), { foo: ['bar', 'baz'] });
+assert.deepEqual(qs.parse('foo=bar&foo=baz', { duplicates: 'first' }), { foo: 'bar' });
+assert.deepEqual(qs.parse('foo=bar&foo=baz', { duplicates: 'last' }), { foo: 'baz' });
+```
+
+If you have to deal with legacy browsers or services, there's also support for decoding percent-encoded octets as iso-8859-1:
```javascript
var oldCharset = qs.parse('a=%A7', { charset: 'iso-8859-1' });
assert.deepEqual(oldCharset, { a: '§' });
```
-Some services add an initial `utf8=✓` value to forms so that old
-Internet Explorer versions are more likely to submit the form as
-utf-8. Additionally, the server can check the value against wrong
-encodings of the checkmark character and detect that a query string
-or `application/x-www-form-urlencoded` body was *not* sent as
-utf-8, eg. if the form had an `accept-charset` parameter or the
-containing page had a different character set.
+Some services add an initial `utf8=✓` value to forms so that old Internet Explorer versions are more likely to submit the form as utf-8.
+Additionally, the server can check the value against wrong encodings of the checkmark character and detect that a query string or `application/x-www-form-urlencoded` body was *not* sent as utf-8, eg. if the form had an `accept-charset` parameter or the containing page had a different character set.
**qs** supports this mechanism via the `charsetSentinel` option.
-If specified, the `utf8` parameter will be omitted from the
-returned object. It will be used to switch to `iso-8859-1`/`utf-8`
-mode depending on how the checkmark is encoded.
+If specified, the `utf8` parameter will be omitted from the returned object.
+It will be used to switch to `iso-8859-1`/`utf-8` mode depending on how the checkmark is encoded.
-**Important**: When you specify both the `charset` option and the
-`charsetSentinel` option, the `charset` will be overridden when
-the request contains a `utf8` parameter from which the actual
-charset can be deduced. In that sense the `charset` will behave
-as the default charset rather than the authoritative charset.
+**Important**: When you specify both the `charset` option and the `charsetSentinel` option, the `charset` will be overridden when the request contains a `utf8` parameter from which the actual charset can be deduced.
+In that sense the `charset` will behave as the default charset rather than the authoritative charset.
```javascript
var detectedAsUtf8 = qs.parse('utf8=%E2%9C%93&a=%C3%B8', {
@@ -189,8 +217,7 @@ var detectedAsIso8859_1 = qs.parse('utf8=%26%2310003%3B&a=%F8', {
assert.deepEqual(detectedAsIso8859_1, { a: 'ø' });
```
-If you want to decode the `...;` syntax to the actual character,
-you can specify the `interpretNumericEntities` option as well:
+If you want to decode the `...;` syntax to the actual character, you can specify the `interpretNumericEntities` option as well:
```javascript
var detectedAsIso8859_1 = qs.parse('a=%26%239786%3B', {
@@ -200,8 +227,7 @@ var detectedAsIso8859_1 = qs.parse('a=%26%239786%3B', {
assert.deepEqual(detectedAsIso8859_1, { a: '☺' });
```
-It also works when the charset has been detected in `charsetSentinel`
-mode.
+It also works when the charset has been detected in `charsetSentinel` mode.
### Parsing Arrays
@@ -219,9 +245,8 @@ var withIndexes = qs.parse('a[1]=c&a[0]=b');
assert.deepEqual(withIndexes, { a: ['b', 'c'] });
```
-Note that the only difference between an index in an array and a key in an object is that the value between the brackets must be a number
-to create an array. When creating arrays with specific indices, **qs** will compact a sparse array to only the existing values preserving
-their order:
+Note that the only difference between an index in an array and a key in an object is that the value between the brackets must be a number to create an array.
+When creating arrays with specific indices, **qs** will compact a sparse array to only the existing values preserving their order:
```javascript
var noSparse = qs.parse('a[1]=b&a[15]=c');
@@ -245,8 +270,9 @@ var withIndexedEmptyString = qs.parse('a[0]=b&a[1]=&a[2]=c');
assert.deepEqual(withIndexedEmptyString, { a: ['b', '', 'c'] });
```
-**qs** will also limit specifying indices in an array to a maximum index of `20`. Any array members with an index of greater than `20` will
-instead be converted to an object with the index as the key. This is needed to handle cases when someone sent, for example, `a[999999999]` and it will take significant time to iterate over this huge array.
+**qs** will also limit specifying indices in an array to a maximum index of `20`.
+Any array members with an index of greater than `20` will instead be converted to an object with the index as the key.
+This is needed to handle cases when someone sent, for example, `a[999999999]` and it will take significant time to iterate over this huge array.
```javascript
var withMaxIndex = qs.parse('a[100]=b');
@@ -290,7 +316,8 @@ assert.deepEqual(arraysOfObjects, { a: ['b', 'c'] })
### Parsing primitive/scalar values (numbers, booleans, null, etc)
-By default, all values are parsed as strings. This behavior will not change and is explained in [issue #91](https://github.com/ljharb/qs/issues/91).
+By default, all values are parsed as strings.
+This behavior will not change and is explained in [issue #91](https://github.com/ljharb/qs/issues/91).
```javascript
var primitiveValues = qs.parse('a=15&b=true&c=null');
@@ -373,16 +400,17 @@ var decoded = qs.parse('x=z', { decoder: function (str, defaultDecoder, charset,
}})
```
-Examples beyond this point will be shown as though the output is not URI encoded for clarity. Please note that the return values in these cases *will* be URI encoded during real usage.
+Examples beyond this point will be shown as though the output is not URI encoded for clarity.
+Please note that the return values in these cases *will* be URI encoded during real usage.
-When arrays are stringified, by default they are given explicit indices:
+When arrays are stringified, they follow the `arrayFormat` option, which defaults to `indices`:
```javascript
qs.stringify({ a: ['b', 'c', 'd'] });
// 'a[0]=b&a[1]=c&a[2]=d'
```
-You may override this by setting the `indices` option to `false`:
+You may override this by setting the `indices` option to `false`, or to be more explicit, the `arrayFormat` option to `repeat`:
```javascript
qs.stringify({ a: ['b', 'c', 'd'] }, { indices: false });
@@ -418,6 +446,20 @@ qs.stringify({ a: { b: { c: 'd', e: 'f' } } }, { allowDots: true });
// 'a.b.c=d&a.b.e=f'
```
+You may encode the dot notation in the keys of object with option `encodeDotInKeys` by setting it to `true`:
+Note: it implies `allowDots`, so `stringify` will error if you set `decodeDotInKeys` to `true`, and `allowDots` to `false`.
+Caveat: when `encodeValuesOnly` is `true` as well as `encodeDotInKeys`, only dots in keys and nothing else will be encoded.
+```javascript
+qs.stringify({ "name.obj": { "first": "John", "last": "Doe" } }, { allowDots: true, encodeDotInKeys: true })
+// 'name%252Eobj.first=John&name%252Eobj.last=Doe'
+```
+
+You may allow empty array values by setting the `allowEmptyArrays` option to `true`:
+```javascript
+qs.stringify({ foo: [], bar: 'baz' }, { allowEmptyArrays: true });
+// 'foo[]&bar=baz'
+```
+
Empty strings and null values will omit the value, but the equals sign (=) remains in place:
```javascript
@@ -473,8 +515,8 @@ assert.equal(qs.stringify({ a: 'c', z: 'y', b : 'f' }, { sort: alphabeticalSort
```
Finally, you can use the `filter` option to restrict which keys will be included in the stringified output.
-If you pass a function, it will be called for each key to obtain the replacement value. Otherwise, if you
-pass an array, it will be used to select properties and array indices for stringification:
+If you pass a function, it will be called for each key to obtain the replacement value.
+Otherwise, if you pass an array, it will be used to select properties and array indices for stringification:
```javascript
function filterFunc(prefix, value) {
@@ -498,8 +540,8 @@ qs.stringify({ a: ['b', 'c', 'd'], e: 'f' }, { filter: ['a', 0, 2] });
// 'a[0]=b&a[2]=d'
```
-You could also use `filter` to inject custom serialization for user defined types. Consider you're working with
-some api that expects query strings of the format for ranges:
+You could also use `filter` to inject custom serialization for user defined types.
+Consider you're working with some api that expects query strings of the format for ranges:
```
https://domain.com/endpoint?range=30...70
@@ -545,7 +587,8 @@ var withNull = qs.stringify({ a: null, b: '' });
assert.equal(withNull, 'a=&b=');
```
-Parsing does not distinguish between parameters with and without equal signs. Both are converted to empty strings.
+Parsing does not distinguish between parameters with and without equal signs.
+Both are converted to empty strings.
```javascript
var equalsInsensitive = qs.parse('a&b=');
@@ -574,25 +617,21 @@ var nullsSkipped = qs.stringify({ a: 'b', c: null}, { skipNulls: true });
assert.equal(nullsSkipped, 'a=b');
```
-If you're communicating with legacy systems, you can switch to `iso-8859-1`
-using the `charset` option:
+If you're communicating with legacy systems, you can switch to `iso-8859-1` using the `charset` option:
```javascript
var iso = qs.stringify({ æ: 'æ' }, { charset: 'iso-8859-1' });
assert.equal(iso, '%E6=%E6');
```
-Characters that don't exist in `iso-8859-1` will be converted to numeric
-entities, similar to what browsers do:
+Characters that don't exist in `iso-8859-1` will be converted to numeric entities, similar to what browsers do:
```javascript
var numeric = qs.stringify({ a: '☺' }, { charset: 'iso-8859-1' });
assert.equal(numeric, 'a=%26%239786%3B');
```
-You can use the `charsetSentinel` option to announce the character by
-including an `utf8=✓` parameter with the proper encoding if the checkmark,
-similar to what Ruby on Rails and others do when submitting forms.
+You can use the `charsetSentinel` option to announce the character by including an `utf8=✓` parameter with the proper encoding if the checkmark, similar to what Ruby on Rails and others do when submitting forms.
```javascript
var sentinel = qs.stringify({ a: '☺' }, { charsetSentinel: true });
@@ -604,8 +643,7 @@ assert.equal(isoSentinel, 'utf8=%26%2310003%3B&a=%E6');
### Dealing with special character sets
-By default the encoding and decoding of characters is done in `utf-8`,
-and `iso-8859-1` support is also built in via the `charset` parameter.
+By default the encoding and decoding of characters is done in `utf-8`, and `iso-8859-1` support is also built in via the `charset` parameter.
If you wish to encode querystrings to a different character set (i.e.
[Shift JIS](https://en.wikipedia.org/wiki/Shift_JIS)) you can use the
@@ -644,7 +682,9 @@ Please email [@ljharb](https://github.com/ljharb) or see https://tidelift.com/se
Available as part of the Tidelift Subscription
-The maintainers of qs and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-qs?utm_source=npm-qs&utm_medium=referral&utm_campaign=enterprise&utm_term=repo)
+The maintainers of qs and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications.
+Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use.
+[Learn more.](https://tidelift.com/subscription/pkg/npm-qs?utm_source=npm-qs&utm_medium=referral&utm_campaign=enterprise&utm_term=repo)
[package-url]: https://npmjs.org/package/qs
[npm-version-svg]: https://versionbadg.es/ljharb/qs.svg
@@ -661,3 +701,9 @@ The maintainers of qs and thousands of other packages are working with Tidelift
[codecov-url]: https://app.codecov.io/gh/ljharb/qs/
[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/qs
[actions-url]: https://github.com/ljharb/qs/actions
+
+## Acknowledgements
+
+qs logo by [NUMI](https://github.com/numi-hq/open-design):
+
+[ ](https://numi.tech/?ref=qs)
diff --git a/node_modules/qs/dist/qs.js b/node_modules/qs/dist/qs.js
index cbe8a21..154e72e 100644
--- a/node_modules/qs/dist/qs.js
+++ b/node_modules/qs/dist/qs.js
@@ -1,2066 +1,90 @@
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Qs = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i-1?e.split(","):e},isoSentinel="utf8=%26%2310003%3B",charsetSentinel="utf8=%E2%9C%93",parseValues=function parseQueryStringValues(e,t){var r={__proto__:null},a=t.ignoreQueryPrefix?e.replace(/^\?/,""):e;a=a.replace(/%5B/gi,"[").replace(/%5D/gi,"]");var i,o=t.parameterLimit===1/0?void 0:t.parameterLimit,l=a.split(t.delimiter,o),s=-1,n=t.charset;if(t.charsetSentinel)for(i=0;i-1&&(c=isArray(c)?[c]:c);var y=has.call(r,p);y&&"combine"===t.duplicates?r[p]=utils.combine(r[p],c):y&&"last"!==t.duplicates||(r[p]=c)}return r},parseObject=function(e,t,r,a){for(var i=a?t:parseArrayValue(t,r),o=e.length-1;o>=0;--o){var l,s=e[o];if("[]"===s&&r.parseArrays)l=r.allowEmptyArrays&&(""===i||r.strictNullHandling&&null===i)?[]:[].concat(i);else{l=r.plainObjects?Object.create(null):{};var n="["===s.charAt(0)&&"]"===s.charAt(s.length-1)?s.slice(1,-1):s,p=r.decodeDotInKeys?n.replace(/%2E/g,"."):n,c=parseInt(p,10);r.parseArrays||""!==p?!isNaN(c)&&s!==p&&String(c)===p&&c>=0&&r.parseArrays&&c<=r.arrayLimit?(l=[])[c]=i:"__proto__"!==p&&(l[p]=i):l={0:i}}i=l}return i},parseKeys=function parseQueryStringKeys(e,t,r,a){if(e){var i=r.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,o=/(\[[^[\]]*])/g,l=r.depth>0&&/(\[[^[\]]*])/.exec(i),s=l?i.slice(0,l.index):i,n=[];if(s){if(!r.plainObjects&&has.call(Object.prototype,s)&&!r.allowPrototypes)return;n.push(s)}for(var p=0;r.depth>0&&null!==(l=o.exec(i))&&p0?w.join(",")||null:void 0}];else if(isArray(f))E=f;else{var S=Object.keys(w);E=u?S.sort(u):S}var O=l?r.replace(/\./g,"%2E"):r,T=o&&isArray(w)&&1===w.length?O+"[]":O;if(a&&isArray(w)&&0===w.length)return T+"[]";for(var k=0;k0?y+d:""};
-},{"./formats":1,"./parse":3,"./stringify":4}],3:[function(require,module,exports){
-'use strict';
+},{"1":1,"29":29,"5":5}],5:[function(require,module,exports){
+"use strict";var formats=require(1),has=Object.prototype.hasOwnProperty,isArray=Array.isArray,hexTable=function(){for(var e=[],r=0;r<256;++r)e.push("%"+((r<16?"0":"")+r.toString(16)).toUpperCase());return e}(),compactQueue=function compactQueue(e){for(;e.length>1;){var r=e.pop(),t=r.obj[r.prop];if(isArray(t)){for(var o=[],n=0;n=limit?a.slice(i,i+limit):a,p=[],s=0;s=48&&f<=57||f>=65&&f<=90||f>=97&&f<=122||n===formats.RFC1738&&(40===f||41===f)?p[p.length]=u.charAt(s):f<128?p[p.length]=hexTable[f]:f<2048?p[p.length]=hexTable[192|f>>6]+hexTable[128|63&f]:f<55296||f>=57344?p[p.length]=hexTable[224|f>>12]+hexTable[128|f>>6&63]+hexTable[128|63&f]:(s+=1,f=65536+((1023&f)<<10|1023&u.charCodeAt(s)),p[p.length]=hexTable[240|f>>18]+hexTable[128|f>>12&63]+hexTable[128|f>>6&63]+hexTable[128|63&f])}c+=p.join("")}return c},compact=function compact(e){for(var r=[{obj:{o:e},prop:"o"}],t=[],o=0;o -1) {
- return val.split(',');
- }
-
- return val;
-};
-
-// This is what browsers will submit when the ✓ character occurs in an
-// application/x-www-form-urlencoded body and the encoding of the page containing
-// the form is iso-8859-1, or when the submitted form has an accept-charset
-// attribute of iso-8859-1. Presumably also with other charsets that do not contain
-// the ✓ character, such as us-ascii.
-var isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')
-
-// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.
-var charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')
-
-var parseValues = function parseQueryStringValues(str, options) {
- var obj = {};
- var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, '') : str;
- var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;
- var parts = cleanStr.split(options.delimiter, limit);
- var skipIndex = -1; // Keep track of where the utf8 sentinel was found
- var i;
-
- var charset = options.charset;
- if (options.charsetSentinel) {
- for (i = 0; i < parts.length; ++i) {
- if (parts[i].indexOf('utf8=') === 0) {
- if (parts[i] === charsetSentinel) {
- charset = 'utf-8';
- } else if (parts[i] === isoSentinel) {
- charset = 'iso-8859-1';
- }
- skipIndex = i;
- i = parts.length; // The eslint settings do not allow break;
- }
- }
- }
-
- for (i = 0; i < parts.length; ++i) {
- if (i === skipIndex) {
- continue;
- }
- var part = parts[i];
-
- var bracketEqualsPos = part.indexOf(']=');
- var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;
-
- var key, val;
- if (pos === -1) {
- key = options.decoder(part, defaults.decoder, charset, 'key');
- val = options.strictNullHandling ? null : '';
- } else {
- key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');
- val = utils.maybeMap(
- parseArrayValue(part.slice(pos + 1), options),
- function (encodedVal) {
- return options.decoder(encodedVal, defaults.decoder, charset, 'value');
- }
- );
- }
-
- if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {
- val = interpretNumericEntities(val);
- }
-
- if (part.indexOf('[]=') > -1) {
- val = isArray(val) ? [val] : val;
- }
-
- if (has.call(obj, key)) {
- obj[key] = utils.combine(obj[key], val);
- } else {
- obj[key] = val;
- }
- }
-
- return obj;
-};
-
-var parseObject = function (chain, val, options, valuesParsed) {
- var leaf = valuesParsed ? val : parseArrayValue(val, options);
-
- for (var i = chain.length - 1; i >= 0; --i) {
- var obj;
- var root = chain[i];
-
- if (root === '[]' && options.parseArrays) {
- obj = [].concat(leaf);
- } else {
- obj = options.plainObjects ? Object.create(null) : {};
- var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;
- var index = parseInt(cleanRoot, 10);
- if (!options.parseArrays && cleanRoot === '') {
- obj = { 0: leaf };
- } else if (
- !isNaN(index)
- && root !== cleanRoot
- && String(index) === cleanRoot
- && index >= 0
- && (options.parseArrays && index <= options.arrayLimit)
- ) {
- obj = [];
- obj[index] = leaf;
- } else if (cleanRoot !== '__proto__') {
- obj[cleanRoot] = leaf;
- }
- }
-
- leaf = obj;
- }
-
- return leaf;
-};
-
-var parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {
- if (!givenKey) {
- return;
- }
-
- // Transform dot notation to bracket notation
- var key = options.allowDots ? givenKey.replace(/\.([^.[]+)/g, '[$1]') : givenKey;
-
- // The regex chunks
-
- var brackets = /(\[[^[\]]*])/;
- var child = /(\[[^[\]]*])/g;
-
- // Get the parent
-
- var segment = options.depth > 0 && brackets.exec(key);
- var parent = segment ? key.slice(0, segment.index) : key;
-
- // Stash the parent if it exists
-
- var keys = [];
- if (parent) {
- // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties
- if (!options.plainObjects && has.call(Object.prototype, parent)) {
- if (!options.allowPrototypes) {
- return;
- }
- }
-
- keys.push(parent);
- }
-
- // Loop through children appending to the array until we hit depth
-
- var i = 0;
- while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {
- i += 1;
- if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {
- if (!options.allowPrototypes) {
- return;
- }
- }
- keys.push(segment[1]);
- }
-
- // If there's a remainder, just add whatever is left
-
- if (segment) {
- keys.push('[' + key.slice(segment.index) + ']');
- }
-
- return parseObject(keys, val, options, valuesParsed);
-};
-
-var normalizeParseOptions = function normalizeParseOptions(opts) {
- if (!opts) {
- return defaults;
- }
-
- if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {
- throw new TypeError('Decoder has to be a function.');
- }
-
- if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {
- throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');
- }
- var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;
-
- return {
- allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,
- allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,
- allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,
- arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,
- charset: charset,
- charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,
- comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,
- decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,
- delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,
- // eslint-disable-next-line no-implicit-coercion, no-extra-parens
- depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,
- ignoreQueryPrefix: opts.ignoreQueryPrefix === true,
- interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,
- parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,
- parseArrays: opts.parseArrays !== false,
- plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,
- strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling
- };
-};
-
-module.exports = function (str, opts) {
- var options = normalizeParseOptions(opts);
-
- if (str === '' || str === null || typeof str === 'undefined') {
- return options.plainObjects ? Object.create(null) : {};
- }
-
- var tempObj = typeof str === 'string' ? parseValues(str, options) : str;
- var obj = options.plainObjects ? Object.create(null) : {};
-
- // Iterate over the keys and setup the new object
-
- var keys = Object.keys(tempObj);
- for (var i = 0; i < keys.length; ++i) {
- var key = keys[i];
- var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');
- obj = utils.merge(obj, newObj, options);
- }
-
- if (options.allowSparse === true) {
- return obj;
- }
-
- return utils.compact(obj);
-};
-
-},{"./utils":5}],4:[function(require,module,exports){
-'use strict';
-
-var getSideChannel = require('side-channel');
-var utils = require('./utils');
-var formats = require('./formats');
-var has = Object.prototype.hasOwnProperty;
-
-var arrayPrefixGenerators = {
- brackets: function brackets(prefix) {
- return prefix + '[]';
- },
- comma: 'comma',
- indices: function indices(prefix, key) {
- return prefix + '[' + key + ']';
- },
- repeat: function repeat(prefix) {
- return prefix;
- }
-};
-
-var isArray = Array.isArray;
-var push = Array.prototype.push;
-var pushToArray = function (arr, valueOrArray) {
- push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);
-};
-
-var toISO = Date.prototype.toISOString;
-
-var defaultFormat = formats['default'];
-var defaults = {
- addQueryPrefix: false,
- allowDots: false,
- charset: 'utf-8',
- charsetSentinel: false,
- delimiter: '&',
- encode: true,
- encoder: utils.encode,
- encodeValuesOnly: false,
- format: defaultFormat,
- formatter: formats.formatters[defaultFormat],
- // deprecated
- indices: false,
- serializeDate: function serializeDate(date) {
- return toISO.call(date);
- },
- skipNulls: false,
- strictNullHandling: false
-};
-
-var isNonNullishPrimitive = function isNonNullishPrimitive(v) {
- return typeof v === 'string'
- || typeof v === 'number'
- || typeof v === 'boolean'
- || typeof v === 'symbol'
- || typeof v === 'bigint';
-};
-
-var sentinel = {};
-
-var stringify = function stringify(
- object,
- prefix,
- generateArrayPrefix,
- commaRoundTrip,
- strictNullHandling,
- skipNulls,
- encoder,
- filter,
- sort,
- allowDots,
- serializeDate,
- format,
- formatter,
- encodeValuesOnly,
- charset,
- sideChannel
-) {
- var obj = object;
-
- var tmpSc = sideChannel;
- var step = 0;
- var findFlag = false;
- while ((tmpSc = tmpSc.get(sentinel)) !== void undefined && !findFlag) {
- // Where object last appeared in the ref tree
- var pos = tmpSc.get(object);
- step += 1;
- if (typeof pos !== 'undefined') {
- if (pos === step) {
- throw new RangeError('Cyclic object value');
- } else {
- findFlag = true; // Break while
- }
- }
- if (typeof tmpSc.get(sentinel) === 'undefined') {
- step = 0;
- }
- }
-
- if (typeof filter === 'function') {
- obj = filter(prefix, obj);
- } else if (obj instanceof Date) {
- obj = serializeDate(obj);
- } else if (generateArrayPrefix === 'comma' && isArray(obj)) {
- obj = utils.maybeMap(obj, function (value) {
- if (value instanceof Date) {
- return serializeDate(value);
- }
- return value;
- });
- }
-
- if (obj === null) {
- if (strictNullHandling) {
- return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;
- }
-
- obj = '';
- }
-
- if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {
- if (encoder) {
- var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);
- return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];
- }
- return [formatter(prefix) + '=' + formatter(String(obj))];
- }
-
- var values = [];
-
- if (typeof obj === 'undefined') {
- return values;
- }
-
- var objKeys;
- if (generateArrayPrefix === 'comma' && isArray(obj)) {
- // we need to join elements in
- if (encodeValuesOnly && encoder) {
- obj = utils.maybeMap(obj, encoder);
- }
- objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];
- } else if (isArray(filter)) {
- objKeys = filter;
- } else {
- var keys = Object.keys(obj);
- objKeys = sort ? keys.sort(sort) : keys;
- }
-
- var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? prefix + '[]' : prefix;
-
- for (var j = 0; j < objKeys.length; ++j) {
- var key = objKeys[j];
- var value = typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key];
-
- if (skipNulls && value === null) {
- continue;
- }
-
- var keyPrefix = isArray(obj)
- ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(adjustedPrefix, key) : adjustedPrefix
- : adjustedPrefix + (allowDots ? '.' + key : '[' + key + ']');
-
- sideChannel.set(object, step);
- var valueSideChannel = getSideChannel();
- valueSideChannel.set(sentinel, sideChannel);
- pushToArray(values, stringify(
- value,
- keyPrefix,
- generateArrayPrefix,
- commaRoundTrip,
- strictNullHandling,
- skipNulls,
- generateArrayPrefix === 'comma' && encodeValuesOnly && isArray(obj) ? null : encoder,
- filter,
- sort,
- allowDots,
- serializeDate,
- format,
- formatter,
- encodeValuesOnly,
- charset,
- valueSideChannel
- ));
- }
-
- return values;
-};
-
-var normalizeStringifyOptions = function normalizeStringifyOptions(opts) {
- if (!opts) {
- return defaults;
- }
-
- if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {
- throw new TypeError('Encoder has to be a function.');
- }
-
- var charset = opts.charset || defaults.charset;
- if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {
- throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');
- }
-
- var format = formats['default'];
- if (typeof opts.format !== 'undefined') {
- if (!has.call(formats.formatters, opts.format)) {
- throw new TypeError('Unknown format option provided.');
- }
- format = opts.format;
- }
- var formatter = formats.formatters[format];
-
- var filter = defaults.filter;
- if (typeof opts.filter === 'function' || isArray(opts.filter)) {
- filter = opts.filter;
- }
-
- return {
- addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,
- allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,
- charset: charset,
- charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,
- delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,
- encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,
- encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,
- encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,
- filter: filter,
- format: format,
- formatter: formatter,
- serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,
- skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,
- sort: typeof opts.sort === 'function' ? opts.sort : null,
- strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling
- };
-};
-
-module.exports = function (object, opts) {
- var obj = object;
- var options = normalizeStringifyOptions(opts);
-
- var objKeys;
- var filter;
-
- if (typeof options.filter === 'function') {
- filter = options.filter;
- obj = filter('', obj);
- } else if (isArray(options.filter)) {
- filter = options.filter;
- objKeys = filter;
- }
-
- var keys = [];
-
- if (typeof obj !== 'object' || obj === null) {
- return '';
- }
-
- var arrayFormat;
- if (opts && opts.arrayFormat in arrayPrefixGenerators) {
- arrayFormat = opts.arrayFormat;
- } else if (opts && 'indices' in opts) {
- arrayFormat = opts.indices ? 'indices' : 'repeat';
- } else {
- arrayFormat = 'indices';
- }
-
- var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];
- if (opts && 'commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {
- throw new TypeError('`commaRoundTrip` must be a boolean, or absent');
- }
- var commaRoundTrip = generateArrayPrefix === 'comma' && opts && opts.commaRoundTrip;
-
- if (!objKeys) {
- objKeys = Object.keys(obj);
- }
-
- if (options.sort) {
- objKeys.sort(options.sort);
- }
-
- var sideChannel = getSideChannel();
- for (var i = 0; i < objKeys.length; ++i) {
- var key = objKeys[i];
-
- if (options.skipNulls && obj[key] === null) {
- continue;
- }
- pushToArray(keys, stringify(
- obj[key],
- key,
- generateArrayPrefix,
- commaRoundTrip,
- options.strictNullHandling,
- options.skipNulls,
- options.encode ? options.encoder : null,
- options.filter,
- options.sort,
- options.allowDots,
- options.serializeDate,
- options.format,
- options.formatter,
- options.encodeValuesOnly,
- options.charset,
- sideChannel
- ));
- }
-
- var joined = keys.join(options.delimiter);
- var prefix = options.addQueryPrefix === true ? '?' : '';
-
- if (options.charsetSentinel) {
- if (options.charset === 'iso-8859-1') {
- // encodeURIComponent('✓'), the "numeric entity" representation of a checkmark
- prefix += 'utf8=%26%2310003%3B&';
- } else {
- // encodeURIComponent('✓')
- prefix += 'utf8=%E2%9C%93&';
- }
- }
-
- return joined.length > 0 ? prefix + joined : '';
-};
-
-},{"./formats":1,"./utils":5,"side-channel":16}],5:[function(require,module,exports){
-'use strict';
-
-var formats = require('./formats');
-
-var has = Object.prototype.hasOwnProperty;
-var isArray = Array.isArray;
-
-var hexTable = (function () {
- var array = [];
- for (var i = 0; i < 256; ++i) {
- array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());
- }
-
- return array;
-}());
-
-var compactQueue = function compactQueue(queue) {
- while (queue.length > 1) {
- var item = queue.pop();
- var obj = item.obj[item.prop];
-
- if (isArray(obj)) {
- var compacted = [];
-
- for (var j = 0; j < obj.length; ++j) {
- if (typeof obj[j] !== 'undefined') {
- compacted.push(obj[j]);
- }
- }
-
- item.obj[item.prop] = compacted;
- }
- }
-};
-
-var arrayToObject = function arrayToObject(source, options) {
- var obj = options && options.plainObjects ? Object.create(null) : {};
- for (var i = 0; i < source.length; ++i) {
- if (typeof source[i] !== 'undefined') {
- obj[i] = source[i];
- }
- }
-
- return obj;
-};
-
-var merge = function merge(target, source, options) {
- /* eslint no-param-reassign: 0 */
- if (!source) {
- return target;
- }
-
- if (typeof source !== 'object') {
- if (isArray(target)) {
- target.push(source);
- } else if (target && typeof target === 'object') {
- if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {
- target[source] = true;
- }
- } else {
- return [target, source];
- }
-
- return target;
- }
-
- if (!target || typeof target !== 'object') {
- return [target].concat(source);
- }
-
- var mergeTarget = target;
- if (isArray(target) && !isArray(source)) {
- mergeTarget = arrayToObject(target, options);
- }
-
- if (isArray(target) && isArray(source)) {
- source.forEach(function (item, i) {
- if (has.call(target, i)) {
- var targetItem = target[i];
- if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {
- target[i] = merge(targetItem, item, options);
- } else {
- target.push(item);
- }
- } else {
- target[i] = item;
- }
- });
- return target;
- }
-
- return Object.keys(source).reduce(function (acc, key) {
- var value = source[key];
-
- if (has.call(acc, key)) {
- acc[key] = merge(acc[key], value, options);
- } else {
- acc[key] = value;
- }
- return acc;
- }, mergeTarget);
-};
-
-var assign = function assignSingleSource(target, source) {
- return Object.keys(source).reduce(function (acc, key) {
- acc[key] = source[key];
- return acc;
- }, target);
-};
-
-var decode = function (str, decoder, charset) {
- var strWithoutPlus = str.replace(/\+/g, ' ');
- if (charset === 'iso-8859-1') {
- // unescape never throws, no try...catch needed:
- return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);
- }
- // utf-8
- try {
- return decodeURIComponent(strWithoutPlus);
- } catch (e) {
- return strWithoutPlus;
- }
-};
-
-var encode = function encode(str, defaultEncoder, charset, kind, format) {
- // This code was originally written by Brian White (mscdex) for the io.js core querystring library.
- // It has been adapted here for stricter adherence to RFC 3986
- if (str.length === 0) {
- return str;
- }
-
- var string = str;
- if (typeof str === 'symbol') {
- string = Symbol.prototype.toString.call(str);
- } else if (typeof str !== 'string') {
- string = String(str);
- }
-
- if (charset === 'iso-8859-1') {
- return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {
- return '%26%23' + parseInt($0.slice(2), 16) + '%3B';
- });
- }
-
- var out = '';
- for (var i = 0; i < string.length; ++i) {
- var c = string.charCodeAt(i);
-
- if (
- c === 0x2D // -
- || c === 0x2E // .
- || c === 0x5F // _
- || c === 0x7E // ~
- || (c >= 0x30 && c <= 0x39) // 0-9
- || (c >= 0x41 && c <= 0x5A) // a-z
- || (c >= 0x61 && c <= 0x7A) // A-Z
- || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )
- ) {
- out += string.charAt(i);
- continue;
- }
-
- if (c < 0x80) {
- out = out + hexTable[c];
- continue;
- }
-
- if (c < 0x800) {
- out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);
- continue;
- }
-
- if (c < 0xD800 || c >= 0xE000) {
- out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);
- continue;
- }
-
- i += 1;
- c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));
- /* eslint operator-linebreak: [2, "before"] */
- out += hexTable[0xF0 | (c >> 18)]
- + hexTable[0x80 | ((c >> 12) & 0x3F)]
- + hexTable[0x80 | ((c >> 6) & 0x3F)]
- + hexTable[0x80 | (c & 0x3F)];
- }
-
- return out;
-};
-
-var compact = function compact(value) {
- var queue = [{ obj: { o: value }, prop: 'o' }];
- var refs = [];
-
- for (var i = 0; i < queue.length; ++i) {
- var item = queue[i];
- var obj = item.obj[item.prop];
-
- var keys = Object.keys(obj);
- for (var j = 0; j < keys.length; ++j) {
- var key = keys[j];
- var val = obj[key];
- if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {
- queue.push({ obj: obj, prop: key });
- refs.push(val);
- }
- }
- }
-
- compactQueue(queue);
-
- return value;
-};
-
-var isRegExp = function isRegExp(obj) {
- return Object.prototype.toString.call(obj) === '[object RegExp]';
-};
-
-var isBuffer = function isBuffer(obj) {
- if (!obj || typeof obj !== 'object') {
- return false;
- }
-
- return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));
-};
-
-var combine = function combine(a, b) {
- return [].concat(a, b);
-};
-
-var maybeMap = function maybeMap(val, fn) {
- if (isArray(val)) {
- var mapped = [];
- for (var i = 0; i < val.length; i += 1) {
- mapped.push(fn(val[i]));
- }
- return mapped;
- }
- return fn(val);
-};
-
-module.exports = {
- arrayToObject: arrayToObject,
- assign: assign,
- combine: combine,
- compact: compact,
- decode: decode,
- encode: encode,
- isBuffer: isBuffer,
- isRegExp: isRegExp,
- maybeMap: maybeMap,
- merge: merge
-};
-
-},{"./formats":1}],6:[function(require,module,exports){
+},{"16":16,"20":20,"27":27,"7":7}],6:[function(require,module,exports){
},{}],7:[function(require,module,exports){
-'use strict';
+"use strict";var GetIntrinsic=require(20),callBind=require(8),$indexOf=callBind(GetIntrinsic("String.prototype.indexOf"));module.exports=function callBoundIntrinsic(i,n){var t=GetIntrinsic(i,!!n);return"function"==typeof t&&$indexOf(i,".prototype.")>-1?callBind(t):t};
-var GetIntrinsic = require('get-intrinsic');
+},{"20":20,"8":8}],20:[function(require,module,exports){
+"use strict";var undefined,$Error=require(12),$EvalError=require(11),$RangeError=require(13),$ReferenceError=require(14),$SyntaxError=require(15),$TypeError=require(16),$URIError=require(17),$Function=Function,getEvalledConstructor=function(r){try{return $Function('"use strict"; return ('+r+").constructor;")()}catch(r){}},$gOPD=Object.getOwnPropertyDescriptor;if($gOPD)try{$gOPD({},"")}catch(r){$gOPD=null}var throwTypeError=function(){throw new $TypeError},ThrowTypeError=$gOPD?function(){try{return throwTypeError}catch(r){try{return $gOPD(arguments,"callee").get}catch(r){return throwTypeError}}}():throwTypeError,hasSymbols=require(24)(),hasProto=require(23)(),getProto=Object.getPrototypeOf||(hasProto?function(r){return r.__proto__}:null),needsEval={},TypedArray="undefined"!=typeof Uint8Array&&getProto?getProto(Uint8Array):undefined,INTRINSICS={__proto__:null,"%AggregateError%":"undefined"==typeof AggregateError?undefined:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?undefined:ArrayBuffer,"%ArrayIteratorPrototype%":hasSymbols&&getProto?getProto([][Symbol.iterator]()):undefined,"%AsyncFromSyncIteratorPrototype%":undefined,"%AsyncFunction%":needsEval,"%AsyncGenerator%":needsEval,"%AsyncGeneratorFunction%":needsEval,"%AsyncIteratorPrototype%":needsEval,"%Atomics%":"undefined"==typeof Atomics?undefined:Atomics,"%BigInt%":"undefined"==typeof BigInt?undefined:BigInt,"%BigInt64Array%":"undefined"==typeof BigInt64Array?undefined:BigInt64Array,"%BigUint64Array%":"undefined"==typeof BigUint64Array?undefined:BigUint64Array,"%Boolean%":Boolean,"%DataView%":"undefined"==typeof DataView?undefined:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":$Error,"%eval%":eval,"%EvalError%":$EvalError,"%Float32Array%":"undefined"==typeof Float32Array?undefined:Float32Array,"%Float64Array%":"undefined"==typeof Float64Array?undefined:Float64Array,"%FinalizationRegistry%":"undefined"==typeof FinalizationRegistry?undefined:FinalizationRegistry,"%Function%":$Function,"%GeneratorFunction%":needsEval,"%Int8Array%":"undefined"==typeof Int8Array?undefined:Int8Array,"%Int16Array%":"undefined"==typeof Int16Array?undefined:Int16Array,"%Int32Array%":"undefined"==typeof Int32Array?undefined:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":hasSymbols&&getProto?getProto(getProto([][Symbol.iterator]())):undefined,"%JSON%":"object"==typeof JSON?JSON:undefined,"%Map%":"undefined"==typeof Map?undefined:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&hasSymbols&&getProto?getProto((new Map)[Symbol.iterator]()):undefined,"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?undefined:Promise,"%Proxy%":"undefined"==typeof Proxy?undefined:Proxy,"%RangeError%":$RangeError,"%ReferenceError%":$ReferenceError,"%Reflect%":"undefined"==typeof Reflect?undefined:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"==typeof Set?undefined:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&hasSymbols&&getProto?getProto((new Set)[Symbol.iterator]()):undefined,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?undefined:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":hasSymbols&&getProto?getProto(""[Symbol.iterator]()):undefined,"%Symbol%":hasSymbols?Symbol:undefined,"%SyntaxError%":$SyntaxError,"%ThrowTypeError%":ThrowTypeError,"%TypedArray%":TypedArray,"%TypeError%":$TypeError,"%Uint8Array%":"undefined"==typeof Uint8Array?undefined:Uint8Array,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?undefined:Uint8ClampedArray,"%Uint16Array%":"undefined"==typeof Uint16Array?undefined:Uint16Array,"%Uint32Array%":"undefined"==typeof Uint32Array?undefined:Uint32Array,"%URIError%":$URIError,"%WeakMap%":"undefined"==typeof WeakMap?undefined:WeakMap,"%WeakRef%":"undefined"==typeof WeakRef?undefined:WeakRef,"%WeakSet%":"undefined"==typeof WeakSet?undefined:WeakSet};if(getProto)try{null.error}catch(r){var errorProto=getProto(getProto(r));INTRINSICS["%Error.prototype%"]=errorProto}var doEval=function doEval(r){var e;if("%AsyncFunction%"===r)e=getEvalledConstructor("async function () {}");else if("%GeneratorFunction%"===r)e=getEvalledConstructor("function* () {}");else if("%AsyncGeneratorFunction%"===r)e=getEvalledConstructor("async function* () {}");else if("%AsyncGenerator%"===r){var t=doEval("%AsyncGeneratorFunction%");t&&(e=t.prototype)}else if("%AsyncIteratorPrototype%"===r){var o=doEval("%AsyncGenerator%");o&&getProto&&(e=getProto(o.prototype))}return INTRINSICS[r]=e,e},LEGACY_ALIASES={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},bind=require(19),hasOwn=require(26),$concat=bind.call(Function.call,Array.prototype.concat),$spliceApply=bind.call(Function.apply,Array.prototype.splice),$replace=bind.call(Function.call,String.prototype.replace),$strSlice=bind.call(Function.call,String.prototype.slice),$exec=bind.call(Function.call,RegExp.prototype.exec),rePropName=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,reEscapeChar=/\\(\\)?/g,stringToPath=function stringToPath(r){var e=$strSlice(r,0,1),t=$strSlice(r,-1);if("%"===e&&"%"!==t)throw new $SyntaxError("invalid intrinsic syntax, expected closing `%`");if("%"===t&&"%"!==e)throw new $SyntaxError("invalid intrinsic syntax, expected opening `%`");var o=[];return $replace(r,rePropName,(function(r,e,t,n){o[o.length]=t?$replace(n,reEscapeChar,"$1"):e||r})),o},getBaseIntrinsic=function getBaseIntrinsic(r,e){var t,o=r;if(hasOwn(LEGACY_ALIASES,o)&&(o="%"+(t=LEGACY_ALIASES[o])[0]+"%"),hasOwn(INTRINSICS,o)){var n=INTRINSICS[o];if(n===needsEval&&(n=doEval(o)),void 0===n&&!e)throw new $TypeError("intrinsic "+r+" exists, but is not available. Please file an issue!");return{alias:t,name:o,value:n}}throw new $SyntaxError("intrinsic "+r+" does not exist!")};module.exports=function GetIntrinsic(r,e){if("string"!=typeof r||0===r.length)throw new $TypeError("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof e)throw new $TypeError('"allowMissing" argument must be a boolean');if(null===$exec(/^%?[^%]*%?$/,r))throw new $SyntaxError("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var t=stringToPath(r),o=t.length>0?t[0]:"",n=getBaseIntrinsic("%"+o+"%",e),a=n.name,y=n.value,i=!1,p=n.alias;p&&(o=p[0],$spliceApply(t,$concat([0,1],p)));for(var d=1,s=!0;d=t.length){var c=$gOPD(y,f);y=(s=!!c)&&"get"in c&&!("originalValue"in c.get)?c.get:y[f]}else s=hasOwn(y,f),y=y[f];s&&!i&&(INTRINSICS[a]=y)}}return y};
-var callBind = require('./');
+},{"11":11,"12":12,"13":13,"14":14,"15":15,"16":16,"17":17,"19":19,"23":23,"24":24,"26":26}],8:[function(require,module,exports){
+"use strict";var bind=require(19),GetIntrinsic=require(20),setFunctionLength=require(28),$TypeError=require(16),$apply=GetIntrinsic("%Function.prototype.apply%"),$call=GetIntrinsic("%Function.prototype.call%"),$reflectApply=GetIntrinsic("%Reflect.apply%",!0)||bind.call($call,$apply),$defineProperty=require(10),$max=GetIntrinsic("%Math.max%");module.exports=function callBind(e){if("function"!=typeof e)throw new $TypeError("a function is required");var n=$reflectApply(bind,$call,arguments);return setFunctionLength(n,1+$max(0,e.length-(arguments.length-1)),!0)};var applyBind=function applyBind(){return $reflectApply(bind,$apply,arguments)};$defineProperty?$defineProperty(module.exports,"apply",{value:applyBind}):module.exports.apply=applyBind;
-var $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));
+},{"10":10,"16":16,"19":19,"20":20,"28":28}],16:[function(require,module,exports){
+"use strict";module.exports=TypeError;
-module.exports = function callBoundIntrinsic(name, allowMissing) {
- var intrinsic = GetIntrinsic(name, !!allowMissing);
- if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {
- return callBind(intrinsic);
- }
- return intrinsic;
-};
+},{}],19:[function(require,module,exports){
+"use strict";var implementation=require(18);module.exports=Function.prototype.bind||implementation;
-},{"./":8,"get-intrinsic":11}],8:[function(require,module,exports){
-'use strict';
+},{"18":18}],10:[function(require,module,exports){
+"use strict";var GetIntrinsic=require(20),$defineProperty=GetIntrinsic("%Object.defineProperty%",!0)||!1;if($defineProperty)try{$defineProperty({},"a",{value:1})}catch(e){$defineProperty=!1}module.exports=$defineProperty;
-var bind = require('function-bind');
-var GetIntrinsic = require('get-intrinsic');
+},{"20":20}],28:[function(require,module,exports){
+"use strict";var GetIntrinsic=require(20),define=require(9),hasDescriptors=require(22)(),gOPD=require(21),$TypeError=require(16),$floor=GetIntrinsic("%Math.floor%");module.exports=function setFunctionLength(e,r){if("function"!=typeof e)throw new $TypeError("`fn` is not a function");if("number"!=typeof r||r<0||r>4294967295||$floor(r)!==r)throw new $TypeError("`length` must be a positive 32-bit integer");var t=arguments.length>2&&!!arguments[2],i=!0,n=!0;if("length"in e&&gOPD){var o=gOPD(e,"length");o&&!o.configurable&&(i=!1),o&&!o.writable&&(n=!1)}return(i||n||!t)&&(hasDescriptors?define(e,"length",r,!0,!0):define(e,"length",r)),e};
-var $apply = GetIntrinsic('%Function.prototype.apply%');
-var $call = GetIntrinsic('%Function.prototype.call%');
-var $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);
+},{"16":16,"20":20,"21":21,"22":22,"9":9}],9:[function(require,module,exports){
+"use strict";var $defineProperty=require(10),$SyntaxError=require(15),$TypeError=require(16),gopd=require(21);module.exports=function defineDataProperty(e,r,o){if(!e||"object"!=typeof e&&"function"!=typeof e)throw new $TypeError("`obj` must be an object or a function`");if("string"!=typeof r&&"symbol"!=typeof r)throw new $TypeError("`property` must be a string or a symbol`");if(arguments.length>3&&"boolean"!=typeof arguments[3]&&null!==arguments[3])throw new $TypeError("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&"boolean"!=typeof arguments[4]&&null!==arguments[4])throw new $TypeError("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&"boolean"!=typeof arguments[5]&&null!==arguments[5])throw new $TypeError("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&"boolean"!=typeof arguments[6])throw new $TypeError("`loose`, if provided, must be a boolean");var n=arguments.length>3?arguments[3]:null,l=arguments.length>4?arguments[4]:null,t=arguments.length>5?arguments[5]:null,i=arguments.length>6&&arguments[6],a=!!gopd&&gopd(e,r);if($defineProperty)$defineProperty(e,r,{configurable:null===t&&a?a.configurable:!t,enumerable:null===n&&a?a.enumerable:!n,value:o,writable:null===l&&a?a.writable:!l});else{if(!i&&(n||l||t))throw new $SyntaxError("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.");e[r]=o}};
-var $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);
-var $defineProperty = GetIntrinsic('%Object.defineProperty%', true);
-var $max = GetIntrinsic('%Math.max%');
+},{"10":10,"15":15,"16":16,"21":21}],15:[function(require,module,exports){
+"use strict";module.exports=SyntaxError;
-if ($defineProperty) {
- try {
- $defineProperty({}, 'a', { value: 1 });
- } catch (e) {
- // IE 8 has a broken defineProperty
- $defineProperty = null;
- }
-}
+},{}],21:[function(require,module,exports){
+"use strict";var GetIntrinsic=require(20),$gOPD=GetIntrinsic("%Object.getOwnPropertyDescriptor%",!0);if($gOPD)try{$gOPD([],"length")}catch(t){$gOPD=null}module.exports=$gOPD;
-module.exports = function callBind(originalFunction) {
- var func = $reflectApply(bind, $call, arguments);
- if ($gOPD && $defineProperty) {
- var desc = $gOPD(func, 'length');
- if (desc.configurable) {
- // original length, plus the receiver, minus any additional arguments (after the receiver)
- $defineProperty(
- func,
- 'length',
- { value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }
- );
- }
- }
- return func;
-};
+},{"20":20}],11:[function(require,module,exports){
+"use strict";module.exports=EvalError;
-var applyBind = function applyBind() {
- return $reflectApply(bind, $apply, arguments);
-};
+},{}],12:[function(require,module,exports){
+"use strict";module.exports=Error;
-if ($defineProperty) {
- $defineProperty(module.exports, 'apply', { value: applyBind });
-} else {
- module.exports.apply = applyBind;
-}
-
-},{"function-bind":10,"get-intrinsic":11}],9:[function(require,module,exports){
-'use strict';
-
-/* eslint no-invalid-this: 1 */
-
-var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';
-var slice = Array.prototype.slice;
-var toStr = Object.prototype.toString;
-var funcType = '[object Function]';
-
-module.exports = function bind(that) {
- var target = this;
- if (typeof target !== 'function' || toStr.call(target) !== funcType) {
- throw new TypeError(ERROR_MESSAGE + target);
- }
- var args = slice.call(arguments, 1);
-
- var bound;
- var binder = function () {
- if (this instanceof bound) {
- var result = target.apply(
- this,
- args.concat(slice.call(arguments))
- );
- if (Object(result) === result) {
- return result;
- }
- return this;
- } else {
- return target.apply(
- that,
- args.concat(slice.call(arguments))
- );
- }
- };
-
- var boundLength = Math.max(0, target.length - args.length);
- var boundArgs = [];
- for (var i = 0; i < boundLength; i++) {
- boundArgs.push('$' + i);
- }
-
- bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);
-
- if (target.prototype) {
- var Empty = function Empty() {};
- Empty.prototype = target.prototype;
- bound.prototype = new Empty();
- Empty.prototype = null;
- }
-
- return bound;
-};
-
-},{}],10:[function(require,module,exports){
-'use strict';
-
-var implementation = require('./implementation');
-
-module.exports = Function.prototype.bind || implementation;
-
-},{"./implementation":9}],11:[function(require,module,exports){
-'use strict';
-
-var undefined;
-
-var $SyntaxError = SyntaxError;
-var $Function = Function;
-var $TypeError = TypeError;
-
-// eslint-disable-next-line consistent-return
-var getEvalledConstructor = function (expressionSyntax) {
- try {
- return $Function('"use strict"; return (' + expressionSyntax + ').constructor;')();
- } catch (e) {}
-};
-
-var $gOPD = Object.getOwnPropertyDescriptor;
-if ($gOPD) {
- try {
- $gOPD({}, '');
- } catch (e) {
- $gOPD = null; // this is IE 8, which has a broken gOPD
- }
-}
-
-var throwTypeError = function () {
- throw new $TypeError();
-};
-var ThrowTypeError = $gOPD
- ? (function () {
- try {
- // eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties
- arguments.callee; // IE 8 does not throw here
- return throwTypeError;
- } catch (calleeThrows) {
- try {
- // IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')
- return $gOPD(arguments, 'callee').get;
- } catch (gOPDthrows) {
- return throwTypeError;
- }
- }
- }())
- : throwTypeError;
-
-var hasSymbols = require('has-symbols')();
-
-var getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto
-
-var needsEval = {};
-
-var TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);
-
-var INTRINSICS = {
- '%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,
- '%Array%': Array,
- '%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,
- '%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,
- '%AsyncFromSyncIteratorPrototype%': undefined,
- '%AsyncFunction%': needsEval,
- '%AsyncGenerator%': needsEval,
- '%AsyncGeneratorFunction%': needsEval,
- '%AsyncIteratorPrototype%': needsEval,
- '%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,
- '%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,
- '%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,
- '%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,
- '%Boolean%': Boolean,
- '%DataView%': typeof DataView === 'undefined' ? undefined : DataView,
- '%Date%': Date,
- '%decodeURI%': decodeURI,
- '%decodeURIComponent%': decodeURIComponent,
- '%encodeURI%': encodeURI,
- '%encodeURIComponent%': encodeURIComponent,
- '%Error%': Error,
- '%eval%': eval, // eslint-disable-line no-eval
- '%EvalError%': EvalError,
- '%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,
- '%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,
- '%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,
- '%Function%': $Function,
- '%GeneratorFunction%': needsEval,
- '%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,
- '%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,
- '%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,
- '%isFinite%': isFinite,
- '%isNaN%': isNaN,
- '%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,
- '%JSON%': typeof JSON === 'object' ? JSON : undefined,
- '%Map%': typeof Map === 'undefined' ? undefined : Map,
- '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),
- '%Math%': Math,
- '%Number%': Number,
- '%Object%': Object,
- '%parseFloat%': parseFloat,
- '%parseInt%': parseInt,
- '%Promise%': typeof Promise === 'undefined' ? undefined : Promise,
- '%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,
- '%RangeError%': RangeError,
- '%ReferenceError%': ReferenceError,
- '%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,
- '%RegExp%': RegExp,
- '%Set%': typeof Set === 'undefined' ? undefined : Set,
- '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),
- '%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,
- '%String%': String,
- '%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,
- '%Symbol%': hasSymbols ? Symbol : undefined,
- '%SyntaxError%': $SyntaxError,
- '%ThrowTypeError%': ThrowTypeError,
- '%TypedArray%': TypedArray,
- '%TypeError%': $TypeError,
- '%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,
- '%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,
- '%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,
- '%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,
- '%URIError%': URIError,
- '%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,
- '%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,
- '%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet
-};
-
-try {
- null.error; // eslint-disable-line no-unused-expressions
-} catch (e) {
- // https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229
- var errorProto = getProto(getProto(e));
- INTRINSICS['%Error.prototype%'] = errorProto;
-}
-
-var doEval = function doEval(name) {
- var value;
- if (name === '%AsyncFunction%') {
- value = getEvalledConstructor('async function () {}');
- } else if (name === '%GeneratorFunction%') {
- value = getEvalledConstructor('function* () {}');
- } else if (name === '%AsyncGeneratorFunction%') {
- value = getEvalledConstructor('async function* () {}');
- } else if (name === '%AsyncGenerator%') {
- var fn = doEval('%AsyncGeneratorFunction%');
- if (fn) {
- value = fn.prototype;
- }
- } else if (name === '%AsyncIteratorPrototype%') {
- var gen = doEval('%AsyncGenerator%');
- if (gen) {
- value = getProto(gen.prototype);
- }
- }
-
- INTRINSICS[name] = value;
-
- return value;
-};
-
-var LEGACY_ALIASES = {
- '%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],
- '%ArrayPrototype%': ['Array', 'prototype'],
- '%ArrayProto_entries%': ['Array', 'prototype', 'entries'],
- '%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],
- '%ArrayProto_keys%': ['Array', 'prototype', 'keys'],
- '%ArrayProto_values%': ['Array', 'prototype', 'values'],
- '%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],
- '%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],
- '%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],
- '%BooleanPrototype%': ['Boolean', 'prototype'],
- '%DataViewPrototype%': ['DataView', 'prototype'],
- '%DatePrototype%': ['Date', 'prototype'],
- '%ErrorPrototype%': ['Error', 'prototype'],
- '%EvalErrorPrototype%': ['EvalError', 'prototype'],
- '%Float32ArrayPrototype%': ['Float32Array', 'prototype'],
- '%Float64ArrayPrototype%': ['Float64Array', 'prototype'],
- '%FunctionPrototype%': ['Function', 'prototype'],
- '%Generator%': ['GeneratorFunction', 'prototype'],
- '%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],
- '%Int8ArrayPrototype%': ['Int8Array', 'prototype'],
- '%Int16ArrayPrototype%': ['Int16Array', 'prototype'],
- '%Int32ArrayPrototype%': ['Int32Array', 'prototype'],
- '%JSONParse%': ['JSON', 'parse'],
- '%JSONStringify%': ['JSON', 'stringify'],
- '%MapPrototype%': ['Map', 'prototype'],
- '%NumberPrototype%': ['Number', 'prototype'],
- '%ObjectPrototype%': ['Object', 'prototype'],
- '%ObjProto_toString%': ['Object', 'prototype', 'toString'],
- '%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],
- '%PromisePrototype%': ['Promise', 'prototype'],
- '%PromiseProto_then%': ['Promise', 'prototype', 'then'],
- '%Promise_all%': ['Promise', 'all'],
- '%Promise_reject%': ['Promise', 'reject'],
- '%Promise_resolve%': ['Promise', 'resolve'],
- '%RangeErrorPrototype%': ['RangeError', 'prototype'],
- '%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],
- '%RegExpPrototype%': ['RegExp', 'prototype'],
- '%SetPrototype%': ['Set', 'prototype'],
- '%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],
- '%StringPrototype%': ['String', 'prototype'],
- '%SymbolPrototype%': ['Symbol', 'prototype'],
- '%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],
- '%TypedArrayPrototype%': ['TypedArray', 'prototype'],
- '%TypeErrorPrototype%': ['TypeError', 'prototype'],
- '%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],
- '%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],
- '%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],
- '%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],
- '%URIErrorPrototype%': ['URIError', 'prototype'],
- '%WeakMapPrototype%': ['WeakMap', 'prototype'],
- '%WeakSetPrototype%': ['WeakSet', 'prototype']
-};
-
-var bind = require('function-bind');
-var hasOwn = require('has');
-var $concat = bind.call(Function.call, Array.prototype.concat);
-var $spliceApply = bind.call(Function.apply, Array.prototype.splice);
-var $replace = bind.call(Function.call, String.prototype.replace);
-var $strSlice = bind.call(Function.call, String.prototype.slice);
-var $exec = bind.call(Function.call, RegExp.prototype.exec);
-
-/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */
-var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g;
-var reEscapeChar = /\\(\\)?/g; /** Used to match backslashes in property paths. */
-var stringToPath = function stringToPath(string) {
- var first = $strSlice(string, 0, 1);
- var last = $strSlice(string, -1);
- if (first === '%' && last !== '%') {
- throw new $SyntaxError('invalid intrinsic syntax, expected closing `%`');
- } else if (last === '%' && first !== '%') {
- throw new $SyntaxError('invalid intrinsic syntax, expected opening `%`');
- }
- var result = [];
- $replace(string, rePropName, function (match, number, quote, subString) {
- result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;
- });
- return result;
-};
-/* end adaptation */
-
-var getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {
- var intrinsicName = name;
- var alias;
- if (hasOwn(LEGACY_ALIASES, intrinsicName)) {
- alias = LEGACY_ALIASES[intrinsicName];
- intrinsicName = '%' + alias[0] + '%';
- }
-
- if (hasOwn(INTRINSICS, intrinsicName)) {
- var value = INTRINSICS[intrinsicName];
- if (value === needsEval) {
- value = doEval(intrinsicName);
- }
- if (typeof value === 'undefined' && !allowMissing) {
- throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');
- }
-
- return {
- alias: alias,
- name: intrinsicName,
- value: value
- };
- }
-
- throw new $SyntaxError('intrinsic ' + name + ' does not exist!');
-};
-
-module.exports = function GetIntrinsic(name, allowMissing) {
- if (typeof name !== 'string' || name.length === 0) {
- throw new $TypeError('intrinsic name must be a non-empty string');
- }
- if (arguments.length > 1 && typeof allowMissing !== 'boolean') {
- throw new $TypeError('"allowMissing" argument must be a boolean');
- }
-
- if ($exec(/^%?[^%]*%?$/, name) === null) {
- throw new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');
- }
- var parts = stringToPath(name);
- var intrinsicBaseName = parts.length > 0 ? parts[0] : '';
-
- var intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);
- var intrinsicRealName = intrinsic.name;
- var value = intrinsic.value;
- var skipFurtherCaching = false;
-
- var alias = intrinsic.alias;
- if (alias) {
- intrinsicBaseName = alias[0];
- $spliceApply(parts, $concat([0, 1], alias));
- }
-
- for (var i = 1, isOwn = true; i < parts.length; i += 1) {
- var part = parts[i];
- var first = $strSlice(part, 0, 1);
- var last = $strSlice(part, -1);
- if (
- (
- (first === '"' || first === "'" || first === '`')
- || (last === '"' || last === "'" || last === '`')
- )
- && first !== last
- ) {
- throw new $SyntaxError('property names with quotes must have matching quotes');
- }
- if (part === 'constructor' || !isOwn) {
- skipFurtherCaching = true;
- }
-
- intrinsicBaseName += '.' + part;
- intrinsicRealName = '%' + intrinsicBaseName + '%';
-
- if (hasOwn(INTRINSICS, intrinsicRealName)) {
- value = INTRINSICS[intrinsicRealName];
- } else if (value != null) {
- if (!(part in value)) {
- if (!allowMissing) {
- throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');
- }
- return void undefined;
- }
- if ($gOPD && (i + 1) >= parts.length) {
- var desc = $gOPD(value, part);
- isOwn = !!desc;
-
- // By convention, when a data property is converted to an accessor
- // property to emulate a data property that does not suffer from
- // the override mistake, that accessor's getter is marked with
- // an `originalValue` property. Here, when we detect this, we
- // uphold the illusion by pretending to see that original data
- // property, i.e., returning the value rather than the getter
- // itself.
- if (isOwn && 'get' in desc && !('originalValue' in desc.get)) {
- value = desc.get;
- } else {
- value = value[part];
- }
- } else {
- isOwn = hasOwn(value, part);
- value = value[part];
- }
-
- if (isOwn && !skipFurtherCaching) {
- INTRINSICS[intrinsicRealName] = value;
- }
- }
- }
- return value;
-};
-
-},{"function-bind":10,"has":14,"has-symbols":12}],12:[function(require,module,exports){
-'use strict';
-
-var origSymbol = typeof Symbol !== 'undefined' && Symbol;
-var hasSymbolSham = require('./shams');
-
-module.exports = function hasNativeSymbols() {
- if (typeof origSymbol !== 'function') { return false; }
- if (typeof Symbol !== 'function') { return false; }
- if (typeof origSymbol('foo') !== 'symbol') { return false; }
- if (typeof Symbol('bar') !== 'symbol') { return false; }
-
- return hasSymbolSham();
-};
-
-},{"./shams":13}],13:[function(require,module,exports){
-'use strict';
-
-/* eslint complexity: [2, 18], max-statements: [2, 33] */
-module.exports = function hasSymbols() {
- if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }
- if (typeof Symbol.iterator === 'symbol') { return true; }
-
- var obj = {};
- var sym = Symbol('test');
- var symObj = Object(sym);
- if (typeof sym === 'string') { return false; }
-
- if (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }
- if (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }
-
- // temp disabled per https://github.com/ljharb/object.assign/issues/17
- // if (sym instanceof Symbol) { return false; }
- // temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4
- // if (!(symObj instanceof Symbol)) { return false; }
-
- // if (typeof Symbol.prototype.toString !== 'function') { return false; }
- // if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }
-
- var symVal = 42;
- obj[sym] = symVal;
- for (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop
- if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }
-
- if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }
-
- var syms = Object.getOwnPropertySymbols(obj);
- if (syms.length !== 1 || syms[0] !== sym) { return false; }
-
- if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }
-
- if (typeof Object.getOwnPropertyDescriptor === 'function') {
- var descriptor = Object.getOwnPropertyDescriptor(obj, sym);
- if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }
- }
-
- return true;
-};
+},{}],13:[function(require,module,exports){
+"use strict";module.exports=RangeError;
},{}],14:[function(require,module,exports){
-'use strict';
+"use strict";module.exports=ReferenceError;
-var bind = require('function-bind');
+},{}],17:[function(require,module,exports){
+"use strict";module.exports=URIError;
-module.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);
+},{}],18:[function(require,module,exports){
+"use strict";var ERROR_MESSAGE="Function.prototype.bind called on incompatible ",toStr=Object.prototype.toString,max=Math.max,funcType="[object Function]",concatty=function concatty(t,n){for(var r=[],o=0;o -1000 && num < 1000)
- || $test.call(/e/, str)
- ) {
- return str;
- }
- var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;
- if (typeof num === 'number') {
- var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)
- if (int !== num) {
- var intStr = String(int);
- var dec = $slice.call(str, intStr.length + 1);
- return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');
- }
- }
- return $replace.call(str, sepRegex, '$&_');
-}
+},{"19":19}],24:[function(require,module,exports){
+"use strict";var origSymbol="undefined"!=typeof Symbol&&Symbol,hasSymbolSham=require(25);module.exports=function hasNativeSymbols(){return"function"==typeof origSymbol&&"function"==typeof Symbol&&"symbol"==typeof origSymbol("foo")&&"symbol"==typeof Symbol("bar")&&hasSymbolSham()};
-var utilInspect = require('./util.inspect');
-var inspectCustom = utilInspect.custom;
-var inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;
+},{"25":25}],22:[function(require,module,exports){
+"use strict";var $defineProperty=require(10),hasPropertyDescriptors=function hasPropertyDescriptors(){return!!$defineProperty};hasPropertyDescriptors.hasArrayLengthDefineBug=function hasArrayLengthDefineBug(){if(!$defineProperty)return null;try{return 1!==$defineProperty([],"length",{value:1}).length}catch(r){return!0}},module.exports=hasPropertyDescriptors;
-module.exports = function inspect_(obj, options, depth, seen) {
- var opts = options || {};
+},{"10":10}],25:[function(require,module,exports){
+"use strict";module.exports=function hasSymbols(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var t={},e=Symbol("test"),r=Object(e);if("string"==typeof e)return!1;if("[object Symbol]"!==Object.prototype.toString.call(e))return!1;if("[object Symbol]"!==Object.prototype.toString.call(r))return!1;for(e in t[e]=42,t)return!1;if("function"==typeof Object.keys&&0!==Object.keys(t).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(t).length)return!1;var o=Object.getOwnPropertySymbols(t);if(1!==o.length||o[0]!==e)return!1;if(!Object.prototype.propertyIsEnumerable.call(t,e))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var n=Object.getOwnPropertyDescriptor(t,e);if(42!==n.value||!0!==n.enumerable)return!1}return!0};
- if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {
- throw new TypeError('option "quoteStyle" must be "single" or "double"');
- }
- if (
- has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'
- ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity
- : opts.maxStringLength !== null
- )
- ) {
- throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');
- }
- var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;
- if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {
- throw new TypeError('option "customInspect", if provided, must be `true`, `false`, or `\'symbol\'`');
- }
+},{}],27:[function(require,module,exports){
+(function (global){(function (){
+var hasMap="function"==typeof Map&&Map.prototype,mapSizeDescriptor=Object.getOwnPropertyDescriptor&&hasMap?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,mapSize=hasMap&&mapSizeDescriptor&&"function"==typeof mapSizeDescriptor.get?mapSizeDescriptor.get:null,mapForEach=hasMap&&Map.prototype.forEach,hasSet="function"==typeof Set&&Set.prototype,setSizeDescriptor=Object.getOwnPropertyDescriptor&&hasSet?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,setSize=hasSet&&setSizeDescriptor&&"function"==typeof setSizeDescriptor.get?setSizeDescriptor.get:null,setForEach=hasSet&&Set.prototype.forEach,hasWeakMap="function"==typeof WeakMap&&WeakMap.prototype,weakMapHas=hasWeakMap?WeakMap.prototype.has:null,hasWeakSet="function"==typeof WeakSet&&WeakSet.prototype,weakSetHas=hasWeakSet?WeakSet.prototype.has:null,hasWeakRef="function"==typeof WeakRef&&WeakRef.prototype,weakRefDeref=hasWeakRef?WeakRef.prototype.deref:null,booleanValueOf=Boolean.prototype.valueOf,objectToString=Object.prototype.toString,functionToString=Function.prototype.toString,$match=String.prototype.match,$slice=String.prototype.slice,$replace=String.prototype.replace,$toUpperCase=String.prototype.toUpperCase,$toLowerCase=String.prototype.toLowerCase,$test=RegExp.prototype.test,$concat=Array.prototype.concat,$join=Array.prototype.join,$arrSlice=Array.prototype.slice,$floor=Math.floor,bigIntValueOf="function"==typeof BigInt?BigInt.prototype.valueOf:null,gOPS=Object.getOwnPropertySymbols,symToString="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?Symbol.prototype.toString:null,hasShammedSymbols="function"==typeof Symbol&&"object"==typeof Symbol.iterator,toStringTag="function"==typeof Symbol&&Symbol.toStringTag&&(Symbol.toStringTag,1)?Symbol.toStringTag:null,isEnumerable=Object.prototype.propertyIsEnumerable,gPO=("function"==typeof Reflect?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(t){return t.__proto__}:null);function addNumericSeparator(t,e){if(t===1/0||t===-1/0||t!=t||t&&t>-1e3&&t<1e3||$test.call(/e/,e))return e;var r=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if("number"==typeof t){var n=t<0?-$floor(-t):$floor(t);if(n!==t){var o=String(n),i=$slice.call(e,o.length+1);return $replace.call(o,r,"$&_")+"."+$replace.call($replace.call(i,/([0-9]{3})/g,"$&_"),/_$/,"")}}return $replace.call(e,r,"$&_")}var utilInspect=require(6),inspectCustom=utilInspect.custom,inspectSymbol=isSymbol(inspectCustom)?inspectCustom:null;function wrapQuotes(t,e,r){var n="double"===(r.quoteStyle||e)?'"':"'";return n+t+n}function quote(t){return $replace.call(String(t),/"/g,""")}function isArray(t){return!("[object Array]"!==toStr(t)||toStringTag&&"object"==typeof t&&toStringTag in t)}function isDate(t){return!("[object Date]"!==toStr(t)||toStringTag&&"object"==typeof t&&toStringTag in t)}function isRegExp(t){return!("[object RegExp]"!==toStr(t)||toStringTag&&"object"==typeof t&&toStringTag in t)}function isError(t){return!("[object Error]"!==toStr(t)||toStringTag&&"object"==typeof t&&toStringTag in t)}function isString(t){return!("[object String]"!==toStr(t)||toStringTag&&"object"==typeof t&&toStringTag in t)}function isNumber(t){return!("[object Number]"!==toStr(t)||toStringTag&&"object"==typeof t&&toStringTag in t)}function isBoolean(t){return!("[object Boolean]"!==toStr(t)||toStringTag&&"object"==typeof t&&toStringTag in t)}function isSymbol(t){if(hasShammedSymbols)return t&&"object"==typeof t&&t instanceof Symbol;if("symbol"==typeof t)return!0;if(!t||"object"!=typeof t||!symToString)return!1;try{return symToString.call(t),!0}catch(t){}return!1}function isBigInt(t){if(!t||"object"!=typeof t||!bigIntValueOf)return!1;try{return bigIntValueOf.call(t),!0}catch(t){}return!1}module.exports=function inspect_(t,e,r,n){var o=e||{};if(has(o,"quoteStyle")&&"single"!==o.quoteStyle&&"double"!==o.quoteStyle)throw new TypeError('option "quoteStyle" must be "single" or "double"');if(has(o,"maxStringLength")&&("number"==typeof o.maxStringLength?o.maxStringLength<0&&o.maxStringLength!==1/0:null!==o.maxStringLength))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var i=!has(o,"customInspect")||o.customInspect;if("boolean"!=typeof i&&"symbol"!==i)throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(has(o,"indent")&&null!==o.indent&&"\t"!==o.indent&&!(parseInt(o.indent,10)===o.indent&&o.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(has(o,"numericSeparator")&&"boolean"!=typeof o.numericSeparator)throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var a=o.numericSeparator;if(void 0===t)return"undefined";if(null===t)return"null";if("boolean"==typeof t)return t?"true":"false";if("string"==typeof t)return inspectString(t,o);if("number"==typeof t){if(0===t)return 1/0/t>0?"0":"-0";var c=String(t);return a?addNumericSeparator(t,c):c}if("bigint"==typeof t){var l=String(t)+"n";return a?addNumericSeparator(t,l):l}var p=void 0===o.depth?5:o.depth;if(void 0===r&&(r=0),r>=p&&p>0&&"object"==typeof t)return isArray(t)?"[Array]":"[Object]";var u=getIndent(o,r);if(void 0===n)n=[];else if(indexOf(n,t)>=0)return"[Circular]";function inspect(t,e,i){if(e&&(n=$arrSlice.call(n)).push(e),i){var a={depth:o.depth};return has(o,"quoteStyle")&&(a.quoteStyle=o.quoteStyle),inspect_(t,a,r+1,n)}return inspect_(t,o,r+1,n)}if("function"==typeof t&&!isRegExp(t)){var f=nameOf(t),s=arrObjKeys(t,inspect);return"[Function"+(f?": "+f:" (anonymous)")+"]"+(s.length>0?" { "+$join.call(s,", ")+" }":"")}if(isSymbol(t)){var y=hasShammedSymbols?$replace.call(String(t),/^(Symbol\(.*\))_[^)]*$/,"$1"):symToString.call(t);return"object"!=typeof t||hasShammedSymbols?y:markBoxed(y)}if(isElement(t)){for(var S="<"+$toLowerCase.call(String(t.nodeName)),g=t.attributes||[],b=0;b",t.childNodes&&t.childNodes.length&&(S+="..."),S+""+$toLowerCase.call(String(t.nodeName))+">"}if(isArray(t)){if(0===t.length)return"[]";var m=arrObjKeys(t,inspect);return u&&!singleLineValues(m)?"["+indentedJoin(m,u)+"]":"[ "+$join.call(m,", ")+" ]"}if(isError(t)){var h=arrObjKeys(t,inspect);return"cause"in Error.prototype||!("cause"in t)||isEnumerable.call(t,"cause")?0===h.length?"["+String(t)+"]":"{ ["+String(t)+"] "+$join.call(h,", ")+" }":"{ ["+String(t)+"] "+$join.call($concat.call("[cause]: "+inspect(t.cause),h),", ")+" }"}if("object"==typeof t&&i){if(inspectSymbol&&"function"==typeof t[inspectSymbol]&&utilInspect)return utilInspect(t,{depth:p-r});if("symbol"!==i&&"function"==typeof t.inspect)return t.inspect()}if(isMap(t)){var d=[];return mapForEach&&mapForEach.call(t,(function(e,r){d.push(inspect(r,t,!0)+" => "+inspect(e,t))})),collectionOf("Map",mapSize.call(t),d,u)}if(isSet(t)){var j=[];return setForEach&&setForEach.call(t,(function(e){j.push(inspect(e,t))})),collectionOf("Set",setSize.call(t),j,u)}if(isWeakMap(t))return weakCollectionOf("WeakMap");if(isWeakSet(t))return weakCollectionOf("WeakSet");if(isWeakRef(t))return weakCollectionOf("WeakRef");if(isNumber(t))return markBoxed(inspect(Number(t)));if(isBigInt(t))return markBoxed(inspect(bigIntValueOf.call(t)));if(isBoolean(t))return markBoxed(booleanValueOf.call(t));if(isString(t))return markBoxed(inspect(String(t)));if("undefined"!=typeof window&&t===window)return"{ [object Window] }";if("undefined"!=typeof globalThis&&t===globalThis||"undefined"!=typeof global&&t===global)return"{ [object globalThis] }";if(!isDate(t)&&!isRegExp(t)){var O=arrObjKeys(t,inspect),w=gPO?gPO(t)===Object.prototype:t instanceof Object||t.constructor===Object,$=t instanceof Object?"":"null prototype",k=!w&&toStringTag&&Object(t)===t&&toStringTag in t?$slice.call(toStr(t),8,-1):$?"Object":"",v=(w||"function"!=typeof t.constructor?"":t.constructor.name?t.constructor.name+" ":"")+(k||$?"["+$join.call($concat.call([],k||[],$||[]),": ")+"] ":"");return 0===O.length?v+"{}":u?v+"{"+indentedJoin(O,u)+"}":v+"{ "+$join.call(O,", ")+" }"}return String(t)};var hasOwn=Object.prototype.hasOwnProperty||function(t){return t in this};function has(t,e){return hasOwn.call(t,e)}function toStr(t){return objectToString.call(t)}function nameOf(t){if(t.name)return t.name;var e=$match.call(functionToString.call(t),/^function\s*([\w$]+)/);return e?e[1]:null}function indexOf(t,e){if(t.indexOf)return t.indexOf(e);for(var r=0,n=t.length;re.maxStringLength){var r=t.length-e.maxStringLength,n="... "+r+" more character"+(r>1?"s":"");return inspectString($slice.call(t,0,e.maxStringLength),e)+n}return wrapQuotes($replace.call($replace.call(t,/(['\\])/g,"\\$1"),/[\x00-\x1f]/g,lowbyte),"single",e)}function lowbyte(t){var e=t.charCodeAt(0),r={8:"b",9:"t",10:"n",12:"f",13:"r"}[e];return r?"\\"+r:"\\x"+(e<16?"0":"")+$toUpperCase.call(e.toString(16))}function markBoxed(t){return"Object("+t+")"}function weakCollectionOf(t){return t+" { ? }"}function collectionOf(t,e,r,n){return t+" ("+e+") {"+(n?indentedJoin(r,n):$join.call(r,", "))+"}"}function singleLineValues(t){for(var e=0;e=0)return!1;return!0}function getIndent(t,e){var r;if("\t"===t.indent)r="\t";else{if(!("number"==typeof t.indent&&t.indent>0))return null;r=$join.call(Array(t.indent+1)," ")}return{base:r,prev:$join.call(Array(e+1),r)}}function indentedJoin(t,e){if(0===t.length)return"";var r="\n"+e.prev+e.base;return r+$join.call(t,","+r)+"\n"+e.prev}function arrObjKeys(t,e){var r=isArray(t),n=[];if(r){n.length=t.length;for(var o=0;o 0)
- ) {
- throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');
- }
- if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {
- throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');
- }
- var numericSeparator = opts.numericSeparator;
-
- if (typeof obj === 'undefined') {
- return 'undefined';
- }
- if (obj === null) {
- return 'null';
- }
- if (typeof obj === 'boolean') {
- return obj ? 'true' : 'false';
- }
-
- if (typeof obj === 'string') {
- return inspectString(obj, opts);
- }
- if (typeof obj === 'number') {
- if (obj === 0) {
- return Infinity / obj > 0 ? '0' : '-0';
- }
- var str = String(obj);
- return numericSeparator ? addNumericSeparator(obj, str) : str;
- }
- if (typeof obj === 'bigint') {
- var bigIntStr = String(obj) + 'n';
- return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;
- }
-
- var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;
- if (typeof depth === 'undefined') { depth = 0; }
- if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {
- return isArray(obj) ? '[Array]' : '[Object]';
- }
-
- var indent = getIndent(opts, depth);
-
- if (typeof seen === 'undefined') {
- seen = [];
- } else if (indexOf(seen, obj) >= 0) {
- return '[Circular]';
- }
-
- function inspect(value, from, noIndent) {
- if (from) {
- seen = $arrSlice.call(seen);
- seen.push(from);
- }
- if (noIndent) {
- var newOpts = {
- depth: opts.depth
- };
- if (has(opts, 'quoteStyle')) {
- newOpts.quoteStyle = opts.quoteStyle;
- }
- return inspect_(value, newOpts, depth + 1, seen);
- }
- return inspect_(value, opts, depth + 1, seen);
- }
-
- if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable
- var name = nameOf(obj);
- var keys = arrObjKeys(obj, inspect);
- return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');
- }
- if (isSymbol(obj)) {
- var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\(.*\))_[^)]*$/, '$1') : symToString.call(obj);
- return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;
- }
- if (isElement(obj)) {
- var s = '<' + $toLowerCase.call(String(obj.nodeName));
- var attrs = obj.attributes || [];
- for (var i = 0; i < attrs.length; i++) {
- s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);
- }
- s += '>';
- if (obj.childNodes && obj.childNodes.length) { s += '...'; }
- s += '' + $toLowerCase.call(String(obj.nodeName)) + '>';
- return s;
- }
- if (isArray(obj)) {
- if (obj.length === 0) { return '[]'; }
- var xs = arrObjKeys(obj, inspect);
- if (indent && !singleLineValues(xs)) {
- return '[' + indentedJoin(xs, indent) + ']';
- }
- return '[ ' + $join.call(xs, ', ') + ' ]';
- }
- if (isError(obj)) {
- var parts = arrObjKeys(obj, inspect);
- if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) {
- return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';
- }
- if (parts.length === 0) { return '[' + String(obj) + ']'; }
- return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';
- }
- if (typeof obj === 'object' && customInspect) {
- if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) {
- return utilInspect(obj, { depth: maxDepth - depth });
- } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {
- return obj.inspect();
- }
- }
- if (isMap(obj)) {
- var mapParts = [];
- if (mapForEach) {
- mapForEach.call(obj, function (value, key) {
- mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));
- });
- }
- return collectionOf('Map', mapSize.call(obj), mapParts, indent);
- }
- if (isSet(obj)) {
- var setParts = [];
- if (setForEach) {
- setForEach.call(obj, function (value) {
- setParts.push(inspect(value, obj));
- });
- }
- return collectionOf('Set', setSize.call(obj), setParts, indent);
- }
- if (isWeakMap(obj)) {
- return weakCollectionOf('WeakMap');
- }
- if (isWeakSet(obj)) {
- return weakCollectionOf('WeakSet');
- }
- if (isWeakRef(obj)) {
- return weakCollectionOf('WeakRef');
- }
- if (isNumber(obj)) {
- return markBoxed(inspect(Number(obj)));
- }
- if (isBigInt(obj)) {
- return markBoxed(inspect(bigIntValueOf.call(obj)));
- }
- if (isBoolean(obj)) {
- return markBoxed(booleanValueOf.call(obj));
- }
- if (isString(obj)) {
- return markBoxed(inspect(String(obj)));
- }
- if (!isDate(obj) && !isRegExp(obj)) {
- var ys = arrObjKeys(obj, inspect);
- var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;
- var protoTag = obj instanceof Object ? '' : 'null prototype';
- var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';
- var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';
- var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');
- if (ys.length === 0) { return tag + '{}'; }
- if (indent) {
- return tag + '{' + indentedJoin(ys, indent) + '}';
- }
- return tag + '{ ' + $join.call(ys, ', ') + ' }';
- }
- return String(obj);
-};
-
-function wrapQuotes(s, defaultStyle, opts) {
- var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '"' : "'";
- return quoteChar + s + quoteChar;
-}
-
-function quote(s) {
- return $replace.call(String(s), /"/g, '"');
-}
-
-function isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
-function isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
-function isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
-function isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
-function isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
-function isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
-function isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
-
-// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives
-function isSymbol(obj) {
- if (hasShammedSymbols) {
- return obj && typeof obj === 'object' && obj instanceof Symbol;
- }
- if (typeof obj === 'symbol') {
- return true;
- }
- if (!obj || typeof obj !== 'object' || !symToString) {
- return false;
- }
- try {
- symToString.call(obj);
- return true;
- } catch (e) {}
- return false;
-}
-
-function isBigInt(obj) {
- if (!obj || typeof obj !== 'object' || !bigIntValueOf) {
- return false;
- }
- try {
- bigIntValueOf.call(obj);
- return true;
- } catch (e) {}
- return false;
-}
-
-var hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };
-function has(obj, key) {
- return hasOwn.call(obj, key);
-}
-
-function toStr(obj) {
- return objectToString.call(obj);
-}
-
-function nameOf(f) {
- if (f.name) { return f.name; }
- var m = $match.call(functionToString.call(f), /^function\s*([\w$]+)/);
- if (m) { return m[1]; }
- return null;
-}
-
-function indexOf(xs, x) {
- if (xs.indexOf) { return xs.indexOf(x); }
- for (var i = 0, l = xs.length; i < l; i++) {
- if (xs[i] === x) { return i; }
- }
- return -1;
-}
-
-function isMap(x) {
- if (!mapSize || !x || typeof x !== 'object') {
- return false;
- }
- try {
- mapSize.call(x);
- try {
- setSize.call(x);
- } catch (s) {
- return true;
- }
- return x instanceof Map; // core-js workaround, pre-v2.5.0
- } catch (e) {}
- return false;
-}
-
-function isWeakMap(x) {
- if (!weakMapHas || !x || typeof x !== 'object') {
- return false;
- }
- try {
- weakMapHas.call(x, weakMapHas);
- try {
- weakSetHas.call(x, weakSetHas);
- } catch (s) {
- return true;
- }
- return x instanceof WeakMap; // core-js workaround, pre-v2.5.0
- } catch (e) {}
- return false;
-}
-
-function isWeakRef(x) {
- if (!weakRefDeref || !x || typeof x !== 'object') {
- return false;
- }
- try {
- weakRefDeref.call(x);
- return true;
- } catch (e) {}
- return false;
-}
-
-function isSet(x) {
- if (!setSize || !x || typeof x !== 'object') {
- return false;
- }
- try {
- setSize.call(x);
- try {
- mapSize.call(x);
- } catch (m) {
- return true;
- }
- return x instanceof Set; // core-js workaround, pre-v2.5.0
- } catch (e) {}
- return false;
-}
-
-function isWeakSet(x) {
- if (!weakSetHas || !x || typeof x !== 'object') {
- return false;
- }
- try {
- weakSetHas.call(x, weakSetHas);
- try {
- weakMapHas.call(x, weakMapHas);
- } catch (s) {
- return true;
- }
- return x instanceof WeakSet; // core-js workaround, pre-v2.5.0
- } catch (e) {}
- return false;
-}
-
-function isElement(x) {
- if (!x || typeof x !== 'object') { return false; }
- if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {
- return true;
- }
- return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';
-}
-
-function inspectString(str, opts) {
- if (str.length > opts.maxStringLength) {
- var remaining = str.length - opts.maxStringLength;
- var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');
- return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;
- }
- // eslint-disable-next-line no-control-regex
- var s = $replace.call($replace.call(str, /(['\\])/g, '\\$1'), /[\x00-\x1f]/g, lowbyte);
- return wrapQuotes(s, 'single', opts);
-}
-
-function lowbyte(c) {
- var n = c.charCodeAt(0);
- var x = {
- 8: 'b',
- 9: 't',
- 10: 'n',
- 12: 'f',
- 13: 'r'
- }[n];
- if (x) { return '\\' + x; }
- return '\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));
-}
-
-function markBoxed(str) {
- return 'Object(' + str + ')';
-}
-
-function weakCollectionOf(type) {
- return type + ' { ? }';
-}
-
-function collectionOf(type, size, entries, indent) {
- var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');
- return type + ' (' + size + ') {' + joinedEntries + '}';
-}
-
-function singleLineValues(xs) {
- for (var i = 0; i < xs.length; i++) {
- if (indexOf(xs[i], '\n') >= 0) {
- return false;
- }
- }
- return true;
-}
-
-function getIndent(opts, depth) {
- var baseIndent;
- if (opts.indent === '\t') {
- baseIndent = '\t';
- } else if (typeof opts.indent === 'number' && opts.indent > 0) {
- baseIndent = $join.call(Array(opts.indent + 1), ' ');
- } else {
- return null;
- }
- return {
- base: baseIndent,
- prev: $join.call(Array(depth + 1), baseIndent)
- };
-}
-
-function indentedJoin(xs, indent) {
- if (xs.length === 0) { return ''; }
- var lineJoiner = '\n' + indent.prev + indent.base;
- return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\n' + indent.prev;
-}
-
-function arrObjKeys(obj, inspect) {
- var isArr = isArray(obj);
- var xs = [];
- if (isArr) {
- xs.length = obj.length;
- for (var i = 0; i < obj.length; i++) {
- xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';
- }
- }
- var syms = typeof gOPS === 'function' ? gOPS(obj) : [];
- var symMap;
- if (hasShammedSymbols) {
- symMap = {};
- for (var k = 0; k < syms.length; k++) {
- symMap['$' + syms[k]] = syms[k];
- }
- }
-
- for (var key in obj) { // eslint-disable-line no-restricted-syntax
- if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue
- if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue
- if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {
- // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section
- continue; // eslint-disable-line no-restricted-syntax, no-continue
- } else if ($test.call(/[^\w$]/, key)) {
- xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));
- } else {
- xs.push(key + ': ' + inspect(obj[key], obj));
- }
- }
- if (typeof gOPS === 'function') {
- for (var j = 0; j < syms.length; j++) {
- if (isEnumerable.call(obj, syms[j])) {
- xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));
- }
- }
- }
- return xs;
-}
-
-},{"./util.inspect":6}],16:[function(require,module,exports){
-'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;
-};
-
-},{"call-bind/callBound":7,"get-intrinsic":11,"object-inspect":15}]},{},[2])(2)
+}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
+},{"6":6}]},{},[2])(2)
});
diff --git a/node_modules/qs/lib/parse.js b/node_modules/qs/lib/parse.js
index a4ac4fa..3d74c71 100644
--- a/node_modules/qs/lib/parse.js
+++ b/node_modules/qs/lib/parse.js
@@ -7,20 +7,24 @@ var isArray = Array.isArray;
var defaults = {
allowDots: false,
+ allowEmptyArrays: false,
allowPrototypes: false,
allowSparse: false,
arrayLimit: 20,
charset: 'utf-8',
charsetSentinel: false,
comma: false,
+ decodeDotInKeys: false,
decoder: utils.decode,
delimiter: '&',
depth: 5,
+ duplicates: 'combine',
ignoreQueryPrefix: false,
interpretNumericEntities: false,
parameterLimit: 1000,
parseArrays: true,
plainObjects: false,
+ strictDepth: false,
strictNullHandling: false
};
@@ -49,8 +53,10 @@ var isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')
var charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')
var parseValues = function parseQueryStringValues(str, options) {
- var obj = {};
+ var obj = { __proto__: null };
+
var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, '') : str;
+ cleanStr = cleanStr.replace(/%5B/gi, '[').replace(/%5D/gi, ']');
var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;
var parts = cleanStr.split(options.delimiter, limit);
var skipIndex = -1; // Keep track of where the utf8 sentinel was found
@@ -102,9 +108,10 @@ var parseValues = function parseQueryStringValues(str, options) {
val = isArray(val) ? [val] : val;
}
- if (has.call(obj, key)) {
+ var existing = has.call(obj, key);
+ if (existing && options.duplicates === 'combine') {
obj[key] = utils.combine(obj[key], val);
- } else {
+ } else if (!existing || options.duplicates === 'last') {
obj[key] = val;
}
}
@@ -120,24 +127,27 @@ var parseObject = function (chain, val, options, valuesParsed) {
var root = chain[i];
if (root === '[]' && options.parseArrays) {
- obj = [].concat(leaf);
+ obj = options.allowEmptyArrays && (leaf === '' || (options.strictNullHandling && leaf === null))
+ ? []
+ : [].concat(leaf);
} else {
obj = options.plainObjects ? Object.create(null) : {};
var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;
- var index = parseInt(cleanRoot, 10);
- if (!options.parseArrays && cleanRoot === '') {
+ var decodedRoot = options.decodeDotInKeys ? cleanRoot.replace(/%2E/g, '.') : cleanRoot;
+ var index = parseInt(decodedRoot, 10);
+ if (!options.parseArrays && decodedRoot === '') {
obj = { 0: leaf };
} else if (
!isNaN(index)
- && root !== cleanRoot
- && String(index) === cleanRoot
+ && root !== decodedRoot
+ && String(index) === decodedRoot
&& index >= 0
&& (options.parseArrays && index <= options.arrayLimit)
) {
obj = [];
obj[index] = leaf;
- } else if (cleanRoot !== '__proto__') {
- obj[cleanRoot] = leaf;
+ } else if (decodedRoot !== '__proto__') {
+ obj[decodedRoot] = leaf;
}
}
@@ -192,9 +202,12 @@ var parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesPars
keys.push(segment[1]);
}
- // If there's a remainder, just add whatever is left
+ // If there's a remainder, check strictDepth option for throw, else just add whatever is left
if (segment) {
+ if (options.strictDepth === true) {
+ throw new RangeError('Input depth exceeded depth option of ' + options.depth + ' and strictDepth is true');
+ }
keys.push('[' + key.slice(segment.index) + ']');
}
@@ -206,7 +219,15 @@ var normalizeParseOptions = function normalizeParseOptions(opts) {
return defaults;
}
- if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {
+ if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {
+ throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');
+ }
+
+ if (typeof opts.decodeDotInKeys !== 'undefined' && typeof opts.decodeDotInKeys !== 'boolean') {
+ throw new TypeError('`decodeDotInKeys` option can only be `true` or `false`, when provided');
+ }
+
+ if (opts.decoder !== null && typeof opts.decoder !== 'undefined' && typeof opts.decoder !== 'function') {
throw new TypeError('Decoder has to be a function.');
}
@@ -215,23 +236,35 @@ var normalizeParseOptions = function normalizeParseOptions(opts) {
}
var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;
+ var duplicates = typeof opts.duplicates === 'undefined' ? defaults.duplicates : opts.duplicates;
+
+ if (duplicates !== 'combine' && duplicates !== 'first' && duplicates !== 'last') {
+ throw new TypeError('The duplicates option must be either combine, first, or last');
+ }
+
+ var allowDots = typeof opts.allowDots === 'undefined' ? opts.decodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;
+
return {
- allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,
+ allowDots: allowDots,
+ allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,
allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,
allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,
arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,
charset: charset,
charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,
comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,
+ decodeDotInKeys: typeof opts.decodeDotInKeys === 'boolean' ? opts.decodeDotInKeys : defaults.decodeDotInKeys,
decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,
delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,
// eslint-disable-next-line no-implicit-coercion, no-extra-parens
depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,
+ duplicates: duplicates,
ignoreQueryPrefix: opts.ignoreQueryPrefix === true,
interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,
parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,
parseArrays: opts.parseArrays !== false,
plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,
+ strictDepth: typeof opts.strictDepth === 'boolean' ? !!opts.strictDepth : defaults.strictDepth,
strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling
};
};
diff --git a/node_modules/qs/lib/stringify.js b/node_modules/qs/lib/stringify.js
index 997d3ee..9b934d6 100644
--- a/node_modules/qs/lib/stringify.js
+++ b/node_modules/qs/lib/stringify.js
@@ -30,10 +30,13 @@ var defaultFormat = formats['default'];
var defaults = {
addQueryPrefix: false,
allowDots: false,
+ allowEmptyArrays: false,
+ arrayFormat: 'indices',
charset: 'utf-8',
charsetSentinel: false,
delimiter: '&',
encode: true,
+ encodeDotInKeys: false,
encoder: utils.encode,
encodeValuesOnly: false,
format: defaultFormat,
@@ -62,8 +65,10 @@ var stringify = function stringify(
prefix,
generateArrayPrefix,
commaRoundTrip,
+ allowEmptyArrays,
strictNullHandling,
skipNulls,
+ encodeDotInKeys,
encoder,
filter,
sort,
@@ -145,7 +150,13 @@ var stringify = function stringify(
objKeys = sort ? keys.sort(sort) : keys;
}
- var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? prefix + '[]' : prefix;
+ var encodedPrefix = encodeDotInKeys ? prefix.replace(/\./g, '%2E') : prefix;
+
+ var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? encodedPrefix + '[]' : encodedPrefix;
+
+ if (allowEmptyArrays && isArray(obj) && obj.length === 0) {
+ return adjustedPrefix + '[]';
+ }
for (var j = 0; j < objKeys.length; ++j) {
var key = objKeys[j];
@@ -155,9 +166,10 @@ var stringify = function stringify(
continue;
}
+ var encodedKey = allowDots && encodeDotInKeys ? key.replace(/\./g, '%2E') : key;
var keyPrefix = isArray(obj)
- ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(adjustedPrefix, key) : adjustedPrefix
- : adjustedPrefix + (allowDots ? '.' + key : '[' + key + ']');
+ ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(adjustedPrefix, encodedKey) : adjustedPrefix
+ : adjustedPrefix + (allowDots ? '.' + encodedKey : '[' + encodedKey + ']');
sideChannel.set(object, step);
var valueSideChannel = getSideChannel();
@@ -167,8 +179,10 @@ var stringify = function stringify(
keyPrefix,
generateArrayPrefix,
commaRoundTrip,
+ allowEmptyArrays,
strictNullHandling,
skipNulls,
+ encodeDotInKeys,
generateArrayPrefix === 'comma' && encodeValuesOnly && isArray(obj) ? null : encoder,
filter,
sort,
@@ -190,6 +204,14 @@ var normalizeStringifyOptions = function normalizeStringifyOptions(opts) {
return defaults;
}
+ if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {
+ throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');
+ }
+
+ if (typeof opts.encodeDotInKeys !== 'undefined' && typeof opts.encodeDotInKeys !== 'boolean') {
+ throw new TypeError('`encodeDotInKeys` option can only be `true` or `false`, when provided');
+ }
+
if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {
throw new TypeError('Encoder has to be a function.');
}
@@ -213,13 +235,32 @@ var normalizeStringifyOptions = function normalizeStringifyOptions(opts) {
filter = opts.filter;
}
+ var arrayFormat;
+ if (opts.arrayFormat in arrayPrefixGenerators) {
+ arrayFormat = opts.arrayFormat;
+ } else if ('indices' in opts) {
+ arrayFormat = opts.indices ? 'indices' : 'repeat';
+ } else {
+ arrayFormat = defaults.arrayFormat;
+ }
+
+ if ('commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {
+ throw new TypeError('`commaRoundTrip` must be a boolean, or absent');
+ }
+
+ var allowDots = typeof opts.allowDots === 'undefined' ? opts.encodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;
+
return {
addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,
- allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,
+ allowDots: allowDots,
+ allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,
+ arrayFormat: arrayFormat,
charset: charset,
charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,
+ commaRoundTrip: opts.commaRoundTrip,
delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,
encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,
+ encodeDotInKeys: typeof opts.encodeDotInKeys === 'boolean' ? opts.encodeDotInKeys : defaults.encodeDotInKeys,
encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,
encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,
filter: filter,
@@ -253,20 +294,8 @@ module.exports = function (object, opts) {
return '';
}
- var arrayFormat;
- if (opts && opts.arrayFormat in arrayPrefixGenerators) {
- arrayFormat = opts.arrayFormat;
- } else if (opts && 'indices' in opts) {
- arrayFormat = opts.indices ? 'indices' : 'repeat';
- } else {
- arrayFormat = 'indices';
- }
-
- var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];
- if (opts && 'commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {
- throw new TypeError('`commaRoundTrip` must be a boolean, or absent');
- }
- var commaRoundTrip = generateArrayPrefix === 'comma' && opts && opts.commaRoundTrip;
+ var generateArrayPrefix = arrayPrefixGenerators[options.arrayFormat];
+ var commaRoundTrip = generateArrayPrefix === 'comma' && options.commaRoundTrip;
if (!objKeys) {
objKeys = Object.keys(obj);
@@ -288,8 +317,10 @@ module.exports = function (object, opts) {
key,
generateArrayPrefix,
commaRoundTrip,
+ options.allowEmptyArrays,
options.strictNullHandling,
options.skipNulls,
+ options.encodeDotInKeys,
options.encode ? options.encoder : null,
options.filter,
options.sort,
diff --git a/node_modules/qs/lib/utils.js b/node_modules/qs/lib/utils.js
index 1e54538..7c860f1 100644
--- a/node_modules/qs/lib/utils.js
+++ b/node_modules/qs/lib/utils.js
@@ -122,6 +122,10 @@ var decode = function (str, decoder, charset) {
}
};
+var limit = 1024;
+
+/* eslint operator-linebreak: [2, "before"] */
+
var encode = function encode(str, defaultEncoder, charset, kind, format) {
// This code was originally written by Brian White (mscdex) for the io.js core querystring library.
// It has been adapted here for stricter adherence to RFC 3986
@@ -143,45 +147,54 @@ var encode = function encode(str, defaultEncoder, charset, kind, format) {
}
var out = '';
- for (var i = 0; i < string.length; ++i) {
- var c = string.charCodeAt(i);
+ for (var j = 0; j < string.length; j += limit) {
+ var segment = string.length >= limit ? string.slice(j, j + limit) : string;
+ var arr = [];
- if (
- c === 0x2D // -
- || c === 0x2E // .
- || c === 0x5F // _
- || c === 0x7E // ~
- || (c >= 0x30 && c <= 0x39) // 0-9
- || (c >= 0x41 && c <= 0x5A) // a-z
- || (c >= 0x61 && c <= 0x7A) // A-Z
- || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )
- ) {
- out += string.charAt(i);
- continue;
+ for (var i = 0; i < segment.length; ++i) {
+ var c = segment.charCodeAt(i);
+ if (
+ c === 0x2D // -
+ || c === 0x2E // .
+ || c === 0x5F // _
+ || c === 0x7E // ~
+ || (c >= 0x30 && c <= 0x39) // 0-9
+ || (c >= 0x41 && c <= 0x5A) // a-z
+ || (c >= 0x61 && c <= 0x7A) // A-Z
+ || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )
+ ) {
+ arr[arr.length] = segment.charAt(i);
+ continue;
+ }
+
+ if (c < 0x80) {
+ arr[arr.length] = hexTable[c];
+ continue;
+ }
+
+ if (c < 0x800) {
+ arr[arr.length] = hexTable[0xC0 | (c >> 6)]
+ + hexTable[0x80 | (c & 0x3F)];
+ continue;
+ }
+
+ if (c < 0xD800 || c >= 0xE000) {
+ arr[arr.length] = hexTable[0xE0 | (c >> 12)]
+ + hexTable[0x80 | ((c >> 6) & 0x3F)]
+ + hexTable[0x80 | (c & 0x3F)];
+ continue;
+ }
+
+ i += 1;
+ c = 0x10000 + (((c & 0x3FF) << 10) | (segment.charCodeAt(i) & 0x3FF));
+
+ arr[arr.length] = hexTable[0xF0 | (c >> 18)]
+ + hexTable[0x80 | ((c >> 12) & 0x3F)]
+ + hexTable[0x80 | ((c >> 6) & 0x3F)]
+ + hexTable[0x80 | (c & 0x3F)];
}
- if (c < 0x80) {
- out = out + hexTable[c];
- continue;
- }
-
- if (c < 0x800) {
- out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);
- continue;
- }
-
- if (c < 0xD800 || c >= 0xE000) {
- out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);
- continue;
- }
-
- i += 1;
- c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));
- /* eslint operator-linebreak: [2, "before"] */
- out += hexTable[0xF0 | (c >> 18)]
- + hexTable[0x80 | ((c >> 12) & 0x3F)]
- + hexTable[0x80 | ((c >> 6) & 0x3F)]
- + hexTable[0x80 | (c & 0x3F)];
+ out += arr.join('');
}
return out;
diff --git a/node_modules/qs/package.json b/node_modules/qs/package.json
index 3eb2676..6dae052 100644
--- a/node_modules/qs/package.json
+++ b/node_modules/qs/package.json
@@ -1,105 +1,91 @@
{
- "_from": "qs@^6.11.0",
- "_id": "qs@6.11.1",
- "_inBundle": false,
- "_integrity": "sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ==",
- "_location": "/qs",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "qs@^6.11.0",
"name": "qs",
- "escapedName": "qs",
- "rawSpec": "^6.11.0",
- "saveSpec": null,
- "fetchSpec": "^6.11.0"
- },
- "_requiredBy": [
- "/formidable"
- ],
- "_resolved": "https://registry.npmjs.org/qs/-/qs-6.11.1.tgz",
- "_shasum": "6c29dff97f0c0060765911ba65cbc9764186109f",
- "_spec": "qs@^6.11.0",
- "_where": "/home/ubuntu/formidable/node_modules/formidable",
- "bugs": {
- "url": "https://github.com/ljharb/qs/issues"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "Jordan Harband",
- "email": "ljharb@gmail.com",
- "url": "http://ljharb.codes"
+ "description": "A querystring parser that supports nesting and arrays, with a depth limit",
+ "homepage": "https://github.com/ljharb/qs",
+ "version": "6.13.0",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/ljharb/qs.git"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ },
+ "main": "lib/index.js",
+ "sideEffects": false,
+ "contributors": [
+ {
+ "name": "Jordan Harband",
+ "email": "ljharb@gmail.com",
+ "url": "http://ljharb.codes"
+ }
+ ],
+ "keywords": [
+ "querystring",
+ "qs",
+ "query",
+ "url",
+ "parse",
+ "stringify"
+ ],
+ "engines": {
+ "node": ">=0.6"
+ },
+ "dependencies": {
+ "side-channel": "^1.0.6"
+ },
+ "devDependencies": {
+ "@browserify/envify": "^6.0.0",
+ "@browserify/uglifyify": "^6.0.0",
+ "@ljharb/eslint-config": "^21.1.1",
+ "browserify": "^16.5.2",
+ "bundle-collapser": "^1.4.0",
+ "common-shakeify": "~1.0.0",
+ "eclint": "^2.8.1",
+ "es-value-fixtures": "^1.4.2",
+ "eslint": "=8.8.0",
+ "evalmd": "^0.0.19",
+ "for-each": "^0.3.3",
+ "glob": "=10.3.7",
+ "has-override-mistake": "^1.0.1",
+ "has-property-descriptors": "^1.0.2",
+ "has-symbols": "^1.0.3",
+ "iconv-lite": "^0.5.1",
+ "in-publish": "^2.0.1",
+ "jackspeak": "=2.1.1",
+ "mkdirp": "^0.5.5",
+ "mock-property": "^1.0.3",
+ "module-deps": "^6.2.3",
+ "npmignore": "^0.3.1",
+ "nyc": "^10.3.2",
+ "object-inspect": "^1.13.2",
+ "qs-iconv": "^1.0.4",
+ "safe-publish-latest": "^2.0.0",
+ "safer-buffer": "^2.1.2",
+ "tape": "^5.8.1",
+ "unassertify": "^3.0.1"
+ },
+ "scripts": {
+ "prepack": "npmignore --auto --commentLines=autogenerated && npm run dist",
+ "prepublishOnly": "safe-publish-latest",
+ "prepublish": "not-in-publish || npm run prepublishOnly",
+ "pretest": "npm run --silent readme && npm run --silent lint",
+ "test": "npm run tests-only",
+ "tests-only": "nyc tape 'test/**/*.js'",
+ "posttest": "npx npm@'>=10.2' audit --production",
+ "readme": "evalmd README.md",
+ "postlint": "eclint check $(git ls-files | xargs find 2> /dev/null | grep -vE 'node_modules|\\.git' | grep -v dist/)",
+ "lint": "eslint --ext=js,mjs .",
+ "dist": "mkdirp dist && browserify --standalone Qs -g unassertify -g @browserify/envify -g [@browserify/uglifyify --mangle.keep_fnames --compress.keep_fnames --format.indent_level=1 --compress.arrows=false --compress.passes=4 --compress.typeofs=false] -p common-shakeify -p bundle-collapser/plugin lib/index.js > dist/qs.js"
+ },
+ "license": "BSD-3-Clause",
+ "publishConfig": {
+ "ignore": [
+ "!dist/*",
+ "bower.json",
+ "component.json",
+ ".github/workflows",
+ "logos",
+ "tea.yaml"
+ ]
}
- ],
- "dependencies": {
- "side-channel": "^1.0.4"
- },
- "deprecated": false,
- "description": "A querystring parser that supports nesting and arrays, with a depth limit",
- "devDependencies": {
- "@ljharb/eslint-config": "^21.0.1",
- "aud": "^2.0.2",
- "browserify": "^16.5.2",
- "eclint": "^2.8.1",
- "eslint": "=8.8.0",
- "evalmd": "^0.0.19",
- "for-each": "^0.3.3",
- "has-symbols": "^1.0.3",
- "iconv-lite": "^0.5.1",
- "in-publish": "^2.0.1",
- "mkdirp": "^0.5.5",
- "npmignore": "^0.3.0",
- "nyc": "^10.3.2",
- "object-inspect": "^1.12.3",
- "qs-iconv": "^1.0.4",
- "safe-publish-latest": "^2.0.0",
- "safer-buffer": "^2.1.2",
- "tape": "^5.6.3"
- },
- "engines": {
- "node": ">=0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- },
- "homepage": "https://github.com/ljharb/qs",
- "keywords": [
- "querystring",
- "qs",
- "query",
- "url",
- "parse",
- "stringify"
- ],
- "license": "BSD-3-Clause",
- "main": "lib/index.js",
- "name": "qs",
- "publishConfig": {
- "ignore": [
- "!dist/*",
- "bower.json",
- "component.json",
- ".github/workflows"
- ]
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/ljharb/qs.git"
- },
- "scripts": {
- "dist": "mkdirp dist && browserify --standalone Qs lib/index.js > dist/qs.js",
- "lint": "eslint --ext=js,mjs .",
- "postlint": "eclint check $(git ls-files | xargs find 2> /dev/null | grep -vE 'node_modules|\\.git' | grep -v dist/)",
- "posttest": "aud --production",
- "prepack": "npmignore --auto --commentLines=autogenerated",
- "prepublish": "not-in-publish || npm run prepublishOnly",
- "prepublishOnly": "safe-publish-latest && npm run dist",
- "pretest": "npm run --silent readme && npm run --silent lint",
- "readme": "evalmd README.md",
- "test": "npm run tests-only",
- "tests-only": "nyc tape 'test/**/*.js'"
- },
- "version": "6.11.1"
}
diff --git a/node_modules/qs/test/empty-keys-cases.js b/node_modules/qs/test/empty-keys-cases.js
new file mode 100644
index 0000000..2b1190e
--- /dev/null
+++ b/node_modules/qs/test/empty-keys-cases.js
@@ -0,0 +1,267 @@
+'use strict';
+
+module.exports = {
+ emptyTestCases: [
+ {
+ input: '&',
+ withEmptyKeys: {},
+ stringifyOutput: {
+ brackets: '',
+ indices: '',
+ repeat: ''
+ },
+ noEmptyKeys: {}
+ },
+ {
+ input: '&&',
+ withEmptyKeys: {},
+ stringifyOutput: {
+ brackets: '',
+ indices: '',
+ repeat: ''
+ },
+ noEmptyKeys: {}
+ },
+ {
+ input: '&=',
+ withEmptyKeys: { '': '' },
+ stringifyOutput: {
+ brackets: '=',
+ indices: '=',
+ repeat: '='
+ },
+ noEmptyKeys: {}
+ },
+ {
+ input: '&=&',
+ withEmptyKeys: { '': '' },
+ stringifyOutput: {
+ brackets: '=',
+ indices: '=',
+ repeat: '='
+ },
+ noEmptyKeys: {}
+ },
+ {
+ input: '&=&=',
+ withEmptyKeys: { '': ['', ''] },
+ stringifyOutput: {
+ brackets: '[]=&[]=',
+ indices: '[0]=&[1]=',
+ repeat: '=&='
+ },
+ noEmptyKeys: {}
+ },
+ {
+ input: '&=&=&',
+ withEmptyKeys: { '': ['', ''] },
+ stringifyOutput: {
+ brackets: '[]=&[]=',
+ indices: '[0]=&[1]=',
+ repeat: '=&='
+ },
+ noEmptyKeys: {}
+ },
+ {
+ input: '=',
+ withEmptyKeys: { '': '' },
+ noEmptyKeys: {},
+ stringifyOutput: {
+ brackets: '=',
+ indices: '=',
+ repeat: '='
+ }
+ },
+ {
+ input: '=&',
+ withEmptyKeys: { '': '' },
+ stringifyOutput: {
+ brackets: '=',
+ indices: '=',
+ repeat: '='
+ },
+ noEmptyKeys: {}
+ },
+ {
+ input: '=&&&',
+ withEmptyKeys: { '': '' },
+ stringifyOutput: {
+ brackets: '=',
+ indices: '=',
+ repeat: '='
+ },
+ noEmptyKeys: {}
+ },
+ {
+ input: '=&=&=&',
+ withEmptyKeys: { '': ['', '', ''] },
+ stringifyOutput: {
+ brackets: '[]=&[]=&[]=',
+ indices: '[0]=&[1]=&[2]=',
+ repeat: '=&=&='
+ },
+ noEmptyKeys: {}
+ },
+ {
+ input: '=&a[]=b&a[1]=c',
+ withEmptyKeys: { '': '', a: ['b', 'c'] },
+ stringifyOutput: {
+ brackets: '=&a[]=b&a[]=c',
+ indices: '=&a[0]=b&a[1]=c',
+ repeat: '=&a=b&a=c'
+ },
+ noEmptyKeys: { a: ['b', 'c'] }
+ },
+ {
+ input: '=a',
+ withEmptyKeys: { '': 'a' },
+ noEmptyKeys: {},
+ stringifyOutput: {
+ brackets: '=a',
+ indices: '=a',
+ repeat: '=a'
+ }
+ },
+ {
+ input: 'a==a',
+ withEmptyKeys: { a: '=a' },
+ noEmptyKeys: { a: '=a' },
+ stringifyOutput: {
+ brackets: 'a==a',
+ indices: 'a==a',
+ repeat: 'a==a'
+ }
+ },
+ {
+ input: '=&a[]=b',
+ withEmptyKeys: { '': '', a: ['b'] },
+ stringifyOutput: {
+ brackets: '=&a[]=b',
+ indices: '=&a[0]=b',
+ repeat: '=&a=b'
+ },
+ noEmptyKeys: { a: ['b'] }
+ },
+ {
+ input: '=&a[]=b&a[]=c&a[2]=d',
+ withEmptyKeys: { '': '', a: ['b', 'c', 'd'] },
+ stringifyOutput: {
+ brackets: '=&a[]=b&a[]=c&a[]=d',
+ indices: '=&a[0]=b&a[1]=c&a[2]=d',
+ repeat: '=&a=b&a=c&a=d'
+ },
+ noEmptyKeys: { a: ['b', 'c', 'd'] }
+ },
+ {
+ input: '=a&=b',
+ withEmptyKeys: { '': ['a', 'b'] },
+ stringifyOutput: {
+ brackets: '[]=a&[]=b',
+ indices: '[0]=a&[1]=b',
+ repeat: '=a&=b'
+ },
+ noEmptyKeys: {}
+ },
+ {
+ input: '=a&foo=b',
+ withEmptyKeys: { '': 'a', foo: 'b' },
+ noEmptyKeys: { foo: 'b' },
+ stringifyOutput: {
+ brackets: '=a&foo=b',
+ indices: '=a&foo=b',
+ repeat: '=a&foo=b'
+ }
+ },
+ {
+ input: 'a[]=b&a=c&=',
+ withEmptyKeys: { '': '', a: ['b', 'c'] },
+ stringifyOutput: {
+ brackets: '=&a[]=b&a[]=c',
+ indices: '=&a[0]=b&a[1]=c',
+ repeat: '=&a=b&a=c'
+ },
+ noEmptyKeys: { a: ['b', 'c'] }
+ },
+ {
+ input: 'a[]=b&a=c&=',
+ withEmptyKeys: { '': '', a: ['b', 'c'] },
+ stringifyOutput: {
+ brackets: '=&a[]=b&a[]=c',
+ indices: '=&a[0]=b&a[1]=c',
+ repeat: '=&a=b&a=c'
+ },
+ noEmptyKeys: { a: ['b', 'c'] }
+ },
+ {
+ input: 'a[0]=b&a=c&=',
+ withEmptyKeys: { '': '', a: ['b', 'c'] },
+ stringifyOutput: {
+ brackets: '=&a[]=b&a[]=c',
+ indices: '=&a[0]=b&a[1]=c',
+ repeat: '=&a=b&a=c'
+ },
+ noEmptyKeys: { a: ['b', 'c'] }
+ },
+ {
+ input: 'a=b&a[]=c&=',
+ withEmptyKeys: { '': '', a: ['b', 'c'] },
+ stringifyOutput: {
+ brackets: '=&a[]=b&a[]=c',
+ indices: '=&a[0]=b&a[1]=c',
+ repeat: '=&a=b&a=c'
+ },
+ noEmptyKeys: { a: ['b', 'c'] }
+ },
+ {
+ input: 'a=b&a[0]=c&=',
+ withEmptyKeys: { '': '', a: ['b', 'c'] },
+ stringifyOutput: {
+ brackets: '=&a[]=b&a[]=c',
+ indices: '=&a[0]=b&a[1]=c',
+ repeat: '=&a=b&a=c'
+ },
+ noEmptyKeys: { a: ['b', 'c'] }
+ },
+ {
+ input: '[]=a&[]=b& []=1',
+ withEmptyKeys: { '': ['a', 'b'], ' ': ['1'] },
+ stringifyOutput: {
+ brackets: '[]=a&[]=b& []=1',
+ indices: '[0]=a&[1]=b& [0]=1',
+ repeat: '=a&=b& =1'
+ },
+ noEmptyKeys: { 0: 'a', 1: 'b', ' ': ['1'] }
+ },
+ {
+ input: '[0]=a&[1]=b&a[0]=1&a[1]=2',
+ withEmptyKeys: { '': ['a', 'b'], a: ['1', '2'] },
+ noEmptyKeys: { 0: 'a', 1: 'b', a: ['1', '2'] },
+ stringifyOutput: {
+ brackets: '[]=a&[]=b&a[]=1&a[]=2',
+ indices: '[0]=a&[1]=b&a[0]=1&a[1]=2',
+ repeat: '=a&=b&a=1&a=2'
+ }
+ },
+ {
+ input: '[deep]=a&[deep]=2',
+ withEmptyKeys: { '': { deep: ['a', '2'] }
+ },
+ stringifyOutput: {
+ brackets: '[deep][]=a&[deep][]=2',
+ indices: '[deep][0]=a&[deep][1]=2',
+ repeat: '[deep]=a&[deep]=2'
+ },
+ noEmptyKeys: { deep: ['a', '2'] }
+ },
+ {
+ input: '%5B0%5D=a&%5B1%5D=b',
+ withEmptyKeys: { '': ['a', 'b'] },
+ stringifyOutput: {
+ brackets: '[]=a&[]=b',
+ indices: '[0]=a&[1]=b',
+ repeat: '=a&=b'
+ },
+ noEmptyKeys: { 0: 'a', 1: 'b' }
+ }
+ ]
+};
diff --git a/node_modules/qs/test/parse.js b/node_modules/qs/test/parse.js
index 7d7b4dd..8a2f487 100644
--- a/node_modules/qs/test/parse.js
+++ b/node_modules/qs/test/parse.js
@@ -1,10 +1,17 @@
'use strict';
var test = require('tape');
+var hasPropertyDescriptors = require('has-property-descriptors')();
+var iconv = require('iconv-lite');
+var mockProperty = require('mock-property');
+var hasOverrideMistake = require('has-override-mistake')();
+var SaferBuffer = require('safer-buffer').Buffer;
+var v = require('es-value-fixtures');
+var inspect = require('object-inspect');
+var emptyTestCases = require('./empty-keys-cases').emptyTestCases;
+
var qs = require('../');
var utils = require('../lib/utils');
-var iconv = require('iconv-lite');
-var SaferBuffer = require('safer-buffer').Buffer;
test('parse()', function (t) {
t.test('parses a simple string', function (st) {
@@ -32,41 +39,156 @@ test('parse()', function (t) {
st.end();
});
- t.test('arrayFormat: brackets allows only explicit arrays', function (st) {
- st.deepEqual(qs.parse('a[]=b&a[]=c', { arrayFormat: 'brackets' }), { a: ['b', 'c'] });
- st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayFormat: 'brackets' }), { a: ['b', 'c'] });
- st.deepEqual(qs.parse('a=b,c', { arrayFormat: 'brackets' }), { a: 'b,c' });
- st.deepEqual(qs.parse('a=b&a=c', { arrayFormat: 'brackets' }), { a: ['b', 'c'] });
+ t.test('comma: false', function (st) {
+ st.deepEqual(qs.parse('a[]=b&a[]=c'), { a: ['b', 'c'] });
+ st.deepEqual(qs.parse('a[0]=b&a[1]=c'), { a: ['b', 'c'] });
+ st.deepEqual(qs.parse('a=b,c'), { a: 'b,c' });
+ st.deepEqual(qs.parse('a=b&a=c'), { a: ['b', 'c'] });
st.end();
});
- t.test('arrayFormat: indices allows only indexed arrays', function (st) {
- st.deepEqual(qs.parse('a[]=b&a[]=c', { arrayFormat: 'indices' }), { a: ['b', 'c'] });
- st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayFormat: 'indices' }), { a: ['b', 'c'] });
- st.deepEqual(qs.parse('a=b,c', { arrayFormat: 'indices' }), { a: 'b,c' });
- st.deepEqual(qs.parse('a=b&a=c', { arrayFormat: 'indices' }), { a: ['b', 'c'] });
- st.end();
- });
-
- t.test('arrayFormat: comma allows only comma-separated arrays', function (st) {
- st.deepEqual(qs.parse('a[]=b&a[]=c', { arrayFormat: 'comma' }), { a: ['b', 'c'] });
- st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayFormat: 'comma' }), { a: ['b', 'c'] });
- st.deepEqual(qs.parse('a=b,c', { arrayFormat: 'comma' }), { a: 'b,c' });
- st.deepEqual(qs.parse('a=b&a=c', { arrayFormat: 'comma' }), { a: ['b', 'c'] });
- st.end();
- });
-
- t.test('arrayFormat: repeat allows only repeated values', function (st) {
- st.deepEqual(qs.parse('a[]=b&a[]=c', { arrayFormat: 'repeat' }), { a: ['b', 'c'] });
- st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayFormat: 'repeat' }), { a: ['b', 'c'] });
- st.deepEqual(qs.parse('a=b,c', { arrayFormat: 'repeat' }), { a: 'b,c' });
- st.deepEqual(qs.parse('a=b&a=c', { arrayFormat: 'repeat' }), { a: ['b', 'c'] });
+ t.test('comma: true', function (st) {
+ st.deepEqual(qs.parse('a[]=b&a[]=c', { comma: true }), { a: ['b', 'c'] });
+ st.deepEqual(qs.parse('a[0]=b&a[1]=c', { comma: true }), { a: ['b', 'c'] });
+ st.deepEqual(qs.parse('a=b,c', { comma: true }), { a: ['b', 'c'] });
+ st.deepEqual(qs.parse('a=b&a=c', { comma: true }), { a: ['b', 'c'] });
st.end();
});
t.test('allows enabling dot notation', function (st) {
st.deepEqual(qs.parse('a.b=c'), { 'a.b': 'c' });
st.deepEqual(qs.parse('a.b=c', { allowDots: true }), { a: { b: 'c' } });
+
+ st.end();
+ });
+
+ t.test('decode dot keys correctly', function (st) {
+ st.deepEqual(
+ qs.parse('name%252Eobj.first=John&name%252Eobj.last=Doe', { allowDots: false, decodeDotInKeys: false }),
+ { 'name%2Eobj.first': 'John', 'name%2Eobj.last': 'Doe' },
+ 'with allowDots false and decodeDotInKeys false'
+ );
+ st.deepEqual(
+ qs.parse('name.obj.first=John&name.obj.last=Doe', { allowDots: true, decodeDotInKeys: false }),
+ { name: { obj: { first: 'John', last: 'Doe' } } },
+ 'with allowDots false and decodeDotInKeys false'
+ );
+ st.deepEqual(
+ qs.parse('name%252Eobj.first=John&name%252Eobj.last=Doe', { allowDots: true, decodeDotInKeys: false }),
+ { 'name%2Eobj': { first: 'John', last: 'Doe' } },
+ 'with allowDots true and decodeDotInKeys false'
+ );
+ st.deepEqual(
+ qs.parse('name%252Eobj.first=John&name%252Eobj.last=Doe', { allowDots: true, decodeDotInKeys: true }),
+ { 'name.obj': { first: 'John', last: 'Doe' } },
+ 'with allowDots true and decodeDotInKeys true'
+ );
+
+ st.deepEqual(
+ qs.parse(
+ 'name%252Eobj%252Esubobject.first%252Egodly%252Ename=John&name%252Eobj%252Esubobject.last=Doe',
+ { allowDots: false, decodeDotInKeys: false }
+ ),
+ { 'name%2Eobj%2Esubobject.first%2Egodly%2Ename': 'John', 'name%2Eobj%2Esubobject.last': 'Doe' },
+ 'with allowDots false and decodeDotInKeys false'
+ );
+ st.deepEqual(
+ qs.parse(
+ 'name.obj.subobject.first.godly.name=John&name.obj.subobject.last=Doe',
+ { allowDots: true, decodeDotInKeys: false }
+ ),
+ { name: { obj: { subobject: { first: { godly: { name: 'John' } }, last: 'Doe' } } } },
+ 'with allowDots true and decodeDotInKeys false'
+ );
+ st.deepEqual(
+ qs.parse(
+ 'name%252Eobj%252Esubobject.first%252Egodly%252Ename=John&name%252Eobj%252Esubobject.last=Doe',
+ { allowDots: true, decodeDotInKeys: true }
+ ),
+ { 'name.obj.subobject': { 'first.godly.name': 'John', last: 'Doe' } },
+ 'with allowDots true and decodeDotInKeys true'
+ );
+ st.deepEqual(
+ qs.parse('name%252Eobj.first=John&name%252Eobj.last=Doe'),
+ { 'name%2Eobj.first': 'John', 'name%2Eobj.last': 'Doe' },
+ 'with allowDots and decodeDotInKeys undefined'
+ );
+
+ st.end();
+ });
+
+ t.test('should decode dot in key of object, and allow enabling dot notation when decodeDotInKeys is set to true and allowDots is undefined', function (st) {
+ st.deepEqual(
+ qs.parse(
+ 'name%252Eobj%252Esubobject.first%252Egodly%252Ename=John&name%252Eobj%252Esubobject.last=Doe',
+ { decodeDotInKeys: true }
+ ),
+ { 'name.obj.subobject': { 'first.godly.name': 'John', last: 'Doe' } },
+ 'with allowDots undefined and decodeDotInKeys true'
+ );
+
+ st.end();
+ });
+
+ t.test('should throw when decodeDotInKeys is not of type boolean', function (st) {
+ st['throws'](
+ function () { qs.parse('foo[]&bar=baz', { decodeDotInKeys: 'foobar' }); },
+ TypeError
+ );
+
+ st['throws'](
+ function () { qs.parse('foo[]&bar=baz', { decodeDotInKeys: 0 }); },
+ TypeError
+ );
+ st['throws'](
+ function () { qs.parse('foo[]&bar=baz', { decodeDotInKeys: NaN }); },
+ TypeError
+ );
+
+ st['throws'](
+ function () { qs.parse('foo[]&bar=baz', { decodeDotInKeys: null }); },
+ TypeError
+ );
+
+ st.end();
+ });
+
+ t.test('allows empty arrays in obj values', function (st) {
+ st.deepEqual(qs.parse('foo[]&bar=baz', { allowEmptyArrays: true }), { foo: [], bar: 'baz' });
+ st.deepEqual(qs.parse('foo[]&bar=baz', { allowEmptyArrays: false }), { foo: [''], bar: 'baz' });
+
+ st.end();
+ });
+
+ t.test('should throw when allowEmptyArrays is not of type boolean', function (st) {
+ st['throws'](
+ function () { qs.parse('foo[]&bar=baz', { allowEmptyArrays: 'foobar' }); },
+ TypeError
+ );
+
+ st['throws'](
+ function () { qs.parse('foo[]&bar=baz', { allowEmptyArrays: 0 }); },
+ TypeError
+ );
+ st['throws'](
+ function () { qs.parse('foo[]&bar=baz', { allowEmptyArrays: NaN }); },
+ TypeError
+ );
+
+ st['throws'](
+ function () { qs.parse('foo[]&bar=baz', { allowEmptyArrays: null }); },
+ TypeError
+ );
+
+ st.end();
+ });
+
+ t.test('allowEmptyArrays + strictNullHandling', function (st) {
+ st.deepEqual(
+ qs.parse('testEmptyArray[]', { strictNullHandling: true, allowEmptyArrays: true }),
+ { testEmptyArray: [] }
+ );
+
st.end();
});
@@ -322,14 +444,14 @@ test('parse()', function (t) {
});
t.test('should not throw when a native prototype has an enumerable property', function (st) {
- Object.prototype.crash = '';
- Array.prototype.crash = '';
+ st.intercept(Object.prototype, 'crash', { value: '' });
+ st.intercept(Array.prototype, 'crash', { value: '' });
+
st.doesNotThrow(qs.parse.bind(null, 'a=b'));
st.deepEqual(qs.parse('a=b'), { a: 'b' });
st.doesNotThrow(qs.parse.bind(null, 'a[][b]=c'));
st.deepEqual(qs.parse('a[][b]=c'), { a: [{ b: 'c' }] });
- delete Object.prototype.crash;
- delete Array.prototype.crash;
+
st.end();
});
@@ -360,8 +482,14 @@ test('parse()', function (t) {
t.test('allows overriding array limit', function (st) {
st.deepEqual(qs.parse('a[0]=b', { arrayLimit: -1 }), { a: { 0: 'b' } });
+ st.deepEqual(qs.parse('a[0]=b', { arrayLimit: 0 }), { a: ['b'] });
+
st.deepEqual(qs.parse('a[-1]=b', { arrayLimit: -1 }), { a: { '-1': 'b' } });
+ st.deepEqual(qs.parse('a[-1]=b', { arrayLimit: 0 }), { a: { '-1': 'b' } });
+
+ st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayLimit: -1 }), { a: { 0: 'b', 1: 'c' } });
st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayLimit: 0 }), { a: { 0: 'b', 1: 'c' } });
+
st.end();
});
@@ -452,6 +580,15 @@ test('parse()', function (t) {
st.end();
});
+ t.test('parses url-encoded brackets holds array of arrays when having two parts of strings with comma as array divider', function (st) {
+ st.deepEqual(qs.parse('foo%5B%5D=1,2,3&foo%5B%5D=4,5,6', { comma: true }), { foo: [['1', '2', '3'], ['4', '5', '6']] });
+ st.deepEqual(qs.parse('foo%5B%5D=1,2,3&foo%5B%5D=', { comma: true }), { foo: [['1', '2', '3'], ''] });
+ st.deepEqual(qs.parse('foo%5B%5D=1,2,3&foo%5B%5D=,', { comma: true }), { foo: [['1', '2', '3'], ['', '']] });
+ st.deepEqual(qs.parse('foo%5B%5D=1,2,3&foo%5B%5D=a', { comma: true }), { foo: [['1', '2', '3'], 'a'] });
+
+ st.end();
+ });
+
t.test('parses comma delimited array while having percent-encoded comma treated as normal text', function (st) {
st.deepEqual(qs.parse('foo=a%2Cb', { comma: true }), { foo: 'a,b' });
st.deepEqual(qs.parse('foo=a%2C%20b,d', { comma: true }), { foo: ['a, b', 'd'] });
@@ -499,10 +636,12 @@ test('parse()', function (t) {
});
t.test('does not blow up when Buffer global is missing', function (st) {
- var tempBuffer = global.Buffer;
- delete global.Buffer;
+ var restore = mockProperty(global, 'Buffer', { 'delete': true });
+
var result = qs.parse('a=b&c=d');
- global.Buffer = tempBuffer;
+
+ restore();
+
st.deepEqual(result, { a: 'b', c: 'd' });
st.end();
});
@@ -601,6 +740,34 @@ test('parse()', function (t) {
st.end();
});
+ t.test('does not crash when the global Object prototype is frozen', { skip: !hasPropertyDescriptors || !hasOverrideMistake }, function (st) {
+ // We can't actually freeze the global Object prototype as that will interfere with other tests, and once an object is frozen, it
+ // can't be unfrozen. Instead, we add a new non-writable property to simulate this.
+ st.teardown(mockProperty(Object.prototype, 'frozenProp', { value: 'foo', nonWritable: true, nonEnumerable: true }));
+
+ st['throws'](
+ function () {
+ var obj = {};
+ obj.frozenProp = 'bar';
+ },
+ // node < 6 has a different error message
+ /^TypeError: Cannot assign to read only property 'frozenProp' of (?:object '#'|#)/,
+ 'regular assignment of an inherited non-writable property throws'
+ );
+
+ var parsed;
+ st.doesNotThrow(
+ function () {
+ parsed = qs.parse('frozenProp', { allowPrototypes: false });
+ },
+ 'parsing a nonwritable Object.prototype property does not throw'
+ );
+
+ st.deepEqual(parsed, {}, 'bare "frozenProp" results in {}');
+
+ st.end();
+ });
+
t.test('params starting with a closing bracket', function (st) {
st.deepEqual(qs.parse(']=toString'), { ']': 'toString' });
st.deepEqual(qs.parse(']]=toString'), { ']]': 'toString' });
@@ -853,3 +1020,151 @@ test('parse()', function (t) {
t.end();
});
+
+test('parses empty keys', function (t) {
+ emptyTestCases.forEach(function (testCase) {
+ t.test('skips empty string key with ' + testCase.input, function (st) {
+ st.deepEqual(qs.parse(testCase.input), testCase.noEmptyKeys);
+
+ st.end();
+ });
+ });
+});
+
+test('`duplicates` option', function (t) {
+ v.nonStrings.concat('not a valid option').forEach(function (invalidOption) {
+ if (typeof invalidOption !== 'undefined') {
+ t['throws'](
+ function () { qs.parse('', { duplicates: invalidOption }); },
+ TypeError,
+ 'throws on invalid option: ' + inspect(invalidOption)
+ );
+ }
+ });
+
+ t.deepEqual(
+ qs.parse('foo=bar&foo=baz'),
+ { foo: ['bar', 'baz'] },
+ 'duplicates: default, combine'
+ );
+
+ t.deepEqual(
+ qs.parse('foo=bar&foo=baz', { duplicates: 'combine' }),
+ { foo: ['bar', 'baz'] },
+ 'duplicates: combine'
+ );
+
+ t.deepEqual(
+ qs.parse('foo=bar&foo=baz', { duplicates: 'first' }),
+ { foo: 'bar' },
+ 'duplicates: first'
+ );
+
+ t.deepEqual(
+ qs.parse('foo=bar&foo=baz', { duplicates: 'last' }),
+ { foo: 'baz' },
+ 'duplicates: last'
+ );
+
+ t.end();
+});
+
+test('qs strictDepth option - throw cases', function (t) {
+ t.test('throws an exception when depth exceeds the limit with strictDepth: true', function (st) {
+ st['throws'](
+ function () {
+ qs.parse('a[b][c][d][e][f][g][h][i]=j', { depth: 1, strictDepth: true });
+ },
+ RangeError,
+ 'Should throw RangeError'
+ );
+ st.end();
+ });
+
+ t.test('throws an exception for multiple nested arrays with strictDepth: true', function (st) {
+ st['throws'](
+ function () {
+ qs.parse('a[0][1][2][3][4]=b', { depth: 3, strictDepth: true });
+ },
+ RangeError,
+ 'Should throw RangeError'
+ );
+ st.end();
+ });
+
+ t.test('throws an exception for nested objects and arrays with strictDepth: true', function (st) {
+ st['throws'](
+ function () {
+ qs.parse('a[b][c][0][d][e]=f', { depth: 3, strictDepth: true });
+ },
+ RangeError,
+ 'Should throw RangeError'
+ );
+ st.end();
+ });
+
+ t.test('throws an exception for different types of values with strictDepth: true', function (st) {
+ st['throws'](
+ function () {
+ qs.parse('a[b][c][d][e]=true&a[b][c][d][f]=42', { depth: 3, strictDepth: true });
+ },
+ RangeError,
+ 'Should throw RangeError'
+ );
+ st.end();
+ });
+
+});
+
+test('qs strictDepth option - non-throw cases', function (t) {
+ t.test('when depth is 0 and strictDepth true, do not throw', function (st) {
+ st.doesNotThrow(
+ function () {
+ qs.parse('a[b][c][d][e]=true&a[b][c][d][f]=42', { depth: 0, strictDepth: true });
+ },
+ RangeError,
+ 'Should not throw RangeError'
+ );
+ st.end();
+ });
+
+ t.test('parses successfully when depth is within the limit with strictDepth: true', function (st) {
+ st.doesNotThrow(
+ function () {
+ var result = qs.parse('a[b]=c', { depth: 1, strictDepth: true });
+ st.deepEqual(result, { a: { b: 'c' } }, 'Should parse correctly');
+ }
+ );
+ st.end();
+ });
+
+ t.test('does not throw an exception when depth exceeds the limit with strictDepth: false', function (st) {
+ st.doesNotThrow(
+ function () {
+ var result = qs.parse('a[b][c][d][e][f][g][h][i]=j', { depth: 1 });
+ st.deepEqual(result, { a: { b: { '[c][d][e][f][g][h][i]': 'j' } } }, 'Should parse with depth limit');
+ }
+ );
+ st.end();
+ });
+
+ t.test('parses successfully when depth is within the limit with strictDepth: false', function (st) {
+ st.doesNotThrow(
+ function () {
+ var result = qs.parse('a[b]=c', { depth: 1 });
+ st.deepEqual(result, { a: { b: 'c' } }, 'Should parse correctly');
+ }
+ );
+ st.end();
+ });
+
+ t.test('does not throw when depth is exactly at the limit with strictDepth: true', function (st) {
+ st.doesNotThrow(
+ function () {
+ var result = qs.parse('a[b][c]=d', { depth: 2, strictDepth: true });
+ st.deepEqual(result, { a: { b: { c: 'd' } } }, 'Should parse correctly');
+ }
+ );
+ st.end();
+ });
+});
diff --git a/node_modules/qs/test/stringify.js b/node_modules/qs/test/stringify.js
index 3227273..12b1c71 100644
--- a/node_modules/qs/test/stringify.js
+++ b/node_modules/qs/test/stringify.js
@@ -6,6 +6,8 @@ var utils = require('../lib/utils');
var iconv = require('iconv-lite');
var SaferBuffer = require('safer-buffer').Buffer;
var hasSymbols = require('has-symbols');
+var mockProperty = require('mock-property');
+var emptyTestCases = require('./empty-keys-cases').emptyTestCases;
var hasBigInt = typeof BigInt === 'function';
test('stringify()', function (t) {
@@ -63,6 +65,138 @@ test('stringify()', function (t) {
st.end();
});
+ t.test('encodes dot in key of object when encodeDotInKeys and allowDots is provided', function (st) {
+ st.equal(
+ qs.stringify(
+ { 'name.obj': { first: 'John', last: 'Doe' } },
+ { allowDots: false, encodeDotInKeys: false }
+ ),
+ 'name.obj%5Bfirst%5D=John&name.obj%5Blast%5D=Doe',
+ 'with allowDots false and encodeDotInKeys false'
+ );
+ st.equal(
+ qs.stringify(
+ { 'name.obj': { first: 'John', last: 'Doe' } },
+ { allowDots: true, encodeDotInKeys: false }
+ ),
+ 'name.obj.first=John&name.obj.last=Doe',
+ 'with allowDots true and encodeDotInKeys false'
+ );
+ st.equal(
+ qs.stringify(
+ { 'name.obj': { first: 'John', last: 'Doe' } },
+ { allowDots: false, encodeDotInKeys: true }
+ ),
+ 'name%252Eobj%5Bfirst%5D=John&name%252Eobj%5Blast%5D=Doe',
+ 'with allowDots false and encodeDotInKeys true'
+ );
+ st.equal(
+ qs.stringify(
+ { 'name.obj': { first: 'John', last: 'Doe' } },
+ { allowDots: true, encodeDotInKeys: true }
+ ),
+ 'name%252Eobj.first=John&name%252Eobj.last=Doe',
+ 'with allowDots true and encodeDotInKeys true'
+ );
+
+ st.equal(
+ qs.stringify(
+ { 'name.obj.subobject': { 'first.godly.name': 'John', last: 'Doe' } },
+ { allowDots: false, encodeDotInKeys: false }
+ ),
+ 'name.obj.subobject%5Bfirst.godly.name%5D=John&name.obj.subobject%5Blast%5D=Doe',
+ 'with allowDots false and encodeDotInKeys false'
+ );
+ st.equal(
+ qs.stringify(
+ { 'name.obj.subobject': { 'first.godly.name': 'John', last: 'Doe' } },
+ { allowDots: true, encodeDotInKeys: false }
+ ),
+ 'name.obj.subobject.first.godly.name=John&name.obj.subobject.last=Doe',
+ 'with allowDots false and encodeDotInKeys false'
+ );
+ st.equal(
+ qs.stringify(
+ { 'name.obj.subobject': { 'first.godly.name': 'John', last: 'Doe' } },
+ { allowDots: false, encodeDotInKeys: true }
+ ),
+ 'name%252Eobj%252Esubobject%5Bfirst.godly.name%5D=John&name%252Eobj%252Esubobject%5Blast%5D=Doe',
+ 'with allowDots false and encodeDotInKeys true'
+ );
+ st.equal(
+ qs.stringify(
+ { 'name.obj.subobject': { 'first.godly.name': 'John', last: 'Doe' } },
+ { allowDots: true, encodeDotInKeys: true }
+ ),
+ 'name%252Eobj%252Esubobject.first%252Egodly%252Ename=John&name%252Eobj%252Esubobject.last=Doe',
+ 'with allowDots true and encodeDotInKeys true'
+ );
+
+ st.end();
+ });
+
+ t.test('should encode dot in key of object, and automatically set allowDots to `true` when encodeDotInKeys is true and allowDots in undefined', function (st) {
+ st.equal(
+ qs.stringify(
+ { 'name.obj.subobject': { 'first.godly.name': 'John', last: 'Doe' } },
+ { encodeDotInKeys: true }
+ ),
+ 'name%252Eobj%252Esubobject.first%252Egodly%252Ename=John&name%252Eobj%252Esubobject.last=Doe',
+ 'with allowDots undefined and encodeDotInKeys true'
+ );
+ st.end();
+ });
+
+ t.test('should encode dot in key of object when encodeDotInKeys and allowDots is provided, and nothing else when encodeValuesOnly is provided', function (st) {
+ st.equal(
+ qs.stringify({ 'name.obj': { first: 'John', last: 'Doe' } }, {
+ encodeDotInKeys: true, allowDots: true, encodeValuesOnly: true
+ }),
+ 'name%2Eobj.first=John&name%2Eobj.last=Doe'
+ );
+
+ st.equal(
+ qs.stringify({ 'name.obj.subobject': { 'first.godly.name': 'John', last: 'Doe' } }, { allowDots: true, encodeDotInKeys: true, encodeValuesOnly: true }),
+ 'name%2Eobj%2Esubobject.first%2Egodly%2Ename=John&name%2Eobj%2Esubobject.last=Doe'
+ );
+
+ st.end();
+ });
+
+ t.test('throws when `commaRoundTrip` is not a boolean', function (st) {
+ st['throws'](
+ function () { qs.stringify({}, { commaRoundTrip: 'not a boolean' }); },
+ TypeError,
+ 'throws when `commaRoundTrip` is not a boolean'
+ );
+
+ st.end();
+ });
+
+ t.test('throws when `encodeDotInKeys` is not a boolean', function (st) {
+ st['throws'](
+ function () { qs.stringify({ a: [], b: 'zz' }, { encodeDotInKeys: 'foobar' }); },
+ TypeError
+ );
+
+ st['throws'](
+ function () { qs.stringify({ a: [], b: 'zz' }, { encodeDotInKeys: 0 }); },
+ TypeError
+ );
+
+ st['throws'](
+ function () { qs.stringify({ a: [], b: 'zz' }, { encodeDotInKeys: NaN }); },
+ TypeError
+ );
+
+ st['throws'](
+ function () { qs.stringify({ a: [], b: 'zz' }, { encodeDotInKeys: null }); },
+ TypeError
+ );
+
+ st.end();
+ });
+
t.test('adds query prefix', function (st) {
st.equal(qs.stringify({ a: 'b' }, { addQueryPrefix: true }), '?a=b');
st.end();
@@ -86,7 +220,7 @@ test('stringify()', function (t) {
st.end();
});
- t.test('stringifies a nested object with dots notation', function (st) {
+ t.test('`allowDots` option: stringifies a nested object with dots notation', function (st) {
st.equal(qs.stringify({ a: { b: 'c' } }, { allowDots: true }), 'a.b=c');
st.equal(qs.stringify({ a: { b: { c: { d: 'e' } } } }, { allowDots: true }), 'a.b.c.d=e');
st.end();
@@ -108,6 +242,11 @@ test('stringify()', function (t) {
'a=b%2Cc%2Cd',
'comma => comma'
);
+ st.equal(
+ qs.stringify({ a: ['b', 'c', 'd'] }, { arrayFormat: 'comma', commaRoundTrip: true }),
+ 'a=b%2Cc%2Cd',
+ 'comma round trip => comma'
+ );
st.equal(
qs.stringify({ a: ['b', 'c', 'd'] }),
'a%5B0%5D=b&a%5B1%5D=c&a%5B2%5D=d',
@@ -116,18 +255,75 @@ test('stringify()', function (t) {
st.end();
});
- t.test('omits nulls when asked', function (st) {
- st.equal(qs.stringify({ a: 'b', c: null }, { skipNulls: true }), 'a=b');
- st.end();
- });
+ t.test('`skipNulls` option', function (st) {
+ st.equal(
+ qs.stringify({ a: 'b', c: null }, { skipNulls: true }),
+ 'a=b',
+ 'omits nulls when asked'
+ );
+
+ st.equal(
+ qs.stringify({ a: { b: 'c', d: null } }, { skipNulls: true }),
+ 'a%5Bb%5D=c',
+ 'omits nested nulls when asked'
+ );
- t.test('omits nested nulls when asked', function (st) {
- st.equal(qs.stringify({ a: { b: 'c', d: null } }, { skipNulls: true }), 'a%5Bb%5D=c');
st.end();
});
t.test('omits array indices when asked', function (st) {
st.equal(qs.stringify({ a: ['b', 'c', 'd'] }, { indices: false }), 'a=b&a=c&a=d');
+
+ st.end();
+ });
+
+ t.test('omits object key/value pair when value is empty array', function (st) {
+ st.equal(qs.stringify({ a: [], b: 'zz' }), 'b=zz');
+
+ st.end();
+ });
+
+ t.test('should not omit object key/value pair when value is empty array and when asked', function (st) {
+ st.equal(qs.stringify({ a: [], b: 'zz' }), 'b=zz');
+ st.equal(qs.stringify({ a: [], b: 'zz' }, { allowEmptyArrays: false }), 'b=zz');
+ st.equal(qs.stringify({ a: [], b: 'zz' }, { allowEmptyArrays: true }), 'a[]&b=zz');
+
+ st.end();
+ });
+
+ t.test('should throw when allowEmptyArrays is not of type boolean', function (st) {
+ st['throws'](
+ function () { qs.stringify({ a: [], b: 'zz' }, { allowEmptyArrays: 'foobar' }); },
+ TypeError
+ );
+
+ st['throws'](
+ function () { qs.stringify({ a: [], b: 'zz' }, { allowEmptyArrays: 0 }); },
+ TypeError
+ );
+
+ st['throws'](
+ function () { qs.stringify({ a: [], b: 'zz' }, { allowEmptyArrays: NaN }); },
+ TypeError
+ );
+
+ st['throws'](
+ function () { qs.stringify({ a: [], b: 'zz' }, { allowEmptyArrays: null }); },
+ TypeError
+ );
+
+ st.end();
+ });
+
+ t.test('allowEmptyArrays + strictNullHandling', function (st) {
+ st.equal(
+ qs.stringify(
+ { testEmptyArray: [] },
+ { strictNullHandling: true, allowEmptyArrays: true }
+ ),
+ 'testEmptyArray[]'
+ );
+
st.end();
});
@@ -155,6 +351,7 @@ test('stringify()', function (t) {
s2t.equal(qs.stringify({ a: ['c', 'd'] }, { encodeValuesOnly: true, arrayFormat: 'indices' }), 'a[0]=c&a[1]=d');
s2t.equal(qs.stringify({ a: ['c', 'd'] }, { encodeValuesOnly: true, arrayFormat: 'brackets' }), 'a[]=c&a[]=d');
s2t.equal(qs.stringify({ a: ['c', 'd'] }, { encodeValuesOnly: true, arrayFormat: 'comma' }), 'a=c,d');
+ s2t.equal(qs.stringify({ a: ['c', 'd'] }, { encodeValuesOnly: true, arrayFormat: 'comma', commaRoundTrip: true }), 'a=c,d');
s2t.equal(qs.stringify({ a: ['c', 'd'] }, { encodeValuesOnly: true }), 'a[0]=c&a[1]=d');
s2t.end();
@@ -164,6 +361,9 @@ test('stringify()', function (t) {
s2t.equal(qs.stringify({ a: ['c,d', 'e'] }, { encodeValuesOnly: true, arrayFormat: 'comma' }), 'a=c%2Cd,e');
s2t.equal(qs.stringify({ a: ['c,d', 'e'] }, { arrayFormat: 'comma' }), 'a=c%2Cd%2Ce');
+ s2t.equal(qs.stringify({ a: ['c,d', 'e'] }, { encodeValuesOnly: true, arrayFormat: 'comma', commaRoundTrip: true }), 'a=c%2Cd,e');
+ s2t.equal(qs.stringify({ a: ['c,d', 'e'] }, { arrayFormat: 'comma', commaRoundTrip: true }), 'a=c%2Cd%2Ce');
+
s2t.end();
});
@@ -254,36 +454,44 @@ test('stringify()', function (t) {
t.test('stringifies an object inside an array', function (st) {
st.equal(
- qs.stringify({ a: [{ b: 'c' }] }, { arrayFormat: 'indices' }),
- 'a%5B0%5D%5Bb%5D=c', // a[0][b]=c
- 'indices => brackets'
+ qs.stringify({ a: [{ b: 'c' }] }, { arrayFormat: 'indices', encodeValuesOnly: true }),
+ 'a[0][b]=c',
+ 'indices => indices'
);
st.equal(
- qs.stringify({ a: [{ b: 'c' }] }, { arrayFormat: 'brackets' }),
- 'a%5B%5D%5Bb%5D=c', // a[][b]=c
+ qs.stringify({ a: [{ b: 'c' }] }, { arrayFormat: 'repeat', encodeValuesOnly: true }),
+ 'a[b]=c',
+ 'repeat => repeat'
+ );
+ st.equal(
+ qs.stringify({ a: [{ b: 'c' }] }, { arrayFormat: 'brackets', encodeValuesOnly: true }),
+ 'a[][b]=c',
'brackets => brackets'
);
st.equal(
- qs.stringify({ a: [{ b: 'c' }] }),
- 'a%5B0%5D%5Bb%5D=c',
+ qs.stringify({ a: [{ b: 'c' }] }, { encodeValuesOnly: true }),
+ 'a[0][b]=c',
'default => indices'
);
st.equal(
- qs.stringify({ a: [{ b: { c: [1] } }] }, { arrayFormat: 'indices' }),
- 'a%5B0%5D%5Bb%5D%5Bc%5D%5B0%5D=1',
+ qs.stringify({ a: [{ b: { c: [1] } }] }, { arrayFormat: 'indices', encodeValuesOnly: true }),
+ 'a[0][b][c][0]=1',
'indices => indices'
);
-
st.equal(
- qs.stringify({ a: [{ b: { c: [1] } }] }, { arrayFormat: 'brackets' }),
- 'a%5B%5D%5Bb%5D%5Bc%5D%5B%5D=1',
+ qs.stringify({ a: [{ b: { c: [1] } }] }, { arrayFormat: 'repeat', encodeValuesOnly: true }),
+ 'a[b][c]=1',
+ 'repeat => repeat'
+ );
+ st.equal(
+ qs.stringify({ a: [{ b: { c: [1] } }] }, { arrayFormat: 'brackets', encodeValuesOnly: true }),
+ 'a[][b][c][]=1',
'brackets => brackets'
);
-
st.equal(
- qs.stringify({ a: [{ b: { c: [1] } }] }),
- 'a%5B0%5D%5Bb%5D%5Bc%5D%5B0%5D=1',
+ qs.stringify({ a: [{ b: { c: [1] } }] }, { encodeValuesOnly: true }),
+ 'a[0][b][c][0]=1',
'default => indices'
);
@@ -385,17 +593,17 @@ test('stringify()', function (t) {
st.end();
});
- t.test('uses indices notation for arrays when no arrayFormat=indices', function (st) {
+ t.test('uses indices notation for arrays when arrayFormat=indices', function (st) {
st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' }), 'a%5B0%5D=b&a%5B1%5D=c');
st.end();
});
- t.test('uses repeat notation for arrays when no arrayFormat=repeat', function (st) {
+ t.test('uses repeat notation for arrays when arrayFormat=repeat', function (st) {
st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' }), 'a=b&a=c');
st.end();
});
- t.test('uses brackets notation for arrays when no arrayFormat=brackets', function (st) {
+ t.test('uses brackets notation for arrays when arrayFormat=brackets', function (st) {
st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' }), 'a%5B%5D=b&a%5B%5D=c');
st.end();
});
@@ -492,10 +700,11 @@ test('stringify()', function (t) {
});
t.test('skips properties that are part of the object prototype', function (st) {
- Object.prototype.crash = 'test';
+ st.intercept(Object.prototype, 'crash', { value: 'test' });
+
st.equal(qs.stringify({ a: 'b' }), 'a=b');
st.equal(qs.stringify({ a: { b: 'c' } }), 'a%5Bb%5D=c');
- delete Object.prototype.crash;
+
st.end();
});
@@ -519,10 +728,12 @@ test('stringify()', function (t) {
});
t.test('does not blow up when Buffer global is missing', function (st) {
- var tempBuffer = global.Buffer;
- delete global.Buffer;
+ var restore = mockProperty(global, 'Buffer', { 'delete': true });
+
var result = qs.stringify({ a: 'b', c: 'd' });
- global.Buffer = tempBuffer;
+
+ restore();
+
st.equal(result, 'a=b&c=d');
st.end();
});
@@ -571,9 +782,17 @@ test('stringify()', function (t) {
};
st.equal(
- qs.stringify({ filters: { $and: [p1, p2] } }, { encodeValuesOnly: true }),
+ qs.stringify({ filters: { $and: [p1, p2] } }, { encodeValuesOnly: true, arrayFormat: 'indices' }),
'filters[$and][0][function]=gte&filters[$and][0][arguments][0][function]=hour_of_day&filters[$and][0][arguments][1]=0&filters[$and][1][function]=lte&filters[$and][1][arguments][0][function]=hour_of_day&filters[$and][1][arguments][1]=23'
);
+ st.equal(
+ qs.stringify({ filters: { $and: [p1, p2] } }, { encodeValuesOnly: true, arrayFormat: 'brackets' }),
+ 'filters[$and][][function]=gte&filters[$and][][arguments][][function]=hour_of_day&filters[$and][][arguments][]=0&filters[$and][][function]=lte&filters[$and][][arguments][][function]=hour_of_day&filters[$and][][arguments][]=23'
+ );
+ st.equal(
+ qs.stringify({ filters: { $and: [p1, p2] } }, { encodeValuesOnly: true, arrayFormat: 'repeat' }),
+ 'filters[$and][function]=gte&filters[$and][arguments][function]=hour_of_day&filters[$and][arguments]=0&filters[$and][function]=lte&filters[$and][arguments][function]=hour_of_day&filters[$and][arguments]=23'
+ );
st.end();
});
@@ -686,13 +905,28 @@ test('stringify()', function (t) {
st.end();
});
+ t.test('receives the default encoder as a second argument', function (st) {
+ st.plan(8);
+
+ qs.stringify({ a: 1, b: new Date(), c: true, d: [1] }, {
+ encoder: function (str) {
+ st.match(typeof str, /^(?:string|number|boolean)$/);
+ return '';
+ }
+ });
+
+ st.end();
+ });
+
t.test('receives the default encoder as a second argument', function (st) {
st.plan(2);
+
qs.stringify({ a: 1 }, {
encoder: function (str, defaultEncoder) {
st.equal(defaultEncoder, utils.encode);
}
});
+
st.end();
});
@@ -820,16 +1054,53 @@ test('stringify()', function (t) {
st.equal(
qs.stringify(
{ a: 'b', c: ['d', 'e=f'], f: [['g'], ['h']] },
- { encodeValuesOnly: true }
+ { encodeValuesOnly: true, arrayFormat: 'indices' }
),
- 'a=b&c[0]=d&c[1]=e%3Df&f[0][0]=g&f[1][0]=h'
+ 'a=b&c[0]=d&c[1]=e%3Df&f[0][0]=g&f[1][0]=h',
+ 'encodeValuesOnly + indices'
);
st.equal(
qs.stringify(
- { a: 'b', c: ['d', 'e'], f: [['g'], ['h']] }
+ { a: 'b', c: ['d', 'e=f'], f: [['g'], ['h']] },
+ { encodeValuesOnly: true, arrayFormat: 'brackets' }
),
- 'a=b&c%5B0%5D=d&c%5B1%5D=e&f%5B0%5D%5B0%5D=g&f%5B1%5D%5B0%5D=h'
+ 'a=b&c[]=d&c[]=e%3Df&f[][]=g&f[][]=h',
+ 'encodeValuesOnly + brackets'
);
+ st.equal(
+ qs.stringify(
+ { a: 'b', c: ['d', 'e=f'], f: [['g'], ['h']] },
+ { encodeValuesOnly: true, arrayFormat: 'repeat' }
+ ),
+ 'a=b&c=d&c=e%3Df&f=g&f=h',
+ 'encodeValuesOnly + repeat'
+ );
+
+ st.equal(
+ qs.stringify(
+ { a: 'b', c: ['d', 'e'], f: [['g'], ['h']] },
+ { arrayFormat: 'indices' }
+ ),
+ 'a=b&c%5B0%5D=d&c%5B1%5D=e&f%5B0%5D%5B0%5D=g&f%5B1%5D%5B0%5D=h',
+ 'no encodeValuesOnly + indices'
+ );
+ st.equal(
+ qs.stringify(
+ { a: 'b', c: ['d', 'e'], f: [['g'], ['h']] },
+ { arrayFormat: 'brackets' }
+ ),
+ 'a=b&c%5B%5D=d&c%5B%5D=e&f%5B%5D%5B%5D=g&f%5B%5D%5B%5D=h',
+ 'no encodeValuesOnly + brackets'
+ );
+ st.equal(
+ qs.stringify(
+ { a: 'b', c: ['d', 'e'], f: [['g'], ['h']] },
+ { arrayFormat: 'repeat' }
+ ),
+ 'a=b&c=d&c=e&f=g&f=h',
+ 'no encodeValuesOnly + repeat'
+ );
+
st.end();
});
@@ -866,13 +1137,19 @@ test('stringify()', function (t) {
st.end();
});
- t.test('adds the right sentinel when instructed to and the charset is utf-8', function (st) {
- st.equal(qs.stringify({ a: 'æ' }, { charsetSentinel: true, charset: 'utf-8' }), 'utf8=%E2%9C%93&a=%C3%A6');
- st.end();
- });
+ t.test('`charsetSentinel` option', function (st) {
+ st.equal(
+ qs.stringify({ a: 'æ' }, { charsetSentinel: true, charset: 'utf-8' }),
+ 'utf8=%E2%9C%93&a=%C3%A6',
+ 'adds the right sentinel when instructed to and the charset is utf-8'
+ );
+
+ st.equal(
+ qs.stringify({ a: 'æ' }, { charsetSentinel: true, charset: 'iso-8859-1' }),
+ 'utf8=%26%2310003%3B&a=%E6',
+ 'adds the right sentinel when instructed to and the charset is iso-8859-1'
+ );
- t.test('adds the right sentinel when instructed to and the charset is iso-8859-1', function (st) {
- st.equal(qs.stringify({ a: 'æ' }, { charsetSentinel: true, charset: 'iso-8859-1' }), 'utf8=%26%2310003%3B&a=%E6');
st.end();
});
@@ -923,13 +1200,15 @@ test('stringify()', function (t) {
var withArray = { a: { b: [{ c: 'd', e: 'f' }] } };
st.equal(qs.stringify(obj, { encode: false }), 'a[b][c]=d&a[b][e]=f', 'no array, no arrayFormat');
- st.equal(qs.stringify(obj, { encode: false, arrayFormat: 'bracket' }), 'a[b][c]=d&a[b][e]=f', 'no array, bracket');
+ st.equal(qs.stringify(obj, { encode: false, arrayFormat: 'brackets' }), 'a[b][c]=d&a[b][e]=f', 'no array, bracket');
st.equal(qs.stringify(obj, { encode: false, arrayFormat: 'indices' }), 'a[b][c]=d&a[b][e]=f', 'no array, indices');
+ st.equal(qs.stringify(obj, { encode: false, arrayFormat: 'repeat' }), 'a[b][c]=d&a[b][e]=f', 'no array, repeat');
st.equal(qs.stringify(obj, { encode: false, arrayFormat: 'comma' }), 'a[b][c]=d&a[b][e]=f', 'no array, comma');
st.equal(qs.stringify(withArray, { encode: false }), 'a[b][0][c]=d&a[b][0][e]=f', 'array, no arrayFormat');
- st.equal(qs.stringify(withArray, { encode: false, arrayFormat: 'bracket' }), 'a[b][0][c]=d&a[b][0][e]=f', 'array, bracket');
+ st.equal(qs.stringify(withArray, { encode: false, arrayFormat: 'brackets' }), 'a[b][][c]=d&a[b][][e]=f', 'array, bracket');
st.equal(qs.stringify(withArray, { encode: false, arrayFormat: 'indices' }), 'a[b][0][c]=d&a[b][0][e]=f', 'array, indices');
+ st.equal(qs.stringify(withArray, { encode: false, arrayFormat: 'repeat' }), 'a[b][c]=d&a[b][e]=f', 'array, repeat');
st.equal(
qs.stringify(withArray, { encode: false, arrayFormat: 'comma' }),
'???',
@@ -942,13 +1221,78 @@ test('stringify()', function (t) {
t.test('stringifies sparse arrays', function (st) {
/* eslint no-sparse-arrays: 0 */
- st.equal(qs.stringify({ a: [, '2', , , '1'] }, { encodeValuesOnly: true }), 'a[1]=2&a[4]=1');
- st.equal(qs.stringify({ a: [, { b: [, , { c: '1' }] }] }, { encodeValuesOnly: true }), 'a[1][b][2][c]=1');
- st.equal(qs.stringify({ a: [, [, , [, , , { c: '1' }]]] }, { encodeValuesOnly: true }), 'a[1][2][3][c]=1');
- st.equal(qs.stringify({ a: [, [, , [, , , { c: [, '1'] }]]] }, { encodeValuesOnly: true }), 'a[1][2][3][c][1]=1');
+ st.equal(qs.stringify({ a: [, '2', , , '1'] }, { encodeValuesOnly: true, arrayFormat: 'indices' }), 'a[1]=2&a[4]=1');
+ st.equal(qs.stringify({ a: [, '2', , , '1'] }, { encodeValuesOnly: true, arrayFormat: 'brackets' }), 'a[]=2&a[]=1');
+ st.equal(qs.stringify({ a: [, '2', , , '1'] }, { encodeValuesOnly: true, arrayFormat: 'repeat' }), 'a=2&a=1');
+
+ st.equal(qs.stringify({ a: [, { b: [, , { c: '1' }] }] }, { encodeValuesOnly: true, arrayFormat: 'indices' }), 'a[1][b][2][c]=1');
+ st.equal(qs.stringify({ a: [, { b: [, , { c: '1' }] }] }, { encodeValuesOnly: true, arrayFormat: 'brackets' }), 'a[][b][][c]=1');
+ st.equal(qs.stringify({ a: [, { b: [, , { c: '1' }] }] }, { encodeValuesOnly: true, arrayFormat: 'repeat' }), 'a[b][c]=1');
+
+ st.equal(qs.stringify({ a: [, [, , [, , , { c: '1' }]]] }, { encodeValuesOnly: true, arrayFormat: 'indices' }), 'a[1][2][3][c]=1');
+ st.equal(qs.stringify({ a: [, [, , [, , , { c: '1' }]]] }, { encodeValuesOnly: true, arrayFormat: 'brackets' }), 'a[][][][c]=1');
+ st.equal(qs.stringify({ a: [, [, , [, , , { c: '1' }]]] }, { encodeValuesOnly: true, arrayFormat: 'repeat' }), 'a[c]=1');
+
+ st.equal(qs.stringify({ a: [, [, , [, , , { c: [, '1'] }]]] }, { encodeValuesOnly: true, arrayFormat: 'indices' }), 'a[1][2][3][c][1]=1');
+ st.equal(qs.stringify({ a: [, [, , [, , , { c: [, '1'] }]]] }, { encodeValuesOnly: true, arrayFormat: 'brackets' }), 'a[][][][c][]=1');
+ st.equal(qs.stringify({ a: [, [, , [, , , { c: [, '1'] }]]] }, { encodeValuesOnly: true, arrayFormat: 'repeat' }), 'a[c]=1');
+
+ st.end();
+ });
+
+ t.test('encodes a very long string', function (st) {
+ var chars = [];
+ var expected = [];
+ for (var i = 0; i < 5e3; i++) {
+ chars.push(' ' + i);
+
+ expected.push('%20' + i);
+ }
+
+ var obj = {
+ foo: chars.join('')
+ };
+
+ st.equal(
+ qs.stringify(obj, { arrayFormat: 'bracket', charset: 'utf-8' }),
+ 'foo=' + expected.join('')
+ );
st.end();
});
t.end();
});
+
+test('stringifies empty keys', function (t) {
+ emptyTestCases.forEach(function (testCase) {
+ t.test('stringifies an object with empty string key with ' + testCase.input, function (st) {
+ st.deepEqual(
+ qs.stringify(testCase.withEmptyKeys, { encode: false, arrayFormat: 'indices' }),
+ testCase.stringifyOutput.indices,
+ 'test case: ' + testCase.input + ', indices'
+ );
+ st.deepEqual(
+ qs.stringify(testCase.withEmptyKeys, { encode: false, arrayFormat: 'brackets' }),
+ testCase.stringifyOutput.brackets,
+ 'test case: ' + testCase.input + ', brackets'
+ );
+ st.deepEqual(
+ qs.stringify(testCase.withEmptyKeys, { encode: false, arrayFormat: 'repeat' }),
+ testCase.stringifyOutput.repeat,
+ 'test case: ' + testCase.input + ', repeat'
+ );
+
+ st.end();
+ });
+ });
+
+ t.test('edge case with object/arrays', function (st) {
+ st.deepEqual(qs.stringify({ '': { '': [2, 3] } }, { encode: false }), '[][0]=2&[][1]=3');
+ st.deepEqual(qs.stringify({ '': { '': [2, 3], a: 2 } }, { encode: false }), '[][0]=2&[][1]=3&[a]=2');
+ st.deepEqual(qs.stringify({ '': { '': [2, 3] } }, { encode: false, arrayFormat: 'indices' }), '[][0]=2&[][1]=3');
+ st.deepEqual(qs.stringify({ '': { '': [2, 3], a: 2 } }, { encode: false, arrayFormat: 'indices' }), '[][0]=2&[][1]=3&[a]=2');
+
+ st.end();
+ });
+});
diff --git a/node_modules/set-function-length/.eslintrc b/node_modules/set-function-length/.eslintrc
new file mode 100644
index 0000000..7cff507
--- /dev/null
+++ b/node_modules/set-function-length/.eslintrc
@@ -0,0 +1,27 @@
+{
+ "root": true,
+
+ "extends": "@ljharb",
+
+ "rules": {
+ "id-length": "off",
+ "new-cap": ["error", {
+ "capIsNewExceptions": [
+ "GetIntrinsic"
+ ],
+ }],
+ "no-extra-parens": "off",
+ },
+
+ "overrides": [
+ {
+ "files": ["test/**/*.js"],
+ "rules": {
+ "id-length": "off",
+ "max-lines-per-function": "off",
+ "multiline-comment-style": "off",
+ "no-empty-function": "off",
+ },
+ },
+ ],
+}
diff --git a/node_modules/set-function-length/.github/FUNDING.yml b/node_modules/set-function-length/.github/FUNDING.yml
new file mode 100644
index 0000000..92feb6f
--- /dev/null
+++ b/node_modules/set-function-length/.github/FUNDING.yml
@@ -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/set-function-name
+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 a single custom sponsorship URL
diff --git a/node_modules/set-function-length/.nycrc b/node_modules/set-function-length/.nycrc
new file mode 100644
index 0000000..1826526
--- /dev/null
+++ b/node_modules/set-function-length/.nycrc
@@ -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"
+ ]
+}
diff --git a/node_modules/set-function-length/CHANGELOG.md b/node_modules/set-function-length/CHANGELOG.md
new file mode 100644
index 0000000..bac439d
--- /dev/null
+++ b/node_modules/set-function-length/CHANGELOG.md
@@ -0,0 +1,70 @@
+# 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.2.2](https://github.com/ljharb/set-function-length/compare/v1.2.1...v1.2.2) - 2024-03-09
+
+### Commits
+
+- [types] use shared config [`027032f`](https://github.com/ljharb/set-function-length/commit/027032fe9cc439644a07248ea6a8d813fcc767cb)
+- [actions] remove redundant finisher; use reusable workflow [`1fd4fb1`](https://github.com/ljharb/set-function-length/commit/1fd4fb1c58bd5170f0dcff7e320077c0aa2ffdeb)
+- [types] use a handwritten d.ts file instead of emit [`01b9761`](https://github.com/ljharb/set-function-length/commit/01b9761742c95e1118e8c2d153ce2ae43d9731aa)
+- [Deps] update `define-data-property`, `get-intrinsic`, `has-property-descriptors` [`bee8eaf`](https://github.com/ljharb/set-function-length/commit/bee8eaf7749f325357ade85cffeaeef679e513d4)
+- [Dev Deps] update `call-bind`, `tape` [`5dae579`](https://github.com/ljharb/set-function-length/commit/5dae579fdc3aab91b14ebb58f9c19ee3f509d434)
+- [Tests] use `@arethetypeswrong/cli` [`7e22425`](https://github.com/ljharb/set-function-length/commit/7e22425d15957fd3d6da0b6bca4afc0c8d255d2d)
+
+## [v1.2.1](https://github.com/ljharb/set-function-length/compare/v1.2.0...v1.2.1) - 2024-02-06
+
+### Commits
+
+- [Dev Deps] update `call-bind`, `tape`, `typescript` [`d9a4601`](https://github.com/ljharb/set-function-length/commit/d9a460199c4c1fa37da9ebe055e2c884128f0738)
+- [Deps] update `define-data-property`, `get-intrinsic` [`38d39ae`](https://github.com/ljharb/set-function-length/commit/38d39aed13a757ed36211d5b0437b88485090c6b)
+- [Refactor] use `es-errors`, so things that only need those do not need `get-intrinsic` [`b4bfe5a`](https://github.com/ljharb/set-function-length/commit/b4bfe5ae0953b906d55b85f867eca5e7f673ebf4)
+
+## [v1.2.0](https://github.com/ljharb/set-function-length/compare/v1.1.1...v1.2.0) - 2024-01-14
+
+### Commits
+
+- [New] add types [`f6d9088`](https://github.com/ljharb/set-function-length/commit/f6d9088b9283a3112b21c6776e8bef6d1f30558a)
+- [Fix] ensure `env` properties are always booleans [`0c42f84`](https://github.com/ljharb/set-function-length/commit/0c42f84979086389b3229e1b4272697fd352275a)
+- [Dev Deps] update `aud`, `call-bind`, `npmignore`, `tape` [`2b75f75`](https://github.com/ljharb/set-function-length/commit/2b75f75468093a4bb8ce8ca989b2edd2e80d95d1)
+- [Deps] update `get-intrinsic`, `has-property-descriptors` [`19bf0fc`](https://github.com/ljharb/set-function-length/commit/19bf0fc4ffaa5ad425acbfa150516be9f3b6263a)
+- [meta] add `sideEffects` flag [`8bb9b78`](https://github.com/ljharb/set-function-length/commit/8bb9b78c11c621123f725c9470222f43466c01d0)
+
+## [v1.1.1](https://github.com/ljharb/set-function-length/compare/v1.1.0...v1.1.1) - 2023-10-19
+
+### Fixed
+
+- [Fix] move `define-data-property` to runtime deps [`#2`](https://github.com/ljharb/set-function-length/issues/2)
+
+### Commits
+
+- [Dev Deps] update `object-inspect`; add missing `call-bind` [`5aecf79`](https://github.com/ljharb/set-function-length/commit/5aecf79e7d6400957a5d9bd9ac20d4528908ca18)
+
+## [v1.1.0](https://github.com/ljharb/set-function-length/compare/v1.0.1...v1.1.0) - 2023-10-13
+
+### Commits
+
+- [New] add `env` entry point [`475c87a`](https://github.com/ljharb/set-function-length/commit/475c87aa2f59b700aaed589d980624ec596acdcb)
+- [Tests] add coverage with `nyc` [`14f0bf8`](https://github.com/ljharb/set-function-length/commit/14f0bf8c145ae60bf14a026420a06bb7be132c36)
+- [eslint] fix linting failure [`fb516f9`](https://github.com/ljharb/set-function-length/commit/fb516f93c664057138c53559ef63c8622a093335)
+- [Deps] update `define-data-property` [`d727e7c`](https://github.com/ljharb/set-function-length/commit/d727e7c6c9a40d7bf26797694e500ea68741feea)
+
+## [v1.0.1](https://github.com/ljharb/set-function-length/compare/v1.0.0...v1.0.1) - 2023-10-12
+
+### Commits
+
+- [Refactor] use `get-intrinsic`, since it‘s in the dep graph anyways [`278a954`](https://github.com/ljharb/set-function-length/commit/278a954a06cd849051c569ff7aee56df6798933e)
+- [meta] add `exports` [`72acfe5`](https://github.com/ljharb/set-function-length/commit/72acfe5a0310071fb205a72caba5ecbab24336a0)
+
+## v1.0.0 - 2023-10-12
+
+### Commits
+
+- Initial implementation, tests, readme [`fce14e1`](https://github.com/ljharb/set-function-length/commit/fce14e17586460e4f294405173be72b6ffdf7e5f)
+- Initial commit [`ca7ba85`](https://github.com/ljharb/set-function-length/commit/ca7ba857c7c283f9d26e21f14e71cd388f2cb722)
+- npm init [`6a7e493`](https://github.com/ljharb/set-function-length/commit/6a7e493927736cebcaf5c1a84e69b8e6b7b744d8)
+- Only apps should have lockfiles [`d2bf6c4`](https://github.com/ljharb/set-function-length/commit/d2bf6c43de8a51b02a0aa53e8d62cb50c4a2b0da)
diff --git a/node_modules/set-function-length/LICENSE b/node_modules/set-function-length/LICENSE
new file mode 100644
index 0000000..0314929
--- /dev/null
+++ b/node_modules/set-function-length/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) Jordan Harband and contributors
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/node_modules/set-function-length/README.md b/node_modules/set-function-length/README.md
new file mode 100644
index 0000000..15e3ac4
--- /dev/null
+++ b/node_modules/set-function-length/README.md
@@ -0,0 +1,56 @@
+# set-function-length [![Version Badge][npm-version-svg]][package-url]
+
+[![github actions][actions-image]][actions-url]
+[![coverage][codecov-image]][codecov-url]
+[![License][license-image]][license-url]
+[![Downloads][downloads-image]][downloads-url]
+
+[![npm badge][npm-badge-png]][package-url]
+
+Set a function’s length.
+
+Arguments:
+ - `fn`: the function
+ - `length`: the new length. Must be an integer between 0 and 2**32.
+ - `loose`: Optional. If true, and the length fails to be set, do not throw. Default false.
+
+Returns `fn`.
+
+## Usage
+
+```javascript
+var setFunctionLength = require('set-function-length');
+var assert = require('assert');
+
+function zero() {}
+function one(_) {}
+function two(_, __) {}
+
+assert.equal(zero.length, 0);
+assert.equal(one.length, 1);
+assert.equal(two.length, 2);
+
+assert.equal(setFunctionLength(zero, 10), zero);
+assert.equal(setFunctionLength(one, 11), one);
+assert.equal(setFunctionLength(two, 12), two);
+
+assert.equal(zero.length, 10);
+assert.equal(one.length, 11);
+assert.equal(two.length, 12);
+```
+
+[package-url]: https://npmjs.org/package/set-function-length
+[npm-version-svg]: https://versionbadg.es/ljharb/set-function-length.svg
+[deps-svg]: https://david-dm.org/ljharb/set-function-length.svg
+[deps-url]: https://david-dm.org/ljharb/set-function-length
+[dev-deps-svg]: https://david-dm.org/ljharb/set-function-length/dev-status.svg
+[dev-deps-url]: https://david-dm.org/ljharb/set-function-length#info=devDependencies
+[npm-badge-png]: https://nodei.co/npm/set-function-length.png?downloads=true&stars=true
+[license-image]: https://img.shields.io/npm/l/set-function-length.svg
+[license-url]: LICENSE
+[downloads-image]: https://img.shields.io/npm/dm/set-function-length.svg
+[downloads-url]: https://npm-stat.com/charts.html?package=set-function-length
+[codecov-image]: https://codecov.io/gh/ljharb/set-function-length/branch/main/graphs/badge.svg
+[codecov-url]: https://app.codecov.io/gh/ljharb/set-function-length/
+[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/set-function-length
+[actions-url]: https://github.com/ljharb/set-function-length/actions
diff --git a/node_modules/set-function-length/env.d.ts b/node_modules/set-function-length/env.d.ts
new file mode 100644
index 0000000..970ea53
--- /dev/null
+++ b/node_modules/set-function-length/env.d.ts
@@ -0,0 +1,9 @@
+declare const env: {
+ __proto__: null,
+ boundFnsHaveConfigurableLengths: boolean;
+ boundFnsHaveWritableLengths: boolean;
+ functionsHaveConfigurableLengths: boolean;
+ functionsHaveWritableLengths: boolean;
+};
+
+export = env;
\ No newline at end of file
diff --git a/node_modules/set-function-length/env.js b/node_modules/set-function-length/env.js
new file mode 100644
index 0000000..d9b0a29
--- /dev/null
+++ b/node_modules/set-function-length/env.js
@@ -0,0 +1,25 @@
+'use strict';
+
+var gOPD = require('gopd');
+var bind = require('function-bind');
+
+var unbound = gOPD && gOPD(function () {}, 'length');
+// @ts-expect-error ts(2555) TS is overly strict with .call
+var bound = gOPD && gOPD(bind.call(function () {}), 'length');
+
+var functionsHaveConfigurableLengths = !!(unbound && unbound.configurable);
+
+var functionsHaveWritableLengths = !!(unbound && unbound.writable);
+
+var boundFnsHaveConfigurableLengths = !!(bound && bound.configurable);
+
+var boundFnsHaveWritableLengths = !!(bound && bound.writable);
+
+/** @type {import('./env')} */
+module.exports = {
+ __proto__: null,
+ boundFnsHaveConfigurableLengths: boundFnsHaveConfigurableLengths,
+ boundFnsHaveWritableLengths: boundFnsHaveWritableLengths,
+ functionsHaveConfigurableLengths: functionsHaveConfigurableLengths,
+ functionsHaveWritableLengths: functionsHaveWritableLengths
+};
diff --git a/node_modules/set-function-length/index.d.ts b/node_modules/set-function-length/index.d.ts
new file mode 100644
index 0000000..0451ecd
--- /dev/null
+++ b/node_modules/set-function-length/index.d.ts
@@ -0,0 +1,7 @@
+declare namespace setFunctionLength {
+ type Func = (...args: unknown[]) => unknown;
+}
+
+declare function setFunctionLength(fn: T, length: number, loose?: boolean): T;
+
+export = setFunctionLength;
\ No newline at end of file
diff --git a/node_modules/set-function-length/index.js b/node_modules/set-function-length/index.js
new file mode 100644
index 0000000..14ce74d
--- /dev/null
+++ b/node_modules/set-function-length/index.js
@@ -0,0 +1,42 @@
+'use strict';
+
+var GetIntrinsic = require('get-intrinsic');
+var define = require('define-data-property');
+var hasDescriptors = require('has-property-descriptors')();
+var gOPD = require('gopd');
+
+var $TypeError = require('es-errors/type');
+var $floor = GetIntrinsic('%Math.floor%');
+
+/** @type {import('.')} */
+module.exports = function setFunctionLength(fn, length) {
+ if (typeof fn !== 'function') {
+ throw new $TypeError('`fn` is not a function');
+ }
+ if (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) {
+ throw new $TypeError('`length` must be a positive 32-bit integer');
+ }
+
+ var loose = arguments.length > 2 && !!arguments[2];
+
+ var functionLengthIsConfigurable = true;
+ var functionLengthIsWritable = true;
+ if ('length' in fn && gOPD) {
+ var desc = gOPD(fn, 'length');
+ if (desc && !desc.configurable) {
+ functionLengthIsConfigurable = false;
+ }
+ if (desc && !desc.writable) {
+ functionLengthIsWritable = false;
+ }
+ }
+
+ if (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {
+ if (hasDescriptors) {
+ define(/** @type {Parameters[0]} */ (fn), 'length', length, true, true);
+ } else {
+ define(/** @type {Parameters[0]} */ (fn), 'length', length);
+ }
+ }
+ return fn;
+};
diff --git a/node_modules/set-function-length/package.json b/node_modules/set-function-length/package.json
new file mode 100644
index 0000000..f6b8881
--- /dev/null
+++ b/node_modules/set-function-length/package.json
@@ -0,0 +1,102 @@
+{
+ "name": "set-function-length",
+ "version": "1.2.2",
+ "description": "Set a function's length property",
+ "main": "index.js",
+ "exports": {
+ ".": "./index.js",
+ "./env": "./env.js",
+ "./package.json": "./package.json"
+ },
+ "sideEffects": false,
+ "directories": {
+ "test": "test"
+ },
+ "scripts": {
+ "prepack": "npmignore --auto --commentLines=autogenerated",
+ "prepublish": "not-in-publish || npm run prepublishOnly",
+ "prepublishOnly": "safe-publish-latest",
+ "tsc": "tsc -p .",
+ "posttsc": "attw -P",
+ "prelint": "evalmd README.md",
+ "lint": "eslint --ext=js,mjs .",
+ "postlint": "npm run tsc",
+ "pretest": "npm run lint",
+ "tests-only": "nyc tape 'test/**/*.js'",
+ "test": "npm run tests-only",
+ "posttest": "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/set-function-length.git"
+ },
+ "keywords": [
+ "javascript",
+ "ecmascript",
+ "set",
+ "function",
+ "length",
+ "function.length"
+ ],
+ "author": "Jordan Harband ",
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/ljharb/set-function-length/issues"
+ },
+ "homepage": "https://github.com/ljharb/set-function-length#readme",
+ "dependencies": {
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.2"
+ },
+ "devDependencies": {
+ "@arethetypeswrong/cli": "^0.15.1",
+ "@ljharb/eslint-config": "^21.1.0",
+ "@ljharb/tsconfig": "^0.1.1",
+ "@types/call-bind": "^1.0.5",
+ "@types/define-properties": "^1.1.5",
+ "@types/es-value-fixtures": "^1.4.4",
+ "@types/for-each": "^0.3.3",
+ "@types/function-bind": "^1.1.10",
+ "@types/gopd": "^1.0.3",
+ "@types/has-property-descriptors": "^1.0.3",
+ "@types/object-inspect": "^1.8.4",
+ "@types/tape": "^5.6.4",
+ "aud": "^2.0.4",
+ "auto-changelog": "^2.4.0",
+ "call-bind": "^1.0.7",
+ "es-value-fixtures": "^1.4.2",
+ "eslint": "=8.8.0",
+ "evalmd": "^0.0.19",
+ "for-each": "^0.3.3",
+ "in-publish": "^2.0.1",
+ "npmignore": "^0.3.1",
+ "nyc": "^10.3.2",
+ "object-inspect": "^1.13.1",
+ "safe-publish-latest": "^2.0.0",
+ "tape": "^5.7.5",
+ "typescript": "next"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "auto-changelog": {
+ "output": "CHANGELOG.md",
+ "template": "keepachangelog",
+ "unreleased": false,
+ "commitLimit": false,
+ "backfillLimit": false,
+ "hideCredit": true
+ },
+ "publishConfig": {
+ "ignore": [
+ ".github/workflows",
+ "test"
+ ]
+ }
+}
diff --git a/node_modules/set-function-length/tsconfig.json b/node_modules/set-function-length/tsconfig.json
new file mode 100644
index 0000000..d9a6668
--- /dev/null
+++ b/node_modules/set-function-length/tsconfig.json
@@ -0,0 +1,9 @@
+{
+ "extends": "@ljharb/tsconfig",
+ "compilerOptions": {
+ "target": "es2021",
+ },
+ "exclude": [
+ "coverage",
+ ],
+}
diff --git a/node_modules/function-bind/.editorconfig b/node_modules/side-channel/.editorconfig
similarity index 50%
rename from node_modules/function-bind/.editorconfig
rename to node_modules/side-channel/.editorconfig
index ac29ade..72e0eba 100644
--- a/node_modules/function-bind/.editorconfig
+++ b/node_modules/side-channel/.editorconfig
@@ -1,20 +1,9 @@
root = true
[*]
-indent_style = tab
-indent_size = 4
-end_of_line = lf
charset = utf-8
-trim_trailing_whitespace = true
+end_of_line = lf
insert_final_newline = true
-max_line_length = 120
-
-[CHANGELOG.md]
-indent_style = space
+indent_style = tab
indent_size = 2
-
-[*.json]
-max_line_length = off
-
-[Makefile]
-max_line_length = off
+trim_trailing_whitespace = true
diff --git a/node_modules/side-channel/.eslintignore b/node_modules/side-channel/.eslintignore
deleted file mode 100644
index 404abb2..0000000
--- a/node_modules/side-channel/.eslintignore
+++ /dev/null
@@ -1 +0,0 @@
-coverage/
diff --git a/node_modules/side-channel/.eslintrc b/node_modules/side-channel/.eslintrc
index 850ac1f..93978e7 100644
--- a/node_modules/side-channel/.eslintrc
+++ b/node_modules/side-channel/.eslintrc
@@ -5,7 +5,7 @@
"rules": {
"max-lines-per-function": 0,
- "max-params": 0,
+ "multiline-comment-style": 1,
"new-cap": [2, { "capIsNewExceptions": ["GetIntrinsic"] }],
},
}
diff --git a/node_modules/side-channel/CHANGELOG.md b/node_modules/side-channel/CHANGELOG.md
index a3d161f..25369c5 100644
--- a/node_modules/side-channel/CHANGELOG.md
+++ b/node_modules/side-channel/CHANGELOG.md
@@ -5,6 +5,36 @@ 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.6](https://github.com/ljharb/side-channel/compare/v1.0.5...v1.0.6) - 2024-02-29
+
+### Commits
+
+- add types [`9beef66`](https://github.com/ljharb/side-channel/commit/9beef6643e6d717ea57bedabf86448123a7dd9e9)
+- [meta] simplify `exports` [`4334cf9`](https://github.com/ljharb/side-channel/commit/4334cf9df654151504c383b62a2f9ebdc8d9d5ac)
+- [Deps] update `call-bind` [`d6043c4`](https://github.com/ljharb/side-channel/commit/d6043c4d8f4d7be9037dd0f0419c7a2e0e39ec6a)
+- [Dev Deps] update `tape` [`6aca376`](https://github.com/ljharb/side-channel/commit/6aca3761868dc8cd5ff7fd9799bf6b95e09a6eb0)
+
+## [v1.0.5](https://github.com/ljharb/side-channel/compare/v1.0.4...v1.0.5) - 2024-02-06
+
+### Commits
+
+- [actions] reuse common workflows [`3d2e1ff`](https://github.com/ljharb/side-channel/commit/3d2e1ffd16dd6eaaf3e40ff57951f840d2d63c04)
+- [meta] use `npmignore` to autogenerate an npmignore file [`04296ea`](https://github.com/ljharb/side-channel/commit/04296ea17d1544b0a5d20fd5bfb31aa4f6513eb9)
+- [meta] add `.editorconfig`; add `eclint` [`130f0a6`](https://github.com/ljharb/side-channel/commit/130f0a6adbc04d385c7456a601d38344dce3d6a9)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `safe-publish-latest`, `tape` [`d480c2f`](https://github.com/ljharb/side-channel/commit/d480c2fbe757489ae9b4275491ffbcc3ac4725e9)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`ecbe70e`](https://github.com/ljharb/side-channel/commit/ecbe70e53a418234081a77971fec1fdfae20c841)
+- [actions] update rebase action [`75240b9`](https://github.com/ljharb/side-channel/commit/75240b9963b816e8846400d2287cb68f88c7fba7)
+- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `npmignore`, `tape` [`ae8d281`](https://github.com/ljharb/side-channel/commit/ae8d281572430099109870fd9430d2ca3f320b8d)
+- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `tape` [`7125b88`](https://github.com/ljharb/side-channel/commit/7125b885fd0eacad4fee9b073b72d14065ece278)
+- [Deps] update `call-bind`, `get-intrinsic`, `object-inspect` [`82577c9`](https://github.com/ljharb/side-channel/commit/82577c9796304519139a570f82a317211b5f3b86)
+- [Deps] update `call-bind`, `get-intrinsic`, `object-inspect` [`550aadf`](https://github.com/ljharb/side-channel/commit/550aadf20475a6081fd70304cc54f77259a5c8a8)
+- [Tests] increase coverage [`5130877`](https://github.com/ljharb/side-channel/commit/5130877a7b27c862e64e6d1c12a178b28808859d)
+- [Deps] update `get-intrinsic`, `object-inspect` [`ba0194c`](https://github.com/ljharb/side-channel/commit/ba0194c505b1a8a0427be14cadd5b8a46d4d01b8)
+- [meta] add missing `engines.node` [`985fd24`](https://github.com/ljharb/side-channel/commit/985fd249663cb06617a693a94fe08cad12f5cb70)
+- [Refactor] use `es-errors`, so things that only need those do not need `get-intrinsic` [`40227a8`](https://github.com/ljharb/side-channel/commit/40227a87b01709ad2c0eebf87eb4223a800099b9)
+- [Deps] update `get-intrinsic` [`a989b40`](https://github.com/ljharb/side-channel/commit/a989b4024958737ae7be9fbffdeff2078f33a0fd)
+- [Deps] update `object-inspect` [`aec42d2`](https://github.com/ljharb/side-channel/commit/aec42d2ec541a31aaa02475692c87d489237d9a3)
+
## [v1.0.4](https://github.com/ljharb/side-channel/compare/v1.0.3...v1.0.4) - 2020-12-29
### Commits
diff --git a/node_modules/side-channel/index.d.ts b/node_modules/side-channel/index.d.ts
new file mode 100644
index 0000000..7cb112b
--- /dev/null
+++ b/node_modules/side-channel/index.d.ts
@@ -0,0 +1,27 @@
+declare namespace getSideChannel {
+ type Key = unknown;
+ type ListNode = {
+ key: Key;
+ next: ListNode;
+ value: T;
+ };
+ type RootNode = {
+ key: object;
+ next: null | ListNode;
+ };
+ function listGetNode(list: RootNode, key: ListNode['key']): ListNode | void;
+ function listGet(objects: RootNode, key: ListNode['key']): T | void;
+ function listSet(objects: RootNode, key: ListNode['key'], value: T): void;
+ function listHas(objects: RootNode, key: ListNode['key']): boolean;
+
+ type Channel = {
+ assert: (key: Key) => void;
+ has: (key: Key) => boolean;
+ get: (key: Key) => T;
+ set: (key: Key, value: T) => void;
+ }
+}
+
+declare function getSideChannel(): getSideChannel.Channel;
+
+export = getSideChannel;
diff --git a/node_modules/side-channel/index.js b/node_modules/side-channel/index.js
index f1c4826..6b6926e 100644
--- a/node_modules/side-channel/index.js
+++ b/node_modules/side-channel/index.js
@@ -4,7 +4,7 @@ var GetIntrinsic = require('get-intrinsic');
var callBound = require('call-bind/callBound');
var inspect = require('object-inspect');
-var $TypeError = GetIntrinsic('%TypeError%');
+var $TypeError = require('es-errors/type');
var $WeakMap = GetIntrinsic('%WeakMap%', true);
var $Map = GetIntrinsic('%Map%', true);
@@ -16,49 +16,58 @@ 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.
- */
+* 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.
+*/
+/** @type {import('.').listGetNode} */
var listGetNode = function (list, key) { // eslint-disable-line consistent-return
- for (var prev = list, curr; (curr = prev.next) !== null; prev = curr) {
+ /** @type {typeof list | NonNullable<(typeof list)['next']>} */
+ var prev = list;
+ /** @type {(typeof list)['next']} */
+ var curr;
+ for (; (curr = prev.next) !== null; prev = curr) {
if (curr.key === key) {
prev.next = curr.next;
- curr.next = list.next;
+ // eslint-disable-next-line no-extra-parens
+ curr.next = /** @type {NonNullable} */ (list.next);
list.next = curr; // eslint-disable-line no-param-reassign
return curr;
}
}
};
+/** @type {import('.').listGet} */
var listGet = function (objects, key) {
var node = listGetNode(objects, key);
return node && node.value;
};
+/** @type {import('.').listSet} */
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
+ objects.next = /** @type {import('.').ListNode} */ ({ // eslint-disable-line no-param-reassign, no-extra-parens
key: key,
next: objects.next,
value: value
- };
+ });
}
};
+/** @type {import('.').listHas} */
var listHas = function (objects, key) {
return !!listGetNode(objects, key);
};
+/** @type {import('.')} */
module.exports = function getSideChannel() {
- var $wm;
- var $m;
- var $o;
+ /** @type {WeakMap} */ var $wm;
+ /** @type {Map} */ var $m;
+ /** @type {import('.').RootNode} */ var $o;
+
+ /** @type {import('.').Channel} */
var channel = {
assert: function (key) {
if (!channel.has(key)) {
@@ -109,11 +118,7 @@ module.exports = function getSideChannel() {
$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
- */
+ // 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);
diff --git a/node_modules/side-channel/package.json b/node_modules/side-channel/package.json
index 9e4f26a..02cffca 100644
--- a/node_modules/side-channel/package.json
+++ b/node_modules/side-channel/package.json
@@ -1,95 +1,84 @@
{
- "_from": "side-channel@^1.0.4",
- "_id": "side-channel@1.0.4",
- "_inBundle": false,
- "_integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
- "_location": "/side-channel",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "side-channel@^1.0.4",
- "name": "side-channel",
- "escapedName": "side-channel",
- "rawSpec": "^1.0.4",
- "saveSpec": null,
- "fetchSpec": "^1.0.4"
- },
- "_requiredBy": [
- "/qs"
- ],
- "_resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
- "_shasum": "efce5c8fdc104ee751b25c58d4290011fa5ea2cf",
- "_spec": "side-channel@^1.0.4",
- "_where": "/home/ubuntu/formidable/node_modules/qs",
- "author": {
- "name": "Jordan Harband",
- "email": "ljharb@gmail.com"
- },
- "auto-changelog": {
- "output": "CHANGELOG.md",
- "template": "keepachangelog",
- "unreleased": false,
- "commitLimit": false,
- "backfillLimit": false,
- "hideCredit": true
- },
- "bugs": {
- "url": "https://github.com/ljharb/side-channel/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "call-bind": "^1.0.0",
- "get-intrinsic": "^1.0.2",
- "object-inspect": "^1.9.0"
- },
- "deprecated": false,
- "description": "Store information about any JS value in a side channel. Uses WeakMap if available.",
- "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"
- },
- "exports": {
- "./package.json": "./package.json",
- ".": [
- {
- "default": "./index.js"
- },
- "./index.js"
- ]
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- },
- "homepage": "https://github.com/ljharb/side-channel#readme",
- "keywords": [
- "weakmap",
- "map",
- "side",
- "channel",
- "metadata"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "side-channel",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/ljharb/side-channel.git"
- },
- "scripts": {
- "lint": "eslint .",
- "posttest": "npx aud --production",
- "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"",
- "prepublish": "safe-publish-latest",
- "pretest": "npm run lint",
- "test": "npm run tests-only",
- "tests-only": "nyc tape 'test/**/*.js'",
- "version": "auto-changelog && git add CHANGELOG.md"
- },
- "version": "1.0.4"
+ "name": "side-channel",
+ "version": "1.0.6",
+ "description": "Store information about any JS value in a side channel. Uses WeakMap if available.",
+ "main": "index.js",
+ "exports": {
+ "./package.json": "./package.json",
+ ".": "./index.js"
+ },
+ "types": "./index.d.ts",
+ "scripts": {
+ "prepack": "npmignore --auto --commentLines=autogenerated",
+ "prepublishOnly": "safe-publish-latest",
+ "prepublish": "not-in-publish || npm run prepublishOnly",
+ "prelint": "eclint check $(git ls-files | xargs find 2> /dev/null | grep -vE 'node_modules|\\.git')",
+ "lint": "eslint --ext=js,mjs .",
+ "postlint": "tsc -p .",
+ "pretest": "npm run lint",
+ "tests-only": "nyc tape 'test/**/*.js'",
+ "test": "npm run tests-only",
+ "posttest": "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 ",
+ "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": "^21.1.0",
+ "@types/call-bind": "^1.0.5",
+ "@types/get-intrinsic": "^1.2.2",
+ "@types/object-inspect": "^1.8.4",
+ "@types/tape": "^5.6.4",
+ "aud": "^2.0.4",
+ "auto-changelog": "^2.4.0",
+ "eclint": "^2.8.1",
+ "eslint": "=8.8.0",
+ "in-publish": "^2.0.1",
+ "npmignore": "^0.3.1",
+ "nyc": "^10.3.2",
+ "safe-publish-latest": "^2.0.0",
+ "tape": "^5.7.5",
+ "typescript": "next"
+ },
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4",
+ "object-inspect": "^1.13.1"
+ },
+ "auto-changelog": {
+ "output": "CHANGELOG.md",
+ "template": "keepachangelog",
+ "unreleased": false,
+ "commitLimit": false,
+ "backfillLimit": false,
+ "hideCredit": true
+ },
+ "publishConfig": {
+ "ignore": [
+ ".github/workflows"
+ ]
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
}
diff --git a/node_modules/side-channel/test/index.js b/node_modules/side-channel/test/index.js
index 3b92ef7..8da3200 100644
--- a/node_modules/side-channel/test/index.js
+++ b/node_modules/side-channel/test/index.js
@@ -32,13 +32,18 @@ test('assert', function (t) {
test('has', function (t) {
var channel = getSideChannel();
- var o = [];
+ /** @type {unknown[]} */ 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.equal(channel.has('abc'), false, 'non object value non existent yields false');
+
+ channel.set('abc', 'foo');
+ t.equal(channel.has('abc'), true, 'non object value that exists yields true');
+
t.end();
});
diff --git a/node_modules/side-channel/tsconfig.json b/node_modules/side-channel/tsconfig.json
new file mode 100644
index 0000000..fdfa155
--- /dev/null
+++ b/node_modules/side-channel/tsconfig.json
@@ -0,0 +1,50 @@
+{
+ "compilerOptions": {
+ /* Visit https://aka.ms/tsconfig.json to read more about this file */
+
+ /* Projects */
+
+ /* Language and Environment */
+ "target": "es2022", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
+ // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
+ // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */
+ "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
+ // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */
+
+ /* Modules */
+ "module": "commonjs", /* Specify what module code is generated. */
+ // "rootDir": "./", /* Specify the root folder within your source files. */
+ // "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */
+ // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
+ // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
+ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
+ // "typeRoots": ["types"], /* Specify multiple folders that act like `./node_modules/@types`. */
+ "resolveJsonModule": true, /* Enable importing .json files. */
+ // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */
+
+ /* JavaScript Support */
+ "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */
+ "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
+ "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */
+
+ /* Emit */
+ "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
+ "declarationMap": true, /* Create sourcemaps for d.ts files. */
+ "noEmit": true, /* Disable emitting files from a compilation. */
+
+ /* Interop Constraints */
+ "allowSyntheticDefaultImports": true, /* Allow `import x from y` when a module doesn't have a default export. */
+ "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */
+ "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */
+
+ /* Type Checking */
+ "strict": true, /* Enable all strict type-checking options. */
+
+ /* Completeness */
+ // "skipLibCheck": true /* Skip type checking all .d.ts files. */
+ },
+ "exclude": [
+ "coverage",
+ "test/list-exports"
+ ],
+}
diff --git a/node_modules/simple-lru-cache/package.json b/node_modules/simple-lru-cache/package.json
index 9d6d3f2..31940ed 100644
--- a/node_modules/simple-lru-cache/package.json
+++ b/node_modules/simple-lru-cache/package.json
@@ -1,79 +1,34 @@
{
- "_from": "simple-lru-cache@0.0.2",
- "_id": "simple-lru-cache@0.0.2",
- "_inBundle": false,
- "_integrity": "sha512-uEv/AFO0ADI7d99OHDmh1QfYzQk/izT1vCmu/riQfh7qjBVUUgRT87E5s5h7CxWCA/+YoZerykpEthzVrW3LIw==",
- "_location": "/simple-lru-cache",
- "_phantomChildren": {},
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "simple-lru-cache@0.0.2",
- "name": "simple-lru-cache",
- "escapedName": "simple-lru-cache",
- "rawSpec": "0.0.2",
- "saveSpec": null,
- "fetchSpec": "0.0.2"
- },
- "_requiredBy": [
- "/ocsp"
- ],
- "_resolved": "https://registry.npmjs.org/simple-lru-cache/-/simple-lru-cache-0.0.2.tgz",
- "_shasum": "d59cc3a193c1a5d0320f84ee732f6e4713e511dd",
- "_spec": "simple-lru-cache@0.0.2",
- "_where": "/home/ubuntu/OCSP/node_modules/ocsp",
- "author": {
- "name": "Gabriel Eisbruch"
- },
- "bugs": {
- "url": "https://github.com/geisbruch/node-simple-lru-cache/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "node-simple-lru-cache =====================",
- "devDependencies": {
- "mocha": "*",
- "should": "*"
- },
+ "name": "simple-lru-cache",
+ "version": "0.0.2",
+ "author": "Gabriel Eisbruch",
+ "description": "",
+ "main": "index",
+ "keywords":["cache","lru","simple","fast"],
"directories": {
"lib": "./lib"
},
- "homepage": "https://github.com/geisbruch/node-simple-lru-cache#readme",
- "keywords": [
- "cache",
- "lru",
- "simple",
- "fast"
- ],
- "licenses": [
- {
+ "maintainers": [{
+ "name":"Gabriel Eisbruch",
+ "email":"gabrieleisbruch@gmail.com",
+ "web":"http://www.mercadolibre.com"
+ }],
+ "licenses": [{
"type": "MIT",
"url": "https://github.com/geisbruch/node-simple-lru-cache/blob/master/LICENSE"
- }
- ],
- "main": "index",
- "maintainers": [
- {
- "name": "Gabriel Eisbruch",
- "email": "gabrieleisbruch@gmail.com",
- "url": "http://www.mercadolibre.com"
- }
- ],
- "name": "simple-lru-cache",
- "repositories": [
- {
+ }],
+ "repositories": [{
"type": "git",
- "url": "git+ssh://git@github.com/geisbruch/node-simple-lru-cache.git"
- }
- ],
- "repository": {
- "type": "git",
- "url": "git+ssh://git@github.com/geisbruch/node-simple-lru-cache.git"
+ "url" : "http://github.com/geisbruch/node-simple-lru-cache.git"
+ }],
+ "dependencies": {
+ },
+ "devDependencies": {
+ "mocha": "*",
+ "should": "*"
},
"scripts": {
- "bench": "make bench",
- "test": "make test"
- },
- "version": "0.0.2"
+ "test": "make test",
+ "bench":"make bench"
+ }
}
diff --git a/node_modules/wrappy/package.json b/node_modules/wrappy/package.json
index ba32e5b..1307520 100644
--- a/node_modules/wrappy/package.json
+++ b/node_modules/wrappy/package.json
@@ -1,59 +1,29 @@
{
- "_from": "wrappy@1",
- "_id": "wrappy@1.0.2",
- "_inBundle": false,
- "_integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
- "_location": "/wrappy",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "wrappy@1",
- "name": "wrappy",
- "escapedName": "wrappy",
- "rawSpec": "1",
- "saveSpec": null,
- "fetchSpec": "1"
- },
- "_requiredBy": [
- "/dezalgo",
- "/once"
- ],
- "_resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "_shasum": "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f",
- "_spec": "wrappy@1",
- "_where": "/home/ubuntu/formidable/node_modules/dezalgo",
- "author": {
- "name": "Isaac Z. Schlueter",
- "email": "i@izs.me",
- "url": "http://blog.izs.me/"
- },
- "bugs": {
- "url": "https://github.com/npm/wrappy/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
+ "name": "wrappy",
+ "version": "1.0.2",
"description": "Callback wrapping utility",
- "devDependencies": {
- "tap": "^2.3.1"
- },
- "directories": {
- "test": "test"
- },
+ "main": "wrappy.js",
"files": [
"wrappy.js"
],
- "homepage": "https://github.com/npm/wrappy",
- "license": "ISC",
- "main": "wrappy.js",
- "name": "wrappy",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/npm/wrappy.git"
+ "directories": {
+ "test": "test"
+ },
+ "dependencies": {},
+ "devDependencies": {
+ "tap": "^2.3.1"
},
"scripts": {
"test": "tap --coverage test/*.js"
},
- "version": "1.0.2"
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/npm/wrappy"
+ },
+ "author": "Isaac Z. Schlueter (http://blog.izs.me/)",
+ "license": "ISC",
+ "bugs": {
+ "url": "https://github.com/npm/wrappy/issues"
+ },
+ "homepage": "https://github.com/npm/wrappy"
}
diff --git a/svr.js b/svr.js
index 2f19d04..92d5535 100644
--- a/svr.js
+++ b/svr.js
@@ -49,7 +49,7 @@ function factoryReset() {
deleteFolderRecursive(__dirname + "/temp");
fs.mkdirSync(__dirname + "/temp");
console.log("Removing configuration file...");
- fs.unlinkSync("config.json");
+ fs.unlinkSync(__dirname + "/config.json");
console.log("Done!");
process.exit(0);
}
@@ -69,7 +69,7 @@ function deleteFolderRecursive(path) {
}
var os = require("os");
-var version = "3.14.17";
+var version = "3.14.18";
var singlethreaded = false;
if (process.versions) process.versions.svrjs = version; // Inject SVR.JS into process.versions
@@ -547,7 +547,7 @@ function ipMatch(IP1, IP2) {
// Function to normalize IPv4 address (remove leading zeros)
function normalizeIPv4Address(address) {
- return address.replace(/(^|\.)(?:0(?!\.|$))+/g, "");
+ return address.replace(/(^|\.)(?:0(?!\.|$))+/g, "$1");
}
// Function to expand IPv6 address to full format
@@ -730,7 +730,7 @@ function ipBlockList(rawBlockList) {
var ips = ip.split(":");
var ip2s = [];
ips.forEach(function (ipe) {
- ip2s.push(parseInt(ipe));
+ ip2s.push(parseInt(ipe, 16));
});
return ip2s;
}
@@ -764,9 +764,9 @@ function ipBlockList(rawBlockList) {
function checkIfIPv6CIDRMatches(ipBlock, cidrObject) {
if (!cidrObject.v6) return false;
for (var i = 0; i < 8; i++) {
- if (ipBlock[i] < cidrObject.min[i] || ipBlock[i] > cidrObject.max[i]) return true;
+ if (ipBlock[i] < cidrObject.min[i] || ipBlock[i] > cidrObject.max[i]) return false;
}
- return false;
+ return true;
}
// Function to add an IP or CIDR block to the block list
@@ -1082,7 +1082,7 @@ if (host != "[offline]" || ifaceEx) {
}
});
- if (!crypto.__disabled) {
+ if (crypto.__disabled__ === undefined) {
var ipRequest2 = https.get({
host: "api.seeip.org",
port: 443,
@@ -1171,7 +1171,7 @@ if (fs.existsSync(__dirname + "/config.json")) {
configJSONPErr = err2;
}
} catch (err) {
- configJSONRErr = err2;
+ configJSONRErr = err;
}
}
@@ -5700,14 +5700,14 @@ if (cluster.isPrimary || cluster.isPrimary === undefined) {
serverconsole.locerrmessage("SVR.JS master process just crashed!!!");
serverconsole.locerrmessage("Stack:");
serverconsole.locerrmessage(generateErrorStack(err));
- process.exit(err.errno);
+ process.exit(err.errno !== undefined ? err.errno : 1);
});
process.on("unhandledRejection", function (err) {
// CRASH HANDLER
serverconsole.locerrmessage("SVR.JS master process just crashed!!!");
serverconsole.locerrmessage("Stack:");
serverconsole.locerrmessage(err.stack ? generateErrorStack(err) : String(err));
- process.exit(err.errno);
+ process.exit(err.errno !== undefined ? err.errno : 1);
});
process.on("exit", function (code) {
try {
@@ -5767,7 +5767,7 @@ if (cluster.isPrimary || cluster.isPrimary === undefined) {
serverconsole.locerrmessage("SVR.JS worker just crashed!!!");
serverconsole.locerrmessage("Stack:");
serverconsole.locerrmessage(err.stack ? generateErrorStack(err) : String(err));
- process.exit(err.errno);
+ process.exit(err.errno !== undefined ? err.errno : 1);
}
process.on("uncaughtException", crashHandler);
@@ -5791,6 +5791,6 @@ try {
serverconsole.locerrmessage("Stack:");
serverconsole.locerrmessage(generateErrorStack(err));
setTimeout(function () {
- process.exit(err.errno ? err.errno : 1);
+ process.exit(err.errno !== undefined ? err.errno : 1);
}, 10);
}
diff --git a/tests.html b/tests.html
index 5b13af1..f0bc4be 100644
--- a/tests.html
+++ b/tests.html
@@ -1,7 +1,7 @@
- SVR.JS 3.14.17 Tests
+ SVR.JS 3.14.18 Tests
- SVR.JS 3.14.17 Tests
+ SVR.JS 3.14.18 Tests
Directory (without trailing slash)
Directory (with query)