From 45882e0ea36844d8f0b6de402f8ce39bdb2eaaaf Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Wed, 4 Dec 2019 08:13:06 +0000 Subject: [PATCH 001/187] Update dependency typescript to v3.7.3 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index c531dd32b..1fa162e44 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -52,9 +52,9 @@ "dev": true }, "typescript": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.2.tgz", - "integrity": "sha512-ml7V7JfiN2Xwvcer+XAf2csGO1bPBdRbFCkYBczNZggrBZ9c7G3riSUeJmqEU5uOtXNPMhE3n+R4FA/3YOAWOQ==", + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.3.tgz", + "integrity": "sha512-Mcr/Qk7hXqFBXMN7p7Lusj1ktCBydylfQM/FZCk5glCNQJrCUKPkMHdo9R0MTFWsC/4kPFvDS0fDPvukfCkFsw==", "dev": true } } diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 8c1dcdcf0..e3ab6dea1 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -10,6 +10,6 @@ "@types/react": "16.9.14", "@types/react-dom": "16.9.4", "@types/reactstrap": "8.0.6", - "typescript": "3.7.2" + "typescript": "3.7.3" } } From b8f83cbfc9355b45912cf60849e12fc93c3347ca Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Wed, 4 Dec 2019 23:56:12 +0000 Subject: [PATCH 002/187] Update dependency @types/react to v16.9.15 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 1fa162e44..5f99ea7b9 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.9.14", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.14.tgz", - "integrity": "sha512-Q4tW4RGmR+u/CgzR8VqZcsUWjP4Pz/LcHfs9AzSG+aBnwq8As3Bid3vG1eGGsXg/xuR2k2tqNlI8pzyV8kxe0g==", + "version": "16.9.15", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.15.tgz", + "integrity": "sha512-WsmM1b6xQn1tG3X2Hx4F3bZwc2E82pJXt5OPs2YJgg71IzvUoKOSSSYOvLXYCg1ttipM+UuA4Lj3sfvqjVxyZw==", "dev": true, "requires": { "@types/prop-types": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index e3ab6dea1..002a36ab9 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.14", + "@types/react": "16.9.15", "@types/react-dom": "16.9.4", "@types/reactstrap": "8.0.6", "typescript": "3.7.3" From dd83ac9eef9af92c984579072c1b250528a15d02 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 6 Dec 2019 13:24:38 +0000 Subject: [PATCH 003/187] Update babel monorepo to v7.7.5 --- src/React.Core/package-lock.json | 20 ++-- src/React.Core/package.json | 2 +- .../package-lock.json | 94 ++++++++++--------- src/React.Sample.Webpack.CoreMvc/package.json | 4 +- 4 files changed, 63 insertions(+), 57 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index d1ec0b82d..665f8a2e4 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -14,15 +14,15 @@ } }, "@babel/core": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.4.tgz", - "integrity": "sha512-+bYbx56j4nYBmpsWtnPUsKW3NdnYxbqyfrP2w9wILBuHzdfIKz9prieZK0DFPyIzkjYVUe4QkusGL07r5pXznQ==", + "version": "7.7.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.5.tgz", + "integrity": "sha512-M42+ScN4+1S9iB6f+TL7QBpoQETxbclx+KNoKJABghnKYE+fMzSGqst0BZJc8CpI625bwPwYgUyRvxZ+0mZzpw==", "dev": true, "requires": { "@babel/code-frame": "^7.5.5", "@babel/generator": "^7.7.4", "@babel/helpers": "^7.7.4", - "@babel/parser": "^7.7.4", + "@babel/parser": "^7.7.5", "@babel/template": "^7.7.4", "@babel/traverse": "^7.7.4", "@babel/types": "^7.7.4", @@ -124,9 +124,9 @@ } }, "@babel/parser": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.4.tgz", - "integrity": "sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g==", + "version": "7.7.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.5.tgz", + "integrity": "sha512-KNlOe9+/nk4i29g0VXgl8PEXIRms5xKLJeuZ6UptN0fHv+jDiriG+y94X6qAgWTR0h3KaoM1wK5G5h7MHFRSig==", "dev": true }, "@babel/standalone": { @@ -3544,9 +3544,9 @@ "dev": true }, "resolve": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.2.tgz", - "integrity": "sha512-cAVTI2VLHWYsGOirfeYVVQ7ZDejtQ9fp4YhYckWDEkFfqbVjaT11iM8k6xSAfGFMM+gDpZjMnFssPu8we+mqFw==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.13.1.tgz", + "integrity": "sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w==", "dev": true, "requires": { "path-parse": "^1.0.6" diff --git a/src/React.Core/package.json b/src/React.Core/package.json index d3f0c7304..276658e90 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -6,7 +6,7 @@ "build": "webpack" }, "devDependencies": { - "@babel/core": "7.7.4", + "@babel/core": "7.7.5", "@babel/standalone": "7.7.4", "prop-types": "15.7.2", "react": "16.12.0", diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index a71753b77..5a8f336aa 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -14,15 +14,15 @@ } }, "@babel/core": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.4.tgz", - "integrity": "sha512-+bYbx56j4nYBmpsWtnPUsKW3NdnYxbqyfrP2w9wILBuHzdfIKz9prieZK0DFPyIzkjYVUe4QkusGL07r5pXznQ==", + "version": "7.7.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.5.tgz", + "integrity": "sha512-M42+ScN4+1S9iB6f+TL7QBpoQETxbclx+KNoKJABghnKYE+fMzSGqst0BZJc8CpI625bwPwYgUyRvxZ+0mZzpw==", "dev": true, "requires": { "@babel/code-frame": "^7.5.5", "@babel/generator": "^7.7.4", "@babel/helpers": "^7.7.4", - "@babel/parser": "^7.7.4", + "@babel/parser": "^7.7.5", "@babel/template": "^7.7.4", "@babel/traverse": "^7.7.4", "@babel/types": "^7.7.4", @@ -35,6 +35,12 @@ "source-map": "^0.5.0" }, "dependencies": { + "@babel/parser": { + "version": "7.7.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.5.tgz", + "integrity": "sha512-KNlOe9+/nk4i29g0VXgl8PEXIRms5xKLJeuZ6UptN0fHv+jDiriG+y94X6qAgWTR0h3KaoM1wK5G5h7MHFRSig==", + "dev": true + }, "@babel/types": { "version": "7.7.4", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", @@ -360,9 +366,9 @@ } }, "@babel/helper-module-transforms": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.7.4.tgz", - "integrity": "sha512-ehGBu4mXrhs0FxAqN8tWkzF8GSIGAiEumu4ONZ/hD9M88uHcD+Yu2ttKfOCgwzoesJOJrtQh7trI5YPbRtMmnA==", + "version": "7.7.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.7.5.tgz", + "integrity": "sha512-A7pSxyJf1gN5qXVcidwLWydjftUN878VkalhXX5iQDuGyiGK3sOrrKKHF4/A4fwHtnsotv/NipwAeLzY4KQPvw==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.7.4", @@ -929,23 +935,23 @@ } }, "@babel/plugin-transform-modules-amd": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.7.4.tgz", - "integrity": "sha512-/542/5LNA18YDtg1F+QHvvUSlxdvjZoD/aldQwkq+E3WCkbEjNSN9zdrOXaSlfg3IfGi22ijzecklF/A7kVZFQ==", + "version": "7.7.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.7.5.tgz", + "integrity": "sha512-CT57FG4A2ZUNU1v+HdvDSDrjNWBrtCmSH6YbbgN3Lrf0Di/q/lWRxZrE72p3+HCCz9UjfZOEBdphgC0nzOS6DQ==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.7.4", + "@babel/helper-module-transforms": "^7.7.5", "@babel/helper-plugin-utils": "^7.0.0", "babel-plugin-dynamic-import-node": "^2.3.0" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.4.tgz", - "integrity": "sha512-k8iVS7Jhc367IcNF53KCwIXtKAH7czev866ThsTgy8CwlXjnKZna2VHwChglzLleYrcHz1eQEIJlGRQxB53nqA==", + "version": "7.7.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.5.tgz", + "integrity": "sha512-9Cq4zTFExwFhQI6MT1aFxgqhIsMWQWDVwOgLzl7PTWJHsNaqFvklAU+Oz6AQLAS0dJKTwZSOCo20INwktxpi3Q==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.7.4", + "@babel/helper-module-transforms": "^7.7.5", "@babel/helper-plugin-utils": "^7.0.0", "@babel/helper-simple-access": "^7.7.4", "babel-plugin-dynamic-import-node": "^2.3.0" @@ -1061,9 +1067,9 @@ } }, "@babel/plugin-transform-regenerator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.4.tgz", - "integrity": "sha512-e7MWl5UJvmPEwFJTwkBlPmqixCtr9yAASBqff4ggXTNicZiwbF8Eefzm6NVgfiBp7JdAGItecnctKTgH44q2Jw==", + "version": "7.7.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.5.tgz", + "integrity": "sha512-/8I8tPvX2FkuEyWbjRCt4qTAgZK0DVy8QRguhA524UH48RfGJy94On2ri+dCuwOpcerPRl9O4ebQkRcVzIaGBw==", "dev": true, "requires": { "regenerator-transform": "^0.14.0" @@ -1158,9 +1164,9 @@ } }, "@babel/preset-env": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.7.4.tgz", - "integrity": "sha512-Dg+ciGJjwvC1NIe/DGblMbcGq1HOtKbw8RLl4nIjlfcILKEOkWT/vRqPpumswABEBVudii6dnVwrBtzD7ibm4g==", + "version": "7.7.5", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.7.5.tgz", + "integrity": "sha512-wDPbiaZdGzsJuTWlpLHJxmwslwHGLZ8F5v69zX3oAWeTOFWdy4OJHoTKg26oAnFg052v+/LAPY5os9KB0LrOEA==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.7.4", @@ -1191,8 +1197,8 @@ "@babel/plugin-transform-function-name": "^7.7.4", "@babel/plugin-transform-literals": "^7.7.4", "@babel/plugin-transform-member-expression-literals": "^7.7.4", - "@babel/plugin-transform-modules-amd": "^7.7.4", - "@babel/plugin-transform-modules-commonjs": "^7.7.4", + "@babel/plugin-transform-modules-amd": "^7.7.5", + "@babel/plugin-transform-modules-commonjs": "^7.7.5", "@babel/plugin-transform-modules-systemjs": "^7.7.4", "@babel/plugin-transform-modules-umd": "^7.7.4", "@babel/plugin-transform-named-capturing-groups-regex": "^7.7.4", @@ -1200,7 +1206,7 @@ "@babel/plugin-transform-object-super": "^7.7.4", "@babel/plugin-transform-parameters": "^7.7.4", "@babel/plugin-transform-property-literals": "^7.7.4", - "@babel/plugin-transform-regenerator": "^7.7.4", + "@babel/plugin-transform-regenerator": "^7.7.5", "@babel/plugin-transform-reserved-words": "^7.7.4", "@babel/plugin-transform-shorthand-properties": "^7.7.4", "@babel/plugin-transform-spread": "^7.7.4", @@ -1210,7 +1216,7 @@ "@babel/plugin-transform-unicode-regex": "^7.7.4", "@babel/types": "^7.7.4", "browserslist": "^4.6.0", - "core-js-compat": "^3.1.1", + "core-js-compat": "^3.4.7", "invariant": "^2.2.2", "js-levenshtein": "^1.1.3", "semver": "^5.5.0" @@ -2218,14 +2224,14 @@ } }, "browserslist": { - "version": "4.7.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.3.tgz", - "integrity": "sha512-jWvmhqYpx+9EZm/FxcZSbUZyDEvDTLDi3nSAKbzEkyWvtI0mNSmUosey+5awDW1RUlrgXbQb5A6qY1xQH9U6MQ==", + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.2.tgz", + "integrity": "sha512-+M4oeaTplPm/f1pXDw84YohEv7B1i/2Aisei8s4s6k3QsoSHa7i5sz8u/cGQkkatCPxMASKxPualR4wwYgVboA==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001010", - "electron-to-chromium": "^1.3.306", - "node-releases": "^1.1.40" + "caniuse-lite": "^1.0.30001015", + "electron-to-chromium": "^1.3.322", + "node-releases": "^1.1.42" } }, "buffer": { @@ -2316,9 +2322,9 @@ "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=" }, "caniuse-lite": { - "version": "1.0.30001011", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001011.tgz", - "integrity": "sha512-h+Eqyn/YA6o6ZTqpS86PyRmNWOs1r54EBDcd2NTwwfsXQ8re1B38SnB+p2RKF8OUsyEIjeDU8XGec1RGO/wYCg==", + "version": "1.0.30001015", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001015.tgz", + "integrity": "sha512-/xL2AbW/XWHNu1gnIrO8UitBGoFthcsDgU9VLK1/dpsoxbaD5LscHozKze05R6WLsBvLhqv78dAPozMFQBYLbQ==", "dev": true }, "chalk": { @@ -2532,12 +2538,12 @@ "dev": true }, "core-js-compat": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.4.2.tgz", - "integrity": "sha512-W0Aj+LM3EAxxjD0Kp2o4be8UlnxIZHNupBv2znqrheR4aY2nOn91794k/xoSp+SxqqriiZpTsSwBtZr60cbkwQ==", + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.4.7.tgz", + "integrity": "sha512-57+mgz/P/xsGdjwQYkwtBZR3LuISaxD1dEwVDtbk8xJMqAmwqaxLOvnNT7kdJ7jYE/NjNptyzXi+IQFMi/2fCw==", "dev": true, "requires": { - "browserslist": "^4.7.3", + "browserslist": "^4.8.0", "semver": "^6.3.0" }, "dependencies": { @@ -2871,9 +2877,9 @@ } }, "electron-to-chromium": { - "version": "1.3.314", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.314.tgz", - "integrity": "sha512-IKDR/xCxKFhPts7h+VaSXS02Z1mznP3fli1BbXWXeN89i2gCzKraU8qLpEid8YzKcmZdZD3Mly3cn5/lY9xsBQ==", + "version": "1.3.322", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.322.tgz", + "integrity": "sha512-Tc8JQEfGQ1MzfSzI/bTlSr7btJv/FFO7Yh6tanqVmIWOuNCu6/D1MilIEgLtmWqIrsv+o4IjpLAhgMBr/ncNAA==", "dev": true }, "elliptic": { @@ -5030,9 +5036,9 @@ } }, "node-releases": { - "version": "1.1.41", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.41.tgz", - "integrity": "sha512-+IctMa7wIs8Cfsa8iYzeaLTFwv5Y4r5jZud+4AnfymzeEXKBCavFX0KBgzVaPVqf0ywa6PrO8/b+bPqdwjGBSg==", + "version": "1.1.42", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.42.tgz", + "integrity": "sha512-OQ/ESmUqGawI2PRX+XIRao44qWYBBfN54ImQYdWVTQqUckuejOg76ysSqDBK8NG3zwySRVnX36JwDQ6x+9GxzA==", "dev": true, "requires": { "semver": "^6.3.0" diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index d84285361..fbed9cee0 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -20,11 +20,11 @@ "styled-components": "^4.0.0" }, "devDependencies": { - "@babel/core": "7.7.4", + "@babel/core": "7.7.5", "@babel/plugin-proposal-class-properties": "7.7.4", "@babel/plugin-proposal-object-rest-spread": "7.7.4", "@babel/plugin-syntax-dynamic-import": "7.7.4", - "@babel/preset-env": "7.7.4", + "@babel/preset-env": "7.7.5", "@babel/preset-react": "7.7.4", "babel-loader": "8.0.6", "babel-runtime": "6.26.0", From 6b53a294b51c3ef641523061b5c099096f936d9f Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 6 Dec 2019 16:36:13 +0000 Subject: [PATCH 004/187] Update dependency @babel/standalone to v7.7.5 --- src/React.Core/package-lock.json | 6 +++--- src/React.Core/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 665f8a2e4..36357eb05 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -130,9 +130,9 @@ "dev": true }, "@babel/standalone": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.7.4.tgz", - "integrity": "sha512-7erMqY9K0uOsWERAJrKzOkG5BezlZw8s1Yez40PUJrf8XXPTebv/fO7555+5Hmo1kBiDQlf9FOkV6wc7wRQ19A==", + "version": "7.7.5", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.7.5.tgz", + "integrity": "sha512-DTUfpRWwNbFk0mBdXa+u8MGTpcNcScl9cUZyM+2Sjt/0RcOrH/dWMebn2hVF9bb6vp2VJYypB08/c2NhaKhLqA==", "dev": true }, "@babel/template": { diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 276658e90..12d0d686f 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -7,7 +7,7 @@ }, "devDependencies": { "@babel/core": "7.7.5", - "@babel/standalone": "7.7.4", + "@babel/standalone": "7.7.5", "prop-types": "15.7.2", "react": "16.12.0", "react-dom": "16.12.0", From 1d07f85212668967c6198698194f9759151281eb Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sun, 8 Dec 2019 00:29:51 +0000 Subject: [PATCH 005/187] Update dependency @babel/preset-env to v7.7.6 --- src/React.Sample.Webpack.CoreMvc/package-lock.json | 6 +++--- src/React.Sample.Webpack.CoreMvc/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index 5a8f336aa..e4dd59b3b 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -1164,9 +1164,9 @@ } }, "@babel/preset-env": { - "version": "7.7.5", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.7.5.tgz", - "integrity": "sha512-wDPbiaZdGzsJuTWlpLHJxmwslwHGLZ8F5v69zX3oAWeTOFWdy4OJHoTKg26oAnFg052v+/LAPY5os9KB0LrOEA==", + "version": "7.7.6", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.7.6.tgz", + "integrity": "sha512-k5hO17iF/Q7tR9Jv8PdNBZWYW6RofxhnxKjBMc0nG4JTaWvOTiPoO/RLFwAKcA4FpmuBFm6jkoqaRJLGi0zdaQ==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.7.4", diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index fbed9cee0..eb9be01d2 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -24,7 +24,7 @@ "@babel/plugin-proposal-class-properties": "7.7.4", "@babel/plugin-proposal-object-rest-spread": "7.7.4", "@babel/plugin-syntax-dynamic-import": "7.7.4", - "@babel/preset-env": "7.7.5", + "@babel/preset-env": "7.7.6", "@babel/preset-react": "7.7.4", "babel-loader": "8.0.6", "babel-runtime": "6.26.0", From 48dafa31df373dcef5cd93659579ba76f0822726 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sun, 8 Dec 2019 00:30:06 +0000 Subject: [PATCH 006/187] Update dependency @babel/standalone to v7.7.6 --- src/React.Core/package-lock.json | 6 +++--- src/React.Core/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 36357eb05..d95050647 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -130,9 +130,9 @@ "dev": true }, "@babel/standalone": { - "version": "7.7.5", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.7.5.tgz", - "integrity": "sha512-DTUfpRWwNbFk0mBdXa+u8MGTpcNcScl9cUZyM+2Sjt/0RcOrH/dWMebn2hVF9bb6vp2VJYypB08/c2NhaKhLqA==", + "version": "7.7.6", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.7.6.tgz", + "integrity": "sha512-Th8rfO7jJQm9V+owCuhTrK1kXORlC6kyspz/L/Q5UhFvWZoZhEm2hVZVo7wbpmfbQzEbKn4MxZzoBu4nTz/Szw==", "dev": true }, "@babel/template": { diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 12d0d686f..958cf90bb 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -7,7 +7,7 @@ }, "devDependencies": { "@babel/core": "7.7.5", - "@babel/standalone": "7.7.5", + "@babel/standalone": "7.7.6", "prop-types": "15.7.2", "react": "16.12.0", "react-dom": "16.12.0", From 83b160988c67a159625832966e722d1044c265e3 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 9 Dec 2019 13:12:51 +0000 Subject: [PATCH 007/187] Update dependency @types/react to v16.9.16 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 5f99ea7b9..779ad199a 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.9.15", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.15.tgz", - "integrity": "sha512-WsmM1b6xQn1tG3X2Hx4F3bZwc2E82pJXt5OPs2YJgg71IzvUoKOSSSYOvLXYCg1ttipM+UuA4Lj3sfvqjVxyZw==", + "version": "16.9.16", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.16.tgz", + "integrity": "sha512-dQ3wlehuBbYlfvRXfF5G+5TbZF3xqgkikK7DWAsQXe2KnzV+kjD4W2ea+ThCrKASZn9h98bjjPzoTYzfRqyBkw==", "dev": true, "requires": { "@types/prop-types": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 002a36ab9..9d489b874 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.15", + "@types/react": "16.9.16", "@types/react-dom": "16.9.4", "@types/reactstrap": "8.0.6", "typescript": "3.7.3" From 23e44b29409e8ef0c1dd53b5d232461262a2942b Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Wed, 11 Dec 2019 22:28:30 +0000 Subject: [PATCH 008/187] Update dependency Microsoft.NET.Sdk.Functions to v1.0.30 --- webhooks/React.Site.Hooks.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webhooks/React.Site.Hooks.csproj b/webhooks/React.Site.Hooks.csproj index a27f2b3d8..6f038b6c2 100644 --- a/webhooks/React.Site.Hooks.csproj +++ b/webhooks/React.Site.Hooks.csproj @@ -3,7 +3,7 @@ net461 - + From e982750921a529b3a5a40455ec8d18b503fa7c20 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 12 Dec 2019 22:54:33 +0000 Subject: [PATCH 009/187] Update dependency Microsoft.NET.Sdk.Functions to v1.0.31 --- webhooks/React.Site.Hooks.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webhooks/React.Site.Hooks.csproj b/webhooks/React.Site.Hooks.csproj index 6f038b6c2..7c495bc79 100644 --- a/webhooks/React.Site.Hooks.csproj +++ b/webhooks/React.Site.Hooks.csproj @@ -3,7 +3,7 @@ net461 - + From e38000a12525804fc6d6db286d3fc2095439f9e9 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 16 Dec 2019 09:46:14 +0000 Subject: [PATCH 010/187] Update dependency webpack to v4.41.3 --- .../Resources/babel-legacy/package-lock.json | 190 +++++++++-------- .../Resources/babel-legacy/package.json | 2 +- src/React.Core/package-lock.json | 196 ++++++++++-------- src/React.Core/package.json | 2 +- .../package-lock.json | 190 +++++++++-------- src/React.Sample.Webpack.CoreMvc/package.json | 2 +- 6 files changed, 318 insertions(+), 264 deletions(-) diff --git a/src/React.Core/Resources/babel-legacy/package-lock.json b/src/React.Core/Resources/babel-legacy/package-lock.json index 4775e9ae1..f92db1757 100644 --- a/src/React.Core/Resources/babel-legacy/package-lock.json +++ b/src/React.Core/Resources/babel-legacy/package-lock.json @@ -193,9 +193,9 @@ "dev": true }, "acorn": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz", - "integrity": "sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.0.tgz", + "integrity": "sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==", "dev": true }, "ajv": { @@ -1399,10 +1399,20 @@ "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, "bluebird": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.1.tgz", - "integrity": "sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg==", + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", "dev": true }, "bn.js": { @@ -1528,9 +1538,9 @@ } }, "buffer": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", "dev": true, "requires": { "base64-js": "^1.0.2", @@ -1765,13 +1775,10 @@ } }, "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true, - "requires": { - "date-now": "^0.1.4" - } + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true }, "constants-browserify": { "version": "1.0.0", @@ -1895,12 +1902,6 @@ "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", "dev": true }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true - }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -1964,9 +1965,9 @@ } }, "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", "dev": true, "requires": { "inherits": "^2.0.1", @@ -2018,9 +2019,9 @@ } }, "elliptic": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.1.tgz", - "integrity": "sha512-xvJINNLbTeWQjrl6X+7eQCrIy/YPv5XCpKW6kB5mKvtnGILoLDcySuwomfdzt0BMdLNVnuRNTuzKNHj0bva1Cg==", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz", + "integrity": "sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==", "dev": true, "requires": { "bn.js": "^4.4.0", @@ -2278,9 +2279,9 @@ "dev": true }, "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "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==", "dev": true }, "figgy-pudding": { @@ -2289,6 +2290,13 @@ "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", "dev": true }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -2398,14 +2406,15 @@ "dev": true }, "fsevents": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", - "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz", + "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==", "dev": true, "optional": true, "requires": { + "bindings": "^1.5.0", "nan": "^2.12.1", - "node-pre-gyp": "^0.12.0" + "node-pre-gyp": "*" }, "dependencies": { "abbrev": { @@ -2453,7 +2462,7 @@ } }, "chownr": { - "version": "1.1.1", + "version": "1.1.3", "bundled": true, "dev": true, "optional": true @@ -2483,7 +2492,7 @@ "optional": true }, "debug": { - "version": "4.1.1", + "version": "3.2.6", "bundled": true, "dev": true, "optional": true, @@ -2510,12 +2519,12 @@ "optional": true }, "fs-minipass": { - "version": "1.2.5", + "version": "1.2.7", "bundled": true, "dev": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "^2.6.0" } }, "fs.realpath": { @@ -2541,7 +2550,7 @@ } }, "glob": { - "version": "7.1.3", + "version": "7.1.6", "bundled": true, "dev": true, "optional": true, @@ -2570,7 +2579,7 @@ } }, "ignore-walk": { - "version": "3.0.1", + "version": "3.0.3", "bundled": true, "dev": true, "optional": true, @@ -2589,7 +2598,7 @@ } }, "inherits": { - "version": "2.0.3", + "version": "2.0.4", "bundled": true, "dev": true, "optional": true @@ -2631,7 +2640,7 @@ "optional": true }, "minipass": { - "version": "2.3.5", + "version": "2.9.0", "bundled": true, "dev": true, "optional": true, @@ -2641,12 +2650,12 @@ } }, "minizlib": { - "version": "1.2.1", + "version": "1.3.3", "bundled": true, "dev": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "^2.9.0" } }, "mkdirp": { @@ -2659,24 +2668,24 @@ } }, "ms": { - "version": "2.1.1", + "version": "2.1.2", "bundled": true, "dev": true, "optional": true }, "needle": { - "version": "2.3.0", + "version": "2.4.0", "bundled": true, "dev": true, "optional": true, "requires": { - "debug": "^4.1.0", + "debug": "^3.2.6", "iconv-lite": "^0.4.4", "sax": "^1.2.4" } }, "node-pre-gyp": { - "version": "0.12.0", + "version": "0.14.0", "bundled": true, "dev": true, "optional": true, @@ -2690,7 +2699,7 @@ "rc": "^1.2.7", "rimraf": "^2.6.1", "semver": "^5.3.0", - "tar": "^4" + "tar": "^4.4.2" } }, "nopt": { @@ -2704,13 +2713,22 @@ } }, "npm-bundled": { - "version": "1.0.6", + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", "bundled": true, "dev": true, "optional": true }, "npm-packlist": { - "version": "1.4.1", + "version": "1.4.7", "bundled": true, "dev": true, "optional": true, @@ -2781,7 +2799,7 @@ "optional": true }, "process-nextick-args": { - "version": "2.0.0", + "version": "2.0.1", "bundled": true, "dev": true, "optional": true @@ -2822,7 +2840,7 @@ } }, "rimraf": { - "version": "2.6.3", + "version": "2.7.1", "bundled": true, "dev": true, "optional": true, @@ -2849,7 +2867,7 @@ "optional": true }, "semver": { - "version": "5.7.0", + "version": "5.7.1", "bundled": true, "dev": true, "optional": true @@ -2902,18 +2920,18 @@ "optional": true }, "tar": { - "version": "4.4.8", + "version": "4.4.13", "bundled": true, "dev": true, "optional": true, "requires": { "chownr": "^1.1.1", "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", "mkdirp": "^0.5.0", "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" + "yallist": "^3.0.3" } }, "util-deprecate": { @@ -2938,7 +2956,7 @@ "optional": true }, "yallist": { - "version": "3.0.3", + "version": "3.1.1", "bundled": true, "dev": true, "optional": true @@ -2967,9 +2985,9 @@ "dev": true }, "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -4419,9 +4437,9 @@ "dev": true }, "serialize-javascript": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz", - "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", + "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==", "dev": true }, "set-blocking": { @@ -4629,9 +4647,9 @@ } }, "source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", + "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -4725,9 +4743,9 @@ } }, "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", "dev": true }, "string-width": { @@ -4781,9 +4799,9 @@ "dev": true }, "terser": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.3.8.tgz", - "integrity": "sha512-otmIRlRVmLChAWsnSFNO0Bfk6YySuBp6G9qrHiJwlLDd4mxe2ta4sjI7TzIR+W1nBMjilzrMcPOz9pSusgx3hQ==", + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.4.2.tgz", + "integrity": "sha512-Uufrsvhj9O1ikwgITGsZ5EZS6qPokUOkCegS7fYOdGTv+OA90vndUbU6PEjr5ePqHfNUbGyMO7xyIZv2MhsALQ==", "dev": true, "requires": { "commander": "^2.20.0", @@ -4800,16 +4818,16 @@ } }, "terser-webpack-plugin": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz", - "integrity": "sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz", + "integrity": "sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA==", "dev": true, "requires": { "cacache": "^12.0.2", "find-cache-dir": "^2.1.0", "is-wsl": "^1.1.0", "schema-utils": "^1.0.0", - "serialize-javascript": "^1.7.0", + "serialize-javascript": "^2.1.2", "source-map": "^0.6.1", "terser": "^4.1.2", "webpack-sources": "^1.4.0", @@ -5081,9 +5099,9 @@ "dev": true }, "vm-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", - "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", "dev": true }, "watchpack": { @@ -5098,9 +5116,9 @@ } }, "webpack": { - "version": "4.41.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.2.tgz", - "integrity": "sha512-Zhw69edTGfbz9/8JJoyRQ/pq8FYUoY0diOXqW0T6yhgdhCv6wr0hra5DwwWexNRns2Z2+gsnrNcbe9hbGBgk/A==", + "version": "4.41.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.3.tgz", + "integrity": "sha512-EcNzP9jGoxpQAXq1VOoTet0ik7/VVU1MovIfcUSAjLowc7GhcQku/sOXALvq5nPpSei2HF6VRhibeJSC3i/Law==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", @@ -5123,7 +5141,7 @@ "node-libs-browser": "^2.2.1", "schema-utils": "^1.0.0", "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.1", + "terser-webpack-plugin": "^1.4.3", "watchpack": "^1.6.0", "webpack-sources": "^1.4.1" }, diff --git a/src/React.Core/Resources/babel-legacy/package.json b/src/React.Core/Resources/babel-legacy/package.json index 6261e5541..c795ec60d 100644 --- a/src/React.Core/Resources/babel-legacy/package.json +++ b/src/React.Core/Resources/babel-legacy/package.json @@ -12,7 +12,7 @@ "babel-preset-es2015": "6.24.1", "babel-preset-stage-0": "6.24.1", "babel-standalone": "6.26.0", - "webpack": "4.41.2", + "webpack": "4.41.3", "webpack-cli": "3.3.10" }, "author": "", diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index d95050647..c897f5306 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -380,9 +380,9 @@ "dev": true }, "acorn": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz", - "integrity": "sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.0.tgz", + "integrity": "sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==", "dev": true }, "ajv": { @@ -610,10 +610,20 @@ "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, "bluebird": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.1.tgz", - "integrity": "sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg==", + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", "dev": true }, "bn.js": { @@ -747,9 +757,9 @@ } }, "buffer": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", "dev": true, "requires": { "base64-js": "^1.0.2", @@ -973,13 +983,10 @@ } }, "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true, - "requires": { - "date-now": "^0.1.4" - } + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true }, "constants-browserify": { "version": "1.0.0", @@ -1097,12 +1104,6 @@ "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", "dev": true }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true - }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -1166,9 +1167,9 @@ } }, "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", "dev": true, "requires": { "inherits": "^2.0.1", @@ -1211,9 +1212,9 @@ } }, "elliptic": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.1.tgz", - "integrity": "sha512-xvJINNLbTeWQjrl6X+7eQCrIy/YPv5XCpKW6kB5mKvtnGILoLDcySuwomfdzt0BMdLNVnuRNTuzKNHj0bva1Cg==", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz", + "integrity": "sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==", "dev": true, "requires": { "bn.js": "^4.4.0", @@ -1536,9 +1537,9 @@ "dev": true }, "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "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==", "dev": true }, "figgy-pudding": { @@ -1547,6 +1548,13 @@ "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", "dev": true }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -1656,14 +1664,15 @@ "dev": true }, "fsevents": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", - "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz", + "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==", "dev": true, "optional": true, "requires": { + "bindings": "^1.5.0", "nan": "^2.12.1", - "node-pre-gyp": "^0.12.0" + "node-pre-gyp": "*" }, "dependencies": { "abbrev": { @@ -1711,7 +1720,7 @@ } }, "chownr": { - "version": "1.1.1", + "version": "1.1.3", "bundled": true, "dev": true, "optional": true @@ -1741,7 +1750,7 @@ "optional": true }, "debug": { - "version": "4.1.1", + "version": "3.2.6", "bundled": true, "dev": true, "optional": true, @@ -1768,12 +1777,12 @@ "optional": true }, "fs-minipass": { - "version": "1.2.5", + "version": "1.2.7", "bundled": true, "dev": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "^2.6.0" } }, "fs.realpath": { @@ -1799,7 +1808,7 @@ } }, "glob": { - "version": "7.1.3", + "version": "7.1.6", "bundled": true, "dev": true, "optional": true, @@ -1828,7 +1837,7 @@ } }, "ignore-walk": { - "version": "3.0.1", + "version": "3.0.3", "bundled": true, "dev": true, "optional": true, @@ -1847,7 +1856,7 @@ } }, "inherits": { - "version": "2.0.3", + "version": "2.0.4", "bundled": true, "dev": true, "optional": true @@ -1889,7 +1898,7 @@ "optional": true }, "minipass": { - "version": "2.3.5", + "version": "2.9.0", "bundled": true, "dev": true, "optional": true, @@ -1899,12 +1908,12 @@ } }, "minizlib": { - "version": "1.2.1", + "version": "1.3.3", "bundled": true, "dev": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "^2.9.0" } }, "mkdirp": { @@ -1917,24 +1926,24 @@ } }, "ms": { - "version": "2.1.1", + "version": "2.1.2", "bundled": true, "dev": true, "optional": true }, "needle": { - "version": "2.3.0", + "version": "2.4.0", "bundled": true, "dev": true, "optional": true, "requires": { - "debug": "^4.1.0", + "debug": "^3.2.6", "iconv-lite": "^0.4.4", "sax": "^1.2.4" } }, "node-pre-gyp": { - "version": "0.12.0", + "version": "0.14.0", "bundled": true, "dev": true, "optional": true, @@ -1948,7 +1957,7 @@ "rc": "^1.2.7", "rimraf": "^2.6.1", "semver": "^5.3.0", - "tar": "^4" + "tar": "^4.4.2" } }, "nopt": { @@ -1962,13 +1971,22 @@ } }, "npm-bundled": { - "version": "1.0.6", + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", "bundled": true, "dev": true, "optional": true }, "npm-packlist": { - "version": "1.4.1", + "version": "1.4.7", "bundled": true, "dev": true, "optional": true, @@ -2039,7 +2057,7 @@ "optional": true }, "process-nextick-args": { - "version": "2.0.0", + "version": "2.0.1", "bundled": true, "dev": true, "optional": true @@ -2080,7 +2098,7 @@ } }, "rimraf": { - "version": "2.6.3", + "version": "2.7.1", "bundled": true, "dev": true, "optional": true, @@ -2107,7 +2125,7 @@ "optional": true }, "semver": { - "version": "5.7.0", + "version": "5.7.1", "bundled": true, "dev": true, "optional": true @@ -2160,18 +2178,18 @@ "optional": true }, "tar": { - "version": "4.4.8", + "version": "4.4.13", "bundled": true, "dev": true, "optional": true, "requires": { "chownr": "^1.1.1", "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", "mkdirp": "^0.5.0", "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" + "yallist": "^3.0.3" } }, "util-deprecate": { @@ -2196,7 +2214,7 @@ "optional": true }, "yallist": { - "version": "3.0.3", + "version": "3.1.1", "bundled": true, "dev": true, "optional": true @@ -2225,9 +2243,9 @@ "dev": true }, "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -2301,9 +2319,9 @@ "dev": true }, "graceful-fs": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz", - "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", "dev": true }, "has-flag": { @@ -3673,9 +3691,9 @@ "dev": true }, "serialize-javascript": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz", - "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", + "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==", "dev": true }, "set-blocking": { @@ -3877,9 +3895,9 @@ } }, "source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", + "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -3973,9 +3991,9 @@ } }, "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", "dev": true }, "string-width": { @@ -4029,9 +4047,9 @@ "dev": true }, "terser": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.3.8.tgz", - "integrity": "sha512-otmIRlRVmLChAWsnSFNO0Bfk6YySuBp6G9qrHiJwlLDd4mxe2ta4sjI7TzIR+W1nBMjilzrMcPOz9pSusgx3hQ==", + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.4.2.tgz", + "integrity": "sha512-Uufrsvhj9O1ikwgITGsZ5EZS6qPokUOkCegS7fYOdGTv+OA90vndUbU6PEjr5ePqHfNUbGyMO7xyIZv2MhsALQ==", "dev": true, "requires": { "commander": "^2.20.0", @@ -4048,16 +4066,16 @@ } }, "terser-webpack-plugin": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz", - "integrity": "sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz", + "integrity": "sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA==", "dev": true, "requires": { "cacache": "^12.0.2", "find-cache-dir": "^2.1.0", "is-wsl": "^1.1.0", "schema-utils": "^1.0.0", - "serialize-javascript": "^1.7.0", + "serialize-javascript": "^2.1.2", "source-map": "^0.6.1", "terser": "^4.1.2", "webpack-sources": "^1.4.0", @@ -4306,9 +4324,9 @@ "dev": true }, "vm-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", - "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", "dev": true }, "watchpack": { @@ -4323,9 +4341,9 @@ } }, "webpack": { - "version": "4.41.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.2.tgz", - "integrity": "sha512-Zhw69edTGfbz9/8JJoyRQ/pq8FYUoY0diOXqW0T6yhgdhCv6wr0hra5DwwWexNRns2Z2+gsnrNcbe9hbGBgk/A==", + "version": "4.41.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.3.tgz", + "integrity": "sha512-EcNzP9jGoxpQAXq1VOoTet0ik7/VVU1MovIfcUSAjLowc7GhcQku/sOXALvq5nPpSei2HF6VRhibeJSC3i/Law==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", @@ -4348,7 +4366,7 @@ "node-libs-browser": "^2.2.1", "schema-utils": "^1.0.0", "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.1", + "terser-webpack-plugin": "^1.4.3", "watchpack": "^1.6.0", "webpack-sources": "^1.4.1" }, diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 958cf90bb..f1931ff44 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -11,7 +11,7 @@ "prop-types": "15.7.2", "react": "16.12.0", "react-dom": "16.12.0", - "webpack": "4.41.2", + "webpack": "4.41.3", "webpack-cli": "3.3.10" } } diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index e4dd59b3b..9300a3528 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -1756,9 +1756,9 @@ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "acorn": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz", - "integrity": "sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.0.tgz", + "integrity": "sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==", "dev": true }, "ajv": { @@ -2082,10 +2082,20 @@ "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, "bluebird": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.1.tgz", - "integrity": "sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg==", + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", "dev": true }, "bn.js": { @@ -2235,9 +2245,9 @@ } }, "buffer": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", "dev": true, "requires": { "base64-js": "^1.0.2", @@ -2492,13 +2502,10 @@ } }, "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true, - "requires": { - "date-now": "^0.1.4" - } + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true }, "constants-browserify": { "version": "1.0.0", @@ -2725,12 +2732,6 @@ "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", "dev": true }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true - }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -2816,9 +2817,9 @@ } }, "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", "dev": true, "requires": { "inherits": "^2.0.1", @@ -2883,9 +2884,9 @@ "dev": true }, "elliptic": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.1.tgz", - "integrity": "sha512-xvJINNLbTeWQjrl6X+7eQCrIy/YPv5XCpKW6kB5mKvtnGILoLDcySuwomfdzt0BMdLNVnuRNTuzKNHj0bva1Cg==", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz", + "integrity": "sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==", "dev": true, "requires": { "bn.js": "^4.4.0", @@ -3184,9 +3185,9 @@ "dev": true }, "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "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==", "dev": true }, "fbjs": { @@ -3216,6 +3217,13 @@ "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", "dev": true }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -3368,14 +3376,15 @@ "dev": true }, "fsevents": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", - "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz", + "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==", "dev": true, "optional": true, "requires": { + "bindings": "^1.5.0", "nan": "^2.12.1", - "node-pre-gyp": "^0.12.0" + "node-pre-gyp": "*" }, "dependencies": { "abbrev": { @@ -3423,7 +3432,7 @@ } }, "chownr": { - "version": "1.1.1", + "version": "1.1.3", "bundled": true, "dev": true, "optional": true @@ -3453,7 +3462,7 @@ "optional": true }, "debug": { - "version": "4.1.1", + "version": "3.2.6", "bundled": true, "dev": true, "optional": true, @@ -3480,12 +3489,12 @@ "optional": true }, "fs-minipass": { - "version": "1.2.5", + "version": "1.2.7", "bundled": true, "dev": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "^2.6.0" } }, "fs.realpath": { @@ -3511,7 +3520,7 @@ } }, "glob": { - "version": "7.1.3", + "version": "7.1.6", "bundled": true, "dev": true, "optional": true, @@ -3540,7 +3549,7 @@ } }, "ignore-walk": { - "version": "3.0.1", + "version": "3.0.3", "bundled": true, "dev": true, "optional": true, @@ -3559,7 +3568,7 @@ } }, "inherits": { - "version": "2.0.3", + "version": "2.0.4", "bundled": true, "dev": true, "optional": true @@ -3601,7 +3610,7 @@ "optional": true }, "minipass": { - "version": "2.3.5", + "version": "2.9.0", "bundled": true, "dev": true, "optional": true, @@ -3611,12 +3620,12 @@ } }, "minizlib": { - "version": "1.2.1", + "version": "1.3.3", "bundled": true, "dev": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "^2.9.0" } }, "mkdirp": { @@ -3629,24 +3638,24 @@ } }, "ms": { - "version": "2.1.1", + "version": "2.1.2", "bundled": true, "dev": true, "optional": true }, "needle": { - "version": "2.3.0", + "version": "2.4.0", "bundled": true, "dev": true, "optional": true, "requires": { - "debug": "^4.1.0", + "debug": "^3.2.6", "iconv-lite": "^0.4.4", "sax": "^1.2.4" } }, "node-pre-gyp": { - "version": "0.12.0", + "version": "0.14.0", "bundled": true, "dev": true, "optional": true, @@ -3660,7 +3669,7 @@ "rc": "^1.2.7", "rimraf": "^2.6.1", "semver": "^5.3.0", - "tar": "^4" + "tar": "^4.4.2" } }, "nopt": { @@ -3674,13 +3683,22 @@ } }, "npm-bundled": { - "version": "1.0.6", + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", "bundled": true, "dev": true, "optional": true }, "npm-packlist": { - "version": "1.4.1", + "version": "1.4.7", "bundled": true, "dev": true, "optional": true, @@ -3751,7 +3769,7 @@ "optional": true }, "process-nextick-args": { - "version": "2.0.0", + "version": "2.0.1", "bundled": true, "dev": true, "optional": true @@ -3792,7 +3810,7 @@ } }, "rimraf": { - "version": "2.6.3", + "version": "2.7.1", "bundled": true, "dev": true, "optional": true, @@ -3819,7 +3837,7 @@ "optional": true }, "semver": { - "version": "5.7.0", + "version": "5.7.1", "bundled": true, "dev": true, "optional": true @@ -3872,18 +3890,18 @@ "optional": true }, "tar": { - "version": "4.4.8", + "version": "4.4.13", "bundled": true, "dev": true, "optional": true, "requires": { "chownr": "^1.1.1", "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", "mkdirp": "^0.5.0", "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" + "yallist": "^3.0.3" } }, "util-deprecate": { @@ -3908,7 +3926,7 @@ "optional": true }, "yallist": { - "version": "3.0.3", + "version": "3.1.1", "bundled": true, "dev": true, "optional": true @@ -3943,9 +3961,9 @@ "dev": true }, "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -6132,9 +6150,9 @@ "dev": true }, "serialize-javascript": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz", - "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", + "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==", "dev": true }, "set-blocking": { @@ -6339,9 +6357,9 @@ } }, "source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", + "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -6484,9 +6502,9 @@ } }, "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", "dev": true }, "string-width": { @@ -6591,9 +6609,9 @@ "dev": true }, "terser": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.3.8.tgz", - "integrity": "sha512-otmIRlRVmLChAWsnSFNO0Bfk6YySuBp6G9qrHiJwlLDd4mxe2ta4sjI7TzIR+W1nBMjilzrMcPOz9pSusgx3hQ==", + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.4.2.tgz", + "integrity": "sha512-Uufrsvhj9O1ikwgITGsZ5EZS6qPokUOkCegS7fYOdGTv+OA90vndUbU6PEjr5ePqHfNUbGyMO7xyIZv2MhsALQ==", "dev": true, "requires": { "commander": "^2.20.0", @@ -6610,16 +6628,16 @@ } }, "terser-webpack-plugin": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz", - "integrity": "sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz", + "integrity": "sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA==", "dev": true, "requires": { "cacache": "^12.0.2", "find-cache-dir": "^2.1.0", "is-wsl": "^1.1.0", "schema-utils": "^1.0.0", - "serialize-javascript": "^1.7.0", + "serialize-javascript": "^2.1.2", "source-map": "^0.6.1", "terser": "^4.1.2", "webpack-sources": "^1.4.0", @@ -7002,9 +7020,9 @@ "integrity": "sha512-x+cYdNnaA3CxvMaTX0INdTCN8m8aF2uY9BvEqmxuYp8bL09cs/kWVQPVGcA35fMktdOsP69IgU7wFj/61dJHEw==" }, "vm-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", - "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", "dev": true }, "warning": { @@ -7027,9 +7045,9 @@ } }, "webpack": { - "version": "4.41.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.2.tgz", - "integrity": "sha512-Zhw69edTGfbz9/8JJoyRQ/pq8FYUoY0diOXqW0T6yhgdhCv6wr0hra5DwwWexNRns2Z2+gsnrNcbe9hbGBgk/A==", + "version": "4.41.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.3.tgz", + "integrity": "sha512-EcNzP9jGoxpQAXq1VOoTet0ik7/VVU1MovIfcUSAjLowc7GhcQku/sOXALvq5nPpSei2HF6VRhibeJSC3i/Law==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", @@ -7052,7 +7070,7 @@ "node-libs-browser": "^2.2.1", "schema-utils": "^1.0.0", "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.1", + "terser-webpack-plugin": "^1.4.3", "watchpack": "^1.6.0", "webpack-sources": "^1.4.1" }, diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index eb9be01d2..20a1e81dd 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -28,7 +28,7 @@ "@babel/preset-react": "7.7.4", "babel-loader": "8.0.6", "babel-runtime": "6.26.0", - "webpack": "4.41.2", + "webpack": "4.41.3", "webpack-cli": "3.3.10" } } From 9fc49a1948272a0c9aca6529e003280ff12e14a3 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 19 Dec 2019 01:05:06 +0000 Subject: [PATCH 011/187] Update babel monorepo to v7.7.7 --- src/React.Core/package-lock.json | 28 ++--- src/React.Core/package.json | 2 +- .../package-lock.json | 102 ++++++++++-------- src/React.Sample.Webpack.CoreMvc/package.json | 6 +- 4 files changed, 75 insertions(+), 63 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index c897f5306..38773a71e 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -14,15 +14,15 @@ } }, "@babel/core": { - "version": "7.7.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.5.tgz", - "integrity": "sha512-M42+ScN4+1S9iB6f+TL7QBpoQETxbclx+KNoKJABghnKYE+fMzSGqst0BZJc8CpI625bwPwYgUyRvxZ+0mZzpw==", + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.7.tgz", + "integrity": "sha512-jlSjuj/7z138NLZALxVgrx13AOtqip42ATZP7+kYl53GvDV6+4dCek1mVUo8z8c8Xnw/mx2q3d9HWh3griuesQ==", "dev": true, "requires": { "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.4", + "@babel/generator": "^7.7.7", "@babel/helpers": "^7.7.4", - "@babel/parser": "^7.7.5", + "@babel/parser": "^7.7.7", "@babel/template": "^7.7.4", "@babel/traverse": "^7.7.4", "@babel/types": "^7.7.4", @@ -53,9 +53,9 @@ } }, "@babel/generator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.4.tgz", - "integrity": "sha512-m5qo2WgdOJeyYngKImbkyQrnUN1mPceaG5BV+G0E3gWsa4l/jCSryWJdM2x8OuGAOyh+3d5pVYfZWCiNFtynxg==", + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.7.tgz", + "integrity": "sha512-/AOIBpHh/JU1l0ZFS4kiRCBnLi6OTHzh0RPk3h9isBxkkqELtQNFi1Vr/tiG9p1yfoUdKVwISuXWQR+hwwM4VQ==", "dev": true, "requires": { "@babel/types": "^7.7.4", @@ -124,9 +124,9 @@ } }, "@babel/parser": { - "version": "7.7.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.5.tgz", - "integrity": "sha512-KNlOe9+/nk4i29g0VXgl8PEXIRms5xKLJeuZ6UptN0fHv+jDiriG+y94X6qAgWTR0h3KaoM1wK5G5h7MHFRSig==", + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.7.tgz", + "integrity": "sha512-WtTZMZAZLbeymhkd/sEaPD8IQyGAhmuTuvTzLiCFM7iXiVdY0gc0IaI+cW0fh1BnSMbJSzXX6/fHllgHKwHhXw==", "dev": true }, "@babel/standalone": { @@ -3562,9 +3562,9 @@ "dev": true }, "resolve": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.13.1.tgz", - "integrity": "sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.0.tgz", + "integrity": "sha512-uviWSi5N67j3t3UKFxej1loCH0VZn5XuqdNxoLShPcYPw6cUZn74K1VRj+9myynRX03bxIBEkwlkob/ujLsJVw==", "dev": true, "requires": { "path-parse": "^1.0.6" diff --git a/src/React.Core/package.json b/src/React.Core/package.json index f1931ff44..1495ef12f 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -6,7 +6,7 @@ "build": "webpack" }, "devDependencies": { - "@babel/core": "7.7.5", + "@babel/core": "7.7.7", "@babel/standalone": "7.7.6", "prop-types": "15.7.2", "react": "16.12.0", diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index 9300a3528..81dc83451 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -14,15 +14,15 @@ } }, "@babel/core": { - "version": "7.7.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.5.tgz", - "integrity": "sha512-M42+ScN4+1S9iB6f+TL7QBpoQETxbclx+KNoKJABghnKYE+fMzSGqst0BZJc8CpI625bwPwYgUyRvxZ+0mZzpw==", + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.7.tgz", + "integrity": "sha512-jlSjuj/7z138NLZALxVgrx13AOtqip42ATZP7+kYl53GvDV6+4dCek1mVUo8z8c8Xnw/mx2q3d9HWh3griuesQ==", "dev": true, "requires": { "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.4", + "@babel/generator": "^7.7.7", "@babel/helpers": "^7.7.4", - "@babel/parser": "^7.7.5", + "@babel/parser": "^7.7.7", "@babel/template": "^7.7.4", "@babel/traverse": "^7.7.4", "@babel/types": "^7.7.4", @@ -35,10 +35,22 @@ "source-map": "^0.5.0" }, "dependencies": { + "@babel/generator": { + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.7.tgz", + "integrity": "sha512-/AOIBpHh/JU1l0ZFS4kiRCBnLi6OTHzh0RPk3h9isBxkkqELtQNFi1Vr/tiG9p1yfoUdKVwISuXWQR+hwwM4VQ==", + "dev": true, + "requires": { + "@babel/types": "^7.7.4", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, "@babel/parser": { - "version": "7.7.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.5.tgz", - "integrity": "sha512-KNlOe9+/nk4i29g0VXgl8PEXIRms5xKLJeuZ6UptN0fHv+jDiriG+y94X6qAgWTR0h3KaoM1wK5G5h7MHFRSig==", + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.7.tgz", + "integrity": "sha512-WtTZMZAZLbeymhkd/sEaPD8IQyGAhmuTuvTzLiCFM7iXiVdY0gc0IaI+cW0fh1BnSMbJSzXX6/fHllgHKwHhXw==", "dev": true }, "@babel/types": { @@ -659,9 +671,9 @@ } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.7.4.tgz", - "integrity": "sha512-rnpnZR3/iWKmiQyJ3LKJpSwLDcX/nSXhdLk4Aq/tXOApIvyu7qoabrige0ylsAJffaUC51WiBu209Q0U+86OWQ==", + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.7.7.tgz", + "integrity": "sha512-3qp9I8lelgzNedI3hrhkvhaEYree6+WHnyA/q4Dza9z7iEIs1eyhWyJnetk3jJ69RT0AT4G0UhEGwyGFJ7GUuQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", @@ -679,9 +691,9 @@ } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.4.tgz", - "integrity": "sha512-cHgqHgYvffluZk85dJ02vloErm3Y6xtH+2noOBOJ2kXOJH3aVCDnj5eR/lVNlTnYu4hndAPJD3rTFjW3qee0PA==", + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.7.tgz", + "integrity": "sha512-80PbkKyORBUVm1fbTLrHpYdJxMThzM1UqFGh0ALEhO9TYbG86Ah9zQYAB/84axz2vcxefDLdZwWwZNlYARlu9w==", "dev": true, "requires": { "@babel/helper-create-regexp-features-plugin": "^7.7.4", @@ -869,9 +881,9 @@ } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.4.tgz", - "integrity": "sha512-mk0cH1zyMa/XHeb6LOTXTbG7uIJ8Rrjlzu91pUx/KS3JpcgaTDwMS8kM+ar8SLOvlL2Lofi4CGBAjCo3a2x+lw==", + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.7.tgz", + "integrity": "sha512-b4in+YlTeE/QmTgrllnb3bHA0HntYvjz8O3Mcbx75UBPJA2xhb5A8nle498VhxSXJHQefjtQxpnLPehDJ4TRlg==", "dev": true, "requires": { "@babel/helper-create-regexp-features-plugin": "^7.7.4", @@ -1007,9 +1019,9 @@ } }, "@babel/plugin-transform-parameters": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.7.4.tgz", - "integrity": "sha512-VJwhVePWPa0DqE9vcfptaJSzNDKrWU/4FbYCjZERtmqEs05g3UMXnYMZoXja7JAJ7Y7sPZipwm/pGApZt7wHlw==", + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.7.7.tgz", + "integrity": "sha512-OhGSrf9ZBrr1fw84oFXj5hgi8Nmg+E2w5L7NhnG0lPvpDtqd7dbyilM2/vR8CKbJ907RyxPh2kj6sBCSSfI9Ew==", "dev": true, "requires": { "@babel/helper-call-delegate": "^7.7.4", @@ -1164,9 +1176,9 @@ } }, "@babel/preset-env": { - "version": "7.7.6", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.7.6.tgz", - "integrity": "sha512-k5hO17iF/Q7tR9Jv8PdNBZWYW6RofxhnxKjBMc0nG4JTaWvOTiPoO/RLFwAKcA4FpmuBFm6jkoqaRJLGi0zdaQ==", + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.7.7.tgz", + "integrity": "sha512-pCu0hrSSDVI7kCVUOdcMNQEbOPJ52E+LrQ14sN8uL2ALfSqePZQlKrOy+tM4uhEdYlCHi4imr8Zz2cZe9oSdIg==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.7.4", @@ -1174,9 +1186,9 @@ "@babel/plugin-proposal-async-generator-functions": "^7.7.4", "@babel/plugin-proposal-dynamic-import": "^7.7.4", "@babel/plugin-proposal-json-strings": "^7.7.4", - "@babel/plugin-proposal-object-rest-spread": "^7.7.4", + "@babel/plugin-proposal-object-rest-spread": "^7.7.7", "@babel/plugin-proposal-optional-catch-binding": "^7.7.4", - "@babel/plugin-proposal-unicode-property-regex": "^7.7.4", + "@babel/plugin-proposal-unicode-property-regex": "^7.7.7", "@babel/plugin-syntax-async-generators": "^7.7.4", "@babel/plugin-syntax-dynamic-import": "^7.7.4", "@babel/plugin-syntax-json-strings": "^7.7.4", @@ -1190,7 +1202,7 @@ "@babel/plugin-transform-classes": "^7.7.4", "@babel/plugin-transform-computed-properties": "^7.7.4", "@babel/plugin-transform-destructuring": "^7.7.4", - "@babel/plugin-transform-dotall-regex": "^7.7.4", + "@babel/plugin-transform-dotall-regex": "^7.7.7", "@babel/plugin-transform-duplicate-keys": "^7.7.4", "@babel/plugin-transform-exponentiation-operator": "^7.7.4", "@babel/plugin-transform-for-of": "^7.7.4", @@ -1204,7 +1216,7 @@ "@babel/plugin-transform-named-capturing-groups-regex": "^7.7.4", "@babel/plugin-transform-new-target": "^7.7.4", "@babel/plugin-transform-object-super": "^7.7.4", - "@babel/plugin-transform-parameters": "^7.7.4", + "@babel/plugin-transform-parameters": "^7.7.7", "@babel/plugin-transform-property-literals": "^7.7.4", "@babel/plugin-transform-regenerator": "^7.7.5", "@babel/plugin-transform-reserved-words": "^7.7.4", @@ -1216,7 +1228,7 @@ "@babel/plugin-transform-unicode-regex": "^7.7.4", "@babel/types": "^7.7.4", "browserslist": "^4.6.0", - "core-js-compat": "^3.4.7", + "core-js-compat": "^3.6.0", "invariant": "^2.2.2", "js-levenshtein": "^1.1.3", "semver": "^5.5.0" @@ -2332,9 +2344,9 @@ "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=" }, "caniuse-lite": { - "version": "1.0.30001015", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001015.tgz", - "integrity": "sha512-/xL2AbW/XWHNu1gnIrO8UitBGoFthcsDgU9VLK1/dpsoxbaD5LscHozKze05R6WLsBvLhqv78dAPozMFQBYLbQ==", + "version": "1.0.30001016", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001016.tgz", + "integrity": "sha512-yYQ2QfotceRiH4U+h1Us86WJXtVHDmy3nEKIdYPsZCYnOV5/tMgGbmoIlrMzmh2VXlproqYtVaKeGDBkMZifFA==", "dev": true }, "chalk": { @@ -2545,19 +2557,19 @@ "dev": true }, "core-js-compat": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.4.7.tgz", - "integrity": "sha512-57+mgz/P/xsGdjwQYkwtBZR3LuISaxD1dEwVDtbk8xJMqAmwqaxLOvnNT7kdJ7jYE/NjNptyzXi+IQFMi/2fCw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.0.tgz", + "integrity": "sha512-Z3eCNjGgoYluH89Jt4wVkfYsc/VdLrA2/woX5lm0isO/pCT+P+Y+o65bOuEnjDJLthdwTBxbCVzptTXtc18fJg==", "dev": true, "requires": { - "browserslist": "^4.8.0", - "semver": "^6.3.0" + "browserslist": "^4.8.2", + "semver": "7.0.0" }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", "dev": true } } @@ -5054,9 +5066,9 @@ } }, "node-releases": { - "version": "1.1.42", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.42.tgz", - "integrity": "sha512-OQ/ESmUqGawI2PRX+XIRao44qWYBBfN54ImQYdWVTQqUckuejOg76ysSqDBK8NG3zwySRVnX36JwDQ6x+9GxzA==", + "version": "1.1.43", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.43.tgz", + "integrity": "sha512-Rmfnj52WNhvr83MvuAWHEqXVoZXCcDQssSOffU4n4XOL9sPrP61mSZ88g25NqmABDvH7PiAlFCzoSCSdzA293w==", "dev": true, "requires": { "semver": "^6.3.0" @@ -5972,9 +5984,9 @@ "dev": true }, "regjsparser": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", - "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.1.tgz", + "integrity": "sha512-7LutE94sz/NKSYegK+/4E77+8DipxF+Qn2Tmu362AcmsF2NYq/wx3+ObvU90TKEhjf7hQoFXo23ajjrXP7eUgg==", "dev": true, "requires": { "jsesc": "~0.5.0" diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index 20a1e81dd..49735a90e 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -20,11 +20,11 @@ "styled-components": "^4.0.0" }, "devDependencies": { - "@babel/core": "7.7.5", + "@babel/core": "7.7.7", "@babel/plugin-proposal-class-properties": "7.7.4", - "@babel/plugin-proposal-object-rest-spread": "7.7.4", + "@babel/plugin-proposal-object-rest-spread": "7.7.7", "@babel/plugin-syntax-dynamic-import": "7.7.4", - "@babel/preset-env": "7.7.6", + "@babel/preset-env": "7.7.7", "@babel/preset-react": "7.7.4", "babel-loader": "8.0.6", "babel-runtime": "6.26.0", From 4440c446b8cfb422272f46e567877f6dff85511d Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 19 Dec 2019 04:49:06 +0000 Subject: [PATCH 012/187] Update dependency @babel/standalone to v7.7.7 --- src/React.Core/package-lock.json | 6 +++--- src/React.Core/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 38773a71e..335490eea 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -130,9 +130,9 @@ "dev": true }, "@babel/standalone": { - "version": "7.7.6", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.7.6.tgz", - "integrity": "sha512-Th8rfO7jJQm9V+owCuhTrK1kXORlC6kyspz/L/Q5UhFvWZoZhEm2hVZVo7wbpmfbQzEbKn4MxZzoBu4nTz/Szw==", + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.7.7.tgz", + "integrity": "sha512-nlhwSzfCVWFxIfY0wL1DJkHyyDbqHNTldCAaAljzPHJ/ppYziziSoM0HJn919e54uUxtO3AAdp8CWqOn8CON/w==", "dev": true }, "@babel/template": { diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 1495ef12f..09caa1499 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -7,7 +7,7 @@ }, "devDependencies": { "@babel/core": "7.7.7", - "@babel/standalone": "7.7.6", + "@babel/standalone": "7.7.7", "prop-types": "15.7.2", "react": "16.12.0", "react-dom": "16.12.0", From 0631652dc512a3a38182d0ecf500730f2a075d61 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 19 Dec 2019 07:42:41 +0000 Subject: [PATCH 013/187] Update dependency webpack to v4.41.4 --- .../Resources/babel-legacy/package-lock.json | 12 ++++++------ src/React.Core/Resources/babel-legacy/package.json | 2 +- src/React.Core/package-lock.json | 12 ++++++------ src/React.Core/package.json | 2 +- src/React.Sample.Webpack.CoreMvc/package-lock.json | 12 ++++++------ src/React.Sample.Webpack.CoreMvc/package.json | 2 +- 6 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/React.Core/Resources/babel-legacy/package-lock.json b/src/React.Core/Resources/babel-legacy/package-lock.json index f92db1757..5fc41e424 100644 --- a/src/React.Core/Resources/babel-legacy/package-lock.json +++ b/src/React.Core/Resources/babel-legacy/package-lock.json @@ -4799,9 +4799,9 @@ "dev": true }, "terser": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.4.2.tgz", - "integrity": "sha512-Uufrsvhj9O1ikwgITGsZ5EZS6qPokUOkCegS7fYOdGTv+OA90vndUbU6PEjr5ePqHfNUbGyMO7xyIZv2MhsALQ==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.4.3.tgz", + "integrity": "sha512-0ikKraVtRDKGzHrzkCv5rUNDzqlhmhowOBqC0XqUHFpW+vJ45+20/IFBcebwKfiS2Z9fJin6Eo+F1zLZsxi8RA==", "dev": true, "requires": { "commander": "^2.20.0", @@ -5116,9 +5116,9 @@ } }, "webpack": { - "version": "4.41.3", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.3.tgz", - "integrity": "sha512-EcNzP9jGoxpQAXq1VOoTet0ik7/VVU1MovIfcUSAjLowc7GhcQku/sOXALvq5nPpSei2HF6VRhibeJSC3i/Law==", + "version": "4.41.4", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.4.tgz", + "integrity": "sha512-Lc+2uB6NjpCWsHI3trkoISOI64h9QYIXenbEWj3bn3oyjfB1lEBXjWAfAyY2sM0rZn41oD5V91OLwKRwS6Wp8Q==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", diff --git a/src/React.Core/Resources/babel-legacy/package.json b/src/React.Core/Resources/babel-legacy/package.json index c795ec60d..df338a7f3 100644 --- a/src/React.Core/Resources/babel-legacy/package.json +++ b/src/React.Core/Resources/babel-legacy/package.json @@ -12,7 +12,7 @@ "babel-preset-es2015": "6.24.1", "babel-preset-stage-0": "6.24.1", "babel-standalone": "6.26.0", - "webpack": "4.41.3", + "webpack": "4.41.4", "webpack-cli": "3.3.10" }, "author": "", diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 335490eea..f54c36e61 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -4047,9 +4047,9 @@ "dev": true }, "terser": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.4.2.tgz", - "integrity": "sha512-Uufrsvhj9O1ikwgITGsZ5EZS6qPokUOkCegS7fYOdGTv+OA90vndUbU6PEjr5ePqHfNUbGyMO7xyIZv2MhsALQ==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.4.3.tgz", + "integrity": "sha512-0ikKraVtRDKGzHrzkCv5rUNDzqlhmhowOBqC0XqUHFpW+vJ45+20/IFBcebwKfiS2Z9fJin6Eo+F1zLZsxi8RA==", "dev": true, "requires": { "commander": "^2.20.0", @@ -4341,9 +4341,9 @@ } }, "webpack": { - "version": "4.41.3", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.3.tgz", - "integrity": "sha512-EcNzP9jGoxpQAXq1VOoTet0ik7/VVU1MovIfcUSAjLowc7GhcQku/sOXALvq5nPpSei2HF6VRhibeJSC3i/Law==", + "version": "4.41.4", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.4.tgz", + "integrity": "sha512-Lc+2uB6NjpCWsHI3trkoISOI64h9QYIXenbEWj3bn3oyjfB1lEBXjWAfAyY2sM0rZn41oD5V91OLwKRwS6Wp8Q==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 09caa1499..10627b90a 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -11,7 +11,7 @@ "prop-types": "15.7.2", "react": "16.12.0", "react-dom": "16.12.0", - "webpack": "4.41.3", + "webpack": "4.41.4", "webpack-cli": "3.3.10" } } diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index 81dc83451..f9f4b55e2 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -6621,9 +6621,9 @@ "dev": true }, "terser": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.4.2.tgz", - "integrity": "sha512-Uufrsvhj9O1ikwgITGsZ5EZS6qPokUOkCegS7fYOdGTv+OA90vndUbU6PEjr5ePqHfNUbGyMO7xyIZv2MhsALQ==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.4.3.tgz", + "integrity": "sha512-0ikKraVtRDKGzHrzkCv5rUNDzqlhmhowOBqC0XqUHFpW+vJ45+20/IFBcebwKfiS2Z9fJin6Eo+F1zLZsxi8RA==", "dev": true, "requires": { "commander": "^2.20.0", @@ -7057,9 +7057,9 @@ } }, "webpack": { - "version": "4.41.3", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.3.tgz", - "integrity": "sha512-EcNzP9jGoxpQAXq1VOoTet0ik7/VVU1MovIfcUSAjLowc7GhcQku/sOXALvq5nPpSei2HF6VRhibeJSC3i/Law==", + "version": "4.41.4", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.4.tgz", + "integrity": "sha512-Lc+2uB6NjpCWsHI3trkoISOI64h9QYIXenbEWj3bn3oyjfB1lEBXjWAfAyY2sM0rZn41oD5V91OLwKRwS6Wp8Q==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index 49735a90e..e714a0408 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -28,7 +28,7 @@ "@babel/preset-react": "7.7.4", "babel-loader": "8.0.6", "babel-runtime": "6.26.0", - "webpack": "4.41.3", + "webpack": "4.41.4", "webpack-cli": "3.3.10" } } From 544db58c5228d462af0096c8d901c8063b9774ea Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 20 Dec 2019 07:15:35 +0000 Subject: [PATCH 014/187] Update dependency @types/react to v16.9.17 --- src/React.Sample.Mvc4/package-lock.json | 12 ++++++------ src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 779ad199a..316b6808d 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.9.16", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.16.tgz", - "integrity": "sha512-dQ3wlehuBbYlfvRXfF5G+5TbZF3xqgkikK7DWAsQXe2KnzV+kjD4W2ea+ThCrKASZn9h98bjjPzoTYzfRqyBkw==", + "version": "16.9.17", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.17.tgz", + "integrity": "sha512-UP27In4fp4sWF5JgyV6pwVPAQM83Fj76JOcg02X5BZcpSu5Wx+fP9RMqc2v0ssBoQIFvD5JdKY41gjJJKmw6Bg==", "dev": true, "requires": { "@types/prop-types": "*", @@ -40,9 +40,9 @@ } }, "csstype": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.7.tgz", - "integrity": "sha512-9Mcn9sFbGBAdmimWb2gLVDtFJzeKtDGIr76TUqmjZrw9LFXBMSU70lcs+C0/7fyCd6iBDqmksUcCOUIkisPHsQ==", + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.8.tgz", + "integrity": "sha512-msVS9qTuMT5zwAGCVm4mxfrZ18BNc6Csd0oJAtiFMZ1FAx1CCvy2+5MDmYoix63LM/6NDbNtodCiGYGmFgO0dA==", "dev": true }, "popper.js": { diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 9d489b874..dbe5133ff 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.16", + "@types/react": "16.9.17", "@types/react-dom": "16.9.4", "@types/reactstrap": "8.0.6", "typescript": "3.7.3" From 8cc99d8e41f3612aa5f8e5f9f1492b8b03e4a8e9 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 20 Dec 2019 21:24:00 +0000 Subject: [PATCH 015/187] Update dependency typescript to v3.7.4 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 316b6808d..6f63e479b 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -52,9 +52,9 @@ "dev": true }, "typescript": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.3.tgz", - "integrity": "sha512-Mcr/Qk7hXqFBXMN7p7Lusj1ktCBydylfQM/FZCk5glCNQJrCUKPkMHdo9R0MTFWsC/4kPFvDS0fDPvukfCkFsw==", + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.4.tgz", + "integrity": "sha512-A25xv5XCtarLwXpcDNZzCGvW2D1S3/bACratYBx2sax8PefsFhlYmkQicKHvpYflFS8if4zne5zT5kpJ7pzuvw==", "dev": true } } diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index dbe5133ff..6a44d39de 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -10,6 +10,6 @@ "@types/react": "16.9.17", "@types/react-dom": "16.9.4", "@types/reactstrap": "8.0.6", - "typescript": "3.7.3" + "typescript": "3.7.4" } } From 2e23d0a66cfa7823ab0fe21871cf2acd3e31e950 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 27 Dec 2019 21:24:36 +0000 Subject: [PATCH 016/187] Update dependency webpack to v4.41.5 --- src/React.Core/Resources/babel-legacy/package-lock.json | 6 +++--- src/React.Core/Resources/babel-legacy/package.json | 2 +- src/React.Core/package-lock.json | 6 +++--- src/React.Core/package.json | 2 +- src/React.Sample.Webpack.CoreMvc/package-lock.json | 6 +++--- src/React.Sample.Webpack.CoreMvc/package.json | 2 +- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/React.Core/Resources/babel-legacy/package-lock.json b/src/React.Core/Resources/babel-legacy/package-lock.json index 5fc41e424..5e1996c77 100644 --- a/src/React.Core/Resources/babel-legacy/package-lock.json +++ b/src/React.Core/Resources/babel-legacy/package-lock.json @@ -5116,9 +5116,9 @@ } }, "webpack": { - "version": "4.41.4", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.4.tgz", - "integrity": "sha512-Lc+2uB6NjpCWsHI3trkoISOI64h9QYIXenbEWj3bn3oyjfB1lEBXjWAfAyY2sM0rZn41oD5V91OLwKRwS6Wp8Q==", + "version": "4.41.5", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.5.tgz", + "integrity": "sha512-wp0Co4vpyumnp3KlkmpM5LWuzvZYayDwM2n17EHFr4qxBBbRokC7DJawPJC7TfSFZ9HZ6GsdH40EBj4UV0nmpw==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", diff --git a/src/React.Core/Resources/babel-legacy/package.json b/src/React.Core/Resources/babel-legacy/package.json index df338a7f3..ab1f6caf8 100644 --- a/src/React.Core/Resources/babel-legacy/package.json +++ b/src/React.Core/Resources/babel-legacy/package.json @@ -12,7 +12,7 @@ "babel-preset-es2015": "6.24.1", "babel-preset-stage-0": "6.24.1", "babel-standalone": "6.26.0", - "webpack": "4.41.4", + "webpack": "4.41.5", "webpack-cli": "3.3.10" }, "author": "", diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index f54c36e61..8dd50c6bd 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -4341,9 +4341,9 @@ } }, "webpack": { - "version": "4.41.4", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.4.tgz", - "integrity": "sha512-Lc+2uB6NjpCWsHI3trkoISOI64h9QYIXenbEWj3bn3oyjfB1lEBXjWAfAyY2sM0rZn41oD5V91OLwKRwS6Wp8Q==", + "version": "4.41.5", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.5.tgz", + "integrity": "sha512-wp0Co4vpyumnp3KlkmpM5LWuzvZYayDwM2n17EHFr4qxBBbRokC7DJawPJC7TfSFZ9HZ6GsdH40EBj4UV0nmpw==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 10627b90a..9e8bb6e75 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -11,7 +11,7 @@ "prop-types": "15.7.2", "react": "16.12.0", "react-dom": "16.12.0", - "webpack": "4.41.4", + "webpack": "4.41.5", "webpack-cli": "3.3.10" } } diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index f9f4b55e2..9bcbd2063 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -7057,9 +7057,9 @@ } }, "webpack": { - "version": "4.41.4", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.4.tgz", - "integrity": "sha512-Lc+2uB6NjpCWsHI3trkoISOI64h9QYIXenbEWj3bn3oyjfB1lEBXjWAfAyY2sM0rZn41oD5V91OLwKRwS6Wp8Q==", + "version": "4.41.5", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.5.tgz", + "integrity": "sha512-wp0Co4vpyumnp3KlkmpM5LWuzvZYayDwM2n17EHFr4qxBBbRokC7DJawPJC7TfSFZ9HZ6GsdH40EBj4UV0nmpw==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index e714a0408..c16eb8a9c 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -28,7 +28,7 @@ "@babel/preset-react": "7.7.4", "babel-loader": "8.0.6", "babel-runtime": "6.26.0", - "webpack": "4.41.4", + "webpack": "4.41.5", "webpack-cli": "3.3.10" } } From 2667de3da1ef066c8825f193cb02977f4093e54b Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 16 Jan 2020 21:25:12 +0000 Subject: [PATCH 017/187] Update dependency typescript to v3.7.5 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 6f63e479b..3fda63980 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -52,9 +52,9 @@ "dev": true }, "typescript": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.4.tgz", - "integrity": "sha512-A25xv5XCtarLwXpcDNZzCGvW2D1S3/bACratYBx2sax8PefsFhlYmkQicKHvpYflFS8if4zne5zT5kpJ7pzuvw==", + "version": "3.7.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.5.tgz", + "integrity": "sha512-/P5lkRXkWHNAbcJIiHPfRoKqyd7bsyCma1hZNUGfn20qm64T6ZBlrzprymeu918H+mB/0rIg2gGK/BXkhhYgBw==", "dev": true } } diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 6a44d39de..e9850d594 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -10,6 +10,6 @@ "@types/react": "16.9.17", "@types/react-dom": "16.9.4", "@types/reactstrap": "8.0.6", - "typescript": "3.7.4" + "typescript": "3.7.5" } } From 2c4a23bdb0cdcea6e3d13fa5d5ad6e635485c637 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 21 Jan 2020 01:11:27 +0000 Subject: [PATCH 018/187] Update dependency @types/react-dom to v16.9.5 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 3fda63980..7a68b2e88 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -21,9 +21,9 @@ } }, "@types/react-dom": { - "version": "16.9.4", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.4.tgz", - "integrity": "sha512-fya9xteU/n90tda0s+FtN5Ym4tbgxpq/hb/Af24dvs6uYnYn+fspaxw5USlw0R8apDNwxsqumdRoCoKitckQqw==", + "version": "16.9.5", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.5.tgz", + "integrity": "sha512-BX6RQ8s9D+2/gDhxrj8OW+YD4R+8hj7FEM/OJHGNR0KipE1h1mSsf39YeyC81qafkq+N3rU3h3RFbLSwE5VqUg==", "dev": true, "requires": { "@types/react": "*" diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index e9850d594..4c70a13d1 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -8,7 +8,7 @@ }, "devDependencies": { "@types/react": "16.9.17", - "@types/react-dom": "16.9.4", + "@types/react-dom": "16.9.5", "@types/reactstrap": "8.0.6", "typescript": "3.7.5" } From 6e025685608cc50158585cdf9053748df8f9271d Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 21 Jan 2020 15:23:07 +0000 Subject: [PATCH 019/187] Update dependency @types/react to v16.9.18 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 7a68b2e88..2c7e3f1a7 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.9.17", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.17.tgz", - "integrity": "sha512-UP27In4fp4sWF5JgyV6pwVPAQM83Fj76JOcg02X5BZcpSu5Wx+fP9RMqc2v0ssBoQIFvD5JdKY41gjJJKmw6Bg==", + "version": "16.9.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.18.tgz", + "integrity": "sha512-MvjiKX/kUE8o49ipppg49RDZ97p4XfW1WWksp/UlTUSJpisyhzd62pZAMXxAscFLoxfYOflkGANAnGkSeHTFQg==", "dev": true, "requires": { "@types/prop-types": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 4c70a13d1..096225222 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.17", + "@types/react": "16.9.18", "@types/react-dom": "16.9.5", "@types/reactstrap": "8.0.6", "typescript": "3.7.5" From 070d13cc6d1b826d9b6fa3e4ad003d5794f32485 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Wed, 22 Jan 2020 17:39:53 +0000 Subject: [PATCH 020/187] Update dependency @types/react to v16.9.19 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 2c7e3f1a7..cf1ce459a 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.9.18", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.18.tgz", - "integrity": "sha512-MvjiKX/kUE8o49ipppg49RDZ97p4XfW1WWksp/UlTUSJpisyhzd62pZAMXxAscFLoxfYOflkGANAnGkSeHTFQg==", + "version": "16.9.19", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.19.tgz", + "integrity": "sha512-LJV97//H+zqKWMms0kvxaKYJDG05U2TtQB3chRLF8MPNs+MQh/H1aGlyDUxjaHvu08EAGerdX2z4LTBc7ns77A==", "dev": true, "requires": { "@types/prop-types": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 096225222..1daa6962e 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.18", + "@types/react": "16.9.19", "@types/react-dom": "16.9.5", "@types/reactstrap": "8.0.6", "typescript": "3.7.5" From 7a9935b807e0af4ad4f0c7300cbf62964f4081e7 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Fri, 31 Jan 2020 20:44:26 -0800 Subject: [PATCH 021/187] Update .NET Core sample to 3.1 (#1020) * Update .NET Core sample to 3.1 * Update azure-pipelines.yml * Update azure-pipelines.yml * Update global.json --- azure-pipelines.yml | 2 +- global.json | 2 +- .../React.Sample.Webpack.CoreMvc.csproj | 4 ++-- src/React.Sample.Webpack.CoreMvc/Startup.cs | 11 ----------- 4 files changed, 4 insertions(+), 15 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 995ec531e..cc4860db2 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -19,7 +19,7 @@ steps: - task: DotNetCoreInstaller@0 inputs: packageType: 'sdk' - version: '3.0.100' + version: '3.1.100' - task: VSBuild@1 inputs: diff --git a/global.json b/global.json index d96e311f9..f04b5f9c8 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "projects": [ "src", "test" ], "sdk": { - "version": "3.0.100-preview" + "version": "3.1.100" } } diff --git a/src/React.Sample.Webpack.CoreMvc/React.Sample.Webpack.CoreMvc.csproj b/src/React.Sample.Webpack.CoreMvc/React.Sample.Webpack.CoreMvc.csproj index 8cf82f9b6..25b04b110 100644 --- a/src/React.Sample.Webpack.CoreMvc/React.Sample.Webpack.CoreMvc.csproj +++ b/src/React.Sample.Webpack.CoreMvc/React.Sample.Webpack.CoreMvc.csproj @@ -1,12 +1,12 @@  - netcoreapp2.2;netcoreapp3.0 + netcoreapp3.1 - + diff --git a/src/React.Sample.Webpack.CoreMvc/Startup.cs b/src/React.Sample.Webpack.CoreMvc/Startup.cs index 837039fab..e20fe016b 100644 --- a/src/React.Sample.Webpack.CoreMvc/Startup.cs +++ b/src/React.Sample.Webpack.CoreMvc/Startup.cs @@ -1,8 +1,6 @@ -using System; using JavaScriptEngineSwitcher.ChakraCore; using JavaScriptEngineSwitcher.Extensions.MsDependencyInjection; using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -51,7 +49,6 @@ public void Configure(IApplicationBuilder app) app.UseStaticFiles(); -#if NETCOREAPP3_0 app.UseRouting(); app.UseEndpoints(endpoints => @@ -60,14 +57,6 @@ public void Configure(IApplicationBuilder app) endpoints.MapControllerRoute("comments-root", "comments", new { controller = "Home", action = "Index" }); endpoints.MapControllerRoute("comments", "comments/page-{page}", new { controller = "Home", action = "Comments" }); }); -#else - app.UseMvc(routes => - { - routes.MapRoute("default", "{path?}", new { controller = "Home", action = "Index" }); - routes.MapRoute("comments-root", "comments", new { controller = "Home", action = "Index" }); - routes.MapRoute("comments", "comments/page-{page}", new { controller = "Home", action = "Comments" }); - }); -#endif } } } From dc4e4a262157ab01872c21f9b7e0c3cf467b4b9b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 5 Feb 2020 05:57:44 -1000 Subject: [PATCH 022/187] Update dependency Octokit to v0.37.0 (#1023) Co-authored-by: WhiteSource Renovate --- webhooks/React.Site.Hooks.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webhooks/React.Site.Hooks.csproj b/webhooks/React.Site.Hooks.csproj index 7c495bc79..e62f3e883 100644 --- a/webhooks/React.Site.Hooks.csproj +++ b/webhooks/React.Site.Hooks.csproj @@ -4,7 +4,7 @@ - + From f1d1212752d3561018472a3b9f8cc8ae532ac939 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 5 Feb 2020 05:58:09 -1000 Subject: [PATCH 023/187] Bump rack from 1.6.5 to 1.6.12 in /site/jekyll (#997) Bumps [rack](https://github.com/rack/rack) from 1.6.5 to 1.6.12. - [Release notes](https://github.com/rack/rack/releases) - [Changelog](https://github.com/rack/rack/blob/master/CHANGELOG.md) - [Commits](https://github.com/rack/rack/compare/1.6.5...1.6.12) Signed-off-by: dependabot[bot] --- site/jekyll/Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/jekyll/Gemfile.lock b/site/jekyll/Gemfile.lock index 6145bde92..8392e8af8 100644 --- a/site/jekyll/Gemfile.lock +++ b/site/jekyll/Gemfile.lock @@ -53,7 +53,7 @@ GEM pygments.rb (0.5.4) posix-spawn (~> 0.3.6) yajl-ruby (~> 1.1.0) - rack (1.6.5) + rack (1.6.12) rb-fsevent (0.9.8) rb-inotify (0.9.8) ffi (>= 0.5.0) From b040f97112d3bb7ddf914fc6772e03d138b2253e Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 11 Feb 2020 10:21:52 +0000 Subject: [PATCH 024/187] Update dependency webpack to v4.41.6 --- .../Resources/babel-legacy/package-lock.json | 38 ++++++------- .../Resources/babel-legacy/package.json | 2 +- src/React.Core/package-lock.json | 44 +++++++-------- src/React.Core/package.json | 2 +- .../package-lock.json | 56 +++++++++---------- src/React.Sample.Webpack.CoreMvc/package.json | 2 +- 6 files changed, 72 insertions(+), 72 deletions(-) diff --git a/src/React.Core/Resources/babel-legacy/package-lock.json b/src/React.Core/Resources/babel-legacy/package-lock.json index 5e1996c77..fb7a4c33e 100644 --- a/src/React.Core/Resources/babel-legacy/package-lock.json +++ b/src/React.Core/Resources/babel-legacy/package-lock.json @@ -199,12 +199,12 @@ "dev": true }, "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", + "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" @@ -2112,9 +2112,9 @@ "dev": true }, "events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", - "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz", + "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==", "dev": true }, "evp_bytestokey": { @@ -2273,9 +2273,9 @@ } }, "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", "dev": true }, "fast-json-stable-stringify": { @@ -3974,9 +3974,9 @@ "dev": true }, "pako": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", - "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", "dev": true }, "parallel-transform": { @@ -4799,9 +4799,9 @@ "dev": true }, "terser": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.4.3.tgz", - "integrity": "sha512-0ikKraVtRDKGzHrzkCv5rUNDzqlhmhowOBqC0XqUHFpW+vJ45+20/IFBcebwKfiS2Z9fJin6Eo+F1zLZsxi8RA==", + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.3.tgz", + "integrity": "sha512-Lw+ieAXmY69d09IIc/yqeBqXpEQIpDGZqT34ui1QWXIUpR2RjbqEkT8X7Lgex19hslSqcWM5iMN2kM11eMsESQ==", "dev": true, "requires": { "commander": "^2.20.0", @@ -5116,9 +5116,9 @@ } }, "webpack": { - "version": "4.41.5", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.5.tgz", - "integrity": "sha512-wp0Co4vpyumnp3KlkmpM5LWuzvZYayDwM2n17EHFr4qxBBbRokC7DJawPJC7TfSFZ9HZ6GsdH40EBj4UV0nmpw==", + "version": "4.41.6", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.6.tgz", + "integrity": "sha512-yxXfV0Zv9WMGRD+QexkZzmGIh54bsvEs+9aRWxnN8erLWEOehAKUTeNBoUbA6HPEZPlRo7KDi2ZcNveoZgK9MA==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", diff --git a/src/React.Core/Resources/babel-legacy/package.json b/src/React.Core/Resources/babel-legacy/package.json index ab1f6caf8..c8a2e6379 100644 --- a/src/React.Core/Resources/babel-legacy/package.json +++ b/src/React.Core/Resources/babel-legacy/package.json @@ -12,7 +12,7 @@ "babel-preset-es2015": "6.24.1", "babel-preset-stage-0": "6.24.1", "babel-standalone": "6.26.0", - "webpack": "4.41.5", + "webpack": "4.41.6", "webpack-cli": "3.3.10" }, "author": "", diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 8dd50c6bd..79f50d944 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -386,12 +386,12 @@ "dev": true }, "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", + "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" @@ -1370,9 +1370,9 @@ "dev": true }, "events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", - "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz", + "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==", "dev": true }, "evp_bytestokey": { @@ -1531,9 +1531,9 @@ } }, "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", "dev": true }, "fast-json-stable-stringify": { @@ -3194,9 +3194,9 @@ "dev": true }, "pako": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", - "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", "dev": true }, "parallel-transform": { @@ -3496,9 +3496,9 @@ "dev": true }, "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -4047,9 +4047,9 @@ "dev": true }, "terser": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.4.3.tgz", - "integrity": "sha512-0ikKraVtRDKGzHrzkCv5rUNDzqlhmhowOBqC0XqUHFpW+vJ45+20/IFBcebwKfiS2Z9fJin6Eo+F1zLZsxi8RA==", + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.3.tgz", + "integrity": "sha512-Lw+ieAXmY69d09IIc/yqeBqXpEQIpDGZqT34ui1QWXIUpR2RjbqEkT8X7Lgex19hslSqcWM5iMN2kM11eMsESQ==", "dev": true, "requires": { "commander": "^2.20.0", @@ -4341,9 +4341,9 @@ } }, "webpack": { - "version": "4.41.5", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.5.tgz", - "integrity": "sha512-wp0Co4vpyumnp3KlkmpM5LWuzvZYayDwM2n17EHFr4qxBBbRokC7DJawPJC7TfSFZ9HZ6GsdH40EBj4UV0nmpw==", + "version": "4.41.6", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.6.tgz", + "integrity": "sha512-yxXfV0Zv9WMGRD+QexkZzmGIh54bsvEs+9aRWxnN8erLWEOehAKUTeNBoUbA6HPEZPlRo7KDi2ZcNveoZgK9MA==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 9e8bb6e75..ae2d33045 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -11,7 +11,7 @@ "prop-types": "15.7.2", "react": "16.12.0", "react-dom": "16.12.0", - "webpack": "4.41.5", + "webpack": "4.41.6", "webpack-cli": "3.3.10" } } diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index 9bcbd2063..32c37001b 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -1774,12 +1774,12 @@ "dev": true }, "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", + "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" @@ -3025,9 +3025,9 @@ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" }, "events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", - "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz", + "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==", "dev": true }, "evp_bytestokey": { @@ -3191,9 +3191,9 @@ } }, "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", "dev": true }, "fast-json-stable-stringify": { @@ -3319,9 +3319,9 @@ "dev": true }, "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -4886,9 +4886,9 @@ "dev": true }, "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -5253,9 +5253,9 @@ "dev": true }, "pako": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", - "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", "dev": true }, "parallel-transform": { @@ -6488,9 +6488,9 @@ "dev": true }, "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -6621,9 +6621,9 @@ "dev": true }, "terser": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.4.3.tgz", - "integrity": "sha512-0ikKraVtRDKGzHrzkCv5rUNDzqlhmhowOBqC0XqUHFpW+vJ45+20/IFBcebwKfiS2Z9fJin6Eo+F1zLZsxi8RA==", + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.3.tgz", + "integrity": "sha512-Lw+ieAXmY69d09IIc/yqeBqXpEQIpDGZqT34ui1QWXIUpR2RjbqEkT8X7Lgex19hslSqcWM5iMN2kM11eMsESQ==", "dev": true, "requires": { "commander": "^2.20.0", @@ -7057,9 +7057,9 @@ } }, "webpack": { - "version": "4.41.5", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.5.tgz", - "integrity": "sha512-wp0Co4vpyumnp3KlkmpM5LWuzvZYayDwM2n17EHFr4qxBBbRokC7DJawPJC7TfSFZ9HZ6GsdH40EBj4UV0nmpw==", + "version": "4.41.6", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.6.tgz", + "integrity": "sha512-yxXfV0Zv9WMGRD+QexkZzmGIh54bsvEs+9aRWxnN8erLWEOehAKUTeNBoUbA6HPEZPlRo7KDi2ZcNveoZgK9MA==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index c16eb8a9c..e2b73a5eb 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -28,7 +28,7 @@ "@babel/preset-react": "7.7.4", "babel-loader": "8.0.6", "babel-runtime": "6.26.0", - "webpack": "4.41.5", + "webpack": "4.41.6", "webpack-cli": "3.3.10" } } From f1423e4ac9ab275b111c3d4f743fd4a24ef181df Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 11 Feb 2020 19:26:19 +0000 Subject: [PATCH 025/187] Update dependency webpack-cli to v3.3.11 --- src/React.Core/Resources/babel-legacy/package-lock.json | 6 +++--- src/React.Core/Resources/babel-legacy/package.json | 2 +- src/React.Core/package-lock.json | 6 +++--- src/React.Core/package.json | 2 +- src/React.Sample.Webpack.CoreMvc/package-lock.json | 6 +++--- src/React.Sample.Webpack.CoreMvc/package.json | 2 +- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/React.Core/Resources/babel-legacy/package-lock.json b/src/React.Core/Resources/babel-legacy/package-lock.json index fb7a4c33e..d0f593bb4 100644 --- a/src/React.Core/Resources/babel-legacy/package-lock.json +++ b/src/React.Core/Resources/babel-legacy/package-lock.json @@ -5155,9 +5155,9 @@ } }, "webpack-cli": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.10.tgz", - "integrity": "sha512-u1dgND9+MXaEt74sJR4PR7qkPxXUSQ0RXYq8x1L6Jg1MYVEmGPrH6Ah6C4arD4r0J1P5HKjRqpab36k0eIzPqg==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.11.tgz", + "integrity": "sha512-dXlfuml7xvAFwYUPsrtQAA9e4DOe58gnzSxhgrO/ZM/gyXTBowrsYeubyN4mqGhYdpXMFNyQ6emjJS9M7OBd4g==", "dev": true, "requires": { "chalk": "2.4.2", diff --git a/src/React.Core/Resources/babel-legacy/package.json b/src/React.Core/Resources/babel-legacy/package.json index c8a2e6379..94b6edf83 100644 --- a/src/React.Core/Resources/babel-legacy/package.json +++ b/src/React.Core/Resources/babel-legacy/package.json @@ -13,7 +13,7 @@ "babel-preset-stage-0": "6.24.1", "babel-standalone": "6.26.0", "webpack": "4.41.6", - "webpack-cli": "3.3.10" + "webpack-cli": "3.3.11" }, "author": "", "license": "MIT" diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 79f50d944..7d9e9b84a 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -4380,9 +4380,9 @@ } }, "webpack-cli": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.10.tgz", - "integrity": "sha512-u1dgND9+MXaEt74sJR4PR7qkPxXUSQ0RXYq8x1L6Jg1MYVEmGPrH6Ah6C4arD4r0J1P5HKjRqpab36k0eIzPqg==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.11.tgz", + "integrity": "sha512-dXlfuml7xvAFwYUPsrtQAA9e4DOe58gnzSxhgrO/ZM/gyXTBowrsYeubyN4mqGhYdpXMFNyQ6emjJS9M7OBd4g==", "dev": true, "requires": { "chalk": "2.4.2", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index ae2d33045..b1377a1e5 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -12,6 +12,6 @@ "react": "16.12.0", "react-dom": "16.12.0", "webpack": "4.41.6", - "webpack-cli": "3.3.10" + "webpack-cli": "3.3.11" } } diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index 32c37001b..e50cf6f59 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -7128,9 +7128,9 @@ } }, "webpack-cli": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.10.tgz", - "integrity": "sha512-u1dgND9+MXaEt74sJR4PR7qkPxXUSQ0RXYq8x1L6Jg1MYVEmGPrH6Ah6C4arD4r0J1P5HKjRqpab36k0eIzPqg==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.11.tgz", + "integrity": "sha512-dXlfuml7xvAFwYUPsrtQAA9e4DOe58gnzSxhgrO/ZM/gyXTBowrsYeubyN4mqGhYdpXMFNyQ6emjJS9M7OBd4g==", "dev": true, "requires": { "chalk": "2.4.2", diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index e2b73a5eb..f7cddd577 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -29,6 +29,6 @@ "babel-loader": "8.0.6", "babel-runtime": "6.26.0", "webpack": "4.41.6", - "webpack-cli": "3.3.10" + "webpack-cli": "3.3.11" } } From 45d7a6afc6d8134c1b09c5237b60ef3b9c3d3e58 Mon Sep 17 00:00:00 2001 From: Rob Smith Date: Tue, 11 Feb 2020 23:42:03 -0500 Subject: [PATCH 026/187] Update .NET Core tutorial for .NET Core 3.1 and VS 2019 (#1025) * Update .NET Core tutorial for .NET Core 3.1 and VS 2019 * Fix a couple image paths in tutorial Co-authored-by: Dustin Masters --- site/jekyll/img/tutorial/helloworld-2019.png | Bin 0 -> 13707 bytes site/jekyll/img/tutorial/new_webapp.png | Bin 10482 -> 0 bytes site/jekyll/img/tutorial/new_webapp_2019.png | Bin 0 -> 40950 bytes site/jekyll/img/tutorial/new_webapp_600.png | Bin 17623 -> 0 bytes .../img/tutorial/new_webapp_600_2019.png | Bin 0 -> 56148 bytes site/jekyll/img/tutorial/nuget_core.png | Bin 22670 -> 0 bytes site/jekyll/img/tutorial/nuget_core_2019.png | Bin 0 -> 100065 bytes site/jekyll/img/tutorial/nuget_core_650.png | Bin 36255 -> 0 bytes .../img/tutorial/nuget_core_650_2019.png | Bin 0 -> 135436 bytes site/jekyll/tutorials/aspnetcore.md | 211 ++++++++++-------- 10 files changed, 122 insertions(+), 89 deletions(-) create mode 100644 site/jekyll/img/tutorial/helloworld-2019.png delete mode 100644 site/jekyll/img/tutorial/new_webapp.png create mode 100644 site/jekyll/img/tutorial/new_webapp_2019.png delete mode 100644 site/jekyll/img/tutorial/new_webapp_600.png create mode 100644 site/jekyll/img/tutorial/new_webapp_600_2019.png delete mode 100644 site/jekyll/img/tutorial/nuget_core.png create mode 100644 site/jekyll/img/tutorial/nuget_core_2019.png delete mode 100644 site/jekyll/img/tutorial/nuget_core_650.png create mode 100644 site/jekyll/img/tutorial/nuget_core_650_2019.png diff --git a/site/jekyll/img/tutorial/helloworld-2019.png b/site/jekyll/img/tutorial/helloworld-2019.png new file mode 100644 index 0000000000000000000000000000000000000000..6a760ff34407ee5849a42bcb2a36d0676798faec GIT binary patch literal 13707 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 literal 0 HcmV?d00001 diff --git a/site/jekyll/img/tutorial/new_webapp.png b/site/jekyll/img/tutorial/new_webapp.png deleted file mode 100644 index 196b15ff746cc5e0a56367d1fb031700075f3bad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10482 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 literal 0 HcmV?d00001 diff --git a/site/jekyll/img/tutorial/new_webapp_600.png b/site/jekyll/img/tutorial/new_webapp_600.png deleted file mode 100644 index 94246014daf0ee1ed1211b14dd4988876bcd0ae7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17623 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 MiOGxp64vwkA9xAh6951J literal 0 HcmV?d00001 diff --git a/site/jekyll/img/tutorial/nuget_core.png b/site/jekyll/img/tutorial/nuget_core.png deleted file mode 100644 index e97a20c737cedf14f25593638e9d56a8dbff16cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22670 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 WOO*?x9mogFQW)x*>eOg~WBv=p%@#BO diff --git a/site/jekyll/img/tutorial/nuget_core_2019.png b/site/jekyll/img/tutorial/nuget_core_2019.png new file mode 100644 index 0000000000000000000000000000000000000000..3f7e5b831f5bc95303ab8a3efa28fe85ad529339 GIT binary patch literal 100065 zcmcG#bySq!_cjb7prnWhl7dpwC0$Y?-OVW7T|*6mbV*AiNOyNhcXtfkIWWL513csB z4YdvQz7Hi>MLBW;%D5;8q@>m%KW zvfTpy5(;d%d@98vDHiy;R*40__XD%kQ0(uVFP4!{KZt*437q}l`Ly|?&M&cjuhC>K z_tD|>W7dTfaMD<=dmWeg=xv@0 z(}#xL?}OyO?ZsEr7k@ivKf%d*_P4jxXOzJI4EP9*;csV20unLmzrDl8^HJktGMkBV zMG>ioYKTVTOZ7oX*C_!PZiOj{JGrvvTHkESPgJAQmUn}wOBoJ?D&QtOg&EIrbst6n z-Q65@d^77aJHdY+h`tXeWmqB3fyYMcWSX|4zw-_EAMhlFwhN)77En26{^^BFcJM{7 zFZawVLq-y<7?gU};(>0sk8#CRI`QV8xmtXT!FLy!4Fqo`jmi}N=&RSX@6G!uTgrA9 zXK<_OS(!Mq6w`K+P_R42B9mrJ)3cBX;}>yLDddEDWAp^f_&GB$j6tfyr#q;=izwH% zLu&5baPZQud0)tviGQ`)aOUaVW3(IrDZ2Z!8Y{Zvqs>ChMqbvo2#;+QN7mT&e5I&%7SkO&nEqW1IvdFGU%wR-|uf zJrT-gyrxdJ%}NVWc3vN0m?vD+HN!qvqR4kv@lE*oGul3^h+|ku@Ry3cez#zk``pQ7*m6=R}EL1)Iu>1vW=q&$EB`$O3FRO$(Ebw5}qyTf|me-FHW<{>K_*Lr!s2^PsQF8OBjxBD)yDfls>ulFf%CV=~ zW7O`}d0_4wBL0w$71A=Xf=aILA7l0L2LkE+<5 z!Nw26Kz=90?^-KwOATrPRm?^aMy?xU2K%ifEf-zOBB(79NI5M|_kP`)Ve&9OGw}oW zG~MO&PZpJCoJehQZ8yg{;SvPewT^Z&<`D>KquB`A>}oDX){ksQ)nqiT6dJ36v>Tpg zUs5S8_v|tP7k45(3qS*|LvkgO$NXqsZv+e8#=HoY%+7wd_2o!%dW=<~s#BQEG@cjdIJnt|N{sQ&K0ioC0lluY(*G^%iro1@_^qIo!)Np} z2&Z#f-}%8QDEv4VP~lI;CLC~#sbK^#&@+)Q{8%p`uY|5))!k4!e;-TwETgB{?Kax* z=UndG1)QnEK;apsL0A%?u;T~yq>NmZD@RIm>8UMKcW68Vw-v8V&r4xk+qqvm7gHK!`>kh|Lm?d&=tvPWMwq?gI!>0$T<@Q>JZ@NlB zl{Zo|bR3T;>xg-c1@Za}IV~U?>GM~gsHG`s z==(p*Vy-sG$kzwF$AeUQ%b7hx2Zf zfjXL(CaCT5$huJpu0#C}AIB(2Z>VaVb<0*P3q45+rIHpl&^YC^+u=FHA01CRS}19^ zT+w@dPpQp0e-$w(S~Ofe|M16`COc;Y?bb6!YsjGvDAt%?KI?C)beg$Ouf{4c$g|Ir z^tCQ^gjg}pFz3&DFeH>t!hS>!m0VuR%sc~}w2If-i6spMf05=2<}cNQx=Jw#KPda9FhC@#HueKii^B=J@eVy(pGDd3xNb=te%w$#sd%{jpxWxD ze2;*ah>lu2;zLbcm{%c2!J?I>VO&wJAKb9tTzI4Ums;Mwdj#xoS48a=CoGcqM_`Y zsvbJGCTBtj=YCebcg-f(SS6dBeAiENsJ}bv{%P2@idJv8Da8#oD!8^CFP6Q_sYJ-_ zQ)qUYDAn6%5!Av{&nbK&kVH~Dsm|i9GPu#eXE_6oxF-21Ug>y#fRS>4)paKc0NxO9%VcT!JvI-f7_4*KR|SJ+$r zY}O3F+#s5#fvW;@A7T2O{8)n?ecFBcW-ML%xT zDY-2`kGSQVMZxX?-T2iJTi4v1%7cXsf%VB9wOR?6(m1}Q423`bf@Soc9_d~ORotD; z6o547ZpwwJ_%0-w>LbJp-Tc&cMdfnM1Ba_LnQ46uZea>L60`SE?wKo2YdR)@JsRuJ zk6BGpg6IT2HX8RY66!=2()1BijUsow^|q}|oi1CIh-n4eTU<-m^ja3CNlro<+f*A_ zml`jt%|qZ_*`~p5W7;D$>B@dmn%?uamS-%GPRn=CVmEzvPXrmU7{k8;+ukNuCuwl{L^FGW_tx5f&)ASB^_)9t$f$k$ zlw>5po5Fpd)aW!gq&E7Ezk)8(uQI_&fZIkc;2LSA%j;eRs;(!tW>UFzL<-v zn=NmpHUhYmX`P|Fi#Dl(a$XMC?GlQLl_{DU+jylxu1~o5-<1q^{p$(<%5&URgLm2U zK2INq>BV&f+suA>Z|^3uKj)Zy*48_}g!tXY=*lycSZ+5n#WfeG*jNEjBcYCinnGT) z*l*`s*}YY*Ro<8u834V)`|33KO{7o%Db!BLM1eYrPJh$ z+4c}Y4%=Hx1hBl{r%TiAuO2$K219lgIfvlTVUGvUuTx@qxu4l&r(z0_gwV=l&uVTtR1vPN)43dF+--1{>VPw?m+be}iutJ9OF ztx>z6*LIJDzY>W$UNk6*gv4#{Ppw;)AT8zmcxg;;2goK`t@CZho2Er6b$F0H zvaDdA(Qdwd)I`L7%Evhi>ps`Y&UCFIvq zK8$`ZU5f=hFzo+DCfSJb5uE4Srk3I{>eYB$4A18uR&|-35|I16)99$_|l zCN)OrU-6X6tdvOfLbA>Y|W9i$Ts;A^8u22@-^t3hfVP zg`AWtv}#DM&fkoW#P0sM>&X=n;T5*>jY&*yL-e~g*hRT0Btx)E_ZL?C^Y&6`D(mDh zBwKtIN+l#zwCR5|El(>P3vg?gSBNZd>$6(h7bAvO!}xtKdRg0VriWg2gDmZbW#eRD z_42q3GOCqjNt7VA;3P!*=ou26^SjLXB11zH)Ph}5YmsUDZN~bcDbd^;?ln$zb&_)F zD0U;r)~4IRDUepslw!~X^cNg9lfzs;ON**i0#26RQ~_eYeA||Egz6Ad{);b3#hRXmH8V}W)!iNb;2fb< zheyUt9~SyQz^ct}iNCP)|2u~LKM0TiyG*VfsKI;ol9F9Rq7Sgxd+9%u-m-7MyXso? zIxP+Ew_d8V_1H~!zZ_rtGaZ!-j(@?qiV2D-{OWjqf!=*fVkyJxB$PsMmC6P6#ryUD zV(<=9#I*?`zfW;MJLTk4j71)xgy%08u5-kfQTN?Je0K@C>D$6?>X^O3L7M zTuUq+Mb0?6{1x;72WJmgGr9cP6A1GX%HRaJ6}=rkR=5YOAxzST7z@*Kar!yIwzc+t z4(mH~KKgg_Zl9ttbV6QS>fg_v+tWhZ&o{$k;7<&@H9D1Ao9-bBu2yhX{^50YJjS3aWOMyN6mu@d`Fozl`~=S(7F zFJ2;&tcu>G9(@En3=`bkYta{<#**8$?{VE+)gL;-k8M4f|4<7c*=$!u+IR2XaUl5v z+cf-MF*hE-Z>5tqybHR6PJk#Q75 zis=G8IfuunPqMUmIA5|fVb!lL`n}_~`n{m-d8lBd?R&}h(<(+-(fg&3VRXVL<@)L5 zx`I!6{P=1P3|3{Aqt@q2L#a{Z`PLEY{6Jk@t?V5|g<|WEESvI#lXY(d0Fu+~pD1;M zy4C7``7^kkNk+v@Wv4mz?iXHw@B1AceU7cU&H?Q{A9-eCO!6zix7~)wmn}j0G&Lvs z6eAlXHm-#h~9oXqnhS*qA%>;fLip`i2*CNz2kCU zZk#m$N6Yuobtb5ZkBmN1q7QCaJE9SEd`7w(<+Gex!r%N;k_FZ_ z>nX;hcfvz%Ghay#y!D`2@z_*oIIgSpd~(oCPCREWs#ln@`w;w zC=QZ5vwpW?B&^Dn=X&#=ane#F)p8zKoyWsd>XHamU_0@qM7>bwUD)i-w@jfVQD3UkKLAc+`~a=Ir*i?{;MChxUuo&ninI}<97UuTP(N4tZk!OP&yo6LtsMRdh2 z8Q-z)sFkZvGa~%kgn>6Jr<#SQlg`o0IsT03=)u_~2PWhXUCn2ORLdM6!M$-}wiBKj zwe?1_#LsJYNr+z#DNk_BrO=6Bb6EwxWz|d^lN@_)y&xSQ{$S&z%P-)Pun|VvVWYLy zO9y#RW)XieOt7uj+~2_dDXYM|Qv05!CNPiKT}1Cp$QB#g5H>WfBQi872jwp~Zj_I% zA7VJU`V%=aCvSBal-#mgmq@SfnqR`M0gCOxaZ z>2Q`T$%W@@3$ly5YdCwF;r!Pz(7mMheLhHP<8ndsJI!>`S)8?!6eQp1RpoN@IpcYz zf+GAy(~i!R$b;Hi1W@m+bqw$oenxH=yV-sX@-$2pY#keGeiiz_89)Oy5!FnT&^6+BwSN3lj=&9m)rY$ni z7Q%9HVnviGe`_?o47u%3A+6#c299sC{Z26ywtnwFx#%K1O0>z^2P()4p83{S{8$S8 z*7|McpS_cLzXaTw*D2ZwMf9JVWimMScgW^-#<}FqEOZvZu^=%)1n#@sR0e`pKML)wOy{ zoP7=}SE5nbD_lR!O@uMsmrQl_0@i!scoORbp4wZLhbQ?Z2kPZLsTkFd9wcw-Q-sEIC3m?es^#ftG_Jamgsv zH*;{jQB0>aFE=&|%>)@Yv6aV{!p*nbH4Y^si7wpN?hP|xQ+xNHOpd>2)zm03jdsDT zGi1aMm<3+Y%g=yaBa=qeFEUWXm&7Fl2CMrr3R8|FKsLEnb#Fu=&E)j?(AvtJ>q)Sr zp&^iv3jRaGVB)Cd6Ee2Q+qWg_up}F35hw2DiyY)+8lk6#7#)gB_%-bJB#)U>>g3j= zdLr~|bW7`}d-O_4=0cM345+ zc2(PXe+@6cDJ+pS0!><_;o!XD8!$hUTxLUSahd7_azt9mx8Ms>u~?so#u7}L^*>f*(u5;9~& zSw0E7a`q^&je3h;#J`}4S$Fr6>9x%Xf}j1iXJH3|$F zMSiAqgPq5Ot!`G_!9BF1O^>VFeCgU?BLWC$x#qa^)mNuE1NSetm-|+HQ3P@HRJ+{w z1374Te3BqCE0d7~(zj!x_)O~b$fP_Owkryl1WyjsAM{6kF$L32u45kO7=B>}7%<;m zjXnHH87+!nqduYnPwNpoNtJ+dO@JtV62Lc*a&Q=(m{|;&x_kCplcosd8Ktk#f9zwv z98L~2(_ovipD&DBYLu)axEg-L_KtM$631YVne8$?(Z(P!W6{Yx#oMUXJI^yQ*TrxL zIA~ldGkeX#R=-mv8*Fliv_x!^%+y5U!n6x~8d* z4hbnJhapyffY5p+tfq$PK)D0T22qq2kGAJ`O0WhKhV}H-4)9MJC z^hI5tj|!gdahwyqq^q!5P}TR`&z(2V^y!9P4`{b~^4#BFw-@h=-gM$um=3+1i7>xM zz&vjE6||eUSFveH#ALgWC~KRJ*^g#GtJrphQ9?w=D85fv1|uqZt~qqW`6kV3yt9tE=xzTTHi46(S;Zn=@+^So@Iwhqsy zyrUMLrS2QBbfV;ELq2fALEV6N%JM*>GTr5>Fnc-nCYbU>39Zp?>P@tezvYyow9g$7 znLWUG6#3TUZpI!EO5WQ{fX>qT)iCQaSZ+#&?3tty5_)F~g%^D_iW>p$3>S7ad!6L3 zHoYODXu-eov?ohs0}wPXM9I#I4WL{9(R?R5I8vT4N^_+dDBoLUkp}|XEs<%qQ(SuQ zmDX`wn~r-Kk8(?I6a~|u7Y-7&3b!C2OqBq=qn>{NYY*-}y79!>jJbk`8!8MhYYRK| z?7vd-UiBZ8`cK<-;HxM%_>3({C-w9lJfePn19U=Y3lV15E7u*XUeSNBMOOeq zuk*h~^na;B_`6pVtZP{+@XesOq_y>Gt#$W&?)9zMLeDVMdV=OJx8KG#@OebLa=_Y= zhe}P4jjtAElxS(P8UDV|@uN}rP4fKN@3 zHj;cQs1%~W`W4;7spU=Iq3rNof1&5Th%&O8L0~o)q`Pap*1Vn`L>H5kXC+J$UMnxt zm)mbqX_Gt1X5y23F_CiaHebbvwn!9_c4_KeaQlH=9ZC@~Z|g3cxbfHAEr{8-yW-B^ z`Ag^bn1bUoaQ9&=I3*9nIx5Y^w zrhQUZpU-Tx=#ghWEq^Wf{h#uHN)06`U=?=y0H^wu_0G`vIJW|5EXQWh&+X}{%}MvS zoTv{A5dz*@X_=fMv8aE!Ih;5;3L@C62ovWtQ0qky^Por0Ew@z}~$$0Q*r#58(20xaYxSa!E@ z&2jG6bslM)m$M${I`0)7bI^<+uejFs_ED`pRMR|*sd0oLQ?E8)prdQt#ITIFuFoUp zRiJ=?X0}L{u(IXdr?Hl**&)g4`moa>a~kR$M*H!p>=dE|&7U+ek}`1Vno{jR6IjX3 zAbPxtZPBk;CbBr?kuQaHXPkkR3QL zs9ICCz;4;A&ZZ{F6+n(FRm|RJcfe&%q})7AA<38?z0fdhfu|lyoBni~^%_H^1f>(A z+mM1kV!84z&sNg8G{ILD$CY(r%DP;ZF+!cx(V5e*s=mG79;g(uOsd%}xI0@FwEtXh%T};1{3*|9 zqmrs?Xyv+aZD4e@PdzejuHLo_lj^9u3tu#X7~oByWeCGYv_D)cM3D2Vvg|6&Vezl; zdR#8y7mVc*M!6};%^)cxsv85FPb?QJ9hT9)@LdlH7C2f9UDWz+J6*4jWl+Y%n(hwj z+vw>{sAnADwpCH?iJp51K|(_2N@4q-N*DrMrqeb!<<;_(kMpzqxOw^vk53@9|4jg& zMl4ls`m|h(F5L{6k4hK~Q)@Szn0u_3YR%M$P9t#09$*okuIDYHcTZ+yyfMO=cEVG$ z@f{{IL0=`Lqq}G`%d{x^Dfve&C)KKVL@V=lc0Ddy>(A?xn$Cw0TN@gj3sc;Nw0xtC z@zVTePXx~cqRftvlS77ilDn+_xwH2#1bD+cE;FyZ!#m(0*?8LFKBi4;3!F&ulPQD5*}9z<}+tVF4pmS?U2Bm4^35LpV$F}(_jsFuQI~nFw{QqYg*-$KWrSf8t9J)SxK z^>O3#5kWGwPQpUyfS}`nibjJ`m;Lk^Ezt#sTe%O1-Ra#~PM9Z;qUT;N{rPe#+dg$) z^^&LKC`GtxXI#rC9tqh~KMf4AqkFMsDtZqi_tB=7?5X{woDEJF-8gv23^V3a*nw#d zokAaH0f{0^-QD(kUATIiNhV#PDFlYKp{|xD^)-F|ljC4qP&5IXNT?{-1y@8xC$jwg z9f6kuf;>vt?YY@VQBM>F)f(^I!%O#7m`n-c__X3Sk4L)=A+YSWWUJle!arNmh$}-u zM5MkNCc(RGL6X`X6F(9s#$&C-^52f?ZD;+IOEy4^k zxR-4XtvXr4+p-0seTsKEA}E@vR(;_VP%;`2t6N+QD$JQir0Ufe{8X=<*z2eg6OVuE z8MGC2hrS5{3ehc5=`@=@`%mzE0)*eWpA8?5{d@y^mYCk~1T%6GpoBWgcl)+v!G-rF zIVh2|&EihO0|qWHY*Qhc8o}?cd zySNmC2j2`;C}J4M!9 zokI7wr?fZ2=7Y+HhEWf<<)=uhOrYgb)zh}tBjfjK`Kwy7C%8hD z-vs{Dyg7e;%7bGj>C>}?7c$od*-5~alk2UH(~X|zInrT_HY@+B-zD`Y6-+AP-LCPe z)p5P`+_>S4AZw%|odpDLR0gkeg+}MxEx?uQoZgH0bS-R{J=l9755u3hTgt<&+zeJ*2t7J=er}bVId|6<$HLNlCh13DAznP%Lkmv@tYpy>I9mm9ZpJ2i35M z^B5j|{=Ra4$juE*IaJpgM7VxQr+=rqy53A9Bro#?CMV*;R$ZfPO#I;z9OTe^OR zxSbGPOTVr!wz|!^nkNIN=?83)v3=p?@IDeJ9Ea}=X`j!NE?4bSw%n}>3iLSWAjhf_ z6jX4nv2wjXC{vi+-nW?%j81E#Oh8TVEgA)kJZ?>IS_FOv&(yf74@7lgs#mP>UnJC-j%4F>86S;EK z_c|_jK%A?cO{*zwLg(t&AMVXRiP)mA^u6c9oo&!K@B>-?!4u35f&8|a*_a5g9o5BgUl3Gkq9E%dZ%(Cu96a>z;SZC1n8dUwEp6^`k+yAc<&H zJW63a(2sMjqspa|ANRoz9dh;$YD!9?-Smj!oVS5j>y3mdL&2HCd;NEDXB7#`OkcC^_o?w814dnvYt&ia1X=9lKq-;>(^%WrbOiq z>GpsaKcBj4rwks}_JcG>oMe?iA69B-YjRzU6#pzD@|dktm!rN|Aeh0WXY1@TFaLe2 zX!+@|!0LaC_9=w0tjan{!;3DJsjAUvIMALG=21pJx--~9Y6izc?9!-Kto;&MZ@X;Y zB1i9}hdz_?@eS!<$}OS_QY_as$>->&(nT&LaEr&!X|->xJBT==J3f)?>;e-Mt|Oz= z1!3bcI_l@(bC}jHxqalIemt$7 zTk%zE*a1RLn3CD@9n*v*joV(0x&DNCSGLO8pD{*L9N#x;w|$o&u@n) zNX7#;3DM^r5?TynGv&t1`UEe*{!X6*DC49N!VCvBQw^l8JlHp0A0;Ivqz%y+)I@}y zwu71|PC*rD2CbmJlDgCNm?YkfomWZ5GmN5A=BICdv|hnI&U)x)5WGUbU{Bt=waTZ5 zr}b|b>~^M}!yHd6?@}J+g2@{*7qxl6bB-`syIB1Ej8QhdiKg%ai^;bNwU`Zr@-82} z?@j6RuwAp6foPxVcNeFl^?*P!!H-*wy6Lgtoe0o%6@K z!W29kz|idaHNiHx%>EoA67!@!AW|zlrvimXYq3vyp4)NRfFBK=tW0xi3@}w}1%%nD z&EPw(zBso(W#M~RCfbO2i`?WK;sNtZEkJ6;hW@$xXU8PUE9!f@(vMPx8RC-n6#}hoOXaZ0U@b=BjLZ zZD;-fdP&K<;jiyj?_79Jh`Wx%OY_fXB`Xy( z2rc*(s{$c~KeMdSnV=@npY)hT6?amYcIET zn^d@o0z>+#JmkBy;m0A+9jmwSluJdqn8s9Hz+18`JYxwM%^~8@z*)*6l63A0xY|ur zA?%bXxU{2YXq8QQ>V@O+Ek5<(oc8gKU=tk)fyx8H9CtDA-XWQs2JD56HcPCeCN-@`}<Rxf49?4xcv4vW(kUG*nqHls)x zi$wVQ;CFWB^nUq$KN{K9<`vbuixoX55w#2Ud`0ZeqLHb`Tdwvn=r}3CCbCa@LPqA0 zFyYd%-`)j0*eJDKx68;0VAr*Rt?D^6o_|{f>Qbp`BrDDpiZolc+VvV^TK_W7kc$*l z+U{%6k>Br0A-mlEgrs@CyDev-y{<|OYt~!y*p7P@GiuqfEzp4G`t_xoc+#s^9}d8*n>J-tDBezbz$|Z?z=^79c_ZIH8TKO>)zZQD{mtn`RCy`8+WYf7$`CmW9A?F= z4NXTivr?U{#WrzuA0v|V^#ho5p;fbG4^d$i|N3K|K^ZZa$*@Hmb)9K#gP2?dG1%B( z9Gzp)rkEG)7iQD6=keq1Cdoz}1vQ)^#xRxpT?O&4gZe@00@AoR&Vp#Q#^)NX1y2tr zwDOh?{Ijnv?M=~y){OHPC)}dn}W&$SyKFLL{ zRhR3jXB$i9*;iNC8p@^<0N+re=rR=~=MjytgA{*ty73Jzs)r)nVU3>hpoMQlNryYk z=!(uy^V>1p36q|>x*nMM`p;;JuaFmEqq+uce`GoJOjRH{XyKJd4<4}NLsO?F5`DUH zu-jE=X3d-L2;L)8id3bT3Nm=YZ>pyJ+0MWP*6__PhpL$| zJ&pkR?Nx7CAU@JMaK*`GFCC4TR5nio z0jaHZ#NFzc(d_X*`!tik?8_E<|2pWx^)6%NyjB)N$h0&b{oUDbIw47Jl76sdnghnD z(9gMc&8(YNLEEr9hYuKIIachX7X>Nqy!fAYkC1BG!Vse$1W8+Xub&aJ8;^k2vZ3uA zDGJwXfF-c_rChJ)su5 zG^(eZitZj6-o7pCJ17_Tj^Qo6mG0kXl5)fH`oS~#ep_&sJ4Z9bh?z}Lvo=$4iHLs~ z<(rLDPKIRuty~4$`?MXwQ8Kg3UGIE+LXD@i(8tTS^COl=sakqgdPfLSrGB4Rrkl@m zyuIr=zVkM03LU$%?hWgreL2b_ywwP=0{vLs%__T&=uojq^_0|sUlYX_ zXnCV5(nRf|kJvtv3lPtL<>lA+gK+h5kn%n=$JSFCKPNJ7x6$PoD@u;j+zt$}Kq=_B zcp<; z$CMK~QkqW#Y^yxxoJTv<7_2vRAi2~_;riSOtA+7aDKzMb7W`goD6Ps#oH<@ogRinq>e1B22yQKcJy5J zPK*;Q;RvokTYyJ$(OPPMHibuA7rGjj5ypl*_2E;Ywhs{7$3o>LPdz5(B&SbHtdS8( z?p)7IsKb$N;C%IS7`geqf%8rbs_|UF>+>&a$l`C(chc&bzHa&V88IvM$I1$}Z7rUZ zt1IUjl-R>*9yGp)sMdRYK4{wRJ2f88BSiV-W_FF$v2$zKF`d%l={ zY;5t}o}clQJOy~_PIyppIoMUP=t@8qX)2FYA_tmJ+k%C!$qR#-kt$hkJG$3KX#OSd zTK^k4cF#+OWv^4uh*w+~JUmkqlU1sJR7Qi&21iU20NQr)T&9E!gqm5LK?fCL>={-LaqE|g7YPHds6R>qY^@cK>uMw+qt=i@{?7pRE;sgDz0 zkzGpoQoARQuQ%8U!H-0@zacRJ(H}b7F#j+;XSo|rE$zmbz0txr58k_g2IC>X*(iJo zn$`iQI#PZ(K_b%wFuvQ#3#wu_EbA;2fA8`sRK*)rHzdO3EXr$$%Guo!fo|55&xf_GOZ_15~2)rfbT5eIhAS`mS%ZqZ_Sv zv%oQUbE$8n8*F&cd-{I0&?=v~;Tp^4eohk_wkhwA%!mJNcZ_UE=3*UA5!T+0;HLCg z=Rm5QN;fCMqEe7Z;tFUa@%eC_;rX2ubHgrH3GkMZ1FSZGGiLss1bO*``wz%Qwu!a) zIg~J)wu?ocfA^BXG@txJV}d`DuH- z;AvqLKi(Q@m%Oig%x$Oec& zW(GfiOXxR?w%C8v!1H!`1OI3W)uNqb{&Ptep=(~~Khpaj^}PZKX|{`k?K;k>L|%d( zdabw<$GXz>?)`OaasS8`=a8lH^&>&wg4H_b^ZecQN@u&?2~5hbx%l8;Np$~!Z{!(G zgFr|(zjn-#{INcjvKvxkB-il9zMO+HrKnW>1S^lnl|WgS<_7c^^@fEQVlA8J|# zt6W%8E!(;VSD2^78OGWHcV+lvt=vG}Bmv5q^VzXJ=|xA@n@D64ezq@H1R8@X+iaRB z+Ejk{me4a};J8~R$|%*~CDwXfxv1lNyWKI}CW7+5w4-rqw=*@}cSZ}icK#i;Q8>d%waCFt z;p;ss1l)*<9(wNCud2a1x~^F1s5%Ra(mM%|74dDy*l?fwKGm4?W!2zt(5boS+_m#5 z{+c(CGZ2!OY0a-Bwql8{?Htf(*zSll_UX(ZAWF~pDyRg1iZ`mY3wr$4L{&+Q(>t+BUk6_#5^nQ zw=Z9$%@XsvZG1rZzuF_>H7bMqe-*(9=A*<<-am%M$Ej-sF_OIx0UIAD?~V)R$}dMP z7AcFEqLtjp`a&o)P6FiaecKsQToud5gy%B~pQ<^2I2}0=iv#l^&Fw%7Cu@F7%Ig$O z+aB@`JQj zzDbvr#qVW7_ySQ9*ZC%Sw7{T9@5ZqJ9LUNpbAho-}Rm19 z(hbrLDoP4SH%Q3P-8G`Xz|b{x2n^jr4S5zm-{-fV-?{ca`&|2+`O8ajShHrWd)@cv ze!X8G?VnX2x9SAfY80jy#GTH?k94yJB8<^JmV%j#y4>$aw*)J$x^8dR8_LzY#Qx3< zoR;wBuPnn$l56l~XQ&~`HOnHefA(?_zIbO@00-x6+0TckoI|54qeC8S{Kb72S~m$O zwx3r_2HA(-JVXnC^ZNv?9O_pr;`mx(Q&xI)!H0zvVi>jD`NiOI?jv&|42G=iEm0uT zpd@@l`rYzlCaHnr#w8q<;Z!Ui>414Wu6s=o68Ilaf)}Uyl1obu?MPR?g&0W`jq>}( z`%V#id%1gi%Cm=|EWfSp1wcQIoLua{k31(>*XxZBSH+c5CD4OQPPW+4s{s$Wouq>| z#78+WcLQ>ZZ|9}^`GNAUjef%ipQlwG``il(SOx~!0;mPe>lmkYif-kA^$05GXUj$O zV%cwua40{1d8tI@*Nh>4>?S{|ETL_sS?)okm2QX3UTpb5#R_$2p}zsG7r(527~2=P z$6moyxVeGQrfYgMhBfCZ(C^1hUN_(CUSTteQ!=k|M^nTENgARz@0FUK=<$;`u4wm$ zX1T}ubGMuCXqK4mZqeK!qp|@(md)eFUi`{+cw1ZiJ>*1Vj3g{?~4q^mZbvXt-Zetsg% z=fn8@&FoN9YQ<-yu*O#xf*Dfif*f=qYZ4hFLlHbcb~%I083{d@DZ;!wVV%E(z2RZL znM%LVy*hzSaT>`|BtuCmG2@LdUhIlF6v0(0R%K7oTc9Z5?+drfLZyY3oQ$6M2kfxP1(#qP)^Pcv*k_9DZO> zIp16P+K~9Z=*D2i_^^dUq-O5xfUSrr&smqjMJI{HJ!SqixmgSB%~{m-i506ddT_Ho z@H<=yhXwkuh$2n+4Egu)u>o67s$W%l5ox)QdPb~K#>DmmHPL74X6j@I8{>ig$^NCG zRM=L8Q-~&DH-7$Z5Q0K>75WZ)`~FywPt!49`def1IXpwBkD~{<0cr)Ayx0l)20rMq z{%;NPg8jQ}-1e!_VAj+)$#^b6S*q{@P%Q^CJ(`{T1iT=@!ecB6Y!oJ#Q@8;|1F1+nc}Z zjk2emAgy}5?=wuyNdmX>CG-97(!PE_ij|8~ZA(yQj3#fIH#%Z0f%w%IdF-By&U|pe zHBXFAAJjAAcY1%gtTYpt`b@KQz9^B-5KF|eiMEO^c)li0w748wv-;^kTYr36$F8CY1wo7DrE=;2i8#Mr|DMd1LN z6~-}>jf4;r_x!7f$9UdV{DXyWrX@~Fdfebcf*J$Qya$Z$7|>3ERO1DZOsl$jpQ#MC z4yokOC%esiCWE4Ko6malj;M5vo$tnvq$5!M$OywRi1JZWa~5J@B$CSW4zTMtMix8?R#W6=b~9>c z7svwf@NRcJywma2E_};WB z{W>8Jrpn*mcyK8IGnychzZ5g!a0ReEh7rQ2V%_i#FFyO@KOhJ&svQ2qi{0)W0h+5L zzVY1)J@Z5U;g*<;WA-978sp%$fw6!qGo|u$5>p6+@Mv{!$ED+Xl1oHPG#7ec`86%8 z^P`hXJStu4Vt><$6)DQlmPh$Jw*l6i>z{Yt&U!_8-6t&p$DZX zlc<5W$3N(=+^tKq3gnKGIR7wt8i#mawNAI-%mnwl-Z=Kono>A2ZpeA=Z%NtG?LTzx}ait#>Lz7u}z=0BWc=e$)aUW5N+ zT)I8LqL7xUo003pPSGNcJmi7|5>aHHy3kHc{C)MUuMz5Hn`eOFK;ByEDA=R}Hh#p& z9vHAyt(fd1;v*b6!6AmC_Q4Go0o%>?LJ&y3=oDqvz%p+2%aP%kSiNjdfp9_S^{zgL z^U23I&)(CWD`YKj8V>Ty#Op5xfM1Q`>N8$DuWhsPIP?goZ&b3G*S4yzeR#<>c)fwS zYsFBmu(c^!_gkb4&jzKlrR7%*=8^8E2nmu2BcVAnT+%_IlAuj zM0vRB=LUZ?xW|#gA!RBVk6R%&smN>*w%nEoojqF4xz?QF3R-q;bjW`0}y{nT> zpV_10N)vct7v3xhkR-+OnSR9P=mawrB=D(}&99z(@a~PK)%W~UTeASsd70S?#-QhAQPG#FoJKGZQL87SHKLLuIsPkTg49em(3v^22SSkx45F!<;Qo-g1c3T!BS zLUn)@Hl?|G`&N^b+OXmk^it0EFmC+G+5E3V{i$+iFHh}~XX~Z{fjQ-p&VYxnSq8={ z%)Di2)|_`MHOwqLRsT@9yybq#g2>Ns*K*nNX^vM{B8x1!8>xX}&s8}fcaw_U_}{_3 z>lg2J`I4aFRHHI~BLdgU+cJOE zT4jU|29`?^Tuh#^8l;7{*tctW?>|=U0#-ji$WF^A>P3jcJAO1a2qY=bAc;Cq`QM*r z|HkuJE7%NcVNB~Lw*R@Q_zA0uv^#zeQ=Ct;18)oOghno@;UoL&m~>ILKqE~HW*yhu zwR|+ib6U~3q<)n_zSHRoPY~1#e5Wu8MJU20(VYZ-YvF| zLfY4ZJmwiNe=Pf!g}0o{-xC&2)0$;F%v{h< zF8U`UPn$O%&6k6RtpgQq+-hHcNk19n;!h;YI_rROc{*lnF~IQrn`Gq;gBscz<^2;8 zx={YdP$72(Ky_7J@OD60*LiwGxKszKzjofl)T1%rGt|78^fa zg&eiubG(Z<+SILn#?duMvSAQ~we<9`T#IgiDbR+oV8CqDDILb3Iut>>x1P(q++8K6w0ka39kcV*ptfJ1Au$z#* zo;@#oP=6dB*R^ur@r%oqY2|DM{9f-sob+cw_)Ps>8$GN?hfGVpo@eZKp@M-vnPb+s zfoSY~GeL*>{tr%ZDIZ#z)~8?i(4eh-Tt}2ipE|2YD62n(cLfn#<3)>|H_(1M=YZ`{ z;>&=S%9o~B-4vml&xptRYHYE!`=!BqwFs{R-Pr&TsWMc{08ccUZ!N+(Voyt}-sh)`$FcWe+1qa;yqdbillSyKE)X` z8)qpt4AkJ3K%-pTY3)>$m5)6>4{yD!cWUT}9JEpY%2ZXU%V(rUU{VYhQO-d18s^hV zTyVX~M=5x-)}Kk%3xd0^yH|AvoPC#(qUYo;KZv}5yM(mw!(7NAunLTHh;}x@8ekYO zBq45~6c}7b(WfoLwC^e<7flq79K2izy}Y03S_kt|5j+pAb>dF+O<|URwHP5z8}MhY z1-72kZ(?}xWFEq8nAtgq7u--ZG>Q`FFIth0DHLOVGdAakS2W6LT1f1;+)UGtCs=GQ z47h8(>ojnBJ4mVxWtHiq&+r3bsAc5AQ^~6s-+TyL?o1TmL4yrt?^S8gb&WZ=$6XPdG7hpKEuML*|F945yHSu|Kf`^c)gSnf*JOu~VKa3N`T0z|;Pi9Q#>Vwm7?uop!_Z{-K zI81}!yDLC*)8Mts!2rxVI3En8%U>@MsQ)VJbS~cX{ax;dak%IEmAndWrXxtnJq=2M zXDb?fibgLk3)x>Rm&An@5KQ)ah3Ds#(Z}F~>$DTUniQHSQZ)^1;Zvx&MU-?#ezf(b zzVP;rP;TqV=eWVT)EMt5fPr0_F|ITRA>vha-9T8G?cfS#tRyzmi}@I5$m;dPbo5xj^L(R$`sP`guQ?H|=sfQqdqWIe z#Op@u{qfDgkx)2%aCdB>P`R6u(PI7Ub~g`QM^hr{AM9Kng@|n~=ezIGEk~&@r7;xS zGJdr1gy387yhw{P@Fv$f?G;R6M>jjO#IB*z-76GB3!GXmc6}#Z2V;D?xoy;rh_0D3 z-#bc1|IediV{Mvx&?miirOmDsT&lIA=Hg662zjzZ4TI18f|WjEn;_#L%XOO`&17}o z$TbJiD$aOZ;2~T~Z0aqQlCYZSszF36?C+bAp}r%5*zeNwvnD)=+NhrU6l7S zyuTh2q3~82ebS)XDgoQ%l4jyvh`XahhfwMI) zWcIB>H1Vj>gcJt&#Ntrid9O*@fT?$nZ)ti<#D51#QwNlGamW_Q1Ux(c>~2(@^w_il z49`}jJhpn-CFZX7XrJ5VC^a*%bReCZQ{KvUTkfI(yg2?!{K6H*Wv7iEY)ZJ9-Be?& zD$5fkA=W=NvsafU z)?(U;DmCnKnJVbhme@9`Y$2iO?K?e^BqM$@1=xA>y$WFe=CoKGU@xH)_0?R*$(XT-XZ1 zINYQUdg_z<7WOE)1Ei|;5j}Pfuqno6;oI2gyyfd}e5j2Oi5_R=kBITibqyL0v%g>| zY42%J8}O8nz~}pRpA7MOgLU&|eS@kLCt^SBe3oOVuftTu>$T4=@^^W2_cnK!BXCCgkLHO!hy0%; zBCwDO|Btu(d>gNZiTx${ttVr5ror17fRVW6AAs<-j``@H_#W`*|E4Rx`0FUnF>xq3 z{>W`JGMp^xn+W{696uZDvyaz_O4p_TP~yRSe~(#pGVIoebNl*l@7XQ%;qW#AdGv43 z)R?i(?J@j)G5;^D$p85fOsHR{gq|bZ*Vo_N)F70{P>&>UbAa%z+cn#Pw^^cs&-ssI z)>4~NRLp{=?@5UAd7*pp;Ew_=hMmI)FC*+%!>S+s>%j1+fL$VLUfaOg_lHkJ{7zUd zcjFn;4Y)OxE4TSgL5f-Xx|i9jR$fO`#m-mqN$>iMF4hZ!@3;TQ)5}v}t<47}-H? znMLv?6!M3zoaq&?8@c)8zEYJt2cR12wBpc<^D#${{TqA~koasq0=EXVyMufZB2Rc! zlguQ{>mubV9S#?`HBz_OOFzxJ`8KNqPS4V5&+4JsQdkU(mlvrKcgsX>uOdHbV~zh8 z6ZviIFB3V~RQP_uEg3|)X@*U&&i7*l)>qy-m|ml{A&t%L%D&KW*qV6_2MzCQs>Q!v zdx8dO2XIKH(e4e^%Cmk{5@n1$n`1Guf;dz7*peNz0DHL47|QR)zog6jydXXobt*pj zv1}e{rZscA4{T>TqrUc5ZpLTjRG$(8r`=!VY$?w6nkuse<9;+Pq>TWdYIy!nqr^lD z=oPq7m>Qb@dV}m>7s8LgD^PUxF2!fR6+_d~y}3{L0WgGkNFsRwJJH^kkga@pU$npa zi(4wPS`=ScM|J-3VZ1ypOV-zV)%A_xtx`9~_d8D&l?S!#KC{=BTBi8cmA;Mk2;)(1 zs@RGDJy0iTkwFQ`><)9@>=NBD9~Q~YwAnR83YAVf&>EEot2Q0#Er>b zB0>wcu+0AR;_^uAG7_jd?!=Y}-O_2TAc^;aTG~vbRRSCR3TrDI36g+Q zCAQxplzC>a5)0(sSXe)3)E#K?`*mD0+Mcb!{Nk9$R`fPESD5k8y1w zJ*{kO58BiMq=b8%0Ijc!bL?`;Y@nG4IJijm`uXRq>(%J+evi<0E9}j&VF3Q5FI$^f;q>uK*0VR$ z0_YgjYTPDDTC`^ZRCM@qN77rJK7IgZZ)d*wu!Th9F{rdC_;bLtsW?qpgQB+nIEcFt zDT7m(FPW4r^{Ae`q=Wh*N?zQg%wgUd590huc$bPX<;FFgYARNe=E3@}SdC1-%)DX< z!ZfvoP>TW1HM3?~;E+9^dH4ZxOo)t|;(z;)xE&vV%A&w-o?N2z_4r!eJq8cH<*{=I z=hcJo$$?#uX4!A!o)I)`s^Q_|UmzryZvpF#V_=7~S(P1KcPd5<%q;W?#4^_X50ytY zwFK6FdJFt}lp$4DVG6z7K#8<}YngYPUiqtjqnJq!2tvax67sstjsDZyv~mfBK}Fv4 zc}&c;^4fs5SN*Bwh4KilQS`ubf>aS@7Sg({XK^i!k8eUzgKq~*eyo%iOty+9fDwCo zRqoDzc}|k87`>k--Tu4wY0BP(%TKq-_aD3j-7G6S=&N_PzxW{|ZPKxjpU5$>5Vr~E zcB|`NEJk~>ii4esI``C7x7>#VXTm~5vBLnOHgoPo85&YOP$^U;vG|*gHeSQ~T!R6W9`>?b< z5~0`eMLkc<*|pXeKb8Dga@cqR@#9{@3|Wy$zmWHB&{&j=KgIEvLCm#`jFSovh#1Ap zOtoT(ZYn$rS8%U*J_R^ZDT-1O+6a|Aat!GVOkj~cP48>Xjpt3Tr(Wl_>;n#K6|y!H zGI)yW-8;gMHN<)aRy%wm0JJ~Rtue^|x1i8Aqol$jRbK?-Xi6Auvwz#L`n3f0rvWRBbv_m89Gs7gqG$xY1Wq( zVTSN>hgN~XZOY(L72TD~Qn!-MrU3(?s`^jq)xN8;A{yEDJJ1^)#gxN`eaX%^143I{ zo2c6Ij3~~416+ZnP*Z?eksOo@JVgsoA(YaUSQ6b3}=g1 zB?3j=!c{>nArJ7U%UDny=~`E#)U3#4y<#C1#kgnCFhyCWcv4Z_Tz`bRg}Q3CEcyX+ z7Tb?cQcISF!;WonJ75)?SLs8B9|Ta$5;HG38If+zJcg!N3b8a3CSPzc!<;pR{F`6O z4#2?q$PBksr%kIA1|Qm-1g1gMS?#7^hWB7dsnDb zUkk;CWU-KUP{73JiXGe;T8a|Q+TxWx^=Crns~SZ76n!7n87redese(yxBWU~M=`=* zh=U&iToHOPPX((AaCv7J|VEqDPSv;-i=h{Q+r9p&2?BA?N4lcWs4^pHH%9i zvVX_1X@l{g{yT~1yf;&(_o}YnQ7&D3AtV56xof99378c&xZvF4H~)tz>FX-O{>Ual zgpfq+_X^SmVw-tj!{Ma{%XYDZ-0MHz2K zu{aJSwREoKx4)FF2;W@I!@aJ=hVFiO5Va5TSB$` zY`5cOb;e;>iw3W6VpC5X(uPx8<4>6kk^3xWPeBXDMwEQQ85x{ovtf7#VZjrQz5XGJ zqNVpU)6;mVeRea4iEO?SsVRw)W^b*cK1z$`*UpJP&6886_g_aY)V6$ED-akdervH< zO0?tPqLaRSIQc<+l*MX_+IS8z(@0tQ2FnOAdouGJKEq}ikTC4jx|z0HYDqVAyqQ;Y z1^q!;^yS)ymae3s&VK@yll_EpMLCJ~Y-<}d`)<<~$K^8J%}=}X)?mQ>@~4x`xFa|E zng%rQ#c+L64+WN&iw(u&u`~Aa zQ&ay#2@Sdf3K1_YR@$?3JkxpQ%@^51-{$O2MFAH=|LJ^JR+jGrf>wb$fx4YCp1Ey8 z%9G>g$o_=3cb?~OV={hG`Ww9Qpu>_aecY*Ip|uk__so>WTC*O|_kHGPW1! z_e=+6uSXXlI5#Xs3YlsVFvod7v>iK5Dh%z4GccB&YUp6j(wRx_x{}QUewz6Bv%ZTh zZ=U-il@)Ed0PLfqm<3kK(Wu*mKvq2&CJjhpi8k7%MS^F|2I`t^kDz>D2Fe&JuZX|e zeO@o=kV^P10?Ze9xEI94Ae5ou%J2TsY0UP4Io5*+k&NT~Znwxg1&?^Kx_GJwr0!Ju z#Tjz2upg8UKkCcAc(Zxb{PNYk?*aV@zv?*Md{+cn@H1qE_ZdTQRdt!7IvYL;=ui55 ziYh0+kikwiXQy$3a!C_QV7=*8nKu(_`6lsr%PHzIZM^z-N1ZK47eDQdkxN`;pi3zMHh5Lz|NrD;TN)Gn@w%s} z#gs+eBOh1=$YTq%fM1nNKlK1V)-S4)n~|{@on_1ksB>&v_FOhUGBG`|Fo~u4;d60k z-M$usQ!S}@A?fM$)#uMi(N7v9uhYehxEt?|JB1EQ*=Di53i%;`^6H#asuriX2p;4c zm)vCd!zRjQlj!Lp(5nd~=oi2-YHDO5AF% z7e8vn-(h~vF^;icg|(g4jl8VFNGLKUF%$lciS>YFst>|SatC;hv3MDOS&;yYSZ+gG zs^-|jajSNrk!ciDH8LKLXf#~q{t~pF{lsntbk{Bn>a`}xs8ek96#>-gL<+1#&?;~;p2-u4OCGH6_|ry<9EQ>ofw6TR zp{;o8`F;lDM!>S$`fsP8Te3Fjlsq?e+Ryt~q@{UTRFpIs-~=zvcoy2_i=mO=o9S@8 zYNwyq45#X&z#N3+^6-zA!QqBajmJXRZR*g;|HzH6)UrR&6x=^pseV~+wszlkwy-`u z8fHB8Rln`fmD+U?v$l^wD0RHX|DW%L$x=Ffs4Ktba=Qmd_o>hb(g7A4iVtuNfCO*Uj*kPb^R~bOic-oiy}c z@uc50t7?>%&4A%Mjk{MdhL)KSr)|TSL-KFy8+XMHW1_$3<}ws7h8^wyj()e-dfL@~ zpDqv9&~yI|w--HKTcMuRW~6Pe=@{v_Tj}c)IT`8ZPwD5cZMF@H=Ho|C#x2J;w!)Ts zxg1vltaSoO!eO+*gU`jHPOSE%rr=X&M|f7b3}}$ZHC$XJaNzB^Sk+h%R#^1ViXGTWeLvU)$^TsfdZH+D+RVw%)ddeo;(ng% z*sr_~e!Z8*Y1V0G_r5pZcmKrqfMM+)F&3IjBW-{Cc1o5Nz@5l`K_}WpAH>9z<;M*? z(|#%;DOM{CiI9VmsGJb$fhvw&WAjGAtT4@ZBMoLn_3nrUL%ZB7rab2Iw~6qdO(iJvR#( zO(^rb&~uM_lu7OcG2j0jdMQD%D$b=8 zht{Qw2%YzXBs!=gQPVa^#X;8K(^sofJ~lvg4yeysd zj6MH7-&Y~A z6i)1&`O*@~^A}2tdMsOGqRZPEbFTjjo>n5hY$ce7)nB_kTvfcrS*1JWOTU276*}|l zy2|k1{Pmyb^tD`_KsDKkr^v#SD5PUPePSAEa9-YDO>^3M7GgNsK{E9CZMb<*>T@6N zEmcvcv8{?Ex5B+5sTl-1beIO0P;~$(X~mSkm=ARFe7%ylgyUD?$}}HvLvveKi>~di zKfN4%(D0YjRu!44cY>h?p&tMfjX|_?oJ73qK%u&S9wwG@-qO;+8BDxx{aKK4Nac7^ zQ2;o$G-B9Z15aKZMLg5J-}N5=g53yU zWys&MkJ;w3vNnFYjGq!}9EdhmWG(yIH^cFB!cjkTkc2k+Ms(we-}d7zGOyJRqTz$t zg)z^+-wM3XELt?UP#t0#EqXF!HaqXNjK`*5$HwL5vJxX_dOGI`9JqKnFa!lCuGUEM zC8;{)@c@#P7eLu5nL{{BzvTR{d8FU33&5@IMJdA#%Yt+IR za@$!ye{(u?)ZZKt+54V?`9z8Qa0zb9naJNN{s#l}h>yEE3)@=+SG_<=a;L7+tpn)&U7jW(gP*)P#cn)|PiKgxY{~nwI zocCZBO}rufA1bkg?wX=10UTeBW%g5iuMK7Af zuUo$=OZykUT6niEUF;^NC)N96pr!)NY*ywU3!XX|zTOvwnc|2JxWqe8SNVNKsrb#7 zzdIV$zGzP)bG;Uujz*i(5lGeY{A?3pY(1j z!J((wPLC-z*D#N%rpVwKp1_vE{uj>gMVq*78SqpbTq1$BbfSDW{qCdJ&BlaIT0D*CT_$15kxp3P8wm3TiYM1Cs2 zE=Vc`H0j8>tY+a{Hpr~Tk-?+D{(Q)?>ooR`{zP4hLMSQJZ^CjW(f`9>ZTdj* zcH#{CKzmoXQlBpQxNa`!%AnVqe$$F9$NkGKnT}rV@yxp6z)py(E_J|N%gHrWeXSdg zbQNQ=7Vrl6vxDY^(k{p5ow831>iLT868C8UkGE{W#vxx7rj5Wxo=wA6nQuja z|9y|$z9K%Tl>6$YYsOpY8eGZ~Ko>9r5-R&0jt>~iyl^zsLZw|;)tsz|$n^TfX!HuB zDxV+=a2fz*7a>Tk`eJES#^3|rfOK?2g^PO)$v5R338qy+{^#ya5(GG^={H2;W~xxt zpx&RYPh176uCHrPZz8>INLYNdnlQ)$mOV7f9Ogn-6H5z9af`fvyME$E0p85Q@7-C~ zZXiHh^KNWx>|OgOlyf^4E|=8+=wL%Rkg~kxP*iExrZPt+l;jTkkUcE&VlPojyKVf{=^N+ zirF(eoT5;z0D~FM;><1EwYC{DpC~M+EOp0Kek_M(>b>fP_zIEc-rm5Q&jp#`he~Uf zTyE$m(5n~bmB!qp75F!o=Q~8txU=T381vYd=amax_Q5kuqA%VVH;?RZ?-92`r3Nw< zFVk!`-TD@?$NVgfS}iEPoyISsvfFsyP5pGANrwh<*ua2mO2HoiK`m(qbnSfrV>|kY zlry_WSC8O|Te7vUX{B=`&{`?D0&VI?Ep1Skq~7%iw zbS?_txo}D3hhfAQk}BKMV?Dl`2*()dE4Fwhcgnldq(;G+)8AQ|&X-u+hZF9iHvB1_ zU)9bQWiRo*@Caq^(!OlrirZJj$ ze3DMm-GV|$zr=R!dWOs`s)s7YqF_C_ILX;5OV`mcV1`!XTFomH+`4Yj&wvb9`t3>F3;$b*haa$iM{mp^@-55ny|(c@VBvG_ zUn`Pjb*!-6i6BN{D;r2}Q2jtINm|RB&zL(ut9f1!Ue?y2M&>|abd+cKp5kqUDrRo* z+fzR44Pr9wLaf+W&-~j?Ki0R_gDr!Cj3a zR;-qgOnY3DiwVxbsof-EtErz01r_dR$ceq=h>StDf!ZPTuPBV5w+ui{+2hg+MaKY; z+99+Hckd0J-f`{~h*ZUvfNp%e2Uk9cd`BC|Jvrx-ap9D)&``roFi8tFs~v>v*yk?n zIWr=6noHA$xa*6OCbw~)dr6k+<7b>lf8^Am0y;x zZ3u<)t`B?A=rIV#_kSpP6~`uJ(KbRvW>GjGf`nbTIsQbiaBAAUnLh(s3xM&-aym+M zpBD>5gjh0gE2*R&sZf~5%YmumYE7?Y+0QeT+tFq%(WGl+sUKvl)I9>ARzUnPOXmO0`SC|2lq z4~SkUqodv1eDO4<Zl{TD@RRO6-=k-?a;F`|uNo@sSoz?GTn2d6#36eemye=N5A`jmrt z3t6$*G4h}y^q{&ol1ZCU)X9frPeesC&MHS~O^T1HqAggN2Wxe(h)-kKdf^QIM^Xbp zBE%Qb7xi{rT^`*j$8YgHDNM7=WNCF+&J)GfN9c(s)9KMhq-527{?gt$V9Bvw$k#BmaaT ztZXea;|M`9x}?~ToQ&9X2+Nt#ivMNP5wLn4-W@-J$Hm*G2%k{)@0aFygv|iXFP1i7 z7F5TyuG6ni0TY3lCe%N!DXp>$Yo#$+qV)yVz++ay4tHcu+`lRMPO~}vJXYVYV`r`^ zUiM&9cgS@O5KRk!?^9O%b3QwjalygeGO~$&M zJ-d={r~GZWO*rsL%{KsiNtoap~WU2V|ff83fT7{N(i|%Ts zefud_=t+_f9_l?S(405t*;lX^@Z+J@I%c;Gzrt^c|9@Vu{-ZawiPwFV?FrJl0l7k2 zr1Hra^vSU;BdS@Vw(x`^OZ(L!A>)Ggc9O$D`@6w~ikQyIX(nt1vAmDnz3-+2Zr4UR z*;eHDRXX~mZ|9>LIrMZ+ch>>Nhh(ZPxT4(AUSwl6UXCuvG3~<37ucb@J)TL*Rj^m= zItBM$8t@GH`yL;;6@ln~{;x00a`$R`C$ewbT3aDPyK90!1B|*+dD?@p=vsUm`b~WR zWF6Jm8BmZL<>k|MkK>6Jj_B6z2?>2I><(YQZ~M@6IrE|BGXc}!o2|q z7gTQZ`(U)s!MAm5IM@FRa!Neo=av0RZEZk6w?}u?VGMtC?e&;P&#Im5DBq3W`lYt8 zO^;s^q8EUug^}@MzDU|d5>LXrS*bYFmW$Oyc*f1AMcQF4mm z&dhoj>NIGv&(#g38a;y~401cduYL^fWtBFL{2LA_8Q3hj&2-i5d`(Mn3J=-0sG9(fwOT^tl6YFWRuq0?q)X$A zpW8KQE>Q0etJA$hxpfMPPInT?!4sdNL8=_pA7vAi$lz26p!v#wu;Yg2d1koXfnQzl z`*ZgyDYgFB=s0k7ncsf5=dlej#@S9wGl&SP3rXVMwA9x5VTvQPI$m`b<_@F~beV3yK*Gka z$s*{6jPnaFfJgpYm)jT`Bhd;9a+&|YBLf3z~OT3Uq^{T*;7k4<- zgJH#RfRsP_hWjuWtaVlHz~QW%w3XRP;<^$U-6RpKxzoBqxuCGr$2qZXXoQd+n%Qb1 z#MM{ApJ~~U;UsG4w?T#M5ZI;K4=g$ckR;wmi`MVBAJS@|Ua$=!sMT09*w;R9gP6(@ zk)mJC4kU?ded_0kd84VtNw!!JxoTI%PMKyjPA7+dkZF2W@6bN0s6YAxy2xR@q(H$U zjnR%7ki-@WUw>;*E@cvyc=L+R!(h#Y8i>NtNwME{_`6aDKs2Jvcwlu=dCsGvInDaV zcurjVP*#NxSBJ^bvTlQt_?}b(5y2I(dz4P5i~Y?<`av^`FL;bG;gbl6jw9w zp_Y-*7+y|W_CUSBOgf`|V5m)zc(g^KTWJ)}#XH}tLk<`PO@)x;;dYWzcYuDu1>zeD z6t0o(P+y19Rd?T^*f$fsgl#a-Wz1CP&8}5Ln$!L-K3D#Tn7s-CIiKHWUHEW$LCX+a za!CI74g=@AFcT#$nu(qLo2R}VC`Y-Y=CGLv;30n-DG>1n{D zM;#K9_Z3r%j=2bjAK$ji0A9l!-BTK6pxMTf^p?*RXJlBc)o+L52U>=@`A{1Q zHU(+kraOkN5kILEObkCc_~QzZu$f@<44Zm%+KqY8q+% z@3;5BNkXWNV+|0{4YV=A%{z#kb7I-yS8m9T^7I)Z!Da(EV$6Sz*yEKC`o&_vq$ROQml*?yG+LMv@VY$q;rI~gj4kfL_X>VH*{ zSx>5v39{lGqWT8t%1;2Hd3*KTUMD$*zivBwKYl}osJ;86^NX#0m3x_HZ^t#8LBv0# zcz$t|mHygqe9wYKz^w7(pS~5=WGZttk7^%Ma5XCNRmzWJ7K+|4)Z!dRW#C(CT9qY9 z)K|1yHlM(@x6dhVE4#?;R5p*&C&hIU&^mXm$FMTZB}1UQ3s=v7!$x_xd&IzQ_lxn6 zT68Z80~BsK#_dx~3+oDDlX1}|_<-T~`;cAS9|x3fGbk#Xd?B|;Db9KWS!W^6-;#5x zZ#_|ON%G{~>Fr`A(q9;Av6Hu!l)N(IyuCdBc@X%@Vhe><4vJlD08K`L*A&%le~o^C zd{sTyulRqqmz%uy#AL;w^W%F(xKp&Ufb*ZNMgMiJ0+*}mzpoZ%-y$Bp+&vQD9FK9~ ze^&&mpmW}d7jddqy8Z**R>jS7ZV*&?f|Apwq-{%m9Eb7fP+ooW%W=_v_eM#%Wk{{Z zt{eWWyzn~P);ybg2^MHHFUmBXa_DeO7W-3uCe=TrXp6<%kxgmCH{Y50Oz6WSN}PH!`w?Wf7XftwqI`_N zab-*{>UrZ2x5o_?$;-~AMvu?s4;X! zQ3qkjMRtY*T9wi0bNYa>+DCCWr@WWT$In*-Ry10Ve#VFf_u7V#khl)pLi5}FZ1=xN z&`#|&5sbE46kh|HEMd5s-Xj_&)osr;j2Fym4;hDt=aa^n0fff0KdDcE&-l=T@W&@r zRc{=)XJ#D}`@Ur!6>Ffk`TeyK_=Nt+e1yTN8^F4W&ZmgG6H=4ksi8m)LHdP-Zw5}Mj(#2vSdn@__`tjzm+#K$!6MKr0`25=h)*rzlYTBHKwc{<(g%65oA&k= zR|Of|;;Q{6it4RQ#v^_*pnh13LFQ}AdL9kR_vl>32A5FuXUj25Z z=@DMxozO?*2BC+*h&p_?^Dy`WBy>C}M*{IF7KJbhy36VTs6m+IKWjSzRaU)&dW%0k zqT5nH*GVNABmP|2|7U&Y|Aafe8#!=X$i&Kh_T7;f4~b`THyG14sX1!|a_@z%GY1!( zwe(JqAI@`5b0IyU&Ks;|Z)N#x&D<9emq{SDpp^c@;A_9bHd0(B2zk8-%jUTHUH0|LHr*nKWT&*y^l%0ab7D5P14L0uT`J`a6o!z+ z2DUCd@DM@76UQIzqjEoOSA|uyv{lkptw1&+OZc_|7H_+8CL{Si9G;(moPQQn`aGC) ztrx90>Yy{7VgN0JlxL&tplAMyB8%_+mXkNE&&+8~=FRfXImGX8i;@~=Y3!WGllVRV zi`=5*kG*qj4Gjt$X~&6W;hB@o{VFn}(Go*<$e=jgo3cNCt3>*2)}#t!%wx zB#R1%EY=_YcEBx7y^D}WcZe69y5w3as#Z3HR$hn`lF>NqR50pp6_>?>YUu?p2vyCm z@tW#BX|hVZ{hq_Jbg!_(hSAhe@r$9K%zEO?(rihyZGWC^{yHPcag~2X$4J;kO8YJJD}aJCOHgEVI#TGMKo3*pyQ(gAMQB%DCihEhG(82-hn|+28r^8~4^$0W!KA_^-a%KN(SsIxF@iuE?A5N)yRIf3>6F8svW37z9wTc~L~h_Zp@ zSV?ALkDFx<%n`+2SIwMbsWkITfGly>jjB_1d7k|rK9dU7hk9p>sedtt?;$`|SZG!! zu}u}@Xjx9fCe;YHC)2x^ggeu=xMQPlMJ+t8uKGMmN;s4$+5)ocHEZ^?VfHe*{F|S4 zR?svpjX5zuXD%`27{=K1rx)P~;U&lvSJ3aAIqASc~*hS9Gje}(9yU7)4a z_SWF?fj0l2ws~kS@?hp*(9=kJG}C8Cm+x{DTKdPY(l&UKraSdYBDtwTdO_fa*nhB> zc<~|%$3beLaG|-Iu(p(VP=;F0o7wk8C1;u;c-?_YUstJsww*EtiiKi&riOlikyE?a z=yEhj&9>E}LM|ar zDPxu{S#RkSkF8_cGKDqgQ?A8`C6Pj%pj0KHy(C5SOMl$i-0fbLGVRC3K?9Z?3ANuD zl&hnSRpxK7$i&9B74sju{C%o;Hbqb1+v3OF_jw+5Q3N z|0bf;3HadTKz_GCGN`iV)FPl!K+7oK&8wZ6&+CjtJjj$g?YIfNN)p=ti zUIMX4*FhaS5}Y#LzxJ0)YPWrrG&in`d9QOYs7qa&{N8@a=&u>-^ze=u2AEA5eCy1A}Y$|bqjb?n@ z|HugzT7P8B!jdjE`=H9<$gveMB#%eG*c^>M++%l-A@3ZF zX_b$4P&_rW%YC+^U@~wMR@hddg|j9y$(30qIoCnlkJIB+g~b+PA5-hN_^_@jx#1tt zW0;3F4EP__V@Aljkef$4@~e49XL~WXIjwdka0|oZQbk%isTS=ppxJr~=kxfi*ss)`>WoaX=Z_84Rl9B)*<}@xvV}TQ&pDp!&it$vFC27>&dYere>KKp5s!P_ z){yz5Xl;oxHhTZ6&$-ytH+$yWL*wZ|pUT9l^A{|L>fwj4OUB4F|H3%M#(MLot#Q{j z>#E$DV&?z5AaQOjUcjdd`JIsHkXP$fC%OtdhDE{gprF=#272&&jlJ~V>4iWds?HJ} z$cRs-kE{04HJjv#_)}mig?8%UHi*uN^p^xMBh;}ci&-m?xU&& zTAw|6G5EHk&%nv=7LzR3etM&ocCFYw)76VacV{%^SYB?0bq*nxKi4dlb;Y!(UfKFE z)@W_7Z8pWH0P3N>)bw1XPUe+u`hfca8b2%6hV}H5%~QL)1>CdJN#zJ zzxd6~Ufl&v=E890yTDE!L~>jponEcSk@d@wb%D@1L;v^pqyH5R<~2^Kj~Z=y&DKWL zXMc$LWF+!eHK=7rDyRJC17SjF-V>i*XQpeMdTtF1KEB1CkqRzjYx~m2f6}g(40L&4 z44Z(H>MMYa)mmj(*#M>$M_`!&fCx@RykTE8XG@K#1?r!8z80u%?#qrF;S3M zVfQ7vq5p;4CsxS3@J*{95imapzMeDOmb{ufEiSfmtQ6w3yKNUi2uYy6>3Fi-Ua=>t z?SJs(>X!<+7VXvJ+7Y`?wbU;KrMinr6g`JWQFrw}o1NJnuH5;xN^`td|8*psWxYT5 z>WPX0(!m}vuVbI)k99%Uo||!TV_5q$m7sM!L3O^c`C0`X|Ay~(P*_@NBVdOjv9k?` z$zF%hhyv6$RJynP&>}g@6XuHca z^>RxJ78UC*PL`yTmUb|1z`Qr$%}pvQqB;+17}@;67^YfS9{|)Zxu_Pch4tPa<`Cgw zIs8^BV5-iG#-;JqZo|}<@%{}qXjbxFNNX6#cH{~Cv=ZP>RunAAdq zWy5YSp4E3E29Eiq!xL>i{?#<{WivC?56c`CEl35$$6`?No)bZ7lq zbBEu*dB$x#5brbmq2FEaMW$LNa4w=9s2zIU!7UE>yRPlzwhcya4+~km=<&~ZUiaXy zZsgx?&fqGT?`WKtWVO@^R;rk)Qk#Z2Gr*;OAS%_wE?)UDpEx%GeCdXC#`;Quuc>GT zA!v;qDiG0`5@t~=GuU>2yY==y!2hQYwf}pbnCnrcq?)vNgxJLpb90U+P(LrkqO^&B zVb9jBq5TUogckOz#&JQ7wsbHlwKd`n(1~w|UVS*iZI}mH`pWl@RHi9)-Mw_(ec;XV zn$3Po9GQrH=CJ^6gvA82Y$yzMkhE8eHWp34{Ho0a9RS(+*V9r+rbw1f`-yoO1{3r7 z-=2pE$v|aO@IEiChv5D*biCo%8n$Cw^K0>v{7Q3P=Xer zu7a6F;1Q5#qIpw1d-`V`owMPan^lMqiC6YTU5yFO?hNYpXBA|e`&FMQUiQ`VIVo!g z`M8b`?K4?tAdHQiZWb3Vjxw#U`*TmWJAoTW0*@jIL0`R^SRBz+N0DlA{`SSKkDzA{ z(7L(;B?@G#c8#3O{)ecxd<}ol-a!=8JNGJR%LMqM?Q!;2<5_f4*PvlYL`=I+hF=9Y z-OKtlr#?XpC@XqB`2BEYG=_>_ar6Kt_0gWsp@_>(`#M|0Lf1e&u%mg8=K z#FZ(|e4{>Y#xuHOFzq+|VP83HuBh!=$Gr`RbL7{=+4WdFfSX1w3Q11U_UA!$ceZ@{ z#|9|!K23kXPI3leqAwNwc#zR}aejciQ9W%ucy0_J z)etJf6w(Pe(2_>!?tThgyf42E^`a`Wefr-2Jb(Dj+Uv2!h{f&c^SbjTfnx2_%XLeG zr>c7Gz4<9ZwlYP^}6) zql(Tr(qP4pdvRZW+446;iH?=|5mB2bFI%b+ymJKyy74;oR3YwaXj5$9#E25sF9jG> z#OU=vQ`OgxxdG9*CSH$)9BxR!zT>L#ejC{K{u?r4jn%q-AR@e@_Iq|YV7U=EsUYf< zg0au<-CeQ^`l28a3XQG~&MDnC)+=y)dnPv*7pHxtE!XIhHEu}hil#A3Vwgwv-l6R z4~8EmL%t34odI)6S*#6NeS%+qqFP5c{%=kP)cY{o!RLY3aS;5Z8esfcI1%#ss^1@f z2el_>o25Kww20Oui~nt^^kST9istOPwpE42-YDTn%=6i4X8}QXKFZ3)&x`X4=YEBh z;NO53fkmyJ(|PV8@mH!N(%Im4jnR8mwZF6w9YM1b=ge78c-=WMwKZRqt*lQCmpbk% z?wGf%{sJxV)4`IVu06`O>dw+8yh=hchyB`V<~aCTdGe)XR?w34r&EwVS$?6R47|0a zH;cr3&2ITCh6nQYpl<51A|sd8V@b1Y-ONdITqI+=>6vbFt^F95<_dqv&B+Al|4y_z z0M@uW$_!&AM{6X=${dn_ZRi7A*N;%zvFVSqgXMnvk!WyD=vJkIW;5@{S-*dfdzu|j z4@BJ0Z%PzJA^CxUjQ!Uss9*vb<5tyk(K%6_3t9#ukK zL5H_WV7lv*xXadH>*ZF4dhxq-8*}UFz)L#e+-AS{vDRcd&n49K<8n(m9oMkkZ91Om z^Rk+kQoQIv%be-3n}O|o;ZWi>iY;V*8?O4hL{Vc|rhJ?60!9=4rgP~MO;&vm8TOyd z7^X7+JjRho@<8KM>-+0D8L(L{uH<@gy&^RM^5fk}`QZ$d5AD|93ykf}MG2ZLgYf~& ze+;QT2c-RW(5CfV@rypt+VmIn;^1p?ZucAHbtJBC1y~JyTP}H7zU6B6{+*|HqTtWkR;)1sLcc2g5f|@|_-_Wdq0XzJpO4<(0 ze$b`f4U(!7U0EXVbiBf|Y!>(#+-lN041|O<9$&t2L~jweP-kLd9%G}g5nmbV&IhbZcXM_E8B4d@~KC^OIR04;SD zXr0YWY0lLS5Zl;dY0J)5>R$j{vD4{Cb0s1Z0`v8^CHD*!4s;_ds?G<_rY=%f1m_!I zu_5)~DtKzUzwqu4Z@uf?S$65p@u)4o&b za6BOfb+{5y<$Gm4CWC(MfElkp@Q8+3{9)An@%j@zMXixW_Q9s;CnD!>jNCspYIR9+ zg$>oSQUU|pc8L${S*3P}<4XtNUj5HoTs_puMItTRTN&K0v;Fy4W?y9FGA6{=e&sc- zwrDoDH?$@&4N)=o=^BfJ=}D}@wB0)z8~rG!EV!oOn}+o!wU%~<^T`)60gISAJ0i#> z;r42pVYQj{&B6krvPYwybi+2Fo$J=G3v$StYZiF+fk0|;FDoxJ?0M2t^1j_w@fxpw ztqWfHet*Z!70gWjq;Ytlh$`-EJ33EETB`RILEf{axyZ<_x1{hL?D#7m0ePbd0fLOU zyZ~$?S~QXY3+=&_!8HZkrM;KnH3fcJA)tRu6WAymT$<>){0kG{_Ogp z3Z_-1wmS5Fz-3(@Q~q*L_uku0z+5B~;_HMs)H?^Q3z(evjuD~UeQf}lHqlV+{mtGx zmZ-1Wyct(=Pk9#hFxjuR`O21$z z@qxUNW?~i2G5r2=JJG%)c`F;4_Lz*<=0$(gKT6eXy?a9}z3c=#gGIu>b&s~)klkzL zF2@Sc1zdF9PW*reAIW>HUr#LFyz{I-k+pL%*xI<>ga8k*iYSL)S7!b?*Jl%co1m~E#I1TF{iWgV&2pAoGo^()1+71?L3WTu{)V z5#vzA_3OhfqdrJ4v-AYnJbQwbMHDo zt^YNDe-UV8x<8KGDsG*H3w=$hb*1+Z*>;Xw=HVH^Vny70_ta<0r%*VARqMRQ$vE5V z;VVNrj2hd)Ef05_E8O=K>>}GG70opHFj)jDtgnYFL*>|1k?9A@kKZ)?o)^R^5b0cBh*MC`Z)l{BHK0q(vZob`NlTgqC zrO!R;aJ*YAB^~RTk~+~pyB3BOh(wrP^^h7I3C7RUJHH(APH}q?-|@@!I7n7KX3MrK z*0^9~9xbXOqULF3>-7=xSFd+>?8rENr+@M42oyu*2R9#aE5(FvRDjs`_BosYRvexE1a#cYVvdoigP8#}TQ6(yW`0n(b_Z<0 zMiY;-E_A6Sw>ItVmfw0KiQHD7r;IClKDbg~;X@Y~HVvI{V2N}HIX$DK_KbVG7nkLD zZ|lu9K=*&Mruy6~9>iOaCO2rX9j+0*P$v)hM&8E84(uZlb^hGswoesbXTv;u_Urqf zvOG54)sOGBebEtQof3Il__dejx>mC9gIb_$w_DAI^^CA0Lh@$C7N4mWVUWE)@C`z- z%7xs!8T5YClFWsU@lH|NRpA2kS8l9K@?L%v4_LK-19qvFTOH^SR$XB!Xd9TWVpnH% z9BusR8IyT)VZQSBM#T8W$ZiSDd_|#((c#YD5^^|gp^kH-_D0CuFI#esQiT#+W=YlBBKf-BpnIMsjA9H@|KV@X`~2JUEguQzAMtk34u!cE zb7y|TPqA!KA0@y|{kD4MtGj_(UWna1e><)KcMpWN87JErZUvR+9pJE;?nvL}8rpwn z2&enqH}`gYn*Az*Wrto@+#+ETrWNYvI+-z!bIeX4@7W*WFH=>iV=u+XpSkf%IX zRZ0|YaIjbEo}YtZ1X62mIvijB+;u3@B!+LIto zu4N6?i7l^2Z&f4bu@lrntn*xaEtJ8X`tjG}+^#k*c3F4l5BuRokHW~bug*Yd#1cPm zSP29tT&!fyESL*VpQDiVY<<|Z2CZ$9He*hK+nxV@5dgOG&B2Lq&H7jd7?&wf+WYCq zKCmlCn~Q*d^M7op8rNupBNR7kZ;rR{^mf~W{uWc2|Hm+c3dNB3$M>_3{*-*K2mb?c zf48-qEIV-?mTcL5*=aR?aQ{moEH|L5$d=@ON_6W>ELhIE?!`sNy%c<-R?a-S<|byy z+8OuxzcBZ&?K?p5}q^!s9IpL2#_7Tx1KYuu#P#SPEyD&o+t~VPz z3dZRf-2JWQ-M~@+70Ex{){-I@y5}JcK(nXON9bt`HD|w>3DLSZAsL4Q_7NU#>)GC7 z6^_h90&yb2f_8NYi)0qf78mhJ!9o@ru@}h}d5|Tu)K2*$EN54pQh4Cqh<2w+u%MNe ztD&+C5tErvU76mFA084K_Cl$JnYXS{Upx}&_iwu}Z`pbGWx|{(s7rP)7YZ16F8WNt zH>t+K)psbRR@3RnY&(il{R}I720U^$j>DyCoa|51uH2)Z(YAND&AN0fv>*DAW!1nO zD+bq6j(H4{YY-0zxw)cs&au?s%I}vyLL8u<@M-?PuZVYCbNPd)+ALd2er|_;TV7vY z;i|K7%(|n(kJea%RHiTUnnus;1C((sC_h}!F*?4&%Ix$xrDH*hJ%_2zA7`G02m%R~ zj>?ehdveM=L(gZGrZZ78nBMptfJDEt`q@*VA)ry$DHm|GL~3|}xrL_=FYu4~l78+u z+UhfEBcQx`H45&00C7X$VzIKp1`A)aXc;QhOU*o77n{|b6u3H5Hu}Sz`Xf4cT~?o) zo%^1h#kG@Fz=4?>DzLu5Oh-%eW?5}lOBlHPnO<0#vr&m=Wlt2UBqe)U)kPMLr_!7y zQg#@`W{*Z-&n{GS&={Xfpb^-xSPR}m=3YclMb78GCDh}+(kjP}n=`@Af(q}Q6~eM} z?YCJA27OzO#Mf_b@)q|5BeXR4C_UPFQ+JGbyS&4?ekn)XPUY~U(|$ppvi;on?;XOv zo_pKo-Ot&;fg;mZg^5|;)6_sezxIx)0kJ0ad5S%iKl}`eV z0x;HbdFXcNhvfv3(&#sJrkdUV0no2}oR%pjY5^**OswLa|V<2%>eXc$$h&Nk-qhG*4fnckdSlM)7(PiaL>1M&zWy=o2jLarX$j|GDV) zI^vw)z@um1H|pAmb@$R`J9hr%(#!o(CmyGVN+Hqj!ZHsNU)VNjq&+Lj;Jq|N2+n)fvSutXw% zw6}S3Et`Gk%bEtyEe?^`y-i-tdM<%jPvnce&@qnCpqSOOjX_WrOLyL(bF|RZL-y+d zKi}a6N~?$Zf)|LJ7VU)7^y}~2`VvR=I|_y{6+EgZ2(F#TJ1rYNX~Bzk5{L5I6s3>T zX%>klYa(|<4)<{yD6)(^O$8d0g@hzW)y*C(rG#yJ1Sq?1q=piD{;NEL>5WqeO9DNS5tAE8wtRme>n{&Yb_{^QJ?UlMReQ;IA;`Yn;hMzN* zvH53*+r-Sc6OETnGS7T_9gZmf;_N4j=39R&qn2q*Jam3?9V)AXr>0fM?cAa?c+#*n>KR(g-A3-#!Qun#T z0|A<2Fitehmflfy^dt*fziaU4E6@nAKabpkRL?3moFc-Qm83}jBXQegwsRRMA>1~U zMpM#v7$>LFMzWjtjN`QD`}{ZK5MxG2qId)55PI^;gq{EyeV5VoD4(I-$yF zUwY)jRTpooOaMd+Qn<3YT5GxH`Z5x1*{VLWm7IxH4v0+_t5&>t=a|ih^s^uEKNQzR z_MI08inX4%3_-yY^ZWScuJp>Zv3&C=s!fQ4)YyAA)gxW{p;?2MRRj4CW#9s3)r3Od z+lzRLw)6s!4hzS%D4r3!JT#X~j`rhvqqN8C4Ns|@$Yzhg2{Nsi7?ukBdYZfnto;52fTZR3wWywj*rilJ$`1y#~4HK*$dv`E}*CwAdV!g)#6=9uYv)Sl!u z{52C*EO9XHeZm1)yx%*0!-&xK)baV%AH~!PWyl65w}09Yl^H+qJ;JlOIyKB?a<~=( z$~2TMkes>ym#Hqe=+yByU3-=-xHvSZmC1}IzCZo_Na6+6(?&F0ym5`o^V>u9>#0rU zAJiABENj4XKhF+|ltclv{5{W=tx3u3@ZikbxIb|4Kg9MOjkVkD$r?Et?!NXpmJulS zsjt%27&_h0^$CtIDkS=4%&Y{D9_$6avHuE(U#nZGw%LbFdp?%!`pm>j0g^aXvtDX;>%T_7#jFZ8 zb^j-}zFd4$(;F5!cU9~zA8t>db9hTI4EZx)b{*Mb=jtY5+=Gae)-T`cj4KoG??_V` zu7zG$8PvE0T!G!~3<_CuT?AU67JBYYA@q;F>M4YHpRCe-vuR^en`zV=VK8NS+D%|P zd%gH$N^rUnJGoUe0OrMJ`v5_NCtA~W6`N?OhH8ARdv6?@t#M;S{c}N&j=eJtxhzFd zi~|rsj=d>>=xS1uGCtI)a&-uTww0MPZ|aTuQY_ya^M~GGBWo`0?ch((7$5c0^0c2G zWRZO6&w+Y>a6Mjzg}AT7rN`{>J6oBKMAoUTj?PvfA5MlxK>*yaW^VHb?^sTu`)ymB z*|^p<$)Mp)Fwr#CCnj0VnxDMkowdcUcO2fJ%#&QLX|cwO^IRBVJgk}ezEh)~u0Q?_ zJK*1~BOvuwXXMICKo`v;E6_#rK|E^Fwkfp`>3DEgtEhmM>O%pF2l8(DGRB+zJC1Mb z(8|Ac#AwYBSME@X>F%kt(&plkw*Jk#R<{T|A9!}?b4Q7kORY$P<(h>a#9;vCh^1=a zmB2@%8Z*=;d({MaNriCCx%NU-4lPn3x-n*J-Ey>RS7nf&J7Af-Q!G(MIkau~%a~OW zxoq*|)=Cu)Ew{#k^VTRRia!XJJK9dXv%uTSxxp_>@o}YyJMU(R%LNWq7blaco^J>K zLG~3Vdw;#yJb<(6P~c`=rzf=@w?w!KQ~X^s)SZ6s1V(#Lw=ivstlPI{vFr-HEOa?t z9GB!3H~oCSIB^f?zTyJQmP2u3QTBAy^^iQndzqMaZSe3lP+8JDQgiHs_hXUNd$-%@ z!-mQCUzx=c+MI0dInTt%(2fG+M|uCv#5ek!suI|m8`}i}E}0I_QBGRcCz5b=tzONexodxp}d!;-oHz~Adjv#IV-ZR8DphQ zEDv#!;-Qvv-$viw`ASl2N<%`#gnnD}^b31_hXHx-(jLYH4TnXQ`9_pG!^5?=<>WtQh8(*uNI|TqF?A0weyy?mVIfqlSt;QYKHObFU`A+jSfI4 z#}C^ZHS8$$# zw(4qO=0>l?g-iV4e~lW)c9|Py>~K%;!0FdA_ZPQZd$oePB8xXV{hTaN?;f7A&xEO% z+lH`)mx*pX0dV^N@@34*lyU{-9ZSPxB@Qg-2CCZg;v_)QuIk<@a{P&Bz_q8$tqv)} zxI(x5gH(e`nFm(w-S!df2SU9g*3frIEoQEO{x0g{HCgyS0RzJPuRbL-Jmt`+?IHt& z?SFE$4J~8MtC|hGJ6xc`>kTe7(Zb=FA^5@vAqzK*bkAOYE?98gf+i#~POo9mXPz*s zo3L#wYa^R8@?X!M+?^ogc)6Eh@o(Zn4CktN=zOv5b>B&tpN`fFttt&`kJN$~H@l+O zRkctRd{$|xpAJvC$6wvq?i?U6uBom0{D7vv zO(8F^P`iEFBMh{8P4Pe1j)To;``64xkk3-JQ5LQzV@xpkSH4yEwG7B8=E0kPZAPyl zsxOB3ZVX3GCWpT`x-Q+k_#xrl`msfcdHGz0enH1#n;!sZKgo*7D36cGkuTU7D4UtPwS(S2$i?G)Y&#K}`i%JbjnlW;d0b{N=t zO?eNkUq`!43U1U!r_A_!pS?s&?ak$cQ%c40kMZty0bW0aYUs`nP%!A+eu+g{wC#6k z;f#-f39OI)Pw02=e`8ty z#{z)f&irq@F?Wjl|DS9(|JRTH{{rQnjN>IbuRfTVtS3G%_DRwbp{u4b^E>cMD{R#8 zFMkK3F*sn^C;G@yZCXCmhcJq;6_$z*UrI4o?E6-445jnqTV}vG0 z$Q-?YMue~M{}KYOKZ5p8NK3HQ-M)E*W_{~Hzo0!>^QOJILj^Nm!dbZ*z)Ze^hNg%N z4%4YS^9%s$U)teV((&dwy5XpArRa!GPhS?T2gL>K?)YrL-@RndMV5pN7+fYj;yc=F z9mb>#I2BU&{y+5YLz4KN+Q;?VxQ@qxec8Ee_okHdF4HkJj zGgLTUV~Ext)`+SP8|7;mM5Q4rYg`vv6EE3SC9lS&FN&}qM7x=9aRXM!Hv%kvbAg~s zvK0t8?#VFIMnc5XmV@yNQqn;t=pNFP z5PJv#badKvLH$)N$G_rJh1RzzQq5=C05Vp`3}{cxwb!3smf0I2F>l-_wBjoM zbktExw6xpP#8=Lan>QKvilGBuK+>()>c4pL+`oA7+!BXwFrl+;Mp1?J{&SiAJt_9O zbrjK)G00#yr*lT%*{+kfcd@IK<4$#H|C5_{vP*rVzG!zUl_8|TB@FNfO|3Q+^_r$j zxXtYb1=b$0A9tOwFutfSm&ziv-WC^;RHx>^OnpU?w*S0}Kr=Y9_lweXIa-m+9}t}1 z{5@&UP&ngHNhn64-l>&F#L82U)(&=b`76?lr{zW~#N{kgP54Q~l$(TdqmzM71pN5& zpW<$P<}8kz;re#R{xM^d=kRkY!|RSCtK;UJbFuM)LCns^Rwex6U{e=5bMxuiB_uy{mlp0EINs+Gzogd6(67!fLt=2bRAoJyOVWgkGL!!pM-$Ek)74lV7dA4*zFy} z>g+-T5MRVlo)9OZZtJA<=R|b=mk|^--`VoV)I{8MjQFBvKZgLFL!gh z5G73FmtOex>T|>!8P~VvK%7Pb8V7~K;=nWVkl2Lmk?&53C=UzSemd*l&rY+wGt%Q( z_*0xJwoOj!Rk=A(U!8QeWgQC}M4G=VO%r;))p;jXuARi9q6P*iQ<(?vb*i^OD)!z; zi+rwEDUbwgu#mPXr#u(K#Q5}a=A&E@=qr|$@L(XiJHvQ3exW{C`DQLmQw|`g6oRE} z-$n$p`PrNEYu_)mkkg#4t#rKhnfche5=C6KaDt=tlmV(=PSgEs^izqACD(pviNp-B z2I7KIqJdFGg6_PlNzGeXa(nL@33`!heXB`22;#Q5@b=8=EdCmx400RgY&!j{xGQAh z#)*I1k90fI-x=^<<9ZEmKilTGrZ=32To-4!cAa#ON+ZPLm!8-Pau)+VjY}O#itJ;paAdI~lYAKfd?ll{w zbZP8_v;}u^7R`GQf*F^SVfK_aDUK-<`lF5w}?7A*g@MI1B6q|8qLhh2LuP2D{@sx%lF zf}#bgd^~h}bbmU%9Y14Fq`8|WKI6-|aa`g)EKOGH@ss+2N?KdbV4^H165-{BTR>hb zf*#yY11tFdfg^MZh;K$P>T;|rFt&by{J)5Bd%fu1^`_DA-2`>--{#-6m==NHc;ls! zE%v3uV+7qEH{TZx_p}|jr{!M6ilK~s;5T%`hukXT0}#KMtEpDVQ(;H^Q+~7Zt56Ar z@A|22f^svP(s&>Ezn#vKXgxBCndaBoiRAqg^gV;QPf6|(o64k_j0q9eu=rA7mB541 zxB!`C=GeX1imPW<^rS}viv%>e>G@%VUn;TrWDWcLekTr99D5X}o8h(cGQifj!Ky3H z&t6M1iu%iE_aNR&rtPVXkzMH1C=dYybc{)|6O2w|L!G1_H}vCa39>gbNF%|L9`w{> zCKbW)KZ=}@vkIUuTE|!7W!=oI!8PFI#88*Q~ES#lxEysgt0mPqoMwc z)w-LyB=cO_{q}c5xd4DBpU(2$va|xSvUAx+PBZ@H@aQU-cxu!@n2hr=nc?bp zS&XmSA)_H!oWtTXi2%ud+cgIC4HDfA&{Od{ZObeY@WH}uyzneNeh(AUw~b5-|H^u^ zYCgg!YX%w*VJVe{HVRWJ+7T{-cuE}Bm+e){Ue_PRqviETT8yttd2IKROua62_93wI z8Rvi)6i6H*b5IY>8XM<9l%6GNd$_S^JX_qt9X6EZ(k%CE(ucQNJbPTs6N{*BE} z4G*dBSKGOCcf;R$(!<~i-b$O6m?n^4#OM&*d@!#bTIC6 z&pz&ZomyM(MQ^*4eDUuArz)4$(>;rf5ZRQnHt3XX*pFX2KV0;miPG9Z^XqEr`B`~A zdma~zgvx|6ExxqMVcv>ef@eNu+~Q^fl%|%kH-Bq$Xpz?x;YlFuw@;D%kp9sT>*3b6 zt*QLpb`#kXhm|pQjJ#f@>H0xIwvl7%6}hV~Kz_^Bd7NKnSaU-9eu@!TRq8LnfiSA? z{!!N4z05Nno51Le>!I&t!bEvZE$zp{$hA?nBC8i+T-?IxlWEY`=WW>;;=v`*{wa$Q+JrKMVR!b-dihuf`>O zY}RfteoVGjGhRhnYF$;NtlRT^HBImfU2#pA<(r+KlEQxk*%Rz_=tb|jydovGjae9L zx|n!>gRS34>O{SP%Or=LV^#-95PQE43FZ>`+Av}@HAQDO%7|SeKp`rZVkxf@^Vx3H z^KoDulWyKoT8q+lgTd2ZyyNF?#0&$l$+zr+h0mBdvl?`qD{D=DqYC(1vu z(0#Bm%|fW~P|5d!W#_#_+Nl`x=%4a+~%y1YfI=YS`US$_GfAtF!V+IdYS$-|M1nu6O`}w2ldg<*o#a@i) zr+H{l9_T|&=4ncwd)cA&DmmPgxTmlswIOe??}5b7uSZm6m_^EfwZHJWLSLGsPR8 zzH%R>npU+(et%w>cI0s@pSa*;6O%1bPcUZ+R%1~^M8JYK9&Tb+kr@n^g^T);)%6dR zf@*=dFT3}L7IBa~ANh**i3f>W@2jTk>lG;|wapTWWPSZs@q5L<0N*6(=PLm9e9oj( zTgsbAY~{79%8+S7LyyV4=9-yDnkla9Y|Bq_h0y#!2|wE}s`>BvFO`?k^MePlvMn>s zM)8e`uF)gy(%6EmhazG9q`CI-`F9$=i+WN-6ndQy_3ni;IT`!Kmj{-sm>3wJLa3YYXbY6Jzgmzeoq|c zQb^=P`CE)6;?LJBHC_Gf&~~NbKb+)`)-GS0S`V{^HOhzeFQZ=yG-)?=c{6;z=#^`D z*|D=0E9aW%oHWkg?zER3TWCJ0usRDcHgcO2w6Q&1QoUhDZtmsoH%j|@f-~0OLz%no zxtE+ie?k@AfVXmcH?Cue^R(VKzGtDPIYsa;vp8mQ2`PZjK9A3`Vt}zp=g~MQ6Lr%8 zEw$=_l%fl3VsJZ8q!9Y4pIy?48a|$mOag1_Z8Y8hLMR`HYVv;eb4Nn8)wkylTVNiB-?>sTPOj-HwBr z;_&bd1Uq_cL}P$BDCgc>rPBEa4b5^-PU=Dx#+O~d5{hSi942z;=?9%S?)r`6?RWZ{ zZo)IyOA8@Ofm$XQa1DWoiC4nkjuGCDiEJpfpGaVE29GlByU=#F?=3@w_}K;@XYPLF z*+P%NyX#Z4;txvJSOBVaD*Sh#DMFy*q!*aC*ULK!I?dgM-1cMcBQG%#XSD%wYj9BC z92W>_=pqT6xN8Lf z8KA@u^sR;<0MIr?J=-Cvb>63~ZIE+i1=5xQCY zmxlE(F(ZE6xVEU*pEkRgo3h-Vt!lc>HI5bB9+2m#f?S}bMQWQ-d}Dc>R@sWT@S1}% z#DeFp{`zI_cxM#&3J5JWH$}R39DL)Rhy@{vp778-Q2YCv-|&6Hz{bFMLwQsE`V^b{ zvNu7ZCNdYrKSSyb+smEkhJtfVJWe8QZosNjrhpsx-PGj3X1=xPubqJB-n=kw+w$`{ zP4-_0gGy8Z{8FHkpHVY<-rwf%b}t~JvH;}OxSRE&*G1#_r0?G^#NZ!G;WRwUSucp> zn(++)U#~h51>JYfL|bu^LpUqlsU8nbTto*KmwcnGHc*TB%MQhG7gNsw?W6585rjx>6Mq-8Qzy1`AKY9&}xAL6&Swv>4usHN5Qw!C+ zU_mOgHC)73tvr_kR2JqRK-lwzAoe@h+-QsBf#6J;t}LUI_F+O^=eW ze+y-q7WxLSF+LJq&{frGv)j+a{<_}~j?Jo+%#7<()@f+ZaH{pp@j_8-E4Yul@IwJn zOm1r+lWnd1R~OTW=;!OyM+NOf@g?g-1`}3PvYU+nfU4`2|D+$|HlQjqP`uP zLjc5D{Nw#><3dPDSV_pp$%l-_8uEUXJ*&sm0WVh*#G4>#)7SJ}>E1(IqG$01wQ@jrYwyZi(Hjwb#)q0eRIU4mpRos-dJ(bV{7-)X{Es3 zF@arAxmpwkR)yPQAMvX)NOf?Nn%jm!N{#tf_yb23%-|$XG>g65yg!#(_>*Kv4tYAx zPUC)E`jCjH_OisXSFtO4Nw*U6&pE!Fi^u~o!k*>OiP`l#(Lqpn|52dhdw<@KX zRXhI$zHQKl->*lv9?cw-XTo|O4#8V%7);B1rbf>WOTK44%i5C?>6V`T?r0a+7V7ip zl%L_WF%d`6x13(&j~F4ryE5RB+r;KWb-YT+(|xe|95AySQX?c*dE!XswX7D@gb;6B zdv_gO&8c&njq~PULB4xccydH0SK5uzWwkpUswp-(E#lU(ZArpxR$>z(su7Qx_W76* zf+L;lkiCNi6~<`5#Eb~U?U@x8v0ib#bGYBo7( z_%R(4_}ZfQTo4bGwK51}LWk-%wAj|Hx0I7iK~&1LnX~<$gA=uCJk(>`C19%072h~hij>FFv@Pf7Fws0#Hlk-Q)}c{((sGdK?4jXn(%O1?dfq^>td!DG zQ))yHFR^jnMWhBN&pd7DuDm(!5YdnJw9}xfco;jr2itE1G1Rxj&so~Sl2cS@tP=Mt zk6fCM;1B}JqMD|*eW{-h8Kjf-VaH4cI+E!kKRmv$3~H?DbYSY)Y zY4D?`$=|$S_%In1`vcoMZ4O>?fi-s?g1!k_Qk*-yVTIk_g)t}xdKkBDDl zvA<0WVnMZqIaJ-=xviELclinL~wmaPl~uiMsxj)G0zGA|_Hj zJ38(7Rm+?-eF0~(^s?x-j;BD|@(Tu72Dw9eZS;sH7vYWcK^^11Bs|kBtDxTOSqntT z;Wtd+ye)iL$;^0OlgqF6T099~)v)Xe*}29i@9+}u@8lII$M=SU=tq&#OcLDt!PE{v zpq55gBH1}(4~ENYeTD^=p4hG7QmpBspnBOh&U2xFC{`Otsx{3QD4*#<4LqT?D>0xS zql$XSue9QRU!>x?5?A6J%`L556J<5Ob7WWH_GYKk`vh!WUmE}9lWz}h4DU~Qq6n>vlKgX+DPhPw+$vab zf+Rb~wB@K1H+6ov@JYe?CX;bv{5ErFgW{#;4{bU}a)oGA5v^E#oMe>Zg<&K0+D+&d zz{IE^UTfKXa*#$pBG{o$Vj(`p*`p*T{LH4g4~$%wdZnJ3<5ZH_{Mw9tqg^mUHz;!K zn_=(!lNL8BO|_Aw_c(aKMEW7YNn zU-9F7C9kEob5KZYw1s3Ul)c-KWI0agmVT6J)za@+#WYjj!Fhd`lH|)_bFsUfSeeda+!l^f}Bfynz0nIiD)jq14m#KtkP`6 ze`J#o?!7S5HeudPK*G$WqI>C>JT`Eg4aM|HEpbeNu9jSC7?M?iO}ml&nIp$vNhy7F zna-p6sU6L7c~N(h#Qx>`??1xmTx}XSnOCz3XtZH{2`)O4c+`5d&!3J6;ire#o=MHH zOB>0=hoX1FrX%HVGegv4)VxF9`b)P>b4r|XQB7vt9AKusJczOP9cp(={@v3pb z|92YijkWZHqi~zDKi~?sOTKP2w?!wD~#aGrmJ`+ju-D4NH&v7>LA7y69JaCW^ z-)#!sW;A;P%t~f9cKu4nr}Itee8I%34U@NayUZYq!tyOEzN9H0> z-di)Dvs1^Np4|gZH^!QsH>ilDnb~R4hu$c;wETMNI0L60HCkL*NW+l&<`WTbGH-$d z%^8W1cY22lCMBG5hNMJ{<09{mGDX0=4BI}E88Hnr9CWFK0wXB7itJ#7`|ygeohS;A z$`T4ImrC<^m)F1|&-`rxZ>xi1T(Mr)tpzw~++LI%1XQB%B1T}f$U-@jsQ%ywMxvV< z2{Fp>%dZ@(J(f9u0-vu&F!6SpjWB7M{P{ElQ!2&^vhQhbLo9_)6uo_FMW{&e8Q&Uq zuD=L_!e;hrM5F-UwPHCJ9}-YsR=+y{CdET$^=({IcbYkjuR^v&uc&Ou1dbKb2dxiO zgwt!aV4kn=c_B3YBGTnEHM3|9^RwRGV-;x{DtUr(FbVGKG^PaLr7aLoq$x;S4e&=H0km$RCH8e7^{?sD6L^AJ8O`2d8Q6}|D!qn!_< zQHpppV^hmMISNVy@hVO_$tu)nn5Zg8YGns5{$n#drEsb|4T&%CRy*8AMMKvbi5Hdj zw-In(SI2-z?Q}hZ+u>SmmF~i4@A>eyEm^(EptCnjA|fn83;1erHxgL&`cmi1$Bv@r z%aPHW%&ey~AHFl>lf@~1jV9}ywzJFv(BgShP77KRsHj6XbK@{w8i;a!_y7(`*;#Qu z%ToUjH?4(NL{gDWQ=g8IEkE9Ce1Jy-eHH7uCBC8#DCjSTDoik|9r6iQFM$j=y+NR> zL`tUqP!0Vz8Jve-#TGI_eNP<92BdM)XGz)h>;BXS;twy(fl6Gi1j&$c@|(`{s@fSHMF%g8;0Wu-%f zA;~dS)m3|6h|2WHel zjhCbEk|&`vza$sgKc`Ek0mmn?=D@UZ5ki21=+lz%n8CCN6pkDEU^}VFzraBS!Ifd^EBSj6JjLRRKOhk>Hv;kQGQ(!CV}QjV$pfM)q+?fkKij>{E~oBR0> zi9EOaBqWiu&ZO0+DR`C(WX#y3<5~a?9S})r=46J7*vI1>ylv$W<4F)6q+!Bd;-UE5 z36$4QF)Te^_8>m#9!zMIAR!ri*1$P8I`OXACOgG zmX334HHSxhZ5RBg9h6fQniW5NAD2rYeRypallo7Hce=1oQfcC4x8f+v(3#bf?FOR(tRCSrY!xA-%Ad$6{k;jDaPDYtLkk zoB!c^<#onw|Nige-mgmbR=L8Kxra27HQ7`ZCrd^cWa>?Uo7j}dz_Q3Zw_zNSL}v{6 zDnW<~Ky=6ID##e7pk>^R8p%m>vp1t8ec=%@_$#>N>#?vVAt_FcWXrQrY(r%Vb(e7b)UgXqd zRPX^^K@E6jW{wpKnX65(<~{9*b{WThH;fDu*x)wuA=a7)Ve3rN9bY!$@*G*Voh;~x z?J!RCGB{A`M${OwYypYD!?nxmn_sZ6Mt~q84j}o<5nb|oLn;ko&-QEW$f;i?W5JcXy3c&nqgg^M4Hj|_g*x%812n? zM41N2liMbnE?&A#>88xaZgwQadfTwG#t!D&J4TmS9~nOweZA-izOI`9s>;81*cp4u z{Jlr}7SP~f9MJNjjDbWJX-*ZwG*;7Ecco9ou8M0zX^!Tu;!n(<0c9yG zW~nJNM@x+c;-ssX$p?DlAC;AVwTS>W>U4i4<`(~TrU}&$fTyV zarU?6)381tuV}~*irtTJ;$*Q_ah;b@Q^xrT);4zR%F5uWEvGb#Jf&|Olcd&3GSnud zb!BolA5CNI2yG}u_g*J>kV|G!;n}F;3>QTlX9h5_xrwHEO1+b5I4o|(O_J?~Zf9=O zS+{9spT-a6S|M{Q)yj7kYq(f?1v!*uN}aU6F;nfm!m1R+|cXcawL+}20fvAwGk?IV@}Q8 zIB`?9QTx7$d0iOQ;!!Jl*QITVF9i%Nq|v5}?~J0d{nEZ;fB*G~aMDAN)7f!yzCz>R zw9Uk9rP0c9&1qq}zu(Ra9Sp2n*tZM)+^<$s^#xcQT?K^^DO;kMeSw}bkY1RBv*~xd z3R9bVvpZn{JdmR-O!@9-R2%G`YIPJZ0DSGpVTb;ET41_;A3liZom(=NDIhilma&$j zE(UiOItVrg9ZAr(!H7iD7^eoQS3>uu3NDumSoQ@z{EqGW&qsYD21r@{ow7-}Krc@F z{WGP%zkv^ui0^;%x#)+Fps?Ye%@^(8UAk*Mqt(F^W8*CB%?dg?2G?t+GFe_UhdhJS zaMfezB%DxDqpreF*P-r{W{N8(v!Y1e&Dv2jx(TBCiztJ(aIRWR)_`-d=(InydTrJc4%~^fYlu->Z z|Hc{RDy3wm*=@nC11#Uw3N$ZFSvLI%CYiqREsj-#nIxMECb`{pqcl{7F_eSwIn(Wh zrsAwyY%SKc;1cD){>vt3@=RTGOpn1+IbL_O>ZM2JtRoB&h4 znk6%+iFfV%nrAk7!v$NRGp5PrvGA?p%Rp8GIC&6rCUv9=G@et zu7fS%)DHBojLHE_X`nUb*m!I!lhhDtXsd@>*cMs@x<|2xsj@b`<1L1urwhkv)Ymhr ztb7Q!9fVOI?U^NswS;Y^K|dyS1hrmMb?lHQGElU_8_?|n|KS6OOnBdL{XxTbEH52z zm$RQR^I^{X%6{hPv7CdKdXPy{Pc@wthbr@l*mOK$cxt83W87;mRe97Ub$G|7+-rgq zC5VNaKCMD64!Dm%_63oYyFFs1?ySaYC09GA*2C(xShu0>_M@r3Q(P)D< z&GkMn4=-~lUTB*CVHJgjvg9XRSv;@w53(CO<6c{im6c+3=zf#>>SjUq2LlZR&XT6I zU9wSBoZ9SMhCUo>yV|55iQiMzAwhI~s*Q|Io5kmUC=akj-JO*IBFD|o=mpE|i^6-M z*WEtm#lgb$kuR&C0a#bQVsPUB5q`D$Yr#?^^S&&8GYK`u3mwx&Q0ps>>Ss^| zF~F5l@!gOA9r7$#2}0ayR>tSS3X;yMG+A#L2qjD27=piHtxK0zbvJj?nZSQ@fNKF9 ziVDVku{5JNnJ_5BDDmjo4D!3lzaS18nn?pH%c_~3(%{V$ASeufQwo+)cA>yo)X3sC z)J125prbidN69Ej%)v;J7ZKBwWc!prF&yvCYEGo?>z%&+nUumDWKeaiqJX`=o~!pr zXeL#%^L~f1)Y}k82p9HPVW%lSkb|LXPPVUiqN~4kA(EBEvuiMDI`yy$@AFZ;!@2Si zEwE5hfk6RRdM%`p`TLS^UoC=7f#+&sp;}0z4%J3+9UeoF9BZgicOk#ChUyca@5jG` zq&uj4?6lOcn&}M-D8b~$H}Oc;WBwqSaJIYTT_;q}qnrqu`}tc799Gd76VL$xSbvg8 z%aBjP3wwL3x*tI0kAT9x-rttpbQ6)63t~vTdwa|xfT$UEingu>){RRlO(iC@M&F_Lt-#_^YhghjkxlHOE z<@|QK8|fi?lGKffnEInTwoyu~Q`Q%IosL?9Z_iemu=#}ok+e%*K`36TKRla&kUWM# zZnLR6l^n~O1hBD^M78@O#Q@`JT?)iOBEgtj8rn>acYnF33MSwk3gLTV`;1X`Q37P zpiBiFbu2S|^Yfxfa6v>}m#WA^m@~_tSq$|;jG&YIIawQaLxdlbV+_$as)-7FPXEm{ z%T-(<)k+8J3{-dN1jjL`faqLoMyMgNSf(pj3NhWG)K3zd9}=*tDV02Gux09K9oq-1 zej_1k| zkfUBKRvFSW2%Ew z6)hgWn1?m_v+Oj-=uY^z1N%x1-JW0`a1SJ?Xjk4null@!yGNN0MItP>I>D}a-BE)e zgow(vQ}xtjw#q8&@2=hKt0d!wmJQz3m({){CWT~30s~R}92SLRi<)JEisIA1>}rFB z$yN?k*8odQ#NooEPr$bLlmNS~ zRP`)5Gg%8kIQ}`$JAXK5RM0d6{NMQqtQ^*L-di|jQBX3qpNLIQOlL#iDj~(OzV(-M znhH*f;2p;p-M@X@*K)RFht8DN9eVfl#^4qdP<{M&@&%o?FB*>X*QZ}a0RuhCfgTe- z{c--bg({EjS6DDGB6zl#|BeYV*I%~}a5zYqWMJ9@r!>g|BY)E?n zmUkZjK0F=U_^eY7$d0!xtwQ zSRN1*D@7a5_brbvx2{PyFedMGT^R<`UXhxaUsm3PV0-76NC{V~2w??xWlLew>;CJvW89|EY2@p{se$FQpCo3%4LTxt!(IKzLbKOivX;5MD8T zo$+M6*aFD;iQ?oC4aW;rwlxi>64Bdxn7uK0$lvVB?O0v2t~aLRtUZ>%4Fp%*}TO6s*{<#dcFG4x*5bedS!h(c~Dy)dha%M zc=I_$5lStXE>Nwkyk^d&?I?fYi>!moWyJ@6((&@<#5k`k+8^ushcHk?Y9m%HPALh- zLv`|pkYG%~2f=zvZms{dt7&@9qW3`C3K5?;H` zm?!Z+{z*WdM$^Qv!@77*JHPkTatjCXO^Feo1~wROppSc5CnvNQhEMu~#+}zaXU?W+ zbe>t=pH0MVQT7`iXs$cyc%`+vIf8tmP~9I zL*JMy)C`^ij*z4+Ib9(3(u#>;h*OIxU00ybhydWDw@4FTf@pCLa8vd`@B}vw8_C5g zUrpAk{;r%%d;^emsC?NJnM{ z(Eu~QA!)Is4`sS+ZBsQjsSHB}o=x_VjaO`^OAe1Fyz?{9+FdH^0eHl*W;!fT4AFgN z-L!L_&#ix09%KAljiv!;!D+r3KQJLU%}c{i;O=0C^|bPwP#-TYjuwd5C*gL!C(M;Z zA3@`6Sa5+8m^y`!yDFyx5Ys1@@s~Xd2A_jixx=zH-Pk>N80gNRdy(v-;3=HcLZua^ zIImD)P;~r05Vp@JPRQcK{%FIoy3L4UVk7D&Ua9<^-g^GvhTYA9;cA zK&|l&J?g^!cYM+|gZxu$d?PD@wU}Q{aD7ZInV4*6`?f98Y8wM?Tv+TANBf0U!3`~? ziaaT+k(Vc8_<)RA+LtF`D72Q5SWB6f_RHScrFGKW)Vx{;cNK$OC;MuxtXbEQh`>la z?7^d-SusXA07UaRGVD$=ne|6GyOgUKhTFmwg(5ItbYagk(mi6Fmgm>BG+AIi-*&A@ zVrzg+ep=_$4~kyon+{QrDu1}-PVl=Y)hm|mriw$;FJqU$%|hOiM-8?5*aZYTJprnp zuqu;xl@l`qck2aF*bD4Xz^(w=r#_v6eXlIU`Rt863Pb8JBV?*J(H7Dg7&8qP+=dJ$ zX^BtdCYfHOR@^pWJTUBc?E8~-6N++~bvH}b>HF5ujdcL_vOPSTO50Q!a;y#MACAuK zDSSVEc(#krOFFO}mw(Sd9Q58xK2-a(jPH)*>`sBiAbN#sQ5|>qU`%Avn__$Gy_r8h zUt_X@I*lWb9$>DOsjR*xIYUnqvJqumwF(P;N%xu*po?r05j0ebM0lDEMr>ZVJ%xgd z4^5!wvWXLKHc5#TS+FI8oT8alu6Uvvpwp>_tKe^aKhSEfQ%z^&wUtri-WyYH&$OhHD>!#2&x3W?N*wPWF3 zT;(znASXh8n~m}fOupnwa_UKTBgtP;19bu=J#*z}>j>dff}`PJV3lsKu5r`827uhp z)MuCPatFePj&jojoyjkocOFcEb+lC~%~o7MiiHWaX>YG^zjt98(dT^gKzGf_x~?{H z^y5wa7t>I%-GQq1^mSez*bdR>2Dc}uJGm8f%+VLz^*alu>#3$GDG{F^)^ratDw7t# zW#T(Tsm_db?icBnx3n#T4wO&+AEuV*hI=Nt#>zj?@lwt8_>UE-ETDOR=49tm zL-H9HW5EroN6!b=tT?)AZ3WQEuvar{Und&z{oyl1OyP2zs;;m@{wzG^B@8|w42RGF zNNI_ge|U0z<^<+jnPl--bs56KYq}APcWz=HI(S)cLOaYO5>9#0mNKbL`y4K3B&Yzr>G`BlK8i))orvT^O7!J{lDb=)NohhCB-r5G6RN{kBmJMc z$bO{;>p{0+toj|1lDZp zc}P+*mi^lRxN)1O*m~9 z>EvB$e+gQMwAB?Vk_}ix&DD}n9M6Na?_xpHCx~7QUV*G>E>m$p`JyffVC1U3@jGe#95l|@V*V!KN zLfBQ+!^MJJ={Kq^gB$+ZJdHFax(#k+2UJSOZuvGzjCnZTf49%3sTeJHZ}ILq!@?Oe!3A7$6e)?z8aVQD7cGls8>FTn0vzlo4X zKo0WOFI^SRB^c{%qIF#N)*Z|s^74azr1vu%NIMP$n$GjL+v^Tu2B2=_a0c6d4o|u@ zZUQ5Jd)Z_i9OQr2NcG1mzYUBD?tJyk`F!?0fVpZlcTEd2p&_&guQ z2`Kv1MgvvlMZLvly=fAS-LTdVXYDhQu!TthlMg@8jC#igG z*dNjh(WlMztFKhD1+YcjK$cw`6MzuXi9FOJfb2bV)lkZUi-J2elp0+4MkbYrn?5OT z8eyE*&|F@v9*8BYP4oKJmo!xg0RE8Cd|{zqY!9>dxz}EnmTVE*dI{#UOORq5D zy_L%?0~SH9bFK?VJ#Tc>hXKN9?wp)l;#ntMswyWPh!?i@`?K#JS*KdER5t6Us0P5; zq`4|0>meRS{K;gHU8~=aA2$zi_1(e?ld?e7qczx2rDpOLo&!X0Xh3v2Q|m}kM5br_ z*_+ie>9#vb2EZ*5fa;|Ii`3|)oV9I#=o&@>7h1HW;*4X%UFlaZCg^7U<{#Nd%d7H? zX!zOYYKq~*NE2q4gwErt%HeX_79^HM!od-h+L+5X1s6#0PZW0hnBEW3Skd1$+y_ma zld+c<;rwEbMjegZcs^)=^$?O%)F2w8N|KQ?0qMPk{UdnuFH>38M8(U5HcY-*s1Ib9 z?%;T-Js^4|RTBdzHAxf*v{dc(wnpj1t-z^XQaj~F*+H5O*31euW37Rf8mGy4E=(SO3uzXkBdqpK)K#Qx1dMwp7PGY{*+^qHDz0_f zeEp41U^zpS8TbnZL)Et@gVzi)Ve@rx(!bw4)|dYYW}4A(a8;s_{lt@nR<%s1ghE13 zFZDd}Dis#Oo_c4Rw=}a*}9d7`2|Bek*ef z2LxC-f&9j@P~fi{9*#BXm%S&_NA{h`#&}eOTbIdpSc~5qx)_E-D8{p&am&w=rl?t7 z81uZW(oV!B2`8t{=+#r^+`Dj{dT<8C!E~y}esnPPJQsWS`(8S@OtQB>-Oz=6FwV>@ zMaH_X&U|^rzxJQeNAmJpeCz3}FWAx+L@S>~RR=VElAVdkU3cGKCr9%(6 zjG7j5&-R`G`l#m9QAO;H#*yK&=q!07c5Iw=70Q^hbvVk9s}{TQWEPTeywxKRX9}x4 zEZ&VaFUPY$Sg2`U!MN+UH74s?5tg|1;9%nDq{i9K5!Yc%lOpe$c~&p(CZX|$Ofr0c znZjmz5z)z}f=QZ!bxB#Uj;~~GkFR{GTKIkPjG0~ps3geoiE@Y37QgBhU4tJ^g*Y|Y z3HKdxBS)RkWxe(ERqU91l6Icf?P3Ai!Q+8j;SY(ZY^Pdfr7`(q7S01g!a`Dg!1jUk zbykR63ReeYOoaLh`70&FY{shDhH2-EskpR>YAW;u?gw8UdoS!bt|b7_KgsD{?pZB< zlG$|WQ+avpDO?ZGd5dM)$-Nsu?j81v8FHT+MHj#2^=9mc-yX`#?l6wmY+kZSqD!3b z&a)&JemPY6;nE8-2+n&OS^BNHRzDl{zA#r;3#1iXSmFflUme)gN9_C(XW>dK-PUJB zuap^rQ_Jo^!XO)VTw@PtoVHla*0G!h0bHKRPESD`_o@=un5reOkm>JZ6zZi zHbG3++@rbX*jb%cjWhrcae}~ z5f9FRVZ;aH=7=}ulcf4TPmu+2L8)=>y>=28@BkiUI*vz16BWrXr@!Q3_id2kMN<)l z%J1>j*y3nfR&`UCt4$o>z80vc`NBG1symZlA)3|YM_Z}1G#pt+upqiDZ`Y4#&StPs zS+;tdQ+WQXC?k&m`ib%3uF9K!&FyOFu=dRs`UKyb8=v--e$DZk=DOtVM$K&fYMygl z6zF#EaUG!mj0LRnf(%yoA~L^U%G|5+lb%P=uQ&DH{ycD-Y}K{#Z1@>NqC(1IvaX&R zA3ff@*q7*QTMcy^bC$dH_Qvtv2hh7e9v0msJnDJuWu`>vn52)@$iQ8_e?dW$X9ZV8F|h=iLuy|8V!@N>p|oo^244x8~r@4<}gknT8+ z*A-j=*{n4x!xtE7$QF6Cd1Sou`_3~Y7LY>_6Yz}eC=r()aNqUGs zOJ$E3ZysC)RZBCjliG}VXhd^o*rP!V#zIgtuBrEWw}b_bg+1mDqIh4*{RNQb!9BD? z6?XrktPY<}*p^;EA)%fcH(l`g=;GP}bfu;%*|(~oZ5;Z5zc9?R$qAmf`mQIFs2s;5 z)&%M0#uv_BFb|)8vJ!(F-T7BBQO`E5+b-+EtlYSO$4X}D$Aap5t%MF zSbJVczx?t$bI*4u{6BBY044UdUt)-|#5sTDt2}Z~=}CO>JAN=+H9{5{5K_i5T0e)qi8;pnr3)gH(PZbbY6KK>>!JJ zi5wTtt9#gLVbvDLTzZvF-^UYV;$We~9?dnf?dbfKc}%@MCyi@LDmBN~a$mbYG@3Y*uQD^IB*+wjXlsgje9WPAm6uGK`=E@l4ifuCz;i;b{az+33z6^$5M5zB@lj6jjA=JQA%Xtu0e+CkR#|aL^%0w#^n7_(OP9l@Rg*D}r*zlt8he z5j12T*}p;-G{HLCpM!ilj0~Ad5>% z#_S5s7B4o8R;rMC=6_TLs%Lz@TX_NFFk6(DjgUPcbs^l`f`v)kO@~*dt^UzHveP5= zW)Q%&FUA=8$TLDM)`^CRKV(}>WJitDi=!(b$1PxlE{j(XVnohPGhIfqNvpH-JUO4i zeu&I&zJ#cOOHo}|B|IsD! zRXo+YD(CN`wwPZDed-0;C5sFCfsD5P#jY0LWkZU$F~d{95YZy#T^@YNG&{XRLdMa8 z3PC0J*z|qbKms|>tY&2t@KXQwv`q^LO57`78cSW9fD`Q1{YK>8tzJZH7Hwvz9xWmoAn zk&JU1R+(wH)+5)I{~5>GH%!!gE&F37N^9z2SRo1ZgbFor$@<#;{ycB>oHro$;Sr{eKQA>}Mx(X8-Y1EsiX zV|f zP!#!%OzoJhW*y~nwcJJFN0$p2*dpAYoaPz3_4)F`%mO1UvAkF9@~pdO+~P-#to$>r zVnmey{4SZhjy?ECzHJVu)E^Qf&Jm5o(J)N1I6`ogzw9Az=EDigGG;Ru+MYi^agsCTbgo~E2x@;M7_B*k~X8YDByP=EN0Mi!#$_C9crKwu}f=FE-XcN6K}`#48i#14t5I8xxnBrq>o&YCV%x^p}2{em1Ic_#+b=4}k3q57?PL7e_z*o#fkRb8DiKSn zoFQ75*TJNjKUqSXB%()$ZuLeMYNTb-F<{oyMxlNuW&|Qk($HC!cDmGU^cZ7wH7pp74`)WZ=!-VB?@lW^fVGAjyGf zc*3E30?clmq+U2b?F8|-#61sX0eeo(Mu$~IqmrCHlMUuPL%UKg!t$d$7&>3oMu;QH zvqGyqN4X6XY*23UsY2n*ZWC(C{-p0NiMBMKKSQ>=ZjE1i)R~o6*h5w0B%fg|hKpFF zO47)$Cnv{8i39O&8G7M!nALJs3#s+XWGd7OlD_hQ+-@A_KE2=O>^g2R@>0$UTaO7q zHD@U7Yx$ltIHe8tUH~|Ldl@6RcZ3h^-c8bx>jc`Y3s}c%RA-F999P%f6*EW2pr8gO z%}$`!3j~d1)d>1&zerDmxyI|@a(%Mn(S5{>`y5?F%J&r4nM=(DR%Sogbuq-(dEQAc zeUI~9l@Qc&^b1<|_~nC`UAW}9XEsivpOJ#r5`v}vb70r=uo<+;Df`eBDN(B_4Q zn=~sT$s+tWW5Yvn=UyBKHNX6-zp2|XC{dG1=m=#@r4?Bd-mvX6Y2Tbxk`Cw9R^j}( z^fzzHoO;SGIhXJvRD!$>B&?b9=l!;A#Uxim2fA09Qn<2y0Gt23(xj7pho++K*0O%( z@b-duz)e4~_J8mNDED}c7ej8ZhMZVx=wxx0OMczubfMe5cQtOhW)>=UQsWX}a!p?} zY~XP7{T0SqYVpX9p?=PceQSmv#IyQwUK&*S7h)MEZCkj z)LR!CLI^%^1? zCvEeI6A#@*Yu9i=?^7r5dL$plyKN#~iVx_0vHAVz8WesCcejBQn5iG0_~c#-VQzmp z4E8tMikj(*_K2Y6ISqH#s;WhMonSlQtwdqyzUGu=9mOwIc) zAlOV|sO>8b{Phj6P|NRJuzFibKl>%;Ae+@Yvae-BzNF!DvA~VvZM}=+$hCs4)1LrU z$onN%I}1l`bhlUHa9D&_9Mf#Ghu!B*?;<^@3R?($lRdB|7;~ zkh1H;&2WyiX|C{Z_4K`%vI!8uR8cq9K$#m&z>ADn&rkb#d{cWg8#tBSP_`eK3-uTw zYF~mIq+QuP2iYu}svcyQiLA%2a-!%@$|Ta^@e*M*&FHbL;v>0qYNFLi%x}KzIm&0I zoq!kUEguBqs}u8CkbPQ4@ppKARXM!$NIDok*&>)1{LUkLzfNdqNASeF?3~JsyDlJ; z`3jdo9CdY_S4M{n(LXfa9xTP5%kyKEi*KLD+`_z_a<=^b^@ro>E$fs^L-#>RQWuGP zgf>4g(n5Atx8Miw6)~}I>v;x9O>T+}^=;sUT4PYb2UAl(hU@V=Hzyl_^CN~J_t9t{ zO2%7@P61|Y0m&A8(S`l5dJ3CPKIQ+Ze+}wo7vuLq))u1;C~4V*R#R1r*Mx{Bl^@dV z&xsPZ0DR?F2~~1>214pXo9CEj&onHMV?g4Ia0RNGL8n3lbzWC>^S3wQG1qjnDS~|R>GYxHbcaWq&=bz^#1DkLOUQE^rt{oO_c+{V>mCPF7K*Q@ZHka(En)Uq zh*dOGK;bH{KY4;GKHtc3eOhp48D&zN^P^C*st|ovy~)ZXP9L8hgAerGQMtSKb-bW6 za79@K*Wa!?94ixoo1Lc`0qcDGE+NO%)K@_>eC+JYXz4?=g#W6F(o$~@1)Z@?hbl&0 zieZk3_x><4{@;>&7O-jhW0GtCIa^zt{uhYHm^w?`iY|;vS$3;QmO6isQ0<@WwcPA9 zS93gj!O8mNYH`j6MoLvV`TJ>uPGdyE%%CMB7093T&pW}CKWOi%q-BJh=y06oU{)>? z`7m!+Cf&r(N5H@5aiFcc(0C^09Q33ZH~IbHpUv>!RQvt!|4F;Sd?nAtsdMOH*0)Bd zE777lg!^^s!fiSZo@amd?emHO+hhsnVd-+p`aF+zv+75V?+)qR=KVCC7ksq#RD!QI zMyn=GX#Ck0r16)Uk1bMm;gs?Io23&mzVjN|!fmgzmRViF1RbRO{9fBIPt}5UHkUAVy*=JfAMPX+h5(F=X9=KL-?X-0JwQbA%M+Jf_Hz_!R z-dXOye_m*F+#THwY()$%J#t)bQp6R`W2#F1+h4(ah3_9R`?GmvWGc?H??J2_O2#Xa zmSZYt@F7@*bFjayM@`46bj4*(4~=g9hrQKvU%$Jdre$QOcfw2Y499${UbTRu*38+hs*xMHpza^#>gp+NA@t|- zjIzPUs{qae2wqoIniffez!Me33Gh+o34Hv2hx=QS9I5$inr^a^ zw!SC?%RMU;F>x#)u3$G`g)!BDrJg(2LpI^?e;UAYr$?tAJ)}uQt z)OY~L&yVF+{OUyKFM!F1YjO86xLTL?2!e+mkBakaH|eXnEgv3G!FZIp6 zDjh`E=?BQi(>Zi^Yow}q+L*(OKpn!UjyZ_AG1W+A34{5}Q5X$``OX?lQ2 ztLiCX86J0u=%G{wu~IrQ_qExL^8NgFKjZ&u+rbQl5u*omT_lFedevTG=?chB{GOPr zvdJ2CDl5gHN<1@}(U`cZ*Z<`*41c5qcnZUQ>J(m)j>Gb`unH#RqMp8{4K558z1puw z+I(`Egq05Ce}lO6AJB?_@+5&9jgGHkvu<2nY*CPxx!mM%w+o4WYRw9-edxM$fcz$(qutX~q#N9#ELw=t21F9XpF$ z4U>`Q!>_*0N4yq>_kq4vlaD{5?sloapC+Y@r&lyU0qU_RGT4VE{+9_4=LtIDk~h0$ zxXy_dW_h-%?h8mI`{g&E5+VM3)0;$cnG(7~;l4E2?%AUq5hKLNY4mgaHlmJyP3rC& zrQ;Ra;1Bl%rPoEY`63?2m(nV#5T1;>G(_tKVFf+L4`+!{D;T9sc?vHXs5+CQp8^FM z=PL<~ytGNM5oRp_CrmX51xY>Hv0|v(`=c z`a2E_l9kQWczGzAypB-Kyg>d{=E{T{{hv%jzH>o=ST;Ehyz|NDUva-izJtXO6Y47d z#)B;=MxW+6pDTRd>qPzCe2r`|ca;@gd&`B>b?g2ou?0DMV34x^c~f`LF73$67fFR! zer!L>e--cVJO4j~um5lC>TcC1gO{F=ZTYhZDmPTr3F`|lw$GnRO<2^^Fg=-;k=c;g z#c_bgW!({FUBu(%O>8$NVg+V=hpEqVnP-mi3l%sh*~D?Fq+Y}or=$J6>l^hbn@|QC?J78Au#cI zTg_~k`8`rsGZuMSQ}Aspl{>Y7OqRi{y(zg$2L%>V?#}1)hw@#M;C+dtFxS>k%s0ih zNgq(7sxlqV@^9NaWw_Ebqr{x@ud-UKN~`@nzHS=Y)T#Xou=_^z_99a{-^sGt5MK#` zj6GX^fmn)I3WS|33`J*{*AbUQd7zSdk1aW7UJ%X5;I-blv9#O0=Wq!JjoD)k1God( zr)UvUAr{=5*%ehqVSA*Jlm2+;_ywo6rLgPMk_3f8j%$vDg)O~2%+05NQPIfn<=61( zM3n1C7e!xAM**e#0gjCN8|>QIwPuK*QmX+)W+B@wC*KMp>Pb7S&9}uVpWLSt6=m2* zRGKGj3YSYAc1>C^(iB znt3FdRQ895XOt!gmaiB%o0QP&JodVPR-E^S5v zuZ<-*kQyKPp#G3gOXjvJe8OeB^U`~&yRqOvUF3{nrN=8mT+(n zEe-q;nc_|51#*7rOT(3N?gV0ObsD(KniaKy@c35l-)ushBQ4y zl#ZsnfOOi1I_e;wd(%iy{z`kmIOVmq*4Xj=wKCw(i+JGzW>VFkq=ZIc)B0!TQR$>S zf)1m3&+zVfsl2Wzqxx~uYEV(F5oK}lN>>L@^7PT~b^&oiIcsaFq@q;`!S10yr+#^^ zILYC9%OXm>C9^IK2;~f4ifBx`HuTxmzSs= zOx&`#CDP-NJve6~ufJD(a>FBHmR4QU$}=gh19*aC!jcJvI=?G;l6q5K{+3sQ*h4FE zte2~76`W=*nnj5=0apcMArkH>wZ^vC)3HDw`%U3?3mua~*HtZwUP|m`mzuZ^_pN`I z8q}$jZMY$*iFpakN2$R(-LDh)`yQN#2BTgA9fNBpIK+EbSQ-u^U4y4=Eru*7`RI3+ z$xGFC@2ksMRnO@=Ri1wuVEKs(`w5!RwXM_V7wglc;h{@NA;r(8hzwIU`B_vR7QC_Z z@Lwf$W+L#|Q)oT801BJDuH+w&p9vn%415Fzwr(EZP0_l$!we<5oTQHM?Rk316*s78 zX;8Z=e78k|CdIQA6AWBn23=(Gefgg8trY3b2*(j~4>VWc)t;`hl#rf*BjrZQ-JM?- zO~4ldDLqQmx&^3IfKEr!sremD6L*QrFD;y6WrZ{ySrO(cbDMq8r%Q<)ab9i?i%%@&p$W^ z&i1|bn$P>p%M8|a+T7V6U%gI>0uyFVp1eu7MrH-EGkHYrhq*;Dr7BD~!fO1PLUju1Ug4wbhFy@G~9?_N*)iMHyhk)=jPDI6DFGRXtSaj zco22?JKhE6gm3){UhGiZ(Nn4I*=OF}=O!+ltt&ok|BaBavyEYAcw8r<`UfRnqcrta zJBNzd6U3aHWm#sckJiZ@PdMXxjw2lofab4p)~bH3;i4IcjRZtsd|B4@i&_vZsw2@<)@gwp<9t>EcqA76|v2-X1_V=O-yLWE0dj{S#V;VHsN#T?^b! z(+5dYjvo@49}}pu$|jdOC6PCkxK3_qP@l!V`SXkJ7WCE16NblT3PDM=-llwtUZ-%54djRN{U{3C z4Bm!K3?2#3v3Xq5PcCFD?5+=OMX>>^8f{Y4lbw(^@&4l_4#`FH*%}uH-yL8~xx&EC zcPo#_lx)O3qn_k$6k_O70g0@$WCT~!9UCQpsd90lo(6T%Va+!QCQNTS{}_kOVhflL zeuNoizgFke%-RULcyv+jNzJX)!XDqWY)3&NS(6dT4V0}IC*RL( zH(Z1m+yyb%V6^Wuevr6nTUu|PJxFyU!CIcFTc;$%KDT2%3)$KB9ii!9Lh3?nuf57> zKNTs}W^u~=N&Z%gz;M7QPqweF5PgQG4&Cx`Z;KZ)9qV2~D2B;q`V?W(lF$286j@?5cU?tZ?H_ zjk|+wToOnY8pbA2kYFC><9}zttb)bBzBnQk5k6l8cdxJJo0LkKFGFIk7$=|})riRy zJh%dQ!PPuW!UTQ@okgiAej!FA5dC{I}fyh&H!YHz4B+NSl8YfaRT*HQAi8nT0 zD=ALN^LB9?gS2QqL{|8;A>z`7lPVp124M^)bPX&ncWfC=XrLsBemgFk_oL3$sk`y9 z75M3?M6hl0EYo#f3jF8_ISaRowwUj2R?cAoB`uHpu;{@|7vD9@^Rh61@gx2-)*ijA zBF*==js7Z7>}A5*(tAq|9no!qJev%bo z4y8JUYo@<60dAD?mvbEd6bk4_npuvd*5qn_jL?Ml1n196<`0Pn*4}Kq2d!EG zXQz%6<(xwqG@1LTFmGCB^&99DrwCtj1aNcG3zbeB!c_`ch{4Y?xolYGuIA^5?fcC< zGyCid-ITLe;{p@u%v&9LH1IG`U@$6V4@eDsk>N>H?!>kc4M)koQA@O= zVtBGCTRPW&y{Dhe0(y+#Q||Ss#C~58VtuYRM8}B7q0St5B$$XwgymH!SX{_69g5E$`=< z9;PWM^x!8I*$W`St^FGYFuWl969#CCbndQi29-uF`I7R+nG@?O%ftQujQ{72H{;$rV``io5^CwqGtZE0^Gzd# z`HG44?p#FHQ3!an(tws%haF>;(BBF{V?m&XFB0*mJ(x!cqmRT>(^QwyY~5S^zlt576ftsE>L+DqSWz1 z|E$u(5Z`ES`VE+YbhW_xOb`hg+T1ER28P_UGy~5kzUK>6mgkEdrwvZCnNRdiu<~3J z+@J6@yc7tE4928WPw@<)Q-U$cZ*TAlU(gJsm5~CSRW)eiG%u^>_wn&&R7(^IsCfhw zgo65$U<-2tC^yG@v2z%0(^5T-jq{dpvog1hruXmJ$qjF<;OC(;j=nZt-?Q7oN~5Z8 z0W2~L;>)1oZB#?o>dvzE=5O_%TxZ}k zkxfx!_q(hZbwG@BO~4ZE7<^JXf40`lG_nuCGcHgkJ1PhQ+Yh>?po+kVqS!QKp@OBS zCHs9ko+%r9>e+{k_lj{xBbQ!aO&|fXw!3f+--f!K0)(#ccFahZ3f;jA#(CmrEaR9@ zoXun_F#VFWNmyxq38ot2FoYD-rCq8ETTkzE$8)Xr>$pCXbr>CJd@S2;o_G>~ zQPl25-QU++k;=L2&p9G_=OFlj!yb{lzsWQJk?m3ARrA-$sk5Zy{8%4e3k?5fO)-~2 zV_-0rToE5@;!Mr4zT3gk;WnH^B5%c{^L%aT*E32kQd5aPliAF|r5fp}L<1>? zHs-8J?v4u9elSZ^LRd2uZA^|-h>TeUnpxb@%~c>Lp&@3JVcA_IgRs0`PnXC716hDl z;#dWc@8|E^{;4m;lCvF}INnF+R2L*gY|R*&Z=mWyDmD7;i0V)XB`Cw2KF6w6$-)r15KN>2 z+y5NtRF{51j9~T!$CFS0cz?x=mZgORR4sNS1I^--e#?$eYmsK}3qOL-Z%;hBb#EG6SQgR!c|~pm z!$wEIv*h+WbWVjC4Fgj=q|bz5)K?jOfl_zUwYN znsLt!k0G2RZbaXhPKRTy%e2P>{6d0XhtRFQAI_70#_P2P@bR4HSaco8c)2V>(K<}% ze+M}X!P$_}>FU&@|1ef@hPh-N$|?^eqoI5m#pL;)8#NJNf^1<}YysJ!^)jX&Dm{-Es#&!n+AEBk_eG9HiwktO0@b zC^0s9YHYK|J#Q7Pw1V#j&f`H0;XJ4(YMwPmj8N)+WwZE_dbrN~lObp@($qQ=4dtDx zO+0|gtm&y_*mGDar6jW5m`a&D^VA)T5dKBAK>=L!$G3L`#i5q21tT}*(RPvhCK$HgId`~)_6Xli(c zcF)7VqeaDVl5Wi1Q_;+0Jh?_#so;4-@i{FbkDRmiQ62@I-zQshb4KvdG zv^LMhevRt;p_4LdHL}n(FtlN#s#-`{SJ`u}nb5U=(~x~{QPke>;U~m88JUv=h8*TL z4W-A7rhIlnso8vIKa(tVU?i~3z-3W$wY`?FjyiH4@wj$0%nq4}Z$I0%vC7ydgMvV2uYefvg(B)l``!Wags#E(Z0cy1&^ytf0>G#qC|`0BplRH z0zW4J<-Jme)Nb~D&i{mE__oUv!c^DG6nH7O-k_xhw7S*$>Vun_k z*%5&_l^2l0+4v7`s$iA>AjIjQs#~BL;q!V`_J~o*uCtLtW_YT~5LQX(8o_@i=7Dml zrapY7>QZwC%pgSRo66$13v7R9)PPc|zQ?sHjqyRfH52n1Mm3vCA9XRJAKZUTljk-b zqPx~Ik*ZJr$M1ky_1!x(dMvG1 z44e!Kx-_4Ga8mibu*Whlfq{Da=XV~zxK9#&2D`V0X6XK?witRd(n_>Dg$bx0JVdZ2 zWGcX^mbj$u!x{0`$?`YmbpX@v>&x#0I3OqUgBMDowsrmPJo}eK7Fq8|P8I`LWb2wA zz)b4c)}HlW+dT4i(rb&lF6R~8Bq`c;IM4Q+j1o?72>?shT&iL<$6P&mmcyn!D;klo zh8C3f`KMk0>^%TTHq+aA1(F3-8arIrG&WZcU?_^Cb8?x^5!k&3aiTMMRS&Gj;w!E4 zpoMVdxrirMj%M%i;Kp%OeD0tA@pyU}ww+yG2M>`Z#c}h6*ULec?d8odagFRFdacV* zB#^CFJ8@>$ufQHir)e*3nKRAheTmdDNhzwfQBLBT8NM6g?WTwFXWlq<#_x}tQSEz( ztOs16;Ug6C)4ju-$s$1k(PbLxqkxZ|nZVip|IRLNnzZ-`;JXtB(1L$XD{Ddl2jVw| zfN)$@g8^^Am^ zK?O&}>iHWv}*!e5^Soa2{ z<21;j!jGbNVB}-fZ@%9>Ij0x#q~h+;G>3cE(N-jP;O2|Ws$*s&I}bUmY%wm+oYDg9 zE$1jRRdnT%aiynG7bttS+exXT$xQr)YRC0(FF5jwWD~d{QQ+NmP&z5@;;RVW`Rzv` zE+AB$SKfEQ$m*0zy>W@OHyFT1_2dAcooU5soYEYI2UOqCvS`()Hmi?W4Lkdm(%JrO z6~949%G*rN#&RtyWbpU(Y@CxE$~cWfP@GE7&#`7=>-xa}_D;UvpF7@y`xaO6a;#Ns z@#2kU9 z)~vx*J1u^LW>8)p`Y~sbd>N}!BqqdmOd0z22aBcyTfC{-D~#(*|2{hMC{g`(q2V1= zr`t)@6`akyTF!{qL7`MV8WR%wtya3s_L}p`cE5DXW#)=0=4zKE&+b#9RjQ-n%m0)M{l?$?hKIkp;avgFa44D1 zv_mBP+(R8UI$$mT@WXGpeJjPFM&N_{#zN&7-5o838)8FdtIEEd&Z_TSnujH_JdOZN z{l=xWORIX9zXN(~hMOs2qDxz+9`;T`EvA2t?PB=Gv~BV)X~86ApY zlbkr(J;gqYaupk!{B>we7CJ)dbmiCOj&p=h`UE>^*DWs9o_5kc-8AB?!7B*f1R@TT z>!j`tMVEkclN4WIS$?p>t4P3r4CpVySvBHWK4Xgp@qQK=*y>0Ylf|tvPh?^e9j+}gw>LIXa=~*;uR=*TyypAc(xi30su)5AM*^J~5*SsChK6^f1{JCkwN1&Xw_st%S zh~*z}_gzwqR2OaI=-b8c1>Iqt@Q`sPjEnA zRDlc?YBvHYxZ}T`B#=3PfWkr14dGDvLO?%erjGn~WC8-hr~l8*o{jalnL75(KOEHW z1z`FQ*3*e7HFVTY|$W}V@~efT+{jl2ExYo zcQ8_`Tb7;c4;U&iR=bUpJ`NP9;I9`j0C#$G@_#=9s*d?3ioC+Gq&DUa_k1h-=-jxH z`D>vYI64JR{;l-F_fT`bDpE$i$XZ2Hm9273gtpyFeb6J~%Uf~4sGx>J|;zW9J!(ssTraRq{alGUe>~(O8 z()3m7on$1U6uta-wqHaJRiuz8N0Z3oqS>pHK5`GXYC@>bYhN?ll&AGmX)(7BXqAgJ zt5AKHybD501wN$XDonZ{%AS}3FsaX9uuDHsQG-Wx4j8I=DR2}vFsOeetO-#WrLYiu z(&69~S8@&hpvJ^QK^!}YrLI4_I7@bWV44`a?G!9L$AW2UW+%8|HgiNuWSta(i$1hv zj{#Ea_3ytH{_Wv*Vw7iA7RfrZxwLk^^qc8q)QZ3mE0`qvyvA50@Kso8320qV>S?U2 zn}XnCGfN0CcBp@0wS&-K0^olKlHDG`-rlv#5dd8~vMBzI z#2CnoEfc(Tp04dI;h~Mv5&C&G=sFym*lz4L0cz!0yNOzMq^R1P>G!4&F1!9x!zdyF z$z`*YkKRg;vWUb-8CY70zs0ye3A@^(rT>O>o)xCXkQp$>>DHn#0%uR(Cd@z4zuza? ze{nX|F2_cHp!1~yKBM&a_8Kn>jCV2 zE%G-zNR~eh(|-Sl{~~L+^cCn`HGBz|G{9!5v2`1zc~I#&1~_s<-%u1B1lU{>I+yDM zGl6cqE3ZnpqG7ko&t5LaUic+~2~>mqW_yhW54LtT%Y}eu&w07*%;oZ(!OxBTWLA(9 zoPQ51QnUxpYwJe(qs z%LoWaYMurhl1pIS`-Z5n3Xz2xcG2%7RMM;UaQ%0=$@6q8L`+e!z3xSO%|$!U+DhU1 zOG8a1et}nV7;U95r@CndTori!Od}NuJMX3tWOg+?8pJXE4Mh1mEn9} zI_Z4N_E}G&!Tw`(;oAY2W)g-03KhQPpeLDi+TeEs$%(QUl^#Gx%ZQbVB0F}6B=)xLzoJbQ1J+N1Q^lq0cUE8v(mtHIHEnJ0_+ zACXLq%T%B`G%QCf2e2WhW!A3NdKZVUq*KnVS=N^N7>qk-)C%-!nX9sKQW+^M^;R&L65UC(f<~HFXWrD`6+%81X*^tTPl(j0=y{Q6L80YJ{G{#_n;B%jKr0d{ zfY$_g`i~rgvuV@mE5KppeeS#IoSxU@51Hpn4ySWU=cfoBkC<5=t8$baZlFCjeE9@k z5YMLOcCAo@w*Y^=%7jJ^@>G7raFRrLJmKDj4S2Zvf{e<}Nh|vtIsLU!cv9W|)2Jskd6h6vi zy3uF&0SKA25mWkj-C6eP`N3=*(XiAe8paOSt)_6v1)7XIAV?^L5z4D_QFL{qWb165+-+o4I1* zeKJgTnr75{=YSYtwj}qVm%+z@FV^kLQ~)VPuS{a1rIE3RSVipoGHZ8L@3jn!H!H*(OQ# zb?d6Rp{DXmI()`i`+f0dkyhuO-Oszp#BZb%R##ew-g-WnZ9d-oIzIOZ-c9IX(XKu@ zBvqc~T^8VxXkOLDQ_4>WPG+LZkyq!vdV?W{0>aBgqnr7s7v@!zqpIsm1&g`dmU-T7 z1+>InR$8b41C(l!&ZLBp^U&qC7!4U8J6rfg4f^7Xhh*1mcLdR~h0ssdj{`Vm;yDre z-fBYinWWZH>#?2q^N6e~RD&YqOoGM@+?aH=xxGa5@50R$GoU+woBaUm`cRboF;-MW zH|~&>`V4DemRM1E9>oO8Z1LyIkD6>gNvdiDEXvET{pg*T%h*|sJNFh$JAbv=Rg4TI zF7u2ZdcZxPE4`(@jAQu$24W8e8j(vZR{1oO-)qZj-mJ^Pd?`X42l^$nmr*(&-m;q; zmmv2-db$0po4|<&r!*7KCMlR~bgM=>Q+d?3jL3G*D@kynSodl86(tZOQSt+NW#f;7 zg#awUuZMBn-ifSxeaNQje6zf|@_CLZHpCS0U+BiN!Zw`=ZzdMHS#P%Bwh-&6xNTuw z?zUI#ZFESBS&g2tmRQVAi7sK}i}hTQy-N?=S?mXZ8(-%o>DlTnxpxt(iU>pJU}YpX zm*bT`+vG|&vv5jMCyoj4;@F(WYPcY@UH;9HVq*8ygU)Dl{`3Smh&8^-FXBr)BT(yh zJEG0cTenm2R<>dkc$P?8yLsMq)G~O=nv}tAdUbNers_L+ocnl#PNZ`q^Eg&^sn8t) zEd>!mj)AuTR0LzqLY+ctJfE%Jzw1grLF~BT#MkQNaxTqFWRv( zs+H4qwG7Lx6+-!qBLG0cR4f1_Oi_F8lVz=NB8Bw;y&%YH#~Cf#V=~_HNr!<~As`2* zAt!ItLW+sj{5B$5Wp24Y4&Vh5ZR6w2l>0@>CFprGWDcmITu#}&oz#SQt|)9+S+b0| z4ASy;vXsd9jE2w(Ni3KaS{^5LNQ{59OhR_Gd})3!7`K8i=0?Qjr991MU(&df}D?+krkHmA61u%v3rL(x4b34>M_KKLamch`7J|`X(?c?le#Rc+NFlr3?BhTJP%*89P zgJ)d&#fr3WF2IktpSaW@xEdsrk(9Q~m?QRSIveIYs#YbfV-gvwQIXk>v6-Y3_NXqR zBN$ChLg3j$;h?hZ+7aw1qbkKyBrOnIQMSw(UPXYO!bw17WY@;)4AWgKlm@Z{ z$eC{EN`Kvsc|b*n{G&vywhh*xRY-mK*eU!jT7haq&pfD%yNHm)(x*Ip%67|3q?WlC&Q!Rld&FG6)|Z732>}uw&IG-0!%myx^9R7XO-snY5}7CY5}LA` zMG1m4A2S^fHO$H>Czl_rJtiERAy$_UGCw#*v#W88Q{YNCmgHrpq_(C&9T(}x>YjM7 zIq_jWrWx&%Su z8wRS?g+|(^@eO-Eh{6sA9C+W#&&Hk#P=TsCoJ#C+*dP%j2l`M!WN-s!Nscu}`tP*C z>5>>?0_3Y7%%$-fpR+$Ot17|DyCzeAYAB`W3fpfa)ihZueA*kt8_d;p-`5}=aPn%+ z3ZdpAW^jKmuyY{3Ux2sZ7xaJ}geRl80BN+J6l-gi1y&2a)uWsn_a)Tha^ZHM^w;F6 z+?^_=fid7xtn-ERQBym0#a6cf5@Os?w}Vd_H{43WPdw8`$!+tKVVzR!dWN6@UZE9| z#0v}i!(!);N#izqw_`uW`^mX!O_A*6iNjW%3Fr+63uftA`*zY(qOHma(9scs_%18& z+ASPWVSco3l6T$~sS^}$)RjT4Z;tJW@HP60Ok?~6|IoH?(QolU^YAWHO+&YGZ|oU; zPaGL!iuiv3XbcQ_kiC7Am0zHv2^+8KqX@-^h{<|)J<;C;Qs8W`oy?&9{_fk1L4dyk z>`WV@O9n!Xw9~>a6;#t;&_*4cm<<>|rOjNu9yE4ja(Eiv*S!G&dDE4mh_xV=x5U(W zH$#=@H{Cok>pR)QUqdLWoEJ8CHt)%8xF6v>p2@V#zl~g(-@tcCGY9%*qK`WS{wGJd1gcuRkbrGjl64rV-2LDx{vy=AdS-q>;XJVP$KN13`s zTwz4J5{%3K1&w~P(DH^2lJL{7#4)1j6J7r|yZ(D0qpjg8ks_yq z#3$Vf8lJKB+MAdXw>jf#_t2obPVsgph zdGd^VV=RW!YpWQEpUc#J$DC!;ZHHI^rOVK^WAQkbT@gt+S^oL#R&jC^XU*&(gDZim z_tGBDCwW;6D$DJ#T~<{D5bKYcroC4eYF&b!p^t^C;W05$GSg>^zv9-uKUX{+RwH`p ze)qk6&MA5{l^=e--DIpjw|(#LA`q>vpE2wuj%3NWL^DJ=FG?_BMq8gbHOS}%ik$$9 z|I^r)FF3s@!-k0?4(?4$BzF~2a)e27L&Qa4irbIE%Gg+YQ$ou>w!~zv_c4(_0^5ix7s0_T8F*9#dA|~eio3}P=N{co+1Ltyxtu0{M zj1=>=_6R!wXe7J>w-DJJvnV$>{NC14A~5f}*B8bY8d`Wl$y`BHOK7a9B)^6R(@Ornzu1V=0+xtf z*1bPkeoGL=*mze%65o$-{#kMQZLnhdZ}=|XY{nr7UWe?GTvO=mC9qoM(4*|wyVR&n z7DyS>B9O2=Mt$V(XRPV_o}==Bu?MTR|6AX=UBN-Jmp1D(XKprAMjsoDJvTWR+F6LN znQGF0qeArS)=DG(zIOSV(qfc@LzT~DD~6gK1CkM;)S!9*Z$1LThlJ(4-z2+oThap^WVz(`-BmBMf5oM6t@t(#BkiHC@<6Ym+akf zizCQnK3d_F){R36jesRZ!Pk;GVIwAglWFOCgQ04k_ii=C(TxxBS?uKNZ;E8%1K{td zw<&v?2=76HMb+ruuh27UN~RaUaK}qSglHi{_E@4%7!`yW?5F5?%D&^!Gw+Wx7UEgM zkXXG)S*a{iLH$kmvC%wjgpH4ht2~?m&5Cs_(0z^G=-Z8u61I!?40Ya;fWYUDD`%S0 zOD+Pllya|~r>Ji=3#r<-Ee^tjdtYQ;o-6cZTsNK^+D`ekg*-#`FC%CO^k!+Ib4 zdaI`2wqHlH&$!~h;Ct`PHSaRtPV!3dzf7Zk{8hd|b41ql5z^ajiQmzCGVSiP8d2Rw z?VeBqJ2B8S54TW?4DH;njdRVuFQe>a@piN*!o3j>Jmai(9~xHvg4%It zR_*ne^^;4z#w8#!uuA$n4<@4_C};oMCZU^G9oS^MF66q&D-HCnDmbbBl1xq>eNq7& zVr*c5rYrAF#C8t@pA4dRtI*=wk}MkPyw~%FZ(OIm8*?uzhyZWtJi^$RyM~9fn%Yyv z0!!%sjQ#-eQ=L%(jj$Wu;_upV{5iVVk(m7$VDkV6lIvVL@1iP{vE>idDc9H6tnh2& z#Nu1ymm~Iw#nBz(`Ye_Pg)mvB?a>z-iQEyOc#w-;i&4uvT&IapXOzIpmoQIG^z2te z-=)nz*p<3sTcgv`O(-k$yx2z;EleQjHF3u97NmB;JRM|jdo)}A{CVws3Tu)}I0xGO z@<+)bYG}#PyH$o6Gqgu3yIieb+jt+p+~A!IEYp@E;^PjU6$xHVxg57e&Npp9?U2i> zv%OZg)bSS#L1v&-db_)bwrOYw4vnE+#HsiV9w-fIkguDhVoA1NJ5C9}sxEAy|5(CZ z-&~vt$j7gH3K&2-vdVdHP|M$>WwI;_kC*$gc?Alj(k7i;zb9|32+kT?_ z0Js`nU$wNmBi=T1orZxwvsly(p?-XpYyi%{h5R&pT?=~c`6x*2aWu@dqA%W<2cz{5 zOM;~5C3F-A+ZwvE_P$rF!1VlhQ5iYUt1s?8C76=mm#d8!>Z(46Pj-^005^~4xjtvq zsDAnOG5a6hf<*vmakW%IBXt(5nSi$1PihH+$~u5`#taLoUNN%#)nr%M%S&`dKLe9$ zJb7A?Eo0i^s*v57;@Ty&qMgcrkoNlGd6ex4C~dlD$s_AJj@cNFy65QTTXuF7?aPAr z?ah9qsQa^Se)EL5KT|wS%ed9E>=2_y_BIQgmeFnEShWZDmcrBX1`mLr64TyvzK>1WUxL zyFZBC)bTO=vuv^OY{uRcyGPh%f@?^z0MJ8WxG`KC=&8W;Z+V7jx;M%nRfX;pp^**f z>}Ut87V?EMWl`Am2qI~+-X&bjDnTX^>nu8w6dJ-9n-)Il)r6Hok^m>?nJXKgxIrtk zE}8Hl;=vF32YQhJXign z$BeO-jFoWJ%DcCS>VZLxOd*mv{Di>>@b&ibBlGmf4wgvsHh5A<~?9e(F zA8+;BpX(9>BM!IJft4l+=9ds4>ahP7Lqg1e3>yHPK$RtU2f}3{L5T}*fpTk_D8E~g z-tp45{8WviY`jST1c0Y<$22nKjMK_88tqW=Lg7*l3(?|BSs)e*V^DKK!YDd`n(i=@ zMloxqX(*81Nr6U$6_nvxwv!fWfp%(YMn*>nc1P0s7MmQbmLz&s@CHbFa=uDV=ju3| zFC$83`|GRrvYAs#{D$xcL&5tdVvl#Be>hMom~@krB{SR(>ZSu}qciXCEH|r2&GPf-ZHTCd1cUfInd)Jxoc)=0%PO{j>p{q|W>uPWUGtex_aUegftO_U#b}Je& zf4-`bA5f3E?y>lu_8E#U+G`=v9rw48@aG5jQ^B_vsOt*`s=7Fe#udWz{b)$en&s1y+1GrdHsqNo~8 zOwMX=RLFsxJfwacOjgI0STP?o#SxB*T?wBPmNDWt3p$o$JJC)#`_ zx>}nLWdmDXxEt1zlzbYsDg0w- z>z}SO`jT`#Sc>;IyUp{Js}J9pCYqtPKJrl~P*7?|7y*~6Pj};%xU!^llOTTAL%mC# z5H^jC;b?3%^(^4EK;U*j9BPt!&>EG5xx3Qx-3r6P#K@87qxKeMlF60zTnMvt%NFy7 z{cdF`7eA*PBbTF%4oync-Wsvn46^%zT+YOKuExW}ZpvhRo6{WMLYD0pFYm4Q7AE~H z$uHB>JKOE_33DGK_>D?(hT{qN2p9;4996luS?a?DS#V`T+MH85D%$H3^TG=zoR}sy zQ=@bcz|7h$Y>2knC|(Mi(#pKm4}RxZ5IdPlp)+=3no#A;QVGO0(i+Sp%-nQCcb?V< zprIOJDGuEF@ewLZOb2qE7?Rp2O?Q7HrhDE|6z_4gJ1Q-@SIn}bxe7Z5HN?zf93_YQAPC<0*-8%us&;6`)MJ}NvT)Q(pNo}eqc(YR*88x5vpn(Q}oIL4|Gsy62 zoRIZgahaP>l?aQ8t1R%#<*WZNOqw@QCH#7=vf8tqph~0RpK~NhJnu!qo5XKS^@#r( z6_>w^%xO&gYgDuWjEWfx810J%7LBv}b{QHgP&v2HH`{k3-RL(*=`JYmJ&^(*yjbVB zV$4s}Q0lH19PP}*p4grtRDy7GaJTmZ~XNB}0 zkt|I7m5je>BAz}?>4Nr-D1&g5RVsDrB+2)Cg_ao&1Qj;z(O+?`%(hj>C^x7hcQO3& zGa^>wbfkySHAq=~aqdvFyjp9pvpjbF%?6#sg+NlC_B*pSFA%?>B0KYnF#G;h7e$t2 zz74Tx%wA&)xP^ps&I+Q{3iB)vH)Jj!Esup`Yk7+TRz^r-y!U1t?Qkoks=|&2SDGBFn%qlSSk9taI-LT6d5t!u1S?eGmq^kEIFfnh zZwN3!jO4=)lyX+66=A;;8k#bWI^tswOudz7H)LOj9qK6p;6;ie2azd!G}Bdevx(K& zqj+{5qsN{8!d>7jShUC~5ZtT)VWk8RRu?dE#R)V`NlmTR9P80tEKMdTkztL+rw zd!4r^%OKZzkOAIjHvSJ7_N1X`cR(PDhohR^q-x zlZLkNA3u;y)V9Zu;0lHPuUuX}@@_j)QlZ{9tw%O^Of{p`C7RX=-$md>srqm9n#XCQ z{L&`{)!|i9-YO(RbC+WybH`8b<$75cLRkYs(v}fzTcj@o5{<8pI;yFBe5@5hXU-5;mxNRaWAxcDzCs-6_$Lq z+hIFi-o&sZCM|O0y#8vFk#gJ!74@;Z%vaAFsw$eusvpom=El$E@rW9cEo4f} zs9T{S-}IxPhu&&p<2p2miI4L>RWhl4f|Kh1Vlu^NitT=GVk3`}$5$9@$pHVZ@j8u% z;!B59UqpO_h76;oF3AOG}h)apC7!^WvkTz2xX^YC7fV4LWXc=7n`-rRDS3i_93{Z-Zj5~W8y&C#&C+x4x=`LwF{|N zqyG*{sDrfs8fbfW1RwgL@A7!|j;vEypVxf&2rg&B1atgw=wQi_ZvdgB1DeZEy zP6daf_J)%gY2%-LfJT8UGyIsq2Zn68H_M1Mb4uf>mc}*O8u!s*>)yug_f?VUS&ojW zSyqoT>}q3E7grDK4#--gatbp%IGeg;$6N)oSvBzyWsR1K-+(JsA+y!S3R@laj_jO8!tVqD=3TL^#P3Wv>)?OIo#@aRdMjd_UNcPl{dgoX`ohH7;zDonf>csG*+ce?p-RBBCJT5Jj zvph`V>wVNVfZ{~+5NF@a;TPPsn&srE*TSwhhmiDhpVjpNny#ylBC2I429Gq>hc7@H# zwANH`RuxWKgGdIkH$kmJN?q|2)QwzdU9^|UfcY?K)!2d)?h$;0Gm7d;MMX6>6)Fjj z=`6lawflMJh@p1?2V{wOQPBd#*CIi10jt00lpj2Tl_11EYA1SOdxc^+XuE5XLPZc$Z2%gn|{HH1i{ z#cywe(bub?x7uXfX!{+XA$JrO)S%d0JPi|ScD@f=l>Gpom8xa>-=65K^S3nwN4{XA zTN$>har~?zO>GlOb!{x?Qk{!WXKgwTrqF{vsuWDGG=8sU$ebU9-o{ilav)vvRdYqk zbE7R{Cx%1>)*5UUyZRhL_5t{E^|$#uN!QD%AwFiFIEq^esZgIG_w{IH%4x}A+d<4x z)c?tTSX;8~Q}di4<6CRdO!y@QHcBn*NwERXJ2r0`@c%|g0EI8!!amhIa~@e?v#4oy zk2$*)Z~@rA+Ygu{<2;QirZ4$o1=5;$#U;(GzWH|zLDa!zYPPA9fjkIM#(v$ce_mAo zegOFS|BZmj+L#M*#@Ib%#1Q9f_5i}WV1e@lzg`yMdtT4*VXJ-yk3<$z?5feCEd@

aB5J+TqML2{|fCkcBz$5k9yT6t0n@J8X8=tDX}3>ewC`2p65 zP+=8ajBA=(m>?&h|4w_*0%qtJ@~8mt9-+MkE}~TIwzT4(KCd2TEq>a}OcE-gqwnw# zvUu)k($qOTMRK&EWf?^m`5X&Dwb+K~g8?li7Gf~%E2X^jA5KR+O1)bG=-Z@?tI3XUpn69dF7 zmN`5qNc>+w)NdS6QKhG%_ML1;%@xRt)_Uc_nP7eZdbh&9`6W~BW)+~U<$Q~^0GD> zDBIR2Ah9j^{DWor#~Y53AOp}Ow2>v8$D+7*X5o9nBXAbLGrS}9fdzS~{6eH+FDiy@ zRW>Iw$O+=Vn^)vF_X25SI18s9n;%5UIYP6Vf?c@Kf2T|AA~K3iGFrI21qm#{lkLi6 zFBBcxds8}p5}o=1R%sTcmcm&wRwt&kZ^nH!{=Md#F367WITX#Sl+>|uQ2(@saM3|5)}z9P@@!bN(u-<(Tj_%1QZ(jC(mM=GNa z?&~b0L8*UxcwiX=k1q$4D?N4XlSoY`Dn}~a2IfQT5qD~(14-84r6qf# z%sAzi6k#D_F`Fg{S-1#1S|@$5G3W931I7v#cbU*-*Md17gZjLd3(^@=rABp-rOdzA zux@fAgVPpA1-nOqI5~M#i-diuOI-_;-WR@`=~VoI430$9<>+p9D1PPRMDy3Dpv<8NQ*oQQ7!XHK+tMq zr7c=0McZh6A^UWsLaq6UJOvf2aV!E%FyXy$e8!$Vn|^voWK2q~Z6A6v$WmqIXRE~z zlZW1aF1T!Xza`q(M*mea?0`lDSgw$x+C?;AmKyUlf$*nU0Z6Sy+&&{xHVDZ7G)I6F z&C7yKt6b4E&F5_)x-1!(pvncq7 zC?NoV(v0)J17hWhGOlg3H4?7xHh1Y>CCFPYA)}CEvWRZyOC`YECwl=){;_?}-y4G> z#qp-wUEoIPf?dzyIoz=JzhmSa7(nxnb8=a*5UOjn8^ju>CX2`#Wao3_c$Er%`D49v zz10;oV{qD7x1f+z$CUK9G3+oPDfsVJ1CZO*cs|qrYB|6~m7$d_szmaqs>H6y4GT{H z>fb{*=>6aOfsZ!R!Z|C?sL@XqT|WOCQku9qq0~F z{AG_qsW`&H;TlgqA*aw=DT1`;d0Fq;2{{C>mR7j43Kl>F2&Sg!A0jdp~r9Qy+c^WOKXjDKEM^ zdK3aQ8UW_psg9@dh4|S}vIf|!Gig~J`Knd2vQsyz$baI#^WAOgm%{@Iip#}dm}x_~ z&-;oCw(n(#4^lsMIn@l9&#I;>i$?^15>GB$|6iA&b7*h~<@MGjPjvA_OtryJkS-mx zII=)D&?K^i+iBBs?Q6r_@wYv{f6ischAkK&mOU;eHdX(N#RNck7sf2oNjXnvU1<@iIg9{&8sNzkJ6T!yq|+?*)05szvpTVzQ38uP^fZkZovX> z97=ks!%Oz~+t(=D$bZ_o`XP=1eK|+NrvU?^g(VZH`8g5xUAtnI={*qNkGT`p6p_a| z*%UfcjN3feK~}P6&#%-A-oB~~Ik|flHS}7~oveeEL&!kXrQXPi0EQcCQ-r0*l-`w9 znyyDO!Ry7YSY`hkV)%)B4NDgI*JK4;@Dxg^a7IQ-_MD050Nw2f+ul3+DUA0>eMDqc zYKj+|`n(Ye(Z+r6Cg++wpNL~NHrMd)tt1E~^3c=LZ}ILJ(WrN$9_YCWr0<_>{c95#NPsy4_V} z@Cic}u0LR#Wn^yLZNNLWzqCu-m^0p5e4oYojb}#OQXsQEiKu$5V;mv;+R0y2%M$K2 z$?ztV#HRiPpBZo5C)gv`&G5Hf?PuTcTfTs$`u1iKtDEq~{d26UKQQ;~&)m)6X&?}U zl9F!}mrGfkZz17%Q{<}L8rIphz`^E}1(@!-^XfLK8AZ!shu&vI3hT6Tl-2!X12grZ zk-|aJj*6-cQo^5QuQ`q^LR?1)d?~woKmp4vl&5;zOiNWQW}|k}Mt9kOe=xf(>m#}$ z3PQwhy9!!1uPYNc0SBO`TVX^mSV;cz9UJ@)sZP{tR^J+~nGcaeg@s85m(?oZzRnib zkV-R)Rh)-cV-j6CK(`G8jQMw7)OYjbim(R6PG;Y8K{+o{EZ$H=2>J=jCqs4vKW$(4 z75JxintM!@{idr`o=koiq$1YJyd8g>YbnQ6Nhd}^vRFz7tbXAFm6$4Jr+IIsq*|C0 zz69By)(pUXY1XrvRHj59qy50KT5WY6ur=i3&c!?#_4R+RN}iJ6E^TXiH|wrWENVBp zEdQ&@nD6BtR4~#Jr^jj80*kefivX>r5|yy)EwwVhR;X@8-ivt+X^70!lx;nOQ|Hg6 zU7?=$*(cZZI=pcx@@~Z^CEFEXz2=R5O1mP#MlTRe!I%gcTOMF}jUiwjTZq%5{HZ{j@&n}jx@#fZ#S2GB{1Zf;1chbC-3a~;>A71Z)VMp z)o~#2;eJ{^;@3<$h-JPGbU7G6X6rBdIxD!XaxDbPKBXU8gHd_-bKJz6toP6}4vFR2 zx~YX!vE8v?f5&^qG9b*MaO3;sg=Am-NJzXTP?Ky$A^fL+KH{4>wZX<9(vYij1b4_9 zGFi{?IwKoV9_2{-rxCep79%X+gYc~yeOOvma1RYniuau8 zX%={6S@A+LeUhn7QQZyy{#_F%EXHg{)Fg?!bSGk6YJ?GRQEuF zO|)P#xiwJJV}650iqxXk0uMZL4-Z#L^vGWGnMJTo*B83rO`_ftb~KSzzd(kAnk*qD z^gY9u-xMwv9dj8ont_K?R}%R8j_b^g$zPS1^dtV03H@nlYgIkTICLeA^cOMA^~?Cu zb9AYr0@%)r0mPM7Ckgl`1oJfk-0dfdZM^?OdwdxdjW7p5;l$Fz9W z)W-IaM`7D^wcN|2Sl7P`Bs9TU|En@}e-dxtphHiX~rbMudge*)Ynv0;OGK3>}v*N|Xu znG4=)<~|+w#+L0Yvaxu@^oQJELUaj6*8H}UVJVED@opLI72!^d@s3Xy;gQwrARO8% zQpE+V`R<0tGWki+yX=S~QZxHQ{ne==U7NRN7{PMeIj>;O;q5#|_ogzxJ%{k@6UeVp z*=Q(w4gsB;^Gt+A>8&hU-A)|7yhhb$2HJXc-a}@l2SDehVe-y^bh8ZW4=b$(u+nEp zKS4q_rIqs=w|A+j`Vmj0ncucEm9t9MOk~by46uhiOC_2{99-3R-pg#s8RmPU&-;HO zZ9~&+gz2+99sA0bBH$r_iXi=q^fRc-5MF5fN?~epx1UdFZYFrV6}<0!Fr_FJBcLSn zC3!u;!f48+_}Tdz&eVmiA3mQ<4Ot8H*-&s6xek0F_-&qgoU|#aL zU5pRqg$=44pli8S-;~>pxMbWm@;vm5ib<>r6C|!fX*K z=l)EQ$DB`U&V)?6cHH}Ks~f1|&6sqmB`*iY7L-7ieCx9uO3ov|3;}&aAx-#N!r}bh z{)c-yMB|g~a@5!{4BtCJR8tw3NaREfvo*FdG~{rF6Ktc80=w|F<#z< z;ys4bcES^p6m)OYviT>5i->sLFT$Wtidy`B?446<9yPMZzyFiZ=X+X|p0I8VVZJ))!_XZ0&|I3!hWAi6lluYuW=Rs}uX{v{Z1$Z_ zFxL}ts)Wsav~P-II{}{$^hg6^d}Re_;KDUqfcO5S3)*ii(&{NGsH z{HAXS*IZ9Qo&TV@yIH>i2bptO{`(E;1lT{3HoP>R=l*hC=@YN4 z@~M?HMP12FvSZ`0F_*Cr9MOnN(?#X_$&79@R|^#uT}uVaM$)Jpi=M=eQvj#HhlR65 zMkPB=%}O(`l(!gCN9JPznJ1(Xrf;UkRn9deiZTKNl}<-dhO*`PZxLkqZ#mLk22)P6 zQRdp>B2Nah#c@c+#4Q4#ij&Oh(T7b!H6j1vxrU2_awk%bC4`j~L0iE^E;(~J>|4D7 zII8PS8Vb|zp41kl%HaeIj7YL|l1>yqDqDfidn zfD5mQbxb3n)iJ?~yyVK};>z8%)aJ36gZF7?D~sh#_p$R;C$wBUsM-Iu&}~VHBLp20 zr7rQm7rG5(9zg(~TT}Vk;(Kai{Z!j?BC^0YfXaLC-CkGnJCcQ{)m&vtIksFzk5)R3u%7ub$%wBds@*WwPdJ4rTxKfqe zkJVu>uy5-7grW~qmo&Rrzl2U8;Su)xQRt7S%&SVf(%gyB%~q8R%FA+md7{&N*``vM zz~*#WZMPOi^MUBRb}hf&spkiM6WB7eToqJV_?1xUvSRkWyT2)L=;}HKuEsABSs`RF zbBq7_sm`Z{aNP#zDSeJ(^HQGUo=>xw?MCY&kC*cql9&7#^G5{`uGmgnG!OHRw;0!4 zO_FoiFEpcsInPIocTW4p8o_xtUsk#}QbS9+a*>%48HUfqj)yj%hb$3PBc{9v&+!nc zq35BH2}vv2Ja*3>+mpYm1E0uJ*WFJ^5@e$Ic@%d z;pdl%(SKEC8=8e>Rrb!gr2|#jM#3(rT`0=L!&?x9_?2Jw8ORrtnV#4ZSd9CxzqmS8 zOyn(>th-KI=<0+9dbeEOzJWA2KB*0{Gv<4BoY0{~YE9qkmels~sF!gs1=tjd5vovh zw4cdaBJbN54QLj#zMUI%N6;_JzQ+3mlNo8D6ZE-^*f_C}u6eA*Zn$?rGDonA6>G`Z z*27>(L2ZM>5!l$Uptrjfr3g`Hdt!Tfo1q< zoVD&6llo=b)vQ`eTpw?CROZka>F6Y%Q5zDGhWsO<=~As^1qbSV?0#6&C1D9v&onOckSJ% z%ve!pqz@qi=7&qYB)7lb@ZO!muBGk{QN^MzKiZvE&(U5Xz&nCqA0$)Zhm;@m2qeqKnVx;YJ-gAYQeGl z;75e5`vm{!DKsNf{tPVd<93GSxVh_-8`ZkeIzr^)sjtz7#mb#%dtY~N(8^86at2JV zDxD2r23k8Rpd6|Jj#=wAwzv?GgE`$3FPoYu#3l>rwP3j)35~R=e)!8vN1SLU952rU zElL=NI0iIxJc?GCXA67P5*;yBB8dv5j8)iTTJG6EJZvRVcpBX(WfVd3#aIXh?uKi6$a_0Dl^=89ywUTPuf>p>0mkJ)E_e~6{CdF4%*hRbGF+Nx=K4es8}I zKNU=@`-}iLkY({SK8(SGuld5ERoIMY2i1#WwYNJXTb>Y{uV)QpmOky$H2d1#g}LC4enCk<~k9ZA{+XDBTe8I(T43*h{}C9#J;8vfK8l|B#d-&vbF>jL4GYA75q?ditD zPiz)@aWY~~`VsOX$?MLi5AdJb5)x1SsQ^mA&LM}@$L2Rjo<5)9LWUkss;EW8hcZ?f z>X8AnG8XkX+}XolTc0e7&T{+{nt%3dJ*j{~WO>cPXB#}WwY5tSA0qWag zLP1ujGe0+~Fbra_UC=2oFYPGF)0n|+@f_FBWA;OGFbw_H?m;(zhb}2SX{J7*yDV!L zWOC)@giWcG@@Lc)s3cuak421fr0tVcOc(9xq;FJD$#!*Inn=a!?Wh4aY^b>}@^~Zw zkIEStSe0b9VW_Nf{+i;Ru|=?iS=PMC%=GGbEv=7rk!M&7n7()d>8<)J1(kc=AJC?- zC(gPSdGUE9F$e>QMH)sWx~|6w(S!K8y;3+1h=pB16@hFF|{=&SIth?-6Y~6 zI8zAutlA66>jMCzT=`0*n`Q^X2-*6N!BBszda|;H436uQ;rE)=;YU*cjLHR=r;?#> zD#TqYo6i$3=U!K;N`{uMWlf^|wOR&aYjizclRZ9u;s@2bJ>JK|hBb`-233cj{xcni z`znielT!rU+Q%25U;8mQiaNpm&ngIR0uIKqYOe{vdsYFmGy+=$FNt1>rehGDdITgA z7r=gq*89=w7OVN^I+l&Iup_TrTE`Mq(fOMO!d|GBHB(monjM!KmS`@|tJCKsqD`_> zlQt;-&=B#hX1q{cg+->(qBdDJTl&QZi+9&4~BgyA19$o#)^*8++1&jV>hZg&s z9LS&J4n%~oL1@Lb23{0=T6PO3vfDlfD?eyhh`kxejB&Sd(lW2KR*z`L^l?{P!qh}(Hv&67NAkHjAxkLDym3JBnwzi zFc3*r)T(ab85bvV`hnVz=1=bbQd^JE4mJ}x7*;#p(byHU*1UVJ9%jS2L=#7QF{Sxq zo!D&7PlQz9Xyg}zzbjddUhW94(Vk3BOZ^bGTuqF)kGV$M%Z#HSGCkA3I?D$No@UVf zcJ@+S0c?eolTJ;gcsCqH)^Si?kPA26cH_vW`{Bb{Vdcz67lC)K_hrkW<}2rXpi5rY zmScNrkaD4fFMgY&u~~G5A!?qOo9&{b&$IHplO}Ymc>#5Bu6!Grdt&{a>x_m}%0w3d z13~(r1V=vo4k{U`2bgS+q9`r>$}vy4yDUT6j-YmEOfR3U{P5ZQN4k7d3;OybshE!{ z&EoqTXnwn;U9%#I4Mt9>N9?NYTR_$-v|v1&LQZ~$3Co9XiG9z5ACOLwmSWTo9m&oM z--K~CGpIY2DIIx#Ghf@jNXTKpAf3;7v_d+pSLlKYIjI&70606VmfQ`7nDz$kDty)7=K=_?mLpU@z4TB{Ol#BrKQJxU?SEGm{$BpDIk_bEj21EFA#1dTBunQSBO|X;jUe?F_NgCsmMO(&=f#_~l$UmJyl$X;jzQ{JT*-H30~1e8<)eEvd4wl(06o#=ggH85l^Ax-LZozL(*#YgwpCp!_sA;z9|h zPo`M(%ITu(+TH81hMi#^!z%Q;#-7`wbGE{hl8A=;coJ@4gz)uUOzbsS^cq4pk!DZCxQ&#6+MY0n?QD-k^dlm8r zT~~TOd$y*A8;nIqo2h9_n#6#H5Vmay2B?)%zmGETorMq;BDwvmPl%+@A>^kT>i+d? zN0YlM3A2YG87$UAP!?z54cV`Y{=oYF(Y{H3Quzua6$%6Gr}y`W`J&)!roR_s{Z~Eu z+DT5cB8<(x^c)7|$@A=Rf)Qi?R!hkPlj;m)`yV%wYsQm& zA=&o;*pWg@Nh(~Nq_!5si=^W{Iws~>*FWfTH-w6-g8cjViSRc_+{}r4l25Yli}5EQ zM@eKWee55WHF0wa9Q~e~0WtNLGG^^d?h-U5-=R#ADs`;yb!OkQH1QFbl;!3aD0;KY znglLu4mrJ>Cm@f}&vR>I{$Qi%ko&0bA3#-DcacVcdH`-n$Kt>WV~=BBAW)g=Zvjey zJa6UcDd6PVA__RtA1S~{htwE!F2V|UH^=DD=SapgX(EXvCwm|#Km9!zjrUn|_$y2y zZ0EG!cs?-gY~IW3!0+APt48p9fApnk zO>^UF(Jq-@m#BDV|4Kk(IOzg$TiqwLo-!WDx~C6DNHn1f(caTDuwc!dWf0npJKAT? zf7r0KtR&<_Ivl(89-Qg8@&Pt0g@Nx zXK}-=Qbut9Vf-AK*AqQ$4#Z>!e}1x=-i|O6^lK)#jXt(;E3~BOFb@^8n`aPo2d2a4 zJ%r&pArv>6bFC>(mc2HFeG}of2b$?yz`61BbBRJ~I%@D-dJG6WX~N3PF0A8K;@bZU=-f&Dsi%ue}lRLfTaTP0lj z6=T!)vWLQ^Z1e}7a$)8WH|Ib?2}}9(-UUiBvouhyhvaG#;R3_MY)sFwAiw+f+~3cj zF>yYex_W)dg+8bJ((*Lf`%XmZW7REdLHT*tecW>*eX?#aqO~#dr(Rk}vNV%k)==7a z{rmRxp{uD_=1ga{V0)t=>H_j=-qanAA+9FFn?SOu$mITN|8BVjzP)qVFl2F?frlb1rjR+Rqa?y;*q{5_T=9`kN$DZH2sbCQ+D@hX*YgFEzBRGi6(A+ zo-L)cntC@kyF<=XLlsi8xuq=`^@?&DVmz*x83l~S;#O!|y?FQtJ0-XbEq6mdx-wU7 z=Y2s$3maGiFFAjuMU1%}z`KlhTssF|-&JWg-Pwqa3=uKmxNlH9BW_f!+#&_=cwI-h zjSoT0w6=TWD#i=sGse5Rg52+}5uLof4f5xcCKwq6*I-H8=Q+*7dvY#%&`x#E+#EN? z3BKT-o8#`6eKJoTHezqxQ+U35Jlv@od+Sa6UTC@VqS=joIkMtaoi@E%Be-DB)VY`{ z_o%VeP{=6RuZ- zLcQH;?dp~G&nLom?&I}UbXv^oyC>J}r+aDc45?>V7MAZuF2y3uNN#P)5c=YsYHtKb zqU=vP>weJ{)Y`rFVzI9);kIkIQ*D-SgxSEgm%+Ri6!-LGBfPp|&-Xpg5r)$0po}pf zanbWy!`9&e8$zYSn4uR;3dBz&S4u`teaVe{ng~uE!tM`SLzc?4`eS_SCDs?$7{>hvOWe*nw-!WA zPR@K=2Sdi#=$QoHYr**7R99{7G_=9=%cyQ!Nc9?t2_e2Zs`F9x;xW~w0x8oPHASV) zYMJGWd?pF)J;iUUMKhlJQMMV^C~MHK`%t=OOXi2ncx%;*KiHv@_oWmRo}?=lbUGq0 zbMD2xor75UQKs|=Xn>qWPUsV2Cawz>$g$~;-ySV?T%YsZ0LR3|osG)ykawNlu8z=& znd@h71fdCL_-CwxKI+woshu%BiGu!~s;>lqDbLRwF*uVs41r(A*urUDxZo_766qlR zjN%1i<e08`3&JQOulb+J9vagl{Bb;%R<(`|RrK&ZspNS2H>ZpI*LUFH zFp)C<+^NC6|MMik*Ak>(|J)eCMGL_Fg^7{+!u{n}7I^yP^`D>qitzvM7iGs^lXRM} VzHiYat9^VjNl`hGav^=c{|4FRlI{Qi literal 0 HcmV?d00001 diff --git a/site/jekyll/img/tutorial/nuget_core_650.png b/site/jekyll/img/tutorial/nuget_core_650.png deleted file mode 100644 index dcd18c1ffe03edd16f03dc87d95d8e9019ea1396..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36255 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℘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

bC7G=!<1Z1U~iK1kISe;Ttu1)$Bvt-|AMIz5ah{ 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%0D4*oDU9fVqs-Q#*xej;_5A{*M4~P)aLEG1t{9X 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 literal 0 HcmV?d00001 diff --git a/site/jekyll/tutorials/aspnetcore.md b/site/jekyll/tutorials/aspnetcore.md index 3f757628c..aacb75e13 100644 --- a/site/jekyll/tutorials/aspnetcore.md +++ b/site/jekyll/tutorials/aspnetcore.md @@ -6,7 +6,7 @@ layout: docs > Note: > -> This tutorial is for Visual Studio 2015 and ASP.NET Core MVC. If you're still using ASP.NET 4 and ASP.NET MVC 5, you can [follow the ASP.NET 4 tutorial instead](/tutorials/aspnet4.html) +> This tutorial is for Visual Studio 2019 and ASP.NET Core MVC. If you're still using ASP.NET 4 and ASP.NET MVC 5, you can [follow the ASP.NET 4 tutorial instead](/tutorials/aspnet4.html) This tutorial covers the end-to-end process of creating a brand new ASP.NET MVC website and adding a React component in it. We will start from scratch and end with a fully functioning component. It assumes you have basic knowledge of ASP.NET MVC and using Visual Studio. This tutorial is based off the [original React tutorial](https://reactjs.org/tutorial/tutorial.html) but has been modified specifically for ReactJS.NET. @@ -24,26 +24,29 @@ It'll also have a few neat features: - **Live updates:** other users' comments are popped into the comment view in real time. - **Markdown formatting:** users can use Markdown to format their text. -## Want to skip all this and just see the source? +## Want to skip all this and see the source? [It's all on GitHub](https://github.com/reactjs/React.NET/tree/master/tutorial-code). ## Getting started -For this tutorial we'll be using Visual Studio 2015. If you do not already have a copy of Visual Studio, [the Community version](https://www.visualstudio.com/vs/community/) is free. We will be using ASP.NET Core MVC. +For this tutorial we'll be using Visual Studio 2019. If you do not already have a copy of Visual Studio, [the Community version](https://www.visualstudio.com/vs/community/) is free. We will be using ASP.NET Core MVC. ### New Project Start by creating a new ASP.NET Core MVC project: -1. File → New → Project -2. Ensure ".NET Framework 4.6" is selected in the dropdown list at the top -3. Go to Templates → Visual C# → Web and select the "ASP.NET Core Web Application (.NET Framework)" template. Call it "ReactDemo" - [Screenshot: New Project](/img/tutorial/newproject_core.png) -4. In the "New ASP.NET Core Web Application" dialog, select the Web Application template. Also, click "Change Authentication" and select "No Authentication" - [Screenshot: New ASP.NET Core MVC Project dialog](/img/tutorial/new_webapp.png) +1. File → New → Project... +2. Select "ASP.NET Core Web Application". You may search for it via the search box or narrow down your choices via the drop-downs - C#, All platforms, Web is a good way to get it as the first result. + [Screenshot: New Project](/img/tutorial/newproject_core_2019.png) +3. Click "Next". +4. Enter "ReactDemo" for the project name and location to store it. +5. Click "Create". +6. In the "Create a new ASP.NET Core web application" dialog, select the "Web Application (Model-View-Controller)" template. Also, ensure "Change Authentication" is set to "No Authentication". + [Screenshot: New ASP.NET Core MVC Project dialog](/img/tutorial/new_webapp_2019.png) +7. Click "Create". -Note: We are using .NET Framework in this tutorial, but you can instead use .NET Core if you want to be able to run your site on Linux or Mac OS. Currently .NET Core is missing some of the functionality provided by .NET Framework, so it is recommended to use .NET Framework unless you have a reason to use .NET Core specifically (eg. cross-platform support). +Note: We are using .NET Core 3.1 in this tutorial. ### Remove example content @@ -51,14 +54,40 @@ The default Web Application template includes some example content that we don't - `Controllers\HomeController.cs` - `Views\Home` and `Views\Shared` folders -- `bundleconfig.json` -- `Project_Readme.html` ### Install ReactJS.NET -We need to install ReactJS.NET to the newly-created project. This is accomplished using NuGet, a package manager for .NET. Right-click on the "ReactDemo" project in the Solution Explorer and select "Manage NuGet Packages". Click the "Browse" tab, search for "React.AspNet", and install the **React.AspNet** package. +We need to install ReactJS.NET to the newly-created project. This is accomplished using NuGet, a package manager for .NET. Right-click on the "ReactDemo" project in the Solution Explorer and select "Manage NuGet Packages...". Click the "Browse" tab, search for "React.AspNet", and install the **React.AspNet** package. -[Screenshot: Install NuGet Packages](/img/tutorial/nuget_core.png) +[Screenshot: Install NuGet Packages](/img/tutorial/nuget_core_2019.png) + +### Install a JS engine + +While we're managing NuGet packages, we need to install a JS engine. Search for and install one of either: + +- `JavaScriptEngineSwitcher.V8` (what this tutorial uses) +- `JavaScriptEngineSwitcher.ChakraCore` + +If you choose ChakraCore, make sure you change any code/using statements in this tutorial where needed. + +Now, install the native assembly based on your architecture and engine choice: + +V8: + +- `JavaScriptEngineSwitcher.V8.Native.win-x86` +- `JavaScriptEngineSwitcher.V8.Native.win-x64` (what this tutorial uses) + +Chakra: + +- `JavaScriptEngineSwitcher.ChakraCore.Native.win-x86` +- `JavaScriptEngineSwitcher.ChakraCore.Native.win-x64` +- `JavaScriptEngineSwitcher.ChakraCore.Native.win-arm` +- `JavaScriptEngineSwitcher.ChakraCore.Native.linux-x64` +- `JavaScriptEngineSwitcher.ChakraCore.Native.osx-x64` + +Lastly, install `JavaScriptEngineSwitcher.Extensions.MsDependencyInjection`. + +### Modify Startup.cs We also need to modify the `Startup.cs` file to initialize ReactJS.NET. You can learn more about this on the [Getting Started on ASP.NET Core](/getting-started/aspnetcore.html) page. Open `Startup.cs` and perform the following changes: @@ -66,7 +95,7 @@ At the top of the file, add: ```csharp using Microsoft.AspNetCore.Http; -using JavaScriptEngineSwitcher.ChakraCore; +using JavaScriptEngineSwitcher.V8; using JavaScriptEngineSwitcher.Extensions.MsDependencyInjection; using React.AspNet; ``` @@ -74,8 +103,7 @@ using React.AspNet; Directly above: ```csharp -// Add framework services. -services.AddMvc(); +services.AddControllersWithViews(); ``` Add: @@ -85,8 +113,8 @@ services.AddSingleton(); services.AddReact(); // Make sure a JS engine is registered, or you will get an error! -services.AddJsEngineSwitcher(options => options.DefaultEngineName = ChakraCoreJsEngine.EngineName) - .AddChakraCore(); +services.AddJsEngineSwitcher(options => options.DefaultEngineName = V8JsEngine.EngineName) + .AddV8(); ``` Directly **above**: @@ -119,7 +147,7 @@ app.UseReact(config => }); ``` -Finally, add this to `Views\_ViewImports.cshtml`: +Finally, add this to the top of `Views\_ViewImports.cshtml`: ```csharp @using React.AspNet @@ -127,18 +155,19 @@ Finally, add this to `Views\_ViewImports.cshtml`: ### Create basic controller and view -Since this tutorial focuses mainly on ReactJS.NET itself, we will not cover creation of an MVC controller in much detail. To learn more about ASP.NET MVC, refer to [its official website](http://www.asp.net/mvc). +Since this tutorial focuses mainly on ReactJS.NET itself, we will not cover creation of an MVC controller in much detail. To learn more about ASP.NET MVC, refer to [its official website](https://dotnet.microsoft.com/apps/aspnet/mvc). -1. Right-click on the Controllers folder and select Add → New Item -2. Select .NET Core → ASP.NET → MVC Controller Class +1. Right-click on the Controllers folder and select Add → New Item... +2. Select ASP.NET Core → Controller Class 3. Name the file `HomeController.cs` +4. Click "Add" Once the controller has been created, we also need to create a view -1. Right-click on the Views folder, click "New Folder", and create a "Home" folder -2. Right-click on the Views\Home folder and select Add → New Item -3. Select .NET Core → ASP.NET → MVC View Page -4. Name the file `Index.cshtml` +1. Right-click on the Views folder, select Add → New Folder, and create a "Home" folder +2. Right-click on the Views\Home folder and select Add → View... +3. Name the view file `Index` +4. Click "Add" Replace the contents of the new view file with the following: @@ -154,6 +183,7 @@ Replace the contents of the new view file with the following:

+ @@ -161,7 +191,7 @@ Replace the contents of the new view file with the following: _Note: In a real ASP.NET MVC site, you'd use a layout. However, to keep this tutorial simple, we will keep all HTML in the one view file._ -We also need to create the referenced JavaScript file (`tutorial.jsx`). Right-click on `wwwroot\js` and select Add → New Item. Select .NET Core → Client-side → JavaScript File, enter "tutorial.jsx" as the file name, and click "Add". +We also need to create the referenced JavaScript file (`tutorial.jsx`). Right-click on `wwwroot\js` and select Add → New Item. Select ASP.NET Core → Web → Scripts → JavaScript File, enter "tutorial.jsx" as the file name, and click "Add". For the remainder of this tutorial, we'll be writing our JavaScript code in this file. @@ -176,7 +206,7 @@ React is all about modular, composable components. For our comment box example, - CommentForm ``` -Let's build the `CommentBox` component, which just displays a simple `
`. Add this code to `Tutorial.jsx`: +Let's build the `CommentBox` component, which displays a simple `
`. Add this code to `Tutorial.jsx`: ```javascript class CommentBox extends React.Component { @@ -194,7 +224,7 @@ Note that native HTML element names start with a lowercase letter, while custom At this point, run your application by clicking the "Play" button in Visual Studio. If successful, your default browser should start and you should see "Hello, world! I am a CommentBox." -Screenshot: Hello ReactJS.NET World! +Screenshot: Hello ReactJS.NET World! If you see this, congratulations! You've just built your first React component. You can leave the application running while you continue this tutorial. Simply change the JSX file and refresh to see your changes. @@ -320,12 +350,21 @@ Note that we have passed some data from the parent `CommentList` component to th Markdown is a simple way to format your text inline. For example, surrounding text with asterisks will make it emphasized. -In this tutorial we use a third-party library called [remarkable](https://github.com/jonschlinkert/remarkable) which takes Markdown text and converts it to raw HTML. We already included this library with the original markup for the page, so we can just start using it. Let's convert the comment text to Markdown and output it: +In this tutorial we use a third-party library called [remarkable](https://github.com/jonschlinkert/remarkable) which takes Markdown text and converts it to raw HTML. We already included this library with the original markup for the page, so we can start using it right away. Let's convert the comment text to Markdown and output it: + +```javascript{12,18} +function createRemarkable() { + var remarkable = + 'undefined' != typeof global && global.Remarkable + ? global.Remarkable + : window.Remarkable; + + return new remarkable(); +} -```javascript{3,9} class Comment extends React.Component { render() { - const md = new Remarkable(); + const md = createRemarkable(); return (

{this.props.author}

@@ -336,7 +375,7 @@ class Comment extends React.Component { } ``` -All we're doing here is calling the remarkable library. We need to convert `this.props.children` from React's wrapped text to a raw string that remarkable will understand so we explicitly call `toString()`. +All we're doing here is finding and calling the remarkable library. We need to convert `this.props.children` from React's wrapped text to a raw string that remarkable will understand so we explicitly call `toString()`. But there's a problem! Our rendered comments look like this in the browser: "`

`This is ``another`` comment`

`". We want those tags to actually render as HTML. @@ -370,15 +409,15 @@ So far we've been inserting the comments directly in the source code. Instead, l ```javascript const data = [ - { Id: 1, Author: 'Daniel Lo Nigro', Text: 'Hello ReactJS.NET World!' }, - { Id: 2, Author: 'Pete Hunt', Text: 'This is one comment' }, - { Id: 3, Author: 'Jordan Walke', Text: 'This is *another* comment' }, + { id: 1, author: 'Daniel Lo Nigro', text: 'Hello ReactJS.NET World!' }, + { id: 2, author: 'Pete Hunt', text: 'This is one comment' }, + { id: 3, author: 'Jordan Walke', text: 'This is *another* comment' }, ]; ``` We need to get this data into `CommentList` in a modular way. Modify `CommentBox` and the `ReactDOM.render()` call to pass this data into the `CommentList` via props: -```javascript{6,14} +```javascript{6,13} class CommentBox extends React.Component { render() { return ( @@ -396,12 +435,12 @@ ReactDOM.render(, document.getElementById('content')); Now that the data is available in the `CommentList`, let's render the comments dynamically: -```javascript{3-7,10} +```javascript{3-8} class CommentList extends React.Component { render() { const commentNodes = this.props.data.map(comment => ( - - {comment.Text} + + {comment.text} )); return
{commentNodes}
; @@ -413,7 +452,7 @@ That's it! ### Server-side Data -Let's return some data from the server. To do so, we need to first create a C# class to represent our comments. Right-click on ReactDemo and select Add → New Folder and name the folder "Models". Once the models folder has been created, right click on it, select Add → Class, and enter "CommentModel.cs" as the file name. We'll create a basic comment model: +Let's return some data from the server. If you are still debugging, end it by pressing the Stop button. To do so, we need to first create a C# class to represent our comments. You should have a "Models" folder, but if not, right-click on ReactDemo and select Add → New Folder and name the folder "Models". Once the models folder exists, right click on it, select Add → Class..., and enter "CommentModel.cs" as the file name. We'll create a basic comment model: ```csharp namespace ReactDemo.Models @@ -427,7 +466,7 @@ namespace ReactDemo.Models } ``` -In a real application, you'd use the repository pattern here, and retrieve the comments from a database. For simplicity, we'll just modify our controller to have a hard-coded list of comments. +In a real application, you'd use the repository pattern here, and retrieve the comments from a database. For simplicity, we'll modify our controller to have a hard-coded list of comments. ```csharp{9,13-33} using System.Collections.Generic; @@ -488,7 +527,7 @@ The `Route` attribute specifies that this action should be used when `/comments` The `ResponseCache` attribute is used here to prevent browsers from caching the response. When designing a real world API, caching of API requests should be considered more carefully. For this tutorial it is easiest to simply disable caching. -If you hit `/comments` in your browser, you should now see the data encoded as JSON: +Let's restart debugging (press the play button) and hit `/comments` in your browser, you should now see the data encoded as JSON: Screenshot: JSON data source @@ -499,7 +538,7 @@ Now that we have a data source, we can replace the hard-coded data with the dyna ```javascript{2} ReactDOM.render( , - document.getElementById('content'), + document.getElementById('content') ); ``` @@ -570,7 +609,7 @@ Below, we're using `componentDidMount()`, a method called automatically by React The key to these dynamic updates is the call to `this.setState()`. We replace the old array of comments with the new one from the server and the UI automatically updates itself. Because of this reactivity, it is only a minor change to add live updates. We will use simple polling here but you could easily use [SignalR](http://signalr.net/) or other technologies. -```javascript{6,15-18,31} +```javascript{6,15-21,34} class CommentBox extends React.Component { constructor(props) { super(props); @@ -613,7 +652,7 @@ All we have done here is move the AJAX call to a separate method and call it whe ### Adding new comments -To accept new comments, we need to first add a controller action to handle it. This will just be some simple C# code that appends the new comment to the static list of comments: +To accept new comments, we need to first add a controller action to handle it. This will be some simple C# code that appends the new comment to the static list of comments: ```csharp [Route("comments/new")] @@ -651,7 +690,7 @@ With the traditional DOM, `input` elements are rendered and the browser manages Hence, we will be using `this.state` to save the user's input as it is entered. We define an initial `state` with two properties `author` and `text` and set them to be empty strings. In our `` elements, we set the `value` prop to reflect the `state` of the component and attach `onChange` handlers to them. These `` elements with a `value` set are called controlled components. Read more about controlled components on the [Forms article](https://reactjs.org/docs/forms.html#controlled-components). -```javascript{2-13,16-28} +```javascript{2-13,17-28} class CommentForm extends React.Component { constructor(props) { super(props); @@ -754,7 +793,7 @@ When a user submits a comment, we will need to refresh the list of comments to i We need to pass data from the child component back up to its parent. We do this in our parent's `render` method by passing a new callback (`handleCommentSubmit`) into the child, binding it to the child's `onCommentSubmit` event. Whenever the event is triggered, the callback will be invoked: -```javascript{5,16-18,28} +```javascript{5,16-18,31} class CommentBox extends React.Component { constructor(props) { super(props); @@ -816,7 +855,7 @@ class CommentForm extends React.Component { if (!text || !author) { return; } - this.props.onCommentSubmit({ Author: author, Text: text }); + this.props.onCommentSubmit({ author: author, text: text }); this.setState({ author: '', text: '' }); } render() { @@ -843,7 +882,7 @@ class CommentForm extends React.Component { Now that the callbacks are in place, all we have to do is submit to the server and refresh the list: -```javascript{16-25,42} +```javascript{16-25,45-49} class CommentBox extends React.Component { constructor(props) { super(props); @@ -861,8 +900,8 @@ class CommentBox extends React.Component { } handleCommentSubmit(comment) { const data = new FormData(); - data.append('author', comment.Author); - data.append('text', comment.Text); + data.append('author', comment.author); + data.append('text', comment.text); const xhr = new XMLHttpRequest(); xhr.open('post', this.props.submitUrl, true); @@ -930,13 +969,13 @@ class CommentBox extends React.Component { // Optimistically set an id on the new comment. It will be replaced by an // id generated by the server. In a production application you would likely // use a more robust system for ID generation. - comment.Id = comments.length + 1; + comment.id = comments.length + 1; const newComments = comments.concat([comment]); this.setState({ data: newComments }); const data = new FormData(); - data.append('Author', comment.Author); - data.append('Text', comment.Text); + data.append('Author', comment.author); + data.append('Text', comment.text); const xhr = new XMLHttpRequest(); xhr.open('post', this.props.submitUrl, true); @@ -972,7 +1011,7 @@ There used to be a section on bundling and minification in this tutorial, but un Server-side rendering means that your application initially renders the components on the server-side, rather than fetching data from the server and rendering using the client. Server-side rendering enhances the performance of your application since the user will see the initial state immediately. -We need to make some modifications to `CommentBox` to support server-side rendering. Firstly, we need to accept an `initialData` prop, which will be used to set the initial state of the component, rather than doing an AJAX request. We also need to remove the `loadCommentsFromServer` call from `componentDidMount`, since it is no longer required. Also, we need to remove the `ReactDOM.render` call from the JSX file, as server-side rendering automatically outputs the correct `ReactDOM.render` call for you. +We need to make some modifications to `CommentBox` to support server-side rendering. Firstly, we need to accept an `initialData` prop, which will be used to set the initial state of the component, rather than doing an AJAX request. We also need to remove the initial `loadCommentsFromServer` call from `componentDidMount`, since it is no longer required. ```javascript{4,31-33} class CommentBox extends React.Component { @@ -1023,33 +1062,28 @@ class CommentBox extends React.Component { } ``` -We also need to update the `Comment` component to use `Remarkable` from either `global` or `window`, due to a bug in Remarkable: +Also, we need to remove the `ReactDOM.render` call from the JSX file, as server-side rendering automatically outputs the correct `ReactDOM.render` call for you. -```javascript{3} -function createRemarkable() { - var remarkable = - 'undefined' != typeof global && global.Remarkable - ? global.Remarkable - : window.Remarkable; +```csharp +// ReactDOM.render( +// , +// document.getElementById('content') +// ); +``` - return new remarkable(); -} +We need to update the Comment component to use Remarkable from either global or window, due to a bug in Remarkable. A utility function was provided earlier in the tutorial. +```javascript{3} class Comment extends React.Component { - rawMarkup() { - const md = createRemarkable(); - const rawMarkup = md.render(this.props.children.toString()); - return { __html: rawMarkup }; - } - render() { - return ( -
-

{this.props.author}

- -
- ); - } -} + rawMarkup() { + const md = createRemarkable(); + const rawMarkup = md.render(this.props.children.toString()); + return { __html: rawMarkup }; + } ``` In the view, we will accept the list of comments as the model, and use `Html.React` to render the component. This will replace the `ReactDOM.render` call that currently exists in Tutorial.jsx. All the props from the current `ReactDOM.render` call should be moved here, and the `ReactDOM.render` call should be deleted. @@ -1091,7 +1125,7 @@ public ActionResult Index() We also need to modify `Startup.cs` to tell ReactJS.NET which JavaScript files it requires for the server-side rendering: -```csharp{4-10} +```csharp{4-6} // Initialise ReactJS.NET. Must be before static files. app.UseReact(config => { @@ -1101,7 +1135,7 @@ app.UseReact(config => }); ``` -Note that we need a copy of Remarkable in order to load it for server-side rendering. In a production app you'd probably use Bower or npm for this, but for our tutorial you can just [download the file from CDNJS](https://cdnjs.cloudflare.com/ajax/libs/remarkable/1.7.1/remarkable.min.js) and save it into `~/js`. +Note that we need a copy of Remarkable in order to load it for server-side rendering. In a production app you'd probably use Bower or npm for this, but for our tutorial you can [download the file from CDNJS](https://cdnjs.cloudflare.com/ajax/libs/remarkable/1.7.1/remarkable.min.js) and save it into `~/js`. That's it! Now if you build and refresh your application, you should notice that the comments box is rendered immediately rather than having a slight delay. If you view the source of the page, you will see the initial comments directly in the HTML itself: @@ -1111,13 +1145,12 @@ That's it! Now if you build and refresh your application, you should notice that Hello React -
-
-

Comments

-
-
-

Daniel Lo Nigro

-

Hello ReactJS.NET World!

+
+
Comments +
+
+

Daniel Lo Nigro

+

Hello ReactJS.NET World!

From e66f5e3b3f61e4a22c69d871651b000f3e448b81 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 18 Feb 2020 01:27:20 +0000 Subject: [PATCH 027/187] Update dependency @types/react to v16.9.20 --- src/React.Sample.Mvc4/package-lock.json | 12 ++++++------ src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index cf1ce459a..63b52750e 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.9.19", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.19.tgz", - "integrity": "sha512-LJV97//H+zqKWMms0kvxaKYJDG05U2TtQB3chRLF8MPNs+MQh/H1aGlyDUxjaHvu08EAGerdX2z4LTBc7ns77A==", + "version": "16.9.20", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.20.tgz", + "integrity": "sha512-jRrWBr25zzEVNa4QbESKLPluvrZ3W6Odfwrfe2F5vzbrDuNvlpnHa/xbZcXg8RH5D4CE181J5VxrRrLvzRH+5A==", "dev": true, "requires": { "@types/prop-types": "*", @@ -40,9 +40,9 @@ } }, "csstype": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.8.tgz", - "integrity": "sha512-msVS9qTuMT5zwAGCVm4mxfrZ18BNc6Csd0oJAtiFMZ1FAx1CCvy2+5MDmYoix63LM/6NDbNtodCiGYGmFgO0dA==", + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.9.tgz", + "integrity": "sha512-xz39Sb4+OaTsULgUERcCk+TJj8ylkL4aSVDQiX/ksxbELSqwkgt4d4RD7fovIdgJGSuNYqwZEiVjYY5l0ask+Q==", "dev": true }, "popper.js": { diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 1daa6962e..cbdfdfb76 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.19", + "@types/react": "16.9.20", "@types/react-dom": "16.9.5", "@types/reactstrap": "8.0.6", "typescript": "3.7.5" From 7b3db24dd7fe0d80d228a1285f31e90ab5c860db Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 18 Feb 2020 07:42:16 +0000 Subject: [PATCH 028/187] Update dependency prop-types to v15.6.2 --- src/React.Sample.Owin/Content/Index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/React.Sample.Owin/Content/Index.html b/src/React.Sample.Owin/Content/Index.html index 86969c695..e565dfcfc 100644 --- a/src/React.Sample.Owin/Content/Index.html +++ b/src/React.Sample.Owin/Content/Index.html @@ -18,7 +18,7 @@ > -@Html.ReactInitJavaScript(); +// at the top of your layout +@using React.AspNet + +// before the closing tag + + + +@Html.ReactInitJavaScript() ``` A full example is available in [the ReactJS.NET repository](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Webpack.CoreMvc). - -### Migrating from expose-loader - -Mixing ES6 class syntax with CommonJS `require` has been the source of a lot of confusion, so we no longer recommend using `expose-loader`, `module.exports`, or `require`. Instead, use `import` and `export` statements throughout your whole React codebase when using Webpack. It is still fine to use `require` in webpack's config directly. diff --git a/src/React.Sample.Webpack.CoreMvc/Content/components/expose-components.js b/src/React.Sample.Webpack.CoreMvc/Content/components/expose-components.js index afb2aa458..b89f85baf 100644 --- a/src/React.Sample.Webpack.CoreMvc/Content/components/expose-components.js +++ b/src/React.Sample.Webpack.CoreMvc/Content/components/expose-components.js @@ -17,4 +17,4 @@ global.ReactJss = { JssProvider, SheetsRegistry }; global.EmotionServer = { renderStylesToString }; global.Helmet = Helmet; -global.RootComponent = RootComponent; +global.Components = { RootComponent }; diff --git a/src/React.Sample.Webpack.CoreMvc/Views/Home/Index.cshtml b/src/React.Sample.Webpack.CoreMvc/Views/Home/Index.cshtml index 0ec8280d6..05947b737 100644 --- a/src/React.Sample.Webpack.CoreMvc/Views/Home/Index.cshtml +++ b/src/React.Sample.Webpack.CoreMvc/Views/Home/Index.cshtml @@ -12,12 +12,8 @@ var chainedFunctions = new ChainedRenderFunctions(emotionFunctions, styledComponentsFunctions, reactJssFunctions, helmetFunctions); } -@Html.ReactRouter("RootComponent", new { initialComments = Model.Comments, page = Model.Page }, renderFunctions: chainedFunctions) +@Html.ReactRouter("Components.RootComponent", new { initialComments = Model.Comments, page = Model.Page }, renderFunctions: chainedFunctions) @{ ViewBag.ServerStyles = styledComponentsFunctions.RenderedStyles + reactJssFunctions.RenderedStyles; ViewBag.HelmetTitle = helmetFunctions.RenderedHelmet?.GetValueOrDefault("title"); } - - - -@Html.ReactInitJavaScript() diff --git a/src/React.Sample.Webpack.CoreMvc/Views/Shared/_Layout.cshtml b/src/React.Sample.Webpack.CoreMvc/Views/Shared/_Layout.cshtml index 1a84c879b..85c560a96 100644 --- a/src/React.Sample.Webpack.CoreMvc/Views/Shared/_Layout.cshtml +++ b/src/React.Sample.Webpack.CoreMvc/Views/Shared/_Layout.cshtml @@ -1,3 +1,4 @@ +@using React.AspNet @@ -9,5 +10,9 @@ @RenderBody() + + + + @Html.ReactInitJavaScript() From fa52829d513a8e1acfb0d4f8e0b792316945b0b7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 23 Feb 2020 00:21:30 -0500 Subject: [PATCH 040/187] Update dependency @types/reactstrap to v8.4.1 (#983) Co-authored-by: WhiteSource Renovate --- src/React.Sample.Mvc4/package-lock.json | 12 ++++++------ src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index a3de89d50..891c439d0 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -30,9 +30,9 @@ } }, "@types/reactstrap": { - "version": "8.0.6", - "resolved": "https://registry.npmjs.org/@types/reactstrap/-/reactstrap-8.0.6.tgz", - "integrity": "sha512-H4S9hg13q2gPLDcVIiow/hQ6Vahgwl9hs3wX5Kp481nJbG/dbx+sWAa3inLgktE5ESKcy6ww16sDfTt1s1Cgow==", + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/@types/reactstrap/-/reactstrap-8.4.1.tgz", + "integrity": "sha512-7c0JDBTizNmKbf9yeqqO8eTmuqEW/RKuhJXnp7bDhF1SVfairXaHI69xRFT0GNHRuXrBkWQV4V+9BduNq6MJjg==", "dev": true, "requires": { "@types/react": "*", @@ -46,9 +46,9 @@ "dev": true }, "popper.js": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.0.tgz", - "integrity": "sha512-+G+EkOPoE5S/zChTpmBSSDYmhXJ5PsW8eMhH8cP/CQHMFPBG/kC9Y5IIw6qNYgdJ+/COf0ddY2li28iHaZRSjw==", + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", + "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", "dev": true }, "typescript": { diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 4aec42c81..8a4a49841 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -9,7 +9,7 @@ "devDependencies": { "@types/react": "16.9.22", "@types/react-dom": "16.9.5", - "@types/reactstrap": "8.0.6", + "@types/reactstrap": "8.4.1", "typescript": "3.8.2" } } From 1f04c034ab4cb615d79ba72501b6f648090b49d3 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 23 Feb 2020 20:33:03 -0800 Subject: [PATCH 041/187] Add support for webpack app manifest (#1028) * Add support for webpack app manifest * Implement automatic manifest reloading * Flag asset manifest feature as a beta --- site/jekyll/bundling/cassette.md | 2 +- site/jekyll/bundling/msbuild.md | 2 +- site/jekyll/bundling/weboptimizer.md | 2 +- site/jekyll/bundling/webpack.md | 47 +++++- src/React.AspNet/HtmlHelperExtensions.cs | 27 ++++ src/React.Core/IReactEnvironment.cs | 23 ++- src/React.Core/IReactSiteConfiguration.cs | 38 +++-- src/React.Core/JavaScriptEngineFactory.cs | 26 ++- src/React.Core/ReactAppAssetManifest.cs | 37 +++++ src/React.Core/ReactEnvironment.cs | 25 ++- src/React.Core/ReactSiteConfiguration.cs | 42 +++-- src/React.Sample.Webpack.CoreMvc/Startup.cs | 4 +- .../Views/Shared/_Layout.cshtml | 4 +- .../package-lock.json | 153 ++++++++++++++++++ src/React.Sample.Webpack.CoreMvc/package.json | 3 +- .../webpack.config.js | 25 ++- .../React.Tests/Core/ReactEnvironmentTest.cs | 48 ++++++ .../Mvc/HtmlHelperExtensionsTests.cs | 39 +++++ 18 files changed, 495 insertions(+), 52 deletions(-) create mode 100644 src/React.Core/ReactAppAssetManifest.cs diff --git a/site/jekyll/bundling/cassette.md b/site/jekyll/bundling/cassette.md index 3a1ab7e67..5de6acb92 100644 --- a/site/jekyll/bundling/cassette.md +++ b/site/jekyll/bundling/cassette.md @@ -5,7 +5,7 @@ title: Cassette (ASP.NET 4.x) > **Note:** > -> This guide applies only to ASP.NET 4.x +> This guide applies only to ASP.NET 4.x. Please consider using [webpack](/bundling/webpack.html) if possible. Just want to see the code? Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Cassette). diff --git a/site/jekyll/bundling/msbuild.md b/site/jekyll/bundling/msbuild.md index 3528c99b1..698a470a9 100644 --- a/site/jekyll/bundling/msbuild.md +++ b/site/jekyll/bundling/msbuild.md @@ -5,7 +5,7 @@ title: MSBuild (ASP.NET 4.x) > **Note:** > -> This guide applies only to ASP.NET 4.x +> This guide applies only to ASP.NET 4.x. Please consider using [webpack](/bundling/webpack.html) if possible. Just want to see the code? Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Mvc4). diff --git a/site/jekyll/bundling/weboptimizer.md b/site/jekyll/bundling/weboptimizer.md index 3d34575fd..71d321bbb 100644 --- a/site/jekyll/bundling/weboptimizer.md +++ b/site/jekyll/bundling/weboptimizer.md @@ -5,7 +5,7 @@ title: Bundling and Minification (ASP.NET 4.x) > **Note:** > -> This guide applies only to ASP.NET 4.x +> This guide applies only to ASP.NET 4.x. Please consider using [webpack](/bundling/webpack.html) if possible. Just want to see the code? Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Mvc4). diff --git a/site/jekyll/bundling/webpack.md b/site/jekyll/bundling/webpack.md index 5a942cd58..34e439589 100644 --- a/site/jekyll/bundling/webpack.md +++ b/site/jekyll/bundling/webpack.md @@ -45,13 +45,15 @@ global.Components = { RootComponent }; Once Webpack has been configured, run `npm run build` to build the bundles. Once you have verified that the bundle is being created correctly, you can modify your ReactJS.NET configuration (normally `App_Start\ReactConfig.cs`) to load the newly-created bundle. +Reference the runtime, vendor, and main app bundles that were generated: + ```csharp ReactSiteConfiguration.Configuration .SetLoadBabel(false) .SetLoadReact(false) .AddScriptWithoutTransform("~/dist/runtime.js") .AddScriptWithoutTransform("~/dist/vendor.js") - .AddScriptWithoutTransform("~/dist/components.js"); + .AddScriptWithoutTransform("~/dist/main.js"); ``` This will load all your components into the `Components` global, which can be used from `Html.React` to render any of the components: @@ -71,11 +73,44 @@ Reference the built bundle directly in a script tag at the end of the page in `_ // at the top of your layout @using React.AspNet -// before the closing tag - - - -@Html.ReactInitJavaScript() + + + + + @RenderBody() + + + + @Html.ReactInitJavascript() + ``` A full example is available in [the ReactJS.NET repository](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Webpack.CoreMvc). + +### 💡 Beta feature: Asset manifest handling + +An asset manifest is generated by the `webpack-asset-manifest` plugin, written to `asset-manifest.json`. See the webpack config example above for details on how to set this up. This manifest file contains a list of all of the bundles required to run your app. To use it, call `.SetReactAppBuildPath("~/dist")`. You may still provide exact paths to additional scripts by calling `AddScriptWithoutTransform("~/dist/path-to-your-file.js")`. + +```csharp +ReactSiteConfiguration.Configuration + .SetLoadBabel(false) + .SetLoadReact(false) + .SetReactAppBuildPath("~/dist"); +``` + +Then, make calls to `@Html.ReactGetScriptPaths()` and `@Html.ReactGetStylePaths()` where you would normally reference styles and scripts from your layout. + +```html +// at the top of your layout +@using React.AspNet + + + @Html.ReactGetStylePaths() + + + @RenderBody() + + @Html.ReactGetScriptPaths() + @Html.ReactInitJavascript() + +``` diff --git a/src/React.AspNet/HtmlHelperExtensions.cs b/src/React.AspNet/HtmlHelperExtensions.cs index d40fb32ef..cb33e4cae 100644 --- a/src/React.AspNet/HtmlHelperExtensions.cs +++ b/src/React.AspNet/HtmlHelperExtensions.cs @@ -7,6 +7,7 @@ using System; using System.IO; +using System.Linq; using System.Text; #if LEGACYASPNET @@ -169,6 +170,32 @@ public static IHtmlString ReactInitJavaScript(this IHtmlHelper htmlHelper, bool } } + /// + /// Returns script tags based on the webpack asset manifest + /// + /// + /// + public static IHtmlString ReactGetScriptPaths(this IHtmlHelper htmlHelper) + { + string nonce = Environment.Configuration.ScriptNonceProvider != null + ? $" nonce=\"{Environment.Configuration.ScriptNonceProvider()}\"" + : ""; + + return new HtmlString(string.Join("", Environment.GetScriptPaths() + .Select(scriptPath => $""))); + } + + /// + /// Returns style tags based on the webpack asset manifest + /// + /// + /// + public static IHtmlString ReactGetStylePaths(this IHtmlHelper htmlHelper) + { + return new HtmlString(string.Join("", Environment.GetStylePaths() + .Select(stylePath => $""))); + } + private static IHtmlString RenderToString(Action withWriter) { var stringWriter = _sharedStringWriter; diff --git a/src/React.Core/IReactEnvironment.cs b/src/React.Core/IReactEnvironment.cs index 648a989ed..2b8d0927d 100644 --- a/src/React.Core/IReactEnvironment.cs +++ b/src/React.Core/IReactEnvironment.cs @@ -6,12 +6,13 @@ */ +using System.Collections.Generic; using System.IO; namespace React { /// - /// Request-specific ReactJS.NET environment. This is unique to the individual request and is + /// Request-specific ReactJS.NET environment. This is unique to the individual request and is /// not shared. /// public interface IReactEnvironment @@ -51,12 +52,12 @@ public interface IReactEnvironment /// /// Attempts to execute the provided JavaScript code using a non-pooled JavaScript engine (ie. - /// creates a new JS engine per-thread). This is because Babel uses a LOT of memory, so we + /// creates a new JS engine per-thread). This is because Babel uses a LOT of memory, so we /// should completely dispose any engines that have loaded Babel in order to conserve memory. - /// + /// /// If an exception is thrown, retries the execution using a new thread (and hence a new engine) /// with a larger maximum stack size. - /// This is required because JSXTransformer uses a huge stack which ends up being larger + /// This is required because JSXTransformer uses a huge stack which ends up being larger /// than what ASP.NET allows by default (256 KB). /// /// Type to return from JavaScript call @@ -93,7 +94,7 @@ public interface IReactEnvironment IReactComponent CreateComponent(IReactComponent component, bool clientOnly = false); /// - /// Renders the JavaScript required to initialise all components client-side. This will + /// Renders the JavaScript required to initialise all components client-side. This will /// attach event handlers to the server-rendered HTML. /// /// True if server-side rendering will be bypassed. Defaults to false. @@ -116,12 +117,22 @@ public interface IReactEnvironment IReactSiteConfiguration Configuration { get; } /// - /// Renders the JavaScript required to initialise all components client-side. This will + /// Renders the JavaScript required to initialise all components client-side. This will /// attach event handlers to the server-rendered HTML. /// /// The to which the content is written /// True if server-side rendering will be bypassed. Defaults to false. /// JavaScript for all components void GetInitJavaScript(TextWriter writer, bool clientOnly = false); + + /// + /// Returns a list of paths to scripts generated by the React app + /// + IEnumerable GetScriptPaths(); + + /// + /// Returns a list of paths to stylesheets generated by the React app + /// + IEnumerable GetStylePaths(); } } diff --git a/src/React.Core/IReactSiteConfiguration.cs b/src/React.Core/IReactSiteConfiguration.cs index cd4357d7a..5bd18d0b4 100644 --- a/src/React.Core/IReactSiteConfiguration.cs +++ b/src/React.Core/IReactSiteConfiguration.cs @@ -19,11 +19,11 @@ public interface IReactSiteConfiguration /// /// Adds a script to the list of scripts that are executed. This should be called for all /// React components and their dependencies. If the script does not have any JSX in it - /// (for example, it's built using Webpack or Gulp), use + /// (for example, it's built using Webpack or Gulp), use /// instead. /// /// - /// Name of the file to execute. Should be a server relative path starting with ~ (eg. + /// Name of the file to execute. Should be a server relative path starting with ~ (eg. /// ~/Scripts/Awesome.js) /// /// This configuration, for chaining @@ -35,7 +35,7 @@ public interface IReactSiteConfiguration /// more efficient. /// /// - /// Name of the file to execute. Should be a server relative path starting with ~ (eg. + /// Name of the file to execute. Should be a server relative path starting with ~ (eg. /// ~/Scripts/Awesome.js) /// /// The configuration, for chaining @@ -48,15 +48,15 @@ public interface IReactSiteConfiguration IEnumerable Scripts { get; } /// - /// Gets a list of all the scripts that have been added to this configuration and do not + /// Gets a list of all the scripts that have been added to this configuration and do not /// require JSX transformation to be run. /// - IEnumerable ScriptsWithoutTransform { get; } + IEnumerable ScriptsWithoutTransform { get; } /// /// Gets or sets whether JavaScript engines should be reused across requests. /// - /// + /// bool ReuseJavaScriptEngines { get; set; } /// /// Sets whether JavaScript engines should be reused across requests. @@ -79,23 +79,23 @@ public interface IReactSiteConfiguration IReactSiteConfiguration SetJsonSerializerSettings(JsonSerializerSettings settings); /// - /// Gets or sets the number of engines to initially start when a pool is created. + /// Gets or sets the number of engines to initially start when a pool is created. /// Defaults to 10. /// int? StartEngines { get; set; } /// - /// Sets the number of engines to initially start when a pool is created. + /// Sets the number of engines to initially start when a pool is created. /// Defaults to 10. /// IReactSiteConfiguration SetStartEngines(int? startEngines); /// - /// Gets or sets the maximum number of engines that will be created in the pool. + /// Gets or sets the maximum number of engines that will be created in the pool. /// Defaults to 25. /// int? MaxEngines { get; set; } /// - /// Sets the maximum number of engines that will be created in the pool. + /// Sets the maximum number of engines that will be created in the pool. /// Defaults to 25. /// IReactSiteConfiguration SetMaxEngines(int? maxEngines); @@ -129,7 +129,7 @@ public interface IReactSiteConfiguration /// bool LoadReact { get; set; } /// - /// Sets whether the built-in version of React is loaded. If false, you must + /// Sets whether the built-in version of React is loaded. If false, you must /// provide your own version of React. /// /// The configuration, for chaining @@ -204,17 +204,29 @@ public interface IReactSiteConfiguration IReactSiteConfiguration SetExceptionHandler(Action handler); /// - /// A provider that returns a nonce to be used on any script tags on the page. + /// A provider that returns a nonce to be used on any script tags on the page. /// This value must match the nonce used in the Content Security Policy header on the response. /// Func ScriptNonceProvider { get; set; } /// - /// Sets a provider that returns a nonce to be used on any script tags on the page. + /// Sets a provider that returns a nonce to be used on any script tags on the page. /// This value must match the nonce used in the Content Security Policy header on the response. /// /// /// IReactSiteConfiguration SetScriptNonceProvider(Func provider); + + /// + /// The path to the application bundles built by webpack or create-react-app + /// + string ReactAppBuildPath { get; set; } + + /// + /// Sets the path to the application bundles built by webpack or create-react-app + /// + /// + /// + IReactSiteConfiguration SetReactAppBuildPath(string reactAppBuildPath); } } diff --git a/src/React.Core/JavaScriptEngineFactory.cs b/src/React.Core/JavaScriptEngineFactory.cs index d60956264..06b044f90 100644 --- a/src/React.Core/JavaScriptEngineFactory.cs +++ b/src/React.Core/JavaScriptEngineFactory.cs @@ -84,8 +84,11 @@ IFileSystem fileSystem protected virtual IJsPool CreatePool() { var allFiles = _config.Scripts - .Concat(_config.ScriptsWithoutTransform) - .Select(_fileSystem.MapPath); + .Concat(_config.ScriptsWithoutTransform) + .Concat(_config.ReactAppBuildPath != null + ? new[] { $"{_config.ReactAppBuildPath}/asset-manifest.json"} + : Enumerable.Empty()) + .Select(_fileSystem.MapPath); var poolConfig = new JsPoolConfig { @@ -140,7 +143,7 @@ protected virtual void InitialiseEngine(IJsEngine engine) if (!_config.LoadReact && _scriptLoadException == null) { // We expect the user to have loaded their own version of React in the scripts that - // were loaded above, let's ensure that's the case. + // were loaded above, let's ensure that's the case. EnsureReactLoaded(engine); } } @@ -171,6 +174,23 @@ private void LoadResource(IJsEngine engine, string resourceName, Assembly assemb /// Engine to load scripts into private void LoadUserScripts(IJsEngine engine) { + if (_config.ReactAppBuildPath != null) + { + var manifest = ReactAppAssetManifest.LoadManifest(_config, _fileSystem, _cache, useCacheRead: false); + foreach (var file in manifest.Entrypoints?.Where(x => x != null && x.EndsWith(".js"))) + { + if (_config.AllowJavaScriptPrecompilation + && engine.TryExecuteFileWithPrecompilation(_cache, _fileSystem, file)) + { + // Do nothing. + } + else + { + engine.ExecuteFile(_fileSystem, file); + } + } + } + foreach (var file in _config.ScriptsWithoutTransform) { try diff --git a/src/React.Core/ReactAppAssetManifest.cs b/src/React.Core/ReactAppAssetManifest.cs new file mode 100644 index 000000000..1bd9a8453 --- /dev/null +++ b/src/React.Core/ReactAppAssetManifest.cs @@ -0,0 +1,37 @@ +/* + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +using System; +using System.Collections.Generic; +using Newtonsoft.Json; + +namespace React +{ + internal class ReactAppAssetManifest + { + public Dictionary Files { get; set; } + public List Entrypoints { get; set; } + + public static ReactAppAssetManifest LoadManifest(IReactSiteConfiguration config, IFileSystem fileSystem, ICache cache, bool useCacheRead) + { + string cacheKey = "REACT_APP_MANIFEST"; + + if (useCacheRead) + { + var cachedManifest = cache.Get(cacheKey); + if (cachedManifest != null) + return cachedManifest; + } + + var manifestString = fileSystem.ReadAsString($"{config.ReactAppBuildPath}/asset-manifest.json"); + var manifest = JsonConvert.DeserializeObject(manifestString); + + cache.Set(cacheKey, manifest, TimeSpan.FromHours(1)); + return manifest; + } + } +} diff --git a/src/React.Core/ReactEnvironment.cs b/src/React.Core/ReactEnvironment.cs index 9c1a10db5..eab1dbf94 100644 --- a/src/React.Core/ReactEnvironment.cs +++ b/src/React.Core/ReactEnvironment.cs @@ -9,8 +9,8 @@ using System.Collections.Generic; using System.Diagnostics; using System.IO; +using System.Linq; using System.Reflection; -using System.Text; using System.Threading; using JavaScriptEngineSwitcher.Core; using JSPool; @@ -67,6 +67,7 @@ public class ReactEnvironment : IReactEnvironment, IDisposable /// Version number of ReactJS.NET /// protected readonly Lazy _version = new Lazy(GetVersion); + /// /// Contains an engine acquired from a pool of engines. Only used if /// is enabled. @@ -348,6 +349,28 @@ public virtual void GetInitJavaScript(TextWriter writer, bool clientOnly = false } } + private ReactAppAssetManifest GetAppManifest() => ReactAppAssetManifest.LoadManifest(_config, _fileSystem, _cache, useCacheRead: true); + + /// + /// Returns a list of paths to scripts generated by the React app + /// + public virtual IEnumerable GetScriptPaths() + { + return GetAppManifest().Entrypoints + .Where(path => path.EndsWith(".js")) + .Select(file => $"{_config.ReactAppBuildPath.Replace("~/", "/")}/{file}"); + } + + /// + /// Returns a list of paths to stylesheets generated by the React app + /// + public virtual IEnumerable GetStylePaths() + { + return GetAppManifest().Entrypoints + .Where(path => path.EndsWith(".css")) + .Select(file => $"{_config.ReactAppBuildPath.Replace("~/", "/")}/{file}"); + } + /// /// Attempts to execute the provided JavaScript code using a non-pooled JavaScript engine (ie. /// creates a new JS engine per-thread). This is because Babel uses a LOT of memory, so we diff --git a/src/React.Core/ReactSiteConfiguration.cs b/src/React.Core/ReactSiteConfiguration.cs index ef929750a..e4b36d29c 100644 --- a/src/React.Core/ReactSiteConfiguration.cs +++ b/src/React.Core/ReactSiteConfiguration.cs @@ -44,7 +44,7 @@ public ReactSiteConfiguration() }; UseDebugReact = false; UseServerSideRendering = true; - ExceptionHandler = (Exception ex, string ComponentName, string ContainerId) => + ExceptionHandler = (Exception ex, string ComponentName, string ContainerId) => throw new ReactServerRenderingException(string.Format( "Error while rendering \"{0}\" to \"{2}\": {1}", ComponentName, @@ -54,7 +54,7 @@ public ReactSiteConfiguration() } /// - /// All the scripts that have been added to this configuration and require JSX + /// All the scripts that have been added to this configuration and require JSX /// transformation to be run. /// private readonly IList _scriptFiles = new List(); @@ -67,11 +67,11 @@ public ReactSiteConfiguration() /// /// Adds a script to the list of scripts that are executed. This should be called for all /// React components and their dependencies. If the script does not have any JSX in it - /// (for example, it's built using Webpack or Gulp), use + /// (for example, it's built using Webpack or Gulp), use /// instead. /// /// - /// Name of the file to execute. Should be a server relative path starting with ~ (eg. + /// Name of the file to execute. Should be a server relative path starting with ~ (eg. /// ~/Scripts/Awesome.js) /// /// This configuration, for chaining @@ -87,7 +87,7 @@ public IReactSiteConfiguration AddScript(string filename) /// more efficient. /// /// - /// Name of the file to execute. Should be a server relative path starting with ~ (eg. + /// Name of the file to execute. Should be a server relative path starting with ~ (eg. /// ~/Scripts/Awesome.js) /// /// The configuration, for chaining @@ -169,12 +169,12 @@ public IReactSiteConfiguration SetReuseJavaScriptEngines(bool value) } /// - /// Gets or sets the number of engines to initially start when a pool is created. + /// Gets or sets the number of engines to initially start when a pool is created. /// Defaults to 10. /// public int? StartEngines { get; set; } /// - /// Sets the number of engines to initially start when a pool is created. + /// Sets the number of engines to initially start when a pool is created. /// Defaults to 10. /// public IReactSiteConfiguration SetStartEngines(int? startEngines) @@ -184,12 +184,12 @@ public IReactSiteConfiguration SetStartEngines(int? startEngines) } /// - /// Gets or sets the maximum number of engines that will be created in the pool. + /// Gets or sets the maximum number of engines that will be created in the pool. /// Defaults to 25. /// public int? MaxEngines { get; set; } /// - /// Sets the maximum number of engines that will be created in the pool. + /// Sets the maximum number of engines that will be created in the pool. /// Defaults to 25. /// public IReactSiteConfiguration SetMaxEngines(int? maxEngines) @@ -237,7 +237,7 @@ public IReactSiteConfiguration SetAllowJavaScriptPrecompilation(bool allowJavaSc public bool LoadReact { get; set; } /// - /// Sets whether the built-in version of React is loaded. If false, you must + /// Sets whether the built-in version of React is loaded. If false, you must /// provide your own version of React. /// /// The configuration, for chaining @@ -332,7 +332,7 @@ public IReactSiteConfiguration DisableServerSideRendering() public Action ExceptionHandler { get; set; } /// - /// + /// /// /// /// @@ -343,13 +343,13 @@ public IReactSiteConfiguration SetExceptionHandler(Action - /// A provider that returns a nonce to be used on any script tags on the page. + /// A provider that returns a nonce to be used on any script tags on the page. /// This value must match the nonce used in the Content Security Policy header on the response. /// public Func ScriptNonceProvider { get; set; } /// - /// Sets a provider that returns a nonce to be used on any script tags on the page. + /// Sets a provider that returns a nonce to be used on any script tags on the page. /// This value must match the nonce used in the Content Security Policy header on the response. /// /// @@ -359,5 +359,21 @@ public IReactSiteConfiguration SetScriptNonceProvider(Func provider) ScriptNonceProvider = provider; return this; } + + /// + /// The path to the application bundles built by webpack or create-react-app + /// + public string ReactAppBuildPath { get; set; } + + /// + /// Sets the path to the application bundles built by webpack or create-react-app + /// + /// + /// + public IReactSiteConfiguration SetReactAppBuildPath(string reactAppBuildPath) + { + ReactAppBuildPath = reactAppBuildPath; + return this; + } } } diff --git a/src/React.Sample.Webpack.CoreMvc/Startup.cs b/src/React.Sample.Webpack.CoreMvc/Startup.cs index e20fe016b..10766714e 100644 --- a/src/React.Sample.Webpack.CoreMvc/Startup.cs +++ b/src/React.Sample.Webpack.CoreMvc/Startup.cs @@ -44,7 +44,9 @@ public void Configure(IApplicationBuilder app) .SetLoadReact(false) .AddScriptWithoutTransform("~/dist/runtime.js") .AddScriptWithoutTransform("~/dist/vendor.js") - .AddScriptWithoutTransform("~/dist/components.js"); + .AddScriptWithoutTransform("~/dist/main.js"); + + // Beta feature: Call .SetReactAppBuildPath("~/dist") to use the asset manifest instead of listing each file }); app.UseStaticFiles(); diff --git a/src/React.Sample.Webpack.CoreMvc/Views/Shared/_Layout.cshtml b/src/React.Sample.Webpack.CoreMvc/Views/Shared/_Layout.cshtml index 85c560a96..effaee6de 100644 --- a/src/React.Sample.Webpack.CoreMvc/Views/Shared/_Layout.cshtml +++ b/src/React.Sample.Webpack.CoreMvc/Views/Shared/_Layout.cshtml @@ -7,12 +7,14 @@ @Html.Raw(ViewBag.ServerStyles) + @* Beta feature: call @Html.ReactGetStylePaths() to get all style tags *@ @RenderBody() + @* Beta feature: call @Html.ReactGetScriptPaths() to get all style tags *@ - + @Html.ReactInitJavaScript() diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index e50cf6f59..a45c4a3ec 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -2984,6 +2984,44 @@ "is-arrayish": "^0.2.1" } }, + "es-abstract": { + "version": "1.17.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz", + "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", + "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" + }, + "dependencies": { + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + } + } + }, + "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" + } + }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -3369,6 +3407,17 @@ "readable-stream": "^2.0.0" } }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, "fs-write-stream-atomic": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", @@ -4059,6 +4108,15 @@ "resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz", "integrity": "sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==" }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -4332,6 +4390,12 @@ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "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-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", @@ -4352,6 +4416,12 @@ } } }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true + }, "is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", @@ -4448,11 +4518,29 @@ } } }, + "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" + } + }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -4534,6 +4622,15 @@ "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, "jss": { "version": "9.8.7", "resolved": "https://registry.npmjs.org/jss/-/jss-9.8.7.tgz", @@ -5141,6 +5238,12 @@ } } }, + "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 + }, "object-keys": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", @@ -5175,6 +5278,18 @@ } } }, + "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" + } + }, "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", @@ -6530,6 +6645,26 @@ "strip-ansi": "^5.1.0" } }, + "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" + } + }, "string_decoder": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", @@ -6915,6 +7050,12 @@ "imurmurhash": "^0.1.4" } }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, "unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", @@ -7189,6 +7330,18 @@ } } }, + "webpack-manifest-plugin": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-2.2.0.tgz", + "integrity": "sha512-9S6YyKKKh/Oz/eryM1RyLVDVmy3NSPV0JXMRhZ18fJsq+AwGxUY34X54VNwkzYcEmEkDwNxuEOboCZEebJXBAQ==", + "dev": true, + "requires": { + "fs-extra": "^7.0.0", + "lodash": ">=3.5 <5", + "object.entries": "^1.1.0", + "tapable": "^1.0.0" + } + }, "webpack-sources": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index f7cddd577..ce33ae95f 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -29,6 +29,7 @@ "babel-loader": "8.0.6", "babel-runtime": "6.26.0", "webpack": "4.41.6", - "webpack-cli": "3.3.11" + "webpack-cli": "3.3.11", + "webpack-manifest-plugin": "^2.2.0" } } diff --git a/src/React.Sample.Webpack.CoreMvc/webpack.config.js b/src/React.Sample.Webpack.CoreMvc/webpack.config.js index 9b7f9632c..0b4427a63 100644 --- a/src/React.Sample.Webpack.CoreMvc/webpack.config.js +++ b/src/React.Sample.Webpack.CoreMvc/webpack.config.js @@ -1,11 +1,10 @@ const path = require('path'); +const ManifestPlugin = require('webpack-manifest-plugin'); module.exports = { - entry: { - components: './Content/components/expose-components.js', - }, + entry: './Content/components/expose-components.js', output: { - filename: '[name].js', + filename: '[name].js', // change this to '[name].[contenthash:8].js' if using the asset manifest for better caching globalObject: 'this', path: path.resolve(__dirname, 'wwwroot/dist'), publicPath: 'dist/' @@ -34,4 +33,22 @@ module.exports = { }, ], }, + plugins: [ + new ManifestPlugin({ + fileName: 'asset-manifest.json', + generate: (seed, files) => { + const manifestFiles = files.reduce((manifest, file) => { + manifest[file.name] = file.path; + return manifest; + }, seed); + + const entrypointFiles = files.filter(x => x.isInitial && !x.name.endsWith('.map')).map(x => x.path); + + return { + files: manifestFiles, + entrypoints: entrypointFiles, + }; + }, + }), + ] }; diff --git a/tests/React.Tests/Core/ReactEnvironmentTest.cs b/tests/React.Tests/Core/ReactEnvironmentTest.cs index 4eab8bf5d..9f50b3df6 100644 --- a/tests/React.Tests/Core/ReactEnvironmentTest.cs +++ b/tests/React.Tests/Core/ReactEnvironmentTest.cs @@ -19,6 +19,26 @@ namespace React.Tests.Core { public class ReactEnvironmentTest { + private const string _testAppManifest = @" + { + ""files"": { + ""main.css"": ""/static/css/main.43b75f57.chunk.css"", + ""main.js"": ""/static/js/main.04394e4f.chunk.js"", + ""main.js.map"": ""/static/js/main.04394e4f.chunk.js.map"", + ""runtime-main.js"": ""/static/js/runtime-main.62ca1b0d.js"", + ""runtime-main.js.map"": ""/static/js/runtime-main.62ca1b0d.js.map"", + ""another-stylesheet.css"": ""/static/css/another-stylesheet.css"", + ""static/js/2.a49d4355.chunk.js"": ""/static/js/2.a49d4355.chunk.js"", + ""static/js/2.a49d4355.chunk.js.map"": ""/static/js/2.a49d4355.chunk.js.map"", + }, + ""entrypoints"": [ + ""static/js/runtime-main.62ca1b0d.js"", + ""static/css/main.43b75f57.chunk.css"", + ""static/js/main.04394e4f.chunk.js"", + ""static/css/another-stylesheet.css"" + ] +}"; + [Fact] public void ExecuteWithBabelWithNoNewThread() { @@ -170,6 +190,34 @@ public void SSRInitSkippedIfNoComponents(bool renderComponent, int ssrTimes) mocks.Engine.Verify(x => x.Evaluate("console.getCalls()"), Times.Exactly(ssrTimes)); } + [Fact] + public void ScriptTagsReturned() + { + var mocks = new Mocks(); + mocks.Config.SetupGet(x => x.ReactAppBuildPath).Returns("~/dist"); + mocks.FileSystem.Setup(x => x.ReadAsString("~/dist/asset-manifest.json")).Returns(_testAppManifest); + var environment = mocks.CreateReactEnvironment(); + + var scripts = environment.GetScriptPaths().ToList(); + Assert.Equal(2, scripts.Count); + Assert.Equal("/dist/static/js/runtime-main.62ca1b0d.js", scripts[0]); + Assert.Equal("/dist/static/js/main.04394e4f.chunk.js", scripts[1]); + } + + [Fact] + public void StyleTagsReturned() + { + var mocks = new Mocks(); + mocks.Config.SetupGet(x => x.ReactAppBuildPath).Returns("~/dist"); + mocks.FileSystem.Setup(x => x.ReadAsString("~/dist/asset-manifest.json")).Returns(_testAppManifest); + var environment = mocks.CreateReactEnvironment(); + + var styles = environment.GetStylePaths().ToList(); + Assert.Equal(2, styles.Count); + Assert.Equal("/dist/static/css/main.43b75f57.chunk.css", styles[0]); + Assert.Equal("/dist/static/css/another-stylesheet.css", styles[1]); + } + public class Mocks { public Mock Engine { get; private set; } diff --git a/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs b/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs index 696804917..4bdfdbace 100644 --- a/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs +++ b/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs @@ -270,5 +270,44 @@ public void RenderFunctionsCalledNonLazily() Assert.Equal("HTML", result.ToHtmlString()); } + + [Theory] + [InlineData(false)] + [InlineData(true)] + public void ReactGetScriptPaths(bool withNonce) + { + var config = new Mock(); + var environment = ConfigureMockEnvironment(config.Object); + + if (withNonce) + { + config.Setup(x => x.ScriptNonceProvider).Returns(() => "test1234"); + } + + environment.Setup(x => x.GetScriptPaths()).Returns(new[] { "/dist/vendor.js", "/dist/app.js" }); + + var result = HtmlHelperExtensions.ReactGetScriptPaths(null); + + if (withNonce) + { + Assert.Equal("", result.ToHtmlString()); + } + else + { + Assert.Equal("", result.ToHtmlString()); + } + } + + [Fact] + public void ReactGetStylePaths() + { + var environment = ConfigureMockEnvironment(); + + environment.Setup(x => x.GetStylePaths()).Returns(new[] { "/dist/vendor.css", "/dist/app.css" }); + + var result = HtmlHelperExtensions.ReactGetStylePaths(null); + + Assert.Equal("", result.ToHtmlString()); + } } } From dd73a433141cd618b99bc9e870687a6091ed13ab Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 23 Feb 2020 23:33:41 -0500 Subject: [PATCH 042/187] 5.2.0-beta1 --- build.proj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.proj b/build.proj index 400d3ae8d..f6be88cd6 100644 --- a/build.proj +++ b/build.proj @@ -10,8 +10,8 @@ of patent rights can be found in the PATENTS file in the same directory. 5 - 1 - 2 + 2 + 0-beta1 0 http://reactjs.net/packages/ $(MSBuildProjectDirectory)\tools\MSBuildTasks From a8056701dc5035e9a871000e47dc9506ea6133b2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 23 Feb 2020 23:34:37 -0500 Subject: [PATCH 043/187] Pin dependency webpack-manifest-plugin to 2.2.0 (#1039) Co-authored-by: WhiteSource Renovate --- src/React.Sample.Webpack.CoreMvc/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index ce33ae95f..75633fd50 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -30,6 +30,6 @@ "babel-runtime": "6.26.0", "webpack": "4.41.6", "webpack-cli": "3.3.11", - "webpack-manifest-plugin": "^2.2.0" + "webpack-manifest-plugin": "2.2.0" } } From 4cef262144f753ce1cb18be1742c59dea1bb5ae4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Feb 2020 05:41:38 -0800 Subject: [PATCH 044/187] Bump nokogiri from 1.10.4 to 1.10.8 in /site/jekyll (#1041) Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.10.4 to 1.10.8. - [Release notes](https://github.com/sparklemotion/nokogiri/releases) - [Changelog](https://github.com/sparklemotion/nokogiri/blob/master/CHANGELOG.md) - [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.10.4...v1.10.8) Signed-off-by: dependabot[bot] --- site/jekyll/Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/site/jekyll/Gemfile.lock b/site/jekyll/Gemfile.lock index 8392e8af8..aba6c494e 100644 --- a/site/jekyll/Gemfile.lock +++ b/site/jekyll/Gemfile.lock @@ -41,9 +41,9 @@ GEM maruku (0.7.0) mini_portile2 (2.4.0) multi_json (1.12.1) - nokogiri (1.10.4) + nokogiri (1.10.8) mini_portile2 (~> 2.4.0) - nokogiri (1.10.4-x64-mingw32) + nokogiri (1.10.8-x64-mingw32) mini_portile2 (~> 2.4.0) nokogumbo (1.4.10) nokogiri From d5fd0ac1dbfe9b9520a26f5a6c80e40ef77f8d4e Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 25 Feb 2020 19:44:32 +0000 Subject: [PATCH 045/187] Update dependency @types/react to v16.9.23 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 891c439d0..55b219adf 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.9.22", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.22.tgz", - "integrity": "sha512-7OSt4EGiLvy0h5R7X+r0c7S739TCU/LvWbkNOrm10lUwNHe7XPz5OLhLOSZeCkqO9JSCly1NkYJ7ODTUqVnHJQ==", + "version": "16.9.23", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.23.tgz", + "integrity": "sha512-SsGVT4E7L2wLN3tPYLiF20hmZTPGuzaayVunfgXzUn1x4uHVsKH6QDJQ/TdpHqwsTLd4CwrmQ2vOgxN7gE24gw==", "dev": true, "requires": { "@types/prop-types": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 8a4a49841..8893566fa 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.22", + "@types/react": "16.9.23", "@types/react-dom": "16.9.5", "@types/reactstrap": "8.4.1", "typescript": "3.8.2" From 3197e1bc1ed4bba2a2dae3507afa759545a43be9 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Wed, 26 Feb 2020 19:41:10 +0000 Subject: [PATCH 046/187] Update dependency @types/reactstrap to v8.4.2 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 55b219adf..6df7d3d83 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -30,9 +30,9 @@ } }, "@types/reactstrap": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/@types/reactstrap/-/reactstrap-8.4.1.tgz", - "integrity": "sha512-7c0JDBTizNmKbf9yeqqO8eTmuqEW/RKuhJXnp7bDhF1SVfairXaHI69xRFT0GNHRuXrBkWQV4V+9BduNq6MJjg==", + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/@types/reactstrap/-/reactstrap-8.4.2.tgz", + "integrity": "sha512-ag4hfFqBZaeoNSSTKjCtedvdcO68QqqlBrFd3obg94JSmhgNTmHz50BvNJkf9NjSzx1yGTW4l/OyP/khLPKqww==", "dev": true, "requires": { "@types/react": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 8893566fa..3a55dae00 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -9,7 +9,7 @@ "devDependencies": { "@types/react": "16.9.23", "@types/react-dom": "16.9.5", - "@types/reactstrap": "8.4.1", + "@types/reactstrap": "8.4.2", "typescript": "3.8.2" } } From 565eb10b7f0bf5521f88d46faca15957d4cd95c2 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Thu, 27 Feb 2020 21:13:45 -0800 Subject: [PATCH 047/187] Drop netstandard1.6 support (#1046) --- src/React.Core/Exceptions/BabelException.cs | 6 +----- src/React.Core/Exceptions/BabelNotLoadedException.cs | 4 ---- src/React.Core/Exceptions/ReactConfigurationException.cs | 6 +----- .../Exceptions/ReactEngineNotFoundException.cs | 4 ---- src/React.Core/Exceptions/ReactException.cs | 6 +----- .../Exceptions/ReactInvalidComponentException.cs | 6 +----- .../Exceptions/ReactNotInitialisedException.cs | 4 ---- src/React.Core/Exceptions/ReactScriptLoadException.cs | 4 ---- .../ReactScriptPrecompilationNotAvailableException.cs | 4 ---- .../Exceptions/ReactServerRenderingException.cs | 4 ---- src/React.Core/JavaScriptWithSourceMap.cs | 2 -- src/React.Core/React.Core.csproj | 9 ++------- src/React.Core/SourceMap.cs | 8 +++----- .../React.Sample.ConsoleApp.csproj | 5 ++--- 14 files changed, 11 insertions(+), 61 deletions(-) diff --git a/src/React.Core/Exceptions/BabelException.cs b/src/React.Core/Exceptions/BabelException.cs index 32e51a26c..fb4e7967a 100644 --- a/src/React.Core/Exceptions/BabelException.cs +++ b/src/React.Core/Exceptions/BabelException.cs @@ -13,9 +13,7 @@ namespace React.Exceptions /// /// Thrown when an error occurs when transforming a JavaScript file via Babel. /// -#if !NETSTANDARD1_6 [Serializable] -#endif public class BabelException : ReactException { ///
@@ -31,12 +29,10 @@ public BabelException(string message) : base(message) { } public BabelException(string message, Exception innerException) : base(message, innerException) { } -#if !NETSTANDARD1_6 /// /// Used by deserialization /// - protected BabelException(SerializationInfo info, StreamingContext context) + protected BabelException(SerializationInfo info, StreamingContext context) : base(info, context) { } -#endif } } diff --git a/src/React.Core/Exceptions/BabelNotLoadedException.cs b/src/React.Core/Exceptions/BabelNotLoadedException.cs index ae540e69b..5e3e19a80 100644 --- a/src/React.Core/Exceptions/BabelNotLoadedException.cs +++ b/src/React.Core/Exceptions/BabelNotLoadedException.cs @@ -13,9 +13,7 @@ namespace React.Exceptions /// /// Thrown when Babel is required but has not been loaded. /// -#if !NETSTANDARD1_6 [Serializable] -#endif public class BabelNotLoadedException : ReactException { /// @@ -23,14 +21,12 @@ public class BabelNotLoadedException : ReactException /// public BabelNotLoadedException() : base(GetMessage()) { } -#if !NETSTANDARD1_6 /// /// Used by deserialization /// protected BabelNotLoadedException(SerializationInfo info, StreamingContext context) : base(info, context) { } -#endif /// /// Gets a message that describes the current exception. diff --git a/src/React.Core/Exceptions/ReactConfigurationException.cs b/src/React.Core/Exceptions/ReactConfigurationException.cs index c1e03f964..3f7242826 100644 --- a/src/React.Core/Exceptions/ReactConfigurationException.cs +++ b/src/React.Core/Exceptions/ReactConfigurationException.cs @@ -13,9 +13,7 @@ namespace React.Exceptions /// /// Thrown when an error occurs while reading a site configuration file. /// -#if !NETSTANDARD1_6 [Serializable] -#endif public class ReactConfigurationException : ReactException { /// @@ -31,12 +29,10 @@ public ReactConfigurationException(string message) : base(message) { } public ReactConfigurationException(string message, Exception innerException) : base(message, innerException) { } -#if !NETSTANDARD1_6 /// /// Used by deserialization /// - protected ReactConfigurationException(SerializationInfo info, StreamingContext context) + protected ReactConfigurationException(SerializationInfo info, StreamingContext context) : base(info, context) { } -#endif } } diff --git a/src/React.Core/Exceptions/ReactEngineNotFoundException.cs b/src/React.Core/Exceptions/ReactEngineNotFoundException.cs index ef005561b..3e2f161dc 100644 --- a/src/React.Core/Exceptions/ReactEngineNotFoundException.cs +++ b/src/React.Core/Exceptions/ReactEngineNotFoundException.cs @@ -13,9 +13,7 @@ namespace React.Exceptions /// /// Thrown when no valid JavaScript engine is found. /// -#if !NETSTANDARD1_6 [Serializable] -#endif public class ReactEngineNotFoundException : ReactException { /// @@ -24,12 +22,10 @@ public class ReactEngineNotFoundException : ReactException /// The message that describes the error. public ReactEngineNotFoundException(string message) : base(message) { } -#if !NETSTANDARD1_6 /// /// Used by deserialization /// protected ReactEngineNotFoundException(SerializationInfo info, StreamingContext context) : base(info, context) { } -#endif } } diff --git a/src/React.Core/Exceptions/ReactException.cs b/src/React.Core/Exceptions/ReactException.cs index b3a2708b0..20de0b70a 100644 --- a/src/React.Core/Exceptions/ReactException.cs +++ b/src/React.Core/Exceptions/ReactException.cs @@ -13,9 +13,7 @@ namespace React.Exceptions /// /// Base class for all ReactJS.NET exceptions /// -#if !NETSTANDARD1_6 [Serializable] -#endif public class ReactException : Exception { /// @@ -35,13 +33,11 @@ public ReactException(string message) : base(message) { } public ReactException(string message, Exception innerException) : base(message, innerException) { } -#if !NETSTANDARD1_6 /// /// Used by deserialization /// - protected ReactException(SerializationInfo info, StreamingContext context) + protected ReactException(SerializationInfo info, StreamingContext context) : base(info, context) { } -#endif } } diff --git a/src/React.Core/Exceptions/ReactInvalidComponentException.cs b/src/React.Core/Exceptions/ReactInvalidComponentException.cs index fb58f4744..e93ae92fc 100644 --- a/src/React.Core/Exceptions/ReactInvalidComponentException.cs +++ b/src/React.Core/Exceptions/ReactInvalidComponentException.cs @@ -13,9 +13,7 @@ namespace React.Exceptions /// /// Thrown when a non-existent component is rendered. /// -#if !NETSTANDARD1_6 [Serializable] -#endif public class ReactInvalidComponentException : ReactException { /// @@ -31,12 +29,10 @@ public ReactInvalidComponentException(string message) : base(message) { } public ReactInvalidComponentException(string message, Exception innerException) : base(message, innerException) { } -#if !NETSTANDARD1_6 /// /// Used by deserialization /// - protected ReactInvalidComponentException(SerializationInfo info, StreamingContext context) + protected ReactInvalidComponentException(SerializationInfo info, StreamingContext context) : base(info, context) { } -#endif } } diff --git a/src/React.Core/Exceptions/ReactNotInitialisedException.cs b/src/React.Core/Exceptions/ReactNotInitialisedException.cs index d346a4a4f..8a83eb700 100644 --- a/src/React.Core/Exceptions/ReactNotInitialisedException.cs +++ b/src/React.Core/Exceptions/ReactNotInitialisedException.cs @@ -13,9 +13,7 @@ namespace React.Exceptions /// /// Thrown when React has not been initialised correctly. /// -#if !NETSTANDARD1_6 [Serializable] -#endif public class ReactNotInitialisedException : ReactException { /// @@ -32,12 +30,10 @@ public ReactNotInitialisedException(string message) : base(message) { } public ReactNotInitialisedException(string message, Exception innerException) : base(message, innerException) { } -#if !NETSTANDARD1_6 /// /// Used by deserialization /// protected ReactNotInitialisedException(SerializationInfo info, StreamingContext context) : base(info, context) { } -#endif } } diff --git a/src/React.Core/Exceptions/ReactScriptLoadException.cs b/src/React.Core/Exceptions/ReactScriptLoadException.cs index b7b6a2b55..71817183c 100644 --- a/src/React.Core/Exceptions/ReactScriptLoadException.cs +++ b/src/React.Core/Exceptions/ReactScriptLoadException.cs @@ -13,9 +13,7 @@ namespace React.Exceptions /// /// Thrown when an error is encountered while loading a JavaScript file. /// -#if !NETSTANDARD1_6 [Serializable] -#endif public class ReactScriptLoadException : ReactException { /// @@ -32,12 +30,10 @@ public ReactScriptLoadException(string message) : base(message) { } public ReactScriptLoadException(string message, Exception innerException) : base(message, innerException) { } -#if !NETSTANDARD1_6 /// /// Used by deserialization /// protected ReactScriptLoadException(SerializationInfo info, StreamingContext context) : base(info, context) { } -#endif } } diff --git a/src/React.Core/Exceptions/ReactScriptPrecompilationNotAvailableException.cs b/src/React.Core/Exceptions/ReactScriptPrecompilationNotAvailableException.cs index bc15a1f24..d8464ab87 100644 --- a/src/React.Core/Exceptions/ReactScriptPrecompilationNotAvailableException.cs +++ b/src/React.Core/Exceptions/ReactScriptPrecompilationNotAvailableException.cs @@ -13,9 +13,7 @@ namespace React.Exceptions /// /// Thrown when the script pre-compilation is not available. /// -#if !NETSTANDARD1_6 [Serializable] -#endif public class ReactScriptPrecompilationNotAvailableException : ReactException { /// @@ -24,12 +22,10 @@ public class ReactScriptPrecompilationNotAvailableException : ReactException /// The message that describes the error. public ReactScriptPrecompilationNotAvailableException(string message) : base(message) { } -#if !NETSTANDARD1_6 /// /// Used by deserialization /// protected ReactScriptPrecompilationNotAvailableException(SerializationInfo info, StreamingContext context) : base(info, context) { } -#endif } } diff --git a/src/React.Core/Exceptions/ReactServerRenderingException.cs b/src/React.Core/Exceptions/ReactServerRenderingException.cs index 70745fadb..f06975cc3 100644 --- a/src/React.Core/Exceptions/ReactServerRenderingException.cs +++ b/src/React.Core/Exceptions/ReactServerRenderingException.cs @@ -13,9 +13,7 @@ namespace React.Exceptions /// /// Thrown when an error occurs during server rendering of a React component. /// -#if !NETSTANDARD1_6 [Serializable] -#endif public class ReactServerRenderingException : ReactException { /// @@ -32,12 +30,10 @@ public ReactServerRenderingException(string message) : base(message) { } public ReactServerRenderingException(string message, Exception innerException) : base(message, innerException) { } -#if !NETSTANDARD1_6 /// /// Used by deserialization /// protected ReactServerRenderingException(SerializationInfo info, StreamingContext context) : base(info, context) { } -#endif } } diff --git a/src/React.Core/JavaScriptWithSourceMap.cs b/src/React.Core/JavaScriptWithSourceMap.cs index d4ebf5bac..6f2989565 100644 --- a/src/React.Core/JavaScriptWithSourceMap.cs +++ b/src/React.Core/JavaScriptWithSourceMap.cs @@ -13,9 +13,7 @@ namespace React /// Represents the result of a Babel transformation along with its /// corresponding source map. /// -#if !NETSTANDARD1_6 [Serializable] -#endif public class JavaScriptWithSourceMap { /// diff --git a/src/React.Core/React.Core.csproj b/src/React.Core/React.Core.csproj index c9d0f2d95..08ec0a3c6 100644 --- a/src/React.Core/React.Core.csproj +++ b/src/React.Core/React.Core.csproj @@ -1,11 +1,11 @@ - + ReactJS and Babel tools for .NET. Important: This package does not do much on its own; you probably want an integration package (like React.Web.Mvc4) as well. Please refer to project site (http://reactjs.net/) for more details, usage examples and sample code. Copyright 2014-Present Facebook, Inc ReactJS.NET Core Daniel Lo Nigro - net40;net45;netstandard1.6;netstandard2.0 + net40;net45;netstandard2.0 true React.Core ../key.snk @@ -58,11 +58,6 @@ - - - - - diff --git a/src/React.Core/SourceMap.cs b/src/React.Core/SourceMap.cs index e350aebc2..dbcfa241f 100644 --- a/src/React.Core/SourceMap.cs +++ b/src/React.Core/SourceMap.cs @@ -15,9 +15,7 @@ namespace React /// /// Represents the data contained in a source map /// -#if !NETSTANDARD1_6 [Serializable] -#endif public class SourceMap { /// @@ -33,7 +31,7 @@ public class SourceMap /// /// An optional source root, useful for relocating source files on a server or - /// removing repeated values in the entry. This value is + /// removing repeated values in the entry. This value is /// prepended to the individual entries in the field. /// public string SourceRoot { get; set; } @@ -44,8 +42,8 @@ public class SourceMap public IList Sources { get; set; } /// - /// An optional list of source content, useful when the can't - /// be hosted. The contents are listed in the same order as the . + /// An optional list of source content, useful when the can't + /// be hosted. The contents are listed in the same order as the . /// null may be used if some original sources should be retrieved by name. /// public IList SourcesContent { get; set; } diff --git a/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj b/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj index 34b84ff1d..cc8612e85 100644 --- a/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj +++ b/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj @@ -1,15 +1,14 @@ - + Copyright 2014-Present Facebook, Inc ReactJS.NET Console Sample Daniel Lo Nigro - net40;netcoreapp1.1;netcoreapp2.0 + net40;netcoreapp2.0 React.Sample.ConsoleApp Exe React.Sample.ConsoleApp 1701 - 1.1 false From 73e8d277ac1f07c3d9054b5656842b6905770f87 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 28 Feb 2020 22:36:38 +0000 Subject: [PATCH 048/187] Update dependency typescript to v3.8.3 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 6df7d3d83..cb813612e 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -52,9 +52,9 @@ "dev": true }, "typescript": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.8.2.tgz", - "integrity": "sha512-EgOVgL/4xfVrCMbhYKUQTdF37SQn4Iw73H5BgCrF1Abdun7Kwy/QZsE/ssAy0y4LxBbvua3PIbFsbRczWWnDdQ==", + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz", + "integrity": "sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==", "dev": true } } diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 3a55dae00..14fb23791 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -10,6 +10,6 @@ "@types/react": "16.9.23", "@types/react-dom": "16.9.5", "@types/reactstrap": "8.4.2", - "typescript": "3.8.2" + "typescript": "3.8.3" } } From 0dc333414f5753c30217a61cb3fdac86d0896020 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 29 Feb 2020 21:19:41 +0000 Subject: [PATCH 049/187] Update dependency Microsoft.NET.Sdk.Functions to v1.0.33 --- webhooks/React.Site.Hooks.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webhooks/React.Site.Hooks.csproj b/webhooks/React.Site.Hooks.csproj index e62f3e883..b86515408 100644 --- a/webhooks/React.Site.Hooks.csproj +++ b/webhooks/React.Site.Hooks.csproj @@ -3,7 +3,7 @@ net461 - + From ba1facc2cff9f8090e0574e23adc26e777baf039 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sat, 29 Feb 2020 22:12:42 -0800 Subject: [PATCH 050/187] Move tutorial source into installable template (#1049) * Move tutorial source into installable template * Add template to getting started pages * Fix template package versioning --- build.proj | 1 + .../jekyll/_posts/2016-10-09-3.0.0-release.md | 2 +- .../jekyll/_posts/2019-11-24-5.1.2-release.md | 2 +- site/jekyll/getting-started/aspnetcore.md | 10 ++++++++ site/jekyll/index.md | 2 +- site/jekyll/tutorials/aspnetcore.md | 14 +++++++++-- src/React.Template/React.Template.csproj | 25 +++++++++++++++++++ .../.template.config/template.json | 13 ++++++++++ .../Controllers/HomeController.cs | 0 .../reactnet-vanilla}/Models/CommentModel.cs | 0 .../reactnet-vanilla}/Program.cs | 0 .../Properties/launchSettings.json | 0 src/React.Template/reactnet-vanilla/README.md | 1 + .../reactnet-vanilla}/ReactDemo.sln | 0 .../reactnet-vanilla}/Startup.cs | 0 .../reactnet-vanilla}/Views/Home/Index.cshtml | 0 .../Views/_ViewImports.cshtml | 0 .../reactnet-vanilla}/app.config | 0 .../reactnet-vanilla}/appsettings.json | 0 .../reactnet-vanilla}/tutorial-code.csproj | 0 .../reactnet-vanilla}/web.config | 0 .../wwwroot/js/remarkable.min.js | 0 .../reactnet-vanilla}/wwwroot/js/tutorial.jsx | 0 src/React.sln | 8 +++++- tutorial-code/README.md | 2 +- 25 files changed, 73 insertions(+), 7 deletions(-) create mode 100644 src/React.Template/React.Template.csproj create mode 100644 src/React.Template/reactnet-vanilla/.template.config/template.json rename {tutorial-code => src/React.Template/reactnet-vanilla}/Controllers/HomeController.cs (100%) rename {tutorial-code => src/React.Template/reactnet-vanilla}/Models/CommentModel.cs (100%) rename {tutorial-code => src/React.Template/reactnet-vanilla}/Program.cs (100%) rename {tutorial-code => src/React.Template/reactnet-vanilla}/Properties/launchSettings.json (100%) create mode 100644 src/React.Template/reactnet-vanilla/README.md rename {tutorial-code => src/React.Template/reactnet-vanilla}/ReactDemo.sln (100%) rename {tutorial-code => src/React.Template/reactnet-vanilla}/Startup.cs (100%) rename {tutorial-code => src/React.Template/reactnet-vanilla}/Views/Home/Index.cshtml (100%) rename {tutorial-code => src/React.Template/reactnet-vanilla}/Views/_ViewImports.cshtml (100%) rename {tutorial-code => src/React.Template/reactnet-vanilla}/app.config (100%) rename {tutorial-code => src/React.Template/reactnet-vanilla}/appsettings.json (100%) rename {tutorial-code => src/React.Template/reactnet-vanilla}/tutorial-code.csproj (100%) rename {tutorial-code => src/React.Template/reactnet-vanilla}/web.config (100%) rename {tutorial-code => src/React.Template/reactnet-vanilla}/wwwroot/js/remarkable.min.js (100%) rename {tutorial-code => src/React.Template/reactnet-vanilla}/wwwroot/js/tutorial.jsx (100%) diff --git a/build.proj b/build.proj index f6be88cd6..0f13e4d09 100644 --- a/build.proj +++ b/build.proj @@ -31,6 +31,7 @@ of patent rights can be found in the PATENTS file in the same directory. + diff --git a/site/jekyll/_posts/2016-10-09-3.0.0-release.md b/site/jekyll/_posts/2016-10-09-3.0.0-release.md index bbf3a7746..e8aa357d2 100644 --- a/site/jekyll/_posts/2016-10-09-3.0.0-release.md +++ b/site/jekyll/_posts/2016-10-09-3.0.0-release.md @@ -4,7 +4,7 @@ layout: post author: Daniel Lo Nigro --- -I'm happy to announce the release of ReactJS.NET 3.0! The major change in this release is the addition of support for .NET Core! [The tutorial](/tutorials/aspnetcore.html) has also been totally revamped for ASP.NET Core, and a completed version of the tutorial code is now [available in the ReactJS.NET Git repository](https://github.com/reactjs/React.NET/tree/master/tutorial-code) +I'm happy to announce the release of ReactJS.NET 3.0! The major change in this release is the addition of support for .NET Core! [The tutorial](/tutorials/aspnetcore.html) has also been totally revamped for ASP.NET Core, and a completed version of the tutorial code is now [available in the ReactJS.NET Git repository](https://github.com/reactjs/React.NET/tree/master/src/React.Template/reactnet-vanilla) **Major Changes**: diff --git a/site/jekyll/_posts/2019-11-24-5.1.2-release.md b/site/jekyll/_posts/2019-11-24-5.1.2-release.md index 7a61f34b2..7266d1298 100644 --- a/site/jekyll/_posts/2019-11-24-5.1.2-release.md +++ b/site/jekyll/_posts/2019-11-24-5.1.2-release.md @@ -6,7 +6,7 @@ author: Dustin Masters 🚀 We're pleased to announce the release of ReactJS.NET 5.1.2. A few small updates in this release: -- .NET Core 3.0 support. The [tutorial project](https://github.com/reactjs/React.NET/tree/master/tutorial-code) has also been updated to demonstrate the (simple!) migration path. +- .NET Core 3.0 support. The [tutorial project](https://github.com/reactjs/React.NET/tree/master/src/React.Template/reactnet-vanilla) has also been updated to demonstrate the (simple!) migration path. - React and ReactDOM updated to 16.12.0 - Fix missing query parameter mapping for React.Router - thanks [@mattywong](https://github.com/mattywong) diff --git a/site/jekyll/getting-started/aspnetcore.md b/site/jekyll/getting-started/aspnetcore.md index 0b2cb2a2d..782d7c409 100644 --- a/site/jekyll/getting-started/aspnetcore.md +++ b/site/jekyll/getting-started/aspnetcore.md @@ -6,6 +6,16 @@ title: Getting Started (ASP.NET Core) #### 👀 Just want to see the code? Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Webpack.CoreMvc). +## For new projects: + +``` +dotnet new -i React.Template +dotnet new reactnet-vanilla +dotnet run +``` + +## For existing projects: + This guide covers enabling server-side rendering and Babel compilation. Getting started with ReactJS.NET on ASP.NET Core requires a few more steps compared to previous versions of ASP.NET and MVC. If you want a step-by-step guide on configuring a brand new site, see [the ReactJS.NET tutorial for ASP.NET Core](/tutorials/aspnetcore.html). ReactJS.NET requires at least Visual Studio 2015 and ASP.NET Core 1.0, but has also been tested with VS 2017 and .NET Core 2.1. diff --git a/site/jekyll/index.md b/site/jekyll/index.md index 10fc7730b..c37ac6f30 100644 --- a/site/jekyll/index.md +++ b/site/jekyll/index.md @@ -131,7 +131,7 @@ bundles.Add(new JsxBundle("~/bundles/main").Include(
diff --git a/site/jekyll/tutorials/aspnetcore.md b/site/jekyll/tutorials/aspnetcore.md index aacb75e13..d5d9ac1c4 100644 --- a/site/jekyll/tutorials/aspnetcore.md +++ b/site/jekyll/tutorials/aspnetcore.md @@ -8,6 +8,16 @@ layout: docs > > This tutorial is for Visual Studio 2019 and ASP.NET Core MVC. If you're still using ASP.NET 4 and ASP.NET MVC 5, you can [follow the ASP.NET 4 tutorial instead](/tutorials/aspnet4.html) +## Quick start + +``` +dotnet new -i React.Template +dotnet new reactnet-vanilla +dotnet run +``` + +## Step by step version + This tutorial covers the end-to-end process of creating a brand new ASP.NET MVC website and adding a React component in it. We will start from scratch and end with a fully functioning component. It assumes you have basic knowledge of ASP.NET MVC and using Visual Studio. This tutorial is based off the [original React tutorial](https://reactjs.org/tutorial/tutorial.html) but has been modified specifically for ReactJS.NET. We'll be building a simple, but realistic comments box that you can drop into a blog, a basic version of the realtime comments offered by Disqus, LiveFyre or Facebook comments. @@ -26,7 +36,7 @@ It'll also have a few neat features: ## Want to skip all this and see the source? -[It's all on GitHub](https://github.com/reactjs/React.NET/tree/master/tutorial-code). +[It's all on GitHub](https://github.com/reactjs/React.NET/tree/master/src/React.Template/reactnet-vanilla). ## Getting started @@ -1011,7 +1021,7 @@ There used to be a section on bundling and minification in this tutorial, but un Server-side rendering means that your application initially renders the components on the server-side, rather than fetching data from the server and rendering using the client. Server-side rendering enhances the performance of your application since the user will see the initial state immediately. -We need to make some modifications to `CommentBox` to support server-side rendering. Firstly, we need to accept an `initialData` prop, which will be used to set the initial state of the component, rather than doing an AJAX request. We also need to remove the initial `loadCommentsFromServer` call from `componentDidMount`, since it is no longer required. +We need to make some modifications to `CommentBox` to support server-side rendering. Firstly, we need to accept an `initialData` prop, which will be used to set the initial state of the component, rather than doing an AJAX request. We also need to remove the initial `loadCommentsFromServer` call from `componentDidMount`, since it is no longer required. ```javascript{4,31-33} class CommentBox extends React.Component { diff --git a/src/React.Template/React.Template.csproj b/src/React.Template/React.Template.csproj new file mode 100644 index 000000000..c2bcf1831 --- /dev/null +++ b/src/React.Template/React.Template.csproj @@ -0,0 +1,25 @@ + + + + Template + React.Template + https://github.com/reactjs/react.net + https://github.com/reactjs/React.NET#licence + ReactJS.NET Template Pack + ReactJS.NET contributors + Templates to use for bootstrapping new ReactJS.NET applications. + dotnet-new;templates;react + + netstandard2.0 + + true + false + content + + + + + + + + \ No newline at end of file diff --git a/src/React.Template/reactnet-vanilla/.template.config/template.json b/src/React.Template/reactnet-vanilla/.template.config/template.json new file mode 100644 index 000000000..18e9c5df8 --- /dev/null +++ b/src/React.Template/reactnet-vanilla/.template.config/template.json @@ -0,0 +1,13 @@ +{ + "author": "ReactJS.NET contributors", + "classifications": [ + "Web" + ], + "name": "React.NET Starter Template", + "identity": "React.Template.NetCore", + "shortName": "reactnet-vanilla", + "tags": { + "language": "C#" + }, + "preferNameDirectory": "true" +} diff --git a/tutorial-code/Controllers/HomeController.cs b/src/React.Template/reactnet-vanilla/Controllers/HomeController.cs similarity index 100% rename from tutorial-code/Controllers/HomeController.cs rename to src/React.Template/reactnet-vanilla/Controllers/HomeController.cs diff --git a/tutorial-code/Models/CommentModel.cs b/src/React.Template/reactnet-vanilla/Models/CommentModel.cs similarity index 100% rename from tutorial-code/Models/CommentModel.cs rename to src/React.Template/reactnet-vanilla/Models/CommentModel.cs diff --git a/tutorial-code/Program.cs b/src/React.Template/reactnet-vanilla/Program.cs similarity index 100% rename from tutorial-code/Program.cs rename to src/React.Template/reactnet-vanilla/Program.cs diff --git a/tutorial-code/Properties/launchSettings.json b/src/React.Template/reactnet-vanilla/Properties/launchSettings.json similarity index 100% rename from tutorial-code/Properties/launchSettings.json rename to src/React.Template/reactnet-vanilla/Properties/launchSettings.json diff --git a/src/React.Template/reactnet-vanilla/README.md b/src/React.Template/reactnet-vanilla/README.md new file mode 100644 index 000000000..c7e9cab59 --- /dev/null +++ b/src/React.Template/reactnet-vanilla/README.md @@ -0,0 +1 @@ +This is the source code from the [tutorial on the ReactJS.NET site](https://reactjs.net/getting-started/tutorial.html). \ No newline at end of file diff --git a/tutorial-code/ReactDemo.sln b/src/React.Template/reactnet-vanilla/ReactDemo.sln similarity index 100% rename from tutorial-code/ReactDemo.sln rename to src/React.Template/reactnet-vanilla/ReactDemo.sln diff --git a/tutorial-code/Startup.cs b/src/React.Template/reactnet-vanilla/Startup.cs similarity index 100% rename from tutorial-code/Startup.cs rename to src/React.Template/reactnet-vanilla/Startup.cs diff --git a/tutorial-code/Views/Home/Index.cshtml b/src/React.Template/reactnet-vanilla/Views/Home/Index.cshtml similarity index 100% rename from tutorial-code/Views/Home/Index.cshtml rename to src/React.Template/reactnet-vanilla/Views/Home/Index.cshtml diff --git a/tutorial-code/Views/_ViewImports.cshtml b/src/React.Template/reactnet-vanilla/Views/_ViewImports.cshtml similarity index 100% rename from tutorial-code/Views/_ViewImports.cshtml rename to src/React.Template/reactnet-vanilla/Views/_ViewImports.cshtml diff --git a/tutorial-code/app.config b/src/React.Template/reactnet-vanilla/app.config similarity index 100% rename from tutorial-code/app.config rename to src/React.Template/reactnet-vanilla/app.config diff --git a/tutorial-code/appsettings.json b/src/React.Template/reactnet-vanilla/appsettings.json similarity index 100% rename from tutorial-code/appsettings.json rename to src/React.Template/reactnet-vanilla/appsettings.json diff --git a/tutorial-code/tutorial-code.csproj b/src/React.Template/reactnet-vanilla/tutorial-code.csproj similarity index 100% rename from tutorial-code/tutorial-code.csproj rename to src/React.Template/reactnet-vanilla/tutorial-code.csproj diff --git a/tutorial-code/web.config b/src/React.Template/reactnet-vanilla/web.config similarity index 100% rename from tutorial-code/web.config rename to src/React.Template/reactnet-vanilla/web.config diff --git a/tutorial-code/wwwroot/js/remarkable.min.js b/src/React.Template/reactnet-vanilla/wwwroot/js/remarkable.min.js similarity index 100% rename from tutorial-code/wwwroot/js/remarkable.min.js rename to src/React.Template/reactnet-vanilla/wwwroot/js/remarkable.min.js diff --git a/tutorial-code/wwwroot/js/tutorial.jsx b/src/React.Template/reactnet-vanilla/wwwroot/js/tutorial.jsx similarity index 100% rename from tutorial-code/wwwroot/js/tutorial.jsx rename to src/React.Template/reactnet-vanilla/wwwroot/js/tutorial.jsx diff --git a/src/React.sln b/src/React.sln index 37a174e2b..b81edab0c 100644 --- a/src/React.sln +++ b/src/React.sln @@ -1,4 +1,4 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 +Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 VisualStudioVersion = 15.0.27004.2002 MinimumVisualStudioVersion = 10.0.40219.1 @@ -70,6 +70,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "React.Tests.Integration", " EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "React.Tests.Common", "..\tests\React.Tests.Common\React.Tests.Common.csproj", "{29F7122F-ECBB-4EBE-A2BB-3A00CED73C19}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "React.Template", "React.Template\React.Template.csproj", "{FE067035-C82A-49D4-BFBE-4B0AF82F0817}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -156,6 +158,10 @@ Global {29F7122F-ECBB-4EBE-A2BB-3A00CED73C19}.Debug|Any CPU.Build.0 = Debug|Any CPU {29F7122F-ECBB-4EBE-A2BB-3A00CED73C19}.Release|Any CPU.ActiveCfg = Release|Any CPU {29F7122F-ECBB-4EBE-A2BB-3A00CED73C19}.Release|Any CPU.Build.0 = Release|Any CPU + {FE067035-C82A-49D4-BFBE-4B0AF82F0817}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FE067035-C82A-49D4-BFBE-4B0AF82F0817}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FE067035-C82A-49D4-BFBE-4B0AF82F0817}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FE067035-C82A-49D4-BFBE-4B0AF82F0817}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/tutorial-code/README.md b/tutorial-code/README.md index c7e9cab59..e58a4c70a 100644 --- a/tutorial-code/README.md +++ b/tutorial-code/README.md @@ -1 +1 @@ -This is the source code from the [tutorial on the ReactJS.NET site](https://reactjs.net/getting-started/tutorial.html). \ No newline at end of file +The tutorial source has been moved to .NET Core templates [here](../src/React.Templates) \ No newline at end of file From ea973d3fdb25054f95c2b53c7b01da5bd00ca4aa Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 1 Mar 2020 01:13:09 -0500 Subject: [PATCH 051/187] 5.2.0-beta2 --- build.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.proj b/build.proj index 0f13e4d09..98f4bf021 100644 --- a/build.proj +++ b/build.proj @@ -11,7 +11,7 @@ of patent rights can be found in the PATENTS file in the same directory. 5 2 - 0-beta1 + 0-beta2 0 http://reactjs.net/packages/ $(MSBuildProjectDirectory)\tools\MSBuildTasks From f896113246ba098eb38f490bb32abb5fac4355fc Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 1 Mar 2020 01:30:19 -0500 Subject: [PATCH 052/187] Update tutorial-code readme Fixed a typo --- tutorial-code/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tutorial-code/README.md b/tutorial-code/README.md index e58a4c70a..0e745ceff 100644 --- a/tutorial-code/README.md +++ b/tutorial-code/README.md @@ -1 +1 @@ -The tutorial source has been moved to .NET Core templates [here](../src/React.Templates) \ No newline at end of file +The tutorial source has been moved to .NET Core templates [here](../src/React.Template) From c0a0ed7c0df25290c62c5708aafe588f815ba9dc Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 1 Mar 2020 01:44:45 -0500 Subject: [PATCH 053/187] 5.2.0 --- build.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.proj b/build.proj index 98f4bf021..a029d806c 100644 --- a/build.proj +++ b/build.proj @@ -11,7 +11,7 @@ of patent rights can be found in the PATENTS file in the same directory. 5 2 - 0-beta2 + 0 0 http://reactjs.net/packages/ $(MSBuildProjectDirectory)\tools\MSBuildTasks From 40a34cb83a9780880d1d03e1a6606e0fc219240d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 1 Mar 2020 14:23:59 -0800 Subject: [PATCH 054/187] Update react monorepo to v16.13.0 (#1045) Co-authored-by: WhiteSource Renovate --- src/React.Core/package-lock.json | 20 ++++++++++---------- src/React.Core/package.json | 4 ++-- src/React.Sample.Owin/Content/Index.html | 4 ++-- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 7d9e9b84a..12e5bb9b6 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -3467,9 +3467,9 @@ } }, "react": { - "version": "16.12.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.12.0.tgz", - "integrity": "sha512-fglqy3k5E+81pA8s+7K0/T3DBCF0ZDOher1elBFzF7O6arXJgzyu/FW+COxFvAWXJoJN9KIZbT2LXlukwphYTA==", + "version": "16.13.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.13.0.tgz", + "integrity": "sha512-TSavZz2iSLkq5/oiE7gnFzmURKZMltmi193rm5HEoUDAXpzT9Kzw6oNZnGoai/4+fUnm7FqS5dwgUL34TujcWQ==", "dev": true, "requires": { "loose-envify": "^1.1.0", @@ -3478,15 +3478,15 @@ } }, "react-dom": { - "version": "16.12.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.12.0.tgz", - "integrity": "sha512-LMxFfAGrcS3kETtQaCkTKjMiifahaMySFDn71fZUNpPHZQEzmk/GiAeIT8JSOrHB23fnuCOMruL2a8NYlw+8Gw==", + "version": "16.13.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.0.tgz", + "integrity": "sha512-y09d2c4cG220DzdlFkPTnVvGTszVvNpC73v+AaLGLHbkpy3SSgvYq8x0rNwPJ/Rk/CicTNgk0hbHNw1gMEZAXg==", "dev": true, "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", "prop-types": "^15.6.2", - "scheduler": "^0.18.0" + "scheduler": "^0.19.0" } }, "react-is": { @@ -3664,9 +3664,9 @@ } }, "scheduler": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.18.0.tgz", - "integrity": "sha512-agTSHR1Nbfi6ulI0kYNK0203joW2Y5W4po4l+v03tOoiJKpTBbxpNhWDvqc/4IcOw+KLmSiQLTasZ4cab2/UWQ==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.0.tgz", + "integrity": "sha512-xowbVaTPe9r7y7RUejcK73/j8tt2jfiyTednOvHbA8JoClvMYCp+r8QegLwK/n8zWQAtZb1fFnER4XLBZXrCxA==", "dev": true, "requires": { "loose-envify": "^1.1.0", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index b1377a1e5..77ff6a722 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -9,8 +9,8 @@ "@babel/core": "7.7.7", "@babel/standalone": "7.7.7", "prop-types": "15.7.2", - "react": "16.12.0", - "react-dom": "16.12.0", + "react": "16.13.0", + "react-dom": "16.13.0", "webpack": "4.41.6", "webpack-cli": "3.3.11" } diff --git a/src/React.Sample.Owin/Content/Index.html b/src/React.Sample.Owin/Content/Index.html index d0b21ba37..e222c6ae3 100644 --- a/src/React.Sample.Owin/Content/Index.html +++ b/src/React.Sample.Owin/Content/Index.html @@ -10,11 +10,11 @@
- + + @Bundles.RenderScripts() ``` diff --git a/site/jekyll/features/server-side-rendering.md b/site/jekyll/features/server-side-rendering.md index abeac924a..7b94e4489 100644 --- a/site/jekyll/features/server-side-rendering.md +++ b/site/jekyll/features/server-side-rendering.md @@ -49,8 +49,8 @@ code. ```html - - + + @Scripts.Render("~/bundles/main") @Html.ReactInitJavaScript() ``` @@ -65,8 +65,8 @@ code.
- - + + ``` diff --git a/site/jekyll/index.md b/site/jekyll/index.md index c37ac6f30..610121f92 100644 --- a/site/jekyll/index.md +++ b/site/jekyll/index.md @@ -117,8 +117,8 @@ bundles.Add(new JsxBundle("~/bundles/main").Include( }) - - + + @Scripts.Render("~/bundles/main") @Html.ReactInitJavaScript() diff --git a/site/jekyll/tutorials/aspnet4.md b/site/jekyll/tutorials/aspnet4.md index 1ec64369c..375d6e518 100644 --- a/site/jekyll/tutorials/aspnet4.md +++ b/site/jekyll/tutorials/aspnet4.md @@ -101,8 +101,8 @@ Replace the contents of the new view file with the following:
- - + + @@ -991,8 +991,8 @@ Now that the bundle has been registered, we need to reference it from the view:
- - + + @Scripts.Render("~/bundles/main") @Html.ReactInitJavaScript() @@ -1111,8 +1111,8 @@ In the view, we will accept the list of comments as the model, and use `Html.Rea submitUrl = Url.Action("AddComment"), pollInterval = 2000 }) - - + + @Html.ReactInitJavaScript() diff --git a/site/jekyll/tutorials/aspnetcore.md b/site/jekyll/tutorials/aspnetcore.md index d5d9ac1c4..0fb3163e9 100644 --- a/site/jekyll/tutorials/aspnetcore.md +++ b/site/jekyll/tutorials/aspnetcore.md @@ -191,8 +191,8 @@ Replace the contents of the new view file with the following:
- - + + @@ -1115,8 +1115,8 @@ In the view, we will accept the list of comments as the model, and use `Html.Rea submitUrl = Url.Action("AddComment"), pollInterval = 2000, }) - - + + @Html.ReactInitJavaScript() diff --git a/src/React.Sample.Cassette/Views/Home/Index.cshtml b/src/React.Sample.Cassette/Views/Home/Index.cshtml index aff7baf8a..c7a17f1ed 100644 --- a/src/React.Sample.Cassette/Views/Home/Index.cshtml +++ b/src/React.Sample.Cassette/Views/Home/Index.cshtml @@ -20,8 +20,8 @@ @Html.React("CommentsBox", new { initialComments = Model.Comments }) - - + + @Bundles.RenderScripts() diff --git a/src/React.Template/reactnet-vanilla/Views/Home/Index.cshtml b/src/React.Template/reactnet-vanilla/Views/Home/Index.cshtml index 8615baa7c..e4b22b283 100644 --- a/src/React.Template/reactnet-vanilla/Views/Home/Index.cshtml +++ b/src/React.Template/reactnet-vanilla/Views/Home/Index.cshtml @@ -14,8 +14,8 @@ submitUrl = Url.Action("AddComment"), pollInterval = 2000, }) - - + + From e0877f953cd9967a641e506373800a583c7683a1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 1 Mar 2020 14:30:23 -0800 Subject: [PATCH 058/187] Update babel monorepo (#1006) Co-authored-by: WhiteSource Renovate --- src/React.Core/package-lock.json | 147 +- src/React.Core/package.json | 4 +- .../package-lock.json | 1271 +++++++++-------- src/React.Sample.Webpack.CoreMvc/package.json | 12 +- 4 files changed, 766 insertions(+), 668 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 12e5bb9b6..9726ae1ac 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -5,29 +5,30 @@ "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", - "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", "dev": true, "requires": { - "@babel/highlight": "^7.0.0" + "@babel/highlight": "^7.8.3" } }, "@babel/core": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.7.tgz", - "integrity": "sha512-jlSjuj/7z138NLZALxVgrx13AOtqip42ATZP7+kYl53GvDV6+4dCek1mVUo8z8c8Xnw/mx2q3d9HWh3griuesQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.7", - "@babel/helpers": "^7.7.4", - "@babel/parser": "^7.7.7", - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.6.tgz", + "integrity": "sha512-Sheg7yEJD51YHAvLEV/7Uvw95AeWqYPL3Vk3zGujJKIhJ+8oLw2ALaf3hbucILhKsgSoADOvtKRJuNVdcJkOrg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.6", + "@babel/helpers": "^7.8.4", + "@babel/parser": "^7.8.6", + "@babel/template": "^7.8.6", + "@babel/traverse": "^7.8.6", + "@babel/types": "^7.8.6", "convert-source-map": "^1.7.0", "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", "json5": "^2.1.0", "lodash": "^4.17.13", "resolve": "^1.3.2", @@ -53,61 +54,61 @@ } }, "@babel/generator": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.7.tgz", - "integrity": "sha512-/AOIBpHh/JU1l0ZFS4kiRCBnLi6OTHzh0RPk3h9isBxkkqELtQNFi1Vr/tiG9p1yfoUdKVwISuXWQR+hwwM4VQ==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.6.tgz", + "integrity": "sha512-4bpOR5ZBz+wWcMeVtcf7FbjcFzCp+817z2/gHNncIRcM9MmKzUhtWCYAq27RAfUrAFwb+OCG1s9WEaVxfi6cjg==", "dev": true, "requires": { - "@babel/types": "^7.7.4", + "@babel/types": "^7.8.6", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" } }, "@babel/helper-function-name": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz", - "integrity": "sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" } }, "@babel/helper-get-function-arity": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz", - "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", "dev": true, "requires": { - "@babel/types": "^7.7.4" + "@babel/types": "^7.8.3" } }, "@babel/helper-split-export-declaration": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz", - "integrity": "sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", "dev": true, "requires": { - "@babel/types": "^7.7.4" + "@babel/types": "^7.8.3" } }, "@babel/helpers": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.7.4.tgz", - "integrity": "sha512-ak5NGZGJ6LV85Q1Zc9gn2n+ayXOizryhjSUBTdu5ih1tlVCJeuQENzc4ItyCVhINVXvIT/ZQ4mheGIsfBkpskg==", + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz", + "integrity": "sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w==", "dev": true, "requires": { - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.4", + "@babel/types": "^7.8.3" } }, "@babel/highlight": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", - "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", "dev": true, "requires": { "chalk": "^2.0.0", @@ -124,40 +125,40 @@ } }, "@babel/parser": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.7.tgz", - "integrity": "sha512-WtTZMZAZLbeymhkd/sEaPD8IQyGAhmuTuvTzLiCFM7iXiVdY0gc0IaI+cW0fh1BnSMbJSzXX6/fHllgHKwHhXw==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.6.tgz", + "integrity": "sha512-trGNYSfwq5s0SgM1BMEB8hX3NDmO7EP2wsDGDexiaKMB92BaRpS+qZfpkMqUBhcsOTBwNy9B/jieo4ad/t/z2g==", "dev": true }, "@babel/standalone": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.7.7.tgz", - "integrity": "sha512-nlhwSzfCVWFxIfY0wL1DJkHyyDbqHNTldCAaAljzPHJ/ppYziziSoM0HJn919e54uUxtO3AAdp8CWqOn8CON/w==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.8.6.tgz", + "integrity": "sha512-GkzSsxrnn3NbL0XwY7oVa1frbl71NmYf73C3xdpt59W056Sm9ohZghuoC2W1NLKAOVztghoyFmtQCKc/7qjSDg==", "dev": true }, "@babel/template": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", - "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" } }, "@babel/traverse": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.4.tgz", - "integrity": "sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.6.tgz", + "integrity": "sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A==", "dev": true, "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.4", - "@babel/helper-function-name": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4", + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.6", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" @@ -181,9 +182,9 @@ } }, "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -2221,6 +2222,12 @@ } } }, + "gensync": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", + "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", + "dev": true + }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -3562,9 +3569,9 @@ "dev": true }, "resolve": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.0.tgz", - "integrity": "sha512-uviWSi5N67j3t3UKFxej1loCH0VZn5XuqdNxoLShPcYPw6cUZn74K1VRj+9myynRX03bxIBEkwlkob/ujLsJVw==", + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", + "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", "dev": true, "requires": { "path-parse": "^1.0.6" diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 77ff6a722..d555cc02b 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -6,8 +6,8 @@ "build": "webpack" }, "devDependencies": { - "@babel/core": "7.7.7", - "@babel/standalone": "7.7.7", + "@babel/core": "7.8.6", + "@babel/standalone": "7.8.6", "prop-types": "15.7.2", "react": "16.13.0", "react-dom": "16.13.0", diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index a45c4a3ec..a7d592bb0 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -5,29 +5,41 @@ "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", - "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", "dev": true, "requires": { - "@babel/highlight": "^7.0.0" + "@babel/highlight": "^7.8.3" + } + }, + "@babel/compat-data": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.8.6.tgz", + "integrity": "sha512-CurCIKPTkS25Mb8mz267vU95vy+TyUpnctEX2lV33xWNmHAfjruztgiPBbXZRh3xZZy1CYvGx6XfxyTVS+sk7Q==", + "dev": true, + "requires": { + "browserslist": "^4.8.5", + "invariant": "^2.2.4", + "semver": "^5.5.0" } }, "@babel/core": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.7.tgz", - "integrity": "sha512-jlSjuj/7z138NLZALxVgrx13AOtqip42ATZP7+kYl53GvDV6+4dCek1mVUo8z8c8Xnw/mx2q3d9HWh3griuesQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.7", - "@babel/helpers": "^7.7.4", - "@babel/parser": "^7.7.7", - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.6.tgz", + "integrity": "sha512-Sheg7yEJD51YHAvLEV/7Uvw95AeWqYPL3Vk3zGujJKIhJ+8oLw2ALaf3hbucILhKsgSoADOvtKRJuNVdcJkOrg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.6", + "@babel/helpers": "^7.8.4", + "@babel/parser": "^7.8.6", + "@babel/template": "^7.8.6", + "@babel/traverse": "^7.8.6", + "@babel/types": "^7.8.6", "convert-source-map": "^1.7.0", "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", "json5": "^2.1.0", "lodash": "^4.17.13", "resolve": "^1.3.2", @@ -35,28 +47,10 @@ "source-map": "^0.5.0" }, "dependencies": { - "@babel/generator": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.7.tgz", - "integrity": "sha512-/AOIBpHh/JU1l0ZFS4kiRCBnLi6OTHzh0RPk3h9isBxkkqELtQNFi1Vr/tiG9p1yfoUdKVwISuXWQR+hwwM4VQ==", - "dev": true, - "requires": { - "@babel/types": "^7.7.4", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@babel/parser": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.7.tgz", - "integrity": "sha512-WtTZMZAZLbeymhkd/sEaPD8IQyGAhmuTuvTzLiCFM7iXiVdY0gc0IaI+cW0fh1BnSMbJSzXX6/fHllgHKwHhXw==", - "dev": true - }, "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -106,21 +100,21 @@ } }, "@babel/generator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.4.tgz", - "integrity": "sha512-m5qo2WgdOJeyYngKImbkyQrnUN1mPceaG5BV+G0E3gWsa4l/jCSryWJdM2x8OuGAOyh+3d5pVYfZWCiNFtynxg==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.6.tgz", + "integrity": "sha512-4bpOR5ZBz+wWcMeVtcf7FbjcFzCp+817z2/gHNncIRcM9MmKzUhtWCYAq27RAfUrAFwb+OCG1s9WEaVxfi6cjg==", "dev": true, "requires": { - "@babel/types": "^7.7.4", + "@babel/types": "^7.8.6", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -139,19 +133,19 @@ } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.7.4.tgz", - "integrity": "sha512-Biq/d/WtvfftWZ9Uf39hbPBYDUo986m5Bb4zhkeYDGUllF43D+nUe5M6Vuo6/8JDK/0YX/uBdeoQpyaNhNugZQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz", + "integrity": "sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw==", "dev": true, "requires": { - "@babel/helper-explode-assignable-expression": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/helper-explode-assignable-expression": "^7.8.3", + "@babel/types": "^7.8.3" }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -162,19 +156,19 @@ } }, "@babel/helper-builder-react-jsx": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.7.4.tgz", - "integrity": "sha512-kvbfHJNN9dg4rkEM4xn1s8d1/h6TYNvajy9L1wx4qLn9HFg0IkTsQi4rfBe92nxrPUFcMsHoMV+8rU7MJb3fCA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.8.3.tgz", + "integrity": "sha512-JT8mfnpTkKNCboTqZsQTdGo3l3Ik3l7QIt9hh0O9DYiwVel37VoJpILKM4YFbP2euF32nkQSb+F9cUk9b7DDXQ==", "dev": true, "requires": { - "@babel/types": "^7.7.4", + "@babel/types": "^7.8.3", "esutils": "^2.0.0" }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -185,20 +179,20 @@ } }, "@babel/helper-call-delegate": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.7.4.tgz", - "integrity": "sha512-8JH9/B7J7tCYJ2PpWVpw9JhPuEVHztagNVuQAFBVFYluRMlpG7F1CgKEgGeL6KFqcsIa92ZYVj6DSc0XwmN1ZA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.8.3.tgz", + "integrity": "sha512-6Q05px0Eb+N4/GTyKPPvnkig7Lylw+QzihMpws9iiZQv7ZImf84ZsZpQH7QoWN4n4tm81SnSzPgHw2qtO0Zf3A==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/helper-hoist-variables": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -208,45 +202,81 @@ } } }, + "@babel/helper-compilation-targets": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.6.tgz", + "integrity": "sha512-UrJdk27hKVJSnibFcUWYLkCL0ZywTUoot8yii1lsHJcvwrypagmYKjHLMWivQPm4s6GdyygCL8fiH5EYLxhQwQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.8.6", + "browserslist": "^4.8.5", + "invariant": "^2.2.4", + "levenary": "^1.1.1", + "semver": "^5.5.0" + } + }, "@babel/helper-create-class-features-plugin": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.7.4.tgz", - "integrity": "sha512-l+OnKACG4uiDHQ/aJT8dwpR+LhCJALxL0mJ6nzjB25e5IPwqV1VOsY7ah6UB1DG+VOXAIMtuC54rFJGiHkxjgA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.8.6.tgz", + "integrity": "sha512-klTBDdsr+VFFqaDHm5rR69OpEQtO2Qv8ECxHS1mNhJJvaHArR6a1xTf5K/eZW7eZpJbhCx3NW1Yt/sKsLXLblg==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.7.4", - "@babel/helper-member-expression-to-functions": "^7.7.4", - "@babel/helper-optimise-call-expression": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4" + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-member-expression-to-functions": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", + "@babel/helper-split-export-declaration": "^7.8.3" } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.7.4.tgz", - "integrity": "sha512-Mt+jBKaxL0zfOIWrfQpnfYCN7/rS6GKx6CCCfuoqVVd+17R8zNDlzVYmIi9qyb2wOk002NsmSTDymkIygDUH7A==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.6.tgz", + "integrity": "sha512-bPyujWfsHhV/ztUkwGHz/RPV1T1TDEsSZDsN42JPehndA+p1KKTh3npvTadux0ZhCrytx9tvjpWNowKby3tM6A==", "dev": true, "requires": { - "@babel/helper-regex": "^7.4.4", + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-regex": "^7.8.3", "regexpu-core": "^4.6.0" + }, + "dependencies": { + "@babel/helper-annotate-as-pure": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", + "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/types": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-define-map": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.7.4.tgz", - "integrity": "sha512-v5LorqOa0nVQUvAUTUF3KPastvUt/HzByXNamKQ6RdJRTV7j8rLL+WB5C/MzzWAwOomxDhYFb1wLLxHqox86lg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz", + "integrity": "sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.7.4", - "@babel/types": "^7.7.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/types": "^7.8.3", "lodash": "^4.17.13" }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -257,19 +287,19 @@ } }, "@babel/helper-explode-assignable-expression": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.7.4.tgz", - "integrity": "sha512-2/SicuFrNSXsZNBxe5UGdLr+HZg+raWBLE9vC98bdYOKX/U6PY0mdGlYUJdtTDPSU0Lw0PNbKKDpwYHJLn2jLg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz", + "integrity": "sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw==", "dev": true, "requires": { - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -280,20 +310,20 @@ } }, "@babel/helper-function-name": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz", - "integrity": "sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -304,18 +334,18 @@ } }, "@babel/helper-get-function-arity": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz", - "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", "dev": true, "requires": { - "@babel/types": "^7.7.4" + "@babel/types": "^7.8.3" }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -326,18 +356,18 @@ } }, "@babel/helper-hoist-variables": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.7.4.tgz", - "integrity": "sha512-wQC4xyvc1Jo/FnLirL6CEgPgPCa8M74tOdjWpRhQYapz5JC7u3NYU1zCVoVAGCE3EaIP9T1A3iW0WLJ+reZlpQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz", + "integrity": "sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg==", "dev": true, "requires": { - "@babel/types": "^7.7.4" + "@babel/types": "^7.8.3" }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -348,18 +378,18 @@ } }, "@babel/helper-member-expression-to-functions": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.7.4.tgz", - "integrity": "sha512-9KcA1X2E3OjXl/ykfMMInBK+uVdfIVakVe7W7Lg3wfXUNyS3Q1HWLFRwZIjhqiCGbslummPDnmb7vIekS0C1vw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz", + "integrity": "sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==", "dev": true, "requires": { - "@babel/types": "^7.7.4" + "@babel/types": "^7.8.3" }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -378,32 +408,33 @@ } }, "@babel/helper-module-transforms": { - "version": "7.7.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.7.5.tgz", - "integrity": "sha512-A7pSxyJf1gN5qXVcidwLWydjftUN878VkalhXX5iQDuGyiGK3sOrrKKHF4/A4fwHtnsotv/NipwAeLzY4KQPvw==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.6.tgz", + "integrity": "sha512-RDnGJSR5EFBJjG3deY0NiL0K9TO8SXxS9n/MPsbPK/s9LbQymuLNtlzvDiNS7IpecuL45cMeLVkA+HfmlrnkRg==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.7.4", - "@babel/helper-simple-access": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4", + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", + "@babel/helper-simple-access": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/template": "^7.8.6", + "@babel/types": "^7.8.6", "lodash": "^4.17.13" }, "dependencies": { "@babel/helper-module-imports": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.7.4.tgz", - "integrity": "sha512-dGcrX6K9l8258WFjyDLJwuVKxR4XZfU0/vTUgOQYWEnRD8mgr+p4d6fCUMq/ys0h4CCt/S5JhbvtyErjWouAUQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", + "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", "dev": true, "requires": { - "@babel/types": "^7.7.4" + "@babel/types": "^7.8.3" } }, "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -414,18 +445,18 @@ } }, "@babel/helper-optimise-call-expression": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.7.4.tgz", - "integrity": "sha512-VB7gWZ2fDkSuqW6b1AKXkJWO5NyNI3bFL/kK79/30moK57blr6NbH8xcl2XcKCwOmJosftWunZqfO84IGq3ZZg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz", + "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==", "dev": true, "requires": { - "@babel/types": "^7.7.4" + "@babel/types": "^7.8.3" }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -436,46 +467,46 @@ } }, "@babel/helper-plugin-utils": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", - "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", "dev": true }, "@babel/helper-regex": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.5.5.tgz", - "integrity": "sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz", + "integrity": "sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ==", "dev": true, "requires": { "lodash": "^4.17.13" } }, "@babel/helper-remap-async-to-generator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.7.4.tgz", - "integrity": "sha512-Sk4xmtVdM9sA/jCI80f+KS+Md+ZHIpjuqmYPk1M7F/upHou5e4ReYmExAiu6PVe65BhJPZA2CY9x9k4BqE5klw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz", + "integrity": "sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.7.4", - "@babel/helper-wrap-function": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-wrap-function": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" }, "dependencies": { "@babel/helper-annotate-as-pure": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.4.tgz", - "integrity": "sha512-2BQmQgECKzYKFPpiycoF9tlb5HA4lrVyAmLLVK177EcQAqjVLciUb2/R+n1boQ9y5ENV3uz2ZqiNw7QMBBw1Og==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", + "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", "dev": true, "requires": { - "@babel/types": "^7.7.4" + "@babel/types": "^7.8.3" } }, "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -486,21 +517,21 @@ } }, "@babel/helper-replace-supers": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.7.4.tgz", - "integrity": "sha512-pP0tfgg9hsZWo5ZboYGuBn/bbYT/hdLPVSS4NMmiRJdwWhP0IznPwN9AE1JwyGsjSPLC364I0Qh5p+EPkGPNpg==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz", + "integrity": "sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.7.4", - "@babel/helper-optimise-call-expression": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/helper-member-expression-to-functions": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/traverse": "^7.8.6", + "@babel/types": "^7.8.6" }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -511,19 +542,19 @@ } }, "@babel/helper-simple-access": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.7.4.tgz", - "integrity": "sha512-zK7THeEXfan7UlWsG2A6CI/L9jVnI5+xxKZOdej39Y0YtDYKx9raHk5F2EtK9K8DHRTihYwg20ADt9S36GR78A==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz", + "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==", "dev": true, "requires": { - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -534,18 +565,18 @@ } }, "@babel/helper-split-export-declaration": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz", - "integrity": "sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", "dev": true, "requires": { - "@babel/types": "^7.7.4" + "@babel/types": "^7.8.3" }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -556,21 +587,21 @@ } }, "@babel/helper-wrap-function": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.7.4.tgz", - "integrity": "sha512-VsfzZt6wmsocOaVU0OokwrIytHND55yvyT4BPB9AIIgwr8+x7617hetdJTsuGwygN5RC6mxA9EJztTjuwm2ofg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz", + "integrity": "sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/helper-function-name": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -581,20 +612,20 @@ } }, "@babel/helpers": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.7.4.tgz", - "integrity": "sha512-ak5NGZGJ6LV85Q1Zc9gn2n+ayXOizryhjSUBTdu5ih1tlVCJeuQENzc4ItyCVhINVXvIT/ZQ4mheGIsfBkpskg==", + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz", + "integrity": "sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w==", "dev": true, "requires": { - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.4", + "@babel/types": "^7.8.3" }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -605,9 +636,9 @@ } }, "@babel/highlight": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", - "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", "dev": true, "requires": { "chalk": "^2.0.0", @@ -624,178 +655,216 @@ } }, "@babel/parser": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.4.tgz", - "integrity": "sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.6.tgz", + "integrity": "sha512-trGNYSfwq5s0SgM1BMEB8hX3NDmO7EP2wsDGDexiaKMB92BaRpS+qZfpkMqUBhcsOTBwNy9B/jieo4ad/t/z2g==", "dev": true }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.7.4.tgz", - "integrity": "sha512-1ypyZvGRXriY/QP668+s8sFr2mqinhkRDMPSQLNghCQE+GAkFtp+wkHVvg2+Hdki8gwP+NFzJBJ/N1BfzCCDEw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz", + "integrity": "sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-remap-async-to-generator": "^7.7.4", - "@babel/plugin-syntax-async-generators": "^7.7.4" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-remap-async-to-generator": "^7.8.3", + "@babel/plugin-syntax-async-generators": "^7.8.0" } }, "@babel/plugin-proposal-class-properties": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.7.4.tgz", - "integrity": "sha512-EcuXeV4Hv1X3+Q1TsuOmyyxeTRiSqurGJ26+I/FW1WbymmRRapVORm6x1Zl3iDIHyRxEs+VXWp6qnlcfcJSbbw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.8.3.tgz", + "integrity": "sha512-EqFhbo7IosdgPgZggHaNObkmO1kNUe3slaKu54d5OWvy+p9QIKOzK1GAEpAIsZtWVtPXUHSMcT4smvDrCfY4AA==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-create-class-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-proposal-dynamic-import": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.7.4.tgz", - "integrity": "sha512-StH+nGAdO6qDB1l8sZ5UBV8AC3F2VW2I8Vfld73TMKyptMU9DY5YsJAS8U81+vEtxcH3Y/La0wG0btDrhpnhjQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz", + "integrity": "sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-dynamic-import": "^7.7.4" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" } }, "@babel/plugin-proposal-json-strings": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.7.4.tgz", - "integrity": "sha512-wQvt3akcBTfLU/wYoqm/ws7YOAQKu8EVJEvHip/mzkNtjaclQoCCIqKXFP5/eyfnfbQCDV3OLRIK3mIVyXuZlw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz", + "integrity": "sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-json-strings": "^7.7.4" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.7.7.tgz", - "integrity": "sha512-3qp9I8lelgzNedI3hrhkvhaEYree6+WHnyA/q4Dza9z7iEIs1eyhWyJnetk3jJ69RT0AT4G0UhEGwyGFJ7GUuQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-object-rest-spread": "^7.7.4" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0" } }, "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.7.4.tgz", - "integrity": "sha512-DyM7U2bnsQerCQ+sejcTNZh8KQEUuC3ufzdnVnSiUv/qoGJp2Z3hanKL18KDhsBT5Wj6a7CMT5mdyCNJsEaA9w==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.8.3.tgz", + "integrity": "sha512-QIoIR9abkVn+seDE3OjA08jWcs3eZ9+wJCKSRgo3WdEU2csFYgdScb+8qHB3+WXsGJD55u+5hWCISI7ejXS+kg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.7.4" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.7.tgz", - "integrity": "sha512-80PbkKyORBUVm1fbTLrHpYdJxMThzM1UqFGh0ALEhO9TYbG86Ah9zQYAB/84axz2vcxefDLdZwWwZNlYARlu9w==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.3.tgz", + "integrity": "sha512-1/1/rEZv2XGweRwwSkLpY+s60za9OZ1hJs4YDqFHCw0kYWYwL5IFljVY1MYBL+weT1l9pokDO2uhSTLVxzoHkQ==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-syntax-async-generators": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.7.4.tgz", - "integrity": "sha512-Li4+EjSpBgxcsmeEF8IFcfV/+yJGxHXDirDkEoyFjumuwbmfCVHUt0HuowD/iGM7OhIRyXJH9YXxqiH6N815+g==", + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-dynamic-import": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.7.4.tgz", - "integrity": "sha512-jHQW0vbRGvwQNgyVxwDh4yuXu4bH1f5/EICJLAhl1SblLs2CDhrsmCk+v5XLdE9wxtAFRyxx+P//Iw+a5L/tTg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-json-strings": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.7.4.tgz", - "integrity": "sha512-QpGupahTQW1mHRXddMG5srgpHWqRLwJnJZKXTigB9RPFCCGbDGCgBeM/iC82ICXp414WeYx/tD54w7M2qRqTMg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-jsx": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.7.4.tgz", - "integrity": "sha512-wuy6fiMe9y7HeZBWXYCGt2RGxZOj0BImZ9EyXJVnVGBKO/Br592rbR3rtIQn0eQhAk9vqaKP5n8tVqEFBQMfLg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz", + "integrity": "sha512-WxdW9xyLgBdefoo0Ynn3MRSkhe5tFVxxKNVdnZSh318WrG2e2jH+E9wd/++JsqcLJZPfz87njQJ8j2Upjm0M0A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-object-rest-spread": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.7.4.tgz", - "integrity": "sha512-mObR+r+KZq0XhRVS2BrBKBpr5jqrqzlPvS9C9vuOf5ilSwzloAl7RPWLrgKdWS6IreaVrjHxTjtyqFiOisaCwg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.7.4.tgz", - "integrity": "sha512-4ZSuzWgFxqHRE31Glu+fEr/MirNZOMYmD/0BhBWyLyOOQz/gTAl7QmWm2hX1QxEIXsr2vkdlwxIzTyiYRC4xcQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-top-level-await": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.7.4.tgz", - "integrity": "sha512-wdsOw0MvkL1UIgiQ/IFr3ETcfv1xb8RMM0H9wbiDyLaJFyiDg5oZvDLCXosIXmFeIlweML5iOBXAkqddkYNizg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz", + "integrity": "sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.7.4.tgz", - "integrity": "sha512-zUXy3e8jBNPiffmqkHRNDdZM2r8DWhCB7HhcoyZjiK1TxYEluLHAvQuYnTT+ARqRpabWqy/NHkO6e3MsYB5YfA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz", + "integrity": "sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.7.4.tgz", - "integrity": "sha512-zpUTZphp5nHokuy8yLlyafxCJ0rSlFoSHypTUWgpdwoDXWQcseaect7cJ8Ppk6nunOM6+5rPMkod4OYKPR5MUg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz", + "integrity": "sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-remap-async-to-generator": "^7.7.4" + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-remap-async-to-generator": "^7.8.3" }, "dependencies": { "@babel/helper-module-imports": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.7.4.tgz", - "integrity": "sha512-dGcrX6K9l8258WFjyDLJwuVKxR4XZfU0/vTUgOQYWEnRD8mgr+p4d6fCUMq/ys0h4CCt/S5JhbvtyErjWouAUQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", + "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", "dev": true, "requires": { - "@babel/types": "^7.7.4" + "@babel/types": "^7.8.3" } }, "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -806,53 +875,53 @@ } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.7.4.tgz", - "integrity": "sha512-kqtQzwtKcpPclHYjLK//3lH8OFsCDuDJBaFhVwf8kqdnF6MN4l618UDlcA7TfRs3FayrHj+svYnSX8MC9zmUyQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz", + "integrity": "sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.7.4.tgz", - "integrity": "sha512-2VBe9u0G+fDt9B5OV5DQH4KBf5DoiNkwFKOz0TCvBWvdAN2rOykCTkrL+jTLxfCAm76l9Qo5OqL7HBOx2dWggg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz", + "integrity": "sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-plugin-utils": "^7.8.3", "lodash": "^4.17.13" } }, "@babel/plugin-transform-classes": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.7.4.tgz", - "integrity": "sha512-sK1mjWat7K+buWRuImEzjNf68qrKcrddtpQo3swi9j7dUcG6y6R6+Di039QN2bD1dykeswlagupEmpOatFHHUg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.7.4", - "@babel/helper-define-map": "^7.7.4", - "@babel/helper-function-name": "^7.7.4", - "@babel/helper-optimise-call-expression": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.6.tgz", + "integrity": "sha512-k9r8qRay/R6v5aWZkrEclEhKO6mc1CCQr2dLsVHBmOQiMpN6I2bpjX3vgnldUWeEI1GHVNByULVxZ4BdP4Hmdg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-define-map": "^7.8.3", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", + "@babel/helper-split-export-declaration": "^7.8.3", "globals": "^11.1.0" }, "dependencies": { "@babel/helper-annotate-as-pure": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.4.tgz", - "integrity": "sha512-2BQmQgECKzYKFPpiycoF9tlb5HA4lrVyAmLLVK177EcQAqjVLciUb2/R+n1boQ9y5ENV3uz2ZqiNw7QMBBw1Og==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", + "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", "dev": true, "requires": { - "@babel/types": "^7.7.4" + "@babel/types": "^7.8.3" } }, "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -863,290 +932,291 @@ } }, "@babel/plugin-transform-computed-properties": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.7.4.tgz", - "integrity": "sha512-bSNsOsZnlpLLyQew35rl4Fma3yKWqK3ImWMSC/Nc+6nGjC9s5NFWAer1YQ899/6s9HxO2zQC1WoFNfkOqRkqRQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz", + "integrity": "sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-destructuring": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.7.4.tgz", - "integrity": "sha512-4jFMXI1Cu2aXbcXXl8Lr6YubCn6Oc7k9lLsu8v61TZh+1jny2BWmdtvY9zSUlLdGUvcy9DMAWyZEOqjsbeg/wA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.3.tgz", + "integrity": "sha512-H4X646nCkiEcHZUZaRkhE2XVsoz0J/1x3VVujnn96pSoGCtKPA99ZZA+va+gK+92Zycd6OBKCD8tDb/731bhgQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.7.tgz", - "integrity": "sha512-b4in+YlTeE/QmTgrllnb3bHA0HntYvjz8O3Mcbx75UBPJA2xhb5A8nle498VhxSXJHQefjtQxpnLPehDJ4TRlg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz", + "integrity": "sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.7.4.tgz", - "integrity": "sha512-g1y4/G6xGWMD85Tlft5XedGaZBCIVN+/P0bs6eabmcPP9egFleMAo65OOjlhcz1njpwagyY3t0nsQC9oTFegJA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz", + "integrity": "sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.7.4.tgz", - "integrity": "sha512-MCqiLfCKm6KEA1dglf6Uqq1ElDIZwFuzz1WH5mTf8k2uQSxEJMbOIEh7IZv7uichr7PMfi5YVSrr1vz+ipp7AQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz", + "integrity": "sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ==", "dev": true, "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-for-of": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.7.4.tgz", - "integrity": "sha512-zZ1fD1B8keYtEcKF+M1TROfeHTKnijcVQm0yO/Yu1f7qoDoxEIc/+GX6Go430Bg84eM/xwPFp0+h4EbZg7epAA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.6.tgz", + "integrity": "sha512-M0pw4/1/KI5WAxPsdcUL/w2LJ7o89YHN3yLkzNjg7Yl15GlVGgzHyCU+FMeAxevHGsLVmUqbirlUIKTafPmzdw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-function-name": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.7.4.tgz", - "integrity": "sha512-E/x09TvjHNhsULs2IusN+aJNRV5zKwxu1cpirZyRPw+FyyIKEHPXTsadj48bVpc1R5Qq1B5ZkzumuFLytnbT6g==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz", + "integrity": "sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-literals": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.7.4.tgz", - "integrity": "sha512-X2MSV7LfJFm4aZfxd0yLVFrEXAgPqYoDG53Br/tCKiKYfX0MjVjQeWPIhPHHsCqzwQANq+FLN786fF5rgLS+gw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz", + "integrity": "sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.7.4.tgz", - "integrity": "sha512-9VMwMO7i69LHTesL0RdGy93JU6a+qOPuvB4F4d0kR0zyVjJRVJRaoaGjhtki6SzQUu8yen/vxPKN6CWnCUw6bA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz", + "integrity": "sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.7.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.7.5.tgz", - "integrity": "sha512-CT57FG4A2ZUNU1v+HdvDSDrjNWBrtCmSH6YbbgN3Lrf0Di/q/lWRxZrE72p3+HCCz9UjfZOEBdphgC0nzOS6DQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.8.3.tgz", + "integrity": "sha512-MadJiU3rLKclzT5kBH4yxdry96odTUwuqrZM+GllFI/VhxfPz+k9MshJM+MwhfkCdxxclSbSBbUGciBngR+kEQ==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.7.5", - "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", "babel-plugin-dynamic-import-node": "^2.3.0" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.7.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.5.tgz", - "integrity": "sha512-9Cq4zTFExwFhQI6MT1aFxgqhIsMWQWDVwOgLzl7PTWJHsNaqFvklAU+Oz6AQLAS0dJKTwZSOCo20INwktxpi3Q==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz", + "integrity": "sha512-JpdMEfA15HZ/1gNuB9XEDlZM1h/gF/YOH7zaZzQu2xCFRfwc01NXBMHHSTT6hRjlXJJs5x/bfODM3LiCk94Sxg==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.7.5", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-simple-access": "^7.7.4", + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-simple-access": "^7.8.3", "babel-plugin-dynamic-import-node": "^2.3.0" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.7.4.tgz", - "integrity": "sha512-y2c96hmcsUi6LrMqvmNDPBBiGCiQu0aYqpHatVVu6kD4mFEXKjyNxd/drc18XXAf9dv7UXjrZwBVmTTGaGP8iw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.8.3.tgz", + "integrity": "sha512-8cESMCJjmArMYqa9AO5YuMEkE4ds28tMpZcGZB/jl3n0ZzlsxOAi3mC+SKypTfT8gjMupCnd3YiXCkMjj2jfOg==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-hoist-variables": "^7.8.3", + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", "babel-plugin-dynamic-import-node": "^2.3.0" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.7.4.tgz", - "integrity": "sha512-u2B8TIi0qZI4j8q4C51ktfO7E3cQ0qnaXFI1/OXITordD40tt17g/sXqgNNCcMTcBFKrUPcGDx+TBJuZxLx7tw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.8.3.tgz", + "integrity": "sha512-evhTyWhbwbI3/U6dZAnx/ePoV7H6OUG+OjiJFHmhr9FPn0VShjwC2kdxqIuQ/+1P50TMrneGzMeyMTFOjKSnAw==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.7.4.tgz", - "integrity": "sha512-jBUkiqLKvUWpv9GLSuHUFYdmHg0ujC1JEYoZUfeOOfNydZXp1sXObgyPatpcwjWgsdBGsagWW0cdJpX/DO2jMw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz", + "integrity": "sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.7.4" + "@babel/helper-create-regexp-features-plugin": "^7.8.3" } }, "@babel/plugin-transform-new-target": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.7.4.tgz", - "integrity": "sha512-CnPRiNtOG1vRodnsyGX37bHQleHE14B9dnnlgSeEs3ek3fHN1A1SScglTCg1sfbe7sRQ2BUcpgpTpWSfMKz3gg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz", + "integrity": "sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-object-super": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.7.4.tgz", - "integrity": "sha512-ho+dAEhC2aRnff2JCA0SAK7V2R62zJd/7dmtoe7MHcso4C2mS+vZjn1Pb1pCVZvJs1mgsvv5+7sT+m3Bysb6eg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz", + "integrity": "sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.7.4" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.3" } }, "@babel/plugin-transform-parameters": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.7.7.tgz", - "integrity": "sha512-OhGSrf9ZBrr1fw84oFXj5hgi8Nmg+E2w5L7NhnG0lPvpDtqd7dbyilM2/vR8CKbJ907RyxPh2kj6sBCSSfI9Ew==", + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.4.tgz", + "integrity": "sha512-IsS3oTxeTsZlE5KqzTbcC2sV0P9pXdec53SU+Yxv7o/6dvGM5AkTotQKhoSffhNgZ/dftsSiOoxy7evCYJXzVA==", "dev": true, "requires": { - "@babel/helper-call-delegate": "^7.7.4", - "@babel/helper-get-function-arity": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-call-delegate": "^7.8.3", + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-property-literals": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.7.4.tgz", - "integrity": "sha512-MatJhlC4iHsIskWYyawl53KuHrt+kALSADLQQ/HkhTjX954fkxIEh4q5slL4oRAnsm/eDoZ4q0CIZpcqBuxhJQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz", + "integrity": "sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-react-display-name": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.7.4.tgz", - "integrity": "sha512-sBbIvqYkthai0X0vkD2xsAwluBp+LtNHH+/V4a5ydifmTtb8KOVOlrMIk/MYmIc4uTYDnjZUHQildYNo36SRJw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.8.3.tgz", + "integrity": "sha512-3Jy/PCw8Fe6uBKtEgz3M82ljt+lTg+xJaM4og+eyu83qLT87ZUSckn0wy7r31jflURWLO83TW6Ylf7lyXj3m5A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-react-jsx": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.7.4.tgz", - "integrity": "sha512-LixU4BS95ZTEAZdPaIuyg/k8FiiqN9laQ0dMHB4MlpydHY53uQdWCUrwjLr5o6ilS6fAgZey4Q14XBjl5tL6xw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.8.3.tgz", + "integrity": "sha512-r0h+mUiyL595ikykci+fbwm9YzmuOrUBi0b+FDIKmi3fPQyFokWVEMJnRWHJPPQEjyFJyna9WZC6Viv6UHSv1g==", "dev": true, "requires": { - "@babel/helper-builder-react-jsx": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.7.4" + "@babel/helper-builder-react-jsx": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-jsx": "^7.8.3" } }, "@babel/plugin-transform-react-jsx-self": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.7.4.tgz", - "integrity": "sha512-PWYjSfqrO273mc1pKCRTIJXyqfc9vWYBax88yIhQb+bpw3XChVC7VWS4VwRVs63wFHKxizvGSd00XEr+YB9Q2A==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.8.3.tgz", + "integrity": "sha512-01OT7s5oa0XTLf2I8XGsL8+KqV9lx3EZV+jxn/L2LQ97CGKila2YMroTkCEIE0HV/FF7CMSRsIAybopdN9NTdg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.7.4" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-jsx": "^7.8.3" } }, "@babel/plugin-transform-react-jsx-source": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.7.4.tgz", - "integrity": "sha512-5ZU9FnPhqtHsOXxutRtXZAzoEJwDaP32QcobbMP1/qt7NYcsCNK8XgzJcJfoEr/ZnzVvUNInNjIW22Z6I8p9mg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.8.3.tgz", + "integrity": "sha512-PLMgdMGuVDtRS/SzjNEQYUT8f4z1xb2BAT54vM1X5efkVuYBf5WyGUMbpmARcfq3NaglIwz08UVQK4HHHbC6ag==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.7.4" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-jsx": "^7.8.3" } }, "@babel/plugin-transform-regenerator": { - "version": "7.7.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.5.tgz", - "integrity": "sha512-/8I8tPvX2FkuEyWbjRCt4qTAgZK0DVy8QRguhA524UH48RfGJy94On2ri+dCuwOpcerPRl9O4ebQkRcVzIaGBw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.3.tgz", + "integrity": "sha512-qt/kcur/FxrQrzFR432FGZznkVAjiyFtCOANjkAKwCbt465L6ZCiUQh2oMYGU3Wo8LRFJxNDFwWn106S5wVUNA==", "dev": true, "requires": { "regenerator-transform": "^0.14.0" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.7.4.tgz", - "integrity": "sha512-OrPiUB5s5XvkCO1lS7D8ZtHcswIC57j62acAnJZKqGGnHP+TIc/ljQSrgdX/QyOTdEK5COAhuc820Hi1q2UgLQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz", + "integrity": "sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.7.4.tgz", - "integrity": "sha512-q+suddWRfIcnyG5YiDP58sT65AJDZSUhXQDZE3r04AuqD6d/XLaQPPXSBzP2zGerkgBivqtQm9XKGLuHqBID6Q==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz", + "integrity": "sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-spread": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.7.4.tgz", - "integrity": "sha512-8OSs0FLe5/80cndziPlg4R0K6HcWSM0zyNhHhLsmw/Nc5MaA49cAsnoJ/t/YZf8qkG7fD+UjTRaApVDB526d7Q==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz", + "integrity": "sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.7.4.tgz", - "integrity": "sha512-Ls2NASyL6qtVe1H1hXts9yuEeONV2TJZmplLONkMPUG158CtmnrzW5Q5teibM5UVOFjG0D3IC5mzXR6pPpUY7A==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz", + "integrity": "sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-regex": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-regex": "^7.8.3" } }, "@babel/plugin-transform-template-literals": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.7.4.tgz", - "integrity": "sha512-sA+KxLwF3QwGj5abMHkHgshp9+rRz+oY9uoRil4CyLtgEuE/88dpkeWgNk5qKVsJE9iSfly3nvHapdRiIS2wnQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz", + "integrity": "sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" }, "dependencies": { "@babel/helper-annotate-as-pure": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.4.tgz", - "integrity": "sha512-2BQmQgECKzYKFPpiycoF9tlb5HA4lrVyAmLLVK177EcQAqjVLciUb2/R+n1boQ9y5ENV3uz2ZqiNw7QMBBw1Og==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", + "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", "dev": true, "requires": { - "@babel/types": "^7.7.4" + "@babel/types": "^7.8.3" } }, "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -1157,96 +1227,102 @@ } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.7.4.tgz", - "integrity": "sha512-KQPUQ/7mqe2m0B8VecdyaW5XcQYaePyl9R7IsKd+irzj6jvbhoGnRE+M0aNkyAzI07VfUQ9266L5xMARitV3wg==", + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz", + "integrity": "sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.7.4.tgz", - "integrity": "sha512-N77UUIV+WCvE+5yHw+oks3m18/umd7y392Zv7mYTpFqHtkpcc+QUz+gLJNTWVlWROIWeLqY0f3OjZxV5TcXnRw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz", + "integrity": "sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/preset-env": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.7.7.tgz", - "integrity": "sha512-pCu0hrSSDVI7kCVUOdcMNQEbOPJ52E+LrQ14sN8uL2ALfSqePZQlKrOy+tM4uhEdYlCHi4imr8Zz2cZe9oSdIg==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-async-generator-functions": "^7.7.4", - "@babel/plugin-proposal-dynamic-import": "^7.7.4", - "@babel/plugin-proposal-json-strings": "^7.7.4", - "@babel/plugin-proposal-object-rest-spread": "^7.7.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.7.4", - "@babel/plugin-proposal-unicode-property-regex": "^7.7.7", - "@babel/plugin-syntax-async-generators": "^7.7.4", - "@babel/plugin-syntax-dynamic-import": "^7.7.4", - "@babel/plugin-syntax-json-strings": "^7.7.4", - "@babel/plugin-syntax-object-rest-spread": "^7.7.4", - "@babel/plugin-syntax-optional-catch-binding": "^7.7.4", - "@babel/plugin-syntax-top-level-await": "^7.7.4", - "@babel/plugin-transform-arrow-functions": "^7.7.4", - "@babel/plugin-transform-async-to-generator": "^7.7.4", - "@babel/plugin-transform-block-scoped-functions": "^7.7.4", - "@babel/plugin-transform-block-scoping": "^7.7.4", - "@babel/plugin-transform-classes": "^7.7.4", - "@babel/plugin-transform-computed-properties": "^7.7.4", - "@babel/plugin-transform-destructuring": "^7.7.4", - "@babel/plugin-transform-dotall-regex": "^7.7.7", - "@babel/plugin-transform-duplicate-keys": "^7.7.4", - "@babel/plugin-transform-exponentiation-operator": "^7.7.4", - "@babel/plugin-transform-for-of": "^7.7.4", - "@babel/plugin-transform-function-name": "^7.7.4", - "@babel/plugin-transform-literals": "^7.7.4", - "@babel/plugin-transform-member-expression-literals": "^7.7.4", - "@babel/plugin-transform-modules-amd": "^7.7.5", - "@babel/plugin-transform-modules-commonjs": "^7.7.5", - "@babel/plugin-transform-modules-systemjs": "^7.7.4", - "@babel/plugin-transform-modules-umd": "^7.7.4", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.7.4", - "@babel/plugin-transform-new-target": "^7.7.4", - "@babel/plugin-transform-object-super": "^7.7.4", - "@babel/plugin-transform-parameters": "^7.7.7", - "@babel/plugin-transform-property-literals": "^7.7.4", - "@babel/plugin-transform-regenerator": "^7.7.5", - "@babel/plugin-transform-reserved-words": "^7.7.4", - "@babel/plugin-transform-shorthand-properties": "^7.7.4", - "@babel/plugin-transform-spread": "^7.7.4", - "@babel/plugin-transform-sticky-regex": "^7.7.4", - "@babel/plugin-transform-template-literals": "^7.7.4", - "@babel/plugin-transform-typeof-symbol": "^7.7.4", - "@babel/plugin-transform-unicode-regex": "^7.7.4", - "@babel/types": "^7.7.4", - "browserslist": "^4.6.0", - "core-js-compat": "^3.6.0", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.6.tgz", + "integrity": "sha512-M5u8llV9DIVXBFB/ArIpqJuvXpO+ymxcJ6e8ZAmzeK3sQeBNOD1y+rHvHCGG4TlEmsNpIrdecsHGHT8ZCoOSJg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.8.6", + "@babel/helper-compilation-targets": "^7.8.6", + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-proposal-async-generator-functions": "^7.8.3", + "@babel/plugin-proposal-dynamic-import": "^7.8.3", + "@babel/plugin-proposal-json-strings": "^7.8.3", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-proposal-object-rest-spread": "^7.8.3", + "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", + "@babel/plugin-proposal-optional-chaining": "^7.8.3", + "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.8.3", + "@babel/plugin-transform-arrow-functions": "^7.8.3", + "@babel/plugin-transform-async-to-generator": "^7.8.3", + "@babel/plugin-transform-block-scoped-functions": "^7.8.3", + "@babel/plugin-transform-block-scoping": "^7.8.3", + "@babel/plugin-transform-classes": "^7.8.6", + "@babel/plugin-transform-computed-properties": "^7.8.3", + "@babel/plugin-transform-destructuring": "^7.8.3", + "@babel/plugin-transform-dotall-regex": "^7.8.3", + "@babel/plugin-transform-duplicate-keys": "^7.8.3", + "@babel/plugin-transform-exponentiation-operator": "^7.8.3", + "@babel/plugin-transform-for-of": "^7.8.6", + "@babel/plugin-transform-function-name": "^7.8.3", + "@babel/plugin-transform-literals": "^7.8.3", + "@babel/plugin-transform-member-expression-literals": "^7.8.3", + "@babel/plugin-transform-modules-amd": "^7.8.3", + "@babel/plugin-transform-modules-commonjs": "^7.8.3", + "@babel/plugin-transform-modules-systemjs": "^7.8.3", + "@babel/plugin-transform-modules-umd": "^7.8.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", + "@babel/plugin-transform-new-target": "^7.8.3", + "@babel/plugin-transform-object-super": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.8.4", + "@babel/plugin-transform-property-literals": "^7.8.3", + "@babel/plugin-transform-regenerator": "^7.8.3", + "@babel/plugin-transform-reserved-words": "^7.8.3", + "@babel/plugin-transform-shorthand-properties": "^7.8.3", + "@babel/plugin-transform-spread": "^7.8.3", + "@babel/plugin-transform-sticky-regex": "^7.8.3", + "@babel/plugin-transform-template-literals": "^7.8.3", + "@babel/plugin-transform-typeof-symbol": "^7.8.4", + "@babel/plugin-transform-unicode-regex": "^7.8.3", + "@babel/types": "^7.8.6", + "browserslist": "^4.8.5", + "core-js-compat": "^3.6.2", "invariant": "^2.2.2", - "js-levenshtein": "^1.1.3", + "levenary": "^1.1.1", "semver": "^5.5.0" }, "dependencies": { "@babel/helper-module-imports": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.7.4.tgz", - "integrity": "sha512-dGcrX6K9l8258WFjyDLJwuVKxR4XZfU0/vTUgOQYWEnRD8mgr+p4d6fCUMq/ys0h4CCt/S5JhbvtyErjWouAUQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", + "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", "dev": true, "requires": { - "@babel/types": "^7.7.4" + "@babel/types": "^7.8.3" } }, "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -1257,16 +1333,16 @@ } }, "@babel/preset-react": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.7.4.tgz", - "integrity": "sha512-j+vZtg0/8pQr1H8wKoaJyGL2IEk3rG/GIvua7Sec7meXVIvGycihlGMx5xcU00kqCJbwzHs18xTu3YfREOqQ+g==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.8.3.tgz", + "integrity": "sha512-9hx0CwZg92jGb7iHYQVgi0tOEHP/kM60CtWJQnmbATSPIQQ2xYzfoCI3EdqAhFBeeJwYMdWQuDUHMsuDbH9hyQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-transform-react-display-name": "^7.7.4", - "@babel/plugin-transform-react-jsx": "^7.7.4", - "@babel/plugin-transform-react-jsx-self": "^7.7.4", - "@babel/plugin-transform-react-jsx-source": "^7.7.4" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-transform-react-display-name": "^7.8.3", + "@babel/plugin-transform-react-jsx": "^7.8.3", + "@babel/plugin-transform-react-jsx-self": "^7.8.3", + "@babel/plugin-transform-react-jsx-source": "^7.8.3" } }, "@babel/runtime": { @@ -1285,20 +1361,20 @@ } }, "@babel/template": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", - "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -1309,26 +1385,26 @@ } }, "@babel/traverse": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.4.tgz", - "integrity": "sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.6.tgz", + "integrity": "sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A==", "dev": true, "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.4", - "@babel/helper-function-name": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4", + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.6", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -2246,14 +2322,14 @@ } }, "browserslist": { - "version": "4.8.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.2.tgz", - "integrity": "sha512-+M4oeaTplPm/f1pXDw84YohEv7B1i/2Aisei8s4s6k3QsoSHa7i5sz8u/cGQkkatCPxMASKxPualR4wwYgVboA==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.9.0.tgz", + "integrity": "sha512-seffIXhwgB84+OCeT/aMjpZnsAsYDiMSC+CEs3UkF8iU64BZGYcu+TZYs/IBpo4nRi0vJywUJWYdbTsOhFTweg==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001015", - "electron-to-chromium": "^1.3.322", - "node-releases": "^1.1.42" + "caniuse-lite": "^1.0.30001030", + "electron-to-chromium": "^1.3.361", + "node-releases": "^1.1.50" } }, "buffer": { @@ -2344,9 +2420,9 @@ "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=" }, "caniuse-lite": { - "version": "1.0.30001016", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001016.tgz", - "integrity": "sha512-yYQ2QfotceRiH4U+h1Us86WJXtVHDmy3nEKIdYPsZCYnOV5/tMgGbmoIlrMzmh2VXlproqYtVaKeGDBkMZifFA==", + "version": "1.0.30001030", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001030.tgz", + "integrity": "sha512-QGK0W4Ft/Ac+zTjEiRJfwDNATvS3fodDczBXrH42784kcfqcDKpEPfN08N0HQjrAp8He/Jw8QiSS9QRn7XAbUw==", "dev": true }, "chalk": { @@ -2557,12 +2633,12 @@ "dev": true }, "core-js-compat": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.0.tgz", - "integrity": "sha512-Z3eCNjGgoYluH89Jt4wVkfYsc/VdLrA2/woX5lm0isO/pCT+P+Y+o65bOuEnjDJLthdwTBxbCVzptTXtc18fJg==", + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.4.tgz", + "integrity": "sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA==", "dev": true, "requires": { - "browserslist": "^4.8.2", + "browserslist": "^4.8.3", "semver": "7.0.0" }, "dependencies": { @@ -2890,9 +2966,9 @@ } }, "electron-to-chromium": { - "version": "1.3.322", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.322.tgz", - "integrity": "sha512-Tc8JQEfGQ1MzfSzI/bTlSr7btJv/FFO7Yh6tanqVmIWOuNCu6/D1MilIEgLtmWqIrsv+o4IjpLAhgMBr/ncNAA==", + "version": "1.3.362", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.362.tgz", + "integrity": "sha512-xdU5VCoZyMPMOWtCaMgbr48OwWZHrMLbGnAOlEqibXiIGsb4kiCGWEHK5NOghcVLdBVIbr/BW+yuKxVuGTtzEg==", "dev": true }, "elliptic": { @@ -4000,6 +4076,12 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, + "gensync": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", + "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", + "dev": true + }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -4579,12 +4661,6 @@ "whatwg-fetch": ">=0.10.0" } }, - "js-levenshtein": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", - "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", - "dev": true - }, "js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", @@ -4741,6 +4817,21 @@ "invert-kv": "^2.0.0" } }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "levenary": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", + "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", + "dev": true, + "requires": { + "leven": "^3.1.0" + } + }, "loader-runner": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", @@ -5163,9 +5254,9 @@ } }, "node-releases": { - "version": "1.1.43", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.43.tgz", - "integrity": "sha512-Rmfnj52WNhvr83MvuAWHEqXVoZXCcDQssSOffU4n4XOL9sPrP61mSZ88g25NqmABDvH7PiAlFCzoSCSdzA293w==", + "version": "1.1.50", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.50.tgz", + "integrity": "sha512-lgAmPv9eYZ0bGwUYAKlr8MG6K4CvWliWqnkcT2P8mMAgVrH3lqfBPorFlxiG1pHQnqmavJZ9vbMXUTNyMLbrgQ==", "dev": true, "requires": { "semver": "^6.3.0" @@ -6099,9 +6190,9 @@ "dev": true }, "regjsparser": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.1.tgz", - "integrity": "sha512-7LutE94sz/NKSYegK+/4E77+8DipxF+Qn2Tmu362AcmsF2NYq/wx3+ObvU90TKEhjf7hQoFXo23ajjrXP7eUgg==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.3.tgz", + "integrity": "sha512-8uZvYbnfAtEm9Ab8NTb3hdLwL4g/LQzEYP7Xs27T96abJCCE2d6r3cPZPQEsLKy0vRSGVNG+/zVGtLr86HQduA==", "dev": true, "requires": { "jsesc": "~0.5.0" diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index 75633fd50..e9855432c 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -20,12 +20,12 @@ "styled-components": "^4.0.0" }, "devDependencies": { - "@babel/core": "7.7.7", - "@babel/plugin-proposal-class-properties": "7.7.4", - "@babel/plugin-proposal-object-rest-spread": "7.7.7", - "@babel/plugin-syntax-dynamic-import": "7.7.4", - "@babel/preset-env": "7.7.7", - "@babel/preset-react": "7.7.4", + "@babel/core": "7.8.6", + "@babel/plugin-proposal-class-properties": "7.8.3", + "@babel/plugin-proposal-object-rest-spread": "7.8.3", + "@babel/plugin-syntax-dynamic-import": "7.8.3", + "@babel/preset-env": "7.8.6", + "@babel/preset-react": "7.8.3", "babel-loader": "8.0.6", "babel-runtime": "6.26.0", "webpack": "4.41.6", From 72a2dee6dd956c9cb6423769c6708cc0f192b876 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 1 Mar 2020 15:37:09 -0800 Subject: [PATCH 059/187] Fix template validation during build (#1052) --- build.proj | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/build.proj b/build.proj index bb76cb4c2..461dd89c8 100644 --- a/build.proj +++ b/build.proj @@ -118,14 +118,15 @@ of patent rights can be found in the PATENTS file in the same directory. /> - + + - + - + - + @@ -137,6 +138,11 @@ of patent rights can be found in the PATENTS file in the same directory. /> + + + + + From f205e0c57f619ad14482f9a0c6a11eaf2a1fe3ae Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 1 Mar 2020 16:09:14 -0800 Subject: [PATCH 060/187] Move Webpack sample into installable template (#1050) * Move Webpack sample into installable template * Update webpack sample: Run webpack automatically during build * Remove webpack sample from solution * Add template manifest to webpack sample * Update markdown links * Add template to webpack docs * Add webpack template to build * Clarification edit to webpack docs * Add reactnet-webpack to template bundle --- build.proj | 12 +++--- .../jekyll/_posts/2019-03-14-4.1.1-release.md | 2 +- site/jekyll/bundling/webpack.md | 22 ++++++++--- site/jekyll/features/css-in-js.md | 8 ++-- site/jekyll/features/es6.md | 2 +- site/jekyll/features/react-helmet.md | 2 +- site/jekyll/features/react-router.md | 2 +- site/jekyll/features/server-side-rendering.md | 2 +- site/jekyll/getting-started/aspnetcore.md | 4 +- site/jekyll/getting-started/chakracore.md | 2 +- src/React.Sample.Webpack.CoreMvc/README.md | 1 + src/React.Template/React.Template.csproj | 3 +- .../reactnet-webpack}/.babelrc | 0 .../.template.config/template.json | 13 +++++++ .../Content/components/comments/Sample.jsx | 0 .../Content/components/emotion.jsx | 0 .../Content/components/expose-components.js | 0 .../Content/components/home.jsx | 0 .../Content/components/lazy-load.jsx | 0 .../Content/components/react-jss.jsx | 0 .../Content/components/styled-components.jsx | 0 .../Controllers/HomeController.cs | 0 .../reactnet-webpack}/Program.cs | 0 .../Properties/launchSettings.json | 0 .../reactnet-webpack/SampleApp.csproj} | 12 +++--- .../reactnet-webpack}/Startup.cs | 0 .../reactnet-webpack}/Views/Home/Index.cshtml | 0 .../Views/Shared/_Layout.cshtml | 0 .../appsettings.Development.json | 0 .../reactnet-webpack}/appsettings.json | 0 .../reactnet-webpack}/package-lock.json | 39 +++++++++++++++++-- .../reactnet-webpack}/package.json | 3 +- .../reactnet-webpack}/webpack.config.js | 0 .../reactnet-webpack}/wwwroot/Sample.css | 0 src/React.sln | 7 ---- 35 files changed, 95 insertions(+), 41 deletions(-) create mode 100644 src/React.Sample.Webpack.CoreMvc/README.md rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/.babelrc (100%) create mode 100644 src/React.Template/reactnet-webpack/.template.config/template.json rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/Content/components/comments/Sample.jsx (100%) rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/Content/components/emotion.jsx (100%) rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/Content/components/expose-components.js (100%) rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/Content/components/home.jsx (100%) rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/Content/components/lazy-load.jsx (100%) rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/Content/components/react-jss.jsx (100%) rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/Content/components/styled-components.jsx (100%) rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/Controllers/HomeController.cs (100%) rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/Program.cs (100%) rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/Properties/launchSettings.json (100%) rename src/{React.Sample.Webpack.CoreMvc/React.Sample.Webpack.CoreMvc.csproj => React.Template/reactnet-webpack/SampleApp.csproj} (73%) rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/Startup.cs (100%) rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/Views/Home/Index.cshtml (100%) rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/Views/Shared/_Layout.cshtml (100%) rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/appsettings.Development.json (100%) rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/appsettings.json (100%) rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/package-lock.json (99%) rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/package.json (92%) rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/webpack.config.js (100%) rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/wwwroot/Sample.css (100%) diff --git a/build.proj b/build.proj index 461dd89c8..0ca20aee4 100644 --- a/build.proj +++ b/build.proj @@ -61,10 +61,6 @@ of patent rights can be found in the PATENTS file in the same directory. WorkingDirectory="src/React.Sample.Mvc4" Command="npm install" /> - @@ -104,7 +100,6 @@ of patent rights can be found in the PATENTS file in the same directory. - @@ -123,6 +118,13 @@ of patent rights can be found in the PATENTS file in the same directory. + + + + + + + diff --git a/site/jekyll/_posts/2019-03-14-4.1.1-release.md b/site/jekyll/_posts/2019-03-14-4.1.1-release.md index e46c4de05..34167d1b4 100644 --- a/site/jekyll/_posts/2019-03-14-4.1.1-release.md +++ b/site/jekyll/_posts/2019-03-14-4.1.1-release.md @@ -8,7 +8,7 @@ We're pleased to announce that ReactJS.NET 4.1.1 is now available for download. - Updated bundled version of React to 16.8.4, which brings support for hooks - Updated babel to 6.26.3. We're working on enabling opt-in support for Babel 7 as well, but if you need this today, please use the webpack integration. -- Updated the [ASP.NET](https://github.com/reactjs/React.NET/tree/master/src/React.Web.Mvc4) and [.NET Core](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Webpack.CoreMvc) samples to demonstrate integrating third party libraries, such as Reactstrap. +- Updated the [ASP.NET](https://github.com/reactjs/React.NET/tree/master/src/React.Web.Mvc4) and [.NET Core](https://github.com/reactjs/React.NET/tree/master/src/React.Template/reactnet-webpack) samples to demonstrate integrating third party libraries, such as Reactstrap. We'd like to hear from you! If there are things you'd like to see added, please send feedback via [Github Issues](https://github.com/reactjs/React.NET/issues). We're a limited team and may not be able to implement what you'd like to see, but still want to hear how this project is being used and where it could be improved. diff --git a/site/jekyll/bundling/webpack.md b/site/jekyll/bundling/webpack.md index 34e439589..83771deae 100644 --- a/site/jekyll/bundling/webpack.md +++ b/site/jekyll/bundling/webpack.md @@ -3,17 +3,27 @@ layout: docs title: Webpack --- -#### 👀 Just want to see the code? Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Webpack.CoreMvc). +#### 👀 Just want to see the code? Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Template/reactnet-webpack). + +## For new projects: + +``` +dotnet new -i React.Template +dotnet new reactnet-webpack +dotnet run +``` + +## For existing projects: [Webpack](https://webpack.js.org/) is a popular module bundling system built on top of Node.js. It can handle not only combination and minification of JavaScript and CSS files, but also other assets such as image files (spriting) through the use of plugins. Webpack is the recommended bundling solution and should be preferred over Cassette or ASP.NET Bundling. Your project will bundle its own copy of react and react-dom with webpack, and ReactJS.NET will be used only for server-side rendering. -For new projects, copy from the sample project to the root of your project: +Copy from the sample project to the root of your project: -- [package.json](https://github.com/reactjs/React.NET/blob/master/src/React.Sample.Webpack.CoreMvc/package.json), which includes everything you need to bundle with webpack -- [webpack.config.js](https://github.com/reactjs/React.NET/blob/master/src/React.Sample.Webpack.CoreMvc/webpack.config.js), which contains the configuration needed for webpack to create the bundles -- [.babelrc](https://github.com/reactjs/React.NET/blob/master/src/React.Sample.Webpack.CoreMvc/.babelrc), which contains the Babel settings needed to compile JSX files +- [package.json](https://github.com/reactjs/React.NET/blob/master/src/React.Template/reactnet-webpack/package.json), which includes everything you need to bundle with webpack +- [webpack.config.js](https://github.com/reactjs/React.NET/blob/master/src/React.Template/reactnet-webpack/webpack.config.js), which contains the configuration needed for webpack to create the bundles +- [.babelrc](https://github.com/reactjs/React.NET/blob/master/src/React.Template/reactnet-webpack/.babelrc), which contains the Babel settings needed to compile JSX files Run `npm install` to start the package restore process. @@ -85,7 +95,7 @@ Reference the built bundle directly in a script tag at the end of the page in `_ ``` -A full example is available in [the ReactJS.NET repository](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Webpack.CoreMvc). +A full example is available in [the ReactJS.NET repository](https://github.com/reactjs/React.NET/tree/master/src/React.Template/reactnet-webpack). ### 💡 Beta feature: Asset manifest handling diff --git a/site/jekyll/features/css-in-js.md b/site/jekyll/features/css-in-js.md index 54605080f..d6501c94d 100644 --- a/site/jekyll/features/css-in-js.md +++ b/site/jekyll/features/css-in-js.md @@ -3,7 +3,7 @@ layout: docs title: CSS-in-JS --- -Just want to see the code? Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Webpack.CoreMvc). +Just want to see the code? Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Template/reactnet-webpack). CSS-in-JS is a technique for declaring styles within components. ReactJS.NET supports server-rendered stylesheets for several libraries (pull requests welcome to add support for more!). Your project must be using a Javascript bundler such as webpack already. @@ -13,7 +13,7 @@ If you're using more than one CSS-in-JS library in your project, we've got you c ### [Styled Components](https://github.com/styled-components/styled-components) -#### ⚠️ This may break when styled-components publishes a major update, please look at the [webpack sample](https://github.com/reactjs/React.NET/blob/master/src/React.Sample.Webpack.CoreMvc/package.json) for the currently known compatible version. +#### ⚠️ This may break when styled-components publishes a major update, please look at the [webpack sample](https://github.com/reactjs/React.NET/blob/master/src/React.Template/reactnet-webpack/package.json) for the currently known compatible version. Expose styled-components in your server bundle: @@ -93,7 +93,7 @@ export function StyledComponentsDemo() { ### [React-JSS](https://github.com/cssinjs/react-jss) -#### ⚠️ This may break when react-jss publishes a major update, please look at the [webpack sample](https://github.com/reactjs/React.NET/blob/master/src/React.Sample.Webpack.CoreMvc/package.json) for the currently known compatible version. +#### ⚠️ This may break when react-jss publishes a major update, please look at the [webpack sample](https://github.com/reactjs/React.NET/blob/master/src/React.Template/reactnet-webpack/package.json) for the currently known compatible version. Expose react-jss in your server bundle: @@ -183,7 +183,7 @@ export class ReactJssDemo extends React.Component { ### Emotion -#### ⚠️ This may break when emotion publishes a major update, please look at the [webpack sample](https://github.com/reactjs/React.NET/blob/master/src/React.Sample.Webpack.CoreMvc/package.json) for the currently known compatible version. +#### ⚠️ This may break when emotion publishes a major update, please look at the [webpack sample](https://github.com/reactjs/React.NET/blob/master/src/React.Template/reactnet-webpack/package.json) for the currently known compatible version. Emotion's integration with ReactJS.NET only supports rendering inline styles (instead of rendering them in the document head). diff --git a/site/jekyll/features/es6.md b/site/jekyll/features/es6.md index e9ffa73e9..c18c4a660 100644 --- a/site/jekyll/features/es6.md +++ b/site/jekyll/features/es6.md @@ -3,7 +3,7 @@ layout: docs title: Babel compilation (ES6+) --- -Just want to see the code? Check out the [webpack](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Webpack.CoreMvc) and [on-the-fly JSX compliation](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Mvc4) sample projects. +Just want to see the code? Check out the [webpack](https://github.com/reactjs/React.NET/tree/master/src/React.Template/reactnet-webpack) and [on-the-fly JSX compliation](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Mvc4) sample projects. ReactJS.NET supports the use of ES6+ features, thanks to [Babel](http://babeljs.io/). These features include: diff --git a/site/jekyll/features/react-helmet.md b/site/jekyll/features/react-helmet.md index d7aab1a62..2250e478d 100644 --- a/site/jekyll/features/react-helmet.md +++ b/site/jekyll/features/react-helmet.md @@ -3,7 +3,7 @@ layout: docs title: React Helmet --- -Just want to see the code? Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Webpack.CoreMvc). +Just want to see the code? Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Template/reactnet-webpack). React Helmet is a library that allows setting elements inside the `` tag from anywhere in the render tree. diff --git a/site/jekyll/features/react-router.md b/site/jekyll/features/react-router.md index 64d172cf9..d6eeb05d7 100644 --- a/site/jekyll/features/react-router.md +++ b/site/jekyll/features/react-router.md @@ -3,7 +3,7 @@ layout: docs title: React Router --- -Just want to see the code? Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Webpack.CoreMvc). +Just want to see the code? Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Template/reactnet-webpack). [React Router](https://github.com/ReactTraining/react-router) is a Javascript routing library. By using the `React.Router` package, you can add server-side route resolution by deferring to React Router. diff --git a/site/jekyll/features/server-side-rendering.md b/site/jekyll/features/server-side-rendering.md index 7b94e4489..eea3fe797 100644 --- a/site/jekyll/features/server-side-rendering.md +++ b/site/jekyll/features/server-side-rendering.md @@ -3,7 +3,7 @@ layout: docs title: Server-Side Rendering --- -Just want to see the code? Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Webpack.CoreMvc). +Just want to see the code? Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Template/reactnet-webpack). Server-side rendering allows you to pre-render the initial state of your React components server-side. This speeds up initial page loads as users do not need diff --git a/site/jekyll/getting-started/aspnetcore.md b/site/jekyll/getting-started/aspnetcore.md index 782d7c409..699ae02a2 100644 --- a/site/jekyll/getting-started/aspnetcore.md +++ b/site/jekyll/getting-started/aspnetcore.md @@ -4,7 +4,7 @@ layout: docs title: Getting Started (ASP.NET Core) --- -#### 👀 Just want to see the code? Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Webpack.CoreMvc). +#### 👀 Just want to see the code? Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Template/reactnet-webpack). ## For new projects: @@ -100,4 +100,4 @@ You're done! You can now call `Html.React` from within Razor files: If you need support for non-Windows platforms, please see the [Linux/macOS guide](/getting-started/chakracore.html) -Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Webpack.CoreMvc) for a working demo. +Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Template/reactnet-webpack) for a working demo. diff --git a/site/jekyll/getting-started/chakracore.md b/site/jekyll/getting-started/chakracore.md index 2eb66d642..585d38c0e 100644 --- a/site/jekyll/getting-started/chakracore.md +++ b/site/jekyll/getting-started/chakracore.md @@ -5,7 +5,7 @@ title: macOS/Linux ReactJS.NET supports running on non-Windows platforms via both Mono and .NET Core. This guide focuses on Linux / macOS support via the ChakraCore engine and .NET Core, which uses precompiled binaries. To use the full .NET Framework with Mono, please see the [Mono guide](/guides/mono.html). -Add `React.AspNet` as a dependency to your .NET Core project. Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Webpack.CoreMvc) or the [documentation](https://reactjs.net/getting-started/aspnetcore.html) if you need more details on that. +Add `React.AspNet` as a dependency to your .NET Core project. Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Template/reactnet-webpack) or the [documentation](https://reactjs.net/getting-started/aspnetcore.html) if you need more details on that. Next, install the `JavascriptEngineSwitcher.ChakraCore` and `JavaScriptEngineSwitcher.Extensions.MsDependencyInjection` NuGet packages. Depending on the platform(s) you want to support, also install one or more of these NuGet packages: diff --git a/src/React.Sample.Webpack.CoreMvc/README.md b/src/React.Sample.Webpack.CoreMvc/README.md new file mode 100644 index 000000000..159929543 --- /dev/null +++ b/src/React.Sample.Webpack.CoreMvc/README.md @@ -0,0 +1 @@ +The sample has been moved to .NET Core templates [here](../React.Template) \ No newline at end of file diff --git a/src/React.Template/React.Template.csproj b/src/React.Template/React.Template.csproj index c2bcf1831..6ec90c40c 100644 --- a/src/React.Template/React.Template.csproj +++ b/src/React.Template/React.Template.csproj @@ -19,7 +19,8 @@ + - \ No newline at end of file + diff --git a/src/React.Sample.Webpack.CoreMvc/.babelrc b/src/React.Template/reactnet-webpack/.babelrc similarity index 100% rename from src/React.Sample.Webpack.CoreMvc/.babelrc rename to src/React.Template/reactnet-webpack/.babelrc diff --git a/src/React.Template/reactnet-webpack/.template.config/template.json b/src/React.Template/reactnet-webpack/.template.config/template.json new file mode 100644 index 000000000..2eb228838 --- /dev/null +++ b/src/React.Template/reactnet-webpack/.template.config/template.json @@ -0,0 +1,13 @@ +{ + "author": "ReactJS.NET contributors", + "classifications": [ + "Web" + ], + "name": "React.NET Webpack Starter Template", + "identity": "React.Template.NetCore.Webpack", + "shortName": "reactnet-webpack", + "tags": { + "language": "C#" + }, + "preferNameDirectory": "true" +} diff --git a/src/React.Sample.Webpack.CoreMvc/Content/components/comments/Sample.jsx b/src/React.Template/reactnet-webpack/Content/components/comments/Sample.jsx similarity index 100% rename from src/React.Sample.Webpack.CoreMvc/Content/components/comments/Sample.jsx rename to src/React.Template/reactnet-webpack/Content/components/comments/Sample.jsx diff --git a/src/React.Sample.Webpack.CoreMvc/Content/components/emotion.jsx b/src/React.Template/reactnet-webpack/Content/components/emotion.jsx similarity index 100% rename from src/React.Sample.Webpack.CoreMvc/Content/components/emotion.jsx rename to src/React.Template/reactnet-webpack/Content/components/emotion.jsx diff --git a/src/React.Sample.Webpack.CoreMvc/Content/components/expose-components.js b/src/React.Template/reactnet-webpack/Content/components/expose-components.js similarity index 100% rename from src/React.Sample.Webpack.CoreMvc/Content/components/expose-components.js rename to src/React.Template/reactnet-webpack/Content/components/expose-components.js diff --git a/src/React.Sample.Webpack.CoreMvc/Content/components/home.jsx b/src/React.Template/reactnet-webpack/Content/components/home.jsx similarity index 100% rename from src/React.Sample.Webpack.CoreMvc/Content/components/home.jsx rename to src/React.Template/reactnet-webpack/Content/components/home.jsx diff --git a/src/React.Sample.Webpack.CoreMvc/Content/components/lazy-load.jsx b/src/React.Template/reactnet-webpack/Content/components/lazy-load.jsx similarity index 100% rename from src/React.Sample.Webpack.CoreMvc/Content/components/lazy-load.jsx rename to src/React.Template/reactnet-webpack/Content/components/lazy-load.jsx diff --git a/src/React.Sample.Webpack.CoreMvc/Content/components/react-jss.jsx b/src/React.Template/reactnet-webpack/Content/components/react-jss.jsx similarity index 100% rename from src/React.Sample.Webpack.CoreMvc/Content/components/react-jss.jsx rename to src/React.Template/reactnet-webpack/Content/components/react-jss.jsx diff --git a/src/React.Sample.Webpack.CoreMvc/Content/components/styled-components.jsx b/src/React.Template/reactnet-webpack/Content/components/styled-components.jsx similarity index 100% rename from src/React.Sample.Webpack.CoreMvc/Content/components/styled-components.jsx rename to src/React.Template/reactnet-webpack/Content/components/styled-components.jsx diff --git a/src/React.Sample.Webpack.CoreMvc/Controllers/HomeController.cs b/src/React.Template/reactnet-webpack/Controllers/HomeController.cs similarity index 100% rename from src/React.Sample.Webpack.CoreMvc/Controllers/HomeController.cs rename to src/React.Template/reactnet-webpack/Controllers/HomeController.cs diff --git a/src/React.Sample.Webpack.CoreMvc/Program.cs b/src/React.Template/reactnet-webpack/Program.cs similarity index 100% rename from src/React.Sample.Webpack.CoreMvc/Program.cs rename to src/React.Template/reactnet-webpack/Program.cs diff --git a/src/React.Sample.Webpack.CoreMvc/Properties/launchSettings.json b/src/React.Template/reactnet-webpack/Properties/launchSettings.json similarity index 100% rename from src/React.Sample.Webpack.CoreMvc/Properties/launchSettings.json rename to src/React.Template/reactnet-webpack/Properties/launchSettings.json diff --git a/src/React.Sample.Webpack.CoreMvc/React.Sample.Webpack.CoreMvc.csproj b/src/React.Template/reactnet-webpack/SampleApp.csproj similarity index 73% rename from src/React.Sample.Webpack.CoreMvc/React.Sample.Webpack.CoreMvc.csproj rename to src/React.Template/reactnet-webpack/SampleApp.csproj index 08b52be7a..cb56e1e85 100644 --- a/src/React.Sample.Webpack.CoreMvc/React.Sample.Webpack.CoreMvc.csproj +++ b/src/React.Template/reactnet-webpack/SampleApp.csproj @@ -14,11 +14,11 @@ + + - - - - - - + + + + diff --git a/src/React.Sample.Webpack.CoreMvc/Startup.cs b/src/React.Template/reactnet-webpack/Startup.cs similarity index 100% rename from src/React.Sample.Webpack.CoreMvc/Startup.cs rename to src/React.Template/reactnet-webpack/Startup.cs diff --git a/src/React.Sample.Webpack.CoreMvc/Views/Home/Index.cshtml b/src/React.Template/reactnet-webpack/Views/Home/Index.cshtml similarity index 100% rename from src/React.Sample.Webpack.CoreMvc/Views/Home/Index.cshtml rename to src/React.Template/reactnet-webpack/Views/Home/Index.cshtml diff --git a/src/React.Sample.Webpack.CoreMvc/Views/Shared/_Layout.cshtml b/src/React.Template/reactnet-webpack/Views/Shared/_Layout.cshtml similarity index 100% rename from src/React.Sample.Webpack.CoreMvc/Views/Shared/_Layout.cshtml rename to src/React.Template/reactnet-webpack/Views/Shared/_Layout.cshtml diff --git a/src/React.Sample.Webpack.CoreMvc/appsettings.Development.json b/src/React.Template/reactnet-webpack/appsettings.Development.json similarity index 100% rename from src/React.Sample.Webpack.CoreMvc/appsettings.Development.json rename to src/React.Template/reactnet-webpack/appsettings.Development.json diff --git a/src/React.Sample.Webpack.CoreMvc/appsettings.json b/src/React.Template/reactnet-webpack/appsettings.json similarity index 100% rename from src/React.Sample.Webpack.CoreMvc/appsettings.json rename to src/React.Template/reactnet-webpack/appsettings.json diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Template/reactnet-webpack/package-lock.json similarity index 99% rename from src/React.Sample.Webpack.CoreMvc/package-lock.json rename to src/React.Template/reactnet-webpack/package-lock.json index a7d592bb0..3d7d2b9fa 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Template/reactnet-webpack/package-lock.json @@ -2389,6 +2389,17 @@ "ssri": "^6.0.1", "unique-filename": "^1.1.1", "y18n": "^4.0.0" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, "cache-base": { @@ -2618,6 +2629,17 @@ "mkdirp": "^0.5.1", "rimraf": "^2.5.4", "run-queue": "^1.0.0" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, "copy-descriptor": { @@ -5150,6 +5172,17 @@ "mkdirp": "^0.5.1", "rimraf": "^2.5.4", "run-queue": "^1.0.3" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, "ms": { @@ -6300,9 +6333,9 @@ "dev": true }, "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { "glob": "^7.1.3" diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Template/reactnet-webpack/package.json similarity index 92% rename from src/React.Sample.Webpack.CoreMvc/package.json rename to src/React.Template/reactnet-webpack/package.json index e9855432c..9cffc93bb 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Template/reactnet-webpack/package.json @@ -4,7 +4,7 @@ "main": "index.js", "license": "MIT", "scripts": { - "build": "webpack" + "build": "rimraf wwwroot/dist && webpack" }, "dependencies": { "emotion": "^9.2.12", @@ -28,6 +28,7 @@ "@babel/preset-react": "7.8.3", "babel-loader": "8.0.6", "babel-runtime": "6.26.0", + "rimraf": "^3.0.2", "webpack": "4.41.6", "webpack-cli": "3.3.11", "webpack-manifest-plugin": "2.2.0" diff --git a/src/React.Sample.Webpack.CoreMvc/webpack.config.js b/src/React.Template/reactnet-webpack/webpack.config.js similarity index 100% rename from src/React.Sample.Webpack.CoreMvc/webpack.config.js rename to src/React.Template/reactnet-webpack/webpack.config.js diff --git a/src/React.Sample.Webpack.CoreMvc/wwwroot/Sample.css b/src/React.Template/reactnet-webpack/wwwroot/Sample.css similarity index 100% rename from src/React.Sample.Webpack.CoreMvc/wwwroot/Sample.css rename to src/React.Template/reactnet-webpack/wwwroot/Sample.css diff --git a/src/React.sln b/src/React.sln index b81edab0c..594916e8e 100644 --- a/src/React.sln +++ b/src/React.sln @@ -62,8 +62,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "React.AspNet.Middleware", " EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "React.Router.Mvc4", "React.Router.Mvc4\React.Router.Mvc4.csproj", "{2170D912-86E9-4CE3-8DA4-E1DE8D958E63}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "React.Sample.Webpack.CoreMvc", "React.Sample.Webpack.CoreMvc\React.Sample.Webpack.CoreMvc.csproj", "{5BFA69C8-2E66-4112-AC30-CE31503F4175}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "React.Tests.Benchmarks", "..\tests\React.Tests.Benchmarks\React.Tests.Benchmarks.csproj", "{083462CB-2FC0-4508-A7ED-4B77B44C3E23}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "React.Tests.Integration", "..\tests\React.Tests.Integration\React.Tests.Integration.csproj", "{5EBC5EA6-7234-40E0-A07B-75D01385FAD2}" @@ -142,10 +140,6 @@ Global {2170D912-86E9-4CE3-8DA4-E1DE8D958E63}.Debug|Any CPU.Build.0 = Debug|Any CPU {2170D912-86E9-4CE3-8DA4-E1DE8D958E63}.Release|Any CPU.ActiveCfg = Release|Any CPU {2170D912-86E9-4CE3-8DA4-E1DE8D958E63}.Release|Any CPU.Build.0 = Release|Any CPU - {5BFA69C8-2E66-4112-AC30-CE31503F4175}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5BFA69C8-2E66-4112-AC30-CE31503F4175}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5BFA69C8-2E66-4112-AC30-CE31503F4175}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5BFA69C8-2E66-4112-AC30-CE31503F4175}.Release|Any CPU.Build.0 = Release|Any CPU {083462CB-2FC0-4508-A7ED-4B77B44C3E23}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {083462CB-2FC0-4508-A7ED-4B77B44C3E23}.Debug|Any CPU.Build.0 = Debug|Any CPU {083462CB-2FC0-4508-A7ED-4B77B44C3E23}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -183,7 +177,6 @@ Global {D076273B-C5EA-47C7-923D-523E4C5EE30D} = {681C45FB-103C-48BC-B992-20C5B6B78F92} {7E1C3999-1982-476D-9307-12B30737B41E} = {681C45FB-103C-48BC-B992-20C5B6B78F92} {2170D912-86E9-4CE3-8DA4-E1DE8D958E63} = {681C45FB-103C-48BC-B992-20C5B6B78F92} - {5BFA69C8-2E66-4112-AC30-CE31503F4175} = {A51CE5B6-294F-4D39-B32B-BF08DAF9B40B} {083462CB-2FC0-4508-A7ED-4B77B44C3E23} = {F567B25C-E869-4C93-9C96-077761250F87} {5EBC5EA6-7234-40E0-A07B-75D01385FAD2} = {F567B25C-E869-4C93-9C96-077761250F87} {29F7122F-ECBB-4EBE-A2BB-3A00CED73C19} = {F567B25C-E869-4C93-9C96-077761250F87} From b36c2022fda324d47170778d8269795d944c5a2c Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 1 Mar 2020 15:17:14 -0800 Subject: [PATCH 061/187] Reference starter template in readme --- README.md | 54 ++++++------------------------------------------------ 1 file changed, 6 insertions(+), 48 deletions(-) diff --git a/README.md b/README.md index 46f7b1b7b..d6c692ace 100644 --- a/README.md +++ b/README.md @@ -27,58 +27,16 @@ ReactJS.NET is a library that makes it easier to use [Babel](http://babeljs.io/) # Quick Start -Install the package - -```powershell -Install-Package React.Web.Mvc4 # For ASP.NET MVC 4 or 5 -Install-Package React.AspNet   # For ASP.NET Core MVC -``` - -Install a Javascript engine and configure as the default (more info [here](https://reactjs.net/getting-started/aspnet.html) on how this works) - -```powershell -Install-Package JavaScriptEngineSwitcher.V8 -Install-Package JavaScriptEngineSwitcher.V8.Native.win-x64 -``` - -```csharp -public static class ReactConfig -{ - public static void Configure() - { - ReactSiteConfiguration.Configuration - .AddScript("~/Content/HelloWorld.jsx"); - - JsEngineSwitcher.Current.DefaultEngineName = V8JsEngine.EngineName; - JsEngineSwitcher.Current.EngineFactories.AddV8(); - } -} ``` - -Create JSX files - -```javascript -// /Scripts/HelloWorld.jsx -const HelloWorld = props => { - return
Hello {props.greeting}
; -}; -``` - -Reference the JSX files from your HTML - -```html - -@Html.React("HelloWorld", new { Greeting = "friends!" }); - - - -@Html.ReactInitJavaScript(); +dotnet new -i React.Template +dotnet new reactnet-vanilla +dotnet run ``` -Now you can use the `HelloWorld` component. +See also: -For information on more advanced topics (including precompilation and -server-side rendering), check out [the documentation](http://reactjs.net/docs) +- [Getting Started](https://reactjs.net/getting-started/aspnetcore.html) +- [Tutorial](https://reactjs.net/tutorials/aspnetcore.html) ## Building Manually and Contributing From c08053ef956f51cb5900236a2c5199e52437bed0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 1 Mar 2020 16:16:39 -0800 Subject: [PATCH 062/187] Pin dependency rimraf to 3.0.2 (#1053) Co-authored-by: WhiteSource Renovate --- src/React.Template/reactnet-webpack/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/React.Template/reactnet-webpack/package.json b/src/React.Template/reactnet-webpack/package.json index 9cffc93bb..f9d2abc36 100644 --- a/src/React.Template/reactnet-webpack/package.json +++ b/src/React.Template/reactnet-webpack/package.json @@ -28,7 +28,7 @@ "@babel/preset-react": "7.8.3", "babel-loader": "8.0.6", "babel-runtime": "6.26.0", - "rimraf": "^3.0.2", + "rimraf": "3.0.2", "webpack": "4.41.6", "webpack-cli": "3.3.11", "webpack-manifest-plugin": "2.2.0" From fa68a84509d02edafefbc78f84ea3466b129af59 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 1 Mar 2020 18:00:22 -0800 Subject: [PATCH 063/187] 5.2.1-beta1 --- build.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.proj b/build.proj index 0ca20aee4..cf342d526 100644 --- a/build.proj +++ b/build.proj @@ -11,7 +11,7 @@ of patent rights can be found in the PATENTS file in the same directory. 5 2 - 0 + 1-beta1 0 http://reactjs.net/packages/ $(MSBuildProjectDirectory)\tools\MSBuildTasks From ce4796f7ff5e9c318ddc919fc85f4e55e25c1138 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 1 Mar 2020 18:17:45 -0800 Subject: [PATCH 064/187] Add .gitignore and .gitattributes to webpack template --- .../reactnet-webpack/.gitattributes | 4 + .../reactnet-webpack/.gitignore | 232 ++++++++++++++++++ 2 files changed, 236 insertions(+) create mode 100644 src/React.Template/reactnet-webpack/.gitattributes create mode 100644 src/React.Template/reactnet-webpack/.gitignore diff --git a/src/React.Template/reactnet-webpack/.gitattributes b/src/React.Template/reactnet-webpack/.gitattributes new file mode 100644 index 000000000..c7e67bc5d --- /dev/null +++ b/src/React.Template/reactnet-webpack/.gitattributes @@ -0,0 +1,4 @@ +* text eol=lf +*.png binary +*.exe binary +*.dll binary diff --git a/src/React.Template/reactnet-webpack/.gitignore b/src/React.Template/reactnet-webpack/.gitignore new file mode 100644 index 000000000..8f8b43bb1 --- /dev/null +++ b/src/React.Template/reactnet-webpack/.gitignore @@ -0,0 +1,232 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +build/ +bld/ +bin/ +Bin/ +obj/ +Obj/ + +# Visual Studio 2015 cache/options directory +.vs/ +/wwwroot/dist/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +*_i.c +*_p.c +*_i.h +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# TODO: Comment the next line if you want to checkin your web deploy settings +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/packages/* +# except build/, which is used as an MSBuild target. +!**/packages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/packages/repositories.config + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Microsoft Azure ApplicationInsights config file +ApplicationInsights.config + +# Windows Store app package directory +AppPackages/ +BundleArtifacts/ + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.pfx +*.publishsettings +orleans.codegen.cs + +/node_modules + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +*.mdf +*.ldf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe + +# FAKE - F# Make +.fake/ From c8e34f4a70b02eb43fd89a88cb3a101977a91688 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 1 Mar 2020 18:38:19 -0800 Subject: [PATCH 065/187] Add hint about webpack template --- README.md | 2 ++ site/jekyll/getting-started/aspnetcore.md | 2 ++ site/jekyll/tutorials/aspnetcore.md | 2 ++ 3 files changed, 6 insertions(+) diff --git a/README.md b/README.md index d6c692ace..f4935a606 100644 --- a/README.md +++ b/README.md @@ -33,6 +33,8 @@ dotnet new reactnet-vanilla dotnet run ``` +#### Planning on using `require` or `import` module syntax in your application? Use the `reactnet-webpack` template instead for webpack support. + See also: - [Getting Started](https://reactjs.net/getting-started/aspnetcore.html) diff --git a/site/jekyll/getting-started/aspnetcore.md b/site/jekyll/getting-started/aspnetcore.md index 699ae02a2..3bf34f1c9 100644 --- a/site/jekyll/getting-started/aspnetcore.md +++ b/site/jekyll/getting-started/aspnetcore.md @@ -14,6 +14,8 @@ dotnet new reactnet-vanilla dotnet run ``` +#### Heads up! This configuration only supports globally-scoped modules. If you're planning on using `require` or `import` module syntax in your application, use the `reactnet-webpack` template instead for webpack support. + ## For existing projects: This guide covers enabling server-side rendering and Babel compilation. Getting started with ReactJS.NET on ASP.NET Core requires a few more steps compared to previous versions of ASP.NET and MVC. If you want a step-by-step guide on configuring a brand new site, see [the ReactJS.NET tutorial for ASP.NET Core](/tutorials/aspnetcore.html). diff --git a/site/jekyll/tutorials/aspnetcore.md b/site/jekyll/tutorials/aspnetcore.md index 0fb3163e9..5c1478b90 100644 --- a/site/jekyll/tutorials/aspnetcore.md +++ b/site/jekyll/tutorials/aspnetcore.md @@ -16,6 +16,8 @@ dotnet new reactnet-vanilla dotnet run ``` +#### Heads up! This configuration only supports globally-scoped modules. If you're planning on using `require` or `import` module syntax in your application, use the `reactnet-webpack` template instead for webpack support. + ## Step by step version This tutorial covers the end-to-end process of creating a brand new ASP.NET MVC website and adding a React component in it. We will start from scratch and end with a fully functioning component. It assumes you have basic knowledge of ASP.NET MVC and using Visual Studio. This tutorial is based off the [original React tutorial](https://reactjs.org/tutorial/tutorial.html) but has been modified specifically for ReactJS.NET. From ee4bed0d9af9d768470b46105c7ce4d6f57c81c1 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 1 Mar 2020 18:38:43 -0800 Subject: [PATCH 066/187] 5.2.1 --- build.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.proj b/build.proj index cf342d526..c750e00b3 100644 --- a/build.proj +++ b/build.proj @@ -11,7 +11,7 @@ of patent rights can be found in the PATENTS file in the same directory. 5 2 - 1-beta1 + 1 0 http://reactjs.net/packages/ $(MSBuildProjectDirectory)\tools\MSBuildTasks From c60268a92981f12a4723772cbde1baf9970d59d9 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 5 Mar 2020 02:08:53 +0000 Subject: [PATCH 067/187] Update babel monorepo to v7.8.7 --- src/React.Core/package-lock.json | 38 +-- src/React.Core/package.json | 4 +- .../reactnet-webpack/package-lock.json | 218 ++++++++++-------- .../reactnet-webpack/package.json | 4 +- 4 files changed, 150 insertions(+), 114 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 9726ae1ac..2dc781287 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -14,18 +14,18 @@ } }, "@babel/core": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.6.tgz", - "integrity": "sha512-Sheg7yEJD51YHAvLEV/7Uvw95AeWqYPL3Vk3zGujJKIhJ+8oLw2ALaf3hbucILhKsgSoADOvtKRJuNVdcJkOrg==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.7.tgz", + "integrity": "sha512-rBlqF3Yko9cynC5CCFy6+K/w2N+Sq/ff2BPy+Krp7rHlABIr5epbA7OxVeKoMHB39LZOp1UY5SuLjy6uWi35yA==", "dev": true, "requires": { "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.6", + "@babel/generator": "^7.8.7", "@babel/helpers": "^7.8.4", - "@babel/parser": "^7.8.6", + "@babel/parser": "^7.8.7", "@babel/template": "^7.8.6", "@babel/traverse": "^7.8.6", - "@babel/types": "^7.8.6", + "@babel/types": "^7.8.7", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", @@ -54,12 +54,12 @@ } }, "@babel/generator": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.6.tgz", - "integrity": "sha512-4bpOR5ZBz+wWcMeVtcf7FbjcFzCp+817z2/gHNncIRcM9MmKzUhtWCYAq27RAfUrAFwb+OCG1s9WEaVxfi6cjg==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.7.tgz", + "integrity": "sha512-DQwjiKJqH4C3qGiyQCAExJHoZssn49JTMJgZ8SANGgVFdkupcUhLOdkAeoC6kmHZCPfoDG5M0b6cFlSN5wW7Ew==", "dev": true, "requires": { - "@babel/types": "^7.8.6", + "@babel/types": "^7.8.7", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" @@ -125,15 +125,15 @@ } }, "@babel/parser": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.6.tgz", - "integrity": "sha512-trGNYSfwq5s0SgM1BMEB8hX3NDmO7EP2wsDGDexiaKMB92BaRpS+qZfpkMqUBhcsOTBwNy9B/jieo4ad/t/z2g==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.7.tgz", + "integrity": "sha512-9JWls8WilDXFGxs0phaXAZgpxTZhSk/yOYH2hTHC0X1yC7Z78IJfvR1vJ+rmJKq3I35td2XzXzN6ZLYlna+r/A==", "dev": true }, "@babel/standalone": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.8.6.tgz", - "integrity": "sha512-GkzSsxrnn3NbL0XwY7oVa1frbl71NmYf73C3xdpt59W056Sm9ohZghuoC2W1NLKAOVztghoyFmtQCKc/7qjSDg==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.8.7.tgz", + "integrity": "sha512-tI9NO4Wz5CfVdnjGs4O9hIN0bOuUeLFeMBGOzmEP19MiAFmCi6GFRf+EELE8ZPJQ+OqherJMLnszN4ALPF2ahA==", "dev": true }, "@babel/template": { @@ -182,9 +182,9 @@ } }, "@babel/types": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", - "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", + "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", "dev": true, "requires": { "esutils": "^2.0.2", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index d555cc02b..7440696d7 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -6,8 +6,8 @@ "build": "webpack" }, "devDependencies": { - "@babel/core": "7.8.6", - "@babel/standalone": "7.8.6", + "@babel/core": "7.8.7", + "@babel/standalone": "7.8.7", "prop-types": "15.7.2", "react": "16.13.0", "react-dom": "16.13.0", diff --git a/src/React.Template/reactnet-webpack/package-lock.json b/src/React.Template/reactnet-webpack/package-lock.json index 3d7d2b9fa..65ab04119 100644 --- a/src/React.Template/reactnet-webpack/package-lock.json +++ b/src/React.Template/reactnet-webpack/package-lock.json @@ -25,18 +25,18 @@ } }, "@babel/core": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.6.tgz", - "integrity": "sha512-Sheg7yEJD51YHAvLEV/7Uvw95AeWqYPL3Vk3zGujJKIhJ+8oLw2ALaf3hbucILhKsgSoADOvtKRJuNVdcJkOrg==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.7.tgz", + "integrity": "sha512-rBlqF3Yko9cynC5CCFy6+K/w2N+Sq/ff2BPy+Krp7rHlABIr5epbA7OxVeKoMHB39LZOp1UY5SuLjy6uWi35yA==", "dev": true, "requires": { "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.6", + "@babel/generator": "^7.8.7", "@babel/helpers": "^7.8.4", - "@babel/parser": "^7.8.6", + "@babel/parser": "^7.8.7", "@babel/template": "^7.8.6", "@babel/traverse": "^7.8.6", - "@babel/types": "^7.8.6", + "@babel/types": "^7.8.7", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", @@ -47,10 +47,28 @@ "source-map": "^0.5.0" }, "dependencies": { + "@babel/generator": { + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.7.tgz", + "integrity": "sha512-DQwjiKJqH4C3qGiyQCAExJHoZssn49JTMJgZ8SANGgVFdkupcUhLOdkAeoC6kmHZCPfoDG5M0b6cFlSN5wW7Ew==", + "dev": true, + "requires": { + "@babel/types": "^7.8.7", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/parser": { + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.7.tgz", + "integrity": "sha512-9JWls8WilDXFGxs0phaXAZgpxTZhSk/yOYH2hTHC0X1yC7Z78IJfvR1vJ+rmJKq3I35td2XzXzN6ZLYlna+r/A==", + "dev": true + }, "@babel/types": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", - "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", + "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -143,9 +161,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", - "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", + "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -179,20 +197,20 @@ } }, "@babel/helper-call-delegate": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.8.3.tgz", - "integrity": "sha512-6Q05px0Eb+N4/GTyKPPvnkig7Lylw+QzihMpws9iiZQv7ZImf84ZsZpQH7QoWN4n4tm81SnSzPgHw2qtO0Zf3A==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.8.7.tgz", + "integrity": "sha512-doAA5LAKhsFCR0LAFIf+r2RSMmC+m8f/oQ+URnUET/rWeEzC0yTRmAGyWkD4sSu3xwbS7MYQ2u+xlt1V5R56KQ==", "dev": true, "requires": { "@babel/helper-hoist-variables": "^7.8.3", "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/types": "^7.8.7" }, "dependencies": { "@babel/types": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", - "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", + "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -203,13 +221,13 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.6.tgz", - "integrity": "sha512-UrJdk27hKVJSnibFcUWYLkCL0ZywTUoot8yii1lsHJcvwrypagmYKjHLMWivQPm4s6GdyygCL8fiH5EYLxhQwQ==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.7.tgz", + "integrity": "sha512-4mWm8DCK2LugIS+p1yArqvG1Pf162upsIsjE7cNBjez+NjliQpVhj20obE520nao0o14DaTnFJv+Fw5a0JpoUw==", "dev": true, "requires": { "@babel/compat-data": "^7.8.6", - "browserslist": "^4.8.5", + "browserslist": "^4.9.1", "invariant": "^2.2.4", "levenary": "^1.1.1", "semver": "^5.5.0" @@ -250,9 +268,9 @@ } }, "@babel/types": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", - "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", + "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -274,9 +292,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", - "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", + "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -297,9 +315,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", - "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", + "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -365,9 +383,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", - "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", + "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -432,9 +450,9 @@ } }, "@babel/types": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", - "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", + "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -504,9 +522,9 @@ } }, "@babel/types": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", - "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", + "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -552,9 +570,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", - "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", + "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -599,9 +617,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", - "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", + "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -623,9 +641,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", - "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", + "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -862,9 +880,9 @@ } }, "@babel/types": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", - "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", + "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -919,9 +937,9 @@ } }, "@babel/types": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", - "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", + "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -1089,12 +1107,12 @@ } }, "@babel/plugin-transform-parameters": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.4.tgz", - "integrity": "sha512-IsS3oTxeTsZlE5KqzTbcC2sV0P9pXdec53SU+Yxv7o/6dvGM5AkTotQKhoSffhNgZ/dftsSiOoxy7evCYJXzVA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.7.tgz", + "integrity": "sha512-brYWaEPTRimOctz2NDA3jnBbDi7SVN2T4wYuu0aqSzxC3nozFZngGaw29CJ9ZPweB7k+iFmZuoG3IVPIcXmD2g==", "dev": true, "requires": { - "@babel/helper-call-delegate": "^7.8.3", + "@babel/helper-call-delegate": "^7.8.7", "@babel/helper-get-function-arity": "^7.8.3", "@babel/helper-plugin-utils": "^7.8.3" } @@ -1149,12 +1167,12 @@ } }, "@babel/plugin-transform-regenerator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.3.tgz", - "integrity": "sha512-qt/kcur/FxrQrzFR432FGZznkVAjiyFtCOANjkAKwCbt465L6ZCiUQh2oMYGU3Wo8LRFJxNDFwWn106S5wVUNA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz", + "integrity": "sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA==", "dev": true, "requires": { - "regenerator-transform": "^0.14.0" + "regenerator-transform": "^0.14.2" } }, "@babel/plugin-transform-reserved-words": { @@ -1214,9 +1232,9 @@ } }, "@babel/types": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", - "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", + "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -1246,13 +1264,13 @@ } }, "@babel/preset-env": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.6.tgz", - "integrity": "sha512-M5u8llV9DIVXBFB/ArIpqJuvXpO+ymxcJ6e8ZAmzeK3sQeBNOD1y+rHvHCGG4TlEmsNpIrdecsHGHT8ZCoOSJg==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.7.tgz", + "integrity": "sha512-BYftCVOdAYJk5ASsznKAUl53EMhfBbr8CJ1X+AJLfGPscQkwJFiaV/Wn9DPH/7fzm2v6iRYJKYHSqyynTGw0nw==", "dev": true, "requires": { "@babel/compat-data": "^7.8.6", - "@babel/helper-compilation-targets": "^7.8.6", + "@babel/helper-compilation-targets": "^7.8.7", "@babel/helper-module-imports": "^7.8.3", "@babel/helper-plugin-utils": "^7.8.3", "@babel/plugin-proposal-async-generator-functions": "^7.8.3", @@ -1292,9 +1310,9 @@ "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", "@babel/plugin-transform-new-target": "^7.8.3", "@babel/plugin-transform-object-super": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.8.4", + "@babel/plugin-transform-parameters": "^7.8.7", "@babel/plugin-transform-property-literals": "^7.8.3", - "@babel/plugin-transform-regenerator": "^7.8.3", + "@babel/plugin-transform-regenerator": "^7.8.7", "@babel/plugin-transform-reserved-words": "^7.8.3", "@babel/plugin-transform-shorthand-properties": "^7.8.3", "@babel/plugin-transform-spread": "^7.8.3", @@ -1302,7 +1320,7 @@ "@babel/plugin-transform-template-literals": "^7.8.3", "@babel/plugin-transform-typeof-symbol": "^7.8.4", "@babel/plugin-transform-unicode-regex": "^7.8.3", - "@babel/types": "^7.8.6", + "@babel/types": "^7.8.7", "browserslist": "^4.8.5", "core-js-compat": "^3.6.2", "invariant": "^2.2.2", @@ -1320,9 +1338,9 @@ } }, "@babel/types": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", - "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", + "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -2322,13 +2340,13 @@ } }, "browserslist": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.9.0.tgz", - "integrity": "sha512-seffIXhwgB84+OCeT/aMjpZnsAsYDiMSC+CEs3UkF8iU64BZGYcu+TZYs/IBpo4nRi0vJywUJWYdbTsOhFTweg==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.9.1.tgz", + "integrity": "sha512-Q0DnKq20End3raFulq6Vfp1ecB9fh8yUNV55s8sekaDDeqBaCtWlRHCUdaWyUeSSBJM7IbM6HcsyaeYqgeDhnw==", "dev": true, "requires": { "caniuse-lite": "^1.0.30001030", - "electron-to-chromium": "^1.3.361", + "electron-to-chromium": "^1.3.363", "node-releases": "^1.1.50" } }, @@ -2431,9 +2449,9 @@ "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=" }, "caniuse-lite": { - "version": "1.0.30001030", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001030.tgz", - "integrity": "sha512-QGK0W4Ft/Ac+zTjEiRJfwDNATvS3fodDczBXrH42784kcfqcDKpEPfN08N0HQjrAp8He/Jw8QiSS9QRn7XAbUw==", + "version": "1.0.30001031", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001031.tgz", + "integrity": "sha512-DpAP5a1NGRLgYfaNCaXIRyGARi+3tJA2quZXNNA1Du26VyVkqvy2tznNu5ANyN1Y5aX44QDotZSVSUSi2uMGjg==", "dev": true }, "chalk": { @@ -2988,9 +3006,9 @@ } }, "electron-to-chromium": { - "version": "1.3.362", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.362.tgz", - "integrity": "sha512-xdU5VCoZyMPMOWtCaMgbr48OwWZHrMLbGnAOlEqibXiIGsb4kiCGWEHK5NOghcVLdBVIbr/BW+yuKxVuGTtzEg==", + "version": "1.3.368", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.368.tgz", + "integrity": "sha512-fqzDipW3p+uDkHUHFPrdW3wINRKcJsbnJwBD7hgaQEQwcuLSvNLw6SeUp5gKDpTbmTl7zri7IZfhsdTUTnygJg==", "dev": true }, "elliptic": { @@ -6184,12 +6202,30 @@ "dev": true }, "regenerator-transform": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz", - "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==", + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.2.tgz", + "integrity": "sha512-V4+lGplCM/ikqi5/mkkpJ06e9Bujq1NFmNLvsCs56zg3ZbzrnUzAtizZ24TXxtRX/W2jcdScwQCnbL0CICTFkQ==", "dev": true, "requires": { - "private": "^0.1.6" + "@babel/runtime": "^7.8.4", + "private": "^0.1.8" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.7.tgz", + "integrity": "sha512-+AATMUFppJDw6aiR5NVPHqIQBlV/Pj8wY/EZH+lmvRdUo9xBaz/rF3alAwFJQavvKfeOlPE7oaaDHVbcySbCsg==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "regenerator-runtime": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.4.tgz", + "integrity": "sha512-plpwicqEzfEyTQohIKktWigcLzmNStMGwbOUbykx51/29Z3JOGYldaaNGK7ngNXV+UcoqvIMmloZ48Sr74sd+g==", + "dev": true + } } }, "regex-not": { diff --git a/src/React.Template/reactnet-webpack/package.json b/src/React.Template/reactnet-webpack/package.json index f9d2abc36..a140b289e 100644 --- a/src/React.Template/reactnet-webpack/package.json +++ b/src/React.Template/reactnet-webpack/package.json @@ -20,11 +20,11 @@ "styled-components": "^4.0.0" }, "devDependencies": { - "@babel/core": "7.8.6", + "@babel/core": "7.8.7", "@babel/plugin-proposal-class-properties": "7.8.3", "@babel/plugin-proposal-object-rest-spread": "7.8.3", "@babel/plugin-syntax-dynamic-import": "7.8.3", - "@babel/preset-env": "7.8.6", + "@babel/preset-env": "7.8.7", "@babel/preset-react": "7.8.3", "babel-loader": "8.0.6", "babel-runtime": "6.26.0", From 25b6c8923fafaf282298a7ab8a7db87958e18cdd Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 5 Mar 2020 22:56:16 +0000 Subject: [PATCH 068/187] Update dependency Microsoft.NET.Sdk.Functions to v1.0.34 --- webhooks/React.Site.Hooks.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webhooks/React.Site.Hooks.csproj b/webhooks/React.Site.Hooks.csproj index b86515408..170f3168f 100644 --- a/webhooks/React.Site.Hooks.csproj +++ b/webhooks/React.Site.Hooks.csproj @@ -3,7 +3,7 @@ net461 - + From cd67723be3a5b5564c15d9772689a5d7313fb481 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 8 Mar 2020 00:19:24 -0500 Subject: [PATCH 069/187] Update dependency Octokit to v0.43.0 (#1057) Co-authored-by: Renovate Bot --- webhooks/React.Site.Hooks.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webhooks/React.Site.Hooks.csproj b/webhooks/React.Site.Hooks.csproj index 170f3168f..366240f5d 100644 --- a/webhooks/React.Site.Hooks.csproj +++ b/webhooks/React.Site.Hooks.csproj @@ -4,7 +4,7 @@ - + From bc5f261746857e7447076f871476b6651401a397 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 8 Mar 2020 00:19:46 -0500 Subject: [PATCH 070/187] Update dependency webpack to v4.42.0 (#1055) Co-authored-by: Renovate Bot --- .../Resources/babel-legacy/package-lock.json | 30 ++++++------- .../Resources/babel-legacy/package.json | 2 +- src/React.Core/package-lock.json | 30 ++++++------- src/React.Core/package.json | 2 +- .../reactnet-webpack/package-lock.json | 44 +++++++++++-------- .../reactnet-webpack/package.json | 2 +- 6 files changed, 58 insertions(+), 52 deletions(-) diff --git a/src/React.Core/Resources/babel-legacy/package-lock.json b/src/React.Core/Resources/babel-legacy/package-lock.json index d0f593bb4..7121f109f 100644 --- a/src/React.Core/Resources/babel-legacy/package-lock.json +++ b/src/React.Core/Resources/babel-legacy/package-lock.json @@ -199,9 +199,9 @@ "dev": true }, "ajv": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", - "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", + "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -1655,9 +1655,9 @@ } }, "chownr": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", - "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", "dev": true }, "chrome-trace-event": { @@ -4799,9 +4799,9 @@ "dev": true }, "terser": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.3.tgz", - "integrity": "sha512-Lw+ieAXmY69d09IIc/yqeBqXpEQIpDGZqT34ui1QWXIUpR2RjbqEkT8X7Lgex19hslSqcWM5iMN2kM11eMsESQ==", + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.4.tgz", + "integrity": "sha512-5fqgBPLgVHZ/fVvqRhhUp9YUiGXhFJ9ZkrZWD9vQtFBR4QIGTnbsb+/kKqSqfgp3WnBwGWAFnedGTtmX1YTn0w==", "dev": true, "requires": { "commander": "^2.20.0", @@ -4922,9 +4922,9 @@ "dev": true }, "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", + "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==", "dev": true }, "tty-browserify": { @@ -5116,9 +5116,9 @@ } }, "webpack": { - "version": "4.41.6", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.6.tgz", - "integrity": "sha512-yxXfV0Zv9WMGRD+QexkZzmGIh54bsvEs+9aRWxnN8erLWEOehAKUTeNBoUbA6HPEZPlRo7KDi2ZcNveoZgK9MA==", + "version": "4.42.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.42.0.tgz", + "integrity": "sha512-EzJRHvwQyBiYrYqhyjW9AqM90dE4+s1/XtCfn7uWg6cS72zH+2VPFAlsnW0+W0cDi0XRjNKUMoJtpSi50+Ph6w==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", diff --git a/src/React.Core/Resources/babel-legacy/package.json b/src/React.Core/Resources/babel-legacy/package.json index 94b6edf83..9ee488958 100644 --- a/src/React.Core/Resources/babel-legacy/package.json +++ b/src/React.Core/Resources/babel-legacy/package.json @@ -12,7 +12,7 @@ "babel-preset-es2015": "6.24.1", "babel-preset-stage-0": "6.24.1", "babel-standalone": "6.26.0", - "webpack": "4.41.6", + "webpack": "4.42.0", "webpack-cli": "3.3.11" }, "author": "", diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 2dc781287..8ff73d181 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -387,9 +387,9 @@ "dev": true }, "ajv": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", - "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", + "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -864,9 +864,9 @@ } }, "chownr": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", - "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", "dev": true }, "chrome-trace-event": { @@ -4054,9 +4054,9 @@ "dev": true }, "terser": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.3.tgz", - "integrity": "sha512-Lw+ieAXmY69d09IIc/yqeBqXpEQIpDGZqT34ui1QWXIUpR2RjbqEkT8X7Lgex19hslSqcWM5iMN2kM11eMsESQ==", + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.4.tgz", + "integrity": "sha512-5fqgBPLgVHZ/fVvqRhhUp9YUiGXhFJ9ZkrZWD9vQtFBR4QIGTnbsb+/kKqSqfgp3WnBwGWAFnedGTtmX1YTn0w==", "dev": true, "requires": { "commander": "^2.20.0", @@ -4171,9 +4171,9 @@ } }, "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", + "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==", "dev": true }, "tty-browserify": { @@ -4348,9 +4348,9 @@ } }, "webpack": { - "version": "4.41.6", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.6.tgz", - "integrity": "sha512-yxXfV0Zv9WMGRD+QexkZzmGIh54bsvEs+9aRWxnN8erLWEOehAKUTeNBoUbA6HPEZPlRo7KDi2ZcNveoZgK9MA==", + "version": "4.42.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.42.0.tgz", + "integrity": "sha512-EzJRHvwQyBiYrYqhyjW9AqM90dE4+s1/XtCfn7uWg6cS72zH+2VPFAlsnW0+W0cDi0XRjNKUMoJtpSi50+Ph6w==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 7440696d7..707237f00 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -11,7 +11,7 @@ "prop-types": "15.7.2", "react": "16.13.0", "react-dom": "16.13.0", - "webpack": "4.41.6", + "webpack": "4.42.0", "webpack-cli": "3.3.11" } } diff --git a/src/React.Template/reactnet-webpack/package-lock.json b/src/React.Template/reactnet-webpack/package-lock.json index 65ab04119..2b622e77e 100644 --- a/src/React.Template/reactnet-webpack/package-lock.json +++ b/src/React.Template/reactnet-webpack/package-lock.json @@ -1868,9 +1868,9 @@ "dev": true }, "ajv": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", - "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", + "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -2486,9 +2486,9 @@ } }, "chownr": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", - "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", "dev": true }, "chrome-trace-event": { @@ -6916,9 +6916,9 @@ "dev": true }, "terser": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.3.tgz", - "integrity": "sha512-Lw+ieAXmY69d09IIc/yqeBqXpEQIpDGZqT34ui1QWXIUpR2RjbqEkT8X7Lgex19hslSqcWM5iMN2kM11eMsESQ==", + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.4.tgz", + "integrity": "sha512-5fqgBPLgVHZ/fVvqRhhUp9YUiGXhFJ9ZkrZWD9vQtFBR4QIGTnbsb+/kKqSqfgp3WnBwGWAFnedGTtmX1YTn0w==", "dev": true, "requires": { "commander": "^2.20.0", @@ -7125,9 +7125,9 @@ } }, "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", + "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==", "dev": true }, "tty-browserify": { @@ -7358,9 +7358,9 @@ } }, "webpack": { - "version": "4.41.6", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.6.tgz", - "integrity": "sha512-yxXfV0Zv9WMGRD+QexkZzmGIh54bsvEs+9aRWxnN8erLWEOehAKUTeNBoUbA6HPEZPlRo7KDi2ZcNveoZgK9MA==", + "version": "4.42.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.42.0.tgz", + "integrity": "sha512-EzJRHvwQyBiYrYqhyjW9AqM90dE4+s1/XtCfn7uWg6cS72zH+2VPFAlsnW0+W0cDi0XRjNKUMoJtpSi50+Ph6w==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", @@ -7394,6 +7394,12 @@ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, "json5": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", @@ -7404,13 +7410,13 @@ } }, "loader-utils": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", - "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", "dev": true, "requires": { "big.js": "^5.2.2", - "emojis-list": "^2.0.0", + "emojis-list": "^3.0.0", "json5": "^1.0.1" } }, diff --git a/src/React.Template/reactnet-webpack/package.json b/src/React.Template/reactnet-webpack/package.json index a140b289e..c1b8d9c29 100644 --- a/src/React.Template/reactnet-webpack/package.json +++ b/src/React.Template/reactnet-webpack/package.json @@ -29,7 +29,7 @@ "babel-loader": "8.0.6", "babel-runtime": "6.26.0", "rimraf": "3.0.2", - "webpack": "4.41.6", + "webpack": "4.42.0", "webpack-cli": "3.3.11", "webpack-manifest-plugin": "2.2.0" } From 82c486d766e562ca67035c32748d91595117be00 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sat, 7 Mar 2020 22:00:01 -0800 Subject: [PATCH 071/187] Bump template packages --- src/React.Template/reactnet-vanilla/tutorial-code.csproj | 2 +- src/React.Template/reactnet-webpack/SampleApp.csproj | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/React.Template/reactnet-vanilla/tutorial-code.csproj b/src/React.Template/reactnet-vanilla/tutorial-code.csproj index cba3bf7bc..28d8f51a6 100644 --- a/src/React.Template/reactnet-vanilla/tutorial-code.csproj +++ b/src/React.Template/reactnet-vanilla/tutorial-code.csproj @@ -20,7 +20,7 @@ - + diff --git a/src/React.Template/reactnet-webpack/SampleApp.csproj b/src/React.Template/reactnet-webpack/SampleApp.csproj index cb56e1e85..54de35b9e 100644 --- a/src/React.Template/reactnet-webpack/SampleApp.csproj +++ b/src/React.Template/reactnet-webpack/SampleApp.csproj @@ -14,8 +14,8 @@ - - + + From 91f56305b0faee73198d5ab102dd8ed756a6a8c2 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sat, 7 Mar 2020 22:15:56 -0800 Subject: [PATCH 072/187] Fix path to files listed in asset manifest --- src/React.Core/ReactEnvironment.cs | 6 ++---- tests/React.Tests/Core/ReactEnvironmentTest.cs | 8 ++++---- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/React.Core/ReactEnvironment.cs b/src/React.Core/ReactEnvironment.cs index eab1dbf94..5dc043562 100644 --- a/src/React.Core/ReactEnvironment.cs +++ b/src/React.Core/ReactEnvironment.cs @@ -357,8 +357,7 @@ public virtual void GetInitJavaScript(TextWriter writer, bool clientOnly = false public virtual IEnumerable GetScriptPaths() { return GetAppManifest().Entrypoints - .Where(path => path.EndsWith(".js")) - .Select(file => $"{_config.ReactAppBuildPath.Replace("~/", "/")}/{file}"); + .Where(path => path.EndsWith(".js")); } /// @@ -367,8 +366,7 @@ public virtual IEnumerable GetScriptPaths() public virtual IEnumerable GetStylePaths() { return GetAppManifest().Entrypoints - .Where(path => path.EndsWith(".css")) - .Select(file => $"{_config.ReactAppBuildPath.Replace("~/", "/")}/{file}"); + .Where(path => path.EndsWith(".css")); } /// diff --git a/tests/React.Tests/Core/ReactEnvironmentTest.cs b/tests/React.Tests/Core/ReactEnvironmentTest.cs index 9f50b3df6..9b1242746 100644 --- a/tests/React.Tests/Core/ReactEnvironmentTest.cs +++ b/tests/React.Tests/Core/ReactEnvironmentTest.cs @@ -200,8 +200,8 @@ public void ScriptTagsReturned() var scripts = environment.GetScriptPaths().ToList(); Assert.Equal(2, scripts.Count); - Assert.Equal("/dist/static/js/runtime-main.62ca1b0d.js", scripts[0]); - Assert.Equal("/dist/static/js/main.04394e4f.chunk.js", scripts[1]); + Assert.Equal("static/js/runtime-main.62ca1b0d.js", scripts[0]); + Assert.Equal("static/js/main.04394e4f.chunk.js", scripts[1]); } [Fact] @@ -214,8 +214,8 @@ public void StyleTagsReturned() var styles = environment.GetStylePaths().ToList(); Assert.Equal(2, styles.Count); - Assert.Equal("/dist/static/css/main.43b75f57.chunk.css", styles[0]); - Assert.Equal("/dist/static/css/another-stylesheet.css", styles[1]); + Assert.Equal("static/css/main.43b75f57.chunk.css", styles[0]); + Assert.Equal("static/css/another-stylesheet.css", styles[1]); } public class Mocks From 7f38d85e36159847e430d747931a563449402c23 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sat, 7 Mar 2020 22:20:35 -0800 Subject: [PATCH 073/187] Use asset manifest in webpack template --- src/React.Template/reactnet-webpack/Startup.cs | 6 +----- .../reactnet-webpack/Views/Shared/_Layout.cshtml | 7 ++----- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/src/React.Template/reactnet-webpack/Startup.cs b/src/React.Template/reactnet-webpack/Startup.cs index 10766714e..a5c92e302 100644 --- a/src/React.Template/reactnet-webpack/Startup.cs +++ b/src/React.Template/reactnet-webpack/Startup.cs @@ -42,11 +42,7 @@ public void Configure(IApplicationBuilder app) .SetReuseJavaScriptEngines(true) .SetLoadBabel(false) .SetLoadReact(false) - .AddScriptWithoutTransform("~/dist/runtime.js") - .AddScriptWithoutTransform("~/dist/vendor.js") - .AddScriptWithoutTransform("~/dist/main.js"); - - // Beta feature: Call .SetReactAppBuildPath("~/dist") to use the asset manifest instead of listing each file + .SetReactAppBuildPath("~/dist"); }); app.UseStaticFiles(); diff --git a/src/React.Template/reactnet-webpack/Views/Shared/_Layout.cshtml b/src/React.Template/reactnet-webpack/Views/Shared/_Layout.cshtml index effaee6de..52307c13f 100644 --- a/src/React.Template/reactnet-webpack/Views/Shared/_Layout.cshtml +++ b/src/React.Template/reactnet-webpack/Views/Shared/_Layout.cshtml @@ -7,14 +7,11 @@ @Html.Raw(ViewBag.ServerStyles) - @* Beta feature: call @Html.ReactGetStylePaths() to get all style tags *@ + @Html.ReactGetStylePaths() @RenderBody() - @* Beta feature: call @Html.ReactGetScriptPaths() to get all style tags *@ - - - + @Html.ReactGetScriptPaths() @Html.ReactInitJavaScript() From 7611a4e5b30979eabbf3f76f506c120115ed3c5a Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 8 Mar 2020 13:15:25 -0700 Subject: [PATCH 074/187] 5.2.2 --- build.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.proj b/build.proj index c750e00b3..bed020c77 100644 --- a/build.proj +++ b/build.proj @@ -11,7 +11,7 @@ of patent rights can be found in the PATENTS file in the same directory. 5 2 - 1 + 2 0 http://reactjs.net/packages/ $(MSBuildProjectDirectory)\tools\MSBuildTasks From b42073aeca42b749c040ee5cb959eaa184caa799 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sun, 8 Mar 2020 23:28:17 +0000 Subject: [PATCH 075/187] Update dependency React.AspNet to v5.2.2 --- src/React.Template/reactnet-vanilla/tutorial-code.csproj | 2 +- src/React.Template/reactnet-webpack/SampleApp.csproj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/React.Template/reactnet-vanilla/tutorial-code.csproj b/src/React.Template/reactnet-vanilla/tutorial-code.csproj index 28d8f51a6..478784112 100644 --- a/src/React.Template/reactnet-vanilla/tutorial-code.csproj +++ b/src/React.Template/reactnet-vanilla/tutorial-code.csproj @@ -20,7 +20,7 @@ - + diff --git a/src/React.Template/reactnet-webpack/SampleApp.csproj b/src/React.Template/reactnet-webpack/SampleApp.csproj index 54de35b9e..1dee2641a 100644 --- a/src/React.Template/reactnet-webpack/SampleApp.csproj +++ b/src/React.Template/reactnet-webpack/SampleApp.csproj @@ -14,7 +14,7 @@ - + From 5cba6da209d99ea067662a4ef0ad879f6066ada3 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 8 Mar 2020 20:12:23 -0700 Subject: [PATCH 076/187] Renovate: Group template package updates together --- renovate.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/renovate.json b/renovate.json index 7d85e2c8d..f197b0de8 100644 --- a/renovate.json +++ b/renovate.json @@ -25,6 +25,10 @@ "https://github.com/aspnet/AspNetCore" ], "groupName": "ASP.NET Core packages" + }, + { + "packagePatterns": ["^React"], + "groupName": "React.NET packages" } ], "separateMinorPatch": true, From 2943944ef0ec630b692952a77f41541ca0a023ce Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 9 Mar 2020 03:14:04 +0000 Subject: [PATCH 077/187] Update dependency React.Router to v5.2.2 --- src/React.Template/reactnet-webpack/SampleApp.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/React.Template/reactnet-webpack/SampleApp.csproj b/src/React.Template/reactnet-webpack/SampleApp.csproj index 1dee2641a..7ef294934 100644 --- a/src/React.Template/reactnet-webpack/SampleApp.csproj +++ b/src/React.Template/reactnet-webpack/SampleApp.csproj @@ -15,7 +15,7 @@ - + From 74abd9ea4b5407c9cabd606ed1b6c55c84da0453 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 8 Mar 2020 21:53:15 -0700 Subject: [PATCH 078/187] Avoid background crash if JS files in use This can happen if webpack is doing a background rebuild. --- src/React.Core/JavaScriptEngineFactory.cs | 72 +++++++++++------------ 1 file changed, 33 insertions(+), 39 deletions(-) diff --git a/src/React.Core/JavaScriptEngineFactory.cs b/src/React.Core/JavaScriptEngineFactory.cs index 06b044f90..63772c3db 100644 --- a/src/React.Core/JavaScriptEngineFactory.cs +++ b/src/React.Core/JavaScriptEngineFactory.cs @@ -174,53 +174,47 @@ private void LoadResource(IJsEngine engine, string resourceName, Assembly assemb /// Engine to load scripts into private void LoadUserScripts(IJsEngine engine) { - if (_config.ReactAppBuildPath != null) + try { - var manifest = ReactAppAssetManifest.LoadManifest(_config, _fileSystem, _cache, useCacheRead: false); - foreach (var file in manifest.Entrypoints?.Where(x => x != null && x.EndsWith(".js"))) + IEnumerable manifestFiles = Enumerable.Empty(); + if (_config.ReactAppBuildPath != null) { - if (_config.AllowJavaScriptPrecompilation - && engine.TryExecuteFileWithPrecompilation(_cache, _fileSystem, file)) - { - // Do nothing. - } - else - { - engine.ExecuteFile(_fileSystem, file); - } + var manifest = ReactAppAssetManifest.LoadManifest(_config, _fileSystem, _cache, useCacheRead: false); + manifestFiles = (manifest?.Entrypoints?.Where(x => x != null && x.EndsWith(".js"))) ?? Enumerable.Empty(); } - } - foreach (var file in _config.ScriptsWithoutTransform) - { - try + foreach (var file in _config.ScriptsWithoutTransform.Concat(manifestFiles)) { - if (_config.AllowJavaScriptPrecompilation - && engine.TryExecuteFileWithPrecompilation(_cache, _fileSystem, file)) + try { - // Do nothing. + if (_config.AllowJavaScriptPrecompilation + && engine.TryExecuteFileWithPrecompilation(_cache, _fileSystem, file)) + { + // Do nothing. + } + else + { + engine.ExecuteFile(_fileSystem, file); + } } - else + catch (JsException ex) { - engine.ExecuteFile(_fileSystem, file); + // We can't simply rethrow the exception here, as it's possible this is running + // on a background thread (ie. as a response to a file changing). If we did + // throw the exception here, it would terminate the entire process. Instead, + // save the exception, and then just rethrow it later when getting the engine. + _scriptLoadException = new ReactScriptLoadException(string.Format( + "Error while loading \"{0}\": {1}", + file, + ex.Message + ), ex); } } - catch (JsException ex) - { - // We can't simply rethrow the exception here, as it's possible this is running - // on a background thread (ie. as a response to a file changing). If we did - // throw the exception here, it would terminate the entire process. Instead, - // save the exception, and then just rethrow it later when getting the engine. - _scriptLoadException = new ReactScriptLoadException(string.Format( - "Error while loading \"{0}\": {1}", - file, - ex.Message - ), ex); - } - catch (IOException ex) - { - _scriptLoadException = new ReactScriptLoadException(ex.Message, ex); - } + } + catch (IOException ex) + { + // Files could be in the process of being rebuilt by JS build tooling + _scriptLoadException = new ReactScriptLoadException(ex.Message, ex);; } } @@ -228,14 +222,14 @@ private void LoadUserScripts(IJsEngine engine) /// Ensures that React has been correctly loaded into the specified engine. /// /// Engine to check - private static void EnsureReactLoaded(IJsEngine engine) + private void EnsureReactLoaded(IJsEngine engine) { var globalsString = engine.CallFunction("ReactNET_initReact"); string[] globals = globalsString.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); if (globals.Length != 0) { - throw new ReactNotInitialisedException( + _scriptLoadException = new ReactNotInitialisedException( $"React has not been loaded correctly: missing ({string.Join(", ", globals)})." + "Please expose your version of React as global variables named " + "'React', 'ReactDOM', and 'ReactDOMServer', or enable the 'LoadReact'" + From 2a1cfabeb9d3aca477fdb831cbcf84b49a34fb69 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 12 Mar 2020 18:52:00 +0000 Subject: [PATCH 079/187] Update dependency @babel/standalone to v7.8.8 --- src/React.Core/package-lock.json | 6 +++--- src/React.Core/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 8ff73d181..d370198f1 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -131,9 +131,9 @@ "dev": true }, "@babel/standalone": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.8.7.tgz", - "integrity": "sha512-tI9NO4Wz5CfVdnjGs4O9hIN0bOuUeLFeMBGOzmEP19MiAFmCi6GFRf+EELE8ZPJQ+OqherJMLnszN4ALPF2ahA==", + "version": "7.8.8", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.8.8.tgz", + "integrity": "sha512-TeUxX+DYxNWliyU71gF4ti5NGrEheuB6NrxOumGRX/07EZXBBM90UljRzC9XjiP9f0NsEQYLQVmjd2Pu7NNARA==", "dev": true }, "@babel/template": { diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 707237f00..df3a2e67b 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -7,7 +7,7 @@ }, "devDependencies": { "@babel/core": "7.8.7", - "@babel/standalone": "7.8.7", + "@babel/standalone": "7.8.8", "prop-types": "15.7.2", "react": "16.13.0", "react-dom": "16.13.0", From a8cb479f1c5b61529b56eab092ed9235aaecd0cc Mon Sep 17 00:00:00 2001 From: Aloc <22265332+alochaus@users.noreply.github.com> Date: Sun, 15 Mar 2020 13:38:01 -0400 Subject: [PATCH 080/187] Fix typo in tutorial-code.csproj (#1067) This typo was causing build failure because it points to a non-existent file. --- src/React.Template/reactnet-vanilla/tutorial-code.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/React.Template/reactnet-vanilla/tutorial-code.csproj b/src/React.Template/reactnet-vanilla/tutorial-code.csproj index 478784112..c67e40b4f 100644 --- a/src/React.Template/reactnet-vanilla/tutorial-code.csproj +++ b/src/React.Template/reactnet-vanilla/tutorial-code.csproj @@ -7,7 +7,7 @@ tutorial-code - + PreserveNewest From 7554ce7e17cf1e44919d4efa827a3e7b39452203 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 15 Mar 2020 10:38:24 -0700 Subject: [PATCH 081/187] Bump acorn from 6.4.0 to 6.4.1 in /src/React.Core (#1066) Bumps [acorn](https://github.com/acornjs/acorn) from 6.4.0 to 6.4.1. - [Release notes](https://github.com/acornjs/acorn/releases) - [Commits](https://github.com/acornjs/acorn/compare/6.4.0...6.4.1) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/React.Core/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index d370198f1..f723fcd91 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -381,9 +381,9 @@ "dev": true }, "acorn": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.0.tgz", - "integrity": "sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", + "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", "dev": true }, "ajv": { From 2c0c387cff4d66b9b3ff50ff24c978ae2d861b12 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 15 Mar 2020 10:38:45 -0700 Subject: [PATCH 082/187] Update dependency Octokit to v0.44.0 (#1068) Co-authored-by: Renovate Bot --- webhooks/React.Site.Hooks.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webhooks/React.Site.Hooks.csproj b/webhooks/React.Site.Hooks.csproj index 366240f5d..f81edbd1e 100644 --- a/webhooks/React.Site.Hooks.csproj +++ b/webhooks/React.Site.Hooks.csproj @@ -4,7 +4,7 @@ - + From 68f3c60127f11019790fa7583a3fb7c7aa794422 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 15 Mar 2020 15:55:16 -0700 Subject: [PATCH 083/187] Throw detailed exception if wwwroot folder is missing --- src/React.AspNet.Middleware/AspNetFileSystem.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/React.AspNet.Middleware/AspNetFileSystem.cs b/src/React.AspNet.Middleware/AspNetFileSystem.cs index dec4ab94c..33289c792 100644 --- a/src/React.AspNet.Middleware/AspNetFileSystem.cs +++ b/src/React.AspNet.Middleware/AspNetFileSystem.cs @@ -7,6 +7,7 @@ using System.IO; using Microsoft.AspNetCore.Hosting; +using React.Exceptions; #if NETCOREAPP2_0 || NETSTANDARD2_0 using IWebHostEnvironment = Microsoft.AspNetCore.Hosting.IHostingEnvironment; @@ -38,6 +39,11 @@ public AspNetFileSystem(IWebHostEnvironment hostingEnv) /// Full path of the file public override string MapPath(string relativePath) { + if (_hostingEnv.WebRootPath == null) + { + throw new ReactException("WebRootPath was null, has the wwwroot folder been deployed along with your app?"); + } + if (relativePath.StartsWith(_hostingEnv.WebRootPath)) { return relativePath; From f1f382cf3e0af95c04f6f35cdbef97d4f8306ce1 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 15 Mar 2020 16:07:32 -0700 Subject: [PATCH 084/187] Add developer exception page to webpack template --- src/React.Template/reactnet-webpack/Startup.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/React.Template/reactnet-webpack/Startup.cs b/src/React.Template/reactnet-webpack/Startup.cs index a5c92e302..7bd728db3 100644 --- a/src/React.Template/reactnet-webpack/Startup.cs +++ b/src/React.Template/reactnet-webpack/Startup.cs @@ -4,6 +4,7 @@ using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; using React.AspNet; namespace React.Sample.Webpack.CoreMvc @@ -33,7 +34,7 @@ public void ConfigureServices(IServiceCollection services) } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. - public void Configure(IApplicationBuilder app) + public void Configure(IApplicationBuilder app, IHostEnvironment env) { // Initialise ReactJS.NET. Must be before static files. app.UseReact(config => @@ -45,6 +46,11 @@ public void Configure(IApplicationBuilder app) .SetReactAppBuildPath("~/dist"); }); + if (env.IsDevelopment()) + { + app.UseDeveloperExceptionPage(); + } + app.UseStaticFiles(); app.UseRouting(); From 726794b64d7e908863abca8178ff92f66d16dc73 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 15 Mar 2020 21:22:49 -0700 Subject: [PATCH 085/187] 5.2.3 --- build.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.proj b/build.proj index bed020c77..6fca8cf9d 100644 --- a/build.proj +++ b/build.proj @@ -11,7 +11,7 @@ of patent rights can be found in the PATENTS file in the same directory. 5 2 - 2 + 3 0 http://reactjs.net/packages/ $(MSBuildProjectDirectory)\tools\MSBuildTasks From dc25c88036a62ae2459c28db8b72e9e8bb2f8967 Mon Sep 17 00:00:00 2001 From: Vishal Jagtap Date: Tue, 17 Mar 2020 18:56:17 +0530 Subject: [PATCH 086/187] Updated links (#1069) * Updated ReactJS home URL link * Updated React Native URL Link --- README.md | 2 +- site/jekyll/_posts/2014-04-04-hello-world.md | 2 +- site/jekyll/_posts/2014-09-14-1.1.2-release.md | 2 +- site/jekyll/_posts/2014-11-02-1.1.3-release.md | 2 +- site/jekyll/_posts/2015-04-13-1.5.0-release.md | 2 +- site/jekyll/index.md | 4 ++-- site/jekyll/tutorials/aspnet4.md | 2 +- site/jekyll/tutorials/aspnetcore.md | 2 +- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index f4935a606..e7c064464 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # [ReactJS.NET](http://reactjs.net/) -ReactJS.NET is a library that makes it easier to use [Babel](http://babeljs.io/) along with Facebook's [React](http://facebook.github.io/react/) and [JSX](http://facebook.github.io/react/docs/jsx-in-depth.html) from C#. +ReactJS.NET is a library that makes it easier to use [Babel](http://babeljs.io/) along with Facebook's [React](https://reactjs.org/) and [JSX](https://reactjs.org/docs/jsx-in-depth.html) from C#. [![Build status](https://img.shields.io/appveyor/ci/Daniel15/react-net/master.svg)](https://ci.appveyor.com/project/Daniel15/react-net/branch/master)  [![NuGet version](http://img.shields.io/nuget/v/React.Core.svg)](https://www.nuget.org/packages/React.Core/) diff --git a/site/jekyll/_posts/2014-04-04-hello-world.md b/site/jekyll/_posts/2014-04-04-hello-world.md index eed6e1d19..7478fb9e6 100644 --- a/site/jekyll/_posts/2014-04-04-hello-world.md +++ b/site/jekyll/_posts/2014-04-04-hello-world.md @@ -3,7 +3,7 @@ title: "Use React and JSX in ASP.NET MVC" layout: post author: Daniel Lo Nigro --- -*Cross-posted from [the official React blog](http://facebook.github.io/react/blog/2014/04/04/reactnet.html).* +*Cross-posted from [the official React blog](https://reactjs.org/blog/2014/04/04/reactnet.html).* ____ Today we're happy to announce the initial release of diff --git a/site/jekyll/_posts/2014-09-14-1.1.2-release.md b/site/jekyll/_posts/2014-09-14-1.1.2-release.md index f19dde050..4d8de5b48 100644 --- a/site/jekyll/_posts/2014-09-14-1.1.2-release.md +++ b/site/jekyll/_posts/2014-09-14-1.1.2-release.md @@ -7,7 +7,7 @@ author: Daniel Lo Nigro I'm happy to announce the release of ReactJS.NET 1.1.2! This is a minor release and includes a number of changes and fixes since version 1.1.1: * Error messages now contain more details, including file name, component name, line number and column number. This should make debugging a bit easier, especially if you're debugging without Visual Studio attached. ([#17](https://github.com/reactjs/React.NET/issues/17)) - * [JSX Namespacing](http://facebook.github.io/react/blog/2014/07/17/react-v0.11.html#jsx-namespacing) is now supported ([#37](https://github.com/reactjs/React.NET/issues/37)) + * [JSX Namespacing](https://reactjs.org/blog/2014/07/17/react-v0.11.html#jsx-namespacing) is now supported ([#37](https://github.com/reactjs/React.NET/issues/37)) Have fun, and as always, please feel free to send feedback or bug reports [on GitHub](https://github.com/reactjs/React.NET). diff --git a/site/jekyll/_posts/2014-11-02-1.1.3-release.md b/site/jekyll/_posts/2014-11-02-1.1.3-release.md index ae3ad9a51..0cfb0d7d5 100644 --- a/site/jekyll/_posts/2014-11-02-1.1.3-release.md +++ b/site/jekyll/_posts/2014-11-02-1.1.3-release.md @@ -6,7 +6,7 @@ author: Daniel Lo Nigro I'm happy to announce the release of ReactJS.NET 1.1.3! -In this release, the React version has been upgraded from 0.11.1 to 0.12. The main changes in this React release are that `/** @jsx React.DOM */` is no longer required at the top of your JSX files, and `React.renderComponent` is now `React.render`. A few other API methods have changed as well. [See the official announcement](http://facebook.github.io/react/blog/2014/10/28/react-v0.12.html) for more information on all the changes in this version of React. +In this release, the React version has been upgraded from 0.11.1 to 0.12. The main changes in this React release are that `/** @jsx React.DOM */` is no longer required at the top of your JSX files, and `React.renderComponent` is now `React.render`. A few other API methods have changed as well. [See the official announcement](https://reactjs.org/blog/2014/10/28/react-v0.12.html) for more information on all the changes in this version of React. ReactJS.NET 1.1.3 also adds preliminary support for using Google's V8 JavaScript engine on Windows, via Microsoft's [ClearScript](https://clearscript.codeplex.com/) project. Previously ReactJS.NET only supported V8 on Mac OS X and Linux. This should be considered beta quality, in that it works but has not been stress tested in a production environment yet (whereas the Linux implementation has been). Future releases will make the handling of JavaScript engines more efficient. diff --git a/site/jekyll/_posts/2015-04-13-1.5.0-release.md b/site/jekyll/_posts/2015-04-13-1.5.0-release.md index 82ce4a500..c98dd9e64 100644 --- a/site/jekyll/_posts/2015-04-13-1.5.0-release.md +++ b/site/jekyll/_posts/2015-04-13-1.5.0-release.md @@ -6,7 +6,7 @@ author: Daniel Lo Nigro I'm happy to announce the release of ReactJS.NET 1.5! This is a minor release and includes a number of changes and fixes since version 1.4: - * [#93](https://github.com/reactjs/React.NET/issues/93) - Upgraded React to 0.13.1. See the full [changelog on the React site](http://facebook.github.io/react/blog/2015/03/10/react-v0.13.html). + * [#93](https://github.com/reactjs/React.NET/issues/93) - Upgraded React to 0.13.1. See the full [changelog on the React site](https://reactjs.org/blog/2015/03/10/react-v0.13.html). * [#91](https://github.com/reactjs/React.NET/issues/91) - Method to load a script without transforming it. It's becoming more and more common to use external build systems (Gulp, Grunt) or bundlers (Webpack, Browserify) that handle the JSX transformation. The output of these can be loaded directly into ReactJS.NET as it's just vanilla JavaScript. `AddScriptWithoutTransform` makes loading these files more efficient by just loading them directly. * New option to disable the MSIE JavaScript engine and force use of the V8 engine. If V8 can't be initialised for whatever reason, an exception is thrown. * [#103](https://github.com/reactjs/React.NET/pull/103) - Flag for `RenderHtml` to skip server-side rendering and only render the client-side JavaScript. Useful for debugging the JavaScript in a browser. *Thanks [Justin Slattery](https://github.com/jslatts)*. diff --git a/site/jekyll/index.md b/site/jekyll/index.md index 610121f92..5b8ba666d 100644 --- a/site/jekyll/index.md +++ b/site/jekyll/index.md @@ -16,8 +16,8 @@ id: home

ReactJS.NET makes it easier to use Facebook's - [React](http://facebook.github.io/react/) and - [JSX](http://facebook.github.io/react/docs/jsx-in-depth.html) from C# and + [React](https://reactjs.org/) and + [JSX](https://reactjs.org/docs/jsx-in-depth.html) from C# and other .NET languages, focusing specifically on ASP.NET MVC (although it also works in other environments). It supports both ASP.NET 4 (with MVC 4 or 5), and ASP.NET Core MVC. It is cross-platform and can run on Linux via Mono diff --git a/site/jekyll/tutorials/aspnet4.md b/site/jekyll/tutorials/aspnet4.md index 375d6e518..3190fc941 100644 --- a/site/jekyll/tutorials/aspnet4.md +++ b/site/jekyll/tutorials/aspnet4.md @@ -179,7 +179,7 @@ You do not have to return basic HTML. You can return a tree of components that y `ReactDOM.render()` instantiates the root component, starts the framework, and injects the markup into a raw DOM element, provided as the second argument. -The `ReactDOM` module exposes DOM-specific methods, while `React` has the core tools shared by React on different platforms (e.g., [React Native](https://facebook.github.io/react-native/)). +The `ReactDOM` module exposes DOM-specific methods, while `React` has the core tools shared by React on different platforms (e.g., [React Native](https://reactnative.dev/)). ## Composing components diff --git a/site/jekyll/tutorials/aspnetcore.md b/site/jekyll/tutorials/aspnetcore.md index 5c1478b90..3eb6b5a26 100644 --- a/site/jekyll/tutorials/aspnetcore.md +++ b/site/jekyll/tutorials/aspnetcore.md @@ -273,7 +273,7 @@ You do not have to return basic HTML. You can return a tree of components that y `ReactDOM.render()` instantiates the root component, starts the framework, and injects the markup into a raw DOM element, provided as the second argument. -The `ReactDOM` module exposes DOM-specific methods, while `React` has the core tools shared by React on different platforms (e.g., [React Native](https://facebook.github.io/react-native/)). +The `ReactDOM` module exposes DOM-specific methods, while `React` has the core tools shared by React on different platforms (e.g., [React Native](https://reactnative.dev/)). ## Composing components From b4d0ec54694bf5eb83fb99bc32cc00cf1379106d Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 19 Mar 2020 20:02:23 +0000 Subject: [PATCH 087/187] Update react monorepo to v16.13.1 --- src/React.Core/package-lock.json | 20 ++++++++++---------- src/React.Core/package.json | 4 ++-- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index f723fcd91..7ef48e405 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -3474,9 +3474,9 @@ } }, "react": { - "version": "16.13.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.13.0.tgz", - "integrity": "sha512-TSavZz2iSLkq5/oiE7gnFzmURKZMltmi193rm5HEoUDAXpzT9Kzw6oNZnGoai/4+fUnm7FqS5dwgUL34TujcWQ==", + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react/-/react-16.13.1.tgz", + "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==", "dev": true, "requires": { "loose-envify": "^1.1.0", @@ -3485,15 +3485,15 @@ } }, "react-dom": { - "version": "16.13.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.0.tgz", - "integrity": "sha512-y09d2c4cG220DzdlFkPTnVvGTszVvNpC73v+AaLGLHbkpy3SSgvYq8x0rNwPJ/Rk/CicTNgk0hbHNw1gMEZAXg==", + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz", + "integrity": "sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==", "dev": true, "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", "prop-types": "^15.6.2", - "scheduler": "^0.19.0" + "scheduler": "^0.19.1" } }, "react-is": { @@ -3671,9 +3671,9 @@ } }, "scheduler": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.0.tgz", - "integrity": "sha512-xowbVaTPe9r7y7RUejcK73/j8tt2jfiyTednOvHbA8JoClvMYCp+r8QegLwK/n8zWQAtZb1fFnER4XLBZXrCxA==", + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", "dev": true, "requires": { "loose-envify": "^1.1.0", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index df3a2e67b..37256fe27 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -9,8 +9,8 @@ "@babel/core": "7.8.7", "@babel/standalone": "7.8.8", "prop-types": "15.7.2", - "react": "16.13.0", - "react-dom": "16.13.0", + "react": "16.13.1", + "react-dom": "16.13.1", "webpack": "4.42.0", "webpack-cli": "3.3.11" } From c4fdacac4989cca3dd9a74a3a8169c60036e2273 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 20 Mar 2020 08:53:35 +0000 Subject: [PATCH 088/187] Update react monorepo to v16.13.1 --- src/React.Sample.Owin/Content/Index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/React.Sample.Owin/Content/Index.html b/src/React.Sample.Owin/Content/Index.html index e222c6ae3..68f13d837 100644 --- a/src/React.Sample.Owin/Content/Index.html +++ b/src/React.Sample.Owin/Content/Index.html @@ -10,11 +10,11 @@

"))); + .Select(scriptPath => $""))); } /// /// Returns style tags based on the webpack asset manifest /// /// + /// Optional IUrlHelper instance. Enables the use of tilde/relative (~/) paths inside the expose-components.js file. /// - public static IHtmlString ReactGetStylePaths(this IHtmlHelper htmlHelper) + public static IHtmlString ReactGetStylePaths(this IHtmlHelper htmlHelper, IUrlHelper urlHelper = null) { return new HtmlString(string.Join("", Environment.GetStylePaths() - .Select(stylePath => $""))); + .Select(stylePath => $""))); } private static IHtmlString RenderToString(Action withWriter) From 7e5c2abff0326e37df41a71642c080f3a0960958 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Tue, 25 Aug 2020 21:15:32 -0700 Subject: [PATCH 155/187] 5.2.9 --- build.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.proj b/build.proj index f363140ed..6ca30e8ff 100644 --- a/build.proj +++ b/build.proj @@ -11,7 +11,7 @@ of patent rights can be found in the PATENTS file in the same directory. 5 2 - 8 + 9 0 http://reactjs.net/packages/ $(MSBuildProjectDirectory)\tools\MSBuildTasks From 5ae4b2ea17ddaaa1c46883eb99fe5fc663d7894b Mon Sep 17 00:00:00 2001 From: Adam Date: Thu, 3 Sep 2020 15:01:38 +0200 Subject: [PATCH 156/187] Changed "Html.ReactInitJavascript" to "Html.ReactInitJavaScript" (#1198) Struggled with this for a while, and I couldn't find a reason why "Html.ReactInitJavascript" didn't work. Saw a post on stackoverflow where "Html.ReactInitJavaScript" was used, and noticed that the S should be uppercase. --- site/jekyll/bundling/webpack.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/site/jekyll/bundling/webpack.md b/site/jekyll/bundling/webpack.md index 29b151ebb..0f39b168e 100644 --- a/site/jekyll/bundling/webpack.md +++ b/site/jekyll/bundling/webpack.md @@ -91,7 +91,7 @@ Reference the built bundle directly in a script tag at the end of the page in `_ - @Html.ReactInitJavascript() + @Html.ReactInitJavaScript() ``` @@ -121,6 +121,6 @@ Then, make calls to `@Html.ReactGetScriptPaths()` and `@Html.ReactGetStylePaths( @RenderBody() @Html.ReactGetScriptPaths() - @Html.ReactInitJavascript() + @Html.ReactInitJavaScript() ``` From a55b8c6ff05ea561c49a9b44db44c98e549a8722 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Thu, 3 Sep 2020 18:25:07 -0700 Subject: [PATCH 157/187] Update azure-pipelines.yml Use updated sdk --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 916c5894c..d59257036 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -19,7 +19,7 @@ steps: - task: DotNetCoreInstaller@0 inputs: packageType: 'sdk' - version: '3.1.100' + version: '3.1.401' - task: VSBuild@1 inputs: From 495a51163d9a7f6e2e586d47248fe148d93de22d Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Thu, 3 Sep 2020 18:25:47 -0700 Subject: [PATCH 158/187] Update dotnet-core-desktop.yml Use updated sdk --- .github/workflows/dotnet-core-desktop.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dotnet-core-desktop.yml b/.github/workflows/dotnet-core-desktop.yml index 4ccca5c73..944794f7f 100644 --- a/.github/workflows/dotnet-core-desktop.yml +++ b/.github/workflows/dotnet-core-desktop.yml @@ -39,7 +39,7 @@ jobs: - name: Install .NET Core uses: actions/setup-dotnet@v1 with: - dotnet-version: 3.1.101 + dotnet-version: 3.1.401 - name: Use Node.js 12 uses: actions/setup-node@v1 From ab7bedfb7ffb7c900132f72dcd11536f554b09de Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 6 Sep 2020 17:07:40 -0700 Subject: [PATCH 159/187] Update dotnet-core-desktop.yml Maybe this will fix it? --- .github/workflows/dotnet-core-desktop.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dotnet-core-desktop.yml b/.github/workflows/dotnet-core-desktop.yml index 944794f7f..d23eec528 100644 --- a/.github/workflows/dotnet-core-desktop.yml +++ b/.github/workflows/dotnet-core-desktop.yml @@ -39,7 +39,7 @@ jobs: - name: Install .NET Core uses: actions/setup-dotnet@v1 with: - dotnet-version: 3.1.401 + dotnet-version: 3.1.x - name: Use Node.js 12 uses: actions/setup-node@v1 From 7092ae4b89a1fe2741aceead611ceefe478bf5dc Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 6 Sep 2020 17:08:38 -0700 Subject: [PATCH 160/187] Update azure-pipelines.yml Fix SDK reference --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index d59257036..4263d1d17 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -19,7 +19,7 @@ steps: - task: DotNetCoreInstaller@0 inputs: packageType: 'sdk' - version: '3.1.401' + version: '3.1.x' - task: VSBuild@1 inputs: From 0908329ac61634faf7ea5a40a3e73b65ecc2f3b4 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Tue, 8 Sep 2020 10:17:28 -0700 Subject: [PATCH 161/187] Ci updates (#1202) * Azure: Try 3.1 sdk * Update azure-pipelines.yml * Target netcoreapp3.1 * Migrate to UseDotNet step * Update azure-pipelines.yml picky, picky * Fix tests --- azure-pipelines.yml | 4 +++- .../React.Tests.Benchmarks.csproj | 2 +- tests/React.Tests.Common/MemoryFileCacheCore.cs | 2 +- tests/React.Tests.Common/React.Tests.Common.csproj | 4 ++-- .../React.Tests.Integration.csproj | 2 +- tests/React.Tests/Core/MiddlewareTests.cs | 4 ++-- tests/React.Tests/Core/ReactEnvironmentTest.cs | 2 +- tests/React.Tests/React.Tests.csproj | 6 +++--- .../Router/ReactEnvironmentExtensionsTest.cs | 2 +- tests/React.Tests/Router/ReactRouterComponentTest.cs | 10 +++++----- 10 files changed, 20 insertions(+), 18 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 4263d1d17..2c176e021 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,5 +1,6 @@ trigger: - main + - ci-updates pool: vmImage: 'windows-2019' @@ -16,7 +17,8 @@ steps: - script: npm install --global npm - - task: DotNetCoreInstaller@0 + - task: UseDotNet@2 + displayName: 'Use .NET Core sdk' inputs: packageType: 'sdk' version: '3.1.x' diff --git a/tests/React.Tests.Benchmarks/React.Tests.Benchmarks.csproj b/tests/React.Tests.Benchmarks/React.Tests.Benchmarks.csproj index 0325e491b..6492d7fee 100644 --- a/tests/React.Tests.Benchmarks/React.Tests.Benchmarks.csproj +++ b/tests/React.Tests.Benchmarks/React.Tests.Benchmarks.csproj @@ -2,7 +2,7 @@ Exe - net461;netcoreapp2.0 + net461;netcoreapp3.1 diff --git a/tests/React.Tests.Common/MemoryFileCacheCore.cs b/tests/React.Tests.Common/MemoryFileCacheCore.cs index c170ca39a..ef0ebf75b 100644 --- a/tests/React.Tests.Common/MemoryFileCacheCore.cs +++ b/tests/React.Tests.Common/MemoryFileCacheCore.cs @@ -5,7 +5,7 @@ * LICENSE file in the root directory of this source tree. */ -#if NETCOREAPP2_0 +#if NETCOREAPP using System; using System.Collections.Generic; diff --git a/tests/React.Tests.Common/React.Tests.Common.csproj b/tests/React.Tests.Common/React.Tests.Common.csproj index d6128f105..a34e36235 100644 --- a/tests/React.Tests.Common/React.Tests.Common.csproj +++ b/tests/React.Tests.Common/React.Tests.Common.csproj @@ -1,7 +1,7 @@ - net461;netcoreapp2.0 + net461;netcoreapp3.1 false @@ -9,7 +9,7 @@ - + diff --git a/tests/React.Tests.Integration/React.Tests.Integration.csproj b/tests/React.Tests.Integration/React.Tests.Integration.csproj index e280eb605..1d28bf8c7 100644 --- a/tests/React.Tests.Integration/React.Tests.Integration.csproj +++ b/tests/React.Tests.Integration/React.Tests.Integration.csproj @@ -1,6 +1,6 @@ - net461;netcoreapp2.0 + net461;netcoreapp3.1 false diff --git a/tests/React.Tests/Core/MiddlewareTests.cs b/tests/React.Tests/Core/MiddlewareTests.cs index c6a92e797..c7ef81120 100644 --- a/tests/React.Tests/Core/MiddlewareTests.cs +++ b/tests/React.Tests/Core/MiddlewareTests.cs @@ -1,4 +1,4 @@ -#if NETCOREAPP2_0 +#if NETCOREAPP using System.Runtime.InteropServices; using Microsoft.AspNetCore.Hosting; @@ -13,7 +13,7 @@ public class MiddlewareTests [Fact] public void ForwardSlashesAreTransformed() { - var environment = new Mock(); + var environment = new Mock(); if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { environment.Setup(x => x.WebRootPath).Returns("c:\\temp"); diff --git a/tests/React.Tests/Core/ReactEnvironmentTest.cs b/tests/React.Tests/Core/ReactEnvironmentTest.cs index 9b1242746..5ae496141 100644 --- a/tests/React.Tests/Core/ReactEnvironmentTest.cs +++ b/tests/React.Tests/Core/ReactEnvironmentTest.cs @@ -48,7 +48,7 @@ public void ExecuteWithBabelWithNoNewThread() environment.ExecuteWithBabel("foo"); mocks.Engine.Verify(x => x.CallFunction("foo"), Times.Exactly(1)); } -#if NET452 || NETCOREAPP2_0 +#if NET452 || NETCOREAPP [Fact] public void ExecuteWithBabelWithNewThread() diff --git a/tests/React.Tests/React.Tests.csproj b/tests/React.Tests/React.Tests.csproj index a93944cea..00e4990b5 100644 --- a/tests/React.Tests/React.Tests.csproj +++ b/tests/React.Tests/React.Tests.csproj @@ -4,7 +4,7 @@ Copyright 2014-Present Facebook, Inc ReactJS.NET Unit Tests Daniel Lo Nigro - net452;netcoreapp2.0 + net452;netcoreapp3.1 React.Tests ../../src/key.snk true @@ -25,11 +25,11 @@ - + - + diff --git a/tests/React.Tests/Router/ReactEnvironmentExtensionsTest.cs b/tests/React.Tests/Router/ReactEnvironmentExtensionsTest.cs index a1327f2f8..ad9bd550d 100644 --- a/tests/React.Tests/Router/ReactEnvironmentExtensionsTest.cs +++ b/tests/React.Tests/Router/ReactEnvironmentExtensionsTest.cs @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ -#if NET452 || NETCOREAPP2_0 +#if NET452 || NETCOREAPP using Moq; using Xunit; diff --git a/tests/React.Tests/Router/ReactRouterComponentTest.cs b/tests/React.Tests/Router/ReactRouterComponentTest.cs index 62f144ec8..f939eaf1d 100644 --- a/tests/React.Tests/Router/ReactRouterComponentTest.cs +++ b/tests/React.Tests/Router/ReactRouterComponentTest.cs @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ -#if NET452 || NETCOREAPP2_0 +#if NET452 || NETCOREAPP using Moq; using Xunit; @@ -39,15 +39,15 @@ public void RenderJavaScriptShouldNotIncludeContextOrPath(bool clientOnly, bool @"ReactDOM.render(React.createElement(Foo, {""hello"":""World""}), document.getElementById(""container""))", result ); - } - else + } + else { Assert.Equal( @"ReactDOM.hydrate(React.createElement(Foo, {""hello"":""World""}), document.getElementById(""container""))", result ); } - + } [Theory] @@ -76,7 +76,7 @@ public void RenderJavaScriptShouldHandleWaitForContentLoad(bool clientOnly, bool result ); } - else + else { Assert.Equal( @"window.addEventListener('DOMContentLoaded', function() {ReactDOM.hydrate(React.createElement(Foo, {""hello"":""World""}), document.getElementById(""container""))});", From 99a94a1363cb237373e6f4d5b79f5edb2ad390f6 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sat, 12 Sep 2020 20:53:08 -0700 Subject: [PATCH 162/187] Skip adding to _components during ReactWithInit (#1155) --- src/React.Core/IReactEnvironment.cs | 3 ++- src/React.Core/ReactEnvironment.cs | 9 +++++++-- tests/React.Tests/Core/ReactEnvironmentTest.cs | 10 ++++++++++ tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs | 10 ++++++++-- 4 files changed, 27 insertions(+), 5 deletions(-) diff --git a/src/React.Core/IReactEnvironment.cs b/src/React.Core/IReactEnvironment.cs index 2b8d0927d..a62437a5b 100644 --- a/src/React.Core/IReactEnvironment.cs +++ b/src/React.Core/IReactEnvironment.cs @@ -82,8 +82,9 @@ public interface IReactEnvironment /// ID to use for the container HTML tag. Defaults to an auto-generated ID /// True if server-side rendering will be bypassed. Defaults to false. /// True if this component only should be rendered server-side. Defaults to false. + /// Skip adding to components list, which is used during GetInitJavascript /// The component - IReactComponent CreateComponent(string componentName, T props, string containerId = null, bool clientOnly = false, bool serverOnly = false); + IReactComponent CreateComponent(string componentName, T props, string containerId = null, bool clientOnly = false, bool serverOnly = false, bool skipLazyInit = false); /// /// Adds the provided to the list of components to render client side. diff --git a/src/React.Core/ReactEnvironment.cs b/src/React.Core/ReactEnvironment.cs index 5dc043562..9ec081d40 100644 --- a/src/React.Core/ReactEnvironment.cs +++ b/src/React.Core/ReactEnvironment.cs @@ -273,8 +273,9 @@ public virtual bool HasVariable(string name) /// ID to use for the container HTML tag. Defaults to an auto-generated ID /// True if server-side rendering will be bypassed. Defaults to false. /// True if this component only should be rendered server-side. Defaults to false. + /// Skip adding to components list, which is used during GetInitJavascript /// The component - public virtual IReactComponent CreateComponent(string componentName, T props, string containerId = null, bool clientOnly = false, bool serverOnly = false) + public virtual IReactComponent CreateComponent(string componentName, T props, string containerId = null, bool clientOnly = false, bool serverOnly = false, bool skipLazyInit = false) { if (!clientOnly) { @@ -287,7 +288,11 @@ public virtual IReactComponent CreateComponent(string componentName, T props, Props = props, ServerOnly = serverOnly }; - _components.Add(component); + + if (!skipLazyInit) + { + _components.Add(component); + } return component; } diff --git a/tests/React.Tests/Core/ReactEnvironmentTest.cs b/tests/React.Tests/Core/ReactEnvironmentTest.cs index 5ae496141..69ffb234d 100644 --- a/tests/React.Tests/Core/ReactEnvironmentTest.cs +++ b/tests/React.Tests/Core/ReactEnvironmentTest.cs @@ -218,6 +218,16 @@ public void StyleTagsReturned() Assert.Equal("static/css/another-stylesheet.css", styles[1]); } + [Fact] + public void SkipLazyInit() + { + var mocks = new Mocks(); + var environment = mocks.CreateReactEnvironment(); + + environment.CreateComponent("ComponentName", new { }, skipLazyInit: true); + Assert.Equal("", environment.GetInitJavaScript()); + } + public class Mocks { public Mock Engine { get; private set; } diff --git a/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs b/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs index 4bdfdbace..964b26178 100644 --- a/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs +++ b/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs @@ -49,6 +49,7 @@ public void ReactWithInitShouldReturnHtmlAndScript() new { }, null, false, + false, false )).Returns(component.Object); @@ -109,6 +110,7 @@ public void ScriptNonceIsReturned() new { }, null, false, + false, false )).Returns(component.Object); @@ -154,6 +156,7 @@ public void EngineIsReturnedToPoolAfterRender() new { }, null, true, + false, false )).Returns(component.Object); @@ -184,6 +187,7 @@ public void ReactWithClientOnlyTrueShouldCallRenderHtmlWithTrue() new { }, null, true, + false, false )).Returns(component.Object); @@ -212,7 +216,8 @@ public void ReactWithServerOnlyTrueShouldCallRenderHtmlWithTrue() new { }, null, false, - true + true, + false )).Returns(component.Object); var result = HtmlHelperExtensions.React( @@ -250,7 +255,8 @@ public void RenderFunctionsCalledNonLazily() new { }, null, false, - true + true, + false )).Returns(component.Object); var result = HtmlHelperExtensions.React( From 3285de86b19956555ebfe9f59671054567d2e11e Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sat, 12 Sep 2020 21:58:16 -0700 Subject: [PATCH 163/187] 5.2.10 --- build.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.proj b/build.proj index 6ca30e8ff..68606ceb4 100644 --- a/build.proj +++ b/build.proj @@ -11,7 +11,7 @@ of patent rights can be found in the PATENTS file in the same directory. 5 2 - 9 + 10 0 http://reactjs.net/packages/ $(MSBuildProjectDirectory)\tools\MSBuildTasks From 57c8f6e187fabcb816f9cc357e3c632d870aa31a Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 14 Sep 2020 04:33:47 +0000 Subject: [PATCH 164/187] Update React.NET packages to v5.2.10 --- src/React.Template/reactnet-vanilla/tutorial-code.csproj | 2 +- src/React.Template/reactnet-webpack/SampleApp.csproj | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/React.Template/reactnet-vanilla/tutorial-code.csproj b/src/React.Template/reactnet-vanilla/tutorial-code.csproj index e7db40c35..ae7810def 100644 --- a/src/React.Template/reactnet-vanilla/tutorial-code.csproj +++ b/src/React.Template/reactnet-vanilla/tutorial-code.csproj @@ -20,7 +20,7 @@ - + diff --git a/src/React.Template/reactnet-webpack/SampleApp.csproj b/src/React.Template/reactnet-webpack/SampleApp.csproj index c8049c268..81f0ad509 100644 --- a/src/React.Template/reactnet-webpack/SampleApp.csproj +++ b/src/React.Template/reactnet-webpack/SampleApp.csproj @@ -14,8 +14,8 @@ - - + + From 0c7f4bb1235de13fb1a190e1ab3aa840e6c6d1e8 Mon Sep 17 00:00:00 2001 From: Ryan Johnson Date: Thu, 17 Sep 2020 13:21:55 -0700 Subject: [PATCH 165/187] Fix typo in file name. (#1206) --- ...thBabelBenchmarks.cs => ComponentRenderWithBabelBenchmarks.cs} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename tests/React.Tests.Benchmarks/{ComponentRenderWIthBabelBenchmarks.cs => ComponentRenderWithBabelBenchmarks.cs} (100%) diff --git a/tests/React.Tests.Benchmarks/ComponentRenderWIthBabelBenchmarks.cs b/tests/React.Tests.Benchmarks/ComponentRenderWithBabelBenchmarks.cs similarity index 100% rename from tests/React.Tests.Benchmarks/ComponentRenderWIthBabelBenchmarks.cs rename to tests/React.Tests.Benchmarks/ComponentRenderWithBabelBenchmarks.cs From 351ee5fe10d0abe512ee2ce1d6b621e4958713ed Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 1 Oct 2020 23:16:32 +0000 Subject: [PATCH 166/187] Update dependency @types/react to v16.9.50 --- src/React.Sample.Mvc4/package-lock.json | 12 ++++++------ src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index eef49dc77..c0f6dac24 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.9.46", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.46.tgz", - "integrity": "sha512-dbHzO3aAq1lB3jRQuNpuZ/mnu+CdD3H0WVaaBQA8LTT3S33xhVBUj232T8M3tAhSWJs/D/UqORYUlJNl/8VQZg==", + "version": "16.9.50", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.50.tgz", + "integrity": "sha512-kPx5YsNnKDJejTk1P+lqThwxN2PczrocwsvqXnjvVvKpFescoY62ZiM3TV7dH1T8lFhlHZF+PE5xUyimUwqEGA==", "dev": true, "requires": { "@types/prop-types": "*", @@ -40,9 +40,9 @@ } }, "csstype": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.2.tgz", - "integrity": "sha512-ofovWglpqoqbfLNOTBNZLSbMuGrblAf1efvvArGKOZMBrIoJeu5UsAipQolkijtyQx5MtAzT/J9IHj/CEY1mJw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.3.tgz", + "integrity": "sha512-jPl+wbWPOWJ7SXsWyqGRk3lGecbar0Cb0OvZF/r/ZU011R4YqiRehgkQ9p4eQfo9DSDLqLL3wHwfxeJiuIsNag==", "dev": true }, "popper.js": { diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index dddedfca8..9aeab5c60 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.46", + "@types/react": "16.9.50", "@types/react-dom": "16.9.8", "@types/reactstrap": "8.5.1", "typescript": "3.9.7" From e4f90da4e2ee5a02687f6cdfc4eea5f298f92292 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 5 Oct 2020 18:16:07 +0000 Subject: [PATCH 167/187] Update dependency @types/react to v16.9.51 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index c0f6dac24..4fe6652c3 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.9.50", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.50.tgz", - "integrity": "sha512-kPx5YsNnKDJejTk1P+lqThwxN2PczrocwsvqXnjvVvKpFescoY62ZiM3TV7dH1T8lFhlHZF+PE5xUyimUwqEGA==", + "version": "16.9.51", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.51.tgz", + "integrity": "sha512-lQa12IyO+DMlnSZ3+AGHRUiUcpK47aakMMoBG8f7HGxJT8Yfe+WE128HIXaHOHVPReAW0oDS3KAI0JI2DDe1PQ==", "dev": true, "requires": { "@types/prop-types": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 9aeab5c60..ee5669841 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.50", + "@types/react": "16.9.51", "@types/react-dom": "16.9.8", "@types/reactstrap": "8.5.1", "typescript": "3.9.7" From 9f901b7cb502b5017f0b02421d793e21e80313ca Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sun, 11 Oct 2020 14:34:32 +0000 Subject: [PATCH 168/187] Update dependency @types/react to v16.9.52 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 4fe6652c3..4c77fc320 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.9.51", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.51.tgz", - "integrity": "sha512-lQa12IyO+DMlnSZ3+AGHRUiUcpK47aakMMoBG8f7HGxJT8Yfe+WE128HIXaHOHVPReAW0oDS3KAI0JI2DDe1PQ==", + "version": "16.9.52", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.52.tgz", + "integrity": "sha512-EHRjmnxiNivwhGdMh9sz1Yw9AUxTSZFxKqdBWAAzyZx3sufWwx6ogqHYh/WB1m/I4ZpjkoZLExF5QTy2ekVi/Q==", "dev": true, "requires": { "@types/prop-types": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index ee5669841..6091016e4 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.51", + "@types/react": "16.9.52", "@types/react-dom": "16.9.8", "@types/reactstrap": "8.5.1", "typescript": "3.9.7" From 0217d301f58c81519618271baad97d2c8f05eaa7 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 16 Oct 2020 19:00:02 +0000 Subject: [PATCH 169/187] Update dependency @types/react to v16.9.53 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 4c77fc320..c7ad8b1a4 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.9.52", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.52.tgz", - "integrity": "sha512-EHRjmnxiNivwhGdMh9sz1Yw9AUxTSZFxKqdBWAAzyZx3sufWwx6ogqHYh/WB1m/I4ZpjkoZLExF5QTy2ekVi/Q==", + "version": "16.9.53", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.53.tgz", + "integrity": "sha512-4nW60Sd4L7+WMXH1D6jCdVftuW7j4Za6zdp6tJ33Rqv0nk1ZAmQKML9ZLD4H0dehA3FZxXR/GM8gXplf82oNGw==", "dev": true, "requires": { "@types/prop-types": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 6091016e4..1dd59e8ed 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.52", + "@types/react": "16.9.53", "@types/react-dom": "16.9.8", "@types/reactstrap": "8.5.1", "typescript": "3.9.7" From 2746df6a5d232bcce3d731da23ca7afe76611156 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 23 Oct 2020 06:46:53 +0000 Subject: [PATCH 170/187] Update dependency @types/reactstrap to v8.5.2 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index c7ad8b1a4..483e007a0 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -30,9 +30,9 @@ } }, "@types/reactstrap": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@types/reactstrap/-/reactstrap-8.5.1.tgz", - "integrity": "sha512-oEedcEGoX8EqDymsjrjzTnmaf3FuDY9qKLZMA9cH1ZkkqBc2V4i2sJ6ssXEod+GHQ5XH2r52uvbMkjEkjEZHDQ==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/@types/reactstrap/-/reactstrap-8.5.2.tgz", + "integrity": "sha512-rmY0YTIivt8nbF9imjqTenuA7QtRwMKT+foETEs96LQhYhsVUeoUCnZiuTipdTa7dRGuXYFMQD7W3XWP3U1WTA==", "dev": true, "requires": { "@types/react": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 1dd59e8ed..6b5daae3f 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -9,7 +9,7 @@ "devDependencies": { "@types/react": "16.9.53", "@types/react-dom": "16.9.8", - "@types/reactstrap": "8.5.1", + "@types/reactstrap": "8.5.2", "typescript": "3.9.7" } } From 2c9ab122c923dff30d5d974f65dd89af0b0e56f4 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 27 Oct 2020 19:45:56 +0000 Subject: [PATCH 171/187] Update dependency @types/react-dom to v16.9.9 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 483e007a0..769cf1829 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -21,9 +21,9 @@ } }, "@types/react-dom": { - "version": "16.9.8", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.8.tgz", - "integrity": "sha512-ykkPQ+5nFknnlU6lDd947WbQ6TE3NNzbQAkInC2EKY1qeYdTKp7onFusmYZb+ityzx2YviqT6BXSu+LyWWJwcA==", + "version": "16.9.9", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.9.tgz", + "integrity": "sha512-jE16FNWO3Logq/Lf+yvEAjKzhpST/Eac8EMd1i4dgZdMczfgqC8EjpxwNgEe3SExHYLliabXDh9DEhhqnlXJhg==", "dev": true, "requires": { "@types/react": "*" diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 6b5daae3f..c4c224ddb 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -8,7 +8,7 @@ }, "devDependencies": { "@types/react": "16.9.53", - "@types/react-dom": "16.9.8", + "@types/react-dom": "16.9.9", "@types/reactstrap": "8.5.2", "typescript": "3.9.7" } From 275dc078e045df726d9fa42f1c7ac8b5b074c545 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 27 Oct 2020 20:50:18 +0000 Subject: [PATCH 172/187] Update dependency @types/react to v16.9.54 --- src/React.Sample.Mvc4/package-lock.json | 12 ++++++------ src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 769cf1829..b1e62c565 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.9.53", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.53.tgz", - "integrity": "sha512-4nW60Sd4L7+WMXH1D6jCdVftuW7j4Za6zdp6tJ33Rqv0nk1ZAmQKML9ZLD4H0dehA3FZxXR/GM8gXplf82oNGw==", + "version": "16.9.54", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.54.tgz", + "integrity": "sha512-GhawhYraQZpGFO2hVMArjPrYbnA/6+DS8SubK8IPhhVClmKqANihsRenOm5E0mvqK0m/BKoqVktA1O1+Xvlz9w==", "dev": true, "requires": { "@types/prop-types": "*", @@ -40,9 +40,9 @@ } }, "csstype": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.3.tgz", - "integrity": "sha512-jPl+wbWPOWJ7SXsWyqGRk3lGecbar0Cb0OvZF/r/ZU011R4YqiRehgkQ9p4eQfo9DSDLqLL3wHwfxeJiuIsNag==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.4.tgz", + "integrity": "sha512-xc8DUsCLmjvCfoD7LTGE0ou2MIWLx0K9RCZwSHMOdynqRsP4MtUcLeqh1HcQ2dInwDTqn+3CE0/FZh1et+p4jA==", "dev": true }, "popper.js": { diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index c4c224ddb..014f26402 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.53", + "@types/react": "16.9.54", "@types/react-dom": "16.9.9", "@types/reactstrap": "8.5.2", "typescript": "3.9.7" From 7a022bd0713a30fcad12d802e48fdae86ce0849c Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Wed, 28 Oct 2020 19:16:23 +0000 Subject: [PATCH 173/187] Update dependency @types/react to v16.9.55 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index b1e62c565..cbee6ba9f 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.9.54", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.54.tgz", - "integrity": "sha512-GhawhYraQZpGFO2hVMArjPrYbnA/6+DS8SubK8IPhhVClmKqANihsRenOm5E0mvqK0m/BKoqVktA1O1+Xvlz9w==", + "version": "16.9.55", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.55.tgz", + "integrity": "sha512-6KLe6lkILeRwyyy7yG9rULKJ0sXplUsl98MGoCfpteXf9sPWFWWMknDcsvubcpaTdBuxtsLF6HDUwdApZL/xIg==", "dev": true, "requires": { "@types/prop-types": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 014f26402..263950f78 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.54", + "@types/react": "16.9.55", "@types/react-dom": "16.9.9", "@types/reactstrap": "8.5.2", "typescript": "3.9.7" From 844ed84d067c6f66c292b4c630ba7e7de8c92ae3 Mon Sep 17 00:00:00 2001 From: Svante Seleborg Date: Thu, 29 Oct 2020 06:53:16 +0100 Subject: [PATCH 174/187] Avoid the exception during Dispose by only calling SetObject() when there is a HttpContext (#1219) --- src/React.Web/TinyIoCAspNetExtensions.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/React.Web/TinyIoCAspNetExtensions.cs b/src/React.Web/TinyIoCAspNetExtensions.cs index 303749461..584b93f9d 100644 --- a/src/React.Web/TinyIoCAspNetExtensions.cs +++ b/src/React.Web/TinyIoCAspNetExtensions.cs @@ -63,9 +63,10 @@ public void ReleaseObject() var item = GetObject() as IDisposable; if (item != null) + { item.Dispose(); - - SetObject(null); + SetObject(null); + } } /// From 751012117318f5b0115069cad721c8384a67617a Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Thu, 29 Oct 2020 11:37:51 -0400 Subject: [PATCH 175/187] 5.2.11 --- build.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.proj b/build.proj index 68606ceb4..f702ce175 100644 --- a/build.proj +++ b/build.proj @@ -11,7 +11,7 @@ of patent rights can be found in the PATENTS file in the same directory. 5 2 - 10 + 11 0 http://reactjs.net/packages/ $(MSBuildProjectDirectory)\tools\MSBuildTasks From 862b0f4954f91628b9d70da7d71c5c167572bb3f Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 29 Oct 2020 16:28:16 +0000 Subject: [PATCH 176/187] Update React.NET packages to v5.2.11 --- src/React.Template/reactnet-vanilla/tutorial-code.csproj | 2 +- src/React.Template/reactnet-webpack/SampleApp.csproj | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/React.Template/reactnet-vanilla/tutorial-code.csproj b/src/React.Template/reactnet-vanilla/tutorial-code.csproj index ae7810def..26f0680f3 100644 --- a/src/React.Template/reactnet-vanilla/tutorial-code.csproj +++ b/src/React.Template/reactnet-vanilla/tutorial-code.csproj @@ -20,7 +20,7 @@ - + diff --git a/src/React.Template/reactnet-webpack/SampleApp.csproj b/src/React.Template/reactnet-webpack/SampleApp.csproj index 81f0ad509..e2675751f 100644 --- a/src/React.Template/reactnet-webpack/SampleApp.csproj +++ b/src/React.Template/reactnet-webpack/SampleApp.csproj @@ -14,8 +14,8 @@ - - + + From 0aeb70dfaafb84852c565c1a3c042fb0e59e9603 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 2 Nov 2020 18:08:22 +0000 Subject: [PATCH 177/187] Update dependency @types/reactstrap to v8.5.3 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index cbee6ba9f..368a105d8 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -30,9 +30,9 @@ } }, "@types/reactstrap": { - "version": "8.5.2", - "resolved": "https://registry.npmjs.org/@types/reactstrap/-/reactstrap-8.5.2.tgz", - "integrity": "sha512-rmY0YTIivt8nbF9imjqTenuA7QtRwMKT+foETEs96LQhYhsVUeoUCnZiuTipdTa7dRGuXYFMQD7W3XWP3U1WTA==", + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/reactstrap/-/reactstrap-8.5.3.tgz", + "integrity": "sha512-B7okIEXUGUL5Ai1vZyqyz6FmILZQUYCK5RABcVY8Mxj94JrFaRlSPmZx4NTIarX+8jhQ3I1ItR5+/LdpE5c4Uw==", "dev": true, "requires": { "@types/react": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 263950f78..557032a9d 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -9,7 +9,7 @@ "devDependencies": { "@types/react": "16.9.55", "@types/react-dom": "16.9.9", - "@types/reactstrap": "8.5.2", + "@types/reactstrap": "8.5.3", "typescript": "3.9.7" } } From 54e0a96b9340f549b433be750f60fdb0200ddaa2 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 6 Nov 2020 08:47:19 +0000 Subject: [PATCH 178/187] Update dependency @types/react to v16.9.56 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 368a105d8..b2ba51d45 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.9.55", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.55.tgz", - "integrity": "sha512-6KLe6lkILeRwyyy7yG9rULKJ0sXplUsl98MGoCfpteXf9sPWFWWMknDcsvubcpaTdBuxtsLF6HDUwdApZL/xIg==", + "version": "16.9.56", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.56.tgz", + "integrity": "sha512-gIkl4J44G/qxbuC6r2Xh+D3CGZpJ+NdWTItAPmZbR5mUS+JQ8Zvzpl0ea5qT/ZT3ZNTUcDKUVqV3xBE8wv/DyQ==", "dev": true, "requires": { "@types/prop-types": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 557032a9d..eb41f628c 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.55", + "@types/react": "16.9.56", "@types/react-dom": "16.9.9", "@types/reactstrap": "8.5.3", "typescript": "3.9.7" From 23222435667e33714363806bd2bb72bf5b4cd5e6 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 9 Nov 2020 20:42:09 +0000 Subject: [PATCH 179/187] Update dependency Microsoft.NET.Sdk.Functions to v1.0.38 --- webhooks/React.Site.Hooks.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webhooks/React.Site.Hooks.csproj b/webhooks/React.Site.Hooks.csproj index 3edeb7d52..fd9214a09 100644 --- a/webhooks/React.Site.Hooks.csproj +++ b/webhooks/React.Site.Hooks.csproj @@ -3,7 +3,7 @@ net461 - + From ebb05bae7285c605e749304297025fa0218ca365 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Mon, 23 Nov 2020 16:32:04 -0500 Subject: [PATCH 180/187] Revert "Port banner and grayscale filter from reactjs.org (#1115)" This reverts commit febf1a408606afb21180010b1d07a0e38f3eb7d3. --- site/jekyll/_assets/stylesheets/react.scss | 15 ++------------- site/jekyll/_layouts/default.html | 5 +---- 2 files changed, 3 insertions(+), 17 deletions(-) diff --git a/site/jekyll/_assets/stylesheets/react.scss b/site/jekyll/_assets/stylesheets/react.scss index e87a01ccd..36ea1f560 100644 --- a/site/jekyll/_assets/stylesheets/react.scss +++ b/site/jekyll/_assets/stylesheets/react.scss @@ -52,17 +52,6 @@ html { background: $pageBg; } -.grayscale { - filter:grayscale(100%); - -webkit-filter:grayscale(100%); -} - -.top-banner { - font-size: 20px; - height: 60px; - text-align: center; - padding: 20px; -} .left { @@ -75,7 +64,7 @@ html { .container { - padding-top: 110px; + padding-top: $navHeight; min-width: $contentWidth + (2 * $contentPadding); } @@ -131,7 +120,7 @@ h1, h2, h3, h4, h5, h6 { color: $lightTextColor; position: fixed; top: 0; - height: 110px; + height: $navHeight; box-shadow: 0 0 5px rgba(0, 0, 0, .5); width: 100%; z-index: 100; diff --git a/site/jekyll/_layouts/default.html b/site/jekyll/_layouts/default.html index d25d19995..d59c8b506 100644 --- a/site/jekyll/_layouts/default.html +++ b/site/jekyll/_layouts/default.html @@ -37,8 +37,7 @@