Remove disabled Polymer template tests
Template tests don't work after migration to Polymer 2/3 and were disabled and can now be removed. The Polymer template tests are now disabled on Gerrit CI starting from stable-3.2 release. Change-Id: Icfd0b40e7348642214640816052cc072ad29056d
This commit is contained in:

committed by
David Ostrovsky

parent
9bf50fffd2
commit
aa735d058b
@@ -12,7 +12,6 @@
|
||||
"eslint-plugin-import": "^2.20.1",
|
||||
"eslint-plugin-jsdoc": "^19.2.0",
|
||||
"eslint-plugin-prettier": "^3.1.3",
|
||||
"fried-twinkie": "^0.2.2",
|
||||
"polymer-cli": "^1.9.11",
|
||||
"prettier": "2.0.5",
|
||||
"typescript": "^3.7.4",
|
||||
@@ -25,7 +24,6 @@
|
||||
"safe_bazelisk": "if which bazelisk >/dev/null; then bazel_bin=bazelisk; else bazel_bin=bazel; fi && $bazel_bin",
|
||||
"eslint": "npm run safe_bazelisk test polygerrit-ui/app:lint_test",
|
||||
"eslintfix": "npm run safe_bazelisk run polygerrit-ui/app:lint_bin -- -- --fix $(pwd)/polygerrit-ui/app",
|
||||
"test-template": "./polygerrit-ui/app/run_template_test.sh",
|
||||
"polylint": "npm run safe_bazelisk test polygerrit-ui/app:polylint_test"
|
||||
},
|
||||
"repository": {
|
||||
|
@@ -226,47 +226,6 @@ or
|
||||
npm run polylint
|
||||
```
|
||||
|
||||
## Template Type Safety
|
||||
|
||||
> **Warning**: This feature is temporary disabled, because it doesn't work with Polymer 2 and Polymer 3. Some of the checks are made by polymer linter.
|
||||
|
||||
Polymer elements are not type checked against the element definition, making it
|
||||
trivial to break the display when refactoring or moving code. We now run
|
||||
additional tests to help ensure that template types are checked.
|
||||
|
||||
A few notes to ensure that these tests pass
|
||||
- Any functions with optional parameters will need closure annotations.
|
||||
- Any Polymer parameters that are nullable or can be multiple types (other than
|
||||
the one explicitly delared) will need type annotations.
|
||||
|
||||
These tests require the `typescript` and `fried-twinkie` npm packages.
|
||||
|
||||
To run on all files, execute the following command:
|
||||
|
||||
```sh
|
||||
./polygerrit-ui/app/run_template_test.sh
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```sh
|
||||
npm run test-template
|
||||
```
|
||||
|
||||
To run on a specific top level directory (ex: change-list)
|
||||
```sh
|
||||
TEMPLATE_NO_DEFAULT=true ./polygerrit-ui/app/run_template_test.sh //polygerrit-ui/app:template_test_change-list
|
||||
```
|
||||
|
||||
To run on a specific file (ex: gr-change-list-view), execute the following command:
|
||||
```sh
|
||||
TEMPLATE_NO_DEFAULT=true ./polygerrit-ui/app/run_template_test.sh //polygerrit-ui/app:template_test_<TOP_LEVEL_DIRECTORY> --test_arg=<VIEW_NAME>
|
||||
```
|
||||
|
||||
```sh
|
||||
TEMPLATE_NO_DEFAULT=true ./polygerrit-ui/app/run_template_test.sh //polygerrit-ui/app:template_test_change-list --test_arg=gr-change-list-view
|
||||
```
|
||||
|
||||
## Contributing
|
||||
|
||||
Our users report bugs / feature requests related to the UI through [Monorail Issues - PolyGerrit](https://bugs.chromium.org/p/gerrit/issues/list?q=component%3APolyGerrit).
|
||||
|
@@ -176,7 +176,7 @@ module.exports = {
|
||||
},
|
||||
"overrides": [
|
||||
{
|
||||
"files": ["*.html", "test.js", "test-infra.js", "template_test.js"],
|
||||
"files": ["*.html", "test.js", "test-infra.js"],
|
||||
"rules": {
|
||||
"jsdoc/require-file-overview": "off"
|
||||
},
|
||||
@@ -219,7 +219,7 @@ module.exports = {
|
||||
}
|
||||
},
|
||||
{
|
||||
"files": ["test/functional/**/*.js", "wct.conf.js", "template_test.js"],
|
||||
"files": ["test/functional/**/*.js", "wct.conf.js"],
|
||||
// Settings for functional tests. These scripts are node scripts.
|
||||
// Turn off "no-undef" to allow any global variable
|
||||
"env": {
|
||||
|
@@ -121,40 +121,3 @@ sh_test(
|
||||
"manual",
|
||||
],
|
||||
)
|
||||
|
||||
DIRECTORIES = [
|
||||
"admin",
|
||||
"change",
|
||||
"change-list",
|
||||
"core",
|
||||
"diff",
|
||||
"edit",
|
||||
"plugins",
|
||||
"settings",
|
||||
"shared",
|
||||
"gr-app",
|
||||
]
|
||||
|
||||
[sh_test(
|
||||
name = "template_test_" + directory,
|
||||
size = "enormous",
|
||||
srcs = ["template_test.sh"],
|
||||
args = [directory],
|
||||
data = [
|
||||
":pg_code",
|
||||
":template_test_srcs",
|
||||
],
|
||||
tags = [
|
||||
# Should not run sandboxed.
|
||||
"local",
|
||||
"template",
|
||||
],
|
||||
) for directory in DIRECTORIES]
|
||||
|
||||
filegroup(
|
||||
name = "template_test_srcs",
|
||||
srcs = [
|
||||
"template_test_srcs/convert_for_template_tests.py",
|
||||
"template_test_srcs/template_test.js",
|
||||
],
|
||||
)
|
||||
|
@@ -1,36 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# TODO(dmfilippov): Update template_test to support Polymer 2/Polymer 3 or delete it completely
|
||||
# The following line temporary disable template tests. Existing implementation doesn't compatible
|
||||
# with Polymer 2 & 3 class-based components. Polymer linter makes some checks regarding
|
||||
# templates and binding, but not all.
|
||||
exit 0
|
||||
|
||||
set -ex
|
||||
|
||||
node_bin=$(which node) && true
|
||||
if [ -z "$node_bin" ]; then
|
||||
echo "node must be on the path."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
npm_bin=$(which npm) && true
|
||||
if [[ -z "$npm_bin" ]]; then
|
||||
echo "NPM must be on the path. (https://www.npmjs.com/)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Have to find where node_modules are installed and set the NODE_PATH
|
||||
|
||||
get_node_path() {
|
||||
cd $(dirname $node_bin)
|
||||
cd ../lib/node_modules
|
||||
pwd
|
||||
}
|
||||
|
||||
export NODE_PATH=$(get_node_path)
|
||||
|
||||
unzip -o polygerrit-ui/polygerrit_components.bower_components.zip -d polygerrit-ui/app
|
||||
python $TEST_SRCDIR/gerrit/polygerrit-ui/app/template_test_srcs/convert_for_template_tests.py
|
||||
# Pass a file name argument from the --test_args (example: --test_arg=gr-list-view)
|
||||
${node_bin} $TEST_SRCDIR/gerrit/polygerrit-ui/app/template_test_srcs/template_test.js $1 $2
|
@@ -1,129 +0,0 @@
|
||||
import json
|
||||
import os
|
||||
import re
|
||||
|
||||
polymerRegex = r"Polymer\({"
|
||||
polymerCompiledRegex = re.compile(polymerRegex)
|
||||
|
||||
removeSelfInvokeRegex = r"\(function\(\) {\n(.+)}\)\(\);"
|
||||
fnCompiledRegex = re.compile(removeSelfInvokeRegex, re.DOTALL)
|
||||
|
||||
regexBehavior = r"<script>(.+)<\/script>"
|
||||
behaviorCompiledRegex = re.compile(regexBehavior, re.DOTALL)
|
||||
|
||||
|
||||
def _open(filename, mode="r"):
|
||||
try:
|
||||
return open(filename, mode, encoding="utf-8")
|
||||
except TypeError:
|
||||
return open(filename, mode)
|
||||
|
||||
|
||||
def replaceBehaviorLikeHTML(fileIn, fileOut):
|
||||
with _open(fileIn) as f:
|
||||
file_str = f.read()
|
||||
match = behaviorCompiledRegex.search(file_str)
|
||||
if match:
|
||||
with _open("polygerrit-ui/temp/behaviors/" +
|
||||
fileOut.replace("html", "js"), "w+") as f:
|
||||
f.write(match.group(1))
|
||||
|
||||
|
||||
def replaceBehaviorLikeJS(fileIn, fileOut):
|
||||
with _open(fileIn) as f:
|
||||
file_str = f.read()
|
||||
with _open("polygerrit-ui/temp/behaviors/" + fileOut, "w+") as f:
|
||||
f.write(file_str)
|
||||
|
||||
|
||||
def generateStubBehavior(behaviorName):
|
||||
with _open("polygerrit-ui/temp/behaviors/" +
|
||||
behaviorName + ".js", "w+") as f:
|
||||
f.write("/** @polymerBehavior **/\n" + behaviorName + "= {};")
|
||||
|
||||
|
||||
def replacePolymerElement(fileIn, fileOut, root):
|
||||
with _open(fileIn) as f:
|
||||
key = fileOut.split('.')[0]
|
||||
# Removed self invoked function
|
||||
file_str = f.read()
|
||||
file_str_no_fn = fnCompiledRegex.search(file_str)
|
||||
|
||||
if file_str_no_fn:
|
||||
package = root.replace("/", ".") + "." + fileOut
|
||||
|
||||
with _open("polygerrit-ui/temp/" + fileOut, "w+") as f:
|
||||
mainFileContents = re.sub(
|
||||
polymerCompiledRegex,
|
||||
"exports = Polymer({",
|
||||
file_str_no_fn.group(1)).replace("'use strict';", "")
|
||||
f.write("/** \n"
|
||||
"* @fileoverview \n"
|
||||
"* @suppress {missingProperties} \n"
|
||||
"*/ \n\n"
|
||||
"goog.module('polygerrit." + package + "')\n\n" +
|
||||
mainFileContents)
|
||||
|
||||
# Add package and javascript to files object.
|
||||
elements[key]["js"] = "polygerrit-ui/temp/" + fileOut
|
||||
elements[key]["package"] = package
|
||||
|
||||
|
||||
def writeTempFile(file, root):
|
||||
# This is included in an extern because it is directly on the window object
|
||||
# (for now at least).
|
||||
if "gr-reporting" in file:
|
||||
return
|
||||
key = file.split('.')[0]
|
||||
if key not in elements:
|
||||
# gr-app doesn't have an additional level
|
||||
elements[key] = {
|
||||
"directory":
|
||||
'gr-app' if len(root.split("/")) < 4 else root.split("/")[3]
|
||||
}
|
||||
if file.endswith(".html") and not file.endswith("_test.html"):
|
||||
# gr-navigation is treated like a behavior rather than a standard
|
||||
# element because of the way it added to the Gerrit object.
|
||||
if file.endswith("gr-navigation.html"):
|
||||
replaceBehaviorLikeHTML(os.path.join(root, file), file)
|
||||
else:
|
||||
elements[key]["html"] = os.path.join(root, file)
|
||||
if file.endswith(".js"):
|
||||
replacePolymerElement(os.path.join(root, file), file, root)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
# Create temp directory.
|
||||
if not os.path.exists("polygerrit-ui/temp"):
|
||||
os.makedirs("polygerrit-ui/temp")
|
||||
|
||||
# Within temp directory create behavior directory.
|
||||
if not os.path.exists("polygerrit-ui/temp/behaviors"):
|
||||
os.makedirs("polygerrit-ui/temp/behaviors")
|
||||
|
||||
elements = {}
|
||||
|
||||
# Go through every file in app/elements, and re-write accordingly to temp
|
||||
# directory, and also added to elements object, which is used to generate a
|
||||
# map of html files, package names, and javascript files.
|
||||
for root, dirs, files in os.walk("polygerrit-ui/app/elements"):
|
||||
for file in files:
|
||||
writeTempFile(file, root)
|
||||
|
||||
# Special case for polymer behaviors we are using.
|
||||
replaceBehaviorLikeHTML("polygerrit-ui/app/bower_components/iron-a11y-keys-behavior/iron-a11y-keys-behavior.html", "iron-a11y-keys-behavior.html")
|
||||
generateStubBehavior("Polymer.IronOverlayBehavior")
|
||||
generateStubBehavior("Polymer.IronFitBehavior")
|
||||
|
||||
# TODO figure out something to do with iron-overlay-behavior.
|
||||
# it is hard-coded reformatted.
|
||||
|
||||
with _open("polygerrit-ui/temp/map.json", "w+") as f:
|
||||
f.write(json.dumps(elements))
|
||||
|
||||
for root, dirs, files in os.walk("polygerrit-ui/app/behaviors"):
|
||||
for file in files:
|
||||
if file.endswith("behavior.html"):
|
||||
replaceBehaviorLikeHTML(os.path.join(root, file), file)
|
||||
elif file.endswith("behavior.js"):
|
||||
replaceBehaviorLikeJS(os.path.join(root, file), file)
|
@@ -1,87 +0,0 @@
|
||||
const fs = require('fs');
|
||||
const twinkie = require('fried-twinkie');
|
||||
|
||||
fs.readdir('./polygerrit-ui/temp/behaviors/', (err, data) => {
|
||||
if (err) {
|
||||
console.log('error /polygerrit-ui/temp/behaviors/ directory');
|
||||
}
|
||||
const behaviors = data;
|
||||
const additionalSources = [];
|
||||
const externMap = {};
|
||||
|
||||
for (const behavior of behaviors) {
|
||||
if (!externMap[behavior]) {
|
||||
additionalSources.push({
|
||||
path: `./polygerrit-ui/temp/behaviors/${behavior}`,
|
||||
src: fs.readFileSync(
|
||||
`./polygerrit-ui/temp/behaviors/${behavior}`, 'utf-8'),
|
||||
});
|
||||
externMap[behavior] = true;
|
||||
}
|
||||
}
|
||||
|
||||
let mappings = JSON.parse(fs.readFileSync(
|
||||
`./polygerrit-ui/temp/map.json`, 'utf-8'));
|
||||
|
||||
// The directory is passed as arg2 by the test target.
|
||||
const directory = process.argv[2];
|
||||
if (directory) {
|
||||
const mappingSpecificDirectory = {};
|
||||
|
||||
for (key of Object.keys(mappings)) {
|
||||
if (directory === mappings[key].directory) {
|
||||
mappingSpecificDirectory[key] = mappings[key];
|
||||
}
|
||||
}
|
||||
mappings = mappingSpecificDirectory;
|
||||
}
|
||||
|
||||
// If a particular file was passed by the user, don't test everything.
|
||||
const file = process.argv[3];
|
||||
if (file) {
|
||||
const mappingSpecificFile = {};
|
||||
for (key of Object.keys(mappings)) {
|
||||
if (key.includes(file)) {
|
||||
mappingSpecificFile[key] = mappings[key];
|
||||
}
|
||||
}
|
||||
mappings = mappingSpecificFile;
|
||||
}
|
||||
|
||||
/**
|
||||
* Types in Gerrit.
|
||||
* All types should be under `./polygerrit-ui/app/types` folder and end with `js`.
|
||||
*/
|
||||
fs.readdir('./polygerrit-ui/app/types/', (err, typeFiles) => {
|
||||
for (const typeFile of typeFiles) {
|
||||
if (!typeFile.endsWith('.js')) continue;
|
||||
additionalSources.push({
|
||||
path: `./polygerrit-ui/app/types/${typeFile}`,
|
||||
src: fs.readFileSync(
|
||||
`./polygerrit-ui/app/types/${typeFile}`, 'utf-8'),
|
||||
});
|
||||
}
|
||||
|
||||
const toCheck = [];
|
||||
for (key of Object.keys(mappings)) {
|
||||
if (mappings[key].html && mappings[key].js) {
|
||||
toCheck.push({
|
||||
htmlSrcPath: mappings[key].html,
|
||||
jsSrcPath: mappings[key].js,
|
||||
jsModule: 'polygerrit.' + mappings[key].package,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
twinkie.checkTemplate(toCheck, additionalSources)
|
||||
.then(() => {}, joinedErrors => {
|
||||
if (joinedErrors) {
|
||||
process.exit(1);
|
||||
}
|
||||
})
|
||||
.catch(e => {
|
||||
console.error(e);
|
||||
process.exit(1);
|
||||
});
|
||||
});
|
||||
});
|
157
yarn.lock
157
yarn.lock
@@ -694,13 +694,6 @@
|
||||
dependencies:
|
||||
chalk "*"
|
||||
|
||||
"@types/cheerio@^0.22.2":
|
||||
version "0.22.15"
|
||||
resolved "https://registry.yarnpkg.com/@types/cheerio/-/cheerio-0.22.15.tgz#69040ffa92c309beeeeb7e92db66ac3f80700c0b"
|
||||
integrity sha512-UGiiVtJK5niCqMKYmLEFz1Wl/3L5zF/u78lu8CwoUywWXRr9LDimeYuOzXVLXBMO758fcTdFtgjvqlztMH90MA==
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/clean-css@*":
|
||||
version "4.2.1"
|
||||
resolved "https://registry.yarnpkg.com/@types/clean-css/-/clean-css-4.2.1.tgz#cb0134241ec5e6ede1b5344bc829668fd9871a8d"
|
||||
@@ -1282,11 +1275,6 @@ ajv@^6.5.5:
|
||||
json-schema-traverse "^0.4.1"
|
||||
uri-js "^4.2.2"
|
||||
|
||||
amdefine@>=0.0.4:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
|
||||
integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=
|
||||
|
||||
ansi-align@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-1.1.0.tgz#2f0c1658829739add5ebb15e6b0c6e3423f016ba"
|
||||
@@ -1984,11 +1972,6 @@ body-parser@1.19.0, body-parser@^1.17.2:
|
||||
raw-body "2.4.0"
|
||||
type-is "~1.6.17"
|
||||
|
||||
boolbase@~1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
|
||||
integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
|
||||
|
||||
bower-config@^1.4.0, bower-config@^1.4.1:
|
||||
version "1.4.1"
|
||||
resolved "https://registry.yarnpkg.com/bower-config/-/bower-config-1.4.1.tgz#85fd9df367c2b8dbbd0caa4c5f2bad40cd84c2cc"
|
||||
@@ -2274,18 +2257,6 @@ charenc@~0.0.1:
|
||||
resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667"
|
||||
integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=
|
||||
|
||||
cheerio@^1.0.0-rc.2:
|
||||
version "1.0.0-rc.3"
|
||||
resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.3.tgz#094636d425b2e9c0f4eb91a46c05630c9a1a8bf6"
|
||||
integrity sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==
|
||||
dependencies:
|
||||
css-select "~1.2.0"
|
||||
dom-serializer "~0.1.1"
|
||||
entities "~1.1.1"
|
||||
htmlparser2 "^3.9.1"
|
||||
lodash "^4.15.0"
|
||||
parse5 "^3.0.1"
|
||||
|
||||
chokidar@^1.7.0:
|
||||
version "1.7.0"
|
||||
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468"
|
||||
@@ -2745,16 +2716,6 @@ crypto-random-string@^1.0.0:
|
||||
resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e"
|
||||
integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=
|
||||
|
||||
css-select@~1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858"
|
||||
integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=
|
||||
dependencies:
|
||||
boolbase "~1.0.0"
|
||||
css-what "2.1"
|
||||
domutils "1.5.1"
|
||||
nth-check "~1.0.1"
|
||||
|
||||
css-slam@^2.1.2:
|
||||
version "2.1.2"
|
||||
resolved "https://registry.yarnpkg.com/css-slam/-/css-slam-2.1.2.tgz#3d35b1922cb3e0002a45c89ab189492508c493e5"
|
||||
@@ -2766,7 +2727,7 @@ css-slam@^2.1.2:
|
||||
parse5 "^4.0.0"
|
||||
shady-css-parser "^0.1.0"
|
||||
|
||||
css-what@2.1, css-what@^2.1.0:
|
||||
css-what@^2.1.0:
|
||||
version "2.1.3"
|
||||
resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2"
|
||||
integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==
|
||||
@@ -3030,14 +2991,6 @@ dom-serializer@0:
|
||||
domelementtype "^2.0.1"
|
||||
entities "^2.0.0"
|
||||
|
||||
dom-serializer@~0.1.1:
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0"
|
||||
integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==
|
||||
dependencies:
|
||||
domelementtype "^1.3.0"
|
||||
entities "^1.1.1"
|
||||
|
||||
dom-urls@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/dom-urls/-/dom-urls-1.1.0.tgz#001ddf81628cd1e706125c7176f53ccec55d918e"
|
||||
@@ -3054,7 +3007,7 @@ dom5@^3.0.0:
|
||||
clone "^2.1.0"
|
||||
parse5 "^4.0.0"
|
||||
|
||||
domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1:
|
||||
domelementtype@1, domelementtype@^1.3.1:
|
||||
version "1.3.1"
|
||||
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f"
|
||||
integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==
|
||||
@@ -3071,14 +3024,6 @@ domhandler@^2.3.0:
|
||||
dependencies:
|
||||
domelementtype "1"
|
||||
|
||||
domutils@1.5.1:
|
||||
version "1.5.1"
|
||||
resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf"
|
||||
integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=
|
||||
dependencies:
|
||||
dom-serializer "0"
|
||||
domelementtype "1"
|
||||
|
||||
domutils@^1.5.1:
|
||||
version "1.7.0"
|
||||
resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a"
|
||||
@@ -3235,7 +3180,7 @@ engine.io@~3.4.0:
|
||||
engine.io-parser "~2.2.0"
|
||||
ws "^7.1.2"
|
||||
|
||||
entities@^1.1.1, entities@~1.1.1:
|
||||
entities@^1.1.1:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56"
|
||||
integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==
|
||||
@@ -3971,19 +3916,6 @@ fresh@0.5.2:
|
||||
resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
|
||||
integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
|
||||
|
||||
fried-twinkie@^0.2.2:
|
||||
version "0.2.2"
|
||||
resolved "https://registry.yarnpkg.com/fried-twinkie/-/fried-twinkie-0.2.2.tgz#fafa52b3b7957dc78d7867b28f74b6e01bdb2aee"
|
||||
integrity sha512-rb/i+7VXEToBjrYZ2jSew4bI9znWF15P52dAGuoJcxpaBibWz2PI5tRx0ZSjDM+a/gZI2Pgr2XHT6wwNVZQ7/g==
|
||||
dependencies:
|
||||
"@types/cheerio" "^0.22.2"
|
||||
chalk "^2.1.0"
|
||||
google-closure-compiler-js "^20170626.0.0"
|
||||
tmp "^0.0.31"
|
||||
tsickle "^0.23.4"
|
||||
twinkie "0.0.11"
|
||||
typescript "^2.4.1"
|
||||
|
||||
fs-constants@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
|
||||
@@ -4275,15 +4207,6 @@ globby@^8.0.1:
|
||||
pify "^3.0.0"
|
||||
slash "^1.0.0"
|
||||
|
||||
google-closure-compiler-js@^20170626.0.0:
|
||||
version "20170626.0.0"
|
||||
resolved "https://registry.yarnpkg.com/google-closure-compiler-js/-/google-closure-compiler-js-20170626.0.0.tgz#5df265b277d1ec6fdea12eed131d1491cd8a8d71"
|
||||
integrity sha512-LQvWXN3yS2l88TsXiHZ0aWtGR51tep/bNvS7cuUldnKkppgknTo35jThYwE+JOU9lviERZjMHhiqxz2CXzIRuw==
|
||||
dependencies:
|
||||
minimist "^1.2.0"
|
||||
vinyl "^2.0.1"
|
||||
webpack-core "^0.6.8"
|
||||
|
||||
got@^5.0.0:
|
||||
version "5.7.1"
|
||||
resolved "https://registry.yarnpkg.com/got/-/got-5.7.1.tgz#5f81635a61e4a6589f180569ea4e381680a51f35"
|
||||
@@ -4550,7 +4473,7 @@ html-minifier@^3.5.10:
|
||||
relateurl "0.2.x"
|
||||
uglify-js "3.4.x"
|
||||
|
||||
htmlparser2@^3.10.1, htmlparser2@^3.9.1:
|
||||
htmlparser2@^3.10.1:
|
||||
version "3.10.1"
|
||||
resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f"
|
||||
integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==
|
||||
@@ -5511,7 +5434,7 @@ lodash@^3.0.0, lodash@^3.10.1:
|
||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6"
|
||||
integrity sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=
|
||||
|
||||
lodash@^4.0.0, lodash@^4.15.0, lodash@^4.16.6, lodash@^4.17.14, lodash@^4.17.15:
|
||||
lodash@^4.0.0, lodash@^4.16.6, lodash@^4.17.14, lodash@^4.17.15:
|
||||
version "4.17.15"
|
||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
|
||||
integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
|
||||
@@ -6105,13 +6028,6 @@ npmlog@^4.0.2:
|
||||
gauge "~2.7.3"
|
||||
set-blocking "~2.0.0"
|
||||
|
||||
nth-check@~1.0.1:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"
|
||||
integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==
|
||||
dependencies:
|
||||
boolbase "~1.0.0"
|
||||
|
||||
number-is-nan@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
|
||||
@@ -6446,13 +6362,6 @@ parse-passwd@^1.0.0:
|
||||
resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
|
||||
integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=
|
||||
|
||||
parse5@^3.0.1:
|
||||
version "3.0.3"
|
||||
resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c"
|
||||
integrity sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
|
||||
parse5@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608"
|
||||
@@ -7888,11 +7797,6 @@ sort-keys@^1.0.0:
|
||||
dependencies:
|
||||
is-plain-obj "^1.0.0"
|
||||
|
||||
source-list-map@~0.1.7:
|
||||
version "0.1.8"
|
||||
resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.8.tgz#c550b2ab5427f6b3f21f5afead88c4f5587b2106"
|
||||
integrity sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=
|
||||
|
||||
source-map-resolve@^0.5.0:
|
||||
version "0.5.3"
|
||||
resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a"
|
||||
@@ -7912,13 +7816,6 @@ source-map-support@0.5.9:
|
||||
buffer-from "^1.0.0"
|
||||
source-map "^0.6.0"
|
||||
|
||||
source-map-support@^0.4.2:
|
||||
version "0.4.18"
|
||||
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f"
|
||||
integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==
|
||||
dependencies:
|
||||
source-map "^0.5.6"
|
||||
|
||||
source-map-url@^0.4.0:
|
||||
version "0.4.0"
|
||||
resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
|
||||
@@ -7934,13 +7831,6 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1:
|
||||
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
|
||||
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
|
||||
|
||||
source-map@~0.4.1:
|
||||
version "0.4.4"
|
||||
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b"
|
||||
integrity sha1-66T12pwNyZneaAMti092FzZSA2s=
|
||||
dependencies:
|
||||
amdefine ">=0.0.4"
|
||||
|
||||
spawn-sync@^1.0.15:
|
||||
version "1.0.15"
|
||||
resolved "https://registry.yarnpkg.com/spawn-sync/-/spawn-sync-1.0.15.tgz#b00799557eb7fb0c8376c29d44e8a1ea67e57476"
|
||||
@@ -8485,13 +8375,6 @@ tmp@^0.0.29:
|
||||
dependencies:
|
||||
os-tmpdir "~1.0.1"
|
||||
|
||||
tmp@^0.0.31:
|
||||
version "0.0.31"
|
||||
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7"
|
||||
integrity sha1-jzirlDjhcxXl29izZX6L+yd65Kc=
|
||||
dependencies:
|
||||
os-tmpdir "~1.0.1"
|
||||
|
||||
tmp@^0.0.33:
|
||||
version "0.0.33"
|
||||
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
|
||||
@@ -8586,16 +8469,6 @@ triple-beam@^1.2.0, triple-beam@^1.3.0:
|
||||
resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9"
|
||||
integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==
|
||||
|
||||
tsickle@^0.23.4:
|
||||
version "0.23.6"
|
||||
resolved "https://registry.yarnpkg.com/tsickle/-/tsickle-0.23.6.tgz#fcee57a5cb7f92a8c3a9e578ee0a286427dcfacd"
|
||||
integrity sha1-/O5Xpct/kqjDqeV47gooZCfc+s0=
|
||||
dependencies:
|
||||
minimist "^1.2.0"
|
||||
mkdirp "^0.5.1"
|
||||
source-map "^0.5.6"
|
||||
source-map-support "^0.4.2"
|
||||
|
||||
tslib@^1.8.1, tslib@^1.9.0:
|
||||
version "1.10.0"
|
||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a"
|
||||
@@ -8620,13 +8493,6 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0:
|
||||
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
|
||||
integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
|
||||
|
||||
twinkie@0.0.11:
|
||||
version "0.0.11"
|
||||
resolved "https://registry.yarnpkg.com/twinkie/-/twinkie-0.0.11.tgz#013c5e4b6b23ac8dec5d4eb8f9f84858bc143a74"
|
||||
integrity sha1-ATxeS2sjrI3sXU64+fhIWLwUOnQ=
|
||||
dependencies:
|
||||
cheerio "^1.0.0-rc.2"
|
||||
|
||||
type-check@~0.3.2:
|
||||
version "0.3.2"
|
||||
resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
|
||||
@@ -8657,11 +8523,6 @@ typedarray@^0.0.6:
|
||||
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
|
||||
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
|
||||
|
||||
typescript@^2.4.1:
|
||||
version "2.9.2"
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.9.2.tgz#1cbf61d05d6b96269244eb6a3bce4bd914e0f00c"
|
||||
integrity sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==
|
||||
|
||||
typescript@^3.7.4:
|
||||
version "3.7.5"
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.7.5.tgz#0692e21f65fd4108b9330238aac11dd2e177a1ae"
|
||||
@@ -9090,14 +8951,6 @@ webidl-conversions@^4.0.2:
|
||||
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"
|
||||
integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==
|
||||
|
||||
webpack-core@^0.6.8:
|
||||
version "0.6.9"
|
||||
resolved "https://registry.yarnpkg.com/webpack-core/-/webpack-core-0.6.9.tgz#fc571588c8558da77be9efb6debdc5a3b172bdc2"
|
||||
integrity sha1-/FcViMhVjad76e+23r3Fo7FyvcI=
|
||||
dependencies:
|
||||
source-list-map "~0.1.7"
|
||||
source-map "~0.4.1"
|
||||
|
||||
whatwg-url@^6.4.0:
|
||||
version "6.5.0"
|
||||
resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8"
|
||||
|
Reference in New Issue
Block a user