From 2acd55eb810d9d6f6e4b2e1c6adff9ce72dde956 Mon Sep 17 00:00:00 2001 From: Caleb John Date: Sat, 16 Oct 2021 01:59:37 -0700 Subject: [PATCH] Desktop, Cli: Resolves #5224: Add Markdown + Front Matter exporter/importer (#5465) --- .eslintignore | 12 + .gitignore | 12 + .../support/test_notes/yaml/duplicates.md | 9 + .../tests/support/test_notes/yaml/full.md | 18 + .../support/test_notes/yaml/inline_tags.md | 6 + .../support/test_notes/yaml/normalize.md | 9 + .../tests/support/test_notes/yaml/numbers.md | 5 + .../support/test_notes/yaml/r-markdown.md | 20 + .../test_notes/yaml/r-markdown_author.md | 10 + .../support/test_notes/yaml/short_date.md | 7 + .../tests/support/test_notes/yaml/split.md | 9 + .../support/test_notes/yaml/title_newline.md | 12 + .../tests/support/test_notes/yaml/unquoted.md | 8 + .../tests/support/test_notes/yaml/utc.md | 7 + packages/lib/package-lock.json | 1271 +++-------------- packages/lib/package.json | 2 + .../lib/services/interop/InteropService.ts | 14 + .../interop/InteropService_Exporter_Md.ts | 2 +- ...ropService_Exporter_Md_frontmatter.test.ts | 134 ++ .../InteropService_Exporter_Md_frontmatter.ts | 155 ++ ...ropService_Importer_Md_frontmatter.test.ts | 135 ++ .../InteropService_Importer_Md_frontmatter.ts | 162 +++ packages/lib/services/interop/types.ts | 18 +- packages/lib/time.ts | 23 +- readme/spec/interop_with_frontmatter.md | 110 ++ 25 files changed, 1127 insertions(+), 1043 deletions(-) create mode 100644 packages/app-cli/tests/support/test_notes/yaml/duplicates.md create mode 100644 packages/app-cli/tests/support/test_notes/yaml/full.md create mode 100644 packages/app-cli/tests/support/test_notes/yaml/inline_tags.md create mode 100644 packages/app-cli/tests/support/test_notes/yaml/normalize.md create mode 100644 packages/app-cli/tests/support/test_notes/yaml/numbers.md create mode 100644 packages/app-cli/tests/support/test_notes/yaml/r-markdown.md create mode 100644 packages/app-cli/tests/support/test_notes/yaml/r-markdown_author.md create mode 100644 packages/app-cli/tests/support/test_notes/yaml/short_date.md create mode 100644 packages/app-cli/tests/support/test_notes/yaml/split.md create mode 100644 packages/app-cli/tests/support/test_notes/yaml/title_newline.md create mode 100644 packages/app-cli/tests/support/test_notes/yaml/unquoted.md create mode 100644 packages/app-cli/tests/support/test_notes/yaml/utc.md create mode 100644 packages/lib/services/interop/InteropService_Exporter_Md_frontmatter.test.ts create mode 100644 packages/lib/services/interop/InteropService_Exporter_Md_frontmatter.ts create mode 100644 packages/lib/services/interop/InteropService_Importer_Md_frontmatter.test.ts create mode 100644 packages/lib/services/interop/InteropService_Importer_Md_frontmatter.ts create mode 100644 readme/spec/interop_with_frontmatter.md diff --git a/.eslintignore b/.eslintignore index a3eb79a44..588ff3c33 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1308,6 +1308,12 @@ packages/lib/services/interop/InteropService_Exporter_Jex.js.map packages/lib/services/interop/InteropService_Exporter_Md.d.ts packages/lib/services/interop/InteropService_Exporter_Md.js packages/lib/services/interop/InteropService_Exporter_Md.js.map +packages/lib/services/interop/InteropService_Exporter_Md_frontmatter.d.ts +packages/lib/services/interop/InteropService_Exporter_Md_frontmatter.js +packages/lib/services/interop/InteropService_Exporter_Md_frontmatter.js.map +packages/lib/services/interop/InteropService_Exporter_Md_frontmatter.test.d.ts +packages/lib/services/interop/InteropService_Exporter_Md_frontmatter.test.js +packages/lib/services/interop/InteropService_Exporter_Md_frontmatter.test.js.map packages/lib/services/interop/InteropService_Exporter_Raw.d.ts packages/lib/services/interop/InteropService_Exporter_Raw.js packages/lib/services/interop/InteropService_Exporter_Raw.js.map @@ -1332,6 +1338,12 @@ packages/lib/services/interop/InteropService_Importer_Md.js.map packages/lib/services/interop/InteropService_Importer_Md.test.d.ts packages/lib/services/interop/InteropService_Importer_Md.test.js packages/lib/services/interop/InteropService_Importer_Md.test.js.map +packages/lib/services/interop/InteropService_Importer_Md_frontmatter.d.ts +packages/lib/services/interop/InteropService_Importer_Md_frontmatter.js +packages/lib/services/interop/InteropService_Importer_Md_frontmatter.js.map +packages/lib/services/interop/InteropService_Importer_Md_frontmatter.test.d.ts +packages/lib/services/interop/InteropService_Importer_Md_frontmatter.test.js +packages/lib/services/interop/InteropService_Importer_Md_frontmatter.test.js.map packages/lib/services/interop/InteropService_Importer_Raw.d.ts packages/lib/services/interop/InteropService_Importer_Raw.js packages/lib/services/interop/InteropService_Importer_Raw.js.map diff --git a/.gitignore b/.gitignore index 1f6625a43..954370f77 100644 --- a/.gitignore +++ b/.gitignore @@ -1291,6 +1291,12 @@ packages/lib/services/interop/InteropService_Exporter_Jex.js.map packages/lib/services/interop/InteropService_Exporter_Md.d.ts packages/lib/services/interop/InteropService_Exporter_Md.js packages/lib/services/interop/InteropService_Exporter_Md.js.map +packages/lib/services/interop/InteropService_Exporter_Md_frontmatter.d.ts +packages/lib/services/interop/InteropService_Exporter_Md_frontmatter.js +packages/lib/services/interop/InteropService_Exporter_Md_frontmatter.js.map +packages/lib/services/interop/InteropService_Exporter_Md_frontmatter.test.d.ts +packages/lib/services/interop/InteropService_Exporter_Md_frontmatter.test.js +packages/lib/services/interop/InteropService_Exporter_Md_frontmatter.test.js.map packages/lib/services/interop/InteropService_Exporter_Raw.d.ts packages/lib/services/interop/InteropService_Exporter_Raw.js packages/lib/services/interop/InteropService_Exporter_Raw.js.map @@ -1315,6 +1321,12 @@ packages/lib/services/interop/InteropService_Importer_Md.js.map packages/lib/services/interop/InteropService_Importer_Md.test.d.ts packages/lib/services/interop/InteropService_Importer_Md.test.js packages/lib/services/interop/InteropService_Importer_Md.test.js.map +packages/lib/services/interop/InteropService_Importer_Md_frontmatter.d.ts +packages/lib/services/interop/InteropService_Importer_Md_frontmatter.js +packages/lib/services/interop/InteropService_Importer_Md_frontmatter.js.map +packages/lib/services/interop/InteropService_Importer_Md_frontmatter.test.d.ts +packages/lib/services/interop/InteropService_Importer_Md_frontmatter.test.js +packages/lib/services/interop/InteropService_Importer_Md_frontmatter.test.js.map packages/lib/services/interop/InteropService_Importer_Raw.d.ts packages/lib/services/interop/InteropService_Importer_Raw.js packages/lib/services/interop/InteropService_Importer_Raw.js.map diff --git a/packages/app-cli/tests/support/test_notes/yaml/duplicates.md b/packages/app-cli/tests/support/test_notes/yaml/duplicates.md new file mode 100644 index 000000000..4c35b000c --- /dev/null +++ b/packages/app-cli/tests/support/test_notes/yaml/duplicates.md @@ -0,0 +1,9 @@ +--- +title: ddd +tags: + - banana + - banana + - banana +--- + +And a link to note [full](./full.md), and link to the [same note](./full.md). diff --git a/packages/app-cli/tests/support/test_notes/yaml/full.md b/packages/app-cli/tests/support/test_notes/yaml/full.md new file mode 100644 index 000000000..6f4a5c88e --- /dev/null +++ b/packages/app-cli/tests/support/test_notes/yaml/full.md @@ -0,0 +1,18 @@ +--- +title: Test Note Title +updated: 2019-05-01 16:54 +created: 2019-05-01 16:54 +Source: https://joplinapp.org +author: Joplin +latitude: 37.084021 +longitude: -94.51350100 +altitude: 0.0000 +Completed?: false +due: 2021-08-22 00:00 +tags: + - Joplin + - nOte + - pencil +--- + +This is the note body diff --git a/packages/app-cli/tests/support/test_notes/yaml/inline_tags.md b/packages/app-cli/tests/support/test_notes/yaml/inline_tags.md new file mode 100644 index 000000000..2c8810ec6 --- /dev/null +++ b/packages/app-cli/tests/support/test_notes/yaml/inline_tags.md @@ -0,0 +1,6 @@ +--- +Title: Inline Tags +Tags: [inline, tag] +--- + +Body diff --git a/packages/app-cli/tests/support/test_notes/yaml/normalize.md b/packages/app-cli/tests/support/test_notes/yaml/normalize.md new file mode 100644 index 000000000..c900dfae9 --- /dev/null +++ b/packages/app-cli/tests/support/test_notes/yaml/normalize.md @@ -0,0 +1,9 @@ +--- +title: norm +tags: + - tag1 +- tag2 + - tag3 +--- + +note body diff --git a/packages/app-cli/tests/support/test_notes/yaml/numbers.md b/packages/app-cli/tests/support/test_notes/yaml/numbers.md new file mode 100644 index 000000000..fb8fc5cca --- /dev/null +++ b/packages/app-cli/tests/support/test_notes/yaml/numbers.md @@ -0,0 +1,5 @@ +--- +title: 001 +--- + +note body diff --git a/packages/app-cli/tests/support/test_notes/yaml/r-markdown.md b/packages/app-cli/tests/support/test_notes/yaml/r-markdown.md new file mode 100644 index 000000000..c7d302c05 --- /dev/null +++ b/packages/app-cli/tests/support/test_notes/yaml/r-markdown.md @@ -0,0 +1,20 @@ +--- +title: "YAML metadata for R Markdown with examples" +subtitle: "YAML header" +author: Hao Liang +date: "2021-06-10" +output: + md_document: + toc: yes + toc_depth: 2 +abstract: YAML is a human-readable and easy to write language to define data structures. +keywords: ["YAML", "Rmd"] +subject: Medicine +description: Rmd makes it possible to use a YAML header to specify certain parameters right at the beginning of the document. +category: + - Rmd + - Medicine +lang: "en-US" +--- + +Example taken from https://github.com/hao203/rmarkdown-YAML diff --git a/packages/app-cli/tests/support/test_notes/yaml/r-markdown_author.md b/packages/app-cli/tests/support/test_notes/yaml/r-markdown_author.md new file mode 100644 index 000000000..d1876bd30 --- /dev/null +++ b/packages/app-cli/tests/support/test_notes/yaml/r-markdown_author.md @@ -0,0 +1,10 @@ +--- +title: "Distill for R Markdown" +author: + - name: "JJ Allaire" + url: https://github.com/jjallaire + affiliation: RStudio + affiliation_url: https://www.rstudio.com +--- + +Example taken from https://github.com/hao203/rmarkdown-YAML diff --git a/packages/app-cli/tests/support/test_notes/yaml/short_date.md b/packages/app-cli/tests/support/test_notes/yaml/short_date.md new file mode 100644 index 000000000..d2d0469d1 --- /dev/null +++ b/packages/app-cli/tests/support/test_notes/yaml/short_date.md @@ -0,0 +1,7 @@ +--- +title: Date +created: 2017-01-01 +updated: 2021-01-01 +--- + +I hope the dates are imported correctly diff --git a/packages/app-cli/tests/support/test_notes/yaml/split.md b/packages/app-cli/tests/support/test_notes/yaml/split.md new file mode 100644 index 000000000..0d81260ba --- /dev/null +++ b/packages/app-cli/tests/support/test_notes/yaml/split.md @@ -0,0 +1,9 @@ +--- +title: xxx +--- + +--- +author: xxx +--- + +note body diff --git a/packages/app-cli/tests/support/test_notes/yaml/title_newline.md b/packages/app-cli/tests/support/test_notes/yaml/title_newline.md new file mode 100644 index 000000000..a1897b15e --- /dev/null +++ b/packages/app-cli/tests/support/test_notes/yaml/title_newline.md @@ -0,0 +1,12 @@ +--- +Title: |- + First + Second +Updated: 28/09/2021 20:57 +Created: 28/09/2021 20:57 +Latitude: 0.00000000 +Longitude: 0.00000000 +Altitude: 0.0000 +--- + +This note has a newline in the title diff --git a/packages/app-cli/tests/support/test_notes/yaml/unquoted.md b/packages/app-cli/tests/support/test_notes/yaml/unquoted.md new file mode 100644 index 000000000..cf70841d4 --- /dev/null +++ b/packages/app-cli/tests/support/test_notes/yaml/unquoted.md @@ -0,0 +1,8 @@ +--- +Title: Unquoted +Longitude: -94.51350100 +Completed?: No +DUE: 2022-04-04 13:00 +--- + +note body diff --git a/packages/app-cli/tests/support/test_notes/yaml/utc.md b/packages/app-cli/tests/support/test_notes/yaml/utc.md new file mode 100644 index 000000000..b3090f97d --- /dev/null +++ b/packages/app-cli/tests/support/test_notes/yaml/utc.md @@ -0,0 +1,7 @@ +--- +title: Test Note Title +updated: 2019-05-01T16:54:00Z +created: 2019-05-01 16:54-07:00 +--- + +This is the note body diff --git a/packages/lib/package-lock.json b/packages/lib/package-lock.json index df08e5b02..64fd2421e 100644 --- a/packages/lib/package-lock.json +++ b/packages/lib/package-lock.json @@ -29,6 +29,7 @@ "image-data-uri": "^2.0.0", "image-type": "^3.0.0", "immer": "^7.0.14", + "js-yaml": "^4.1.0", "levenshtein": "^1.0.5", "lodash": "^4.17.20", "markdown-it": "^10.0.0", @@ -67,6 +68,7 @@ "devDependencies": { "@types/fs-extra": "^9.0.6", "@types/jest": "^26.0.15", + "@types/js-yaml": "^4.0.2", "@types/node": "^14.14.6", "@types/node-rsa": "^1.1.1", "@types/react": "^17.0.20", @@ -722,6 +724,19 @@ "node": ">=8" } }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", @@ -1097,6 +1112,12 @@ "pretty-format": "^26.0.0" } }, + "node_modules/@types/js-yaml": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.3.tgz", + "integrity": "sha512-5t9BhoORasuF5uCPr+d5/hdB++zRFUTMIZOzbNkr+jZh3yQht4HYbRDyj9fY8n2TZT30iW9huzav73x4NikqWg==", + "dev": true + }, "node_modules/@types/node": { "version": "14.17.20", "integrity": "sha512-gI5Sl30tmhXsqkNvopFydP7ASc4c2cLfGNQrVKN3X90ADFWFsPEsotm/8JHSUJQKTHbwowAHtcJPeyVhtKv0TQ==", @@ -1104,7 +1125,6 @@ }, "node_modules/@types/node-rsa": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/node-rsa/-/node-rsa-1.1.1.tgz", "integrity": "sha512-itzxtaBgk4OMbrCawVCvas934waMZWjW17v7EYgFVlfYS/cl0/P7KZdojWCq9SDJMI5cnLQLUP8ayhVCTY8TEg==", "dev": true, "dependencies": { @@ -3054,18 +3074,6 @@ "version": "1.0.0", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, - "node_modules/fsevents": { - "version": "2.3.2", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/fstream": { "version": "1.0.12", "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", @@ -4653,17 +4661,21 @@ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "node_modules/js-yaml": { - "version": "3.14.1", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, + "node_modules/js-yaml/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, "node_modules/jsbn": { "version": "0.1.1", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" @@ -5537,7 +5549,6 @@ }, "node_modules/node-rsa": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/node-rsa/-/node-rsa-1.1.1.tgz", "integrity": "sha512-Jd4cvbJMryN21r5HgxQOpMEqv+ooke/korixNNK3mGqfGJmy0M77WDDzo/05969+OkMy3XW1UuZsSmW9KQm7Fw==", "dependencies": { "asn1": "^0.2.4" @@ -8500,7 +8511,6 @@ "dependencies": { "@babel/code-frame": { "version": "7.14.5", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", "dev": true, "requires": { "@babel/highlight": "^7.14.5" @@ -8508,12 +8518,10 @@ }, "@babel/compat-data": { "version": "7.15.0", - "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==", "dev": true }, "@babel/core": { "version": "7.15.5", - "integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==", "dev": true, "requires": { "@babel/code-frame": "^7.14.5", @@ -8535,14 +8543,12 @@ "dependencies": { "source-map": { "version": "0.5.7", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true } } }, "@babel/generator": { "version": "7.15.4", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", "dev": true, "requires": { "@babel/types": "^7.15.4", @@ -8552,14 +8558,12 @@ "dependencies": { "source-map": { "version": "0.5.7", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true } } }, "@babel/helper-compilation-targets": { "version": "7.15.4", - "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==", "dev": true, "requires": { "@babel/compat-data": "^7.15.0", @@ -8570,7 +8574,6 @@ }, "@babel/helper-function-name": { "version": "7.15.4", - "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", "dev": true, "requires": { "@babel/helper-get-function-arity": "^7.15.4", @@ -8580,7 +8583,6 @@ }, "@babel/helper-get-function-arity": { "version": "7.15.4", - "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", "dev": true, "requires": { "@babel/types": "^7.15.4" @@ -8588,7 +8590,6 @@ }, "@babel/helper-hoist-variables": { "version": "7.15.4", - "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", "dev": true, "requires": { "@babel/types": "^7.15.4" @@ -8596,7 +8597,6 @@ }, "@babel/helper-member-expression-to-functions": { "version": "7.15.4", - "integrity": "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==", "dev": true, "requires": { "@babel/types": "^7.15.4" @@ -8604,7 +8604,6 @@ }, "@babel/helper-module-imports": { "version": "7.15.4", - "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==", "dev": true, "requires": { "@babel/types": "^7.15.4" @@ -8612,7 +8611,6 @@ }, "@babel/helper-module-transforms": { "version": "7.15.7", - "integrity": "sha512-ZNqjjQG/AuFfekFTY+7nY4RgBSklgTu970c7Rj3m/JOhIu5KPBUuTA9AY6zaKcUvk4g6EbDXdBnhi35FAssdSw==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.15.4", @@ -8627,7 +8625,6 @@ }, "@babel/helper-optimise-call-expression": { "version": "7.15.4", - "integrity": "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==", "dev": true, "requires": { "@babel/types": "^7.15.4" @@ -8635,12 +8632,10 @@ }, "@babel/helper-plugin-utils": { "version": "7.14.5", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", "dev": true }, "@babel/helper-replace-supers": { "version": "7.15.4", - "integrity": "sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==", "dev": true, "requires": { "@babel/helper-member-expression-to-functions": "^7.15.4", @@ -8651,7 +8646,6 @@ }, "@babel/helper-simple-access": { "version": "7.15.4", - "integrity": "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==", "dev": true, "requires": { "@babel/types": "^7.15.4" @@ -8659,7 +8653,6 @@ }, "@babel/helper-split-export-declaration": { "version": "7.15.4", - "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", "dev": true, "requires": { "@babel/types": "^7.15.4" @@ -8667,17 +8660,14 @@ }, "@babel/helper-validator-identifier": { "version": "7.15.7", - "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", "dev": true }, "@babel/helper-validator-option": { "version": "7.14.5", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", "dev": true }, "@babel/helpers": { "version": "7.15.4", - "integrity": "sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==", "dev": true, "requires": { "@babel/template": "^7.15.4", @@ -8687,7 +8677,6 @@ }, "@babel/highlight": { "version": "7.14.5", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.14.5", @@ -8697,7 +8686,6 @@ "dependencies": { "ansi-styles": { "version": "3.2.1", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "^1.9.0" @@ -8705,7 +8693,6 @@ }, "chalk": { "version": "2.4.2", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -8715,17 +8702,14 @@ }, "escape-string-regexp": { "version": "1.0.5", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, "has-flag": { "version": "3.0.0", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, "supports-color": { "version": "5.5.0", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -8735,12 +8719,10 @@ }, "@babel/parser": { "version": "7.15.7", - "integrity": "sha512-rycZXvQ+xS9QyIcJ9HXeDWf1uxqlbVFAUq0Rq0dbc50Zb/+wUe/ehyfzGfm9KZZF0kBejYgxltBXocP+gKdL2g==", "dev": true }, "@babel/plugin-syntax-async-generators": { "version": "7.8.4", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" @@ -8748,7 +8730,6 @@ }, "@babel/plugin-syntax-bigint": { "version": "7.8.3", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" @@ -8756,7 +8737,6 @@ }, "@babel/plugin-syntax-class-properties": { "version": "7.12.13", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.12.13" @@ -8764,7 +8744,6 @@ }, "@babel/plugin-syntax-import-meta": { "version": "7.10.4", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" @@ -8772,7 +8751,6 @@ }, "@babel/plugin-syntax-json-strings": { "version": "7.8.3", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" @@ -8780,7 +8758,6 @@ }, "@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" @@ -8788,7 +8765,6 @@ }, "@babel/plugin-syntax-nullish-coalescing-operator": { "version": "7.8.3", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" @@ -8796,7 +8772,6 @@ }, "@babel/plugin-syntax-numeric-separator": { "version": "7.10.4", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" @@ -8804,7 +8779,6 @@ }, "@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" @@ -8812,7 +8786,6 @@ }, "@babel/plugin-syntax-optional-catch-binding": { "version": "7.8.3", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" @@ -8820,7 +8793,6 @@ }, "@babel/plugin-syntax-optional-chaining": { "version": "7.8.3", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" @@ -8828,7 +8800,6 @@ }, "@babel/plugin-syntax-top-level-await": { "version": "7.14.5", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.14.5" @@ -8836,7 +8807,6 @@ }, "@babel/template": { "version": "7.15.4", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", "dev": true, "requires": { "@babel/code-frame": "^7.14.5", @@ -8846,7 +8816,6 @@ }, "@babel/traverse": { "version": "7.15.4", - "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", "dev": true, "requires": { "@babel/code-frame": "^7.14.5", @@ -8862,7 +8831,6 @@ }, "@babel/types": { "version": "7.15.6", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.14.9", @@ -8871,12 +8839,10 @@ }, "@bcoe/v8-coverage": { "version": "0.2.3", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, "@cnakazawa/watch": { "version": "1.0.4", - "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", "dev": true, "requires": { "exec-sh": "^0.3.2", @@ -8885,7 +8851,6 @@ }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, "requires": { "camelcase": "^5.3.1", @@ -8893,16 +8858,26 @@ "get-package-type": "^0.1.0", "js-yaml": "^3.13.1", "resolve-from": "^5.0.0" + }, + "dependencies": { + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + } } }, "@istanbuljs/schema": { "version": "0.1.3", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true }, "@jest/console": { "version": "26.6.2", - "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==", "dev": true, "requires": { "@jest/types": "^26.6.2", @@ -8915,7 +8890,6 @@ }, "@jest/core": { "version": "26.6.3", - "integrity": "sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==", "dev": true, "requires": { "@jest/console": "^26.6.2", @@ -8950,12 +8924,10 @@ "dependencies": { "deepmerge": { "version": "4.2.2", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", "dev": true }, "jest-config": { "version": "26.6.3", - "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", "dev": true, "requires": { "@babel/core": "^7.1.0", @@ -8982,7 +8954,6 @@ }, "@jest/environment": { "version": "26.6.2", - "integrity": "sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==", "dev": true, "requires": { "@jest/fake-timers": "^26.6.2", @@ -8993,7 +8964,6 @@ }, "@jest/fake-timers": { "version": "26.6.2", - "integrity": "sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==", "dev": true, "requires": { "@jest/types": "^26.6.2", @@ -9006,7 +8976,6 @@ }, "@jest/globals": { "version": "26.6.2", - "integrity": "sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==", "dev": true, "requires": { "@jest/environment": "^26.6.2", @@ -9016,7 +8985,6 @@ }, "@jest/reporters": { "version": "26.6.2", - "integrity": "sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==", "dev": true, "requires": { "@bcoe/v8-coverage": "^0.2.3", @@ -9048,7 +9016,6 @@ }, "@jest/source-map": { "version": "26.6.2", - "integrity": "sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==", "dev": true, "requires": { "callsites": "^3.0.0", @@ -9058,7 +9025,6 @@ }, "@jest/test-result": { "version": "26.6.2", - "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==", "dev": true, "requires": { "@jest/console": "^26.6.2", @@ -9069,7 +9035,6 @@ }, "@jest/test-sequencer": { "version": "26.6.3", - "integrity": "sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==", "dev": true, "requires": { "@jest/test-result": "^26.6.2", @@ -9081,7 +9046,6 @@ }, "@jest/transform": { "version": "26.6.2", - "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", "dev": true, "requires": { "@babel/core": "^7.1.0", @@ -9103,7 +9067,6 @@ }, "@jest/types": { "version": "26.6.2", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", @@ -9115,7 +9078,6 @@ }, "@sinonjs/commons": { "version": "1.8.3", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", "dev": true, "requires": { "type-detect": "4.0.8" @@ -9123,7 +9085,6 @@ }, "@sinonjs/fake-timers": { "version": "6.0.1", - "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", "dev": true, "requires": { "@sinonjs/commons": "^1.7.0" @@ -9131,12 +9092,10 @@ }, "@tootallnate/once": { "version": "1.1.2", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", "dev": true }, "@types/babel__core": { "version": "7.1.16", - "integrity": "sha512-EAEHtisTMM+KaKwfWdC3oyllIqswlznXCIVCt7/oRNrh+DhgT4UEBNC/jlADNjvw7UnfbcdkGQcPVZ1xYiLcrQ==", "dev": true, "requires": { "@babel/parser": "^7.1.0", @@ -9148,7 +9107,6 @@ }, "@types/babel__generator": { "version": "7.6.3", - "integrity": "sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA==", "dev": true, "requires": { "@babel/types": "^7.0.0" @@ -9156,7 +9114,6 @@ }, "@types/babel__template": { "version": "7.4.1", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", "dev": true, "requires": { "@babel/parser": "^7.1.0", @@ -9165,7 +9122,6 @@ }, "@types/babel__traverse": { "version": "7.14.2", - "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", "dev": true, "requires": { "@babel/types": "^7.3.0" @@ -9173,7 +9129,6 @@ }, "@types/fs-extra": { "version": "9.0.13", - "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", "dev": true, "requires": { "@types/node": "*" @@ -9181,7 +9136,6 @@ }, "@types/graceful-fs": { "version": "4.1.5", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", "dev": true, "requires": { "@types/node": "*" @@ -9189,12 +9143,10 @@ }, "@types/istanbul-lib-coverage": { "version": "2.0.3", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", "dev": true }, "@types/istanbul-lib-report": { "version": "3.0.0", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "*" @@ -9202,7 +9154,6 @@ }, "@types/istanbul-reports": { "version": "3.0.1", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", "dev": true, "requires": { "@types/istanbul-lib-report": "*" @@ -9210,22 +9161,24 @@ }, "@types/jest": { "version": "26.0.24", - "integrity": "sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w==", "dev": true, "requires": { "jest-diff": "^26.0.0", "pretty-format": "^26.0.0" } }, + "@types/js-yaml": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.3.tgz", + "integrity": "sha512-5t9BhoORasuF5uCPr+d5/hdB++zRFUTMIZOzbNkr+jZh3yQht4HYbRDyj9fY8n2TZT30iW9huzav73x4NikqWg==", + "dev": true + }, "@types/node": { "version": "14.17.20", - "integrity": "sha512-gI5Sl30tmhXsqkNvopFydP7ASc4c2cLfGNQrVKN3X90ADFWFsPEsotm/8JHSUJQKTHbwowAHtcJPeyVhtKv0TQ==", "dev": true }, "@types/node-rsa": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/node-rsa/-/node-rsa-1.1.1.tgz", - "integrity": "sha512-itzxtaBgk4OMbrCawVCvas934waMZWjW17v7EYgFVlfYS/cl0/P7KZdojWCq9SDJMI5cnLQLUP8ayhVCTY8TEg==", "dev": true, "requires": { "@types/node": "*" @@ -9233,22 +9186,18 @@ }, "@types/normalize-package-data": { "version": "2.4.1", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", "dev": true }, "@types/prettier": { "version": "2.4.1", - "integrity": "sha512-Fo79ojj3vdEZOHg3wR9ksAMRz4P3S5fDB5e/YWZiFnyFQI1WY2Vftu9XoXVVtJfxB7Bpce/QTqWSSntkz2Znrw==", "dev": true }, "@types/prop-types": { "version": "15.7.4", - "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==", "dev": true }, "@types/react": { "version": "17.0.26", - "integrity": "sha512-MXxuXrH2xOcv5cp/su4oz69dNQnSA90JjFw5HBd5wifw6Ihi94j7dRJm7qNsB30tnruXSCPc9qmlhGop4nh9Hw==", "dev": true, "requires": { "@types/prop-types": "*", @@ -9258,17 +9207,14 @@ }, "@types/scheduler": { "version": "0.16.2", - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", "dev": true }, "@types/stack-utils": { "version": "2.0.1", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", "dev": true }, "@types/yargs": { "version": "15.0.14", - "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", "dev": true, "requires": { "@types/yargs-parser": "*" @@ -9276,26 +9222,21 @@ }, "@types/yargs-parser": { "version": "20.2.1", - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", "dev": true }, "abab": { "version": "2.0.5", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", "dev": true }, "abbrev": { - "version": "1.1.1", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + "version": "1.1.1" }, "acorn": { "version": "8.5.0", - "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", "dev": true }, "acorn-globals": { "version": "6.0.0", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", "dev": true, "requires": { "acorn": "^7.1.1", @@ -9304,19 +9245,16 @@ "dependencies": { "acorn": { "version": "7.4.1", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true } } }, "acorn-walk": { "version": "7.2.0", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", "dev": true }, "agent-base": { "version": "6.0.2", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, "requires": { "debug": "4" @@ -9324,7 +9262,6 @@ }, "ajv": { "version": "6.12.6", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -9334,20 +9271,17 @@ }, "ansi-escape-sequences": { "version": "4.1.0", - "integrity": "sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==", "requires": { "array-back": "^3.0.1" }, "dependencies": { "array-back": { - "version": "3.1.0", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==" + "version": "3.1.0" } } }, "ansi-escapes": { "version": "4.3.2", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, "requires": { "type-fest": "^0.21.3" @@ -9355,12 +9289,10 @@ }, "ansi-regex": { "version": "5.0.1", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, "ansi-styles": { "version": "4.3.0", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { "color-convert": "^2.0.1" @@ -9368,7 +9300,6 @@ "dependencies": { "color-convert": { "version": "2.0.1", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" @@ -9376,26 +9307,22 @@ }, "color-name": { "version": "1.1.4", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true } } }, "anymatch": { "version": "3.1.2", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "aproba": { - "version": "1.2.0", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + "version": "1.2.0" }, "are-we-there-yet": { "version": "1.1.7", - "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", "requires": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" @@ -9403,7 +9330,6 @@ "dependencies": { "readable-stream": { "version": "2.3.7", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -9416,7 +9342,6 @@ }, "string_decoder": { "version": "1.1.1", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { "safe-buffer": "~5.1.0" } @@ -9425,84 +9350,68 @@ }, "argparse": { "version": "1.0.10", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { "sprintf-js": "~1.0.2" }, "dependencies": { "sprintf-js": { - "version": "1.0.3", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + "version": "1.0.3" } } }, "arr-diff": { "version": "4.0.0", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true }, "arr-flatten": { "version": "1.1.0", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true }, "arr-union": { "version": "3.1.0", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true }, "array-back": { "version": "2.0.0", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", "requires": { "typical": "^2.6.1" } }, "array-flatten": { "version": "3.0.0", - "integrity": "sha512-zPMVc3ZYlGLNk4mpK1NzP2wg0ml9t7fUgDsayR5Y5rSzxQilzR9FGu/EH2jQOcKSAeAfWeylyW8juy3OkWRvNA==", "dev": true }, "array-unique": { "version": "0.3.2", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true }, "asap": { - "version": "2.0.6", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + "version": "2.0.6" }, "asn1": { "version": "0.2.4", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "requires": { "safer-buffer": "~2.1.0" } }, "assert-plus": { - "version": "1.0.0", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "version": "1.0.0" }, "assign-symbols": { "version": "1.0.0", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", "dev": true }, "async-mutex": { - "version": "0.1.4", - "integrity": "sha512-zVWTmAnxxHaeB2B1te84oecI8zTDJ/8G49aVBblRX6be0oq6pAybNcUSxwfgVOmOjSCvN4aYZAqwtyNI8e1YGw==" + "version": "0.1.4" }, "asynckit": { - "version": "0.4.0", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "version": "0.4.0" }, "atob": { - "version": "2.1.2", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + "version": "2.1.2" }, "aws-sdk": { "version": "2.998.0", - "integrity": "sha512-jenbMcGxOg9AeH6p1m0vbsJYNaeJXBnOM58GXsaKecPgRnCm/IykTPlB6aQKfNDk0WQnw5BHDcy7iQPnEjEkUQ==", "requires": { "buffer": "4.9.2", "events": "1.1.1", @@ -9516,34 +9425,28 @@ }, "dependencies": { "uuid": { - "version": "3.3.2", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + "version": "3.3.2" }, "xml2js": { "version": "0.4.19", - "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", "requires": { "sax": ">=0.6.0", "xmlbuilder": "~9.0.1" } }, "xmlbuilder": { - "version": "9.0.7", - "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" + "version": "9.0.7" } } }, "aws-sign2": { - "version": "0.7.0", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + "version": "0.7.0" }, "aws4": { - "version": "1.11.0", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + "version": "1.11.0" }, "babel-jest": { "version": "26.6.3", - "integrity": "sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==", "dev": true, "requires": { "@jest/transform": "^26.6.2", @@ -9558,7 +9461,6 @@ }, "babel-plugin-istanbul": { "version": "6.0.0", - "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", @@ -9570,7 +9472,6 @@ }, "babel-plugin-jest-hoist": { "version": "26.6.2", - "integrity": "sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==", "dev": true, "requires": { "@babel/template": "^7.3.3", @@ -9581,7 +9482,6 @@ }, "babel-preset-current-node-syntax": { "version": "1.0.1", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", "dev": true, "requires": { "@babel/plugin-syntax-async-generators": "^7.8.4", @@ -9600,7 +9500,6 @@ }, "babel-preset-jest": { "version": "26.6.2", - "integrity": "sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==", "dev": true, "requires": { "babel-plugin-jest-hoist": "^26.6.2", @@ -9608,12 +9507,10 @@ } }, "balanced-match": { - "version": "1.0.2", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "version": "1.0.2" }, "base": { "version": "0.11.2", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "requires": { "cache-base": "^1.0.1", @@ -9627,7 +9524,6 @@ "dependencies": { "define-property": { "version": "1.0.0", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { "is-descriptor": "^1.0.0" @@ -9635,37 +9531,30 @@ }, "isobject": { "version": "3.0.1", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true } } }, "base-64": { - "version": "0.1.0", - "integrity": "sha1-eAqZyE59YAJgNhURxId2E78k9rs=" + "version": "0.1.0" }, "base64-js": { - "version": "1.5.1", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + "version": "1.5.1" }, "base64-stream": { - "version": "1.0.0", - "integrity": "sha512-BQQZftaO48FcE1Kof9CmXMFaAdqkcNorgc8CxesZv9nMbbTF1EFyQe89UOuh//QMmdtfUDXyO8rgUalemL5ODA==" + "version": "1.0.0" }, "bcrypt-pbkdf": { "version": "1.0.2", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "requires": { "tweetnacl": "^0.14.3" } }, "binary-extensions": { - "version": "2.2.0", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + "version": "2.2.0" }, "bl": { "version": "4.1.0", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, "requires": { "buffer": "^5.5.0", @@ -9675,7 +9564,6 @@ "dependencies": { "buffer": { "version": "5.7.1", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "requires": { "base64-js": "^1.3.1", @@ -9686,7 +9574,6 @@ }, "block-stream": { "version": "0.0.9", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", "optional": true, "requires": { "inherits": "~2.0.0" @@ -9694,7 +9581,6 @@ }, "brace-expansion": { "version": "1.1.11", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -9702,19 +9588,16 @@ }, "braces": { "version": "3.0.2", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "requires": { "fill-range": "^7.0.1" } }, "browser-process-hrtime": { "version": "1.0.0", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", "dev": true }, "browserslist": { "version": "4.17.2", - "integrity": "sha512-jSDZyqJmkKMEMi7SZAgX5UltFdR5NAO43vY0AwTpu4X3sGH7GLLQ83KiUomgrnvZRCeW0yPPnKqnxPqQOER9zQ==", "dev": true, "requires": { "caniuse-lite": "^1.0.30001261", @@ -9726,7 +9609,6 @@ }, "bser": { "version": "2.1.1", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, "requires": { "node-int64": "^0.4.0" @@ -9734,7 +9616,6 @@ }, "buffer": { "version": "4.9.2", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", "requires": { "base64-js": "^1.0.2", "ieee754": "^1.1.4", @@ -9743,16 +9624,13 @@ }, "buffer-from": { "version": "1.1.2", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, "builtin-modules": { - "version": "3.2.0", - "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==" + "version": "3.2.0" }, "cache-base": { "version": "1.0.1", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, "requires": { "collection-visit": "^1.0.0", @@ -9768,19 +9646,16 @@ "dependencies": { "isobject": { "version": "3.0.1", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true } } }, "callsites": { "version": "3.1.0", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, "camel-case": { "version": "3.0.0", - "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", "requires": { "no-case": "^2.2.0", "upper-case": "^1.1.1" @@ -9788,29 +9663,24 @@ }, "camelcase": { "version": "5.3.1", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true }, "caniuse-lite": { "version": "1.0.30001263", - "integrity": "sha512-doiV5dft6yzWO1WwU19kt8Qz8R0/8DgEziz6/9n2FxUasteZNwNNYSmJO3GLBH8lCVE73AB1RPDPAeYbcO5Cvw==", "dev": true }, "capture-exit": { "version": "2.0.0", - "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", "dev": true, "requires": { "rsvp": "^4.8.4" } }, "caseless": { - "version": "0.12.0", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + "version": "0.12.0" }, "chalk": { "version": "4.1.2", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -9819,16 +9689,13 @@ }, "char-regex": { "version": "1.0.2", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true }, "charenc": { - "version": "0.0.2", - "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=" + "version": "0.0.2" }, "chokidar": { "version": "3.5.2", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", "requires": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -9841,22 +9708,18 @@ } }, "chownr": { - "version": "1.1.4", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + "version": "1.1.4" }, "ci-info": { "version": "2.0.0", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", "dev": true }, "cjs-module-lexer": { "version": "0.6.0", - "integrity": "sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==", "dev": true }, "class-utils": { "version": "0.3.6", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, "requires": { "arr-union": "^3.1.0", @@ -9867,7 +9730,6 @@ "dependencies": { "define-property": { "version": "0.2.5", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "^0.1.0" @@ -9875,7 +9737,6 @@ }, "is-accessor-descriptor": { "version": "0.1.6", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { "kind-of": "^3.0.2" @@ -9883,7 +9744,6 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -9893,7 +9753,6 @@ }, "is-data-descriptor": { "version": "0.1.4", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { "kind-of": "^3.0.2" @@ -9901,7 +9760,6 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -9911,7 +9769,6 @@ }, "is-descriptor": { "version": "0.1.6", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { "is-accessor-descriptor": "^0.1.6", @@ -9921,26 +9778,22 @@ }, "isobject": { "version": "3.0.1", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, "kind-of": { "version": "5.1.0", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true } } }, "clean-css": { "version": "4.2.3", - "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", "requires": { "source-map": "~0.6.0" } }, "clean-html": { "version": "1.5.0", - "integrity": "sha512-eDu0vN44ZBvoEU0oRIKwWPIccGWXtdnUNmKJuTukZ1de00Uoqavb5pfIMKiC7/r+knQ5RbvAjGuVZiN3JwJL4Q==", "dev": true, "requires": { "htmlparser2": "^3.8.2", @@ -9949,7 +9802,6 @@ }, "cliss": { "version": "0.0.2", - "integrity": "sha512-6rj9pgdukjT994Md13JCUAgTk91abAKrygL9sAvmHY4F6AKMOV8ccGaxhUUfcBuyg3sundWnn3JE0Mc9W6ZYqw==", "requires": { "command-line-usage": "^4.0.1", "deepmerge": "^2.0.0", @@ -9962,12 +9814,10 @@ }, "dependencies": { "ansi-regex": { - "version": "3.0.0", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "version": "3.0.0" }, "strip-ansi": { "version": "4.0.0", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { "ansi-regex": "^3.0.0" } @@ -9976,7 +9826,6 @@ }, "cliui": { "version": "6.0.0", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, "requires": { "string-width": "^4.2.0", @@ -9986,12 +9835,10 @@ "dependencies": { "is-fullwidth-code-point": { "version": "3.0.0", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "string-width": { "version": "4.2.3", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "requires": { "emoji-regex": "^8.0.0", @@ -10003,21 +9850,17 @@ }, "co": { "version": "4.6.0", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", "dev": true }, "code-point-at": { - "version": "1.1.0", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + "version": "1.1.0" }, "collect-v8-coverage": { "version": "1.0.1", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", "dev": true }, "collection-visit": { "version": "1.0.0", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "requires": { "map-visit": "^1.0.0", @@ -10026,7 +9869,6 @@ }, "color": { "version": "3.1.2", - "integrity": "sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==", "requires": { "color-convert": "^1.9.1", "color-string": "^1.5.2" @@ -10034,18 +9876,15 @@ }, "color-convert": { "version": "1.9.3", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "requires": { "color-name": "1.1.3" } }, "color-name": { - "version": "1.1.3", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "version": "1.1.3" }, "color-string": { "version": "1.6.0", - "integrity": "sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA==", "requires": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" @@ -10053,14 +9892,12 @@ }, "combined-stream": { "version": "1.0.8", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "requires": { "delayed-stream": "~1.0.0" } }, "command-line-usage": { "version": "4.1.0", - "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", "requires": { "ansi-escape-sequences": "^4.0.0", "array-back": "^2.0.0", @@ -10069,29 +9906,23 @@ } }, "commander": { - "version": "2.17.1", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==" + "version": "2.17.1" }, "compare-versions": { - "version": "3.6.0", - "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==" + "version": "3.6.0" }, "component-emitter": { "version": "1.3.0", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", "dev": true }, "concat-map": { - "version": "0.0.1", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "version": "0.0.1" }, "console-control-strings": { - "version": "1.1.0", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + "version": "1.1.0" }, "convert-source-map": { "version": "1.8.0", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", "dev": true, "requires": { "safe-buffer": "~5.1.1" @@ -10099,16 +9930,13 @@ }, "copy-descriptor": { "version": "0.1.1", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", "dev": true }, "core-util-is": { - "version": "1.0.2", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "version": "1.0.2" }, "cross-spawn": { "version": "7.0.3", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { "path-key": "^3.1.0", @@ -10117,12 +9945,10 @@ } }, "crypt": { - "version": "0.0.2", - "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=" + "version": "0.0.2" }, "css": { "version": "3.0.0", - "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", "requires": { "inherits": "^2.0.4", "source-map": "^0.6.1", @@ -10131,12 +9957,10 @@ }, "cssom": { "version": "0.4.4", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", "dev": true }, "cssstyle": { "version": "2.3.0", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", "dev": true, "requires": { "cssom": "~0.3.6" @@ -10144,26 +9968,22 @@ "dependencies": { "cssom": { "version": "0.3.8", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", "dev": true } } }, "csstype": { "version": "3.0.9", - "integrity": "sha512-rpw6JPxK6Rfg1zLOYCSwle2GFOOsnjmDYDaBwEcwoOg4qlsIVCN789VkBZDJAGi4T07gI4YSutR43t9Zz4Lzuw==", "dev": true }, "dashdash": { "version": "1.14.1", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { "assert-plus": "^1.0.0" } }, "data-urls": { "version": "2.0.0", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", "dev": true, "requires": { "abab": "^2.0.3", @@ -10173,7 +9993,6 @@ }, "debug": { "version": "4.3.2", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { "ms": "2.1.2" @@ -10181,41 +10000,33 @@ }, "decamelize": { "version": "1.2.0", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, "decimal.js": { "version": "10.3.1", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", "dev": true }, "decode-uri-component": { - "version": "0.2.0", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + "version": "0.2.0" }, "decompress-response": { "version": "6.0.0", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", "dev": true, "requires": { "mimic-response": "^3.1.0" } }, "deep-extend": { - "version": "0.6.0", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + "version": "0.6.0" }, "deep-is": { - "version": "0.1.2", - "integrity": "sha1-nO1l6gvAsJ9CptecGxkD+dkTzBg=" + "version": "0.1.2" }, "deepmerge": { - "version": "2.2.1", - "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==" + "version": "2.2.1" }, "define-property": { "version": "2.0.2", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "requires": { "is-descriptor": "^1.0.2", @@ -10224,44 +10035,35 @@ "dependencies": { "isobject": { "version": "3.0.1", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true } } }, "delayed-stream": { - "version": "1.0.0", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + "version": "1.0.0" }, "delegates": { - "version": "1.0.0", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + "version": "1.0.0" }, "depd": { - "version": "1.1.2", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + "version": "1.1.2" }, "detect-libc": { - "version": "1.0.3", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" + "version": "1.0.3" }, "detect-newline": { "version": "3.1.0", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true }, "diff-match-patch": { - "version": "1.0.5", - "integrity": "sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==" + "version": "1.0.5" }, "diff-sequences": { "version": "26.6.2", - "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", "dev": true }, "dom-serializer": { "version": "0.2.2", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", "dev": true, "requires": { "domelementtype": "^2.0.1", @@ -10270,24 +10072,20 @@ "dependencies": { "domelementtype": { "version": "2.2.0", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", "dev": true }, "entities": { "version": "2.2.0", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", "dev": true } } }, "domelementtype": { "version": "1.3.1", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", "dev": true }, "domexception": { "version": "2.0.1", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", "dev": true, "requires": { "webidl-conversions": "^5.0.0" @@ -10295,14 +10093,12 @@ "dependencies": { "webidl-conversions": { "version": "5.0.0", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", "dev": true } } }, "domhandler": { "version": "2.4.2", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", "dev": true, "requires": { "domelementtype": "1" @@ -10310,7 +10106,6 @@ }, "domutils": { "version": "1.7.0", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", "dev": true, "requires": { "dom-serializer": "0", @@ -10319,7 +10114,6 @@ }, "ecc-jsbn": { "version": "0.1.2", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "requires": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" @@ -10327,29 +10121,24 @@ }, "electron-to-chromium": { "version": "1.3.856", - "integrity": "sha512-lSezYIe1/p5qkEswAfaQUseOBiwGwuCvRl/MKzOEVe++DcmQ92+43dznDl4rFJ4Zpu+kevhwyIf7KjJevyDA/A==", "dev": true }, "emittery": { "version": "0.7.2", - "integrity": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==", "dev": true }, "emoji-regex": { "version": "8.0.0", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "encoding": { "version": "0.1.13", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "requires": { "iconv-lite": "^0.6.2" } }, "end-of-stream": { "version": "1.4.4", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, "requires": { "once": "^1.4.0" @@ -10357,34 +10146,28 @@ }, "entities": { "version": "1.1.2", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", "dev": true }, "error-ex": { "version": "1.3.2", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { "is-arrayish": "^0.2.1" } }, "es6-promise-pool": { - "version": "2.5.0", - "integrity": "sha1-FHxhKza0fxBQJ/nSv1SlmKmdnMs=" + "version": "2.5.0" }, "escalade": { "version": "3.1.1", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true }, "escape-string-regexp": { "version": "2.0.0", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true }, "escodegen": { "version": "2.0.0", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", "dev": true, "requires": { "esprima": "^4.0.1", @@ -10396,31 +10179,25 @@ }, "esprima": { "version": "4.0.1", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, "estraverse": { "version": "5.2.0", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", "dev": true }, "esutils": { "version": "2.0.3", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, "events": { - "version": "1.1.1", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" + "version": "1.1.1" }, "exec-sh": { "version": "0.3.6", - "integrity": "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==", "dev": true }, "execa": { "version": "4.1.0", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", "dev": true, "requires": { "cross-spawn": "^7.0.0", @@ -10436,12 +10213,10 @@ }, "exit": { "version": "0.1.2", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", "dev": true }, "expand-brackets": { "version": "2.1.4", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { "debug": "^2.3.3", @@ -10455,7 +10230,6 @@ "dependencies": { "debug": { "version": "2.6.9", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" @@ -10463,7 +10237,6 @@ }, "define-property": { "version": "0.2.5", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "^0.1.0" @@ -10471,7 +10244,6 @@ }, "extend-shallow": { "version": "2.0.1", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" @@ -10479,7 +10251,6 @@ }, "is-accessor-descriptor": { "version": "0.1.6", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { "kind-of": "^3.0.2" @@ -10487,7 +10258,6 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -10497,7 +10267,6 @@ }, "is-data-descriptor": { "version": "0.1.4", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { "kind-of": "^3.0.2" @@ -10505,7 +10274,6 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -10515,7 +10283,6 @@ }, "is-descriptor": { "version": "0.1.6", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { "is-accessor-descriptor": "^0.1.6", @@ -10525,29 +10292,24 @@ }, "is-extendable": { "version": "0.1.1", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true }, "kind-of": { "version": "5.1.0", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true }, "ms": { "version": "2.0.0", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } }, "expand-template": { "version": "2.0.3", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", "dev": true }, "expect": { "version": "26.6.2", - "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", "dev": true, "requires": { "@jest/types": "^26.6.2", @@ -10559,12 +10321,10 @@ } }, "extend": { - "version": "3.0.2", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + "version": "3.0.2" }, "extend-shallow": { "version": "3.0.2", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { "assign-symbols": "^1.0.0", @@ -10573,7 +10333,6 @@ }, "extglob": { "version": "2.0.4", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { "array-unique": "^0.3.2", @@ -10588,7 +10347,6 @@ "dependencies": { "define-property": { "version": "1.0.0", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { "is-descriptor": "^1.0.0" @@ -10596,7 +10354,6 @@ }, "extend-shallow": { "version": "2.0.1", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" @@ -10604,54 +10361,44 @@ }, "is-extendable": { "version": "0.1.1", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true } } }, "extsprintf": { - "version": "1.3.0", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + "version": "1.3.0" }, "fast-deep-equal": { - "version": "3.1.3", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "version": "3.1.3" }, "fast-json-stable-stringify": { - "version": "2.1.0", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "version": "2.1.0" }, "fast-levenshtein": { "version": "2.0.6", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, "fb-watchman": { "version": "2.0.1", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", "dev": true, "requires": { "bser": "2.1.1" } }, "file-type": { - "version": "10.11.0", - "integrity": "sha512-uzk64HRpUZyTGZtVuvrjP0FYxzQrBf4rojot6J65YMEbwBLB0CWm0CLojVpwpmFmxcE/lkvYICgfcGozbBq6rw==" + "version": "10.11.0" }, "file-uri-to-path": { - "version": "1.0.0", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + "version": "1.0.0" }, "fill-range": { "version": "7.0.1", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "requires": { "to-regex-range": "^5.0.1" } }, "find-up": { "version": "4.1.0", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { "locate-path": "^5.0.0", @@ -10659,35 +10406,29 @@ } }, "follow-redirects": { - "version": "1.14.4", - "integrity": "sha512-zwGkiSXC1MUJG/qmeIFH2HBJx9u0V46QGUe3YR1fXG8bXQxq7fLj0RjLZQ5nubr9qNJUZrH+xUcwXEoXNpfS+g==" + "version": "1.14.4" }, "for-each-property": { "version": "0.0.4", - "integrity": "sha1-z6hXrsFCLh0Sb/CHhPz2Jim8g/Y=", "requires": { "get-prototype-chain": "^1.0.1" } }, "for-each-property-deep": { "version": "0.0.3", - "integrity": "sha1-MTCaSvw4qcygbxsiP1PWSm0IP60=", "requires": { "for-each-property": "0.0.4" } }, "for-in": { "version": "1.0.2", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", "dev": true }, "forever-agent": { - "version": "0.6.1", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + "version": "0.6.1" }, "form-data": { "version": "2.5.1", - "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -10696,7 +10437,6 @@ }, "fragment-cache": { "version": "0.2.1", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "requires": { "map-cache": "^0.2.2" @@ -10704,12 +10444,10 @@ }, "fs-constants": { "version": "1.0.0", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", "dev": true }, "fs-extra": { "version": "5.0.0", - "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", "requires": { "graceful-fs": "^4.1.2", "jsonfile": "^4.0.0", @@ -10718,23 +10456,15 @@ }, "fs-minipass": { "version": "1.2.7", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", "requires": { "minipass": "^2.6.0" } }, "fs.realpath": { - "version": "1.0.0", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "2.3.2", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "optional": true + "version": "1.0.0" }, "fstream": { "version": "1.0.12", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", "optional": true, "requires": { "graceful-fs": "^4.1.2", @@ -10745,7 +10475,6 @@ "dependencies": { "rimraf": { "version": "2.7.1", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "optional": true, "requires": { "glob": "^7.1.3" @@ -10755,12 +10484,10 @@ }, "function-bind": { "version": "1.1.1", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, "gauge": { "version": "2.7.4", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "requires": { "aproba": "^1.0.3", "console-control-strings": "^1.0.0", @@ -10773,12 +10500,10 @@ }, "dependencies": { "ansi-regex": { - "version": "2.1.1", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "version": "2.1.1" }, "strip-ansi": { "version": "3.0.1", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "^2.0.0" } @@ -10787,30 +10512,24 @@ }, "gensync": { "version": "1.0.0-beta.2", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true }, "get-caller-file": { "version": "2.0.5", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, "get-package-type": { "version": "0.1.0", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true }, "get-prototype-chain": { - "version": "1.0.1", - "integrity": "sha1-oXGhFeoeSQbG7ThDofABwYUQQW8=" + "version": "1.0.1" }, "get-stdin": { - "version": "5.0.1", - "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g=" + "version": "5.0.1" }, "get-stream": { "version": "5.2.0", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, "requires": { "pump": "^3.0.0" @@ -10818,24 +10537,20 @@ }, "get-value": { "version": "2.0.6", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", "dev": true }, "getpass": { "version": "0.1.7", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { "assert-plus": "^1.0.0" } }, "github-from-package": { "version": "0.0.0", - "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=", "dev": true }, "glob": { "version": "7.2.0", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -10847,31 +10562,25 @@ }, "glob-parent": { "version": "5.1.2", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "requires": { "is-glob": "^4.0.1" } }, "globals": { "version": "11.12.0", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true }, "graceful-fs": { - "version": "4.2.8", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" + "version": "4.2.8" }, "growly": { - "version": "1.3.0", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=" + "version": "1.3.0" }, "har-schema": { - "version": "2.0.0", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + "version": "2.0.0" }, "har-validator": { "version": "5.1.5", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", "requires": { "ajv": "^6.12.3", "har-schema": "^2.0.0" @@ -10879,7 +10588,6 @@ }, "has": { "version": "1.0.3", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "requires": { "function-bind": "^1.1.1" @@ -10887,16 +10595,13 @@ }, "has-flag": { "version": "4.0.0", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "has-unicode": { - "version": "2.0.1", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + "version": "2.0.1" }, "has-value": { "version": "1.0.0", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "requires": { "get-value": "^2.0.6", @@ -10906,14 +10611,12 @@ "dependencies": { "isobject": { "version": "3.0.1", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true } } }, "has-values": { "version": "1.0.0", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "requires": { "is-number": "^3.0.0", @@ -10922,7 +10625,6 @@ "dependencies": { "is-number": { "version": "3.0.0", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { "kind-of": "^3.0.2" @@ -10930,7 +10632,6 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -10940,7 +10641,6 @@ }, "kind-of": { "version": "4.0.0", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -10949,34 +10649,28 @@ } }, "he": { - "version": "1.2.0", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + "version": "1.2.0" }, "hosted-git-info": { "version": "2.8.9", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "html-encoding-sniffer": { "version": "2.0.1", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", "dev": true, "requires": { "whatwg-encoding": "^1.0.5" } }, "html-entities": { - "version": "1.4.0", - "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==" + "version": "1.4.0" }, "html-escaper": { "version": "2.0.2", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, "html-minifier": { "version": "3.5.21", - "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", "requires": { "camel-case": "3.0.x", "clean-css": "4.2.x", @@ -10989,7 +10683,6 @@ }, "htmlparser2": { "version": "3.10.1", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", "dev": true, "requires": { "domelementtype": "^1.3.1", @@ -11002,7 +10695,6 @@ }, "http-errors": { "version": "1.8.0", - "integrity": "sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==", "requires": { "depd": "~1.1.2", "inherits": "2.0.4", @@ -11013,7 +10705,6 @@ }, "http-proxy-agent": { "version": "4.0.1", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", "dev": true, "requires": { "@tootallnate/once": "1", @@ -11023,7 +10714,6 @@ }, "http-signature": { "version": "1.2.0", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", @@ -11032,7 +10722,6 @@ }, "https-proxy-agent": { "version": "5.0.0", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", "dev": true, "requires": { "agent-base": "6", @@ -11041,30 +10730,25 @@ }, "human-signals": { "version": "1.1.1", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", "dev": true }, "iconv-lite": { "version": "0.6.3", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "requires": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "ieee754": { - "version": "1.1.13", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" + "version": "1.1.13" }, "ignore-walk": { "version": "3.0.4", - "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", "requires": { "minimatch": "^3.0.4" } }, "image-data-uri": { "version": "2.0.1", - "integrity": "sha512-BZh721F2Q5TwBdwpiqrBrHEdj8daj8KuMZK/DOCyqQlz1CqFhhuZWbK5ZCUnAvFJr8LaKHTaWl9ja3/a3DC2Ew==", "requires": { "fs-extra": "^0.26.7", "magicli": "0.0.8", @@ -11074,7 +10758,6 @@ "dependencies": { "fs-extra": { "version": "0.26.7", - "integrity": "sha1-muH92UiXeY7at20JGM9C0MMYT6k=", "requires": { "graceful-fs": "^4.1.2", "jsonfile": "^2.1.0", @@ -11085,14 +10768,12 @@ }, "jsonfile": { "version": "2.4.0", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", "requires": { "graceful-fs": "^4.1.6" } }, "rimraf": { "version": "2.7.1", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "requires": { "glob": "^7.1.3" } @@ -11101,18 +10782,15 @@ }, "image-type": { "version": "3.1.0", - "integrity": "sha512-edYRXKQ3WD2yHXFGUbwoJVn5v7j1A6Z505uZUYIfzCwOOhPGLYSc3VOucF9fqbsaUbgb37DdjOU+WV4uo7ZooQ==", "requires": { "file-type": "^10.9.0" } }, "immer": { - "version": "7.0.15", - "integrity": "sha512-yM7jo9+hvYgvdCQdqvhCNRRio0SCXc8xDPzA25SvKWa7b1WVPjLwQs1VYU5JPXjcJPTqAa5NP5dqpORGYBQ2AA==" + "version": "7.0.15" }, "import-local": { "version": "3.0.2", - "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", "dev": true, "requires": { "pkg-dir": "^4.2.0", @@ -11121,28 +10799,23 @@ }, "imurmurhash": { "version": "0.1.4", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, "inflight": { "version": "1.0.6", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { "once": "^1.3.0", "wrappy": "1" } }, "inherits": { - "version": "2.0.4", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "version": "2.0.4" }, "ini": { - "version": "1.3.8", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + "version": "1.3.8" }, "inspect-function": { "version": "0.3.4", - "integrity": "sha512-s0RsbJqK/sNZ+U1mykGoTickog3ea1A9Qk4mXniogOBu4PgkkZ56elScO7QC/r8D94lhGmJ2NyDI1ipOA/uq/g==", "requires": { "inspect-parameters-declaration": "0.0.8", "magicli": "0.0.8", @@ -11153,7 +10826,6 @@ "dependencies": { "inspect-function": { "version": "0.2.2", - "integrity": "sha1-hdoMUli8TDMK4yg7Z0fgdZ2QpjU=", "requires": { "split-skip": "0.0.1", "unpack-string": "0.0.2" @@ -11161,7 +10833,6 @@ }, "inspect-parameters-declaration": { "version": "0.0.8", - "integrity": "sha512-W4QzN1LgFmasKOM+NoLlDd2OAZM3enNZlVUOXoGQKmYBDFgxoPDOyebF55ALaf8avyM9TavNwibXxg347RrzCg==", "requires": { "magicli": "0.0.5", "split-skip": "0.0.2", @@ -11171,7 +10842,6 @@ "dependencies": { "magicli": { "version": "0.0.5", - "integrity": "sha1-zufQ+7THBRiqyxHsPrfiX/SaSSE=", "requires": { "commander": "^2.9.0", "get-stdin": "^5.0.1", @@ -11180,20 +10850,17 @@ } }, "split-skip": { - "version": "0.0.2", - "integrity": "sha1-2J2Iu9L3Pka1FYqjcKVhIk6A1GE=" + "version": "0.0.2" } } }, "split-skip": { - "version": "0.0.1", - "integrity": "sha1-gK2ONumOV2RUzDtmfB3SXYZejwA=" + "version": "0.0.1" } } }, "inspect-parameters-declaration": { "version": "0.0.9", - "integrity": "sha512-c3jrKKA1rwwrsjdGMAo2hFWV0vNe3/RKHxpE/OBt41LP3ynOVI1qmgxpZYK5SQu3jtWCyaho8L7AZzCjJ4mEUw==", "requires": { "magicli": "0.0.5", "split-skip": "0.0.2", @@ -11203,21 +10870,18 @@ "dependencies": { "inspect-function": { "version": "0.2.2", - "integrity": "sha1-hdoMUli8TDMK4yg7Z0fgdZ2QpjU=", "requires": { "split-skip": "0.0.1", "unpack-string": "0.0.2" }, "dependencies": { "split-skip": { - "version": "0.0.1", - "integrity": "sha1-gK2ONumOV2RUzDtmfB3SXYZejwA=" + "version": "0.0.1" } } }, "magicli": { "version": "0.0.5", - "integrity": "sha1-zufQ+7THBRiqyxHsPrfiX/SaSSE=", "requires": { "commander": "^2.9.0", "get-stdin": "^5.0.1", @@ -11229,7 +10893,6 @@ }, "inspect-property": { "version": "0.0.6", - "integrity": "sha512-LgjHkRl9W6bj2n+kWrAOgvCYPTYt+LanE4rtd/vKNq6yEb+SvVV7UTLzoSPpDX6/U1cAz7VfqPr+lPAIz7wHaQ==", "requires": { "for-each-property": "0.0.4", "for-each-property-deep": "0.0.3", @@ -11238,7 +10901,6 @@ }, "is-absolute": { "version": "0.2.6", - "integrity": "sha1-IN5p89uULvLYe5wto28XIjWxtes=", "requires": { "is-relative": "^0.2.1", "is-windows": "^0.2.0" @@ -11246,7 +10908,6 @@ }, "is-accessor-descriptor": { "version": "1.0.0", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { "kind-of": "^6.0.0" @@ -11254,23 +10915,19 @@ }, "is-arrayish": { "version": "0.2.1", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, "is-binary-path": { "version": "2.1.0", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "requires": { "binary-extensions": "^2.0.0" } }, "is-buffer": { - "version": "1.1.6", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "version": "1.1.6" }, "is-ci": { "version": "2.0.0", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", "dev": true, "requires": { "ci-info": "^2.0.0" @@ -11278,7 +10935,6 @@ }, "is-core-module": { "version": "2.7.0", - "integrity": "sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==", "dev": true, "requires": { "has": "^1.0.3" @@ -11286,7 +10942,6 @@ }, "is-data-descriptor": { "version": "1.0.0", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { "kind-of": "^6.0.0" @@ -11294,7 +10949,6 @@ }, "is-descriptor": { "version": "1.0.2", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", @@ -11303,47 +10957,39 @@ } }, "is-docker": { - "version": "2.2.1", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" + "version": "2.2.1" }, "is-extendable": { "version": "1.0.1", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { "is-plain-object": "^2.0.4" } }, "is-extglob": { - "version": "2.1.1", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "version": "2.1.1" }, "is-fullwidth-code-point": { "version": "1.0.0", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { "number-is-nan": "^1.0.0" } }, "is-generator-fn": { "version": "2.1.0", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true }, "is-glob": { "version": "4.0.3", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "requires": { "is-extglob": "^2.1.1" } }, "is-number": { - "version": "7.0.0", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + "version": "7.0.0" }, "is-plain-object": { "version": "2.0.4", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { "isobject": "^3.0.1" @@ -11351,84 +10997,69 @@ "dependencies": { "isobject": { "version": "3.0.1", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true } } }, "is-potential-custom-element-name": { "version": "1.0.1", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", "dev": true }, "is-relative": { "version": "0.2.1", - "integrity": "sha1-0n9MfVFtF1+2ENuEu+7yPDvJeqU=", "requires": { "is-unc-path": "^0.1.1" } }, "is-stream": { "version": "2.0.1", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true }, "is-typedarray": { - "version": "1.0.0", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + "version": "1.0.0" }, "is-unc-path": { "version": "0.1.2", - "integrity": "sha1-arBTpyVzwQJQ/0FqOBTDUXivObk=", "requires": { "unc-path-regex": "^0.1.0" } }, "is-windows": { - "version": "0.2.0", - "integrity": "sha1-3hqm1j6indJIc3tp8f+LgALSEIw=" + "version": "0.2.0" }, "is-wsl": { "version": "2.2.0", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "requires": { "is-docker": "^2.0.0" } }, "is2": { "version": "0.0.9", - "integrity": "sha1-EZVW0dFlGkG6EFr4AyZ8gLKZ9ik=", "requires": { "deep-is": "0.1.2" } }, "isarray": { - "version": "1.0.0", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "version": "1.0.0" }, "isexe": { - "version": "2.0.0", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "version": "2.0.0" }, "isobject": { "version": "2.1.0", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "requires": { "isarray": "1.0.0" } }, "isstream": { - "version": "0.1.2", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + "version": "0.1.2" }, "istanbul-lib-coverage": { "version": "3.0.1", - "integrity": "sha512-GvCYYTxaCPqwMjobtVcVKvSHtAGe48MNhGjpK8LtVF8K0ISX7hCKl85LgtuaSneWVyQmaGcW3iXVV3GaZSLpmQ==", "dev": true }, "istanbul-lib-instrument": { "version": "4.0.3", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", "dev": true, "requires": { "@babel/core": "^7.7.5", @@ -11439,7 +11070,6 @@ }, "istanbul-lib-report": { "version": "3.0.0", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", "dev": true, "requires": { "istanbul-lib-coverage": "^3.0.0", @@ -11449,7 +11079,6 @@ }, "istanbul-lib-source-maps": { "version": "4.0.0", - "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", "dev": true, "requires": { "debug": "^4.1.1", @@ -11459,7 +11088,6 @@ }, "istanbul-reports": { "version": "3.0.2", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", "dev": true, "requires": { "html-escaper": "^2.0.0", @@ -11468,7 +11096,6 @@ }, "jest": { "version": "26.6.3", - "integrity": "sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==", "dev": true, "requires": { "@jest/core": "^26.6.3", @@ -11478,7 +11105,6 @@ }, "jest-changed-files": { "version": "26.6.2", - "integrity": "sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==", "dev": true, "requires": { "@jest/types": "^26.6.2", @@ -11488,7 +11114,6 @@ }, "jest-cli": { "version": "26.6.3", - "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", "dev": true, "requires": { "@jest/core": "^26.6.3", @@ -11508,12 +11133,10 @@ "dependencies": { "deepmerge": { "version": "4.2.2", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", "dev": true }, "jest-config": { "version": "26.6.3", - "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", "dev": true, "requires": { "@babel/core": "^7.1.0", @@ -11540,7 +11163,6 @@ }, "jest-diff": { "version": "26.6.2", - "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", "dev": true, "requires": { "chalk": "^4.0.0", @@ -11551,7 +11173,6 @@ }, "jest-docblock": { "version": "26.0.0", - "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", "dev": true, "requires": { "detect-newline": "^3.0.0" @@ -11559,7 +11180,6 @@ }, "jest-each": { "version": "26.6.2", - "integrity": "sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==", "dev": true, "requires": { "@jest/types": "^26.6.2", @@ -11571,7 +11191,6 @@ }, "jest-environment-jsdom": { "version": "26.6.2", - "integrity": "sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==", "dev": true, "requires": { "@jest/environment": "^26.6.2", @@ -11585,7 +11204,6 @@ }, "jest-environment-node": { "version": "26.6.2", - "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==", "dev": true, "requires": { "@jest/environment": "^26.6.2", @@ -11598,12 +11216,10 @@ }, "jest-get-type": { "version": "26.3.0", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", "dev": true }, "jest-haste-map": { "version": "26.6.2", - "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", "dev": true, "requires": { "@jest/types": "^26.6.2", @@ -11624,7 +11240,6 @@ }, "jest-jasmine2": { "version": "26.6.3", - "integrity": "sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==", "dev": true, "requires": { "@babel/traverse": "^7.1.0", @@ -11649,7 +11264,6 @@ }, "jest-leak-detector": { "version": "26.6.2", - "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==", "dev": true, "requires": { "jest-get-type": "^26.3.0", @@ -11658,7 +11272,6 @@ }, "jest-matcher-utils": { "version": "26.6.2", - "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", "dev": true, "requires": { "chalk": "^4.0.0", @@ -11669,7 +11282,6 @@ }, "jest-message-util": { "version": "26.6.2", - "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -11685,7 +11297,6 @@ }, "jest-mock": { "version": "26.6.2", - "integrity": "sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==", "dev": true, "requires": { "@jest/types": "^26.6.2", @@ -11694,18 +11305,15 @@ }, "jest-pnp-resolver": { "version": "1.2.2", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", "dev": true, "requires": {} }, "jest-regex-util": { "version": "26.0.0", - "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", "dev": true }, "jest-resolve": { "version": "26.6.2", - "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", "dev": true, "requires": { "@jest/types": "^26.6.2", @@ -11720,7 +11328,6 @@ }, "jest-resolve-dependencies": { "version": "26.6.3", - "integrity": "sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==", "dev": true, "requires": { "@jest/types": "^26.6.2", @@ -11730,7 +11337,6 @@ }, "jest-runner": { "version": "26.6.3", - "integrity": "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==", "dev": true, "requires": { "@jest/console": "^26.6.2", @@ -11757,12 +11363,10 @@ "dependencies": { "deepmerge": { "version": "4.2.2", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", "dev": true }, "jest-config": { "version": "26.6.3", - "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", "dev": true, "requires": { "@babel/core": "^7.1.0", @@ -11789,7 +11393,6 @@ }, "jest-runtime": { "version": "26.6.3", - "integrity": "sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==", "dev": true, "requires": { "@jest/console": "^26.6.2", @@ -11823,12 +11426,10 @@ "dependencies": { "deepmerge": { "version": "4.2.2", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", "dev": true }, "jest-config": { "version": "26.6.3", - "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", "dev": true, "requires": { "@babel/core": "^7.1.0", @@ -11855,7 +11456,6 @@ }, "jest-serializer": { "version": "26.6.2", - "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", "dev": true, "requires": { "@types/node": "*", @@ -11864,7 +11464,6 @@ }, "jest-snapshot": { "version": "26.6.2", - "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==", "dev": true, "requires": { "@babel/types": "^7.0.0", @@ -11887,7 +11486,6 @@ "dependencies": { "semver": { "version": "7.3.5", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -11897,7 +11495,6 @@ }, "jest-util": { "version": "26.6.2", - "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", "dev": true, "requires": { "@jest/types": "^26.6.2", @@ -11910,7 +11507,6 @@ }, "jest-validate": { "version": "26.6.2", - "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==", "dev": true, "requires": { "@jest/types": "^26.6.2", @@ -11923,14 +11519,12 @@ "dependencies": { "camelcase": { "version": "6.2.0", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", "dev": true } } }, "jest-watcher": { "version": "26.6.2", - "integrity": "sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==", "dev": true, "requires": { "@jest/test-result": "^26.6.2", @@ -11944,7 +11538,6 @@ }, "jest-worker": { "version": "26.6.2", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", "dev": true, "requires": { "@types/node": "*", @@ -11953,29 +11546,31 @@ } }, "jmespath": { - "version": "0.15.0", - "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" + "version": "0.15.0" }, "js-tokens": { - "version": "4.0.0", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "version": "4.0.0" }, "js-yaml": { - "version": "3.14.1", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + } } }, "jsbn": { - "version": "0.1.1", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + "version": "0.1.1" }, "jsdom": { "version": "16.7.0", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", "dev": true, "requires": { "abab": "^2.0.5", @@ -12009,7 +11604,6 @@ "dependencies": { "form-data": { "version": "3.0.1", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", "dev": true, "requires": { "asynckit": "^0.4.0", @@ -12019,7 +11613,6 @@ }, "tough-cookie": { "version": "4.0.0", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", "dev": true, "requires": { "psl": "^1.1.33", @@ -12031,29 +11624,23 @@ }, "jsesc": { "version": "2.5.2", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true }, "json-parse-even-better-errors": { "version": "2.3.1", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, "json-schema": { - "version": "0.2.3", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + "version": "0.2.3" }, "json-schema-traverse": { - "version": "0.4.1", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "version": "0.4.1" }, "json-stringify-safe": { - "version": "5.0.1", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + "version": "5.0.1" }, "json5": { "version": "2.2.0", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "dev": true, "requires": { "minimist": "^1.2.5" @@ -12061,14 +11648,12 @@ }, "jsonfile": { "version": "4.0.0", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "requires": { "graceful-fs": "^4.1.6" } }, "jsprim": { "version": "1.4.1", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -12078,33 +11663,27 @@ }, "kind-of": { "version": "6.0.3", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true }, "klaw": { "version": "1.3.1", - "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", "requires": { "graceful-fs": "^4.1.9" } }, "kleur": { "version": "3.0.3", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true }, "leven": { "version": "3.1.0", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true }, "levenshtein": { - "version": "1.0.5", - "integrity": "sha1-ORFzepy1baNF0Aj1V4LG8TiXm6M=" + "version": "1.0.5" }, "levn": { "version": "0.3.0", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { "prelude-ls": "~1.1.2", @@ -12113,63 +11692,52 @@ }, "lines-and-columns": { "version": "1.1.6", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", "dev": true }, "linkify-it": { "version": "2.2.0", - "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", "requires": { "uc.micro": "^1.0.1" } }, "locate-path": { "version": "5.0.0", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { "p-locate": "^4.1.0" } }, "lodash": { - "version": "4.17.21", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "version": "4.17.21" }, "lodash-es": { - "version": "4.17.21", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + "version": "4.17.21" }, "lodash.padend": { - "version": "4.6.1", - "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=" + "version": "4.6.1" }, "loose-envify": { "version": "1.4.0", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "requires": { "js-tokens": "^3.0.0 || ^4.0.0" } }, "lower-case": { - "version": "1.1.4", - "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" + "version": "1.1.4" }, "lru-cache": { "version": "6.0.0", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "requires": { "yallist": "^4.0.0" }, "dependencies": { "yallist": { - "version": "4.0.0", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "version": "4.0.0" } } }, "magicli": { "version": "0.0.8", - "integrity": "sha512-x/eBenweAHF+DsYy172sK4doRxZl0yrJnfxhLJiN7H6hPM3Ya0PfI6uBZshZ3ScFFSQD7HXgBqMdbnXKEZsO1g==", "requires": { "cliss": "0.0.2", "find-up": "^2.1.0", @@ -12179,14 +11747,12 @@ "dependencies": { "find-up": { "version": "2.1.0", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { "locate-path": "^2.0.0" } }, "locate-path": { "version": "2.0.0", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "requires": { "p-locate": "^2.0.0", "path-exists": "^3.0.0" @@ -12194,31 +11760,26 @@ }, "p-limit": { "version": "1.3.0", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "requires": { "p-try": "^1.0.0" } }, "p-locate": { "version": "2.0.0", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "requires": { "p-limit": "^1.1.0" } }, "p-try": { - "version": "1.0.0", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + "version": "1.0.0" }, "path-exists": { - "version": "3.0.0", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + "version": "3.0.0" } } }, "make-dir": { "version": "3.1.0", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "requires": { "semver": "^6.0.0" @@ -12226,7 +11787,6 @@ }, "makeerror": { "version": "1.0.11", - "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", "dev": true, "requires": { "tmpl": "1.0.x" @@ -12234,12 +11794,10 @@ }, "map-cache": { "version": "0.2.2", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", "dev": true }, "map-visit": { "version": "1.0.0", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "requires": { "object-visit": "^1.0.0" @@ -12247,7 +11805,6 @@ }, "markdown-it": { "version": "10.0.0", - "integrity": "sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg==", "requires": { "argparse": "^1.0.7", "entities": "~2.0.0", @@ -12257,14 +11814,12 @@ }, "dependencies": { "entities": { - "version": "2.0.3", - "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==" + "version": "2.0.3" } } }, "md5": { "version": "2.3.0", - "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", "requires": { "charenc": "0.0.2", "crypt": "0.0.2", @@ -12272,21 +11827,17 @@ } }, "md5-file": { - "version": "4.0.0", - "integrity": "sha512-UC0qFwyAjn4YdPpKaDNw6gNxRf7Mcx7jC1UGCY4boCzgvU2Aoc1mOGzTtrjjLKhM5ivsnhoKpQVxKPp+1j1qwg==" + "version": "4.0.0" }, "mdurl": { - "version": "1.0.1", - "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" + "version": "1.0.1" }, "merge-stream": { "version": "2.0.0", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, "micromatch": { "version": "4.0.4", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "dev": true, "requires": { "braces": "^3.0.1", @@ -12294,40 +11845,33 @@ } }, "mime-db": { - "version": "1.49.0", - "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==" + "version": "1.49.0" }, "mime-types": { "version": "2.1.32", - "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", "requires": { "mime-db": "1.49.0" } }, "mimic-fn": { "version": "2.1.0", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true }, "mimic-response": { "version": "3.1.0", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", "dev": true }, "minimatch": { "version": "3.0.4", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { - "version": "1.2.5", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "version": "1.2.5" }, "minipass": { "version": "2.9.0", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -12335,14 +11879,12 @@ }, "minizlib": { "version": "1.3.3", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", "requires": { "minipass": "^2.9.0" } }, "mixin-deep": { "version": "1.3.2", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "dev": true, "requires": { "for-in": "^1.0.2", @@ -12351,27 +11893,22 @@ }, "mkdirp": { "version": "0.5.5", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "requires": { "minimist": "^1.2.5" } }, "mkdirp-classic": { "version": "0.5.3", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", "dev": true }, "moment": { - "version": "2.29.1", - "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" + "version": "2.29.1" }, "ms": { - "version": "2.1.2", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "version": "2.1.2" }, "multiparty": { "version": "4.2.2", - "integrity": "sha512-NtZLjlvsjcoGrzojtwQwn/Tm90aWJ6XXtPppYF4WmOk/6ncdwMMKggFY2NlRRN9yiCEIVxpOfPWahVEG2HAG8Q==", "requires": { "http-errors": "~1.8.0", "safe-buffer": "5.2.1", @@ -12379,27 +11916,22 @@ }, "dependencies": { "safe-buffer": { - "version": "5.2.1", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + "version": "5.2.1" } } }, "mustache": { - "version": "4.2.0", - "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==" + "version": "4.2.0" }, "nanocolors": { "version": "0.2.12", - "integrity": "sha512-SFNdALvzW+rVlzqexid6epYdt8H9Zol7xDoQarioEFcFN0JHo4CYNztAxmtfgGTVRCmFlEOqqhBpoFGKqSAMug==", "dev": true }, "nanoid": { - "version": "3.1.28", - "integrity": "sha512-gSu9VZ2HtmoKYe/lmyPFES5nknFrHa+/DT9muUFWFMi6Jh9E1I7bkvlQ8xxf1Kos9pi9o8lBnIOkatMhKX/YUw==" + "version": "3.1.28" }, "nanomatch": { "version": "1.2.13", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "dev": true, "requires": { "arr-diff": "^4.0.0", @@ -12417,24 +11949,20 @@ "dependencies": { "is-windows": { "version": "1.0.2", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true } } }, "napi-build-utils": { "version": "1.0.2", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", "dev": true }, "natural-compare": { "version": "1.4.0", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, "needle": { "version": "2.9.1", - "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", "requires": { "debug": "^3.2.6", "iconv-lite": "^0.4.4", @@ -12443,39 +11971,33 @@ "dependencies": { "debug": { "version": "3.2.7", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "requires": { "ms": "^2.1.1" } }, "iconv-lite": { "version": "0.4.24", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "requires": { "safer-buffer": ">= 2.1.2 < 3" } }, "sax": { - "version": "1.2.4", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + "version": "1.2.4" } } }, "nice-try": { "version": "1.0.5", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, "no-case": { "version": "2.3.2", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", "requires": { "lower-case": "^1.1.1" } }, "node-abi": { "version": "2.30.1", - "integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==", "dev": true, "requires": { "semver": "^5.4.1" @@ -12483,39 +12005,33 @@ "dependencies": { "semver": { "version": "5.7.1", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true } } }, "node-addon-api": { - "version": "3.2.1", - "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==" + "version": "3.2.1" }, "node-emoji": { "version": "1.11.0", - "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", "requires": { "lodash": "^4.17.21" } }, "node-fetch": { "version": "1.7.3", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", "requires": { "encoding": "^0.1.11", "is-stream": "^1.0.1" }, "dependencies": { "is-stream": { - "version": "1.1.0", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + "version": "1.1.0" } } }, "node-gyp": { "version": "3.8.0", - "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", "optional": true, "requires": { "fstream": "^1.0.0", @@ -12534,7 +12050,6 @@ "dependencies": { "rimraf": { "version": "2.7.1", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "optional": true, "requires": { "glob": "^7.1.3" @@ -12542,12 +12057,10 @@ }, "semver": { "version": "5.3.0", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", "optional": true }, "tar": { "version": "2.2.2", - "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", "optional": true, "requires": { "block-stream": "*", @@ -12557,7 +12070,6 @@ }, "which": { "version": "1.3.1", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "optional": true, "requires": { "isexe": "^2.0.0" @@ -12567,17 +12079,14 @@ }, "node-int64": { "version": "0.4.0", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", "dev": true }, "node-modules-regexp": { "version": "1.0.0", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", "dev": true }, "node-notifier": { "version": "8.0.2", - "integrity": "sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==", "requires": { "growly": "^1.3.0", "is-wsl": "^2.2.0", @@ -12589,20 +12098,17 @@ "dependencies": { "semver": { "version": "7.3.5", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "requires": { "lru-cache": "^6.0.0" } }, "uuid": { - "version": "8.3.2", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + "version": "8.3.2" } } }, "node-persist": { "version": "2.1.0", - "integrity": "sha1-5lK784haBNrWo1PXQXYXfIORRwc=", "requires": { "is-absolute": "^0.2.6", "mkdirp": "~0.5.1", @@ -12611,7 +12117,6 @@ }, "node-pre-gyp": { "version": "0.11.0", - "integrity": "sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==", "requires": { "detect-libc": "^1.0.2", "mkdirp": "^0.5.1", @@ -12627,7 +12132,6 @@ "dependencies": { "nopt": { "version": "4.0.3", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", "requires": { "abbrev": "1", "osenv": "^0.1.4" @@ -12635,33 +12139,27 @@ }, "rimraf": { "version": "2.7.1", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "requires": { "glob": "^7.1.3" } }, "semver": { - "version": "5.7.1", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "version": "5.7.1" } } }, "node-releases": { "version": "1.1.76", - "integrity": "sha512-9/IECtNr8dXNmPWmFXepT0/7o5eolGesHUa3mtr0KlgnCvnZxwh2qensKL42JJY2vQKC3nIBXetFAqR+PW1CmA==", "dev": true }, "node-rsa": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/node-rsa/-/node-rsa-1.1.1.tgz", - "integrity": "sha512-Jd4cvbJMryN21r5HgxQOpMEqv+ooke/korixNNK3mGqfGJmy0M77WDDzo/05969+OkMy3XW1UuZsSmW9KQm7Fw==", "requires": { "asn1": "^0.2.4" } }, "nopt": { "version": "3.0.6", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", "optional": true, "requires": { "abbrev": "1" @@ -12669,7 +12167,6 @@ }, "normalize-package-data": { "version": "2.5.0", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, "requires": { "hosted-git-info": "^2.1.4", @@ -12680,29 +12177,24 @@ "dependencies": { "semver": { "version": "5.7.1", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true } } }, "normalize-path": { - "version": "3.0.0", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + "version": "3.0.0" }, "npm-bundled": { "version": "1.1.2", - "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", "requires": { "npm-normalize-package-bin": "^1.0.1" } }, "npm-normalize-package-bin": { - "version": "1.0.1", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==" + "version": "1.0.1" }, "npm-packlist": { "version": "1.4.8", - "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", "requires": { "ignore-walk": "^3.0.1", "npm-bundled": "^1.0.1", @@ -12711,7 +12203,6 @@ }, "npm-run-path": { "version": "4.0.1", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "requires": { "path-key": "^3.0.0" @@ -12719,7 +12210,6 @@ }, "npmlog": { "version": "4.1.2", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "requires": { "are-we-there-yet": "~1.1.2", "console-control-strings": "~1.1.0", @@ -12728,25 +12218,20 @@ } }, "number-is-nan": { - "version": "1.0.1", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + "version": "1.0.1" }, "nwsapi": { "version": "2.2.0", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", "dev": true }, "oauth-sign": { - "version": "0.9.0", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + "version": "0.9.0" }, "object-assign": { - "version": "4.1.1", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "version": "4.1.1" }, "object-copy": { "version": "0.1.0", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "requires": { "copy-descriptor": "^0.1.0", @@ -12756,7 +12241,6 @@ "dependencies": { "define-property": { "version": "0.2.5", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "^0.1.0" @@ -12764,7 +12248,6 @@ }, "is-accessor-descriptor": { "version": "0.1.6", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { "kind-of": "^3.0.2" @@ -12772,7 +12255,6 @@ }, "is-data-descriptor": { "version": "0.1.4", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { "kind-of": "^3.0.2" @@ -12780,7 +12262,6 @@ }, "is-descriptor": { "version": "0.1.6", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { "is-accessor-descriptor": "^0.1.6", @@ -12790,14 +12271,12 @@ "dependencies": { "kind-of": { "version": "5.1.0", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true } } }, "kind-of": { "version": "3.2.2", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -12807,7 +12286,6 @@ }, "object-to-arguments": { "version": "0.0.8", - "integrity": "sha512-BfWfuAwuhdH1bhMG5EG90WE/eckkBhBvnke8eSEkCDXoLE9Jk5JwYGTbCx1ehGwV48HvBkn62VukPBdlMUOY9w==", "requires": { "inspect-parameters-declaration": "0.0.10", "magicli": "0.0.5", @@ -12818,21 +12296,18 @@ "dependencies": { "inspect-function": { "version": "0.2.2", - "integrity": "sha1-hdoMUli8TDMK4yg7Z0fgdZ2QpjU=", "requires": { "split-skip": "0.0.1", "unpack-string": "0.0.2" }, "dependencies": { "split-skip": { - "version": "0.0.1", - "integrity": "sha1-gK2ONumOV2RUzDtmfB3SXYZejwA=" + "version": "0.0.1" } } }, "inspect-parameters-declaration": { "version": "0.0.10", - "integrity": "sha512-L8/Bvt9iDXQTZ63xY5/MAyvzz+FagR/qGh1kIXvUpsno3AAE0Z95d6QO51zrcMGaEGpwh/57idfMxTxbvRmytg==", "requires": { "magicli": "0.0.5", "split-skip": "0.0.2", @@ -12842,7 +12317,6 @@ }, "magicli": { "version": "0.0.5", - "integrity": "sha1-zufQ+7THBRiqyxHsPrfiX/SaSSE=", "requires": { "commander": "^2.9.0", "get-stdin": "^5.0.1", @@ -12854,7 +12328,6 @@ }, "object-visit": { "version": "1.0.1", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "requires": { "isobject": "^3.0.0" @@ -12862,14 +12335,12 @@ "dependencies": { "isobject": { "version": "3.0.1", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true } } }, "object.pick": { "version": "1.3.0", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "requires": { "isobject": "^3.0.1" @@ -12877,21 +12348,18 @@ "dependencies": { "isobject": { "version": "3.0.1", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true } } }, "once": { "version": "1.4.0", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { "wrappy": "1" } }, "onetime": { "version": "5.1.2", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "requires": { "mimic-fn": "^2.1.0" @@ -12899,7 +12367,6 @@ }, "optionator": { "version": "0.8.3", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", "dev": true, "requires": { "deep-is": "~0.1.3", @@ -12912,22 +12379,18 @@ "dependencies": { "deep-is": { "version": "0.1.4", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true } } }, "os-homedir": { - "version": "1.0.2", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + "version": "1.0.2" }, "os-tmpdir": { - "version": "1.0.2", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + "version": "1.0.2" }, "osenv": { "version": "0.1.5", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "requires": { "os-homedir": "^1.0.0", "os-tmpdir": "^1.0.0" @@ -12935,17 +12398,14 @@ }, "p-each-series": { "version": "2.2.0", - "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", "dev": true }, "p-finally": { "version": "1.0.0", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true }, "p-limit": { "version": "2.3.0", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -12953,7 +12413,6 @@ }, "p-locate": { "version": "4.1.0", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { "p-limit": "^2.2.0" @@ -12961,19 +12420,16 @@ }, "p-try": { "version": "2.2.0", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, "param-case": { "version": "2.1.1", - "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", "requires": { "no-case": "^2.2.0" } }, "parse-json": { "version": "5.2.0", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -12984,52 +12440,41 @@ }, "parse5": { "version": "6.0.1", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", "dev": true }, "pascalcase": { "version": "0.1.1", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", "dev": true }, "path-exists": { "version": "4.0.0", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, "path-is-absolute": { - "version": "1.0.1", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "version": "1.0.1" }, "path-key": { "version": "3.1.1", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true }, "path-parse": { "version": "1.0.7", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, "performance-now": { - "version": "2.1.0", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + "version": "2.1.0" }, "picomatch": { - "version": "2.3.0", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" + "version": "2.3.0" }, "pify": { - "version": "3.0.0", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + "version": "3.0.0" }, "pipe-functions": { - "version": "1.3.0", - "integrity": "sha512-6Rtbp7criZRwedlvWbUYxqlqJoAlMvYHo2UcRWq79xZ54vZcaNHpVBOcWkX3ErT2aUA69tv+uiv4zKJbhD/Wgg==" + "version": "1.3.0" }, "pirates": { "version": "4.0.1", - "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", "dev": true, "requires": { "node-modules-regexp": "^1.0.0" @@ -13037,7 +12482,6 @@ }, "pkg-dir": { "version": "4.2.0", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "requires": { "find-up": "^4.0.0" @@ -13045,12 +12489,10 @@ }, "posix-character-classes": { "version": "0.1.1", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true }, "prebuild-install": { "version": "6.1.4", - "integrity": "sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ==", "dev": true, "requires": { "detect-libc": "^1.0.3", @@ -13070,7 +12512,6 @@ "dependencies": { "decompress-response": { "version": "4.2.1", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", "dev": true, "requires": { "mimic-response": "^2.0.0" @@ -13078,12 +12519,10 @@ }, "mimic-response": { "version": "2.1.0", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", "dev": true }, "simple-get": { "version": "3.1.0", - "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", "dev": true, "requires": { "decompress-response": "^4.2.0", @@ -13095,12 +12534,10 @@ }, "prelude-ls": { "version": "1.1.2", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", "dev": true }, "pretty-format": { "version": "26.6.2", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", "dev": true, "requires": { "@jest/types": "^26.6.2", @@ -13110,19 +12547,16 @@ } }, "process-nextick-args": { - "version": "2.0.1", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + "version": "2.0.1" }, "promise": { "version": "7.3.1", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", "requires": { "asap": "~2.0.3" } }, "prompts": { "version": "2.4.1", - "integrity": "sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==", "dev": true, "requires": { "kleur": "^3.0.3", @@ -13130,12 +12564,10 @@ } }, "psl": { - "version": "1.8.0", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + "version": "1.8.0" }, "pump": { "version": "3.0.0", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, "requires": { "end-of-stream": "^1.1.0", @@ -13143,40 +12575,32 @@ } }, "punycode": { - "version": "2.1.1", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + "version": "2.1.1" }, "q": { - "version": "1.1.2", - "integrity": "sha1-Y1fikSBnAdmfGXq4TlforRlvKok=" + "version": "1.1.2" }, "qs": { - "version": "6.5.2", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + "version": "6.5.2" }, "query-string": { "version": "4.3.4", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", "requires": { "object-assign": "^4.1.0", "strict-uri-encode": "^1.0.0" } }, "querystring": { - "version": "0.2.0", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + "version": "0.2.0" }, "querystringify": { - "version": "2.2.0", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + "version": "2.2.0" }, "random-bytes": { - "version": "1.0.0", - "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=" + "version": "1.0.0" }, "rc": { "version": "1.2.8", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "requires": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -13186,17 +12610,14 @@ }, "re-reselect": { "version": "4.0.0", - "integrity": "sha512-wuygyq8TXUlSdVXv2kigXxQNOgdb9m7LbIjwfTNGSpaY1riLd5e+VeQjlQMyUtrk0oiyhi1AqIVynworl3qxHA==", "requires": {} }, "react-is": { "version": "17.0.2", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "dev": true }, "read-chunk": { "version": "2.1.0", - "integrity": "sha1-agTAkoAF7Z1C4aasVgDhnLx/9lU=", "requires": { "pify": "^3.0.0", "safe-buffer": "^5.1.1" @@ -13204,7 +12625,6 @@ }, "read-pkg": { "version": "5.2.0", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, "requires": { "@types/normalize-package-data": "^2.4.0", @@ -13215,14 +12635,12 @@ "dependencies": { "type-fest": { "version": "0.6.0", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true } } }, "read-pkg-up": { "version": "7.0.1", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, "requires": { "find-up": "^4.1.0", @@ -13232,14 +12650,12 @@ "dependencies": { "type-fest": { "version": "0.8.1", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true } } }, "readable-stream": { "version": "3.6.0", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "requires": { "inherits": "^2.0.3", @@ -13249,18 +12665,15 @@ }, "readdirp": { "version": "3.6.0", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "requires": { "picomatch": "^2.2.1" } }, "reduce-flatten": { - "version": "1.0.1", - "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=" + "version": "1.0.1" }, "redux": { "version": "3.7.2", - "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==", "requires": { "lodash": "^4.2.1", "lodash-es": "^4.2.1", @@ -13270,7 +12683,6 @@ }, "regex-not": { "version": "1.0.2", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "requires": { "extend-shallow": "^3.0.2", @@ -13278,34 +12690,28 @@ } }, "relateurl": { - "version": "0.2.7", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" + "version": "0.2.7" }, "relative": { "version": "3.0.2", - "integrity": "sha1-Dc2OxUpdNaPBXhBFA9ZTdbWlNn8=", "requires": { "isobject": "^2.0.0" } }, "remove-trailing-separator": { "version": "1.1.0", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", "dev": true }, "repeat-element": { "version": "1.1.4", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", "dev": true }, "repeat-string": { "version": "1.6.1", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true }, "request": { "version": "2.88.2", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "requires": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -13331,7 +12737,6 @@ "dependencies": { "form-data": { "version": "2.3.3", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -13342,25 +12747,20 @@ }, "require-directory": { "version": "2.1.1", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, "require-main-filename": { "version": "2.0.0", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, "requires-port": { - "version": "1.0.0", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + "version": "1.0.0" }, "reselect": { - "version": "4.0.0", - "integrity": "sha512-qUgANli03jjAyGlnbYVAV5vvnOmJnODyABz51RdBN7M4WaVu8mecZWgyQNkG8Yqe3KRGRt0l4K4B3XVEULC4CA==" + "version": "4.0.0" }, "resolve": { "version": "1.20.0", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", "dev": true, "requires": { "is-core-module": "^2.2.0", @@ -13369,7 +12769,6 @@ }, "resolve-cwd": { "version": "3.0.0", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, "requires": { "resolve-from": "^5.0.0" @@ -13377,22 +12776,18 @@ }, "resolve-from": { "version": "5.0.0", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true }, "resolve-url": { "version": "0.2.1", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "dev": true }, "ret": { "version": "0.1.15", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true }, "rimraf": { "version": "3.0.2", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { "glob": "^7.1.3" @@ -13400,28 +12795,23 @@ }, "rsvp": { "version": "4.8.5", - "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", "dev": true }, "safe-buffer": { - "version": "5.1.2", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "version": "5.1.2" }, "safe-regex": { "version": "1.1.0", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { "ret": "~0.1.10" } }, "safer-buffer": { - "version": "2.1.2", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "version": "2.1.2" }, "sane": { "version": "4.1.0", - "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", "dev": true, "requires": { "@cnakazawa/watch": "^1.0.3", @@ -13437,7 +12827,6 @@ "dependencies": { "anymatch": { "version": "2.0.0", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { "micromatch": "^3.1.4", @@ -13446,7 +12835,6 @@ }, "braces": { "version": "2.3.2", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { "arr-flatten": "^1.1.0", @@ -13463,7 +12851,6 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" @@ -13473,7 +12860,6 @@ }, "cross-spawn": { "version": "6.0.5", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { "nice-try": "^1.0.4", @@ -13485,7 +12871,6 @@ }, "execa": { "version": "1.0.0", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, "requires": { "cross-spawn": "^6.0.0", @@ -13499,7 +12884,6 @@ }, "fill-range": { "version": "4.0.0", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { "extend-shallow": "^2.0.1", @@ -13510,7 +12894,6 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" @@ -13520,7 +12903,6 @@ }, "get-stream": { "version": "4.1.0", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { "pump": "^3.0.0" @@ -13528,12 +12910,10 @@ }, "is-extendable": { "version": "0.1.1", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true }, "is-number": { "version": "3.0.0", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { "kind-of": "^3.0.2" @@ -13541,7 +12921,6 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -13551,17 +12930,14 @@ }, "is-stream": { "version": "1.1.0", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, "isobject": { "version": "3.0.1", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, "micromatch": { "version": "3.1.10", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { "arr-diff": "^4.0.0", @@ -13581,7 +12957,6 @@ }, "normalize-path": { "version": "2.1.1", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { "remove-trailing-separator": "^1.0.1" @@ -13589,7 +12964,6 @@ }, "npm-run-path": { "version": "2.0.2", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { "path-key": "^2.0.0" @@ -13597,17 +12971,14 @@ }, "path-key": { "version": "2.0.1", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true }, "semver": { "version": "5.7.1", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true }, "shebang-command": { "version": "1.2.0", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { "shebang-regex": "^1.0.0" @@ -13615,12 +12986,10 @@ }, "shebang-regex": { "version": "1.0.0", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, "to-regex-range": { "version": "2.1.1", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "requires": { "is-number": "^3.0.0", @@ -13629,7 +12998,6 @@ }, "which": { "version": "1.3.1", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { "isexe": "^2.0.0" @@ -13638,12 +13006,10 @@ } }, "sax": { - "version": "1.2.1", - "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=" + "version": "1.2.1" }, "saxes": { "version": "5.0.1", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", "dev": true, "requires": { "xmlchars": "^2.2.0" @@ -13651,20 +13017,16 @@ }, "semver": { "version": "6.3.0", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, "server-destroy": { - "version": "1.0.1", - "integrity": "sha1-8Tv5KOQrnD55OD5hzDmYtdFObN0=" + "version": "1.0.1" }, "set-blocking": { - "version": "2.0.0", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + "version": "2.0.0" }, "set-value": { "version": "2.0.1", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "dev": true, "requires": { "extend-shallow": "^2.0.1", @@ -13675,7 +13037,6 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" @@ -13683,18 +13044,15 @@ }, "is-extendable": { "version": "0.1.1", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true } } }, "setprototypeof": { - "version": "1.2.0", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + "version": "1.2.0" }, "sharp": { "version": "0.26.3", - "integrity": "sha512-NdEJ9S6AMr8Px0zgtFo1TJjMK/ROMU92MkDtYn2BBrDjIx3YfH9TUyGdzPC+I/L619GeYQc690Vbaxc5FPCCWg==", "dev": true, "requires": { "array-flatten": "^3.0.0", @@ -13711,7 +13069,6 @@ "dependencies": { "color": { "version": "3.2.1", - "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", "dev": true, "requires": { "color-convert": "^1.9.3", @@ -13720,7 +13077,6 @@ }, "semver": { "version": "7.3.5", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -13730,7 +13086,6 @@ }, "shebang-command": { "version": "2.0.0", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "requires": { "shebang-regex": "^3.0.0" @@ -13738,25 +13093,20 @@ }, "shebang-regex": { "version": "3.0.0", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, "shellwords": { - "version": "0.1.1", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==" + "version": "0.1.1" }, "signal-exit": { - "version": "3.0.5", - "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==" + "version": "3.0.5" }, "simple-concat": { "version": "1.0.1", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", "dev": true }, "simple-get": { "version": "4.0.0", - "integrity": "sha512-ZalZGexYr3TA0SwySsr5HlgOOinS4Jsa8YB2GJ6lUNAazyAu4KG/VmzMTwAt2YVXzzVj8QmefmAonZIK2BSGcQ==", "dev": true, "requires": { "decompress-response": "^6.0.0", @@ -13766,30 +13116,25 @@ }, "simple-swizzle": { "version": "0.2.2", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", "requires": { "is-arrayish": "^0.3.1" }, "dependencies": { "is-arrayish": { - "version": "0.3.2", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + "version": "0.3.2" } } }, "sisteransi": { "version": "1.0.5", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", "dev": true }, "slash": { "version": "3.0.0", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, "snapdragon": { "version": "0.8.2", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, "requires": { "base": "^0.11.1", @@ -13804,7 +13149,6 @@ "dependencies": { "debug": { "version": "2.6.9", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" @@ -13812,7 +13156,6 @@ }, "define-property": { "version": "0.2.5", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "^0.1.0" @@ -13820,7 +13163,6 @@ }, "extend-shallow": { "version": "2.0.1", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" @@ -13828,7 +13170,6 @@ }, "is-accessor-descriptor": { "version": "0.1.6", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { "kind-of": "^3.0.2" @@ -13836,7 +13177,6 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -13846,7 +13186,6 @@ }, "is-data-descriptor": { "version": "0.1.4", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { "kind-of": "^3.0.2" @@ -13854,7 +13193,6 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -13864,7 +13202,6 @@ }, "is-descriptor": { "version": "0.1.6", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { "is-accessor-descriptor": "^0.1.6", @@ -13874,27 +13211,22 @@ }, "is-extendable": { "version": "0.1.1", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true }, "kind-of": { "version": "5.1.0", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true }, "ms": { "version": "2.0.0", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "source-map": { "version": "0.5.7", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, "source-map-resolve": { "version": "0.5.3", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "dev": true, "requires": { "atob": "^2.1.2", @@ -13908,7 +13240,6 @@ }, "snapdragon-node": { "version": "2.1.1", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "requires": { "define-property": "^1.0.0", @@ -13918,7 +13249,6 @@ "dependencies": { "define-property": { "version": "1.0.0", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { "is-descriptor": "^1.0.0" @@ -13926,14 +13256,12 @@ }, "isobject": { "version": "3.0.1", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true } } }, "snapdragon-util": { "version": "3.0.1", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "requires": { "kind-of": "^3.2.0" @@ -13941,7 +13269,6 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -13950,12 +13277,10 @@ } }, "source-map": { - "version": "0.6.1", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "version": "0.6.1" }, "source-map-resolve": { "version": "0.6.0", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", "requires": { "atob": "^2.1.2", "decode-uri-component": "^0.2.0" @@ -13963,7 +13288,6 @@ }, "source-map-support": { "version": "0.5.20", - "integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -13972,12 +13296,10 @@ }, "source-map-url": { "version": "0.4.1", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", "dev": true }, "spdx-correct": { "version": "3.1.1", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", @@ -13986,12 +13308,10 @@ }, "spdx-exceptions": { "version": "2.3.0", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", "dev": true }, "spdx-expression-parse": { "version": "3.0.1", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, "requires": { "spdx-exceptions": "^2.1.0", @@ -14000,28 +13320,23 @@ }, "spdx-license-ids": { "version": "3.0.10", - "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==", "dev": true }, "split-skip": { - "version": "0.0.2", - "integrity": "sha1-2J2Iu9L3Pka1FYqjcKVhIk6A1GE=" + "version": "0.0.2" }, "split-string": { "version": "3.1.0", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, "requires": { "extend-shallow": "^3.0.0" } }, "sprintf-js": { - "version": "1.1.2", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" + "version": "1.1.2" }, "sqlite3": { "version": "5.0.2", - "integrity": "sha512-1SdTNo+BVU211Xj1csWa8lV6KM0CtucDwRyA0VHl91wEH1Mgh7RxUpI4rVvG7OhHrzCSGaVyW5g8vKvlrk9DJA==", "requires": { "node-addon-api": "^3.0.0", "node-gyp": "3.x", @@ -14030,7 +13345,6 @@ }, "sshpk": { "version": "1.16.1", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", "requires": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -14045,7 +13359,6 @@ }, "stack-utils": { "version": "2.0.5", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", "dev": true, "requires": { "escape-string-regexp": "^2.0.0" @@ -14053,7 +13366,6 @@ }, "static-extend": { "version": "0.1.2", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "requires": { "define-property": "^0.2.5", @@ -14062,7 +13374,6 @@ "dependencies": { "define-property": { "version": "0.2.5", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "^0.1.0" @@ -14070,7 +13381,6 @@ }, "is-accessor-descriptor": { "version": "0.1.6", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { "kind-of": "^3.0.2" @@ -14078,7 +13388,6 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -14088,7 +13397,6 @@ }, "is-data-descriptor": { "version": "0.1.4", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { "kind-of": "^3.0.2" @@ -14096,7 +13404,6 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -14106,7 +13413,6 @@ }, "is-descriptor": { "version": "0.1.6", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { "is-accessor-descriptor": "^0.1.6", @@ -14116,22 +13422,18 @@ }, "kind-of": { "version": "5.1.0", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true } } }, "statuses": { - "version": "1.5.0", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + "version": "1.5.0" }, "strict-uri-encode": { - "version": "1.1.0", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" + "version": "1.1.0" }, "string_decoder": { "version": "1.3.0", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, "requires": { "safe-buffer": "~5.2.0" @@ -14139,14 +13441,12 @@ "dependencies": { "safe-buffer": { "version": "5.2.1", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true } } }, "string-length": { "version": "4.0.2", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, "requires": { "char-regex": "^1.0.2", @@ -14154,12 +13454,10 @@ } }, "string-padding": { - "version": "1.0.2", - "integrity": "sha1-OqrYVbPpc1xeQS3+chmMz5nH9I4=" + "version": "1.0.2" }, "string-to-stream": { "version": "1.1.1", - "integrity": "sha512-QySF2+3Rwq0SdO3s7BAp4x+c3qsClpPQ6abAmb0DGViiSBAkT5kL6JT2iyzEVP+T1SmzHrQD1TwlP9QAHCc+Sw==", "requires": { "inherits": "^2.0.1", "readable-stream": "^2.1.0" @@ -14167,7 +13465,6 @@ "dependencies": { "readable-stream": { "version": "2.3.7", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -14180,7 +13477,6 @@ }, "string_decoder": { "version": "1.1.1", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { "safe-buffer": "~5.1.0" } @@ -14189,7 +13485,6 @@ }, "string-width": { "version": "1.0.2", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -14197,12 +13492,10 @@ }, "dependencies": { "ansi-regex": { - "version": "2.1.1", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "version": "2.1.1" }, "strip-ansi": { "version": "3.0.1", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "^2.0.0" } @@ -14211,7 +13504,6 @@ }, "stringify-parameters": { "version": "0.0.4", - "integrity": "sha512-H3L90ERn5UPtkpO8eugnKcLgpIVlvTyUTrcLGm607AV5JDH6z0GymtNLr3gjGlP6I6NB/mxNX9QpY6jEQGLPdQ==", "requires": { "magicli": "0.0.5", "unpack-string": "0.0.2" @@ -14219,7 +13511,6 @@ "dependencies": { "inspect-function": { "version": "0.2.2", - "integrity": "sha1-hdoMUli8TDMK4yg7Z0fgdZ2QpjU=", "requires": { "split-skip": "0.0.1", "unpack-string": "0.0.2" @@ -14227,7 +13518,6 @@ }, "magicli": { "version": "0.0.5", - "integrity": "sha1-zufQ+7THBRiqyxHsPrfiX/SaSSE=", "requires": { "commander": "^2.9.0", "get-stdin": "^5.0.1", @@ -14236,14 +13526,12 @@ } }, "split-skip": { - "version": "0.0.1", - "integrity": "sha1-gK2ONumOV2RUzDtmfB3SXYZejwA=" + "version": "0.0.1" } } }, "strip-ansi": { "version": "6.0.1", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { "ansi-regex": "^5.0.1" @@ -14251,26 +13539,21 @@ }, "strip-bom": { "version": "4.0.0", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true }, "strip-eof": { "version": "1.0.0", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, "strip-final-newline": { "version": "2.0.0", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true }, "strip-json-comments": { - "version": "2.0.1", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + "version": "2.0.1" }, "supports-color": { "version": "7.2.0", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" @@ -14278,7 +13561,6 @@ }, "supports-hyperlinks": { "version": "2.2.0", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", "dev": true, "requires": { "has-flag": "^4.0.0", @@ -14286,17 +13568,14 @@ } }, "symbol-observable": { - "version": "1.2.0", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" + "version": "1.2.0" }, "symbol-tree": { "version": "3.2.4", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, "table-layout": { "version": "0.4.5", - "integrity": "sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==", "requires": { "array-back": "^2.0.0", "deep-extend": "~0.6.0", @@ -14307,7 +13586,6 @@ }, "tar": { "version": "4.4.19", - "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", "requires": { "chownr": "^1.1.4", "fs-minipass": "^1.2.7", @@ -14319,14 +13597,12 @@ }, "dependencies": { "safe-buffer": { - "version": "5.2.1", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + "version": "5.2.1" } } }, "tar-fs": { "version": "2.1.1", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", "dev": true, "requires": { "chownr": "^1.1.1", @@ -14337,7 +13613,6 @@ }, "tar-stream": { "version": "2.2.0", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", "dev": true, "requires": { "bl": "^4.0.3", @@ -14349,7 +13624,6 @@ }, "tcp-port-used": { "version": "0.1.2", - "integrity": "sha1-lFDodoyDtBb9TRpqlEnuzL9JbCk=", "requires": { "debug": "0.7.4", "is2": "0.0.9", @@ -14357,18 +13631,15 @@ }, "dependencies": { "debug": { - "version": "0.7.4", - "integrity": "sha1-BuHqgILCyxTjmAbiLi9vdX+Srzk=" + "version": "0.7.4" }, "q": { - "version": "0.9.7", - "integrity": "sha1-TeLmyzspCIyeTLwDv51C+5bOL3U=" + "version": "0.9.7" } } }, "terminal-link": { "version": "2.1.1", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", "dev": true, "requires": { "ansi-escapes": "^4.2.1", @@ -14377,7 +13648,6 @@ }, "test-exclude": { "version": "6.0.0", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, "requires": { "@istanbuljs/schema": "^0.1.2", @@ -14387,22 +13657,18 @@ }, "throat": { "version": "5.0.0", - "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", "dev": true }, "tmpl": { "version": "1.0.5", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", "dev": true }, "to-fast-properties": { "version": "2.0.0", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", "dev": true }, "to-object-path": { "version": "0.3.0", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "requires": { "kind-of": "^3.0.2" @@ -14410,7 +13676,6 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -14420,7 +13685,6 @@ }, "to-regex": { "version": "3.0.2", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, "requires": { "define-property": "^2.0.2", @@ -14431,18 +13695,15 @@ }, "to-regex-range": { "version": "5.0.1", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "requires": { "is-number": "^7.0.0" } }, "toidentifier": { - "version": "1.0.0", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + "version": "1.0.0" }, "tough-cookie": { "version": "2.5.0", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "requires": { "psl": "^1.1.28", "punycode": "^2.1.1" @@ -14450,7 +13711,6 @@ }, "tr46": { "version": "2.1.0", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", "dev": true, "requires": { "punycode": "^2.1.1" @@ -14458,18 +13718,15 @@ }, "tunnel-agent": { "version": "0.6.0", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { "safe-buffer": "^5.0.1" } }, "tweetnacl": { - "version": "0.14.5", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + "version": "0.14.5" }, "type-check": { "version": "0.3.2", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { "prelude-ls": "~1.1.2" @@ -14477,17 +13734,14 @@ }, "type-detect": { "version": "4.0.8", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true }, "type-fest": { "version": "0.21.3", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true }, "typedarray-to-buffer": { "version": "3.1.5", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", "dev": true, "requires": { "is-typedarray": "^1.0.0" @@ -14495,49 +13749,40 @@ }, "typescript": { "version": "4.4.3", - "integrity": "sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA==", "dev": true }, "typical": { - "version": "2.6.1", - "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=" + "version": "2.6.1" }, "uc.micro": { - "version": "1.0.6", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" + "version": "1.0.6" }, "uglify-js": { "version": "3.4.10", - "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", "requires": { "commander": "~2.19.0", "source-map": "~0.6.1" }, "dependencies": { "commander": { - "version": "2.19.0", - "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==" + "version": "2.19.0" } } }, "uglifycss": { - "version": "0.0.29", - "integrity": "sha512-J2SQ2QLjiknNGbNdScaNZsXgmMGI0kYNrXaDlr4obnPW9ni1jljb1NeEVWAiTgZ8z+EBWP2ozfT9vpy03rjlMQ==" + "version": "0.0.29" }, "uid-safe": { "version": "2.1.5", - "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", "requires": { "random-bytes": "~1.0.0" } }, "unc-path-regex": { - "version": "0.1.2", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" + "version": "0.1.2" }, "union-value": { "version": "1.0.1", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "dev": true, "requires": { "arr-union": "^3.1.0", @@ -14548,26 +13793,21 @@ "dependencies": { "is-extendable": { "version": "0.1.1", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true } } }, "universalify": { - "version": "0.1.2", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + "version": "0.1.2" }, "unorm": { - "version": "1.6.0", - "integrity": "sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA==" + "version": "1.6.0" }, "unpack-string": { - "version": "0.0.2", - "integrity": "sha1-MC7PCCOLATm9Q0pNf9Z83zPKJ10=" + "version": "0.0.2" }, "unset-value": { "version": "1.0.0", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "requires": { "has-value": "^0.3.1", @@ -14576,7 +13816,6 @@ "dependencies": { "has-value": { "version": "0.3.1", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "requires": { "get-value": "^2.0.3", @@ -14586,7 +13825,6 @@ "dependencies": { "isobject": { "version": "2.1.0", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "dev": true, "requires": { "isarray": "1.0.0" @@ -14596,49 +13834,41 @@ }, "has-values": { "version": "0.1.4", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true }, "isobject": { "version": "3.0.1", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true } } }, "upper-case": { - "version": "1.1.3", - "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" + "version": "1.1.3" }, "uri-js": { "version": "4.4.1", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "requires": { "punycode": "^2.1.0" } }, "urix": { "version": "0.1.0", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", "dev": true }, "url": { "version": "0.10.3", - "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=", "requires": { "punycode": "1.3.2", "querystring": "0.2.0" }, "dependencies": { "punycode": { - "version": "1.3.2", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + "version": "1.3.2" } } }, "url-parse": { "version": "1.5.3", - "integrity": "sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==", "requires": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" @@ -14646,7 +13876,6 @@ }, "use": { "version": "3.1.1", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true }, "uslug": { @@ -14658,16 +13887,13 @@ } }, "util-deprecate": { - "version": "1.0.2", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "version": "1.0.2" }, "uuid": { - "version": "3.4.0", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + "version": "3.4.0" }, "v8-to-istanbul": { "version": "7.1.2", - "integrity": "sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.1", @@ -14677,18 +13903,15 @@ "dependencies": { "source-map": { "version": "0.7.3", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", "dev": true } } }, "valid-url": { - "version": "1.0.9", - "integrity": "sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA=" + "version": "1.0.9" }, "validate-npm-package-license": { "version": "3.0.4", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, "requires": { "spdx-correct": "^3.0.0", @@ -14697,7 +13920,6 @@ }, "verror": { "version": "1.10.0", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", @@ -14706,7 +13928,6 @@ }, "w3c-hr-time": { "version": "1.0.2", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", "dev": true, "requires": { "browser-process-hrtime": "^1.0.0" @@ -14714,7 +13935,6 @@ }, "w3c-xmlserializer": { "version": "2.0.0", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", "dev": true, "requires": { "xml-name-validator": "^3.0.0" @@ -14722,7 +13942,6 @@ }, "walker": { "version": "1.0.7", - "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", "dev": true, "requires": { "makeerror": "1.0.x" @@ -14730,12 +13949,10 @@ }, "webidl-conversions": { "version": "6.1.0", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", "dev": true }, "whatwg-encoding": { "version": "1.0.5", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", "dev": true, "requires": { "iconv-lite": "0.4.24" @@ -14743,7 +13960,6 @@ "dependencies": { "iconv-lite": { "version": "0.4.24", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" @@ -14753,12 +13969,10 @@ }, "whatwg-mimetype": { "version": "2.3.0", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", "dev": true }, "whatwg-url": { "version": "8.7.0", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", "dev": true, "requires": { "lodash": "^4.7.0", @@ -14768,30 +13982,25 @@ }, "which": { "version": "2.0.2", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "requires": { "isexe": "^2.0.0" } }, "which-module": { "version": "2.0.0", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, "wide-align": { "version": "1.1.3", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "requires": { "string-width": "^1.0.2 || 2" } }, "word-wrap": { - "version": "1.2.3", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + "version": "1.2.3" }, "wordwrapjs": { "version": "3.0.0", - "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", "requires": { "reduce-flatten": "^1.0.1", "typical": "^2.6.1" @@ -14799,7 +14008,6 @@ }, "wrap-ansi": { "version": "6.2.0", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "requires": { "ansi-styles": "^4.0.0", @@ -14809,12 +14017,10 @@ "dependencies": { "is-fullwidth-code-point": { "version": "3.0.0", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "string-width": { "version": "4.2.3", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "requires": { "emoji-regex": "^8.0.0", @@ -14825,12 +14031,10 @@ } }, "wrappy": { - "version": "1.0.2", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "version": "1.0.2" }, "write-file-atomic": { "version": "3.0.3", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, "requires": { "imurmurhash": "^0.1.4", @@ -14841,44 +14045,36 @@ }, "ws": { "version": "7.5.5", - "integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==", "dev": true, "requires": {} }, "xml-name-validator": { "version": "3.0.0", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", "dev": true }, "xml2js": { "version": "0.4.23", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", "requires": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" } }, "xmlbuilder": { - "version": "11.0.1", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" + "version": "11.0.1" }, "xmlchars": { "version": "2.2.0", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "dev": true }, "y18n": { "version": "4.0.3", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true }, "yallist": { - "version": "3.1.1", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "version": "3.1.1" }, "yargs": { "version": "15.4.1", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dev": true, "requires": { "cliui": "^6.0.0", @@ -14896,12 +14092,10 @@ "dependencies": { "is-fullwidth-code-point": { "version": "3.0.0", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "string-width": { "version": "4.2.3", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "requires": { "emoji-regex": "^8.0.0", @@ -14911,7 +14105,6 @@ }, "yargs-parser": { "version": "18.1.3", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, "requires": { "camelcase": "^5.0.0", @@ -14922,14 +14115,12 @@ }, "yargs-parser": { "version": "7.0.0", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", "requires": { "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { - "version": "4.1.0", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + "version": "4.1.0" } } } diff --git a/packages/lib/package.json b/packages/lib/package.json index b5b679236..a2b222f48 100644 --- a/packages/lib/package.json +++ b/packages/lib/package.json @@ -18,6 +18,7 @@ "devDependencies": { "@types/fs-extra": "^9.0.6", "@types/jest": "^26.0.15", + "@types/js-yaml": "^4.0.2", "@types/node": "^14.14.6", "@types/node-rsa": "^1.1.1", "@types/react": "^17.0.20", @@ -53,6 +54,7 @@ "image-data-uri": "^2.0.0", "image-type": "^3.0.0", "immer": "^7.0.14", + "js-yaml": "^4.1.0", "levenshtein": "^1.0.5", "lodash": "^4.17.20", "markdown-it": "^10.0.0", diff --git a/packages/lib/services/interop/InteropService.ts b/packages/lib/services/interop/InteropService.ts index 94dfe6cf1..b846c9faa 100644 --- a/packages/lib/services/interop/InteropService.ts +++ b/packages/lib/services/interop/InteropService.ts @@ -58,6 +58,14 @@ export default class InteropService { isNoteArchive: false, // Tells whether the file can contain multiple notes (eg. Enex or Jex format) description: _('Markdown'), }, + { + ...defaultImportExportModule(ModuleType.Importer), + format: 'md_frontmatter', + fileExtensions: ['md', 'markdown', 'txt', 'html'], + sources: [FileSystemItem.File, FileSystemItem.Directory], + isNoteArchive: false, // Tells whether the file can contain multiple notes (eg. Enex or Jex format) + description: _('Markdown + Front Matter'), + }, { ...defaultImportExportModule(ModuleType.Importer), format: 'raw', @@ -105,6 +113,12 @@ export default class InteropService { target: FileSystemItem.Directory, description: _('Markdown'), }, + { + ...defaultImportExportModule(ModuleType.Exporter), + format: 'md_frontmatter', + target: FileSystemItem.Directory, + description: _('Markdown + Front Matter'), + }, { ...defaultImportExportModule(ModuleType.Exporter), format: 'html', diff --git a/packages/lib/services/interop/InteropService_Exporter_Md.ts b/packages/lib/services/interop/InteropService_Exporter_Md.ts index c15cda128..9fea0af73 100644 --- a/packages/lib/services/interop/InteropService_Exporter_Md.ts +++ b/packages/lib/services/interop/InteropService_Exporter_Md.ts @@ -110,7 +110,7 @@ export default class InteropService_Exporter_Md extends InteropService_Exporter_ } } - private async getNoteExportContent_(modNote: NoteEntity) { + protected async getNoteExportContent_(modNote: NoteEntity) { return await Note.replaceResourceInternalToExternalLinks(await Note.serialize(modNote, ['body'])); } diff --git a/packages/lib/services/interop/InteropService_Exporter_Md_frontmatter.test.ts b/packages/lib/services/interop/InteropService_Exporter_Md_frontmatter.test.ts new file mode 100644 index 000000000..8e6c48195 --- /dev/null +++ b/packages/lib/services/interop/InteropService_Exporter_Md_frontmatter.test.ts @@ -0,0 +1,134 @@ +import InteropService from '../../services/interop/InteropService'; +import { setupDatabaseAndSynchronizer, switchClient, exportDir } from '../../testing/test-utils'; +import Folder from '../../models/Folder'; +import Note from '../../models/Note'; +import Tag from '../../models/Tag'; +import time from '../../time'; +import { fieldOrder } from './InteropService_Exporter_Md_frontmatter'; +import * as fs from 'fs-extra'; + +async function recreateExportDir() { + const dir = exportDir(); + await fs.remove(dir); + await fs.mkdirp(dir); +} + +describe('interop/InteropService_Exporter_Md_frontmatter', function() { + async function exportAndLoad(path: string): Promise { + const service = InteropService.instance(); + + await service.export({ + path: exportDir(), + format: 'md_frontmatter', + }); + + return await fs.readFile(path, 'utf8'); + } + + beforeEach(async (done) => { + await setupDatabaseAndSynchronizer(1); + await switchClient(1); + await recreateExportDir(); + done(); + }); + + test('should export MD file with YAML header', (async () => { + const folder1 = await Folder.save({ title: 'folder1' }); + await Note.save({ title: 'ma', latitude: 58.2222, user_updated_time: 1, user_created_time: 1, body: '**ma note**', parent_id: folder1.id }); + + const content = await exportAndLoad(`${exportDir()}/folder1/ma.md`); + expect(content.startsWith('---')).toBe(true); + expect(content).toContain('title: ma'); + expect(content).toContain('updated:'); // Will be current time of test run + expect(content).toContain(`created: ${time.unixMsToRfc3339Sec(1)}`); + expect(content).toContain('latitude: 58.22220000'); + expect(content).toContain('longitude: 0.00000000'); + expect(content).toContain('altitude: 0.0000'); + expect(content).toContain('**ma note**'); + expect(content).not.toContain('completed?'); + expect(content).not.toContain('author'); + expect(content).not.toContain('source'); + expect(content).not.toContain('due'); + })); + + test('should export without additional quotes', (async () => { + const folder1 = await Folder.save({ title: 'folder1' }); + await Note.save({ title: '-60', body: '**ma note**', parent_id: folder1.id }); + + const content = await exportAndLoad(`${exportDir()}/folder1/-60.md`); + expect(content).toContain('title: -60'); + })); + + test('should export tags', (async () => { + const folder1 = await Folder.save({ title: 'folder1' }); + const note = await Note.save({ title: 'Title', body: '**ma note**', parent_id: folder1.id }); + await Tag.addNoteTagByTitle(note.id, 'lamp'); + await Tag.addNoteTagByTitle(note.id, 'moth'); + await Tag.addNoteTagByTitle(note.id, 'godzilla'); + + const content = await exportAndLoad(`${exportDir()}/folder1/Title.md`); + expect(content).toContain('tags:\n - godzilla\n - lamp\n - moth'); + })); + + test('should export todo', (async () => { + const folder1 = await Folder.save({ title: 'folder1' }); + await Note.save({ title: 'Todo', is_todo: 1, todo_due: 1, body: '**ma note**', parent_id: folder1.id }); + + const content = await exportAndLoad(`${exportDir()}/folder1/Todo.md`); + expect(content).toContain(`due: ${time.unixMsToRfc3339Sec(1)}`); + expect(content).toContain('completed?: no'); + })); + + test('should export author', (async () => { + const folder1 = await Folder.save({ title: 'folder1' }); + await Note.save({ title: 'Author', author: 'Scott Joplin', body: '**ma note**', parent_id: folder1.id }); + + const content = await exportAndLoad(`${exportDir()}/folder1/Author.md`); + expect(content).toContain('author: Scott Joplin'); + })); + + test('should export source', (async () => { + const folder1 = await Folder.save({ title: 'folder1' }); + await Note.save({ title: 'Source', source_url: 'https://joplinapp.org', body: '**ma note**', parent_id: folder1.id }); + + const content = await exportAndLoad(`${exportDir()}/folder1/Source.md`); + expect(content).toContain('source: https://joplinapp.org'); + })); + + test('should export fields in the correct order', (async () => { + const folder1 = await Folder.save({ title: 'folder1' }); + + const note = await Note.save({ + title: 'Fields', + is_todo: 1, + todo_due: 1, + author: 'Scott Joplin', + source_url: 'https://joplinapp.org', + body: '**ma note**', + parent_id: folder1.id, + }); + await Tag.addNoteTagByTitle(note.id, 'piano'); + await Tag.addNoteTagByTitle(note.id, 'greatness'); + + const content = await exportAndLoad(`${exportDir()}/folder1/Fields.md`); + const fieldIndices = fieldOrder.map(field => content.indexOf(field)); + expect(fieldIndices).toBe(fieldIndices.sort()); + })); + + test('should export title with a newline encoded', (async () => { + const folder1 = await Folder.save({ title: 'folder1' }); + await Note.save({ title: 'Source\ntitle', body: '**ma note**', parent_id: folder1.id }); + + const content = await exportAndLoad(`${exportDir()}/folder1/Source_title.md`); + expect(content).toContain('title: |-\n Source\n title'); + })); + test('should not export coordinates if they\'re not available', (async () => { + const folder1 = await Folder.save({ title: 'folder1' }); + await Note.save({ title: 'Coordinates', body: '**ma note**', parent_id: folder1.id }); + + const content = await exportAndLoad(`${exportDir()}/folder1/Coordinates.md`); + expect(content).not.toContain('latitude'); + expect(content).not.toContain('longitude'); + expect(content).not.toContain('altitude'); + })); +}); diff --git a/packages/lib/services/interop/InteropService_Exporter_Md_frontmatter.ts b/packages/lib/services/interop/InteropService_Exporter_Md_frontmatter.ts new file mode 100644 index 000000000..0b8ad26ca --- /dev/null +++ b/packages/lib/services/interop/InteropService_Exporter_Md_frontmatter.ts @@ -0,0 +1,155 @@ +import InteropService_Exporter_Md from './InteropService_Exporter_Md'; +import BaseModel from '../../BaseModel'; +import Note from '../../models/Note'; +import NoteTag from '../../models/NoteTag'; +import Tag from '../../models/Tag'; +import time from '../../time'; +import { NoteEntity } from '../database/types'; +import { MdFrontMatterExport } from './types'; + +import * as yaml from 'js-yaml'; + +interface NoteTagContext { + noteTags: Record; +} + +interface TagContext { + tagTitles: Record; +} + +interface FrontMatterContext extends NoteTagContext, TagContext {} + +// There is a special case (negative numbers) where the yaml library will force quotations +// These need to be stripped +function trimQuotes(rawOutput: string): string { + return rawOutput.split('\n').map(line => { + const index = line.indexOf(': \'-'); + if (index >= 0) { + // The plus 2 eats the : and space characters + const start = line.substring(0, index + 2); + // The plus 3 eats the quote character + const end = line.substring(index + 3, line.length - 1); + return start + end; + } + return line; + }).join('\n'); +} + +export const fieldOrder = ['title', 'updated', 'created', 'source', 'author', 'latitude', 'longitude', 'altitude', 'completed?', 'due', 'tags']; + +export default class InteropService_Exporter_Md_frontmatter extends InteropService_Exporter_Md { + + public async prepareForProcessingItemType(itemType: number, itemsToExport: any[]) { + await super.prepareForProcessingItemType(itemType, itemsToExport); + + if (itemType === BaseModel.TYPE_NOTE_TAG) { + // Get tag list for each note + const context: NoteTagContext = { + noteTags: {}, + }; + for (let i = 0; i < itemsToExport.length; i++) { + const it = itemsToExport[i].type; + + if (it !== itemType) continue; + + const itemOrId = itemsToExport[i].itemOrId; + const noteTag = typeof itemOrId === 'object' ? itemOrId : await NoteTag.load(itemOrId); + + if (!noteTag) continue; + + if (!context.noteTags[noteTag.note_id]) context.noteTags[noteTag.note_id] = []; + context.noteTags[noteTag.note_id].push(noteTag.tag_id); + } + + this.updateContext(context); + } else if (itemType === BaseModel.TYPE_TAG) { + // Map tag ID to title + const context: TagContext = { + tagTitles: {}, + }; + for (let i = 0; i < itemsToExport.length; i++) { + const it = itemsToExport[i].type; + + if (it !== itemType) continue; + + const itemOrId = itemsToExport[i].itemOrId; + const tag = typeof itemOrId === 'object' ? itemOrId : await Tag.load(itemOrId); + + if (!tag) continue; + + context.tagTitles[tag.id] = tag.title; + } + + this.updateContext(context); + } + } + + private convertDate(datetime: number): string { + return time.unixMsToRfc3339Sec(datetime); + } + + private extractMetadata(note: NoteEntity) { + const md: MdFrontMatterExport = {}; + // Every variable needs to be converted seperately, so they will be handles in groups + // + // title + if (note.title) { md['title'] = note.title; } + + // source, author + if (note.source_url) { md['source'] = note.source_url; } + if (note.author) { md['author'] = note.author; } + + // locations + // non-strict inequality is used here to interpret the location strings + // as numbers i.e 0.000000 is the same as 0. + // This is necessary because these fields are officially numbers, but often + // contain strings. + if (note.latitude != 0 || note.longitude != 0 || note.altitude != 0) { + md['latitude'] = note.latitude; + md['longitude'] = note.longitude; + md['altitude'] = note.altitude; + } + + // todo + if (note.is_todo) { + // boolean is not support by the yaml FAILSAFE_SCHEMA + md['completed?'] = note.todo_completed ? 'yes' : 'no'; + } + if (note.todo_due) { md['due'] = this.convertDate(note.todo_due); } + + // time + if (note.user_updated_time) { md['updated'] = this.convertDate(note.user_updated_time); } + if (note.user_created_time) { md['created'] = this.convertDate(note.user_created_time); } + + // tags + const context: FrontMatterContext = this.context(); + if (context.noteTags[note.id]) { + const tagIds = context.noteTags[note.id]; + const tags = tagIds.map((id: string) => context.tagTitles[id]).sort(); + md['tags'] = tags; + } + + // This guarentees that fields will always be ordered the same way + // which can be useful if users are using this for generating diffs + const sort = (a: string, b: string) => { + return fieldOrder.indexOf(a) - fieldOrder.indexOf(b); + }; + + // The FAILSAFE_SCHEMA along with noCompatMode allows this to export strings that look + // like numbers (or yes/no) without the added '' quotes around the text + const rawOutput = yaml.dump(md, { sortKeys: sort, noCompatMode: true, schema: yaml.FAILSAFE_SCHEMA }); + // The additional trimming is the unfortunate result of the yaml library insisting on + // quoting negative numbers. + // For now the trimQuotes function only trims quotes associated with a negative number + // but it can be extended to support more special cases in the future if necessary. + return trimQuotes(rawOutput); + } + + + protected async getNoteExportContent_(modNote: NoteEntity) { + const noteContent = await Note.replaceResourceInternalToExternalLinks(await Note.serialize(modNote, ['body'])); + const metadata = this.extractMetadata(modNote); + return `---\n${metadata}---\n\n${noteContent}`; + } + +} diff --git a/packages/lib/services/interop/InteropService_Importer_Md_frontmatter.test.ts b/packages/lib/services/interop/InteropService_Importer_Md_frontmatter.test.ts new file mode 100644 index 000000000..d83d1bb45 --- /dev/null +++ b/packages/lib/services/interop/InteropService_Importer_Md_frontmatter.test.ts @@ -0,0 +1,135 @@ +import InteropService_Importer_Md_frontmatter from '../../services/interop/InteropService_Importer_Md_frontmatter'; +import Note from '../../models/Note'; +import Tag from '../../models/Tag'; +import time from '../../time'; +import { setupDatabaseAndSynchronizer, supportDir, switchClient } from '../../testing/test-utils'; + + +describe('InteropService_Importer_Md_frontmatter: importMetadata', function() { + async function importNote(path: string) { + const importer = new InteropService_Importer_Md_frontmatter(); + importer.setMetadata({ fileExtensions: ['md', 'html'] }); + return await importer.importFile(path, 'notebook'); + } + + beforeEach(async (done) => { + await setupDatabaseAndSynchronizer(1); + await switchClient(1); + done(); + }); + it('should import file and set all metadata correctly', async function() { + const note = await importNote(`${supportDir}/test_notes/yaml/full.md`); + const format = 'DD/MM/YYYY HH:mm'; + + expect(note.title).toBe('Test Note Title'); + expect(time.formatMsToLocal(note.user_updated_time, format)).toBe('01/05/2019 16:54'); + expect(time.formatMsToLocal(note.user_created_time, format)).toBe('01/05/2019 16:54'); + expect(note.source_url).toBe('https://joplinapp.org'); + expect(note.author).toBe('Joplin'); + expect(note.latitude).toBe('37.08402100'); + expect(note.longitude).toBe('-94.51350100'); + expect(note.altitude).toBe('0.0000'); + expect(note.is_todo).toBe(1); + expect(note.todo_completed).toBeUndefined(); + expect(time.formatMsToLocal(note.todo_due, format)).toBe('22/08/2021 00:00'); + expect(note.body).toBe('This is the note body\n'); + + const tags = await Tag.tagsByNoteId(note.id); + expect(tags.length).toBe(3); + + const tagTitles = tags.map(tag => tag.title); + expect(tagTitles).toContain('joplin'); + expect(tagTitles).toContain('note'); + expect(tagTitles).toContain('pencil'); + }); + it('should only import data from the first yaml block', async function() { + const note = await importNote(`${supportDir}/test_notes/yaml/split.md`); + + expect(note.title).toBe('xxx'); + expect(note.author).not.toBe('xxx'); + expect(note.body).toBe('---\nauthor: xxx\n---\n\nnote body\n'); + }); + it('should only import, duplicate notes and tags are not created', async function() { + const note = await importNote(`${supportDir}/test_notes/yaml/duplicates.md`); + + expect(note.title).toBe('ddd'); + const itemIds = await Note.linkedItemIds(note.body); + expect(itemIds.length).toBe(1); + + const tags = await Tag.tagsByNoteId(note.id); + expect(tags.length).toBe(1); + }); + it('should not import items as numbers', async function() { + const note = await importNote(`${supportDir}/test_notes/yaml/numbers.md`); + + expect(note.title).toBe('001'); + expect(note.body).toBe('note body\n'); + }); + it('should normalize whitespace and load correctly', async function() { + const note = await importNote(`${supportDir}/test_notes/yaml/normalize.md`); + + expect(note.title).toBe('norm'); + expect(note.body).toBe('note body\n'); + + const tags = await Tag.tagsByNoteId(note.id); + expect(tags.length).toBe(3); + }); + it('should load unquoted special forms correctly', async function() { + const note = await importNote(`${supportDir}/test_notes/yaml/unquoted.md`); + + expect(note.title).toBe('Unquoted'); + expect(note.body).toBe('note body\n'); + + expect(note.longitude).toBe('-94.51350100'); + expect(note.is_todo).toBe(1); + expect(note.todo_completed).toBeUndefined(); + }); + it('should load notes with newline in the title', async function() { + const note = await importNote(`${supportDir}/test_notes/yaml/title_newline.md`); + + expect(note.title).toBe('First\nSecond'); + }); + it('should import dates (without time) correctly', async function() { + const note = await importNote(`${supportDir}/test_notes/yaml/short_date.md`); + const format = 'YYYY-MM-DD HH:mm'; + + expect(time.formatMsToLocal(note.user_updated_time, format)).toBe('2021-01-01 00:00'); + expect(time.formatMsToLocal(note.user_created_time, format)).toBe('2017-01-01 00:00'); + }); + it('should load tags even with the inline syntax', async function() { + const note = await importNote(`${supportDir}/test_notes/yaml/inline_tags.md`); + + expect(note.title).toBe('Inline Tags'); + + const tags = await Tag.tagsByNoteId(note.id); + expect(tags.length).toBe(2); + }); + it('should import r-markdown files correctly and set what metadata it can', async function() { + const note = await importNote(`${supportDir}/test_notes/yaml/r-markdown.md`); + const format = 'YYYY-MM-DD HH:mm'; + + expect(note.title).toBe('YAML metadata for R Markdown with examples'); + expect(time.formatMsToLocal(note.user_updated_time, format)).toBe('2021-06-10 00:00'); + expect(time.formatMsToLocal(note.user_created_time, format)).toBe('2021-06-10 00:00'); + expect(note.author).toBe('Hao Liang'); + + const tags = await Tag.tagsByNoteId(note.id); + expect(tags.length).toBe(2); + + const tagTitles = tags.map(tag => tag.title); + expect(tagTitles).toContain('yaml'); + expect(tagTitles).toContain('rmd'); + }); + it('should import r-markdown files with alternative author syntax', async function() { + const note = await importNote(`${supportDir}/test_notes/yaml/r-markdown_author.md`); + + expect(note.title).toBe('Distill for R Markdown'); + expect(note.author).toBe('JJ Allaire'); + }); + it('should handle date formats with timezone information', async function() { + const note = await importNote(`${supportDir}/test_notes/yaml/utc.md`); + + expect(note.user_updated_time).toBe(1556729640000); + expect(note.user_created_time).toBe(1556754840000); + }); +}); diff --git a/packages/lib/services/interop/InteropService_Importer_Md_frontmatter.ts b/packages/lib/services/interop/InteropService_Importer_Md_frontmatter.ts new file mode 100644 index 000000000..8a1bf87a3 --- /dev/null +++ b/packages/lib/services/interop/InteropService_Importer_Md_frontmatter.ts @@ -0,0 +1,162 @@ +import InteropService_Importer_Md from './InteropService_Importer_Md'; +import Note from '../../models/Note'; +import Tag from '../../models/Tag'; +import time from '../../time'; +import { NoteEntity } from '../database/types'; + +import * as yaml from 'js-yaml'; + +interface ParsedMeta { + metadata: NoteEntity; + tags: string[]; +} + +function isTruthy(str: string): boolean { + return str.toLowerCase() in ['true', 'yes']; +} + +// Enforces exactly 2 spaces in front of list items +function normalizeYamlWhitespace(yaml: string[]): string[] { + return yaml.map(line => { + const l = line.trimStart(); + if (l.startsWith('-')) { + return ` ${l}`; + } + + return line; + }); +} + +// This is a helper functon to convert an arbitrary author variable into a string +// the use case is for loading from r-markdown/pandoc style notes +// references: +// https://pandoc.org/MANUAL.html#extension-yaml_metadata_block +// https://github.com/hao203/rmarkdown-YAML +function extractAuthor(author: any): string { + if (!author) return ''; + + if (typeof(author) === 'string') { + return author; + } else if (Array.isArray(author)) { + // Joplin only supports a single author, so we take the first one + return extractAuthor(author[0]); + } else if (typeof(author) === 'object') { + if ('name' in author) { + return author['name']; + } + } + + return ''; +} + +export default class InteropService_Importer_Md_frontmatter extends InteropService_Importer_Md { + + private getNoteHeader(note: string) { + // Ignore the leading `---` + const lines = note.split('\n').slice(1); + let inHeader = true; + const headerLines: string[] = []; + const bodyLines: string[] = []; + for (let i = 0; i < lines.length; i++) { + const line = lines[i]; + if (inHeader && line.startsWith('---')) { + inHeader = false; + i++; // Need to eat the extra newline after the yaml block + continue; + } + + if (inHeader) { headerLines.push(line); } else { bodyLines.push(line); } + } + + const normalizedHeaderLines = normalizeYamlWhitespace(headerLines); + const header = normalizedHeaderLines.join('\n'); + const body = bodyLines.join('\n'); + + return { header, body }; + } + + private toLowerCase(obj: Record): Record { + const newObj: Record = {}; + for (const key of Object.keys(obj)) { + newObj[key.toLowerCase()] = obj[key]; + } + + return newObj; + } + + private parseYamlNote(note: string): ParsedMeta { + if (!note.startsWith('---')) return { metadata: { body: note }, tags: [] }; + + const { header, body } = this.getNoteHeader(note); + + const md: Record = this.toLowerCase(yaml.load(header, { schema: yaml.FAILSAFE_SCHEMA })); + const metadata: NoteEntity = { + title: md['title'] || '', + source_url: md['source'] || '', + is_todo: ('completed?' in md) ? 1 : 0, + }; + + if ('author' in md) { metadata['author'] = extractAuthor(md['author']); } + + // The date fallback gives support for MultiMarkdown format, r-markdown, and pandoc formats + if ('created' in md) { + metadata['user_created_time'] = time.anythingToMs(md['created'], Date.now()); + } else if ('date' in md) { + metadata['user_created_time'] = time.anythingToMs(md['date'], Date.now()); + } + + if ('updated' in md) { + metadata['user_updated_time'] = time.anythingToMs(md['updated'], Date.now()); + } else if ('lastmod' in md) { + // Add support for hugo + metadata['user_updated_time'] = time.anythingToMs(md['lastmod'], Date.now()); + } else if ('date' in md) { + metadata['user_updated_time'] = time.anythingToMs(md['date'], Date.now()); + } + + if ('latitude' in md) { metadata['latitude'] = md['latitude']; } + if ('longitude' in md) { metadata['longitude'] = md['longitude']; } + if ('altitude' in md) { metadata['altitude'] = md['altitude']; } + + if (metadata.is_todo) { + if (isTruthy(md['completed?'])) { + // Completed time isn't preserved, so we use a sane choice here + metadata['todo_completed'] = metadata['user_updated_time']; + } + if ('due' in md) { + const due_date = time.anythingToMs(md['due'], null); + if (due_date) { metadata['todo_due'] = due_date; } + } + } + + // Tags are handled seperately from typical metadata + let tags: string[] = []; + if ('tags' in md) { + // Only create unique tags + tags = md['tags']; + } else if ('keywords' in md) { + // Adding support for r-markdown/pandoc + tags = tags.concat(md['keywords']); + } + + // Only create unique tags + tags = [...new Set(tags)] as string[]; + + metadata['body'] = body; + + return { metadata, tags }; + } + + public async importFile(filePath: string, parentFolderId: string) { + const note = await super.importFile(filePath, parentFolderId); + const { metadata, tags } = this.parseYamlNote(note.body); + + const updatedNote = Object.assign({}, note, metadata); + + const noteItem = await Note.save(updatedNote, { isNew: false, autoTimestamp: false }); + + for (const tag of tags) { await Tag.addNoteTagByTitle(noteItem.id, tag); } + + return noteItem; + } +} diff --git a/packages/lib/services/interop/types.ts b/packages/lib/services/interop/types.ts index 1a9635d2e..0ae280588 100644 --- a/packages/lib/services/interop/types.ts +++ b/packages/lib/services/interop/types.ts @@ -103,8 +103,24 @@ export interface ImportExportResult { warnings: string[]; } +// These are the fields that will be included in an exported Md+Front Matter note +export interface MdFrontMatterExport { + 'title'?: string; + 'source'?: string; + 'author'?: string; + 'latitude'?: number; + 'longitude'?: number; + 'altitude'?: number; + 'completed?'?: string; + 'due'?: string; + 'updated'?: string; + 'created'?: string; + 'tags'?: string[]; +} + function moduleFullLabel(moduleSource: FileSystemItem = null): string { - const label = [`${this.format.toUpperCase()} - ${this.description}`]; + const format = this.format.split('_')[0]; + const label = [`${format.toUpperCase()} - ${this.description}`]; if (moduleSource && this.sources.length > 1) { label.push(`(${moduleSource === 'file' ? _('File') : _('Directory')})`); } diff --git a/packages/lib/time.ts b/packages/lib/time.ts index 95c5edd08..b8ba90fb1 100644 --- a/packages/lib/time.ts +++ b/packages/lib/time.ts @@ -80,6 +80,15 @@ class Time { ); } + public unixMsToRfc3339Sec(ms: number) { + return ( + `${moment + .unix(ms / 1000) + .utc() + .format('YYYY-MM-DD HH:mm:ss')}Z` + ); + } + public unixMsToLocalDateTime(ms: number) { return moment.unix(ms / 1000).format('DD/MM/YYYY HH:mm'); } @@ -110,6 +119,19 @@ class Time { return m.isValid() ? m.toDate() : defaultValue; } + public anythingToMs(o: any, defaultValue: number = null) { + if (o && o.toDate) return o.toDate(); + if (!o) return defaultValue; + // There are a few date formats supported by Joplin that are not supported by + // moment without an explicit format specifier. The typical case is that a user + // has a preferred data format. This means we should try the currently assigned + // date first, and then attempt to load a generic date string. + const m = moment(o, this.dateTimeFormat()); + if (m.isValid()) return m.toDate().getTime(); + const d = moment(o); + return d.isValid() ? d.toDate().getTime() : defaultValue; + } + public msleep(ms: number) { return new Promise((resolve: Function) => { shim.setTimeout(() => { @@ -144,7 +166,6 @@ class Time { }, 1000); }); } - } const time = new Time(); diff --git a/readme/spec/interop_with_frontmatter.md b/readme/spec/interop_with_frontmatter.md new file mode 100644 index 000000000..b5393ca86 --- /dev/null +++ b/readme/spec/interop_with_frontmatter.md @@ -0,0 +1,110 @@ +# Markdown with Front Matter Exporter/Importer + +This exporter/importer is built around the MD exporter/importer. It functions identically, but includes a block of YAML front matter that contains note metadata. + +YAML front matter is represented simply as a block of YAML between `---` delimiters. An illustrative example can be seen below. + +``` +--- +title: Joplin Interop +created: 1970-01-01 00:00Z +tags: + - export + - import +--- +``` + +## Supported Metadata Fields + +All of the below fields are supported by both the exporter and the importer. + +- `title`: Title of the note +- `updated`: Time of last not update (corresponds to `user_updated_time`) +- `created`: Creation time of note (corresponds to `user_created_time`) +- `source`: The source URL for a note that comes from the web clipper +- `author`: Author's name +- `latitude`: Latitude where note was created +- `longitude`: Longitude where note was created +- `altitude`: Altitude where note was created +- `completed?`: Exists if the note is a todo, indicates if the todo is completed +- `due`: Exists if the note is a todo, due date (alarm time) of note +- `tags`: List of all associated tag names + +### Exporter + +The exporter will export all the above fields that hold values in the database. So `due` and `completed?` will only be included for "todo" notesm `tags` will only exist for notes that include tags, etc. + +### Importer + +The importer will import the metadata corresponding to all of the above fields. Missing data will be filled in as if the note was just created. Extra fields will be ignored. + +There are other tools that use similar YAML front matter blocks, notably [pandoc](https://pandoc.org/MANUAL.html#extension-yaml_metadata_block) and [r-markdown](https://github.com/hao203/rmarkdown-YAML). The importer attempts to provide compatibility with these formats where possible. + +## Dates +### Exporter + +All dates are exported in the ISO 8601 format (substituting the 'T' for a space based on RFC 3339 for readability) in the UTC time zone. + +e.g. `1970-01-01 00:00:00Z` + +### Importer + +The importer is more flexible with dates. It will handle ISO 8601 dates with or without a timezone, if no timezone is specified, local time will be used. If there is a timezone specified (Z notation or +00:00 notation) that timezone will be used. If the format is not ISO 8601, the importer will attempt to read based on the users configured date and time preferences (Tools -> Options -> General or Joplin -> Preferences -> General). The importer will fallback on the Javascript [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) functionality if the format can not be read. + +## Examples + +Below are a collection of examples that represent valid notes that may have been exported by the exporter, and can be imported by the importer. + +``` +--- +title: Frogs +source: https://en.wikipedia.org/wiki/Frog +created: 2021-05-01 16:40:00Z +updated: 2021-05-01 16:40:00Z +tags: + - Reference + - Cool +--- + +This article is about the group of amphibians. For other uses, see [Frog (disambiguation)](https://en.wikipedia.org/wiki/Frog_%28disambiguation%29 "Frog (disambiguation)"). +... +``` + +``` +--- +title: Take Home Quiz +created: 2021-05-01 16:40:00Z +updated: 2021-06-17 23:59:00Z +tags: + - school + - math + - homework +completed?: no +due: 2021-06-18 08:00:00Z +--- + +**Prove or give a counter-example of the following statement:** + +> In three space dimensions and time, given an initial velocity field, there exists a vector velocity and a scalar pressure field, which are both smooth and globally defined, that solve the Navier–Stokes equations. +``` + +``` +--- +title: All Fields +updated: 2019-05-01 16:54:00Z +created: 2019-05-01 16:54:00Z +source: https://joplinapp.org +author: Joplin +latitude: 37.084021 +longitude: -94.51350100 +altitude: 0.0000 +completed?: no +due: 2021-08-22 00:00:00Z +tags: + - joplin + - note + - pencil +--- + +All of this metadata is available to be imported/exported. +```