mirror of
https://github.com/google/blockly.git
synced 2026-01-04 15:40:08 +01:00
Upgrade closure + support for closure-library dependency (#3554)
* Upgrade closure and include hints on how to include the closure library in the build. * Revert build-uncomprssed. * Sort uncompressed. * nit: comment.
This commit is contained in:
@@ -33,7 +33,7 @@ goog.addDependency("../../core/bubble.js", ['Blockly.Bubble'], ['Blockly.Scrollb
|
||||
goog.addDependency("../../core/bubble_dragger.js", ['Blockly.BubbleDragger'], ['Blockly.Bubble', 'Blockly.Events', 'Blockly.Events.CommentMove', 'Blockly.utils', 'Blockly.utils.Coordinate']);
|
||||
goog.addDependency("../../core/comment.js", ['Blockly.Comment'], ['Blockly.Bubble', 'Blockly.Css', 'Blockly.Events', 'Blockly.Events.BlockChange', 'Blockly.Events.Ui', 'Blockly.Icon', 'Blockly.utils.dom', 'Blockly.utils.object', 'Blockly.utils.userAgent', 'Blockly.Warning']);
|
||||
goog.addDependency("../../core/components/component.js", ['Blockly.Component', 'Blockly.Component.Error'], ['Blockly.utils.dom', 'Blockly.utils.IdGenerator', 'Blockly.utils.style']);
|
||||
goog.addDependency("../../core/components/menu/menu.js", ['Blockly.Menu'], ['Blockly.Component', 'Blockly.utils.aria', 'Blockly.utils.dom', 'Blockly.utils.object']);
|
||||
goog.addDependency("../../core/components/menu/menu.js", ['Blockly.Menu'], ['Blockly.Component', 'Blockly.utils.aria', 'Blockly.utils.Coordinate', 'Blockly.utils.dom', 'Blockly.utils.object']);
|
||||
goog.addDependency("../../core/components/menu/menuitem.js", ['Blockly.MenuItem'], ['Blockly.Component', 'Blockly.utils.aria', 'Blockly.utils.dom', 'Blockly.utils.object']);
|
||||
goog.addDependency("../../core/components/tree/basenode.js", ['Blockly.tree.BaseNode'], ['Blockly.Component', 'Blockly.utils.aria', 'Blockly.utils.object', 'Blockly.utils.KeyCodes', 'Blockly.utils.style']);
|
||||
goog.addDependency("../../core/components/tree/treecontrol.js", ['Blockly.tree.TreeControl'], ['Blockly.tree.TreeNode', 'Blockly.tree.BaseNode', 'Blockly.utils.aria', 'Blockly.utils.object', 'Blockly.utils.style']);
|
||||
@@ -52,7 +52,7 @@ goog.addDependency("../../core/field_angle.js", ['Blockly.FieldAngle'], ['Blockl
|
||||
goog.addDependency("../../core/field_checkbox.js", ['Blockly.FieldCheckbox'], ['Blockly.Events', 'Blockly.Events.BlockChange', 'Blockly.Field', 'Blockly.fieldRegistry', 'Blockly.utils.dom', 'Blockly.utils.object', 'Blockly.utils.Size']);
|
||||
goog.addDependency("../../core/field_colour.js", ['Blockly.FieldColour'], ['Blockly.Css', 'Blockly.DropDownDiv', 'Blockly.Events', 'Blockly.Events.BlockChange', 'Blockly.Field', 'Blockly.fieldRegistry', 'Blockly.navigation', 'Blockly.utils.aria', 'Blockly.utils.colour', 'Blockly.utils.dom', 'Blockly.utils.IdGenerator', 'Blockly.utils.KeyCodes', 'Blockly.utils.object', 'Blockly.utils.Size']);
|
||||
goog.addDependency("../../core/field_date.js", ['Blockly.FieldDate'], ['Blockly.Css', 'Blockly.Events', 'Blockly.Field', 'Blockly.fieldRegistry', 'Blockly.utils.dom', 'Blockly.utils.object', 'Blockly.utils.string', 'goog.date', 'goog.date.DateTime', 'goog.events', 'goog.i18n.DateTimeSymbols', 'goog.i18n.DateTimeSymbols_he', 'goog.ui.DatePicker']);
|
||||
goog.addDependency("../../core/field_dropdown.js", ['Blockly.FieldDropdown'], ['Blockly.Events', 'Blockly.Events.BlockChange', 'Blockly.Field', 'Blockly.fieldRegistry', 'Blockly.Menu', 'Blockly.MenuItem', 'Blockly.navigation', 'Blockly.utils', 'Blockly.utils.aria', 'Blockly.utils.dom', 'Blockly.utils.object', 'Blockly.utils.Size', 'Blockly.utils.string', 'Blockly.utils.userAgent']);
|
||||
goog.addDependency("../../core/field_dropdown.js", ['Blockly.FieldDropdown'], ['Blockly.Events', 'Blockly.Events.BlockChange', 'Blockly.Field', 'Blockly.fieldRegistry', 'Blockly.Menu', 'Blockly.MenuItem', 'Blockly.navigation', 'Blockly.utils', 'Blockly.utils.aria', 'Blockly.utils.Coordinate', 'Blockly.utils.dom', 'Blockly.utils.object', 'Blockly.utils.Size', 'Blockly.utils.string', 'Blockly.utils.userAgent']);
|
||||
goog.addDependency("../../core/field_image.js", ['Blockly.FieldImage'], ['Blockly.Field', 'Blockly.fieldRegistry', 'Blockly.utils', 'Blockly.utils.dom', 'Blockly.utils.object', 'Blockly.utils.Size']);
|
||||
goog.addDependency("../../core/field_label.js", ['Blockly.FieldLabel'], ['Blockly.Field', 'Blockly.fieldRegistry', 'Blockly.utils', 'Blockly.utils.dom', 'Blockly.utils.object', 'Blockly.utils.Size']);
|
||||
goog.addDependency("../../core/field_label_serializable.js", ['Blockly.FieldLabelSerializable'], ['Blockly.FieldLabel', 'Blockly.fieldRegistry', 'Blockly.utils', 'Blockly.utils.object']);
|
||||
|
||||
@@ -571,7 +571,8 @@ Blockly.FieldDropdown.prototype.render_ = function() {
|
||||
var selectedOption = this.selectedIndex_ >= 0 &&
|
||||
options[this.selectedIndex_][0];
|
||||
if (selectedOption && typeof selectedOption == 'object') {
|
||||
this.renderSelectedImage_(selectedOption);
|
||||
this.renderSelectedImage_(
|
||||
/** @type {!Blockly.FieldDropdown.ImageProperties} */ (selectedOption));
|
||||
} else {
|
||||
this.renderSelectedText_();
|
||||
}
|
||||
|
||||
@@ -74,6 +74,13 @@ goog.require('Blockly.FieldMultilineInput');
|
||||
goog.require('Blockly.FieldNumber');
|
||||
goog.require('Blockly.FieldVariable');
|
||||
|
||||
// If you'd like to include the date field in your build, you will also need to
|
||||
// include the closure library as a build dependency. You can do so by running:
|
||||
// gulp build-core --closure-library
|
||||
// Be sure to also include "google-closure-library" to your list of
|
||||
// devDependencies.
|
||||
// goog.require('Blockly.FieldDate');
|
||||
|
||||
|
||||
// Blockly Renderers.
|
||||
// At least one renderer is mandatory. Geras is the default one.
|
||||
|
||||
48
gulpfile.js
48
gulpfile.js
@@ -83,10 +83,11 @@ function prependHeader() {
|
||||
|
||||
/**
|
||||
* Closure compiler warning groups used to treat warnings as errors.
|
||||
* For a full list of closure compiler groups, consult:
|
||||
* https://github.com/google/closure-compiler/blob/master/src/com/google/javascript/jscomp/DiagnosticGroups.java#L113
|
||||
*/
|
||||
var JSCOMP_ERROR = [
|
||||
'accessControls',
|
||||
'ambiguousFunctionDecl',
|
||||
'checkPrototypalTypes',
|
||||
'checkRegExp',
|
||||
'checkTypes',
|
||||
@@ -97,13 +98,10 @@ var JSCOMP_ERROR = [
|
||||
'deprecated',
|
||||
'deprecatedAnnotations',
|
||||
'duplicateMessage',
|
||||
// 'es3',
|
||||
'es5Strict',
|
||||
'externsValidation',
|
||||
'fileoverviewTags',
|
||||
'functionParams',
|
||||
'globalThis',
|
||||
'internetExplorerChecks',
|
||||
'invalidCasts',
|
||||
'misplacedTypeAnnotation',
|
||||
'missingGetCssName',
|
||||
@@ -116,7 +114,6 @@ var JSCOMP_ERROR = [
|
||||
// 'missingSourcesWarnings',
|
||||
'moduleLoad',
|
||||
'msgDescriptions',
|
||||
'newCheckTypes',
|
||||
'nonStandardJsDocs',
|
||||
// 'polymer',
|
||||
// 'reportUnknownTypes',
|
||||
@@ -146,14 +143,17 @@ var JSCOMP_ERROR = [
|
||||
* as errors.
|
||||
*/
|
||||
function compile(compilerOptions, opt_verbose, opt_warnings_as_error) {
|
||||
if (!compilerOptions) compilerOptions = {};
|
||||
compilerOptions = compilerOptions || {};
|
||||
compilerOptions.compilation_level = 'SIMPLE_OPTIMIZATIONS';
|
||||
compilerOptions.warning_level = opt_verbose ? 'VERBOSE' : 'DEFAULT';
|
||||
compilerOptions.language_in = 'ECMASCRIPT5_STRICT';
|
||||
compilerOptions.language_in =
|
||||
compilerOptions.language_in || 'ECMASCRIPT5_STRICT';
|
||||
compilerOptions.language_out = 'ECMASCRIPT5_STRICT';
|
||||
compilerOptions.rewrite_polyfills = false;
|
||||
compilerOptions.hide_warnings_for = 'node_modules';
|
||||
if (opt_warnings_as_error) compilerOptions.jscomp_error = JSCOMP_ERROR;
|
||||
if (opt_warnings_as_error) {
|
||||
compilerOptions.jscomp_error = JSCOMP_ERROR;
|
||||
}
|
||||
|
||||
const platform = ['native', 'java', 'javascript'];
|
||||
|
||||
@@ -164,11 +164,23 @@ function compile(compilerOptions, opt_verbose, opt_warnings_as_error) {
|
||||
* This task builds Blockly's core files.
|
||||
* blockly_compressed.js
|
||||
*/
|
||||
gulp.task('build-core', function () {
|
||||
gulp.task('build-core', function (cb) {
|
||||
const defines = 'Blockly.VERSION="' + packageJson.version + '"';
|
||||
return gulp.src([
|
||||
'core/**/**/*.js'
|
||||
], {base: './'})
|
||||
const srcs = ['core/**/**/*.js'];
|
||||
if (argv.closureLibrary) {
|
||||
// If you require the google closure library, you can include it in your
|
||||
// build by running:
|
||||
// gulp build-core --closure-library
|
||||
// You will also need to include the "google-closure-library" in your list
|
||||
// of devDependencies.
|
||||
console.log('Including the google-closure-library in your build.');
|
||||
if (!fs.existsSync('./node_modules/google-closure-library')) {
|
||||
throw Error('You must add the google-closure-library to your ' +
|
||||
'devDependencies in package.json, and run `npm install`.');
|
||||
}
|
||||
srcs.push('./node_modules/google-closure-library/closure/goog/**/*.js');
|
||||
}
|
||||
return gulp.src(srcs, {base: './'})
|
||||
// Directories in Blockly are used to group similar files together
|
||||
// but are not used to limit access with @package, instead the
|
||||
// method means something is internal to Blockly and not a public
|
||||
@@ -186,7 +198,9 @@ gulp.task('build-core', function () {
|
||||
entry_point: './core-requires.js',
|
||||
js_output_file: 'blockly_compressed.js',
|
||||
externs: ['./externs/svg-externs.js', './externs/goog-externs.js'],
|
||||
define: defines
|
||||
define: defines,
|
||||
language_in:
|
||||
argv.closureLibrary ? 'ECMASCRIPT_2015' : 'ECMASCRIPT5_STRICT'
|
||||
}, argv.verbose, argv.strict))
|
||||
.pipe(prependHeader())
|
||||
.pipe(gulp.dest('./'));
|
||||
@@ -351,7 +365,7 @@ if (this.IS_NODE_JS) {
|
||||
let deps = [];
|
||||
return gulp.src('core/**/**/*.js')
|
||||
.pipe(through2.obj((file, _enc, cb) => {
|
||||
deps.push(closureDeps.parser.parseFile(file.path).dependency);
|
||||
deps.push(closureDeps.parser.parseFile(file.path).dependencies[0]);
|
||||
cb(null);
|
||||
}))
|
||||
.on('end', () => {
|
||||
@@ -376,7 +390,11 @@ goog.addDependency("base.js", [], []);
|
||||
goog.require('Blockly.requires')
|
||||
`;
|
||||
fs.writeFileSync('blockly_uncompressed.js',
|
||||
header + addDependency.join('\n') + requires + footer);
|
||||
header +
|
||||
addDependency.sort((a, b) =>
|
||||
a.localeCompare(b, undefined, {sensitivity: 'base'})).join('\n') +
|
||||
requires +
|
||||
footer);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
447
package-lock.json
generated
447
package-lock.json
generated
@@ -2076,6 +2076,15 @@
|
||||
"mime-types": "^2.1.12"
|
||||
}
|
||||
},
|
||||
"formatio": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/formatio/-/formatio-1.1.1.tgz",
|
||||
"integrity": "sha1-XtPM1jZVEJc4NGXZlhmRAOhhYek=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"samsam": "~1.1"
|
||||
}
|
||||
},
|
||||
"fragment-cache": {
|
||||
"version": "0.2.1",
|
||||
"resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
|
||||
@@ -2827,17 +2836,17 @@
|
||||
}
|
||||
},
|
||||
"google-closure-compiler": {
|
||||
"version": "20191027.0.0",
|
||||
"resolved": "https://registry.npmjs.org/google-closure-compiler/-/google-closure-compiler-20191027.0.0.tgz",
|
||||
"integrity": "sha512-W8MVm/fUg6pPVDHbkP2R8HmeLXNVkjhQHwFpikAhRnF8znhjn7e78V+VXYUiOnjBwDGP1/We1sGk4QGMYY2UfA==",
|
||||
"version": "20200101.0.0",
|
||||
"resolved": "https://registry.npmjs.org/google-closure-compiler/-/google-closure-compiler-20200101.0.0.tgz",
|
||||
"integrity": "sha512-UVDxedg7jbi1F+R4KSWezIZcjB4+4EJSvd2Tf/+J8vw5+6BjBFaIv5E3vy9nTpSXorKIUheJPzE+lt9GRc3Fdg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"chalk": "2.x",
|
||||
"google-closure-compiler-java": "^20191027.0.0",
|
||||
"google-closure-compiler-js": "^20191027.0.0",
|
||||
"google-closure-compiler-linux": "^20191027.0.0",
|
||||
"google-closure-compiler-osx": "^20191027.0.0",
|
||||
"google-closure-compiler-windows": "^20191027.0.0",
|
||||
"google-closure-compiler-java": "^20200101.0.0",
|
||||
"google-closure-compiler-js": "^20200101.0.0",
|
||||
"google-closure-compiler-linux": "^20200101.0.0",
|
||||
"google-closure-compiler-osx": "^20200101.0.0",
|
||||
"google-closure-compiler-windows": "^20200101.0.0",
|
||||
"minimist": "1.x",
|
||||
"vinyl": "2.x",
|
||||
"vinyl-sourcemaps-apply": "^0.2.0"
|
||||
@@ -2852,123 +2861,49 @@
|
||||
}
|
||||
},
|
||||
"google-closure-compiler-java": {
|
||||
"version": "20191027.0.0",
|
||||
"resolved": "https://registry.npmjs.org/google-closure-compiler-java/-/google-closure-compiler-java-20191027.0.0.tgz",
|
||||
"integrity": "sha512-3C0bRnXOp9yYbb6Qm0FqWm53xDmuRRB90tAA57rYzpreZg96Kxz2moVGcoYBh4jFlBkLIywHjV+AWYMaXA3lSQ==",
|
||||
"version": "20200101.0.0",
|
||||
"resolved": "https://registry.npmjs.org/google-closure-compiler-java/-/google-closure-compiler-java-20200101.0.0.tgz",
|
||||
"integrity": "sha512-hW4FjcEO3wAu7p/Cz8zwQIggvVio0SmnVzImukK8A6suAyHLiLDX5vhFPC31a/jyZ8uxfUSEImWrt/SFdKt0eA==",
|
||||
"dev": true
|
||||
},
|
||||
"google-closure-compiler-js": {
|
||||
"version": "20191027.0.0",
|
||||
"resolved": "https://registry.npmjs.org/google-closure-compiler-js/-/google-closure-compiler-js-20191027.0.0.tgz",
|
||||
"integrity": "sha512-D3UHBQ0fbPl3VZ2BDK4OWfqDzp/q1FywwEQBbC2qrEKa6Q1wYJRSSY21z+xwscQ1qyPHZjdqIIPXTBrnJvP0WQ==",
|
||||
"version": "20200101.0.0",
|
||||
"resolved": "https://registry.npmjs.org/google-closure-compiler-js/-/google-closure-compiler-js-20200101.0.0.tgz",
|
||||
"integrity": "sha512-0PdYhSU2FWkLU7eUg+0+BlnJHcGLMhWB69SzQ/0z7qBES/tuor7ruHi7HUopKaxQwhblC4DtDb8IDinieY+R1w==",
|
||||
"dev": true
|
||||
},
|
||||
"google-closure-compiler-linux": {
|
||||
"version": "20191027.0.0",
|
||||
"resolved": "https://registry.npmjs.org/google-closure-compiler-linux/-/google-closure-compiler-linux-20191027.0.0.tgz",
|
||||
"integrity": "sha512-zWg+3UdqhsFOkP895azl9ioFOx+JZVFHdETZwhO59PA+zTNTulZqDCX6wqq8YFRoO3HKvYfedUp7Cp+jdaELnA==",
|
||||
"version": "20200101.0.0",
|
||||
"resolved": "https://registry.npmjs.org/google-closure-compiler-linux/-/google-closure-compiler-linux-20200101.0.0.tgz",
|
||||
"integrity": "sha512-8S1WMbRPrBXV6SUi0DyzHa9EPmyNJ8FcBUG3tIrS6hoQIP71kZl+TrSOwwUAZYKf7KhXl41P3HPMFnI4LXbtrw==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"google-closure-compiler-osx": {
|
||||
"version": "20191027.0.0",
|
||||
"resolved": "https://registry.npmjs.org/google-closure-compiler-osx/-/google-closure-compiler-osx-20191027.0.0.tgz",
|
||||
"integrity": "sha512-Ko/+43oeMD8u6MhKMGPhx61B5e2lR5+C9pzlhnibQwuXuDVcp2ruFbblhWBXiT2FrStTX65SZzFvza0bRVYikA==",
|
||||
"version": "20200101.0.0",
|
||||
"resolved": "https://registry.npmjs.org/google-closure-compiler-osx/-/google-closure-compiler-osx-20200101.0.0.tgz",
|
||||
"integrity": "sha512-rZh2+4/JwhKLVSwOWKBp+WJnLZCfOq6MQW06ayulhvq3WjJ0Ny9XZTpLUKiEbnMQf7+ARcFb8zIeiUp0Q2aFqg==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"google-closure-compiler-windows": {
|
||||
"version": "20191027.0.0",
|
||||
"resolved": "https://registry.npmjs.org/google-closure-compiler-windows/-/google-closure-compiler-windows-20191027.0.0.tgz",
|
||||
"integrity": "sha512-kAzGFGaeAL9qsieotjb5qq5SsYD2Vwtl7aCeIVUnzWyNfhz7WZCmAMSGwGdtaShfM+4uzOwG1mahtPWasTaBxg==",
|
||||
"version": "20200101.0.0",
|
||||
"resolved": "https://registry.npmjs.org/google-closure-compiler-windows/-/google-closure-compiler-windows-20200101.0.0.tgz",
|
||||
"integrity": "sha512-WcH6BPPSiQq1NnOO7PxKfS0FZ+mQRz4pIoRkrItafTKXWtBCL5NZWd8BjPayBJKxsmoiVFsOpkjzLe8ryBXciQ==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"google-closure-deps": {
|
||||
"version": "20190121.0.0",
|
||||
"resolved": "https://registry.npmjs.org/google-closure-deps/-/google-closure-deps-20190121.0.0.tgz",
|
||||
"integrity": "sha512-UdFzI/6sQt2q66GFO9M/DRw/F5dk8TY7JRav54jsK+VORRoTfjH99xvHqEva4BOZ2+JdzG9IoTcH0nyIOAbxfQ==",
|
||||
"version": "20200101.0.0",
|
||||
"resolved": "https://registry.npmjs.org/google-closure-deps/-/google-closure-deps-20200101.0.0.tgz",
|
||||
"integrity": "sha512-iumjDwrhL9XTcBbiHUmFL9IzskZxNShQM4kEk6/NTTAhXvxxov3/IxFLetA62dHCIO9xBhnjrzlhb4CfOszqag==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"argparse": "^1.0.9",
|
||||
"google-closure-compiler": "^20181008.0.0",
|
||||
"google-closure-compiler": "^v20200101.0.0",
|
||||
"yargs": "^12.0.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"ansi-regex": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
|
||||
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
|
||||
"dev": true
|
||||
},
|
||||
"ansi-styles": {
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
|
||||
"integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
|
||||
"dev": true
|
||||
},
|
||||
"chalk": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
|
||||
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-styles": "^2.2.1",
|
||||
"escape-string-regexp": "^1.0.2",
|
||||
"has-ansi": "^2.0.0",
|
||||
"strip-ansi": "^3.0.0",
|
||||
"supports-color": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"google-closure-compiler": {
|
||||
"version": "20181008.0.0",
|
||||
"resolved": "https://registry.npmjs.org/google-closure-compiler/-/google-closure-compiler-20181008.0.0.tgz",
|
||||
"integrity": "sha512-XmJIasXHyy4kirthlsuDev2LZcXjYXWfOHwHdCLUQnfJH8T2sxWDNjFLQycaCIXwQLOyw2Kem38VgxrYfG0hzg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"chalk": "^1.0.0",
|
||||
"google-closure-compiler-linux": "^20181008.0.0",
|
||||
"google-closure-compiler-osx": "^20181008.0.0",
|
||||
"minimist": "^1.2.0",
|
||||
"vinyl": "^2.0.1",
|
||||
"vinyl-sourcemaps-apply": "^0.2.0"
|
||||
}
|
||||
},
|
||||
"google-closure-compiler-linux": {
|
||||
"version": "20181008.0.0",
|
||||
"resolved": "https://registry.npmjs.org/google-closure-compiler-linux/-/google-closure-compiler-linux-20181008.0.0.tgz",
|
||||
"integrity": "sha512-k8njGfH2uzWJiRPPvUxM7MJB28gPrf4kI2bbuiF0gJk/1arXcWCPGjLD6pzCU0UylMy52MUXLgsIpRorqf2brw==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"google-closure-compiler-osx": {
|
||||
"version": "20181008.0.0",
|
||||
"resolved": "https://registry.npmjs.org/google-closure-compiler-osx/-/google-closure-compiler-osx-20181008.0.0.tgz",
|
||||
"integrity": "sha512-xzf/yH/4MXdb6GbP84iHnpcVCOPBbH0gMVOs0JhR/KbrQh+DlJU+Y8Z/DQzTkw9HgD650R2/WZmBknURyg9OTw==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"minimist": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
|
||||
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
|
||||
"dev": true
|
||||
},
|
||||
"strip-ansi": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
|
||||
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-regex": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
|
||||
"integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
|
||||
"dev": true
|
||||
},
|
||||
"yargs": {
|
||||
"version": "12.0.5",
|
||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz",
|
||||
@@ -2991,6 +2926,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"google-closure-library": {
|
||||
"version": "20200101.0.0",
|
||||
"resolved": "https://registry.npmjs.org/google-closure-library/-/google-closure-library-20200101.0.0.tgz",
|
||||
"integrity": "sha512-BwCDk/aGyCWQr3UFfOL9QJMhNKV1F1i5hH45N6J1UsJtI0LDR3eD4U/plfc6ERef7wH03OyX00MubiyzKmkVMQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"promises-aplus-tests": "^2.1.2"
|
||||
}
|
||||
},
|
||||
"graceful-fs": {
|
||||
"version": "4.2.2",
|
||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
|
||||
@@ -3329,23 +3273,6 @@
|
||||
"function-bind": "^1.1.1"
|
||||
}
|
||||
},
|
||||
"has-ansi": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
|
||||
"integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-regex": "^2.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"ansi-regex": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
|
||||
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"has-flag": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
|
||||
@@ -3611,6 +3538,12 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"is-arguments": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz",
|
||||
"integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==",
|
||||
"dev": true
|
||||
},
|
||||
"is-arrayish": {
|
||||
"version": "0.2.1",
|
||||
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
|
||||
@@ -3701,6 +3634,12 @@
|
||||
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
|
||||
"dev": true
|
||||
},
|
||||
"is-generator-function": {
|
||||
"version": "1.0.7",
|
||||
"resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.7.tgz",
|
||||
"integrity": "sha512-YZc5EwyO4f2kWCax7oegfuSr9mFz1ZvieNYBEjmukLxgXfBUbxAWGVF7GZf0zidYtoBl3WvC07YK0wT76a+Rtw==",
|
||||
"dev": true
|
||||
},
|
||||
"is-glob": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
|
||||
@@ -3850,6 +3789,30 @@
|
||||
"textextensions": "2"
|
||||
}
|
||||
},
|
||||
"jade": {
|
||||
"version": "0.26.3",
|
||||
"resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz",
|
||||
"integrity": "sha1-jxDXl32NefL2/4YqgbBRPMslaGw=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"commander": "0.6.1",
|
||||
"mkdirp": "0.3.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"commander": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz",
|
||||
"integrity": "sha1-+mihT2qUXVTbvlDYzbMyDp47GgY=",
|
||||
"dev": true
|
||||
},
|
||||
"mkdirp": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz",
|
||||
"integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"js-tokens": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
|
||||
@@ -4261,6 +4224,18 @@
|
||||
"integrity": "sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g==",
|
||||
"dev": true
|
||||
},
|
||||
"lolex": {
|
||||
"version": "1.3.2",
|
||||
"resolved": "https://registry.npmjs.org/lolex/-/lolex-1.3.2.tgz",
|
||||
"integrity": "sha1-fD2mL/yzDw9agKJWbKJORdigHzE=",
|
||||
"dev": true
|
||||
},
|
||||
"lru-cache": {
|
||||
"version": "2.7.3",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
|
||||
"integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=",
|
||||
"dev": true
|
||||
},
|
||||
"make-iterator": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz",
|
||||
@@ -4817,6 +4792,97 @@
|
||||
"isobject": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"object.entries": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.1.tgz",
|
||||
"integrity": "sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"define-properties": "^1.1.3",
|
||||
"es-abstract": "^1.17.0-next.1",
|
||||
"function-bind": "^1.1.1",
|
||||
"has": "^1.0.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"es-abstract": {
|
||||
"version": "1.17.0",
|
||||
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.0.tgz",
|
||||
"integrity": "sha512-yYkE07YF+6SIBmg1MsJ9dlub5L48Ek7X0qz+c/CPCHS9EBXfESorzng4cJQjJW5/pB6vDF41u7F8vUhLVDqIug==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"es-to-primitive": "^1.2.1",
|
||||
"function-bind": "^1.1.1",
|
||||
"has": "^1.0.3",
|
||||
"has-symbols": "^1.0.1",
|
||||
"is-callable": "^1.1.5",
|
||||
"is-regex": "^1.0.5",
|
||||
"object-inspect": "^1.7.0",
|
||||
"object-keys": "^1.1.1",
|
||||
"object.assign": "^4.1.0",
|
||||
"string.prototype.trimleft": "^2.1.1",
|
||||
"string.prototype.trimright": "^2.1.1"
|
||||
}
|
||||
},
|
||||
"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==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-callable": "^1.1.4",
|
||||
"is-date-object": "^1.0.1",
|
||||
"is-symbol": "^1.0.2"
|
||||
}
|
||||
},
|
||||
"has-symbols": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
|
||||
"integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
|
||||
"dev": true
|
||||
},
|
||||
"is-callable": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
|
||||
"integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
|
||||
"dev": true
|
||||
},
|
||||
"is-regex": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
|
||||
"integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"has": "^1.0.3"
|
||||
}
|
||||
},
|
||||
"object-inspect": {
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
|
||||
"integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
|
||||
"dev": true
|
||||
},
|
||||
"string.prototype.trimleft": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz",
|
||||
"integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"define-properties": "^1.1.3",
|
||||
"function-bind": "^1.1.1"
|
||||
}
|
||||
},
|
||||
"string.prototype.trimright": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz",
|
||||
"integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"define-properties": "^1.1.3",
|
||||
"function-bind": "^1.1.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"object.getownpropertydescriptors": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz",
|
||||
@@ -5185,6 +5251,108 @@
|
||||
"integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
|
||||
"dev": true
|
||||
},
|
||||
"promises-aplus-tests": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/promises-aplus-tests/-/promises-aplus-tests-2.1.2.tgz",
|
||||
"integrity": "sha1-drfFY4locghhlpz7zYeVr9J0iFw=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"mocha": "^2.5.3",
|
||||
"sinon": "^1.10.3",
|
||||
"underscore": "~1.8.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"commander": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.3.0.tgz",
|
||||
"integrity": "sha1-/UMOiJgy7DU7ms0d4hfBHLPu+HM=",
|
||||
"dev": true
|
||||
},
|
||||
"debug": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
|
||||
"integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ms": "0.7.1"
|
||||
}
|
||||
},
|
||||
"diff": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz",
|
||||
"integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=",
|
||||
"dev": true
|
||||
},
|
||||
"escape-string-regexp": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz",
|
||||
"integrity": "sha1-Tbwv5nTnGUnK8/smlc5/LcHZqNE=",
|
||||
"dev": true
|
||||
},
|
||||
"glob": {
|
||||
"version": "3.2.11",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz",
|
||||
"integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"inherits": "2",
|
||||
"minimatch": "0.3"
|
||||
}
|
||||
},
|
||||
"growl": {
|
||||
"version": "1.9.2",
|
||||
"resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz",
|
||||
"integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=",
|
||||
"dev": true
|
||||
},
|
||||
"minimatch": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz",
|
||||
"integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"lru-cache": "2",
|
||||
"sigmund": "~1.0.0"
|
||||
}
|
||||
},
|
||||
"mocha": {
|
||||
"version": "2.5.3",
|
||||
"resolved": "https://registry.npmjs.org/mocha/-/mocha-2.5.3.tgz",
|
||||
"integrity": "sha1-FhvlvetJZ3HrmzV0UFC2IrWu/Fg=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"commander": "2.3.0",
|
||||
"debug": "2.2.0",
|
||||
"diff": "1.4.0",
|
||||
"escape-string-regexp": "1.0.2",
|
||||
"glob": "3.2.11",
|
||||
"growl": "1.9.2",
|
||||
"jade": "0.26.3",
|
||||
"mkdirp": "0.5.1",
|
||||
"supports-color": "1.2.0",
|
||||
"to-iso-string": "0.0.2"
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "0.7.1",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
|
||||
"integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=",
|
||||
"dev": true
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-1.2.0.tgz",
|
||||
"integrity": "sha1-/x7R5hFp0Gs88tWI4YixjYhH4X4=",
|
||||
"dev": true
|
||||
},
|
||||
"underscore": {
|
||||
"version": "1.8.3",
|
||||
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz",
|
||||
"integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"psl": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz",
|
||||
@@ -5634,6 +5802,12 @@
|
||||
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
|
||||
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
|
||||
},
|
||||
"samsam": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/samsam/-/samsam-1.1.2.tgz",
|
||||
"integrity": "sha1-vsEf3IOp/aBjQBIQ5AF2wwJNFWc=",
|
||||
"dev": true
|
||||
},
|
||||
"saxes": {
|
||||
"version": "3.1.11",
|
||||
"resolved": "https://registry.npmjs.org/saxes/-/saxes-3.1.11.tgz",
|
||||
@@ -5745,12 +5919,30 @@
|
||||
"integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=",
|
||||
"dev": true
|
||||
},
|
||||
"sigmund": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
|
||||
"integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=",
|
||||
"dev": true
|
||||
},
|
||||
"signal-exit": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
|
||||
"integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
|
||||
"dev": true
|
||||
},
|
||||
"sinon": {
|
||||
"version": "1.17.7",
|
||||
"resolved": "https://registry.npmjs.org/sinon/-/sinon-1.17.7.tgz",
|
||||
"integrity": "sha1-RUKk9JugxFwF6y6d2dID4rjv4L8=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"formatio": "1.1.1",
|
||||
"lolex": "1.3.2",
|
||||
"samsam": "1.1.2",
|
||||
"util": ">=0.10.3 <1"
|
||||
}
|
||||
},
|
||||
"slice-ansi": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
|
||||
@@ -6323,6 +6515,12 @@
|
||||
"is-negated-glob": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"to-iso-string": {
|
||||
"version": "0.0.2",
|
||||
"resolved": "https://registry.npmjs.org/to-iso-string/-/to-iso-string-0.0.2.tgz",
|
||||
"integrity": "sha1-TcGeZk38y+Jb2NtQiwDG2hWCVdE=",
|
||||
"dev": true
|
||||
},
|
||||
"to-object-path": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
|
||||
@@ -6617,6 +6815,19 @@
|
||||
"integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
|
||||
"dev": true
|
||||
},
|
||||
"util": {
|
||||
"version": "0.12.1",
|
||||
"resolved": "https://registry.npmjs.org/util/-/util-0.12.1.tgz",
|
||||
"integrity": "sha512-MREAtYOp+GTt9/+kwf00IYoHZyjM8VU4aVrkzUlejyqaIjd2GztVl5V9hGXKlvBKE3gENn/FMfHE5v6hElXGcQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"inherits": "^2.0.3",
|
||||
"is-arguments": "^1.0.4",
|
||||
"is-generator-function": "^1.0.7",
|
||||
"object.entries": "^1.1.0",
|
||||
"safe-buffer": "^5.1.2"
|
||||
}
|
||||
},
|
||||
"util-deprecate": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
||||
|
||||
@@ -55,8 +55,8 @@
|
||||
"eslint": "^5.13.0",
|
||||
"eslint-plugin-es5": "^1.4.1",
|
||||
"fs": "0.0.1-security",
|
||||
"google-closure-compiler": "^20191027.0.0",
|
||||
"google-closure-deps": "20190121.0.0",
|
||||
"google-closure-compiler": "^20200101.0.0",
|
||||
"google-closure-deps": "^20200101.0.0",
|
||||
"gulp": "^4.0.2",
|
||||
"gulp-concat": "^2.6.1",
|
||||
"gulp-insert": "^0.5.0",
|
||||
|
||||
Reference in New Issue
Block a user