diff --git a/.bluprintrc b/.bluprintrc
index e99d0af..217a4bb 100644
--- a/.bluprintrc
+++ b/.bluprintrc
@@ -56,7 +56,7 @@
"assetinfo.json",
"jsconfig.json",
"package.json",
- "svelte.config.cjs"
+ "svelte.config.js"
]
},
"mergeJson": true
diff --git a/.eslintrc.cjs b/.eslintrc.cjs
index e2a15d7..aefef38 100644
--- a/.eslintrc.cjs
+++ b/.eslintrc.cjs
@@ -1,5 +1,6 @@
module.exports = {
root: true,
+ ignorePatterns: ['svelte.config.js'],
extends: ['standard'],
plugins: ['svelte3'],
env: {
diff --git a/.svelte-kit/dev/components/error.svelte b/.svelte-kit/dev/components/error.svelte
new file mode 100644
index 0000000..6d507d9
--- /dev/null
+++ b/.svelte-kit/dev/components/error.svelte
@@ -0,0 +1,25 @@
+
+
+
+
+
{status}
+
+{error.message}
+
+
+{#if error.stack}
+ {error.stack}
+{/if}
diff --git a/.svelte-kit/dev/components/layout.svelte b/.svelte-kit/dev/components/layout.svelte
new file mode 100644
index 0000000..4fa864c
--- /dev/null
+++ b/.svelte-kit/dev/components/layout.svelte
@@ -0,0 +1 @@
+
diff --git a/.svelte-kit/dev/generated/manifest.js b/.svelte-kit/dev/generated/manifest.js
new file mode 100644
index 0000000..8f734e3
--- /dev/null
+++ b/.svelte-kit/dev/generated/manifest.js
@@ -0,0 +1,26 @@
+const c = [
+ () => import('../components/layout.svelte'),
+ () => import('../components/error.svelte'),
+ () => import('../../../pages/index.svelte'),
+ () => import('../../../pages/embed-previewer/index.svelte'),
+ () => import('../../../pages/embeds/en/chart.svelte'),
+ () => import('../../../pages/embeds/en/page.svelte'),
+];
+
+const d = decodeURIComponent;
+
+export const routes = [
+ // pages/index.svelte
+ [/^\/$/, [c[0], c[2]], [c[1]]],
+
+ // pages/embed-previewer/index.svelte
+ [/^\/embed-previewer\/?$/, [c[0], c[3]], [c[1]]],
+
+ // pages/embeds/en/chart.svelte
+ [/^\/embeds\/en\/chart\/?$/, [c[0], c[4]], [c[1]]],
+
+ // pages/embeds/en/page.svelte
+ [/^\/embeds\/en\/page\/?$/, [c[0], c[5]], [c[1]]],
+];
+
+export const fallback = [c[0](), c[1]()];
diff --git a/.svelte-kit/dev/generated/root.svelte b/.svelte-kit/dev/generated/root.svelte
new file mode 100644
index 0000000..3afad68
--- /dev/null
+++ b/.svelte-kit/dev/generated/root.svelte
@@ -0,0 +1,66 @@
+
+
+
+
+ {#if components[1]}
+
+ {#if components[2]}
+
+ {/if}
+
+ {/if}
+
+
+{#if mounted}
+
+ {#if navigated}
+ {title}
+ {/if}
+
+{/if}
+
+
diff --git a/.svelte-kit/dev/runtime/app/env.js b/.svelte-kit/dev/runtime/app/env.js
new file mode 100644
index 0000000..4e7330c
--- /dev/null
+++ b/.svelte-kit/dev/runtime/app/env.js
@@ -0,0 +1,16 @@
+export { prerendering } from '../env.js';
+
+/**
+ * @type {import('$app/env').browser}
+ */
+const browser = !import.meta.env.SSR;
+/**
+ * @type {import('$app/env').dev}
+ */
+const dev = !!import.meta.env.DEV;
+/**
+ * @type {import('$app/env').amp}
+ */
+const amp = !!import.meta.env.VITE_SVELTEKIT_AMP;
+
+export { amp, browser, dev };
diff --git a/.svelte-kit/dev/runtime/app/navigation.js b/.svelte-kit/dev/runtime/app/navigation.js
new file mode 100644
index 0000000..3cea837
--- /dev/null
+++ b/.svelte-kit/dev/runtime/app/navigation.js
@@ -0,0 +1,59 @@
+import { router } from '../internal/singletons.js';
+import { g as get_base_uri } from '../chunks/utils.js';
+
+/**
+ * @param {string} name
+ */
+function guard(name) {
+ return () => {
+ throw new Error(`Cannot call ${name}(...) on the server`);
+ };
+}
+
+const goto = import.meta.env.SSR ? guard('goto') : goto_;
+const invalidate = import.meta.env.SSR ? guard('invalidate') : invalidate_;
+const prefetch = import.meta.env.SSR ? guard('prefetch') : prefetch_;
+const prefetchRoutes = import.meta.env.SSR
+ ? guard('prefetchRoutes')
+ : prefetchRoutes_;
+
+/**
+ * @type {import('$app/navigation').goto}
+ */
+async function goto_(href, opts) {
+ return router.goto(href, opts, []);
+}
+
+/**
+ * @type {import('$app/navigation').invalidate}
+ */
+async function invalidate_(resource) {
+ const { href } = new URL(resource, location.href);
+ return router.renderer.invalidate(href);
+}
+
+/**
+ * @type {import('$app/navigation').prefetch}
+ */
+function prefetch_(href) {
+ return router.prefetch(new URL(href, get_base_uri(document)));
+}
+
+/**
+ * @type {import('$app/navigation').prefetchRoutes}
+ */
+async function prefetchRoutes_(pathnames) {
+ const matching = pathnames
+ ? router.routes.filter((route) =>
+ pathnames.some((pathname) => route[0].test(pathname))
+ )
+ : router.routes;
+
+ const promises = matching.map(
+ (r) => r.length !== 1 && Promise.all(r[1].map((load) => load()))
+ );
+
+ await Promise.all(promises);
+}
+
+export { goto, invalidate, prefetch, prefetchRoutes };
diff --git a/.svelte-kit/dev/runtime/app/paths.js b/.svelte-kit/dev/runtime/app/paths.js
new file mode 100644
index 0000000..7ed4fff
--- /dev/null
+++ b/.svelte-kit/dev/runtime/app/paths.js
@@ -0,0 +1 @@
+export { assets, base } from '../paths.js';
diff --git a/.svelte-kit/dev/runtime/app/stores.js b/.svelte-kit/dev/runtime/app/stores.js
new file mode 100644
index 0000000..60ffc0d
--- /dev/null
+++ b/.svelte-kit/dev/runtime/app/stores.js
@@ -0,0 +1,89 @@
+import { getContext } from 'svelte';
+
+// const ssr = (import.meta as any).env.SSR;
+const ssr = typeof window === 'undefined'; // TODO why doesn't previous line work in build?
+
+// TODO remove this (for 1.0? after 1.0?)
+let warned = false;
+function stores() {
+ if (!warned) {
+ console.error('stores() is deprecated; use getStores() instead');
+ warned = true;
+ }
+ return getStores();
+}
+
+/**
+ * @type {import('$app/stores').getStores}
+ */
+const getStores = () => {
+ const stores = getContext('__svelte__');
+
+ return {
+ page: {
+ subscribe: stores.page.subscribe,
+ },
+ navigating: {
+ subscribe: stores.navigating.subscribe,
+ },
+ // @ts-ignore - deprecated, not part of type definitions, but still callable
+ get preloading() {
+ console.error(
+ 'stores.preloading is deprecated; use stores.navigating instead'
+ );
+ return {
+ subscribe: stores.navigating.subscribe,
+ };
+ },
+ session: stores.session,
+ };
+};
+
+/** @type {typeof import('$app/stores').page} */
+const page = {
+ /** @param {(value: any) => void} fn */
+ subscribe(fn) {
+ const store = getStores().page;
+ return store.subscribe(fn);
+ },
+};
+
+/** @type {typeof import('$app/stores').navigating} */
+const navigating = {
+ /** @param {(value: any) => void} fn */
+ subscribe(fn) {
+ const store = getStores().navigating;
+ return store.subscribe(fn);
+ },
+};
+
+/** @param {string} verb */
+const error = (verb) => {
+ throw new Error(
+ ssr
+ ? `Can only ${verb} session store in browser`
+ : `Cannot ${verb} session store before subscribing`
+ );
+};
+
+/** @type {typeof import('$app/stores').session} */
+const session = {
+ subscribe(fn) {
+ const store = getStores().session;
+
+ if (!ssr) {
+ session.set = store.set;
+ session.update = store.update;
+ }
+
+ return store.subscribe(fn);
+ },
+ set: (value) => {
+ error('set');
+ },
+ update: (updater) => {
+ error('update');
+ },
+};
+
+export { getStores, navigating, page, session, stores };
diff --git a/.svelte-kit/dev/runtime/chunks/utils.js b/.svelte-kit/dev/runtime/chunks/utils.js
new file mode 100644
index 0000000..0accb73
--- /dev/null
+++ b/.svelte-kit/dev/runtime/chunks/utils.js
@@ -0,0 +1,13 @@
+/** @param {HTMLDocument} doc */
+function get_base_uri(doc) {
+ let baseURI = doc.baseURI;
+
+ if (!baseURI) {
+ const baseTags = doc.getElementsByTagName('base');
+ baseURI = baseTags.length ? baseTags[0].href : doc.URL;
+ }
+
+ return baseURI;
+}
+
+export { get_base_uri as g };
diff --git a/.svelte-kit/dev/runtime/env.js b/.svelte-kit/dev/runtime/env.js
new file mode 100644
index 0000000..61d0f99
--- /dev/null
+++ b/.svelte-kit/dev/runtime/env.js
@@ -0,0 +1,8 @@
+let prerendering = false;
+
+/** @param {boolean} value */
+function set_prerendering(value) {
+ prerendering = value;
+}
+
+export { prerendering, set_prerendering };
diff --git a/.svelte-kit/dev/runtime/internal/singletons.js b/.svelte-kit/dev/runtime/internal/singletons.js
new file mode 100644
index 0000000..15eed78
--- /dev/null
+++ b/.svelte-kit/dev/runtime/internal/singletons.js
@@ -0,0 +1,20 @@
+/** @type {import('./router').Router} */
+let router;
+
+/** @type {string} */
+let base = '';
+
+/** @type {string} */
+let assets = '/.';
+
+/** @param {import('./router').Router} _ */
+function init(_) {
+ router = _;
+}
+
+/** @param {{ base: string, assets: string }} paths */
+function set_paths(paths) {
+ ({ base, assets } = paths);
+}
+
+export { assets, base, init, router, set_paths };
diff --git a/.svelte-kit/dev/runtime/internal/start.js b/.svelte-kit/dev/runtime/internal/start.js
new file mode 100644
index 0000000..266582b
--- /dev/null
+++ b/.svelte-kit/dev/runtime/internal/start.js
@@ -0,0 +1,1099 @@
+import Root from '../../generated/root.svelte';
+import { routes, fallback } from '../../generated/manifest.js';
+import { g as get_base_uri } from '../chunks/utils.js';
+import { writable } from 'svelte/store';
+import { init } from './singletons.js';
+import { set_paths } from '../paths.js';
+
+function scroll_state() {
+ return {
+ x: pageXOffset,
+ y: pageYOffset,
+ };
+}
+
+/**
+ * @param {Node} node
+ * @returns {HTMLAnchorElement | SVGAElement}
+ */
+function find_anchor(node) {
+ while (node && node.nodeName.toUpperCase() !== 'A') node = node.parentNode; // SVG elements have a lowercase name
+ return /** @type {HTMLAnchorElement | SVGAElement} */ (node);
+}
+
+class Router {
+ /** @param {{
+ * base: string;
+ * routes: import('types/internal').CSRRoute[];
+ * }} opts */
+ constructor({ base, routes }) {
+ this.base = base;
+ this.routes = routes;
+ }
+
+ /** @param {import('./renderer').Renderer} renderer */
+ init(renderer) {
+ /** @type {import('./renderer').Renderer} */
+ this.renderer = renderer;
+ renderer.router = this;
+
+ this.enabled = true;
+
+ if ('scrollRestoration' in history) {
+ history.scrollRestoration = 'manual';
+ }
+
+ // Adopted from Nuxt.js
+ // Reset scrollRestoration to auto when leaving page, allowing page reload
+ // and back-navigation from other pages to use the browser to restore the
+ // scrolling position.
+ addEventListener('beforeunload', () => {
+ history.scrollRestoration = 'auto';
+ });
+
+ // Setting scrollRestoration to manual again when returning to this page.
+ addEventListener('load', () => {
+ history.scrollRestoration = 'manual';
+ });
+
+ // There's no API to capture the scroll location right before the user
+ // hits the back/forward button, so we listen for scroll events
+
+ /** @type {NodeJS.Timeout} */
+ let scroll_timer;
+ addEventListener('scroll', () => {
+ clearTimeout(scroll_timer);
+ scroll_timer = setTimeout(() => {
+ // Store the scroll location in the history
+ // This will persist even if we navigate away from the site and come back
+ const new_state = {
+ ...(history.state || {}),
+ 'sveltekit:scroll': scroll_state(),
+ };
+ history.replaceState(new_state, document.title, window.location.href);
+ }, 50);
+ });
+
+ /** @param {MouseEvent} event */
+ const trigger_prefetch = (event) => {
+ const a = find_anchor(/** @type {Node} */ (event.target));
+ if (a && a.href && a.hasAttribute('sveltekit:prefetch')) {
+ this.prefetch(new URL(/** @type {string} */ (a.href)));
+ }
+ };
+
+ /** @type {NodeJS.Timeout} */
+ let mousemove_timeout;
+
+ /** @param {MouseEvent} event */
+ const handle_mousemove = (event) => {
+ clearTimeout(mousemove_timeout);
+ mousemove_timeout = setTimeout(() => {
+ trigger_prefetch(event);
+ }, 20);
+ };
+
+ addEventListener('touchstart', trigger_prefetch);
+ addEventListener('mousemove', handle_mousemove);
+
+ /** @param {MouseEvent} event */
+ addEventListener('click', (event) => {
+ if (!this.enabled) return;
+
+ // Adapted from https://github.com/visionmedia/page.js
+ // MIT license https://github.com/visionmedia/page.js#license
+ if (event.button || event.which !== 1) return;
+ if (event.metaKey || event.ctrlKey || event.shiftKey || event.altKey)
+ return;
+ if (event.defaultPrevented) return;
+
+ const a = find_anchor(/** @type {Node} */ (event.target));
+ if (!a) return;
+
+ if (!a.href) return;
+
+ // check if link is inside an svg
+ // in this case, both href and target are always inside an object
+ const svg =
+ typeof a.href === 'object' &&
+ a.href.constructor.name === 'SVGAnimatedString';
+ const href = String(
+ svg ? /** @type {SVGAElement} */ (a).href.baseVal : a.href
+ );
+
+ if (href === location.href) {
+ if (!location.hash) event.preventDefault();
+ return;
+ }
+
+ // Ignore if tag has
+ // 1. 'download' attribute
+ // 2. 'rel' attribute includes external
+ const rel = a.getAttribute('rel')?.split(/\s+/);
+
+ if (a.hasAttribute('download') || (rel && rel.includes('external'))) {
+ return;
+ }
+
+ // Ignore if has a target
+ if (svg ? /** @type {SVGAElement} */ (a).target.baseVal : a.target)
+ return;
+
+ const url = new URL(href);
+
+ // Don't handle hash changes
+ if (url.pathname === location.pathname && url.search === location.search)
+ return;
+
+ const noscroll = a.hasAttribute('sveltekit:noscroll');
+ history.pushState({}, '', url.href);
+ this._navigate(url, noscroll ? scroll_state() : null, [], url.hash);
+ event.preventDefault();
+ });
+
+ addEventListener('popstate', (event) => {
+ if (event.state && this.enabled) {
+ const url = new URL(location.href);
+ this._navigate(url, event.state['sveltekit:scroll'], []);
+ }
+ });
+
+ // make it possible to reset focus
+ document.body.setAttribute('tabindex', '-1');
+
+ // create initial history entry, so we can return here
+ history.replaceState(history.state || {}, '', location.href);
+ }
+
+ /**
+ * @param {URL} url
+ * @returns {import('./types').NavigationInfo}
+ */
+ parse(url) {
+ if (url.origin !== location.origin) return null;
+ if (!url.pathname.startsWith(this.base)) return null;
+
+ const path = decodeURIComponent(
+ url.pathname.slice(this.base.length) || '/'
+ );
+
+ const routes = this.routes.filter(([pattern]) => pattern.test(path));
+
+ const query = new URLSearchParams(url.search);
+ const id = `${path}?${query}`;
+
+ return { id, routes, path, query };
+ }
+
+ /**
+ * @param {string} href
+ * @param {{ noscroll?: boolean, replaceState?: boolean }} opts
+ * @param {string[]} chain
+ */
+ async goto(href, { noscroll = false, replaceState = false } = {}, chain) {
+ if (this.enabled) {
+ const url = new URL(href, get_base_uri(document));
+
+ history[replaceState ? 'replaceState' : 'pushState']({}, '', href);
+ return this._navigate(
+ url,
+ noscroll ? scroll_state() : null,
+ chain,
+ url.hash
+ );
+ }
+
+ location.href = href;
+ return new Promise(() => {
+ /* never resolves */
+ });
+ }
+
+ enable() {
+ this.enabled = true;
+ }
+
+ disable() {
+ this.enabled = false;
+ }
+
+ /**
+ * @param {URL} url
+ * @returns {Promise}
+ */
+ async prefetch(url) {
+ return this.renderer.load(this.parse(url));
+ }
+
+ /**
+ * @param {URL} url
+ * @param {{ x: number, y: number }} scroll
+ * @param {string[]} chain
+ * @param {string} [hash]
+ */
+ async _navigate(url, scroll, chain, hash) {
+ const info = this.parse(url);
+
+ this.renderer.notify({
+ path: info.path,
+ query: info.query,
+ });
+
+ // remove trailing slashes
+ if (location.pathname.endsWith('/') && location.pathname !== '/') {
+ history.replaceState(
+ {},
+ '',
+ `${location.pathname.slice(0, -1)}${location.search}`
+ );
+ }
+
+ await this.renderer.update(info, chain, false);
+
+ document.body.focus();
+
+ const deep_linked = hash && document.getElementById(hash.slice(1));
+ if (scroll) {
+ scrollTo(scroll.x, scroll.y);
+ } else if (deep_linked) {
+ // scroll is an element id (from a hash), we need to compute y
+ scrollTo(0, deep_linked.getBoundingClientRect().top + scrollY);
+ } else {
+ scrollTo(0, 0);
+ }
+ }
+}
+
+/**
+ * @param {import('types/page').LoadOutput} loaded
+ * @returns {import('types/internal').NormalizedLoadOutput}
+ */
+function normalize(loaded) {
+ // TODO should this behaviour be dev-only?
+
+ if (loaded.error) {
+ const error =
+ typeof loaded.error === 'string' ? new Error(loaded.error) : loaded.error;
+ const status = loaded.status;
+
+ if (!(error instanceof Error)) {
+ return {
+ status: 500,
+ error: new Error(
+ `"error" property returned from load() must be a string or instance of Error, received type "${typeof error}"`
+ ),
+ };
+ }
+
+ if (!status || status < 400 || status > 599) {
+ console.warn(
+ '"error" returned from load() without a valid status code — defaulting to 500'
+ );
+ return { status: 500, error };
+ }
+
+ return { status, error };
+ }
+
+ if (loaded.redirect) {
+ if (!loaded.status || Math.floor(loaded.status / 100) !== 3) {
+ return {
+ status: 500,
+ error: new Error(
+ '"redirect" property returned from load() must be accompanied by a 3xx status code'
+ ),
+ };
+ }
+
+ if (typeof loaded.redirect !== 'string') {
+ return {
+ status: 500,
+ error: new Error(
+ '"redirect" property returned from load() must be a string'
+ ),
+ };
+ }
+ }
+
+ return /** @type {import('types/internal').NormalizedLoadOutput} */ (loaded);
+}
+
+/** @param {any} value */
+function page_store(value) {
+ const store = writable(value);
+ let ready = true;
+
+ function notify() {
+ ready = true;
+ store.update((val) => val);
+ }
+
+ /** @param {any} new_value */
+ function set(new_value) {
+ ready = false;
+ store.set(new_value);
+ }
+
+ /** @param {(value: any) => void} run */
+ function subscribe(run) {
+ /** @type {any} */
+ let old_value;
+ return store.subscribe((new_value) => {
+ if (old_value === undefined || (ready && new_value !== old_value)) {
+ run((old_value = new_value));
+ }
+ });
+ }
+
+ return { notify, set, subscribe };
+}
+
+/**
+ * @param {RequestInfo} resource
+ * @param {RequestInit} opts
+ */
+function initial_fetch(resource, opts) {
+ const url = typeof resource === 'string' ? resource : resource.url;
+ const script = document.querySelector(
+ `script[type="svelte-data"][url="${url}"]`
+ );
+ if (script) {
+ const { body, ...init } = JSON.parse(script.textContent);
+ return Promise.resolve(new Response(body, init));
+ }
+
+ return fetch(resource, opts);
+}
+
+/** @typedef {import('types/internal').CSRComponent} CSRComponent */
+
+class Renderer {
+ /** @param {{
+ * Root: CSRComponent;
+ * fallback: [CSRComponent, CSRComponent];
+ * target: Node;
+ * session: any;
+ * host: string;
+ * }} opts */
+ constructor({ Root, fallback, target, session, host }) {
+ this.Root = Root;
+ this.fallback = fallback;
+ this.host = host;
+
+ /** @type {import('./router').Router} */
+ this.router = null;
+
+ this.target = target;
+
+ this.started = false;
+
+ this.session_id = 1;
+ this.invalid = new Set();
+ this.invalidating = null;
+
+ /** @type {import('./types').NavigationState} */
+ this.current = {
+ page: null,
+ session_id: null,
+ branch: [],
+ };
+
+ /** @type {Map} */
+ this.cache = new Map();
+
+ this.loading = {
+ id: null,
+ promise: null,
+ };
+
+ this.stores = {
+ page: page_store({}),
+ navigating: writable(null),
+ session: writable(session),
+ };
+
+ this.$session = null;
+
+ this.root = null;
+
+ let ready = false;
+ this.stores.session.subscribe(async (value) => {
+ this.$session = value;
+
+ if (!ready) return;
+ this.session_id += 1;
+
+ const info = this.router.parse(new URL(location.href));
+ this.update(info, [], true);
+ });
+ ready = true;
+ }
+
+ /**
+ * @param {{
+ * status: number;
+ * error: Error;
+ * nodes: Array>;
+ * page: import('types/page').Page;
+ * }} selected
+ */
+ async start({ status, error, nodes, page }) {
+ /** @type {import('./types').BranchNode[]} */
+ const branch = [];
+
+ /** @type {Record} */
+ let context = {};
+
+ /** @type {import('./types').NavigationResult} */
+ let result;
+
+ /** @type {number} */
+ let new_status;
+
+ /** @type {Error} new_error */
+ let new_error;
+
+ try {
+ for (let i = 0; i < nodes.length; i += 1) {
+ const is_leaf = i === nodes.length - 1;
+
+ const node = await this._load_node({
+ module: await nodes[i],
+ page,
+ context,
+ status: is_leaf && status,
+ error: is_leaf && error,
+ });
+
+ branch.push(node);
+
+ if (node && node.loaded) {
+ if (node.loaded.error) {
+ if (error) throw node.loaded.error;
+ new_status = node.loaded.status;
+ new_error = node.loaded.error;
+ } else if (node.loaded.context) {
+ context = {
+ ...context,
+ ...node.loaded.context,
+ };
+ }
+ }
+ }
+
+ result = await this._get_navigation_result_from_branch({ page, branch });
+ } catch (e) {
+ if (error) throw e;
+
+ new_status = 500;
+ new_error = e;
+ }
+
+ if (new_error) {
+ result = await this._load_error({
+ status: new_status,
+ error: new_error,
+ path: page.path,
+ query: page.query,
+ });
+ }
+
+ if (result.redirect) {
+ // this is a real edge case — `load` would need to return
+ // a redirect but only in the browser
+ location.href = new URL(result.redirect, location.href).href;
+ return;
+ }
+
+ this._init(result);
+ }
+
+ /** @param {{ path: string, query: URLSearchParams }} destination */
+ notify({ path, query }) {
+ dispatchEvent(new CustomEvent('sveltekit:navigation-start'));
+
+ if (this.started) {
+ this.stores.navigating.set({
+ from: {
+ path: this.current.page.path,
+ query: this.current.page.query,
+ },
+ to: {
+ path,
+ query,
+ },
+ });
+ }
+ }
+
+ /**
+ * @param {import('./types').NavigationInfo} info
+ * @param {string[]} chain
+ * @param {boolean} no_cache
+ */
+ async update(info, chain, no_cache) {
+ const token = (this.token = {});
+ let navigation_result = await this._get_navigation_result(info, no_cache);
+
+ // abort if user navigated during update
+ if (token !== this.token) return;
+
+ this.invalid.clear();
+
+ if (navigation_result.redirect) {
+ if (chain.length > 10 || chain.includes(info.path)) {
+ navigation_result = await this._load_error({
+ status: 500,
+ error: new Error('Redirect loop'),
+ path: info.path,
+ query: info.query,
+ });
+ } else {
+ if (this.router) {
+ this.router.goto(navigation_result.redirect, { replaceState: true }, [
+ ...chain,
+ info.path,
+ ]);
+ } else {
+ location.href = new URL(
+ navigation_result.redirect,
+ location.href
+ ).href;
+ }
+
+ return;
+ }
+ }
+
+ if (navigation_result.reload) {
+ location.reload();
+ } else if (this.started) {
+ this.current = navigation_result.state;
+
+ this.root.$set(navigation_result.props);
+ this.stores.navigating.set(null);
+
+ await 0;
+ } else {
+ this._init(navigation_result);
+ }
+
+ dispatchEvent(new CustomEvent('sveltekit:navigation-end'));
+ this.loading.promise = null;
+ this.loading.id = null;
+
+ const leaf_node =
+ navigation_result.state.branch[navigation_result.state.branch.length - 1];
+ if (leaf_node && leaf_node.module.router === false) {
+ this.router.disable();
+ } else {
+ this.router.enable();
+ }
+ }
+
+ /**
+ * @param {import('./types').NavigationInfo} info
+ * @returns {Promise}
+ */
+ load(info) {
+ this.loading.promise = this._get_navigation_result(info, false);
+ this.loading.id = info.id;
+
+ return this.loading.promise;
+ }
+
+ /** @param {string} href */
+ invalidate(href) {
+ this.invalid.add(href);
+
+ if (!this.invalidating) {
+ this.invalidating = Promise.resolve().then(async () => {
+ const info = this.router.parse(new URL(location.href));
+ await this.update(info, [], true);
+
+ this.invalidating = null;
+ });
+ }
+
+ return this.invalidating;
+ }
+
+ /** @param {import('./types').NavigationResult} result */
+ _init(result) {
+ this.current = result.state;
+
+ const style = document.querySelector('style[data-svelte]');
+ if (style) style.remove();
+
+ this.root = new this.Root({
+ target: this.target,
+ props: {
+ stores: this.stores,
+ ...result.props,
+ },
+ hydrate: true,
+ });
+
+ this.started = true;
+ }
+
+ /**
+ * @param {import('./types').NavigationInfo} info
+ * @param {boolean} no_cache
+ * @returns {Promise}
+ */
+ async _get_navigation_result(info, no_cache) {
+ if (this.loading.id === info.id) {
+ return this.loading.promise;
+ }
+
+ for (let i = 0; i < info.routes.length; i += 1) {
+ const route = info.routes[i];
+
+ if (route.length === 1) {
+ return { reload: true };
+ }
+
+ // load code for subsequent routes immediately, if they are as
+ // likely to match the current path/query as the current one
+ let j = i + 1;
+ while (j < info.routes.length) {
+ const next = info.routes[j];
+ if (next[0].toString() === route[0].toString()) {
+ if (next.length !== 1) next[1].forEach((loader) => loader());
+ j += 1;
+ } else {
+ break;
+ }
+ }
+
+ const result = await this._load(
+ {
+ route,
+ path: info.path,
+ query: info.query,
+ },
+ no_cache
+ );
+ if (result) return result;
+ }
+
+ return await this._load_error({
+ status: 404,
+ error: new Error(`Not found: ${info.path}`),
+ path: info.path,
+ query: info.query,
+ });
+ }
+
+ /**
+ *
+ * @param {{
+ * page: import('types/page').Page;
+ * branch: import('./types').BranchNode[]
+ * }} opts
+ */
+ async _get_navigation_result_from_branch({ page, branch }) {
+ const filtered = branch.filter(Boolean);
+
+ /** @type {import('./types').NavigationResult} */
+ const result = {
+ state: {
+ page,
+ branch,
+ session_id: this.session_id,
+ },
+ props: {
+ components: filtered.map((node) => node.module.default),
+ },
+ };
+
+ for (let i = 0; i < filtered.length; i += 1) {
+ if (filtered[i].loaded)
+ result.props[`props_${i}`] = await filtered[i].loaded.props;
+ }
+
+ if (
+ !this.current.page ||
+ page.path !== this.current.page.path ||
+ page.query.toString() !== this.current.page.query.toString()
+ ) {
+ result.props.page = page;
+ }
+
+ const leaf = filtered[filtered.length - 1];
+ const maxage = leaf.loaded && leaf.loaded.maxage;
+
+ if (maxage) {
+ const key = `${page.path}?${page.query}`;
+ let ready = false;
+
+ const clear = () => {
+ if (this.cache.get(key) === result) {
+ this.cache.delete(key);
+ }
+
+ unsubscribe();
+ clearTimeout(timeout);
+ };
+
+ const timeout = setTimeout(clear, maxage * 1000);
+
+ const unsubscribe = this.stores.session.subscribe(() => {
+ if (ready) clear();
+ });
+
+ ready = true;
+
+ this.cache.set(key, result);
+ }
+
+ return result;
+ }
+
+ /**
+ *
+ * @param {{
+ * status?: number;
+ * error?: Error;
+ * module: CSRComponent;
+ * page: import('types/page').Page;
+ * context: Record;
+ * }} options
+ * @returns
+ */
+ async _load_node({ status, error, module, page, context }) {
+ /** @type {import('./types').BranchNode} */
+ const node = {
+ module,
+ uses: {
+ params: new Set(),
+ path: false,
+ query: false,
+ session: false,
+ context: false,
+ dependencies: [],
+ },
+ loaded: null,
+ context,
+ };
+
+ /** @type {Record} */
+ const params = {};
+ for (const key in page.params) {
+ Object.defineProperty(params, key, {
+ get() {
+ node.uses.params.add(key);
+ return page.params[key];
+ },
+ enumerable: true,
+ });
+ }
+
+ const session = this.$session;
+
+ if (module.load) {
+ const { started } = this;
+
+ /** @type {import('types/page').LoadInput | import('types/page').ErrorLoadInput} */
+ const load_input = {
+ page: {
+ host: page.host,
+ params,
+ get path() {
+ node.uses.path = true;
+ return page.path;
+ },
+ get query() {
+ node.uses.query = true;
+ return page.query;
+ },
+ },
+ get session() {
+ node.uses.session = true;
+ return session;
+ },
+ get context() {
+ node.uses.context = true;
+ return { ...context };
+ },
+ fetch(resource, info) {
+ const url = typeof resource === 'string' ? resource : resource.url;
+ const { href } = new URL(url, new URL(page.path, document.baseURI));
+ node.uses.dependencies.push(href);
+
+ return started
+ ? fetch(resource, info)
+ : initial_fetch(resource, info);
+ },
+ };
+
+ if (error) {
+ /** @type {import('types/page').ErrorLoadInput} */ (load_input).status = status;
+ /** @type {import('types/page').ErrorLoadInput} */ (load_input).error = error;
+ }
+
+ const loaded = await module.load.call(null, load_input);
+
+ // if the page component returns nothing from load, fall through
+ if (!loaded) return;
+
+ node.loaded = normalize(loaded);
+ if (node.loaded.context) node.context = node.loaded.context;
+ }
+
+ return node;
+ }
+
+ /**
+ * @param {import('./types').NavigationCandidate} selected
+ * @param {boolean} no_cache
+ * @returns {Promise}
+ */
+ async _load({ route, path, query }, no_cache) {
+ const key = `${path}?${query}`;
+
+ if (!no_cache && this.cache.has(key)) {
+ return this.cache.get(key);
+ }
+
+ const [pattern, a, b, get_params] = route;
+ const params = get_params ? get_params(pattern.exec(path)) : {};
+
+ const changed = this.current.page && {
+ path: path !== this.current.page.path,
+ params: Object.keys(params).filter(
+ (key) => this.current.page.params[key] !== params[key]
+ ),
+ query: query.toString() !== this.current.page.query.toString(),
+ session: this.session_id !== this.current.session_id,
+ };
+
+ /** @type {import('types/page').Page} */
+ const page = { host: this.host, path, query, params };
+
+ /** @type {import('./types').BranchNode[]} */
+ const branch = [];
+
+ /** @type {Record} */
+ let context = {};
+ let context_changed = false;
+
+ /** @type {number} */
+ let status = 200;
+
+ /** @type {Error} */
+ let error = null;
+
+ // preload modules
+ a.forEach((loader) => loader());
+
+ load: for (let i = 0; i < a.length; i += 1) {
+ /** @type {import('./types').BranchNode} */
+ let node;
+
+ try {
+ if (!a[i]) continue;
+
+ const module = await a[i]();
+ const previous = this.current.branch[i];
+
+ const changed_since_last_render =
+ !previous ||
+ module !== previous.module ||
+ (changed.path && previous.uses.path) ||
+ changed.params.some((param) => previous.uses.params.has(param)) ||
+ (changed.query && previous.uses.query) ||
+ (changed.session && previous.uses.session) ||
+ previous.uses.dependencies.some((dep) => this.invalid.has(dep)) ||
+ (context_changed && previous.uses.context);
+
+ if (changed_since_last_render) {
+ node = await this._load_node({
+ module,
+ page,
+ context,
+ });
+
+ const is_leaf = i === a.length - 1;
+
+ if (node && node.loaded) {
+ if (node.loaded.error) {
+ status = node.loaded.status;
+ error = node.loaded.error;
+ }
+
+ if (node.loaded.redirect) {
+ return {
+ redirect: node.loaded.redirect,
+ };
+ }
+
+ if (node.loaded.context) {
+ context_changed = true;
+ }
+ } else if (is_leaf && module.load) {
+ // if the leaf node has a `load` function
+ // that returns nothing, fall through
+ return;
+ }
+ } else {
+ node = previous;
+ }
+ } catch (e) {
+ status = 500;
+ error = e;
+ }
+
+ if (error) {
+ while (i--) {
+ if (b[i]) {
+ let error_loaded;
+
+ /** @type {import('./types').BranchNode} */
+ let node_loaded;
+ let j = i;
+ while (!(node_loaded = branch[j])) {
+ j -= 1;
+ }
+
+ try {
+ error_loaded = await this._load_node({
+ status,
+ error,
+ module: await b[i](),
+ page,
+ context: node_loaded.context,
+ });
+
+ if (error_loaded.loaded.error) {
+ continue;
+ }
+
+ branch.push(error_loaded);
+ break load;
+ } catch (e) {
+ continue;
+ }
+ }
+ }
+
+ return await this._load_error({
+ status,
+ error,
+ path,
+ query,
+ });
+ } else {
+ if (node && node.loaded && node.loaded.context) {
+ context = {
+ ...context,
+ ...node.loaded.context,
+ };
+ }
+
+ branch.push(node);
+ }
+ }
+
+ return await this._get_navigation_result_from_branch({ page, branch });
+ }
+
+ /**
+ * @param {{
+ * status: number;
+ * error: Error;
+ * path: string;
+ * query: URLSearchParams
+ * }} opts
+ */
+ async _load_error({ status, error, path, query }) {
+ const page = {
+ host: this.host,
+ path,
+ query,
+ params: {},
+ };
+
+ const node = await this._load_node({
+ module: await this.fallback[0],
+ page,
+ context: {},
+ });
+
+ const branch = [
+ node,
+ await this._load_node({
+ status,
+ error,
+ module: await this.fallback[1],
+ page,
+ context: node && node.loaded && node.loaded.context,
+ }),
+ ];
+
+ return await this._get_navigation_result_from_branch({ page, branch });
+ }
+}
+
+// @ts-ignore
+
+/** @param {{
+ * paths: {
+ * assets: string;
+ * base: string;
+ * },
+ * target: Node;
+ * session: any;
+ * host: string;
+ * route: boolean;
+ * spa: boolean;
+ * hydrate: {
+ * status: number;
+ * error: Error;
+ * nodes: Array>;
+ * page: import('types/page').Page;
+ * };
+ * }} opts */
+async function start({ paths, target, session, host, route, spa, hydrate }) {
+ if (import.meta.env.DEV && !target) {
+ throw new Error(
+ 'Missing target element. See https://kit.svelte.dev/docs#configuration-target'
+ );
+ }
+
+ const router =
+ route &&
+ new Router({
+ base: paths.base,
+ routes,
+ });
+
+ const renderer = new Renderer({
+ Root,
+ fallback,
+ target,
+ session,
+ host,
+ });
+
+ init(router);
+ set_paths(paths);
+
+ if (hydrate) await renderer.start(hydrate);
+ if (route) router.init(renderer);
+
+ if (spa) router.goto(location.href, { replaceState: true }, []);
+
+ dispatchEvent(new CustomEvent('sveltekit:start'));
+}
+
+if (import.meta.env.VITE_SVELTEKIT_SERVICE_WORKER) {
+ if ('serviceWorker' in navigator) {
+ navigator.serviceWorker.register(
+ /** @type {string} */ (import.meta.env.VITE_SVELTEKIT_SERVICE_WORKER)
+ );
+ }
+}
+
+export { start };
diff --git a/.svelte-kit/dev/runtime/paths.js b/.svelte-kit/dev/runtime/paths.js
new file mode 100644
index 0000000..ff24e1d
--- /dev/null
+++ b/.svelte-kit/dev/runtime/paths.js
@@ -0,0 +1,12 @@
+/** @type {string} */
+let base = '';
+
+/** @type {string} */
+let assets = '/.';
+
+/** @param {{ base: string, assets: string }} paths */
+function set_paths(paths) {
+ ({ base, assets } = paths);
+}
+
+export { assets, base, set_paths };
diff --git a/CLIENT_README.txt b/CLIENT_README.txt
new file mode 100644
index 0000000..d91319c
--- /dev/null
+++ b/CLIENT_README.txt
@@ -0,0 +1 @@
+To embed this graphic in your CMS, use the embed code in the EMBED.txt file in this package.
\ No newline at end of file
diff --git a/package.json b/package.json
index fcf3b22..a0a99cc 100644
--- a/package.json
+++ b/package.json
@@ -30,8 +30,8 @@
},
"devDependencies": {
"@reuters-graphics/eslint-config": "^0.0.2",
- "@reuters-graphics/graphics-bin": "^0.0.14",
- "@reuters-graphics/graphics-kit-publisher": "^0.0.12",
+ "@reuters-graphics/graphics-bin": "^0.0.16",
+ "@reuters-graphics/graphics-kit-publisher": "^0.0.17",
"@rollup/plugin-dsv": "^2.0.1",
"@sveltejs/kit": "next",
"autoprefixer": "^10.2.5",
@@ -46,7 +46,7 @@
"sass": "^1.0.0",
"svelte": "^3.32.1",
"svelte-preprocess": "^4.0.0",
- "vite": "^2.1.0"
+ "vite": "^2.2.3"
},
"engines": {
"node": ">= 14.16.0"
diff --git a/src/FutureGraphicsComponentsLib/SEO/analytics.js b/src/FutureGraphicsComponentsLib/SEO/analytics.js
new file mode 100644
index 0000000..9bc5b26
--- /dev/null
+++ b/src/FutureGraphicsComponentsLib/SEO/analytics.js
@@ -0,0 +1,32 @@
+/* eslint-disable */
+const attachScript = function (i, s, o, g, r, a, m) {
+ i.GoogleAnalyticsObject = r;
+ (i[r] =
+ i[r] ||
+ function () {
+ (i[r].q = i[r].q || []).push(arguments);
+ }),
+ (i[r].l = 1 * new Date());
+ (a = s.createElement(o)), (m = s.getElementsByTagName(o)[0]);
+ a.async = 1;
+ a.src = g;
+ m.parentNode.insertBefore(a, m);
+};
+/* eslint-enable */
+
+export default (page, title) => {
+ attachScript(
+ window,
+ document,
+ 'script',
+ 'https://www.google-analytics.com/analytics.js',
+ 'ga'
+ );
+
+ window.ga('create', 'UA-41619329-3', { cookieDomain: 'auto' });
+ window.ga('require', 'linkid', 'linkid.js');
+ window.ga('send', 'pageview', {
+ page,
+ title,
+ });
+};
diff --git a/src/FutureGraphicsComponentsLib/SEO/index.svelte b/src/FutureGraphicsComponentsLib/SEO/index.svelte
index 047f43f..f7a9ba1 100644
--- a/src/FutureGraphicsComponentsLib/SEO/index.svelte
+++ b/src/FutureGraphicsComponentsLib/SEO/index.svelte
@@ -1,104 +1,149 @@
+
+
-
+
{seoTitle}
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
+
+
+
-
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
- {@html ''}
- {@html ''}
+ {@html ''}
+ {@html ''}
-
-
diff --git a/src/FutureGraphicsComponentsLib/SEO/publisherTags.js b/src/FutureGraphicsComponentsLib/SEO/publisherTags.js
new file mode 100644
index 0000000..527d2ba
--- /dev/null
+++ b/src/FutureGraphicsComponentsLib/SEO/publisherTags.js
@@ -0,0 +1,26 @@
+export default () => {
+ const googletag = window.googletag || {};
+ googletag.cmd = googletag.cmd || [];
+ (function () {
+ const gads = document.createElement('script');
+ gads.async = true;
+ gads.type = 'text/javascript';
+ const useSSL = document.location.protocol === 'https:';
+ gads.src =
+ (useSSL ? 'https:' : 'http:') +
+ '//www.googletagservices.com/tag/js/gpt.js';
+ const node = document.getElementsByTagName('script')[0];
+ node.parentNode.insertBefore(gads, node);
+ })();
+ googletag.cmd.push(function () {
+ googletag
+ .defineSlot(
+ '/4735792/reuters_investigates',
+ [[300, 250]],
+ 'div-gpt-ad-1441822201033-0'
+ )
+ .addService(googletag.pubads());
+ googletag.pubads().enableSingleRequest();
+ googletag.enableServices();
+ });
+};
diff --git a/svelte.config.cjs b/svelte.config.cjs
deleted file mode 100644
index eeafba7..0000000
--- a/svelte.config.cjs
+++ /dev/null
@@ -1,77 +0,0 @@
-const sveltePreprocess = require('svelte-preprocess');
-const pkg = require('./package.json');
-const url = require('url');
-const path = require('path');
-const dsv = require('@rollup/plugin-dsv');
-const svelteKitPagesPlugin = require('./bin/svelte-kit/plugins/svelte-kit-pages/index.cjs');
-
-const getRootRelativePath = (homepageURL) => {
- if (!homepageURL) return '';
- const page = new url.URL(homepageURL);
- return homepageURL.replace(`${page.protocol}//${page.host}`, '').replace(/\/$/, '');
-};
-
-module.exports = {
- preprocess: sveltePreprocess({
- preserve: ['ld+json'],
- scss: {
- includePaths: ['src/', 'node_modules/bootstrap/scss/'],
- importer: [
- (url) => {
- // Redirect tilde-prefixed imports to node_modules
- if (/^~/.test(url)) return { file: `node_modules/${url.replace('~', '')}` };
- return null;
- },
- ],
- },
- postcss: {
- plugins: [require('autoprefixer')],
- },
- }),
- kit: {
- appDir: '_app',
- paths: {
- assets: process.env.NODE_ENV === 'production' ? getRootRelativePath(process.env.PREVIEW ? pkg.reuters.preview : pkg.homepage) + '/cdn' : '',
- base: process.env.NODE_ENV === 'production' ? getRootRelativePath(process.env.PREVIEW ? pkg.reuters.preview : pkg.homepage) : '',
- },
- adapter: {
- name: 'static-adapter',
- async adapt(builder) {
- builder.copy_static_files('dist/cdn');
- builder.copy_client_files('dist/cdn');
- await builder.prerender({
- all: true,
- dest: 'dist',
- fallback: null,
- });
- },
- },
- files: {
- assets: 'src/statics',
- lib: 'src/lib',
- routes: 'pages',
- template: 'src/template.html',
- },
- target: '#svelte-app',
- vite: {
- build: { target: 'es2015' },
- resolve: {
- alias: {
- $utils: path.resolve(__dirname, 'src/utils'),
- $pkg: path.resolve(__dirname, 'package.json'),
- $imgs: path.resolve(__dirname, 'src/statics/images/manifest.json'),
- $locales: path.resolve(__dirname, 'locales'),
- 'reuters-components': path.resolve(__dirname, 'src/FutureGraphicsComponentsLib'),
- },
- },
- optimizeDeps: {
- exclude: ['svelte-fa'],
- include: ['marked', 'lodash-es'],
- },
- plugins: [
- dsv(),
- svelteKitPagesPlugin(),
- ],
- },
- },
-};
diff --git a/svelte.config.js b/svelte.config.js
new file mode 100644
index 0000000..a4327f9
--- /dev/null
+++ b/svelte.config.js
@@ -0,0 +1,91 @@
+import autoprefixer from 'autoprefixer';
+import dsv from '@rollup/plugin-dsv';
+import fs from 'fs-extra';
+import svelteKitPagesPlugin from './bin/svelte-kit/plugins/svelte-kit-pages/index.cjs';
+import sveltePreprocess from 'svelte-preprocess';
+import url from 'url';
+
+const getRootRelativePath = (homepageURL) => {
+ if (!homepageURL) return '';
+ const page = new url.URL(homepageURL);
+ return homepageURL
+ .replace(`${page.protocol}//${page.host}`, '')
+ .replace(/\/$/, '');
+};
+
+const pkg = fs.readJSONSync(new URL('./package.json', import.meta.url));
+
+process.env.VITE_DATELINE = new Date().toISOString();
+
+export default {
+ preprocess: sveltePreprocess({
+ preserve: ['ld+json'],
+ scss: {
+ includePaths: ['src/', 'node_modules/bootstrap/scss/'],
+ importer: [
+ (url) => {
+ // Redirect tilde-prefixed imports to node_modules
+ if (/^~/.test(url))
+ return { file: `node_modules/${url.replace('~', '')}` };
+ return null;
+ },
+ ],
+ },
+ postcss: {
+ plugins: [autoprefixer],
+ },
+ }),
+ kit: {
+ appDir: '_app',
+ paths: {
+ assets:
+ process.env.NODE_ENV === 'production'
+ ? getRootRelativePath(
+ process.env.PREVIEW ? pkg.reuters.preview : pkg.homepage
+ ) + '/cdn'
+ : '',
+ base:
+ process.env.NODE_ENV === 'production'
+ ? getRootRelativePath(
+ process.env.PREVIEW ? pkg.reuters.preview : pkg.homepage
+ )
+ : '',
+ },
+ adapter: {
+ name: 'static-adapter',
+ async adapt(builder) {
+ builder.copy_static_files('dist/cdn');
+ builder.copy_client_files('dist/cdn');
+ await builder.prerender({
+ all: true,
+ dest: 'dist',
+ fallback: null,
+ });
+ },
+ },
+ files: {
+ assets: 'src/statics',
+ lib: 'src/lib',
+ routes: 'pages',
+ template: 'src/template.html',
+ },
+ target: '#svelte-app',
+ vite: {
+ build: { target: 'es2015' },
+ resolve: {
+ alias: {
+ $utils: '/src/utils',
+ $pkg: '/package.json',
+ $imgs: '/src/statics/images/manifest.json',
+ $locales: '/locales',
+ 'reuters-components': '/src/FutureGraphicsComponentsLib',
+ },
+ },
+ optimizeDeps: {
+ exclude: ['svelte-fa'],
+ include: ['marked', 'lodash-es'],
+ },
+ plugins: [dsv(), svelteKitPagesPlugin()],
+ },
+ },
+};
diff --git a/yarn.lock b/yarn.lock
index 86dd99e..f7c5141 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -16,12 +16,12 @@
dependencies:
"@babel/highlight" "^7.12.13"
-"@babel/generator@^7.13.9":
- version "7.13.9"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.9.tgz#3a7aa96f9efb8e2be42d38d80e2ceb4c64d8de39"
- integrity sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==
+"@babel/generator@^7.14.0":
+ version "7.14.1"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.1.tgz#1f99331babd65700183628da186f36f63d615c93"
+ integrity sha512-TMGhsXMXCP/O1WtQmZjpEYDhCYC9vFhayWZPJSZCGkPJgUqX0rF0wwtrYvnzVxIjcF80tkUertXVk5cwqi5cAQ==
dependencies:
- "@babel/types" "^7.13.0"
+ "@babel/types" "^7.14.1"
jsesc "^2.5.1"
source-map "^0.5.0"
@@ -48,24 +48,24 @@
dependencies:
"@babel/types" "^7.12.13"
-"@babel/helper-validator-identifier@^7.12.11":
- version "7.12.11"
- resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed"
- integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==
+"@babel/helper-validator-identifier@^7.14.0":
+ version "7.14.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288"
+ integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==
"@babel/highlight@^7.10.4", "@babel/highlight@^7.12.13":
- version "7.13.10"
- resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.13.10.tgz#a8b2a66148f5b27d666b15d81774347a731d52d1"
- integrity sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==
+ version "7.14.0"
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.0.tgz#3197e375711ef6bf834e67d0daec88e4f46113cf"
+ integrity sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==
dependencies:
- "@babel/helper-validator-identifier" "^7.12.11"
+ "@babel/helper-validator-identifier" "^7.14.0"
chalk "^2.0.0"
js-tokens "^4.0.0"
-"@babel/parser@^7.12.13", "@babel/parser@^7.13.15", "@babel/parser@^7.7.0":
- version "7.13.15"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.15.tgz#8e66775fb523599acb6a289e12929fa5ab0954d8"
- integrity sha512-b9COtcAlVEQljy/9fbcMHpG+UIW9ReF+gpaxDHTlZd0c6/UU9ng8zdySAW9sRTzpvcdCHn6bUcbuYUgGzLAWVQ==
+"@babel/parser@^7.12.13", "@babel/parser@^7.14.0", "@babel/parser@^7.7.0":
+ version "7.14.1"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.1.tgz#1bd644b5db3f5797c4479d89ec1817fe02b84c47"
+ integrity sha512-muUGEKu8E/ftMTPlNp+mc6zL3E9zKWmF5sDHZ5MSsoTP9Wyz64AhEf9kD08xYJ7w6Hdcu8H550ircnPyWSIF0Q==
"@babel/template@^7.12.13":
version "7.12.13"
@@ -77,26 +77,25 @@
"@babel/types" "^7.12.13"
"@babel/traverse@^7.7.0":
- version "7.13.15"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.15.tgz#c38bf7679334ddd4028e8e1f7b3aa5019f0dada7"
- integrity sha512-/mpZMNvj6bce59Qzl09fHEs8Bt8NnpEDQYleHUPZQ3wXUMvXi+HJPLars68oAbmp839fGoOkv2pSL2z9ajCIaQ==
+ version "7.14.0"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.0.tgz#cea0dc8ae7e2b1dec65f512f39f3483e8cc95aef"
+ integrity sha512-dZ/a371EE5XNhTHomvtuLTUyx6UEoJmYX+DT5zBCQN3McHemsuIaKKYqsc/fs26BEkHs/lBZy0J571LP5z9kQA==
dependencies:
"@babel/code-frame" "^7.12.13"
- "@babel/generator" "^7.13.9"
+ "@babel/generator" "^7.14.0"
"@babel/helper-function-name" "^7.12.13"
"@babel/helper-split-export-declaration" "^7.12.13"
- "@babel/parser" "^7.13.15"
- "@babel/types" "^7.13.14"
+ "@babel/parser" "^7.14.0"
+ "@babel/types" "^7.14.0"
debug "^4.1.0"
globals "^11.1.0"
-"@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.13.14", "@babel/types@^7.7.0":
- version "7.13.14"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.14.tgz#c35a4abb15c7cd45a2746d78ab328e362cbace0d"
- integrity sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==
+"@babel/types@^7.12.13", "@babel/types@^7.14.0", "@babel/types@^7.14.1", "@babel/types@^7.7.0":
+ version "7.14.1"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.1.tgz#095bd12f1c08ab63eff6e8f7745fa7c9cc15a9db"
+ integrity sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==
dependencies:
- "@babel/helper-validator-identifier" "^7.12.11"
- lodash "^4.17.19"
+ "@babel/helper-validator-identifier" "^7.14.0"
to-fast-properties "^2.0.0"
"@dabh/diagnostics@^2.0.2":
@@ -123,28 +122,33 @@
minimatch "^3.0.4"
strip-json-comments "^3.1.1"
-"@formatjs/ecma402-abstract@1.6.5":
- version "1.6.5"
- resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.6.5.tgz#ab461b6a284278ffe051ddd817537be4092e71be"
- integrity sha512-dhRWSoPPw8PhB5tSOEP9Gi5XZNFC2IkfP95Va70ouIuED0wBlsU1WmO4jDHITL7/kSNqvzKFTT+2S+6jHPq6jw==
+"@formatjs/ecma402-abstract@1.7.0":
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.7.0.tgz#440b341ba18451d53d9172e3110d96ca420b3760"
+ integrity sha512-0IQF4oDZdO8ruyrNJZuRle3F/YiGgRwTNrZyMI1N1X8GERZusOrXU9Stw+j/lyyfDWaJK44b+Qnri/qfLPCtGQ==
dependencies:
tslib "^2.1.0"
-"@formatjs/icu-messageformat-parser@1.1.5":
- version "1.1.5"
- resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-1.1.5.tgz#0c0dae9878329a26a4df6c74d1d3a59de08d4df9"
- integrity sha512-TZC3Ac6zTZGlkPoOstJpllo0rkI60kYSOcyhv7zXcaqzAxgdY+6WK8D91x1O9Swy5Jk1PUQM1IAMdafxZoz+Zg==
+"@formatjs/fast-memoize@1.1.1":
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/@formatjs/fast-memoize/-/fast-memoize-1.1.1.tgz#3006b58aca1e39a98aca213356b42da5d173f26b"
+ integrity sha512-mIqBr5uigIlx13eZTOPSEh2buDiy3BCdMYUtewICREQjbb4xarDiVWoXSnrERM7NanZ+0TAHNXSqDe6HpEFQUg==
+
+"@formatjs/icu-messageformat-parser@2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.0.0.tgz#a705da9c5040ebdee295147951cfaeb3e61a8ae0"
+ integrity sha512-NwbcVP6jtnL+4vpmlWJoBA2/vxrl57uw5jBq8Cb3bfYJLxdL01IRxh//hFBePvLi9cyTYJEC3ZfzIuEH4kyX+w==
dependencies:
- "@formatjs/ecma402-abstract" "1.6.5"
- "@formatjs/icu-skeleton-parser" "1.1.2"
+ "@formatjs/ecma402-abstract" "1.7.0"
+ "@formatjs/icu-skeleton-parser" "1.2.1"
tslib "^2.1.0"
-"@formatjs/icu-skeleton-parser@1.1.2":
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.1.2.tgz#b559f32a920ea6600df53735143b59e6cc087c1d"
- integrity sha512-R0hxPsnq9oOW50HnqKjzuqzUOEUWRdSqqt2wvLCwlFMEx6+MsLW35yzbB9fnxfRZ6vVnYO69TxBfXvvsK2VoUw==
+"@formatjs/icu-skeleton-parser@1.2.1":
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.2.1.tgz#aa3204b941b436cb88fea9269a6bdf10610336aa"
+ integrity sha512-mTpmCozmksatv3gQ+6/9dwwtoR+r+DFms22X6D6GLS4TaeaFKIPmC3k/DlsMGZIr3Q+dT+is5IcexChrPBGmCg==
dependencies:
- "@formatjs/ecma402-abstract" "1.6.5"
+ "@formatjs/ecma402-abstract" "1.7.0"
tslib "^2.1.0"
"@fortawesome/fontawesome-common-types@^0.2.35":
@@ -330,10 +334,10 @@
eslint-plugin-react-hooks "*"
eslint-plugin-standard "*"
-"@reuters-graphics/graphics-bin@^0.0.14":
- version "0.0.14"
- resolved "https://registry.yarnpkg.com/@reuters-graphics/graphics-bin/-/graphics-bin-0.0.14.tgz#47477fc1cec6dbcb722fd18cd6ef88a0052c245d"
- integrity sha512-FF3RyxfKnoMhCH+z0h66jEElll2xTWgo6uA8hLZcSk8q57AWYmtZaSkMr2+lsSbyIlKPKXcsq7TACvWk6HbOyA==
+"@reuters-graphics/graphics-bin@^0.0.16":
+ version "0.0.16"
+ resolved "https://registry.yarnpkg.com/@reuters-graphics/graphics-bin/-/graphics-bin-0.0.16.tgz#ad2d1c92259e9720d876ed9cd1979504019e01db"
+ integrity sha512-DznzwrSMbGX4pm0sfJPpTpEEfvg14+t3ITLH8F67mnHTZ/d5AZ8jzB8k3EOg5mr+dSos/B68CT1q1l8pMrma4Q==
dependencies:
"@newswire/doc-to-archieml" "^1.0.0"
"@newswire/sheet-to-data" "^1.0.0"
@@ -361,10 +365,10 @@
trello "^0.10.0"
winston "^3.3.3"
-"@reuters-graphics/graphics-kit-publisher@^0.0.12":
- version "0.0.12"
- resolved "https://registry.yarnpkg.com/@reuters-graphics/graphics-kit-publisher/-/graphics-kit-publisher-0.0.12.tgz#fa47f142471eb2a71ee71735094c8f227e4e965b"
- integrity sha512-nF6vTMUXPalYNSUoqc3H/3QWc5ajdfE14krAukpc+EZmmG9lnWRtuAzFhtqQlIbU5QLlXjT9s7FJw4+OpbZXsA==
+"@reuters-graphics/graphics-kit-publisher@^0.0.17":
+ version "0.0.17"
+ resolved "https://registry.yarnpkg.com/@reuters-graphics/graphics-kit-publisher/-/graphics-kit-publisher-0.0.17.tgz#c13da14e897164a5c255177ee92e6d0529277618"
+ integrity sha512-GyYah8yXcQc8rC0JBFxOqfReg28Qs9vD6aGv8RzFS+WOzT8VyZk8ye5GHgLW2kbSJ+TfWNT+BkJLnxVGVT8lSQ==
dependencies:
"@reuters-graphics/server-client" "^1.2.2"
archiver "^5.3.0"
@@ -509,27 +513,27 @@
lodash.deburr "^4.1.0"
"@sveltejs/kit@next":
- version "1.0.0-next.90"
- resolved "https://registry.yarnpkg.com/@sveltejs/kit/-/kit-1.0.0-next.90.tgz#4e8475672189c197c7452a5c21b442eb6f4c0340"
- integrity sha512-aiK4K4hRIZrMVbE+J8+taMNYmK3TonVsi2kHclfXJMQremKFR811rm6vgQUQoJtmwFRFJPOoNmuZVluJr/qDJg==
+ version "1.0.0-next.101"
+ resolved "https://registry.yarnpkg.com/@sveltejs/kit/-/kit-1.0.0-next.101.tgz#ad3487343881deec515e0804cf26d9308c771668"
+ integrity sha512-SwUImLhFmyaDsq7LKRJXPJRIOPa06SWENG7heko5FTRRLMpI/UDFcijjT2ln0Fp+AL9XfSbTHO8QrOflCMbfiQ==
dependencies:
- "@sveltejs/vite-plugin-svelte" "^1.0.0-next.7"
+ "@sveltejs/vite-plugin-svelte" "^1.0.0-next.9"
cheap-watch "^1.0.3"
sade "^1.7.4"
-"@sveltejs/vite-plugin-svelte@^1.0.0-next.7":
- version "1.0.0-next.7"
- resolved "https://registry.yarnpkg.com/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-1.0.0-next.7.tgz#77e7649ab6fd1452b3ccddd2ad8456c4d63a6026"
- integrity sha512-ENvKYY36jrvFP7h1G87k5uOoEh5UM1m8n40J2duqV/R3wHnxfW81SCR1aXo+5CVU8Prm3/jtS4TWs8CUTqO1fw==
+"@sveltejs/vite-plugin-svelte@^1.0.0-next.9":
+ version "1.0.0-next.9"
+ resolved "https://registry.yarnpkg.com/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-1.0.0-next.9.tgz#409e20c030298e968c71d71bef141665c06e7bd9"
+ integrity sha512-ySB/GJsZV3h3jqjq5WIiaxVFkJK6vqtG9gS7Iw6SfUH9ZiFNw5JjQF69g68j9cNep3q4yRIYiG5/pI3YIdXEuA==
dependencies:
"@rollup/pluginutils" "^4.1.0"
- chalk "^4.1.0"
+ chalk "^4.1.1"
debug "^4.3.2"
hash-sum "^2.0.0"
require-relative "^0.8.7"
- slash "^3.0.0"
+ slash "^4.0.0"
source-map "^0.7.3"
- svelte-hmr "^0.14.0"
+ svelte-hmr "^0.14.2"
"@szmarczak/http-timer@^1.1.2":
version "1.1.2"
@@ -583,9 +587,9 @@
"@types/node" "*"
"@types/node@*":
- version "15.0.1"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-15.0.1.tgz#ef34dea0881028d11398be5bf4e856743e3dc35a"
- integrity sha512-TMkXt0Ck1y0KKsGr9gJtWGjttxlZnnvDtphxUOSd0bfaR6Q1jle+sPvrzNR1urqYTWMinoKvjKfXUGsumaO1PA==
+ version "15.0.2"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-15.0.2.tgz#51e9c0920d1b45936ea04341aa3e2e58d339fb67"
+ integrity sha512-p68+a+KoxpoB47015IeYZYRrdqMUcpbK8re/zpFB8Ld46LHC1lPEbp3EXgkEhAYEcPvjJF6ZO+869SQ0aH1dcA==
"@types/parse-json@^4.0.0":
version "4.0.0"
@@ -665,17 +669,7 @@ ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.12.4:
json-schema-traverse "^0.4.1"
uri-js "^4.2.2"
-ajv@^8.0.1:
- version "8.1.0"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.1.0.tgz#45d5d3d36c7cdd808930cc3e603cf6200dbeb736"
- integrity sha512-B/Sk2Ix7A36fs/ZkuGLIR86EdjbgR6fsAcbx9lOP/QBSXujDNbVmIS/U4Itz5k8fPFDeVZl/zQ/gJW4Jrq6XjQ==
- dependencies:
- fast-deep-equal "^3.1.1"
- json-schema-traverse "^1.0.0"
- require-from-string "^2.0.2"
- uri-js "^4.2.2"
-
-ajv@^8.0.5:
+ajv@^8.0.1, ajv@^8.0.5:
version "8.2.0"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.2.0.tgz#c89d3380a784ce81b2085f48811c4c101df4c602"
integrity sha512-WSNGFuyWd//XO8n/m/EaOlNLtO0yL8EXT/74LqT4khdhpZjP7lkj/kT5uwRmGitKEVp/Oj7ZUHeGfPtgHhQ5CA==
@@ -876,9 +870,9 @@ autoprefixer@^10.2.5:
postcss-value-parser "^4.1.0"
aws-sdk@^2.879.0:
- version "2.897.0"
- resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.897.0.tgz#cb3594639bd57badd4908870d7f77f814f6a3166"
- integrity sha512-GnjnZ5kgmeGe1BW+wsfRJ8Hu5mU7py/GBLXikSgtNPbMmF66yTMfND99hpS5U7m3SSaHG0qBYGVySC7Z+U1AJA==
+ version "2.902.0"
+ resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.902.0.tgz#6e71f02b02ccbecf88e8e3c7f24e940ebdc6655e"
+ integrity sha512-tbX2DaaPwQyETCdYVImp7euTyF0bXLKUmicaD64Xb2v/firEG4t+yRFADiQ/ZetkmvOPN8O3jqXIAz6I6EbnuA==
dependencies:
buffer "4.9.2"
events "1.1.1"
@@ -1004,13 +998,13 @@ braces@^3.0.1, braces@~3.0.2:
fill-range "^7.0.1"
browserslist@^4.16.3:
- version "4.16.4"
- resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.4.tgz#7ebf913487f40caf4637b892b268069951c35d58"
- integrity sha512-d7rCxYV8I9kj41RH8UKYnvDYCRENUlHRgyXy/Rhr/1BaeLGfiCptEdFE8MIrvGfWbBFNjVYx76SQWvNX1j+/cQ==
+ version "4.16.6"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2"
+ integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==
dependencies:
- caniuse-lite "^1.0.30001208"
+ caniuse-lite "^1.0.30001219"
colorette "^1.2.2"
- electron-to-chromium "^1.3.712"
+ electron-to-chromium "^1.3.723"
escalade "^3.1.1"
node-releases "^1.1.71"
@@ -1090,10 +1084,10 @@ camelcase@^5.0.0, camelcase@^5.3.1:
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
-caniuse-lite@^1.0.30001196, caniuse-lite@^1.0.30001208:
- version "1.0.30001208"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001208.tgz#a999014a35cebd4f98c405930a057a0d75352eb9"
- integrity sha512-OE5UE4+nBOro8Dyvv0lfx+SRtfVIOM9uhKqFmJeUbGriqhhStgp1A0OyBpgy3OUF8AhYCT+PVwPC1gMl2ZcQMA==
+caniuse-lite@^1.0.30001196, caniuse-lite@^1.0.30001219:
+ version "1.0.30001223"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001223.tgz#39b49ff0bfb3ee3587000d2f66c47addc6e14443"
+ integrity sha512-k/RYs6zc/fjbxTjaWZemeSmOjO0JJV+KguOBA3NwPup8uzxM1cMhR2BD9XmO86GuqaqTCO8CgkgH9Rz//vdDiA==
chalk@^2.0.0, chalk@^2.4.1:
version "2.4.2"
@@ -1112,7 +1106,7 @@ chalk@^3.0.0:
ansi-styles "^4.1.0"
supports-color "^7.1.0"
-chalk@^4.0.0, chalk@^4.1.0:
+chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad"
integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==
@@ -1130,7 +1124,7 @@ cheap-watch@^1.0.3:
resolved "https://registry.yarnpkg.com/cheap-watch/-/cheap-watch-1.0.3.tgz#3c4265718bcf8f1ae08f5e450f9f4693432e028e"
integrity sha512-xC5CruMhLzjPwJ5ecUxGu1uGmwJQykUhqd2QrCrYbwvsFYdRyviu6jG9+pccwDXJR/OpmOTOJ9yLFunVgQu9wg==
-cheerio-select@^1.3.0:
+cheerio-select@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-1.4.0.tgz#3a16f21e37a2ef0f211d6d1aa4eff054bb22cdc9"
integrity sha512-sobR3Yqz27L553Qa7cK6rtJlMDbiKPdNywtR95Sj/YgfpLfy0u6CGJuaBKe5YE/vTc23SCRKxWSdlon/w6I/Ew==
@@ -1142,18 +1136,19 @@ cheerio-select@^1.3.0:
domutils "^2.6.0"
cheerio@^1.0.0-rc.6:
- version "1.0.0-rc.6"
- resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.6.tgz#a5ae81ab483aeefa1280c325543c601145506240"
- integrity sha512-hjx1XE1M/D5pAtMgvWwE21QClmAEeGHOIDfycgmndisdNgI6PE1cGRQkMGBcsbUbmEQyWu5PJLUcAOjtQS8DWw==
+ version "1.0.0-rc.9"
+ resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.9.tgz#a3ae6b7ce7af80675302ff836f628e7cb786a67f"
+ integrity sha512-QF6XVdrLONO6DXRF5iaolY+odmhj2CLj+xzNod7INPWMi/x9X4SOylH0S/vaPpX+AUU6t04s34SQNh7DbkuCng==
dependencies:
- cheerio-select "^1.3.0"
+ cheerio-select "^1.4.0"
dom-serializer "^1.3.1"
- domhandler "^4.1.0"
+ domhandler "^4.2.0"
htmlparser2 "^6.1.0"
parse5 "^6.0.1"
parse5-htmlparser2-tree-adapter "^6.0.1"
+ tslib "^2.2.0"
-"chokidar@>=2.0.0 <4.0.0":
+"chokidar@>=3.0.0 <4.0.0":
version "3.5.1"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a"
integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==
@@ -1590,14 +1585,14 @@ d3-scale-chromatic@2:
d3-interpolate "1 - 2"
d3-scale@3, d3-scale@^3.2.3:
- version "3.2.4"
- resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-3.2.4.tgz#13d758d7cf4e4f1fc40196a63597d01f3ed81765"
- integrity sha512-PG6gtpbPCFqKbvdBEswQcJcTzHC8VEd/XzezF5e68KlkT4/ggELw/nR1tv863jY6ufKTvDlzCMZvhe06codbbA==
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-3.3.0.tgz#28c600b29f47e5b9cd2df9749c206727966203f3"
+ 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 "1 - 2"
+ d3-time "^2.1.1"
d3-time-format "2 - 3"
d3-selection@1:
@@ -1624,7 +1619,7 @@ d3-shape@2:
dependencies:
d3-time "1 - 2"
-"d3-time@1 - 2", d3-time@2:
+"d3-time@1 - 2", d3-time@2, d3-time@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-2.1.1.tgz#e9d8a8a88691f4548e68ca085e5ff956724a6682"
integrity sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ==
@@ -1659,9 +1654,9 @@ d3-zoom@2:
d3-transition "2"
d3@^6.2.0:
- version "6.6.2"
- resolved "https://registry.yarnpkg.com/d3/-/d3-6.6.2.tgz#5d2133298b7adbf065d8274b77b36b429f6da3ee"
- integrity sha512-wvC9cZe05bUCo00VFKXLQJWmWhGv0U43Qv0gn+tkl144S7bV22E80Gnp06BEuJVuwVfa6+S8UOfl8H9Ru/cmgA==
+ version "6.7.0"
+ resolved "https://registry.yarnpkg.com/d3/-/d3-6.7.0.tgz#adac458597b4a2cafe8e08cf30948af0c95cd61f"
+ integrity sha512-hNHRhe+yCDLUG6Q2LwvR/WdNFPOJQ5VWqsJcwIYVeI401+d2/rrCjxSXkiAdIlpx7/73eApFB4Olsmh3YN7a6g==
dependencies:
d3-array "2"
d3-axis "2"
@@ -1863,7 +1858,7 @@ domelementtype@^2.0.1, domelementtype@^2.2.0:
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57"
integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==
-domhandler@^4.0.0, domhandler@^4.1.0, domhandler@^4.2.0:
+domhandler@^4.0.0, domhandler@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.0.tgz#f9768a5f034be60a89a27c2e4d0f74eba0d8b059"
integrity sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==
@@ -1898,10 +1893,10 @@ ecdsa-sig-formatter@1.0.11, ecdsa-sig-formatter@^1.0.11:
dependencies:
safe-buffer "^5.0.1"
-electron-to-chromium@^1.3.712:
- version "1.3.717"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.717.tgz#78d4c857070755fb58ab64bcc173db1d51cbc25f"
- integrity sha512-OfzVPIqD1MkJ7fX+yTl2nKyOE4FReeVfMCzzxQS+Kp43hZYwHwThlGP+EGIZRXJsxCM7dqo8Y65NOX/HP12iXQ==
+electron-to-chromium@^1.3.723:
+ version "1.3.727"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.727.tgz#857e310ca00f0b75da4e1db6ff0e073cc4a91ddf"
+ integrity sha512-Mfz4FIB4FSvEwBpDfdipRIrwd6uo8gUDoRDF4QEYb4h4tSuI3ov594OrjU6on042UlFHouIJpClDODGkPcBSbg==
emoji-regex@^6.1.3:
version "6.5.1"
@@ -2158,9 +2153,9 @@ eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3
integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
eslint-visitor-keys@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8"
- integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"
+ integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
eslint@^7.24.0:
version "7.25.0"
@@ -2313,11 +2308,6 @@ fast-levenshtein@^2.0.6:
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
-fast-memoize@^2.5.2:
- version "2.5.2"
- resolved "https://registry.yarnpkg.com/fast-memoize/-/fast-memoize-2.5.2.tgz#79e3bb6a4ec867ea40ba0e7146816f6cdce9b57e"
- integrity sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==
-
fast-safe-stringify@^2.0.4:
version "2.0.7"
resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz#124aa885899261f68aedb42a7c080de9da608743"
@@ -2570,9 +2560,9 @@ glob-parent@^5.0.0, glob-parent@~5.1.0:
is-glob "^4.0.1"
glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
- version "7.1.6"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
- integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
+ version "7.1.7"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90"
+ integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==
dependencies:
fs.realpath "^1.0.0"
inflight "^1.0.4"
@@ -2969,12 +2959,12 @@ internmap@^1.0.0:
integrity sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==
intl-messageformat@^9.3.15:
- version "9.6.7"
- resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-9.6.7.tgz#ce38c8c8903106cce37f0d7ad9595b4e552303e2"
- integrity sha512-31+sJcg3txHZSCwTxGXAPXaOxFv+VVvNI42YKBBUHVKmdneEpoXBwqGyUYzzsz9Z10umpUKGEVL3P9DzXO+gOg==
+ version "9.6.12"
+ resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-9.6.12.tgz#4794aa6b7beb74ec7dc7bffe7487bcf432c6cb87"
+ integrity sha512-4oLEiYRWq+GAYETFxYOaGPWb9CT7j9F5UavhXIvBdbcsLIbaQFAa3LQBJh/9/NgV0Y8ZTzX2z+A1sf2AzslWxw==
dependencies:
- "@formatjs/icu-messageformat-parser" "1.1.5"
- fast-memoize "^2.5.2"
+ "@formatjs/fast-memoize" "1.1.1"
+ "@formatjs/icu-messageformat-parser" "2.0.0"
tslib "^2.1.0"
is-arrayish@^0.2.1:
@@ -2988,9 +2978,9 @@ is-arrayish@^0.3.1:
integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
is-bigint@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.1.tgz#6923051dfcbc764278540b9ce0e6b3213aa5ebc2"
- integrity sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz#ffb381442503235ad245ea89e45b3dbff040ee5a"
+ integrity sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==
is-binary-path@~2.1.0:
version "2.1.0"
@@ -3019,16 +3009,16 @@ is-ci@^2.0.0:
ci-info "^2.0.0"
is-core-module@^2.2.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==
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.3.0.tgz#d341652e3408bca69c4671b79a0954a3d349f887"
+ integrity sha512-xSphU2KG9867tsYdLD4RWQ1VqdFl4HTO9Thf3I/3dLEfr0dbPTWKsuCKrgqMljg4nPE+Gq0VCnzT3gr0CyBmsw==
dependencies:
has "^1.0.3"
is-date-object@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e"
- integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.3.tgz#4c0802ae9c8097939ea8001eaae3c502f3dbe72f"
+ integrity sha512-tDpEUInNcy2Yw3lNSepK3Wdw1RnXLcIVienz6Ou631Acl15cJyRWK4dgA1vCmOEgIbtOV0W7MHg+AR2Gdg1NXQ==
is-docker@^2.0.0, is-docker@^2.1.1:
version "2.2.1"
@@ -3392,11 +3382,11 @@ lint-staged@>=10:
stringify-object "^3.3.0"
listr2@^3.2.2:
- version "3.7.1"
- resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.7.1.tgz#ff0c410b10eb1c5c76735e4814128ec8f7d2b983"
- integrity sha512-cNd368GTrk8351/ov/IV+BSwyf9sJRgI0UIvfORonCZA1u9UHAtAlqSEv9dgafoQIA1CgB3nu4No79pJtK2LHw==
+ version "3.8.2"
+ resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.8.2.tgz#99b138ad1cfb08f1b0aacd422972e49b2d814b99"
+ integrity sha512-E28Fw7Zd3HQlCJKzb9a8C8M0HtFWQeucE+S8YrSrqZObuCLPRHMRrR8gNmYt65cU9orXYHwvN5agXC36lYt7VQ==
dependencies:
- chalk "^4.1.0"
+ chalk "^4.1.1"
cli-truncate "^2.1.0"
figures "^3.2.0"
indent-string "^4.0.0"
@@ -3486,7 +3476,7 @@ lodash.union@^4.6.0:
resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88"
integrity sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=
-lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21:
+lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21:
version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
@@ -3905,9 +3895,9 @@ p-cancelable@^1.0.0:
integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==
p-cancelable@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.0.tgz#4d51c3b91f483d02a0d300765321fca393d758dd"
- integrity sha512-HAZyB3ZodPo+BDpb4/Iu7Jv4P6cSazBz9ZM0ChhEXp70scx834aWCEjQRwgt41UzzejUAPdbqqONfRWTPYrPAQ==
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf"
+ integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==
p-limit@^1.1.0:
version "1.3.0"
@@ -4102,9 +4092,9 @@ postcss-value-parser@^4.1.0:
integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==
postcss@^8.2.1:
- version "8.2.10"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.10.tgz#ca7a042aa8aff494b334d0ff3e9e77079f6f702b"
- integrity sha512-b/h7CPV7QEdrqIxtAf2j31U5ef05uBDuvoXv6L51Q4rcS1jdlXAVKJv+atCFdUXYl9dyTHGyoMzIepwowRJjFw==
+ version "8.2.14"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.14.tgz#dcf313eb8247b3ce8078d048c0e8262ca565ad2b"
+ integrity sha512-+jD0ZijcvyCqPQo/m/CW0UcARpdFylq04of+Q7RKX6f/Tu+dvpUI/9Sp81+i6/vJThnOBX09Quw0ZLOVwpzX3w==
dependencies:
colorette "^1.2.2"
nanoid "^3.1.22"
@@ -4453,9 +4443,9 @@ rimraf@^3.0.2:
glob "^7.1.3"
rollup@^2.38.5:
- version "2.45.2"
- resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.45.2.tgz#8fb85917c9f35605720e92328f3ccbfba6f78b48"
- integrity sha512-kRRU7wXzFHUzBIv0GfoFFIN3m9oteY4uAsKllIpQDId5cfnkWF2J130l+27dzDju0E6MScKiV0ZM5Bw8m4blYQ==
+ version "2.47.0"
+ resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.47.0.tgz#9d958aeb2c0f6a383cacc0401dff02b6e252664d"
+ integrity sha512-rqBjgq9hQfW0vRmz+0S062ORRNJXvwRpzxhFXORvar/maZqY6za3rgQ/p1Glg+j1hnc1GtYyQCPiAei95uTElg==
optionalDependencies:
fsevents "~2.3.1"
@@ -4494,11 +4484,11 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1:
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
sass@^1.0.0:
- version "1.32.8"
- resolved "https://registry.yarnpkg.com/sass/-/sass-1.32.8.tgz#f16a9abd8dc530add8834e506878a2808c037bdc"
- integrity sha512-Sl6mIeGpzjIUZqvKnKETfMf0iDAswD9TNlv13A7aAF3XZlRPMq4VvJWBC2N2DXbp94MQVdNSFG6LfF/iOXrPHQ==
+ version "1.32.12"
+ resolved "https://registry.yarnpkg.com/sass/-/sass-1.32.12.tgz#a2a47ad0f1c168222db5206444a30c12457abb9f"
+ integrity sha512-zmXn03k3hN0KaiVTjohgkg98C3UowhL1/VSGdj4/VAAiMKGQOE80PFPxFP2Kyq0OUskPKcY5lImkhBKEHlypJA==
dependencies:
- chokidar ">=2.0.0 <4.0.0"
+ chokidar ">=3.0.0 <4.0.0"
sax@0.5.x:
version "0.5.8"
@@ -4650,10 +4640,10 @@ sisteransi@^1.0.5:
resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
-slash@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
- integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
+slash@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7"
+ integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==
slice-ansi@^3.0.0:
version "3.0.0"
@@ -4674,9 +4664,9 @@ slice-ansi@^4.0.0:
is-fullwidth-code-point "^3.0.0"
slugify@^1.5.0:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.5.0.tgz#5f3c8e2a84105b54eb51486db1b468a599b3c9b8"
- integrity sha512-Q2UPZ2udzquy1ElHfOLILMBMqBEXkiD3wE75qtBvV+FsDdZZjUqPZ44vqLTejAVq+wLLHacOMcENnP8+ZbzmIA==
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.5.1.tgz#ef268872982a3a3b18f213ddee8cd1a28ac7a130"
+ integrity sha512-54gP60qIkxaUCFXORn/u+tNPqdTsqvqonB2nxjQV52wWTCuJJ4kbfU7URkpn8646Lr2T3CSh8ecDzzBK/dD9jA==
source-map@^0.5.0:
version "0.5.7"
@@ -4919,10 +4909,10 @@ svelte-fa@^2.2.0:
resolved "https://registry.yarnpkg.com/svelte-fa/-/svelte-fa-2.2.0.tgz#2b2282ee83e550ab29317a1955bdef53321e9110"
integrity sha512-PN1H8AWDh+OwhwjJKTv4/zXvKvmvOEVSCVhIhji6Onx8XEw+CGf8BDR0BVUIp87IEX+DEqIo9pbyhgz8EoYZyA==
-svelte-hmr@^0.14.0:
- version "0.14.2"
- resolved "https://registry.yarnpkg.com/svelte-hmr/-/svelte-hmr-0.14.2.tgz#458e02627505e72e8baf2bfb887a3c00822ddeb4"
- integrity sha512-aVIRSCRpOFGuLqjg12Z5hBhvjrrlqkJVMMGEK14iVD0kXI4l5dkpHCj35AEyieWNvyYTMtlyhZlpKPrIjFpxxQ==
+svelte-hmr@^0.14.2:
+ version "0.14.3"
+ resolved "https://registry.yarnpkg.com/svelte-hmr/-/svelte-hmr-0.14.3.tgz#b6a6781bc923352e3c257ccd7d87d01821ea2d95"
+ integrity sha512-N56xX405zLMw2tpGHKRx5h+kmdeZwxI21pvyC6OyBHJDCF6DlwWBm9TifdQmSD4dloWSmpDPzHWYa3CSjfopUg==
svelte-i18n@^3.3.9:
version "3.3.9"
@@ -4936,16 +4926,16 @@ svelte-i18n@^3.3.9:
tiny-glob "^0.2.6"
svelte-markdown@^0.1.5:
- version "0.1.6"
- resolved "https://registry.yarnpkg.com/svelte-markdown/-/svelte-markdown-0.1.6.tgz#270aba681d40a8c68323119298144b04d9c9c622"
- integrity sha512-oUZyPqglQtrYySlnjctjtPZ0WiJP2xU9VcRWKYWjhbpTU4b7i7UPjF4FEmnDM8dMvLC5/aFC3kULKwOaW0gzug==
+ version "0.1.8"
+ resolved "https://registry.yarnpkg.com/svelte-markdown/-/svelte-markdown-0.1.8.tgz#bd1b7f712de16a51a9afa0f1fd6f8a317a32ad86"
+ integrity sha512-QceqoS3LM3srpNzjB9EKfJYSCRLLmATdpqXuK7YoDj+Lnpbf7AhZ5Doq9OvNfOSFY00EJv8tT1j9QSFRubVe4A==
dependencies:
marked "^2.0.0"
svelte-preprocess@^4.0.0:
- version "4.7.0"
- resolved "https://registry.yarnpkg.com/svelte-preprocess/-/svelte-preprocess-4.7.0.tgz#10a0acf1a8b1afdd7e0aff3769f4175eb77776fe"
- integrity sha512-iNrY4YGqi0LD2e6oT9YbdSzOKntxk8gmzfqso1z/lUJOZh4o6fyIqkirmiZ8/dDJFqtIE1spVgDFWgkfhLEYlw==
+ version "4.7.3"
+ resolved "https://registry.yarnpkg.com/svelte-preprocess/-/svelte-preprocess-4.7.3.tgz#454fa059c2400b15e7a3caeca18993cff9df0e96"
+ integrity sha512-Zx1/xLeGOIBlZMGPRCaXtlMe4ZA0faato5Dc3CosEqwu75MIEPuOstdkH6cy+RYTUYynoxzNaDxkPX4DbrPwRA==
dependencies:
"@types/pug" "^2.0.4"
"@types/sass" "^1.16.0"
@@ -4953,24 +4943,21 @@ svelte-preprocess@^4.0.0:
strip-indent "^3.0.0"
svelte@^3.32.1:
- version "3.37.0"
- resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.37.0.tgz#dc7cd24bcc275cdb3f8c684ada89e50489144ccd"
- integrity sha512-TRF30F4W4+d+Jr2KzUUL1j8Mrpns/WM/WacxYlo5MMb2E5Qy2Pk1Guj6GylxsW9OnKQl1tnF8q3hG/hQ3h6VUA==
+ version "3.38.2"
+ resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.38.2.tgz#55e5c681f793ae349b5cc2fe58e5782af4275ef5"
+ integrity sha512-q5Dq0/QHh4BLJyEVWGe7Cej5NWs040LWjMbicBGZ+3qpFWJ1YObRmUDZKbbovddLC9WW7THTj3kYbTOFmU9fbg==
table@^6.0.4:
- version "6.1.0"
- resolved "https://registry.yarnpkg.com/table/-/table-6.1.0.tgz#676a0cfb206008b59e783fcd94ef8ba7d67d966c"
- integrity sha512-T4G5KMmqIk6X87gLKWyU5exPpTjLjY5KyrFWaIjv3SvgaIUGXV7UEzGEnZJdTA38/yUS6f9PlKezQ0bYXG3iIQ==
+ version "6.7.0"
+ resolved "https://registry.yarnpkg.com/table/-/table-6.7.0.tgz#26274751f0ee099c547f6cb91d3eff0d61d155b2"
+ integrity sha512-SAM+5p6V99gYiiy2gT5ArdzgM1dLDed0nkrWmG6Fry/bUS/m9x83BwpJUOf1Qj/x2qJd+thL6IkIx7qPGRxqBw==
dependencies:
ajv "^8.0.1"
- is-boolean-object "^1.1.0"
- is-number-object "^1.0.4"
- is-string "^1.0.5"
lodash.clonedeep "^4.5.0"
- lodash.flatten "^4.4.0"
lodash.truncate "^4.4.2"
slice-ansi "^4.0.0"
string-width "^4.2.0"
+ strip-ansi "^6.0.0"
tar-fs@^2.0.0, tar-fs@^2.1.1:
version "2.1.1"
@@ -5077,7 +5064,7 @@ tslib@^1.9.0:
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
-tslib@^2.1.0:
+tslib@^2.1.0, tslib@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.2.0.tgz#fb2c475977e35e241311ede2693cee1ec6698f5c"
integrity sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==
@@ -5112,9 +5099,9 @@ type-fest@^0.8.1:
integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
type-fest@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.0.2.tgz#3f9c39982859f385c77c38b7e5f1432b8a3661c6"
- integrity sha512-a720oz3Kjbp3ll0zkeN9qjRhO7I34MKMhPGQiQJAmaZQZQ1lo+NWThK322f7sXV+kTg9B1Ybt16KgBXWgteT8w==
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.1.0.tgz#e7eba55da6a46d5c23c05021de5f5af30d1d7978"
+ integrity sha512-FOsvVPp1WTW495bqemynRS6f6Izea0hKSuDGCxkisBi6KIFaIc8r+ZCs20VT8bySbjh3J9kmnu2eHG4NoZArMw==
type-of-is@^3.4.0:
version "3.5.1"
@@ -5249,10 +5236,10 @@ validator@^13.0.0, validator@^13.6.0:
resolved "https://registry.yarnpkg.com/validator/-/validator-13.6.0.tgz#1e71899c14cdc7b2068463cb24c1cc16f6ec7059"
integrity sha512-gVgKbdbHgtxpRyR8K0O6oFZPhhB5tT1jeEHZR0Znr9Svg03U0+r9DXWMrnRAB+HtCStDQKlaIZm42tVsVjqtjg==
-vite@^2.1.0:
- version "2.1.5"
- resolved "https://registry.yarnpkg.com/vite/-/vite-2.1.5.tgz#4857da441c62f7982c83cbd5f42a00330f20c9c1"
- integrity sha512-tYU5iaYeUgQYvK/CNNz3tiJ8vYqPWfCE9IQ7K0iuzYovWw7lzty7KRYGWwV3CQPh0NKxWjOczAqiJsCL0Xb+Og==
+vite@^2.2.3:
+ version "2.2.4"
+ resolved "https://registry.yarnpkg.com/vite/-/vite-2.2.4.tgz#8f9cc85aacab04c850085894b086c8717f12ed16"
+ integrity sha512-vnIwSNci+phFMp6krhy+FbYzKL0R67Sdt9mVZ96S27AewrApSJjTqncJcalk8sf60BgcbW4+1C6DFIWkxquO9g==
dependencies:
esbuild "^0.9.3"
postcss "^8.2.1"