>(None());
const flightFetcher = async (driv: Driver) => {
setInFlight(true);
@@ -56,9 +57,12 @@ export const useDocument = (initialStyle: string, initialReferences: Reference[]
});
let d = driver.unwrap();
d.resetReferences(references).unwrap();
+ let meta = parseStyleMetadata(style).unwrap();
+ setMetadata(Some(meta));
return d;
} catch(e) {
console.error("caught in createDriver: ", e);
+ setError(Some(e));
}
});
if (d.is_ok()) {
@@ -73,18 +77,18 @@ export const useDocument = (initialStyle: string, initialReferences: Reference[]
if (driver.is_ok()) {
let d = driver.unwrap();
try {
- const { parseStyleMetadata } = await import('../../pkg');
let meta = parseStyleMetadata(style).unwrap();
if (meta.info.parent != null) {
console.log("this is a dependent style!");
}
console.log(meta);
d.setStyle(style).unwrap();
+ setMetadata(Some(meta));
setError(None());
} catch (e) {
console.error(e);
console.log(e.data);
- setError(Some("" + e));
+ setError(Some(e));
}
await flightFetcher(d);
setDocument(document.map(doc => doc.selfUpdate()));
@@ -154,6 +158,7 @@ export const useDocument = (initialStyle: string, initialReferences: Reference[]
resetReferences,
updateReferences,
references,
+ metadata,
};
}
diff --git a/crates/wasm/js-demo/package.json b/crates/wasm/js-demo/package.json
index 70ccb7fd..3cc941c9 100644
--- a/crates/wasm/js-demo/package.json
+++ b/crates/wasm/js-demo/package.json
@@ -44,6 +44,7 @@
"immer": "^3.1.3",
"react": "^16.8.2",
"react-dom": "^16.8.2",
+ "react-json-view": "^1.19.1",
"react-select": "^3.0.4",
"safe-types": "^4.20.0",
"typescript": "^3.3.3333"
diff --git a/crates/wasm/js-demo/yarn.lock b/crates/wasm/js-demo/yarn.lock
index 46a1ce2a..6170ca4e 100644
--- a/crates/wasm/js-demo/yarn.lock
+++ b/crates/wasm/js-demo/yarn.lock
@@ -132,11 +132,11 @@
"@babel/types" "^7.5.5"
"@babel/helper-module-imports@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d"
- integrity sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==
+ version "7.12.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz#1bfc0229f794988f76ed0a4d4e90860850b54dfb"
+ integrity sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==
dependencies:
- "@babel/types" "^7.0.0"
+ "@babel/types" "^7.12.5"
"@babel/helper-module-transforms@^7.1.0", "@babel/helper-module-transforms@^7.4.4":
version "7.5.5"
@@ -205,6 +205,11 @@
dependencies:
"@babel/types" "^7.4.4"
+"@babel/helper-validator-identifier@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2"
+ integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==
+
"@babel/helper-wrap-function@^7.1.0":
version "7.2.0"
resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa"
@@ -717,13 +722,20 @@
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-transform-typescript" "^7.6.0"
-"@babel/runtime@^7.1.2", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.2", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5":
+"@babel/runtime@^7.3.1":
version "7.6.0"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.6.0.tgz#4fc1d642a9fd0299754e8b5de62c631cf5568205"
integrity sha512-89eSBLJsxNxOERC0Op4vd+0Bqm6wRMqMbFtV3i0/fbaWw/mJ8Q3eBvgX0G4SyrOOLCtbu98HspF8o09MRT+KzQ==
dependencies:
regenerator-runtime "^0.13.2"
+"@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.7":
+ version "7.12.5"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e"
+ integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==
+ dependencies:
+ regenerator-runtime "^0.13.4"
+
"@babel/template@^7.1.0", "@babel/template@^7.4.4", "@babel/template@^7.6.0":
version "7.6.0"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.6.0.tgz#7f0159c7f5012230dad64cca42ec9bdb5c9536e6"
@@ -748,7 +760,16 @@
globals "^11.1.0"
lodash "^4.17.13"
-"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5", "@babel/types@^7.6.0":
+"@babel/types@^7.0.0", "@babel/types@^7.12.5":
+ version "7.12.7"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.7.tgz#6039ff1e242640a29452c9ae572162ec9a8f5d13"
+ integrity sha512-MNyI92qZq6jrQkXvtIiykvl4WtoRrVV9MPn+ZfsoEENjiWcBQ3ZSHrkxnJWgWtLX3XXqX5hrSQ+X69wkmesXuQ==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.10.4"
+ lodash "^4.17.19"
+ to-fast-properties "^2.0.0"
+
+"@babel/types@^7.2.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5", "@babel/types@^7.6.0":
version "7.6.1"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.6.1.tgz#53abf3308add3ac2a2884d539151c57c4b3ac648"
integrity sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==
@@ -766,82 +787,82 @@
lodash "^4.17.11"
to-fast-properties "^2.0.0"
-"@emotion/cache@^10.0.17", "@emotion/cache@^10.0.9":
- version "10.0.17"
- resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-10.0.17.tgz#3491a035f62f276620d586677bfc3d4fad0b8472"
- integrity sha512-442/miwbuwIDfSzfMqZNxuzxSEbskcz/bZ86QBYzEjFrr/oq9w+y5kJY1BHbGhDtr91GO232PZ5NN9XYMwr/Qg==
+"@emotion/cache@^10.0.27", "@emotion/cache@^10.0.9":
+ version "10.0.29"
+ resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-10.0.29.tgz#87e7e64f412c060102d589fe7c6dc042e6f9d1e0"
+ integrity sha512-fU2VtSVlHiF27empSbxi1O2JFdNWZO+2NFHfwO0pxgTep6Xa3uGb+3pVKfLww2l/IBGLNEZl5Xf/++A4wAYDYQ==
dependencies:
- "@emotion/sheet" "0.9.3"
- "@emotion/stylis" "0.8.4"
- "@emotion/utils" "0.11.2"
- "@emotion/weak-memoize" "0.2.3"
+ "@emotion/sheet" "0.9.4"
+ "@emotion/stylis" "0.8.5"
+ "@emotion/utils" "0.11.3"
+ "@emotion/weak-memoize" "0.2.5"
"@emotion/core@^10.0.9":
- version "10.0.17"
- resolved "https://registry.yarnpkg.com/@emotion/core/-/core-10.0.17.tgz#3367376709721f4ee2068cff54ba581d362789d8"
- integrity sha512-gykyjjr0sxzVuZBVTVK4dUmYsorc2qLhdYgSiOVK+m7WXgcYTKZevGWZ7TLAgTZvMelCTvhNq8xnf8FR1IdTbg==
+ version "10.1.1"
+ resolved "https://registry.yarnpkg.com/@emotion/core/-/core-10.1.1.tgz#c956c1365f2f2481960064bcb8c4732e5fb612c3"
+ integrity sha512-ZMLG6qpXR8x031NXD8HJqugy/AZSkAuMxxqB46pmAR7ze47MhNJ56cdoX243QPZdGctrdfo+s08yZTiwaUcRKA==
dependencies:
"@babel/runtime" "^7.5.5"
- "@emotion/cache" "^10.0.17"
- "@emotion/css" "^10.0.14"
- "@emotion/serialize" "^0.11.10"
- "@emotion/sheet" "0.9.3"
- "@emotion/utils" "0.11.2"
-
-"@emotion/css@^10.0.14", "@emotion/css@^10.0.9":
- version "10.0.14"
- resolved "https://registry.yarnpkg.com/@emotion/css/-/css-10.0.14.tgz#95dacabdd0e22845d1a1b0b5968d9afa34011139"
- integrity sha512-MozgPkBEWvorcdpqHZE5x1D/PLEHUitALQCQYt2wayf4UNhpgQs2tN0UwHYS4FMy5ROBH+0ALyCFVYJ/ywmwlg==
- dependencies:
- "@emotion/serialize" "^0.11.8"
- "@emotion/utils" "0.11.2"
- babel-plugin-emotion "^10.0.14"
-
-"@emotion/hash@0.7.2":
- version "0.7.2"
- resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.7.2.tgz#53211e564604beb9befa7a4400ebf8147473eeef"
- integrity sha512-RMtr1i6E8MXaBWwhXL3yeOU8JXRnz8GNxHvaUfVvwxokvayUY0zoBeWbKw1S9XkufmGEEdQd228pSZXFkAln8Q==
-
-"@emotion/memoize@0.7.2":
- version "0.7.2"
- resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.2.tgz#7f4c71b7654068dfcccad29553520f984cc66b30"
- integrity sha512-hnHhwQzvPCW1QjBWFyBtsETdllOM92BfrKWbUTmh9aeOlcVOiXvlPsK4104xH8NsaKfg86PTFsWkueQeUfMA/w==
-
-"@emotion/serialize@^0.11.10", "@emotion/serialize@^0.11.8":
- version "0.11.10"
- resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-0.11.10.tgz#53207dba7e28bd96928fc2a37e20b31b712bf9a2"
- integrity sha512-04AB+wU00vv9jLgkWn13c/GJg2yXp3w7ZR3Q1O6mBSE6mbUmYeNX3OpBhfp//6r47lFyY0hBJJue+bA30iokHQ==
- dependencies:
- "@emotion/hash" "0.7.2"
- "@emotion/memoize" "0.7.2"
- "@emotion/unitless" "0.7.4"
- "@emotion/utils" "0.11.2"
+ "@emotion/cache" "^10.0.27"
+ "@emotion/css" "^10.0.27"
+ "@emotion/serialize" "^0.11.15"
+ "@emotion/sheet" "0.9.4"
+ "@emotion/utils" "0.11.3"
+
+"@emotion/css@^10.0.27", "@emotion/css@^10.0.9":
+ version "10.0.27"
+ resolved "https://registry.yarnpkg.com/@emotion/css/-/css-10.0.27.tgz#3a7458198fbbebb53b01b2b87f64e5e21241e14c"
+ integrity sha512-6wZjsvYeBhyZQYNrGoR5yPMYbMBNEnanDrqmsqS1mzDm1cOTu12shvl2j4QHNS36UaTE0USIJawCH9C8oW34Zw==
+ dependencies:
+ "@emotion/serialize" "^0.11.15"
+ "@emotion/utils" "0.11.3"
+ babel-plugin-emotion "^10.0.27"
+
+"@emotion/hash@0.8.0":
+ version "0.8.0"
+ resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413"
+ integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==
+
+"@emotion/memoize@0.7.4":
+ version "0.7.4"
+ resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb"
+ integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==
+
+"@emotion/serialize@^0.11.15", "@emotion/serialize@^0.11.16":
+ version "0.11.16"
+ resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-0.11.16.tgz#dee05f9e96ad2fb25a5206b6d759b2d1ed3379ad"
+ integrity sha512-G3J4o8by0VRrO+PFeSc3js2myYNOXVJ3Ya+RGVxnshRYgsvErfAOglKAiy1Eo1vhzxqtUvjCyS5gtewzkmvSSg==
+ dependencies:
+ "@emotion/hash" "0.8.0"
+ "@emotion/memoize" "0.7.4"
+ "@emotion/unitless" "0.7.5"
+ "@emotion/utils" "0.11.3"
csstype "^2.5.7"
-"@emotion/sheet@0.9.3":
- version "0.9.3"
- resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-0.9.3.tgz#689f135ecf87d3c650ed0c4f5ddcbe579883564a"
- integrity sha512-c3Q6V7Df7jfwSq5AzQWbXHa5soeE4F5cbqi40xn0CzXxWW9/6Mxq48WJEtqfWzbZtW9odZdnRAkwCQwN12ob4A==
+"@emotion/sheet@0.9.4":
+ version "0.9.4"
+ resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-0.9.4.tgz#894374bea39ec30f489bbfc3438192b9774d32e5"
+ integrity sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA==
-"@emotion/stylis@0.8.4":
- version "0.8.4"
- resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.4.tgz#6c51afdf1dd0d73666ba09d2eb6c25c220d6fe4c"
- integrity sha512-TLmkCVm8f8gH0oLv+HWKiu7e8xmBIaokhxcEKPh1m8pXiV/akCiq50FvYgOwY42rjejck8nsdQxZlXZ7pmyBUQ==
+"@emotion/stylis@0.8.5":
+ version "0.8.5"
+ resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.5.tgz#deacb389bd6ee77d1e7fcaccce9e16c5c7e78e04"
+ integrity sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==
-"@emotion/unitless@0.7.4":
- version "0.7.4"
- resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.4.tgz#a87b4b04e5ae14a88d48ebef15015f6b7d1f5677"
- integrity sha512-kBa+cDHOR9jpRJ+kcGMsysrls0leukrm68DmFQoMIWQcXdr2cZvyvypWuGYT7U+9kAExUE7+T7r6G3C3A6L8MQ==
+"@emotion/unitless@0.7.5":
+ version "0.7.5"
+ resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed"
+ integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==
-"@emotion/utils@0.11.2":
- version "0.11.2"
- resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-0.11.2.tgz#713056bfdffb396b0a14f1c8f18e7b4d0d200183"
- integrity sha512-UHX2XklLl3sIaP6oiMmlVzT0J+2ATTVpf0dHQVyPJHTkOITvXfaSqnRk6mdDhV9pR8T/tHc3cex78IKXssmzrA==
+"@emotion/utils@0.11.3":
+ version "0.11.3"
+ resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-0.11.3.tgz#a759863867befa7e583400d322652a3f44820924"
+ integrity sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==
-"@emotion/weak-memoize@0.2.3":
- version "0.2.3"
- resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.3.tgz#dfa0c92efe44a1d1a7974fb49ffeb40ef2da5a27"
- integrity sha512-zVgvPwGK7c1aVdUVc9Qv7SqepOGRDrqCw7KZPSZziWGxSlbII3gmvGLPzLX4d0n0BMbamBacUrN22zOMyFFEkQ==
+"@emotion/weak-memoize@0.2.5":
+ version "0.2.5"
+ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46"
+ integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==
"@types/events@*":
version "3.0.0"
@@ -889,6 +910,11 @@
resolved "https://registry.yarnpkg.com/@types/node/-/node-11.13.20.tgz#da42fe93d6599f80b35ffeb5006f4c31f40d89ea"
integrity sha512-JE0UpLWZTV1sGcaj0hN+Q0760OEjpgyFJ06DOMVW6qKBducKdJQaIw0TGL6ccj7VXRduIOHLWQi+tHwulZJHVQ==
+"@types/parse-json@^4.0.0":
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0"
+ integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==
+
"@types/prop-types@*":
version "15.7.2"
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.2.tgz#0e58ae66773d7fd7c372a493aff740878ec9ceaa"
@@ -1180,13 +1206,6 @@ are-we-there-yet@~1.1.2:
delegates "^1.0.0"
readable-stream "^2.0.6"
-argparse@^1.0.7:
- version "1.0.10"
- resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
- integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
- dependencies:
- sprintf-js "~1.0.2"
-
arr-diff@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
@@ -1229,6 +1248,11 @@ array-unique@^0.3.2:
resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
+asap@~2.0.3:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
+ integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
+
asn1.js@^4.0.0:
version "4.10.1"
resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0"
@@ -1288,15 +1312,15 @@ babel-plugin-dynamic-import-node@^2.3.0:
dependencies:
object.assign "^4.1.0"
-babel-plugin-emotion@^10.0.14:
- version "10.0.17"
- resolved "https://registry.yarnpkg.com/babel-plugin-emotion/-/babel-plugin-emotion-10.0.17.tgz#5673fbed7b1ed61b4b98d5530f33c8a4d1b08484"
- integrity sha512-KNuBadotqYWpQexHhHOu7M9EV1j2c+Oh/JJqBfEQDusD6mnORsCZKHkl+xYwK82CPQ/23wRrsBIEYnKjtbMQJw==
+babel-plugin-emotion@^10.0.27:
+ version "10.0.33"
+ resolved "https://registry.yarnpkg.com/babel-plugin-emotion/-/babel-plugin-emotion-10.0.33.tgz#ce1155dcd1783bbb9286051efee53f4e2be63e03"
+ integrity sha512-bxZbTTGz0AJQDHm8k6Rf3RQJ8tX2scsfsRyKVgAbiUPUNIRtlK+7JxP+TAd1kRLABFxe0CFm2VdK4ePkoA9FxQ==
dependencies:
"@babel/helper-module-imports" "^7.0.0"
- "@emotion/hash" "0.7.2"
- "@emotion/memoize" "0.7.2"
- "@emotion/serialize" "^0.11.10"
+ "@emotion/hash" "0.8.0"
+ "@emotion/memoize" "0.7.4"
+ "@emotion/serialize" "^0.11.16"
babel-plugin-macros "^2.0.0"
babel-plugin-syntax-jsx "^6.18.0"
convert-source-map "^1.5.0"
@@ -1305,13 +1329,13 @@ babel-plugin-emotion@^10.0.14:
source-map "^0.5.7"
babel-plugin-macros@^2.0.0:
- version "2.6.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.6.1.tgz#41f7ead616fc36f6a93180e89697f69f51671181"
- integrity sha512-6W2nwiXme6j1n2erPOnmRiWfObUhWH7Qw1LMi9XZy8cj+KtESu3T6asZvtk5bMQQjX8te35o7CFueiSdL/2NmQ==
+ version "2.8.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138"
+ integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==
dependencies:
- "@babel/runtime" "^7.4.2"
- cosmiconfig "^5.2.0"
- resolve "^1.10.0"
+ "@babel/runtime" "^7.7.2"
+ cosmiconfig "^6.0.0"
+ resolve "^1.12.0"
babel-plugin-syntax-jsx@^6.18.0:
version "6.18.0"
@@ -1323,6 +1347,11 @@ balanced-match@^1.0.0:
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
+base16@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/base16/-/base16-1.0.0.tgz#e297f60d7ec1014a7a971a39ebc8a98c0b681e70"
+ integrity sha1-4pf2DX7BAUp6lxo568ipjAtoHnA=
+
base64-js@^1.0.2:
version "1.3.1"
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1"
@@ -1586,24 +1615,10 @@ cache-base@^1.0.1:
union-value "^1.0.0"
unset-value "^1.0.0"
-caller-callsite@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134"
- integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=
- dependencies:
- callsites "^2.0.0"
-
-caller-path@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4"
- integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=
- dependencies:
- caller-callsite "^2.0.0"
-
-callsites@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50"
- integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=
+callsites@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
+ integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
camelcase@^5.0.0, camelcase@^5.3.1:
version "5.3.1"
@@ -1673,11 +1688,6 @@ class-utils@^0.3.5:
isobject "^3.0.0"
static-extend "^0.1.1"
-classnames@^2.2.5:
- version "2.2.6"
- resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce"
- integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==
-
cliui@^4.0.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49"
@@ -1810,13 +1820,20 @@ content-type@~1.0.4:
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
-convert-source-map@^1.1.0, convert-source-map@^1.5.0:
+convert-source-map@^1.1.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20"
integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==
dependencies:
safe-buffer "~5.1.1"
+convert-source-map@^1.5.0:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
+ integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==
+ dependencies:
+ safe-buffer "~5.1.1"
+
cookie-signature@1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
@@ -1870,20 +1887,26 @@ core-js-compat@^3.1.1:
browserslist "^4.6.6"
semver "^6.3.0"
+core-js@^1.0.0:
+ version "1.2.7"
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
+ integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=
+
core-util-is@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
-cosmiconfig@^5.2.0:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a"
- integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==
+cosmiconfig@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982"
+ integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==
dependencies:
- import-fresh "^2.0.0"
- is-directory "^0.3.1"
- js-yaml "^3.13.1"
- parse-json "^4.0.0"
+ "@types/parse-json" "^4.0.0"
+ import-fresh "^3.1.0"
+ parse-json "^5.0.0"
+ path-type "^4.0.0"
+ yaml "^1.7.2"
create-ecdh@^4.0.0:
version "4.0.3"
@@ -1967,11 +1990,21 @@ cssesc@^3.0.0:
resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
-csstype@^2.2.0, csstype@^2.5.7:
+csstype@^2.2.0:
version "2.6.6"
resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.6.tgz#c34f8226a94bbb10c32cc0d714afdf942291fc41"
integrity sha512-RpFbQGUE74iyPgvr46U9t1xoQBM8T4BL8SxrN66Le2xYAPSaDJJKeztV3awugusb3g3G9iL8StmkBBXhcbbXhg==
+csstype@^2.5.7:
+ version "2.6.14"
+ resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.14.tgz#004822a4050345b55ad4dcc00be1d9cf2f4296de"
+ integrity sha512-2mSc+VEpGPblzAxyeR+vZhJKgYg0Og0nnRi7pmRXFYYxSfnOnW8A5wwQb4n4cE2nIOzqKOAzLCaEX6aBmNEv8A==
+
+csstype@^3.0.2:
+ version "3.0.5"
+ resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.5.tgz#7fdec6a28a67ae18647c51668a9ff95bb2fa7bb8"
+ integrity sha512-uVDi8LpBUKQj6sdxNaTetL6FpeCqTjOvAQuQUa/qAqq8oOd4ivkbhgnqayl0dnPal8Tb/yB1tF+gOvCBiicaiQ==
+
cyclist@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9"
@@ -2529,12 +2562,13 @@ dns-txt@^2.0.2:
dependencies:
buffer-indexof "^1.0.0"
-dom-helpers@^3.4.0:
- version "3.4.0"
- resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.4.0.tgz#e9b369700f959f62ecde5a6babde4bccd9169af8"
- integrity sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==
+dom-helpers@^5.0.1:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.0.tgz#57fd054c5f8f34c52a3eeffdb7e7e93cd357d95b"
+ integrity sha512-Ru5o9+V8CpunKnz5LGgWXkmrH/20cGKwcHwS4m73zIvs54CN9epEmT/HLqFJW3kXpakAFkEdzgy1hzlJe3E4OQ==
dependencies:
- "@babel/runtime" "^7.1.2"
+ "@babel/runtime" "^7.8.7"
+ csstype "^3.0.2"
domain-browser@^1.1.1:
version "1.2.0"
@@ -2594,6 +2628,13 @@ encodeurl@~1.0.2:
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
+encoding@^0.1.11:
+ version "0.1.13"
+ resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9"
+ integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==
+ dependencies:
+ iconv-lite "^0.6.2"
+
end-of-stream@^1.0.0, end-of-stream@^1.1.0:
version "1.4.1"
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43"
@@ -2642,11 +2683,6 @@ eslint-scope@^4.0.3:
esrecurse "^4.1.0"
estraverse "^4.1.1"
-esprima@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
- integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
-
esrecurse@^4.1.0:
version "4.2.1"
resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf"
@@ -2826,6 +2862,26 @@ faye-websocket@~0.11.1:
dependencies:
websocket-driver ">=0.5.1"
+fbemitter@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/fbemitter/-/fbemitter-2.1.1.tgz#523e14fdaf5248805bb02f62efc33be703f51865"
+ integrity sha1-Uj4U/a9SSIBbsC9i78M75wP1GGU=
+ dependencies:
+ fbjs "^0.8.4"
+
+fbjs@^0.8.0, fbjs@^0.8.4:
+ version "0.8.17"
+ resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd"
+ integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=
+ dependencies:
+ core-js "^1.0.0"
+ isomorphic-fetch "^2.1.1"
+ loose-envify "^1.0.0"
+ object-assign "^4.1.0"
+ promise "^7.1.1"
+ setimmediate "^1.0.5"
+ ua-parser-js "^0.7.18"
+
figgy-pudding@^3.5.1:
version "3.5.1"
resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790"
@@ -2893,6 +2949,14 @@ flush-write-stream@^1.0.0:
inherits "^2.0.3"
readable-stream "^2.3.6"
+flux@^3.1.3:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/flux/-/flux-3.1.3.tgz#d23bed515a79a22d933ab53ab4ada19d05b2f08a"
+ integrity sha1-0jvtUVp5oi2TOrU6tK2hnQWy8Io=
+ dependencies:
+ fbemitter "^2.0.0"
+ fbjs "^0.8.0"
+
follow-redirects@^1.0.0:
version "1.9.0"
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.9.0.tgz#8d5bcdc65b7108fe1508649c79c12d732dcedb4f"
@@ -3163,7 +3227,7 @@ has-values@^1.0.0:
is-number "^3.0.0"
kind-of "^4.0.0"
-has@^1.0.1:
+has@^1.0.1, has@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
@@ -3290,6 +3354,13 @@ iconv-lite@0.4, iconv-lite@0.4.24, iconv-lite@^0.4.4:
dependencies:
safer-buffer ">= 2.1.2 < 3"
+iconv-lite@^0.6.2:
+ version "0.6.2"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01"
+ integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==
+ dependencies:
+ safer-buffer ">= 2.1.2 < 3.0.0"
+
icss-utils@^4.0.0, icss-utils@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467"
@@ -3324,13 +3395,13 @@ immer@^3.1.3:
resolved "https://registry.yarnpkg.com/immer/-/immer-3.2.0.tgz#53686471e9dd2b070e0fb5500c6fdecd3a99375f"
integrity sha512-+a2R8z9eELHst6aht++nzVzJ8LJ+Hsg49qttfg9Kc/vmoxEdPXw5/rV6+4DYWGgnq+B36KbLr4OTaGtS9mDjtg==
-import-fresh@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546"
- integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY=
+import-fresh@^3.1.0:
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.2.tgz#fc129c160c5d68235507f4331a6baad186bdbc3e"
+ integrity sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==
dependencies:
- caller-path "^2.0.0"
- resolve-from "^3.0.0"
+ parent-module "^1.0.0"
+ resolve-from "^4.0.0"
import-local@2.0.0, import-local@^2.0.0:
version "2.0.0"
@@ -3469,6 +3540,13 @@ is-buffer@^1.1.5:
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
+is-core-module@^2.1.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a"
+ integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==
+ dependencies:
+ has "^1.0.3"
+
is-data-descriptor@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
@@ -3506,11 +3584,6 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2:
is-data-descriptor "^1.0.0"
kind-of "^6.0.2"
-is-directory@^0.3.1:
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1"
- integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=
-
is-extendable@^0.1.0, is-extendable@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
@@ -3594,7 +3667,7 @@ is-regex@^1.0.4:
dependencies:
has "^1.0.1"
-is-stream@^1.1.0:
+is-stream@^1.0.1, is-stream@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
@@ -3631,6 +3704,14 @@ isobject@^3.0.0, isobject@^3.0.1:
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
+isomorphic-fetch@^2.1.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9"
+ integrity sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=
+ dependencies:
+ node-fetch "^1.0.1"
+ whatwg-fetch ">=0.10.0"
+
js-levenshtein@^1.1.3:
version "1.1.6"
resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d"
@@ -3641,14 +3722,6 @@ js-levenshtein@^1.1.3:
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
-js-yaml@^3.13.1:
- version "3.13.1"
- resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
- integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
- dependencies:
- argparse "^1.0.7"
- esprima "^4.0.0"
-
jsesc@^2.5.1:
version "2.5.2"
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
@@ -3659,11 +3732,16 @@ jsesc@~0.5.0:
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=
-json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2:
+json-parse-better-errors@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
+json-parse-even-better-errors@^2.3.0:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
+ integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
+
json-schema-traverse@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
@@ -3731,6 +3809,11 @@ lcid@^2.0.0:
dependencies:
invert-kv "^2.0.0"
+lines-and-columns@^1.1.6:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
+ integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
+
loader-runner@^2.4.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357"
@@ -3762,6 +3845,16 @@ locate-path@^3.0.0:
p-locate "^3.0.0"
path-exists "^3.0.0"
+lodash.curry@^4.0.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/lodash.curry/-/lodash.curry-4.1.1.tgz#248e36072ede906501d75966200a86dab8b23170"
+ integrity sha1-JI42By7ekGUB11lmIAqG2riyMXA=
+
+lodash.flow@^3.3.0:
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/lodash.flow/-/lodash.flow-3.5.0.tgz#87bf40292b8cf83e4e8ce1a3ae4209e20071675a"
+ integrity sha1-h79AKSuM+D5OjOGjrkIJ4gBxZ1o=
+
lodash@^2.4.1:
version "2.4.2"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-2.4.2.tgz#fadd834b9683073da179b3eae6d9c0d15053f73e"
@@ -3772,11 +3865,16 @@ lodash@^3.10.0:
resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6"
integrity sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=
-lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.4, lodash@^4.17.5:
+lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.4, lodash@^4.17.5:
version "4.17.15"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
+lodash@^4.17.13, lodash@^4.17.19:
+ version "4.17.20"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
+ integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
+
loglevel@^1.6.3:
version "1.6.4"
resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.4.tgz#f408f4f006db8354d0577dcf6d33485b3cb90d56"
@@ -4097,6 +4195,14 @@ nice-try@^1.0.4:
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
+node-fetch@^1.0.1:
+ version "1.7.3"
+ resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef"
+ integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==
+ dependencies:
+ encoding "^0.1.11"
+ is-stream "^1.0.1"
+
node-forge@0.8.2:
version "0.8.2"
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.8.2.tgz#b4bcc59fb12ce77a8825fc6a783dfe3182499c5a"
@@ -4387,6 +4493,13 @@ parallel-transform@^1.1.0:
inherits "^2.0.3"
readable-stream "^2.1.5"
+parent-module@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
+ integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
+ dependencies:
+ callsites "^3.0.0"
+
parse-asn1@^5.0.0:
version "5.1.4"
resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.4.tgz#37f6628f823fbdeb2273b4d540434a22f3ef1fcc"
@@ -4399,13 +4512,15 @@ parse-asn1@^5.0.0:
pbkdf2 "^3.0.3"
safe-buffer "^5.1.1"
-parse-json@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
- integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=
+parse-json@^5.0.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.1.0.tgz#f96088cdf24a8faa9aea9a009f2d9d942c999646"
+ integrity sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==
dependencies:
+ "@babel/code-frame" "^7.0.0"
error-ex "^1.3.1"
- json-parse-better-errors "^1.0.1"
+ json-parse-even-better-errors "^2.3.0"
+ lines-and-columns "^1.1.6"
parse-passwd@^1.0.0:
version "1.0.0"
@@ -4469,6 +4584,11 @@ path-type@^3.0.0:
dependencies:
pify "^3.0.0"
+path-type@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
+ integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
+
pbkdf2@^3.0.3:
version "3.0.17"
resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6"
@@ -4480,11 +4600,6 @@ pbkdf2@^3.0.3:
safe-buffer "^5.0.1"
sha.js "^2.4.8"
-performance-now@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
- integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
-
pify@^2.0.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
@@ -4609,6 +4724,13 @@ promise-inflight@^1.0.1:
resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM=
+promise@^7.1.1:
+ version "7.3.1"
+ resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
+ integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==
+ dependencies:
+ asap "~2.0.3"
+
prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.2:
version "15.7.2"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
@@ -4683,6 +4805,11 @@ punycode@^2.1.0:
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
+pure-color@^1.2.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/pure-color/-/pure-color-1.3.0.tgz#1fe064fb0ac851f0de61320a8bf796836422f33e"
+ integrity sha1-H+Bk+wrIUfDeYTIKi/eWg2Qi8z4=
+
qs@6.7.0:
version "6.7.0"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
@@ -4703,13 +4830,6 @@ querystringify@^2.1.1:
resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e"
integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==
-raf@^3.4.0:
- version "3.4.1"
- resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39"
- integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==
- dependencies:
- performance-now "^2.1.0"
-
randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5:
version "2.1.0"
resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
@@ -4758,6 +4878,16 @@ rc@^1.2.7:
minimist "^1.2.0"
strip-json-comments "~2.0.1"
+react-base16-styling@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/react-base16-styling/-/react-base16-styling-0.6.0.tgz#ef2156d66cf4139695c8a167886cb69ea660792c"
+ integrity sha1-7yFW1mz0E5aVyKFniGy2nqZgeSw=
+ dependencies:
+ base16 "^1.0.0"
+ lodash.curry "^4.0.1"
+ lodash.flow "^3.3.0"
+ pure-color "^1.2.0"
+
react-dom@^16.8.2:
version "16.9.0"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.9.0.tgz#5e65527a5e26f22ae3701131bcccaee9fb0d3962"
@@ -4768,17 +4898,27 @@ react-dom@^16.8.2:
prop-types "^15.6.2"
scheduler "^0.15.0"
-react-input-autosize@^2.2.1:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/react-input-autosize/-/react-input-autosize-2.2.1.tgz#ec428fa15b1592994fb5f9aa15bb1eb6baf420f8"
- integrity sha512-3+K4CD13iE4lQQ2WlF8PuV5htfmTRLH6MDnfndHM6LuBRszuXnuyIfE7nhSKt8AzRBZ50bu0sAhkNMeS5pxQQA==
+react-input-autosize@^2.2.2:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/react-input-autosize/-/react-input-autosize-2.2.2.tgz#fcaa7020568ec206bc04be36f4eb68e647c4d8c2"
+ integrity sha512-jQJgYCA3S0j+cuOwzuCd1OjmBmnZLdqQdiLKRYrsMMzbjUrVDS5RvJUDwJqA7sKuksDuzFtm6hZGKFu7Mjk5aw==
dependencies:
prop-types "^15.5.8"
react-is@^16.8.1:
- version "16.9.0"
- resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.9.0.tgz#21ca9561399aad0ff1a7701c01683e8ca981edcb"
- integrity sha512-tJBzzzIgnnRfEm046qRcURvwQnZVXmuCbscxUO5RWrGTXpon2d4c8mI0D8WE6ydVIm29JiLB6+RslkIvym9Rjw==
+ version "16.13.1"
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
+ integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
+
+react-json-view@^1.19.1:
+ version "1.19.1"
+ resolved "https://registry.yarnpkg.com/react-json-view/-/react-json-view-1.19.1.tgz#95d8e59e024f08a25e5dc8f076ae304eed97cf5c"
+ integrity sha512-u5e0XDLIs9Rj43vWkKvwL8G3JzvXSl6etuS5G42a8klMohZuYFQzSN6ri+/GiBptDqlrXPTdExJVU7x9rrlXhg==
+ dependencies:
+ flux "^3.1.3"
+ react-base16-styling "^0.6.0"
+ react-lifecycles-compat "^3.0.4"
+ react-textarea-autosize "^6.1.0"
react-lifecycles-compat@^3.0.4:
version "3.0.4"
@@ -4786,30 +4926,35 @@ react-lifecycles-compat@^3.0.4:
integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==
react-select@^3.0.4:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/react-select/-/react-select-3.0.4.tgz#16bde37c24fd4f6444914d4681e78f15ffbc86d3"
- integrity sha512-fbVISKa/lSUlLsltuatfUiKcWCNvdLXxFFyrzVQCBUsjxJZH/m7UMPdw/ywmRixAmwXAP++MdbNNZypOsiDEfA==
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/react-select/-/react-select-3.1.1.tgz#156a5b4a6c22b1e3d62a919cb1fd827adb4060bc"
+ integrity sha512-HjC6jT2BhUxbIbxMZWqVcDibrEpdUJCfGicN0MMV+BQyKtCaPTgFekKWiOizSCy4jdsLMGjLqcFGJMhVGWB0Dg==
dependencies:
"@babel/runtime" "^7.4.4"
"@emotion/cache" "^10.0.9"
"@emotion/core" "^10.0.9"
"@emotion/css" "^10.0.9"
- classnames "^2.2.5"
memoize-one "^5.0.0"
prop-types "^15.6.0"
- raf "^3.4.0"
- react-input-autosize "^2.2.1"
- react-transition-group "^2.2.1"
+ react-input-autosize "^2.2.2"
+ react-transition-group "^4.3.0"
-react-transition-group@^2.2.1:
- version "2.9.0"
- resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-2.9.0.tgz#df9cdb025796211151a436c69a8f3b97b5b07c8d"
- integrity sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==
+react-textarea-autosize@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-6.1.0.tgz#df91387f8a8f22020b77e3833c09829d706a09a5"
+ integrity sha512-F6bI1dgib6fSvG8so1HuArPUv+iVEfPliuLWusLF+gAKz0FbB4jLrWUrTAeq1afnPT2c9toEZYUdz/y1uKMy4A==
dependencies:
- dom-helpers "^3.4.0"
+ prop-types "^15.6.0"
+
+react-transition-group@^4.3.0:
+ version "4.4.1"
+ resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.1.tgz#63868f9325a38ea5ee9535d828327f85773345c9"
+ integrity sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw==
+ dependencies:
+ "@babel/runtime" "^7.5.5"
+ dom-helpers "^5.0.1"
loose-envify "^1.4.0"
prop-types "^15.6.2"
- react-lifecycles-compat "^3.0.4"
react@^16.8.2:
version "16.9.0"
@@ -4863,10 +5008,10 @@ regenerate@^1.4.0:
resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11"
integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==
-regenerator-runtime@^0.13.2:
- version "0.13.3"
- resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5"
- integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==
+regenerator-runtime@^0.13.2, regenerator-runtime@^0.13.4:
+ version "0.13.7"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55"
+ integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==
regenerator-transform@^0.14.0:
version "0.14.1"
@@ -4974,12 +5119,25 @@ resolve-from@^3.0.0:
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
integrity sha1-six699nWiBvItuZTM17rywoYh0g=
+resolve-from@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
+ integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
+
resolve-url@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
-resolve@^1.10.0, resolve@^1.3.2, resolve@^1.8.1:
+resolve@^1.12.0:
+ version "1.19.0"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c"
+ integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==
+ dependencies:
+ is-core-module "^2.1.0"
+ path-parse "^1.0.6"
+
+resolve@^1.3.2, resolve@^1.8.1:
version "1.12.0"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6"
integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==
@@ -5045,7 +5203,7 @@ safe-types@^4.20.0:
resolved "https://registry.yarnpkg.com/safe-types/-/safe-types-4.24.0.tgz#eb08ff73d42cae72becba303521fb45fc0c880da"
integrity sha512-IfqLasbFdS5G28oO1kMfo4w0xBUCHEecPLu1CqerHgkZmMf1nugi6kZbY8o+1LOOma/88n3XRJJX9NOwa5hQzw==
-"safer-buffer@>= 2.1.2 < 3":
+"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0":
version "2.1.2"
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
@@ -5173,7 +5331,7 @@ set-value@^2.0.0, set-value@^2.0.1:
is-plain-object "^2.0.3"
split-string "^3.0.1"
-setimmediate@^1.0.4:
+setimmediate@^1.0.4, setimmediate@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=
@@ -5337,11 +5495,6 @@ split-string@^3.0.1, split-string@^3.0.2:
dependencies:
extend-shallow "^3.0.0"
-sprintf-js@~1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
- integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
-
ssri@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8"
@@ -5622,6 +5775,11 @@ typescript@^3.3.3333:
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.6.2.tgz#105b0f1934119dde543ac8eb71af3a91009efe54"
integrity sha512-lmQ4L+J6mnu3xweP8+rOrUwzmN+MRAj7TgtJtDaXE5PMyX2kCrklhg3rvOsOIfNeAWMQWO2F1GPc1kMD2vLAfw==
+ua-parser-js@^0.7.18:
+ version "0.7.22"
+ resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.22.tgz#960df60a5f911ea8f1c818f3747b99c6e177eae3"
+ integrity sha512-YUxzMjJ5T71w6a8WWVcMGM6YWOTX27rCoIQgLXiWaxqXSx9D7DNjiGWn1aJIRSQ5qr0xuhra77bSIh6voR/46Q==
+
unicode-canonical-property-names-ecmascript@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818"
@@ -5911,6 +6069,11 @@ websocket-extensions@>=0.1.1:
resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29"
integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==
+whatwg-fetch@>=0.10.0:
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.5.0.tgz#605a2cd0a7146e5db141e29d1c62ab84c0c4c868"
+ integrity sha512-jXkLtsR42xhXg7akoDKvKWE40eJeI+2KZqcp2h3NsOrRnDvtWX36KcKl30dy+hxECivdk2BVUHVNrPtoMBUx6A==
+
which-module@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
@@ -5986,6 +6149,11 @@ yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3:
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9"
integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==
+yaml@^1.7.2:
+ version "1.10.0"
+ resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e"
+ integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==
+
yargs-parser@^11.1.1:
version "11.1.1"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4"
From 5ad2a6ef20738de8cc7db64ddf496926c76e33c3 Mon Sep 17 00:00:00 2001
From: Cormac Relf
Date: Tue, 1 Dec 2020 23:18:57 +1100
Subject: [PATCH 11/22] Export WasmResult/*Errors to global always again
I remembered it was necessary in the browser/esm/node code as well.
At least now the TypeScript defines them as globals, so that mistake
is more obvious.
---
crates/wasm/scripts/npm-pkg-config.sh | 2 +-
crates/wasm/src/include.js | 75 ---------------------------
crates/wasm/src/js/include.js | 14 +++++
crates/wasm/src/js/nomod.js | 12 -----
crates/wasm/src/lib.rs | 26 +++++-----
crates/wasm/src/utils.rs | 2 +-
6 files changed, 30 insertions(+), 101 deletions(-)
delete mode 100644 crates/wasm/src/include.js
diff --git a/crates/wasm/scripts/npm-pkg-config.sh b/crates/wasm/scripts/npm-pkg-config.sh
index ece6f1af..a5978390 100755
--- a/crates/wasm/scripts/npm-pkg-config.sh
+++ b/crates/wasm/scripts/npm-pkg-config.sh
@@ -129,7 +129,7 @@ EOF
NOMOD_INCLUDE="$DEST/_no_modules/citeproc_rs_wasm_include.js"
ZOTERO_INCLUDE="$DEST/_zotero/citeproc_rs_wasm_include.js"
-sed -e 's/export class/class/' < src/include.js \
+sed -e 's/export class/class/' < src/js/include.js \
| tee "$ZOTERO_INCLUDE" > "$NOMOD_INCLUDE" \
|| bail "could not write include.js for no-modules targets"
cat src/js/nomod.js >> "$NOMOD_INCLUDE" || bail "failed writing $NOMOD_INCLUDE"
diff --git a/crates/wasm/src/include.js b/crates/wasm/src/include.js
deleted file mode 100644
index c4a0050a..00000000
--- a/crates/wasm/src/include.js
+++ /dev/null
@@ -1,75 +0,0 @@
-export class WasmResult {
- constructor(value) {
- if (value instanceof Error) {
- this.Err = value;
- } else {
- this.Ok = value;
- }
- }
- is_some() {
- if (this.hasOwnProperty("Err")) {
- return false;
- }
- return true;
- }
- is_none() {
- return !this.is_some();
- }
- unwrap() {
- if (this.hasOwnProperty("Err")) {
- throw this.Err;
- } else {
- return this.Ok
- }
- }
- unwrap_or(otherwise) {
- if (this.hasOwnProperty("Err")) {
- return otherwise;
- } else {
- return this.Ok;
- }
- }
- map(func) {
- if (this.hasOwnProperty("Err")) {
- return this;
- } else {
- return new WasmResult(func(this.Ok));
- }
- }
- map_or(otherwise, func) {
- if (this.hasOwnProperty("Err")) {
- return otherwise;
- } else {
- return func(this.Ok);
- }
- }
-}
-
-export class CiteprocRsError extends Error {
- constructor(message) {
- super(message);
- this.name = "CiteprocRsError";
- }
-}
-export class CiteprocRsDriverError extends CiteprocRsError {
- constructor(message, data) {
- super(message);
- this.data = data;
- this.name = "CiteprocRsDriverError";
- }
-}
-export class CslStyleError extends CiteprocRsError {
- constructor(message, data) {
- super(message);
- this.data = data;
- this.name = "CslStyleError";
- }
-}
-
-function doExport(onto) {
- onto.WasmResult = WasmResult;
- onto.CiteprocRsError = CiteprocRsError;
- onto.CslStyleError = CslStyleError;
- onto.CiteprocRsDriverError = CiteprocRsDriverError;
-}
-
diff --git a/crates/wasm/src/js/include.js b/crates/wasm/src/js/include.js
index c4a0050a..570ea77e 100644
--- a/crates/wasm/src/js/include.js
+++ b/crates/wasm/src/js/include.js
@@ -73,3 +73,17 @@ function doExport(onto) {
onto.CiteprocRsDriverError = CiteprocRsDriverError;
}
+// So there is no way to tell wasm-bindgen to re-export JS items.
+// So we have to export them onto a global, if possible, for consumers to use them eg with `instanceof`.
+// At the same time, the typescript declarations have to be in a `declare global { }` block.
+let env_global;
+if (typeof self !== "undefined") {
+ env_global = self;
+} else if (typeof global !== "undefined") {
+ env_global = global;
+} else if (typeof window !== "undefined") {
+ env_global = window;
+}
+if (typeof env_global !== "undefined") {
+ doExport(env_global)
+}
diff --git a/crates/wasm/src/js/nomod.js b/crates/wasm/src/js/nomod.js
index e6be7e84..ec7df6d4 100644
--- a/crates/wasm/src/js/nomod.js
+++ b/crates/wasm/src/js/nomod.js
@@ -7,18 +7,6 @@
// doExport defined in include.js
-let env_global;
-if (typeof self !== "undefined") {
- env_global = self;
-} else if (typeof global !== "undefined") {
- env_global = global;
-} else if (typeof window !== "undefined") {
- env_global = window;
-}
-if (typeof env_global !== "undefined") {
- doExport(env_global)
-}
-
// Then we do one little commonjs hack
if (typeof module !== "undefined") {
module.exports = {};
diff --git a/crates/wasm/src/lib.rs b/crates/wasm/src/lib.rs
index 89a53d0a..560cccfb 100644
--- a/crates/wasm/src/lib.rs
+++ b/crates/wasm/src/lib.rs
@@ -604,17 +604,19 @@ type DriverError = {
tag: "ReorderingErrorNumericId"
};
-/** Catch-all citeproc-rs Error subclass. */
-declare class CiteprocRsError extends Error {
- constructor(message: string);
-}
-declare class CiteprocRsDriverError extends CiteprocRsError {
- data: DriverError;
- constructor(message: string, data: DriverError);
-}
-declare class CslStyleError extends CiteprocRsError {
- data: StyleError;
- constructor(message: string, data: StyleError);
+declare global {
+ /** Catch-all citeproc-rs Error subclass. */
+ declare class CiteprocRsError extends Error {
+ constructor(message: string);
+ }
+ declare class CiteprocRsDriverError extends CiteprocRsError {
+ data: DriverError;
+ constructor(message: string, data: DriverError);
+ }
+ declare class CslStyleError extends CiteprocRsError {
+ data: StyleError;
+ constructor(message: string, data: StyleError);
+ }
}
"#;
@@ -702,7 +704,7 @@ interface StyleMeta {
class?: "in-text" | "note",
cslVersionRequired: string,
/** May be absent on a dependent style */
- independent_meta?: IndependentMeta,
+ independentMeta?: IndependentMeta,
};
"#;
diff --git a/crates/wasm/src/utils.rs b/crates/wasm/src/utils.rs
index d0f5cfac..f6de2f19 100644
--- a/crates/wasm/src/utils.rs
+++ b/crates/wasm/src/utils.rs
@@ -72,7 +72,7 @@ macro_rules! js_import {
$($tt)*
}
} else {
- #[wasm_bindgen(module = "/src/include.js")]
+ #[wasm_bindgen(module = "/src/js/include.js")]
extern "C" {
$($tt)*
}
From 7c41ba2dd75ab6d6938913007e6c4006abb9b1d5 Mon Sep 17 00:00:00 2001
From: Cormac Relf
Date: Tue, 1 Dec 2020 23:19:50 +1100
Subject: [PATCH 12/22] Increase the wasm stack size to 8MB just because we can
Wasn't actually necessary to solve
https://github.com/cormacrelf/citeproc-rs/issues/78
But nevertheless.
---
crates/wasm/.cargo/config | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/crates/wasm/.cargo/config b/crates/wasm/.cargo/config
index 5951e892..93f928b2 100644
--- a/crates/wasm/.cargo/config
+++ b/crates/wasm/.cargo/config
@@ -3,3 +3,9 @@ opt-level = "z" # otherwise the wasm binaries are too big to load quickly
[profile.release]
debug = 1
+
+# hardening for https://github.com/cormacrelf/citeproc-rs/issues/78
+[target.wasm32-unknown-unknown]
+rustflags = [
+ "-C", "link-args=-z stack-size=8388608", # 8 * 1048576 B = 8 MB
+]
From d733168fde39c0780294ceaf27e09a9ac699f33b Mon Sep 17 00:00:00 2001
From: Cormac Relf
Date: Wed, 2 Dec 2020 02:09:43 +1100
Subject: [PATCH 13/22] Make include.js' Node.js/_cjs output valid CommonJS
---
crates/wasm/scripts/npm-pkg-config.sh | 10 ++++++++--
crates/wasm/src/js/{nomod.js => commonjs_export.js} | 0
2 files changed, 8 insertions(+), 2 deletions(-)
rename crates/wasm/src/js/{nomod.js => commonjs_export.js} (100%)
diff --git a/crates/wasm/scripts/npm-pkg-config.sh b/crates/wasm/scripts/npm-pkg-config.sh
index a5978390..431ea917 100755
--- a/crates/wasm/scripts/npm-pkg-config.sh
+++ b/crates/wasm/scripts/npm-pkg-config.sh
@@ -127,12 +127,18 @@ if (typeof Zotero !== "undefined" && typeof Zotero.CiteprocRs !== "undefined") {
}
EOF
+NODEJS_INCLUDE="$DEST/_cjs/citeproc_rs_wasm_include.js"
NOMOD_INCLUDE="$DEST/_no_modules/citeproc_rs_wasm_include.js"
ZOTERO_INCLUDE="$DEST/_zotero/citeproc_rs_wasm_include.js"
sed -e 's/export class/class/' < src/js/include.js \
- | tee "$ZOTERO_INCLUDE" > "$NOMOD_INCLUDE" \
+ | tee "$ZOTERO_INCLUDE" \
+ | tee "$NODEJS_INCLUDE" \
+ > "$NOMOD_INCLUDE" \
|| bail "could not write include.js for no-modules targets"
-cat src/js/nomod.js >> "$NOMOD_INCLUDE" || bail "failed writing $NOMOD_INCLUDE"
+# We want the commonjs module.exports in both of these
+cat src/js/commonjs_export.js >> "$NOMOD_INCLUDE" || bail "failed writing $NOMOD_INCLUDE"
+cat src/js/commonjs_export.js >> "$NODEJS_INCLUDE" || bail "failed writing $NODEJS_INCLUDE"
+# zotero is weird
cat src/js/zotero.js >> "$ZOTERO_INCLUDE" || bail "failed writing $ZOTERO_INCLUDE"
cp README.md $DEST/ || bail "could not copy README"
diff --git a/crates/wasm/src/js/nomod.js b/crates/wasm/src/js/commonjs_export.js
similarity index 100%
rename from crates/wasm/src/js/nomod.js
rename to crates/wasm/src/js/commonjs_export.js
From 1608279fad3ad7384ae92478c4fe8102b6ed8c7b Mon Sep 17 00:00:00 2001
From: Cormac Relf
Date: Wed, 2 Dec 2020 02:10:16 +1100
Subject: [PATCH 14/22] Update test suite to use .unwrap(), test
previewCitationCluster
---
crates/wasm/js-tests/index.test.ts | 76 ++++++++++++++++++++++++------
crates/wasm/js-tests/utils.ts | 18 +++----
2 files changed, 71 insertions(+), 23 deletions(-)
diff --git a/crates/wasm/js-tests/index.test.ts b/crates/wasm/js-tests/index.test.ts
index 8a8b4aac..6ff9f2e0 100644
--- a/crates/wasm/js-tests/index.test.ts
+++ b/crates/wasm/js-tests/index.test.ts
@@ -14,7 +14,7 @@ test('returns a single cluster, single cite, single ref', () => {
driver.insertReference({ id: "citekey", type: "book", title: "TEST_TITLE" });
driver.initClusters([{id: "one", cites: [{id: "citekey"}]}]);
driver.setClusterOrder([{ id: "one" }]);
- let res = driver.builtCluster("one");
+ let res = driver.builtCluster("one").unwrap();
expect(res).toBe("TEST_TITLE");
});
});
@@ -22,10 +22,10 @@ test('returns a single cluster, single cite, single ref', () => {
test('gets an update when ref changes', () => {
withDriver({}, driver => {
oneOneOne(driver);
- let updates = driver.batchedUpdates();
+ let updates = driver.batchedUpdates().unwrap();
expect(updates.clusters).toContainEqual(["one", "TEST_TITLE"]);
driver.insertReference({ id: "citekey", type: "book", title: "TEST_TITLE_2" });
- updates = driver.batchedUpdates();
+ updates = driver.batchedUpdates().unwrap();
expect(updates.clusters).toContainEqual(["one", "TEST_TITLE_2"]);
});
});
@@ -42,7 +42,7 @@ let bibStyle = mkStyle(
test('fullRender works', () => {
withDriver({style: bibStyle}, driver => {
oneOneOne(driver);
- let full = driver.fullRender();
+ let full = driver.fullRender().unwrap();
expect(full.allClusters).toHaveProperty("one", "TEST_TITLE");
expect(full.bibEntries).toContainEqual({ id: "citekey", value: "TEST_TITLE" });
})
@@ -53,45 +53,91 @@ test('update queue generally', () => {
let once: UpdateSummary, twice: UpdateSummary;
// Initially empty
- checkUpdatesLen(driver.batchedUpdates(), 0, 0);
+ checkUpdatesLen(driver.batchedUpdates().unwrap(), 0, 0);
// Add stuff, check it creates
oneOneOne(driver);
- checkUpdatesLen(driver.batchedUpdates(), 1, 1);
+ checkUpdatesLen(driver.batchedUpdates().unwrap(), 1, 1);
// Now fullRender one should drain the queue.
driver.fullRender();
- checkUpdatesLen(driver.batchedUpdates(), 0, 0);
+ checkUpdatesLen(driver.batchedUpdates().unwrap(), 0, 0);
// Edit a reference
oneOneOne(driver, { title: "ALTERED" });
- let up = driver.batchedUpdates();
+ let up = driver.batchedUpdates().unwrap();
checkUpdatesLen(up, 1, 1);
expect(up.bibliography?.entryIds).toEqual(null);
- expect(driver.builtCluster("one")).toBe("ALTERED");
+ expect(driver.builtCluster("one").unwrap()).toBe("ALTERED");
// Should have no updates, as we just called batchedUpdates.
- once = driver.batchedUpdates(); twice = driver.batchedUpdates();
+ once = driver.batchedUpdates().unwrap(); twice = driver.batchedUpdates().unwrap();
expect(once).toEqual(twice);
expect(once.bibliography).toBeFalsy();
checkUpdatesLen(once, 0, 0);
// Only inserting a reference does nothing
driver.insertReference({ id: "added", type: "book", title: "ADDED" });
- once = driver.batchedUpdates(); twice = driver.batchedUpdates();
+ once = driver.batchedUpdates().unwrap(); twice = driver.batchedUpdates().unwrap();
expect(once).toEqual(twice);
// Only inserting a cluster not in the document does nothing
- driver.insertCluster({ id: "123", cites: [{ id: "added" }] });
- once = driver.batchedUpdates(); twice = driver.batchedUpdates();
+ driver.insertCluster({ id: "123", cites: [{ id: "added" }] }).unwrap();
+ once = driver.batchedUpdates().unwrap(); twice = driver.batchedUpdates().unwrap();
expect(once).toEqual(twice); checkUpdatesLen(once, 0, 0);
// Add it to the document, and it's a different story
- driver.setClusterOrder([ {id:"one"},{id:"123"} ]);
- once = driver.batchedUpdates(); twice = driver.batchedUpdates();
+ driver.setClusterOrder([ {id:"one"},{id:"123"} ]).unwrap();
+ once = driver.batchedUpdates().unwrap(); twice = driver.batchedUpdates().unwrap();
expect(once).not.toEqual(twice); checkUpdatesLen(twice, 0, 0);
expect(once.clusters).toContainEqual(["123", "ADDED"]);
expect(once.bibliography?.entryIds).toEqual(["citekey", "added"]);
expect(once.bibliography?.updatedEntries).toHaveProperty("added", "ADDED");
})
+});
+
+let ibidStyle = mkStyle(
+ `
+
+
+
+
+
+
+
+
+ `,
+ ``,
+);
+
+// There are more extensive tests already in rust, so this is more of a smoke test.
+test("previewCitationCluster", () => {
+ withDriver({ style: ibidStyle }, driver => {
+ let one = "cluster-one";
+ let two = "cluster-two";
+ oneOneOne(driver, { title: "ONE", id: "r1" }, "cluster-one");
+ oneOneOne(driver, { title: "TWO", id: "r2" }, "cluster-two");
+ driver.setClusterOrder([{ id: one }, { id: two }]).unwrap();
+ // between the other two
+ let pcc = driver.previewCitationCluster(
+ [ { id: "r1" } ],
+ [{ id: one }, { }, { id: two }],
+ "plain"
+ ).unwrap();
+ expect(pcc).toEqual("ibid");
+ // replacing #1
+ pcc = driver.previewCitationCluster(
+ [ { id: "r1" } ],
+ [{ }, { id: two }],
+ "plain"
+ ).unwrap();
+ // replacing #1, with note numbers isntead
+ pcc = driver.previewCitationCluster(
+ [ { id: "r1" } ],
+ [{ note: 1, }, { id: two, note: 5 }],
+ "plain"
+ ).unwrap();
+ expect(pcc).toEqual("ONE");
+ })
})
+
diff --git a/crates/wasm/js-tests/utils.ts b/crates/wasm/js-tests/utils.ts
index 4e9665b3..47776023 100644
--- a/crates/wasm/js-tests/utils.ts
+++ b/crates/wasm/js-tests/utils.ts
@@ -44,22 +44,24 @@ export const boringFetcher = new Fetcher(
export const withDriver = (cfg: any, callback: (driver: Driver) => void) => {
let style = cfg.style || mkStyle('');
let fetcher = cfg.fetcher || boringFetcher;
- let fmt = cfg.format || "plain";
- let driver = Driver.new(style, fetcher, fmt);
+ let format = cfg.format || "plain";
+ let driver = Driver.new({ style, fetcher, format }).unwrap();
callback(driver);
driver.free();
};
-export const oneOneOne = (driver: Driver, r?: any) => {
+export const oneOneOne = (driver: Driver, r?: any, cid?: string) => {
let refr = {
type: "book",
title: "TEST_TITLE",
+ id: "citekey",
...r,
- id: "citekey"
- }
- driver.insertReference(refr);
- driver.insertCluster({id: "one", cites: [{id: "citekey"}]});
- driver.setClusterOrder([{ id: "one" }]);
+ };
+ let id = refr.id;
+ cid = cid || "one";
+ driver.insertReference(refr).unwrap();
+ driver.insertCluster({id: cid, cites: [{ id }]}).unwrap();
+ driver.setClusterOrder([{ id: cid }]).unwrap();
};
export const checkUpdatesLen = (up: UpdateSummary, clusterCount: number, bibCount: number) => {
From b51a2222a840cdf4f953ed25fbc7a1683451949e Mon Sep 17 00:00:00 2001
From: Cormac Relf
Date: Wed, 2 Dec 2020 02:12:02 +1100
Subject: [PATCH 15/22] Fix WasmResult typescript mismatch, hide implementation
detail from API
---
crates/wasm/src/js/include.js | 40 +++++++++++++++++++----------------
crates/wasm/src/lib.rs | 5 +++--
2 files changed, 25 insertions(+), 20 deletions(-)
diff --git a/crates/wasm/src/js/include.js b/crates/wasm/src/js/include.js
index 570ea77e..290f8a5f 100644
--- a/crates/wasm/src/js/include.js
+++ b/crates/wasm/src/js/include.js
@@ -6,41 +6,45 @@ export class WasmResult {
this.Ok = value;
}
}
- is_some() {
- if (this.hasOwnProperty("Err")) {
- return false;
- }
- return true;
+ is_err() {
+ return this.hasOwnProperty("Err");
}
- is_none() {
- return !this.is_some();
+ is_ok() {
+ return !this.is_err();
}
unwrap() {
- if (this.hasOwnProperty("Err")) {
+ if (this.is_ok()) {
+ return this.Ok;
+ } else {
throw this.Err;
+ }
+ }
+ unwrap_err() {
+ if (this.is_ok()) {
+ throw new Error("Called unwrap_err on an Ok value");
} else {
- return this.Ok
+ return this.Err;
}
}
unwrap_or(otherwise) {
- if (this.hasOwnProperty("Err")) {
- return otherwise;
- } else {
+ if (this.is_ok()) {
return this.Ok;
+ } else {
+ return otherwise;
}
}
map(func) {
- if (this.hasOwnProperty("Err")) {
- return this;
- } else {
+ if (this.is_ok()) {
return new WasmResult(func(this.Ok));
+ } else {
+ return this;
}
}
map_or(otherwise, func) {
- if (this.hasOwnProperty("Err")) {
- return otherwise;
- } else {
+ if (this.is_ok()) {
return func(this.Ok);
+ } else {
+ return otherwise;
}
}
}
diff --git a/crates/wasm/src/lib.rs b/crates/wasm/src/lib.rs
index 560cccfb..c4705f98 100644
--- a/crates/wasm/src/lib.rs
+++ b/crates/wasm/src/lib.rs
@@ -640,9 +640,11 @@ js_import_class_constructor! {
#[wasm_bindgen(typescript_custom_section)]
const TS_APPEND_CONTENT_5: &'static str = r#"
-interface IWasmResult {
+interface WasmResult {
/** If this is an error, throws the error. */
unwrap(): T;
+ /** If this is an error, returns it, else throws. */
+ unwrap_err(): Error;
is_ok(): boolean;
is_err(): boolean;
/** If this is an error, returns the default value. */
@@ -652,7 +654,6 @@ interface IWasmResult {
/** If this is Ok, returns f(ok_val), else returns the default value. */
map_or(default: R, f: (t: T) => R): R;
}
-type WasmResult = ({ Ok: T } | { Err: Error }) & IWasmResult;
"#;
#[wasm_bindgen(typescript_custom_section)]
From 8958363f59be9ad4781f119e08620a4991ca6e3f Mon Sep 17 00:00:00 2001
From: Cormac Relf
Date: Wed, 2 Dec 2020 02:44:21 +1100
Subject: [PATCH 16/22] wasm docs: WasmResult, parseStyleMetadata, _include.js,
Zotero
---
crates/wasm/README.md | 249 +++++++++++++++++++++-----
crates/wasm/js-demo/js/useDocument.ts | 8 +-
crates/wasm/src/lib.rs | 1 +
3 files changed, 206 insertions(+), 52 deletions(-)
diff --git a/crates/wasm/README.md b/crates/wasm/README.md
index c7a9d16a..eca32f9f 100644
--- a/crates/wasm/README.md
+++ b/crates/wasm/README.md
@@ -46,6 +46,12 @@ import.
const { Driver } = require("@citeproc-rs/wasm");
```
+##### Microsoft Edge
+
+Note the caveats in around Microsoft Edge's TextEncoder/TextDecoder support in
+[the wasm-bindgen
+tutorial](https://rustwasm.github.io/docs/wasm-bindgen/examples/hello-world.html).
+
#### Using Webpack
When loading on the web, for technical reasons and because the compiled
@@ -72,16 +78,27 @@ the whole process very quick.
You can use the regular-import Driver as a TypeScript type anywhere, just don't
use it to call `.new()`.
-Note the caveats in around Microsoft Edge's TextEncoder/TextDecoder support in
-[the wasm-bindgen
-tutorial](https://rustwasm.github.io/docs/wasm-bindgen/examples/hello-world.html).
+##### React
+
+If you're writing a React app, you may wish to use `React.lazy` like so:
```typescript
+// App.tsx
+import React, { Suspense } from "react";
+const AsyncCiteprocEnabledComponent = React.lazy(async () => {
+ await import("@citeproc-rs/wasm");
+ return await import("./CiteprocEnabledComponent");
+});
+const App = () => (
+ Loading citation formatting engine...
}>
+
+
+);
+
+// CiteprocEnabledComponent
import { Driver } from "@citeproc-rs/wasm";
-
-function doSomethingWithDriver(driver: Driver) {
- // ...
-}
+// ...
```
#### Importing it in a script tag (`web` target)
@@ -104,13 +121,20 @@ modules support, the procedure is different. You must:
```
+**Careful**: This method does not ensure the package is loaded only once. If
+you call init again, it will invalidate any previous Drivers you created.
+
#### Importing it in a script tag (`no-modules` target)
-This replicates the [wasm-bindgen guide
+This is *based on* the [wasm-bindgen guide
entry](https://rustwasm.github.io/docs/wasm-bindgen/examples/without-a-bundler.html?highlight=no-modules#using-the-older---target-no-modules),
noting the caveats. You will, similarly to the `web` target, need to make the
contents of the `_no_modules` subdirectory of the published NPM package
-available on a webserver or via a CDN.
+available on a webserver or via a CDN. But it has **ONE ADDITIONAL FILE** to
+import via a script tag.
+
+**Careful**: This method does not ensure the package is loaded only once. If
+you call init again, it will invalidate any previous Drivers you created.
```
@@ -118,7 +142,8 @@ available on a webserver or via a CDN.
-
+
+