From 7f9da0289c34e1d2b81f3ad2cb6b8a8e1ecebf48 Mon Sep 17 00:00:00 2001 From: Tien Nguyen Truong Date: Wed, 10 Mar 2021 16:46:08 +0700 Subject: [PATCH 1/2] add references --- README.md | 25 ++++++++++++++++++++++++- react-crud-example-web-api-demo.png | Bin 0 -> 14211 bytes 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 react-crud-example-web-api-demo.png diff --git a/README.md b/README.md index 472a3c4..3212e9b 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,36 @@ # React.js CRUD App with React Router & Axios -For more detail, please visit: +Build a React.js CRUD Application to consume Web API, display and modify data with Router, Axios & Bootstrap. + +React Tutorial Application in that: +- Each Tutorial has id, title, description, published status. +- We can create, retrieve, update, delete Tutorials. +- There is a Search bar for finding Tutorials by title. + +![react-crud-example-web-api-demo](react-crud-example-web-api-demo.png) + +For instruction, please visit: > [React (Components) CRUD example to consume Web API](https://bezkoder.com/react-crud-web-api/) +Related Posts: +> [React Redux CRUD App example with Rest API](https://bezkoder.com/react-redux-crud-example/) + > [React (Hooks) CRUD example to consume Web API](https://bezkoder.com/react-hooks-crud-axios-api/) +> [React Table example: CRUD App with react-table v7](https://bezkoder.com/react-table-example-hooks-crud/) + Using Material UI instead of Bootstrap: > [React Material UI examples with a CRUD Application](https://bezkoder.com/react-material-ui-examples-crud/) +More Practice: +> [React Pagination example](https://bezkoder.com/react-pagination-material-ui/) + +> [React File Upload example](https://bezkoder.com/react-file-upload-axios/) + +> [React JWT Authentication & Authorization example](https://bezkoder.com/react-jwt-auth/) + +> [React + Redux: JWT Authentication & Authorization example](https://bezkoder.com/react-redux-jwt-auth/) + Fullstack with Node.js Express: > [React.js + Node.js Express + MySQL](https://bezkoder.com/react-node-express-mysql/) diff --git a/react-crud-example-web-api-demo.png b/react-crud-example-web-api-demo.png new file mode 100644 index 0000000000000000000000000000000000000000..07603b3a9fa88609b5479a9cf947e1857f543cbd GIT binary patch literal 14211 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 g*yd`X0*S-qi|4k-rq Date: Tue, 11 May 2021 13:55:24 +0000 Subject: [PATCH 2/2] Bump hosted-git-info from 2.8.5 to 2.8.9 Bumps [hosted-git-info](https://github.com/npm/hosted-git-info) from 2.8.5 to 2.8.9. - [Release notes](https://github.com/npm/hosted-git-info/releases) - [Changelog](https://github.com/npm/hosted-git-info/blob/v2.8.9/CHANGELOG.md) - [Commits](https://github.com/npm/hosted-git-info/compare/v2.8.5...v2.8.9) Signed-off-by: dependabot[bot] --- package-lock.json | 47 +++++++++++----- yarn.lock | 134 ++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 163 insertions(+), 18 deletions(-) diff --git a/package-lock.json b/package-lock.json index 11c47f8..5707205 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5698,7 +5698,8 @@ }, "ansi-regex": { "version": "2.1.1", - "bundled": true + "bundled": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -5716,11 +5717,13 @@ }, "balanced-match": { "version": "1.0.0", - "bundled": true + "bundled": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -5733,15 +5736,18 @@ }, "code-point-at": { "version": "1.1.0", - "bundled": true + "bundled": true, + "optional": true }, "concat-map": { "version": "0.0.1", - "bundled": true + "bundled": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", - "bundled": true + "bundled": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -5844,7 +5850,8 @@ }, "inherits": { "version": "2.0.4", - "bundled": true + "bundled": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -5854,6 +5861,7 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -5866,17 +5874,20 @@ "minimatch": { "version": "3.0.4", "bundled": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", - "bundled": true + "bundled": true, + "optional": true }, "minipass": { "version": "2.9.0", "bundled": true, + "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -5893,6 +5904,7 @@ "mkdirp": { "version": "0.5.1", "bundled": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -5973,7 +5985,8 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true + "bundled": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -5983,6 +5996,7 @@ "once": { "version": "1.4.0", "bundled": true, + "optional": true, "requires": { "wrappy": "1" } @@ -6058,7 +6072,8 @@ }, "safe-buffer": { "version": "5.1.2", - "bundled": true + "bundled": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -6088,6 +6103,7 @@ "string-width": { "version": "1.0.2", "bundled": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -6105,6 +6121,7 @@ "strip-ansi": { "version": "3.0.1", "bundled": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -6143,11 +6160,13 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true + "bundled": true, + "optional": true }, "yallist": { "version": "3.1.1", - "bundled": true + "bundled": true, + "optional": true } } }, @@ -6454,9 +6473,9 @@ } }, "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==" + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" }, "hpack.js": { "version": "2.1.6", diff --git a/yarn.lock b/yarn.lock index 5572f12..d25f1a1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -856,6 +856,13 @@ dependencies: regenerator-runtime "^0.13.2" +"@babel/runtime@^7.1.2", "@babel/runtime@^7.12.1": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.0.tgz#46794bc20b612c5f75e62dd071e24dfd95f1cbe6" + integrity sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA== + dependencies: + regenerator-runtime "^0.13.4" + "@babel/runtime@^7.5.1", "@babel/runtime@^7.7.4", "@babel/runtime@^7.8.4": version "7.8.7" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.8.7.tgz#8fefce9802db54881ba59f90bb28719b4996324d" @@ -2008,6 +2015,13 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e" integrity sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug== +axios@^0.19.2: + version "0.19.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.2.tgz#3ea36c5d8818d0d5f8a8a97a6d36b86cdc00cb27" + integrity sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA== + dependencies: + follow-redirects "1.5.10" + axobject-query@^2.0.2: version "2.1.2" resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.1.2.tgz#2bdffc0371e643e5f03ba99065d5179b9ca79799" @@ -2260,6 +2274,11 @@ boolbase@^1.0.0, boolbase@~1.0.0: resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= +bootstrap@^4.4.1: + version "4.6.0" + resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.6.0.tgz#97b9f29ac98f98dfa43bf7468262d84392552fd7" + integrity sha512-Io55IuQY3kydzHtbGvQya3H+KorS/M9rSNyfCGCg9WZ4pyT/lCxIlpJgG1GXW/PswzC84Tr2fBYi+7+jFVQQBw== + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -3332,6 +3351,13 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9: dependencies: ms "2.0.0" +debug@=3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + debug@^3.0.0, debug@^3.1.1, debug@^3.2.5: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" @@ -4371,6 +4397,13 @@ flush-write-stream@^1.0.0: inherits "^2.0.3" readable-stream "^2.3.6" +follow-redirects@1.5.10: + version "1.5.10" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" + integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== + dependencies: + debug "=3.1.0" + follow-redirects@^1.0.0: version "1.10.0" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.10.0.tgz#01f5263aee921c6a54fb91667f08f4155ce169eb" @@ -4770,6 +4803,18 @@ hex-color-regex@^1.1.0: resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== +history@^4.9.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" + integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== + dependencies: + "@babel/runtime" "^7.1.2" + loose-envify "^1.2.0" + resolve-pathname "^3.0.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + value-equal "^1.0.1" + hmac-drbg@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" @@ -4779,10 +4824,17 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" +hoist-non-react-statics@^3.1.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + hosted-git-info@^2.1.4: - version "2.8.5" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.5.tgz#759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c" - integrity sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg== + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== hpack.js@^2.1.6: version "2.1.6" @@ -5435,6 +5487,11 @@ is-wsl@^2.1.1: resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.1.1.tgz#4a1c152d429df3d441669498e2486d3596ebaf1d" integrity sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog== +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -6278,7 +6335,7 @@ loglevel@^1.6.6: resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.7.tgz#b3e034233188c68b889f5b862415306f565e2c56" integrity sha512-cY2eLFrQSAfVPhCgH1s7JI73tMbg9YC3v3+ZHVW67sBS7UxWzNEk/ZBbSfLykBWHp33dqqtOv82gjhKEi81T/A== -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== @@ -6480,6 +6537,14 @@ min-indent@^1.0.0: resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.0.tgz#cfc45c37e9ec0d8f0a0ec3dd4ef7f7c3abe39256" integrity sha1-z8RcN+nsDY8KDsPdTvf3w6vjklY= +mini-create-react-context@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz#072171561bfdc922da08a60c2197a497cc2d1d5e" + integrity sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ== + dependencies: + "@babel/runtime" "^7.12.1" + tiny-warning "^1.0.3" + mini-css-extract-plugin@0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz#47f2cf07aa165ab35733b1fc97d4c46c0564339e" @@ -7247,6 +7312,13 @@ path-to-regexp@0.1.7: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= +path-to-regexp@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" + integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== + dependencies: + isarray "0.0.1" + path-type@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" @@ -8343,11 +8415,45 @@ react-is@^16.12.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.0.tgz#0f37c3613c34fe6b37cd7f763a0d6293ab15c527" integrity sha512-GFMtL0vHkiBv9HluwNZTggSn/sCyEt9n02aM0dSAjGGyqyNlAyftYm4phPxdvCigG15JreC5biwxCgTAJZ7yAA== +react-is@^16.6.0, react-is@^16.7.0: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + react-is@^16.8.1, react-is@^16.8.4: version "16.12.0" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.12.0.tgz#2cc0fe0fba742d97fd527c42a13bec4eeb06241c" integrity sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q== +react-router-dom@^5.1.2: + version "5.2.0" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.2.0.tgz#9e65a4d0c45e13289e66c7b17c7e175d0ea15662" + integrity sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA== + dependencies: + "@babel/runtime" "^7.1.2" + history "^4.9.0" + loose-envify "^1.3.1" + prop-types "^15.6.2" + react-router "5.2.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react-router@5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.2.0.tgz#424e75641ca8747fbf76e5ecca69781aa37ea293" + integrity sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw== + dependencies: + "@babel/runtime" "^7.1.2" + history "^4.9.0" + hoist-non-react-statics "^3.1.0" + loose-envify "^1.3.1" + mini-create-react-context "^0.4.0" + path-to-regexp "^1.7.0" + prop-types "^15.6.2" + react-is "^16.6.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + react-scripts@3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-3.4.0.tgz#f413680f0b5b937c8879ba1ffdae9b8c5b364bf5" @@ -8710,6 +8816,11 @@ resolve-from@^4.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== +resolve-pathname@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" + integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== + resolve-url-loader@3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-3.1.1.tgz#28931895fa1eab9be0647d3b2958c100ae3c0bf0" @@ -9709,6 +9820,16 @@ timsort@^0.3.0: resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= +tiny-invariant@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875" + integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw== + +tiny-warning@^1.0.0, tiny-warning@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -10049,6 +10170,11 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" +value-equal@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" + integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== + vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"