From c57e5448b7228f14e7a5ee76549e3be2567dffb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonatan=20K=C5=82osko?= Date: Mon, 17 Jan 2022 13:24:59 +0100 Subject: [PATCH] Remove old output formats (#876) * Remove old outputs * Remove other occurrences --- assets/js/app.js | 2 - assets/js/vega_lite/index.js | 114 -- assets/js/vega_lite/vega.js | 4 - assets/package-lock.json | 1323 +---------------- assets/package.json | 6 +- lib/livebook/live_markdown/export.ex | 4 - lib/livebook/live_markdown/import.ex | 10 - lib/livebook/notebook/cell/elixir.ex | 8 - .../distributed_portals_with_elixir.livemd | 2 +- .../explore/elixir_and_livebook.livemd | 2 +- .../explore/intro_to_vega_lite.livemd | 2 +- .../explore/kino/intro_to_kino.livemd | 2 +- .../notebook/explore/kino/pong.livemd | 2 +- .../notebook/explore/vm_introspection.livemd | 2 +- lib/livebook_web/live/output.ex | 77 +- .../live/output/frame_dynamic_live.ex | 59 - .../live/output/table_dynamic_live.ex | 203 --- .../live/output/vega_lite_dynamic_live.ex | 34 - .../live/output/vega_lite_static_component.ex | 17 - test/livebook/live_markdown/export_test.exs | 9 +- test/livebook/live_markdown/import_test.exs | 101 -- test/livebook_web/live/session_live_test.exs | 25 - 22 files changed, 94 insertions(+), 1914 deletions(-) delete mode 100644 assets/js/vega_lite/index.js delete mode 100644 assets/js/vega_lite/vega.js delete mode 100644 lib/livebook_web/live/output/frame_dynamic_live.ex delete mode 100644 lib/livebook_web/live/output/table_dynamic_live.ex delete mode 100644 lib/livebook_web/live/output/vega_lite_dynamic_live.ex delete mode 100644 lib/livebook_web/live/output/vega_lite_static_component.ex diff --git a/assets/js/app.js b/assets/js/app.js index 96c19c17e..a2cbb99a7 100644 --- a/assets/js/app.js +++ b/assets/js/app.js @@ -19,7 +19,6 @@ import ScrollOnUpdate from "./scroll_on_update"; import VirtualizedLines from "./virtualized_lines"; import UserForm from "./user_form"; import EditorSettings from "./editor_settings"; -import VegaLite from "./vega_lite"; import Timer from "./timer"; import MarkdownRenderer from "./markdown_renderer"; import Highlight from "./highlight"; @@ -40,7 +39,6 @@ const hooks = { VirtualizedLines, UserForm, EditorSettings, - VegaLite, Timer, MarkdownRenderer, Highlight, diff --git a/assets/js/vega_lite/index.js b/assets/js/vega_lite/index.js deleted file mode 100644 index 727c00719..000000000 --- a/assets/js/vega_lite/index.js +++ /dev/null @@ -1,114 +0,0 @@ -import { getAttributeOrThrow } from "../lib/attribute"; -import { throttle } from "../lib/utils"; - -/** - * Dynamically imports the vega-related modules. - */ -function importVega() { - return import( - /* webpackChunkName: "vega" */ - "./vega" - ); -} - -// See https://github.com/vega/vega-lite/blob/b61b13c2cbd4ecde0448544aff6cdaea721fd22a/src/compile/data/assemble.ts#L228-L231 -const DEFAULT_DATASET_NAME = "source_0"; - -/** - * A hook used to render graphics according to the given - * Vega-Lite specification. - * - * The hook expects a `vega_lite::init` event with `{ spec }` payload, - * where `spec` is the graphic definition as an object. - * - * Later `vega_lite::push` events may be sent with `{ data, dataset, window }` payload, - * to dynamically update the underlying data. - * - * Configuration: - * - * * `data-id` - plot id - * - */ -const VegaLite = { - mounted() { - this.props = getProps(this); - this.state = { - container: null, - viewPromise: null, - }; - - this.state.container = document.createElement("div"); - this.el.appendChild(this.state.container); - - this.handleEvent(`vega_lite:${this.props.id}:init`, ({ spec }) => { - if (!spec.data) { - spec.data = { values: [] }; - } - - this.state.viewPromise = importVega() - .then(({ vegaEmbed }) => { - return vegaEmbed(this.state.container, spec, {}); - }) - .then((result) => result.view) - .catch((error) => { - const message = `Failed to render the given Vega-Lite specification, got the following error:\n\n ${error.message}\n\nMake sure to check for typos.`; - - this.state.container.innerHTML = ` -
${message}
- `; - }); - }); - - const throttledResize = throttle((view) => view.resize(), 1_000); - - this.handleEvent( - `vega_lite:${this.props.id}:push`, - ({ data, dataset, window }) => { - dataset = dataset || DEFAULT_DATASET_NAME; - - this.state.viewPromise.then((view) => { - const currentData = view.data(dataset); - buildChangeset(currentData, data, window).then((changeset) => { - // Schedule resize after the run finishes - throttledResize(view); - view.change(dataset, changeset).run(); - }); - }); - } - ); - }, - - updated() { - this.props = getProps(this); - }, - - destroyed() { - if (this.state.viewPromise) { - this.state.viewPromise.then((view) => view.finalize()); - } - }, -}; - -function getProps(hook) { - return { - id: getAttributeOrThrow(hook.el, "data-id"), - }; -} - -function buildChangeset(currentData, newData, window) { - return importVega().then(({ vega }) => { - if (window === 0) { - return vega.changeset().remove(currentData); - } else if (window) { - const toInsert = newData.slice(-window); - const freeSpace = Math.max(window - toInsert.length, 0); - const toRemove = currentData.slice(0, -freeSpace); - - return vega.changeset().remove(toRemove).insert(toInsert); - } else { - return vega.changeset().insert(newData); - } - }); -} - -export default VegaLite; diff --git a/assets/js/vega_lite/vega.js b/assets/js/vega_lite/vega.js deleted file mode 100644 index d37712ca4..000000000 --- a/assets/js/vega_lite/vega.js +++ /dev/null @@ -1,4 +0,0 @@ -import * as vega from "vega"; -import vegaEmbed from "vega-embed"; - -export { vega, vegaEmbed }; diff --git a/assets/package-lock.json b/assets/package-lock.json index b159516ea..0b8fc57ca 100644 --- a/assets/package-lock.json +++ b/assets/package-lock.json @@ -4,7 +4,6 @@ "requires": true, "packages": { "": { - "license": "MIT", "dependencies": { "@fontsource/inter": "^4.2.2", "@fontsource/jetbrains-mono": "^4.2.2", @@ -34,10 +33,7 @@ "topbar": "^1.0.1", "unified": "^10.1.0", "unist-util-remove-position": "^4.0.1", - "unist-util-visit": "^4.0.0", - "vega": "^5.20.2", - "vega-embed": "^6.18.1", - "vega-lite": "^5.1.0" + "unist-util-visit": "^4.0.0" }, "devDependencies": { "@babel/core": "^7.14.0", @@ -2441,11 +2437,6 @@ "@babel/types": "^7.3.0" } }, - "node_modules/@types/clone": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@types/clone/-/clone-2.1.1.tgz", - "integrity": "sha512-BZIU34bSYye0j/BFcPraiDZ5ka6MJADjcDVELGf7glr9K+iE8NYVjFslJFVWzskSxkLLyCrSPScE82/UUoBSvg==" - }, "node_modules/@types/debug": { "version": "4.1.7", "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", @@ -2477,7 +2468,8 @@ "node_modules/@types/estree": { "version": "0.0.50", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", - "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==" + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", + "dev": true }, "node_modules/@types/graceful-fs": { "version": "4.1.5", @@ -2970,6 +2962,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "engines": { "node": ">=8" } @@ -3011,14 +3004,6 @@ "sprintf-js": "~1.0.2" } }, - "node_modules/array-flat-polyfill": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-flat-polyfill/-/array-flat-polyfill-1.0.1.tgz", - "integrity": "sha512-hfJmKupmQN0lwi0xG6FQ5U8Rd97RnIERplymOv/qpq8AoNKPPAnxJadjFA23FNWm88wykh9HmpLJUUwUtNU/iw==", - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/assert": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz", @@ -3621,20 +3606,13 @@ "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" } }, - "node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "engines": { - "node": ">=0.8" - } - }, "node_modules/clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", @@ -4230,14 +4208,6 @@ "node": ">=12" } }, - "node_modules/d3-delaunay": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-5.3.0.tgz", - "integrity": "sha512-amALSrOllWVLaHTnDLHwMIiz0d1bBu9gZXd1FiLfXf8sHcX9jrcj81TVZOqD4UX7MgBZZ07c8GxzEgBpJqc74w==", - "dependencies": { - "delaunator": "4" - } - }, "node_modules/d3-dispatch": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz", @@ -4300,57 +4270,6 @@ "node": ">=12" } }, - "node_modules/d3-force": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-2.1.1.tgz", - "integrity": "sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==", - "dependencies": { - "d3-dispatch": "1 - 2", - "d3-quadtree": "1 - 2", - "d3-timer": "1 - 2" - } - }, - "node_modules/d3-format": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz", - "integrity": "sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==" - }, - "node_modules/d3-geo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-2.0.2.tgz", - "integrity": "sha512-8pM1WGMLGFuhq9S+FpPURxic+gKzjluCD/CHTuUF3mXMeiCo0i6R0tO1s4+GArRFde96SLcW/kOFRjoAosPsFA==", - "dependencies": { - "d3-array": "^2.5.0" - } - }, - "node_modules/d3-geo-projection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-3.0.0.tgz", - "integrity": "sha512-1JE+filVbkEX2bT25dJdQ05iA4QHvUwev6o0nIQHOSrNlHCAKfVss/U10vEM3pA4j5v7uQoFdQ4KLbx9BlEbWA==", - "dependencies": { - "commander": "2", - "d3-array": "1 - 2", - "d3-geo": "1.12.0 - 2", - "resolve": "^1.1.10" - }, - "bin": { - "geo2svg": "bin/geo2svg", - "geograticule": "bin/geograticule", - "geoproject": "bin/geoproject", - "geoquantize": "bin/geoquantize", - "geostitch": "bin/geostitch" - } - }, - "node_modules/d3-geo-projection/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "node_modules/d3-hierarchy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-2.0.0.tgz", - "integrity": "sha512-SwIdqM3HxQX2214EG9GTjgmCc/mbSx4mQBn+DuEETubhOw6/U3fmnji4uCVrmzOydMHSO1nZle5gh6HB/wdOzw==" - }, "node_modules/d3-interpolate": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", @@ -4372,11 +4291,6 @@ "node": ">=12" } }, - "node_modules/d3-quadtree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-2.0.0.tgz", - "integrity": "sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==" - }, "node_modules/d3-random": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", @@ -4385,18 +4299,6 @@ "node": ">=12" } }, - "node_modules/d3-scale": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz", - "integrity": "sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==", - "dependencies": { - "d3-array": "^2.3.0", - "d3-format": "1 - 2", - "d3-interpolate": "1.2.0 - 2", - "d3-time": "^2.1.1", - "d3-time-format": "2 - 3" - } - }, "node_modules/d3-scale-chromatic": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz", @@ -4417,30 +4319,6 @@ "node": ">=12" } }, - "node_modules/d3-shape": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-2.1.0.tgz", - "integrity": "sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA==", - "dependencies": { - "d3-path": "1 - 2" - } - }, - "node_modules/d3-time": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-2.1.1.tgz", - "integrity": "sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ==", - "dependencies": { - "d3-array": "2" - } - }, - "node_modules/d3-time-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz", - "integrity": "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==", - "dependencies": { - "d3-time": "1 - 2" - } - }, "node_modules/d3-timer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-2.0.0.tgz", @@ -5071,11 +4949,6 @@ "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" }, - "node_modules/delaunator": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz", - "integrity": "sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag==" - }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -5256,7 +5129,8 @@ "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true }, "node_modules/emojis-list": { "version": "3.0.0", @@ -5560,7 +5434,8 @@ "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true }, "node_modules/fast-glob": { "version": "3.2.7", @@ -5588,15 +5463,11 @@ "node": ">= 6" } }, - "node_modules/fast-json-patch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-3.1.0.tgz", - "integrity": "sha512-IhpytlsVTRndz0hU5t0/MGzS/etxLlfrpG5V5M9mVbuj9TrJLWaMfsox9REM5rkuGX0T+5qjpe8XA1o0gZ42nA==" - }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true }, "node_modules/fast-levenshtein": { "version": "2.0.6", @@ -5735,6 +5606,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, "engines": { "node": "6.* || 8.* || >= 10.*" } @@ -6456,6 +6328,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, "engines": { "node": ">=8" } @@ -8565,11 +8438,6 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, - "node_modules/json-stringify-pretty-compact": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-3.0.0.tgz", - "integrity": "sha512-Rc2suX5meI0S3bfdZuA7JMFBGkJ875ApfVyq2WHELjBiiG22My/l7/8zPpH/CfFVQHuVLd8NLR0nv6vi0BYYKA==" - }, "node_modules/json5": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", @@ -8759,6 +8627,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, "dependencies": { "yallist": "^4.0.0" }, @@ -9850,36 +9719,6 @@ "tslib": "^2.0.3" } }, - "node_modules/node-fetch": { - "version": "2.6.6", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz", - "integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - } - }, - "node_modules/node-fetch/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "node_modules/node-fetch/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "node_modules/node-fetch/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -11248,6 +11087,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -11596,6 +11436,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -11646,6 +11487,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -12078,24 +11920,6 @@ "resolved": "https://registry.npmjs.org/topbar/-/topbar-1.0.1.tgz", "integrity": "sha512-HZqQSMBiG29vcjOrqKCM9iGY/h69G5gQH7ae83ZCPz5uPmbQKwK0sMEqzVDBiu64tWHJ+kk9NApECrF+FAAvRA==" }, - "node_modules/topojson-client": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", - "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", - "dependencies": { - "commander": "2" - }, - "bin": { - "topo2geo": "bin/topo2geo", - "topomerge": "bin/topomerge", - "topoquantize": "bin/topoquantize" - } - }, - "node_modules/topojson-client/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, "node_modules/totalist": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/totalist/-/totalist-2.0.0.tgz", @@ -12151,7 +11975,8 @@ "node_modules/tslib": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true }, "node_modules/type-check": { "version": "0.3.2", @@ -12460,462 +12285,6 @@ "node": ">= 8" } }, - "node_modules/vega": { - "version": "5.21.0", - "resolved": "https://registry.npmjs.org/vega/-/vega-5.21.0.tgz", - "integrity": "sha512-yqqRa9nAqYoAxe7sVhRpsh0b001fly7Yx05klPkXmrvzjxXd07gClW1mOuGgSnVQqo7jTp/LYgbO1bD37FbEig==", - "dependencies": { - "vega-crossfilter": "~4.0.5", - "vega-dataflow": "~5.7.4", - "vega-encode": "~4.8.3", - "vega-event-selector": "~3.0.0", - "vega-expression": "~5.0.0", - "vega-force": "~4.0.7", - "vega-format": "~1.0.4", - "vega-functions": "~5.12.1", - "vega-geo": "~4.3.8", - "vega-hierarchy": "~4.0.9", - "vega-label": "~1.1.0", - "vega-loader": "~4.4.1", - "vega-parser": "~6.1.4", - "vega-projection": "~1.4.5", - "vega-regression": "~1.0.9", - "vega-runtime": "~6.1.3", - "vega-scale": "~7.1.1", - "vega-scenegraph": "~4.9.4", - "vega-statistics": "~1.7.10", - "vega-time": "~2.0.4", - "vega-transforms": "~4.9.4", - "vega-typings": "~0.22.0", - "vega-util": "~1.17.0", - "vega-view": "~5.10.1", - "vega-view-transforms": "~4.5.8", - "vega-voronoi": "~4.1.5", - "vega-wordcloud": "~4.1.3" - } - }, - "node_modules/vega-canvas": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/vega-canvas/-/vega-canvas-1.2.6.tgz", - "integrity": "sha512-rgeYUpslYn/amIfnuv3Sw6n4BGns94OjjZNtUc9IDji6b+K8LGS/kW+Lvay8JX/oFqtulBp8RLcHN6QjqPLA9Q==" - }, - "node_modules/vega-crossfilter": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.0.5.tgz", - "integrity": "sha512-yF+iyGP+ZxU7Tcj5yBsMfoUHTCebTALTXIkBNA99RKdaIHp1E690UaGVLZe6xde2n5WaYpho6I/I6wdAW3NXcg==", - "dependencies": { - "d3-array": "^2.7.1", - "vega-dataflow": "^5.7.3", - "vega-util": "^1.15.2" - } - }, - "node_modules/vega-dataflow": { - "version": "5.7.4", - "resolved": "https://registry.npmjs.org/vega-dataflow/-/vega-dataflow-5.7.4.tgz", - "integrity": "sha512-JGHTpUo8XGETH3b1V892we6hdjzCWB977ybycIu8DPqRoyrZuj6t1fCVImazfMgQD1LAfJlQybWP+alwKDpKig==", - "dependencies": { - "vega-format": "^1.0.4", - "vega-loader": "^4.3.2", - "vega-util": "^1.16.1" - } - }, - "node_modules/vega-embed": { - "version": "6.20.5", - "resolved": "https://registry.npmjs.org/vega-embed/-/vega-embed-6.20.5.tgz", - "integrity": "sha512-WmKzYPVUw6x+I2ucoeHySoWWqWO/oBvBGiDq+79hN1vvHc0g7QkDtRpfndSxkDWoagSTkuYTXSb9r1THrj/kfw==", - "bundleDependencies": [ - "yallist" - ], - "dependencies": { - "fast-json-patch": "^3.1.0", - "json-stringify-pretty-compact": "^3.0.0", - "semver": "^7.3.5", - "tslib": "^2.3.1", - "vega-interpreter": "^1.0.4", - "vega-schema-url-parser": "^2.2.0", - "vega-themes": "^2.10.0", - "vega-tooltip": "^0.27.0" - }, - "peerDependencies": { - "vega": "^5.21.0", - "vega-lite": "*" - } - }, - "node_modules/vega-embed/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/vega-embed/node_modules/yallist": { - "version": "4.0.0", - "extraneous": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/vega-encode": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.8.3.tgz", - "integrity": "sha512-JoRYtaV2Hs8spWLzTu/IjR7J9jqRmuIOEicAaWj6T9NSZrNWQzu2zF3IVsX85WnrIDIRUDaehXaFZvy9uv9RQg==", - "dependencies": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", - "vega-dataflow": "^5.7.3", - "vega-scale": "^7.0.3", - "vega-util": "^1.15.2" - } - }, - "node_modules/vega-event-selector": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", - "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==" - }, - "node_modules/vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "dependencies": { - "@types/estree": "^0.0.50", - "vega-util": "^1.16.0" - } - }, - "node_modules/vega-force": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.0.7.tgz", - "integrity": "sha512-pyLKdwXSZ9C1dVIqdJOobvBY29rLvZjvRRTla9BU/nMwAiAGlGi6WKUFdRGdneyGe3zo2nSZDTZlZM/Z5VaQNA==", - "dependencies": { - "d3-force": "^2.1.1", - "vega-dataflow": "^5.7.3", - "vega-util": "^1.15.2" - } - }, - "node_modules/vega-format": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.0.4.tgz", - "integrity": "sha512-oTAeub3KWm6nKhXoYCx1q9G3K43R6/pDMXvqDlTSUtjoY7b/Gixm8iLcir5S9bPjvH40n4AcbZsPmNfL/Up77A==", - "dependencies": { - "d3-array": "^2.7.1", - "d3-format": "^2.0.0", - "d3-time-format": "^3.0.0", - "vega-time": "^2.0.3", - "vega-util": "^1.15.2" - } - }, - "node_modules/vega-functions": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.12.1.tgz", - "integrity": "sha512-7cHfcjXOj27qEbh2FTzWDl7FJK4xGcMFF7+oiyqa0fp7BU/wNT5YdNV0t5kCX9WjV7mfJWACKV74usLJbyM6GA==", - "dependencies": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", - "vega-dataflow": "^5.7.3", - "vega-expression": "^5.0.0", - "vega-scale": "^7.1.1", - "vega-scenegraph": "^4.9.3", - "vega-selections": "^5.3.1", - "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", - "vega-util": "^1.16.0" - } - }, - "node_modules/vega-geo": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.3.8.tgz", - "integrity": "sha512-fsGxV96Q/QRgPqOPtMBZdI+DneIiROKTG3YDZvGn0EdV16OG5LzFhbNgLT5GPzI+kTwgLpAsucBHklexlB4kfg==", - "dependencies": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", - "vega-canvas": "^1.2.5", - "vega-dataflow": "^5.7.3", - "vega-projection": "^1.4.5", - "vega-statistics": "^1.7.9", - "vega-util": "^1.15.2" - } - }, - "node_modules/vega-hierarchy": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.0.9.tgz", - "integrity": "sha512-4XaWK6V38/QOZ+vllKKTafiwL25m8Kd+ebHmDV+Q236ONHmqc/gv82wwn9nBeXPEfPv4FyJw2SRoqa2Jol6fug==", - "dependencies": { - "d3-hierarchy": "^2.0.0", - "vega-dataflow": "^5.7.3", - "vega-util": "^1.15.2" - } - }, - "node_modules/vega-interpreter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vega-interpreter/-/vega-interpreter-1.0.4.tgz", - "integrity": "sha512-6tpYIa/pJz0cZo5fSxDSkZkAA51pID2LjOtQkOQvbzn+sJiCaWKPFhur8MBqbcmYZ9bnap1OYNwlrvpd2qBLvg==" - }, - "node_modules/vega-label": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.1.0.tgz", - "integrity": "sha512-LAThIiDEsZxYvbSkvPLJ93eJF+Ts8RXv1IpBh8gmew8XGmaLJvVkzdsMe7WJJwuaVEsK7ZZFyB/Inkp842GW6w==", - "dependencies": { - "vega-canvas": "^1.2.5", - "vega-dataflow": "^5.7.3", - "vega-scenegraph": "^4.9.2", - "vega-util": "^1.15.2" - } - }, - "node_modules/vega-lite": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/vega-lite/-/vega-lite-5.2.0.tgz", - "integrity": "sha512-Yxcg8MvYfxHcG6BbkaKT0oVCIMIcE19UvqIsEwBmyd/7h2nzW7oRnID81T8UrY7hpDrIr6wa2JADOT2dhGNErw==", - "dependencies": { - "@types/clone": "~2.1.1", - "array-flat-polyfill": "^1.0.1", - "clone": "~2.1.2", - "fast-deep-equal": "~3.1.3", - "fast-json-stable-stringify": "~2.1.0", - "json-stringify-pretty-compact": "~3.0.0", - "tslib": "~2.3.1", - "vega-event-selector": "~3.0.0", - "vega-expression": "~5.0.0", - "vega-util": "~1.17.0", - "yargs": "~17.2.1" - }, - "bin": { - "vl2pdf": "bin/vl2pdf", - "vl2png": "bin/vl2png", - "vl2svg": "bin/vl2svg", - "vl2vg": "bin/vl2vg" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "vega": "^5.21.0" - } - }, - "node_modules/vega-lite/node_modules/yargs": { - "version": "17.2.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.2.1.tgz", - "integrity": "sha512-XfR8du6ua4K6uLGm5S6fA+FIJom/MdJcFNVY8geLlp2v8GYbOXD4EB1tPNZsRn4vBzKGMgb5DRZMeWuFc2GO8Q==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/vega-loader": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.4.1.tgz", - "integrity": "sha512-dj65i4qlNhK0mOmjuchHgUrF5YUaWrYpx0A8kXA68lBk5Hkx8FNRztkcl07CZJ1+8V81ymEyJii9jzGbhEX0ag==", - "dependencies": { - "d3-dsv": "^2.0.0", - "node-fetch": "^2.6.1", - "topojson-client": "^3.1.0", - "vega-format": "^1.0.4", - "vega-util": "^1.16.0" - } - }, - "node_modules/vega-parser": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/vega-parser/-/vega-parser-6.1.4.tgz", - "integrity": "sha512-tORdpWXiH/kkXcpNdbSVEvtaxBuuDtgYp9rBunVW9oLsjFvFXbSWlM1wvJ9ZFSaTfx6CqyTyGMiJemmr1QnTjQ==", - "dependencies": { - "vega-dataflow": "^5.7.3", - "vega-event-selector": "^3.0.0", - "vega-functions": "^5.12.1", - "vega-scale": "^7.1.1", - "vega-util": "^1.16.0" - } - }, - "node_modules/vega-projection": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.4.5.tgz", - "integrity": "sha512-85kWcPv0zrrNfxescqHtSYpRknilrS0K3CVRZc7IYQxnLtL1oma9WEbrSr1LCmDoCP5hl2Z1kKbomPXkrQX5Ag==", - "dependencies": { - "d3-geo": "^2.0.1", - "d3-geo-projection": "^3.0.0" - } - }, - "node_modules/vega-regression": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.0.9.tgz", - "integrity": "sha512-KSr3QbCF0vJEAWFVY2MA9X786oiJncTTr3gqRMPoaLr/Yo3f7OPKXRoUcw36RiWa0WCOEMgTYtM28iK6ZuSgaA==", - "dependencies": { - "d3-array": "^2.7.1", - "vega-dataflow": "^5.7.3", - "vega-statistics": "^1.7.9", - "vega-util": "^1.15.2" - } - }, - "node_modules/vega-runtime": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/vega-runtime/-/vega-runtime-6.1.3.tgz", - "integrity": "sha512-gE+sO2IfxMUpV0RkFeQVnHdmPy3K7LjHakISZgUGsDI/ZFs9y+HhBf8KTGSL5pcZPtQsZh3GBQ0UonqL1mp9PA==", - "dependencies": { - "vega-dataflow": "^5.7.3", - "vega-util": "^1.15.2" - } - }, - "node_modules/vega-scale": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.1.1.tgz", - "integrity": "sha512-yE0to0prA9E5PBJ/XP77TO0BMkzyUVyt7TH5PAwj+CZT7PMsMO6ozihelRhoIiVcP0Ae/ByCEQBUQkzN5zJ0ZA==", - "dependencies": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", - "d3-scale": "^3.2.2", - "vega-time": "^2.0.4", - "vega-util": "^1.15.2" - } - }, - "node_modules/vega-scenegraph": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.9.4.tgz", - "integrity": "sha512-QaegQzbFE2yhYLNWAmHwAuguW3yTtQrmwvfxYT8tk0g+KKodrQ5WSmNrphWXhqwtsgVSvtdZkfp2IPeumcOQJg==", - "dependencies": { - "d3-path": "^2.0.0", - "d3-shape": "^2.0.0", - "vega-canvas": "^1.2.5", - "vega-loader": "^4.3.3", - "vega-scale": "^7.1.1", - "vega-util": "^1.15.2" - } - }, - "node_modules/vega-schema-url-parser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/vega-schema-url-parser/-/vega-schema-url-parser-2.2.0.tgz", - "integrity": "sha512-yAtdBnfYOhECv9YC70H2gEiqfIbVkq09aaE4y/9V/ovEFmH9gPKaEgzIZqgT7PSPQjKhsNkb6jk6XvSoboxOBw==" - }, - "node_modules/vega-selections": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/vega-selections/-/vega-selections-5.3.1.tgz", - "integrity": "sha512-cm4Srw1WHjcLGXX7GpxiUlfESv8XPu5b6Vh3mqMDPU94P2FO91SR9gei+EtRdt+KCFgIjr//MnRUjg/hAWwjkQ==", - "dependencies": { - "vega-expression": "^5.0.0", - "vega-util": "^1.16.0" - } - }, - "node_modules/vega-statistics": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.7.10.tgz", - "integrity": "sha512-QLb12gcfpDZ9K5h3TLGrlz4UXDH9wSPyg9LLfOJZacxvvJEPohacUQNrGEAVtFO9ccUCerRfH9cs25ZtHsOZrw==", - "dependencies": { - "d3-array": "^2.7.1" - } - }, - "node_modules/vega-themes": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/vega-themes/-/vega-themes-2.10.0.tgz", - "integrity": "sha512-prePRUKFUFGWniuZsJOfkdb+27Gwrrm82yAlVuU+912kcknsx1DVmMSg2yF79f4jdtqnAFIGycZgxoj13SEIuQ==", - "peerDependencies": { - "vega": "*", - "vega-lite": "*" - } - }, - "node_modules/vega-time": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.0.4.tgz", - "integrity": "sha512-U314UDR9+ZlWrD3KBaeH+j/c2WSMdvcZq5yJfFT0yTg1jsBKAQBYFGvl+orackD8Zx3FveHOxx3XAObaQeDX+Q==", - "dependencies": { - "d3-array": "^2.7.1", - "d3-time": "^2.0.0", - "vega-util": "^1.15.2" - } - }, - "node_modules/vega-tooltip": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/vega-tooltip/-/vega-tooltip-0.27.0.tgz", - "integrity": "sha512-FRcHNfMNo9D/7an5nZuP6JC2JGEsc85qcGjyMU7VlPpjQj9eBj1P+sZSNbb54Z20g7inVSBRyd8qgNn5EYTxJA==", - "dependencies": { - "vega-util": "^1.16.0" - } - }, - "node_modules/vega-transforms": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.9.4.tgz", - "integrity": "sha512-JGBhm5Bf6fiGTUSB5Qr5ckw/KU9FJcSV5xIe/y4IobM/i/KNwI1i1fP45LzP4F4yZc0DMTwJod2UvFHGk9plKA==", - "dependencies": { - "d3-array": "^2.7.1", - "vega-dataflow": "^5.7.4", - "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", - "vega-util": "^1.16.1" - } - }, - "node_modules/vega-typings": { - "version": "0.22.1", - "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.22.1.tgz", - "integrity": "sha512-88cIrjmoTxo/0nWTf+GuitkFhirHWVWCfymADiCUXt6s9arpQ6XPP5xjrN5KDc0LZd9xr7p4FIiEgADghgLTgw==", - "dependencies": { - "vega-event-selector": "^3.0.0", - "vega-expression": "^5.0.0", - "vega-util": "^1.15.2" - } - }, - "node_modules/vega-util": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.17.0.tgz", - "integrity": "sha512-HTaydZd9De3yf+8jH66zL4dXJ1d1p5OIFyoBzFiOli4IJbwkL1jrefCKz6AHDm1kYBzDJ0X4bN+CzZSCTvNk1w==" - }, - "node_modules/vega-view": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.10.1.tgz", - "integrity": "sha512-4xvQ5KZcgKdZx1Z7jjenCUumvlyr/j4XcHLRf9gyeFrFvvS596dVpL92V8twhV6O++DmS2+fj+rHagO8Di4nMg==", - "dependencies": { - "d3-array": "^2.7.1", - "d3-timer": "^2.0.0", - "vega-dataflow": "^5.7.3", - "vega-format": "^1.0.4", - "vega-functions": "^5.10.0", - "vega-runtime": "^6.1.3", - "vega-scenegraph": "^4.9.4", - "vega-util": "^1.16.1" - } - }, - "node_modules/vega-view-transforms": { - "version": "4.5.8", - "resolved": "https://registry.npmjs.org/vega-view-transforms/-/vega-view-transforms-4.5.8.tgz", - "integrity": "sha512-966m7zbzvItBL8rwmF2nKG14rBp7q+3sLCKWeMSUrxoG+M15Smg5gWEGgwTG3A/RwzrZ7rDX5M1sRaAngRH25g==", - "dependencies": { - "vega-dataflow": "^5.7.3", - "vega-scenegraph": "^4.9.2", - "vega-util": "^1.15.2" - } - }, - "node_modules/vega-voronoi": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.1.5.tgz", - "integrity": "sha512-950IkgCFLj0zG33EWLAm1hZcp+FMqWcNQliMYt+MJzOD5S4MSpZpZ7K4wp2M1Jktjw/CLKFL9n38JCI0i3UonA==", - "dependencies": { - "d3-delaunay": "^5.3.0", - "vega-dataflow": "^5.7.3", - "vega-util": "^1.15.2" - } - }, - "node_modules/vega-wordcloud": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/vega-wordcloud/-/vega-wordcloud-4.1.3.tgz", - "integrity": "sha512-is4zYn9FMAyp9T4SAcz2P/U/wqc0Lx3P5YtpWKCbOH02a05vHjUQrQ2TTPOuvmMfAEDCSKvbMSQIJMOE018lJA==", - "dependencies": { - "vega-canvas": "^1.2.5", - "vega-dataflow": "^5.7.3", - "vega-scale": "^7.1.1", - "vega-statistics": "^1.7.9", - "vega-util": "^1.15.2" - } - }, "node_modules/vfile": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.2.0.tgz", @@ -13254,6 +12623,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -13270,6 +12640,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -13284,6 +12655,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -13294,7 +12666,8 @@ "node_modules/wrap-ansi/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/wrappy": { "version": "1.0.2", @@ -13358,6 +12731,7 @@ "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, "engines": { "node": ">=10" } @@ -13365,7 +12739,8 @@ "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, "node_modules/yaml": { "version": "1.10.2", @@ -13397,6 +12772,7 @@ "version": "20.2.9", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, "engines": { "node": ">=10" } @@ -15122,11 +14498,6 @@ "@babel/types": "^7.3.0" } }, - "@types/clone": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@types/clone/-/clone-2.1.1.tgz", - "integrity": "sha512-BZIU34bSYye0j/BFcPraiDZ5ka6MJADjcDVELGf7glr9K+iE8NYVjFslJFVWzskSxkLLyCrSPScE82/UUoBSvg==" - }, "@types/debug": { "version": "4.1.7", "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", @@ -15158,7 +14529,8 @@ "@types/estree": { "version": "0.0.50", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", - "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==" + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", + "dev": true }, "@types/graceful-fs": { "version": "4.1.5", @@ -15593,7 +14965,8 @@ "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true }, "ansi-styles": { "version": "3.2.1", @@ -15626,11 +14999,6 @@ "sprintf-js": "~1.0.2" } }, - "array-flat-polyfill": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-flat-polyfill/-/array-flat-polyfill-1.0.1.tgz", - "integrity": "sha512-hfJmKupmQN0lwi0xG6FQ5U8Rd97RnIERplymOv/qpq8AoNKPPAnxJadjFA23FNWm88wykh9HmpLJUUwUtNU/iw==" - }, "assert": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz", @@ -16083,17 +15451,13 @@ "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, "requires": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" } }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" - }, "clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", @@ -16692,14 +16056,6 @@ "d3-array": "2 - 3" } }, - "d3-delaunay": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-5.3.0.tgz", - "integrity": "sha512-amALSrOllWVLaHTnDLHwMIiz0d1bBu9gZXd1FiLfXf8sHcX9jrcj81TVZOqD4UX7MgBZZ07c8GxzEgBpJqc74w==", - "requires": { - "delaunator": "4" - } - }, "d3-dispatch": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz", @@ -16744,52 +16100,6 @@ "d3-dsv": "1 - 3" } }, - "d3-force": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-2.1.1.tgz", - "integrity": "sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==", - "requires": { - "d3-dispatch": "1 - 2", - "d3-quadtree": "1 - 2", - "d3-timer": "1 - 2" - } - }, - "d3-format": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz", - "integrity": "sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==" - }, - "d3-geo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-2.0.2.tgz", - "integrity": "sha512-8pM1WGMLGFuhq9S+FpPURxic+gKzjluCD/CHTuUF3mXMeiCo0i6R0tO1s4+GArRFde96SLcW/kOFRjoAosPsFA==", - "requires": { - "d3-array": "^2.5.0" - } - }, - "d3-geo-projection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-3.0.0.tgz", - "integrity": "sha512-1JE+filVbkEX2bT25dJdQ05iA4QHvUwev6o0nIQHOSrNlHCAKfVss/U10vEM3pA4j5v7uQoFdQ4KLbx9BlEbWA==", - "requires": { - "commander": "2", - "d3-array": "1 - 2", - "d3-geo": "1.12.0 - 2", - "resolve": "^1.1.10" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - } - } - }, - "d3-hierarchy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-2.0.0.tgz", - "integrity": "sha512-SwIdqM3HxQX2214EG9GTjgmCc/mbSx4mQBn+DuEETubhOw6/U3fmnji4uCVrmzOydMHSO1nZle5gh6HB/wdOzw==" - }, "d3-interpolate": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", @@ -16808,28 +16118,11 @@ "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==" }, - "d3-quadtree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-2.0.0.tgz", - "integrity": "sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==" - }, "d3-random": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==" }, - "d3-scale": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz", - "integrity": "sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==", - "requires": { - "d3-array": "^2.3.0", - "d3-format": "1 - 2", - "d3-interpolate": "1.2.0 - 2", - "d3-time": "^2.1.1", - "d3-time-format": "2 - 3" - } - }, "d3-scale-chromatic": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz", @@ -16844,30 +16137,6 @@ "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==" }, - "d3-shape": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-2.1.0.tgz", - "integrity": "sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA==", - "requires": { - "d3-path": "1 - 2" - } - }, - "d3-time": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-2.1.1.tgz", - "integrity": "sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ==", - "requires": { - "d3-array": "2" - } - }, - "d3-time-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz", - "integrity": "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==", - "requires": { - "d3-time": "1 - 2" - } - }, "d3-timer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-2.0.0.tgz", @@ -17247,11 +16516,6 @@ "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" }, - "delaunator": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz", - "integrity": "sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag==" - }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -17383,7 +16647,8 @@ "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true }, "emojis-list": { "version": "3.0.0", @@ -17605,7 +16870,8 @@ "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true }, "fast-glob": { "version": "3.2.7", @@ -17629,15 +16895,11 @@ } } }, - "fast-json-patch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-3.1.0.tgz", - "integrity": "sha512-IhpytlsVTRndz0hU5t0/MGzS/etxLlfrpG5V5M9mVbuj9TrJLWaMfsox9REM5rkuGX0T+5qjpe8XA1o0gZ42nA==" - }, "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true }, "fast-levenshtein": { "version": "2.0.6", @@ -17743,7 +17005,8 @@ "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true }, "get-intrinsic": { "version": "1.1.1", @@ -18242,7 +17505,8 @@ "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true }, "is-generator-fn": { "version": "2.1.0", @@ -19798,11 +19062,6 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, - "json-stringify-pretty-compact": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-3.0.0.tgz", - "integrity": "sha512-Rc2suX5meI0S3bfdZuA7JMFBGkJ875ApfVyq2WHELjBiiG22My/l7/8zPpH/CfFVQHuVLd8NLR0nv6vi0BYYKA==" - }, "json5": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", @@ -19947,6 +19206,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, "requires": { "yallist": "^4.0.0" } @@ -20666,35 +19926,6 @@ "tslib": "^2.0.3" } }, - "node-fetch": { - "version": "2.6.6", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz", - "integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==", - "requires": { - "whatwg-url": "^5.0.0" - }, - "dependencies": { - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - } - } - }, "node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -21619,7 +20850,8 @@ "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true }, "require-from-string": { "version": "2.0.2", @@ -21877,6 +21109,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -21914,6 +21147,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "requires": { "ansi-regex": "^5.0.1" } @@ -22219,21 +21453,6 @@ "resolved": "https://registry.npmjs.org/topbar/-/topbar-1.0.1.tgz", "integrity": "sha512-HZqQSMBiG29vcjOrqKCM9iGY/h69G5gQH7ae83ZCPz5uPmbQKwK0sMEqzVDBiu64tWHJ+kk9NApECrF+FAAvRA==" }, - "topojson-client": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", - "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", - "requires": { - "commander": "2" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - } - } - }, "totalist": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/totalist/-/totalist-2.0.0.tgz", @@ -22275,7 +21494,8 @@ "tslib": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true }, "type-check": { "version": "0.3.2", @@ -22504,434 +21724,6 @@ } } }, - "vega": { - "version": "5.21.0", - "resolved": "https://registry.npmjs.org/vega/-/vega-5.21.0.tgz", - "integrity": "sha512-yqqRa9nAqYoAxe7sVhRpsh0b001fly7Yx05klPkXmrvzjxXd07gClW1mOuGgSnVQqo7jTp/LYgbO1bD37FbEig==", - "requires": { - "vega-crossfilter": "~4.0.5", - "vega-dataflow": "~5.7.4", - "vega-encode": "~4.8.3", - "vega-event-selector": "~3.0.0", - "vega-expression": "~5.0.0", - "vega-force": "~4.0.7", - "vega-format": "~1.0.4", - "vega-functions": "~5.12.1", - "vega-geo": "~4.3.8", - "vega-hierarchy": "~4.0.9", - "vega-label": "~1.1.0", - "vega-loader": "~4.4.1", - "vega-parser": "~6.1.4", - "vega-projection": "~1.4.5", - "vega-regression": "~1.0.9", - "vega-runtime": "~6.1.3", - "vega-scale": "~7.1.1", - "vega-scenegraph": "~4.9.4", - "vega-statistics": "~1.7.10", - "vega-time": "~2.0.4", - "vega-transforms": "~4.9.4", - "vega-typings": "~0.22.0", - "vega-util": "~1.17.0", - "vega-view": "~5.10.1", - "vega-view-transforms": "~4.5.8", - "vega-voronoi": "~4.1.5", - "vega-wordcloud": "~4.1.3" - } - }, - "vega-canvas": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/vega-canvas/-/vega-canvas-1.2.6.tgz", - "integrity": "sha512-rgeYUpslYn/amIfnuv3Sw6n4BGns94OjjZNtUc9IDji6b+K8LGS/kW+Lvay8JX/oFqtulBp8RLcHN6QjqPLA9Q==" - }, - "vega-crossfilter": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.0.5.tgz", - "integrity": "sha512-yF+iyGP+ZxU7Tcj5yBsMfoUHTCebTALTXIkBNA99RKdaIHp1E690UaGVLZe6xde2n5WaYpho6I/I6wdAW3NXcg==", - "requires": { - "d3-array": "^2.7.1", - "vega-dataflow": "^5.7.3", - "vega-util": "^1.15.2" - } - }, - "vega-dataflow": { - "version": "5.7.4", - "resolved": "https://registry.npmjs.org/vega-dataflow/-/vega-dataflow-5.7.4.tgz", - "integrity": "sha512-JGHTpUo8XGETH3b1V892we6hdjzCWB977ybycIu8DPqRoyrZuj6t1fCVImazfMgQD1LAfJlQybWP+alwKDpKig==", - "requires": { - "vega-format": "^1.0.4", - "vega-loader": "^4.3.2", - "vega-util": "^1.16.1" - } - }, - "vega-embed": { - "version": "6.20.5", - "resolved": "https://registry.npmjs.org/vega-embed/-/vega-embed-6.20.5.tgz", - "integrity": "sha512-WmKzYPVUw6x+I2ucoeHySoWWqWO/oBvBGiDq+79hN1vvHc0g7QkDtRpfndSxkDWoagSTkuYTXSb9r1THrj/kfw==", - "requires": { - "fast-json-patch": "^3.1.0", - "json-stringify-pretty-compact": "^3.0.0", - "semver": "^7.3.5", - "tslib": "^2.3.1", - "vega-interpreter": "^1.0.4", - "vega-schema-url-parser": "^2.2.0", - "vega-themes": "^2.10.0", - "vega-tooltip": "^0.27.0" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "bundled": true, - "extraneous": true - } - } - }, - "vega-encode": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.8.3.tgz", - "integrity": "sha512-JoRYtaV2Hs8spWLzTu/IjR7J9jqRmuIOEicAaWj6T9NSZrNWQzu2zF3IVsX85WnrIDIRUDaehXaFZvy9uv9RQg==", - "requires": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", - "vega-dataflow": "^5.7.3", - "vega-scale": "^7.0.3", - "vega-util": "^1.15.2" - } - }, - "vega-event-selector": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", - "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==" - }, - "vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "requires": { - "@types/estree": "^0.0.50", - "vega-util": "^1.16.0" - } - }, - "vega-force": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.0.7.tgz", - "integrity": "sha512-pyLKdwXSZ9C1dVIqdJOobvBY29rLvZjvRRTla9BU/nMwAiAGlGi6WKUFdRGdneyGe3zo2nSZDTZlZM/Z5VaQNA==", - "requires": { - "d3-force": "^2.1.1", - "vega-dataflow": "^5.7.3", - "vega-util": "^1.15.2" - } - }, - "vega-format": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.0.4.tgz", - "integrity": "sha512-oTAeub3KWm6nKhXoYCx1q9G3K43R6/pDMXvqDlTSUtjoY7b/Gixm8iLcir5S9bPjvH40n4AcbZsPmNfL/Up77A==", - "requires": { - "d3-array": "^2.7.1", - "d3-format": "^2.0.0", - "d3-time-format": "^3.0.0", - "vega-time": "^2.0.3", - "vega-util": "^1.15.2" - } - }, - "vega-functions": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.12.1.tgz", - "integrity": "sha512-7cHfcjXOj27qEbh2FTzWDl7FJK4xGcMFF7+oiyqa0fp7BU/wNT5YdNV0t5kCX9WjV7mfJWACKV74usLJbyM6GA==", - "requires": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", - "vega-dataflow": "^5.7.3", - "vega-expression": "^5.0.0", - "vega-scale": "^7.1.1", - "vega-scenegraph": "^4.9.3", - "vega-selections": "^5.3.1", - "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", - "vega-util": "^1.16.0" - } - }, - "vega-geo": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.3.8.tgz", - "integrity": "sha512-fsGxV96Q/QRgPqOPtMBZdI+DneIiROKTG3YDZvGn0EdV16OG5LzFhbNgLT5GPzI+kTwgLpAsucBHklexlB4kfg==", - "requires": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", - "vega-canvas": "^1.2.5", - "vega-dataflow": "^5.7.3", - "vega-projection": "^1.4.5", - "vega-statistics": "^1.7.9", - "vega-util": "^1.15.2" - } - }, - "vega-hierarchy": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.0.9.tgz", - "integrity": "sha512-4XaWK6V38/QOZ+vllKKTafiwL25m8Kd+ebHmDV+Q236ONHmqc/gv82wwn9nBeXPEfPv4FyJw2SRoqa2Jol6fug==", - "requires": { - "d3-hierarchy": "^2.0.0", - "vega-dataflow": "^5.7.3", - "vega-util": "^1.15.2" - } - }, - "vega-interpreter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vega-interpreter/-/vega-interpreter-1.0.4.tgz", - "integrity": "sha512-6tpYIa/pJz0cZo5fSxDSkZkAA51pID2LjOtQkOQvbzn+sJiCaWKPFhur8MBqbcmYZ9bnap1OYNwlrvpd2qBLvg==" - }, - "vega-label": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.1.0.tgz", - "integrity": "sha512-LAThIiDEsZxYvbSkvPLJ93eJF+Ts8RXv1IpBh8gmew8XGmaLJvVkzdsMe7WJJwuaVEsK7ZZFyB/Inkp842GW6w==", - "requires": { - "vega-canvas": "^1.2.5", - "vega-dataflow": "^5.7.3", - "vega-scenegraph": "^4.9.2", - "vega-util": "^1.15.2" - } - }, - "vega-lite": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/vega-lite/-/vega-lite-5.2.0.tgz", - "integrity": "sha512-Yxcg8MvYfxHcG6BbkaKT0oVCIMIcE19UvqIsEwBmyd/7h2nzW7oRnID81T8UrY7hpDrIr6wa2JADOT2dhGNErw==", - "requires": { - "@types/clone": "~2.1.1", - "array-flat-polyfill": "^1.0.1", - "clone": "~2.1.2", - "fast-deep-equal": "~3.1.3", - "fast-json-stable-stringify": "~2.1.0", - "json-stringify-pretty-compact": "~3.0.0", - "tslib": "~2.3.1", - "vega-event-selector": "~3.0.0", - "vega-expression": "~5.0.0", - "vega-util": "~1.17.0", - "yargs": "~17.2.1" - }, - "dependencies": { - "yargs": { - "version": "17.2.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.2.1.tgz", - "integrity": "sha512-XfR8du6ua4K6uLGm5S6fA+FIJom/MdJcFNVY8geLlp2v8GYbOXD4EB1tPNZsRn4vBzKGMgb5DRZMeWuFc2GO8Q==", - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - } - } - }, - "vega-loader": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.4.1.tgz", - "integrity": "sha512-dj65i4qlNhK0mOmjuchHgUrF5YUaWrYpx0A8kXA68lBk5Hkx8FNRztkcl07CZJ1+8V81ymEyJii9jzGbhEX0ag==", - "requires": { - "d3-dsv": "^2.0.0", - "node-fetch": "^2.6.1", - "topojson-client": "^3.1.0", - "vega-format": "^1.0.4", - "vega-util": "^1.16.0" - } - }, - "vega-parser": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/vega-parser/-/vega-parser-6.1.4.tgz", - "integrity": "sha512-tORdpWXiH/kkXcpNdbSVEvtaxBuuDtgYp9rBunVW9oLsjFvFXbSWlM1wvJ9ZFSaTfx6CqyTyGMiJemmr1QnTjQ==", - "requires": { - "vega-dataflow": "^5.7.3", - "vega-event-selector": "^3.0.0", - "vega-functions": "^5.12.1", - "vega-scale": "^7.1.1", - "vega-util": "^1.16.0" - } - }, - "vega-projection": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.4.5.tgz", - "integrity": "sha512-85kWcPv0zrrNfxescqHtSYpRknilrS0K3CVRZc7IYQxnLtL1oma9WEbrSr1LCmDoCP5hl2Z1kKbomPXkrQX5Ag==", - "requires": { - "d3-geo": "^2.0.1", - "d3-geo-projection": "^3.0.0" - } - }, - "vega-regression": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.0.9.tgz", - "integrity": "sha512-KSr3QbCF0vJEAWFVY2MA9X786oiJncTTr3gqRMPoaLr/Yo3f7OPKXRoUcw36RiWa0WCOEMgTYtM28iK6ZuSgaA==", - "requires": { - "d3-array": "^2.7.1", - "vega-dataflow": "^5.7.3", - "vega-statistics": "^1.7.9", - "vega-util": "^1.15.2" - } - }, - "vega-runtime": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/vega-runtime/-/vega-runtime-6.1.3.tgz", - "integrity": "sha512-gE+sO2IfxMUpV0RkFeQVnHdmPy3K7LjHakISZgUGsDI/ZFs9y+HhBf8KTGSL5pcZPtQsZh3GBQ0UonqL1mp9PA==", - "requires": { - "vega-dataflow": "^5.7.3", - "vega-util": "^1.15.2" - } - }, - "vega-scale": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.1.1.tgz", - "integrity": "sha512-yE0to0prA9E5PBJ/XP77TO0BMkzyUVyt7TH5PAwj+CZT7PMsMO6ozihelRhoIiVcP0Ae/ByCEQBUQkzN5zJ0ZA==", - "requires": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", - "d3-scale": "^3.2.2", - "vega-time": "^2.0.4", - "vega-util": "^1.15.2" - } - }, - "vega-scenegraph": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.9.4.tgz", - "integrity": "sha512-QaegQzbFE2yhYLNWAmHwAuguW3yTtQrmwvfxYT8tk0g+KKodrQ5WSmNrphWXhqwtsgVSvtdZkfp2IPeumcOQJg==", - "requires": { - "d3-path": "^2.0.0", - "d3-shape": "^2.0.0", - "vega-canvas": "^1.2.5", - "vega-loader": "^4.3.3", - "vega-scale": "^7.1.1", - "vega-util": "^1.15.2" - } - }, - "vega-schema-url-parser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/vega-schema-url-parser/-/vega-schema-url-parser-2.2.0.tgz", - "integrity": "sha512-yAtdBnfYOhECv9YC70H2gEiqfIbVkq09aaE4y/9V/ovEFmH9gPKaEgzIZqgT7PSPQjKhsNkb6jk6XvSoboxOBw==" - }, - "vega-selections": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/vega-selections/-/vega-selections-5.3.1.tgz", - "integrity": "sha512-cm4Srw1WHjcLGXX7GpxiUlfESv8XPu5b6Vh3mqMDPU94P2FO91SR9gei+EtRdt+KCFgIjr//MnRUjg/hAWwjkQ==", - "requires": { - "vega-expression": "^5.0.0", - "vega-util": "^1.16.0" - } - }, - "vega-statistics": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.7.10.tgz", - "integrity": "sha512-QLb12gcfpDZ9K5h3TLGrlz4UXDH9wSPyg9LLfOJZacxvvJEPohacUQNrGEAVtFO9ccUCerRfH9cs25ZtHsOZrw==", - "requires": { - "d3-array": "^2.7.1" - } - }, - "vega-themes": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/vega-themes/-/vega-themes-2.10.0.tgz", - "integrity": "sha512-prePRUKFUFGWniuZsJOfkdb+27Gwrrm82yAlVuU+912kcknsx1DVmMSg2yF79f4jdtqnAFIGycZgxoj13SEIuQ==", - "requires": {} - }, - "vega-time": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.0.4.tgz", - "integrity": "sha512-U314UDR9+ZlWrD3KBaeH+j/c2WSMdvcZq5yJfFT0yTg1jsBKAQBYFGvl+orackD8Zx3FveHOxx3XAObaQeDX+Q==", - "requires": { - "d3-array": "^2.7.1", - "d3-time": "^2.0.0", - "vega-util": "^1.15.2" - } - }, - "vega-tooltip": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/vega-tooltip/-/vega-tooltip-0.27.0.tgz", - "integrity": "sha512-FRcHNfMNo9D/7an5nZuP6JC2JGEsc85qcGjyMU7VlPpjQj9eBj1P+sZSNbb54Z20g7inVSBRyd8qgNn5EYTxJA==", - "requires": { - "vega-util": "^1.16.0" - } - }, - "vega-transforms": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.9.4.tgz", - "integrity": "sha512-JGBhm5Bf6fiGTUSB5Qr5ckw/KU9FJcSV5xIe/y4IobM/i/KNwI1i1fP45LzP4F4yZc0DMTwJod2UvFHGk9plKA==", - "requires": { - "d3-array": "^2.7.1", - "vega-dataflow": "^5.7.4", - "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", - "vega-util": "^1.16.1" - } - }, - "vega-typings": { - "version": "0.22.1", - "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.22.1.tgz", - "integrity": "sha512-88cIrjmoTxo/0nWTf+GuitkFhirHWVWCfymADiCUXt6s9arpQ6XPP5xjrN5KDc0LZd9xr7p4FIiEgADghgLTgw==", - "requires": { - "vega-event-selector": "^3.0.0", - "vega-expression": "^5.0.0", - "vega-util": "^1.15.2" - } - }, - "vega-util": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.17.0.tgz", - "integrity": "sha512-HTaydZd9De3yf+8jH66zL4dXJ1d1p5OIFyoBzFiOli4IJbwkL1jrefCKz6AHDm1kYBzDJ0X4bN+CzZSCTvNk1w==" - }, - "vega-view": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.10.1.tgz", - "integrity": "sha512-4xvQ5KZcgKdZx1Z7jjenCUumvlyr/j4XcHLRf9gyeFrFvvS596dVpL92V8twhV6O++DmS2+fj+rHagO8Di4nMg==", - "requires": { - "d3-array": "^2.7.1", - "d3-timer": "^2.0.0", - "vega-dataflow": "^5.7.3", - "vega-format": "^1.0.4", - "vega-functions": "^5.10.0", - "vega-runtime": "^6.1.3", - "vega-scenegraph": "^4.9.4", - "vega-util": "^1.16.1" - } - }, - "vega-view-transforms": { - "version": "4.5.8", - "resolved": "https://registry.npmjs.org/vega-view-transforms/-/vega-view-transforms-4.5.8.tgz", - "integrity": "sha512-966m7zbzvItBL8rwmF2nKG14rBp7q+3sLCKWeMSUrxoG+M15Smg5gWEGgwTG3A/RwzrZ7rDX5M1sRaAngRH25g==", - "requires": { - "vega-dataflow": "^5.7.3", - "vega-scenegraph": "^4.9.2", - "vega-util": "^1.15.2" - } - }, - "vega-voronoi": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.1.5.tgz", - "integrity": "sha512-950IkgCFLj0zG33EWLAm1hZcp+FMqWcNQliMYt+MJzOD5S4MSpZpZ7K4wp2M1Jktjw/CLKFL9n38JCI0i3UonA==", - "requires": { - "d3-delaunay": "^5.3.0", - "vega-dataflow": "^5.7.3", - "vega-util": "^1.15.2" - } - }, - "vega-wordcloud": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/vega-wordcloud/-/vega-wordcloud-4.1.3.tgz", - "integrity": "sha512-is4zYn9FMAyp9T4SAcz2P/U/wqc0Lx3P5YtpWKCbOH02a05vHjUQrQ2TTPOuvmMfAEDCSKvbMSQIJMOE018lJA==", - "requires": { - "vega-canvas": "^1.2.5", - "vega-dataflow": "^5.7.3", - "vega-scale": "^7.1.1", - "vega-statistics": "^1.7.9", - "vega-util": "^1.15.2" - } - }, "vfile": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.2.0.tgz", @@ -23174,6 +21966,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -23184,6 +21977,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -23192,6 +21986,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "requires": { "color-name": "~1.1.4" } @@ -23199,7 +21994,8 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true } } }, @@ -23247,12 +22043,14 @@ "y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true }, "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, "yaml": { "version": "1.10.2", @@ -23277,7 +22075,8 @@ "yargs-parser": { "version": "20.2.9", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true }, "zwitch": { "version": "2.0.2", diff --git a/assets/package.json b/assets/package.json index 8f7727acd..3721f9d01 100644 --- a/assets/package.json +++ b/assets/package.json @@ -1,6 +1,5 @@ { "private": true, - "license": "MIT", "scripts": { "deploy": "NODE_ENV=production webpack --mode production", "watch": "webpack --mode development --watch", @@ -38,10 +37,7 @@ "topbar": "^1.0.1", "unified": "^10.1.0", "unist-util-remove-position": "^4.0.1", - "unist-util-visit": "^4.0.0", - "vega": "^5.20.2", - "vega-embed": "^6.18.1", - "vega-lite": "^5.1.0" + "unist-util-visit": "^4.0.0" }, "devDependencies": { "@babel/core": "^7.14.0", diff --git a/lib/livebook/live_markdown/export.ex b/lib/livebook/live_markdown/export.ex index 39a6edc61..9a920cdb6 100644 --- a/lib/livebook/live_markdown/export.ex +++ b/lib/livebook/live_markdown/export.ex @@ -170,10 +170,6 @@ defmodule Livebook.LiveMarkdown.Export do [delimiter, "output\n", text, "\n", delimiter] end - defp render_output({:vega_lite_static, spec}, _ctx) do - ["```", "vega-lite\n", Jason.encode!(spec), "\n", "```"] - end - defp render_output( {:js, %{export: %{info_string: info_string, key: key}, ref: ref}}, ctx diff --git a/lib/livebook/live_markdown/import.ex b/lib/livebook/live_markdown/import.ex index 484873436..21f36b19b 100644 --- a/lib/livebook/live_markdown/import.ex +++ b/lib/livebook/live_markdown/import.ex @@ -187,16 +187,6 @@ defmodule Livebook.LiveMarkdown.Import do take_outputs(ast, [{:text, output} | outputs]) end - defp take_outputs( - [{"pre", _, [{"code", [{"class", "vega-lite"}], [output], %{}}], %{}} | ast], - outputs - ) do - case Jason.decode(output) do - {:ok, spec} -> take_outputs(ast, [{:vega_lite_static, spec} | outputs]) - _ -> take_outputs(ast, outputs) - end - end - defp take_outputs(ast, outputs), do: {outputs, ast} # Builds a notebook from the list of elements obtained in the previous step. diff --git a/lib/livebook/notebook/cell/elixir.ex b/lib/livebook/notebook/cell/elixir.ex index c474a41d2..7aa54ccc0 100644 --- a/lib/livebook/notebook/cell/elixir.ex +++ b/lib/livebook/notebook/cell/elixir.ex @@ -34,16 +34,8 @@ defmodule Livebook.Notebook.Cell.Elixir do | {:markdown, binary()} # A raw image in the given format | {:image, content :: binary(), mime_type :: binary()} - # Vega-Lite graphic - | {:vega_lite_static, spec :: map()} - # Vega-Lite graphic with dynamic data - | {:vega_lite_dynamic, widget_process :: pid()} # JavaScript powered output | {:js, info :: map()} - # Interactive data table - | {:table_dynamic, widget_process :: pid()} - # Dynamic wrapper for static output - | {:frame_dynamic, widget_process :: pid()} # Outputs placeholder | {:frame, outputs :: list(output()), info :: map()} # An input field diff --git a/lib/livebook/notebook/explore/distributed_portals_with_elixir.livemd b/lib/livebook/notebook/explore/distributed_portals_with_elixir.livemd index 90397471b..644dd035b 100644 --- a/lib/livebook/notebook/explore/distributed_portals_with_elixir.livemd +++ b/lib/livebook/notebook/explore/distributed_portals_with_elixir.livemd @@ -201,7 +201,7 @@ install the [Kino](https://github.com/livebook-dev/kino) library: ```elixir Mix.install( [ - {:kino, "~> 0.4.1"} + {:kino, github: "livebook-dev/kino"} ], consolidate_protocols: false ) diff --git a/lib/livebook/notebook/explore/elixir_and_livebook.livemd b/lib/livebook/notebook/explore/elixir_and_livebook.livemd index 24f4409c5..4819e1277 100644 --- a/lib/livebook/notebook/explore/elixir_and_livebook.livemd +++ b/lib/livebook/notebook/explore/elixir_and_livebook.livemd @@ -53,7 +53,7 @@ instance, otherwise the command below will fail. ```elixir Mix.install([ - {:kino, "~> 0.4.1"} + {:kino, github: "livebook-dev/kino"} ]) ``` diff --git a/lib/livebook/notebook/explore/intro_to_vega_lite.livemd b/lib/livebook/notebook/explore/intro_to_vega_lite.livemd index 966610318..96001b755 100644 --- a/lib/livebook/notebook/explore/intro_to_vega_lite.livemd +++ b/lib/livebook/notebook/explore/intro_to_vega_lite.livemd @@ -11,7 +11,7 @@ directly, but it is required to render VegaLite: ```elixir Mix.install([ {:vega_lite, "~> 0.1.2"}, - {:kino, "~> 0.4.1"} + {:kino, github: "livebook-dev/kino"} ]) ``` diff --git a/lib/livebook/notebook/explore/kino/intro_to_kino.livemd b/lib/livebook/notebook/explore/kino/intro_to_kino.livemd index fce1931fd..b4955d407 100644 --- a/lib/livebook/notebook/explore/kino/intro_to_kino.livemd +++ b/lib/livebook/notebook/explore/kino/intro_to_kino.livemd @@ -10,7 +10,7 @@ and interact with them. ```elixir Mix.install([ - {:kino, "~> 0.4.1"}, + {:kino, github: "livebook-dev/kino"}, {:vega_lite, "~> 0.1.2"} ]) ``` diff --git a/lib/livebook/notebook/explore/kino/pong.livemd b/lib/livebook/notebook/explore/kino/pong.livemd index 8e5f9093e..09bbde4c9 100644 --- a/lib/livebook/notebook/explore/kino/pong.livemd +++ b/lib/livebook/notebook/explore/kino/pong.livemd @@ -17,7 +17,7 @@ the visualization and interactions. ```elixir Mix.install([ - {:kino, "~> 0.4.1"} + {:kino, github: "livebook-dev/kino"} ]) ``` diff --git a/lib/livebook/notebook/explore/vm_introspection.livemd b/lib/livebook/notebook/explore/vm_introspection.livemd index 9945bd005..e251cf522 100644 --- a/lib/livebook/notebook/explore/vm_introspection.livemd +++ b/lib/livebook/notebook/explore/vm_introspection.livemd @@ -14,7 +14,7 @@ so let's add `:vega_lite` and `:kino` for that. ```elixir Mix.install([ {:vega_lite, "~> 0.1.2"}, - {:kino, "~> 0.4.1"} + {:kino, github: "livebook-dev/kino"} ]) ``` diff --git a/lib/livebook_web/live/output.ex b/lib/livebook_web/live/output.ex index f884a26c4..76d788add 100644 --- a/lib/livebook_web/live/output.ex +++ b/lib/livebook_web/live/output.ex @@ -1,6 +1,8 @@ defmodule LivebookWeb.Output do use Phoenix.Component + alias LivebookWeb.Output + @doc """ Renders a list of cell outputs. """ @@ -34,68 +36,31 @@ defmodule LivebookWeb.Output do defp render_output({:stdout, text}, %{id: id}) do text = if(text == :__pruned__, do: nil, else: text) - live_component(LivebookWeb.Output.StdoutComponent, id: id, text: text, follow: true) + live_component(Output.StdoutComponent, id: id, text: text, follow: true) end defp render_output({:text, text}, %{id: id}) do assigns = %{id: id, text: text} ~H""" - + """ end defp render_output({:markdown, markdown}, %{id: id}) do - live_component(LivebookWeb.Output.MarkdownComponent, id: id, content: markdown) + live_component(Output.MarkdownComponent, id: id, content: markdown) end defp render_output({:image, content, mime_type}, %{id: id}) do assigns = %{id: id, content: content, mime_type: mime_type} ~H""" - + """ end - defp render_output({:vega_lite_static, spec}, %{id: id}) do - live_component(LivebookWeb.Output.VegaLiteStaticComponent, id: id, spec: spec) - end - - defp render_output({:vega_lite_dynamic, pid}, %{id: id, socket: socket}) do - live_render(socket, LivebookWeb.Output.VegaLiteDynamicLive, - id: id, - session: %{"id" => id, "pid" => pid} - ) - end - defp render_output({:js, info}, %{id: id, session_id: session_id}) do - live_component(LivebookWeb.Output.JSComponent, id: id, info: info, session_id: session_id) - end - - defp render_output({:table_dynamic, pid}, %{id: id, socket: socket}) do - live_render(socket, LivebookWeb.Output.TableDynamicLive, - id: id, - session: %{"id" => id, "pid" => pid} - ) - end - - defp render_output({:frame_dynamic, pid}, %{ - id: id, - socket: socket, - session_id: session_id, - input_values: input_values, - cell_validity_status: cell_validity_status - }) do - live_render(socket, LivebookWeb.Output.FrameDynamicLive, - id: id, - session: %{ - "id" => id, - "pid" => pid, - "session_id" => session_id, - "input_values" => input_values, - "cell_validity_status" => cell_validity_status - } - ) + live_component(Output.JSComponent, id: id, info: info, session_id: session_id) end defp render_output({:frame, outputs, _info}, %{ @@ -103,7 +68,7 @@ defmodule LivebookWeb.Output do input_values: input_values, session_id: session_id }) do - live_component(LivebookWeb.Output.FrameComponent, + live_component(Output.FrameComponent, id: id, outputs: outputs, session_id: session_id, @@ -112,19 +77,11 @@ defmodule LivebookWeb.Output do end defp render_output({:input, attrs}, %{id: id, input_values: input_values}) do - live_component(LivebookWeb.Output.InputComponent, - id: id, - attrs: attrs, - input_values: input_values - ) + live_component(Output.InputComponent, id: id, attrs: attrs, input_values: input_values) end defp render_output({:control, attrs}, %{id: id, input_values: input_values}) do - live_component(LivebookWeb.Output.ControlComponent, - id: id, - attrs: attrs, - input_values: input_values - ) + live_component(Output.ControlComponent, id: id, attrs: attrs, input_values: input_values) end defp render_output({:error, formatted, :runtime_restart_required}, %{ @@ -158,6 +115,20 @@ defmodule LivebookWeb.Output do render_error_message_output(formatted) end + # TODO: remove on Livebook v0.7 + defp render_output(output, %{}) + when elem(output, 0) in [ + :vega_lite_static, + :vega_lite_dynamic, + :table_dynamic, + :frame_dynamic + ] do + render_error_message_output(""" + Legacy output format: #{inspect(output)}. Please update Kino to + the latest version. + """) + end + defp render_output(output, %{}) do render_error_message_output(""" Unknown output format: #{inspect(output)}. If you're using Kino, diff --git a/lib/livebook_web/live/output/frame_dynamic_live.ex b/lib/livebook_web/live/output/frame_dynamic_live.ex deleted file mode 100644 index 3fd08482d..000000000 --- a/lib/livebook_web/live/output/frame_dynamic_live.ex +++ /dev/null @@ -1,59 +0,0 @@ -defmodule LivebookWeb.Output.FrameDynamicLive do - use LivebookWeb, :live_view - - @impl true - def mount( - _params, - %{ - "pid" => pid, - "id" => id, - "session_id" => session_id, - "input_values" => input_values, - "cell_validity_status" => cell_validity_status - }, - socket - ) do - if connected?(socket) do - send(pid, {:connect, self()}) - end - - {:ok, - assign(socket, - id: id, - output: nil, - session_id: session_id, - input_values: input_values, - cell_validity_status: cell_validity_status - )} - end - - @impl true - def render(assigns) do - ~H""" -
- <%= if @output do %> - - <% else %> -
- Empty output frame -
- <% end %> -
- """ - end - - @impl true - def handle_info({:connect_reply, %{output: output}}, socket) do - {:noreply, assign(socket, output: output)} - end - - def handle_info({:render, %{output: output}}, socket) do - {:noreply, assign(socket, output: output)} - end -end diff --git a/lib/livebook_web/live/output/table_dynamic_live.ex b/lib/livebook_web/live/output/table_dynamic_live.ex deleted file mode 100644 index cac0c1f9d..000000000 --- a/lib/livebook_web/live/output/table_dynamic_live.ex +++ /dev/null @@ -1,203 +0,0 @@ -defmodule LivebookWeb.Output.TableDynamicLive do - use LivebookWeb, :live_view - - @limit 10 - @loading_delay_ms 100 - - @impl true - def mount(_params, %{"pid" => pid, "id" => id}, socket) do - if connected?(socket) do - send(pid, {:connect, self()}) - end - - {:ok, - assign(socket, - id: id, - pid: pid, - loading: true, - show_loading_timer: nil, - # Data specification - page: 1, - limit: @limit, - order_by: nil, - order: :asc, - # Fetched data - name: "Table", - features: [], - columns: [], - rows: [], - total_rows: 0 - )} - end - - @impl true - def render(%{loading: true} = assigns) do - ~H""" -
-
-
-
-
-
-
- """ - end - - def render(assigns) do - ~H""" -
-

- <%= @name %> -

-
- -
- <%= if :refetch in @features do %> - - - - <% end %> -
- - <%= if :pagination in @features and @total_rows > 0 do %> -
- -
- <%= @page %> of <%= max_page(@total_rows, @limit) %> -
- -
- <% end %> -
- <%= if @columns == [] do %> - -

- No data -

- <% else %> - -
- - - - <%= for {column, idx} <- Enum.with_index(@columns) do %> - - <% end %> - - - - <%= for row <- @rows do %> - - <%= for column <- @columns do %> - - <% end %> - - <% end %> - -
-
- <%= column.label %> - - <.remix_icon icon={order_icon(@order)} class="text-xl align-middle leading-none" /> - -
-
- <%= to_string(row.fields[column.key]) %> -
-
- <% end %> - """ - end - - defp order_icon(:asc), do: "arrow-up-s-line" - defp order_icon(:desc), do: "arrow-down-s-line" - - defp max_page(total_rows, limit) do - ceil(total_rows / limit) - end - - @impl true - def handle_event("refetch", %{}, socket) do - {:noreply, request_rows(socket)} - end - - def handle_event("prev", %{}, socket) do - {:noreply, assign(socket, :page, socket.assigns.page - 1) |> request_rows()} - end - - def handle_event("next", %{}, socket) do - {:noreply, assign(socket, :page, socket.assigns.page + 1) |> request_rows()} - end - - def handle_event("column_click", %{"column_idx" => idx}, socket) do - idx = String.to_integer(idx) - %{key: key} = Enum.at(socket.assigns.columns, idx) - - {order_by, order} = - case {socket.assigns.order_by, socket.assigns.order} do - {^key, :asc} -> {key, :desc} - {^key, :desc} -> {nil, :asc} - _ -> {key, :asc} - end - - {:noreply, assign(socket, order_by: order_by, order: order) |> request_rows()} - end - - @impl true - def handle_info({:connect_reply, %{name: name, columns: columns, features: features}}, socket) do - {:noreply, assign(socket, name: name, columns: columns, features: features) |> request_rows()} - end - - def handle_info({:rows, %{rows: rows, total_rows: total_rows, columns: columns}}, socket) do - columns = - case columns do - :initial -> socket.assigns.columns - columns when is_list(columns) -> columns - end - - if socket.assigns.show_loading_timer do - Process.cancel_timer(socket.assigns.show_loading_timer) - end - - {:noreply, - assign(socket, - loading: false, - show_loading_timer: nil, - columns: columns, - rows: rows, - total_rows: total_rows - )} - end - - def handle_info(:show_loading, socket) do - {:noreply, assign(socket, loading: true, show_loading_timer: nil)} - end - - defp request_rows(socket) do - rows_spec = %{ - offset: (socket.assigns.page - 1) * socket.assigns.limit, - limit: socket.assigns.limit, - order_by: socket.assigns.order_by, - order: socket.assigns.order - } - - send(socket.assigns.pid, {:get_rows, self(), rows_spec}) - - show_loading_timer = Process.send_after(self(), :show_loading, @loading_delay_ms) - assign(socket, show_loading_timer: show_loading_timer) - end -end diff --git a/lib/livebook_web/live/output/vega_lite_dynamic_live.ex b/lib/livebook_web/live/output/vega_lite_dynamic_live.ex deleted file mode 100644 index 5eb197923..000000000 --- a/lib/livebook_web/live/output/vega_lite_dynamic_live.ex +++ /dev/null @@ -1,34 +0,0 @@ -defmodule LivebookWeb.Output.VegaLiteDynamicLive do - use LivebookWeb, :live_view - - @impl true - def mount(_params, %{"pid" => pid, "id" => id}, socket) do - if connected?(socket) do - send(pid, {:connect, self()}) - end - - {:ok, assign(socket, id: id)} - end - - @impl true - def render(assigns) do - ~H""" -
-
- """ - end - - @impl true - def handle_info({:connect_reply, %{spec: spec}}, socket) do - {:noreply, push_event(socket, "vega_lite:#{socket.assigns.id}:init", %{"spec" => spec})} - end - - def handle_info({:push, %{data: data, dataset: dataset, window: window}}, socket) do - {:noreply, - push_event(socket, "vega_lite:#{socket.assigns.id}:push", %{ - "data" => data, - "dataset" => dataset, - "window" => window - })} - end -end diff --git a/lib/livebook_web/live/output/vega_lite_static_component.ex b/lib/livebook_web/live/output/vega_lite_static_component.ex deleted file mode 100644 index 4e73031ad..000000000 --- a/lib/livebook_web/live/output/vega_lite_static_component.ex +++ /dev/null @@ -1,17 +0,0 @@ -defmodule LivebookWeb.Output.VegaLiteStaticComponent do - use LivebookWeb, :live_component - - @impl true - def update(assigns, socket) do - socket = assign(socket, id: assigns.id) - {:ok, push_event(socket, "vega_lite:#{socket.assigns.id}:init", %{"spec" => assigns.spec})} - end - - @impl true - def render(assigns) do - ~H""" -
-
- """ - end -end diff --git a/test/livebook/live_markdown/export_test.exs b/test/livebook/live_markdown/export_test.exs index 638d588db..7c0de1a4b 100644 --- a/test/livebook/live_markdown/export_test.exs +++ b/test/livebook/live_markdown/export_test.exs @@ -531,12 +531,7 @@ defmodule Livebook.LiveMarkdown.ExportTest do IO.puts("hey")\ """, outputs: [ - {0, {:stdout, "hey"}}, - {1, - {:vega_lite_static, - %{ - "$schema" => "https://vega.github.io/schema/vega-lite/v5.json" - }}} + {0, {:stdout, "hey"}} ] } ] @@ -657,7 +652,7 @@ defmodule Livebook.LiveMarkdown.ExportTest do | source: """ IO.puts("hey")\ """, - outputs: [{0, {:table_dynamic, self()}}] + outputs: [{0, {:markdown, "some **Markdown**"}}] } ] } diff --git a/test/livebook/live_markdown/import_test.exs b/test/livebook/live_markdown/import_test.exs index 262492410..b46ef8238 100644 --- a/test/livebook/live_markdown/import_test.exs +++ b/test/livebook/live_markdown/import_test.exs @@ -621,107 +621,6 @@ defmodule Livebook.LiveMarkdown.ImportTest do assert %Notebook{name: "My Notebook", autosave_interval_s: 10} = notebook end - test "imports notebook with valid vega-lite output" do - markdown = """ - # My Notebook - - ## Section 1 - - ```elixir - Vl.new(width: 500, height: 200) - |> Vl.data_from_series(in: [1, 2, 3, 4, 5], out: [1, 2, 3, 4, 5]) - |> Vl.mark(:line) - |> Vl.encode_field(:x, "in", type: :quantitative) - |> Vl.encode_field(:y, "out", type: :quantitative) - ``` - - ```vega-lite - {"$schema":"https://vega.github.io/schema/vega-lite/v5.json","data":{"values":[{"in":1,"out":1},{"in":2,"out":2},{"in":3,"out":3},{"in":4,"out":4},{"in":5,"out":5}]},"encoding":{"x":{"field":"in","type":"quantitative"},"y":{"field":"out","type":"quantitative"}},"height":200,"mark":"line","width":500} - ``` - """ - - {notebook, []} = Import.notebook_from_markdown(markdown) - - assert %Notebook{ - name: "My Notebook", - sections: [ - %Notebook.Section{ - name: "Section 1", - cells: [ - %Cell.Elixir{ - source: """ - Vl.new(width: 500, height: 200) - |> Vl.data_from_series(in: [1, 2, 3, 4, 5], out: [1, 2, 3, 4, 5]) - |> Vl.mark(:line) - |> Vl.encode_field(:x, \"in\", type: :quantitative) - |> Vl.encode_field(:y, \"out\", type: :quantitative)\ - """, - outputs: [ - {0, - {:vega_lite_static, - %{ - "$schema" => "https://vega.github.io/schema/vega-lite/v5.json", - "data" => %{ - "values" => [ - %{"in" => 1, "out" => 1}, - %{"in" => 2, "out" => 2}, - %{"in" => 3, "out" => 3}, - %{"in" => 4, "out" => 4}, - %{"in" => 5, "out" => 5} - ] - }, - "encoding" => %{ - "x" => %{"field" => "in", "type" => "quantitative"}, - "y" => %{"field" => "out", "type" => "quantitative"} - }, - "height" => 200, - "mark" => "line", - "width" => 500 - }}} - ] - } - ] - } - ], - output_counter: 1 - } = notebook - end - - test "imports notebook with invalid vega-lite output" do - markdown = """ - # My Notebook - - ## Section 1 - - ```elixir - :ok - ``` - - ```vega-lite - not_a_json - ``` - """ - - {notebook, []} = Import.notebook_from_markdown(markdown) - - assert %Notebook{ - name: "My Notebook", - sections: [ - %Notebook.Section{ - name: "Section 1", - cells: [ - %Cell.Elixir{ - source: """ - :ok\ - """, - outputs: [] - } - ] - } - ] - } = notebook - end - describe "backward compatibility" do test "warns if the imported notebook includes an input" do markdown = """ diff --git a/test/livebook_web/live/session_live_test.exs b/test/livebook_web/live/session_live_test.exs index 6e6608ade..4f3ace542 100644 --- a/test/livebook_web/live/session_live_test.exs +++ b/test/livebook_web/live/session_live_test.exs @@ -277,31 +277,6 @@ defmodule LivebookWeb.SessionLiveTest do end describe "outputs" do - test "dynamic frame output renders output sent from the frame server", - %{conn: conn, session: session} do - frame_pid = - spawn(fn -> - output = {:text, "Dynamic output in frame"} - - receive do - {:connect, pid} -> send(pid, {:connect_reply, %{output: output}}) - end - end) - - frame_output = {:frame_dynamic, frame_pid} - - section_id = insert_section(session.pid) - cell_id = insert_text_cell(session.pid, section_id, :elixir) - - Session.queue_cell_evaluation(session.pid, cell_id) - - send(session.pid, {:evaluation_output, cell_id, frame_output}) - - {:ok, view, _} = live(conn, "/sessions/#{session.id}") - - assert render(view) =~ "Dynamic output in frame" - end - test "stdout output update", %{conn: conn, session: session} do section_id = insert_section(session.pid) cell_id = insert_text_cell(session.pid, section_id, :elixir)