From 6bdba0c2a91794b4af5057e09870dad8ce6149e1 Mon Sep 17 00:00:00 2001
From: kashifatcha
Date: Tue, 19 Dec 2023 14:33:51 +0000
Subject: [PATCH 1/3] Add standardx linter to browser extension
---
package-lock.json | 3177 +++++++++++++++++++++++++++++++++++++++++----
package.json | 25 +-
2 files changed, 2921 insertions(+), 281 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 366f485..2a9ffd9 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -4,11 +4,208 @@
"requires": true,
"packages": {
"": {
+ "dependencies": {
+ "standardx": "^7.0.0"
+ },
"devDependencies": {
"jasmine-browser-runner": "^2.3.0",
"jasmine-core": "^5.1.1"
}
},
+ "node_modules/@aashutoshrathi/word-wrap": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz",
+ "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz",
+ "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==",
+ "dependencies": {
+ "@babel/highlight": "^7.23.4",
+ "chalk": "^2.4.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/code-frame/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/code-frame/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/code-frame/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/@babel/code-frame/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/@babel/code-frame/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/code-frame/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
+ "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/highlight": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz",
+ "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==",
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "chalk": "^2.4.2",
+ "js-tokens": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/@babel/highlight/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@eslint/eslintrc": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz",
+ "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==",
+ "dependencies": {
+ "ajv": "^6.12.4",
+ "debug": "^4.1.1",
+ "espree": "^7.3.0",
+ "globals": "^12.1.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^3.13.1",
+ "lodash": "^4.17.20",
+ "minimatch": "^3.0.4",
+ "strip-json-comments": "^3.1.1"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
"node_modules/@isaacs/cliui": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
@@ -36,6 +233,11 @@
"node": ">=14"
}
},
+ "node_modules/@types/json5": {
+ "version": "0.0.29",
+ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
+ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="
+ },
"node_modules/accepts": {
"version": "1.3.8",
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
@@ -49,6 +251,48 @@
"node": ">= 0.6"
}
},
+ "node_modules/acorn": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "peerDependencies": {
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/ansi-colors": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz",
+ "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/ansi-regex": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
@@ -65,7 +309,6 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -76,23 +319,133 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
+ "node_modules/argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dependencies": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "node_modules/array-buffer-byte-length": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz",
+ "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "is-array-buffer": "^3.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/array-flatten": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
"integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
"dev": true
},
+ "node_modules/array-includes": {
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz",
+ "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "get-intrinsic": "^1.2.1",
+ "is-string": "^1.0.7"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.flat": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz",
+ "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.flatmap": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz",
+ "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/arraybuffer.prototype.slice": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz",
+ "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==",
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.0",
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "get-intrinsic": "^1.2.1",
+ "is-array-buffer": "^3.0.2",
+ "is-shared-array-buffer": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/astral-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
+ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/async": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
"integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==",
"dev": true
},
+ "node_modules/available-typed-arrays": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
+ "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "dev": true
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
},
"node_modules/body-parser": {
"version": "1.20.1",
@@ -122,7 +475,6 @@
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -138,23 +490,30 @@
}
},
"node_modules/call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
- "dev": true,
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz",
+ "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==",
"dependencies": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.1",
+ "set-function-length": "^1.1.1"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -170,7 +529,6 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
"dependencies": {
"color-name": "~1.1.4"
},
@@ -181,14 +539,12 @@
"node_modules/color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
- "dev": true
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
},
"node_modules/content-disposition": {
"version": "0.5.4",
@@ -236,7 +592,6 @@
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
"integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
- "dev": true,
"dependencies": {
"path-key": "^3.1.0",
"shebang-command": "^2.0.0",
@@ -250,11 +605,44 @@
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
"dependencies": {
"ms": "2.0.0"
}
},
+ "node_modules/deep-is": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
+ },
+ "node_modules/define-data-property": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz",
+ "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==",
+ "dependencies": {
+ "get-intrinsic": "^1.2.1",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/define-properties": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
+ "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
+ "dependencies": {
+ "define-data-property": "^1.0.1",
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/depd": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
@@ -274,6 +662,17 @@
"npm": "1.2.8000 || >= 1.4.16"
}
},
+ "node_modules/doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
"node_modules/eastasianwidth": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
@@ -316,48 +715,654 @@
"node": ">= 0.8"
}
},
- "node_modules/escape-html": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
- "dev": true
+ "node_modules/enquirer": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz",
+ "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==",
+ "dependencies": {
+ "ansi-colors": "^4.1.1",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
},
- "node_modules/etag": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
- "dev": true,
+ "node_modules/enquirer/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"engines": {
- "node": ">= 0.6"
+ "node": ">=8"
}
},
- "node_modules/express": {
- "version": "4.18.2",
- "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
- "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
- "dev": true,
+ "node_modules/enquirer/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dependencies": {
- "accepts": "~1.3.8",
- "array-flatten": "1.1.1",
- "body-parser": "1.20.1",
- "content-disposition": "0.5.4",
- "content-type": "~1.0.4",
- "cookie": "0.5.0",
- "cookie-signature": "1.0.6",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "finalhandler": "1.2.0",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "merge-descriptors": "1.0.1",
- "methods": "~1.1.2",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "path-to-regexp": "0.1.7",
- "proxy-addr": "~2.0.7",
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dependencies": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "node_modules/es-abstract": {
+ "version": "1.22.3",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz",
+ "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==",
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.0",
+ "arraybuffer.prototype.slice": "^1.0.2",
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.5",
+ "es-set-tostringtag": "^2.0.1",
+ "es-to-primitive": "^1.2.1",
+ "function.prototype.name": "^1.1.6",
+ "get-intrinsic": "^1.2.2",
+ "get-symbol-description": "^1.0.0",
+ "globalthis": "^1.0.3",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.0",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0",
+ "internal-slot": "^1.0.5",
+ "is-array-buffer": "^3.0.2",
+ "is-callable": "^1.2.7",
+ "is-negative-zero": "^2.0.2",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.2",
+ "is-string": "^1.0.7",
+ "is-typed-array": "^1.1.12",
+ "is-weakref": "^1.0.2",
+ "object-inspect": "^1.13.1",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.4",
+ "regexp.prototype.flags": "^1.5.1",
+ "safe-array-concat": "^1.0.1",
+ "safe-regex-test": "^1.0.0",
+ "string.prototype.trim": "^1.2.8",
+ "string.prototype.trimend": "^1.0.7",
+ "string.prototype.trimstart": "^1.0.7",
+ "typed-array-buffer": "^1.0.0",
+ "typed-array-byte-length": "^1.0.0",
+ "typed-array-byte-offset": "^1.0.0",
+ "typed-array-length": "^1.0.4",
+ "unbox-primitive": "^1.0.2",
+ "which-typed-array": "^1.1.13"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/es-set-tostringtag": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz",
+ "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==",
+ "dependencies": {
+ "get-intrinsic": "^1.2.2",
+ "has-tostringtag": "^1.0.0",
+ "hasown": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-shim-unscopables": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz",
+ "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==",
+ "dependencies": {
+ "hasown": "^2.0.0"
+ }
+ },
+ "node_modules/es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "dependencies": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
+ "dev": true
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/eslint": {
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.18.0.tgz",
+ "integrity": "sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==",
+ "dependencies": {
+ "@babel/code-frame": "^7.0.0",
+ "@eslint/eslintrc": "^0.3.0",
+ "ajv": "^6.10.0",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.0.1",
+ "doctrine": "^3.0.0",
+ "enquirer": "^2.3.5",
+ "eslint-scope": "^5.1.1",
+ "eslint-utils": "^2.1.0",
+ "eslint-visitor-keys": "^2.0.0",
+ "espree": "^7.3.1",
+ "esquery": "^1.2.0",
+ "esutils": "^2.0.2",
+ "file-entry-cache": "^6.0.0",
+ "functional-red-black-tree": "^1.0.1",
+ "glob-parent": "^5.0.0",
+ "globals": "^12.1.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "js-yaml": "^3.13.1",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash": "^4.17.20",
+ "minimatch": "^3.0.4",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.1",
+ "progress": "^2.0.0",
+ "regexpp": "^3.1.0",
+ "semver": "^7.2.1",
+ "strip-ansi": "^6.0.0",
+ "strip-json-comments": "^3.1.0",
+ "table": "^6.0.4",
+ "text-table": "^0.2.0",
+ "v8-compile-cache": "^2.0.3"
+ },
+ "bin": {
+ "eslint": "bin/eslint.js"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-config-standard": {
+ "version": "16.0.3",
+ "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-16.0.3.tgz",
+ "integrity": "sha512-x4fmJL5hGqNJKGHSjnLdgA6U6h1YW/G2dW9fA+cyVur4SK6lyue8+UgNKWlZtUDTXvgKDD/Oa3GQjmB5kjtVvg==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "peerDependencies": {
+ "eslint": "^7.12.1",
+ "eslint-plugin-import": "^2.22.1",
+ "eslint-plugin-node": "^11.1.0",
+ "eslint-plugin-promise": "^4.2.1 || ^5.0.0"
+ }
+ },
+ "node_modules/eslint-config-standard-jsx": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-10.0.0.tgz",
+ "integrity": "sha512-hLeA2f5e06W1xyr/93/QJulN/rLbUVUmqTlexv9PRKHFwEC9ffJcH2LvJhMoEqYQBEYafedgGZXH2W8NUpt5lA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "peerDependencies": {
+ "eslint": "^7.12.1",
+ "eslint-plugin-react": "^7.21.5"
+ }
+ },
+ "node_modules/eslint-import-resolver-node": {
+ "version": "0.3.9",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
+ "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
+ "dependencies": {
+ "debug": "^3.2.7",
+ "is-core-module": "^2.13.0",
+ "resolve": "^1.22.4"
+ }
+ },
+ "node_modules/eslint-import-resolver-node/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/eslint-import-resolver-node/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+ },
+ "node_modules/eslint-module-utils": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz",
+ "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==",
+ "dependencies": {
+ "debug": "^3.2.7"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependenciesMeta": {
+ "eslint": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/eslint-module-utils/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/eslint-module-utils/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+ },
+ "node_modules/eslint-plugin-es": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz",
+ "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==",
+ "dependencies": {
+ "eslint-utils": "^2.0.0",
+ "regexpp": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/mysticatea"
+ },
+ "peerDependencies": {
+ "eslint": ">=4.19.1"
+ }
+ },
+ "node_modules/eslint-plugin-import": {
+ "version": "2.24.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz",
+ "integrity": "sha512-hNVtyhiEtZmpsabL4neEj+6M5DCLgpYyG9nzJY8lZQeQXEn5UPW1DpUdsMHMXsq98dbNm7nt1w9ZMSVpfJdi8Q==",
+ "dependencies": {
+ "array-includes": "^3.1.3",
+ "array.prototype.flat": "^1.2.4",
+ "debug": "^2.6.9",
+ "doctrine": "^2.1.0",
+ "eslint-import-resolver-node": "^0.3.6",
+ "eslint-module-utils": "^2.6.2",
+ "find-up": "^2.0.0",
+ "has": "^1.0.3",
+ "is-core-module": "^2.6.0",
+ "minimatch": "^3.0.4",
+ "object.values": "^1.1.4",
+ "pkg-up": "^2.0.0",
+ "read-pkg-up": "^3.0.0",
+ "resolve": "^1.20.0",
+ "tsconfig-paths": "^3.11.0"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependencies": {
+ "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0"
+ }
+ },
+ "node_modules/eslint-plugin-import/node_modules/doctrine": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/eslint-plugin-node": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz",
+ "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==",
+ "dependencies": {
+ "eslint-plugin-es": "^3.0.0",
+ "eslint-utils": "^2.0.0",
+ "ignore": "^5.1.1",
+ "minimatch": "^3.0.4",
+ "resolve": "^1.10.1",
+ "semver": "^6.1.0"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ },
+ "peerDependencies": {
+ "eslint": ">=5.16.0"
+ }
+ },
+ "node_modules/eslint-plugin-node/node_modules/ignore": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz",
+ "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/eslint-plugin-node/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/eslint-plugin-promise": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-5.1.1.tgz",
+ "integrity": "sha512-XgdcdyNzHfmlQyweOPTxmc7pIsS6dE4MvwhXWMQ2Dxs1XAL2GJDilUsjWen6TWik0aSI+zD/PqocZBblcm9rdA==",
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^7.0.0"
+ }
+ },
+ "node_modules/eslint-plugin-react": {
+ "version": "7.25.3",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.25.3.tgz",
+ "integrity": "sha512-ZMbFvZ1WAYSZKY662MBVEWR45VaBT6KSJCiupjrNlcdakB90juaZeDCbJq19e73JZQubqFtgETohwgAt8u5P6w==",
+ "dependencies": {
+ "array-includes": "^3.1.3",
+ "array.prototype.flatmap": "^1.2.4",
+ "doctrine": "^2.1.0",
+ "estraverse": "^5.2.0",
+ "jsx-ast-utils": "^2.4.1 || ^3.0.0",
+ "minimatch": "^3.0.4",
+ "object.entries": "^1.1.4",
+ "object.fromentries": "^2.0.4",
+ "object.hasown": "^1.0.0",
+ "object.values": "^1.1.4",
+ "prop-types": "^15.7.2",
+ "resolve": "^2.0.0-next.3",
+ "string.prototype.matchall": "^4.0.5"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependencies": {
+ "eslint": "^3 || ^4 || ^5 || ^6 || ^7"
+ }
+ },
+ "node_modules/eslint-plugin-react/node_modules/doctrine": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/eslint-plugin-react/node_modules/resolve": {
+ "version": "2.0.0-next.5",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
+ "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
+ "dependencies": {
+ "is-core-module": "^2.13.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/eslint-scope/node_modules/estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/eslint-utils": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
+ "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
+ "dependencies": {
+ "eslint-visitor-keys": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/mysticatea"
+ }
+ },
+ "node_modules/eslint-utils/node_modules/eslint-visitor-keys": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/eslint-visitor-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
+ "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/eslint/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/eslint/node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/eslint/node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "node_modules/eslint/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/espree": {
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz",
+ "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==",
+ "dependencies": {
+ "acorn": "^7.4.0",
+ "acorn-jsx": "^5.3.1",
+ "eslint-visitor-keys": "^1.3.0"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/espree/node_modules/eslint-visitor-keys": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/esquery": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
+ "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
+ "dependencies": {
+ "estraverse": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "dependencies": {
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/express": {
+ "version": "4.18.2",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
+ "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
+ "dev": true,
+ "dependencies": {
+ "accepts": "~1.3.8",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.20.1",
+ "content-disposition": "0.5.4",
+ "content-type": "~1.0.4",
+ "cookie": "0.5.0",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "1.2.0",
+ "fresh": "0.5.2",
+ "http-errors": "2.0.0",
+ "merge-descriptors": "1.0.1",
+ "methods": "~1.1.2",
+ "on-finished": "2.4.1",
+ "parseurl": "~1.3.3",
+ "path-to-regexp": "0.1.7",
+ "proxy-addr": "~2.0.7",
"qs": "6.11.0",
"range-parser": "~1.2.1",
"safe-buffer": "5.2.1",
@@ -370,189 +1375,694 @@
"vary": "~1.1.2"
},
"engines": {
- "node": ">= 0.10.0"
+ "node": ">= 0.10.0"
+ }
+ },
+ "node_modules/fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
+ },
+ "node_modules/fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
+ },
+ "node_modules/fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
+ },
+ "node_modules/file-entry-cache": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+ "dependencies": {
+ "flat-cache": "^3.0.4"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/filelist": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
+ "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
+ "dev": true,
+ "dependencies": {
+ "minimatch": "^5.0.1"
+ }
+ },
+ "node_modules/filelist/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/filelist/node_modules/minimatch": {
+ "version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
+ "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/finalhandler": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
+ "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
+ "dev": true,
+ "dependencies": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "2.4.1",
+ "parseurl": "~1.3.3",
+ "statuses": "2.0.1",
+ "unpipe": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==",
+ "dependencies": {
+ "locate-path": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/flat-cache": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
+ "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
+ "dependencies": {
+ "flatted": "^3.2.9",
+ "keyv": "^4.5.3",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/flatted": {
+ "version": "3.2.9",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz",
+ "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ=="
+ },
+ "node_modules/for-each": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "dependencies": {
+ "is-callable": "^1.1.3"
+ }
+ },
+ "node_modules/foreground-child": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
+ "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
+ "dev": true,
+ "dependencies": {
+ "cross-spawn": "^7.0.0",
+ "signal-exit": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/forwarded": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/function.prototype.name": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz",
+ "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "functions-have-names": "^1.2.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/functional-red-black-tree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+ "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g=="
+ },
+ "node_modules/functions-have-names": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-intrinsic": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz",
+ "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==",
+ "dependencies": {
+ "function-bind": "^1.1.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-stdin": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz",
+ "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/get-symbol-description": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
+ "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/glob": {
+ "version": "10.3.10",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
+ "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
+ "dev": true,
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^2.3.5",
+ "minimatch": "^9.0.1",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
+ "path-scurry": "^1.10.1"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/glob/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/glob/node_modules/minimatch": {
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/globals": {
+ "version": "12.4.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz",
+ "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==",
+ "dependencies": {
+ "type-fest": "^0.8.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/globalthis": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
+ "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
+ "dependencies": {
+ "define-properties": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/gopd": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+ "dependencies": {
+ "get-intrinsic": "^1.1.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
+ },
+ "node_modules/has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dependencies": {
+ "function-bind": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4.0"
}
},
- "node_modules/filelist": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
- "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
- "dev": true,
+ "node_modules/has-bigints": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
+ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/has-property-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz",
+ "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==",
"dependencies": {
- "minimatch": "^5.0.1"
+ "get-intrinsic": "^1.2.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/filelist/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dev": true,
+ "node_modules/has-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
+ "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-tostringtag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
+ "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
"dependencies": {
- "balanced-match": "^1.0.0"
+ "has-symbols": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/filelist/node_modules/minimatch": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
- "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
- "dev": true,
+ "node_modules/hasown": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
+ "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
"dependencies": {
- "brace-expansion": "^2.0.1"
+ "function-bind": "^1.1.2"
},
"engines": {
- "node": ">=10"
+ "node": ">= 0.4"
}
},
- "node_modules/finalhandler": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
- "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
+ "node_modules/hosted-git-info": {
+ "version": "2.8.9",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
+ "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw=="
+ },
+ "node_modules/http-errors": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
"dev": true,
"dependencies": {
- "debug": "2.6.9",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
+ "depd": "2.0.0",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
"statuses": "2.0.1",
- "unpipe": "~1.0.0"
+ "toidentifier": "1.0.1"
},
"engines": {
"node": ">= 0.8"
}
},
- "node_modules/foreground-child": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
- "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
+ "node_modules/iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"dev": true,
"dependencies": {
- "cross-spawn": "^7.0.0",
- "signal-exit": "^4.0.1"
+ "safer-buffer": ">= 2.1.2 < 3"
},
"engines": {
- "node": ">=14"
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/ignore": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
+ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/immediate": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
+ "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==",
+ "dev": true
+ },
+ "node_modules/import-fresh": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "dependencies": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
},
"funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/forwarded": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
- "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
- "dev": true,
+ "node_modules/imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
"engines": {
- "node": ">= 0.6"
+ "node": ">=0.8.19"
}
},
- "node_modules/fresh": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ },
+ "node_modules/internal-slot": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz",
+ "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==",
+ "dependencies": {
+ "get-intrinsic": "^1.2.2",
+ "hasown": "^2.0.0",
+ "side-channel": "^1.0.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/ipaddr.js": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
"dev": true,
"engines": {
- "node": ">= 0.6"
+ "node": ">= 0.10"
}
},
- "node_modules/fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
- "dev": true
+ "node_modules/is-array-buffer": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz",
+ "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.2.0",
+ "is-typed-array": "^1.1.10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
- "node_modules/function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
- "dev": true
+ "node_modules/is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="
},
- "node_modules/get-intrinsic": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
- "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
- "dev": true,
+ "node_modules/is-bigint": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
+ "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
"dependencies": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.3"
+ "has-bigints": "^1.0.1"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/glob": {
- "version": "10.3.10",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
- "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
- "dev": true,
+ "node_modules/is-boolean-object": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
+ "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
"dependencies": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^2.3.5",
- "minimatch": "^9.0.1",
- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
- "path-scurry": "^1.10.1"
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
},
- "bin": {
- "glob": "dist/esm/bin.mjs"
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-callable": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-core-module": {
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
+ "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
+ "dependencies": {
+ "hasown": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-date-object": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
+ "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
},
"engines": {
- "node": ">=16 || 14 >=14.17"
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/glob/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dev": true,
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
"dependencies": {
- "balanced-match": "^1.0.0"
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/glob/node_modules/minimatch": {
- "version": "9.0.3",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
- "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
- "dev": true,
+ "node_modules/is-negative-zero": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
+ "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-number-object": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
+ "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-regex": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
+ "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
"dependencies": {
- "brace-expansion": "^2.0.1"
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
},
"engines": {
- "node": ">=16 || 14 >=14.17"
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "dev": true,
+ "node_modules/is-shared-array-buffer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
+ "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
"dependencies": {
- "function-bind": "^1.1.1"
+ "call-bind": "^1.0.2"
},
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/has-symbols": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
- "dev": true,
+ "node_modules/is-string": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
+ "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
"engines": {
"node": ">= 0.4"
},
@@ -560,72 +2070,43 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/http-errors": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
- "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
- "dev": true,
+ "node_modules/is-symbol": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
+ "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
"dependencies": {
- "depd": "2.0.0",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "toidentifier": "1.0.1"
+ "has-symbols": "^1.0.2"
},
"engines": {
- "node": ">= 0.8"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dev": true,
+ "node_modules/is-typed-array": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz",
+ "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==",
"dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
+ "which-typed-array": "^1.1.11"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/immediate": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
- "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==",
- "dev": true
- },
- "node_modules/inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
- "dev": true,
+ "node_modules/is-weakref": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
+ "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
"dependencies": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "node_modules/inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
- "dev": true
- },
- "node_modules/ipaddr.js": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
- "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
- "dev": true,
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
- "engines": {
- "node": ">=8"
+ "call-bind": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/isarray": {
@@ -637,8 +2118,7 @@
"node_modules/isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "dev": true
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
},
"node_modules/jackspeak": {
"version": "2.3.6",
@@ -700,6 +2180,68 @@
"integrity": "sha512-UrzO3fL7nnxlQXlvTynNAenL+21oUQRlzqQFsA2U11ryb4+NLOCOePZ70PTojEaUKhiFugh7dG0Q+I58xlPdWg==",
"dev": true
},
+ "node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
+ },
+ "node_modules/js-yaml": {
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "dependencies": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/json-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="
+ },
+ "node_modules/json-parse-better-errors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
+ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="
+ },
+ "node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+ },
+ "node_modules/json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="
+ },
+ "node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/jsx-ast-utils": {
+ "version": "3.3.5",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz",
+ "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==",
+ "dependencies": {
+ "array-includes": "^3.1.6",
+ "array.prototype.flat": "^1.3.1",
+ "object.assign": "^4.1.4",
+ "object.values": "^1.1.6"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
"node_modules/jszip": {
"version": "3.10.1",
"resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz",
@@ -712,6 +2254,26 @@
"setimmediate": "^1.0.5"
}
},
+ "node_modules/keyv": {
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+ "dependencies": {
+ "json-buffer": "3.0.1"
+ }
+ },
+ "node_modules/levn": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "dependencies": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
"node_modules/lie": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz",
@@ -721,6 +2283,53 @@
"immediate": "~3.0.5"
}
},
+ "node_modules/load-json-file": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
+ "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==",
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^4.0.0",
+ "pify": "^3.0.0",
+ "strip-bom": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==",
+ "dependencies": {
+ "p-locate": "^2.0.0",
+ "path-exists": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+ },
+ "node_modules/lodash.truncate": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
+ "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw=="
+ },
+ "node_modules/loose-envify": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "dependencies": {
+ "js-tokens": "^3.0.0 || ^4.0.0"
+ },
+ "bin": {
+ "loose-envify": "cli.js"
+ }
+ },
"node_modules/lru-cache": {
"version": "10.0.1",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz",
@@ -791,7 +2400,6 @@
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
"dependencies": {
"brace-expansion": "^1.1.7"
},
@@ -799,6 +2407,14 @@
"node": "*"
}
},
+ "node_modules/minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/minipass": {
"version": "7.0.4",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz",
@@ -811,8 +2427,12 @@
"node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="
},
"node_modules/negotiator": {
"version": "0.6.3",
@@ -823,11 +2443,119 @@
"node": ">= 0.6"
}
},
+ "node_modules/normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "dependencies": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
+ "node_modules/normalize-package-data/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/object-inspect": {
- "version": "1.12.3",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
- "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
- "dev": true,
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
+ "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/object.assign": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz",
+ "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==",
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "has-symbols": "^1.0.3",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.entries": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz",
+ "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/object.fromentries": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz",
+ "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.hasown": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz",
+ "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==",
+ "dependencies": {
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.values": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz",
+ "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
@@ -848,16 +2576,84 @@
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
- "dev": true,
"dependencies": {
"wrappy": "1"
}
},
- "node_modules/pako": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
- "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
- "dev": true
+ "node_modules/optionator": {
+ "version": "0.9.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
+ "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
+ "dependencies": {
+ "@aashutoshrathi/word-wrap": "^1.2.3",
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/p-limit": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+ "dependencies": {
+ "p-try": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==",
+ "dependencies": {
+ "p-limit": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/p-try": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+ "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/pako": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
+ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
+ "dev": true
+ },
+ "node_modules/parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dependencies": {
+ "callsites": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
+ "dependencies": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
},
"node_modules/parseurl": {
"version": "1.3.3",
@@ -868,11 +2664,18 @@
"node": ">= 0.8"
}
},
+ "node_modules/path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
- "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -881,11 +2684,15 @@
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "dev": true,
"engines": {
"node": ">=8"
}
},
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
+ },
"node_modules/path-scurry": {
"version": "1.10.1",
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz",
@@ -908,12 +2715,167 @@
"integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==",
"dev": true
},
+ "node_modules/path-type": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
+ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+ "dependencies": {
+ "pify": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/pkg-conf": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-3.1.0.tgz",
+ "integrity": "sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ==",
+ "dependencies": {
+ "find-up": "^3.0.0",
+ "load-json-file": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/pkg-conf/node_modules/find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dependencies": {
+ "locate-path": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/pkg-conf/node_modules/load-json-file": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz",
+ "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==",
+ "dependencies": {
+ "graceful-fs": "^4.1.15",
+ "parse-json": "^4.0.0",
+ "pify": "^4.0.1",
+ "strip-bom": "^3.0.0",
+ "type-fest": "^0.3.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/pkg-conf/node_modules/locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dependencies": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/pkg-conf/node_modules/p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/pkg-conf/node_modules/p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dependencies": {
+ "p-limit": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/pkg-conf/node_modules/p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/pkg-conf/node_modules/pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/pkg-conf/node_modules/type-fest": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz",
+ "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/pkg-up": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz",
+ "integrity": "sha512-fjAPuiws93rm7mPUu21RdBnkeZNrbfCFCwfAhPWY+rR3zG0ubpe5cEReHOw5fIbfmsxEV/g2kSxGTATY3Bpnwg==",
+ "dependencies": {
+ "find-up": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/prelude-ls": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
"node_modules/process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
"dev": true
},
+ "node_modules/progress": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/prop-types": {
+ "version": "15.8.1",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
+ "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
+ "dependencies": {
+ "loose-envify": "^1.4.0",
+ "object-assign": "^4.1.1",
+ "react-is": "^16.13.1"
+ }
+ },
"node_modules/proxy-addr": {
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
@@ -927,6 +2889,14 @@
"node": ">= 0.10"
}
},
+ "node_modules/punycode": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/qs": {
"version": "6.11.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
@@ -966,6 +2936,36 @@
"node": ">= 0.8"
}
},
+ "node_modules/react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+ },
+ "node_modules/read-pkg": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
+ "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==",
+ "dependencies": {
+ "load-json-file": "^4.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/read-pkg-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz",
+ "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==",
+ "dependencies": {
+ "find-up": "^2.0.0",
+ "read-pkg": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/readable-stream": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
@@ -987,11 +2987,69 @@
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
"dev": true
},
+ "node_modules/regexp.prototype.flags": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz",
+ "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "set-function-name": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/regexpp": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
+ "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/mysticatea"
+ }
+ },
+ "node_modules/require-from-string": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/resolve": {
+ "version": "1.22.8",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
+ "dependencies": {
+ "is-core-module": "^2.13.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/rimraf": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "dev": true,
"dependencies": {
"glob": "^7.1.3"
},
@@ -1006,7 +3064,6 @@
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -1022,6 +3079,28 @@
"url": "https://github.com/sponsors/isaacs"
}
},
+ "node_modules/safe-array-concat": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz",
+ "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.2.1",
+ "has-symbols": "^1.0.3",
+ "isarray": "^2.0.5"
+ },
+ "engines": {
+ "node": ">=0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/safe-array-concat/node_modules/isarray": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
+ },
"node_modules/safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
@@ -1042,6 +3121,19 @@
}
]
},
+ "node_modules/safe-regex-test": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz",
+ "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.3",
+ "is-regex": "^1.1.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
@@ -1062,6 +3154,31 @@
"node": ">= 14.20.0"
}
},
+ "node_modules/semver": {
+ "version": "7.5.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/semver/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/send": {
"version": "0.18.0",
"resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
@@ -1107,6 +3224,33 @@
"node": ">= 0.8.0"
}
},
+ "node_modules/set-function-length": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz",
+ "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==",
+ "dependencies": {
+ "define-data-property": "^1.1.1",
+ "get-intrinsic": "^1.2.1",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/set-function-name": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz",
+ "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==",
+ "dependencies": {
+ "define-data-property": "^1.0.1",
+ "functions-have-names": "^1.2.3",
+ "has-property-descriptors": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/setimmediate": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
@@ -1123,47 +3267,182 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/side-channel": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "dependencies": {
+ "call-bind": "^1.0.0",
+ "get-intrinsic": "^1.0.2",
+ "object-inspect": "^1.9.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
"dev": true,
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/slice-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
+ "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/slice-ansi?sponsor=1"
+ }
+ },
+ "node_modules/spdx-correct": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
+ "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
+ "dependencies": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "node_modules/spdx-exceptions": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
+ "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A=="
+ },
+ "node_modules/spdx-expression-parse": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "dependencies": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "node_modules/spdx-license-ids": {
+ "version": "3.0.16",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz",
+ "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw=="
+ },
+ "node_modules/sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
+ },
+ "node_modules/standard": {
+ "version": "16.0.4",
+ "resolved": "https://registry.npmjs.org/standard/-/standard-16.0.4.tgz",
+ "integrity": "sha512-2AGI874RNClW4xUdM+bg1LRXVlYLzTNEkHmTG5mhyn45OhbgwA+6znowkOGYy+WMb5HRyELvtNy39kcdMQMcYQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
"dependencies": {
- "shebang-regex": "^3.0.0"
+ "eslint": "~7.18.0",
+ "eslint-config-standard": "16.0.3",
+ "eslint-config-standard-jsx": "10.0.0",
+ "eslint-plugin-import": "~2.24.2",
+ "eslint-plugin-node": "~11.1.0",
+ "eslint-plugin-promise": "~5.1.0",
+ "eslint-plugin-react": "~7.25.1",
+ "standard-engine": "^14.0.1"
+ },
+ "bin": {
+ "standard": "bin/cmd.js"
},
"engines": {
- "node": ">=8"
- }
- },
- "node_modules/shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dev": true,
- "engines": {
- "node": ">=8"
+ "node": ">=10.12.0"
}
},
- "node_modules/side-channel": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
- "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
- "dev": true,
+ "node_modules/standard-engine": {
+ "version": "14.0.1",
+ "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-14.0.1.tgz",
+ "integrity": "sha512-7FEzDwmHDOGva7r9ifOzD3BGdTbA7ujJ50afLVdW/tK14zQEptJjbFuUfn50irqdHDcTbNh0DTIoMPynMCXb0Q==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
"dependencies": {
- "call-bind": "^1.0.0",
- "get-intrinsic": "^1.0.2",
- "object-inspect": "^1.9.0"
+ "get-stdin": "^8.0.0",
+ "minimist": "^1.2.5",
+ "pkg-conf": "^3.1.0",
+ "xdg-basedir": "^4.0.0"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "engines": {
+ "node": ">=8.10"
}
},
- "node_modules/signal-exit": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
- "dev": true,
- "engines": {
- "node": ">=14"
+ "node_modules/standardx": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/standardx/-/standardx-7.0.0.tgz",
+ "integrity": "sha512-Uh2LIWyMD0pMFn+zoAS52dforkE8MUWP6hK48iQhiohTC5DRqBgTdXdJbhSGyjamRxCfETBdfvJ7hvtme2M3jg==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "dependencies": {
+ "standard": "^16.0.1",
+ "standard-engine": "^14.0.1"
},
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "bin": {
+ "standardx": "bin/cmd.js"
}
},
"node_modules/statuses": {
@@ -1249,6 +3528,67 @@
"node": ">=8"
}
},
+ "node_modules/string.prototype.matchall": {
+ "version": "4.0.10",
+ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz",
+ "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "get-intrinsic": "^1.2.1",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.5",
+ "regexp.prototype.flags": "^1.5.0",
+ "set-function-name": "^2.0.0",
+ "side-channel": "^1.0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trim": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz",
+ "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimend": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz",
+ "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimstart": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz",
+ "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/strip-ansi": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
@@ -1286,11 +3626,29 @@
"node": ">=8"
}
},
+ "node_modules/strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -1298,6 +3656,94 @@
"node": ">=8"
}
},
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/table": {
+ "version": "6.8.1",
+ "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz",
+ "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==",
+ "dependencies": {
+ "ajv": "^8.0.1",
+ "lodash.truncate": "^4.4.2",
+ "slice-ansi": "^4.0.0",
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/table/node_modules/ajv": {
+ "version": "8.12.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
+ "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/table/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/table/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ },
+ "node_modules/table/node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
+ },
+ "node_modules/table/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/table/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="
+ },
"node_modules/tmp": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
@@ -1319,6 +3765,36 @@
"node": ">=0.6"
}
},
+ "node_modules/tsconfig-paths": {
+ "version": "3.15.0",
+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
+ "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==",
+ "dependencies": {
+ "@types/json5": "^0.0.29",
+ "json5": "^1.0.2",
+ "minimist": "^1.2.6",
+ "strip-bom": "^3.0.0"
+ }
+ },
+ "node_modules/type-check": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "dependencies": {
+ "prelude-ls": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/type-is": {
"version": "1.6.18",
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
@@ -1332,6 +3808,81 @@
"node": ">= 0.6"
}
},
+ "node_modules/typed-array-buffer": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz",
+ "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.2.1",
+ "is-typed-array": "^1.1.10"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/typed-array-byte-length": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz",
+ "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "has-proto": "^1.0.1",
+ "is-typed-array": "^1.1.10"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/typed-array-byte-offset": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz",
+ "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==",
+ "dependencies": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "has-proto": "^1.0.1",
+ "is-typed-array": "^1.1.10"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/typed-array-length": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz",
+ "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "is-typed-array": "^1.1.9"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/unbox-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
+ "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-bigints": "^1.0.2",
+ "has-symbols": "^1.0.3",
+ "which-boxed-primitive": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/unpipe": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
@@ -1341,6 +3892,14 @@
"node": ">= 0.8"
}
},
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
@@ -1356,6 +3915,20 @@
"node": ">= 0.4.0"
}
},
+ "node_modules/v8-compile-cache": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz",
+ "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw=="
+ },
+ "node_modules/validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "dependencies": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
"node_modules/vary": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
@@ -1369,7 +3942,6 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
"dependencies": {
"isexe": "^2.0.0"
},
@@ -1380,6 +3952,39 @@
"node": ">= 8"
}
},
+ "node_modules/which-boxed-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
+ "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
+ "dependencies": {
+ "is-bigint": "^1.0.1",
+ "is-boolean-object": "^1.1.0",
+ "is-number-object": "^1.0.4",
+ "is-string": "^1.0.5",
+ "is-symbol": "^1.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/which-typed-array": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz",
+ "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==",
+ "dependencies": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.4",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/wrap-ansi": {
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
@@ -1471,8 +4076,7 @@
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
- "dev": true
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
},
"node_modules/ws": {
"version": "8.14.2",
@@ -1494,6 +4098,19 @@
"optional": true
}
}
+ },
+ "node_modules/xdg-basedir": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz",
+ "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
}
}
}
diff --git a/package.json b/package.json
index 597ab6c..0986d84 100644
--- a/package.json
+++ b/package.json
@@ -1,10 +1,33 @@
{
"devDependencies": {
"jasmine-browser-runner": "^2.3.0",
- "jasmine-core": "^5.1.1"
+ "jasmine-core": "^5.1.1",
+ "standardx": "^7.0.0"
},
"scripts": {
+ "lint:js": "standardx 'spec/javascripts/**/*.js' 'src/**/*.js'",
+ "lint:js:fix": "npm run lint:js --fix",
"test": "jasmine-browser-runner runSpecs",
"build": "bash build.sh"
+ },
+ "eslintConfig": {
+ "env": {
+ "browser": true,
+ "jasmine": true
+ },
+ "rules":{
+ "no-var": 0,
+ "no-unused-vars": 0,
+ "no-use-before-define": 0
+ }
+ },
+ "standardx": {
+ "global": [
+ "chrome",
+ "Mustache",
+ "fetch",
+ "Popup",
+ "pluck"
+ ]
}
}
From 04886a032f13d22d17029377638eadea438505ba Mon Sep 17 00:00:00 2001
From: kashifatcha
Date: Wed, 20 Dec 2023 13:56:51 +0000
Subject: [PATCH 2/3] Add files that have been fixed by linter
---
spec/helpers/helpers.js | 4 +-
spec/helpers/polyfills/String.startsWith.js | 6 +-
spec/javascripts/ab_tests.spec.js | 98 ++++----
spec/javascripts/content_links.spec.js | 64 ++---
.../javascripts/design_mode_component.spec.js | 50 ++--
spec/javascripts/environment.spec.js | 48 ++--
.../events/ab_bucket_store.spec.js | 204 +++++++--------
spec/javascripts/external_links.spec.js | 38 +--
spec/javascripts/extract_path.spec.js | 74 +++---
spec/javascripts/highlight_component.spec.js | 232 +++++++++---------
spec/javascripts/show_meta_tags.spec.js | 48 ++--
.../design-mode-component.js | 36 +--
.../highlight-component.js | 90 +++----
.../show-meta-tags-component.js | 82 +++----
src/events/ab_bucket_store.js | 26 +-
src/events/ab_test_settings.js | 61 +++--
src/events/icon.js | 12 +-
src/fetch-page-data.js | 28 +--
src/popup/ab_tests.js | 17 +-
src/popup/content_links.js | 44 ++--
src/popup/environment.js | 83 ++++---
src/popup/external_links.js | 61 +++--
src/popup/extract_path.js | 54 ++--
src/popup/popup.js | 215 ++++++++--------
24 files changed, 823 insertions(+), 852 deletions(-)
diff --git a/spec/helpers/helpers.js b/spec/helpers/helpers.js
index 19a0561..f095ec5 100644
--- a/spec/helpers/helpers.js
+++ b/spec/helpers/helpers.js
@@ -1,5 +1,5 @@
-function pluck(array, key) {
+function pluck (array, key) {
return array.map(function (object) {
- return object[key];
+ return object[key]
})
}
diff --git a/spec/helpers/polyfills/String.startsWith.js b/spec/helpers/polyfills/String.startsWith.js
index e0ef739..8fe63c3 100644
--- a/spec/helpers/polyfills/String.startsWith.js
+++ b/spec/helpers/polyfills/String.startsWith.js
@@ -1,5 +1,5 @@
if (!String.prototype.startsWith) {
- String.prototype.startsWith = function(searchString, position){
- return this.substr(position || 0, searchString.length) === searchString;
- };
+ String.prototype.startsWith = function (searchString, position) {
+ return this.substr(position || 0, searchString.length) === searchString
+ }
}
diff --git a/spec/javascripts/ab_tests.spec.js b/spec/javascripts/ab_tests.spec.js
index 012dc21..b20837c 100644
--- a/spec/javascripts/ab_tests.spec.js
+++ b/spec/javascripts/ab_tests.spec.js
@@ -1,73 +1,73 @@
-describe("Popup.findActiveAbTests", function () {
- it("returns no A/B tests if none are active", function () {
- var abTests = Popup.findActiveAbTests({});
+describe('Popup.findActiveAbTests', function () {
+ it('returns no A/B tests if none are active', function () {
+ var abTests = Popup.findActiveAbTests({})
- expect(abTests).toEqual([]);
- });
+ expect(abTests).toEqual([])
+ })
- it("finds all A/B tests", function () {
+ it('finds all A/B tests', function () {
var abTests = Popup.findActiveAbTests({
- "first-AB-test-name": {
- currentBucket: "some-value",
- allowedBuckets: ["some-value", "B"]
+ 'first-AB-test-name': {
+ currentBucket: 'some-value',
+ allowedBuckets: ['some-value', 'B']
},
- "second-AB-test-name": {
- currentBucket: "other-value",
- allowedBuckets: ["other-value", "B"]
+ 'second-AB-test-name': {
+ currentBucket: 'other-value',
+ allowedBuckets: ['other-value', 'B']
},
- "third-AB-test-name": {
- currentBucket: "yet-another-value",
- allowedBuckets: ["A", "yet-another-value"]
+ 'third-AB-test-name': {
+ currentBucket: 'yet-another-value',
+ allowedBuckets: ['A', 'yet-another-value']
}
- });
+ })
- expect(abTests.length).toEqual(3);
- expect(abTests[0].testName).toEqual("first-AB-test-name");
- expect(abTests[1].testName).toEqual("second-AB-test-name");
- expect(abTests[2].testName).toEqual("third-AB-test-name");
- });
+ expect(abTests.length).toEqual(3)
+ expect(abTests[0].testName).toEqual('first-AB-test-name')
+ expect(abTests[1].testName).toEqual('second-AB-test-name')
+ expect(abTests[2].testName).toEqual('third-AB-test-name')
+ })
- it("returns A and B buckets", function () {
+ it('returns A and B buckets', function () {
var abTests = Popup.findActiveAbTests({
- "some-AB-test-name": {
- currentBucket: "A",
- allowedBuckets: ["A", "B"]
+ 'some-AB-test-name': {
+ currentBucket: 'A',
+ allowedBuckets: ['A', 'B']
}
- });
+ })
- expect(abTests[0].buckets.length).toEqual(2);
- expect(abTests[0].buckets[0].bucketName).toEqual("A");
- expect(abTests[0].buckets[1].bucketName).toEqual("B");
+ expect(abTests[0].buckets.length).toEqual(2)
+ expect(abTests[0].buckets[0].bucketName).toEqual('A')
+ expect(abTests[0].buckets[1].bucketName).toEqual('B')
})
it("highlights 'A' bucket if user is in 'A' group", function () {
var abTests = Popup.findActiveAbTests({
- "some-AB-test-name": {
- currentBucket: "B",
- allowedBuckets: ["A", "B"]
+ 'some-AB-test-name': {
+ currentBucket: 'B',
+ allowedBuckets: ['A', 'B']
},
- "other-AB-test-name": {
- currentBucket: "A",
- allowedBuckets: ["A", "B"]
+ 'other-AB-test-name': {
+ currentBucket: 'A',
+ allowedBuckets: ['A', 'B']
}
- });
+ })
- expect(abTests[0].buckets[0].class).toEqual("");
- expect(abTests[0].buckets[1].class).toEqual("ab-bucket-selected");
+ expect(abTests[0].buckets[0].class).toEqual('')
+ expect(abTests[0].buckets[1].class).toEqual('ab-bucket-selected')
- expect(abTests[1].buckets[0].class).toEqual("ab-bucket-selected");
- expect(abTests[1].buckets[1].class).toEqual("");
- });
+ expect(abTests[1].buckets[0].class).toEqual('ab-bucket-selected')
+ expect(abTests[1].buckets[1].class).toEqual('')
+ })
it("doesn't highlight any buckets if variant is unknown", function () {
var abTests = Popup.findActiveAbTests({
- "some-AB-test-name": {
- currentBucket: "Unknown",
- allowedBuckets: ["A", "B"]
+ 'some-AB-test-name': {
+ currentBucket: 'Unknown',
+ allowedBuckets: ['A', 'B']
}
- });
+ })
- expect(abTests[0].buckets[0].class).toEqual("");
- expect(abTests[0].buckets[1].class).toEqual("");
- });
-});
+ expect(abTests[0].buckets[0].class).toEqual('')
+ expect(abTests[0].buckets[1].class).toEqual('')
+ })
+})
diff --git a/spec/javascripts/content_links.spec.js b/spec/javascripts/content_links.spec.js
index 770744b..a8c48f3 100755
--- a/spec/javascripts/content_links.spec.js
+++ b/spec/javascripts/content_links.spec.js
@@ -1,12 +1,12 @@
-describe("PopupView.generateContentLinks", function () {
+describe('PopupView.generateContentLinks', function () {
var PROD_ENV = { protocol: 'https', serviceDomain: 'publishing.service.gov.uk', origin: 'https://www.gov.uk' }
var DRAFT_PROD_ENV = { protocol: 'https', serviceDomain: 'publishing.service.gov.uk', origin: 'https://draft-origin.publishing.service.gov.uk' }
- it("returns the correct URIs", function () {
+ it('returns the correct URIs', function () {
var links = Popup.generateContentLinks(
- "https://www.gov.uk/browse/disabilities?foo=bar",
- "https://www.gov.uk",
- "/browse/disabilities",
+ 'https://www.gov.uk/browse/disabilities?foo=bar',
+ 'https://www.gov.uk',
+ '/browse/disabilities',
PROD_ENV
)
@@ -22,16 +22,16 @@ describe("PopupView.generateContentLinks", function () {
'http://webarchive.nationalarchives.gov.uk/*/https://www.gov.uk/browse/disabilities',
'https://content-data.publishing.service.gov.uk/metrics/browse/disabilities',
'https://my2.siteimprove.com/QualityAssurance/1054012/Overview/Search?SearchIn=Url&Query=/browse/disabilities',
- 'https://search.google.com/structured-data/testing-tool/u/0/#url=https://www.gov.uk/browse/disabilities',
+ 'https://search.google.com/structured-data/testing-tool/u/0/#url=https://www.gov.uk/browse/disabilities'
])
})
- it("returns the draft URIs for non-prod environments", function () {
+ it('returns the draft URIs for non-prod environments', function () {
var links = Popup.generateContentLinks(
- "https://www.gov.uk/browse/disabilities?foo=bar",
- "https://www.gov.uk",
- "/browse/disabilities",
- { protocol: 'https', serviceDomain: 'staging.publishing.service.gov.uk'}
+ 'https://www.gov.uk/browse/disabilities?foo=bar',
+ 'https://www.gov.uk',
+ '/browse/disabilities',
+ { protocol: 'https', serviceDomain: 'staging.publishing.service.gov.uk' }
)
var urls = pluck(links, 'url')
@@ -41,11 +41,11 @@ describe("PopupView.generateContentLinks", function () {
)
})
- it("does not generate URIs for publishing apps (non-www pages)", function () {
+ it('does not generate URIs for publishing apps (non-www pages)', function () {
var links = Popup.generateContentLinks(
- "https://search-admin.publishing.service.gov.uk/queries",
- "https://search-admin.publishing.service.gov.uk",
- "/queries",
+ 'https://search-admin.publishing.service.gov.uk/queries',
+ 'https://search-admin.publishing.service.gov.uk',
+ '/queries',
PROD_ENV
)
@@ -54,9 +54,9 @@ describe("PopupView.generateContentLinks", function () {
it("only generates URLs for publishing-apps when it's the support application", function () {
var links = Popup.generateContentLinks(
- "https://support.publishing.service.gov.uk/anonymous_feedback?path=/browse/disabilities",
- "https://support.publishing.service.gov.uk",
- "/anonymous_feedback",
+ 'https://support.publishing.service.gov.uk/anonymous_feedback?path=/browse/disabilities',
+ 'https://support.publishing.service.gov.uk',
+ '/anonymous_feedback',
PROD_ENV
)
@@ -76,33 +76,33 @@ describe("PopupView.generateContentLinks", function () {
])
})
- it("generates a link for smart answers", function () {
+ it('generates a link for smart answers', function () {
var links = Popup.generateContentLinks(
- "https://www.gov.uk/smart-answer/y/question-1",
- "https://www.gov.uk",
- "/smart-answer/y/question-1",
+ 'https://www.gov.uk/smart-answer/y/question-1',
+ 'https://www.gov.uk',
+ '/smart-answer/y/question-1',
PROD_ENV,
- "smartanswers"
+ 'smartanswers'
)
var urls = pluck(links, 'url')
- expect(urls).toContain("https://www.gov.uk/smart-answer/y/visualise")
+ expect(urls).toContain('https://www.gov.uk/smart-answer/y/visualise')
})
- it("generates correct link for content API on draft stack", function () {
+ it('generates correct link for content API on draft stack', function () {
var links = Popup.generateContentLinks(
- "https://draft-origin.publishing.service.gov.uk/apply-for-and-manage-a-gov-uk-domain-name",
- "https://draft-origin.publishing.service.gov.uk",
- "/apply-for-and-manage-a-gov-uk-domain-name",
+ 'https://draft-origin.publishing.service.gov.uk/apply-for-and-manage-a-gov-uk-domain-name',
+ 'https://draft-origin.publishing.service.gov.uk',
+ '/apply-for-and-manage-a-gov-uk-domain-name',
DRAFT_PROD_ENV,
- "collections"
+ 'collections'
)
expect(links[1]).toEqual({
- name: "Content item (JSON)",
- url: "https://draft-origin.publishing.service.gov.uk/api/content/apply-for-and-manage-a-gov-uk-domain-name",
- class: ""
+ name: 'Content item (JSON)',
+ url: 'https://draft-origin.publishing.service.gov.uk/api/content/apply-for-and-manage-a-gov-uk-domain-name',
+ class: ''
})
})
})
diff --git a/spec/javascripts/design_mode_component.spec.js b/spec/javascripts/design_mode_component.spec.js
index 2e4ee1a..67cfccb 100644
--- a/spec/javascripts/design_mode_component.spec.js
+++ b/spec/javascripts/design_mode_component.spec.js
@@ -1,40 +1,40 @@
-"use strict";
-describe("Toggling design mode", function () {
- var designModeBannerId = "govuk-chrome-toolkit-design-mode-banner";
- var designModeBannerElement;
- var designModeComponent;
+'use strict'
+describe('Toggling design mode', function () {
+ var designModeBannerId = 'govuk-chrome-toolkit-design-mode-banner'
+ var designModeBannerElement
+ var designModeComponent
beforeEach(function () {
// Mock addListener function to call toggleDesignMode trigger when initialized
window.chrome = {
runtime: {
onMessage: {
- addListener: function(callback) {
+ addListener: function (callback) {
callback({ trigger: 'toggleDesignMode' })
}
},
- sendMessage: function(){}
+ sendMessage: function () {}
}
- };
- designModeComponent = new DesignModeComponent;
+ }
+ designModeComponent = new DesignModeComponent()
designModeBannerElement = document.querySelector(`#${designModeBannerId}`)
- });
+ })
- it("shows design mode banner", function () {
- expect(designModeBannerElement.textContent).toMatch(/You are in design mode./);
- });
+ it('shows design mode banner', function () {
+ expect(designModeBannerElement.textContent).toMatch(/You are in design mode./)
+ })
- it("removes the banner when toggled off", function () {
- designModeComponent.toggleDesignMode();
- expect(designModeBannerElement).not.toBeVisible();
- });
+ it('removes the banner when toggled off', function () {
+ designModeComponent.toggleDesignMode()
+ expect(designModeBannerElement).not.toBeVisible()
+ })
- it("design mode is on when toggled on", function () {
- expect(window.document.designMode).toEqual("on");
- });
+ it('design mode is on when toggled on', function () {
+ expect(window.document.designMode).toEqual('on')
+ })
- it("design mode is off when toggled off", function () {
- designModeComponent.toggleDesignMode();
- expect(window.document.designMode).toEqual("off");
- });
-});
+ it('design mode is off when toggled off', function () {
+ designModeComponent.toggleDesignMode()
+ expect(window.document.designMode).toEqual('off')
+ })
+})
diff --git a/spec/javascripts/environment.spec.js b/spec/javascripts/environment.spec.js
index 76ed6ad..66f7bb0 100644
--- a/spec/javascripts/environment.spec.js
+++ b/spec/javascripts/environment.spec.js
@@ -1,43 +1,43 @@
-describe("Popup.environment", function() {
- function createEnvironmentForUrl(location) {
- var a = document.createElement('a');
- a.href = location;
- return Popup.environment(a.href, a.host, a.origin).allEnvironments;
+describe('Popup.environment', function () {
+ function createEnvironmentForUrl (location) {
+ var a = document.createElement('a')
+ a.href = location
+ return Popup.environment(a.href, a.host, a.origin).allEnvironments
}
- it("returns the correct environment links when the user is on production", function() {
+ it('returns the correct environment links when the user is on production', function () {
var envs = createEnvironmentForUrl(
- "https://www.gov.uk/browse/disabilities?foo=bar"
+ 'https://www.gov.uk/browse/disabilities?foo=bar'
)
- var urls = pluck(envs, 'url');
+ var urls = pluck(envs, 'url')
expect(urls).toEqual([
'https://www.gov.uk/browse/disabilities?foo=bar',
'https://www.staging.publishing.service.gov.uk/browse/disabilities?foo=bar',
'https://www.integration.publishing.service.gov.uk/browse/disabilities?foo=bar',
- 'http://www.dev.gov.uk/browse/disabilities?foo=bar',
+ 'http://www.dev.gov.uk/browse/disabilities?foo=bar'
])
})
- it("returns the correct variants for development", function() {
+ it('returns the correct variants for development', function () {
var envs = createEnvironmentForUrl(
- "http://www.dev.gov.uk/browse/disabilities?foo=bar"
+ 'http://www.dev.gov.uk/browse/disabilities?foo=bar'
)
- var urls = pluck(envs, 'url');
+ var urls = pluck(envs, 'url')
expect(urls).toEqual([
'https://www.gov.uk/browse/disabilities?foo=bar',
'https://www.staging.publishing.service.gov.uk/browse/disabilities?foo=bar',
'https://www.integration.publishing.service.gov.uk/browse/disabilities?foo=bar',
- 'http://www.dev.gov.uk/browse/disabilities?foo=bar',
+ 'http://www.dev.gov.uk/browse/disabilities?foo=bar'
])
})
- it("shows production, staging, integration and development on publisher-apps", function() {
+ it('shows production, staging, integration and development on publisher-apps', function () {
var envs = createEnvironmentForUrl(
- "https://signon.publishing.service.gov.uk/"
+ 'https://signon.publishing.service.gov.uk/'
)
var environmentNames = pluck(envs, 'name')
@@ -47,9 +47,9 @@ describe("Popup.environment", function() {
])
})
- it("Only shows production, staging and development on the GOVUK Account", function() {
+ it('Only shows production, staging and development on the GOVUK Account', function () {
var envs = createEnvironmentForUrl(
- "https://www.account.publishing.service.gov.uk/"
+ 'https://www.account.publishing.service.gov.uk/'
)
var environmentNames = pluck(envs, 'name')
@@ -59,18 +59,18 @@ describe("Popup.environment", function() {
])
})
- it("correctly identifies the current environment", function() {
+ it('correctly identifies the current environment', function () {
var forProd = createEnvironmentForUrl(
- "https://www.gov.uk/browse/disabilities?foo=bar"
- );
+ 'https://www.gov.uk/browse/disabilities?foo=bar'
+ )
- expect(forProd[0].class).toEqual("current")
+ expect(forProd[0].class).toEqual('current')
})
- it("returns nothing if not on GOV.UK", function() {
+ it('returns nothing if not on GOV.UK', function () {
var links = createEnvironmentForUrl(
- "http://webarchive.nationalarchives.gov.uk/*/https://www.gov.uk/jobsearch"
- );
+ 'http://webarchive.nationalarchives.gov.uk/*/https://www.gov.uk/jobsearch'
+ )
expect(links).toEqual({ name: 'GOV.UK', url: 'https://www.gov.uk' })
})
diff --git a/spec/javascripts/events/ab_bucket_store.spec.js b/spec/javascripts/events/ab_bucket_store.spec.js
index acd1c18..b87144f 100644
--- a/spec/javascripts/events/ab_bucket_store.spec.js
+++ b/spec/javascripts/events/ab_bucket_store.spec.js
@@ -1,139 +1,139 @@
-describe("abBucketStore", function () {
- it("is initialized empty", function () {
- var store = abBucketStore.createStore();
+describe('abBucketStore', function () {
+ it('is initialized empty', function () {
+ var store = abBucketStore.createStore()
- expect(store.getAll()).toEqual({});
- });
+ expect(store.getAll()).toEqual({})
+ })
- describe("addAbTests", function () {
- it("does nothing if no tests are added to an already-empty store", function () {
- var store = abBucketStore.createStore();
- store.addAbTests({}, "example.com");
+ describe('addAbTests', function () {
+ it('does nothing if no tests are added to an already-empty store', function () {
+ var store = abBucketStore.createStore()
+ store.addAbTests({}, 'example.com')
- expect(store.getAll("example.com")).toEqual({});
- });
+ expect(store.getAll('example.com')).toEqual({})
+ })
- it("adds tests to empty store", function () {
- var store = abBucketStore.createStore();
+ it('adds tests to empty store', function () {
+ var store = abBucketStore.createStore()
store.addAbTests({
- testName1: "bucket1",
- testName2: "bucket2"
- }, "example.com");
-
- expect(store.getAll("example.com")).toEqual({
- testName1: "bucket1",
- testName2: "bucket2"
- });
- });
-
- it("appends new tests", function () {
- var store = abBucketStore.createStore();
+ testName1: 'bucket1',
+ testName2: 'bucket2'
+ }, 'example.com')
+
+ expect(store.getAll('example.com')).toEqual({
+ testName1: 'bucket1',
+ testName2: 'bucket2'
+ })
+ })
+
+ it('appends new tests', function () {
+ var store = abBucketStore.createStore()
store.addAbTests({
- originalTest1: "originalBucket1",
- originalTest2: "originalBucket2"
- }, "example.com");
+ originalTest1: 'originalBucket1',
+ originalTest2: 'originalBucket2'
+ }, 'example.com')
store.addAbTests({
- originalTest1: "updatedBucket1",
- newTest1: "newBucket1",
- originalTest2: "updatedBucket2",
- newTest2: "newBucket2"
- }, "example.com");
-
- expect(store.getAll("example.com")).toEqual({
- originalTest1: "originalBucket1",
- originalTest2: "originalBucket2",
- newTest1: "newBucket1",
- newTest2: "newBucket2"
- });
- });
-
- it("stores A/B tests by domain name", function () {
- var store = abBucketStore.createStore();
+ originalTest1: 'updatedBucket1',
+ newTest1: 'newBucket1',
+ originalTest2: 'updatedBucket2',
+ newTest2: 'newBucket2'
+ }, 'example.com')
+
+ expect(store.getAll('example.com')).toEqual({
+ originalTest1: 'originalBucket1',
+ originalTest2: 'originalBucket2',
+ newTest1: 'newBucket1',
+ newTest2: 'newBucket2'
+ })
+ })
+
+ it('stores A/B tests by domain name', function () {
+ var store = abBucketStore.createStore()
store.addAbTests({
- integrationAbTest: "bucketOnInt",
- }, "www-origin.integration.publishing.service.gov.uk");
+ integrationAbTest: 'bucketOnInt'
+ }, 'www-origin.integration.publishing.service.gov.uk')
store.addAbTests({
- productionAbTest: "bucketOnProd",
- }, "www.gov.uk");
-
- expect(store.getAll("www-origin.integration.publishing.service.gov.uk")).toEqual({
- integrationAbTest: "bucketOnInt",
- });
- expect(store.getAll("www.gov.uk")).toEqual({
- productionAbTest: "bucketOnProd",
- });
- });
- });
-
- describe("getAll", function () {
- it("returns no A/B tests if none have been stored for that domain", function () {
- var store = abBucketStore.createStore();
+ productionAbTest: 'bucketOnProd'
+ }, 'www.gov.uk')
+
+ expect(store.getAll('www-origin.integration.publishing.service.gov.uk')).toEqual({
+ integrationAbTest: 'bucketOnInt'
+ })
+ expect(store.getAll('www.gov.uk')).toEqual({
+ productionAbTest: 'bucketOnProd'
+ })
+ })
+ })
+
+ describe('getAll', function () {
+ it('returns no A/B tests if none have been stored for that domain', function () {
+ var store = abBucketStore.createStore()
store.addAbTests({
- someAbTest: "someBucket",
- }, "www.gov.uk");
+ someAbTest: 'someBucket'
+ }, 'www.gov.uk')
- expect(store.getAll("example.com")).toEqual({});
- });
- });
+ expect(store.getAll('example.com')).toEqual({})
+ })
+ })
- describe("setBucket", function () {
- it("updates value of existing bucket", function () {
- var store = abBucketStore.createStore();
+ describe('setBucket', function () {
+ it('updates value of existing bucket', function () {
+ var store = abBucketStore.createStore()
store.addAbTests({
testName1: {
- currentBucket: "originalBucket1",
- allowedBuckets: ["originalBucket1", "updatedBucket"]
+ currentBucket: 'originalBucket1',
+ allowedBuckets: ['originalBucket1', 'updatedBucket']
},
testName2: {
- currentBucket: "originalBucket2",
- allowedBuckets: ["originalBucket1", "originalBucket2"]
+ currentBucket: 'originalBucket2',
+ allowedBuckets: ['originalBucket1', 'originalBucket2']
}
- }, "example.com");
+ }, 'example.com')
- store.setBucket("testName1", "updatedBucket", "example.com");
+ store.setBucket('testName1', 'updatedBucket', 'example.com')
- expect(store.getAll("example.com")).toEqual({
+ expect(store.getAll('example.com')).toEqual({
testName1: {
- currentBucket: "updatedBucket",
- allowedBuckets: ["originalBucket1", "updatedBucket"]
+ currentBucket: 'updatedBucket',
+ allowedBuckets: ['originalBucket1', 'updatedBucket']
},
testName2: {
- currentBucket: "originalBucket2",
- allowedBuckets: ["originalBucket1", "originalBucket2"]
+ currentBucket: 'originalBucket2',
+ allowedBuckets: ['originalBucket1', 'originalBucket2']
}
- });
- });
+ })
+ })
- it("updates bucket with matching domain name", function () {
- var store = abBucketStore.createStore();
+ it('updates bucket with matching domain name', function () {
+ var store = abBucketStore.createStore()
store.addAbTests({
abTestName: {
- currentBucket: "originalBucket",
- allowedBuckets: ["originalBucket", "updatedBucket"]
+ currentBucket: 'originalBucket',
+ allowedBuckets: ['originalBucket', 'updatedBucket']
}
- }, "www-origin.integration.publishing.service.gov.uk");
+ }, 'www-origin.integration.publishing.service.gov.uk')
store.addAbTests({
abTestName: {
- currentBucket: "originalBucket",
- allowedBuckets: ["originalBucket", "updatedBucket"]
+ currentBucket: 'originalBucket',
+ allowedBuckets: ['originalBucket', 'updatedBucket']
}
- }, "www.gov.uk");
+ }, 'www.gov.uk')
- store.setBucket("abTestName", "updatedBucket", "www.gov.uk");
+ store.setBucket('abTestName', 'updatedBucket', 'www.gov.uk')
- expect(store.getAll("www-origin.integration.publishing.service.gov.uk")).toEqual({
+ expect(store.getAll('www-origin.integration.publishing.service.gov.uk')).toEqual({
abTestName: {
- currentBucket: "originalBucket",
- allowedBuckets: ["originalBucket", "updatedBucket"]
+ currentBucket: 'originalBucket',
+ allowedBuckets: ['originalBucket', 'updatedBucket']
}
- });
- expect(store.getAll("www.gov.uk")).toEqual({
+ })
+ expect(store.getAll('www.gov.uk')).toEqual({
abTestName: {
- currentBucket: "updatedBucket",
- allowedBuckets: ["originalBucket", "updatedBucket"]
+ currentBucket: 'updatedBucket',
+ allowedBuckets: ['originalBucket', 'updatedBucket']
}
- });
- });
- });
-});
+ })
+ })
+ })
+})
diff --git a/spec/javascripts/external_links.spec.js b/spec/javascripts/external_links.spec.js
index 64a5522..22341a3 100644
--- a/spec/javascripts/external_links.spec.js
+++ b/spec/javascripts/external_links.spec.js
@@ -1,7 +1,7 @@
-describe("Popup.generateExternalLinks", function () {
+describe('Popup.generateExternalLinks', function () {
var PROD_ENV = { protocol: 'https', serviceDomain: 'publishing.service.gov.uk' }
- it("generates a link to the rendering app GitHub", function () {
+ it('generates a link to the rendering app GitHub', function () {
var contentItem = {
rendering_app: 'collections'
}
@@ -14,7 +14,7 @@ describe("Popup.generateExternalLinks", function () {
})
})
- it("generates a Github link when the rendering app does not match the repository name", function () {
+ it('generates a Github link when the rendering app does not match the repository name', function () {
var contentItem = {
rendering_app: 'smartanswers',
base_path: '/my-smart-answer'
@@ -28,7 +28,7 @@ describe("Popup.generateExternalLinks", function () {
})
})
- it("generates a link to the publishing app in the docs", function () {
+ it('generates a link to the publishing app in the docs', function () {
var contentItem = {
publishing_app: 'collections-publisher'
}
@@ -41,7 +41,7 @@ describe("Popup.generateExternalLinks", function () {
})
})
- it("generates the correct docs link when a publishing app does not match the repository name", function () {
+ it('generates the correct docs link when a publishing app does not match the repository name', function () {
var contentItem = {
publishing_app: 'smartanswers',
base_path: '/my-smart-answer'
@@ -55,7 +55,7 @@ describe("Popup.generateExternalLinks", function () {
})
})
- it("generates a link to the content schema", function () {
+ it('generates a link to the content schema', function () {
var contentItem = {
schema_name: 'topic'
}
@@ -68,7 +68,7 @@ describe("Popup.generateExternalLinks", function () {
})
})
- it("correctly links to placeholder schemas", function () {
+ it('correctly links to placeholder schemas', function () {
var contentItem = {
schema_name: 'placeholder_something_or_other'
}
@@ -81,7 +81,7 @@ describe("Popup.generateExternalLinks", function () {
})
})
- it("correctly links to document types", function () {
+ it('correctly links to document types', function () {
var contentItem = {
document_type: 'announcement'
}
@@ -94,7 +94,7 @@ describe("Popup.generateExternalLinks", function () {
})
})
- it("generates edit links for topics", function () {
+ it('generates edit links for topics', function () {
var contentItem = {
content_id: '4d8568c4-67f2-48da-a578-5ac6f35b69b4',
document_type: 'topic'
@@ -108,7 +108,7 @@ describe("Popup.generateExternalLinks", function () {
})
})
- it("generates edit links for mainstream browse pages", function () {
+ it('generates edit links for mainstream browse pages', function () {
var contentItem = {
content_id: '4d8568c4-67f2-48da-a578-5ac6f35b69b4',
document_type: 'mainstream_browse_page'
@@ -122,7 +122,7 @@ describe("Popup.generateExternalLinks", function () {
})
})
- it("generates edit links for step by steps", function () {
+ it('generates edit links for step by steps', function () {
var contentItem = {
content_id: '4d8568c4-67f2-48da-a578-5ac6f35b69b4',
document_type: 'step_by_step_nav'
@@ -136,7 +136,7 @@ describe("Popup.generateExternalLinks", function () {
})
})
- it("generates edit links for mainstream items", function () {
+ it('generates edit links for mainstream items', function () {
var contentItem = {
content_id: '4d8568c4-67f2-48da-a578-5ac6f35b69b4',
publishing_app: 'publisher',
@@ -151,7 +151,7 @@ describe("Popup.generateExternalLinks", function () {
})
})
- it("generates edit links for Whitehall items", function () {
+ it('generates edit links for Whitehall items', function () {
var contentItem = {
content_id: '4d8568c4-67f2-48da-a578-5ac6f35b69b4',
publishing_app: 'whitehall'
@@ -165,11 +165,11 @@ describe("Popup.generateExternalLinks", function () {
})
})
- it("generates edit links for Specalist Publisher items", function () {
+ it('generates edit links for Specalist Publisher items', function () {
var contentItem = {
publishing_app: 'specialist-publisher',
content_id: '4dd888e6-e890-4498-9913-b89e4e5a0059',
- document_type: 'business_finance_support_scheme',
+ document_type: 'business_finance_support_scheme'
}
var links = Popup.generateExternalLinks(contentItem, PROD_ENV)
@@ -180,11 +180,11 @@ describe("Popup.generateExternalLinks", function () {
})
})
- it("generates edit links for Content Publisher items", function () {
+ it('generates edit links for Content Publisher items', function () {
var contentItem = {
publishing_app: 'content-publisher',
content_id: '4d8568c4-67f2-48da-a578-5ac6f35b69b4',
- locale: 'cy',
+ locale: 'cy'
}
var links = Popup.generateExternalLinks(contentItem, PROD_ENV)
@@ -195,7 +195,7 @@ describe("Popup.generateExternalLinks", function () {
})
})
- it("includes a link to content-tagger", function () {
+ it('includes a link to content-tagger', function () {
var contentItem = {
content_id: '4d8568c4-67f2-48da-a578-5ac6f35b69b4'
}
@@ -208,7 +208,7 @@ describe("Popup.generateExternalLinks", function () {
})
})
- it("includes an edit link to content-tagger", function () {
+ it('includes an edit link to content-tagger', function () {
var contentItem = {
content_id: '4d8568c4-67f2-48da-a578-5ac6f35b69b4',
document_type: 'taxon'
diff --git a/spec/javascripts/extract_path.spec.js b/spec/javascripts/extract_path.spec.js
index 9162a07..47b2b68 100644
--- a/spec/javascripts/extract_path.spec.js
+++ b/spec/javascripts/extract_path.spec.js
@@ -1,73 +1,73 @@
-describe("Popup.extractPath", function () {
- it("returns nothing for publishing applications", function () {
- var path = Popup.extractPath("https://publisher.publishing.service.gov.uk/foo/bar", "/foo/bar")
+describe('Popup.extractPath', function () {
+ it('returns nothing for publishing applications', function () {
+ var path = Popup.extractPath('https://publisher.publishing.service.gov.uk/foo/bar', '/foo/bar')
- expect(path).toBeUndefined();
+ expect(path).toBeUndefined()
})
- it("returns the path for draft URLs", function () {
- var path = Popup.extractPath("https://draft-origin.staging.publishing.service.gov.uk/browse/disabilities", "/browse/disabilities")
+ it('returns the path for draft URLs', function () {
+ var path = Popup.extractPath('https://draft-origin.staging.publishing.service.gov.uk/browse/disabilities', '/browse/disabilities')
- expect(path).toEqual("/browse/disabilities");
+ expect(path).toEqual('/browse/disabilities')
})
- it("returns the path for frontend applications", function () {
- var path = Popup.extractPath("https://www.gov.uk/browse/disabilities", "/browse/disabilities")
+ it('returns the path for frontend applications', function () {
+ var path = Popup.extractPath('https://www.gov.uk/browse/disabilities', '/browse/disabilities')
- expect(path).toBe("/browse/disabilities")
+ expect(path).toBe('/browse/disabilities')
})
- it("returns the path for origin frontend applications", function () {
- var path = Popup.extractPath("https://www-origin.gov.uk/browse/disabilities", "/browse/disabilities")
+ it('returns the path for origin frontend applications', function () {
+ var path = Popup.extractPath('https://www-origin.gov.uk/browse/disabilities', '/browse/disabilities')
- expect(path).toBe("/browse/disabilities")
+ expect(path).toBe('/browse/disabilities')
})
- it("returns the path for content-store pages", function () {
- var path = Popup.extractPath("https://www.gov.uk/api/content/browse/disabilities", "/api/content/browse/disabilities")
+ it('returns the path for content-store pages', function () {
+ var path = Popup.extractPath('https://www.gov.uk/api/content/browse/disabilities', '/api/content/browse/disabilities')
- expect(path).toBe("/browse/disabilities")
+ expect(path).toBe('/browse/disabilities')
})
- it("returns the path for URLs with double slashes", function () {
- var path = Popup.extractPath("https://www.gov.uk/api/content//browse/disabilities", "/api/content//browse/disabilities")
+ it('returns the path for URLs with double slashes', function () {
+ var path = Popup.extractPath('https://www.gov.uk/api/content//browse/disabilities', '/api/content//browse/disabilities')
- expect(path).toBe("/browse/disabilities")
+ expect(path).toBe('/browse/disabilities')
})
- it("returns the path for info pages", function () {
- var path = Popup.extractPath("https://www.gov.uk/info/browse/disabilities", "/info/browse/disabilities")
+ it('returns the path for info pages', function () {
+ var path = Popup.extractPath('https://www.gov.uk/info/browse/disabilities', '/info/browse/disabilities')
- expect(path).toBe("/browse/disabilities")
+ expect(path).toBe('/browse/disabilities')
})
- it("returns the path for search pages", function () {
- var path = Popup.extractPath("https://www.gov.uk/api/search.json?filter_link=/browse/disabilities", "/api/search.json")
+ it('returns the path for search pages', function () {
+ var path = Popup.extractPath('https://www.gov.uk/api/search.json?filter_link=/browse/disabilities', '/api/search.json')
- expect(path).toBe("/browse/disabilities")
+ expect(path).toBe('/browse/disabilities')
})
- it("returns the path for cache-busted search pages", function () {
- var path = Popup.extractPath("https://www.gov.uk/api/search.json?filter_link=/browse/disabilities&c=some_cache_buster", "/api/search.json")
+ it('returns the path for cache-busted search pages', function () {
+ var path = Popup.extractPath('https://www.gov.uk/api/search.json?filter_link=/browse/disabilities&c=some_cache_buster', '/api/search.json')
- expect(path).toBe("/browse/disabilities")
+ expect(path).toBe('/browse/disabilities')
})
- it("returns the path for national archives pages", function () {
- var path = Popup.extractPath("http://webarchive.nationalarchives.gov.uk/*/https://www.gov.uk/some/page", "/*/https://www.gov.uk/some/page")
+ it('returns the path for national archives pages', function () {
+ var path = Popup.extractPath('http://webarchive.nationalarchives.gov.uk/*/https://www.gov.uk/some/page', '/*/https://www.gov.uk/some/page')
- expect(path).toBe("/some/page")
+ expect(path).toBe('/some/page')
})
- it("returns the path for the smart answers visualisation", function () {
- var path = Popup.extractPath("https://www.gov.uk/maternity-paternity-calculator/y/visualise", "/maternity-paternity-calculator/y/visualise")
+ it('returns the path for the smart answers visualisation', function () {
+ var path = Popup.extractPath('https://www.gov.uk/maternity-paternity-calculator/y/visualise', '/maternity-paternity-calculator/y/visualise')
- expect(path).toBe("/maternity-paternity-calculator")
+ expect(path).toBe('/maternity-paternity-calculator')
})
- it("returns the path for the content data manager", function () {
- var path = Popup.extractPath("https://content-data.publishing.service.gov.uk/metrics/browse/disabilities", "/metrics/browse/disabilities")
+ it('returns the path for the content data manager', function () {
+ var path = Popup.extractPath('https://content-data.publishing.service.gov.uk/metrics/browse/disabilities', '/metrics/browse/disabilities')
- expect(path).toBe("/browse/disabilities")
+ expect(path).toBe('/browse/disabilities')
})
})
diff --git a/spec/javascripts/highlight_component.spec.js b/spec/javascripts/highlight_component.spec.js
index e41cc93..9a7640d 100644
--- a/spec/javascripts/highlight_component.spec.js
+++ b/spec/javascripts/highlight_component.spec.js
@@ -1,202 +1,200 @@
-'use strict';
-describe("Toggling component highlighting", function () {
-
- var breadcrumbsElement;
- var highlightComponent;
+'use strict'
+describe('Toggling component highlighting', function () {
+ var breadcrumbsElement
+ var highlightComponent
beforeEach(function () {
- loadFixtures("gem-c-breadcrumbs.html")
+ loadFixtures('gem-c-breadcrumbs.html')
// Mock addListener function to call toggleComponents trigger when initialized
window.chrome = {
runtime: {
onMessage: {
- addListener: function(callback) {
+ addListener: function (callback) {
callback({ trigger: 'toggleComponents' })
}
},
- sendMessage: function(){}
+ sendMessage: function () {}
}
- };
+ }
- highlightComponent = new HighlightComponent;
+ highlightComponent = new HighlightComponent()
- breadcrumbsElement = document.querySelector("#jasmine-fixtures .gem-c-breadcrumbs");
- });
+ breadcrumbsElement = document.querySelector('#jasmine-fixtures .gem-c-breadcrumbs')
+ })
- it("highlights govuk components", function () {
- expect(breadcrumbsElement).toHaveClass("highlight-component");
- });
+ it('highlights govuk components', function () {
+ expect(breadcrumbsElement).toHaveClass('highlight-component')
+ })
- it("exposes the component name as data attribute", function () {
- expect(breadcrumbsElement.dataset.componentName).toEqual("breadcrumbs");
- });
+ it('exposes the component name as data attribute', function () {
+ expect(breadcrumbsElement.dataset.componentName).toEqual('breadcrumbs')
+ })
- it("exposes the app name as data attribute", function () {
- expect(breadcrumbsElement.dataset.appName).toEqual("gem-c-");
- });
+ it('exposes the app name as data attribute', function () {
+ expect(breadcrumbsElement.dataset.appName).toEqual('gem-c-')
+ })
it("adds the ability to click through to the component's documentation", function () {
- spyOn(window, "open").and.callThrough()
- var clickEvent = spyOnEvent(breadcrumbsElement, "click");
+ spyOn(window, 'open').and.callThrough()
+ var clickEvent = spyOnEvent(breadcrumbsElement, 'click')
- breadcrumbsElement.click();
+ breadcrumbsElement.click()
- expect(clickEvent).toHaveBeenTriggered();
+ expect(clickEvent).toHaveBeenTriggered()
expect(window.open).toHaveBeenCalledWith(
- "https://govuk-publishing-components.herokuapp.com/component-guide/breadcrumbs"
+ 'https://govuk-publishing-components.herokuapp.com/component-guide/breadcrumbs'
)
- });
+ })
- it("removes the highlight when toggled off", function () {
- highlightComponent.toggleComponents();
+ it('removes the highlight when toggled off', function () {
+ highlightComponent.toggleComponents()
- expect(breadcrumbsElement).not.toHaveClass("highlight-component");
- });
+ expect(breadcrumbsElement).not.toHaveClass('highlight-component')
+ })
- it("removes the click functionality when toggled off", function () {
- spyOn(window, "open").and.callThrough()
- highlightComponent.toggleComponents();
+ it('removes the click functionality when toggled off', function () {
+ spyOn(window, 'open').and.callThrough()
+ highlightComponent.toggleComponents()
- var clickEvent = spyOnEvent(breadcrumbsElement, "click");
+ var clickEvent = spyOnEvent(breadcrumbsElement, 'click')
- breadcrumbsElement.click();
+ breadcrumbsElement.click()
- expect(clickEvent).toHaveBeenTriggered();
- expect(window.open).not.toHaveBeenCalled();
- });
-});
+ expect(clickEvent).toHaveBeenTriggered()
+ expect(window.open).not.toHaveBeenCalled()
+ })
+})
-describe("highlightComponent", function () {
- beforeEach(function() {
+describe('highlightComponent', function () {
+ beforeEach(function () {
window.chrome = {
runtime: {
onMessage: {
- addListener: function(callback) { }
+ addListener: function (callback) { }
},
- sendMessage: function(){}
+ sendMessage: function () {}
}
- };
+ }
})
- describe("components", function () {
- var html;
+ describe('components', function () {
+ var html
beforeEach(function () {
loadFixtures(
- "app-c-back-to-top.html",
- "gem-c-breadcrumbs.html",
- "gem-c-button.html",
- "gem-c-label.html"
+ 'app-c-back-to-top.html',
+ 'gem-c-breadcrumbs.html',
+ 'gem-c-button.html',
+ 'gem-c-label.html'
)
- html = document.querySelector("#jasmine-fixtures");
- });
+ html = document.querySelector('#jasmine-fixtures')
+ })
- it("builds an array of components", function () {
- var highlightComponent = new HighlightComponent;
+ it('builds an array of components', function () {
+ var highlightComponent = new HighlightComponent()
expect(highlightComponent.components).toEqual(
[
{
- name: "back-to-top",
- prefix: "app-c-",
- element: html.querySelector(".app-c-back-to-top"),
+ name: 'back-to-top',
+ prefix: 'app-c-',
+ element: html.querySelector('.app-c-back-to-top')
},
{
- name: "breadcrumbs",
- prefix: "gem-c-",
- element: html.querySelector(".gem-c-breadcrumbs"),
+ name: 'breadcrumbs',
+ prefix: 'gem-c-',
+ element: html.querySelector('.gem-c-breadcrumbs')
},
{
- name: "button",
- prefix: "gem-c-",
- element: html.querySelector(".gem-c-button"),
+ name: 'button',
+ prefix: 'gem-c-',
+ element: html.querySelector('.gem-c-button')
},
{
- name: "label",
- prefix: "gem-c-",
- element: html.querySelector(".gem-c-label"),
+ name: 'label',
+ prefix: 'gem-c-',
+ element: html.querySelector('.gem-c-label')
}
]
)
- });
- });
-
- describe("toggleComponents", function () {
- it("toggles the internal state", function () {
+ })
+ })
- var highlightComponent = new HighlightComponent;
+ describe('toggleComponents', function () {
+ it('toggles the internal state', function () {
+ var highlightComponent = new HighlightComponent()
- expect(highlightComponent.isComponentsHighlighted).toEqual(false);
+ expect(highlightComponent.isComponentsHighlighted).toEqual(false)
- highlightComponent.toggleComponents();
- expect(highlightComponent.isComponentsHighlighted).toEqual(true);
+ highlightComponent.toggleComponents()
+ expect(highlightComponent.isComponentsHighlighted).toEqual(true)
- highlightComponent.toggleComponents();
- expect(highlightComponent.isComponentsHighlighted).toEqual(false);
- });
+ highlightComponent.toggleComponents()
+ expect(highlightComponent.isComponentsHighlighted).toEqual(false)
+ })
- it("toggles the highlight-component class", function () {
- loadFixtures("gem-c-button.html");
+ it('toggles the highlight-component class', function () {
+ loadFixtures('gem-c-button.html')
- var highlightComponent = new HighlightComponent;
+ var highlightComponent = new HighlightComponent()
- var buttonElement = document.querySelector("#jasmine-fixtures .gem-c-button");
- expect(buttonElement).not.toHaveClass("highlight-component");
+ var buttonElement = document.querySelector('#jasmine-fixtures .gem-c-button')
+ expect(buttonElement).not.toHaveClass('highlight-component')
- highlightComponent.toggleComponents();
- expect(buttonElement).toHaveClass("highlight-component");
+ highlightComponent.toggleComponents()
+ expect(buttonElement).toHaveClass('highlight-component')
- highlightComponent.toggleComponents();
- expect(buttonElement).not.toHaveClass("highlight-component");
- });
- });
-});
+ highlightComponent.toggleComponents()
+ expect(buttonElement).not.toHaveClass('highlight-component')
+ })
+ })
+})
-describe("Helpers.documentationUrl", function () {
+describe('Helpers.documentationUrl', function () {
it("creates the correct URL for 'app' components with substitution", function () {
- setFixtures('');
- Helpers.substitutions = {
- 'collections': 'another_host'
- };
+ setFixtures('')
+ Helpers.substitutions = {
+ collections: 'another_host'
+ }
expect(
Helpers.documentationUrl({
- prefix: "app-c",
- name: "back-to-top"
+ prefix: 'app-c',
+ name: 'back-to-top'
})
).toEqual(
- "https://another_host.herokuapp.com/component-guide/back-to-top"
+ 'https://another_host.herokuapp.com/component-guide/back-to-top'
)
- });
+ })
it("creates the correct URL for 'app' components without substitution", function () {
- setFixtures('');
- Helpers.substitutions = {
- 'collections': 'another_host'
- };
+ setFixtures('')
+ Helpers.substitutions = {
+ collections: 'another_host'
+ }
expect(
Helpers.documentationUrl({
- prefix: "app-c",
- name: "back-to-top"
+ prefix: 'app-c',
+ name: 'back-to-top'
})
).toEqual(
- "https://rendering_app.herokuapp.com/component-guide/back-to-top"
+ 'https://rendering_app.herokuapp.com/component-guide/back-to-top'
)
- });
+ })
it("creates the correct URL for 'gem' components", function () {
- setFixtures('');
- Helpers.substitutions = {
- 'collections': 'another_host'
- };
+ setFixtures('')
+ Helpers.substitutions = {
+ collections: 'another_host'
+ }
expect(
Helpers.documentationUrl({
- prefix: "gem-c",
- name: "label"
+ prefix: 'gem-c',
+ name: 'label'
})
).toEqual(
- "https://govuk-publishing-components.herokuapp.com/component-guide/label"
+ 'https://govuk-publishing-components.herokuapp.com/component-guide/label'
)
- });
-});
+ })
+})
diff --git a/spec/javascripts/show_meta_tags.spec.js b/spec/javascripts/show_meta_tags.spec.js
index b3a71b8..9fb635d 100644
--- a/spec/javascripts/show_meta_tags.spec.js
+++ b/spec/javascripts/show_meta_tags.spec.js
@@ -1,39 +1,39 @@
-'use strict';
-describe("Toggling meta tags", function () {
- var showMetaTagsBannerId = "govuk-chrome-toolkit-banner";
- var showMetaTagsBannerElement;
- var showMetaTagsComponent;
+'use strict'
+describe('Toggling meta tags', function () {
+ var showMetaTagsBannerId = 'govuk-chrome-toolkit-banner'
+ var showMetaTagsBannerElement
+ var showMetaTagsComponent
beforeEach(function () {
window.chrome = {
runtime: {
onMessage: {
- addListener: function () {},
+ addListener: function () {}
},
- sendMessage: function () {},
- },
- };
+ sendMessage: function () {}
+ }
+ }
- loadFixtures("meta-tags.html")
+ loadFixtures('meta-tags.html')
- showMetaTagsComponent = new ShowMetaTagsComponent;
- showMetaTagsComponent.toggleMetaTags();
+ showMetaTagsComponent = new ShowMetaTagsComponent()
+ showMetaTagsComponent.toggleMetaTags()
- showMetaTagsBannerElement = document.querySelector(`#${showMetaTagsBannerId}`);
- });
+ showMetaTagsBannerElement = document.querySelector(`#${showMetaTagsBannerId}`)
+ })
- it("shows meta tags with name and content", function () {
- expect(showMetaTagsBannerElement.textContent).toMatch(/foo/);
- });
+ it('shows meta tags with name and content', function () {
+ expect(showMetaTagsBannerElement.textContent).toMatch(/foo/)
+ })
it("doesn't show meta tags that use property instead of name", function () {
// No particular reason for this, it just doesn't
- expect(showMetaTagsBannerElement.textContent).not.toMatch(/og:image/);
- });
+ expect(showMetaTagsBannerElement.textContent).not.toMatch(/og:image/)
+ })
- it("removes the banner when toggled off", function () {
- showMetaTagsComponent.toggleMetaTags();
+ it('removes the banner when toggled off', function () {
+ showMetaTagsComponent.toggleMetaTags()
- expect(showMetaTagsBannerElement).not.toBeVisible();
- });
-});
+ expect(showMetaTagsBannerElement).not.toBeVisible()
+ })
+})
diff --git a/src/components/design-mode-component/design-mode-component.js b/src/components/design-mode-component/design-mode-component.js
index c561855..ded8869 100644
--- a/src/components/design-mode-component/design-mode-component.js
+++ b/src/components/design-mode-component/design-mode-component.js
@@ -1,24 +1,24 @@
-"use strict";
+'use strict'
-function DesignModeComponent() {
- this.state = false;
+function DesignModeComponent () {
+ this.state = false
chrome.runtime.onMessage.addListener(function (request) {
- if (request.trigger == "toggleDesignMode") {
- this.toggleDesignMode();
+ if (request.trigger == 'toggleDesignMode') {
+ this.toggleDesignMode()
}
- }.bind(this));
+ }.bind(this))
}
DesignModeComponent.prototype.toggleDesignMode = function () {
- this.state = !this.state;
+ this.state = !this.state
- window.document.designMode = this.state ? "on" : "off";
- this.toggleDesignModeBanner();
- this.sendState();
+ window.document.designMode = this.state ? 'on' : 'off'
+ this.toggleDesignModeBanner()
+ this.sendState()
}
-DesignModeComponent.prototype.toggleDesignModeBanner = function() {
- var designModeBannerId = "govuk-chrome-toolkit-design-mode-banner";
+DesignModeComponent.prototype.toggleDesignModeBanner = function () {
+ var designModeBannerId = 'govuk-chrome-toolkit-design-mode-banner'
if (this.state) {
var designModeBanner = `
@@ -27,18 +27,18 @@ DesignModeComponent.prototype.toggleDesignModeBanner = function() {
`
- var designModeWrapper = document.createElement("div")
+ var designModeWrapper = document.createElement('div')
designModeWrapper.innerHTML = designModeBanner
- document.body.prepend(designModeWrapper);
+ document.body.prepend(designModeWrapper)
} else {
var designModeBannerElement = document.querySelector(`#${designModeBannerId}`)
designModeBannerElement.remove()
}
}
-DesignModeComponent.prototype.sendState = function() {
+DesignModeComponent.prototype.sendState = function () {
chrome.runtime.sendMessage({
- action: "designModeState",
+ action: 'designModeState',
designModeState: this.state
- });
-};
+ })
+}
diff --git a/src/components/highlight-component/highlight-component.js b/src/components/highlight-component/highlight-component.js
index d111627..f8f012f 100644
--- a/src/components/highlight-component/highlight-component.js
+++ b/src/components/highlight-component/highlight-component.js
@@ -1,95 +1,95 @@
-'use strict';
+'use strict'
-function HighlightComponent() {
- this.isComponentsHighlighted = false;
- this.components = extractComponentsFromPage();
+function HighlightComponent () {
+ this.isComponentsHighlighted = false
+ this.components = extractComponentsFromPage()
- // Get an array of components on the page.
- function extractComponentsFromPage() {
+ // Get an array of components on the page.
+ function extractComponentsFromPage () {
var componentsOnPage = document.querySelectorAll('[class*="app-c"], [class*="gem-c"]')
var componentsOnPageArray = Array.from(componentsOnPage)
- return componentsOnPageArray.reduce(function(array, element) {
- var componentRegex = /(app-c-|gem-c-)([^ _\n]*(?=[ \n]|$))/;
+ return componentsOnPageArray.reduce(function (array, element) {
+ var componentRegex = /(app-c-|gem-c-)([^ _\n]*(?=[ \n]|$))/
// Get the value of the components class attribute
var elementClassName = null
- if (typeof element.className === "string") {
+ if (typeof element.className === 'string') {
elementClassName = element.className
}
- // Check if it's an app or gem component
- var match = false;
-
+ // Check if it's an app or gem component
+ var match = false
+
if (elementClassName) {
- match = elementClassName.match(componentRegex);
+ match = elementClassName.match(componentRegex)
}
if (match) {
array.push({
- element: element, //
- prefix: match[1], // componentType
- name: match[2] // componentName
- });
+ element: element, //
+ prefix: match[1], // componentType
+ name: match[2] // componentName
+ })
}
return array
- }, []);
+ }, [])
}
// This is looping over the components and for each component in the array it will call the setupComponent method and pass in the component to setup.
- this.components.forEach(setupComponent.bind(this));
-
- // This method, is going to modify the HTML for each component, it'll set the attribute data-component-name and data-app-name,
- function setupComponent(component) {
- component.element.setAttribute('data-component-name', component.name);
- component.element.setAttribute('data-app-name', component.prefix);
-
- //the method will add a click event (listener), it'll then open a new window with the documentationUrl for that component.
- component.element.addEventListener('click', function() {
+ this.components.forEach(setupComponent.bind(this))
+
+ // This method, is going to modify the HTML for each component, it'll set the attribute data-component-name and data-app-name,
+ function setupComponent (component) {
+ component.element.setAttribute('data-component-name', component.name)
+ component.element.setAttribute('data-app-name', component.prefix)
+
+ // the method will add a click event (listener), it'll then open a new window with the documentationUrl for that component.
+ component.element.addEventListener('click', function () {
if (this.isComponentsHighlighted) {
- window.open( Helpers.documentationUrl(component) );
+ window.open(Helpers.documentationUrl(component))
}
- }.bind(this));
+ }.bind(this))
}
chrome.runtime.onMessage.addListener(function (request) {
if (request.trigger == 'toggleComponents') {
- this.toggleComponents();
+ this.toggleComponents()
}
- }.bind(this));
+ }.bind(this))
}
HighlightComponent.prototype.toggleComponents = function () {
- this.isComponentsHighlighted = !this.isComponentsHighlighted;
+ this.isComponentsHighlighted = !this.isComponentsHighlighted
for (var i = 0; i < this.components.length; i++) {
- this.components[i].element.classList.toggle('highlight-component', this.isComponentsHighlighted);
+ this.components[i].element.classList.toggle('highlight-component', this.isComponentsHighlighted)
}
- this.sendState();
+ this.sendState()
}
-HighlightComponent.prototype.sendState = function() {
+HighlightComponent.prototype.sendState = function () {
chrome.runtime.sendMessage({
- action: "highlightState",
+ action: 'highlightState',
highlightState: this.isComponentsHighlighted
- });
-};
+ })
+}
var Helpers = {
documentationUrl: function (component) {
if (component.prefix.startsWith('app-c')) {
- return "https://" + this.appHostname() + ".herokuapp.com/component-guide/" + component.name
+ return 'https://' + this.appHostname() + '.herokuapp.com/component-guide/' + component.name
} else if (component.prefix.startsWith('gem-c')) {
- return "https://govuk-publishing-components.herokuapp.com/component-guide/" + component.name.replace(/-/g, '_');
+ return 'https://govuk-publishing-components.herokuapp.com/component-guide/' + component.name.replace(/-/g, '_')
}
},
substitutions: {
- 'collections': 'govuk-collections'
+ collections: 'govuk-collections'
},
- appHostname: function() {
- var rendering_element = document.querySelector('meta[name="govuk:rendering-application"]');
- var rendering_app = rendering_element.getAttribute('content');
- return this.substitutions[rendering_app] || rendering_app;
+ appHostname: function () {
+ var rendering_element = document.querySelector('meta[name="govuk:rendering-application"]')
+ var rendering_app = rendering_element.getAttribute('content')
+ return this.substitutions[rendering_app] || rendering_app
}
}
diff --git a/src/components/show-meta-tags-component/show-meta-tags-component.js b/src/components/show-meta-tags-component/show-meta-tags-component.js
index d348855..003cfa3 100644
--- a/src/components/show-meta-tags-component/show-meta-tags-component.js
+++ b/src/components/show-meta-tags-component/show-meta-tags-component.js
@@ -1,30 +1,29 @@
-'use strict';
-function ShowMetaTagsComponent() {
- this.isMetaTagsDisplayed = false;
+'use strict'
+function ShowMetaTagsComponent () {
+ this.isMetaTagsDisplayed = false
chrome.runtime.onMessage.addListener(function (request) {
if (request.trigger == 'toggleMetaTags') {
- this.toggleMetaTags();
+ this.toggleMetaTags()
}
- }.bind(this));
+ }.bind(this))
}
-ShowMetaTagsComponent.prototype.toggleMetaTags = function() {
-
- if(this.isMetaTagsDisplayed) {
- this.hideMetaTags();
+ShowMetaTagsComponent.prototype.toggleMetaTags = function () {
+ if (this.isMetaTagsDisplayed) {
+ this.hideMetaTags()
} else {
- this.showMetaTags();
+ this.showMetaTags()
}
- this.sendState();
-};
+ this.sendState()
+}
-ShowMetaTagsComponent.prototype.showMetaTags = function() {
- var titleElement = document.querySelector("title");
- var titleText = ""
+ShowMetaTagsComponent.prototype.showMetaTags = function () {
+ var titleElement = document.querySelector('title')
+ var titleText = ''
if (titleElement) {
- titleText = titleElement.textContent;
+ titleText = titleElement.textContent
}
var titleTag = `
@@ -34,23 +33,21 @@ ShowMetaTagsComponent.prototype.showMetaTags = function() {
`
- var metaTagContainer = document.createElement("div");
- metaTagContainer.setAttribute("id", "govuk-chrome-toolkit-banner")
+ var metaTagContainer = document.createElement('div')
+ metaTagContainer.setAttribute('id', 'govuk-chrome-toolkit-banner')
// insert titleTag into metaTagContainer
- metaTagContainer.insertAdjacentHTML("beforeend" ,titleTag);
-
+ metaTagContainer.insertAdjacentHTML('beforeend', titleTag)
- var metaTags = document.querySelectorAll("meta");
- metaTags.forEach(function(metaTag) {
-
- var metaTagName = metaTag.getAttribute("name");
- if(metaTagName === null) {
- return;
+ var metaTags = document.querySelectorAll('meta')
+ metaTags.forEach(function (metaTag) {
+ var metaTagName = metaTag.getAttribute('name')
+ if (metaTagName === null) {
+ return
}
-
- var metaTagContent = metaTag.getAttribute("content");
- if(metaTagContent === null) {
- metaTagContent = "";
+
+ var metaTagContent = metaTag.getAttribute('content')
+ if (metaTagContent === null) {
+ metaTagContent = ''
}
var metaTagInfo = `
@@ -61,25 +58,24 @@ ShowMetaTagsComponent.prototype.showMetaTags = function() {
`
// insert metaTagInfo into metaTagContainer
- metaTagContainer.insertAdjacentHTML("beforeend", metaTagInfo);
-
- });
+ metaTagContainer.insertAdjacentHTML('beforeend', metaTagInfo)
+ })
- document.body.prepend(metaTagContainer);
+ document.body.prepend(metaTagContainer)
- this.isMetaTagsDisplayed = true;
+ this.isMetaTagsDisplayed = true
}
-ShowMetaTagsComponent.prototype.hideMetaTags = function() {
- var hideMetaTagsBanner = document.querySelector(`#govuk-chrome-toolkit-banner`);
- hideMetaTagsBanner.remove();
+ShowMetaTagsComponent.prototype.hideMetaTags = function () {
+ var hideMetaTagsBanner = document.querySelector('#govuk-chrome-toolkit-banner')
+ hideMetaTagsBanner.remove()
- this.isMetaTagsDisplayed = false;
+ this.isMetaTagsDisplayed = false
}
-ShowMetaTagsComponent.prototype.sendState = function() {
+ShowMetaTagsComponent.prototype.sendState = function () {
chrome.runtime.sendMessage({
- action: "showMetaTagState",
+ action: 'showMetaTagState',
showMetaTagsState: this.isMetaTagsDisplayed
- });
-};
\ No newline at end of file
+ })
+}
diff --git a/src/events/ab_bucket_store.js b/src/events/ab_bucket_store.js
index 8076434..ff9046f 100644
--- a/src/events/ab_bucket_store.js
+++ b/src/events/ab_bucket_store.js
@@ -3,29 +3,29 @@
// It stores the environment-specific state of the user's A/B testing buckets in
// memory, until the browser or the extension is next reloaded.
var abBucketStore = (function () {
- function createStore() {
- var abTestBuckets = {};
+ function createStore () {
+ var abTestBuckets = {}
- function addAbTests(initialBuckets, hostname) {
- abTestBuckets[hostname] = abTestBuckets[hostname] || {};
+ function addAbTests (initialBuckets, hostname) {
+ abTestBuckets[hostname] = abTestBuckets[hostname] || {}
Object.keys(initialBuckets).map(function (testName) {
// Add any A/B tests that are not already defined, but do not overwrite
// any that we are already tracking.
if (!abTestBuckets[hostname][testName]) {
- abTestBuckets[hostname][testName] = initialBuckets[testName];
+ abTestBuckets[hostname][testName] = initialBuckets[testName]
}
- });
+ })
}
- function getAll(hostname) {
- return abTestBuckets[hostname] || {};
+ function getAll (hostname) {
+ return abTestBuckets[hostname] || {}
}
- function setBucket(testName, bucket, hostname) {
- abTest = abTestBuckets[hostname][testName];
- abTest.currentBucket = bucket;
- abTestBuckets[hostname][testName] = abTest;
+ function setBucket (testName, bucket, hostname) {
+ abTest = abTestBuckets[hostname][testName]
+ abTest.currentBucket = bucket
+ abTestBuckets[hostname][testName] = abTest
}
return {
@@ -38,4 +38,4 @@ var abBucketStore = (function () {
return {
createStore: createStore
}
-}());
+}())
diff --git a/src/events/ab_test_settings.js b/src/events/ab_test_settings.js
index 3350866..34cd221 100644
--- a/src/events/ab_test_settings.js
+++ b/src/events/ab_test_settings.js
@@ -5,23 +5,22 @@
// with the correct A/B variant. It gets the current variant from the meta tags.
// - Responds to messages to change the current A/B variant. It updates the
// headers it will send and set a cookie like Fastly would.
-var abTestSettings = (function() {
+var abTestSettings = (function () {
+ var abBucketStore = chrome.extension.getBackgroundPage().abBucketStore.createStore()
- var abBucketStore = chrome.extension.getBackgroundPage().abBucketStore.createStore();
+ function initialize (initialBuckets, url) {
+ var hostname = extractHostname(url)
- function initialize(initialBuckets, url) {
- var hostname = extractHostname(url);
-
- abBucketStore.addAbTests(initialBuckets, hostname);
- return abBucketStore.getAll(hostname);
+ abBucketStore.addAbTests(initialBuckets, hostname)
+ return abBucketStore.getAll(hostname)
}
- function updateCookie(name, bucket, url, callback) {
- var cookieName = "ABTest-" + name;
+ function updateCookie (name, bucket, url, callback) {
+ var cookieName = 'ABTest-' + name
- chrome.cookies.get({name: cookieName, url: url}, function (cookie) {
+ chrome.cookies.get({ name: cookieName, url: url }, function (cookie) {
if (cookie) {
- cookie.value = bucket;
+ cookie.value = bucket
var updatedCookie = {
name: cookieName,
@@ -29,45 +28,45 @@ var abTestSettings = (function() {
url: url,
path: cookie.path,
expirationDate: cookie.expirationDate
- };
+ }
- chrome.cookies.set(updatedCookie, callback);
+ chrome.cookies.set(updatedCookie, callback)
} else {
- callback();
+ callback()
}
- });
+ })
}
- function setBucket(testName, bucketName, url, callback) {
- abBucketStore.setBucket(testName, bucketName, extractHostname(url));
- updateCookie(testName, bucketName, url, callback);
+ function setBucket (testName, bucketName, url, callback) {
+ abBucketStore.setBucket(testName, bucketName, extractHostname(url))
+ updateCookie(testName, bucketName, url, callback)
}
- function addAbHeaders(details) {
- var abTestBuckets = abBucketStore.getAll(extractHostname(details.url));
+ function addAbHeaders (details) {
+ var abTestBuckets = abBucketStore.getAll(extractHostname(details.url))
Object.keys(abTestBuckets).map(function (abTestName) {
details.requestHeaders.push({
- name: "GOVUK-ABTest-" + abTestName,
+ name: 'GOVUK-ABTest-' + abTestName,
value: abTestBuckets[abTestName].currentBucket
- });
- });
+ })
+ })
- return {requestHeaders: details.requestHeaders};
+ return { requestHeaders: details.requestHeaders }
}
- function extractHostname(url) {
- return new URL(url).hostname;
+ function extractHostname (url) {
+ return new URL(url).hostname
}
chrome.webRequest.onBeforeSendHeaders.addListener(
addAbHeaders,
- {urls: ["*://*.gov.uk/*"]},
- ["requestHeaders", "blocking"]
- );
+ { urls: ['*://*.gov.uk/*'] },
+ ['requestHeaders', 'blocking']
+ )
return {
initialize: initialize,
setBucket: setBucket
- };
-}());
+ }
+}())
diff --git a/src/events/icon.js b/src/events/icon.js
index 84b4f8c..3c6a383 100644
--- a/src/events/icon.js
+++ b/src/events/icon.js
@@ -1,15 +1,15 @@
// This script runs in the background in Chrome. It will activate the small
// greyed out GOV.UK logo in the Chrome menu bar whenever we're on a gov.uk page.
-function showIconForGovukPages(tabId, changeInfo, tab) {
+function showIconForGovukPages (tabId, changeInfo, tab) {
if (tab.url.match(/www\.gov\.uk/) || tab.url.match(/dev\.gov\.uk/) || tab.url.match(/.*publishing\.service\.gov\.uk/)) {
- chrome.pageAction.show(tabId);
+ chrome.pageAction.show(tabId)
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
- chrome.pageAction.setIcon({tabId: tabId, path: { '19': 'icons/crown-logo-19-active-dark-mode.png', '38': 'icons/crown-logo-38-active-dark-mode.png' }});
+ chrome.pageAction.setIcon({ tabId: tabId, path: { 19: 'icons/crown-logo-19-active-dark-mode.png', 38: 'icons/crown-logo-38-active-dark-mode.png' } })
} else {
- chrome.pageAction.setIcon({tabId: tabId, path: { '19': 'icons/crown-logo-19-active.png', '38': 'icons/crown-logo-38-active.png' }});
+ chrome.pageAction.setIcon({ tabId: tabId, path: { 19: 'icons/crown-logo-19-active.png', 38: 'icons/crown-logo-38-active.png' } })
}
}
}
-chrome.tabs.onCreated.addListener(showIconForGovukPages);
-chrome.tabs.onUpdated.addListener(showIconForGovukPages);
+chrome.tabs.onCreated.addListener(showIconForGovukPages)
+chrome.tabs.onUpdated.addListener(showIconForGovukPages)
diff --git a/src/fetch-page-data.js b/src/fetch-page-data.js
index 59dd097..861f5ff 100644
--- a/src/fetch-page-data.js
+++ b/src/fetch-page-data.js
@@ -3,7 +3,7 @@
// the information needed to render it.
chrome.runtime.sendMessage({
- action: "populatePopup",
+ action: 'populatePopup',
currentLocation: window.location.href,
currentHost: window.location.host,
currentOrigin: window.location.origin,
@@ -12,33 +12,33 @@ chrome.runtime.sendMessage({
abTestBuckets: getAbTestBuckets(),
windowHeight: window.innerHeight,
highlightState: window.highlightComponent.state
-});
+})
-function getMetatag(name) {
+function getMetatag (name) {
var meta = document.getElementsByTagName('meta')[name]
return meta && meta.getAttribute('content')
}
-function getAbTestBuckets() {
- var abMetaTags = document.querySelectorAll('meta[name="govuk:ab-test"]');
+function getAbTestBuckets () {
+ var abMetaTags = document.querySelectorAll('meta[name="govuk:ab-test"]')
- var metaTagPattern = /([\w-]+):([\w-]+)/;
- var buckets = {};
+ var metaTagPattern = /([\w-]+):([\w-]+)/
+ var buckets = {}
abMetaTags.forEach(function (metaTag) {
- var testNameAndBucket = metaTagPattern.exec(metaTag.content);
- var testName = testNameAndBucket[1];
- var currentBucket = testNameAndBucket[2];
+ var testNameAndBucket = metaTagPattern.exec(metaTag.content)
+ var testName = testNameAndBucket[1]
+ var currentBucket = testNameAndBucket[2]
var allowedBuckets =
- (metaTag.dataset.allowedVariants || "A,B").split(",");
+ (metaTag.dataset.allowedVariants || 'A,B').split(',')
buckets[testName] = {
currentBucket: currentBucket,
allowedBuckets: allowedBuckets
}
- });
+ })
- return buckets;
+ return buckets
}
-undefined;
+undefined
diff --git a/src/popup/ab_tests.js b/src/popup/ab_tests.js
index 12e6995..4dbbee8 100644
--- a/src/popup/ab_tests.js
+++ b/src/popup/ab_tests.js
@@ -1,19 +1,18 @@
-var Popup = Popup || {};
+var Popup = Popup || {}
-Popup.findActiveAbTests = function(abTestBuckets) {
+Popup.findActiveAbTests = function (abTestBuckets) {
return Object.keys(abTestBuckets).map(function (abTestName) {
-
- var currentBucket = abTestBuckets[abTestName].currentBucket;
- var allowedBuckets = abTestBuckets[abTestName].allowedBuckets;
+ var currentBucket = abTestBuckets[abTestName].currentBucket
+ var allowedBuckets = abTestBuckets[abTestName].allowedBuckets
return {
testName: abTestName,
buckets: allowedBuckets.map(function (bucketName) {
return {
bucketName: bucketName,
- class: currentBucket === bucketName ? "ab-bucket-selected" : ""
- };
+ class: currentBucket === bucketName ? 'ab-bucket-selected' : ''
+ }
})
}
- });
-};
+ })
+}
diff --git a/src/popup/content_links.js b/src/popup/content_links.js
index d9cd4f2..0f7c342 100644
--- a/src/popup/content_links.js
+++ b/src/popup/content_links.js
@@ -1,42 +1,42 @@
-var Popup = Popup || {};
+var Popup = Popup || {}
// Given a location, generate links to different content presentations
-Popup.generateContentLinks = function(location, origin, pathname, currentEnvironment, renderingApplication) {
- var path = Popup.extractPath(location, pathname, renderingApplication);
+Popup.generateContentLinks = function (location, origin, pathname, currentEnvironment, renderingApplication) {
+ var path = Popup.extractPath(location, pathname, renderingApplication)
// If no path can be found (which means we're probably in a publishing app)
// Similarly if we're on GOVUK account, not many of the links are relevant
if (!path || origin.match(/www.account/)) {
- return [];
+ return []
}
// This is 'https://www.gov.uk' or 'https://www-origin.integration.publishing.service.gov.uk/', etc.
if (origin == 'http://webarchive.nationalarchives.gov.uk' || origin.match(/draft-origin/) || origin.match(/content-data/) || origin.match(/support/)) {
- origin = "https://www.gov.uk"
+ origin = 'https://www.gov.uk'
}
var links = []
// If we're on the homepage there's not much to show.
- links.push({ name: "On GOV.UK", url: origin + path })
- links.push({ name: "Content item (JSON)", url: currentEnvironment.origin + "/api/content" + path })
- links.push({ name: "Search data (JSON)", url: origin + "/api/search.json?filter_link=" + path })
- links.push({ name: "Info page", url: origin + "/info" + path })
- links.push({ name: "Draft (may not always work)", url: currentEnvironment.protocol + '://draft-origin.' + currentEnvironment.serviceDomain + path })
- links.push({ name: "User feedback", url: currentEnvironment.protocol + '://support.' + currentEnvironment.serviceDomain + '/anonymous_feedback?path=' + path })
- links.push({ name: "National Archives", url: "http://webarchive.nationalarchives.gov.uk/*/https://www.gov.uk" + path })
- links.push({ name: "View data about page on Content Data", url: currentEnvironment.protocol + '://content-data.' + currentEnvironment.serviceDomain + '/metrics' + path })
- links.push({ name: "Check for content problems in Siteimprove", url: "https://my2.siteimprove.com/QualityAssurance/1054012/Overview/Search?SearchIn=Url&Query=" + path})
- links.push({ name: "View structured data", url: "https://search.google.com/structured-data/testing-tool/u/0/#url=https://www.gov.uk" + path })
-
- var currentUrl = origin + path;
-
- if (renderingApplication == "smartanswers") {
- links.push({ name: "SmartAnswers: Visualise", url: currentUrl.replace(/\/y.*$/, "") + "/y/visualise" })
+ links.push({ name: 'On GOV.UK', url: origin + path })
+ links.push({ name: 'Content item (JSON)', url: currentEnvironment.origin + '/api/content' + path })
+ links.push({ name: 'Search data (JSON)', url: origin + '/api/search.json?filter_link=' + path })
+ links.push({ name: 'Info page', url: origin + '/info' + path })
+ links.push({ name: 'Draft (may not always work)', url: currentEnvironment.protocol + '://draft-origin.' + currentEnvironment.serviceDomain + path })
+ links.push({ name: 'User feedback', url: currentEnvironment.protocol + '://support.' + currentEnvironment.serviceDomain + '/anonymous_feedback?path=' + path })
+ links.push({ name: 'National Archives', url: 'http://webarchive.nationalarchives.gov.uk/*/https://www.gov.uk' + path })
+ links.push({ name: 'View data about page on Content Data', url: currentEnvironment.protocol + '://content-data.' + currentEnvironment.serviceDomain + '/metrics' + path })
+ links.push({ name: 'Check for content problems in Siteimprove', url: 'https://my2.siteimprove.com/QualityAssurance/1054012/Overview/Search?SearchIn=Url&Query=' + path })
+ links.push({ name: 'View structured data', url: 'https://search.google.com/structured-data/testing-tool/u/0/#url=https://www.gov.uk' + path })
+
+ var currentUrl = origin + path
+
+ if (renderingApplication == 'smartanswers') {
+ links.push({ name: 'SmartAnswers: Visualise', url: currentUrl.replace(/\/y.*$/, '') + '/y/visualise' })
}
return links.map(function (link) {
- link.class = link.url == location ? "current" : ""
- return link;
+ link.class = link.url == location ? 'current' : ''
+ return link
})
}
diff --git a/src/popup/environment.js b/src/popup/environment.js
index 7986d11..d1d6845 100644
--- a/src/popup/environment.js
+++ b/src/popup/environment.js
@@ -1,95 +1,94 @@
-var Popup = Popup || {};
+var Popup = Popup || {}
// Given a location, host and origin, generate URLs for all GOV.UK environments.
//
// Returns a hash with envs, including one with `class: "current"` to show
// the current environment.
-Popup.environment = function(location, host, origin) {
-
- function isPartOfGOVUK() {
+Popup.environment = function (location, host, origin) {
+ function isPartOfGOVUK () {
return host.match(/www.gov.uk/) ||
host.match(/publishing.service.gov.uk/) ||
- host.match(/dev.gov.uk/);
+ host.match(/dev.gov.uk/)
}
- function isGOVUKAccount() {
+ function isGOVUKAccount () {
return host.match(/www.account/) || host.match(/login.service.dev/)
}
if (!isPartOfGOVUK()) {
return {
allEnvironments: {
- name: "GOV.UK",
- url: "https://www.gov.uk"
+ name: 'GOV.UK',
+ url: 'https://www.gov.uk'
}
}
}
var ENVIRONMENTS = [
{
- name: "Production",
- protocol: "https",
- serviceDomain: "publishing.service.gov.uk",
- host: "https://www.gov.uk",
+ name: 'Production',
+ protocol: 'https',
+ serviceDomain: 'publishing.service.gov.uk',
+ host: 'https://www.gov.uk',
origin: origin
},
{
- name: "Staging",
- protocol: "https",
- serviceDomain: "staging.publishing.service.gov.uk",
- host: "https://www.staging.publishing.service.gov.uk",
+ name: 'Staging',
+ protocol: 'https',
+ serviceDomain: 'staging.publishing.service.gov.uk',
+ host: 'https://www.staging.publishing.service.gov.uk',
origin: origin
},
{
- name: "Integration",
- protocol: "https",
- serviceDomain: "integration.publishing.service.gov.uk",
- host: "https://www.integration.publishing.service.gov.uk",
+ name: 'Integration',
+ protocol: 'https',
+ serviceDomain: 'integration.publishing.service.gov.uk',
+ host: 'https://www.integration.publishing.service.gov.uk',
origin: origin
},
{
- name: "Development",
- protocol: "http",
- serviceDomain: "dev.gov.uk",
- host: "http://www.dev.gov.uk",
+ name: 'Development',
+ protocol: 'http',
+ serviceDomain: 'dev.gov.uk',
+ host: 'http://www.dev.gov.uk',
origin: origin
}
]
- var application = isGOVUKAccount() ? host.split('.')[1] : host.split('.')[0],
- inFrontend = application.match(/www/) && !isGOVUKAccount(),
- environments = ENVIRONMENTS;
+ var application = isGOVUKAccount() ? host.split('.')[1] : host.split('.')[0]
+ var inFrontend = application.match(/www/) && !isGOVUKAccount()
+ var environments = ENVIRONMENTS
- var currentEnvironment;
+ var currentEnvironment
var allEnvironments = environments.map(function (env) {
if (inFrontend) {
- var replacement = env.host;
+ var replacement = env.host
} else if (isGOVUKAccount()) {
- var replacement = env.protocol + "://www." + application + "." + env.serviceDomain;
+ var replacement = env.protocol + '://www.' + application + '.' + env.serviceDomain
} else {
- var replacement = env.protocol + "://" + application + "." + env.serviceDomain;
+ var replacement = env.protocol + '://' + application + '.' + env.serviceDomain
}
- env.url = location.replace(origin, replacement);
- if (env.name === "Development" && isGOVUKAccount()) {
+ env.url = location.replace(origin, replacement)
+ if (env.name === 'Development' && isGOVUKAccount()) {
// The GOV.UK Account is a special snowflake app with a special snowflake dev environment URL
- env.url = "http://www.login.service.dev.gov.uk/"
+ env.url = 'http://www.login.service.dev.gov.uk/'
}
if (location == env.url) {
- env.class = "current";
- currentEnvironment = env;
+ env.class = 'current'
+ currentEnvironment = env
} else {
- env.class = "";
+ env.class = ''
}
- return env;
- }).filter(function( env ) {
+ return env
+ }).filter(function (env) {
// GOV.UK Account does not have an Integration environment – remove this option from the list of environments
- if (env.name === "Integration" && isGOVUKAccount()) return;
- return env;
- });
+ if (env.name === 'Integration' && isGOVUKAccount()) return
+ return env
+ })
return {
allEnvironments: allEnvironments,
diff --git a/src/popup/external_links.js b/src/popup/external_links.js
index 76b12e6..cc77538 100644
--- a/src/popup/external_links.js
+++ b/src/popup/external_links.js
@@ -1,48 +1,47 @@
-var Popup = Popup || {};
+var Popup = Popup || {}
// With the content item we can generate a bunch of external links.
-Popup.generateExternalLinks = function(contentItem, env) {
-
+Popup.generateExternalLinks = function (contentItem, env) {
// Not all publishing_apps name corresponds to the name of the
// alphagov repo.
- function publishingAppNameToRepo(appName) {
+ function publishingAppNameToRepo (appName) {
var APP_NAMES_TO_REPOS = {
- smartanswers: 'smart-answers',
- };
+ smartanswers: 'smart-answers'
+ }
- return APP_NAMES_TO_REPOS[appName] || appName;
+ return APP_NAMES_TO_REPOS[appName] || appName
}
// Not all rendering_apps name corresponds to the name of the
// alphagov repo.
- function renderingAppNameToRepo(appName) {
+ function renderingAppNameToRepo (appName) {
var APP_NAMES_TO_REPOS = {
smartanswers: 'smart-answers',
- 'whitehall-frontend': 'whitehall',
- };
+ 'whitehall-frontend': 'whitehall'
+ }
- return APP_NAMES_TO_REPOS[appName] || appName;
+ return APP_NAMES_TO_REPOS[appName] || appName
}
var links = []
generateEditLink(contentItem, env).forEach(element => {
- links.push(element);
- });
+ links.push(element)
+ })
- var schemaName = contentItem.schema_name || "";
- if (schemaName.indexOf("placeholder") !== -1) {
- schemaName = "placeholder"
+ var schemaName = contentItem.schema_name || ''
+ if (schemaName.indexOf('placeholder') !== -1) {
+ schemaName = 'placeholder'
}
links.push({
name: 'Add tags in content-tagger',
- url: env.protocol + '://content-tagger.' + env.serviceDomain + '/content/' + contentItem.content_id,
+ url: env.protocol + '://content-tagger.' + env.serviceDomain + '/content/' + contentItem.content_id
})
links.push({
name: 'Look up in search-admin',
- url: env.protocol + '://search-admin.' + env.serviceDomain + '/results/result?base_path=' + encodeURIComponent(contentItem.base_path),
+ url: env.protocol + '://search-admin.' + env.serviceDomain + '/results/result?base_path=' + encodeURIComponent(contentItem.base_path)
})
links.push({
@@ -65,64 +64,64 @@ Popup.generateExternalLinks = function(contentItem, env) {
url: 'https://docs.publishing.service.gov.uk/document-types/' + contentItem.document_type + '.html'
})
- return links.filter(function(item) { return item != undefined });
+ return links.filter(function (item) { return item != undefined })
}
-function generateEditLink(contentItem, env) {
+function generateEditLink (contentItem, env) {
if (contentItem.document_type == 'topic') {
return [{
name: 'Edit in collections-publisher',
- url: env.protocol + '://collections-publisher.' + env.serviceDomain + '/specialist-sector-pages/' + contentItem.content_id,
+ url: env.protocol + '://collections-publisher.' + env.serviceDomain + '/specialist-sector-pages/' + contentItem.content_id
}]
} else if (contentItem.document_type == 'step_by_step_nav') {
return [{
name: 'Look up in collections-publisher',
- url: env.protocol + '://collections-publisher.' + env.serviceDomain + '/step-by-step-pages',
+ url: env.protocol + '://collections-publisher.' + env.serviceDomain + '/step-by-step-pages'
}]
} else if (contentItem.document_type == 'mainstream_browse_page') {
return [{
name: 'Edit in collections-publisher',
- url: env.protocol + '://collections-publisher.' + env.serviceDomain + '/mainstream-browse-pages/' + contentItem.content_id,
+ url: env.protocol + '://collections-publisher.' + env.serviceDomain + '/mainstream-browse-pages/' + contentItem.content_id
}]
} else if (contentItem.document_type == 'taxon') {
return [{
name: 'Edit in content-tagger',
- url: env.protocol + '://content-tagger.' + env.serviceDomain + '/taxons/' + contentItem.content_id,
+ url: env.protocol + '://content-tagger.' + env.serviceDomain + '/taxons/' + contentItem.content_id
}]
} else if (contentItem.publishing_app == 'publisher') {
return [{
name: 'Look up in Mainstream Publisher',
- url: env.protocol + '://publisher.' + env.serviceDomain + '/?list=published&string_filter=' + contentItem.base_path.substring(1) + '&user_filter=all',
+ url: env.protocol + '://publisher.' + env.serviceDomain + '/?list=published&string_filter=' + contentItem.base_path.substring(1) + '&user_filter=all'
}]
} else if (contentItem.publishing_app == 'content-publisher') {
return [{
name: 'Edit in Content Publisher',
- url: env.protocol + '://content-publisher.' + env.serviceDomain + '/documents/' + contentItem.content_id + ':' + contentItem.locale,
+ url: env.protocol + '://content-publisher.' + env.serviceDomain + '/documents/' + contentItem.content_id + ':' + contentItem.locale
}]
} else if (contentItem.publishing_app == 'whitehall') {
return [{
name: 'Edit in Whitehall Publisher',
- url: env.protocol + '://whitehall-admin.' + env.serviceDomain + '/government/admin/by-content-id/' + contentItem.content_id,
+ url: env.protocol + '://whitehall-admin.' + env.serviceDomain + '/government/admin/by-content-id/' + contentItem.content_id
}]
} else if (contentItem.document_type == 'manual') {
return [{
name: 'Edit in Manuals Publisher',
- url: env.protocol + '://manuals-publisher.' + env.serviceDomain + '/manuals/' + contentItem.content_id,
+ url: env.protocol + '://manuals-publisher.' + env.serviceDomain + '/manuals/' + contentItem.content_id
}]
} else if (contentItem.publishing_app == 'specialist-publisher') {
return [{
name: 'Edit in Specialist Publisher',
- url: env.protocol + '://specialist-publisher.' + env.serviceDomain + '/' + contentItem.document_type.replace(/_/g, "-") + 's/' + contentItem.content_id,
+ url: env.protocol + '://specialist-publisher.' + env.serviceDomain + '/' + contentItem.document_type.replace(/_/g, '-') + 's/' + contentItem.content_id
}]
} else if (contentItem.publishing_app == 'smartanswers') {
return [
{
name: 'View flow page in Github',
- url: 'https://github.com/alphagov/smart-answers/tree/main/app/flows' + contentItem.base_path.replace(/-/g, "_") + "_flow.rb",
+ url: 'https://github.com/alphagov/smart-answers/tree/main/app/flows' + contentItem.base_path.replace(/-/g, '_') + '_flow.rb'
},
{
name: 'View flow details folder in Github',
- url: 'https://github.com/alphagov/smart-answers/tree/main/app/flows' + contentItem.base_path.replace(/-/g, "_") + "_flow",
+ url: 'https://github.com/alphagov/smart-answers/tree/main/app/flows' + contentItem.base_path.replace(/-/g, '_') + '_flow'
}
]
} else {
diff --git a/src/popup/extract_path.js b/src/popup/extract_path.js
index 4f9404d..5e19d93 100644
--- a/src/popup/extract_path.js
+++ b/src/popup/extract_path.js
@@ -1,43 +1,35 @@
-var Popup = Popup || {};
+var Popup = Popup || {}
// Extract the relevant path from a location, such as `/foo` from URLs like
// `www.gov.uk/foo` and `www.gov.uk/api/content/foo`.
-Popup.extractPath = function(location, pathname, renderingApplication) {
- var extractedPath;
+Popup.extractPath = function (location, pathname, renderingApplication) {
+ var extractedPath
if (location.match(/api\/content/)) {
- extractedPath = pathname.replace('api/content/', '');
- }
- else if (location.match(/anonymous_feedback/)) {
- extractedPath = extractQueryParameter(location, 'path');
- }
- else if (location.match(/content-data/)) {
- extractedPath = pathname.replace('metrics/', '');;
- }
- else if (location.match(/nationalarchives.gov.uk/)) {
- extractedPath = pathname.split('https://www.gov.uk')[1];
- }
- else if (location.match(/api\/search.json/)) {
- extractedPath = extractQueryParameter(location, 'filter_link');
- }
- else if (location.match(/info/)) {
- extractedPath = pathname.replace('info/', '');
- }
- else if (location.match(/api.*\.json/)) {
- extractedPath = pathname.replace('api/', '').replace('.json', '');
- }
- else if (location.match(/visualise/)) {
- extractedPath = pathname.replace('/y/visualise', '');
- }
- else if (location.match(/www/) || location.match(/draft-origin/)) {
- extractedPath = pathname;
+ extractedPath = pathname.replace('api/content/', '')
+ } else if (location.match(/anonymous_feedback/)) {
+ extractedPath = extractQueryParameter(location, 'path')
+ } else if (location.match(/content-data/)) {
+ extractedPath = pathname.replace('metrics/', '')
+ } else if (location.match(/nationalarchives.gov.uk/)) {
+ extractedPath = pathname.split('https://www.gov.uk')[1]
+ } else if (location.match(/api\/search.json/)) {
+ extractedPath = extractQueryParameter(location, 'filter_link')
+ } else if (location.match(/info/)) {
+ extractedPath = pathname.replace('info/', '')
+ } else if (location.match(/api.*\.json/)) {
+ extractedPath = pathname.replace('api/', '').replace('.json', '')
+ } else if (location.match(/visualise/)) {
+ extractedPath = pathname.replace('/y/visualise', '')
+ } else if (location.match(/www/) || location.match(/draft-origin/)) {
+ extractedPath = pathname
}
if (extractedPath) {
- return extractedPath.replace('//', '/');
+ return extractedPath.replace('//', '/')
}
- function extractQueryParameter(location, parameter_name) {
- return location.split(parameter_name + '=')[1].split('&')[0];
+ function extractQueryParameter (location, parameter_name) {
+ return location.split(parameter_name + '=')[1].split('&')[0]
}
}
diff --git a/src/popup/popup.js b/src/popup/popup.js
index fc27b94..709a47f 100644
--- a/src/popup/popup.js
+++ b/src/popup/popup.js
@@ -1,36 +1,36 @@
// This script is executed when the popup is opened.
var Popup = Popup || {};
-(function() {
+(function () {
// Execute a script on the main thread (which has access to the currently
// loaded page). This script will call back to us.
- document.addEventListener("DOMContentLoaded", () => {
+ document.addEventListener('DOMContentLoaded', () => {
chrome.tabs.executeScript(null, {
- code: "window.highlightComponent = window.highlightComponent || new HighlightComponent; undefined;"
- });
+ code: 'window.highlightComponent = window.highlightComponent || new HighlightComponent; undefined;'
+ })
chrome.tabs.executeScript(null, {
- code: "window.designModeComponent = window.designModeComponent || new DesignModeComponent; undefined;"
- });
+ code: 'window.designModeComponent = window.designModeComponent || new DesignModeComponent; undefined;'
+ })
chrome.tabs.executeScript(null, {
- code: "window.showMetaTagsComponent = window.showMetaTagsComponent || new ShowMetaTagsComponent; undefined;"
- });
+ code: 'window.showMetaTagsComponent = window.showMetaTagsComponent || new ShowMetaTagsComponent; undefined;'
+ })
chrome.tabs.executeScript(null, {
- file: "fetch-page-data.js"
- });
- });
+ file: 'fetch-page-data.js'
+ })
+ })
// This listener waits for the `populatePopup` message to be sent, from
// fetch-page-data.js (called above). It will forward the location to our main
// render function.
chrome.runtime.onMessage.addListener(function (request, _sender) {
- if (request.action == "populatePopup") {
+ if (request.action == 'populatePopup') {
// When we're asked to populate the popup, we'll first send the current
// buckets back to the main thread, which "persists" them.
- var abTestSettings = chrome.extension.getBackgroundPage().abTestSettings;
- var abTestBuckets = abTestSettings.initialize(request.abTestBuckets, request.currentLocation);
+ var abTestSettings = chrome.extension.getBackgroundPage().abTestSettings
+ var abTestBuckets = abTestSettings.initialize(request.abTestBuckets, request.currentLocation)
renderPopup(
request.currentLocation,
@@ -40,165 +40,156 @@ var Popup = Popup || {};
request.renderingApplication,
request.windowHeight,
abTestBuckets
- );
+ )
}
- });
+ })
chrome.runtime.onMessage.addListener(function (request, _sender) {
- if (request.action == "highlightState") {
+ if (request.action == 'highlightState') {
// When we're asked to populate the popup, we'll first send the current
// buckets back to the main thread, which "persists" them.
- if (request.highlightState)
- document.querySelector('#highlight-components').textContent = 'Stop highlighting components';
- else
- document.querySelector('#highlight-components').textContent = 'Highlight Components';
+ if (request.highlightState) { document.querySelector('#highlight-components').textContent = 'Stop highlighting components' } else { document.querySelector('#highlight-components').textContent = 'Highlight Components' }
}
- });
+ })
chrome.runtime.onMessage.addListener(function (request, _sender) {
- if (request.action == "showMetaTagState") {
+ if (request.action == 'showMetaTagState') {
// When we're asked to populate the popup, we'll first send the current
// buckets back to the main thread, which "persists" them.
- if (request.metaTags)
- document.querySelector('#highlight-meta-tags').textContent = 'Hide meta tags';
- else
- document.querySelector('#highlight-meta-tags').textContent = 'Show meta tags';
+ if (request.metaTags) { document.querySelector('#highlight-meta-tags').textContent = 'Hide meta tags' } else { document.querySelector('#highlight-meta-tags').textContent = 'Show meta tags' }
}
- });
+ })
chrome.runtime.onMessage.addListener(function (request, _sender) {
- if (request.action == "designModeState") {
- var toggleLink = document.querySelector("#toggle-design-mode");
- if (request.designModeState)
- toggleLink.textContent = "Turn off design mode";
- else
- toggleLink.textContent = "Turn on design mode";
+ if (request.action == 'designModeState') {
+ var toggleLink = document.querySelector('#toggle-design-mode')
+ if (request.designModeState) { toggleLink.textContent = 'Turn off design mode' } else { toggleLink.textContent = 'Turn on design mode' }
}
- });
+ })
// Render the popup.
- function renderPopup(location, host, origin, pathname, renderingApplication, windowHeight, abTestBuckets) {
+ function renderPopup (location, host, origin, pathname, renderingApplication, windowHeight, abTestBuckets) {
// Creates a view object with the data and render a template with it.
- var view = createView(location, host, origin, pathname, renderingApplication, abTestBuckets);
+ var view = createView(location, host, origin, pathname, renderingApplication, abTestBuckets)
- var contentStore = view.contentLinks.find(function (el) { return el.name == "Content item (JSON)" })
+ var contentStore = view.contentLinks.find(function (el) { return el.name == 'Content item (JSON)' })
if (windowHeight < 600) {
var popupContent = document.querySelector('#content')
popupContent.style.overflowY = 'scroll'
- popupContent.style.height = windowHeight + "px";
+ popupContent.style.height = windowHeight + 'px'
}
- if (contentStore) {
- renderViewWithExternalLinks(contentStore.url, view, location);
+ if (contentStore) {
+ renderViewWithExternalLinks(contentStore.url, view, location)
} else {
- renderView(view, location);
+ renderView(view, location)
}
}
- async function renderViewWithExternalLinks(contentStoreUrl, view, location) {
+ async function renderViewWithExternalLinks (contentStoreUrl, view, location) {
try {
- const response = await fetch(contentStoreUrl);
- const responseJson = await response.json();
-
+ const response = await fetch(contentStoreUrl)
+ const responseJson = await response.json()
+
// update the external links array
- view.externalLinks = Popup.generateExternalLinks(responseJson, view.currentEnvironment);
- renderView(view, location);
+ view.externalLinks = Popup.generateExternalLinks(responseJson, view.currentEnvironment)
+ renderView(view, location)
} catch (error) {
- renderView(view, location);
+ renderView(view, location)
}
}
- function renderView(view, currentUrl) {
- var template = document.querySelector('#template').innerHTML;
- var popupContent = document.querySelector('#content');
- popupContent.innerHTML = Mustache.render(template, view);
- setupClicks();
+ function renderView (view, currentUrl) {
+ var template = document.querySelector('#template').innerHTML
+ var popupContent = document.querySelector('#content')
+ popupContent.innerHTML = Mustache.render(template, view)
+ setupClicks()
- setupAbToggles(currentUrl);
+ setupAbToggles(currentUrl)
chrome.tabs.executeScript(null, {
- code: "window.highlightComponent.sendState(); undefined;"
- });
+ code: 'window.highlightComponent.sendState(); undefined;'
+ })
chrome.tabs.executeScript(null, {
- code: "window.showMetaTagsComponent.sendState(); undefined;"
- });
+ code: 'window.showMetaTagsComponent.sendState(); undefined;'
+ })
chrome.tabs.executeScript(null, {
- code: "window.designModeComponent.sendState(); undefined;"
- });
+ code: 'window.designModeComponent.sendState(); undefined;'
+ })
}
- function setupClicks() {
+ function setupClicks () {
// Clicking on a link won't open the tab because we're in a separate window.
// Open external links (to GitHub etc) in a new tab.
var externalLinks = document.querySelectorAll('a.js-external')
- externalLinks.forEach(function(externalLink) {
- externalLink.addEventListener('click', function(e) {
+ externalLinks.forEach(function (externalLink) {
+ externalLink.addEventListener('click', function (e) {
e.stopPropagation()
if (userOpensPageInNewWindow(e)) {
- return;
+ return
}
- var externalLinkHref = externalLink.getAttribute('href');
- chrome.tabs.create({ url: externalLinkHref });
+ var externalLinkHref = externalLink.getAttribute('href')
+ chrome.tabs.create({ url: externalLinkHref })
})
- });
+ })
// Clicking normal links should change the current tab. The popup will not
// update itself automatically, we need to re-render the popup manually.
var rerenderPopup = document.querySelectorAll('a.js-rerender-popup')
- rerenderPopup.forEach(function(reRender){
- reRender.addEventListener('click', function(e){
+ rerenderPopup.forEach(function (reRender) {
+ reRender.addEventListener('click', function (e) {
if (userOpensPageInNewWindow(e)) {
- return;
+ return
}
- e.preventDefault();
+ e.preventDefault()
var reRenderHref = reRender.getAttribute('href')
- chrome.tabs.update({ url: reRenderHref });
+ chrome.tabs.update({ url: reRenderHref })
// This will provide us with a `location` object just like `window.location`.
- var location = document.createElement('a');
- location.href = reRenderHref;
+ var location = document.createElement('a')
+ location.href = reRenderHref
// TODO: we're not actually re-rendering the popup correctly here, because
// we don't have access to the DOM here. This is a temporary solution to
// make most functionality work after the user clicks a button in the popup.
- renderPopup(location, "", {});
+ renderPopup(location, '', {})
})
- });
-
- document.querySelector('#highlight-components').addEventListener('click', function(e) {
- e.preventDefault();
- sendChromeTabMessage('toggleComponents');
- });
-
- document.querySelector('#highlight-meta-tags').addEventListener('click', function(e) {
- e.preventDefault();
- sendChromeTabMessage('toggleMetaTags');
- });
-
- document.querySelector('#toggle-design-mode').addEventListener('click', function(e) {
- e.preventDefault();
- sendChromeTabMessage('toggleDesignMode');
- });
+ })
+
+ document.querySelector('#highlight-components').addEventListener('click', function (e) {
+ e.preventDefault()
+ sendChromeTabMessage('toggleComponents')
+ })
+
+ document.querySelector('#highlight-meta-tags').addEventListener('click', function (e) {
+ e.preventDefault()
+ sendChromeTabMessage('toggleMetaTags')
+ })
+
+ document.querySelector('#toggle-design-mode').addEventListener('click', function (e) {
+ e.preventDefault()
+ sendChromeTabMessage('toggleDesignMode')
+ })
}
// Best guess if the user wants a new window opened.
// https://stackoverflow.com/questions/20087368/how-to-detect-if-user-it-trying-to-open-a-link-in-a-new-tab
- function userOpensPageInNewWindow(e) {
- return e.ctrlKey || e.shiftKey || e.metaKey || (e.button && e.button == 1);
+ function userOpensPageInNewWindow (e) {
+ return e.ctrlKey || e.shiftKey || e.metaKey || (e.button && e.button == 1)
}
- function setupAbToggles(url) {
+ function setupAbToggles (url) {
var abTestBuckets = document.querySelectorAll('.ab-test-bucket')
- abTestBuckets.forEach(function(abTestBucket){
- abTestBucket.addEventListener('click', function(e){
- var abTestSettings = chrome.extension.getBackgroundPage().abTestSettings;
+ abTestBuckets.forEach(function (abTestBucket) {
+ abTestBucket.addEventListener('click', function (e) {
+ var abTestSettings = chrome.extension.getBackgroundPage().abTestSettings
abTestSettings.setBucket(
abTestBucket.dataset.testName,
@@ -206,14 +197,13 @@ var Popup = Popup || {};
url,
function () {
var testBuckets = document.querySelectorAll('.ab-test-bucket')
- for(var testBucket of testBuckets){
+ for (var testBucket of testBuckets) {
testBucket.classList.remove('ab-bucket-selected')
}
- abTestBucket.classList.add('ab-bucket-selected');
- chrome.tabs.reload(null, { bypassCache: true });
+ abTestBucket.classList.add('ab-bucket-selected')
+ chrome.tabs.reload(null, { bypassCache: true })
}
)
-
})
})
}
@@ -221,10 +211,10 @@ var Popup = Popup || {};
// This is the view object. It takes a location, host, origin, the name of the
// rendering app and a list of A/B test buckets and creates an object with all
// URLs and other view data to render the popup.
- function createView(location, host, origin, pathname, renderingApplication, abTestBuckets) {
- var environment = Popup.environment(location, host, origin);
- var contentLinks = Popup.generateContentLinks(location, origin, pathname, environment.currentEnvironment, renderingApplication);
- var abTests = Popup.findActiveAbTests(abTestBuckets);
+ function createView (location, host, origin, pathname, renderingApplication, abTestBuckets) {
+ var environment = Popup.environment(location, host, origin)
+ var contentLinks = Popup.generateContentLinks(location, origin, pathname, environment.currentEnvironment, renderingApplication)
+ var abTests = Popup.findActiveAbTests(abTestBuckets)
return {
environments: environment.allEnvironments,
@@ -236,11 +226,10 @@ var Popup = Popup || {};
}
}
- function sendChromeTabMessage(trigger) {
- chrome.tabs.query({ active: true, currentWindow: true }, function(tabs) {
- var govukTab = tabs[0];
- chrome.tabs.sendMessage(govukTab.id, { trigger: trigger });
- });
+ function sendChromeTabMessage (trigger) {
+ chrome.tabs.query({ active: true, currentWindow: true }, function (tabs) {
+ var govukTab = tabs[0]
+ chrome.tabs.sendMessage(govukTab.id, { trigger: trigger })
+ })
}
-
-}());
+}())
From 5f26cbd087af78966523b3d7b6de517255f320a8 Mon Sep 17 00:00:00 2001
From: kashifatcha
Date: Thu, 21 Dec 2023 09:56:09 +0000
Subject: [PATCH 3/3] Clean up linting errors manually
---
.../javascripts/design_mode_component.spec.js | 3 +++
.../events/ab_bucket_store.spec.js | 2 ++
spec/javascripts/highlight_component.spec.js | 3 +++
spec/javascripts/show_meta_tags.spec.js | 2 ++
.../design-mode-component.js | 3 ++-
.../highlight-component.js | 8 +++----
.../show-meta-tags-component.js | 2 +-
src/events/ab_bucket_store.js | 6 ++++-
src/events/ab_test_settings.js | 2 +-
src/fetch-page-data.js | 2 --
src/popup/content_links.js | 6 ++---
src/popup/environment.js | 8 +++----
src/popup/external_links.js | 22 +++++++++----------
src/popup/extract_path.js | 4 ++--
src/popup/popup.js | 12 +++++-----
15 files changed, 49 insertions(+), 36 deletions(-)
diff --git a/spec/javascripts/design_mode_component.spec.js b/spec/javascripts/design_mode_component.spec.js
index 67cfccb..4d5e1cd 100644
--- a/spec/javascripts/design_mode_component.spec.js
+++ b/spec/javascripts/design_mode_component.spec.js
@@ -1,4 +1,6 @@
'use strict'
+/* global DesignModeComponent */
+
describe('Toggling design mode', function () {
var designModeBannerId = 'govuk-chrome-toolkit-design-mode-banner'
var designModeBannerElement
@@ -10,6 +12,7 @@ describe('Toggling design mode', function () {
runtime: {
onMessage: {
addListener: function (callback) {
+ /* eslint-disable-next-line */
callback({ trigger: 'toggleDesignMode' })
}
},
diff --git a/spec/javascripts/events/ab_bucket_store.spec.js b/spec/javascripts/events/ab_bucket_store.spec.js
index b87144f..52dce6d 100644
--- a/spec/javascripts/events/ab_bucket_store.spec.js
+++ b/spec/javascripts/events/ab_bucket_store.spec.js
@@ -1,3 +1,5 @@
+/* global abBucketStore */
+
describe('abBucketStore', function () {
it('is initialized empty', function () {
var store = abBucketStore.createStore()
diff --git a/spec/javascripts/highlight_component.spec.js b/spec/javascripts/highlight_component.spec.js
index 9a7640d..487786c 100644
--- a/spec/javascripts/highlight_component.spec.js
+++ b/spec/javascripts/highlight_component.spec.js
@@ -1,4 +1,6 @@
'use strict'
+/* global HighlightComponent loadFixtures spyOnEvent setFixtures Helpers */
+
describe('Toggling component highlighting', function () {
var breadcrumbsElement
var highlightComponent
@@ -11,6 +13,7 @@ describe('Toggling component highlighting', function () {
runtime: {
onMessage: {
addListener: function (callback) {
+ /* eslint-disable-next-line */
callback({ trigger: 'toggleComponents' })
}
},
diff --git a/spec/javascripts/show_meta_tags.spec.js b/spec/javascripts/show_meta_tags.spec.js
index 9fb635d..69bcdb8 100644
--- a/spec/javascripts/show_meta_tags.spec.js
+++ b/spec/javascripts/show_meta_tags.spec.js
@@ -1,4 +1,6 @@
'use strict'
+/* global ShowMetaTagsComponent loadFixtures */
+
describe('Toggling meta tags', function () {
var showMetaTagsBannerId = 'govuk-chrome-toolkit-banner'
var showMetaTagsBannerElement
diff --git a/src/components/design-mode-component/design-mode-component.js b/src/components/design-mode-component/design-mode-component.js
index ded8869..27681b6 100644
--- a/src/components/design-mode-component/design-mode-component.js
+++ b/src/components/design-mode-component/design-mode-component.js
@@ -1,9 +1,10 @@
'use strict'
+/* global DesignModeComponent */
function DesignModeComponent () {
this.state = false
chrome.runtime.onMessage.addListener(function (request) {
- if (request.trigger == 'toggleDesignMode') {
+ if (request.trigger === 'toggleDesignMode') {
this.toggleDesignMode()
}
}.bind(this))
diff --git a/src/components/highlight-component/highlight-component.js b/src/components/highlight-component/highlight-component.js
index f8f012f..b8810e3 100644
--- a/src/components/highlight-component/highlight-component.js
+++ b/src/components/highlight-component/highlight-component.js
@@ -51,7 +51,7 @@ function HighlightComponent () {
}
chrome.runtime.onMessage.addListener(function (request) {
- if (request.trigger == 'toggleComponents') {
+ if (request.trigger === 'toggleComponents') {
this.toggleComponents()
}
}.bind(this))
@@ -87,9 +87,9 @@ var Helpers = {
},
appHostname: function () {
- var rendering_element = document.querySelector('meta[name="govuk:rendering-application"]')
- var rendering_app = rendering_element.getAttribute('content')
- return this.substitutions[rendering_app] || rendering_app
+ var renderingElement = document.querySelector('meta[name="govuk:rendering-application"]')
+ var renderingApp = renderingElement.getAttribute('content')
+ return this.substitutions[renderingApp] || renderingApp
}
}
diff --git a/src/components/show-meta-tags-component/show-meta-tags-component.js b/src/components/show-meta-tags-component/show-meta-tags-component.js
index 003cfa3..1ff3127 100644
--- a/src/components/show-meta-tags-component/show-meta-tags-component.js
+++ b/src/components/show-meta-tags-component/show-meta-tags-component.js
@@ -3,7 +3,7 @@ function ShowMetaTagsComponent () {
this.isMetaTagsDisplayed = false
chrome.runtime.onMessage.addListener(function (request) {
- if (request.trigger == 'toggleMetaTags') {
+ if (request.trigger === 'toggleMetaTags') {
this.toggleMetaTags()
}
}.bind(this))
diff --git a/src/events/ab_bucket_store.js b/src/events/ab_bucket_store.js
index ff9046f..e207410 100644
--- a/src/events/ab_bucket_store.js
+++ b/src/events/ab_bucket_store.js
@@ -2,6 +2,9 @@
//
// It stores the environment-specific state of the user's A/B testing buckets in
// memory, until the browser or the extension is next reloaded.
+/* global abTest */
+
+// eslint-disable-next-line no-unused-vars
var abBucketStore = (function () {
function createStore () {
var abTestBuckets = {}
@@ -9,7 +12,7 @@ var abBucketStore = (function () {
function addAbTests (initialBuckets, hostname) {
abTestBuckets[hostname] = abTestBuckets[hostname] || {}
- Object.keys(initialBuckets).map(function (testName) {
+ Object.keys(initialBuckets).forEach(function (testName) {
// Add any A/B tests that are not already defined, but do not overwrite
// any that we are already tracking.
if (!abTestBuckets[hostname][testName]) {
@@ -23,6 +26,7 @@ var abBucketStore = (function () {
}
function setBucket (testName, bucket, hostname) {
+ /* eslint-disable-next-line */
abTest = abTestBuckets[hostname][testName]
abTest.currentBucket = bucket
abTestBuckets[hostname][testName] = abTest
diff --git a/src/events/ab_test_settings.js b/src/events/ab_test_settings.js
index 34cd221..dc172dd 100644
--- a/src/events/ab_test_settings.js
+++ b/src/events/ab_test_settings.js
@@ -45,7 +45,7 @@ var abTestSettings = (function () {
function addAbHeaders (details) {
var abTestBuckets = abBucketStore.getAll(extractHostname(details.url))
- Object.keys(abTestBuckets).map(function (abTestName) {
+ Object.keys(abTestBuckets).forEach(function (abTestName) {
details.requestHeaders.push({
name: 'GOVUK-ABTest-' + abTestName,
value: abTestBuckets[abTestName].currentBucket
diff --git a/src/fetch-page-data.js b/src/fetch-page-data.js
index 861f5ff..7a79298 100644
--- a/src/fetch-page-data.js
+++ b/src/fetch-page-data.js
@@ -40,5 +40,3 @@ function getAbTestBuckets () {
return buckets
}
-
-undefined
diff --git a/src/popup/content_links.js b/src/popup/content_links.js
index 0f7c342..10e2dfb 100644
--- a/src/popup/content_links.js
+++ b/src/popup/content_links.js
@@ -11,7 +11,7 @@ Popup.generateContentLinks = function (location, origin, pathname, currentEnviro
}
// This is 'https://www.gov.uk' or 'https://www-origin.integration.publishing.service.gov.uk/', etc.
- if (origin == 'http://webarchive.nationalarchives.gov.uk' || origin.match(/draft-origin/) || origin.match(/content-data/) || origin.match(/support/)) {
+ if (origin === 'http://webarchive.nationalarchives.gov.uk' || origin.match(/draft-origin/) || origin.match(/content-data/) || origin.match(/support/)) {
origin = 'https://www.gov.uk'
}
@@ -31,12 +31,12 @@ Popup.generateContentLinks = function (location, origin, pathname, currentEnviro
var currentUrl = origin + path
- if (renderingApplication == 'smartanswers') {
+ if (renderingApplication === 'smartanswers') {
links.push({ name: 'SmartAnswers: Visualise', url: currentUrl.replace(/\/y.*$/, '') + '/y/visualise' })
}
return links.map(function (link) {
- link.class = link.url == location ? 'current' : ''
+ link.class = link.url === location ? 'current' : ''
return link
})
}
diff --git a/src/popup/environment.js b/src/popup/environment.js
index d1d6845..526ed37 100644
--- a/src/popup/environment.js
+++ b/src/popup/environment.js
@@ -65,9 +65,9 @@ Popup.environment = function (location, host, origin) {
if (inFrontend) {
var replacement = env.host
} else if (isGOVUKAccount()) {
- var replacement = env.protocol + '://www.' + application + '.' + env.serviceDomain
+ replacement = env.protocol + '://www.' + application + '.' + env.serviceDomain
} else {
- var replacement = env.protocol + '://' + application + '.' + env.serviceDomain
+ replacement = env.protocol + '://' + application + '.' + env.serviceDomain
}
env.url = location.replace(origin, replacement)
@@ -76,7 +76,7 @@ Popup.environment = function (location, host, origin) {
env.url = 'http://www.login.service.dev.gov.uk/'
}
- if (location == env.url) {
+ if (location === env.url) {
env.class = 'current'
currentEnvironment = env
} else {
@@ -86,7 +86,7 @@ Popup.environment = function (location, host, origin) {
return env
}).filter(function (env) {
// GOV.UK Account does not have an Integration environment – remove this option from the list of environments
- if (env.name === 'Integration' && isGOVUKAccount()) return
+ if (env.name === 'Integration' && isGOVUKAccount()) return false
return env
})
diff --git a/src/popup/external_links.js b/src/popup/external_links.js
index cc77538..54413e2 100644
--- a/src/popup/external_links.js
+++ b/src/popup/external_links.js
@@ -64,56 +64,56 @@ Popup.generateExternalLinks = function (contentItem, env) {
url: 'https://docs.publishing.service.gov.uk/document-types/' + contentItem.document_type + '.html'
})
- return links.filter(function (item) { return item != undefined })
+ return links.filter(function (item) { return item !== undefined })
}
function generateEditLink (contentItem, env) {
- if (contentItem.document_type == 'topic') {
+ if (contentItem.document_type === 'topic') {
return [{
name: 'Edit in collections-publisher',
url: env.protocol + '://collections-publisher.' + env.serviceDomain + '/specialist-sector-pages/' + contentItem.content_id
}]
- } else if (contentItem.document_type == 'step_by_step_nav') {
+ } else if (contentItem.document_type === 'step_by_step_nav') {
return [{
name: 'Look up in collections-publisher',
url: env.protocol + '://collections-publisher.' + env.serviceDomain + '/step-by-step-pages'
}]
- } else if (contentItem.document_type == 'mainstream_browse_page') {
+ } else if (contentItem.document_type === 'mainstream_browse_page') {
return [{
name: 'Edit in collections-publisher',
url: env.protocol + '://collections-publisher.' + env.serviceDomain + '/mainstream-browse-pages/' + contentItem.content_id
}]
- } else if (contentItem.document_type == 'taxon') {
+ } else if (contentItem.document_type === 'taxon') {
return [{
name: 'Edit in content-tagger',
url: env.protocol + '://content-tagger.' + env.serviceDomain + '/taxons/' + contentItem.content_id
}]
- } else if (contentItem.publishing_app == 'publisher') {
+ } else if (contentItem.publishing_app === 'publisher') {
return [{
name: 'Look up in Mainstream Publisher',
url: env.protocol + '://publisher.' + env.serviceDomain + '/?list=published&string_filter=' + contentItem.base_path.substring(1) + '&user_filter=all'
}]
- } else if (contentItem.publishing_app == 'content-publisher') {
+ } else if (contentItem.publishing_app === 'content-publisher') {
return [{
name: 'Edit in Content Publisher',
url: env.protocol + '://content-publisher.' + env.serviceDomain + '/documents/' + contentItem.content_id + ':' + contentItem.locale
}]
- } else if (contentItem.publishing_app == 'whitehall') {
+ } else if (contentItem.publishing_app === 'whitehall') {
return [{
name: 'Edit in Whitehall Publisher',
url: env.protocol + '://whitehall-admin.' + env.serviceDomain + '/government/admin/by-content-id/' + contentItem.content_id
}]
- } else if (contentItem.document_type == 'manual') {
+ } else if (contentItem.document_type === 'manual') {
return [{
name: 'Edit in Manuals Publisher',
url: env.protocol + '://manuals-publisher.' + env.serviceDomain + '/manuals/' + contentItem.content_id
}]
- } else if (contentItem.publishing_app == 'specialist-publisher') {
+ } else if (contentItem.publishing_app === 'specialist-publisher') {
return [{
name: 'Edit in Specialist Publisher',
url: env.protocol + '://specialist-publisher.' + env.serviceDomain + '/' + contentItem.document_type.replace(/_/g, '-') + 's/' + contentItem.content_id
}]
- } else if (contentItem.publishing_app == 'smartanswers') {
+ } else if (contentItem.publishing_app === 'smartanswers') {
return [
{
name: 'View flow page in Github',
diff --git a/src/popup/extract_path.js b/src/popup/extract_path.js
index 5e19d93..c0ae5ad 100644
--- a/src/popup/extract_path.js
+++ b/src/popup/extract_path.js
@@ -29,7 +29,7 @@ Popup.extractPath = function (location, pathname, renderingApplication) {
return extractedPath.replace('//', '/')
}
- function extractQueryParameter (location, parameter_name) {
- return location.split(parameter_name + '=')[1].split('&')[0]
+ function extractQueryParameter (location, parameterName) {
+ return location.split(parameterName + '=')[1].split('&')[0]
}
}
diff --git a/src/popup/popup.js b/src/popup/popup.js
index 709a47f..ef531f4 100644
--- a/src/popup/popup.js
+++ b/src/popup/popup.js
@@ -26,7 +26,7 @@ var Popup = Popup || {};
// fetch-page-data.js (called above). It will forward the location to our main
// render function.
chrome.runtime.onMessage.addListener(function (request, _sender) {
- if (request.action == 'populatePopup') {
+ if (request.action === 'populatePopup') {
// When we're asked to populate the popup, we'll first send the current
// buckets back to the main thread, which "persists" them.
var abTestSettings = chrome.extension.getBackgroundPage().abTestSettings
@@ -45,7 +45,7 @@ var Popup = Popup || {};
})
chrome.runtime.onMessage.addListener(function (request, _sender) {
- if (request.action == 'highlightState') {
+ if (request.action === 'highlightState') {
// When we're asked to populate the popup, we'll first send the current
// buckets back to the main thread, which "persists" them.
if (request.highlightState) { document.querySelector('#highlight-components').textContent = 'Stop highlighting components' } else { document.querySelector('#highlight-components').textContent = 'Highlight Components' }
@@ -53,7 +53,7 @@ var Popup = Popup || {};
})
chrome.runtime.onMessage.addListener(function (request, _sender) {
- if (request.action == 'showMetaTagState') {
+ if (request.action === 'showMetaTagState') {
// When we're asked to populate the popup, we'll first send the current
// buckets back to the main thread, which "persists" them.
if (request.metaTags) { document.querySelector('#highlight-meta-tags').textContent = 'Hide meta tags' } else { document.querySelector('#highlight-meta-tags').textContent = 'Show meta tags' }
@@ -61,7 +61,7 @@ var Popup = Popup || {};
})
chrome.runtime.onMessage.addListener(function (request, _sender) {
- if (request.action == 'designModeState') {
+ if (request.action === 'designModeState') {
var toggleLink = document.querySelector('#toggle-design-mode')
if (request.designModeState) { toggleLink.textContent = 'Turn off design mode' } else { toggleLink.textContent = 'Turn on design mode' }
}
@@ -72,7 +72,7 @@ var Popup = Popup || {};
// Creates a view object with the data and render a template with it.
var view = createView(location, host, origin, pathname, renderingApplication, abTestBuckets)
- var contentStore = view.contentLinks.find(function (el) { return el.name == 'Content item (JSON)' })
+ var contentStore = view.contentLinks.find(function (el) { return el.name === 'Content item (JSON)' })
if (windowHeight < 600) {
var popupContent = document.querySelector('#content')
@@ -181,7 +181,7 @@ var Popup = Popup || {};
// Best guess if the user wants a new window opened.
// https://stackoverflow.com/questions/20087368/how-to-detect-if-user-it-trying-to-open-a-link-in-a-new-tab
function userOpensPageInNewWindow (e) {
- return e.ctrlKey || e.shiftKey || e.metaKey || (e.button && e.button == 1)
+ return e.ctrlKey || e.shiftKey || e.metaKey || (e.button && e.button === 1)
}
function setupAbToggles (url) {