{
+ const baseContext = context ?? {};
+ const user = await getUserFromCookie(request);
+ const pageContextInit = {
+ ...baseContext,
+ urlOriginal: request.url,
+ environment,
+ user,
+ macrostratLogoFlavor: macrostratLogoFlavor(),
+ };
+ const pageContext = await renderPage(pageContextInit);
+ const response = pageContext.httpResponse;
+
+ return new Response(response?.getReadableWebStream(), {
+ status: response?.statusCode,
+ headers: response?.headers,
+ });
+}
+
+async function getUserFromCookie(request: Request) {
+ const isProduction = process.env.NODE_ENV === "production";
+ // Pull out the authorization cookie and decrypt it
+ let user: any = undefined;
+ try {
+ const authHeader = request.cookies?.Authorization;
+ const secret = new TextEncoder().encode(process.env.SECRET_KEY);
+ const jwt = authHeader.substring(7, authHeader.length);
+ // We probably don't need to verify the JWT on each request
+ user = (await jose.jwtVerify(jwt, secret)).payload;
+ } catch (e) {
+ // I don't care if it fails, it just means the user isn't logged in
+ }
+
+ if (!isProduction && process.env.DEV_ENABLE_AUTH !== "true") {
+ // Haha wow this is sketchy...this needs to be stopped.
+ user = { groups: [1] };
+ }
+ return user;
+}
+
+function synthesizeConfigFromEnvironment() {
+ /** Creates a mapping of environment variables that start with VITE_,
+ * and returns them as an object. This allows us to pass environment
+ * variables to the client.
+ *
+ * TODO: Ideally this would be defined in library code.
+ * */
+ const env = {};
+ for (const key of Object.keys(process.env)) {
+ if (key.startsWith("VITE_")) {
+ let newKey = key.substring(5);
+ env[newKey] = process.env[key];
+ }
+ }
+ return env;
+}
+
+function macrostratLogoFlavor() {
+ const flavors = [
+ "sandstone",
+ "shale",
+ "limestone",
+ "granite",
+ "basalt",
+ "gabbro",
+ "dolomite",
+ ];
+ // Generate a Random logo
+ const random = Math.random();
+ return flavors[Math.floor(random * flavors.length)];
+}
diff --git a/src/_utils/page-meta.ts b/src/_utils/page-meta.ts
new file mode 100644
index 00000000..c6e100d0
--- /dev/null
+++ b/src/_utils/page-meta.ts
@@ -0,0 +1,19 @@
+import { PageContext } from "~/renderer/types";
+
+export function buildPageMeta(pageContext: PageContext): {
+ title: string;
+ description: string;
+} {
+ let title = pageContext.exports.title ?? "Macrostrat";
+ if (typeof title === "function") {
+ title = title(pageContext);
+ }
+
+ let description =
+ pageContext.exports.description ??
+ "A platform for geological data exploration, integration, and analysis.";
+ if (title != "Macrostrat") {
+ title = `${title} - Macrostrat`;
+ }
+ return { title, description };
+}
diff --git a/src/components/lithology/index.ts b/src/components/lithology/index.ts
index e60dbf8e..fdc34c5f 100644
--- a/src/components/lithology/index.ts
+++ b/src/components/lithology/index.ts
@@ -9,7 +9,7 @@ const h = hyper.styled(styles);
export function LithologyTag({
data,
- className,
+ className = null,
tooltip = null,
tooltipProps = {},
expandOnHover = false,
diff --git a/src/layouts/main.module.sass b/src/layouts/main.module.sass
index 0de9d808..ab72dec9 100644
--- a/src/layouts/main.module.sass
+++ b/src/layouts/main.module.sass
@@ -21,5 +21,4 @@
.fullscreen-page
- margin: 1em auto 3em
- padding: 0 4em
+ padding: 1em 4em 3em
diff --git a/src/pages/+Page.mdx b/src/pages/+Page.mdx
index 0a79a604..9240a126 100644
--- a/src/pages/+Page.mdx
+++ b/src/pages/+Page.mdx
@@ -1,4 +1,5 @@
export { ContentPage as default } from "~/layouts";
+import { macrostratInstance } from "@macrostrat-web/settings";
import { PageHeader } from "~/components";
import { LinkCard } from "~/components/cards";
@@ -6,7 +7,7 @@ import { LinkCard } from "~/components/cards";
v2{" "}
- {import.meta.env.VITE_MACROSTRAT_INSTANCE}
+ {macrostratInstance}
diff --git a/src/renderer/+config.h.ts b/src/pages/+config.ts
similarity index 53%
rename from src/renderer/+config.h.ts
rename to src/pages/+config.ts
index 9e550b2b..5a4bc392 100644
--- a/src/renderer/+config.h.ts
+++ b/src/pages/+config.ts
@@ -1,18 +1,27 @@
-import { Config, ConfigDefinition } from "vike/types";
+import vikeReact from "vike-react/config";
+import type { Config } from "vike/types";
+//const Layout = "import:~/layouts:BasePage";
+//import Head from "../layouts/HeadDefault.js";
+// Default config (can be overridden by pages)
export default {
+ //Layout,
+ //Head,
+ //
+ title: "Macrostrat",
+ extends: vikeReact,
passToClient: [
"pageProps",
"pageStyle",
"supportsDarkMode",
- "isolateStyles",
"macrostratLogoFlavor",
"routeParams",
"user",
"urlPathname",
+ "description",
+ "title",
],
clientRouting: true,
- hydrationCanBeAborted: true,
meta: {
supportsDarkMode: {
env: {
@@ -20,13 +29,13 @@ export default {
server: true,
},
},
- isolateStyles: {
+ scripts: {
env: {
- client: true,
+ client: false,
server: true,
},
},
- documentProps: {
+ description: {
env: {
client: true,
server: true,
diff --git a/src/renderer/+onPageTransitionEnd.ts b/src/pages/+onPageTransitionEnd.ts
similarity index 78%
rename from src/renderer/+onPageTransitionEnd.ts
rename to src/pages/+onPageTransitionEnd.ts
index 89078435..6ab10336 100644
--- a/src/renderer/+onPageTransitionEnd.ts
+++ b/src/pages/+onPageTransitionEnd.ts
@@ -1,6 +1,6 @@
// https://vike.dev/onPageTransitionEnd
export { onPageTransitionEnd };
-import { usePageTransitionStore } from "./transitions";
+import { usePageTransitionStore } from "../renderer/transitions";
function onPageTransitionEnd() {
document.querySelector("body").classList.remove("in-page-transition");
diff --git a/src/renderer/+onPageTransitionStart.ts b/src/pages/+onPageTransitionStart.ts
similarity index 86%
rename from src/renderer/+onPageTransitionStart.ts
rename to src/pages/+onPageTransitionStart.ts
index 5e29e11d..1aab1bff 100644
--- a/src/renderer/+onPageTransitionStart.ts
+++ b/src/pages/+onPageTransitionStart.ts
@@ -1,5 +1,5 @@
export { onPageTransitionStart };
-import { usePageTransitionStore } from "./transitions";
+import { usePageTransitionStore } from "../renderer/transitions";
async function onPageTransitionStart() {
// This function is called when a page transition starts.
diff --git a/src/pages/+onRenderClient.ts b/src/pages/+onRenderClient.ts
new file mode 100644
index 00000000..5858a437
--- /dev/null
+++ b/src/pages/+onRenderClient.ts
@@ -0,0 +1,45 @@
+export { render as onRenderClient };
+
+import { FocusStyleManager } from "@blueprintjs/core";
+import h from "@macrostrat/hyper";
+import ReactDOM from "react-dom/client";
+import { PageShell } from "../renderer/page-shell";
+import type { PageContextClient } from "../renderer/types";
+import { buildPageMeta } from "~/_utils/page-meta";
+
+let root: ReactDOM.Root;
+
+async function render(pageContext: PageContextClient) {
+ const { Page, pageProps } = pageContext;
+ if (!Page)
+ throw new Error(
+ "Client-side render() hook expects pageContext.Page to be defined"
+ );
+
+ FocusStyleManager.onlyShowFocusOnTabs();
+
+ const page = h(PageShell, { pageContext }, h(Page, pageProps));
+
+ const container = document.getElementById("app-container")!;
+
+ const { title, description } = buildPageMeta(pageContext);
+
+ // TODO: we might be able to switch to vike-react's internal renderer
+ if (container.innerHTML !== "" && pageContext.isHydration) {
+ // First render (hydration)
+ root = ReactDOM.hydrateRoot(container, page);
+ } else {
+ if (!root) {
+ // First render (not hydration)
+ root = ReactDOM.createRoot(container);
+ } else {
+ // Client-side navigation
+ document.title = title;
+ document
+ .querySelector('meta[name="description"]')!
+ .setAttribute("content", description);
+ }
+
+ root.render(page);
+ }
+}
diff --git a/src/renderer/+onRenderHtml.ts b/src/pages/+onRenderHtml.ts
similarity index 69%
rename from src/renderer/+onRenderHtml.ts
rename to src/pages/+onRenderHtml.ts
index 893820ef..b168653c 100644
--- a/src/renderer/+onRenderHtml.ts
+++ b/src/pages/+onRenderHtml.ts
@@ -4,11 +4,12 @@ export { render as onRenderHtml };
import h from "@macrostrat/hyper";
import ReactDOMServer from "react-dom/server";
import { dangerouslySkipEscape, escapeInject } from "vike/server";
-import { PageShell } from "./page-shell";
-import type { PageContextServer } from "./types";
+import { PageShell } from "../renderer/page-shell";
+import type { PageContextServer } from "../renderer/types";
+import { buildPageMeta } from "~/_utils/page-meta";
async function render(pageContext: PageContextServer) {
- const { Page, pageProps, config, user } = pageContext;
+ const { Page, pageProps, config, user, environment } = pageContext;
// This render() hook only supports SSR, see https://vike.dev/render-modes for how to modify render() to support SPA
let pageHtml = "";
if (Page != null) {
@@ -25,6 +26,17 @@ async function render(pageContext: PageContextServer) {
);
}
+ /** Get runtime environment synthesized by server. This is a substitute for using
+ * compile-time environment variables in the client. The environment is
+ * injected into vite as a global variable.
+ *
+ * We also set `process.env.NODE_ENV` to "production" to allow Cesium to work properly.
+ */
+ const envScript = ``;
+
// This doesn't work in production
// if (!isolateStyles || clientRouting) {
// await import("@blueprintjs/core/lib/css/blueprint.css");
@@ -34,15 +46,14 @@ async function render(pageContext: PageContextServer) {
// }
// See https://vike.dev/head
- const { documentProps } = pageContext.exports;
- const title = (documentProps && documentProps.title) || "Macrostrat";
- const desc = (documentProps && documentProps.description) || "Macrostrat";
+ let { scripts = [] } = pageContext.exports;
- const scripts = documentProps?.scripts ?? [];
const scriptTags = scripts
.map((src) => ``)
.join("\n");
+ const { title, description } = buildPageMeta(pageContext);
+
const documentHtml = escapeInject`
@@ -63,12 +74,13 @@ async function render(pageContext: PageContextServer) {
rel="stylesheet"
/>
${dangerouslySkipEscape(scriptTags)}
-
+ ${dangerouslySkipEscape(envScript)}
+
${title}
-
+
-
+
${dangerouslySkipEscape(pageHtml)}
`;
diff --git a/src/pages/columns/+config.ts b/src/pages/columns/+config.ts
new file mode 100644
index 00000000..e24ef27b
--- /dev/null
+++ b/src/pages/columns/+config.ts
@@ -0,0 +1,3 @@
+export default {
+ title: "Columns",
+};
diff --git a/src/pages/columns/@column/+config.h.ts b/src/pages/columns/@column/+config.ts
similarity index 100%
rename from src/pages/columns/@column/+config.h.ts
rename to src/pages/columns/@column/+config.ts
diff --git a/src/pages/columns/@column/column-inspector/index.ts b/src/pages/columns/@column/column-inspector/index.ts
index b9af7601..a66654ce 100644
--- a/src/pages/columns/@column/column-inspector/index.ts
+++ b/src/pages/columns/@column/column-inspector/index.ts
@@ -60,7 +60,7 @@ function ColumnPage({ columnInfo, linkPrefix = "/" }) {
]),
]),
h("div.right-column", [
- h.if(selectedUnit == null)(ColumnNavigatorMap, {
+ h(ColumnNavigatorMap, {
className: "column-map",
format: "geojson_bare",
currentColumn: {
@@ -72,6 +72,9 @@ function ColumnPage({ columnInfo, linkPrefix = "/" }) {
project_id: columnInfo.project_id,
},
},
+ style: {
+ display: selectedUnit == null ? "block" : "none",
+ },
setCurrentColumn(newColumn) {
const { col_id } = newColumn.properties;
navigate(linkPrefix + `columns/${col_id}`);
diff --git a/src/pages/dev/+Page.mdx b/src/pages/dev/+Page.mdx
index 5db9b2d9..8f972262 100644
--- a/src/pages/dev/+Page.mdx
+++ b/src/pages/dev/+Page.mdx
@@ -11,3 +11,4 @@ import { PageBreadcrumbs } from "~/renderer";
- [Feedback](/dev/feedback)
- [Map filter](/dev/filtering)
- [Main Page](/dev/main-page)
+- [Concept apps](/dev/concepts)
diff --git a/src/pages/dev/concepts/+Page.mdx b/src/pages/dev/concepts/+Page.mdx
new file mode 100644
index 00000000..cce7076a
--- /dev/null
+++ b/src/pages/dev/concepts/+Page.mdx
@@ -0,0 +1,23 @@
+export { ContentPage as default } from "~/layouts";
+import { PageBreadcrumbs } from "~/renderer";
+
+
+
+# Concept apps
+
+## Stratigraphic columns
+
+Macrostrat is working to push stratigraphic columns into the digital age.
+We have developed a number of applications that explore the potential
+user interface design elements around digital stratigraphic columns.
+
+- [Carbon isotopes](/dev/concepts/carbon-isotopes)
+- [Detrital zircon](/dev/concepts/detrital-zircon)
+- [Age model](/dev/concepts/eODP)
+- [Multiscale demo](/dev/concepts/multiscale-figure)
+- [Column editor](/dev/concepts/editor)
+
+## Paleogeography
+
+- [PaleobioDB](/dev/concepts/paleogeography/pbdb)
+- [Macrostrat measurements](/dev/concepts/paleogeography/measurements)
diff --git a/src/pages/dev/globe/+config.h.ts b/src/pages/dev/concepts/+config.ts
similarity index 60%
rename from src/pages/dev/globe/+config.h.ts
rename to src/pages/dev/concepts/+config.ts
index 2821332f..0e07b269 100644
--- a/src/pages/dev/globe/+config.h.ts
+++ b/src/pages/dev/concepts/+config.ts
@@ -8,8 +8,4 @@ export default {
},
},
clientRouting: false,
- documentProps: {
- scripts: ["/cesium/Cesium.js"],
- title: "Macrostrat – Globe",
- },
};
diff --git a/src/pages/dev/concepts/carbon-isotopes/+Page.ts b/src/pages/dev/concepts/carbon-isotopes/+Page.ts
new file mode 100644
index 00000000..d17fa59a
--- /dev/null
+++ b/src/pages/dev/concepts/carbon-isotopes/+Page.ts
@@ -0,0 +1,75 @@
+import h from "@macrostrat/hyper";
+import { APIProvider, useAPIResult } from "@macrostrat/ui-components";
+import Column from "./column";
+import {
+ ColumnNavigatorMap,
+ MeasurementsLayer,
+} from "@macrostrat/column-views/src/map";
+import { MeasurementDataProvider } from "@macrostrat/concept-app-helpers";
+import { PatternProvider } from "~/_providers";
+import { useColumnNav } from "@macrostrat/column-views";
+
+const ColumnTitle = (props) => {
+ return h.if(props.data != null)("h1", props.data?.col_name);
+};
+
+const defaultArgs = {
+ col_id: 2192,
+ //unit_id: null,
+ project_id: 10,
+ status_code: "in process",
+};
+
+function ColumnManager() {
+ const [columnArgs, setCurrentColumn] = useColumnNav(defaultArgs);
+ const { col_id, ...projectParams } = columnArgs;
+
+ console.log(columnArgs);
+
+ const colParams = { ...columnArgs, format: "geojson" };
+ const res = useAPIResult("/columns", colParams, [columnArgs]);
+ const columnFeature = res?.features[0];
+
+ //return h("div.column-manager", "Hello, world");
+
+ return h(MeasurementDataProvider, columnArgs, [
+ h("div.column-ui", [
+ h("div.column-view", [
+ h(ColumnTitle, { data: columnFeature?.properties }),
+ h(Column, { params: columnArgs }),
+ ]),
+ h("div.map-column", [
+ h(
+ ColumnNavigatorMap,
+ {
+ currentColumn: columnFeature,
+ setCurrentColumn,
+ margin: 0,
+ ...projectParams,
+ },
+ h(MeasurementsLayer, {
+ ...projectParams,
+ style: {
+ fill: "dodgerblue",
+ stroke: "blue",
+ },
+ })
+ ),
+ ]),
+ ]),
+ ]);
+}
+
+export function Page() {
+ return h(
+ PatternProvider,
+ h(
+ APIProvider,
+ {
+ baseURL: "https://dev.macrostrat.org/api/v2",
+ unwrapResponse: (res) => res.success.data,
+ },
+ h(ColumnManager)
+ )
+ );
+}
diff --git a/src/pages/dev/concepts/carbon-isotopes/column.ts b/src/pages/dev/concepts/carbon-isotopes/column.ts
new file mode 100644
index 00000000..4765f6a7
--- /dev/null
+++ b/src/pages/dev/concepts/carbon-isotopes/column.ts
@@ -0,0 +1,128 @@
+import h from "@macrostrat/hyper";
+import { group } from "d3-array";
+import { useAPIResult } from "@macrostrat/ui-components";
+import {
+ ColumnProvider,
+ ColumnSVG,
+ ColumnAxis,
+ ColumnContext,
+} from "@macrostrat/column-components";
+import { SimpleUnitsColumn, IUnit } from "@macrostrat/column-views";
+import { useContext } from "react";
+import { IsotopesColumn } from "@macrostrat/concept-app-helpers";
+import { MacrostratColumnProvider } from "@macrostrat/api-views";
+import "./main.styl";
+
+interface IColumnProps {
+ data: IUnit[];
+ pixelScale?: number;
+ isOldestColumn: boolean;
+ range?: [number, number];
+}
+
+const AgeAxis = ({ ticks }) => {
+ const { pixelHeight } = useContext(ColumnContext);
+ // A tick roughly every 40 pixels
+ let v = Math.max(Math.round(pixelHeight / 40), 1);
+
+ return h(ColumnAxis, {
+ ticks: v,
+ showDomain: false,
+ });
+};
+
+const Section = (props: IColumnProps) => {
+ // Section with "squishy" time scale
+ const {
+ data,
+ isOldestColumn = true,
+ range = [data[data.length - 1].b_age, data[0].t_age],
+ } = props;
+ let { pixelScale } = props;
+
+ const notesOffset = 100;
+
+ if (!pixelScale) {
+ // Make up a pixel scale
+ const dAge = range[0] - range[1];
+ const targetHeight = 50 * data.length;
+ pixelScale = Math.ceil(targetHeight / dAge);
+ }
+
+ return h(
+ MacrostratColumnProvider,
+ {
+ divisions: data,
+ range,
+ pixelsPerMeter: pixelScale, // Actually pixels per myr
+ },
+ [
+ h(
+ ColumnSVG,
+ {
+ width: 650,
+ padding: 20,
+ paddingTop: 5,
+ paddingBottom: 25,
+ },
+ [
+ h(AgeAxis),
+ h(SimpleUnitsColumn, {
+ width: 400,
+ columnWidth: 90,
+ }),
+ h(IsotopesColumn, {
+ parameter: "D13C",
+ label: "δ¹³C",
+ width: 100,
+ nTicks: 4,
+ showAxis: isOldestColumn,
+ transform: "translate(250,0)",
+ }),
+ h(IsotopesColumn, {
+ parameter: "D18O",
+ label: "δ¹⁸O",
+ color: "red",
+ domain: [-40, 0],
+ width: 100,
+ nTicks: 4,
+ showAxis: isOldestColumn,
+ transform: "translate(370,0)",
+ }),
+ ]
+ ),
+ ]
+ );
+};
+
+function Column(props: IColumnProps) {
+ const { params } = props;
+ const data: IUnit[] = useAPIResult("/units", {
+ all: true,
+ ...params,
+ response: "long",
+ });
+ if (data == null) return null;
+
+ let sectionGroups = Array.from(group(data, (d) => d.section_id));
+
+ sectionGroups.sort((a, b) => a.t_age - b.t_age);
+
+ return h("div.column", [
+ h("div.age-axis-label", "Age (Ma)"),
+ h(
+ "div.main-column",
+ sectionGroups.map(([id, values], i) => {
+ return h(`div.section-${id}`, [
+ h(Section, {
+ data: values,
+ isOldestColumn: i == sectionGroups.length - 1,
+ }),
+ ]);
+ })
+ ),
+ ]);
+}
+
+export { Section, IColumnProps };
+export default Column;
diff --git a/src/pages/dev/concepts/carbon-isotopes/main.styl b/src/pages/dev/concepts/carbon-isotopes/main.styl
new file mode 100644
index 00000000..3ba64bd3
--- /dev/null
+++ b/src/pages/dev/concepts/carbon-isotopes/main.styl
@@ -0,0 +1,132 @@
+*
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif
+
+html, body
+ margin 0
+ padding 0
+
+div.column-ui
+ width 100vw
+ height 100vh
+ overflow-y scroll
+ display flex
+ flex-direction: row
+
+.column-view
+ flex-grow 1
+ padding 1em
+ max-height 100vh
+ overflow-y scroll
+ h1
+ font-size 1.2em
+ margin-bottom 0.2em
+ padding-left 35px
+
+// Column
+.column
+ margin-bottom 1em
+ display: flex
+ flex-direction row
+ .age-axis-label
+ writing-mode vertical-lr
+ transform: rotate(180deg)
+ font-size 12px
+ text-align: center
+ position: sticky
+ top: 0
+ max-height: 100vh
+ .tick text
+ text-anchor middle
+ font-weight 400 !important
+ transform rotate(-90deg) translate(8px,-12px)
+
+rect.unit
+ stroke: black
+ stroke-width: 1px
+
+g.lithology-column use.frame
+ stroke black
+ stroke-width: 1.5px !important
+ pointer-events none
+
+g.isotopes-column
+ rect.underlay
+ fill: transparent
+
+.col-note-label
+ font-size: 10px
+ margin-top 3px
+ padding 2px
+ padding-left: 3px
+ line-height: 9px
+ border-left none !important
+
+g.height-range
+ display none
+
+.note-inner
+ border: none
+
+.frame rect
+ fill transparent
+
+.map-placeholder
+ position relative
+
+.macrostrat-map
+ .graticule
+ stroke-dasharray inherit
+ stroke darken(#AFE6F0, 5%)
+ .neatline
+ stroke-width 1.5px
+
+.column-nav
+ position sticky
+ top 2.2em
+ h3
+ color: #444
+ margin-bottom: 0.3em
+
+.default-buttons
+ width: 100%
+ margin 0 -10px
+
+div.context-map
+ position absolute
+ top 0
+ right 0
+ width: 250px
+ height: 250px
+ cursor pointer
+ z-index 100
+ &.expanded
+ cursor inherit
+ .columns path:hover
+ stroke: rgba(255,0,0,.4) !important
+
+
+ .close-button
+ position absolute
+ top 1em
+ right 1em
+
+ .land
+ background-color rgb(233, 252, 234)
+
+div.map-column
+ width 600px
+ height 100vh
+ display flex
+ flex-direction column
+ .map-area
+ flex-grow 1
+
+@media (prefers-color-scheme: dark)
+ body
+ display block
+
+ .lithology-column .frame
+ stroke: white
+ g.inner
+ rect.unit
+ filter: invert(100%)
diff --git a/src/pages/dev/concepts/detrital-zircon/+Page.ts b/src/pages/dev/concepts/detrital-zircon/+Page.ts
new file mode 100644
index 00000000..943fa0b5
--- /dev/null
+++ b/src/pages/dev/concepts/detrital-zircon/+Page.ts
@@ -0,0 +1,85 @@
+import { useState } from "react";
+import h from "@macrostrat/hyper";
+import {
+ APIProvider,
+ getQueryString,
+ setQueryString,
+} from "@macrostrat/ui-components";
+import Column from "./column";
+import { DetritalColumn } from "./detrital";
+import {
+ ColumnNavigatorMap,
+ MeasurementsLayer,
+} from "@macrostrat/column-views";
+import { PatternProvider } from "~/_providers";
+import { ColumnDataProvider, useColumnData } from "./column-data";
+import "./main.styl";
+
+const ColumnTitle = (props) => {
+ return h.if(props.data != null)("h1", props.data?.col_name);
+};
+
+const ColumnUI = ({ setCurrentColumn }) => {
+ const { footprint, params, units } = useColumnData();
+
+ // 495
+ return h("div.column-ui", [
+ h("div.main-panel", [
+ h(ColumnTitle, { data: footprint?.properties }),
+ h("div.flex-container.columns", [
+ h("div.column-view", [h(Column, { data: units })]),
+ h(DetritalColumn, params),
+ ]),
+ ]),
+ h("div.map-column", [
+ h(
+ ColumnNavigatorMap,
+ { currentColumn: footprint, setCurrentColumn, margin: 0 },
+ [
+ h(MeasurementsLayer, {
+ measure_phase: "zircon",
+ measurement: "207Pb-206Pb",
+ }),
+ ]
+ ),
+ ]),
+ ]);
+};
+
+const ColumnManager = () => {
+ const defaultArgs = { col_id: 495 };
+ const initArgs = getQueryString() ?? defaultArgs;
+ const [columnArgs, setColumnArgs] = useState(initArgs);
+
+ const setCurrentColumn = (obj) => {
+ let args = obj;
+ if ("properties" in obj) {
+ args = { col_id: obj.properties.col_id };
+ }
+ // Set query string
+ setQueryString(args);
+ setColumnArgs(args);
+ };
+
+ return h(
+ ColumnDataProvider,
+ { params: columnArgs },
+ h(ColumnUI, { setCurrentColumn })
+ );
+};
+
+export function Page() {
+ return h(
+ PatternProvider,
+ h(
+ APIProvider,
+ {
+ baseURL: "https://dev2.macrostrat.org/api/v2",
+ unwrapResponse: (res) => {
+ return res.success.data;
+ },
+ },
+ h(ColumnManager)
+ )
+ );
+}
diff --git a/src/pages/dev/filtering/+config.h.ts b/src/pages/dev/concepts/detrital-zircon/+config.ts
similarity index 100%
rename from src/pages/dev/filtering/+config.h.ts
rename to src/pages/dev/concepts/detrital-zircon/+config.ts
diff --git a/src/pages/dev/concepts/detrital-zircon/column-data/index.ts b/src/pages/dev/concepts/detrital-zircon/column-data/index.ts
new file mode 100644
index 00000000..02315b64
--- /dev/null
+++ b/src/pages/dev/concepts/detrital-zircon/column-data/index.ts
@@ -0,0 +1,30 @@
+import h from "@macrostrat/hyper";
+import { UnitsColumn } from "@macrostrat/column-views";
+import UnitNamesColumn from "./unit-names";
+
+const CompositeUnitsColumn = (props: ICompositeUnitProps) => {
+ /*
+ A column with units and names either
+ overlapping or offset to the right
+ */
+ const { columnWidth, width, gutterWidth, labelOffset } = props;
+
+ return h([
+ h(UnitsColumn, {
+ width: columnWidth,
+ }),
+ h(UnitNamesColumn, {
+ transform: `translate(${columnWidth + gutterWidth})`,
+ paddingLeft: labelOffset,
+ width: width - columnWidth - gutterWidth,
+ }),
+ ]);
+};
+
+CompositeUnitsColumn.defaultProps = {
+ gutterWidth: 10,
+ labelOffset: 30,
+};
+
+export { CompositeUnitsColumn };
+export * from "./provider";
diff --git a/src/pages/dev/concepts/detrital-zircon/column-data/provider.ts b/src/pages/dev/concepts/detrital-zircon/column-data/provider.ts
new file mode 100644
index 00000000..aaa3d46a
--- /dev/null
+++ b/src/pages/dev/concepts/detrital-zircon/column-data/provider.ts
@@ -0,0 +1,45 @@
+import { useContext, createContext, useMemo } from "react";
+import { useDetritalMeasurements, MeasurementInfo } from "../detrital/provider";
+import { useAPIResult } from "@macrostrat/ui-components";
+import { IUnit } from "@macrostrat/column-views";
+
+import h from "@macrostrat/hyper";
+
+function useColumnFootprint(columnArgs) {
+ const colParams = { ...columnArgs, format: "geojson" };
+ const res = useAPIResult("/columns", colParams, [columnArgs]);
+ return res?.features[0];
+}
+
+function useColumnUnits(columnArgs) {
+ return useAPIResult(
+ "/units",
+ { all: true, ...columnArgs, response: "long" },
+ [columnArgs]
+ );
+}
+
+interface ColumnCtx {
+ params: {
+ col_id: number;
+ project_id?: number;
+ };
+ dz: MeasurementInfo[];
+ footprint: any;
+ units: IUnit[];
+}
+
+const ColumnDataContext = createContext(null);
+
+function ColumnDataProvider(props: React.PropsWithChildren) {
+ const { children, params } = props;
+ const measurements = useDetritalMeasurements(params);
+ const footprint = useColumnFootprint(params);
+ const units = useColumnUnits(params);
+ const value = { params, measurements, footprint, units };
+ return h(ColumnDataContext.Provider, { value, children });
+}
+
+const useColumnData = () => useContext(ColumnDataContext);
+
+export { ColumnDataProvider, ColumnDataContext, useColumnData };
diff --git a/src/pages/dev/concepts/detrital-zircon/column-data/unit-names.ts b/src/pages/dev/concepts/detrital-zircon/column-data/unit-names.ts
new file mode 100644
index 00000000..c7540b67
--- /dev/null
+++ b/src/pages/dev/concepts/detrital-zircon/column-data/unit-names.ts
@@ -0,0 +1,60 @@
+import h from "@macrostrat/hyper";
+import { useContext } from "react";
+import { useColumnData } from "./provider";
+import { DetritalGroup } from "./detrital";
+
+import { ColumnContext, NotesColumn } from "@macrostrat/column-components";
+//import {INote} from '@macrostrat/column-components/src/notes/index.d.ts'
+
+interface UnitNamesProps {
+ left?: number;
+ nameForDivision(object): string;
+}
+
+const NoteComponent = props => {
+ const { note, division, measurement } = props;
+ let text = note.note;
+ /*if (note.measurement != null) {
+ return h(DetritalGroup, {data: note.measurement})
+ }*/
+
+ return h("p.col-note-label", text);
+};
+
+const UnitNamesColumn = (props: UnitNamesProps) => {
+ const { left, nameForDivision, ...rest } = props;
+ const { divisions } = useContext(ColumnContext);
+
+ const notes: INote[] = divisions.map((div, i) => {
+ return {
+ height: div.b_age,
+ top_height: div.t_age,
+ note: nameForDivision(div),
+ division: div,
+ //measurement: dz?.get(div.unit_id)
+ id: i
+ };
+ });
+
+ return h(NotesColumn, {
+ transform: `translate(${left || 0})`,
+ editable: false,
+ noteComponent: NoteComponent,
+ notes,
+ forceOptions: {
+ nodeSpacing: 1
+ },
+ ...rest
+ });
+};
+
+UnitNamesColumn.defaultProps = {
+ nameForDivision: div => {
+ return div.unit_name
+ .replace("Mbr", "Member")
+ .replace("Fm", "Formation")
+ .replace("Gp", "Group");
+ }
+};
+
+export default UnitNamesColumn;
diff --git a/src/pages/dev/concepts/detrital-zircon/column.ts b/src/pages/dev/concepts/detrital-zircon/column.ts
new file mode 100644
index 00000000..04dd8057
--- /dev/null
+++ b/src/pages/dev/concepts/detrital-zircon/column.ts
@@ -0,0 +1,94 @@
+import h from "@macrostrat/hyper";
+import { group } from "d3-array";
+//import {ColumnProvider} from "@macrostrat/column-components/dist/cjs/context/column"
+import {
+ ColumnProvider,
+ ColumnSVG,
+ LithologyColumn,
+ ColumnAxis,
+ ColumnContext,
+ NotesColumn,
+} from "@macrostrat/column-components";
+import { MacrostratColumnProvider } from "@macrostrat/api-views";
+import { CompositeUnitsColumn, IUnit } from "@macrostrat/column-views";
+import { useContext } from "react";
+
+interface IColumnProps {
+ data: IUnit[];
+ pixelScale?: number;
+}
+
+const AgeAxis = ({ ticks }) => {
+ const { pixelHeight } = useContext(ColumnContext);
+ // A tick roughly every 40 pixels
+ let v = Math.max(Math.round(pixelHeight / 40), 1);
+
+ return h(ColumnAxis, {
+ ticks: v,
+ showDomain: false,
+ });
+};
+
+const Section = (props: IColumnProps) => {
+ // Section with "squishy" time scale
+ const { data } = props;
+ let { pixelScale } = props;
+
+ const notesOffset = 100;
+
+ const range = [data[data.length - 1].b_age, data[0].t_age];
+
+ if (!pixelScale) {
+ // Make up a pixel scale
+ const dAge = range[0] - range[1];
+ const targetHeight = 20 * data.length;
+ pixelScale = Math.ceil(targetHeight / dAge);
+ }
+
+ return h(
+ MacrostratColumnProvider,
+ {
+ divisions: data,
+ range,
+ pixelsPerMeter: pixelScale, // Actually pixels per myr
+ },
+ [
+ h(
+ ColumnSVG,
+ {
+ width: 450,
+ padding: 20,
+ paddingV: 15,
+ },
+ [
+ h(AgeAxis),
+ h(CompositeUnitsColumn, {
+ width: 400,
+ columnWidth: 90,
+ }),
+ ]
+ ),
+ ]
+ );
+};
+
+const Column = (props: IColumnProps) => {
+ const { data } = props;
+ if (data == null) return null;
+
+ let sectionGroups = Array.from(group(data, (d) => d.section_id));
+
+ sectionGroups.sort((a, b) => a.t_age - b.t_age);
+
+ return h("div.column", [
+ h("div.age-axis-label", "Age (Ma)"),
+ h(
+ "div.main-column",
+ sectionGroups.map(([id, values]) => {
+ return h(`div.section-${id}`, [h(Section, { data: values })]);
+ })
+ ),
+ ]);
+};
+
+export default Column;
diff --git a/src/pages/dev/concepts/detrital-zircon/detrital/index.ts b/src/pages/dev/concepts/detrital-zircon/detrital/index.ts
new file mode 100644
index 00000000..7d0bd85d
--- /dev/null
+++ b/src/pages/dev/concepts/detrital-zircon/detrital/index.ts
@@ -0,0 +1,70 @@
+import {
+ DetritalSpectrumPlot,
+ DetritalSeries,
+ usePlotArea,
+} from "@macrostrat/data-components";
+import { IUnit } from "@macrostrat/column-views";
+import h from "@macrostrat/hyper";
+import { useAPIResult } from "@macrostrat/ui-components";
+import { useColumnData } from "../column-data/provider";
+import { useDetritalMeasurements, MeasurementInfo } from "./provider";
+
+interface DetritalItemProps {
+ data: MeasurementInfo[];
+ unit?: IUnit;
+}
+
+function DepositionalAge({ unit }) {
+ const { xScale, height } = usePlotArea();
+
+ const { t_age, b_age } = unit;
+ const x = xScale(t_age);
+ const x1 = xScale(b_age);
+
+ return h("rect.depositional-age", { x, width: x1 - x, y: 0, height });
+}
+
+function DetritalGroup(props: DetritalItemProps) {
+ const { data, unit } = props;
+ const { geo_unit } = data[0];
+
+ return h("div.detrital-group", [
+ h("h5.geo-unit", geo_unit),
+ h(DetritalSpectrumPlot, [
+ h.if(unit != null)(DepositionalAge, { unit }),
+ data.map((d) => {
+ return h(DetritalSeries, {
+ bandwidth: 30,
+ data: d.measure_value,
+ });
+ }),
+ ]),
+ ]);
+}
+
+const matchingUnit = (dz) => (d) => d.unit_id == dz[0].unit_id;
+
+function DetritalColumn() {
+ const { measurements: data, units } = useColumnData();
+
+ if (data == null || units == null) return null;
+
+ let dzUnitData = Array.from(data.values());
+ dzUnitData.sort((a, b) => {
+ const v1 = units.findIndex(matchingUnit(a));
+ const v2 = units.findIndex(matchingUnit(b));
+ return v1 > v2;
+ });
+
+ // group by units
+ return h(
+ "div.detrital-column",
+ null,
+ dzUnitData.map((d) => {
+ const unit = units.find(matchingUnit(d));
+ return h(DetritalGroup, { data: d, unit });
+ })
+ );
+}
+
+export { DetritalColumn, DetritalGroup, useDetritalMeasurements };
diff --git a/src/pages/dev/concepts/detrital-zircon/detrital/provider.ts b/src/pages/dev/concepts/detrital-zircon/detrital/provider.ts
new file mode 100644
index 00000000..657967e7
--- /dev/null
+++ b/src/pages/dev/concepts/detrital-zircon/detrital/provider.ts
@@ -0,0 +1,51 @@
+import { group } from "d3-array";
+import { useAPIResult } from "@macrostrat/ui-components";
+
+export interface MeasurementInfo {
+ measurement_id: number;
+ measuremeta_id: number;
+ measurement: string;
+ measure_units: string;
+ measure_phase: string;
+ method: string;
+ n: number;
+ ref_id: number;
+ sample_name: string;
+ geo_unit: string;
+ samp_lith: string;
+ samp_lith_id: number;
+ samp_desc: string;
+ samp_age: string;
+ lat: number;
+ lng: number;
+ unit_id: number;
+ unit_rel_pos?: any;
+ col_id: number;
+ strat_name_id: number;
+ match_basis: string;
+ ref: string;
+ measure_value: number[];
+ measure_error: number[];
+ measure_position: any[];
+ measure_n: number[];
+ sample_no: string[];
+ error_units: string;
+}
+
+export function useDetritalMeasurements(columnArgs) {
+ const params = {
+ ...columnArgs,
+ measure_phase: "zircon",
+ response: "long",
+ show_values: true,
+ // Other isotope systems are organized separately
+ measurement: "207Pb-206Pb"
+ };
+ const res: MeasurementInfo[] = useAPIResult(
+ "https://dev.macrostrat.org/api/v2/measurements",
+ params,
+ columnArgs
+ );
+ if (res == null) return null;
+ return group(res, d => d.unit_id);
+}
diff --git a/src/pages/dev/concepts/detrital-zircon/main.styl b/src/pages/dev/concepts/detrital-zircon/main.styl
new file mode 100644
index 00000000..874247e9
--- /dev/null
+++ b/src/pages/dev/concepts/detrital-zircon/main.styl
@@ -0,0 +1,147 @@
+*
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif
+
+html, body
+ margin 0
+ padding 0
+ height 100vh
+ width 100vw
+ overflow-y: none
+
+
+.column-view
+ flex-grow 1
+ h1
+ font-size 1.2em
+ margin-bottom 0.2em
+ padding-left 35px
+
+.flex-container
+ display flex
+ &.row
+ flex-direction row
+ &.column
+ flex-direction column
+
+// Column
+.column
+ display: flex
+ flex-direction row
+ .age-axis-label
+ writing-mode vertical-lr
+ transform: rotate(180deg)
+ font-size 12px
+ text-align: center
+ position: sticky
+ top: 0
+ max-height: 100vh
+ .tick text
+ text-anchor middle
+ font-weight 400 !important
+ transform rotate(-90deg) translate(8px,-12px)
+
+rect.unit
+ stroke: black
+ stroke-width: 1px
+
+g.lithology-column use.frame
+ stroke black
+ stroke-width: 1.5px !important
+ pointer-events none
+
+.col-note-label
+ font-size: 10px
+ margin-top 3px
+ padding 2px
+ padding-left: 3px
+ line-height: 9px
+ border-left none !important
+
+g.height-range
+ display none
+
+.note-inner
+ border: none
+
+.frame rect
+ fill transparent
+
+.map-placeholder
+ position relative
+
+.macrostrat-map
+ .graticule
+ stroke-dasharray inherit
+ stroke darken(#AFE6F0, 5%)
+ .neatline
+ stroke-width 1.5px
+
+div.column-ui
+ padding 0
+ width 100vw
+ display flex
+ flex-direction row
+ height 100vh
+
+.column-nav
+ position sticky
+ top 2.2em
+ h3
+ color: #444
+ margin-bottom: 0.3em
+
+.default-buttons
+ width: 100%
+ margin 0 -10px
+
+div.context-map
+ cursor pointer
+ .columns path:hover
+ stroke: rgba(255,0,0,.4) !important
+
+ .land
+ background-color rgb(233, 252, 234)
+
+div.main-panel
+ flex-grow 1
+ overflow-y: scroll
+ padding 1em
+
+div.detrital-column
+ flex-grow 2
+ h5
+ font-weight 400
+ font-style: italic
+ font-size 10px
+ margin 0
+ margin-bottom -2em
+
+div.map-column
+ width 600px
+ height 100vh
+ display flex
+ flex-direction column
+ .map-area
+ flex-grow 1
+
+ rect.depositional-age
+ fill #aaa
+
+@media (prefers-color-scheme: dark)
+ body
+ display block
+
+ .lithology-column .frame
+ stroke: white !important
+ g.inner
+ rect.unit
+ filter: invert(100%)
+ stroke: black
+
+// Helps with darkreader on Firefox
+html[data-darkreader-scheme="dark"]
+ .lithology-column .frame
+ stroke: white
+ g.inner
+ pattern image
+ filter: invert(100%)
diff --git a/src/pages/dev/concepts/eODP/+Page.ts b/src/pages/dev/concepts/eODP/+Page.ts
new file mode 100644
index 00000000..51962e17
--- /dev/null
+++ b/src/pages/dev/concepts/eODP/+Page.ts
@@ -0,0 +1,251 @@
+import { C, compose, hyperStyled } from "@macrostrat/hyper";
+import { useAPIResult, useElementSize } from "@macrostrat/ui-components";
+import { geoNaturalEarth1 } from "d3-geo";
+import { APIProvider } from "@macrostrat/ui-components";
+import ColumnMap from "./column-picker";
+import Column from "./column";
+import {
+ ColumnNavProvider,
+ useColumnNav,
+ UnitSelectionProvider,
+ useSelectedUnit,
+} from "@macrostrat/column-views";
+import ModalUnitPanel from "./modal-panel";
+import { preprocessUnits } from "./process-data";
+import { ColumnAxisType } from "@macrostrat/column-components";
+import {
+ ThreeColumnLayout,
+ useLayoutDispatch,
+} from "@macrostrat/ui-components";
+import { NonIdealState, Spinner, Button, ButtonGroup } from "@blueprintjs/core";
+import { useEffect, useState, useRef } from "react";
+import { PatternProvider } from "~/_providers";
+import { apiV2Prefix } from "@macrostrat-web/settings";
+import styles from "./age-model.module.styl";
+
+const h = hyperStyled(styles);
+
+const ColumnTitle = (props) => {
+ return h.if(props.data != null)([
+ " – ",
+ h("span.column-title", props.data?.col_name),
+ ]);
+};
+
+function ColumnView({ unitData, mode }) {
+ if (unitData == null)
+ return h(NonIdealState, { title: "Loading" }, h(Spinner));
+ if (unitData.length === 0)
+ return h(NonIdealState, {
+ title: "Data unavailable",
+ icon: "inbox",
+ description: "No units have yet been captured for this core",
+ });
+
+ const ref = useRef(null);
+ const { width, height } = useElementSize(ref) ?? {};
+
+ return h("div.column-view", { ref }, [
+ h.if(unitData != null)(Column, {
+ data: unitData,
+ width,
+ axisType: ColumnAxisType.HEIGHT,
+ mode,
+ }),
+ ]);
+}
+
+//macrostrat.org/api/units?col_id=5156&status_code=in%20process&show_position=true&response=long
+
+function UnitDetailPanel({ units, selectedUnit }) {
+ const dispatch = useLayoutDispatch();
+
+ useEffect(() => {
+ dispatch({
+ type: "show-panel",
+ panel: ThreeColumnLayout.Panels.Detail,
+ shouldShow: selectedUnit != null,
+ });
+ }, [selectedUnit]);
+
+ return h(ModalUnitPanel, {
+ className: "unit-details",
+ unitData: units,
+ setIsShown: () => {},
+ });
+}
+
+function PageTitle({ children }) {
+ const [currentColumn, setCurrentColumn] = useColumnNav();
+ const shouldLinkTitle =
+ currentColumn?.col_id != null && setCurrentColumn != null;
+ let titleEl = "eODP column viewer";
+ if (shouldLinkTitle) {
+ titleEl = h(
+ "a.title-link",
+ {
+ onClick: () => setCurrentColumn(defaultArgs),
+ },
+ titleEl
+ );
+ }
+ return h("span.title", [titleEl, children]);
+}
+
+function ColumnMapPanel(props) {
+ return h(ColumnMap, {
+ margin: 0,
+ color: "dodgerblue",
+ apiRoute: "/defs/columns",
+ filterColumns(col) {
+ return col.properties.t_units > 0;
+ },
+ ...props,
+ });
+}
+
+enum DetailMode {
+ AgeModel = "age-model",
+ Fossils = "fossils",
+}
+
+function DetailSelector({ mode, setMode }) {
+ return h(ButtonGroup, { minimal: true }, [
+ h(
+ Button,
+ {
+ active: mode === DetailMode.AgeModel,
+ onClick: () => setMode(DetailMode.AgeModel),
+ },
+ "Age model"
+ ),
+ h(
+ Button,
+ {
+ active: mode === DetailMode.Fossils,
+ onClick: () => setMode(DetailMode.Fossils),
+ },
+ "Nanofossils"
+ ),
+ ]);
+}
+
+function AppDetailView({ currentColumn, setCurrentColumn }) {
+ const selectedUnit = useSelectedUnit();
+ const { col_id, ...projectParams } = currentColumn;
+
+ const colParams = { ...currentColumn, format: "geojson" };
+ const unitParams = {
+ ...currentColumn,
+ show_position: true,
+ all: true,
+ response: "long",
+ };
+ const columnFeature = useAPIResult("/defs/columns", colParams, [
+ currentColumn,
+ ])?.features[0];
+
+ const [mode, setMode] = useState(DetailMode.AgeModel);
+
+ const unitData = useAPIResult("/units", unitParams, [currentColumn]);
+
+ const units = preprocessUnits(unitData ?? []);
+
+ const detailPanel = h(UnitDetailPanel, { units, selectedUnit });
+ // 495
+ const contextPanel = h(ColumnMapPanel, {
+ currentColumn: columnFeature,
+ setCurrentColumn,
+ ...projectParams,
+ filterColumns(col) {
+ return col.properties.t_units > 0;
+ },
+ });
+
+ return h(
+ ThreeColumnLayout,
+ {
+ title: h(PageTitle, { setCurrentColumn, currentColumn }, [
+ h(ColumnTitle, { data: columnFeature?.properties }),
+ ]),
+ contextPanel,
+ detailPanel,
+ headerActions: h(DetailSelector, { mode, setMode }),
+ panelState: {
+ detail: selectedUnit != null,
+ },
+ contextButtonPlacement: "right",
+ },
+ h(ColumnView, { unitData, mode })
+ );
+}
+
+const defaultArgs = {
+ status_code: "in process",
+ project_id: 3,
+};
+
+function MainMapPanel({ currentColumn, setCurrentColumn, ...projectParams }) {
+ const ref = useRef();
+ // Size to fit the Natural Earth projection
+ const { width, height } = useElementSize(ref) ?? {};
+ const scale = Math.min(width / 5.6, height / 3);
+
+ return h(ColumnMap, {
+ ref,
+ currentColumn: null,
+ setCurrentColumn,
+ margin: 0,
+ color: "dodgerblue",
+ apiRoute: "/defs/columns",
+ ...projectParams,
+ filterColumns(col) {
+ return col.properties.t_units > 0;
+ },
+ projection: geoNaturalEarth1(),
+ allowZoom: false,
+ center: [-120, 0],
+ scale,
+ });
+}
+
+function AppMain() {
+ const selectedUnit = useSelectedUnit();
+ const [currentColumn, setCurrentColumn] = useColumnNav();
+ const { col_id, ...projectParams } = currentColumn;
+
+ if (col_id != null) {
+ return h(AppDetailView, { currentColumn, setCurrentColumn });
+ }
+ return h(
+ ThreeColumnLayout,
+ {
+ title: h(PageTitle, { setCurrentColumn, currentColumn }),
+ },
+ h(MainMapPanel, {
+ currentColumn: null,
+ setCurrentColumn,
+ ...projectParams,
+ })
+ );
+}
+
+function MacrostratAPIProvider(props) {
+ return h(
+ APIProvider,
+ {
+ baseURL: apiV2Prefix,
+ unwrapResponse: (res) => res.success.data,
+ },
+ props.children
+ );
+}
+
+export const Page = compose(
+ //DarkModeProvider,
+ PatternProvider,
+ UnitSelectionProvider,
+ C(ColumnNavProvider, { ...defaultArgs }),
+ C(MacrostratAPIProvider, { useDev: false }),
+ AppMain
+);
diff --git a/src/pages/maps/@id/+config.h.ts b/src/pages/dev/concepts/eODP/+config.ts
similarity index 100%
rename from src/pages/maps/@id/+config.h.ts
rename to src/pages/dev/concepts/eODP/+config.ts
diff --git a/src/pages/dev/concepts/eODP/age-model-column.ts b/src/pages/dev/concepts/eODP/age-model-column.ts
new file mode 100644
index 00000000..11e7b132
--- /dev/null
+++ b/src/pages/dev/concepts/eODP/age-model-column.ts
@@ -0,0 +1,307 @@
+import { format } from "d3-format";
+import h from "@macrostrat/hyper";
+import classNames from "classnames";
+import { AxisBottom } from "@vx/axis";
+import { useMemo } from "react";
+import { useColumnNav } from "@macrostrat/column-views";
+
+import {
+ CrossAxisLayoutProvider,
+ ColumnLayoutContext,
+ ColumnContext,
+ useColumnDivisions,
+ useColumnLayout,
+} from "@macrostrat/column-components";
+import T from "prop-types";
+
+const fmt = format(".1f");
+
+import { line } from "d3-shape";
+import { createContext, useContext } from "react";
+import { UnitLong } from "@macrostrat/api-types";
+import { useAPIResult } from "@macrostrat/ui-components";
+
+const inDomain = (scale, num) => {
+ const domain = scale.domain();
+ return domain[0] < num < domain[1];
+};
+
+const createPointLocator = function (opts) {
+ const { xScale, scale, getHeight, ...rest } = opts;
+ return function (d, s = 0) {
+ const height = getHeight(d);
+ if (!inDomain(scale, height)) return null;
+ return [xScale(d.value), scale(height)];
+ };
+};
+
+const IsotopesDataContext = createContext();
+
+interface DataAreaProps {
+ clipY: boolean;
+ parameter: string;
+}
+
+function useLineLocator({
+ xAccessor = (d) => d.x,
+ yAccessor = (d) => d.y,
+} = {}) {
+ const { xScale, scale } = useContext(ColumnLayoutContext) ?? {};
+ return useMemo(
+ () =>
+ line()
+ .x((d) => xScale(xAccessor(d)))
+ .y((d) => scale(yAccessor(d))),
+ [xScale, scale, xAccessor, yAccessor]
+ );
+}
+
+const IsotopesDataArea = function (props: DataAreaProps) {
+ const { xScale, scale } = useContext(ColumnLayoutContext) ?? {};
+
+ let { corrected, system, children, getHeight, clipY } = props;
+ if (getHeight == null) {
+ getHeight = function (d) {
+ if (d.height == null) {
+ console.log(d);
+ }
+ return d.height;
+ };
+ }
+
+ // Handlers for creating points and lines
+ const pointLocator = createPointLocator({
+ xScale,
+ scale,
+ corrected,
+ system,
+ getHeight,
+ });
+
+ let column = "avg_" + system;
+ if (corrected) {
+ column += "_corr";
+ }
+ const lineLocator = line()
+ .x((d) => xScale(d[column]))
+ .y((d) => scale(d.height));
+
+ const value = { pointLocator, lineLocator, corrected, system, clipY };
+ return h(
+ IsotopesDataContext.Provider,
+ { value },
+ h("g.data", null, children)
+ );
+};
+
+IsotopesDataArea.defaultProps = { clipY: false };
+
+const useDataLocator = () => useContext(IsotopesDataContext);
+
+const IsotopeText = function ({ datum, text, ...rest }) {
+ const { pointLocator } = useDataLocator();
+ const [x, y] = pointLocator(datum);
+ return h(
+ "text",
+ {
+ x,
+ y,
+ ...rest,
+ },
+ text
+ );
+};
+
+IsotopeText.propTypes = {
+ datum: T.object.isRequired,
+};
+
+function ColumnScale(props) {
+ const {
+ label,
+ showAxis = true,
+ nTicks = 6,
+ tickValues: _tickVals,
+ ...rest
+ } = props;
+ const { xScale, pixelHeight, width } = useContext(ColumnLayoutContext);
+
+ const tickValues = _tickVals ?? xScale.ticks(nTicks);
+
+ return h("g.scale.isotope-scale-axis", [
+ h(
+ "g.scale-lines",
+ tickValues.map((value) => {
+ const strokeDasharray = value == 0 ? null : "2 6";
+ return h(ScaleLine, { value, stroke: "#ddd", strokeDasharray });
+ })
+ ),
+ h.if(showAxis)([
+ h("rect.underlay", {
+ x: 0,
+ y: pixelHeight,
+ width,
+ height: 30,
+ }),
+ h(AxisBottom, {
+ scale: xScale,
+ tickLength: 3,
+ tickValues,
+ ...rest,
+ top: pixelHeight,
+ tickLabelProps(tickValue, i) {
+ // Compensate for negative sign
+ let dx;
+ if (tickValue < 0) {
+ dx = -2;
+ }
+ return {
+ dy: "-1px",
+ dx,
+ fontSize: 10,
+ textAnchor: "middle",
+ fill: "#aaa",
+ };
+ },
+ labelOffset: 0,
+ label,
+ }),
+ ]),
+ ]);
+}
+
+const ScaleLine = function (props) {
+ let { value, className, labelBottom, labelOffset, ...rest } = props;
+ if (labelBottom == null) {
+ labelBottom = false;
+ }
+ if (labelOffset == null) {
+ labelOffset = 12;
+ }
+ const { xScale, pixelHeight } = useContext(ColumnLayoutContext);
+ const x = xScale(value);
+ const transform = `translate(${x})`;
+ className = classNames(className, { zero: value === 0 });
+ return h("g.tick", { transform, className, key: value }, [
+ h("line", { x0: 0, x1: 0, y0: 0, y1: pixelHeight, ...rest }),
+ h.if(labelBottom)("text", { y: pixelHeight + labelOffset }, `${value}`),
+ ]);
+};
+
+ScaleLine.propTypes = {
+ value: T.number.isRequired,
+ labelBottom: T.bool,
+};
+
+interface IsotopesDatasetProps {
+ color: string;
+ parameter: string;
+}
+
+interface IsotopeColumnProps extends IsotopesDatasetProps {
+ width: number;
+ tickValues?: number[];
+ label: string;
+ domain: [number, number];
+ transform?: string;
+}
+
+function ReconstructedColumnAgeDataset(rest) {
+ const divisions: UnitLong[] = useColumnDivisions();
+ const lineLocator = useLineLocator();
+ const xy = [];
+ for (const d of divisions) {
+ xy.push({ x: d.t_age, y: d.t_pos });
+ xy.push({ x: d.b_age, y: d.b_pos });
+ }
+ const d = lineLocator(xy);
+
+ return h("path.age-dataset", {
+ d,
+ fill: "transparent",
+ ...rest,
+ });
+}
+
+function useColumnAgeModel() {
+ const [currentColumn, _] = useColumnNav();
+ return useAPIResult("/age_model", currentColumn);
+}
+
+function AgeModelDataset({ data, showPoints = true, ...props }) {
+ const columnAgeData: any[] = data ?? useColumnAgeModel();
+
+ const lineLocator = useLineLocator();
+
+ if (columnAgeData == null) return null;
+ const xy = columnAgeData.map((d) => {
+ return { x: d.model_age, y: d.boundary_position };
+ });
+ const d = lineLocator(xy);
+
+ return h("g.age-dataset", [
+ h("path.age-dataset", {
+ d,
+ fill: "transparent",
+ ...props,
+ }),
+ h.if(showPoints)(AgeModelPoints, {
+ positions: xy,
+ fill: props.stroke,
+ r: props.strokeWidth * 1,
+ }),
+ ]);
+}
+
+function AgeModelPoints({ positions, ...rest }) {
+ const { xScale, scale } = useColumnLayout();
+ return h(
+ "g.age-model-points",
+ positions.map((d, i) => {
+ return h("circle", {
+ key: i,
+ cx: xScale(d.x),
+ cy: scale(d.y),
+ ...rest,
+ });
+ })
+ );
+}
+
+function AgeModelColumn(
+ props: IsotopeColumnProps & { children?: React.ReactNode }
+) {
+ const {
+ width = 120,
+ parameter,
+ label,
+ color = "dodgerblue",
+ children,
+ transform,
+ getHeight,
+ domain: baseDomain,
+ ...rest
+ } = props;
+
+ const divisions: UnitLong[] = useColumnDivisions();
+ const domain = baseDomain ?? [
+ divisions[divisions.length - 1].b_age,
+ divisions[0].t_age,
+ ];
+
+ return h(
+ CrossAxisLayoutProvider,
+ { width, domain },
+ h("g.isotopes-column", { className: parameter, transform }, [
+ h(ColumnScale, { showAxis: false, label: label ?? parameter, ...rest }),
+ children,
+ ])
+ );
+}
+
+export {
+ AgeModelColumn,
+ AgeModelDataset,
+ ReconstructedColumnAgeDataset,
+ useColumnAgeModel,
+};
diff --git a/src/pages/dev/concepts/eODP/age-model.module.styl b/src/pages/dev/concepts/eODP/age-model.module.styl
new file mode 100644
index 00000000..0e12e9cb
--- /dev/null
+++ b/src/pages/dev/concepts/eODP/age-model.module.styl
@@ -0,0 +1,239 @@
+.column-view
+ margin 0
+ padding 0
+ position absolute
+ top 0
+ left 0
+ right 0
+ bottom 0
+ padding-left 10px
+ overflow-x hidden
+ h1
+ font-size 1.2em
+ margin-bottom 0.2em
+ padding-left 35px
+
+
+.column-title
+ font-weight: 600
+
+// .column-picker
+// height: 100%
+// width: 500px
+// max-width: 500px
+// min-width: 200px
+// position: absolute
+
+
+
+.timescale-container
+ position sticky
+ bottom 0
+ background-color: var(--column-background-color)
+ z-index 100
+
+ .axis-label
+ font-size: 0.8em
+ text-align: center
+ margin-bottom 4px
+
+.column-map-container
+ min-width 400px
+ flex-grow 1
+ position relative
+ min-height: 100%
+
+ .controls
+ z-index: 100
+ position absolute
+ bottom 0
+ right 0
+ padding 0.5em
+
+.map-container
+ position: relative
+ height: 100%
+ width: 100%
+ flex-grow 1
+
+.column-map
+ position absolute
+ top: 0
+ bottom 0
+ left 0
+ right 0
+
+.unit-details
+ width: 450px
+
+:global
+ *
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif
+
+ html, body
+ margin 0
+ padding 0
+
+
+ body#column-inspector
+ overflow: hidden
+ width 100vw
+ height 100vh
+
+ // Column
+ .column
+ display: flex
+ flex-direction row
+ position relative
+ .age-axis-label
+ writing-mode vertical-lr
+ transform: rotate(180deg)
+ font-size 12px
+ text-align: center
+ position: sticky
+ top: 0
+ max-height: 100%
+ .tick text
+ text-anchor middle
+ font-weight 400 !important
+ transform rotate(-90deg) translate(8px,-12px)
+
+
+ svg.section.main-section
+ z-index: 50
+
+ rect.unit
+ stroke: black
+ stroke-width: 1px
+
+ g.lithology-column use.frame
+ stroke black
+ stroke-width: 1.5px !important
+ pointer-events none
+
+ .unit-label
+ text-align center
+
+ .col-note-label
+ font-size: 10px
+ margin-top 3px
+ padding 2px
+ padding-left: 3px
+ line-height: 9px
+ border-left none !important
+
+ g.height-range
+ display none
+
+ .note-inner
+ border: none
+
+ .frame rect
+ fill transparent
+
+ .map-placeholder
+ position relative
+
+ .macrostrat-map
+ .graticule
+ stroke-dasharray inherit
+ stroke darken(#AFE6F0, 5%)
+ .neatline
+ stroke-width 1.5px
+
+ .labeled-unit div.unit-overlay
+ font-size 10px
+ font-style: italic
+ display flex
+ align-items center
+ justify-content: center
+ span.unit-label
+ display block
+ $shadow-size=4px
+ text-shadow:
+ 0px 0px $shadow-size #ffffff,
+ 0px 0px $shadow-size #ffffff,
+ 0px 0px $shadow-size #ffffff,
+ 0px 0px $shadow-size #ffffff,
+ 0px 0px $shadow-size #ffffff,
+ 0px 0px $shadow-size #ffffff,
+ 0px 0px $shadow-size #ffffff,
+ 0px 0px $shadow-size #ffffff,
+ 0px 0px $shadow-size #ffffff,
+ 0px 0px $shadow-size #ffffff,
+ 0px 0px $shadow-size #ffffff,
+ 0px 0px $shadow-size #ffffff,
+ 0px 0px $shadow-size #ffffff,
+ 0px 0px $shadow-size #ffffff,
+ 0px 0px $shadow-size #ffffff,
+ 0px 0px $shadow-size #ffffff,
+ 0px 0px $shadow-size #ffffff,
+ 0px 0px $shadow-size #ffffff,
+ 0px 0px $shadow-size #ffffff,
+ 0px 0px $shadow-size #ffffff;
+
+ .column-nav
+ position sticky
+ top 2.2em
+ h3
+ color: #444
+ margin-bottom: 0.3em
+
+ .default-buttons
+ width: 100%
+ margin 0 -10px
+
+ div.context-map
+ position absolute
+ top 0
+ right 0
+ width: 250px
+ height: 250px
+ cursor pointer
+ z-index 100
+ &.expanded
+ cursor inherit
+ .columns path:hover
+ stroke: rgba(255,0,0,.4) !important
+
+
+ .close-button
+ position absolute
+ top 1em
+ right 1em
+
+ .land
+ background-color rgb(233, 252, 234)
+
+ div.section
+ display flex
+ flex-direction row
+ div.timescale.horizontal
+ // .interval-box
+ // height: 14px
+ // .interval
+ // &:last-child
+ // flex-grow 1
+ .label.interval-label
+ max-width: 100%
+
+
+ .section .divisions .unit
+ cursor pointer
+
+ rect.selection-overlay
+ fill rgba(255,0,0,.5)
+
+ // Helps with darkreader on Firefox
+ html[data-darkreader-scheme="dark"]
+ .lithology-column .frame
+ stroke: transparent
+ g.inner
+ pattern image
+ filter: invert(100%)
+
+ body
+ --column-background-color: #ffffff
+ // Column graph styles
+ .underlay
+ fill: var(--column-background-color)
\ No newline at end of file
diff --git a/src/pages/dev/concepts/eODP/column-picker.ts b/src/pages/dev/concepts/eODP/column-picker.ts
new file mode 100644
index 00000000..3ab662aa
--- /dev/null
+++ b/src/pages/dev/concepts/eODP/column-picker.ts
@@ -0,0 +1,91 @@
+import { geoCentroid, geoStereographic, geoNaturalEarth1 } from "d3-geo";
+import { ResizableMapFrame } from "@macrostrat/column-views";
+import {
+ ColumnKeyboardNavigation,
+ ColumnFeatures,
+ useColumnData,
+ CurrentColumn,
+} from "@macrostrat/column-views";
+import { useMemo, forwardRef } from "react";
+import { Tabs, Tab } from "@blueprintjs/core";
+import hyper from "@macrostrat/hyper";
+import styles from "./age-model.module.styl";
+const h = hyper.styled(styles);
+
+function useFilteredColumns({ apiRoute, status_code, project_id }) {
+ // Filter columns by whether they contain any units
+ const features = useColumnData({ apiRoute, status_code, project_id });
+
+ return useMemo(() => {
+ let completedColumns = [];
+ let emptyColumns = [];
+
+ for (const col of features ?? []) {
+ if (col.properties.t_units > 0) {
+ completedColumns.push(col);
+ } else {
+ emptyColumns.push(col);
+ }
+ }
+ return [completedColumns, emptyColumns];
+ }, [features]);
+}
+
+const ColumnMapView = forwardRef((props, ref) => {
+ const { currentColumn, setCurrentColumn, children, ...rest } = props;
+ const center = geoCentroid(currentColumn);
+
+ const { apiRoute = "/columns", status_code, project_id, color } = props;
+
+ const col_id = currentColumn?.properties?.col_id;
+
+ const [completedColumns, emptyColumns] = useFilteredColumns({
+ apiRoute,
+ status_code,
+ project_id,
+ });
+
+ let keyboardNavColumns = [
+ ...completedColumns,
+ // Add the current column to keyboard navigation so that we can navigate
+ // away from incomplete columns if we have them selected
+ ...emptyColumns.filter((d) => d.properties.col_id == col_id),
+ ];
+
+ return h("div.column-map-container", { ref }, [
+ h(
+ ResizableMapFrame,
+ {
+ center,
+ className: "column-map",
+ ...rest,
+ },
+ [
+ h(ColumnKeyboardNavigation, {
+ features: keyboardNavColumns,
+ col_id,
+ onChange: setCurrentColumn,
+ status_code,
+ project_id,
+ showLayers: false,
+ }),
+ h(ColumnFeatures, {
+ features: emptyColumns,
+ color: "#888",
+ onClick: setCurrentColumn,
+ }),
+ h(ColumnFeatures, {
+ features: completedColumns,
+ onClick: setCurrentColumn,
+ color,
+ }),
+ h.if(currentColumn != null)(CurrentColumn, {
+ feature: currentColumn,
+ }),
+ ]
+ ),
+ children,
+ ]);
+});
+
+export default ColumnMapView;
diff --git a/src/pages/dev/concepts/eODP/column.ts b/src/pages/dev/concepts/eODP/column.ts
new file mode 100644
index 00000000..9dbcc6f2
--- /dev/null
+++ b/src/pages/dev/concepts/eODP/column.ts
@@ -0,0 +1,273 @@
+import hyper from "@macrostrat/hyper";
+import { group, extent } from "d3-array";
+import {
+ ColumnSVG,
+ ColumnLayoutContext,
+ ColumnAxisType,
+ NotesColumn,
+} from "@macrostrat/column-components";
+import { useContext } from "react";
+import { AnnotatedUnitsColumn } from "@macrostrat/column-views";
+import { IUnit, transformAxisType } from "@macrostrat/column-views";
+import { AgeAxis } from "@macrostrat/concept-app-helpers";
+import { TrackedLabeledUnit } from "@macrostrat/column-views";
+import { useAPIResult } from "@macrostrat/ui-components";
+import { useColumnNav } from "@macrostrat/column-views";
+import {
+ AgeModelColumn,
+ AgeModelDataset,
+ ReconstructedColumnAgeDataset,
+ useColumnAgeModel,
+} from "./age-model-column";
+import { MacrostratColumnProvider } from "@macrostrat/api-views";
+// import "@macrostrat/timescale/dist/timescale.css";
+import { Timescale } from "@macrostrat/timescale";
+import styles from "./age-model.module.styl";
+
+const h = hyper.styled(styles);
+
+interface ColumnProps {
+ data: IUnit[];
+ pixelScale?: number;
+ range?: [number, number];
+ unitComponent: React.FunctionComponent;
+ unitComponentProps?: any;
+ axisType?: ColumnAxisType;
+ width?: number;
+}
+
+function getRange(data, axisType: ColumnAxisType = ColumnAxisType.AGE) {
+ const key = transformAxisType(axisType);
+ return [data[data.length - 1]["b_" + key], data[0]["t_" + key]];
+}
+
+function FossilData({ width }) {
+ const { col_id } = useColumnNav();
+ const data =
+ useAPIResult(
+ "http://strata.geology.wisc.edu/syenite/offshore_fossils.php",
+ { col_id },
+ (res) => res
+ ) ?? [];
+
+ const notes = data.map((d, i) => {
+ return {
+ note: d.name + ": " + d.taxa.map((d) => d.taxon).join(", "),
+ height: d.depth,
+ id: i,
+ };
+ });
+
+ return h(NotesColumn, { editable: false, notes, width });
+}
+
+function FossilColumn(props) {
+ const { width } = props;
+ return h("div.fossil-column", [
+ h(
+ ColumnSVG,
+ {
+ width: width - 22,
+ padding: 20,
+ paddingLeft: 50,
+ paddingV: 10,
+ paddingBottom: 20,
+ },
+ [h(FossilData, { width: width - 200 })]
+ ),
+ ]);
+}
+
+const Section = (props: ColumnProps) => {
+ // Section with "squishy" time scale
+
+ const {
+ data,
+ axisType,
+ range = getRange(data, axisType),
+ unitComponent,
+ width = 550,
+ ageWidth,
+ ageData,
+ ageBounds,
+ mode,
+ } = props;
+ let { pixelScale } = props;
+
+ const dHeight = range[0] - range[1];
+
+ if (!pixelScale) {
+ // Make up a pixel scale
+ const targetHeight = 20 * data.length;
+ pixelScale = Math.ceil(targetHeight / dHeight);
+ }
+
+ return h(
+ MacrostratColumnProvider,
+ {
+ divisions: data,
+ range,
+ axisType: "depth",
+ pixelsPerMeter: pixelScale, // Actually pixels per myr
+ },
+ [
+ h(AgeAxis, {
+ width: 22,
+ paddingV: 10,
+ paddingBottom: 20,
+ paddingLeft: 20,
+ showLabel: false,
+ showDomain: true,
+ }),
+ h(
+ ColumnSVG,
+ {
+ width: 170 + 150,
+ padding: 20,
+ paddingLeft: 1,
+ paddingV: 10,
+ paddingBottom: 20,
+ style: {
+ marginRight: -150,
+ },
+ className: "main-section",
+ },
+ h(AnnotatedUnitsColumn, {
+ width: 350,
+ columnWidth: 150,
+ gutterWidth: 0,
+ axisType,
+ unitComponent,
+ unitComponentProps: {
+ nColumns: 1,
+ },
+ minimumLabelHeight: 0.5,
+ nameForDivision: (d) => {
+ return d.unit_name
+ .replace(/[\d\.]+-[\d\.]+( mbsf)?: /g, "")
+ .toLowerCase();
+ },
+ })
+ ),
+ h.if(mode == "fossils")(FossilColumn, { width }),
+ h.if(mode == "age-model")("div.age-model", [
+ h(
+ ColumnSVG,
+ {
+ width: width - 22,
+ padding: 20,
+ paddingLeft: 1,
+ paddingV: 10,
+ paddingBottom: 20,
+ },
+ h(
+ AgeModelColumn,
+ {
+ width: ageWidth,
+ nTicks: 10,
+ domain: ageBounds,
+ },
+ [
+ h(AgeModelDataset, {
+ data: ageData,
+ stroke: "green",
+ strokeWidth: 2,
+ }),
+ // h(ReconstructedColumnAgeDataset, {
+ // stroke: "red",
+ // strokeWidth: 2
+ // })
+ ]
+ )
+ ),
+ ]),
+ ]
+ );
+};
+
+export function UnitComponent({ division, nColumns = 2, ...rest }) {
+ const { width } = useContext(ColumnLayoutContext);
+
+ //const nCols = Math.min(nColumns, division.overlappingUnits.length+1)
+ //console.log(division);
+ const nOverlaps = division.overlappingUnits.length ?? 0;
+ return h(TrackedLabeledUnit, {
+ division,
+ ...rest,
+ axisType: "pos",
+ width: nOverlaps > 0 ? width / nColumns : width,
+ x: (division.column * width) / nColumns,
+ });
+}
+
+const AgeAxisLabel = ({ axisType: ColumnAxisType, axisLabel }) => {
+ if (axisLabel == null) {
+ axisLabel = "Height (meters)";
+ if (ColumnAxisType === ColumnAxisType.AGE) {
+ axisLabel = "Age (myr)";
+ }
+ }
+ return h("div.age-axis-label", axisLabel);
+};
+
+const Column = (props: ColumnProps) => {
+ const {
+ data,
+ unitComponent = UnitComponent,
+ axisType,
+ width = 550,
+ mode,
+ } = props;
+
+ let sectionGroups = Array.from(group(data, (d) => d.section_id));
+
+ sectionGroups.sort((a, b) => a["t_" + axisType] - b["t_" + axisType]);
+
+ const ageWidth = width - 100 - 170 - 32;
+
+ const ageData = useColumnAgeModel() ?? [];
+
+ let ageBounds = extent(ageData, (d) => d.model_age);
+ ageBounds.reverse();
+
+ return h("div.column", [
+ h(AgeAxisLabel, { axisType, axisLabel: "Depth (meters below seafloor)" }),
+ h("div.main-column", [
+ sectionGroups.map(([id, values]) => {
+ return h(`div.section.section-${id}`, [
+ h(Section, {
+ //pixelScale: 5,
+ data: values,
+ axisType,
+ unitComponent,
+ width: width - 100,
+ ageWidth,
+ ageData,
+ ageBounds,
+ mode,
+ }),
+ ]);
+ }),
+ //h(FossilData),
+ h.if(ageBounds != null && mode == "age-model")(
+ "div.timescale-container",
+ {
+ style: { marginLeft: 170 + 22, paddingLeft: 2, width: ageWidth + 4 },
+ },
+ [
+ h(Timescale, {
+ orientation: "horizontal",
+ absoluteAgeScale: true,
+ length: ageWidth,
+ ageRange: ageBounds,
+ levels: [3, 4],
+ }),
+ h("div.axis-label", "Age (Ma)"),
+ ]
+ ),
+ ]),
+ ]);
+};
+
+export { Section, AgeAxis };
+export default Column;
diff --git a/src/pages/dev/concepts/eODP/modal-panel.ts b/src/pages/dev/concepts/eODP/modal-panel.ts
new file mode 100644
index 00000000..0af6652f
--- /dev/null
+++ b/src/pages/dev/concepts/eODP/modal-panel.ts
@@ -0,0 +1,77 @@
+import h from "@macrostrat/hyper";
+import { JSONView, ModalPanel } from "@macrostrat/ui-components";
+import { ButtonGroup, Button } from "@blueprintjs/core";
+import { useEffect } from "react";
+import {
+ useSelectedUnit,
+ useUnitSelectionDispatch,
+} from "@macrostrat/column-views";
+
+const ColumnTitle = (props) => {
+ return h.if(props.data != null)("h1", props.data?.col_name);
+};
+
+function ModalUnitPanel(props) {
+ const { unitData, className } = props;
+ const selectedUnit = useSelectedUnit();
+ const selectUnit = useUnitSelectionDispatch();
+
+ const ix = unitData?.findIndex(
+ (unit) => unit.unit_id === selectedUnit?.unit_id
+ );
+
+ const keyMap = {
+ 38: ix - 1,
+ 40: ix + 1,
+ };
+
+ // Keyboard column selector
+ useEffect(() => {
+ const listener = (event) => {
+ const nextIx = keyMap[event.keyCode];
+ if (nextIx < 0 || nextIx >= unitData.length) return;
+ selectUnit(unitData[nextIx]);
+ event.stopPropagation();
+ };
+
+ document.addEventListener("keydown", listener);
+ return () => {
+ document.removeEventListener("keydown", listener);
+ };
+ }, [unitData, ix]);
+
+ if (selectedUnit == null) return null;
+
+ const headerChildren = h(ButtonGroup, { minimal: true }, [
+ h(Button, {
+ icon: "arrow-up",
+ disabled: ix === 0,
+ onClick() {
+ selectUnit(unitData[ix - 1]);
+ },
+ }),
+ h(Button, {
+ icon: "arrow-down",
+ disabled: ix === unitData.length - 1,
+ onClick() {
+ selectUnit(unitData[ix + 1]);
+ },
+ }),
+ ]);
+
+ return h(
+ ModalPanel,
+ {
+ onClose() {
+ selectUnit(null);
+ },
+ title: selectedUnit.unit_name,
+ className,
+ minimal: true,
+ headerChildren,
+ },
+ h(JSONView, { data: selectedUnit })
+ );
+}
+
+export default ModalUnitPanel;
diff --git a/src/pages/dev/concepts/eODP/process-data.ts b/src/pages/dev/concepts/eODP/process-data.ts
new file mode 100644
index 00000000..239c355e
--- /dev/null
+++ b/src/pages/dev/concepts/eODP/process-data.ts
@@ -0,0 +1,48 @@
+import { BaseUnit, UnitLong } from "@macrostrat/api-types";
+import { EditableDateField } from "packages/ui-components/lib/types";
+
+// Time resolution is 100 years
+const dt = 0.0001;
+
+function unitsOverlap(a: T, b: T) {
+ return !(a.b_age <= b.t_age + dt || a.t_age >= b.b_age - dt);
+}
+
+interface ExtUnit extends UnitLong {
+ bottomOverlap: boolean;
+ overlappingUnits: number[];
+ column?: number;
+}
+
+function extendDivision(
+ unit: UnitLong,
+ i: number,
+ divisions: UnitLong[]
+): ExtUnit {
+ const overlappingUnits = divisions.filter(
+ d => d.unit_id != unit.unit_id && unitsOverlap(unit, d)
+ );
+ let bottomOverlap = false;
+ for (const d of overlappingUnits) {
+ if (d.b_age < unit.b_age) bottomOverlap = true;
+ }
+
+ let column = 0;
+ if (overlappingUnits.length == 1) {
+ column = 1;
+ }
+
+ return {
+ ...unit,
+ bottomOverlap,
+ column,
+ overlappingUnits: overlappingUnits.map(d => d.unit_id)
+ };
+}
+
+function preprocessUnits(units: UnitLong[]) {
+ let divisions = units.map(extendDivision);
+ return divisions;
+}
+
+export { extendDivision, preprocessUnits };
diff --git a/src/pages/dev/concepts/editor/+Page.ts b/src/pages/dev/concepts/editor/+Page.ts
new file mode 100644
index 00000000..e89da70a
--- /dev/null
+++ b/src/pages/dev/concepts/editor/+Page.ts
@@ -0,0 +1,7 @@
+import SectionEditor from "@macrostrat-web/section-editor-demo";
+import { PatternProvider } from "~/_providers";
+import h from "@macrostrat/hyper";
+
+export function Page() {
+ return h(PatternProvider, h(SectionEditor));
+}
diff --git a/src/pages/dev/concepts/multiscale-figure/+Page.ts b/src/pages/dev/concepts/multiscale-figure/+Page.ts
new file mode 100644
index 00000000..cbeee289
--- /dev/null
+++ b/src/pages/dev/concepts/multiscale-figure/+Page.ts
@@ -0,0 +1,154 @@
+import h, { C, compose } from "@macrostrat/hyper";
+import { APIProvider, useAPIResult } from "@macrostrat/ui-components";
+import { PatternProvider } from "~/_providers";
+import {
+ AlignedMeasurementProvider,
+ FilteredMeasurementProvider,
+} from "./data-providers";
+import { BaseSection, InteriorSection } from "./src/section";
+import {
+ CompositeUnitsColumn,
+ CompositeUnitComponent,
+ IUnit,
+} from "@macrostrat/column-views";
+import type { ColumnSpec } from "@macrostrat/api-types";
+import {
+ IsotopesColumn,
+ IsotopesDataset,
+ MeasurementDataProvider,
+} from "@macrostrat/concept-app-helpers";
+import {
+ IsotopesSpectraColumn,
+ IsotopeSpectrumNote,
+ shouldRenderNote,
+} from "./src/spectra";
+import { MeasuredSection } from "./src/measured-section";
+import { preprocessUnits } from "@macrostrat/concept-app-helpers";
+import { ColumnMap } from "./src/map";
+import "./src/main.styl";
+
+const timeRange = [650, 510];
+
+// 1666 might be better, or 1481, or 1667
+const largestScaleColumn: ColumnSpec = { col_id: 1666 };
+
+const regionalColumn: ColumnSpec = {
+ col_id: 2163,
+ project_id: 10,
+ status_code: "in process",
+};
+
+const measuredColumn: ColumnSpec = {
+ col_id: 2164,
+ project_id: 10,
+ status_code: "in process",
+};
+
+// For measurements, we combine Nadaleen area and Sekwi area.
+const measureSourceColumns: ColumnSpec = {
+ ...regionalColumn,
+ col_id: "2163,2164,2158,2159",
+};
+
+function Column(props: React.PropsWithChildren<{ params: ColumnSpec }>) {
+ const { params, children, width = 350 } = props;
+ const res: IUnit[] = useAPIResult("/units", {
+ all: true,
+ ...params,
+ response: "long",
+ });
+ if (res == null) return null;
+ const data = preprocessUnits(res);
+
+ return h("div.column", [
+ h(InteriorSection, {
+ data,
+ // This is honestly extremely strange.
+ range: [timeRange[1], timeRange[0]],
+ pixelScale: 5,
+ width,
+ children,
+ }),
+ ]);
+}
+
+function MultiIsotopesColumn({ transform }) {
+ return h("g.isotopes-columns", { transform }, [
+ h(IsotopesColumn, {
+ label: "δ¹³C",
+ color: "dodgerblue",
+ domain: [-20, 5],
+ width: 50,
+ nTicks: 2,
+ showAxis: true,
+ parameter: "D13C",
+ }),
+ h(IsotopesColumn, {
+ label: "δ¹⁸O",
+ color: "red",
+ domain: [-15, 5],
+ width: 50,
+ nTicks: 4,
+ transform: "translate(70,0)",
+ showAxis: true,
+ parameter: "D18O",
+ }),
+ ]);
+}
+
+const ColumnManager = () => {
+ return h("div.column-array", [
+ h(MeasurementDataProvider, { ...measureSourceColumns }, [
+ h(BaseSection, { range: timeRange, pixelScale: 5 }, [
+ h(
+ AlignedMeasurementProvider,
+ { targetColumn: largestScaleColumn },
+ h(Column, { params: largestScaleColumn, width: 400, nColumns: 2 }, [
+ // h(CompositeUnitsColumn, {
+ // width: 240,
+ // showLabels: false,
+ // unitComponent: CompositeUnitComponent,
+ // unitComponentProps: {
+ // nColumns: 2
+ // }
+ // }),
+ h(IsotopesSpectraColumn),
+ ])
+ ),
+ h(AlignedMeasurementProvider, { targetColumn: regionalColumn }, [
+ h(Column, { params: regionalColumn, width: 310 }, [
+ h(CompositeUnitsColumn, {
+ width: 140,
+ showLabels: false,
+ }),
+ h(MultiIsotopesColumn, { transform: "translate(160,0)" }),
+ ]),
+ ]),
+ h("div.spacer"),
+ ]),
+ h("div", [
+ h(
+ FilteredMeasurementProvider,
+ { filterFunc: (d) => d.sample_no.match(/^G3-/) != null },
+ h(MeasuredSection, { params: measuredColumn }, [
+ h(MultiIsotopesColumn, { transform: "translate(80,0)" }),
+ ])
+ ),
+ h(ColumnMap, {
+ className: "column-map",
+ col_id: 1666,
+ margin: 0,
+ }),
+ ]),
+ ]),
+ ]);
+};
+
+export const Page = compose(
+ C(PatternProvider),
+ C(APIProvider, {
+ baseURL: "https://macrostrat.org/api/v2",
+ unwrapResponse: (res) => res.success.data,
+ }),
+ ColumnManager
+);
diff --git a/src/pages/maps/@id/legend/+config.h.ts b/src/pages/dev/concepts/multiscale-figure/+config.ts
similarity index 100%
rename from src/pages/maps/@id/legend/+config.h.ts
rename to src/pages/dev/concepts/multiscale-figure/+config.ts
diff --git a/src/pages/dev/concepts/multiscale-figure/data-providers/index.ts b/src/pages/dev/concepts/multiscale-figure/data-providers/index.ts
new file mode 100644
index 00000000..133b7ff5
--- /dev/null
+++ b/src/pages/dev/concepts/multiscale-figure/data-providers/index.ts
@@ -0,0 +1,65 @@
+import h from "@macrostrat/hyper";
+import { useState, useEffect } from "react";
+import {
+ useMeasurementData,
+ MeasurementDataContext,
+} from "@macrostrat/concept-app-helpers";
+import { useAPIResult } from "@macrostrat/ui-components";
+import type {
+ MeasurementLong,
+ UnitLong,
+ ColumnSpec,
+} from "@macrostrat/api-types";
+import {
+ alignMeasurementsToTargetColumn,
+ filterMeasurements,
+ FilterFunc,
+} from "@macrostrat/api-utils";
+
+/** This file defines subsidiary measurement data providers that transform
+ * data requests into formats for column subsets.
+ */
+
+type MeasurementProviderProps = React.PropsWithChildren<{
+ measureData?: MeasurementLong[];
+}>;
+function AlignedMeasurementProvider(
+ props: MeasurementProviderProps & { targetColumn: ColumnSpec }
+) {
+ const { children, targetColumn, measureData = useMeasurementData() } = props;
+ // Higher-level measurement data provider
+ const unitData: UnitLong[] = useAPIResult("/units", targetColumn);
+
+ const [data, setData] = useState(null);
+ useEffect(() => {
+ if (measureData == null || unitData == null) return;
+ const res = alignMeasurementsToTargetColumn(
+ measureData,
+ unitData,
+ targetColumn
+ );
+ setData(res);
+ }, [measureData, unitData]);
+
+ return h(MeasurementDataContext.Provider, {
+ value: data,
+ children,
+ });
+}
+
+function FilteredMeasurementProvider(
+ props: MeasurementProviderProps & { filterFunc: FilterFunc }
+) {
+ const { children, measureData = useMeasurementData(), filterFunc } = props;
+
+ const value = filterMeasurements(measureData ?? [], filterFunc);
+
+ return h(MeasurementDataContext.Provider, { value, children });
+}
+
+export {
+ AlignedMeasurementProvider,
+ FilteredMeasurementProvider,
+ useMeasurementData,
+ ColumnSpec,
+};
diff --git a/src/pages/dev/concepts/multiscale-figure/scripts/build-column-data.ts b/src/pages/dev/concepts/multiscale-figure/scripts/build-column-data.ts
new file mode 100644
index 00000000..955b28a3
--- /dev/null
+++ b/src/pages/dev/concepts/multiscale-figure/scripts/build-column-data.ts
@@ -0,0 +1,15 @@
+import { writeJSON } from "./utils";
+import { buildMacrostratMeasurements } from "../data-providers/reclassify-measurements";
+import { apiBaseURL } from "../config";
+
+buildMacrostratMeasurements(
+ apiBaseURL,
+ {
+ col_id: 2163,
+ project_id: 10,
+ status_code: "in process"
+ },
+ { col_id: 1481 }
+).then(data => {
+ writeJSON("macrostrat/measurements", data);
+});
diff --git a/src/pages/dev/concepts/multiscale-figure/scripts/get-api-results.ts b/src/pages/dev/concepts/multiscale-figure/scripts/get-api-results.ts
new file mode 100644
index 00000000..3367f4ef
--- /dev/null
+++ b/src/pages/dev/concepts/multiscale-figure/scripts/get-api-results.ts
@@ -0,0 +1,32 @@
+import axios from "axios";
+import { writeJSON } from "./utils";
+
+const apiBaseURL = "https://dev.macrostrat.org/api/v2";
+
+const apiParams = {
+ "macrostrat/column-units": "/units?all=true&col_id=1481&response=long",
+ "macrostrat/all-columns.topo": "/columns?all=true&format=topojson",
+ "macrostrat/column.geo": "/columns?col_id=1481&format=geojson",
+ "world-map": "https://unpkg.com/world-atlas@1.1.4/world/110m.json",
+ "regional/column-units":
+ "/units?all=true&col_id=2163&project_id=10&response=long&status_code=in%20process",
+ "regional/all-measurements.geo":
+ "/measurements?format=geojson&project_id=10&response=light&status_code=in%20process",
+ "regional/all-columns.topo":
+ "/columns?format=topojson&project_id=10&status_code=in%20process",
+ "regional/column-measurements":
+ "/measurements?col_id=2163,2164,2158,2159&project_id=10&response=long&show_values=true&status_code=in%20process",
+ "regional/column.geo":
+ "/columns?col_id=2163&format=geojson&project_id=10&status_code=in%20process"
+};
+
+for (let key in apiParams) {
+ let url = apiParams[key];
+ if (!url.startsWith("http")) {
+ url = apiBaseURL + url;
+ }
+ const promise = axios.get(url);
+ promise.then(response => {
+ writeJSON(key, response.data);
+ });
+}
diff --git a/src/pages/dev/concepts/multiscale-figure/scripts/utils.ts b/src/pages/dev/concepts/multiscale-figure/scripts/utils.ts
new file mode 100644
index 00000000..e383a5d8
--- /dev/null
+++ b/src/pages/dev/concepts/multiscale-figure/scripts/utils.ts
@@ -0,0 +1,7 @@
+import { resolve, join } from "path";
+import { writeFileSync } from "fs";
+
+export function writeJSON(key, data) {
+ const filePath = resolve(join(__dirname, "..", "data", key + ".json"));
+ writeFileSync(filePath, JSON.stringify(data, null, 2));
+}
diff --git a/src/pages/dev/concepts/multiscale-figure/src/imported.styl b/src/pages/dev/concepts/multiscale-figure/src/imported.styl
new file mode 100644
index 00000000..fdce4d86
--- /dev/null
+++ b/src/pages/dev/concepts/multiscale-figure/src/imported.styl
@@ -0,0 +1,188 @@
+//@require "./imported"
+
+*
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif
+
+html, body
+ margin 0
+ padding 0
+
+
+body#column-inspector
+ overflow: hidden
+ width 100vw
+ height 100vh
+
+.column-ui
+ width 100vw
+ display flex
+ flex-direction row
+ position relative
+ .left-column
+ flex-grow 1
+ overflow-y scroll
+ height 100vh
+ .right-column
+ min-width 200px
+ width 40%
+ max-width 500px
+ height 100vh
+ position relative
+ .map-area
+ width 100%
+ height 100%
+
+.column-view
+ margin 0
+ padding 0
+ h1
+ font-size 1.2em
+ margin-bottom 0.2em
+ padding-left 35px
+
+// Column
+.column
+ display: flex
+ flex-direction row
+ .age-axis-label
+ writing-mode vertical-lr
+ transform: rotate(180deg)
+ font-size 12px
+ text-align: center
+ position: sticky
+ top: 0
+ max-height: 100vh
+ .tick text
+ text-anchor middle
+ font-weight 400 !important
+ transform rotate(-90deg) translate(8px,-12px)
+
+rect.unit
+ stroke: black
+ stroke-width: 1px
+
+g.lithology-column use.frame
+ stroke black
+ stroke-width: 1.5px !important
+ pointer-events none
+
+.unit-label
+ text-align center
+
+.col-note-label
+ font-size: 10px
+ margin-top 3px
+ padding 2px
+ padding-left: 3px
+ line-height: 9px
+ border-left none !important
+
+g.height-range
+ display none
+
+.note-inner
+ border: none
+
+.frame rect
+ fill transparent
+
+.map-placeholder
+ position relative
+
+.macrostrat-map
+ .graticule
+ stroke-dasharray inherit
+ stroke darken(#AFE6F0, 5%)
+ .neatline
+ stroke-width 1.5px
+
+.labeled-unit div.unit-overlay
+ font-size 10px
+ font-style: italic
+ display flex
+ align-items center
+ justify-content: center
+ span.unit-label
+ display block
+ $shadow-size=4px
+ text-shadow:
+ 0px 0px $shadow-size #ffffff,
+ 0px 0px $shadow-size #ffffff,
+ 0px 0px $shadow-size #ffffff,
+ 0px 0px $shadow-size #ffffff,
+ 0px 0px $shadow-size #ffffff,
+ 0px 0px $shadow-size #ffffff,
+ 0px 0px $shadow-size #ffffff,
+ 0px 0px $shadow-size #ffffff,
+ 0px 0px $shadow-size #ffffff,
+ 0px 0px $shadow-size #ffffff,
+ 0px 0px $shadow-size #ffffff,
+ 0px 0px $shadow-size #ffffff,
+ 0px 0px $shadow-size #ffffff,
+ 0px 0px $shadow-size #ffffff,
+ 0px 0px $shadow-size #ffffff,
+ 0px 0px $shadow-size #ffffff,
+ 0px 0px $shadow-size #ffffff,
+ 0px 0px $shadow-size #ffffff,
+ 0px 0px $shadow-size #ffffff,
+ 0px 0px $shadow-size #ffffff;
+
+.column-nav
+ position sticky
+ top 2.2em
+ h3
+ color: #444
+ margin-bottom: 0.3em
+
+.default-buttons
+ width: 100%
+ margin 0 -10px
+
+div.context-map
+ position absolute
+ top 0
+ right 0
+ width: 250px
+ height: 250px
+ cursor pointer
+ z-index 100
+ &.expanded
+ cursor inherit
+ .columns path:hover
+ stroke: rgba(255,0,0,.4) !important
+
+
+ .close-button
+ position absolute
+ top 1em
+ right 1em
+
+ .land
+ background-color rgb(233, 252, 234)
+
+div.section
+ display flex
+ flex-direction row
+ div.timescale
+ padding 5px 0
+ width 10em
+ .interval-box
+ width: 12px
+ margin: 1px
+ .interval
+ &:last-child
+ flex-grow 1
+
+.section .divisions .unit
+ cursor pointer
+
+rect.selection-overlay
+ fill rgba(255,0,0,.5)
+
+// Helps with darkreader on Firefox
+html[data-darkreader-scheme="dark"]
+ .lithology-column .frame
+ stroke: white
+ g.inner
+ pattern image
+ filter: invert(100%)
diff --git a/src/pages/dev/concepts/multiscale-figure/src/main.styl b/src/pages/dev/concepts/multiscale-figure/src/main.styl
new file mode 100644
index 00000000..e98e2f53
--- /dev/null
+++ b/src/pages/dev/concepts/multiscale-figure/src/main.styl
@@ -0,0 +1,68 @@
+#app
+ width: 40em
+
+.column-array
+ display: flex
+ flex-direction: row
+ padding: 1em
+ .spacer
+ flex-grow: 2
+
+ .timescale
+ margin-top: 30px
+
+div.measured-section
+ display: flex
+ flex-direction: row
+ .timescale
+ margin-top: 30px
+ .spacer
+ flex-grow: 2
+
+.labeled-unit div.unit-overlay
+ font-size: 14px
+ text-align: center
+
+g.unit
+ rect.unit
+ stroke-width: 1.5px
+
+g.lithology-column use.frame
+ stroke: black
+
+@media (prefers-color-scheme: dark)
+ .lithology-column .frame
+ stroke: white
+ g.inner
+ pattern: image
+ filter: invert(100%)
+
+.column.age-axis
+ width: 55px
+
+.column .tick text
+ font-size: 14px
+
+.column
+ flex: 0
+ .age-axis-label
+ font-size: 14px
+
+.map-area
+ height: 220px
+
+interval($color)
+ &>.interval-box
+ margin: 0px
+ background-color: lighten($color, 50%)
+ border: 2px solid lighten($color, 10%) !important
+ .interval-label
+ color: darken($color, 30%)
+
+.interval
+ &.Blueflower
+ interval(dodgerblue)
+ &.Gametrail
+ interval(#c0ddc6)
+ &.Rackla
+ interval(#aaa)
diff --git a/src/pages/dev/concepts/multiscale-figure/src/map.ts b/src/pages/dev/concepts/multiscale-figure/src/map.ts
new file mode 100644
index 00000000..102079eb
--- /dev/null
+++ b/src/pages/dev/concepts/multiscale-figure/src/map.ts
@@ -0,0 +1,103 @@
+import { useRef } from "react";
+import h from "@macrostrat/hyper";
+import { Globe, LandLayer } from "@macrostrat/map-components";
+import { geoCentroid } from "d3-geo";
+import { MeasurementsLayer, Columns } from "@macrostrat/column-views";
+import { useAPIResult } from "@macrostrat/ui-components";
+import useSize from "@react-hook/size";
+import { FeatureLayer } from "@macrostrat/map-components";
+import chroma from "chroma-js";
+const useColumnData = (params) => {
+ const colParams = { ...params, format: "geojson" };
+ return useAPIResult("/columns", colParams)?.features[0];
+};
+
+const CurrentColumn = (props) => {
+ const { params, style = {} } = props;
+ const feature = useColumnData(params);
+ if (feature == null) return null;
+ return h(FeatureLayer, {
+ features: [feature],
+ style: {
+ fill: "rgba(255,0,0,0.4)",
+ stroke: "rgba(255,0,0,0.6)",
+ strokeWidth: 2,
+ ...style,
+ },
+ });
+};
+
+const ColumnMap = (props) => {
+ const { children, style, col_id, currentColumn, ...rest } = props;
+
+ const ref = useRef(null);
+ const [width, height] = useSize(ref);
+
+ const { margin } = props;
+
+ let scale = width;
+
+ const c1 = chroma("#aaa");
+ const c3 = chroma("#6279a3");
+ const c2 = chroma("#d8177f");
+
+ return h("div.map-area", { ref, style }, [
+ h(
+ Globe,
+ {
+ width,
+ height,
+ margin,
+ scale: 700,
+ center: [-132, 64.2],
+ allowDrag: true,
+ allowZoom: true,
+ keepNorthUp: true,
+ //translate: [width / 2 - scale, height - scale],
+ //rotation: [-columnCenter[0], -columnCenter[1]],
+ },
+ [
+ h(LandLayer),
+ children,
+ h(Columns, {
+ col_id: 2163,
+ project_id: 10,
+ status_code: "in process",
+ color: c2,
+ }),
+ h(
+ Columns,
+ {
+ col_id: 1666,
+ color: c1,
+ },
+ [
+ h(MeasurementsLayer, {
+ project_id: 10,
+ status_code: "in process",
+ style: {
+ fill: "#d773a2",
+ stroke: "transparent",
+ },
+ }),
+ ]
+ ),
+ h(CurrentColumn, {
+ params: { col_id: 1666 },
+ style: { fill: c1.alpha(0.4).css(), stroke: c1.alpha(0.6).css() },
+ }),
+ h(CurrentColumn, {
+ params: {
+ col_id: 2163,
+ project_id: 10,
+ status_code: "in process",
+ },
+ style: { fill: c2.alpha(0.4).css(), stroke: c2.alpha(0.6).css() },
+ }),
+ h("circle", { cx: width / 2, cy: height / 2, r: 5, fill: c3 }),
+ ]
+ ),
+ ]);
+};
+
+export { ColumnMap };
diff --git a/src/pages/dev/concepts/multiscale-figure/src/measured-section.ts b/src/pages/dev/concepts/multiscale-figure/src/measured-section.ts
new file mode 100644
index 00000000..b5accbb3
--- /dev/null
+++ b/src/pages/dev/concepts/multiscale-figure/src/measured-section.ts
@@ -0,0 +1,219 @@
+import h from "@macrostrat/hyper";
+import {
+ ColumnProvider,
+ ColumnSVG,
+ useColumn,
+ ColumnAxis,
+ LithologyColumn,
+ LithologyBoxes,
+ GeneralizedSectionColumn,
+ GrainsizeLayoutProvider,
+ ColumnDivision,
+ ColumnSurface,
+} from "@macrostrat/column-components";
+import type { BaseUnit, UnitLong, ColumnSpec } from "@macrostrat/api-types";
+import { IUnit } from "@macrostrat/column-views";
+import { Timescale, TimescaleOrientation } from "@macrostrat/timescale";
+// import "@macrostrat/timescale/dist/timescale.css";
+import { useAPIResult } from "@macrostrat/ui-components";
+
+interface IColumnProps {
+ data: IUnit[];
+ pixelScale?: number;
+ range?: [number, number];
+}
+
+type UnitDivision = ColumnDivision & BaseUnit;
+
+interface ColumnSurface {
+ height: number;
+}
+
+const columnData: ColumnSurface[] = [
+ {
+ height: 0,
+ pattern: "sandstone",
+ grainsize: "ms",
+ unit_id: 41216,
+ },
+ { height: 97, grainsize: "f", pattern: "limestone" },
+ { height: 101, grainsize: "ms", pattern: "sandstone" },
+ { height: 144, grainsize: "f", pattern: "limestone" },
+ { height: 154, grainsize: "ms", pattern: "sandstone" },
+ { height: 180, grainsize: "c", pattern: 606 },
+ {
+ height: 182,
+ lithology: "limestone",
+ grainsize: "m",
+ pattern: "limestone",
+ unit_id: 41217,
+ },
+ {
+ height: 192,
+ grainsize: "p",
+ pattern: "limestone",
+ },
+ {
+ height: 194,
+ grainsize: "c",
+ pattern: "limestone",
+ },
+ {
+ height: 196,
+ grainsize: "m",
+ pattern: "limestone",
+ },
+ {
+ height: 320,
+ lithology: "shale",
+ grainsize: "ms",
+ pattern: "shale",
+ unit_id: 41218,
+ },
+];
+
+const patternIndex = {
+ sandstone: 607,
+ limestone: 627,
+ shale: 620,
+};
+
+function buildDivisions(
+ surfaces: T[],
+ range: [number, number]
+): (BaseUnit & UnitDivision & T)[] {
+ const units = surfaces.filter((d) => d.unit_id != null);
+ return surfaces.map((surface, i) => {
+ const { height, pattern, ...rest } = surface;
+ const bottom = height;
+ const nextSurface = surfaces[i + 1];
+ const nextHeight = nextSurface != null ? nextSurface.height : range[1];
+ const nextUnit = units[i + 1];
+ const nextUnitHeight = nextUnit != null ? nextUnit.height : range[1];
+ return {
+ top: nextHeight,
+ bottom,
+ t_age: bottom,
+ b_age: bottom + nextUnitHeight, // this is wrong,
+ lithology: pattern,
+ pattern: `${patternIndex[pattern] ?? pattern}`,
+ ...rest,
+ };
+ });
+}
+
+type HasUnitID = { unit_id: number };
+function mergeUnitData(
+ sourceUnits: A[],
+ result: B[]
+): (A & B)[] {
+ return result.map((d) => {
+ const foundMatch = sourceUnits.find((u) => u.unit_id === d.unit_id);
+ return { ...foundMatch, ...d };
+ });
+}
+
+const height = 341.3;
+
+const intervals: Interval[] = [
+ {
+ lvl: 0,
+ eag: 341.3,
+ lag: 0,
+ oid: 0,
+ nam: "Rackla Group",
+ },
+ {
+ lvl: 1,
+ eag: 0,
+ lag: height - 182,
+ pid: 0,
+ oid: 1,
+ nam: "Blueflower",
+ },
+ {
+ nam: "Gametrail",
+ lvl: 1,
+ pid: 0,
+ oid: 2,
+ lag: height - 182,
+ eag: height,
+ },
+];
+
+const BaseSection = (
+ props: IColumnProps & { children: React.ReactNode; params: ColumnSpec }
+) => {
+ // Section with "squishy" time scale
+ const { data = [], range = [0, height], children, params } = props;
+ let { pixelScale = 1.3 } = props;
+
+ let divisions = buildDivisions(data, range);
+ const unitData: UnitLong[] = useAPIResult("/units", params);
+ // let unitDivs = buildDivisions(
+ // data.filter(d => d.unit_id != null),
+ // range
+ // );
+ if (unitData != null) {
+ divisions = mergeUnitData(unitData, divisions);
+ }
+
+ console.log(divisions);
+
+ return h("div.measured-section.column", [
+ h(
+ ColumnProvider,
+ {
+ divisions,
+ range,
+ pixelsPerMeter: pixelScale,
+ },
+ [
+ h(
+ ColumnSVG,
+ {
+ innerWidth: 0,
+ padding: 30,
+ paddingLeft: 40,
+ paddingBottom: 30,
+ paddingRight: 1,
+ },
+ [h(ColumnAxis)]
+ ),
+ h(Timescale, {
+ intervals,
+ orientation: TimescaleOrientation.VERTICAL,
+ length: (range[1] - range[0]) * pixelScale,
+ levels: [0, 1],
+ absoluteAgeScale: true,
+ showAgeAxis: false,
+ ageRange: range,
+ }),
+ h(
+ ColumnSVG,
+ { innerWidth: 200, padding: 30, paddingLeft: 0, paddingBottom: 30 },
+ [
+ h(
+ GrainsizeLayoutProvider,
+ {
+ width: 80,
+ grainsizeScaleStart: 40,
+ },
+ [
+ h(GeneralizedSectionColumn, [
+ h(LithologyBoxes, { resolveID: (d) => d.pattern }),
+ ]),
+ ]
+ ),
+ children,
+ ]
+ ),
+ h("div.spacer"),
+ ]
+ ),
+ ]);
+};
+
+export function MeasuredSection(props) {
+ return h(BaseSection, { ...props, data: columnData });
+}
diff --git a/src/pages/dev/concepts/multiscale-figure/src/section.ts b/src/pages/dev/concepts/multiscale-figure/src/section.ts
new file mode 100644
index 00000000..1aa239ad
--- /dev/null
+++ b/src/pages/dev/concepts/multiscale-figure/src/section.ts
@@ -0,0 +1,96 @@
+import h from "@macrostrat/hyper";
+import {
+ ColumnProvider,
+ ColumnSVG,
+ useColumn,
+} from "@macrostrat/column-components";
+import { AgeAxis } from "@macrostrat/concept-app-helpers";
+import { IUnit } from "@macrostrat/column-views";
+import { Timescale, TimescaleOrientation } from "@macrostrat/timescale";
+//import "../../../packages/timescale/dist/timescale.css";
+import { preprocessUnits } from "@macrostrat/concept-app-helpers";
+import { MacrostratColumnProvider } from "@macrostrat/api-views";
+
+interface IColumnProps {
+ data: IUnit[];
+ pixelScale?: number;
+ range?: [number, number];
+}
+
+const BaseSection = (props: IColumnProps & { children: React.ReactNode }) => {
+ // Section with "squishy" time scale
+ const {
+ data = [],
+ range = [data[data.length - 1].b_age, data[0].t_age],
+ children,
+ } = props;
+ let { pixelScale } = props;
+
+ const dAge = range[0] - range[1];
+
+ if (!pixelScale) {
+ // Make up a pixel scale
+ const targetHeight = 20 * data.length;
+ pixelScale = Math.ceil(targetHeight / dAge);
+ }
+
+ return h([
+ h(
+ MacrostratColumnProvider,
+ {
+ divisions: data,
+ range,
+ pixelsPerMeter: pixelScale, // Actually pixels per myr
+ },
+ [
+ h(AgeAxis, {
+ tickSpacing: 80,
+ width: 40,
+ padding: 0,
+ paddingRight: 30,
+ paddingV: 30,
+ }),
+
+ h(Timescale, {
+ orientation: TimescaleOrientation.VERTICAL,
+ length: dAge * pixelScale,
+ levels: [2, 3],
+ absoluteAgeScale: true,
+ showAgeAxis: false,
+ ageRange: range,
+ }),
+ ]
+ ),
+ children,
+ ]);
+};
+
+function InteriorSection(props: React.PropsWithChildren) {
+ const { data, range, pixelScale, children, width = 350 } = props;
+ const { pixelsPerMeter } = useColumn();
+ const divisions = preprocessUnits(data);
+
+ return h(
+ MacrostratColumnProvider,
+ {
+ divisions,
+ range,
+ pixelsPerMeter: pixelScale, // Actually pixels per myr
+ },
+ [
+ h(
+ ColumnSVG,
+ {
+ width,
+ padding: 5,
+ paddingLeft: 0,
+ paddingV: 30,
+ },
+
+ children
+ ),
+ ]
+ );
+}
+
+export { BaseSection, InteriorSection, AgeAxis };
diff --git a/src/pages/dev/concepts/multiscale-figure/src/spectra.ts b/src/pages/dev/concepts/multiscale-figure/src/spectra.ts
new file mode 100644
index 00000000..86f1327a
--- /dev/null
+++ b/src/pages/dev/concepts/multiscale-figure/src/spectra.ts
@@ -0,0 +1,227 @@
+import h from "@macrostrat/hyper";
+import { useColumnDivisions } from "@macrostrat/column-components";
+import { Padding, extractPadding } from "@macrostrat/ui-components";
+import { AnnotatedUnitsColumn } from "@macrostrat/column-views";
+import { useMeasurementData } from "@macrostrat/concept-app-helpers";
+import { createContext, useContext, useMemo } from "react";
+import { scaleLinear } from "@vx/scale";
+import { AreaClosed } from "@vx/shape";
+import { AxisBottom, AxisScale } from "@vx/axis";
+import { max } from "d3-array";
+import {
+ kernelDensityEstimator,
+ kernelGaussian,
+} from "@macrostrat/data-components";
+import { IUnit } from "@macrostrat/column-views";
+import { PlotAreaContext, usePlotArea } from "@macrostrat/data-components";
+import {
+ CompositeUnitsColumn,
+ CompositeUnitComponent,
+} from "@macrostrat/column-views";
+import chroma from "chroma-js";
+
+interface IsotopesSeriesProps {
+ data: number[];
+ accessor: (d: any) => number;
+}
+
+const noOp = (d) => d;
+
+function IsotopesSeries(props: IsotopesSeriesProps) {
+ const { data, accessor = noOp, bandwidth = 0.5, ...rest } = props;
+ if (data == null) {
+ return null;
+ }
+
+ const { height, xScale } = useContext(PlotAreaContext);
+
+ const xTicks = xScale.ticks(400);
+ const kde = kernelDensityEstimator(kernelGaussian(bandwidth), xTicks);
+ const kdeData = kde(data.map(accessor));
+
+ // All KDEs should have same height
+ const maxProbability = max(kdeData, (d) => d[1]);
+
+ const yScale = scaleLinear({
+ range: [height, 0],
+ domain: [0, maxProbability],
+ });
+
+ return h(AreaClosed, {
+ data: kdeData,
+ yScale,
+ x(d) {
+ return xScale(d[0]);
+ },
+ y(d) {
+ return yScale(d[1]);
+ },
+ stroke: "magenta",
+ fill: "transparent",
+ ...rest,
+ //fill: `url(#${id})`
+ });
+}
+
+interface IsotopesPlotProps extends Partial {
+ children?: React.ReactNode;
+ width: number;
+ height: number;
+ label: string;
+ tickFormat?: (d: number) => string;
+}
+
+function IsotopesSpectrumPlot(props: IsotopesPlotProps) {
+ const {
+ children,
+ width = 350,
+ height = 100,
+ label,
+ tickFormat = (d) => `${d}`,
+ ...rest
+ } = props;
+
+ const { paddingLeft, paddingRight, paddingTop, paddingBottom } =
+ extractPadding({ paddingBottom: 18, padding: 5, ...rest });
+
+ let minmax = [-18, 10];
+ const delta = minmax[1] - minmax[0];
+ //minmax = [minmax[0] - bandwidth * 4, minmax[1] + bandwidth * 4]
+
+ const innerWidth = width - paddingLeft - paddingRight;
+ const innerHeight = height - paddingTop - paddingBottom;
+
+ const xScale = scaleLinear({
+ range: [0, innerWidth],
+ domain: minmax,
+ });
+
+ const labelProps = { label };
+
+ const id = "gradient_1";
+
+ const value = {
+ width: innerWidth,
+ height: innerHeight,
+ xScale,
+ };
+
+ return h(
+ PlotAreaContext.Provider,
+ { value },
+ h(
+ "svg",
+ { width, height },
+ h(
+ "g",
+ {
+ transform: `translate(${paddingLeft},${paddingTop})`,
+ },
+ [
+ h(AxisBottom, {
+ scale: xScale,
+ numTicks: 5,
+ tickLength: 4,
+ tickFormat,
+ strokeWidth: 1.5,
+ top: innerHeight,
+ label,
+ }),
+ children,
+ ]
+ )
+ )
+ );
+}
+
+function getMeasureValues(measures) {
+ let res = [];
+ for (const meas of measures) {
+ res = res.concat(meas.measure_value);
+ }
+ return res;
+}
+
+function Series({ unit_id, parameter, color, ...rest }) {
+ const measures = useMeasurementData() ?? [];
+ const unitMeasures = measures.filter(
+ (d) => d.unit_id == unit_id && d.measurement == parameter
+ );
+
+ const values = getMeasureValues(unitMeasures);
+ if (values.length < 1) {
+ return null;
+ }
+ return h(IsotopesSeries, {
+ data: values,
+ strokeWidth: 2,
+ stroke: color,
+ fill: chroma(color).alpha(0.2).css(),
+ ...rest,
+ });
+}
+
+function IsotopesSpectrum({
+ unit_id,
+ parameter,
+}: {
+ unit_id: number;
+ parameter: string;
+}) {
+ const measures = useMeasurementData() ?? [];
+ const unitMeasures = measures.filter(
+ (d) => d.unit_id == unit_id && d.measurement == parameter
+ );
+
+ const values = getMeasureValues(unitMeasures);
+ if (values.length < 1) {
+ return null;
+ }
+ return h(
+ IsotopesSpectrumPlot,
+ { width: 140, height: 50, label: "Isotope value" },
+ [
+ h(Series, {
+ parameter: "D13C",
+ unit_id,
+ color: "dodgerblue",
+ }),
+ h(Series, { parameter: "D18O", unit_id, color: "red" }),
+ ]
+ );
+}
+
+function IsotopeSpectrumNote(props: { note: { data: IUnit } }) {
+ const { note } = props;
+ return h("div.isotopes-note", [
+ h(IsotopesSpectrum, { unit_id: note.data.unit_id, parameter: "D13C" }),
+ ]);
+}
+
+function IsotopesSpectraColumn(props: {
+ children?: React.ReactNode;
+ parameter: string;
+}) {
+ const { parameter = "D13C" } = props;
+ const measures = useMeasurementData() ?? [];
+
+ return h(CompositeUnitsColumn, {
+ width: 400,
+ columnWidth: 200,
+ showLabels: true,
+ unitComponent: CompositeUnitComponent,
+ unitComponentProps: {
+ nColumns: 2,
+ },
+ noteComponent: IsotopeSpectrumNote,
+ noteMode: "all",
+ shouldRenderNote(div: IUnit) {
+ const unitMeasures = measures.filter(
+ (d) => d.unit_id == div.unit_id && d.measurement == parameter
+ );
+ return unitMeasures.length > 0;
+ },
+ });
+}
+
+export { IsotopesSpectraColumn, IsotopeSpectrumNote };
diff --git a/src/pages/dev/concepts/paleogeography/+config.ts b/src/pages/dev/concepts/paleogeography/+config.ts
new file mode 100644
index 00000000..0e07b269
--- /dev/null
+++ b/src/pages/dev/concepts/paleogeography/+config.ts
@@ -0,0 +1,11 @@
+export default {
+ meta: {
+ Page: {
+ env: {
+ client: true,
+ server: false,
+ },
+ },
+ },
+ clientRouting: false,
+};
diff --git a/src/pages/dev/concepts/paleogeography/measurements/+Page.ts b/src/pages/dev/concepts/paleogeography/measurements/+Page.ts
new file mode 100644
index 00000000..9d840a18
--- /dev/null
+++ b/src/pages/dev/concepts/paleogeography/measurements/+Page.ts
@@ -0,0 +1,108 @@
+import h from "@macrostrat/hyper";
+import { useState, useEffect } from "react";
+import { ResizeSensor } from "@blueprintjs/core";
+import { RotationsProvider } from "@macrostrat/corelle";
+import { Timescale } from "@macrostrat/timescale";
+//// import "@macrostrat/timescale/dist/timescale.css";
+import { Map } from "./map";
+import { getQueryString, setQueryString } from "@macrostrat/ui-components";
+import { IntervalProvider, useSelectedInterval } from "./time-intervals";
+
+function useTimeState(initialValue) {
+ /** Time state hook that also manages query URL */
+ let { time: _initialValue } = getQueryString() ?? {};
+ const val = parseInt(_initialValue);
+ const _init = isNaN(val) ? initialValue : val;
+
+ const [time, _setTime] = useState(_init);
+ const setTime = (t) => {
+ _setTime(t);
+ setQueryString({ time: t });
+ };
+
+ return [time, setTime];
+}
+
+function useTimeRange(range: [number, number], initialValue: number) {
+ /** A time range that can be stepped through with arrow keys */
+
+ const [time, setTime] = useTimeState(initialValue);
+
+ useEffect(() => {
+ function checkKey(e) {
+ e = e || window.event;
+ if (e.keyCode == "37") {
+ // left arrow
+ setTime(Math.min(time + 2, range[0]));
+ } else if (e.keyCode == "39") {
+ // right arrow
+ setTime(Math.max(time - 2, range[1]));
+ }
+ }
+ document.onkeydown = checkKey;
+ }, [time]);
+
+ return [time, setTime];
+}
+
+function IntervalName() {
+ const int = useSelectedInterval();
+ return h("div.interval-info", [
+ h("h4.interval-name", int.nam),
+ h("p.interval-age", `${int.eag}–${int.lag} Ma`),
+ ]);
+}
+
+export function Page() {
+ /** The core app component */
+ const model = "Wright2013";
+
+ const [time, setTime] = useTimeRange([542, 0], 300);
+ const [size, setSize] = useState({
+ width: 1100,
+ height: 800,
+ });
+
+ return h(
+ ResizeSensor,
+ {
+ onResize(entries) {
+ const { width, height } = entries[0].contentRect;
+ return setSize({ width, height });
+ },
+ },
+ [
+ h(IntervalProvider, { time }, [
+ h("div.app", [
+ // Many of these timescale options need to be simplified
+ h("div.sidebar", [
+ h(IntervalName),
+ h("div.timescale-container", [
+ h(Timescale, {
+ ageRange: [542, 0],
+ orientation: "vertical",
+ length: size.height - 150,
+ absoluteAgeScale: true,
+ rootInterval: 751,
+ levels: [2, 3, 4],
+ cursorPosition: time,
+ axisProps: {
+ orientation: "left",
+ tickLength: 4,
+ hideAxisLine: true,
+ labelOffset: 10,
+ },
+ onClick(event, age) {
+ setTime(Math.round(age));
+ },
+ }),
+ ]),
+ ]),
+ h(RotationsProvider, { model, time, debounce: 1000 }, [
+ h(Map, { width: size.width - 200, height: size.height }),
+ ]),
+ ]),
+ ]),
+ ]
+ );
+}
diff --git a/src/pages/dev/concepts/paleogeography/measurements/features/helpers.ts b/src/pages/dev/concepts/paleogeography/measurements/features/helpers.ts
new file mode 100644
index 00000000..52189d18
--- /dev/null
+++ b/src/pages/dev/concepts/paleogeography/measurements/features/helpers.ts
@@ -0,0 +1,44 @@
+import { geoContains } from "d3-geo";
+import Supercluster from "supercluster";
+import { useMemo } from "react";
+import { usePlatePolygons } from "@macrostrat/corelle";
+
+export function intersectFeatures(polygons, points) {
+ let output = [];
+ for (const pt of points) {
+ for (const plate of polygons) {
+ if (geoContains(plate, pt.geometry.coordinates)) {
+ const { old_lim, plate_id, young_lim } = plate.properties;
+ output.push({
+ ...pt,
+ old_lim,
+ plate_id,
+ young_lim
+ });
+ break;
+ }
+ }
+ }
+ return output;
+}
+
+export function clusterPoints(data, zoomLevel = 4, opts = {}) {
+ const cluster = new Supercluster({
+ radius: 20,
+ ...opts
+ });
+ cluster.load(data);
+ return cluster.getClusters([-180, -90, 180, 90], zoomLevel);
+}
+
+/// https://paleobiodb.org/data1.2/colls/summary.json?show=time&min_ma=10&max_ma=12&level=3
+
+export function usePlateIntersection(features: any[]) {
+ const polygons = usePlatePolygons();
+ return useMemo(() => {
+ /** Memoized computation of polygon-point intersections */
+ if (features == null || polygons == null) return [];
+ const res = intersectFeatures(polygons, features);
+ return res;
+ }, [features, polygons]);
+}
diff --git a/src/pages/dev/concepts/paleogeography/measurements/features/index.ts b/src/pages/dev/concepts/paleogeography/measurements/features/index.ts
new file mode 100644
index 00000000..21ecc08d
--- /dev/null
+++ b/src/pages/dev/concepts/paleogeography/measurements/features/index.ts
@@ -0,0 +1,3 @@
+export * from "./macrostrat";
+export * from "./pbdb";
+export * from "./sgp";
diff --git a/src/pages/dev/concepts/paleogeography/measurements/features/macrostrat.ts b/src/pages/dev/concepts/paleogeography/measurements/features/macrostrat.ts
new file mode 100644
index 00000000..bd0bb6ea
--- /dev/null
+++ b/src/pages/dev/concepts/paleogeography/measurements/features/macrostrat.ts
@@ -0,0 +1,27 @@
+/// https://paleobiodb.org/data1.2/colls/summary.json?show=time&min_ma=10&max_ma=12&level=3
+
+import { useMemo } from "react";
+import { useAPIResult } from "@macrostrat/ui-components";
+import { clusterPoints, usePlateIntersection } from "./helpers";
+import { useSelectedInterval } from "../time-intervals";
+
+export function useMacrostratFeatures() {
+ const interval = useSelectedInterval();
+ /** Get features and assign to plates */
+ const res = useAPIResult<{ records: any[] }>(
+ "https://dev.macrostrat.org/api/v2/measurements",
+ {
+ format: "geojson",
+ response: "light",
+ interval_name: interval.nam
+ }
+ );
+
+ const clustered = useMemo(() => {
+ const data = res?.success?.data?.features;
+ if (data == null) return null;
+ return clusterPoints(data);
+ }, [res]);
+
+ return usePlateIntersection(clustered);
+}
diff --git a/src/pages/dev/concepts/paleogeography/measurements/features/pbdb.ts b/src/pages/dev/concepts/paleogeography/measurements/features/pbdb.ts
new file mode 100644
index 00000000..2e7e0b37
--- /dev/null
+++ b/src/pages/dev/concepts/paleogeography/measurements/features/pbdb.ts
@@ -0,0 +1,29 @@
+/// https://paleobiodb.org/data1.2/colls/summary.json?show=time&min_ma=10&max_ma=12&level=3
+
+import { useAPIResult } from "@macrostrat/ui-components";
+import { usePlateIntersection } from "./helpers";
+import { useSelectedInterval } from "../time-intervals";
+
+function createFeature(record) {
+ const { lng, lat, ...rest } = record;
+ return {
+ type: "Feature",
+ geometry: { type: "Point", coordinates: [lng, lat] },
+ ...rest
+ };
+}
+
+export function usePBDBFeatures(time: number, timeDelta: number = 2) {
+ /** Get features and assign to plates */
+ const int = useSelectedInterval();
+ const res = useAPIResult<{ records: any[] }>(
+ "https://paleobiodb.org/data1.2/colls/summary.json",
+ {
+ show: "time",
+ min_ma: int.lag,
+ max_ma: int.eag,
+ level: 3
+ }
+ );
+ return usePlateIntersection(res?.records.map(createFeature));
+}
diff --git a/src/pages/dev/concepts/paleogeography/measurements/features/sgp.ts b/src/pages/dev/concepts/paleogeography/measurements/features/sgp.ts
new file mode 100644
index 00000000..002809ba
--- /dev/null
+++ b/src/pages/dev/concepts/paleogeography/measurements/features/sgp.ts
@@ -0,0 +1,50 @@
+import { useEffect, useState } from "react";
+import axios from "axios";
+import { clusterPoints, usePlateIntersection } from "./helpers";
+import { useSelectedInterval } from "../time-intervals";
+
+function clusterSGPResult(rows: any[]) {
+ console.log(rows);
+ if (rows == null) return null;
+ const data = rows.map(d => {
+ return {
+ type: "Feature",
+ id: d["sample identifier"],
+ geometry: {
+ type: "Point",
+ coordinates: [
+ parseFloat(d["site longitude"]),
+ parseFloat(d["site latitude"])
+ ]
+ }
+ };
+ });
+ return clusterPoints(data);
+}
+
+async function getSGPResult(ageRange: [number, number]) {
+ const filters = {
+ type: "samples",
+ count: 100000,
+ page: 1,
+ filters: {
+ interpreted_age: ageRange
+ },
+ show: ["coord_lat", "coord_long"]
+ };
+ const res = await axios.post(
+ "http://sgp-search.io/api/frontend/post-paged",
+ filters
+ );
+ return clusterSGPResult(res?.data?.rows);
+}
+
+export function useSGPFeatures(time) {
+ const int = useSelectedInterval();
+ const ageRange: [number, number] = [int.lag, int.eag];
+ const [result, setResult] = useState(null);
+ useEffect(() => {
+ getSGPResult(ageRange).then(setResult);
+ }, [time]);
+ return usePlateIntersection(result);
+}
diff --git a/src/pages/dev/concepts/paleogeography/measurements/main.module.styl b/src/pages/dev/concepts/paleogeography/measurements/main.module.styl
new file mode 100644
index 00000000..bf1df705
--- /dev/null
+++ b/src/pages/dev/concepts/paleogeography/measurements/main.module.styl
@@ -0,0 +1,122 @@
+
+:root
+ --timescale-cursor-color: black
+
+*
+ font-family: "San Francisco", "Helvetica Neue", sans-serif
+
+html, body
+ margin: 0
+ width: 100vw
+ height 100vh
+ position relative
+
+.app
+ width 100vw
+ height 100vh
+ display flex
+ flex-direction: row !important
+ overflow hidden
+
+.world-map
+ flex 1
+ cursor move
+ position relative
+ a.reset-map
+ color #888
+ position absolute
+ bottom 0.5em
+ left 0.5em
+ cursor pointer
+ font-size 12px
+
+plate_color=#888
+
+g.plates path
+ fill: alpha(plate_color,0.2)
+ stroke: alpha(plate_color, 0.8)
+ stroke-width: 1px
+ outline: none
+ &:hover
+ fill: alpha(plate_color,0.5)
+ stroke-width: 1px
+ outline: none
+
+land_color=#ffffff //lighten(#E9FCEA,40%)
+g.ne_110m_land
+ path
+ fill land_color
+ stroke darken(land_color, 10%)
+ stroke-width: 1px
+
+.credits
+ position fixed
+ top 10px
+ left 10px
+ width 6em
+ margin-bottom 0
+ font-style italic
+ color #888
+ text-align left
+ z-index 20
+ h1
+ font-size 1.2em
+ p
+ margin 0.2em 0 0.5em
+ font-size 12px
+ a
+ color inherit
+ text-decoration: underline
+
+:global(.drag-overlay) rect
+ fill transparent
+
+:global(.graticule)
+ fill none
+ stroke #444
+ stroke-width 1px
+ stroke-dasharray 2,2
+
+.sidebar
+ width 200px
+ padding 1em
+
+/*
+The code below styles the timescale correctly.
+Eventually this will all be integrated as better options to
+the timescale component itself.
+*/
+.timescale.vertical
+ cursor: pointer
+ //margin 0 auto
+ &>.interval
+ border 1px solid var(--timescale-cursor-color)
+ display flex
+ flex-direction column
+ transform translate(0 2px)
+ //margin-bottom 10px
+
+
+.interval-label
+ color #222
+ font-weight 500
+
+g.vx-group.vx-axis
+ transform translate(20px,20px)
+
+.timescale .cursor-text
+ font-weight bold
+ font-size 14px
+ padding 0 4px
+
+.pbdb-collections path
+ fill: #aaa
+
+.sgp-collections path
+ fill: red
+
+.macrostrat-collections path
+ fill: dodgerblue
+
+.macrostrat-map path.background
+ fill lighten(#afe6f0, 20%)
\ No newline at end of file
diff --git a/src/pages/dev/concepts/paleogeography/measurements/map.ts b/src/pages/dev/concepts/paleogeography/measurements/map.ts
new file mode 100644
index 00000000..0d7e9c81
--- /dev/null
+++ b/src/pages/dev/concepts/paleogeography/measurements/map.ts
@@ -0,0 +1,70 @@
+import { geoStereographic } from "d3-geo";
+import { useRef } from "react";
+import { PlateFeatureLayer, PlatePolygons } from "@macrostrat/corelle";
+import { hyperStyled } from "@macrostrat/hyper";
+import {
+ PBDBCollectionLayer,
+ SGPSamplesLayer,
+ MacrostratMeasurementsLayer
+} from "./point-overlay";
+import { Globe } from "@macrostrat/map-components";
+import styles from "./main.module.styl";
+import chroma from "chroma-js";
+
+const h = hyperStyled(styles);
+
+const baseProjection = geoStereographic().precision(0.5);
+
+const Map = props => {
+ /** Map that implements callback to reset internal map state */
+ const { width, height } = props;
+ const projection = baseProjection;
+ const mapRef = useRef();
+
+ const resetMap = () => {
+ // We have to totally recreate the projection for it to be immutable
+ mapRef.current?.resetProjection(baseProjection);
+ };
+
+ return h("div.world-map", null, [
+ h(
+ Globe,
+ {
+ ref: mapRef,
+ keepNorthUp: true,
+ projection,
+ width,
+ height,
+ keepNorthUp: false,
+ scale: Math.min(width / 1.5, height / 1.5) - 10
+ },
+ [
+ h(PlatePolygons),
+ h(PlateFeatureLayer, {
+ name: "ne_110m_land",
+ useCanvas: false,
+ style: {
+ fill: "#ffffff",
+ stroke: "#9dc99f"
+ }
+ }),
+ h(PlateFeatureLayer, {
+ name: "macrostrat_columns",
+ style: {
+ fill: "transparent",
+ stroke: chroma("dodgerblue")
+ .darken(1.5)
+ .alpha(0.5)
+ .css()
+ }
+ }),
+ h(PBDBCollectionLayer),
+ h(MacrostratMeasurementsLayer),
+ h(SGPSamplesLayer)
+ ]
+ ),
+ h("a.reset-map", { onClick: resetMap }, "Reset projection")
+ ]);
+};
+
+export { Map };
diff --git a/src/pages/dev/concepts/paleogeography/measurements/point-overlay.ts b/src/pages/dev/concepts/paleogeography/measurements/point-overlay.ts
new file mode 100644
index 00000000..cbd587da
--- /dev/null
+++ b/src/pages/dev/concepts/paleogeography/measurements/point-overlay.ts
@@ -0,0 +1,99 @@
+/// https://paleobiodb.org/data1.2/colls/summary.json?show=time&min_ma=10&max_ma=12&level=3
+import { useRotations, usePathGenerator } from "@macrostrat/corelle";
+import { FeatureLayer } from "@macrostrat/map-components";
+import { useSGPData } from "./features/sgp";
+import { scalePow } from "d3-scale";
+import {
+ usePBDBFeatures,
+ useMacrostratFeatures,
+ useSGPFeatures
+} from "./features";
+import h from "@macrostrat/hyper";
+
+const radiusScale = scalePow([0, 30], [1, 10])
+ .exponent(0.5)
+ .clamp(true);
+const opacityScale = scalePow([0, 30], [0.5, 0.2])
+ .exponent(0.5)
+ .clamp(true);
+
+function PBDBPoint({ feature }) {
+ /** Render a single PBDB point */
+ const proj = usePathGenerator(feature.plate_id);
+ const { time } = useRotations();
+ if (proj == null) return null;
+ if (time < feature.young_lim || time > feature.old_lim) return null;
+
+ const { noc, nco, lng, lat } = feature;
+ const radius = radiusScale(nco + noc);
+ const pt = proj.pointRadius(radius)(feature.geometry);
+
+ if (pt == null) return null;
+ return h("path", {
+ opacity: opacityScale(nco + noc),
+ d: pt
+ });
+}
+
+export function PBDBCollectionLayer() {
+ const { time } = useRotations();
+ const features = usePBDBFeatures(time);
+
+ return h(
+ "g.pbdb-collections",
+ {},
+ features.map((d, i) => {
+ return h(PBDBPoint, { feature: d });
+ })
+ );
+}
+
+const defaultStyle = {
+ fill: "transparent",
+ stroke: "purple"
+};
+
+function BasicPoint({ feature }) {
+ /** Render a single PBDB point */
+ const proj = usePathGenerator(feature.plate_id);
+ const { time } = useRotations();
+ if (proj == null) return null;
+ if (time < feature.young_lim || time > feature.old_lim) return null;
+
+ const pointCount = feature?.properties?.point_count ?? 1;
+ const radius = radiusScale(pointCount);
+ const pt = proj.pointRadius(radius)(feature.geometry);
+
+ if (pt == null) return null;
+ return h("path", {
+ opacity: opacityScale(pointCount),
+ d: pt
+ });
+}
+
+export function SGPSamplesLayer() {
+ const { time } = useRotations();
+ const features = useSGPFeatures(time);
+ if (features == null) return null;
+ console.log(features);
+ return h(
+ "g.sgp-collections",
+ {},
+ features.map((d, i) => {
+ return h(BasicPoint, { feature: d });
+ })
+ );
+}
+
+export function MacrostratMeasurementsLayer() {
+ const features = useMacrostratFeatures();
+ if (features == null) return null;
+ console.log(features);
+ return h(
+ "g.macrostrat-collections",
+ {},
+ features.map((d, i) => {
+ return h(BasicPoint, { feature: d });
+ })
+ );
+}
diff --git a/src/pages/dev/concepts/paleogeography/measurements/time-intervals.ts b/src/pages/dev/concepts/paleogeography/measurements/time-intervals.ts
new file mode 100644
index 00000000..7e4a479b
--- /dev/null
+++ b/src/pages/dev/concepts/paleogeography/measurements/time-intervals.ts
@@ -0,0 +1,57 @@
+import h from "@macrostrat/hyper";
+import { intervals, Interval } from "@macrostrat/timescale";
+import { ascending } from "d3-array";
+import { createContext, useContext } from "react";
+
+function findMatchingIntervals(
+ intervals: Interval[],
+ time: number,
+ minimumAgeSpan: number = 2
+): Interval {
+ let bestIntervals = intervals.filter(int => {
+ return (
+ int.eag >= time && int.lag <= time && int.eag - int.lag >= minimumAgeSpan
+ );
+ });
+ bestIntervals.sort((a, b) => {
+ return ascending(a.eag - a.lag, b.eag - b.lag);
+ });
+ return bestIntervals;
+}
+
+interface IntervalCtx {
+ matchingIntervals: Interval[];
+ bestInterval: Interval | null;
+ time: number;
+ minimumAgeSpan: number;
+ ageRange: [number, number] | null;
+}
+
+const IntervalContext = createContext(null);
+
+export function IntervalProvider({ time, children, minimumAgeSpan = 2 }) {
+ const matchingIntervals = findMatchingIntervals(
+ intervals,
+ time,
+ minimumAgeSpan
+ );
+ const bestInterval: Interval = matchingIntervals[0];
+ const ageRange = bestInterval?.ageRange;
+ return h(
+ IntervalContext.Provider,
+ {
+ value: {
+ bestInterval: matchingIntervals[0],
+ matchingIntervals,
+ time,
+ minimumAgeSpan,
+ ageRange
+ }
+ },
+ children
+ );
+}
+
+export function useSelectedInterval() {
+ return useContext(IntervalContext)?.bestInterval;
+}
diff --git a/src/pages/dev/concepts/paleogeography/pbdb/+Page.ts b/src/pages/dev/concepts/paleogeography/pbdb/+Page.ts
new file mode 100644
index 00000000..57bbd049
--- /dev/null
+++ b/src/pages/dev/concepts/paleogeography/pbdb/+Page.ts
@@ -0,0 +1,92 @@
+import hyper from "@macrostrat/hyper";
+import styles from "./main.module.styl";
+import { useState, useEffect } from "react";
+import { ResizeSensor } from "@blueprintjs/core";
+import { RotationsProvider } from "@macrostrat/corelle";
+import { Timescale, TimescaleOrientation } from "@macrostrat/timescale";
+// import "@macrostrat/timescale/dist/timescale.css";
+import { Map } from "./map";
+import { getQueryString, setQueryString } from "@macrostrat/ui-components";
+const h = hyper.styled(styles);
+
+function useTimeState(initialValue) {
+ /** Time state hook that also manages query URL */
+ let { time: _initialValue } = getQueryString() ?? {};
+ const val = parseInt(_initialValue);
+ const _init = isNaN(val) ? initialValue : val;
+
+ const [time, _setTime] = useState(_init);
+ const setTime = (t) => {
+ _setTime(t);
+ setQueryString({ time: t });
+ };
+
+ return [time, setTime];
+}
+
+function useTimeRange(range: [number, number], initialValue: number) {
+ /** A time range that can be stepped through with arrow keys */
+
+ const [time, setTime] = useTimeState(initialValue);
+
+ useEffect(() => {
+ function checkKey(e) {
+ e = e || window.event;
+ if (e.keyCode == "37") {
+ // left arrow
+ setTime(Math.min(time + 2, range[0]));
+ } else if (e.keyCode == "39") {
+ // right arrow
+ setTime(Math.max(time - 2, range[1]));
+ }
+ }
+ document.onkeydown = checkKey;
+ }, [time]);
+
+ return [time, setTime];
+}
+
+export function Page() {
+ /** The core app component */
+ const model = "Wright2013";
+
+ const [time, setTime] = useTimeRange([542, 0], 300);
+ const [size, setSize] = useState({
+ width: 1100,
+ height: 800,
+ });
+
+ return h(
+ ResizeSensor,
+ {
+ onResize(entries) {
+ const { width, height } = entries[0].contentRect;
+ return setSize({ width, height });
+ },
+ },
+ [
+ h("div.app", [
+ h(RotationsProvider, { model, time, debounce: 1000 }, [
+ h(Map, { width: size.width, height: size.height - 100 }),
+ ]),
+ // Many of these timescale options need to be simplified
+ h(Timescale, {
+ ageRange: [542, 0],
+ orientation: TimescaleOrientation.HORIZONTAL,
+ length: size.width - 20,
+ absoluteAgeScale: true,
+ rootInterval: 751,
+ levels: [2, 3],
+ cursorPosition: time,
+ axisProps: {
+ width: size.width,
+ margin: 20,
+ },
+ onClick(event, age) {
+ setTime(Math.round(age));
+ },
+ }),
+ ]),
+ ]
+ );
+}
diff --git a/src/pages/dev/concepts/paleogeography/pbdb/main.module.styl b/src/pages/dev/concepts/paleogeography/pbdb/main.module.styl
new file mode 100644
index 00000000..36ce3340
--- /dev/null
+++ b/src/pages/dev/concepts/paleogeography/pbdb/main.module.styl
@@ -0,0 +1,110 @@
+
+:root
+ --timescale-cursor-color: black
+
+*
+ font-family: "San Francisco", "Helvetica Neue", sans-serif
+
+html, body
+ margin: 0
+ width: 100vw
+ height 100vh
+ position relative
+
+.app
+ width 100vw
+ height 100vh
+ display flex
+ flex-direction column
+ overflow hidden
+
+.world-map
+ flex 1
+ cursor move
+ position relative
+ a.reset-map
+ color #888
+ position absolute
+ bottom 0.5em
+ left 0.5em
+ cursor pointer
+ font-size 12px
+
+plate_color=#888
+
+g.plates path
+ fill: alpha(plate_color,0.2)
+ stroke: alpha(plate_color, 0.8)
+ stroke-width: 1px
+ outline: none
+ &:hover
+ fill: alpha(plate_color,0.5)
+ stroke-width: 1px
+ outline: none
+
+land_color=#E9FCEA
+g.ne_110m_land
+ path
+ fill land_color
+ stroke darken(land_color, 10%)
+ stroke-width: 1px
+
+.credits
+ position fixed
+ top 10px
+ left 10px
+ width 6em
+ margin-bottom 0
+ font-style italic
+ color #888
+ text-align left
+ z-index 20
+ h1
+ font-size 1.2em
+ p
+ margin 0.2em 0 0.5em
+ font-size 12px
+ a
+ color inherit
+ text-decoration: underline
+
+:global(.drag-overlay) rect
+ fill transparent
+
+:global(.graticule)
+ fill none
+ stroke #aaa
+ stroke-width 1px
+ stroke-dasharray 2,2
+
+/*
+The code below styles the timescale correctly.
+Eventually this will all be integrated as better options to
+the timescale component itself.
+*/
+.timescale.horizontal
+ cursor: pointer
+ position relative
+ margin 0 auto
+ &>.interval
+ border 1px solid var(--timescale-cursor-color)
+ margin-bottom 10px
+ flex-direction: column-reverse !important
+
+.interval
+ flex-direction: column-reverse !important;
+
+.interval-label
+ color #222
+ font-weight 500
+
+g.vx-group.vx-axis
+ transform translate(20px,20px)
+
+.timescale .cursor-text
+ font-weight bold
+ font-size 14px
+ padding 0 4px
+
+path.pbdb-collection
+ fill: rgb(129, 79, 164)
diff --git a/src/pages/dev/concepts/paleogeography/pbdb/map.ts b/src/pages/dev/concepts/paleogeography/pbdb/map.ts
new file mode 100644
index 00000000..8580c7ab
--- /dev/null
+++ b/src/pages/dev/concepts/paleogeography/pbdb/map.ts
@@ -0,0 +1,49 @@
+import { geoNaturalEarth1 } from "d3-geo";
+import { useRef } from "react";
+import { PlateFeatureLayer } from "@macrostrat/corelle";
+import { hyperStyled } from "@macrostrat/hyper";
+import { PBDBCollectionLayer } from "./point-overlay";
+import { Globe } from "@macrostrat/map-components";
+import styles from "./main.module.styl";
+
+const h = hyperStyled(styles);
+
+const Map = (props) => {
+ /** Map that implements callback to reset internal map state */
+ const { width, height } = props;
+ const projection = geoNaturalEarth1().precision(0.5);
+ const mapRef = useRef();
+
+ const resetMap = () => {
+ // We have to totally recreate the projection for it to be immutable
+ mapRef.current?.resetProjection(geoNaturalEarth1().precision(0.5));
+ };
+
+ return h("div.world-map", null, [
+ h(
+ Globe,
+ {
+ ref: mapRef,
+ keepNorthUp: true,
+ projection,
+ width,
+ height,
+ scale: Math.min(width / 5.5, height / 3) - 10,
+ },
+ [
+ h(PlateFeatureLayer, {
+ name: "ne_110m_land",
+ useCanvas: false,
+ style: {
+ fill: "#E9FCEA",
+ stroke: "#9dc99f",
+ },
+ }),
+ h(PBDBCollectionLayer),
+ ]
+ ),
+ h("a.reset-map", { onClick: resetMap }, "Reset projection"),
+ ]);
+};
+
+export { Map };
diff --git a/src/pages/dev/concepts/paleogeography/pbdb/point-overlay.ts b/src/pages/dev/concepts/paleogeography/pbdb/point-overlay.ts
new file mode 100644
index 00000000..567ee3cd
--- /dev/null
+++ b/src/pages/dev/concepts/paleogeography/pbdb/point-overlay.ts
@@ -0,0 +1,95 @@
+/// https://paleobiodb.org/data1.2/colls/summary.json?show=time&min_ma=10&max_ma=12&level=3
+
+import { useMemo } from "react";
+import { useAPIResult } from "@macrostrat/ui-components";
+import {
+ useRotations,
+ usePathGenerator,
+ usePlatePolygons,
+} from "@macrostrat/corelle";
+import { geoContains } from "d3-geo";
+import { scalePow } from "d3-scale";
+import h from "@macrostrat/hyper";
+
+function intersectFeatures(polygons, points) {
+ let output = [];
+ for (const pt of points) {
+ for (const plate of polygons) {
+ if (geoContains(plate, [pt.lng, pt.lat])) {
+ const { old_lim, plate_id, young_lim } = plate.properties;
+ output.push({
+ ...pt,
+ old_lim,
+ plate_id,
+ young_lim,
+ });
+ break;
+ }
+ }
+ }
+ return output;
+}
+
+function usePBDBFeatures(time: number, timeDelta: number = 2) {
+ /** Get features and assign to plates */
+ const res = useAPIResult<{ records: any[] }>(
+ "https://paleobiodb.org/data1.2/colls/summary.json",
+ {
+ show: "time",
+ min_ma: time - timeDelta,
+ max_ma: time + timeDelta,
+ level: 3,
+ }
+ );
+
+ const polygons = usePlatePolygons();
+
+ const platePoints = useMemo(() => {
+ /** Memoized computation of polygon-point intersections */
+ if (res == null || polygons == null) return [];
+ return intersectFeatures(polygons, res.records);
+ }, [res, polygons]);
+
+ return platePoints;
+}
+
+const radiusScale = scalePow([0, 30], [1, 10])
+ .exponent(0.5)
+ .clamp(true);
+const opacityScale = scalePow([0, 30], [0.8, 0.2])
+ .exponent(0.5)
+ .clamp(true);
+
+function PBDBPoint({ feature }) {
+ /** Render a single PBDB point */
+ const proj = usePathGenerator(feature.plate_id);
+ const { time } = useRotations();
+ if (proj == null) return null;
+ if (time < feature.young_lim || time > feature.old_lim) return null;
+
+ const { noc, nco, lng, lat } = feature;
+ const radius = radiusScale(nco + noc);
+ const pt = proj.pointRadius(radius)({
+ coordinates: [lng, lat],
+ type: "Point",
+ });
+
+ if (pt == null) return null;
+ return h("path.pbdb-collection", {
+ opacity: opacityScale(nco + noc),
+ d: pt,
+ });
+}
+
+export function PBDBCollectionLayer() {
+ const { time } = useRotations();
+ const features = usePBDBFeatures(time);
+
+ return h(
+ "g.pbdb-collections",
+ {},
+ features.map((d, i) => {
+ return h(PBDBPoint, { feature: d });
+ })
+ );
+}
diff --git a/src/pages/maps/ingestion/@id/+config.h.ts b/src/pages/dev/filtering/+config.ts
similarity index 100%
rename from src/pages/maps/ingestion/@id/+config.h.ts
rename to src/pages/dev/filtering/+config.ts
diff --git a/src/pages/dev/filtering/interface.ts b/src/pages/dev/filtering/interface.ts
index 74462987..2894ff9d 100644
--- a/src/pages/dev/filtering/interface.ts
+++ b/src/pages/dev/filtering/interface.ts
@@ -4,18 +4,15 @@ import { tileserverDomain, mapboxAccessToken } from "@macrostrat-web/settings";
import hyper from "@macrostrat/hyper";
import { DevMapPage } from "@macrostrat/map-interface";
import { buildMacrostratStyle } from "@macrostrat/mapbox-styles";
-import { useStoredState } from "@macrostrat/ui-components";
-import { Select, Omnibar } from "@blueprintjs/select";
+import { Select } from "@blueprintjs/select";
import mapboxgl from "mapbox-gl";
-import { useMemo, useState, useEffect } from "react";
+import { useMemo, useState } from "react";
import styles from "./main.module.styl";
import {
replaceSourcesForTileset,
LineSymbolManager,
} from "~/_utils/map-layers.client";
-import {
- LithologyMultiSelect
-} from "./lithology-selector";
+import { LithologyMultiSelect } from "./lithology-selector";
export const h = hyper.styled(styles);
@@ -27,7 +24,7 @@ enum Compilation {
export function VectorMapInspectorPage({
overlayStyle = _macrostratStyle,
title = null,
- headerElement = null
+ headerElement = null,
}: {
headerElement?: React.ReactElement;
title?: string;
@@ -39,7 +36,9 @@ export function VectorMapInspectorPage({
const { showLineSymbols } = state;
const _overlayStyle = useMemo(() => {
- return replaceSourcesForTileset(overlayStyle, state.compilation, {lithology: state.lithologies});
+ return replaceSourcesForTileset(overlayStyle, state.compilation, {
+ lithology: state.lithologies,
+ });
}, [overlayStyle, state.lithologies, state.compilation]) as mapboxgl.Style;
const controls = h([
@@ -55,14 +54,14 @@ export function VectorMapInspectorPage({
compilation: state.compilation,
setCompilation: (compilation) => {
setState({ ...state, compilation });
- }
+ },
}),
h(LithologyMultiSelect, {
selectedLithologyNames: state.lithologies,
onChange: (lithologies) => {
setState({ ...state, lithologies });
- }
- })
+ },
+ }),
]);
return h(
@@ -78,23 +77,31 @@ export function VectorMapInspectorPage({
}
const CompilationSelector = ({ compilation, setCompilation }) => {
- return h(Select, {
- items: Object.values(Compilation),
- itemRenderer: (item: any, { handleClick }) => {
- return h(MenuItem, { onClick: handleClick, text: item });
- },
- onItemSelect: (item) => {
- setCompilation(item);
+ return h(
+ Select,
+ {
+ items: Object.values(Compilation),
+ itemRenderer: (item: any, { handleClick }) => {
+ return h(MenuItem, { onClick: handleClick, text: item });
+ },
+ onItemSelect: (item) => {
+ setCompilation(item);
+ },
+ filterable: false,
+ activeItem: compilation,
},
- filterable: false,
- activeItem: compilation,
- }, [
- h(Button, {text: compilation, rightIcon: "double-caret-vertical", placeholder: "Select a film" })
- ]);
-}
+ [
+ h(Button, {
+ text: compilation,
+ rightIcon: "double-caret-vertical",
+ placeholder: "Select a film",
+ }),
+ ]
+ );
+};
const _macrostratStyle = buildMacrostratStyle({
- tileserverDomain
+ tileserverDomain,
}) as mapboxgl.Style;
function isStateValid(state) {
@@ -121,5 +128,5 @@ function isStateValid(state) {
const defaultState = {
showLineSymbols: false,
compilation: "v2/carto",
- lithologies: []
+ lithologies: [],
};
diff --git a/src/pages/dev/globe/+config.ts b/src/pages/dev/globe/+config.ts
new file mode 100644
index 00000000..2f7658ef
--- /dev/null
+++ b/src/pages/dev/globe/+config.ts
@@ -0,0 +1,14 @@
+export default {
+ meta: {
+ Page: {
+ env: {
+ client: true,
+ server: false,
+ },
+ },
+ },
+ clientRouting: false,
+ scripts: ["/cesium/Cesium.js"],
+ title: "Globe",
+ description: "Macrostrat Globe",
+};
diff --git a/src/pages/dev/paleo/+config.h.ts b/src/pages/dev/paleo/+config.ts
similarity index 100%
rename from src/pages/dev/paleo/+config.h.ts
rename to src/pages/dev/paleo/+config.ts
diff --git a/src/pages/dev/security/+guard.ts b/src/pages/dev/security/+guard.ts
index 75c39faa..d696cabe 100644
--- a/src/pages/dev/security/+guard.ts
+++ b/src/pages/dev/security/+guard.ts
@@ -1,4 +1,5 @@
import { render, redirect } from "vike/abort";
+import { ingestPrefix } from "@macrostrat-web/settings";
export const guard = (pageContext) => {
const { user } = pageContext;
@@ -7,9 +8,7 @@ export const guard = (pageContext) => {
// Render the login page while preserving the URL. (This is novel technique
// which we explain down below.)
throw redirect(
- `${
- import.meta.env.VITE_MACROSTRAT_INGEST_API
- }/security/login?return_url=${pageContext.url}`
+ `${ingestPrefix}/security/login?return_url=${pageContext.url}`
);
/* The more traditional way, redirect the user:
throw redirect('/login')
diff --git a/src/pages/docs/+Page.mdx b/src/pages/docs/+Page.mdx
index b8cb0a0a..42fa6ea1 100644
--- a/src/pages/docs/+Page.mdx
+++ b/src/pages/docs/+Page.mdx
@@ -1,10 +1,11 @@
export { DocumentationPage as default } from "~/layouts";
import { PageHeader } from "~/components";
import { LinkCard } from "~/components/cards";
+import { macrostratInstance, tileserverDomain } from "@macrostrat-web/settings";
- {import.meta.env.VITE_MACROSTRAT_INSTANCE}
+ {macrostratInstance}
@@ -33,10 +34,7 @@ This section contains documentation for users of Macrostrat's web services, APIs
Documentation for General use Postgrest API
-
+
Documentation for Tileserver API
@@ -109,7 +107,7 @@ including CriticalMAAS.
v2** data standards. Focus on point data, raster image alignment, and
ingestion metadata recovery (_Kate Akin_; Geoscience)
-### External integrations
+### Integrations
Macrostrat is integrated with systems that provide additional functionality
relevant to CriticalMAAS. Major adjustments to these systems are out-of-scope
diff --git a/src/pages/docs/api/postgrest/+onBeforeRender.ts b/src/pages/docs/api/postgrest/+onBeforeRender.ts
index 780578f8..87048bb0 100644
--- a/src/pages/docs/api/postgrest/+onBeforeRender.ts
+++ b/src/pages/docs/api/postgrest/+onBeforeRender.ts
@@ -1,7 +1,9 @@
+import { apiDomain } from "@macrostrat-web/settings";
+
export async function onBeforeRender(pageContext) {
// `.page.server.js` files always run in Node.js; we could use SQL/ORM queries here.
- const url = `${import.meta.env.VITE_MACROSTRAT_API_DOMAIN}/api/pg/`;
+ const url = `${apiDomain}/api/pg/`;
const pageProps = { swaggerUrl: url };
return {
diff --git a/src/pages/docs/ingestion/+Page.mdx b/src/pages/docs/ingestion/+Page.mdx
index f14c0fce..524487fb 100644
--- a/src/pages/docs/ingestion/+Page.mdx
+++ b/src/pages/docs/ingestion/+Page.mdx
@@ -1,16 +1,22 @@
export { DocumentationPage as default } from "~/layouts";
import { LinkCard } from "~/components/cards";
import { PageHeader } from "~/components";
+import { macrostratInstance } from "@macrostrat-web/settings";
- {import.meta.env.VITE_MACROSTRAT_INSTANCE}
+ {macrostratInstance}
The Macrostrat ingestion process is built to enable the registration, processing and distribution of new maps.
-
+
## Staging
diff --git a/src/pages/docs/ingestion/harmonization/+Page.mdx b/src/pages/docs/ingestion/harmonization/+Page.mdx
index bd3ea5e9..a1e5c519 100644
--- a/src/pages/docs/ingestion/harmonization/+Page.mdx
+++ b/src/pages/docs/ingestion/harmonization/+Page.mdx
@@ -1,11 +1,12 @@
export { DocumentationPage as default } from "~/layouts";
import { Icon } from "@blueprintjs/core";
+import { macrostratInstance } from "@macrostrat-web/settings";
import { PageHeader } from "~/components";
import { LinkCard } from "~/components/cards";
-
+
- {import.meta.env.VITE_MACROSTRAT_INSTANCE}
+ {macrostratInstance}
diff --git a/src/pages/lex/lithology/+config.h.ts b/src/pages/lex/lithology/+config.ts
similarity index 100%
rename from src/pages/lex/lithology/+config.h.ts
rename to src/pages/lex/lithology/+config.ts
diff --git a/src/pages/map/+Page.ts b/src/pages/map/+Page.ts
new file mode 100644
index 00000000..c1c61100
--- /dev/null
+++ b/src/pages/map/+Page.ts
@@ -0,0 +1,6 @@
+import MapInterface from "./map-interface";
+import h from "@macrostrat/hyper";
+
+export function Page() {
+ return h(MapInterface);
+}
diff --git a/src/pages/map/+config.h.ts b/src/pages/map/+config.ts
similarity index 81%
rename from src/pages/map/+config.h.ts
rename to src/pages/map/+config.ts
index 2a46be06..1e6dc4e7 100644
--- a/src/pages/map/+config.h.ts
+++ b/src/pages/map/+config.ts
@@ -1,8 +1,5 @@
-import MapInterface from "./map-interface";
-
export default {
- Page: MapInterface,
- route: "/map/*",
+ route: "/map*",
meta: {
Page: {
/* Sift must be rendered as a single-page app, because that is its design.
@@ -15,4 +12,5 @@ export default {
},
},
},
+ title: "Map",
};
diff --git a/src/pages/map/dev/+config.h.ts b/src/pages/map/dev/+config.ts
similarity index 100%
rename from src/pages/map/dev/+config.h.ts
rename to src/pages/map/dev/+config.ts
diff --git a/src/pages/map/map-interface/app-state/handlers/fetch.ts b/src/pages/map/map-interface/app-state/handlers/fetch.ts
index 8df9ea0f..c97d4f2a 100644
--- a/src/pages/map/map-interface/app-state/handlers/fetch.ts
+++ b/src/pages/map/map-interface/app-state/handlers/fetch.ts
@@ -71,7 +71,7 @@ export async function fetchFilteredColumns(
// TODO: report errors
return {
type: "update-column-filters",
- columns: res.data,
+ columns: res.data.features,
};
}
diff --git a/src/pages/map/map-interface/app-state/handlers/index.ts b/src/pages/map/map-interface/app-state/handlers/index.ts
index 1fea0884..72822e2e 100644
--- a/src/pages/map/map-interface/app-state/handlers/index.ts
+++ b/src/pages/map/map-interface/app-state/handlers/index.ts
@@ -43,7 +43,6 @@ async function actionRunner(
let coreState = s1.core;
const activePage = currentPageForPathName(pathname);
- console.log(pathname, "activePage", activePage);
// Harvest as much information as possible from the hash string
let [coreState1, filters] = getInitialStateFromHash(
@@ -52,13 +51,13 @@ async function actionRunner(
);
// If we are on the column route, the column layer must be enabled
- const colMatch = matchPath(
- mapPagePrefix + "/loc/:lng/:lat/column",
- pathname
- );
- if (colMatch != null) {
- coreState1.mapLayers.add(MapLayer.COLUMNS);
- }
+ // const colMatch = matchPath(
+ // mapPagePrefix + "/loc/:lng/:lat/column",
+ // pathname
+ // );
+ // if (colMatch != null) {
+ // coreState1.mapLayers.add(MapLayer.COLUMNS);
+ // }
// Fill out the remainder with defaults
diff --git a/src/pages/map/map-interface/app-state/hooks.ts b/src/pages/map/map-interface/app-state/hooks.ts
index 4c7c39aa..86656376 100644
--- a/src/pages/map/map-interface/app-state/hooks.ts
+++ b/src/pages/map/map-interface/app-state/hooks.ts
@@ -3,7 +3,6 @@ import actionRunner from "./handlers";
import { useStore, useSelector, useDispatch } from "react-redux";
import { AppState } from ".";
import React from "react";
-import { useEffect } from "react";
function useActionDispatch() {
return useDispatch>();
@@ -20,55 +19,8 @@ function useAppActions(): (action: AppAction) => Promise {
};
}
-function useFilterState() {
- const { filters, filtersOpen } = useSelector((state) => state.core);
- return { filters, filtersOpen };
-}
-
-function useSearchState() {
- return useSelector((state) => {
- const { searchResults, isSearching, term, inputFocus, infoDrawerOpen } =
- state.core;
- return { searchResults, isSearching, term, inputFocus, infoDrawerOpen };
- });
-}
-
-function useMenuState() {
- const { menuOpen, infoDrawerOpen } = useSelector((state) => state.core);
- const menu = useSelector((state) => state.menu);
- return { menuOpen, infoDrawerOpen, ...menu };
-}
-
function useAppState(selectorFn: (state: AppState) => T): T {
return useSelector(selectorFn) as T;
}
-interface OutsideClickI {
- ref: React.RefObject;
- fn: (event: Event) => void;
-}
-
-function useOutsideClick(props: OutsideClickI) {
- const { ref, fn } = props;
-
- useEffect(() => {
- function handleOutsideClick(event) {
- if (ref.current && !ref.current?.contains(event.target)) {
- return fn(event);
- }
- }
- document.addEventListener("mousedown", handleOutsideClick);
- return () => {
- document.removeEventListener("mousedown", handleOutsideClick);
- };
- }, [ref]);
-}
-
-export {
- useAppActions,
- useFilterState,
- useSearchState,
- useMenuState,
- useAppState,
- useOutsideClick,
-};
+export { useAppActions, useAppState };
diff --git a/src/pages/map/map-interface/app-state/reducers/core/types.ts b/src/pages/map/map-interface/app-state/reducers/core/types.ts
index 1a15a663..5fa7375c 100644
--- a/src/pages/map/map-interface/app-state/reducers/core/types.ts
+++ b/src/pages/map/map-interface/app-state/reducers/core/types.ts
@@ -41,7 +41,10 @@ type CLOSE_INFODRAWER = { type: "close-infodrawer" };
type TOGGLE_FILTERS = { type: "toggle-filters" };
type REMOVE_FILTER = { type: "remove-filter"; filter: any };
-type UPDATE_COLUMN_FILTERS = { type: "update-column-filters"; columns: any };
+type UPDATE_COLUMN_FILTERS = {
+ type: "update-column-filters";
+ columns: ColumnGeoJSONRecord[];
+};
type CLEAR_FILTERS = { type: "clear-filters" };
type START_MAP_QUERY = {
@@ -263,7 +266,7 @@ export interface CoreState extends MapState, AsyncRequestState {
mapUse3D: boolean;
filtersOpen: boolean;
filters: FilterData[];
- filteredColumns: object;
+ filteredColumns: ColumnGeoJSONRecord[] | null;
showExperimentsPanel: boolean;
allColumns: ColumnGeoJSONRecord[] | null;
data: [];
diff --git a/src/pages/map/map-interface/app-state/reducers/index.ts b/src/pages/map/map-interface/app-state/reducers/index.ts
index f3e6a9f9..70e1f3d9 100644
--- a/src/pages/map/map-interface/app-state/reducers/index.ts
+++ b/src/pages/map/map-interface/app-state/reducers/index.ts
@@ -41,13 +41,23 @@ function mainReducer(
* state, we pass thm to individual reducers.
*/
switch (action.type) {
+ case "@@INIT": {
+ const route = state.router.location;
+ const { pathname } = route;
+ const isOpen = contextPanelIsInitiallyOpen(pathname);
+ const s1 = setInfoMarkerPosition(state, pathname);
+ return {
+ ...s1,
+ core: { ...s1.core, menuOpen: isOpen, contextPanelOpen: isOpen },
+ };
+ }
case "@@router/ON_LOCATION_CHANGED": {
- const { pathname } = action.payload.location;
+ const newRoute = action.payload.location;
+ const { pathname } = newRoute;
const isOpen = contextPanelIsInitiallyOpen(pathname);
- let s1 = setInfoMarkerPosition(state);
+ const s1 = setInfoMarkerPosition(state, pathname);
- const newRoute = action.payload.location;
let newAction = action;
if (newRoute.hash == "") {
newAction = {
@@ -56,7 +66,7 @@ function mainReducer(
...action.payload,
location: {
...action.payload.location,
- hash: state.router.location.hash,
+ hash: s1.router.location.hash,
},
},
};
@@ -65,7 +75,7 @@ function mainReducer(
return {
...s1,
core: { ...s1.core, menuOpen: isOpen, contextPanelOpen: isOpen },
- router: routerReducer(state.router, newAction),
+ router: routerReducer(s1.router, newAction),
};
}
case "set-menu-page":
@@ -92,18 +102,45 @@ const appReducer = (state: AppState, action: AppAction) => {
return hashStringReducer(mainReducer(state, action), action);
};
-export function setInfoMarkerPosition(state: AppState): AppState {
+export function setInfoMarkerPosition(
+ state: AppState,
+ pathname: string | null = null
+): AppState {
// Check if we are viewing a specific location
const loc = matchPath(
- mapPagePrefix + "/loc/:lng/:lat",
- state.router.location.pathname
+ mapPagePrefix + "/loc/:lng/:lat/*",
+ pathname ?? state.router.location.pathname
);
+
+ let s1 = state;
+
+ // //If we are on the column route, the column layer must be enabled
+ // let s1 = state;
+ // const colMatch = matchPath(
+ // mapPagePrefix + "/loc/:lng/:lat/column",
+ // pathname ?? state.router.location.pathname
+ // );
+ // if (colMatch != null) {
+ // s1 = update(s1, { core: { mapLayers: { $add: [MapLayer.COLUMNS] } } });
+ // }
+
+ // // If we are disabling the column route, we should remove the column layer
+ // const colMatch2 = matchPath(
+ // mapPagePrefix + "/loc/:lng/:lat/column",
+ // state.router.location.pathname
+ // );
+
+ // if (colMatch2 != null && colMatch == null) {
+ // s1 = update(s1, { core: { mapLayers: { $remove: [MapLayer.COLUMNS] } } });
+ // }
+
+ // Set location
if (loc != null) {
const { lng, lat } = loc.params;
return {
- ...state,
+ ...s1,
core: {
- ...state.core,
+ ...s1.core,
infoMarkerPosition: { lng: Number(lng), lat: Number(lat) },
infoDrawerOpen: true,
},
@@ -113,7 +150,7 @@ export function setInfoMarkerPosition(state: AppState): AppState {
// Check if we're viewing a cross-section
const crossSection = matchPath(
mapPagePrefix + "/cross-section/:loc1/:loc2",
- state.router.location.pathname
+ pathname ?? state.router.location.pathname
);
if (crossSection != null) {
const { loc1, loc2 } = crossSection.params;
@@ -121,9 +158,9 @@ export function setInfoMarkerPosition(state: AppState): AppState {
const [lng2, lat2] = loc2.split(",").map(Number);
if (lng1 != null && lat1 != null && lng2 != null && lat2 != null) {
return {
- ...state,
+ ...s1,
core: {
- ...state.core,
+ ...s1.core,
crossSectionLine: {
type: "LineString",
coordinates: [
diff --git a/src/pages/map/map-interface/components/filter-panel/index.ts b/src/pages/map/map-interface/components/filter-panel/index.ts
index e0093768..e529e55d 100644
--- a/src/pages/map/map-interface/components/filter-panel/index.ts
+++ b/src/pages/map/map-interface/components/filter-panel/index.ts
@@ -2,8 +2,8 @@ import React, { useState } from "react";
import hyper from "@macrostrat/hyper";
import { Tag, Card, Button, Collapse, Switch } from "@blueprintjs/core";
import {
- useFilterState,
useAppActions,
+ useAppState,
} from "~/pages/map/map-interface/app-state";
import { useAdmoinshments } from "./admonishments";
import styles from "./filters.module.styl";
@@ -54,7 +54,7 @@ function Filter({ filter }) {
}
function Filters() {
- const { filters } = useFilterState();
+ const { filters } = useAppState((state) => state.core.filters);
const shouldFiltersBeOpen = filters.length > 0;
return h("div.filter-container", [
h.if(!shouldFiltersBeOpen)("div", [
@@ -94,7 +94,7 @@ function makeFilterString(filters) {
function FilterPanel() {
const [open, setOpen] = useState(false);
- const { filters } = useFilterState();
+ const filters = useAppState((s) => s.core.filters);
const runAction = useAppActions();
const admonishments = useAdmoinshments();
diff --git a/src/pages/map/map-interface/components/info-drawer/index.ts b/src/pages/map/map-interface/components/info-drawer/index.ts
index b2301ba7..8bbb0567 100644
--- a/src/pages/map/map-interface/components/info-drawer/index.ts
+++ b/src/pages/map/map-interface/components/info-drawer/index.ts
@@ -56,8 +56,6 @@ function InfoDrawer(props) {
function InfoDrawerInterior(props) {
const columnInfo = useAppState((state) => state.core.columnInfo);
- console.log("Column info", columnInfo);
-
return h(Routes, [
h(Route, { path: "/column", element: h(StratColumn, { columnInfo }) }),
h(Route, { path: "*", element: h(InfoDrawerMainPanel) }),
diff --git a/src/pages/map/map-interface/components/navbar/index.ts b/src/pages/map/map-interface/components/navbar/index.ts
index 787eebe9..9de34b4f 100644
--- a/src/pages/map/map-interface/components/navbar/index.ts
+++ b/src/pages/map/map-interface/components/navbar/index.ts
@@ -3,7 +3,6 @@ import { Navbar, Button, InputGroup, Spinner, Card } from "@blueprintjs/core";
import hyper from "@macrostrat/hyper";
import {
useAppActions,
- useSearchState,
useAppState,
useContextPanelOpen,
} from "../../app-state";
@@ -71,7 +70,6 @@ function ResultList({ searchResults }) {
{
key,
onClick() {
- console.log("Clicked", item);
onSelectResult(item);
},
},
@@ -85,7 +83,7 @@ function ResultList({ searchResults }) {
}
function SearchResults({ className }) {
- const { searchResults } = useSearchState();
+ const searchResults = useAppState((s) => s.core.searchResults);
className = classNames(className, "search-results-card");
return h(Card, { className }, h(ResultList, { searchResults }));
diff --git a/src/pages/map/map-interface/index.ts b/src/pages/map/map-interface/index.ts
index fe6f9351..5c36deec 100644
--- a/src/pages/map/map-interface/index.ts
+++ b/src/pages/map/map-interface/index.ts
@@ -9,13 +9,18 @@ import "./ui-components.styl";
import { createRouterMiddleware } from "@lagunovsky/redux-react-router";
import { Provider } from "react-redux";
import { applyMiddleware, compose, createStore } from "redux";
-import reducerStack, { Action, AppState, browserHistory } from "./app-state";
+import reducerStack, { AppAction, AppState, browserHistory } from "./app-state";
+
+/** Redux is used only for the main map applicaton. This heavy state-management approach is
+ * essentially a legacy approach, and we are moving away from this in favor of more lightweight
+ * state management solutions that work on individual pages.
+ */
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
const routerMiddleware = createRouterMiddleware(browserHistory);
// Create the data store
-let store = createStore(
+let store = createStore(
reducerStack,
composeEnhancers(applyMiddleware(routerMiddleware))
);
@@ -29,12 +34,14 @@ export default function MapApp({ routerBasename }) {
h(
ReduxRouter,
{ basename: routerBasename, store, history: browserHistory },
- [
- h(Routes, [
- //h(Route, { path: mapPagePrefix + "/sources", element: h(Sources) }),
- h(Route, { path: "*", element: h(MapPage) }),
- ]),
- ]
+ [h(Routes, [h(Route, { path: "*", element: h(MapPage) })])]
)
);
}
+
+// Extend the window type to include the Redux DevTools types
+declare global {
+ interface Window {
+ __REDUX_DEVTOOLS_EXTENSION_COMPOSE__: Function | undefined;
+ }
+}
diff --git a/src/pages/map/map-interface/map-page/index.ts b/src/pages/map/map-interface/map-page/index.ts
index 17ef266d..9c9e8bd0 100644
--- a/src/pages/map/map-interface/map-page/index.ts
+++ b/src/pages/map/map-interface/map-page/index.ts
@@ -19,6 +19,7 @@ import Searchbar from "../components/navbar";
import styles from "./main.module.styl";
import MapContainer from "./map-view";
import { MenuPage } from "./menu";
+import { info } from "console";
const ElevationChart = loadable(() => import("../components/elevation-chart"));
const InfoDrawer = loadable(() => import("../components/info-drawer"));
@@ -78,12 +79,7 @@ export const MapPage = ({
className: "context-panel",
menuPage: menuPage ?? navMenuPage,
}),
- detailPanel: h(Routes, [
- h(Route, {
- path: mapPagePrefix + "/loc/:lng/:lat/*",
- element: h(InfoDrawerRoute),
- }),
- ]),
+ detailPanel: h(InfoDrawerHolder),
detailPanelStyle: "floating",
bottomPanel: h(ElevationChart, null),
contextPanelOpen: contextPanelOpen || inputFocus,
@@ -113,36 +109,51 @@ function MapPageRoutes() {
]);
}
-function InfoDrawerRoute() {
+function InfoDrawerHolder() {
// We could probably do this in the reducer...
- const { lat, lng } = useParams();
const infoDrawerOpen = useAppState((s) => s.core.infoDrawerOpen);
+ const detailPanelTrans = useTransition(infoDrawerOpen, 800);
+
+ return h([
+ // This is essentially a shim implementation of React Router
+ h(Routes, [
+ h(Route, {
+ path: mapPagePrefix + "/loc/:lng/:lat/*",
+ element: h.if(detailPanelTrans.shouldMount)(InfoDrawer, {
+ className: "detail-panel",
+ }),
+ }),
+ ]),
+ h(InfoDrawerLocationGrabber),
+ ]);
+}
+
+function InfoDrawerLocationGrabber() {
+ // We could probably do this in the reducer...
const z = Math.round(
useAppState((s) => s.core.mapPosition.target?.zoom) ?? 7
);
- const detailPanelTrans = useTransition(infoDrawerOpen, 800);
+ const infoMarkerPosition = useAppState((s) => s.core.infoMarkerPosition);
const runAction = useAppActions();
+ const { lat, lng } = infoMarkerPosition ?? {};
+
// Todo: this is a pretty janky way to do state management
useEffect(() => {
- if (lat && lng) {
- runAction({
- type: "run-map-query",
- lat: Number(lat),
- lng: Number(lng),
- z,
- // Focused column or map unit from active layers.
- // This is a bit anachronistic, since we want to be
- // able to show columns that aren't necessarily shown on the map
- columns: [],
- map_id: null,
- });
- }
+ if (lat == null || lng == null) return;
+ runAction({
+ type: "run-map-query",
+ lat: Number(lat),
+ lng: Number(lng),
+ z,
+ // Focused column or map unit from active layers.
+ // This is a bit anachronistic, since we want to be
+ // able to show columns that aren't necessarily shown on the map
+ columns: [],
+ map_id: null,
+ });
}, [lat, lng]);
-
- return h.if(detailPanelTrans.shouldMount)(InfoDrawer, {
- className: "detail-panel",
- });
+ return null;
}
export default MapPageRoutes;
diff --git a/src/pages/map/map-interface/map-page/map-styles/index.ts b/src/pages/map/map-interface/map-page/map-styles/index.ts
index 31053c96..6cc76687 100644
--- a/src/pages/map/map-interface/map-page/map-styles/index.ts
+++ b/src/pages/map/map-interface/map-page/map-styles/index.ts
@@ -1,5 +1,4 @@
-import { overlayStyle } from "./overlay";
-
-export { overlayStyle };
export * from "./map-sources";
export * from "./line-symbols";
+export * from "./paleogeography";
+export * from "./overlay";
diff --git a/src/pages/map/map-interface/map-page/map-styles/map-sources.ts b/src/pages/map/map-interface/map-page/map-styles/map-sources.ts
index 2537f59c..a8bf00da 100644
--- a/src/pages/map/map-interface/map-page/map-styles/map-sources.ts
+++ b/src/pages/map/map-interface/map-page/map-styles/map-sources.ts
@@ -93,7 +93,6 @@ export function MapSourcesLayer() {
mergeStyles(map, styles);
} else {
map.on("style.load", () => {
- console.log("Merging styles");
mergeStyles(map, styles);
});
}
diff --git a/src/pages/map/map-interface/map-page/map-styles/overlay.ts b/src/pages/map/map-interface/map-page/map-styles/overlay.ts
index bec73eda..41fbdbbc 100644
--- a/src/pages/map/map-interface/map-page/map-styles/overlay.ts
+++ b/src/pages/map/map-interface/map-page/map-styles/overlay.ts
@@ -1,91 +1,119 @@
-import { apiV2Prefix } from "@macrostrat-web/settings";
+/** Add extra types we use in this style... */
+interface SourceExt extends mapboxgl.Source {
+ cluster?: boolean;
+ clusterRadius?: number;
+ generateId?: boolean;
+ data?: any;
+}
-export const overlayStyle = {
- version: 8,
- sources: {
- // "pbdb": {
- // "type": "vector",
- // "tiles": [
- // `${SETTINGS.burwellTileDomain}/hexgrid/{z}/{x}/{y}.mvt`
- // ],
- // "tileSize": 512,
- // "maxzoom": 6,
- // },
- "pbdb-points": {
- type: "geojson",
- cluster: true,
- clusterRadius: 50,
- data: {
- type: "FeatureCollection",
- features: [],
- },
- },
- "pbdb-clusters": {
- type: "geojson",
- generateId: true,
- data: {
- type: "FeatureCollection",
- features: [],
- },
+export function buildOverlayStyle() {
+ return {
+ version: 8,
+ layers: buildOverlayLayers(),
+ sources: overlaySources,
+ };
+}
+
+const overlaySources: { [k: string]: SourceExt } = {
+ // "pbdb": {
+ // "type": "vector",
+ // "tiles": [
+ // `${SETTINGS.burwellTileDomain}/hexgrid/{z}/{x}/{y}.mvt`
+ // ],
+ // "tileSize": 512,
+ // "maxzoom": 6,
+ // },
+ "pbdb-points": {
+ type: "geojson",
+ cluster: true,
+ clusterRadius: 50,
+ data: {
+ type: "FeatureCollection",
+ features: [],
},
- info_marker: {
- type: "geojson",
- data: {
- type: "FeatureCollection",
- features: [
- {
- type: "Feature",
- geometry: {
- type: "Point",
- coordinates: [0, 0],
- },
- },
- ],
- },
+ },
+ "pbdb-clusters": {
+ type: "geojson",
+ generateId: true,
+ data: {
+ type: "FeatureCollection",
+ features: [],
},
- columns: {
- type: "geojson",
- generateId: true,
- data: `${apiV2Prefix}/columns?all&format=geojson_bare`,
+ },
+ columns: {
+ type: "geojson",
+ generateId: true,
+ data: {
+ type: "FeatureCollection",
+ features: [],
},
- filteredColumns: {
- type: "geojson",
- generateId: true,
- data: {
- type: "FeatureCollection",
- features: [],
- },
+ },
+ filteredColumns: {
+ type: "geojson",
+ generateId: true,
+ data: {
+ type: "FeatureCollection",
+ features: [],
},
- elevationPoints: {
- type: "geojson",
- data: {
- type: "FeatureCollection",
- features: [],
- },
+ },
+ crossSectionEndpoints: {
+ type: "geojson",
+ data: {
+ type: "FeatureCollection",
+ features: [],
},
- elevationLine: {
- type: "geojson",
- data: {
- type: "FeatureCollection",
- features: [],
- },
+ },
+ crossSectionLine: {
+ type: "geojson",
+ data: {
+ type: "FeatureCollection",
+ features: [],
},
- elevationMarker: {
- type: "geojson",
- data: {
- type: "FeatureCollection",
- features: [],
- },
+ },
+ elevationMarker: {
+ type: "geojson",
+ data: {
+ type: "FeatureCollection",
+ features: [],
},
},
- layers: [
+};
+
+export function buildOverlayLayers(): mapboxgl.Layer[] {
+ // Get CSS colors from settings
+ const ruleColor = getComputedStyle(document.body).getPropertyValue(
+ "--panel-background-color"
+ );
+
+ const centerColor = getComputedStyle(document.body).getPropertyValue(
+ "--panel-rule-color"
+ );
+
+ const crossSectionPointPaint = {
+ "circle-radius": {
+ stops: [
+ [0, 3],
+ [12, 5],
+ ],
+ },
+ "circle-color": centerColor,
+ "circle-stroke-width": {
+ stops: [
+ [0, 2],
+ [12, 4],
+ ],
+ },
+ "circle-stroke-color": ruleColor,
+ };
+
+ return [
{
id: "column_fill",
type: "fill",
source: "columns",
paint: {
- "fill-color": "#777777",
- "fill-opacity": 0.2,
+ "fill-color": centerColor,
+ "fill-opacity": 0.3,
},
layout: {
visibility: "none",
@@ -96,11 +124,13 @@ export const overlayStyle = {
type: "line",
source: "columns",
paint: {
- "line-color": "#777777",
+ "line-color": ruleColor,
+ "line-opacity": 0.75,
"line-width": {
stops: [
- [0, 0.2],
- [10, 1],
+ [0, 0.5],
+ [4, 1],
+ [10, 2],
],
},
},
@@ -138,53 +168,33 @@ export const overlayStyle = {
},
},
{
- id: "infoMarker",
- type: "symbol",
- source: "info_marker",
- layout: {
- "icon-size": 0.65,
- "icon-image": "pin",
- "icon-offset": [0, -28],
- visibility: "none",
- "icon-allow-overlap": true,
- },
- },
- {
- id: "elevationLine",
+ id: "crossSectionLine",
type: "line",
- source: "elevationLine",
+ source: "crossSectionLine",
paint: {
- "line-dasharray": [4, 2],
"line-width": {
stops: [
- [0, 3],
- [12, 5],
+ [0, 1],
+ [12, 3],
],
},
- "line-color": "#ffffff",
+ "line-color": ruleColor,
"line-opacity": 1,
},
},
{
- id: "elevationPoint",
+ id: "crossSectionEndpoint",
type: "circle",
- source: "elevationPoints",
- paint: {
- "circle-radius": 6,
- "circle-color": "#ffffff",
- "circle-stroke-width": 1,
- "circle-stroke-color": "#333333",
- },
+ source: "crossSectionEndpoints",
+ paint: crossSectionPointPaint,
},
{
id: "elevationMarker",
type: "circle",
source: "elevationMarker",
paint: {
- "circle-radius": 8,
+ ...crossSectionPointPaint,
"circle-color": "#4bc0c0",
- "circle-stroke-width": 2,
- "circle-stroke-color": "#dcdcdc",
},
},
// {
@@ -314,5 +324,5 @@ export const overlayStyle = {
"circle-stroke-color": "#fff",
},
},
- ],
-};
+ ];
+}
diff --git a/src/pages/map/map-interface/map-page/map-styles/paleogeography.ts b/src/pages/map/map-interface/map-page/map-styles/paleogeography.ts
new file mode 100644
index 00000000..f68e3ad8
--- /dev/null
+++ b/src/pages/map/map-interface/map-page/map-styles/paleogeography.ts
@@ -0,0 +1,88 @@
+import chroma from "chroma-js";
+import { mergeStyles } from "@macrostrat/mapbox-utils";
+
+export function applyAgeModelStyles(baseStyle, mapStyle, opts) {
+ const {
+ model,
+ age,
+ inDarkMode = false,
+ tileserverDomain = "https://macrostrat.org/tiles",
+ } = opts;
+
+ let mapTileURL = tileserverDomain + "/carto-slim/{z}/{x}/{y}";
+ if (age != null) {
+ mapTileURL =
+ tileserverDomain +
+ `/carto-slim-rotated/{z}/{x}/{y}?model_id=${model}&t_step=${age}`;
+ }
+
+ let color = chroma("rgb(180, 180, 200)");
+ let ageSpan = 4500;
+ for (let interval of intervals) {
+ let intAgeSpan = interval.eag - interval.lag;
+ if (interval.eag > age && interval.lag < age && intAgeSpan < ageSpan) {
+ color = chroma(interval.col);
+ }
+ }
+
+ const newBaseStyle = {
+ ...baseStyle,
+ sources: {},
+ layers: [],
+ };
+
+ const overlays = {
+ ...mapStyle,
+ //layers: mapStyle.layers.filter((l) => !l.id.startsWith("column")),
+ };
+
+ let styles = mergeStyles(
+ newBaseStyle,
+ {
+ version: 8,
+ layers: [
+ {
+ id: "plate-polygons",
+ type: "fill",
+ source: "burwell",
+ "source-layer": "plates",
+ paint: {
+ "fill-color": inDarkMode ? "rgb(60,60,70)" : "rgb(170,170,200)",
+ "fill-outline-color": inDarkMode
+ ? "rgb(70, 70, 80)"
+ : "rgb(150,150,150)",
+ },
+ },
+ {
+ id: "land",
+ type: "fill",
+ source: "burwell",
+ "source-layer": "land",
+ paint: {
+ "fill-color": inDarkMode ? "rgb(80,80,90)" : "rgb(200,200,203)",
+ },
+ },
+ // {
+ // id: "column_outline",
+ // type: "line",
+ // source: "burwell",
+ // "source-layer": "columns",
+ // paint: {
+ // "line-color": color.css(),
+ // "line-width": 1.5,
+ // "line-opacity": 0.8,
+ // },
+ // },
+ ],
+ },
+ overlays
+ );
+
+ styles.sources.burwell = {
+ type: "vector",
+ tiles: [mapTileURL],
+ tileSize: 512,
+ };
+
+ return styles;
+}
diff --git a/src/pages/map/map-interface/map-page/map-view/__archive.ts b/src/pages/map/map-interface/map-page/map-view/__archive.ts
index c4f616e1..dd03cd02 100644
--- a/src/pages/map/map-interface/map-page/map-view/__archive.ts
+++ b/src/pages/map/map-interface/map-page/map-view/__archive.ts
@@ -97,74 +97,3 @@ class VestigialMap extends Component {
}
}
}
-
-function setMapStyle(class_, map, mapStyle, props) {
- const prevMapLayers = class_.props.mapLayers;
- const { mapLayers } = props;
-
- mapStyle.layers.forEach((layer) => {
- if (map.getSource(layer.source) && map.getLayer(layer.id)) {
- const visibility = map.getLayoutProperty(layer.id, "visibility");
- if (layer.source === "burwell" && layer["source-layer"] === "units") {
- const showBedRock = mapLayers.has(MapLayer.BEDROCK)
- ? "visible"
- : "none";
- if (visibility !== showBedRock) {
- map.setLayoutProperty(layer.id, "visibility", showBedRock);
- }
- } else if (
- layer.source === "burwell" &&
- layer["source-layer"] === "lines"
- ) {
- const showLines = mapLayers.has(MapLayer.LINES) ? "visible" : "none";
- if (visibility !== showLines) {
- map.setLayoutProperty(layer.id, "visibility", showLines);
- }
- } else if (
- layer.source === "pbdb-points" ||
- layer.source === "pbdb-clusters"
- ) {
- // points and clusters are visible at different zooms
- // currently this difference is handled by refreshPBDB()
- // it's annoying but doesn't cause an infinite loop
- const hasFossils = mapLayers.has(MapLayer.FOSSILS);
- if (
- class_.props.mapLayers.has(MapLayer.FOSSILS) != hasFossils &&
- hasFossils
- ) {
- class_.refreshPBDB();
- } else {
- map.setLayoutProperty(
- layer.id,
- "visibility",
- hasFossils ? "visible" : "none"
- );
- }
- } else if (layer.source === "columns") {
- const showColumns =
- mapLayers.has(MapLayer.COLUMNS) && !props.filters.length
- ? "visible"
- : "none";
- if (visibility !== showColumns) {
- map.setLayoutProperty(layer.id, "visibility", showColumns);
- }
- } else if (layer.source === "filteredColumns") {
- const showFilteredColumns =
- mapLayers.has(MapLayer.COLUMNS) && props.filters.length
- ? "visible"
- : "none";
- if (
- JSON.stringify(props.filteredColumns) !=
- JSON.stringify(class_.props.filteredColumns)
- ) {
- map.getSource("filteredColumns").setData(props.filteredColumns);
- }
- if (visibility != showFilteredColumns) {
- map.setLayoutProperty(layer.id, "visibility", showFilteredColumns);
- }
- }
- }
- });
-}
-
-export { setMapStyle };
diff --git a/src/pages/map/map-interface/map-page/map-view/index.ts b/src/pages/map/map-interface/map-page/map-view/index.ts
index 75c9cef8..6f7a0ee7 100644
--- a/src/pages/map/map-interface/map-page/map-view/index.ts
+++ b/src/pages/map/map-interface/map-page/map-view/index.ts
@@ -5,14 +5,13 @@ import {
PositionFocusState,
getFocusState,
useMapLabelVisibility,
- useMapPosition,
useMapRef,
useMapStatus,
+ useMapStyleOperator,
} from "@macrostrat/mapbox-react";
import {
MacrostratLineSymbolManager,
MapSourcesLayer,
- applyAgeModelStyles,
buildMacrostratStyle,
} from "@macrostrat/mapbox-styles";
import { getMapboxStyle, mergeStyles } from "@macrostrat/mapbox-utils";
@@ -32,6 +31,7 @@ import {
MacrostratLayerManager,
} from "./map";
import { getBaseMapStyle } from "@macrostrat-web/map-utils";
+import { buildOverlayStyle, applyAgeModelStyles } from "../map-styles";
const h = hyper.styled(styles);
@@ -65,22 +65,24 @@ export default function MainMapView(props) {
const [baseStyle, setBaseStyle] = useState(null);
const mapStyle = useMemo(() => {
if (baseStyle == null) return null;
- const overlayStyles = buildMacrostratStyle({
+ const macrostratStyle = buildMacrostratStyle({
focusedMap: focusedMapSource,
tileserverDomain: SETTINGS.burwellTileDomain,
});
+ const overlayStyle = buildOverlayStyle();
+
if (timeCursorAge != null) {
- return applyAgeModelStyles(baseStyle, overlayStyles, {
+ return applyAgeModelStyles(baseStyle, macrostratStyle, {
age: timeCursorAge,
model: plateModelId ?? 1,
baseStyle,
- overlayStyles,
+ overlayStyles: overlayStyle,
isDarkMode,
tileserverDomain: SETTINGS.burwellTileDomain,
});
}
- return mergeStyles(baseStyle, overlayStyles);
+ return mergeStyles(baseStyle, macrostratStyle, overlayStyle);
}, [baseStyle, timeCursorAge, plateModelId, isDarkMode, focusedMapSource]);
useEffect(() => {
@@ -133,6 +135,7 @@ export default function MainMapView(props) {
return h(
MapView,
{
+ projection: { name: "globe" },
...props,
infoMarkerPosition,
onMapLoaded,
@@ -161,28 +164,19 @@ export default function MainMapView(props) {
function ColumnDataManager() {
/* Update columns map layer given columns provided by application. */
- const mapRef = useMapRef();
- const { isInitialized } = useMapStatus();
const allColumns = useAppState((state) => state.core.allColumns);
- useEffect(() => {
- const map = mapRef.current;
- const ncols = allColumns?.length ?? 0;
- if (map == null || ncols == 0) return;
- // Set source data for columns
- map.once("style.load", () => {
- const src = map.getSource("columns");
- if (src == null) return;
- src.setData({
+ useMapStyleOperator(
+ (map) => {
+ const ncols = allColumns?.length ?? 0;
+ if (ncols == 0) return;
+ const source = map.getSource("columns");
+ if (source == null) return;
+ source.setData({
type: "FeatureCollection",
- features: allColumns ?? [],
+ features: allColumns,
});
- });
- const src = map.getSource("columns");
- if (src == null) return;
- src.setData({
- type: "FeatureCollection",
- features: allColumns ?? [],
- });
- }, [mapRef.current, allColumns, isInitialized]);
+ },
+ [allColumns]
+ );
return null;
}
diff --git a/src/pages/map/map-interface/map-page/map-view/map.ts b/src/pages/map/map-interface/map-page/map-view/map.ts
index 1238f832..623b39cc 100644
--- a/src/pages/map/map-interface/map-page/map-view/map.ts
+++ b/src/pages/map/map-interface/map-page/map-view/map.ts
@@ -5,7 +5,11 @@ import {
useAppActions,
} from "~/pages/map/map-interface/app-state";
import { ColumnProperties } from "~/pages/map/map-interface/app-state/handlers/columns";
-import { useMapRef, useMapStatus } from "@macrostrat/mapbox-react";
+import {
+ useMapRef,
+ useMapStatus,
+ useMapStyleOperator,
+} from "@macrostrat/mapbox-react";
import { useEffect, useRef, useCallback } from "react";
import { useAppState } from "~/pages/map/map-interface/app-state";
import { getExpressionForFilters } from "./filter-helpers";
@@ -71,7 +75,6 @@ function handleFossilLayerClick(
});
// Need to recolor on selection somehow
- d;
return {
type: "get-pbdb",
collection_nos: pointsInCluster,
@@ -138,7 +141,6 @@ function useMapClickHandler(pbdbPoints) {
// If we are viewing fossils, prioritize clicks on those
if (mapLayers.has(MapLayer.FOSSILS)) {
const action = handleFossilLayerClick(event, map, pbdbPoints.current);
- console.log(action);
if (action != null) {
if (action.type === "zoom-map") {
map.zoomTo(map.getZoom() + action.dz, { center: event.lngLat });
@@ -218,16 +220,13 @@ export async function refreshPBDB(map, pointsRef, filters) {
}
export function MacrostratLayerManager() {
+ /** Manager for map layers */
const mapRef = useMapRef();
- const { isStyleLoaded } = useMapStatus();
const filters = useAppState((s) => s.core.filters);
const mapLayers = useAppState((s) => s.core.mapLayers);
const filteredColumns = useAppState((s) => s.core.filteredColumns);
const runAction = useAppActions();
- const map = mapRef.current;
- // This selection tracking used to be used for PBDB but I think no longer is
- const selectedFeatures = useRef({});
const pbdbPoints = useRef({});
useEffect(() => {
@@ -237,74 +236,28 @@ export function MacrostratLayerManager() {
runAction({ type: "map-layers-changed", mapLayers });
}, [filters, mapLayers]);
- // Filters
- useEffect(() => {
- const map = mapRef.current;
- if (map == null || !isStyleLoaded) return;
-
- const source = map.getSource("filteredColumns");
- if (filteredColumns != null) {
- console.log(filteredColumns);
- source?.setData(filteredColumns);
- }
-
- const expr = getExpressionForFilters(filters);
- map.setFilter("burwell_fill", expr);
- map.setFilter("burwell_stroke", expr);
- }, [filters, isStyleLoaded, mapRef.current]);
-
- const styleLoadedCallback = useCallback(() => {
- const map = mapRef.current;
- if (map == null) return;
- if (!map.isStyleLoaded()) return;
- const style = map.getStyle();
- for (const layer of style.layers) {
- selectedFeatures.current[layer.id] = null;
-
- if (!("source" in layer)) continue;
-
- if (layer.source === "burwell" && layer["source-layer"] === "units") {
- setVisibility(map, layer.id, mapLayers.has(MapLayer.BEDROCK));
- }
- if (layer.source === "burwell" && layer["source-layer"] === "lines") {
- setVisibility(map, layer.id, mapLayers.has(MapLayer.LINES));
- }
- if (
- layer.source === "pbdb" ||
- layer.source === "pbdb-points" ||
- layer.source === "pbdb-clusters"
- ) {
- setVisibility(map, layer.id, mapLayers.has(MapLayer.FOSSILS));
- }
- if (layer.source === "columns") {
- setVisibility(
- map,
- layer.id,
- mapLayers.has(MapLayer.COLUMNS) && filters.length === 0
- );
- }
-
- if (layer.source === "filteredColumns") {
- setVisibility(
- map,
- layer.id,
- mapLayers.has(MapLayer.COLUMNS) && filters.length !== 0
- );
- }
- }
+ // Update filtered columns
+ useMapStyleOperator(
+ (map) => {
+ const source = map.getSource("filteredColumns") as mapboxgl.GeoJSONSource;
+ source?.setData({
+ type: "FeatureCollection",
+ features: filteredColumns ?? [],
+ });
+ },
+ [filteredColumns]
+ );
- if (mapLayers.has(MapLayer.FOSSILS)) {
- refreshPBDB(map, pbdbPoints, filters);
- }
- }, [mapLayers, filters]);
+ useMapStyleOperator(
+ (map) => {
+ const expr = getExpressionForFilters(filters);
+ map.setFilter("burwell_fill", expr);
+ map.setFilter("burwell_stroke", expr);
+ },
+ [filters]
+ );
- useEffect(() => {
- styleLoadedCallback();
- mapRef.current?.on("style.load", styleLoadedCallback);
- return () => {
- mapRef.current?.off("style.load", styleLoadedCallback);
- };
- }, [mapRef.current, styleLoadedCallback]);
+ useStyleReloader(pbdbPoints);
// Map click handler
const mapClickHandler = useMapClickHandler(pbdbPoints);
@@ -336,6 +289,58 @@ export function MacrostratLayerManager() {
return null;
}
+function useStyleReloader(pbdbPoints) {
+ // This selection tracking used to be used for PBDB but I think no longer is
+ const selectedFeatures = useRef({});
+ const filters = useAppState((s) => s.core.filters);
+ const mapLayers = useAppState((s) => s.core.mapLayers);
+
+ return useMapStyleOperator(
+ (map) => {
+ const style = map.getStyle();
+ for (const layer of style.layers) {
+ selectedFeatures.current[layer.id] = null;
+
+ if (!("source" in layer)) continue;
+
+ if (layer.source === "burwell" && layer["source-layer"] === "units") {
+ setVisibility(map, layer.id, mapLayers.has(MapLayer.BEDROCK));
+ }
+ if (layer.source === "burwell" && layer["source-layer"] === "lines") {
+ setVisibility(map, layer.id, mapLayers.has(MapLayer.LINES));
+ }
+ if (
+ layer.source === "pbdb" ||
+ layer.source === "pbdb-points" ||
+ layer.source === "pbdb-clusters"
+ ) {
+ setVisibility(map, layer.id, mapLayers.has(MapLayer.FOSSILS));
+ }
+ if (layer.source === "columns") {
+ setVisibility(
+ map,
+ layer.id,
+ mapLayers.has(MapLayer.COLUMNS) && filters.length === 0
+ );
+ }
+
+ if (layer.source === "filteredColumns") {
+ setVisibility(
+ map,
+ layer.id,
+ mapLayers.has(MapLayer.COLUMNS) && filters.length !== 0
+ );
+ }
+ }
+
+ if (mapLayers.has(MapLayer.FOSSILS)) {
+ refreshPBDB(map, pbdbPoints, filters);
+ }
+ },
+ [mapLayers, filters]
+ );
+}
+
function setVisibility(map, layerID, visible) {
const visibility = visible ? "visible" : "none";
map.setLayoutProperty(layerID, "visibility", visibility);
diff --git a/src/pages/map/map-interface/map-page/menu.ts b/src/pages/map/map-interface/map-page/menu.ts
index 09407b20..ded83703 100644
--- a/src/pages/map/map-interface/map-page/menu.ts
+++ b/src/pages/map/map-interface/map-page/menu.ts
@@ -20,7 +20,6 @@ import {
useAppActions,
useAppState,
useHashNavigate,
- useSearchState,
} from "../app-state";
import {
isDetailPanelRouteInternal,
@@ -230,7 +229,7 @@ type MenuProps = {
const Menu = (props: MenuProps) => {
let { className, menuPage, baseRoute = "/" } = props;
- const { inputFocus } = useSearchState();
+ const inputFocus = useAppState((s) => s.core.inputFocus);
const runAction = useAppActions();
const navigateHome = useHashNavigate(baseRoute);
diff --git a/src/pages/map/map-interface/performance/core.ts b/src/pages/map/map-interface/performance/core.ts
index 097cfb59..7b8af8b3 100644
--- a/src/pages/map/map-interface/performance/core.ts
+++ b/src/pages/map/map-interface/performance/core.ts
@@ -111,7 +111,6 @@ export function usePerformanceWatcher(
const observerRef = useRef();
const callback = useCallback(
(data: PerformanceObserverEntryList) => {
- console.log("Adding performance data");
dispatch({
type: "add-performance-data",
data: data.getEntries().map(buildPerformanceData),
@@ -122,7 +121,6 @@ export function usePerformanceWatcher(
);
useEffect(() => {
- console.log("Creating performance observer");
const observer = new PerformanceObserver(callback);
observer.observe({ entryTypes: ["resource"] });
observerRef.current = observer;
diff --git a/src/pages/map/sources/+config.h.ts b/src/pages/map/sources/+config.ts
similarity index 100%
rename from src/pages/map/sources/+config.h.ts
rename to src/pages/map/sources/+config.ts
diff --git a/src/pages/maps/+onBeforeRender.ts b/src/pages/maps/+onBeforeRender.ts
index dee537ad..7d6d3ec1 100644
--- a/src/pages/maps/+onBeforeRender.ts
+++ b/src/pages/maps/+onBeforeRender.ts
@@ -6,7 +6,7 @@ export async function onBeforeRender(pageContext) {
const res = await postgrest
.from("sources_metadata")
.select("*")
- .order("source_id", { ascending: true })
+ .order("source_id", { ascending: true });
const pageProps = { sources: res.data };
return {
diff --git a/src/pages/maps/@id/+Page.ts b/src/pages/maps/@id/+Page.ts
index 8a64dfe9..d969b594 100644
--- a/src/pages/maps/@id/+Page.ts
+++ b/src/pages/maps/@id/+Page.ts
@@ -349,13 +349,20 @@ function MapLegendPanel(params) {
h("div.flex.row", [
h("h3", "Legend"),
h("div.spacer"),
- h(
- DevLink,
- // Not sure why we have to fully construct the URL here, vs. constructing a relative route.
- // Probably lack of a trailing slash in the main page?
- { href: `/maps/${params.source_id}/legend` },
- "Legend table"
- ),
+ h("div.dev-links", [
+ h(
+ DevLink,
+ // Not sure why we have to fully construct the URL here, vs. constructing a relative route.
+ // Probably lack of a trailing slash in the main page?
+ { href: `/maps/${params.source_id}/legend` },
+ "Legend table"
+ ),
+ h(
+ DevLink,
+ { href: `/maps/${params.source_id}/correlation` },
+ "Correlation of units"
+ ),
+ ]),
]),
h(MapLegendData, params),
])
diff --git a/src/pages/maps/ingestion/@id/@editMode/+config.h.ts b/src/pages/maps/@id/+config.ts
similarity index 100%
rename from src/pages/maps/ingestion/@id/@editMode/+config.h.ts
rename to src/pages/maps/@id/+config.ts
diff --git a/src/pages/maps/@id/correlation/+Page.ts b/src/pages/maps/@id/correlation/+Page.ts
new file mode 100644
index 00000000..6bbe96bc
--- /dev/null
+++ b/src/pages/maps/@id/correlation/+Page.ts
@@ -0,0 +1,430 @@
+import {
+ Popover,
+ Spinner,
+ SegmentedControl,
+ FormGroup,
+ Button,
+} from "@blueprintjs/core";
+import { FullscreenPage } from "~/layouts";
+import hyper from "@macrostrat/hyper";
+import styles from "./main.module.sass";
+import { PageBreadcrumbs } from "~/renderer";
+import { useLegendData, MapInfo } from "../utils";
+import { useElementSize, useInDarkMode } from "@macrostrat/ui-components";
+import { useMemo, useRef } from "react";
+import { Group } from "@visx/group";
+import { scaleBand, scaleLinear, scaleLog } from "@visx/scale";
+import { AxisLeft } from "@visx/axis";
+import { Timescale, TimescaleOrientation } from "@macrostrat/timescale";
+import { ForeignObject } from "@macrostrat/column-components";
+import { useState, useEffect } from "react";
+import { Bar } from "@visx/shape";
+import { CorrelationItem, AgeRange, AgeDisplayMode } from "./types";
+import {
+ buildCorrelationChartData,
+ mergeAgeRanges,
+ getBoundingAgeRange,
+ getBestAgeRange,
+} from "./prepare-data";
+import { LegendItemInformation } from "./legend-item";
+
+const h = hyper.styled(styles);
+
+export function Page({ map }) {
+ const ref = useRef(null);
+ const size = useElementSize(ref);
+ const legendData = useLegendData(map);
+
+ const [ageMode, setAgeMode] = useState(AgeDisplayMode.MapLegend);
+ const [ageScale, setAgeScale] = useState("linear");
+
+ const correlationChartData = useMemo(() => {
+ return buildCorrelationChartData(legendData, ageMode);
+ }, [legendData, ageMode]);
+
+ const [selectedItem, setSelectedLegendID] =
+ useSelectedLegendID(correlationChartData);
+
+ const settings = h("div.settings", [
+ h("h3", "Settings"),
+ //h(AgeScaleSelector, { scale: ageScale, setScale: setAgeScale }),
+ h(AgeDisplayModeSelector, {
+ displayMode: ageMode,
+ setDisplayMode: setAgeMode,
+ }),
+ ]);
+
+ return h(FullscreenPage, [
+ h("div.page-inner", [
+ h("div.flex.row", [
+ h(PageBreadcrumbs),
+ h("div.spacer"),
+ h(
+ Popover,
+ {
+ content: settings,
+ usePortal: true,
+ rootBoundary: ref.current,
+ onOpening() {
+ setSelectedLegendID(null);
+ },
+ },
+ h(Button, { icon: "cog", minimal: true })
+ ),
+ ]),
+ h("div.vis-container", { ref }, [
+ h.if(legendData != null)(CorrelationChart, {
+ map,
+ ...size,
+ data: correlationChartData,
+ selectedItem,
+ setSelectedLegendID,
+ ageMode,
+ ageScale,
+ }),
+ ]),
+ ]),
+ ]);
+}
+
+const verticalMargin = 60;
+
+export type BarsProps = {
+ width: number;
+ height: number;
+ map: MapInfo;
+ data: CorrelationItem[];
+ ageMode: AgeDisplayMode;
+ ageScale: AgeScale;
+ selectedItem: CorrelationItem | null;
+ setSelectedLegendID: (a: number) => void;
+};
+
+type AgeScale = "linear" | "log";
+
+function CorrelationChart({
+ width,
+ height,
+ data,
+ ageMode = AgeDisplayMode.MapLegend,
+ ageScale = "linear",
+ selectedItem,
+ setSelectedLegendID,
+}: BarsProps) {
+ // bounds
+ const xMax = width;
+ const yMax = height - verticalMargin;
+
+ const domain = useMemo(
+ () => mergeAgeRanges(data.map((d) => getBoundingAgeRange(d, ageMode))),
+ [data, ageMode]
+ );
+
+ const xMin = 100;
+
+ // scales, memoize for performance
+ const xScale = useMemo(
+ () =>
+ scaleBand({
+ range: [xMin, xMax],
+ round: false,
+ domain: data.map((d) => `${d.id}`),
+ padding: 0.2,
+ }),
+ [xMax, data]
+ );
+ const yScale = useMemo(() => {
+ if (ageScale === "log") {
+ return scaleLog({
+ range: [yMax, 0],
+ round: true,
+ domain: domain,
+ nice: true,
+ base: 10,
+ });
+ }
+
+ return scaleLinear({
+ range: [yMax, 0],
+ round: false,
+ domain,
+ });
+ }, [domain, yMax, ageScale]);
+
+ if (data == null) {
+ return h(Spinner);
+ }
+
+ if (width < 10) return null;
+
+ return h("div.vis-frame", [
+ h(
+ "svg.vis-area",
+ {
+ width,
+ height,
+ onClick() {
+ setSelectedLegendID(null);
+ },
+ },
+ [
+ h(Group, { top: verticalMargin / 2, key: "main-plot" }, [
+ h(AgeAxis, {
+ scale: yScale,
+ width: 40,
+ }),
+ h(ForeignObject, { width: 60, height, x: 40 }, [
+ h(Timescale, {
+ orientation: TimescaleOrientation.VERTICAL,
+ length: yMax,
+ // Bug in timescale component, the age range appears to be changed
+ // if we pass it in statically.
+ ageRange: domain,
+ absoluteAgeScale: true,
+ levels: [2, 3],
+ }),
+ ]),
+ h(
+ Group,
+ data.map((d, i) => {
+ const ageRange = getBestAgeRange(d, ageMode);
+
+ const yMin = yScale(ageRange[1]);
+ const yMax = yScale(ageRange[0]);
+
+ const barWidth = xScale.bandwidth();
+ const barHeight = yMax - yMin;
+ const barX = xScale(`${d.id}`);
+ const barY = yMin;
+ const main = h(Bar, {
+ key: d.id,
+ x: barX,
+ y: barY,
+ width: barWidth,
+ height: barHeight,
+ fill: d.color,
+ onClick(event) {
+ setSelectedLegendID(d.id);
+ event.stopPropagation();
+ },
+ });
+ if (
+ ageMode !== AgeDisplayMode.Both ||
+ d.macrostratAgeRange == null
+ ) {
+ return main;
+ }
+
+ // We need to render the un-corrected age range as well
+ const yMin1 = yScale(d.ageRange[1]);
+ const yMax1 = yScale(d.ageRange[0]);
+ return h(Group, { key: d.id }, [
+ h(Bar, {
+ x: barX,
+ y: yMin1,
+ width: barWidth,
+ height: yMax1 - yMin1,
+ fill: d.color,
+ opacity: 0.3,
+ }),
+ main,
+ ]);
+ })
+ ),
+ h(
+ ForeignObject,
+ {
+ width,
+ height: height - verticalMargin,
+ className: "popover-container",
+ },
+ [
+ h(SelectedLegendItemPopover, {
+ item: selectedItem,
+ ageMode,
+ xScale,
+ yScale,
+ }),
+ ]
+ ),
+ ]),
+ ]
+ ),
+ ]);
+}
+
+function SelectedLegendItemPopover({
+ item,
+ xScale,
+ ageMode,
+ yScale,
+}: {
+ item: CorrelationItem | null;
+ xScale: any;
+ yScale: any;
+ ageMode: AgeDisplayMode;
+}) {
+ if (item == null) {
+ return null;
+ }
+
+ const range = getBoundingAgeRange(item, ageMode);
+
+ const { details, id } = item;
+
+ const content = h(LegendItemInformation, { legendItem: details });
+
+ const xv = xScale(`${id}`);
+ const top = yScale(range[1]);
+ const bottom = yScale(range[0]);
+
+ return h(
+ "div.popover-main",
+ {
+ style: {
+ top: top,
+ left: xv,
+ width: xScale.bandwidth(),
+ height: bottom - top,
+ },
+ },
+ h(
+ Popover,
+ { content, isOpen: true, usePortal: true },
+ h("span.popover-target")
+ )
+ );
+}
+
+function AgeAxis({ scale, width }) {
+ const darkMode = useInDarkMode();
+
+ const axisColor = darkMode ? "#ccc" : "#222";
+
+ return h(AxisLeft, {
+ scale,
+ left: width,
+ stroke: axisColor,
+ tickStroke: axisColor,
+ labelProps: {
+ fill: axisColor,
+ },
+ tickLabelProps: () => {
+ return {
+ fill: axisColor,
+ textAnchor: "end",
+ verticalAnchor: "middle",
+ dx: "-0.25em",
+ fontSize: 12,
+ };
+ },
+ });
+}
+
+function useSelectedLegendID(
+ legendItems: CorrelationItem[]
+): [CorrelationItem | null, (a: number) => void] {
+ /** Hook to manage the selected legend item, including handling of arrow-key navigation */
+
+ const [selectedLegendID, setSelectedLegendID] = useState(null);
+
+ // Add arrow key navigation and escape key to close popover
+ const handleKeyDown = (e) => {
+ if (selectedLegendID == null) {
+ return;
+ }
+ const idx = legendItems.findIndex((d) => d.id === selectedLegendID);
+ if (idx == null) {
+ return;
+ }
+ if (e.key === "ArrowDown" || e.key === "ArrowRight") {
+ setSelectedLegendID(legendItems[idx + 1].id);
+ } else if (e.key === "ArrowUp" || e.key === "ArrowLeft") {
+ setSelectedLegendID(legendItems[idx - 1].id);
+ } else if (e.key === "Escape") {
+ setSelectedLegendID(null);
+ }
+ };
+
+ useEffect(() => {
+ // Get the focused legend_id from the query string if set
+ const urlParams = new URLSearchParams(window.location.search);
+ const legendID = urlParams.get("legend_id");
+ if (legendID != null) {
+ setSelectedLegendID(parseInt(legendID));
+ }
+ }, []);
+
+ // Add event listener
+ useEffect(() => {
+ const urlParams = new URLSearchParams(window.location.search);
+ if (selectedLegendID == null) {
+ urlParams.delete("legend_id");
+ } else {
+ urlParams.set("legend_id", `${selectedLegendID}`);
+ }
+ let qString = urlParams.toString();
+ if (qString.length > 0) {
+ qString = "?" + qString;
+ }
+
+ const newUrl = `${window.location.pathname}${qString}`;
+ window.history.replaceState(null, "", newUrl);
+
+ // Set query string to selected legend item
+ if (selectedLegendID == null) {
+ return;
+ }
+
+ window.addEventListener("keydown", handleKeyDown);
+ return () => window.removeEventListener("keydown", handleKeyDown);
+ }, [selectedLegendID]);
+
+ const selectedItem = useMemo(
+ () => legendItems.find((d) => d.id === selectedLegendID),
+ [legendItems, selectedLegendID]
+ );
+
+ return [selectedItem, setSelectedLegendID];
+}
+
+function AgeDisplayModeSelector({
+ displayMode,
+ setDisplayMode,
+}: {
+ displayMode: AgeDisplayMode;
+ setDisplayMode: (a: AgeDisplayMode) => void;
+}) {
+ return h(FormGroup, { label: "Age source" }, [
+ h(SegmentedControl, {
+ options: [
+ { label: "Map legend", value: AgeDisplayMode.MapLegend },
+ { label: "Macrostrat", value: AgeDisplayMode.Macrostrat },
+ { label: "Both", value: AgeDisplayMode.Both },
+ ],
+ small: true,
+ value: displayMode,
+ onValueChange: setDisplayMode,
+ }),
+ ]);
+}
+
+function AgeScaleSelector({
+ scale,
+ setScale,
+}: {
+ scale: AgeScale;
+ setScale: (a: AgeScale) => void;
+}) {
+ return h(FormGroup, { label: "Age scale" }, [
+ h(SegmentedControl, {
+ options: [
+ { label: "Linear", value: "linear" },
+ { label: "Log", value: "log" },
+ ],
+ small: true,
+ value: scale,
+ onValueChange: setScale,
+ }),
+ ]);
+}
diff --git a/src/pages/maps/ingestion/@id/meta/+config.h.ts b/src/pages/maps/@id/correlation/+config.ts
similarity index 100%
rename from src/pages/maps/ingestion/@id/meta/+config.h.ts
rename to src/pages/maps/@id/correlation/+config.ts
diff --git a/src/pages/maps/@id/correlation/+onBeforeRender.ts b/src/pages/maps/@id/correlation/+onBeforeRender.ts
new file mode 100644
index 00000000..1d1295f7
--- /dev/null
+++ b/src/pages/maps/@id/correlation/+onBeforeRender.ts
@@ -0,0 +1,27 @@
+import { postgrestPrefix } from "@macrostrat-web/settings";
+import { PageContextServer } from "vike/types";
+import { PostgrestClient } from "@supabase/postgrest-js";
+
+const client = new PostgrestClient(postgrestPrefix);
+
+export async function onBeforeRender(pageContext: PageContextServer) {
+ const { id } = pageContext.routeParams;
+ const res: any = await client
+ .from("sources")
+ .select("source_id,slug,name")
+ .eq("source_id", id);
+
+ const map = res?.data?.[0];
+
+ return {
+ pageContext: {
+ pageProps: {
+ map,
+ },
+ documentProps: {
+ // The page's
+ title: map.name + "– Legend",
+ },
+ },
+ };
+}
diff --git a/src/pages/maps/@id/correlation/legend-item.ts b/src/pages/maps/@id/correlation/legend-item.ts
new file mode 100644
index 00000000..35103f02
--- /dev/null
+++ b/src/pages/maps/@id/correlation/legend-item.ts
@@ -0,0 +1,147 @@
+import hyper from "@macrostrat/hyper";
+import { LegendItem, IntervalShort } from "./types";
+import { LithologyTag } from "~/components";
+import styles from "./main.module.sass";
+import classNames from "classnames";
+import { mergeAgeRanges } from "./prepare-data";
+
+const h = hyper.styled(styles);
+
+export function LegendItemInformation({
+ legendItem,
+}: {
+ legendItem: LegendItem;
+}) {
+ return h("div.legend-panel-outer", [
+ h("div.legend-info-panel", [
+ h("header", [h("h3", legendItem.name), h("code", legendItem.legend_id)]),
+ h("div.data", [
+ h(DataField, {
+ label: "Stratigraphic names",
+ value: legendItem.strat_name,
+ }),
+ h(DataField, { label: "Age", value: legendItem.age }),
+ h(DataField, {
+ label: "Description",
+ value: legendItem.descrip,
+ inline: false,
+ }),
+ h(DataField, { label: "Comments", value: legendItem.comments }),
+ h(DataField, { label: "Lithology", value: legendItem.lith }),
+ h(LithologyList, { lithologies: legendItem.liths }),
+ h(IntervalField, {
+ intervals: [legendItem.b_interval, legendItem.t_interval],
+ }),
+ h(DataField, {
+ label: "Best age",
+ value: `${legendItem.best_age_bottom} - ${legendItem.best_age_top}`,
+ unit: "Ma",
+ }),
+ h(DataField, { label: "Unit IDs", value: legendItem.unit_ids }),
+ h(DataField, { label: "Concept IDs", value: legendItem.concept_ids }),
+ ]),
+ ]),
+ ]);
+}
+
+function DataField({
+ label,
+ value,
+ inline = true,
+ showIfEmpty = false,
+ className,
+ children,
+ unit,
+}: {
+ label?: string;
+ value?: any;
+ inline?: boolean;
+ showIfEmpty?: boolean;
+ className?: string;
+ children?: any;
+ unit?: string;
+}) {
+ if (!showIfEmpty && (value == null || value === "") && children == null) {
+ return null;
+ }
+
+ return h("div.data-field", { className: classNames(className, { inline }) }, [
+ h("div.label", label),
+ h("div.data-container", [
+ h.if(value != null)(Value, { value, unit }),
+ children,
+ ]),
+ ]);
+}
+
+function IntervalField({ intervals }: { intervals: IntervalShort[] }) {
+ const unique = uniqueIntervals(...intervals);
+ const ageRange = mergeAgeRanges(unique.map((d) => [d.b_age, d.t_age]));
+ return h([
+ h(
+ DataField,
+ {
+ label: "Intervals",
+ },
+ [
+ unique.map((interval) => {
+ return h(Interval, {
+ key: interval.id,
+ interval,
+ showAgeRange: true,
+ });
+ }),
+ h(Value, { unit: "Ma", value: `${ageRange[0]} - ${ageRange[1]}` }),
+ ]
+ ),
+ ]);
+}
+
+function Value({
+ value,
+ unit,
+ children,
+}: {
+ value?: any;
+ unit?: string;
+ children?: any;
+}) {
+ const val = value ?? children;
+ return h("span.value-container", [
+ h("span.value", val),
+ h.if(unit != null)([" ", h("span.unit", unit)]),
+ ]);
+}
+
+function Interval({
+ interval,
+ showAgeRange = false,
+}: {
+ interval: IntervalShort;
+ showAgeRange?: boolean;
+}) {
+ return h(LithologyTag, {
+ data: interval,
+ });
+}
+
+function uniqueIntervals(
+ ...intervals: (IntervalShort | undefined)[]
+): IntervalShort[] {
+ const unique = new Map();
+ for (const interval of intervals) {
+ if (interval == null) continue;
+ unique.set(interval.id, interval);
+ }
+ return Array.from(unique.values()).sort((a, b) => b.b_age - a.b_age);
+}
+
+function LithologyList({ lithologies }) {
+ return h(
+ DataField,
+ { label: "Lithologies" },
+ lithologies.map((lith) => {
+ return h(LithologyTag, { data: lith });
+ })
+ );
+}
diff --git a/src/pages/maps/@id/correlation/main.module.sass b/src/pages/maps/@id/correlation/main.module.sass
new file mode 100644
index 00000000..1b576064
--- /dev/null
+++ b/src/pages/maps/@id/correlation/main.module.sass
@@ -0,0 +1,78 @@
+div.correlation-chart
+ position: relative
+
+.bar
+ position: absolute
+
+// Ideally this wouldn't be necessary
+.page-inner
+ position: relative
+ margin: 2em auto 3em
+ display: flex
+ flex-direction: column
+ height: 100%
+
+
+.vis-container
+ flex: 1
+ overflow: hidden
+
+.popover-container
+ pointer-events: none
+ position: relative
+
+.popover-main
+ position: absolute
+ outline: 2px solid #f22
+
+ :global(.bp5-popover-target)
+ height: 100%
+ width: 100%
+ display: block
+ line-height: 0
+
+.legend-panel-outer
+ width: 25em
+ max-height: 60vh
+ overflow-y: scroll
+
+.legend-info-panel
+ padding: 1em
+ header
+ display: flex
+ justify-content: space-between
+ code
+ font-size: 0.9em
+ color: var(--secondary-color)
+ align-items: baseline
+
+ h3
+ margin: 0 0 0.5em
+ font-size: 1.1em
+
+.data-field
+ margin: 0.2em 0 0.4em
+ &.inline
+ display: flex
+ flex-direction: row
+ align-items: baseline
+ gap: 1em
+ justify-content: space-between
+ .data-container
+ text-align: right
+ .label
+ font-size: 0.9em
+ font-weight: bold
+ display: block
+ color: var(--secondary-color)
+ .value-container
+ font-size: 0.9em
+ display: inline-block
+ break-inside: avoid
+ .unit
+ color: var(--secondary-color)
+
+.settings
+ padding: 1em
+ >h3:first-child
+ margin-top: 0
\ No newline at end of file
diff --git a/src/pages/maps/@id/correlation/prepare-data.ts b/src/pages/maps/@id/correlation/prepare-data.ts
new file mode 100644
index 00000000..8f04b919
--- /dev/null
+++ b/src/pages/maps/@id/correlation/prepare-data.ts
@@ -0,0 +1,155 @@
+import {
+ LegendItem,
+ IntervalShort,
+ CorrelationItem,
+ AgeRange,
+ AgeDisplayMode,
+} from "./types";
+
+export function buildCorrelationChartData(
+ legendData: LegendItem[],
+ ageMode: AgeDisplayMode
+): CorrelationItem[] {
+ /** Build the data for a correlation chart */
+ if (legendData == null) {
+ return [];
+ }
+
+ let data1 = legendData
+ .map((d, i) => {
+ let ageRanges: AgeRange[] = [];
+
+ if (d.b_interval != null) {
+ ageRanges.push(getAgeRangeForInterval(d.b_interval));
+ }
+ if (d.t_interval != null) {
+ ageRanges.push(getAgeRangeForInterval(d.t_interval));
+ }
+
+ if (ageRanges.length === 0) {
+ return null;
+ }
+
+ let macrostratAgeRange: AgeRange | null = null;
+ if (d.best_age_bottom != null && d.best_age_top != null) {
+ macrostratAgeRange = [d.best_age_bottom, d.best_age_top];
+ }
+
+ return {
+ details: d,
+ id: d.legend_id,
+ ageRange: mergeAgeRanges(ageRanges),
+ macrostratAgeRange,
+ frequency: i,
+ color: d.color,
+ };
+ })
+ .filter((d) => d != null) as CorrelationItem[];
+
+ return data1.sort((a, b) =>
+ intervalComparison(getBestAgeRange(a, ageMode), getBestAgeRange(b, ageMode))
+ );
+}
+
+function getAgeRangeForInterval(interval: IntervalShort): AgeRange | null {
+ /** Get the age range for an interval, building up an index as we go */
+ return [interval.b_age, interval.t_age];
+}
+
+enum MergeMode {
+ Inner,
+ Outer,
+}
+
+export function mergeAgeRanges(
+ ranges: AgeRange[],
+ mergeMode: MergeMode = MergeMode.Outer
+): AgeRange {
+ /** Merge a set of age ranges to get the inner or outer bounds */
+ let min = Infinity;
+ let max = 0;
+ // Negative ages are not handled
+
+ if (mergeMode === MergeMode.Inner) {
+ min = Math.min(...ranges.map((d) => d[0]));
+ max = Math.max(...ranges.map((d) => d[1]));
+ } else {
+ min = Math.max(...ranges.map((d) => d[0]));
+ max = Math.min(...ranges.map((d) => d[1]));
+ }
+
+ // Age ranges should start with the oldest (largest) age
+ if (min < max) {
+ return [max, min];
+ }
+ return [min, max];
+}
+
+function midpointAge(range: [number, number]) {
+ return (range[0] + range[1]) / 2;
+}
+
+enum AgeRangeRelationship {
+ Disjoint,
+ Contains,
+ Contained,
+ Identical,
+}
+
+function convertToForwardOrdinal(a: AgeRange): AgeRange {
+ /** Age ranges are naturally expressed as [b_age, t_age] where
+ * b_age is the older age and t_age is the younger age. This function
+ * converts the age range to [min, max] where min is the oldest age,
+ * expressed as negative numbers. This assists with intuitive ordering
+ * in certain cases.
+ */
+ return [-a[0], -a[1]];
+}
+
+function compareAgeRanges(a: AgeRange, b: AgeRange): AgeRangeRelationship {
+ const a1 = convertToForwardOrdinal(a);
+ const b1 = convertToForwardOrdinal(b);
+ /** Compare two age ranges */
+ if (a1[0] > b1[1] || a1[1] < b1[0]) {
+ return AgeRangeRelationship.Disjoint;
+ }
+ if (a1[0] === b1[0] && a1[1] === b1[1]) {
+ return AgeRangeRelationship.Identical;
+ }
+ if (a1[0] <= b1[0] && a1[1] >= b1[1]) {
+ return AgeRangeRelationship.Contains;
+ }
+ if (a1[0] >= b1[0] && a1[1] <= b1[1]) {
+ return AgeRangeRelationship.Contained;
+ }
+}
+
+function intervalComparison(a: AgeRange, b: AgeRange) {
+ // If age range fully overlaps with another, put the wider one first
+ return midpointAge(b) - midpointAge(a);
+}
+
+export function getBoundingAgeRange(
+ item: CorrelationItem,
+ ageMode: AgeDisplayMode
+) {
+ const bestAge = getBestAgeRange(item, ageMode);
+ if (ageMode == AgeDisplayMode.Macrostrat) {
+ return bestAge;
+ }
+ if (bestAge == item.ageRange) {
+ return item.ageRange;
+ } else {
+ return mergeAgeRanges([item.ageRange, bestAge]);
+ }
+}
+
+export function getBestAgeRange(
+ item: CorrelationItem,
+ ageMode: AgeDisplayMode
+) {
+ if (ageMode == AgeDisplayMode.MapLegend || item.macrostratAgeRange == null) {
+ return item.ageRange;
+ }
+ return item.macrostratAgeRange;
+}
diff --git a/src/pages/maps/@id/correlation/types.ts b/src/pages/maps/@id/correlation/types.ts
new file mode 100644
index 00000000..71bb25aa
--- /dev/null
+++ b/src/pages/maps/@id/correlation/types.ts
@@ -0,0 +1,42 @@
+export type AgeRange = [number, number];
+
+export type CorrelationItem = {
+ color: string;
+ ageRange: AgeRange;
+ macrostratAgeRange: AgeRange | null;
+ details: LegendItem;
+ id: number;
+};
+
+export type IntervalShort = {
+ id: number;
+ b_age: number;
+ t_age: number;
+ name: string;
+ color: string;
+ rank: number;
+};
+
+export interface LegendItem {
+ legend_id: number;
+ name: string;
+ strat_name: string;
+ age: string;
+ lith: string;
+ descrip: string;
+ comments: string;
+ liths: string;
+ b_interval: IntervalShort;
+ t_interval: IntervalShort;
+ best_age_bottom?: number;
+ best_age_top?: number;
+ unit_ids: string;
+ concept_ids: string;
+ color: string;
+}
+
+export enum AgeDisplayMode {
+ MapLegend,
+ Macrostrat,
+ Both,
+}
diff --git a/src/pages/maps/@id/legend/+Page.ts b/src/pages/maps/@id/legend/+Page.ts
index 78554dd2..d5eb366b 100644
--- a/src/pages/maps/@id/legend/+Page.ts
+++ b/src/pages/maps/@id/legend/+Page.ts
@@ -1,10 +1,8 @@
import { HotkeysProvider, Spinner, Tag } from "@blueprintjs/core";
import DataSheet from "@macrostrat/data-sheet2";
-import { useState } from "react";
import { FullscreenPage } from "~/layouts";
import hyper from "@macrostrat/hyper";
import styles from "./main.module.sass";
-import { useAsyncEffect } from "@macrostrat/ui-components";
import { ColorCell } from "@macrostrat/data-sheet2";
import { PageBreadcrumbs } from "~/renderer";
import {
@@ -13,26 +11,12 @@ import {
lithologyRenderer,
ExpandedLithologies,
} from "~/components/legend-table";
-
-import { postgrest } from "~/providers";
+import { useLegendData } from "../utils";
const h = hyper.styled(styles);
export function Page({ map }) {
- const slug = map.slug;
-
- const [data, setData] = useState(null);
-
- useAsyncEffect(async () => {
- const res = await postgrest
- .from("legend")
- .select(
- "legend_id, name, strat_name, age, lith, descrip, comments, liths, b_interval, t_interval, best_age_bottom, best_age_top, unit_ids, concept_ids"
- )
- .eq("source_id", map.source_id)
- .order("legend_id", { ascending: true });
- setData(res.data);
- }, [map.source_id]);
+ const data = useLegendData(map);
if (data == null) {
return h(Spinner);
diff --git a/src/pages/maps/legend/+config.h.ts b/src/pages/maps/@id/legend/+config.ts
similarity index 100%
rename from src/pages/maps/legend/+config.h.ts
rename to src/pages/maps/@id/legend/+config.ts
diff --git a/src/pages/maps/@id/legend/+onBeforeRender.ts b/src/pages/maps/@id/legend/+onBeforeRender.ts
index 9eae1d5f..92306474 100644
--- a/src/pages/maps/@id/legend/+onBeforeRender.ts
+++ b/src/pages/maps/@id/legend/+onBeforeRender.ts
@@ -19,10 +19,7 @@ export async function onBeforeRender(pageContext: PageContextServer) {
pageProps: {
map,
},
- documentProps: {
- // The page's
- title: map.name + "– Legend",
- },
+ title: map.name + "– Legend",
},
};
}
diff --git a/src/pages/maps/@id/main.module.sass b/src/pages/maps/@id/main.module.sass
index 47fb7a50..80c989b0 100644
--- a/src/pages/maps/@id/main.module.sass
+++ b/src/pages/maps/@id/main.module.sass
@@ -31,4 +31,11 @@ body
width: 1em
height: 1em
display: inline-block
- margin-right: 0.5em
\ No newline at end of file
+ margin-right: 0.5em
+
+.dev-links
+ display: block
+ text-align: right
+ &>*
+ display: block
+ margin: 1em
\ No newline at end of file
diff --git a/src/pages/maps/@id/utils.ts b/src/pages/maps/@id/utils.ts
new file mode 100644
index 00000000..28f37ed5
--- /dev/null
+++ b/src/pages/maps/@id/utils.ts
@@ -0,0 +1,24 @@
+import { useState } from "react";
+import { useAsyncEffect } from "@macrostrat/ui-components";
+import { postgrest } from "~/providers";
+
+export type MapInfo = {
+ source_id: number;
+ slug?: string;
+};
+
+export function useLegendData(map: MapInfo): any[] | null {
+ /** Hook to return legend data from PostgREST */
+ const [data, setData] = useState(null);
+ useAsyncEffect(async () => {
+ const res = await postgrest
+ .from("legend")
+ .select(
+ "legend_id, name, strat_name, age, lith, descrip, comments, liths, b_interval, t_interval, best_age_bottom, best_age_top, unit_ids, concept_ids, color"
+ )
+ .eq("source_id", map.source_id)
+ .order("legend_id", { ascending: true });
+ setData(res.data);
+ }, [map.source_id]);
+ return data;
+}
diff --git a/src/pages/maps/ingestion/@id/+config.ts b/src/pages/maps/ingestion/@id/+config.ts
new file mode 100644
index 00000000..ac56ce59
--- /dev/null
+++ b/src/pages/maps/ingestion/@id/+config.ts
@@ -0,0 +1,10 @@
+export default {
+ meta: {
+ Page: {
+ env: {
+ client: true,
+ server: false,
+ },
+ },
+ },
+};
diff --git a/src/pages/maps/ingestion/@id/@editMode/+config.ts b/src/pages/maps/ingestion/@id/@editMode/+config.ts
new file mode 100644
index 00000000..ac56ce59
--- /dev/null
+++ b/src/pages/maps/ingestion/@id/@editMode/+config.ts
@@ -0,0 +1,10 @@
+export default {
+ meta: {
+ Page: {
+ env: {
+ client: true,
+ server: false,
+ },
+ },
+ },
+};
diff --git a/src/pages/maps/ingestion/@id/meta/+config.ts b/src/pages/maps/ingestion/@id/meta/+config.ts
new file mode 100644
index 00000000..ac56ce59
--- /dev/null
+++ b/src/pages/maps/ingestion/@id/meta/+config.ts
@@ -0,0 +1,10 @@
+export default {
+ meta: {
+ Page: {
+ env: {
+ client: true,
+ server: false,
+ },
+ },
+ },
+};
diff --git a/src/pages/maps/ingestion/add/+guard.js b/src/pages/maps/ingestion/add/+guard.ts
similarity index 81%
rename from src/pages/maps/ingestion/add/+guard.js
rename to src/pages/maps/ingestion/add/+guard.ts
index 323db744..226af035 100644
--- a/src/pages/maps/ingestion/add/+guard.js
+++ b/src/pages/maps/ingestion/add/+guard.ts
@@ -1,4 +1,5 @@
import { redirect, render } from "vike/abort";
+import { ingestPrefix } from "@macrostrat-web/settings";
export const guard = (pageContext) => {
const { user } = pageContext;
@@ -7,9 +8,7 @@ export const guard = (pageContext) => {
// Render the login page while preserving the URL. (This is novel technique
// which we explain down below.)
throw redirect(
- `${
- import.meta.env.VITE_MACROSTRAT_INGEST_API
- }/security/login?return_url=${pageContext.url}`
+ ingestPrefix + `/security/login?return_url=${pageContext.url}`
);
/* The more traditional way, redirect the user:
throw redirect('/login')
diff --git a/src/pages/maps/legend/+config.ts b/src/pages/maps/legend/+config.ts
new file mode 100644
index 00000000..ac56ce59
--- /dev/null
+++ b/src/pages/maps/legend/+config.ts
@@ -0,0 +1,10 @@
+export default {
+ meta: {
+ Page: {
+ env: {
+ client: true,
+ server: false,
+ },
+ },
+ },
+};
diff --git a/src/pages/projects/@project/columns/@column/+config.h.ts b/src/pages/projects/@project/columns/@column/+config.ts
similarity index 100%
rename from src/pages/projects/@project/columns/@column/+config.h.ts
rename to src/pages/projects/@project/columns/@column/+config.ts
diff --git a/src/pages/projects/@project/columns/@column/+onBeforeRender.ts b/src/pages/projects/@project/columns/@column/+onBeforeRender.ts
index 7cd05052..1d19878b 100644
--- a/src/pages/projects/@project/columns/@column/+onBeforeRender.ts
+++ b/src/pages/projects/@project/columns/@column/+onBeforeRender.ts
@@ -45,6 +45,10 @@ export async function onBeforeRender(pageContext) {
return {
pageContext: {
+ exports: {
+ ...pageContext.exports,
+ title: columnInfo.col_name,
+ },
pageProps: {
columnInfo,
linkPrefix,
diff --git a/src/pages/sift/+config.h.ts b/src/pages/sift/+config.ts
similarity index 94%
rename from src/pages/sift/+config.h.ts
rename to src/pages/sift/+config.ts
index cb2beb42..0acd0dec 100644
--- a/src/pages/sift/+config.h.ts
+++ b/src/pages/sift/+config.ts
@@ -1,7 +1,6 @@
export default {
clientRouting: false,
supportsDarkMode: false,
- isolateStyles: true,
meta: {
Page: {
/* Sift must be rendered as a single-page app, because that is its design.
diff --git a/src/renderer/+onRenderClient.ts b/src/renderer/+onRenderClient.ts
deleted file mode 100644
index 296f45fc..00000000
--- a/src/renderer/+onRenderClient.ts
+++ /dev/null
@@ -1,58 +0,0 @@
-export { render as onRenderClient };
-
-import { FocusStyleManager } from "@blueprintjs/core";
-import h from "@macrostrat/hyper";
-import ReactDOM from "react-dom/client";
-import { PageShell } from "./page-shell";
-import type { PageContextClient } from "./types";
-
-let root: ReactDOM.Root;
-
-// This render() hook only supports SSR, see https://vike.dev/render-modes for how to modify render() to support SPA
-async function render(pageContext: PageContextClient) {
- const { Page, pageProps } = pageContext;
- if (!Page)
- throw new Error(
- "Client-side render() hook expects pageContext.Page to be defined"
- );
-
- FocusStyleManager.onlyShowFocusOnTabs();
-
- const page = h(PageShell, { pageContext }, h(Page, pageProps));
-
- const container = document.getElementById("app-container")!;
-
- // TODO: we might be able to switch to vike-react's internal renderer
- if (container.innerHTML !== "" && pageContext.isHydration) {
- // First render (hydration)
- root = ReactDOM.hydrateRoot(container, page);
- } else {
- if (!root) {
- // First render (not hydration)
- root = ReactDOM.createRoot(container);
- } else {
- // Client-side navigation
- //const title = getHeadSetting("title", pageContext) || "Macrostrat";
- //const lang = getHeadSetting("lang", pageContext) || "en";
- // const favicon = getHeadSetting('favicon', pageContext)
- // // We skip if the value is undefined because we shouldn't remove values set in HTML (by the Head setting).
- // // - This also means that previous values will leak: upon client-side navigation, the title set by the previous page won't be removed if the next page doesn't override it. But that's okay because usually pages always have a favicon and title, which means that previous values are always overriden. Also, as a workaround, the user can set the value to `null` to ensure that previous values are overriden.
- //if (title !== undefined) document.title = title;
- //if (lang !== undefined) document.documentElement.lang = lang;
- //if (favicon !== undefined) setFavicon(favicon)
- }
-
- root.render(page);
- }
-}
-
-/* To enable Client-side Routing:
-export const clientRouting = true
-// !! WARNING !! Before doing so, read https://vike.dev/clientRouting */
-
-// function getHeadSetting(key: string, pageContext: PageContextClient) {
-// return (
-// pageContext.documentProps?.[key] ??
-// pageContext.exports?.documentProps?.[key]
-// );
-// }
diff --git a/src/renderer/breadcrumbs.ts b/src/renderer/breadcrumbs.ts
index 9d96e455..c72d2674 100644
--- a/src/renderer/breadcrumbs.ts
+++ b/src/renderer/breadcrumbs.ts
@@ -73,7 +73,7 @@ interface Routes {
children?: Routes[];
}
-const sitemap: Routes = {
+export const sitemap: Routes = {
slug: "",
name: "Macrostrat",
children: [
diff --git a/src/renderer/types.ts b/src/renderer/types.ts
index dee47c5a..f5ae2b40 100644
--- a/src/renderer/types.ts
+++ b/src/renderer/types.ts
@@ -1,13 +1,12 @@
-export type { PageContext, PageContextClient, PageContextServer, PageProps };
+export type { PageContextClient, PageContextServer, PageProps };
-import { PageContextBuiltInServerInternal } from "vike/dist/esm/shared/types";
import type {
/*
// When using Client Routing https://vike.dev/clientRouting
PageContextBuiltInClientWithClientRouting as PageContextBuiltInClient
/*/
// When using Server Routing
- PageContextBuiltInClientWithServerRouting as PageContextBuiltInClient,
+ PageContextServer as PageContextBuiltInServer,
PageContextClient as PageContextClientBase,
PageContextServer as PageContextServerBase,
} from "vike/types";
@@ -31,13 +30,15 @@ export type PageContextCustom = {
urlPathname: string;
user?: User;
macrostratLogoFlavor?: string;
- config: PageContextBuiltInServerInternal["config"] & {
+ config: PageContextBuiltInServer["config"] & {
clientRouting?: boolean;
supportsDarkMode?: boolean;
isolateStyles?: boolean;
hydrationCanBeAborted?: boolean;
};
exports: {
+ title?: string;
+ description?: string;
pageStyle?: PageStyle;
supportsDarkMode?: boolean;
documentProps?: DocumentProps;
diff --git a/tsconfig.json b/tsconfig.json
index f3dfacf4..dcb1f531 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,55 +1,24 @@
{
"compilerOptions": {
- "composite": true,
"baseUrl": "./",
- "lib": ["DOM", "DOM.Iterable", "ESNext"],
- "strict": false,
- "sourceMap": true,
- "declaration": true,
- "jsx": "react-jsx",
- "skipLibCheck": true,
+ // Allow importing of JSON and default imports from CommonJS modules
"esModuleInterop": true,
- "downlevelIteration": true,
+ "jsx": "react",
"paths": {
- "~/*": ["./src/*"],
- "@macrostrat/cesium-vector-provider": [
- "./packages/cesium-vector-provider/src/"
- ],
- "@macrostrat/ui-components": [
- "deps/web-components/packages/ui-components/src/"
- ],
- "@macrostrat/column-components": [
- "deps/web-components/packages/column-components/src/"
- ],
- "@macrostrat/map-components": [
- "deps/web-components/packages/map-components/src/"
- ],
- "@macrostrat/mapbox-styles": [
- "deps/web-components/packages/mapbox-styles/src"
- ],
- "@macrostrat/column-views": [
- "deps/web-components/packages/column-views/src"
- ],
- "@macrostrat/mapbox-react": [
- "deps/web-components/packages/mapbox-react/src"
- ],
- "@macrostrat/mapbox-utils": [
- "deps/web-components/packages/mapbox-utils/src"
- ],
- "@macrostrat/map-interface": [
- "deps/web-components/packages/map-interface/src"
- ],
+ // Workspace code
"@macrostrat/cesium-viewer": ["deps/cesium-viewer/src"],
- "@macrostrat-web/settings": ["deps/packages/settings"]
+ "@macrostrat/cesium-martini": ["deps/cesium-martini/src"],
+ "@macrostrat/*": ["deps/web-components/packages/*/src"],
+ "@macrostrat/corelle": ["node_modules/@macrostrat/corelle/src"],
+ "@macrostrat-web/*": ["packages/*/src"],
+ "~/*": ["src/*"]
}
},
"include": [
- "src",
- "packages/lithology-hierarchy/src/simple-hierarchy.ts",
- "packages/hierarchy"
- ],
- "ts-node": {
- "transpileOnly": true,
- "esm": true
- }
+ "deps/cesium-viewer/src/**/*",
+ "deps/cesium-martini/src/**/*",
+ "deps/web-components/packages/*/src/**/*",
+ "packages/*/src/**/*",
+ "src/**/*"
+ ]
}
diff --git a/vite.config.ts b/vite.config.ts
index e38effbd..4713f27c 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -5,7 +5,6 @@ import path from "path";
import ssr from "vike/plugin";
import { UserConfig } from "vite";
import cesium from "vite-plugin-cesium";
-
import pkg from "./package.json";
const aliasedModules = [
@@ -20,6 +19,7 @@ const aliasedModules = [
"mapbox-react",
"mapbox-styles",
"cesium-viewer",
+ "map-components",
];
const gitEnv = revisionInfo(pkg, "https://github.com/UW-Macrostrat/web");
@@ -31,6 +31,8 @@ for (const [key, value] of Object.entries(gitEnv)) {
const cesiumRoot = require.resolve("cesium").replace("/index.cjs", "/Build");
const cesiumBuildPath = path.resolve(cesiumRoot, "Cesium");
+// Check if we are building for server context
+
const config: UserConfig = {
cacheDir: ".vite",
root: path.resolve("./src"),
@@ -66,11 +68,9 @@ const config: UserConfig = {
sourcemap: true,
},
define: {
- "process.env": {
- NODE_DEBUG: false,
- },
// Cesium base URL
CESIUM_BASE_URL: JSON.stringify("/cesium"),
+ // If not building for server context
},
ssr: {
noExternal: ["labella", "@supabase/postgrest-js"],
diff --git a/yarn.lock b/yarn.lock
index a8f1c11a..6d7ddd9d 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -42,7 +42,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.0.0-beta.35, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.18.6, @babel/code-frame@npm:^7.22.13":
+"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.18.6, @babel/code-frame@npm:^7.22.13":
version: 7.22.13
resolution: "@babel/code-frame@npm:7.22.13"
dependencies:
@@ -93,7 +93,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/core@npm:^7.0.0, @babel/core@npm:^7.1.0, @babel/core@npm:^7.11.1, @babel/core@npm:^7.12.10, @babel/core@npm:^7.12.3, @babel/core@npm:^7.16.12, @babel/core@npm:^7.19.6, @babel/core@npm:^7.22.9, @babel/core@npm:^7.7.2, @babel/core@npm:^7.8.0":
+"@babel/core@npm:^7.1.0, @babel/core@npm:^7.11.1, @babel/core@npm:^7.12.10, @babel/core@npm:^7.12.3, @babel/core@npm:^7.16.12, @babel/core@npm:^7.19.6, @babel/core@npm:^7.22.9, @babel/core@npm:^7.7.2, @babel/core@npm:^7.8.0":
version: 7.22.20
resolution: "@babel/core@npm:7.22.20"
dependencies:
@@ -3291,7 +3291,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/polyfill@npm:^7.0.0, @babel/polyfill@npm:^7.4.4":
+"@babel/polyfill@npm:^7.4.4":
version: 7.12.1
resolution: "@babel/polyfill@npm:7.12.1"
dependencies:
@@ -3301,7 +3301,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/preset-env@npm:^7.0.0, @babel/preset-env@npm:^7.12.11, @babel/preset-env@npm:^7.16.11, @babel/preset-env@npm:^7.19.4, @babel/preset-env@npm:^7.7.7":
+"@babel/preset-env@npm:^7.12.11, @babel/preset-env@npm:^7.16.11, @babel/preset-env@npm:^7.19.4, @babel/preset-env@npm:^7.7.7":
version: 7.22.20
resolution: "@babel/preset-env@npm:7.22.20"
dependencies:
@@ -3689,21 +3689,6 @@ __metadata:
languageName: node
linkType: hard
-"@babel/register@npm:^7.0.0":
- version: 7.22.15
- resolution: "@babel/register@npm:7.22.15"
- dependencies:
- clone-deep: "npm:^4.0.1"
- find-cache-dir: "npm:^2.0.0"
- make-dir: "npm:^2.1.0"
- pirates: "npm:^4.0.5"
- source-map-support: "npm:^0.5.16"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/5497be6773608cd2d874210edd14499fce464ddbea170219da55955afe4c9173adb591164193458fd639e43b7d1314088a6186f4abf241476c59b3f0da6afd6f
- languageName: node
- linkType: hard
-
"@babel/register@npm:^7.22.15":
version: 7.23.7
resolution: "@babel/register@npm:7.23.7"
@@ -3754,6 +3739,15 @@ __metadata:
languageName: node
linkType: hard
+"@babel/runtime@npm:^7.2.0":
+ version: 7.24.6
+ resolution: "@babel/runtime@npm:7.24.6"
+ dependencies:
+ regenerator-runtime: "npm:^0.14.0"
+ checksum: 10/6c4e12731cd9206a883c19d48fa04f6aaaf7ee83f049b22631e6521b866edc20832b4d5db30aa86d8ae799c4dcf57761fe8a4af2bf7e233245c079c1dafb5668
+ languageName: node
+ linkType: hard
+
"@babel/runtime@npm:^7.3.1":
version: 7.24.1
resolution: "@babel/runtime@npm:7.24.1"
@@ -4003,6 +3997,34 @@ __metadata:
languageName: node
linkType: hard
+"@blueprintjs/core@npm:^5.10.3":
+ version: 5.10.3
+ resolution: "@blueprintjs/core@npm:5.10.3"
+ dependencies:
+ "@blueprintjs/colors": "npm:^5.1.1"
+ "@blueprintjs/icons": "npm:^5.9.0"
+ "@popperjs/core": "npm:^2.11.8"
+ classnames: "npm:^2.3.1"
+ normalize.css: "npm:^8.0.1"
+ react-popper: "npm:^2.3.0"
+ react-transition-group: "npm:^4.4.5"
+ react-uid: "npm:^2.3.3"
+ tslib: "npm:~2.6.2"
+ use-sync-external-store: "npm:^1.2.0"
+ peerDependencies:
+ "@types/react": ^16.14.41 || 17 || 18
+ react: ^16.8 || 17 || 18
+ react-dom: ^16.8 || 17 || 18
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ bin:
+ upgrade-blueprint-2.0.0-rename: scripts/upgrade-blueprint-2.0.0-rename.sh
+ upgrade-blueprint-3.0.0-rename: scripts/upgrade-blueprint-3.0.0-rename.sh
+ checksum: 10/087ac16d99844419ec0d85d7697858bbfce197b3ca73fecc8340c05b089c69f2c9683986869832c1e44e5cfa31a3f2fe8769a521176a7a4f101bf4f046f5b858
+ languageName: node
+ linkType: hard
+
"@blueprintjs/datetime@npm:^5.3.4":
version: 5.3.4
resolution: "@blueprintjs/datetime@npm:5.3.4"
@@ -4097,13 +4119,20 @@ __metadata:
languageName: node
linkType: hard
-"@brillout/json-serializer@npm:^0.5.1, @brillout/json-serializer@npm:^0.5.8":
+"@brillout/json-serializer@npm:^0.5.1":
version: 0.5.8
resolution: "@brillout/json-serializer@npm:0.5.8"
checksum: 10/db70bb1e6fdb9711eb4901162a391a2ff83aec37914172a619b700f2e09a042f71eed383b9748432c799b751ed119131e464acba62422a2189d0a6e7aca42f74
languageName: node
linkType: hard
+"@brillout/json-serializer@npm:^0.5.10":
+ version: 0.5.10
+ resolution: "@brillout/json-serializer@npm:0.5.10"
+ checksum: 10/6e245c62891fd4f1b5a9945b23344b929b94b309f60d5b4bcfff7750a8c657e85713132ef73bdf6e42b10b6ab254a520c58cf8bdc7d32c76663851274ff71ee9
+ languageName: node
+ linkType: hard
+
"@brillout/picocolors@npm:^1.0.10":
version: 1.0.10
resolution: "@brillout/picocolors@npm:1.0.10"
@@ -4111,6 +4140,13 @@ __metadata:
languageName: node
linkType: hard
+"@brillout/picocolors@npm:^1.0.11":
+ version: 1.0.13
+ resolution: "@brillout/picocolors@npm:1.0.13"
+ checksum: 10/337fd4d9799b7cd55225a7405061c3aca1c6b357bb9f02996bf054713344dd1044cf7fb56e80044029d08a3c3169cb3e7094269bfcacc00b6530b408c39c6a69
+ languageName: node
+ linkType: hard
+
"@brillout/require-shim@npm:^0.1.2":
version: 0.1.2
resolution: "@brillout/require-shim@npm:0.1.2"
@@ -4118,12 +4154,12 @@ __metadata:
languageName: node
linkType: hard
-"@brillout/vite-plugin-server-entry@npm:^0.4.3":
- version: 0.4.3
- resolution: "@brillout/vite-plugin-server-entry@npm:0.4.3"
+"@brillout/vite-plugin-server-entry@npm:^0.4.5":
+ version: 0.4.6
+ resolution: "@brillout/vite-plugin-server-entry@npm:0.4.6"
dependencies:
"@brillout/import": "npm:^0.2.3"
- checksum: 10/b62333147a011e3f5c48f81631e292e579148ec0f4612ad252c0fa652bca04c3a841411a539297aabc7f4173af33618db72c51d2548b17407c78f2115ef6583f
+ checksum: 10/3db277830cdcc37c9bf59c21a231cd65dc10fb4acfee917923c375c3af1c90acb18b156f6d7f9cba0d7767267182b9180b494e131f99d6d6a1b0778f3e459154
languageName: node
linkType: hard
@@ -4199,16 +4235,6 @@ __metadata:
languageName: node
linkType: hard
-"@commitlint/config-validator@npm:^17.6.7":
- version: 17.6.7
- resolution: "@commitlint/config-validator@npm:17.6.7"
- dependencies:
- "@commitlint/types": "npm:^17.4.4"
- ajv: "npm:^8.11.0"
- checksum: 10/e13e512ce9dc788f7ce1c84faf4d2e2d4d3b7c4dc18a7982ecbfc33faa5fe977793efdb868e228061d34ea8825cbbed5fc9e8e69fd5e4f0c0c08f60e21a9214e
- languageName: node
- linkType: hard
-
"@commitlint/ensure@npm:^7.6.0":
version: 7.6.0
resolution: "@commitlint/ensure@npm:7.6.0"
@@ -4218,13 +4244,6 @@ __metadata:
languageName: node
linkType: hard
-"@commitlint/execute-rule@npm:^17.4.0":
- version: 17.4.0
- resolution: "@commitlint/execute-rule@npm:17.4.0"
- checksum: 10/17d8e56ab00bd45fdecb0ed33186d2020ce261250d6a516204b6509610b75af8c930e7226b1111af3de298db32a7e4d0ba2c9cc7ed67db5ba5159eeed634f067
- languageName: node
- linkType: hard
-
"@commitlint/execute-rule@npm:^7.6.0":
version: 7.6.0
resolution: "@commitlint/execute-rule@npm:7.6.0"
@@ -4266,28 +4285,6 @@ __metadata:
languageName: node
linkType: hard
-"@commitlint/load@npm:>6.1.1":
- version: 17.7.1
- resolution: "@commitlint/load@npm:17.7.1"
- dependencies:
- "@commitlint/config-validator": "npm:^17.6.7"
- "@commitlint/execute-rule": "npm:^17.4.0"
- "@commitlint/resolve-extends": "npm:^17.6.7"
- "@commitlint/types": "npm:^17.4.4"
- "@types/node": "npm:20.4.7"
- chalk: "npm:^4.1.0"
- cosmiconfig: "npm:^8.0.0"
- cosmiconfig-typescript-loader: "npm:^4.0.0"
- lodash.isplainobject: "npm:^4.0.6"
- lodash.merge: "npm:^4.6.2"
- lodash.uniq: "npm:^4.5.0"
- resolve-from: "npm:^5.0.0"
- ts-node: "npm:^10.8.1"
- typescript: "npm:^4.6.4 || ^5.0.0"
- checksum: 10/8d0e56b49a0e4dec7e8e28a2c6bc7ce985e6b8e10274aa20d0e3f6c2465fc9082d18f91bbe5c336594ebabcc4dc9668fdeaa039ef5bbfaf26ca0be423461ef61
- languageName: node
- linkType: hard
-
"@commitlint/load@npm:^7.6.1":
version: 7.6.2
resolution: "@commitlint/load@npm:7.6.2"
@@ -4332,20 +4329,6 @@ __metadata:
languageName: node
linkType: hard
-"@commitlint/resolve-extends@npm:^17.6.7":
- version: 17.6.7
- resolution: "@commitlint/resolve-extends@npm:17.6.7"
- dependencies:
- "@commitlint/config-validator": "npm:^17.6.7"
- "@commitlint/types": "npm:^17.4.4"
- import-fresh: "npm:^3.0.0"
- lodash.mergewith: "npm:^4.6.2"
- resolve-from: "npm:^5.0.0"
- resolve-global: "npm:^1.0.0"
- checksum: 10/3717b4ccef6e46136f8d4a4b8d78d57184b4331401db07e27f89acb049a3903035bb2b0dbd4c07e3cdcc402cbe693b365c244a0da3df47e0f74cbf3ba76be9ec
- languageName: node
- linkType: hard
-
"@commitlint/resolve-extends@npm:^7.6.0":
version: 7.6.0
resolution: "@commitlint/resolve-extends@npm:7.6.0"
@@ -4387,15 +4370,6 @@ __metadata:
languageName: node
linkType: hard
-"@commitlint/types@npm:^17.4.4":
- version: 17.4.4
- resolution: "@commitlint/types@npm:17.4.4"
- dependencies:
- chalk: "npm:^4.1.0"
- checksum: 10/03c52429052d161710896d198000196bd2e60be0fd71459b22133dd83dee43e8d05ea8ee703c8369823bc40f77a54881b80d8aa4368ac52aea7f30fb234b73d2
- languageName: node
- linkType: hard
-
"@cspotcode/source-map-support@npm:^0.8.0":
version: 0.8.1
resolution: "@cspotcode/source-map-support@npm:0.8.1"
@@ -5322,6 +5296,46 @@ __metadata:
languageName: node
linkType: hard
+"@hattip/core@npm:0.0.45, @hattip/core@npm:^0.0.45":
+ version: 0.0.45
+ resolution: "@hattip/core@npm:0.0.45"
+ checksum: 10/b733b63862ec9d84b1a13781b198bf8ec4817ac425f440e96b883e9042115b21aeb133376005690de272cf513f17d65d7b8b186f1a83e397a1b7184ccacd72fd
+ languageName: node
+ linkType: hard
+
+"@hattip/headers@npm:0.0.45":
+ version: 0.0.45
+ resolution: "@hattip/headers@npm:0.0.45"
+ dependencies:
+ "@hattip/core": "npm:0.0.45"
+ checksum: 10/940eca5ee23b8238bc218aa815e4130734567eb9b3abcfea573744169e955fb65b7338730e3d25571ba0a74334e6103aacbeb4cb2cd17fb7498977a30828e972
+ languageName: node
+ linkType: hard
+
+"@hattip/polyfills@npm:^0.0.45":
+ version: 0.0.45
+ resolution: "@hattip/polyfills@npm:0.0.45"
+ dependencies:
+ "@hattip/core": "npm:0.0.45"
+ "@whatwg-node/fetch": "npm:^0.9.17"
+ node-fetch-native: "npm:^1.6.4"
+ checksum: 10/b7520093aafe6981dc563340cdf71381cd08d1562a178a50e4b780ee7b1e992fc31ebd139699f1c5c5ee72e8e75c2d49a2b1a7bc7cab643896114eea33c78b6c
+ languageName: node
+ linkType: hard
+
+"@hattip/walk@npm:^0.0.45":
+ version: 0.0.45
+ resolution: "@hattip/walk@npm:0.0.45"
+ dependencies:
+ "@hattip/headers": "npm:0.0.45"
+ cac: "npm:^6.7.14"
+ mime-types: "npm:^2.1.35"
+ bin:
+ hattip-walk: cli.js
+ checksum: 10/aa430e2d2e2ff8692ba75c2c32952a8b3a700b6ae9e03eee4d4d19f1b8b9ef5ab011b853960278c883fe2cd163960b449aee1bf6a5f46f5fbfcdc81c3de491c5
+ languageName: node
+ linkType: hard
+
"@iarna/cli@npm:^2.1.0":
version: 2.1.0
resolution: "@iarna/cli@npm:2.1.0"
@@ -5704,6 +5718,13 @@ __metadata:
languageName: node
linkType: hard
+"@kamilkisiela/fast-url-parser@npm:^1.1.4":
+ version: 1.1.4
+ resolution: "@kamilkisiela/fast-url-parser@npm:1.1.4"
+ checksum: 10/5b79438235a81817b02b96ddc581c996961cec5b40c7d6ebabd01ac6af8d4a35a43b9b263144af25386cef92c054c3ef6b1723b09eb0d8cf7b4053781a474c5f
+ languageName: node
+ linkType: hard
+
"@lagunovsky/redux-react-router@npm:^3.2.0":
version: 3.2.0
resolution: "@lagunovsky/redux-react-router@npm:3.2.0"
@@ -5860,6 +5881,33 @@ __metadata:
languageName: unknown
linkType: soft
+"@macrostrat-web/section-editor-demo@workspace:*, @macrostrat-web/section-editor-demo@workspace:packages/section-editor":
+ version: 0.0.0-use.local
+ resolution: "@macrostrat-web/section-editor-demo@workspace:packages/section-editor"
+ dependencies:
+ "@blueprintjs/core": "npm:^5.10.3"
+ "@macrostrat/hyper": "npm:^2.0"
+ "@macrostrat/ui-components": "workspace:*"
+ chroma-js: "npm:^2.0.6"
+ d3: "npm:^5.12.0"
+ labella: "npm:^1.1.4"
+ parse-css-sides: "npm:^3.0.1"
+ react: "npm:^18"
+ react-color: "npm:^2.17.3"
+ react-draggable: "npm:^4.1.0"
+ react-image-slider: "npm:^0.1.0"
+ react-images: "npm:^1.0.0"
+ react-measure: "npm:^2.3.0"
+ react-router: "npm:^5.1.0"
+ react-router-dom: "npm:^5.1.0"
+ react-scroll: "npm:^1.7.14"
+ react-select: "npm:^3.0.8"
+ react-sizeme: "npm:^2.6.7"
+ react-svg-textures: "npm:^1.4.7"
+ react-tooltip: "npm:^3.11.1"
+ languageName: unknown
+ linkType: soft
+
"@macrostrat-web/security@workspace:*, @macrostrat-web/security@workspace:packages/security":
version: 0.0.0-use.local
resolution: "@macrostrat-web/security@workspace:packages/security"
@@ -6052,7 +6100,7 @@ __metadata:
d3-array: "npm:^3.2.1"
d3-geo-voronoi: "npm:^2.0.1"
peerDependencies:
- "@blueprintjs/core": ^3.43.0 || ^4.3.0
+ "@blueprintjs/core": ^3.43.0 || ^4.3.0 || ^5.0.0
react: ^16.8.6||^17.0.0||^18.0.0
languageName: unknown
linkType: soft
@@ -6063,6 +6111,23 @@ __metadata:
languageName: unknown
linkType: soft
+"@macrostrat/corelle@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "@macrostrat/corelle@npm:2.0.1"
+ dependencies:
+ "@macrostrat/hyper": "npm:^1.0||^2.0"
+ "@macrostrat/map-components": "npm:^0.2.1"
+ "@macrostrat/ui-components": "npm:^0.5.0||^1.0.0||^2.0.0||^3.0.0||^4.0.0"
+ "@types/d3-geo": "npm:^1.11.1"
+ d3-geo: "npm:^1.12.1"
+ quaternion: "npm:^1.1.0"
+ url-join: "npm:^4.0.1"
+ peerDependencies:
+ react: ^16.13.1||^17.0.0||^18.0.0
+ checksum: 10/b396315a0de234a5b1c55f76698c333b4d076944a265360ed8188959f1df39b3c014c8d6fbfdfffdaab0980200ea9a6cad1fb4e9a9e655bff516afa954b49569
+ languageName: node
+ linkType: hard
+
"@macrostrat/data-components@workspace:deps/web-components/packages/data-components":
version: 0.0.0-use.local
resolution: "@macrostrat/data-components@workspace:deps/web-components/packages/data-components"
@@ -6080,6 +6145,7 @@ __metadata:
"@testing-library/react": "npm:^12.1.2"
"@types/jest": "npm:^27.4.0"
"@types/react": "npm:^17.0.38"
+ "@vx/gradient": "npm:^0.0.199"
axios: "npm:^0.27.2"
babel-jest: "npm:^27.4.6"
identity-obj-proxy: "npm:^3.0.0"
@@ -6185,6 +6251,18 @@ __metadata:
languageName: unknown
linkType: soft
+"@macrostrat/hyper@npm:^1.0||^2.0, @macrostrat/hyper@npm:^2.0, @macrostrat/hyper@npm:^2.0.1, @macrostrat/hyper@npm:^2.1.0, @macrostrat/hyper@npm:^2.2.0, @macrostrat/hyper@npm:^2.2.1":
+ version: 2.2.1
+ resolution: "@macrostrat/hyper@npm:2.2.1"
+ dependencies:
+ classnames: "npm:^2.3.1"
+ peerDependencies:
+ "@types/react": ">= 16.0.0 < 19.0.0"
+ react: ">= 0.12.0 < 19.0.0"
+ checksum: 10/a8bc53fe7e89cac43040bb4ea91dd9f9602346e45023f1b69fe9cdcfb473d764b4d8bf6da29ca75516fdfdb6e69636feac2aaf0c7fd123e64940e1220e3421f0
+ languageName: node
+ linkType: hard
+
"@macrostrat/hyper@npm:^1.2.12, @macrostrat/hyper@npm:^1.2.13":
version: 1.4.2
resolution: "@macrostrat/hyper@npm:1.4.2"
@@ -6197,19 +6275,7 @@ __metadata:
languageName: node
linkType: hard
-"@macrostrat/hyper@npm:^2.0, @macrostrat/hyper@npm:^2.0.1, @macrostrat/hyper@npm:^2.1.0, @macrostrat/hyper@npm:^2.2.0, @macrostrat/hyper@npm:^2.2.1":
- version: 2.2.1
- resolution: "@macrostrat/hyper@npm:2.2.1"
- dependencies:
- classnames: "npm:^2.3.1"
- peerDependencies:
- "@types/react": ">= 16.0.0 < 19.0.0"
- react: ">= 0.12.0 < 19.0.0"
- checksum: 10/a8bc53fe7e89cac43040bb4ea91dd9f9602346e45023f1b69fe9cdcfb473d764b4d8bf6da29ca75516fdfdb6e69636feac2aaf0c7fd123e64940e1220e3421f0
- languageName: node
- linkType: hard
-
-"@macrostrat/map-components@workspace:*, @macrostrat/map-components@workspace:deps/web-components/packages/map-components":
+"@macrostrat/map-components@npm:^0.2.1, @macrostrat/map-components@workspace:*, @macrostrat/map-components@workspace:deps/web-components/packages/map-components":
version: 0.0.0-use.local
resolution: "@macrostrat/map-components@workspace:deps/web-components/packages/map-components"
dependencies:
@@ -6237,27 +6303,17 @@ __metadata:
"@types/jest": "npm:^26.0.10"
"@types/node": "npm:^14.6.0"
"@types/react-dom": "npm:^16.9.8"
- colors: "npm:^1.3.2"
- commitizen: "npm:^4.1.2"
- coveralls: "npm:^3.0.2"
- cross-env: "npm:^7.0.2"
- cz-conventional-changelog: "npm:^3.2.0"
d3-array: "npm:^2.5.1"
d3-drag: "npm:^1.2.5"
d3-geo: "npm:^1.11.9"
d3-selection: "npm:^1.4.1"
d3-zoom: "npm:^1.8.3"
- husky: "npm:^4.2.5"
- jest: "npm:^23.6.0"
- jest-config: "npm:^23.6.0"
kld-intersections: "npm:^0.7.0"
kld-path-parser: "npm:^0.2.1"
- lint-staged: "npm:^8.0.0"
npm-run-all: "npm:^4.1.5"
postcss: "npm:^8.3.6"
prettier: "npm:^2.0.5"
prompt: "npm:^1.0.0"
- prop-types: "npm:^15.7.2"
replace-in-file: "npm:^3.4.2"
rimraf: "npm:^2.6.2"
rollup: "npm:^2.26.4"
@@ -6266,14 +6322,6 @@ __metadata:
semantic-release: "npm:^15.9.16"
shelljs: "npm:^0.8.3"
stylus: "npm:^0.59.0"
- travis-deploy-once: "npm:^5.0.9"
- ts-jest: "npm:^23.10.2"
- ts-node: "npm:^7.0.1"
- tslint: "npm:^5.11.0"
- tslint-config-prettier: "npm:^1.15.0"
- tslint-config-standard: "npm:^8.0.1"
- typedoc: "npm:^0.12.0"
- typescript: "npm:^3.8.3"
peerDependencies:
react: ^16.11.0||^17.0.0||^18.0.0
react-dom: ^16.11.0||^17.0.0||^18.0.0
@@ -6300,7 +6348,7 @@ __metadata:
underscore: "npm:^1.13.6"
use-resize-observer: "npm:^9.1.0"
peerDependencies:
- "@blueprintjs/core": ^3.43.0 || ^4.3.0
+ "@blueprintjs/core": ^3.43.0 || ^4.3.0 || ^5.0.0
react: ^16.8.6||^17.0.0||^18.0.0
react-dom: ^16.8.6||^17.0.0||^18.0.0
languageName: unknown
@@ -6445,7 +6493,7 @@ __metadata:
languageName: unknown
linkType: soft
-"@macrostrat/ui-components@workspace:*, @macrostrat/ui-components@workspace:deps/web-components/packages/ui-components":
+"@macrostrat/ui-components@npm:^0.5.0||^1.0.0||^2.0.0||^3.0.0||^4.0.0, @macrostrat/ui-components@workspace:*, @macrostrat/ui-components@workspace:deps/web-components/packages/ui-components":
version: 0.0.0-use.local
resolution: "@macrostrat/ui-components@workspace:deps/web-components/packages/ui-components"
dependencies:
@@ -6509,6 +6557,7 @@ __metadata:
"@macrostrat-web/lithology-hierarchy": "workspace:*"
"@macrostrat-web/map-utils": "workspace:*"
"@macrostrat-web/qgis-integration": "workspace:*"
+ "@macrostrat-web/section-editor-demo": "workspace:*"
"@macrostrat-web/security": "workspace:*"
"@macrostrat-web/settings": "workspace:*"
"@macrostrat-web/sift": "workspace:*"
@@ -6518,9 +6567,11 @@ __metadata:
"@macrostrat/color-utils": "workspace:*"
"@macrostrat/column-components": "workspace:*"
"@macrostrat/column-views": "workspace:*"
+ "@macrostrat/corelle": "npm:^2.0.1"
"@macrostrat/data-sheet2": "workspace:*"
"@macrostrat/feedback-components": "workspace:*"
"@macrostrat/hyper": "npm:^2.2.1"
+ "@macrostrat/map-components": "workspace:*"
"@macrostrat/map-interface": "workspace:*"
"@macrostrat/mapbox-react": "workspace:^2.1.0"
"@macrostrat/mapbox-styles": "workspace:*"
@@ -6531,6 +6582,7 @@ __metadata:
"@macrostrat/timescale": "workspace:*"
"@macrostrat/ui-components": "workspace:*"
"@mdx-js/rollup": "npm:^2.3.0"
+ "@react-hook/size": "npm:^2.1.2"
"@supabase/postgrest-js": "npm:^1.11.0"
"@turf/bbox": "npm:^6.5.0"
"@turf/boolean-contains": "npm:^6.5.0"
@@ -6545,6 +6597,7 @@ __metadata:
"@types/react-redux": "npm:^7.1.7"
"@typescript-eslint/eslint-plugin": "npm:^6.3.0"
"@typescript-eslint/parser": "npm:^6.3.0"
+ "@universal-middleware/express": "npm:^0.0.2"
"@visx/axis": "npm:^2.14.0"
"@visx/scale": "npm:^2.2.2"
"@vitejs/plugin-react": "npm:^4.0.4"
@@ -6579,24 +6632,23 @@ __metadata:
react-router: "npm:^6.8.2"
react-router-dom: "npm:^6.8.2"
react-router-hash-link: "npm:^2.4.3"
+ react-spring: "npm:^9.7.3"
reduce-reducers: "npm:^1.0.4"
redux: "npm:^4.0.5"
- regl: "npm:^1.5.0"
- resium: "npm:^1.13.1"
sass: "npm:^1.49.0"
sirv: "npm:^2.0.3"
stylus: "npm:^0.55.0"
- supports-color: "npm:^9.4.0"
swagger-ui-react: "npm:^5.12.3"
topojson-client: "npm:^3.0.0"
transition-hook: "npm:^1.5.2"
+ tsx: "npm:^4.11.2"
typescript: "npm:^5.1.6"
use-debounce: "npm:^9.0.4"
use-react-router-breadcrumbs: "npm:^3.2.1"
use-resize-observer: "npm:^9.1.0"
- vike: "npm:^0.4.159"
- vike-react: "npm:^0.4.2"
- vite: "npm:^5.0.12"
+ vike: "npm:^0.4.172"
+ vike-react: "npm:^0.4.11"
+ vite: "npm:^5.2.11"
vite-plugin-cesium: "npm:^1.2.22"
vite-plugin-rewrite-all: "npm:^1.0.1"
zustand: "npm:^4.5.1"
@@ -8216,6 +8268,171 @@ __metadata:
languageName: node
linkType: hard
+"@react-hook/latest@npm:^1.0.2":
+ version: 1.0.3
+ resolution: "@react-hook/latest@npm:1.0.3"
+ peerDependencies:
+ react: ">=16.8"
+ checksum: 10/62fde95d96a696745b0e2588ecfa8fc8cca580414a0fe0cdff3198c18972c2bcd4d4d24502635b35f856199b29c1b493abb8b4b13a15b679f07edfa3640acfe8
+ languageName: node
+ linkType: hard
+
+"@react-hook/passive-layout-effect@npm:^1.2.0":
+ version: 1.2.1
+ resolution: "@react-hook/passive-layout-effect@npm:1.2.1"
+ peerDependencies:
+ react: ">=16.8"
+ checksum: 10/217cb8aa90fb8e677672319a9a466d7752890cf4357c76df000b207696e9cc717cf2ee88080671cc9dae238a82f92093ab4f61ab2f6032d2a8db958fc7d99b5d
+ languageName: node
+ linkType: hard
+
+"@react-hook/resize-observer@npm:^1.2.1":
+ version: 1.2.6
+ resolution: "@react-hook/resize-observer@npm:1.2.6"
+ dependencies:
+ "@juggle/resize-observer": "npm:^3.3.1"
+ "@react-hook/latest": "npm:^1.0.2"
+ "@react-hook/passive-layout-effect": "npm:^1.2.0"
+ peerDependencies:
+ react: ">=16.8"
+ checksum: 10/f9ae66620d1f803cc74849c4665a6949356d7a5dd9efa6ded44631f69c228eb1bb3dfcff5cb2805330d7efff59405c7de68eecf3d94fd765157bbef2d9e3b0ae
+ languageName: node
+ linkType: hard
+
+"@react-hook/size@npm:^2.1.2":
+ version: 2.1.2
+ resolution: "@react-hook/size@npm:2.1.2"
+ dependencies:
+ "@react-hook/passive-layout-effect": "npm:^1.2.0"
+ "@react-hook/resize-observer": "npm:^1.2.1"
+ peerDependencies:
+ react: ">=16.8"
+ checksum: 10/fc700f84c70a484226284973dc5e4ae670184ea1871002e9639c3d03dc540c6989724de130959f279c1294908e2b99184611a9fc535b368977896e70dcd0d865
+ languageName: node
+ linkType: hard
+
+"@react-spring/animated@npm:~9.7.3":
+ version: 9.7.3
+ resolution: "@react-spring/animated@npm:9.7.3"
+ dependencies:
+ "@react-spring/shared": "npm:~9.7.3"
+ "@react-spring/types": "npm:~9.7.3"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ checksum: 10/75c427e810b05ef508ac81695e3410619bcc8b8b87e232eb6fa05a91155bb6a558b324937fcaacb9b2002fdffb557de97ee5f6f6b226c53f5f356f62559f89a1
+ languageName: node
+ linkType: hard
+
+"@react-spring/core@npm:~9.7.3":
+ version: 9.7.3
+ resolution: "@react-spring/core@npm:9.7.3"
+ dependencies:
+ "@react-spring/animated": "npm:~9.7.3"
+ "@react-spring/shared": "npm:~9.7.3"
+ "@react-spring/types": "npm:~9.7.3"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ checksum: 10/91102271531eae8fc146b8847ae6dbc03ebfbab5816529b9bfdd71e6d922ea07361fcbc57b404de57dac2f719246876f94539c04e2f314b3c767ad33d8d4f984
+ languageName: node
+ linkType: hard
+
+"@react-spring/konva@npm:~9.7.3":
+ version: 9.7.3
+ resolution: "@react-spring/konva@npm:9.7.3"
+ dependencies:
+ "@react-spring/animated": "npm:~9.7.3"
+ "@react-spring/core": "npm:~9.7.3"
+ "@react-spring/shared": "npm:~9.7.3"
+ "@react-spring/types": "npm:~9.7.3"
+ peerDependencies:
+ konva: ">=2.6"
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ react-konva: ^16.8.0 || ^16.8.7-0 || ^16.9.0-0 || ^16.10.1-0 || ^16.12.0-0 || ^16.13.0-0 || ^17.0.0-0 || ^17.0.1-0 || ^17.0.2-0 || ^18.0.0-0
+ checksum: 10/e6cc925fb74abfeea6247bd92232d764f671b51cf2aa0b7dd09eb134bf24230b968bc9f9bb0cf63bedaedf95d85fc5a0eb79b757213fa9e7cabf0d2dee4e82b1
+ languageName: node
+ linkType: hard
+
+"@react-spring/native@npm:~9.7.3":
+ version: 9.7.3
+ resolution: "@react-spring/native@npm:9.7.3"
+ dependencies:
+ "@react-spring/animated": "npm:~9.7.3"
+ "@react-spring/core": "npm:~9.7.3"
+ "@react-spring/shared": "npm:~9.7.3"
+ "@react-spring/types": "npm:~9.7.3"
+ peerDependencies:
+ react: ^16.8.0 || >=17.0.0 || >=18.0.0
+ react-native: ">=0.58"
+ checksum: 10/df78b2f660aa30166f0fdd860b958df0d53ad4ad229b7f5357d3cd7945351e79b0a722761c9e2a482a15856021bebf458cd0a815860bbe1b8d64e72051c87c23
+ languageName: node
+ linkType: hard
+
+"@react-spring/shared@npm:~9.7.3":
+ version: 9.7.3
+ resolution: "@react-spring/shared@npm:9.7.3"
+ dependencies:
+ "@react-spring/types": "npm:~9.7.3"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ checksum: 10/76e44fe8ad63c83861a8453e26d085c69a40f0e5865ca2af7d2fecacb030e59ebe6db5f8e7ef8b1a6b6e193cc3c1c6fd3d5172b10bf216b205844e6d3e90e860
+ languageName: node
+ linkType: hard
+
+"@react-spring/three@npm:~9.7.3":
+ version: 9.7.3
+ resolution: "@react-spring/three@npm:9.7.3"
+ dependencies:
+ "@react-spring/animated": "npm:~9.7.3"
+ "@react-spring/core": "npm:~9.7.3"
+ "@react-spring/shared": "npm:~9.7.3"
+ "@react-spring/types": "npm:~9.7.3"
+ peerDependencies:
+ "@react-three/fiber": ">=6.0"
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ three: ">=0.126"
+ checksum: 10/7fde4d5cea2ad7b4e15089c0464799b857662a5a97537fc85f82ee7777f187945f32cf70c4609111a4557e46dbe475d1328325841a8825c0f5ded21ea49d7599
+ languageName: node
+ linkType: hard
+
+"@react-spring/types@npm:~9.7.3":
+ version: 9.7.3
+ resolution: "@react-spring/types@npm:9.7.3"
+ checksum: 10/fcaf5fe02ae3e56a07f340dd5a0a17e9c283ff7deab8b6549ff513ef2f5ad57e0218d448b5331e422cfa739b40f0de3511e7b3f3e73ae8690496cda5bb984854
+ languageName: node
+ linkType: hard
+
+"@react-spring/web@npm:~9.7.3":
+ version: 9.7.3
+ resolution: "@react-spring/web@npm:9.7.3"
+ dependencies:
+ "@react-spring/animated": "npm:~9.7.3"
+ "@react-spring/core": "npm:~9.7.3"
+ "@react-spring/shared": "npm:~9.7.3"
+ "@react-spring/types": "npm:~9.7.3"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
+ checksum: 10/65c71e28ef1197d2afdc053d776b6bd1db6b5558d50849d78c7fc665c3ed1bbd08850fabfceba2223f8660915301aaea18588ebee2429e7b6de99a2640335bbe
+ languageName: node
+ linkType: hard
+
+"@react-spring/zdog@npm:~9.7.3":
+ version: 9.7.3
+ resolution: "@react-spring/zdog@npm:9.7.3"
+ dependencies:
+ "@react-spring/animated": "npm:~9.7.3"
+ "@react-spring/core": "npm:~9.7.3"
+ "@react-spring/shared": "npm:~9.7.3"
+ "@react-spring/types": "npm:~9.7.3"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
+ react-zdog: ">=1.0"
+ zdog: ">=1.0"
+ checksum: 10/26f2f61f7829f2bd394b5688c9a6bf110430c4f6ade45ae52dcc53f95451c4d99a6c6c6c649366a66edbde710777121c97926904c1952224c8d445ab8a3a9f7d
+ languageName: node
+ linkType: hard
+
"@rehooks/local-storage@npm:^2.4.0":
version: 2.4.5
resolution: "@rehooks/local-storage@npm:2.4.5"
@@ -8667,20 +8884,6 @@ __metadata:
languageName: node
linkType: hard
-"@samverschueren/stream-to-observable@npm:^0.3.0":
- version: 0.3.1
- resolution: "@samverschueren/stream-to-observable@npm:0.3.1"
- dependencies:
- any-observable: "npm:^0.3.0"
- peerDependenciesMeta:
- rxjs:
- optional: true
- zen-observable:
- optional: true
- checksum: 10/2b62bff492d58b4fdc8339ecc29ac3d8e1c37ae920c9d41fcb490a574422c3df1eae26b07103198b97b586c5e7106d47440ce24580a2a919aa5f9359d9914f2c
- languageName: node
- linkType: hard
-
"@semantic-release/commit-analyzer@npm:^6.1.0":
version: 6.3.3
resolution: "@semantic-release/commit-analyzer@npm:6.3.3"
@@ -8772,13 +8975,6 @@ __metadata:
languageName: node
linkType: hard
-"@sindresorhus/is@npm:^0.14.0":
- version: 0.14.0
- resolution: "@sindresorhus/is@npm:0.14.0"
- checksum: 10/789cd128f0b43e158e657c4505539c8997905fcb5c06d750b7df778cab2b6887bc1eb8878026a20d84524528786ef69fc3d12a964ae56a478a87bcfc7f8272f3
- languageName: node
- linkType: hard
-
"@sindresorhus/is@npm:^4.0.0":
version: 4.6.0
resolution: "@sindresorhus/is@npm:4.6.0"
@@ -10192,15 +10388,6 @@ __metadata:
languageName: node
linkType: hard
-"@szmarczak/http-timer@npm:^1.1.2":
- version: 1.1.2
- resolution: "@szmarczak/http-timer@npm:1.1.2"
- dependencies:
- defer-to-connect: "npm:^1.0.1"
- checksum: 10/9b63853bd53bff72c4990ebc9cd3f625bbab757247099af172564da6649a27a1d41b1a70cd849dd65b2a078300029c1c80bf3079e6a91e285da7b259eb147146
- languageName: node
- linkType: hard
-
"@szmarczak/http-timer@npm:^4.0.5":
version: 4.0.6
resolution: "@szmarczak/http-timer@npm:4.0.6"
@@ -10622,6 +10809,15 @@ __metadata:
languageName: node
linkType: hard
+"@types/d3-geo@npm:^1.11.1":
+ version: 1.12.7
+ resolution: "@types/d3-geo@npm:1.12.7"
+ dependencies:
+ "@types/geojson": "npm:*"
+ checksum: 10/24135f837fdb83f4f5c39f85f59c1c6ed26306323d66f115a1d4aaa0e4c2bc2fe198debb4546d221b03e5f25774e9dc9a6900c339d80d31f05ef29c5bc1ac25a
+ languageName: node
+ linkType: hard
+
"@types/d3-geo@npm:^1.12.3":
version: 1.12.5
resolution: "@types/d3-geo@npm:1.12.5"
@@ -10903,15 +11099,6 @@ __metadata:
languageName: node
linkType: hard
-"@types/fs-extra@npm:^5.0.3":
- version: 5.1.0
- resolution: "@types/fs-extra@npm:5.1.0"
- dependencies:
- "@types/node": "npm:*"
- checksum: 10/091911cf9f7c1e54b40738abd6bed0282e02a8a3c0e08dbbe8b0ea957e8d603bb9af798d0f2c16e2e0f877be6eacb01bb8dd64d4d6023c3cebf1b6855e213656
- languageName: node
- linkType: hard
-
"@types/geojson@npm:*, @types/geojson@npm:^7946.0.10, @types/geojson@npm:^7946.0.8":
version: 7946.0.11
resolution: "@types/geojson@npm:7946.0.11"
@@ -10926,7 +11113,7 @@ __metadata:
languageName: node
linkType: hard
-"@types/glob@npm:^7.1.1, @types/glob@npm:^7.1.3, @types/glob@npm:~7.2.0":
+"@types/glob@npm:^7.1.1, @types/glob@npm:^7.1.3":
version: 7.2.0
resolution: "@types/glob@npm:7.2.0"
dependencies:
@@ -10945,13 +11132,6 @@ __metadata:
languageName: node
linkType: hard
-"@types/handlebars@npm:^4.0.38":
- version: 4.0.40
- resolution: "@types/handlebars@npm:4.0.40"
- checksum: 10/1e6dc9ebc17b5691743e8b0784ab124f438bade50ed6ae1ceaa3ae26e3ef9d04c048964a58420b72a7189161d2464f71078bcaaef605ee2e00a6f6cea1a216f3
- languageName: node
- linkType: hard
-
"@types/hast@npm:^2.0.0":
version: 2.3.6
resolution: "@types/hast@npm:2.3.6"
@@ -10970,13 +11150,6 @@ __metadata:
languageName: node
linkType: hard
-"@types/highlight.js@npm:^9.12.3":
- version: 9.12.4
- resolution: "@types/highlight.js@npm:9.12.4"
- checksum: 10/e409a264da4cf7ff17f4cfe7eecb2d8d028a8cc72f67897b752544aea7c18e17398b5cb35688a34a1e58877b226b17b0026e847ab5584bffe43d3330154774d0
- languageName: node
- linkType: hard
-
"@types/hoist-non-react-statics@npm:^3.0.1, @types/hoist-non-react-statics@npm:^3.3.0":
version: 3.3.2
resolution: "@types/hoist-non-react-statics@npm:3.3.2"
@@ -11078,7 +11251,7 @@ __metadata:
languageName: node
linkType: hard
-"@types/lodash@npm:^4.14.110, @types/lodash@npm:^4.14.146, @types/lodash@npm:^4.14.172, @types/lodash@npm:^4.14.178":
+"@types/lodash@npm:^4.14.146, @types/lodash@npm:^4.14.172, @types/lodash@npm:^4.14.178":
version: 4.14.199
resolution: "@types/lodash@npm:4.14.199"
checksum: 10/340aabe9b023553d64e47f2af7f2010814c1178ce3a2b256e8dd54c444578d5e6e937d70c7117ee1fac5c0fc429b592ab9f6d69a966f0a1222ebcbbe6d516c4a
@@ -11111,13 +11284,6 @@ __metadata:
languageName: node
linkType: hard
-"@types/marked@npm:^0.4.0":
- version: 0.4.2
- resolution: "@types/marked@npm:0.4.2"
- checksum: 10/76ec88c531cbab2a4a1224c1cbfc10baed3be1d3ef3b5a4573abe5a87e3af331b2d965bf2510e21c6701698adaf2f469cad117aabcbed3f1f228c5ab91d80b2e
- languageName: node
- linkType: hard
-
"@types/mdast@npm:^3.0.0":
version: 3.0.12
resolution: "@types/mdast@npm:3.0.12"
@@ -11155,13 +11321,6 @@ __metadata:
languageName: node
linkType: hard
-"@types/minimatch@npm:3.0.3":
- version: 3.0.3
- resolution: "@types/minimatch@npm:3.0.3"
- checksum: 10/dfb9f8c55342868f9b9d57ebd969ff09f16f8732218178db4da80400bc4f665aa046f71c5f4b1599ef59a2871b1bd74b5fcefc79383fccd878819c8094ca1fa6
- languageName: node
- linkType: hard
-
"@types/minimist@npm:^1.2.0":
version: 1.2.2
resolution: "@types/minimist@npm:1.2.2"
@@ -11190,13 +11349,6 @@ __metadata:
languageName: node
linkType: hard
-"@types/node@npm:20.4.7":
- version: 20.4.7
- resolution: "@types/node@npm:20.4.7"
- checksum: 10/63c43283caeaf854853b2a1717754ebb094ea15cd9bb7b93a0a49cc5f5f533d6125986effec1e9bb5d8150c353c76a516bdecc7a74aba20bfde6a78e59952845
- languageName: node
- linkType: hard
-
"@types/node@npm:^14.6.0":
version: 14.18.62
resolution: "@types/node@npm:14.18.62"
@@ -11506,16 +11658,6 @@ __metadata:
languageName: node
linkType: hard
-"@types/shelljs@npm:^0.8.0":
- version: 0.8.12
- resolution: "@types/shelljs@npm:0.8.12"
- dependencies:
- "@types/glob": "npm:~7.2.0"
- "@types/node": "npm:*"
- checksum: 10/c0517e8355614bad2d391270538bd5c7b65d7a771b333cb3ba9fb6321b4b44e1787e99d19cda97ac5d25ec84e2d6b81cb8cc496da5bdae6a725d922de4b44c70
- languageName: node
- linkType: hard
-
"@types/sockjs@npm:^0.3.33":
version: 0.3.34
resolution: "@types/sockjs@npm:0.3.34"
@@ -11730,6 +11872,17 @@ __metadata:
languageName: node
linkType: hard
+"@universal-middleware/express@npm:^0.0.2":
+ version: 0.0.2
+ resolution: "@universal-middleware/express@npm:0.0.2"
+ dependencies:
+ "@hattip/core": "npm:^0.0.45"
+ "@hattip/polyfills": "npm:^0.0.45"
+ "@hattip/walk": "npm:^0.0.45"
+ checksum: 10/8caa883047fc206594149c23dd54eb4c0f8b84d222bef7b6ea66d73545bc5354b359cbb07163db90bd75a62ec756a37411221acdbcdb9e798b861d9e08ec12e0
+ languageName: node
+ linkType: hard
+
"@use-gesture/core@npm:10.3.1":
version: 10.3.1
resolution: "@use-gesture/core@npm:10.3.1"
@@ -11977,6 +12130,18 @@ __metadata:
languageName: node
linkType: hard
+"@vx/gradient@npm:^0.0.199":
+ version: 0.0.199
+ resolution: "@vx/gradient@npm:0.0.199"
+ dependencies:
+ "@types/react": "npm:*"
+ prop-types: "npm:^15.5.7"
+ peerDependencies:
+ react: ^15.0.0-0 || ^16.0.0-0
+ checksum: 10/f5e98c2def87a159af8a0d11eebeea0fb246403dcbc5a752bbb192fc9d8c605bcf04d13510f32ca64c2f8c8184d31adc6804bd3481f9c5b2e6baf9ecec7794d1
+ languageName: node
+ linkType: hard
+
"@vx/group@npm:0.0.198":
version: 0.0.198
resolution: "@vx/group@npm:0.0.198"
@@ -12229,6 +12394,36 @@ __metadata:
languageName: node
linkType: hard
+"@whatwg-node/events@npm:^0.1.0":
+ version: 0.1.1
+ resolution: "@whatwg-node/events@npm:0.1.1"
+ checksum: 10/3a356ca23522190201e27446cfd7ebf1cf96815ddb9d1ba5da0a00bbe6c1d28b4094862104411101fbedd47c758b25fe3683033f6a3e80933029efd664c33567
+ languageName: node
+ linkType: hard
+
+"@whatwg-node/fetch@npm:^0.9.17":
+ version: 0.9.18
+ resolution: "@whatwg-node/fetch@npm:0.9.18"
+ dependencies:
+ "@whatwg-node/node-fetch": "npm:^0.5.7"
+ urlpattern-polyfill: "npm:^10.0.0"
+ checksum: 10/3ef78969991a44ea99c4f88929c1472b65f066c9d2734992d0de77d11089eec5c3477503cd9513201516056496e28c9fb172635f69867417a0c68e88f4409c96
+ languageName: node
+ linkType: hard
+
+"@whatwg-node/node-fetch@npm:^0.5.7":
+ version: 0.5.11
+ resolution: "@whatwg-node/node-fetch@npm:0.5.11"
+ dependencies:
+ "@kamilkisiela/fast-url-parser": "npm:^1.1.4"
+ "@whatwg-node/events": "npm:^0.1.0"
+ busboy: "npm:^1.6.0"
+ fast-querystring: "npm:^1.1.1"
+ tslib: "npm:^2.3.1"
+ checksum: 10/0ddbe236ce38b7859ad4b3c2097560585473d6d70afd5e72d88a97daa89176af7b888c95b6fc93a0bd6a471a42b7fb32ef8dac4d1558fbd6d835b25887329a91
+ languageName: node
+ linkType: hard
+
"@xtuc/ieee754@npm:^1.2.0":
version: 1.2.0
resolution: "@xtuc/ieee754@npm:1.2.0"
@@ -12430,7 +12625,7 @@ __metadata:
languageName: node
linkType: hard
-"abab@npm:^2.0.0, abab@npm:^2.0.3, abab@npm:^2.0.5":
+"abab@npm:^2.0.3, abab@npm:^2.0.5":
version: 2.0.6
resolution: "abab@npm:2.0.6"
checksum: 10/ebe95d7278999e605823fc515a3b05d689bc72e7f825536e73c95ebf621636874c6de1b749b3c4bf866b96ccd4b3a2802efa313d0e45ad51a413c8c73247db20
@@ -12461,16 +12656,6 @@ __metadata:
languageName: node
linkType: hard
-"acorn-globals@npm:^4.1.0":
- version: 4.3.4
- resolution: "acorn-globals@npm:4.3.4"
- dependencies:
- acorn: "npm:^6.0.1"
- acorn-walk: "npm:^6.0.1"
- checksum: 10/c31bfde102d8a104835e9591c31dd037ec771449f9c86a6b1d2ac3c7c336694f828cfabba7687525b094f896a854affbf1afe6e1b12c0d998be6bab5d49c9663
- languageName: node
- linkType: hard
-
"acorn-globals@npm:^6.0.0":
version: 6.0.0
resolution: "acorn-globals@npm:6.0.0"
@@ -12499,13 +12684,6 @@ __metadata:
languageName: node
linkType: hard
-"acorn-walk@npm:^6.0.1":
- version: 6.2.0
- resolution: "acorn-walk@npm:6.2.0"
- checksum: 10/163de3239300eb3d11b2d443164d6408655ec2ddafbb1f3ddfcc4ffb4dd9578ee414e4ee561c3cd67e64238d0de4685aa0aea267de100fe40078c639ffb87381
- languageName: node
- linkType: hard
-
"acorn-walk@npm:^7.1.1, acorn-walk@npm:^7.2.0":
version: 7.2.0
resolution: "acorn-walk@npm:7.2.0"
@@ -12520,24 +12698,6 @@ __metadata:
languageName: node
linkType: hard
-"acorn@npm:^5.5.3":
- version: 5.7.4
- resolution: "acorn@npm:5.7.4"
- bin:
- acorn: bin/acorn
- checksum: 10/97f2ae55e99aed81a7aa9039719c60283a66817fadb3152beb323ba6038824770512f807436e99090be38602f23bcbf6021867d86442616da471f1dfaca7c3d9
- languageName: node
- linkType: hard
-
-"acorn@npm:^6.0.1":
- version: 6.4.2
- resolution: "acorn@npm:6.4.2"
- bin:
- acorn: bin/acorn
- checksum: 10/b430c346813289daf1b4e673333d10c54a7c452a776f097597c7b0bd71c7ff58f0e8f850f334963eac806a52928985ff20c0fa39c67cd5276d10e0ed4370f9c8
- languageName: node
- linkType: hard
-
"acorn@npm:^7.1.1, acorn@npm:^7.4.1":
version: 7.4.1
resolution: "acorn@npm:7.4.1"
@@ -12689,7 +12849,7 @@ __metadata:
languageName: node
linkType: hard
-"ajv@npm:^8.0.0, ajv@npm:^8.11.0, ajv@npm:^8.9.0":
+"ajv@npm:^8.0.0, ajv@npm:^8.9.0":
version: 8.12.0
resolution: "ajv@npm:8.12.0"
dependencies:
@@ -12724,7 +12884,7 @@ __metadata:
languageName: node
linkType: hard
-"ansi-escapes@npm:^3.0.0, ansi-escapes@npm:^3.1.0":
+"ansi-escapes@npm:^3.1.0":
version: 3.2.0
resolution: "ansi-escapes@npm:3.2.0"
checksum: 10/0f94695b677ea742f7f1eed961f7fd8d05670f744c6ad1f8f635362f6681dcfbc1575cb05b43abc7bb6d67e25a75fb8c7ea8f2a57330eb2c76b33f18cb2cef0a
@@ -12844,23 +13004,6 @@ __metadata:
languageName: node
linkType: hard
-"any-observable@npm:^0.3.0":
- version: 0.3.0
- resolution: "any-observable@npm:0.3.0"
- checksum: 10/21f27ed714c54aac6db4c1200674933f93416b832433cd14e5071db53f7d480de66a4c529181655dee52371be7f73ebeb0880b02a95571d70152fd6b226c11e9
- languageName: node
- linkType: hard
-
-"anymatch@npm:^2.0.0":
- version: 2.0.0
- resolution: "anymatch@npm:2.0.0"
- dependencies:
- micromatch: "npm:^3.1.4"
- normalize-path: "npm:^2.1.1"
- checksum: 10/f7bb1929842b4585cdc28edbb385767d499ce7d673f96a8f11348d2b2904592ffffc594fe9229b9a1e9e4dccb9329b7692f9f45e6a11dcefbb76ecdc9ab740f6
- languageName: node
- linkType: hard
-
"anymatch@npm:^3.0.3, anymatch@npm:~3.1.2":
version: 3.1.3
resolution: "anymatch@npm:3.1.3"
@@ -12878,15 +13021,6 @@ __metadata:
languageName: node
linkType: hard
-"append-transform@npm:^0.4.0":
- version: 0.4.0
- resolution: "append-transform@npm:0.4.0"
- dependencies:
- default-require-extensions: "npm:^1.0.0"
- checksum: 10/f5edcf48e3327e8c9594d3ff57ea250401c1cda8dd2460704025fca5ef304b31cdba6e4ad522101ca69bd2245835add4831427bb18a7eb454ec275af08be11d0
- languageName: node
- linkType: hard
-
"aproba@npm:^1.0.3 || ^2.0.0, aproba@npm:^1.1.2 || 2, aproba@npm:^2.0.0":
version: 2.0.0
resolution: "aproba@npm:2.0.0"
@@ -12976,36 +13110,6 @@ __metadata:
languageName: node
linkType: hard
-"arr-diff@npm:^2.0.0":
- version: 2.0.0
- resolution: "arr-diff@npm:2.0.0"
- dependencies:
- arr-flatten: "npm:^1.0.1"
- checksum: 10/b56e8d34e8c8d8dba40de3235c61e3ef4e3626486d6d1c83c34fba4fe6187eff96ffde872100e834e8931e724a96ab9dbd71b0bf0068ba5a3deb7d19cb596892
- languageName: node
- linkType: hard
-
-"arr-diff@npm:^4.0.0":
- version: 4.0.0
- resolution: "arr-diff@npm:4.0.0"
- checksum: 10/ea7c8834842ad3869297f7915689bef3494fd5b102ac678c13ffccab672d3d1f35802b79e90c4cfec2f424af3392e44112d1ccf65da34562ed75e049597276a0
- languageName: node
- linkType: hard
-
-"arr-flatten@npm:^1.0.1, arr-flatten@npm:^1.1.0":
- version: 1.1.0
- resolution: "arr-flatten@npm:1.1.0"
- checksum: 10/963fe12564fca2f72c055f3f6c206b9e031f7c433a0c66ca9858b484821f248c5b1e5d53c8e4989d80d764cd776cf6d9b160ad05f47bdc63022bfd63b5455e22
- languageName: node
- linkType: hard
-
-"arr-union@npm:^3.1.0":
- version: 3.1.0
- resolution: "arr-union@npm:3.1.0"
- checksum: 10/b5b0408c6eb7591143c394f3be082fee690ddd21f0fdde0a0a01106799e847f67fcae1b7e56b0a0c173290e29c6aca9562e82b300708a268bc8f88f3d6613cb9
- languageName: node
- linkType: hard
-
"array-buffer-byte-length@npm:^1.0.0":
version: 1.0.0
resolution: "array-buffer-byte-length@npm:1.0.0"
@@ -13016,13 +13120,6 @@ __metadata:
languageName: node
linkType: hard
-"array-equal@npm:^1.0.0":
- version: 1.0.0
- resolution: "array-equal@npm:1.0.0"
- checksum: 10/3f68045806357db9b2fa1ad583e42a659de030633118a0cd35ee4975cb20db3b9a3d36bbec9b5afe70011cf989eefd215c12fe0ce08c498f770859ca6e70688a
- languageName: node
- linkType: hard
-
"array-find-index@npm:^1.0.1":
version: 1.0.2
resolution: "array-find-index@npm:1.0.2"
@@ -13051,15 +13148,6 @@ __metadata:
languageName: node
linkType: hard
-"array-union@npm:^1.0.1":
- version: 1.0.2
- resolution: "array-union@npm:1.0.2"
- dependencies:
- array-uniq: "npm:^1.0.1"
- checksum: 10/82cec6421b6e6766556c484835a6d476a873f1b71cace5ab2b4f1b15b1e3162dc4da0d16f7a2b04d4aec18146c6638fe8f661340b31ba8e469fd811a1b45dc8d
- languageName: node
- linkType: hard
-
"array-union@npm:^2.1.0":
version: 2.1.0
resolution: "array-union@npm:2.1.0"
@@ -13067,27 +13155,6 @@ __metadata:
languageName: node
linkType: hard
-"array-uniq@npm:^1.0.1":
- version: 1.0.3
- resolution: "array-uniq@npm:1.0.3"
- checksum: 10/1625f06b093d8bf279b81adfec6e72951c0857d65b5e3f65f053fffe9f9dd61c2fc52cff57e38a4700817e7e3f01a4faa433d505ea9e33cdae4514c334e0bf9e
- languageName: node
- linkType: hard
-
-"array-unique@npm:^0.2.1":
- version: 0.2.1
- resolution: "array-unique@npm:0.2.1"
- checksum: 10/899deaf07abedf17ee89a757c7bcc9253fb248a7f6c394a1fec9ec3f3ac244314feb3048efee80ed7fdcb047960e32d7c234291bfd26b78ced668c346d9f4e3c
- languageName: node
- linkType: hard
-
-"array-unique@npm:^0.3.2":
- version: 0.3.2
- resolution: "array-unique@npm:0.3.2"
- checksum: 10/da344b89cfa6b0a5c221f965c21638bfb76b57b45184a01135382186924f55973cd9b171d4dad6bf606c6d9d36b0d721d091afdc9791535ead97ccbe78f8a888
- languageName: node
- linkType: hard
-
"array.prototype.reduce@npm:^1.0.6":
version: 1.0.6
resolution: "array.prototype.reduce@npm:1.0.6"
@@ -13116,7 +13183,7 @@ __metadata:
languageName: node
linkType: hard
-"arrify@npm:^1.0.0, arrify@npm:^1.0.1":
+"arrify@npm:^1.0.1":
version: 1.0.1
resolution: "arrify@npm:1.0.1"
checksum: 10/745075dd4a4624ff0225c331dacb99be501a515d39bcb7c84d24660314a6ec28e68131b137e6f7e16318170842ce97538cd298fc4cd6b2cc798e0b957f2747e7
@@ -13159,13 +13226,6 @@ __metadata:
languageName: node
linkType: hard
-"assign-symbols@npm:^1.0.0":
- version: 1.0.0
- resolution: "assign-symbols@npm:1.0.0"
- checksum: 10/c0eb895911d05b6b2d245154f70461c5e42c107457972e5ebba38d48967870dee53bcdf6c7047990586daa80fab8dab3cc6300800fbd47b454247fdedd859a2c
- languageName: node
- linkType: hard
-
"ast-types@npm:^0.16.1":
version: 0.16.1
resolution: "ast-types@npm:0.16.1"
@@ -13175,13 +13235,6 @@ __metadata:
languageName: node
linkType: hard
-"astral-regex@npm:^1.0.0":
- version: 1.0.0
- resolution: "astral-regex@npm:1.0.0"
- checksum: 10/93417fc0879531cd95ace2560a54df865c9461a3ac0714c60cbbaa5f1f85d2bee85489e78d82f70b911b71ac25c5f05fc5a36017f44c9bb33c701bee229ff848
- languageName: node
- linkType: hard
-
"astring@npm:^1.8.0":
version: 1.8.6
resolution: "astring@npm:1.8.6"
@@ -13191,13 +13244,6 @@ __metadata:
languageName: node
linkType: hard
-"async-limiter@npm:~1.0.0":
- version: 1.0.1
- resolution: "async-limiter@npm:1.0.1"
- checksum: 10/2b849695b465d93ad44c116220dee29a5aeb63adac16c1088983c339b0de57d76e82533e8e364a93a9f997f28bbfc6a92948cefc120652bd07f3b59f8d75cf2b
- languageName: node
- linkType: hard
-
"async@npm:3.2.3":
version: 3.2.3
resolution: "async@npm:3.2.3"
@@ -13212,7 +13258,7 @@ __metadata:
languageName: node
linkType: hard
-"async@npm:^2.1.4, async@npm:^2.6.4":
+"async@npm:^2.6.4":
version: 2.6.4
resolution: "async@npm:2.6.4"
dependencies:
@@ -13359,44 +13405,6 @@ __metadata:
languageName: node
linkType: hard
-"babel-code-frame@npm:^6.26.0":
- version: 6.26.0
- resolution: "babel-code-frame@npm:6.26.0"
- dependencies:
- chalk: "npm:^1.1.3"
- esutils: "npm:^2.0.2"
- js-tokens: "npm:^3.0.2"
- checksum: 10/9410c3d5a921eb02fa409675d1a758e493323a49e7b9dddb7a2a24d47e61d39ab1129dd29f9175836eac9ce8b1d4c0a0718fcdc57ce0b865b529fd250dbab313
- languageName: node
- linkType: hard
-
-"babel-core@npm:^6.0.0, babel-core@npm:^6.26.0":
- version: 6.26.3
- resolution: "babel-core@npm:6.26.3"
- dependencies:
- babel-code-frame: "npm:^6.26.0"
- babel-generator: "npm:^6.26.0"
- babel-helpers: "npm:^6.24.1"
- babel-messages: "npm:^6.23.0"
- babel-register: "npm:^6.26.0"
- babel-runtime: "npm:^6.26.0"
- babel-template: "npm:^6.26.0"
- babel-traverse: "npm:^6.26.0"
- babel-types: "npm:^6.26.0"
- babylon: "npm:^6.18.0"
- convert-source-map: "npm:^1.5.1"
- debug: "npm:^2.6.9"
- json5: "npm:^0.5.1"
- lodash: "npm:^4.17.4"
- minimatch: "npm:^3.0.4"
- path-is-absolute: "npm:^1.0.1"
- private: "npm:^0.1.8"
- slash: "npm:^1.0.0"
- source-map: "npm:^0.5.7"
- checksum: 10/35bac77f434ff474234c2db43267949e30fd26c53b251b911632df36241782f4e3351c4361c3db9c22520be8cdc5011da0b13d5788fa4e8e64105b3d41281041
- languageName: node
- linkType: hard
-
"babel-core@npm:^7.0.0-bridge.0":
version: 7.0.0-bridge.0
resolution: "babel-core@npm:7.0.0-bridge.0"
@@ -13406,44 +13414,6 @@ __metadata:
languageName: node
linkType: hard
-"babel-generator@npm:^6.18.0, babel-generator@npm:^6.26.0":
- version: 6.26.1
- resolution: "babel-generator@npm:6.26.1"
- dependencies:
- babel-messages: "npm:^6.23.0"
- babel-runtime: "npm:^6.26.0"
- babel-types: "npm:^6.26.0"
- detect-indent: "npm:^4.0.0"
- jsesc: "npm:^1.3.0"
- lodash: "npm:^4.17.4"
- source-map: "npm:^0.5.7"
- trim-right: "npm:^1.0.1"
- checksum: 10/837616810a769a3aadfd1aa4ec01efb803eb5183ef7fa4098caa7ccdf8ed6c7e2866bd68047ee48839bb49d873a8b56d20bf20ee55a2ff430e43d67fcf17dc57
- languageName: node
- linkType: hard
-
-"babel-helpers@npm:^6.24.1":
- version: 6.24.1
- resolution: "babel-helpers@npm:6.24.1"
- dependencies:
- babel-runtime: "npm:^6.22.0"
- babel-template: "npm:^6.24.1"
- checksum: 10/0a49a75e1c639aebe6580f64c0dec602eb9ec9c33f9a27250c4981f52def6773b520d71ee3bbad6a91c0788ceadc127ce491e800d2a51f93c2a75f2d403850e3
- languageName: node
- linkType: hard
-
-"babel-jest@npm:^23.6.0":
- version: 23.6.0
- resolution: "babel-jest@npm:23.6.0"
- dependencies:
- babel-plugin-istanbul: "npm:^4.1.6"
- babel-preset-jest: "npm:^23.2.0"
- peerDependencies:
- babel-core: ^6.0.0 || ^7.0.0-0
- checksum: 10/c22e3342efa5f1aef6cdd9e404f13a111bad8235e73d3c5eba5159f2e0e0ded1d1d012334f4c2f27323d9802aafc440c375f586f9c3adabfac248fcaa1b6be3a
- languageName: node
- linkType: hard
-
"babel-jest@npm:^27.4.6, babel-jest@npm:^27.5.1":
version: 27.5.1
resolution: "babel-jest@npm:27.5.1"
@@ -13477,15 +13447,6 @@ __metadata:
languageName: node
linkType: hard
-"babel-messages@npm:^6.23.0":
- version: 6.23.0
- resolution: "babel-messages@npm:6.23.0"
- dependencies:
- babel-runtime: "npm:^6.22.0"
- checksum: 10/c8075c17587a33869e1a5bd0a5b73bbe395b68188362dacd5418debbc7c8fd784bcd3295e81ee7e410dc2c2655755add6af03698c522209f6a68334c15e6d6ca
- languageName: node
- linkType: hard
-
"babel-plugin-emotion@npm:^10.0.27":
version: 10.2.2
resolution: "babel-plugin-emotion@npm:10.2.2"
@@ -13504,18 +13465,6 @@ __metadata:
languageName: node
linkType: hard
-"babel-plugin-istanbul@npm:^4.1.6":
- version: 4.1.6
- resolution: "babel-plugin-istanbul@npm:4.1.6"
- dependencies:
- babel-plugin-syntax-object-rest-spread: "npm:^6.13.0"
- find-up: "npm:^2.1.0"
- istanbul-lib-instrument: "npm:^1.10.1"
- test-exclude: "npm:^4.2.1"
- checksum: 10/4776b3a5bb90dd92483249d879ef33805d0e23a58da6c68eda510fa89b2cee81c715ac3a2ad5375768c146c80ad418f7f019e633ffa5a5ab694fc083d32231d9
- languageName: node
- linkType: hard
-
"babel-plugin-istanbul@npm:^6.1.1":
version: 6.1.1
resolution: "babel-plugin-istanbul@npm:6.1.1"
@@ -13529,13 +13478,6 @@ __metadata:
languageName: node
linkType: hard
-"babel-plugin-jest-hoist@npm:^23.2.0":
- version: 23.2.0
- resolution: "babel-plugin-jest-hoist@npm:23.2.0"
- checksum: 10/d608911e52f2edd987ba9d12d8e335d61fe7aed5d531db860d23db3bcc828daf948c405f7590c5690612a8178d47159a055e11842be9c20f2908adb8b3691845
- languageName: node
- linkType: hard
-
"babel-plugin-jest-hoist@npm:^27.5.1":
version: 27.5.1
resolution: "babel-plugin-jest-hoist@npm:27.5.1"
@@ -13685,13 +13627,6 @@ __metadata:
languageName: node
linkType: hard
-"babel-plugin-syntax-object-rest-spread@npm:^6.13.0":
- version: 6.13.0
- resolution: "babel-plugin-syntax-object-rest-spread@npm:6.13.0"
- checksum: 10/14083f2783c760f5f199160f48e42ad4505fd35fc7cf9c4530812b176705259562b77db6d3ddc5e3cbce9e9b2b61ec9db3065941f0949b68e77cae3e395a6eef
- languageName: node
- linkType: hard
-
"babel-plugin-transform-async-to-promises@npm:^0.8.15":
version: 0.8.18
resolution: "babel-plugin-transform-async-to-promises@npm:0.8.18"
@@ -13743,16 +13678,6 @@ __metadata:
languageName: node
linkType: hard
-"babel-preset-jest@npm:^23.2.0":
- version: 23.2.0
- resolution: "babel-preset-jest@npm:23.2.0"
- dependencies:
- babel-plugin-jest-hoist: "npm:^23.2.0"
- babel-plugin-syntax-object-rest-spread: "npm:^6.13.0"
- checksum: 10/aa17dc7607612554fc8f42ba2200f446e1c3e78ba9632286093d109aa70bd273e76567484033dc5acbd608a0081a6b92afd540311d28da395606c7fd609713db
- languageName: node
- linkType: hard
-
"babel-preset-jest@npm:^27.5.1":
version: 27.5.1
resolution: "babel-preset-jest@npm:27.5.1"
@@ -13765,22 +13690,7 @@ __metadata:
languageName: node
linkType: hard
-"babel-register@npm:^6.26.0":
- version: 6.26.0
- resolution: "babel-register@npm:6.26.0"
- dependencies:
- babel-core: "npm:^6.26.0"
- babel-runtime: "npm:^6.26.0"
- core-js: "npm:^2.5.0"
- home-or-tmp: "npm:^2.0.0"
- lodash: "npm:^4.17.4"
- mkdirp: "npm:^0.5.1"
- source-map-support: "npm:^0.4.15"
- checksum: 10/5fb5502167f18534247c7777d1859b48e17d29799a84223c3a9163816cb7ad9f89d0b78d408c25c60822fd7bda66103cf02a4fc328beaea3c55bbfec3d369075
- languageName: node
- linkType: hard
-
-"babel-runtime@npm:6.26.0, babel-runtime@npm:^6.22.0, babel-runtime@npm:^6.23.0, babel-runtime@npm:^6.26.0":
+"babel-runtime@npm:6.26.0, babel-runtime@npm:^6.23.0, babel-runtime@npm:^6.26.0":
version: 6.26.0
resolution: "babel-runtime@npm:6.26.0"
dependencies:
@@ -13790,57 +13700,6 @@ __metadata:
languageName: node
linkType: hard
-"babel-template@npm:^6.16.0, babel-template@npm:^6.24.1, babel-template@npm:^6.26.0":
- version: 6.26.0
- resolution: "babel-template@npm:6.26.0"
- dependencies:
- babel-runtime: "npm:^6.26.0"
- babel-traverse: "npm:^6.26.0"
- babel-types: "npm:^6.26.0"
- babylon: "npm:^6.18.0"
- lodash: "npm:^4.17.4"
- checksum: 10/028dd57380f09b5641b74874a19073c53c4fb3f1696e849575aae18f8c80eaf21db75209057db862f3b893ce2cd9b795d539efa591b58f4a0fb011df0a56fbed
- languageName: node
- linkType: hard
-
-"babel-traverse@npm:^6.0.0, babel-traverse@npm:^6.18.0, babel-traverse@npm:^6.26.0":
- version: 6.26.0
- resolution: "babel-traverse@npm:6.26.0"
- dependencies:
- babel-code-frame: "npm:^6.26.0"
- babel-messages: "npm:^6.23.0"
- babel-runtime: "npm:^6.26.0"
- babel-types: "npm:^6.26.0"
- babylon: "npm:^6.18.0"
- debug: "npm:^2.6.8"
- globals: "npm:^9.18.0"
- invariant: "npm:^2.2.2"
- lodash: "npm:^4.17.4"
- checksum: 10/0a81da7fe59a5198503983acfdbcb1d02048ea486890cba0308e6620b24e46b2b95dd7dc2237dfc5f69941197370ff8f16f55eda0f17108f70ddb98b25ecc592
- languageName: node
- linkType: hard
-
-"babel-types@npm:^6.0.0, babel-types@npm:^6.18.0, babel-types@npm:^6.26.0":
- version: 6.26.0
- resolution: "babel-types@npm:6.26.0"
- dependencies:
- babel-runtime: "npm:^6.26.0"
- esutils: "npm:^2.0.2"
- lodash: "npm:^4.17.4"
- to-fast-properties: "npm:^1.0.3"
- checksum: 10/7ddab92e0dfbda4ddb69d2dbf5825ef4df18d47a609b6dbc452229a40291286aeaec7b2241e6c6755868a5840eca2e6cddcc0a7f571bb004d27b85d246c3d4d6
- languageName: node
- linkType: hard
-
-"babylon@npm:^6.18.0":
- version: 6.18.0
- resolution: "babylon@npm:6.18.0"
- bin:
- babylon: ./bin/babylon.js
- checksum: 10/b35e415886a012545305eede2fd3cbd6ec7c54ed0b19e74f9c3478831fef9bbc24f1c3917e29b338d76d8e58ad1c895a296e27c8f76cef4f3be1ccaad3bfaecb
- languageName: node
- linkType: hard
-
"bail@npm:^2.0.0":
version: 2.0.2
resolution: "bail@npm:2.0.2"
@@ -13885,18 +13744,10 @@ __metadata:
languageName: node
linkType: hard
-"base@npm:^0.11.1":
- version: 0.11.2
- resolution: "base@npm:0.11.2"
- dependencies:
- cache-base: "npm:^1.0.1"
- class-utils: "npm:^0.3.5"
- component-emitter: "npm:^1.2.1"
- define-property: "npm:^1.0.0"
- isobject: "npm:^3.0.1"
- mixin-deep: "npm:^1.2.0"
- pascalcase: "npm:^0.1.1"
- checksum: 10/33b0c5d570840873cf370248e653d43e8d82ce4f03161ad3c58b7da6238583cfc65bf4bbb06b27050d6c2d8f40628777f3933f483c0a7c0274fcef4c51f70a7e
+"batch-processor@npm:1.0.0":
+ version: 1.0.0
+ resolution: "batch-processor@npm:1.0.0"
+ checksum: 10/59452655203eeb94101770a4c31a3aa81a60f6403ef4e66870f2970f0873ebc795c442610aa420be34535f1e51d644a12f0c5a37fb3bde08bf5c00109ee67d97
languageName: node
linkType: hard
@@ -13967,15 +13818,6 @@ __metadata:
languageName: node
linkType: hard
-"bindings@npm:^1.5.0":
- version: 1.5.0
- resolution: "bindings@npm:1.5.0"
- dependencies:
- file-uri-to-path: "npm:1.0.0"
- checksum: 10/593d5ae975ffba15fbbb4788fe5abd1e125afbab849ab967ab43691d27d6483751805d98cb92f7ac24a2439a8a8678cd0131c535d5d63de84e383b0ce2786133
- languageName: node
- linkType: hard
-
"bit-twiddle@npm:^1.0.0":
version: 1.0.2
resolution: "bit-twiddle@npm:1.0.2"
@@ -14124,35 +13966,6 @@ __metadata:
languageName: node
linkType: hard
-"braces@npm:^1.8.2":
- version: 1.8.5
- resolution: "braces@npm:1.8.5"
- dependencies:
- expand-range: "npm:^1.8.1"
- preserve: "npm:^0.2.0"
- repeat-element: "npm:^1.1.2"
- checksum: 10/0750559062fc484507bcf2c4ab1a5d11354ab85e8d08b3c96b684bebe1deaa533a879b8ae5061215603950d95831c49a01432641f94d1c0301b3dead480a9476
- languageName: node
- linkType: hard
-
-"braces@npm:^2.3.1":
- version: 2.3.2
- resolution: "braces@npm:2.3.2"
- dependencies:
- arr-flatten: "npm:^1.1.0"
- array-unique: "npm:^0.3.2"
- extend-shallow: "npm:^2.0.1"
- fill-range: "npm:^4.0.0"
- isobject: "npm:^3.0.1"
- repeat-element: "npm:^1.1.2"
- snapdragon: "npm:^0.8.1"
- snapdragon-node: "npm:^2.0.1"
- split-string: "npm:^3.0.2"
- to-regex: "npm:^3.0.1"
- checksum: 10/7c0f0d962570812009b050ee2e6243fd425ea80d3136aace908d0038bde9e7a43e9326fa35538cebf7c753f0482655f08ea11be074c9a140394287980a5c66c9
- languageName: node
- linkType: hard
-
"braces@npm:^3.0.2, braces@npm:~3.0.2":
version: 3.0.2
resolution: "braces@npm:3.0.2"
@@ -14199,15 +14012,6 @@ __metadata:
languageName: node
linkType: hard
-"browser-resolve@npm:^1.11.3":
- version: 1.11.3
- resolution: "browser-resolve@npm:1.11.3"
- dependencies:
- resolve: "npm:1.1.7"
- checksum: 10/9755391a7d26aa36dc9666c3335448b6f507588c57c30f9b49b46f39e91946459391d754c540016806c8edc15b5c549349876a6995da71cdec55b47422e57041
- languageName: node
- linkType: hard
-
"browserify-zlib@npm:^0.1.4":
version: 0.1.4
resolution: "browserify-zlib@npm:0.1.4"
@@ -14273,15 +14077,6 @@ __metadata:
languageName: node
linkType: hard
-"bs-logger@npm:0.x":
- version: 0.2.6
- resolution: "bs-logger@npm:0.2.6"
- dependencies:
- fast-json-stable-stringify: "npm:2.x"
- checksum: 10/e6d3ff82698bb3f20ce64fb85355c5716a3cf267f3977abe93bf9c32a2e46186b253f48a028ae5b96ab42bacd2c826766d9ae8cf6892f9b944656be9113cf212
- languageName: node
- linkType: hard
-
"bser@npm:2.1.1":
version: 2.1.1
resolution: "bser@npm:2.1.1"
@@ -14305,7 +14100,7 @@ __metadata:
languageName: node
linkType: hard
-"buffer-from@npm:1.x, buffer-from@npm:^1.0.0, buffer-from@npm:^1.1.0":
+"buffer-from@npm:^1.0.0":
version: 1.1.2
resolution: "buffer-from@npm:1.1.2"
checksum: 10/0448524a562b37d4d7ed9efd91685a5b77a50672c556ea254ac9a6d30e3403a517d8981f10e565db24e8339413b43c97ca2951f10e399c6125a0d8911f5679bb
@@ -14322,13 +14117,6 @@ __metadata:
languageName: node
linkType: hard
-"builtin-modules@npm:^1.1.1":
- version: 1.1.1
- resolution: "builtin-modules@npm:1.1.1"
- checksum: 10/0fbf69ffe77fecf11c441b9a7d1e664bb8119a7d3004831d9bd6ce0eacfd5d121ed4b667172870b5f66ecfce4bd54f7c20060d21c339c29049a7a5dd2bb7bf8c
- languageName: node
- linkType: hard
-
"builtin-modules@npm:^3.1.0, builtin-modules@npm:^3.3.0":
version: 3.3.0
resolution: "builtin-modules@npm:3.3.0"
@@ -14343,6 +14131,15 @@ __metadata:
languageName: node
linkType: hard
+"busboy@npm:^1.6.0":
+ version: 1.6.0
+ resolution: "busboy@npm:1.6.0"
+ dependencies:
+ streamsearch: "npm:^1.1.0"
+ checksum: 10/bee10fa10ea58e7e3e7489ffe4bda6eacd540a17de9f9cd21cc37e297b2dd9fe52b2715a5841afaec82900750d810d01d7edb4b2d456427f449b92b417579763
+ languageName: node
+ linkType: hard
+
"byline@npm:^5.0.0":
version: 5.0.0
resolution: "byline@npm:5.0.0"
@@ -14371,7 +14168,7 @@ __metadata:
languageName: node
linkType: hard
-"cac@npm:^6.0.0":
+"cac@npm:^6.0.0, cac@npm:^6.7.14":
version: 6.7.14
resolution: "cac@npm:6.7.14"
checksum: 10/002769a0fbfc51c062acd2a59df465a2a947916b02ac50b56c69ec6c018ee99ac3e7f4dd7366334ea847f1ecacf4defaa61bcd2ac283db50156ce1f1d8c8ad42
@@ -14421,23 +14218,6 @@ __metadata:
languageName: node
linkType: hard
-"cache-base@npm:^1.0.1":
- version: 1.0.1
- resolution: "cache-base@npm:1.0.1"
- dependencies:
- collection-visit: "npm:^1.0.0"
- component-emitter: "npm:^1.2.1"
- get-value: "npm:^2.0.6"
- has-value: "npm:^1.0.0"
- isobject: "npm:^3.0.1"
- set-value: "npm:^2.0.0"
- to-object-path: "npm:^0.3.0"
- union-value: "npm:^1.0.0"
- unset-value: "npm:^1.0.0"
- checksum: 10/50dd11af5ce4aaa8a8bff190a870c940db80234cf087cd47dd177be8629c36ad8cd0716e62418ec1e135f2d01b28aafff62cd22d33412c3d18b2109dd9073711
- languageName: node
- linkType: hard
-
"cacheable-lookup@npm:^5.0.3":
version: 5.0.4
resolution: "cacheable-lookup@npm:5.0.4"
@@ -14445,21 +14225,6 @@ __metadata:
languageName: node
linkType: hard
-"cacheable-request@npm:^6.0.0":
- version: 6.1.0
- resolution: "cacheable-request@npm:6.1.0"
- dependencies:
- clone-response: "npm:^1.0.2"
- get-stream: "npm:^5.1.0"
- http-cache-semantics: "npm:^4.0.0"
- keyv: "npm:^3.0.0"
- lowercase-keys: "npm:^2.0.0"
- normalize-url: "npm:^4.1.0"
- responselike: "npm:^1.0.2"
- checksum: 10/804f6c377ce6fef31c584babde31d55c69305569058ad95c24a41bb7b33d0ea188d388467a9da6cb340e95a3a1f8a94e1f3a709fef5eaf9c6b88e62448fa29be
- languageName: node
- linkType: hard
-
"cacheable-request@npm:^7.0.2":
version: 7.0.4
resolution: "cacheable-request@npm:7.0.4"
@@ -14475,13 +14240,6 @@ __metadata:
languageName: node
linkType: hard
-"cachedir@npm:2.3.0":
- version: 2.3.0
- resolution: "cachedir@npm:2.3.0"
- checksum: 10/ec90cb0f2e6336e266aa748dbadf3da9e0b20e843e43f1591acab7a3f1451337dc2f26cb9dd833ae8cfefeffeeb43ef5b5ff62782a685f4e3c2305dd98482fcb
- languageName: node
- linkType: hard
-
"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2":
version: 1.0.2
resolution: "call-bind@npm:1.0.2"
@@ -14648,15 +14406,6 @@ __metadata:
languageName: node
linkType: hard
-"capture-exit@npm:^1.2.0":
- version: 1.2.0
- resolution: "capture-exit@npm:1.2.0"
- dependencies:
- rsvp: "npm:^3.3.3"
- checksum: 10/8d38f66d36cdc891fc5371315c0e6e8e094bfb86d769f0781d8acf1551ef513a43f5b8bd4c984255fc85ce4cc7a111f334d2aae454b86eef535d44ddec344ec7
- languageName: node
- linkType: hard
-
"capture-stack-trace@npm:^1.0.0":
version: 1.0.2
resolution: "capture-stack-trace@npm:1.0.2"
@@ -14724,7 +14473,7 @@ __metadata:
languageName: node
linkType: hard
-"chalk@npm:^2.0.1, chalk@npm:^2.1.0, chalk@npm:^2.3.0, chalk@npm:^2.3.1, chalk@npm:^2.3.2, chalk@npm:^2.4.1, chalk@npm:^2.4.2":
+"chalk@npm:^2.0.1, chalk@npm:^2.3.2, chalk@npm:^2.4.1, chalk@npm:^2.4.2":
version: 2.4.2
resolution: "chalk@npm:2.4.2"
dependencies:
@@ -14745,7 +14494,7 @@ __metadata:
languageName: node
linkType: hard
-"chalk@npm:^4.0.0, chalk@npm:^4.0.2, chalk@npm:^4.1.0, chalk@npm:^4.1.1, chalk@npm:^4.1.2":
+"chalk@npm:^4.0.0, chalk@npm:^4.0.2, chalk@npm:^4.1.0, chalk@npm:^4.1.2":
version: 4.1.2
resolution: "chalk@npm:4.1.2"
dependencies:
@@ -14842,13 +14591,6 @@ __metadata:
languageName: node
linkType: hard
-"chardet@npm:^0.7.0":
- version: 0.7.0
- resolution: "chardet@npm:0.7.0"
- checksum: 10/b0ec668fba5eeec575ed2559a0917ba41a6481f49063c8445400e476754e0957ee09e44dc032310f526182b8f1bf25e9d4ed371f74050af7be1383e06bc44952
- languageName: node
- linkType: hard
-
"chart.js@npm:^1.0.2":
version: 1.1.1
resolution: "chart.js@npm:1.1.1"
@@ -14889,7 +14631,7 @@ __metadata:
languageName: node
linkType: hard
-"chroma-js@npm:^2.1.0, chroma-js@npm:^2.4.2":
+"chroma-js@npm:^2.0.6, chroma-js@npm:^2.1.0, chroma-js@npm:^2.4.2":
version: 2.4.2
resolution: "chroma-js@npm:2.4.2"
checksum: 10/2fb16f4189de7818abf9e4d61ab3afc76d4013ebdef36982105c41df834dc5050b04afff1b9559914edab384b39cbe61b26cbdcd4142d39532b1b0f2a2f14f76
@@ -14956,18 +14698,6 @@ __metadata:
languageName: node
linkType: hard
-"class-utils@npm:^0.3.5":
- version: 0.3.6
- resolution: "class-utils@npm:0.3.6"
- dependencies:
- arr-union: "npm:^3.1.0"
- define-property: "npm:^0.2.5"
- isobject: "npm:^3.0.0"
- static-extend: "npm:^0.1.1"
- checksum: 10/b236d9deb6594828966e45c5f48abac9a77453ee0dbdb89c635ce876f59755d7952309d554852b6f7d909198256c335a4bd51b09c1d238b36b92152eb2b9d47a
- languageName: node
- linkType: hard
-
"classnames@npm:*, classnames@npm:^2.2.5, classnames@npm:^2.2.6, classnames@npm:^2.3.0, classnames@npm:^2.3.1, classnames@npm:^2.3.2":
version: 2.3.2
resolution: "classnames@npm:2.3.2"
@@ -15015,15 +14745,6 @@ __metadata:
languageName: node
linkType: hard
-"cli-cursor@npm:^2.0.0, cli-cursor@npm:^2.1.0":
- version: 2.1.0
- resolution: "cli-cursor@npm:2.1.0"
- dependencies:
- restore-cursor: "npm:^2.0.0"
- checksum: 10/d88e97bfdac01046a3ffe7d49f06757b3126559d7e44aa2122637eb179284dc6cd49fca2fac4f67c19faaf7e6dab716b6fe1dfcd309977407d8c7578ec2d044d
- languageName: node
- linkType: hard
-
"cli-cursor@npm:^3.1.0":
version: 3.1.0
resolution: "cli-cursor@npm:3.1.0"
@@ -15076,23 +14797,6 @@ __metadata:
languageName: node
linkType: hard
-"cli-truncate@npm:^0.2.1":
- version: 0.2.1
- resolution: "cli-truncate@npm:0.2.1"
- dependencies:
- slice-ansi: "npm:0.0.4"
- string-width: "npm:^1.0.1"
- checksum: 10/c2b0de7c08915eab1e660884251411ad31691c5036a876f98e1bf747f1c165dc8345afdba92b7efb3678478c9fc17c9c9c47c76d181e35478aaa1047459f98aa
- languageName: node
- linkType: hard
-
-"cli-width@npm:^3.0.0":
- version: 3.0.0
- resolution: "cli-width@npm:3.0.0"
- checksum: 10/8730848b04fb189666ab037a35888d191c8f05b630b1d770b0b0e4c920b47bb5cc14bddf6b8ffe5bfc66cee97c8211d4d18e756c1ffcc75d7dbe7e1186cd7826
- languageName: node
- linkType: hard
-
"clipanion@npm:^4.0.0-rc.2":
version: 4.0.0-rc.2
resolution: "clipanion@npm:4.0.0-rc.2"
@@ -15104,17 +14808,6 @@ __metadata:
languageName: node
linkType: hard
-"cliui@npm:^4.0.0":
- version: 4.1.0
- resolution: "cliui@npm:4.1.0"
- dependencies:
- string-width: "npm:^2.1.1"
- strip-ansi: "npm:^4.0.0"
- wrap-ansi: "npm:^2.0.0"
- checksum: 10/b73eea68d48774dc178ac6aeb411c7000c1d9a5ae532e5a1d496f395acb797c47337e32285d54448d60d7d703e4ac6398d65f2db26bcadc3c73e59a2027471f3
- languageName: node
- linkType: hard
-
"cliui@npm:^5.0.0":
version: 5.0.0
resolution: "cliui@npm:5.0.0"
@@ -15231,16 +14924,6 @@ __metadata:
languageName: node
linkType: hard
-"collection-visit@npm:^1.0.0":
- version: 1.0.0
- resolution: "collection-visit@npm:1.0.0"
- dependencies:
- map-visit: "npm:^1.0.0"
- object-visit: "npm:^1.0.0"
- checksum: 10/15d9658fe6eb23594728346adad5433b86bb7a04fd51bbab337755158722f9313a5376ef479de5b35fbc54140764d0d39de89c339f5d25b959ed221466981da9
- languageName: node
- linkType: hard
-
"color-convert@npm:^1.9.0, color-convert@npm:^1.9.3":
version: 1.9.3
resolution: "color-convert@npm:1.9.3"
@@ -15323,7 +15006,7 @@ __metadata:
languageName: node
linkType: hard
-"colors@npm:^1.1.2, colors@npm:^1.3.2":
+"colors@npm:^1.1.2":
version: 1.4.0
resolution: "colors@npm:1.4.0"
checksum: 10/90b2d5465159813a3983ea72ca8cff75f784824ad70f2cc2b32c233e95bcfbcda101ebc6d6766bc50f57263792629bfb4f1f8a4dfbd1d240f229fc7f69b785fc
@@ -15363,7 +15046,7 @@ __metadata:
languageName: node
linkType: hard
-"commander@npm:2, commander@npm:^2.12.1, commander@npm:^2.14.1, commander@npm:^2.20.0, commander@npm:^2.9.0":
+"commander@npm:2, commander@npm:^2.20.0":
version: 2.20.3
resolution: "commander@npm:2.20.3"
checksum: 10/90c5b6898610cd075984c58c4f88418a4fb44af08c1b1415e9854c03171bec31b336b7f3e4cefe33de994b3f12b03c5e2d638da4316df83593b9e82554e7e95b
@@ -15403,32 +15086,6 @@ __metadata:
languageName: node
linkType: hard
-"commitizen@npm:^4.0.3, commitizen@npm:^4.1.2":
- version: 4.3.0
- resolution: "commitizen@npm:4.3.0"
- dependencies:
- cachedir: "npm:2.3.0"
- cz-conventional-changelog: "npm:3.3.0"
- dedent: "npm:0.7.0"
- detect-indent: "npm:6.1.0"
- find-node-modules: "npm:^2.1.2"
- find-root: "npm:1.1.0"
- fs-extra: "npm:9.1.0"
- glob: "npm:7.2.3"
- inquirer: "npm:8.2.5"
- is-utf8: "npm:^0.2.1"
- lodash: "npm:4.17.21"
- minimist: "npm:1.2.7"
- strip-bom: "npm:4.0.0"
- strip-json-comments: "npm:3.1.1"
- bin:
- commitizen: bin/commitizen
- cz: bin/git-cz
- git-cz: bin/git-cz
- checksum: 10/45a82b7fdeb901654b39de37567995ef99c6e33e02406b25dd1059a75f880d9cd593fa4d52a32b2e70baef8754bb32c1bf8e5b9d9336f32087bf7f451cb3f72c
- languageName: node
- linkType: hard
-
"commondir@npm:^1.0.1":
version: 1.0.1
resolution: "commondir@npm:1.0.1"
@@ -15456,20 +15113,6 @@ __metadata:
languageName: node
linkType: hard
-"compare-versions@npm:^3.6.0":
- version: 3.6.0
- resolution: "compare-versions@npm:3.6.0"
- checksum: 10/7492a50cdaa2c27f5254eee7c4b38856e1c164991bab3d98d7fd067fe4b570d47123ecb92523b78338be86aa221668fd3868bfe8caa5587dc3ebbe1a03d52b5d
- languageName: node
- linkType: hard
-
-"component-emitter@npm:^1.2.1":
- version: 1.3.0
- resolution: "component-emitter@npm:1.3.0"
- checksum: 10/dfc1ec2e7aa2486346c068f8d764e3eefe2e1ca0b24f57506cd93b2ae3d67829a7ebd7cc16e2bf51368fac2f45f78fcff231718e40b1975647e4a86be65e1d05
- languageName: node
- linkType: hard
-
"compressible@npm:~2.0.16":
version: 2.0.18
resolution: "compressible@npm:2.0.18"
@@ -15663,13 +15306,6 @@ __metadata:
languageName: node
linkType: hard
-"conventional-commit-types@npm:^3.0.0":
- version: 3.0.0
- resolution: "conventional-commit-types@npm:3.0.0"
- checksum: 10/1c6d9b9693b5c40b67b86780d15baf607b4893c3014aa857015ab59d0c8915bf67cdf0d6def820c0d157da796ad75ca9c9174a642a936db18072683f58d40666
- languageName: node
- linkType: hard
-
"conventional-commits-filter@npm:^2.0.0, conventional-commits-filter@npm:^2.0.7":
version: 2.0.7
resolution: "conventional-commits-filter@npm:2.0.7"
@@ -15797,13 +15433,6 @@ __metadata:
languageName: node
linkType: hard
-"copy-descriptor@npm:^0.1.0":
- version: 0.1.1
- resolution: "copy-descriptor@npm:0.1.1"
- checksum: 10/edf4651bce36166c7fcc60b5c1db2c5dad1d87820f468507331dd154b686ece8775f5d383127d44aeef813462520c866f83908aa2d4291708f898df776816860
- languageName: node
- linkType: hard
-
"copy-to-clipboard@npm:^3.3.1":
version: 3.3.3
resolution: "copy-to-clipboard@npm:3.3.3"
@@ -15898,18 +15527,6 @@ __metadata:
languageName: node
linkType: hard
-"cosmiconfig-typescript-loader@npm:^4.0.0":
- version: 4.4.0
- resolution: "cosmiconfig-typescript-loader@npm:4.4.0"
- peerDependencies:
- "@types/node": "*"
- cosmiconfig: ">=7"
- ts-node: ">=10"
- typescript: ">=4"
- checksum: 10/7450491304cf498aa8bf9bffab5aaa189c1abc3e763e4ca7afca32d7c62cdba9abbc032e754ec2a6980580127c39d7227e9e5ea453c3456f150ab09196ae2661
- languageName: node
- linkType: hard
-
"cosmiconfig@npm:^5.0.0, cosmiconfig@npm:^5.2.0":
version: 5.2.1
resolution: "cosmiconfig@npm:5.2.1"
@@ -15965,21 +15582,6 @@ __metadata:
languageName: node
linkType: hard
-"coveralls@npm:^3.0.2":
- version: 3.1.1
- resolution: "coveralls@npm:3.1.1"
- dependencies:
- js-yaml: "npm:^3.13.1"
- lcov-parse: "npm:^1.0.0"
- log-driver: "npm:^1.2.7"
- minimist: "npm:^1.2.5"
- request: "npm:^2.88.2"
- bin:
- coveralls: bin/coveralls.js
- checksum: 10/2508710c0b29a92e45c1cd401f55da0ac1a1b57b3ccf8b359690648e50f4f13fd34c53eeda7fd8e6817ce285f70f666b972937c959785b1b82bd00450011445d
- languageName: node
- linkType: hard
-
"create-error-class@npm:^3.0.0":
version: 3.0.2
resolution: "create-error-class@npm:3.0.2"
@@ -16102,6 +15704,13 @@ __metadata:
languageName: node
linkType: hard
+"css-list-helpers@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "css-list-helpers@npm:2.0.0"
+ checksum: 10/026ab2b208d2f999162b61bc98dadf7bda587b8a8cf666eb45d3a9db5628c9c0cf345a10720f6f3e3d8bccb568ea78793f5d9ef0851afe820c796af414029990
+ languageName: node
+ linkType: hard
+
"css-loader@npm:^6.2.0":
version: 6.8.1
resolution: "css-loader@npm:6.8.1"
@@ -16394,13 +16003,6 @@ __metadata:
languageName: node
linkType: hard
-"cssom@npm:0.3.x, cssom@npm:>= 0.3.2 < 0.4.0, cssom@npm:~0.3.6":
- version: 0.3.8
- resolution: "cssom@npm:0.3.8"
- checksum: 10/49eacc88077555e419646c0ea84ddc73c97e3a346ad7cb95e22f9413a9722d8964b91d781ce21d378bd5ae058af9a745402383fa4e35e9cdfd19654b63f892a9
- languageName: node
- linkType: hard
-
"cssom@npm:^0.4.4":
version: 0.4.4
resolution: "cssom@npm:0.4.4"
@@ -16408,12 +16010,10 @@ __metadata:
languageName: node
linkType: hard
-"cssstyle@npm:^1.0.0":
- version: 1.4.0
- resolution: "cssstyle@npm:1.4.0"
- dependencies:
- cssom: "npm:0.3.x"
- checksum: 10/cc8ed156d75767f4e84757726a3a2ed2044812f43da875e5bb486fddfda0473e33d63505956e44349ffbabb99fc1bf7f27863463a126524a111a4cea3c59bad1
+"cssom@npm:~0.3.6":
+ version: 0.3.8
+ resolution: "cssom@npm:0.3.8"
+ checksum: 10/49eacc88077555e419646c0ea84ddc73c97e3a346ad7cb95e22f9413a9722d8964b91d781ce21d378bd5ae058af9a745402383fa4e35e9cdfd19654b63f892a9
languageName: node
linkType: hard
@@ -16479,25 +16079,7 @@ __metadata:
languageName: node
linkType: hard
-"cz-conventional-changelog@npm:3.3.0, cz-conventional-changelog@npm:^3.2.0":
- version: 3.3.0
- resolution: "cz-conventional-changelog@npm:3.3.0"
- dependencies:
- "@commitlint/load": "npm:>6.1.1"
- chalk: "npm:^2.4.1"
- commitizen: "npm:^4.0.3"
- conventional-commit-types: "npm:^3.0.0"
- lodash.map: "npm:^4.5.1"
- longest: "npm:^2.0.1"
- word-wrap: "npm:^1.0.3"
- dependenciesMeta:
- "@commitlint/load":
- optional: true
- checksum: 10/790c201a7fbbf082f780fa0542843a3f85bb6894d29194e544440edaacc727ad9c11cfd526de766bf8e1c89ddec66bc7d489e2b2af2bcf092022b554f3d1ee73
- languageName: node
- linkType: hard
-
-"d3-array@npm:1, d3-array@npm:^1.2.0":
+"d3-array@npm:1, d3-array@npm:^1.1.1, d3-array@npm:^1.2.0":
version: 1.2.4
resolution: "d3-array@npm:1.2.4"
checksum: 10/0071ad73c23d9acba38997d6d3c402d9c1478514c401bd106ed6e049f3800044897f7b450c942dcca9b831e7d6637449bc22c53eeffe054b463c98739d7bf9bf
@@ -16522,7 +16104,7 @@ __metadata:
languageName: node
linkType: hard
-"d3-axis@npm:^1.0.12":
+"d3-axis@npm:1, d3-axis@npm:^1.0.12":
version: 1.0.12
resolution: "d3-axis@npm:1.0.12"
checksum: 10/f28e9abb24cfae585c8860691f822b478de16dabb3bc3c5a2de6c235da13b2bf44c4f1c86e98483528eed420f5f4fae469dc2a31882cac4dd9c0e7933ddd04a8
@@ -16536,6 +16118,29 @@ __metadata:
languageName: node
linkType: hard
+"d3-brush@npm:1":
+ version: 1.1.6
+ resolution: "d3-brush@npm:1.1.6"
+ dependencies:
+ d3-dispatch: "npm:1"
+ d3-drag: "npm:1"
+ d3-interpolate: "npm:1"
+ d3-selection: "npm:1"
+ d3-transition: "npm:1"
+ checksum: 10/44c0df7fbbd840a89983021be7ff7a415251a99fb2fbecb43e7fa1e874e792f75c445870c38e57f25ca7b5acb8dd322a7baca573e141673db2ae05dfd4a4507a
+ languageName: node
+ linkType: hard
+
+"d3-chord@npm:1":
+ version: 1.0.6
+ resolution: "d3-chord@npm:1.0.6"
+ dependencies:
+ d3-array: "npm:1"
+ d3-path: "npm:1"
+ checksum: 10/a4f6693ac77f177309d4800b84abbcb10966e3e714d425de24c25557bf7b3db812598421ead85572cc7bab70ac1ffeb80d17074745ea4b49f6e8c8422c55a588
+ languageName: node
+ linkType: hard
+
"d3-collection@npm:1":
version: 1.0.7
resolution: "d3-collection@npm:1.0.7"
@@ -16564,6 +16169,15 @@ __metadata:
languageName: node
linkType: hard
+"d3-contour@npm:1":
+ version: 1.3.2
+ resolution: "d3-contour@npm:1.3.2"
+ dependencies:
+ d3-array: "npm:^1.1.1"
+ checksum: 10/03567465ede729befdf18868ea1bbf5f37005e3bfdc69248b082dca7f2377ac8daed83a2815581139360719b54de8e871f6b4daeeee1d8ae0eca805c37804019
+ languageName: node
+ linkType: hard
+
"d3-delaunay@npm:6":
version: 6.0.4
resolution: "d3-delaunay@npm:6.0.4"
@@ -16590,6 +16204,27 @@ __metadata:
languageName: node
linkType: hard
+"d3-dsv@npm:1":
+ version: 1.2.0
+ resolution: "d3-dsv@npm:1.2.0"
+ dependencies:
+ commander: "npm:2"
+ iconv-lite: "npm:0.4"
+ rw: "npm:1"
+ bin:
+ csv2json: bin/dsv2json
+ csv2tsv: bin/dsv2dsv
+ dsv2dsv: bin/dsv2dsv
+ dsv2json: bin/dsv2json
+ json2csv: bin/json2dsv
+ json2dsv: bin/json2dsv
+ json2tsv: bin/json2dsv
+ tsv2csv: bin/dsv2dsv
+ tsv2json: bin/dsv2json
+ checksum: 10/ce9f8a90226712f42bedf0b8a8f6bb8960aefdbde417e4692d8af4f24fb31508954132922854ee201d02ce64f8dc9a33331d82b4d04df9374170cfd536deb21d
+ languageName: node
+ linkType: hard
+
"d3-ease@npm:1":
version: 1.0.7
resolution: "d3-ease@npm:1.0.7"
@@ -16597,6 +16232,27 @@ __metadata:
languageName: node
linkType: hard
+"d3-fetch@npm:1":
+ version: 1.2.0
+ resolution: "d3-fetch@npm:1.2.0"
+ dependencies:
+ d3-dsv: "npm:1"
+ checksum: 10/5a42e69683de3fbeecc0289d0ad5d6a4e144a6343e173cc5af5fbca16a17944a866a0f37e1c5953508b157de65e6f8ba8ca30e9cf5b6a38a6f6db482641bc9ae
+ languageName: node
+ linkType: hard
+
+"d3-force@npm:1":
+ version: 1.2.1
+ resolution: "d3-force@npm:1.2.1"
+ dependencies:
+ d3-collection: "npm:1"
+ d3-dispatch: "npm:1"
+ d3-quadtree: "npm:1"
+ d3-timer: "npm:1"
+ checksum: 10/31e6aed028ff09ec005bd8a811e521a448437a554a5ef92813261bb900a4ae4b16b5ecd02593fa0c8bc8345007ab798b95ce245d60b971109a3fa8eef4b07579
+ languageName: node
+ linkType: hard
+
"d3-format@npm:1 - 2, d3-format@npm:^2.0.0":
version: 2.0.0
resolution: "d3-format@npm:2.0.0"
@@ -16639,6 +16295,15 @@ __metadata:
languageName: node
linkType: hard
+"d3-geo@npm:1, d3-geo@npm:^1.11.9, d3-geo@npm:^1.12.1":
+ version: 1.12.1
+ resolution: "d3-geo@npm:1.12.1"
+ dependencies:
+ d3-array: "npm:1"
+ checksum: 10/c8f1f8254c3e47a3d514606f166f2c200c2979b31b7530cdfde23146f3f266d2dbb08bab97a1ac4515eb8478d8e76c399889195e0ee55f6365b83e6ea628a9eb
+ languageName: node
+ linkType: hard
+
"d3-geo@npm:1.7.1":
version: 1.7.1
resolution: "d3-geo@npm:1.7.1"
@@ -16657,16 +16322,7 @@ __metadata:
languageName: node
linkType: hard
-"d3-geo@npm:^1.11.9":
- version: 1.12.1
- resolution: "d3-geo@npm:1.12.1"
- dependencies:
- d3-array: "npm:1"
- checksum: 10/c8f1f8254c3e47a3d514606f166f2c200c2979b31b7530cdfde23146f3f266d2dbb08bab97a1ac4515eb8478d8e76c399889195e0ee55f6365b83e6ea628a9eb
- languageName: node
- linkType: hard
-
-"d3-hierarchy@npm:^1.1.4":
+"d3-hierarchy@npm:1, d3-hierarchy@npm:^1.1.4":
version: 1.1.9
resolution: "d3-hierarchy@npm:1.1.9"
checksum: 10/d2a4e518c3e35de15e0ac7f0a420300a658435850fc32eaf15b7811697e34565b89012e07e60a53babb723dc43df8981102079b4097b790b42ac21c8d23c0424
@@ -16714,6 +16370,20 @@ __metadata:
languageName: node
linkType: hard
+"d3-polygon@npm:1":
+ version: 1.0.6
+ resolution: "d3-polygon@npm:1.0.6"
+ checksum: 10/4a9764c2064d15e9f4fc9018c975f127540f6e701c18442e2a2e9339e743726f40e017d5213982d983cac3c23802321c257f2a10e686c803ec5533c6ff42bb7a
+ languageName: node
+ linkType: hard
+
+"d3-quadtree@npm:1":
+ version: 1.0.7
+ resolution: "d3-quadtree@npm:1.0.7"
+ checksum: 10/73d6c72ea4c41a3c287a8d55a897ef58b61681734d59c55b46c8bbff1ce31531f5615d4b8cd0156dcf43529466e9548c56c034bcda68807bc31af182d1179d5e
+ languageName: node
+ linkType: hard
+
"d3-queue@npm:1":
version: 1.2.3
resolution: "d3-queue@npm:1.2.3"
@@ -16721,20 +16391,24 @@ __metadata:
languageName: node
linkType: hard
-"d3-scale@npm:4, d3-scale@npm:^4.0.2":
- version: 4.0.2
- resolution: "d3-scale@npm:4.0.2"
+"d3-random@npm:1":
+ version: 1.1.2
+ resolution: "d3-random@npm:1.1.2"
+ checksum: 10/602e043b28b638f8e5b656c7ede039b3da21a38cab9cc3e01f96d104223f955b83b9c5f241d9d5743e485048f62fe4a18cf52cc2348e4fd6f2195d6b1b2ce62b
+ languageName: node
+ linkType: hard
+
+"d3-scale-chromatic@npm:1":
+ version: 1.5.0
+ resolution: "d3-scale-chromatic@npm:1.5.0"
dependencies:
- d3-array: "npm:2.10.0 - 3"
- d3-format: "npm:1 - 3"
- d3-interpolate: "npm:1.2.0 - 3"
- d3-time: "npm:2.1.1 - 3"
- d3-time-format: "npm:2 - 4"
- checksum: 10/e2dc4243586eae2a0fdf91de1df1a90d51dfacb295933f0ca7e9184c31203b01436bef69906ad40f1100173a5e6197ae753cb7b8a1a8fcfda43194ea9cad6493
+ d3-color: "npm:1"
+ d3-interpolate: "npm:1"
+ checksum: 10/0d000b88efed3b251f032927a20847bb2f8b982a24a3a22a05180d6c3ffe0d38abfa16e6fc1c3a00780a63f350edc7ad0ca28053237fa6c3788eabd0b6abea88
languageName: node
linkType: hard
-"d3-scale@npm:^2.2.2":
+"d3-scale@npm:2, d3-scale@npm:^2.2.2":
version: 2.2.2
resolution: "d3-scale@npm:2.2.2"
dependencies:
@@ -16748,6 +16422,19 @@ __metadata:
languageName: node
linkType: hard
+"d3-scale@npm:4, d3-scale@npm:^4.0.2":
+ version: 4.0.2
+ resolution: "d3-scale@npm:4.0.2"
+ dependencies:
+ d3-array: "npm:2.10.0 - 3"
+ d3-format: "npm:1 - 3"
+ d3-interpolate: "npm:1.2.0 - 3"
+ d3-time: "npm:2.1.1 - 3"
+ d3-time-format: "npm:2 - 4"
+ checksum: 10/e2dc4243586eae2a0fdf91de1df1a90d51dfacb295933f0ca7e9184c31203b01436bef69906ad40f1100173a5e6197ae753cb7b8a1a8fcfda43194ea9cad6493
+ languageName: node
+ linkType: hard
+
"d3-scale@npm:^3.2.1, d3-scale@npm:^3.3.0":
version: 3.3.0
resolution: "d3-scale@npm:3.3.0"
@@ -16768,7 +16455,7 @@ __metadata:
languageName: node
linkType: hard
-"d3-shape@npm:^1.0.6, d3-shape@npm:^1.2.0":
+"d3-shape@npm:1, d3-shape@npm:^1.0.6, d3-shape@npm:^1.2.0":
version: 1.3.7
resolution: "d3-shape@npm:1.3.7"
dependencies:
@@ -16869,7 +16556,14 @@ __metadata:
languageName: node
linkType: hard
-"d3-zoom@npm:^1.8.3":
+"d3-voronoi@npm:1":
+ version: 1.1.4
+ resolution: "d3-voronoi@npm:1.1.4"
+ checksum: 10/e42e68fa7d7923d50b73b204bf6f2ec7a5dd97565db4f8d3d43b8d125deab1da1675240aeefe998578f78f584fe344addc19fb12547834a6becd5df1c42ee476
+ languageName: node
+ linkType: hard
+
+"d3-zoom@npm:1, d3-zoom@npm:^1.8.3":
version: 1.8.3
resolution: "d3-zoom@npm:1.8.3"
dependencies:
@@ -16889,6 +16583,45 @@ __metadata:
languageName: node
linkType: hard
+"d3@npm:^5.12.0":
+ version: 5.16.0
+ resolution: "d3@npm:5.16.0"
+ dependencies:
+ d3-array: "npm:1"
+ d3-axis: "npm:1"
+ d3-brush: "npm:1"
+ d3-chord: "npm:1"
+ d3-collection: "npm:1"
+ d3-color: "npm:1"
+ d3-contour: "npm:1"
+ d3-dispatch: "npm:1"
+ d3-drag: "npm:1"
+ d3-dsv: "npm:1"
+ d3-ease: "npm:1"
+ d3-fetch: "npm:1"
+ d3-force: "npm:1"
+ d3-format: "npm:1"
+ d3-geo: "npm:1"
+ d3-hierarchy: "npm:1"
+ d3-interpolate: "npm:1"
+ d3-path: "npm:1"
+ d3-polygon: "npm:1"
+ d3-quadtree: "npm:1"
+ d3-random: "npm:1"
+ d3-scale: "npm:2"
+ d3-scale-chromatic: "npm:1"
+ d3-selection: "npm:1"
+ d3-shape: "npm:1"
+ d3-time: "npm:1"
+ d3-time-format: "npm:2"
+ d3-timer: "npm:1"
+ d3-transition: "npm:1"
+ d3-voronoi: "npm:1"
+ d3-zoom: "npm:1"
+ checksum: 10/0a5a91262672af6f1daed30e4446532504f9912e2e6ae208e1b6778f1a079c93b48cef87bfb6814942f80b7c0d6cb9292137605de26ee580848da2f40d823412
+ languageName: node
+ linkType: hard
+
"dargs@npm:^4.0.1":
version: 4.1.0
resolution: "dargs@npm:4.1.0"
@@ -16914,17 +16647,6 @@ __metadata:
languageName: node
linkType: hard
-"data-urls@npm:^1.0.0":
- version: 1.1.0
- resolution: "data-urls@npm:1.1.0"
- dependencies:
- abab: "npm:^2.0.0"
- whatwg-mimetype: "npm:^2.2.0"
- whatwg-url: "npm:^7.0.0"
- checksum: 10/dc4bd9621df0dff336d7c4c0517c792488ef3cf11cd37e72ab80f3a7f0a0aa14bad677ac97cf22c87c6eb9518e58b98590e1c8c756b56240940f0e470c81612e
- languageName: node
- linkType: hard
-
"data-urls@npm:^2.0.0":
version: 2.0.0
resolution: "data-urls@npm:2.0.0"
@@ -16945,13 +16667,6 @@ __metadata:
languageName: node
linkType: hard
-"date-fns@npm:^1.27.2":
- version: 1.30.1
- resolution: "date-fns@npm:1.30.1"
- checksum: 10/24c0937f4e5704f25627c9d1e92e1fe03cd6165d9f32334b7f923a737a57ef992c287cad0694356071e617fbbfa6bd10dec9192ea9035a3e6d0745b9d1594883
- languageName: node
- linkType: hard
-
"date-fns@npm:^2.15.0, date-fns@npm:^2.28.0":
version: 2.30.0
resolution: "date-fns@npm:2.30.0"
@@ -16968,7 +16683,7 @@ __metadata:
languageName: node
linkType: hard
-"debug@npm:2.6.9, debug@npm:^2.2.0, debug@npm:^2.3.3, debug@npm:^2.6.8, debug@npm:^2.6.9":
+"debug@npm:2.6.9":
version: 2.6.9
resolution: "debug@npm:2.6.9"
dependencies:
@@ -16986,7 +16701,7 @@ __metadata:
languageName: node
linkType: hard
-"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.0.1, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4":
+"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4":
version: 4.3.4
resolution: "debug@npm:4.3.4"
dependencies:
@@ -17024,7 +16739,7 @@ __metadata:
languageName: node
linkType: hard
-"decamelize@npm:^1.1.0, decamelize@npm:^1.1.1, decamelize@npm:^1.2.0":
+"decamelize@npm:^1.1.0, decamelize@npm:^1.2.0":
version: 1.2.0
resolution: "decamelize@npm:1.2.0"
checksum: 10/ad8c51a7e7e0720c70ec2eeb1163b66da03e7616d7b98c9ef43cce2416395e84c1e9548dd94f5f6ffecfee9f8b94251fc57121a8b021f2ff2469b2bae247b8aa
@@ -17061,15 +16776,6 @@ __metadata:
languageName: node
linkType: hard
-"decompress-response@npm:^3.3.0":
- version: 3.3.0
- resolution: "decompress-response@npm:3.3.0"
- dependencies:
- mimic-response: "npm:^1.0.0"
- checksum: 10/952552ac3bd7de2fc18015086b09468645c9638d98a551305e485230ada278c039c91116e946d07894b39ee53c0f0d5b6473f25a224029344354513b412d7380
- languageName: node
- linkType: hard
-
"decompress-response@npm:^6.0.0":
version: 6.0.0
resolution: "decompress-response@npm:6.0.0"
@@ -17079,7 +16785,7 @@ __metadata:
languageName: node
linkType: hard
-"dedent@npm:0.7.0, dedent@npm:^0.7.0":
+"dedent@npm:^0.7.0":
version: 0.7.0
resolution: "dedent@npm:0.7.0"
checksum: 10/87de191050d9a40dd70cad01159a0bcf05ecb59750951242070b6abf9569088684880d00ba92a955b4058804f16eeaf91d604f283929b4f614d181cd7ae633d2
@@ -17152,15 +16858,6 @@ __metadata:
languageName: node
linkType: hard
-"default-require-extensions@npm:^1.0.0":
- version: 1.0.0
- resolution: "default-require-extensions@npm:1.0.0"
- dependencies:
- strip-bom: "npm:^2.0.0"
- checksum: 10/8be10a3e1f997c8a579c3f00fdd8117c30fa3a12d2ac544dc1ee93fd6138c77fba69fe69546c76d0299d7f74c26416301b9a1dc775557e99991a6ebe2f850df4
- languageName: node
- linkType: hard
-
"defaults@npm:^1.0.3":
version: 1.0.4
resolution: "defaults@npm:1.0.4"
@@ -17170,13 +16867,6 @@ __metadata:
languageName: node
linkType: hard
-"defer-to-connect@npm:^1.0.1":
- version: 1.1.3
- resolution: "defer-to-connect@npm:1.1.3"
- checksum: 10/9491b301dcfa04956f989481ba7a43c2231044206269eb4ab64a52d6639ee15b1252262a789eb4239fb46ab63e44d4e408641bae8e0793d640aee55398cb3930
- languageName: node
- linkType: hard
-
"defer-to-connect@npm:^2.0.0":
version: 2.0.1
resolution: "defer-to-connect@npm:2.0.1"
@@ -17224,34 +16914,6 @@ __metadata:
languageName: node
linkType: hard
-"define-property@npm:^0.2.5":
- version: 0.2.5
- resolution: "define-property@npm:0.2.5"
- dependencies:
- is-descriptor: "npm:^0.1.0"
- checksum: 10/85af107072b04973b13f9e4128ab74ddfda48ec7ad2e54b193c0ffb57067c4ce5b7786a7b4ae1f24bd03e87c5d18766b094571810b314d7540f86d4354dbd394
- languageName: node
- linkType: hard
-
-"define-property@npm:^1.0.0":
- version: 1.0.0
- resolution: "define-property@npm:1.0.0"
- dependencies:
- is-descriptor: "npm:^1.0.0"
- checksum: 10/5fbed11dace44dd22914035ba9ae83ad06008532ca814d7936a53a09e897838acdad5b108dd0688cc8d2a7cf0681acbe00ee4136cf36743f680d10517379350a
- languageName: node
- linkType: hard
-
-"define-property@npm:^2.0.2":
- version: 2.0.2
- resolution: "define-property@npm:2.0.2"
- dependencies:
- is-descriptor: "npm:^1.0.2"
- isobject: "npm:^3.0.1"
- checksum: 10/3217ed53fc9eed06ba8da6f4d33e28c68a82e2f2a8ab4d562c4920d8169a166fe7271453675e6c69301466f36a65d7f47edf0cf7f474b9aa52a5ead9c1b13c99
- languageName: node
- linkType: hard
-
"defu@npm:^6.1.3":
version: 6.1.4
resolution: "defu@npm:6.1.4"
@@ -17259,20 +16921,6 @@ __metadata:
languageName: node
linkType: hard
-"del@npm:^3.0.0":
- version: 3.0.0
- resolution: "del@npm:3.0.0"
- dependencies:
- globby: "npm:^6.1.0"
- is-path-cwd: "npm:^1.0.0"
- is-path-in-cwd: "npm:^1.0.0"
- p-map: "npm:^1.1.1"
- pify: "npm:^3.0.0"
- rimraf: "npm:^2.2.8"
- checksum: 10/88192c10411b55ba644456ac4881c6ed92029b53b882bb6067011af05e8da8d9c87f5ddacf2999cc45a05a9f03af345b83f17f341a88f456417c7daa04458d38
- languageName: node
- linkType: hard
-
"del@npm:^6.0.0":
version: 6.1.1
resolution: "del@npm:6.1.1"
@@ -17347,29 +16995,13 @@ __metadata:
languageName: node
linkType: hard
-"detect-file@npm:^1.0.0":
- version: 1.0.0
- resolution: "detect-file@npm:1.0.0"
- checksum: 10/1861e4146128622e847abe0e1ed80fef01e78532665858a792267adf89032b7a9c698436137707fcc6f02956c2a6a0052d6a0cef5be3d4b76b1ff0da88e2158a
- languageName: node
- linkType: hard
-
-"detect-indent@npm:6.1.0, detect-indent@npm:^6.1.0":
+"detect-indent@npm:^6.1.0":
version: 6.1.0
resolution: "detect-indent@npm:6.1.0"
checksum: 10/ab953a73c72dbd4e8fc68e4ed4bfd92c97eb6c43734af3900add963fd3a9316f3bc0578b018b24198d4c31a358571eff5f0656e81a1f3b9ad5c547d58b2d093d
languageName: node
linkType: hard
-"detect-indent@npm:^4.0.0":
- version: 4.0.0
- resolution: "detect-indent@npm:4.0.0"
- dependencies:
- repeating: "npm:^2.0.0"
- checksum: 10/328f273915c1610899bc7d4784ce874413d0a698346364cd3ee5d79afba1c5cf4dbc97b85a801e20f4d903c0598bd5096af32b800dfb8696b81464ccb3dfda2c
- languageName: node
- linkType: hard
-
"detect-indent@npm:~5.0.0":
version: 5.0.0
resolution: "detect-indent@npm:5.0.0"
@@ -17467,13 +17099,6 @@ __metadata:
languageName: node
linkType: hard
-"diff@npm:^3.1.0, diff@npm:^3.2.0":
- version: 3.5.0
- resolution: "diff@npm:3.5.0"
- checksum: 10/cfbc2df98d6f8eb82c0f7735c8468695f65189d31f95a708d4c97cd96a8083fdfd83d87a067a29924ae7d8ff64f578e7da78391af537815750268555fe0df9f0
- languageName: node
- linkType: hard
-
"diff@npm:^4.0.1":
version: 4.0.2
resolution: "diff@npm:4.0.2"
@@ -17524,16 +17149,6 @@ __metadata:
languageName: node
linkType: hard
-"doctrine@npm:0.7.2":
- version: 0.7.2
- resolution: "doctrine@npm:0.7.2"
- dependencies:
- esutils: "npm:^1.1.6"
- isarray: "npm:0.0.1"
- checksum: 10/b8da8df16b22fdb3cdc9956ac2c02cc240b2ca1444f1df7c5d301fcc0f7774f322cf628cbd0aa08db9ebeec188d2bb896d22bf72acd9d9ac6d2c189d319e8076
- languageName: node
- linkType: hard
-
"doctrine@npm:^3.0.0":
version: 3.0.0
resolution: "doctrine@npm:3.0.0"
@@ -17620,15 +17235,6 @@ __metadata:
languageName: node
linkType: hard
-"domexception@npm:^1.0.1":
- version: 1.0.1
- resolution: "domexception@npm:1.0.1"
- dependencies:
- webidl-conversions: "npm:^4.0.2"
- checksum: 10/1cf5a22ffe5aeab51a2235b882c688719ed22112bf83758410bd64f5dfd1f24e53132f355b930be18e57bcd05857ba74967cf8977d6be5b9d7945b15acdee9bc
- languageName: node
- linkType: hard
-
"domexception@npm:^2.0.1":
version: 2.0.1
resolution: "domexception@npm:2.0.1"
@@ -17930,10 +17536,12 @@ __metadata:
languageName: node
linkType: hard
-"elegant-spinner@npm:^1.0.1":
- version: 1.0.1
- resolution: "elegant-spinner@npm:1.0.1"
- checksum: 10/d6a773d950c5d403b5f0fa402787e37dde99989ab6c943558fe8491cf7cd0df0e2747a9ff4d391d5a5f20a447cc9e9a63bdc956354ba47bea462f1603a5b04fe
+"element-resize-detector@npm:^1.2.1":
+ version: 1.2.4
+ resolution: "element-resize-detector@npm:1.2.4"
+ dependencies:
+ batch-processor: "npm:1.0.0"
+ checksum: 10/05870970ce5dedec85f9401c2b9c3c4fe0483da72158eb8eea9e6f130b8eb954e1832be3b05216f617f7947c13a61bff9568824e753f70269c8fa1ca44b6613b
languageName: node
linkType: hard
@@ -18079,7 +17687,7 @@ __metadata:
languageName: node
linkType: hard
-"error-ex@npm:^1.2.0, error-ex@npm:^1.3.1":
+"error-ex@npm:^1.3.1":
version: 1.3.2
resolution: "error-ex@npm:1.3.2"
dependencies:
@@ -18252,7 +17860,7 @@ __metadata:
languageName: node
linkType: hard
-"esbuild@npm:^0.18.0 || ^0.19.0 || ^0.20.0, esbuild@npm:^0.20.1":
+"esbuild@npm:^0.18.0 || ^0.19.0 || ^0.20.0, esbuild@npm:^0.20.1, esbuild@npm:~0.20.2":
version: 0.20.2
resolution: "esbuild@npm:0.20.2"
dependencies:
@@ -18583,7 +18191,7 @@ __metadata:
languageName: node
linkType: hard
-"escape-string-regexp@npm:^1.0.2, escape-string-regexp@npm:^1.0.4, escape-string-regexp@npm:^1.0.5":
+"escape-string-regexp@npm:^1.0.2, escape-string-regexp@npm:^1.0.5":
version: 1.0.5
resolution: "escape-string-regexp@npm:1.0.5"
checksum: 10/6092fda75c63b110c706b6a9bfde8a612ad595b628f0bd2147eea1d3406723020810e591effc7db1da91d80a71a737a313567c5abb3813e8d9c71f4aa595b410
@@ -18604,25 +18212,6 @@ __metadata:
languageName: node
linkType: hard
-"escodegen@npm:^1.9.1":
- version: 1.14.3
- resolution: "escodegen@npm:1.14.3"
- dependencies:
- esprima: "npm:^4.0.1"
- estraverse: "npm:^4.2.0"
- esutils: "npm:^2.0.2"
- optionator: "npm:^0.8.1"
- source-map: "npm:~0.6.1"
- dependenciesMeta:
- source-map:
- optional: true
- bin:
- escodegen: bin/escodegen.js
- esgenerate: bin/esgenerate.js
- checksum: 10/70f095ca9393535f9f1c145ef99dc0b3ff14cca6bc4a79d90ff3352f90c3f2e07f75af6d6c05174ea67c45271f75e80dd440dd7d04ed2cf44c9452c3042fa84a
- languageName: node
- linkType: hard
-
"escodegen@npm:^2.0.0, escodegen@npm:^2.1.0":
version: 2.1.0
resolution: "escodegen@npm:2.1.0"
@@ -18798,13 +18387,6 @@ __metadata:
languageName: node
linkType: hard
-"esutils@npm:^1.1.6":
- version: 1.1.6
- resolution: "esutils@npm:1.1.6"
- checksum: 10/1657640cda545532db1d7096c7ef7ec2c50b29469ab50bba43d59388b32e1a13f29b9bcf9a079a41eb86118b269d8c72caaee3fdc328ab29fba6b495ba152c86
- languageName: node
- linkType: hard
-
"esutils@npm:^2.0.2":
version: 2.0.3
resolution: "esutils@npm:2.0.3"
@@ -18875,15 +18457,6 @@ __metadata:
languageName: unknown
linkType: soft
-"exec-sh@npm:^0.2.0":
- version: 0.2.2
- resolution: "exec-sh@npm:0.2.2"
- dependencies:
- merge: "npm:^1.2.0"
- checksum: 10/f0e2bdc9fded34f33a6473293cf06dd89f09da1dd7850369001e56b055bb00dae449dbf2e1dd0a1bce2083f13e30e0a0e1b9ab9e42efb1954a538349340c5562
- languageName: node
- linkType: hard
-
"execa@npm:^0.7.0":
version: 0.7.0
resolution: "execa@npm:0.7.0"
@@ -18973,39 +18546,6 @@ __metadata:
languageName: node
linkType: hard
-"expand-brackets@npm:^0.1.4":
- version: 0.1.5
- resolution: "expand-brackets@npm:0.1.5"
- dependencies:
- is-posix-bracket: "npm:^0.1.0"
- checksum: 10/71b2971027eb026f055a1c310d24d18a266427b84fc18cadddcedb4de2e07aaef6084e252406b20e58f7aa7613f6bfbe6136962955562529a66675bf49bb10d7
- languageName: node
- linkType: hard
-
-"expand-brackets@npm:^2.1.4":
- version: 2.1.4
- resolution: "expand-brackets@npm:2.1.4"
- dependencies:
- debug: "npm:^2.3.3"
- define-property: "npm:^0.2.5"
- extend-shallow: "npm:^2.0.1"
- posix-character-classes: "npm:^0.1.0"
- regex-not: "npm:^1.0.0"
- snapdragon: "npm:^0.8.1"
- to-regex: "npm:^3.0.1"
- checksum: 10/aa4acc62084638c761ecdbe178bd3136f01121939f96bbfc3be27c46c66625075f77fe0a446b627c9071b1aaf6d93ccf5bde5ff34b7ef883e4f46067a8e63e41
- languageName: node
- linkType: hard
-
-"expand-range@npm:^1.8.1":
- version: 1.8.2
- resolution: "expand-range@npm:1.8.2"
- dependencies:
- fill-range: "npm:^2.1.0"
- checksum: 10/8383d0ced4f992dab75b4116720b54715d3e0507d0b7663b2e04e2b9178f91c37134c93cbc5abac27a20464640e3880f60021d63d359c6f7180107d74d32c64e
- languageName: node
- linkType: hard
-
"expand-template@npm:^2.0.3":
version: 2.0.3
resolution: "expand-template@npm:2.0.3"
@@ -19013,29 +18553,6 @@ __metadata:
languageName: node
linkType: hard
-"expand-tilde@npm:^2.0.0, expand-tilde@npm:^2.0.2":
- version: 2.0.2
- resolution: "expand-tilde@npm:2.0.2"
- dependencies:
- homedir-polyfill: "npm:^1.0.1"
- checksum: 10/2efe6ed407d229981b1b6ceb552438fbc9e5c7d6a6751ad6ced3e0aa5cf12f0b299da695e90d6c2ac79191b5c53c613e508f7149e4573abfbb540698ddb7301a
- languageName: node
- linkType: hard
-
-"expect@npm:^23.6.0":
- version: 23.6.0
- resolution: "expect@npm:23.6.0"
- dependencies:
- ansi-styles: "npm:^3.2.0"
- jest-diff: "npm:^23.6.0"
- jest-get-type: "npm:^22.1.0"
- jest-matcher-utils: "npm:^23.6.0"
- jest-message-util: "npm:^23.4.0"
- jest-regex-util: "npm:^23.3.0"
- checksum: 10/98e3b394e5a5002d144fe66cb198a0dd7b5902223091564ea9eceab51ea797caa50061f7feb9fdee7c2f2943d7d51cb7c023b7e71043e99d7bb12527d8b4a400
- languageName: node
- linkType: hard
-
"expect@npm:^27.5.1":
version: 27.5.1
resolution: "expect@npm:27.5.1"
@@ -19133,25 +18650,6 @@ __metadata:
languageName: node
linkType: hard
-"extend-shallow@npm:^2.0.1":
- version: 2.0.1
- resolution: "extend-shallow@npm:2.0.1"
- dependencies:
- is-extendable: "npm:^0.1.0"
- checksum: 10/8fb58d9d7a511f4baf78d383e637bd7d2e80843bd9cd0853649108ea835208fb614da502a553acc30208e1325240bb7cc4a68473021612496bb89725483656d8
- languageName: node
- linkType: hard
-
-"extend-shallow@npm:^3.0.0, extend-shallow@npm:^3.0.2":
- version: 3.0.2
- resolution: "extend-shallow@npm:3.0.2"
- dependencies:
- assign-symbols: "npm:^1.0.0"
- is-extendable: "npm:^1.0.1"
- checksum: 10/a920b0cd5838a9995ace31dfd11ab5e79bf6e295aa566910ce53dff19f4b1c0fda2ef21f26b28586c7a2450ca2b42d97bd8c0f5cec9351a819222bf861e02461
- languageName: node
- linkType: hard
-
"extend@npm:^3.0.0, extend@npm:~3.0.2":
version: 3.0.2
resolution: "extend@npm:3.0.2"
@@ -19159,42 +18657,6 @@ __metadata:
languageName: node
linkType: hard
-"external-editor@npm:^3.0.3":
- version: 3.1.0
- resolution: "external-editor@npm:3.1.0"
- dependencies:
- chardet: "npm:^0.7.0"
- iconv-lite: "npm:^0.4.24"
- tmp: "npm:^0.0.33"
- checksum: 10/776dff1d64a1d28f77ff93e9e75421a81c062983fd1544279d0a32f563c0b18c52abbb211f31262e2827e48edef5c9dc8f960d06dd2d42d1654443b88568056b
- languageName: node
- linkType: hard
-
-"extglob@npm:^0.3.1":
- version: 0.3.2
- resolution: "extglob@npm:0.3.2"
- dependencies:
- is-extglob: "npm:^1.0.0"
- checksum: 10/c1c8d5365fe4992fc5b007140cbb37292ffadcd767cb602606de4d572ff96f38620e42855f8cb75020c050aacf1eeb51212dd6312de46eab42e2200277b5fc45
- languageName: node
- linkType: hard
-
-"extglob@npm:^2.0.4":
- version: 2.0.4
- resolution: "extglob@npm:2.0.4"
- dependencies:
- array-unique: "npm:^0.3.2"
- define-property: "npm:^1.0.0"
- expand-brackets: "npm:^2.1.4"
- extend-shallow: "npm:^2.0.1"
- fragment-cache: "npm:^0.2.1"
- regex-not: "npm:^1.0.0"
- snapdragon: "npm:^0.8.1"
- to-regex: "npm:^3.0.1"
- checksum: 10/6869edd48d40c322e1cda9bf494ed2407c69a19063fd2897184cb62d6d35c14fa7402b01d9dedd65d77ed1ccc74a291235a702c68b4f28a7314da0cdee97c85b
- languageName: node
- linkType: hard
-
"extsprintf@npm:1.3.0":
version: 1.3.0
resolution: "extsprintf@npm:1.3.0"
@@ -19226,6 +18688,13 @@ __metadata:
languageName: node
linkType: hard
+"fast-decode-uri-component@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "fast-decode-uri-component@npm:1.0.1"
+ checksum: 10/4b6ed26974414f688be4a15eab6afa997bad4a7c8605cb1deb928b28514817b4523a1af0fa06621c6cbfedb7e5615144c2c3e7512860e3a333a31a28d537dca7
+ languageName: node
+ linkType: hard
+
"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3":
version: 3.1.3
resolution: "fast-deep-equal@npm:3.1.3"
@@ -19266,7 +18735,7 @@ __metadata:
languageName: node
linkType: hard
-"fast-json-stable-stringify@npm:2.x, fast-json-stable-stringify@npm:^2.0.0":
+"fast-json-stable-stringify@npm:^2.0.0":
version: 2.1.0
resolution: "fast-json-stable-stringify@npm:2.1.0"
checksum: 10/2c20055c1fa43c922428f16ca8bb29f2807de63e5c851f665f7ac9790176c01c3b40335257736b299764a8d383388dabc73c8083b8e1bc3d99f0a941444ec60e
@@ -19280,6 +18749,15 @@ __metadata:
languageName: node
linkType: hard
+"fast-querystring@npm:^1.1.1":
+ version: 1.1.2
+ resolution: "fast-querystring@npm:1.1.2"
+ dependencies:
+ fast-decode-uri-component: "npm:^1.0.1"
+ checksum: 10/981da9b914f2b639dc915bdfa4f34ab028b967d428f02fbd293d99258593fde69c48eea73dfa03ced088268e0a8045c642e8debcd9b4821ebd125e130a0430c7
+ languageName: node
+ linkType: hard
+
"fastclick@npm:^1.0.6":
version: 1.0.6
resolution: "fastclick@npm:1.0.6"
@@ -19366,7 +18844,7 @@ __metadata:
languageName: node
linkType: hard
-"figures@npm:^1.0.1, figures@npm:^1.7.0":
+"figures@npm:^1.0.1":
version: 1.7.0
resolution: "figures@npm:1.7.0"
dependencies:
@@ -19425,13 +18903,6 @@ __metadata:
languageName: node
linkType: hard
-"file-uri-to-path@npm:1.0.0":
- version: 1.0.0
- resolution: "file-uri-to-path@npm:1.0.0"
- checksum: 10/b648580bdd893a008c92c7ecc96c3ee57a5e7b6c4c18a9a09b44fb5d36d79146f8e442578bc0e173dc027adf3987e254ba1dfd6e3ec998b7c282873010502144
- languageName: node
- linkType: hard
-
"filelist@npm:^1.0.4":
version: 1.0.4
resolution: "filelist@npm:1.0.4"
@@ -19441,23 +18912,6 @@ __metadata:
languageName: node
linkType: hard
-"filename-regex@npm:^2.0.0":
- version: 2.0.1
- resolution: "filename-regex@npm:2.0.1"
- checksum: 10/ac181f8184cf49d2f08889a446995537c3967e6f6195752d903b69c7d85f134425fb1446c4e384e77390bac488b60a9658805debc5a91e8c0bc9f81340505371
- languageName: node
- linkType: hard
-
-"fileset@npm:^2.0.2":
- version: 2.0.3
- resolution: "fileset@npm:2.0.3"
- dependencies:
- glob: "npm:^7.0.3"
- minimatch: "npm:^3.0.3"
- checksum: 10/7da22f3a6675ac892957c7349b872eb9f0fd259c0e19f807f2d9519d023430539c45ba9db2a67a1eb3e0f76aa77a2b0645efed5d27f177a77f435aa865d05c6a
- languageName: node
- linkType: hard
-
"filesize@npm:^6.1.0":
version: 6.4.0
resolution: "filesize@npm:6.4.0"
@@ -19465,31 +18919,6 @@ __metadata:
languageName: node
linkType: hard
-"fill-range@npm:^2.1.0":
- version: 2.2.4
- resolution: "fill-range@npm:2.2.4"
- dependencies:
- is-number: "npm:^2.1.0"
- isobject: "npm:^2.0.0"
- randomatic: "npm:^3.0.0"
- repeat-element: "npm:^1.1.2"
- repeat-string: "npm:^1.5.2"
- checksum: 10/ad71c3d699bb6b9dc8b2da5c246ab03335f8824c5a7500285cf045814a375c6f847410b4e75c0fca035ad00c4faf1247537f53e26251abbc72e311d10f31e069
- languageName: node
- linkType: hard
-
-"fill-range@npm:^4.0.0":
- version: 4.0.0
- resolution: "fill-range@npm:4.0.0"
- dependencies:
- extend-shallow: "npm:^2.0.1"
- is-number: "npm:^3.0.0"
- repeat-string: "npm:^1.6.1"
- to-regex-range: "npm:^2.1.0"
- checksum: 10/68be23b3c40d5a3fd2847ce18e3a5eac25d9f4c05627291e048ba1346ed0e429668b58a3429e61c0db9fa5954c4402fe99322a65d8a0eb06ebed8d3a18fbb09a
- languageName: node
- linkType: hard
-
"fill-range@npm:^7.0.1":
version: 7.0.1
resolution: "fill-range@npm:7.0.1"
@@ -19550,16 +18979,6 @@ __metadata:
languageName: node
linkType: hard
-"find-node-modules@npm:^2.1.2":
- version: 2.1.3
- resolution: "find-node-modules@npm:2.1.3"
- dependencies:
- findup-sync: "npm:^4.0.0"
- merge: "npm:^2.1.1"
- checksum: 10/4b8a194ffd56ccf1a1033de35e2ee8209869b05cce68ff7c4ab0dbf04e63fd7196283383eee4c84596c7b311755b2836815209d558234cadc330a87881e5a3f4
- languageName: node
- linkType: hard
-
"find-npm-prefix@npm:^1.0.2":
version: 1.0.2
resolution: "find-npm-prefix@npm:1.0.2"
@@ -19567,23 +18986,13 @@ __metadata:
languageName: node
linkType: hard
-"find-root@npm:1.1.0, find-root@npm:^1.1.0":
+"find-root@npm:^1.1.0":
version: 1.1.0
resolution: "find-root@npm:1.1.0"
checksum: 10/caa799c976a14925ba7f31ca1a226fe73d3aa270f4f1b623fcfeb1c6e263111db4beb807d8acd31bd4d48d44c343b93688a9288dfbccca27463c36a0301b0bb9
languageName: node
linkType: hard
-"find-up@npm:^1.0.0":
- version: 1.1.2
- resolution: "find-up@npm:1.1.2"
- dependencies:
- path-exists: "npm:^2.0.0"
- pinkie-promise: "npm:^2.0.0"
- checksum: 10/a2cb9f4c9f06ee3a1e92ed71d5aed41ac8ae30aefa568132f6c556fac7678a5035126153b59eaec68da78ac409eef02503b2b059706bdbf232668d7245e3240a
- languageName: node
- linkType: hard
-
"find-up@npm:^2.0.0, find-up@npm:^2.1.0":
version: 2.1.0
resolution: "find-up@npm:2.1.0"
@@ -19631,15 +19040,6 @@ __metadata:
languageName: node
linkType: hard
-"find-versions@npm:^4.0.0":
- version: 4.0.0
- resolution: "find-versions@npm:4.0.0"
- dependencies:
- semver-regex: "npm:^3.1.2"
- checksum: 10/2b4c749dc33e3fa73a457ca4df616ac13b4b32c53f6297bc862b0814d402a6cfec93a0d308d5502eeb47f2c125906e0f861bf01b756f08395640892186357711
- languageName: node
- linkType: hard
-
"find-yarn-workspace-root@npm:^2.0.0":
version: 2.0.0
resolution: "find-yarn-workspace-root@npm:2.0.0"
@@ -19649,18 +19049,6 @@ __metadata:
languageName: node
linkType: hard
-"findup-sync@npm:^4.0.0":
- version: 4.0.0
- resolution: "findup-sync@npm:4.0.0"
- dependencies:
- detect-file: "npm:^1.0.0"
- is-glob: "npm:^4.0.0"
- micromatch: "npm:^4.0.2"
- resolve-dir: "npm:^1.0.1"
- checksum: 10/94131e1107ad63790ed00c4c39ca131a93ea602607bd97afeffd92b69a9a63cf2c6f57d6db88cb753fe748ac7fde79e1e76768ff784247026b7c5ebf23ede3a0
- languageName: node
- linkType: hard
-
"flow-parser@npm:0.*":
version: 0.227.0
resolution: "flow-parser@npm:0.227.0"
@@ -19678,13 +19066,6 @@ __metadata:
languageName: node
linkType: hard
-"fn-name@npm:~2.0.1":
- version: 2.0.1
- resolution: "fn-name@npm:2.0.1"
- checksum: 10/ea06f4a99be824edf774f8314be9b1e7eeef62a9e462f243f452b1422c73f7b98a5dafe734256e57212239d1ac1204a7b79fdb8cc920af1ec414684a1b00ae66
- languageName: node
- linkType: hard
-
"focus-lock@npm:^0.11.6":
version: 0.11.6
resolution: "focus-lock@npm:0.11.6"
@@ -19723,22 +19104,6 @@ __metadata:
languageName: node
linkType: hard
-"for-in@npm:^1.0.1, for-in@npm:^1.0.2":
- version: 1.0.2
- resolution: "for-in@npm:1.0.2"
- checksum: 10/09f4ae93ce785d253ac963d94c7f3432d89398bf25ac7a24ed034ca393bf74380bdeccc40e0f2d721a895e54211b07c8fad7132e8157827f6f7f059b70b4043d
- languageName: node
- linkType: hard
-
-"for-own@npm:^0.1.4":
- version: 0.1.5
- resolution: "for-own@npm:0.1.5"
- dependencies:
- for-in: "npm:^1.0.1"
- checksum: 10/07eb0a2e98eb55ce13b56dd11ef4fb5e619ba7380aaec388b9eec1946153d74fa734ce409e8434020557e9489a50c34bc004d55754f5863bf7d77b441d8dee8c
- languageName: node
- linkType: hard
-
"foreground-child@npm:^3.1.0":
version: 3.1.1
resolution: "foreground-child@npm:3.1.1"
@@ -19817,15 +19182,6 @@ __metadata:
languageName: node
linkType: hard
-"fragment-cache@npm:^0.2.1":
- version: 0.2.1
- resolution: "fragment-cache@npm:0.2.1"
- dependencies:
- map-cache: "npm:^0.2.2"
- checksum: 10/1cbbd0b0116b67d5790175de0038a11df23c1cd2e8dcdbade58ebba5594c2d641dade6b4f126d82a7b4a6ffc2ea12e3d387dbb64ea2ae97cf02847d436f60fdc
- languageName: node
- linkType: hard
-
"fresh@npm:0.5.2":
version: 0.5.2
resolution: "fresh@npm:0.5.2"
@@ -19882,18 +19238,6 @@ __metadata:
languageName: node
linkType: hard
-"fs-extra@npm:9.1.0, fs-extra@npm:^9.0.0, fs-extra@npm:^9.1.0":
- version: 9.1.0
- resolution: "fs-extra@npm:9.1.0"
- dependencies:
- at-least-node: "npm:^1.0.0"
- graceful-fs: "npm:^4.2.0"
- jsonfile: "npm:^6.0.1"
- universalify: "npm:^2.0.0"
- checksum: 10/08600da1b49552ed23dfac598c8fc909c66776dd130fea54fbcad22e330f7fcc13488bb995f6bc9ce5651aa35b65702faf616fe76370ee56f1aade55da982dca
- languageName: node
- linkType: hard
-
"fs-extra@npm:^11.1.0":
version: 11.2.0
resolution: "fs-extra@npm:11.2.0"
@@ -19905,14 +19249,15 @@ __metadata:
languageName: node
linkType: hard
-"fs-extra@npm:^7.0.0":
- version: 7.0.1
- resolution: "fs-extra@npm:7.0.1"
+"fs-extra@npm:^9.0.0, fs-extra@npm:^9.1.0":
+ version: 9.1.0
+ resolution: "fs-extra@npm:9.1.0"
dependencies:
- graceful-fs: "npm:^4.1.2"
- jsonfile: "npm:^4.0.0"
- universalify: "npm:^0.1.0"
- checksum: 10/3fc6e56ba2f07c00d452163f27f21a7076b72ef7da8a50fef004336d59ef4c34deda11d10ecd73fd8fbcf20e4f575f52857293090b3c9f8741d4e0598be30fea
+ at-least-node: "npm:^1.0.0"
+ graceful-fs: "npm:^4.2.0"
+ jsonfile: "npm:^6.0.1"
+ universalify: "npm:^2.0.0"
+ checksum: 10/08600da1b49552ed23dfac598c8fc909c66776dd130fea54fbcad22e330f7fcc13488bb995f6bc9ce5651aa35b65702faf616fe76370ee56f1aade55da982dca
languageName: node
linkType: hard
@@ -19987,17 +19332,6 @@ __metadata:
languageName: node
linkType: hard
-"fsevents@npm:^1.2.3":
- version: 1.2.13
- resolution: "fsevents@npm:1.2.13"
- dependencies:
- bindings: "npm:^1.5.0"
- nan: "npm:^2.12.1"
- checksum: 10/ae855aa737aaa2f9167e9f70417cf6e45a5cd11918e1fee9923709a0149be52416d765433b4aeff56c789b1152e718cd1b13ddec6043b78cdda68260d86383c1
- conditions: os=darwin
- languageName: node
- linkType: hard
-
"fsevents@npm:^2.3.2, fsevents@npm:~2.3.2, fsevents@npm:~2.3.3":
version: 2.3.3
resolution: "fsevents@npm:2.3.3"
@@ -20008,16 +19342,6 @@ __metadata:
languageName: node
linkType: hard
-"fsevents@patch:fsevents@npm%3A^1.2.3#optional!builtin":
- version: 1.2.13
- resolution: "fsevents@patch:fsevents@npm%3A1.2.13#optional!builtin::version=1.2.13&hash=d11327"
- dependencies:
- bindings: "npm:^1.5.0"
- nan: "npm:^2.12.1"
- conditions: os=darwin
- languageName: node
- linkType: hard
-
"fsevents@patch:fsevents@npm%3A^2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.3#optional!builtin":
version: 2.3.3
resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"
@@ -20060,17 +19384,6 @@ __metadata:
languageName: node
linkType: hard
-"g-status@npm:^2.0.2":
- version: 2.0.2
- resolution: "g-status@npm:2.0.2"
- dependencies:
- arrify: "npm:^1.0.1"
- matcher: "npm:^1.0.0"
- simple-git: "npm:^1.85.0"
- checksum: 10/df405d086f61d77e67bebaf380b9d4454245e26387463656d8badf0dbbb90b771611d1b53b2e2336d3c52e9b8a85ddd90f087c83fea03c7273265140b95abe5c
- languageName: node
- linkType: hard
-
"gauge@npm:^4.0.3":
version: 4.0.4
resolution: "gauge@npm:4.0.4"
@@ -20199,13 +19512,6 @@ __metadata:
languageName: node
linkType: hard
-"get-caller-file@npm:^1.0.1":
- version: 1.0.3
- resolution: "get-caller-file@npm:1.0.3"
- checksum: 10/0b776558c1d94ac131ec0d47bf9da4e00a38e7d3a6cbde534e0e4656c13ead344e69ef7ed2c0bca16620cc2e1e26529f90e2336c8962736517b64890d583a2a0
- languageName: node
- linkType: hard
-
"get-caller-file@npm:^2.0.1, get-caller-file@npm:^2.0.5":
version: 2.0.5
resolution: "get-caller-file@npm:2.0.5"
@@ -20238,6 +19544,13 @@ __metadata:
languageName: node
linkType: hard
+"get-node-dimensions@npm:^1.2.1":
+ version: 1.2.2
+ resolution: "get-node-dimensions@npm:1.2.2"
+ checksum: 10/3b97a4da4ec5d0c3c162ce8c1838c43d4b2828ada62e84aa712aaebe3164653ed4a91f8ffd7600d49227c1e8594dfc6f7ddbd8db21b01b414e2d87a9299f0a5d
+ languageName: node
+ linkType: hard
+
"get-nonce@npm:^1.0.0":
version: 1.0.1
resolution: "get-nonce@npm:1.0.1"
@@ -20252,13 +19565,6 @@ __metadata:
languageName: node
linkType: hard
-"get-own-enumerable-property-symbols@npm:^3.0.0":
- version: 3.0.2
- resolution: "get-own-enumerable-property-symbols@npm:3.0.2"
- checksum: 10/8f0331f14159f939830884799f937343c8c0a2c330506094bc12cbee3665d88337fe97a4ea35c002cc2bdba0f5d9975ad7ec3abb925015cdf2a93e76d4759ede
- languageName: node
- linkType: hard
-
"get-package-type@npm:^0.1.0":
version: 0.1.0
resolution: "get-package-type@npm:0.1.0"
@@ -20355,10 +19661,12 @@ __metadata:
languageName: node
linkType: hard
-"get-value@npm:^2.0.3, get-value@npm:^2.0.6":
- version: 2.0.6
- resolution: "get-value@npm:2.0.6"
- checksum: 10/5c3b99cb5398ea8016bf46ff17afc5d1d286874d2ad38ca5edb6e87d75c0965b0094cb9a9dddef2c59c23d250702323539a7fbdd870620db38c7e7d7ec87c1eb
+"get-tsconfig@npm:^4.7.5":
+ version: 4.7.5
+ resolution: "get-tsconfig@npm:4.7.5"
+ dependencies:
+ resolve-pkg-maps: "npm:^1.0.0"
+ checksum: 10/de7de5e4978354e8e6d9985baf40ea32f908a13560f793bc989930c229cc8d5c3f7b6b2896d8e43eb1a9b4e9e30018ef4b506752fd2a4b4d0dfee4af6841b119
languageName: node
linkType: hard
@@ -20456,25 +19764,6 @@ __metadata:
languageName: node
linkType: hard
-"glob-base@npm:^0.3.0":
- version: 0.3.0
- resolution: "glob-base@npm:0.3.0"
- dependencies:
- glob-parent: "npm:^2.0.0"
- is-glob: "npm:^2.0.0"
- checksum: 10/106477297e0e2a120a2ba530a0b443d82a2750dc614c21b8d1ac064d100e3ba262397501828cb768c21e0b2d645da717d06ff58d7979a0d6ce6cbb29aa2d62e0
- languageName: node
- linkType: hard
-
-"glob-parent@npm:^2.0.0":
- version: 2.0.0
- resolution: "glob-parent@npm:2.0.0"
- dependencies:
- is-glob: "npm:^2.0.0"
- checksum: 10/734fc461d9d2753dd490dd072df6ce41fe4ebb60e9319b108bc538707b21780af3a61c3961ec2264131fad5d3d9a493e013a775aef11a69ac2f49fd7d8f46457
- languageName: node
- linkType: hard
-
"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2":
version: 5.1.2
resolution: "glob-parent@npm:5.1.2"
@@ -20511,20 +19800,6 @@ __metadata:
languageName: node
linkType: hard
-"glob@npm:7.2.3, glob@npm:^7.0.0, glob@npm:^7.0.3, glob@npm:^7.1.1, glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6, glob@npm:^7.2.0, glob@npm:^7.2.3":
- version: 7.2.3
- resolution: "glob@npm:7.2.3"
- dependencies:
- fs.realpath: "npm:^1.0.0"
- inflight: "npm:^1.0.4"
- inherits: "npm:2"
- minimatch: "npm:^3.1.1"
- once: "npm:^1.3.0"
- path-is-absolute: "npm:^1.0.0"
- checksum: 10/59452a9202c81d4508a43b8af7082ca5c76452b9fcc4a9ab17655822e6ce9b21d4f8fbadabe4fe3faef448294cec249af305e2cd824b7e9aaf689240e5e96a7b
- languageName: node
- linkType: hard
-
"glob@npm:^10.0.0":
version: 10.3.10
resolution: "glob@npm:10.3.10"
@@ -20555,36 +19830,26 @@ __metadata:
languageName: node
linkType: hard
-"global-dirs@npm:^0.1.0, global-dirs@npm:^0.1.1":
- version: 0.1.1
- resolution: "global-dirs@npm:0.1.1"
- dependencies:
- ini: "npm:^1.3.4"
- checksum: 10/10624f5a8ddb8634c22804c6b24f93fb591c3639a6bc78e3584e01a238fc6f7b7965824184e57d63f6df36980b6c191484ad7bc6c35a1599b8f1d64be64c2a4a
- languageName: node
- linkType: hard
-
-"global-modules@npm:^1.0.0":
- version: 1.0.0
- resolution: "global-modules@npm:1.0.0"
+"glob@npm:^7.0.0, glob@npm:^7.1.1, glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6, glob@npm:^7.2.0, glob@npm:^7.2.3":
+ version: 7.2.3
+ resolution: "glob@npm:7.2.3"
dependencies:
- global-prefix: "npm:^1.0.1"
- is-windows: "npm:^1.0.1"
- resolve-dir: "npm:^1.0.0"
- checksum: 10/e4031a01c0c7401349bb69e1499c7268d636552b16374c0002d677c7a6185da6782a2927a7a3a7c046eb7be97cd26b3c7b1b736f9818ecc7ac09e9d61449065e
+ fs.realpath: "npm:^1.0.0"
+ inflight: "npm:^1.0.4"
+ inherits: "npm:2"
+ minimatch: "npm:^3.1.1"
+ once: "npm:^1.3.0"
+ path-is-absolute: "npm:^1.0.0"
+ checksum: 10/59452a9202c81d4508a43b8af7082ca5c76452b9fcc4a9ab17655822e6ce9b21d4f8fbadabe4fe3faef448294cec249af305e2cd824b7e9aaf689240e5e96a7b
languageName: node
linkType: hard
-"global-prefix@npm:^1.0.1":
- version: 1.0.2
- resolution: "global-prefix@npm:1.0.2"
+"global-dirs@npm:^0.1.0, global-dirs@npm:^0.1.1":
+ version: 0.1.1
+ resolution: "global-dirs@npm:0.1.1"
dependencies:
- expand-tilde: "npm:^2.0.2"
- homedir-polyfill: "npm:^1.0.1"
ini: "npm:^1.3.4"
- is-windows: "npm:^1.0.1"
- which: "npm:^1.2.14"
- checksum: 10/68cf78f81cd85310095ca1f0ec22dd5f43a1059646b2c7b3fc4a7c9ce744356e66ca833adda4e5753e38021847aaec393a159a029ba2d257c08ccb3f00ca2899
+ checksum: 10/10624f5a8ddb8634c22804c6b24f93fb591c3639a6bc78e3584e01a238fc6f7b7965824184e57d63f6df36980b6c191484ad7bc6c35a1599b8f1d64be64c2a4a
languageName: node
linkType: hard
@@ -20614,13 +19879,6 @@ __metadata:
languageName: node
linkType: hard
-"globals@npm:^9.18.0":
- version: 9.18.0
- resolution: "globals@npm:9.18.0"
- checksum: 10/492600be44eb7ae107d37fa8536fb98f36a6f051c1420cd912a6de307758d502b9930a8f7beda0e74a98a5613aae464c828bb81418fc335c9ff4707ba9fd9070
- languageName: node
- linkType: hard
-
"globalthis@npm:^1.0.3":
version: 1.0.3
resolution: "globalthis@npm:1.0.3"
@@ -20680,19 +19938,6 @@ __metadata:
languageName: node
linkType: hard
-"globby@npm:^6.1.0":
- version: 6.1.0
- resolution: "globby@npm:6.1.0"
- dependencies:
- array-union: "npm:^1.0.1"
- glob: "npm:^7.0.3"
- object-assign: "npm:^4.0.1"
- pify: "npm:^2.0.0"
- pinkie-promise: "npm:^2.0.0"
- checksum: 10/18109d6b9d55643d2b98b59c3cfae7073ccfe39829632f353d516cc124d836c2ddebe48a23f04af63d66a621b6d86dd4cbd7e6af906f2458a7fe510ffc4bd424
- languageName: node
- linkType: hard
-
"globrex@npm:^0.1.2":
version: 0.1.2
resolution: "globrex@npm:0.1.2"
@@ -20747,25 +19992,6 @@ __metadata:
languageName: node
linkType: hard
-"got@npm:^9.1.0":
- version: 9.6.0
- resolution: "got@npm:9.6.0"
- dependencies:
- "@sindresorhus/is": "npm:^0.14.0"
- "@szmarczak/http-timer": "npm:^1.1.2"
- cacheable-request: "npm:^6.0.0"
- decompress-response: "npm:^3.3.0"
- duplexer3: "npm:^0.1.4"
- get-stream: "npm:^4.1.0"
- lowercase-keys: "npm:^1.0.1"
- mimic-response: "npm:^1.0.1"
- p-cancelable: "npm:^1.0.0"
- to-readable-stream: "npm:^1.0.0"
- url-parse-lax: "npm:^3.0.0"
- checksum: 10/fae3273b44392b6b1d88071d04ea984784e63dbf8ba3f70b04cb7edda53c7668ee17288ac46af507a9f2aa60c183c5ea1732339141d253dda3eb19f92985c771
- languageName: node
- linkType: hard
-
"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.3, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.10, graceful-fs@npm:^4.2.2, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9":
version: 4.2.11
resolution: "graceful-fs@npm:4.2.11"
@@ -20794,13 +20020,6 @@ __metadata:
languageName: node
linkType: hard
-"growly@npm:^1.3.0":
- version: 1.3.0
- resolution: "growly@npm:1.3.0"
- checksum: 10/77f9abc3a854ec628580939f004ba8f05c677f9a6c957be817525f20f68f75368c4879c64d12551f262a9a00de33fbefc4deb24f8f2124429c906ef20ec3c678
- languageName: node
- linkType: hard
-
"gunzip-maybe@npm:^1.4.2":
version: 1.4.2
resolution: "gunzip-maybe@npm:1.4.2"
@@ -20849,7 +20068,7 @@ __metadata:
languageName: node
linkType: hard
-"handlebars@npm:^4.0.3, handlebars@npm:^4.0.6, handlebars@npm:^4.7.6, handlebars@npm:^4.7.7":
+"handlebars@npm:^4.7.6, handlebars@npm:^4.7.7":
version: 4.7.8
resolution: "handlebars@npm:4.7.8"
dependencies:
@@ -21004,45 +20223,6 @@ __metadata:
languageName: node
linkType: hard
-"has-value@npm:^0.3.1":
- version: 0.3.1
- resolution: "has-value@npm:0.3.1"
- dependencies:
- get-value: "npm:^2.0.3"
- has-values: "npm:^0.1.4"
- isobject: "npm:^2.0.0"
- checksum: 10/29e2a1e6571dad83451b769c7ce032fce6009f65bccace07c2962d3ad4d5530b6743d8f3229e4ecf3ea8e905d23a752c5f7089100c1f3162039fa6dc3976558f
- languageName: node
- linkType: hard
-
-"has-value@npm:^1.0.0":
- version: 1.0.0
- resolution: "has-value@npm:1.0.0"
- dependencies:
- get-value: "npm:^2.0.6"
- has-values: "npm:^1.0.0"
- isobject: "npm:^3.0.0"
- checksum: 10/b9421d354e44f03d3272ac39fd49f804f19bc1e4fa3ceef7745df43d6b402053f828445c03226b21d7d934a21ac9cf4bc569396dc312f496ddff873197bbd847
- languageName: node
- linkType: hard
-
-"has-values@npm:^0.1.4":
- version: 0.1.4
- resolution: "has-values@npm:0.1.4"
- checksum: 10/ab1c4bcaf811ccd1856c11cfe90e62fca9e2b026ebe474233a3d282d8d67e3b59ed85b622c7673bac3db198cb98bd1da2b39300a2f98e453729b115350af49bc
- languageName: node
- linkType: hard
-
-"has-values@npm:^1.0.0":
- version: 1.0.0
- resolution: "has-values@npm:1.0.0"
- dependencies:
- is-number: "npm:^3.0.0"
- kind-of: "npm:^4.0.0"
- checksum: 10/77e6693f732b5e4cf6c38dfe85fdcefad0fab011af74995c3e83863fabf5e3a836f406d83565816baa0bc0a523c9410db8b990fe977074d61aeb6d8f4fcffa11
- languageName: node
- linkType: hard
-
"has@npm:^1.0.0, has@npm:^1.0.3":
version: 1.0.3
resolution: "has@npm:1.0.3"
@@ -21194,13 +20374,6 @@ __metadata:
languageName: node
linkType: hard
-"highlight.js@npm:^9.0.0":
- version: 9.18.5
- resolution: "highlight.js@npm:9.18.5"
- checksum: 10/56ddbd562ece7da84847770d96e8e52bd0e6151f69efb95e249d8e1fde2b5ed78cdaa2c0d33e4c838caa434cb0fe1aeeca4edca9c2c3343daf23dcf2ffbd3dc9
- languageName: node
- linkType: hard
-
"history@npm:^4.9.0":
version: 4.10.1
resolution: "history@npm:4.10.1"
@@ -21233,25 +20406,6 @@ __metadata:
languageName: node
linkType: hard
-"home-or-tmp@npm:^2.0.0":
- version: 2.0.0
- resolution: "home-or-tmp@npm:2.0.0"
- dependencies:
- os-homedir: "npm:^1.0.0"
- os-tmpdir: "npm:^1.0.1"
- checksum: 10/ad0a101a56ecd159d531f640e5949e7d58f4a6f464f07c16f1c8cb14d9c35895e80d834ef0de416887596506b90e7566235880e37eeb70ebc8c873363b3ded93
- languageName: node
- linkType: hard
-
-"homedir-polyfill@npm:^1.0.1":
- version: 1.0.3
- resolution: "homedir-polyfill@npm:1.0.3"
- dependencies:
- parse-passwd: "npm:^1.0.0"
- checksum: 10/18dd4db87052c6a2179d1813adea0c4bfcfa4f9996f0e226fefb29eb3d548e564350fa28ec46b0bf1fbc0a1d2d6922ceceb80093115ea45ff8842a4990139250
- languageName: node
- linkType: hard
-
"hook-std@npm:^2.0.0":
version: 2.0.0
resolution: "hook-std@npm:2.0.0"
@@ -21321,15 +20475,6 @@ __metadata:
languageName: node
linkType: hard
-"html-encoding-sniffer@npm:^1.0.2":
- version: 1.0.2
- resolution: "html-encoding-sniffer@npm:1.0.2"
- dependencies:
- whatwg-encoding: "npm:^1.0.1"
- checksum: 10/d8984b63836abadc5e1270c648d5b3c447ba9473d687b730c3ea8397f4cb15b33ca271e93f987150203717eeb8bfb5ec82646f84419a0bef040cd41f7cc428df
- languageName: node
- linkType: hard
-
"html-encoding-sniffer@npm:^2.0.1":
version: 2.0.1
resolution: "html-encoding-sniffer@npm:2.0.1"
@@ -21686,27 +20831,6 @@ __metadata:
languageName: node
linkType: hard
-"husky@npm:^4.2.5":
- version: 4.3.8
- resolution: "husky@npm:4.3.8"
- dependencies:
- chalk: "npm:^4.0.0"
- ci-info: "npm:^2.0.0"
- compare-versions: "npm:^3.6.0"
- cosmiconfig: "npm:^7.0.0"
- find-versions: "npm:^4.0.0"
- opencollective-postinstall: "npm:^2.0.2"
- pkg-dir: "npm:^5.0.0"
- please-upgrade-node: "npm:^3.2.0"
- slash: "npm:^3.0.0"
- which-pm-runs: "npm:^1.0.0"
- bin:
- husky-run: bin/run.js
- husky-upgrade: lib/upgrader/bin.js
- checksum: 10/bf525b1133ac68131a50acfea1b6348ed4b3230ff471492852edd97f3038e858ccf075eac431db47c27d928638a108eef70bc3940f289f5a3ac0eca20808969a
- languageName: node
- linkType: hard
-
"hyphenate-style-name@npm:^1.0.2":
version: 1.0.4
resolution: "hyphenate-style-name@npm:1.0.4"
@@ -21721,7 +20845,7 @@ __metadata:
languageName: node
linkType: hard
-"iconv-lite@npm:0.4.24, iconv-lite@npm:^0.4.24":
+"iconv-lite@npm:0.4, iconv-lite@npm:0.4.24":
version: 0.4.24
resolution: "iconv-lite@npm:0.4.24"
dependencies:
@@ -21885,18 +21009,6 @@ __metadata:
languageName: node
linkType: hard
-"import-local@npm:^1.0.0":
- version: 1.0.0
- resolution: "import-local@npm:1.0.0"
- dependencies:
- pkg-dir: "npm:^2.0.0"
- resolve-cwd: "npm:^2.0.0"
- bin:
- import-local-fixture: fixtures/cli.js
- checksum: 10/e7918eb5e20dcc755d6aa6b710ef0a346478256a3d7d7cde9e813c8f33019eda0fa3fe7427a9874314512f514c66c8156b7859e75ce8639769f25f2509ebd013
- languageName: node
- linkType: hard
-
"import-local@npm:^3.0.2":
version: 3.1.0
resolution: "import-local@npm:3.1.0"
@@ -22027,29 +21139,6 @@ __metadata:
languageName: node
linkType: hard
-"inquirer@npm:8.2.5":
- version: 8.2.5
- resolution: "inquirer@npm:8.2.5"
- dependencies:
- ansi-escapes: "npm:^4.2.1"
- chalk: "npm:^4.1.1"
- cli-cursor: "npm:^3.1.0"
- cli-width: "npm:^3.0.0"
- external-editor: "npm:^3.0.3"
- figures: "npm:^3.0.0"
- lodash: "npm:^4.17.21"
- mute-stream: "npm:0.0.8"
- ora: "npm:^5.4.1"
- run-async: "npm:^2.4.0"
- rxjs: "npm:^7.5.5"
- string-width: "npm:^4.1.0"
- strip-ansi: "npm:^6.0.0"
- through: "npm:^2.3.6"
- wrap-ansi: "npm:^7.0.0"
- checksum: 10/50a240dfeaca37a14e6a6d11d7d6f7da947be3a9fe1e34ac41db6a49fc27022e7b3875ebe8ccd739497359808694488f3509792cc986f9ac48c43135f4e14172
- languageName: node
- linkType: hard
-
"internal-slot@npm:^1.0.4, internal-slot@npm:^1.0.5":
version: 1.0.5
resolution: "internal-slot@npm:1.0.5"
@@ -22108,13 +21197,6 @@ __metadata:
languageName: node
linkType: hard
-"invert-kv@npm:^2.0.0":
- version: 2.0.0
- resolution: "invert-kv@npm:2.0.0"
- checksum: 10/0a03bfaa5b01406250ff7daae34fe5d4103db2b7d967655c7935b70f5fd8b2543fd98320a564a0ed037803c927156d2f77bb3bcf1fee489b3651cab955af7684
- languageName: node
- linkType: hard
-
"io-ts@npm:^2.1.2":
version: 2.2.20
resolution: "io-ts@npm:2.2.20"
@@ -22187,24 +21269,6 @@ __metadata:
languageName: node
linkType: hard
-"is-accessor-descriptor@npm:^0.1.6":
- version: 0.1.6
- resolution: "is-accessor-descriptor@npm:0.1.6"
- dependencies:
- kind-of: "npm:^3.0.2"
- checksum: 10/3d629a086a9585bc16a83a8e8a3416f400023301855cafb7ccc9a1d63145b7480f0ad28877dcc2cce09492c4ec1c39ef4c071996f24ee6ac626be4217b8ffc8a
- languageName: node
- linkType: hard
-
-"is-accessor-descriptor@npm:^1.0.0":
- version: 1.0.0
- resolution: "is-accessor-descriptor@npm:1.0.0"
- dependencies:
- kind-of: "npm:^6.0.0"
- checksum: 10/8e475968e9b22f9849343c25854fa24492dbe8ba0dea1a818978f9f1b887339190b022c9300d08c47fe36f1b913d70ce8cbaca00369c55a56705fdb7caed37fe
- languageName: node
- linkType: hard
-
"is-alphabetical@npm:^1.0.0":
version: 1.0.4
resolution: "is-alphabetical@npm:1.0.4"
@@ -22302,7 +21366,7 @@ __metadata:
languageName: node
linkType: hard
-"is-buffer@npm:^1.0.2, is-buffer@npm:^1.1.5":
+"is-buffer@npm:^1.0.2":
version: 1.1.6
resolution: "is-buffer@npm:1.1.6"
checksum: 10/f63da109e74bbe8947036ed529d43e4ae0c5fcd0909921dce4917ad3ea212c6a87c29f525ba1d17c0858c18331cf1046d4fc69ef59ed26896b25c8288a627133
@@ -22375,24 +21439,6 @@ __metadata:
languageName: node
linkType: hard
-"is-data-descriptor@npm:^0.1.4":
- version: 0.1.4
- resolution: "is-data-descriptor@npm:0.1.4"
- dependencies:
- kind-of: "npm:^3.0.2"
- checksum: 10/5c622e078ba933a78338ae398a3d1fc5c23332b395312daf4f74bab4afb10d061cea74821add726cb4db8b946ba36217ee71a24fe71dd5bca4632edb7f6aad87
- languageName: node
- linkType: hard
-
-"is-data-descriptor@npm:^1.0.0":
- version: 1.0.0
- resolution: "is-data-descriptor@npm:1.0.0"
- dependencies:
- kind-of: "npm:^6.0.0"
- checksum: 10/b8b1f13a535800a9f35caba2743b2cfd1e76312c0f94248c333d3b724d6ac6e07f06011e8b00eb2442f27dfc8fb71faf3dd52ced6bee41bb836be3df5d7811ee
- languageName: node
- linkType: hard
-
"is-date-object@npm:^1.0.1, is-date-object@npm:^1.0.5":
version: 1.0.5
resolution: "is-date-object@npm:1.0.5"
@@ -22423,28 +21469,6 @@ __metadata:
languageName: node
linkType: hard
-"is-descriptor@npm:^0.1.0":
- version: 0.1.6
- resolution: "is-descriptor@npm:0.1.6"
- dependencies:
- is-accessor-descriptor: "npm:^0.1.6"
- is-data-descriptor: "npm:^0.1.4"
- kind-of: "npm:^5.0.0"
- checksum: 10/b946ba842187c2784a5a0d67bd0e0271b14678f4fdce7d2295dfda9201f3408f55f56e11e5e66bfa4d2b9d45655b6105ad872ad7d37fb63f582587464fd414d7
- languageName: node
- linkType: hard
-
-"is-descriptor@npm:^1.0.0, is-descriptor@npm:^1.0.2":
- version: 1.0.2
- resolution: "is-descriptor@npm:1.0.2"
- dependencies:
- is-accessor-descriptor: "npm:^1.0.0"
- is-data-descriptor: "npm:^1.0.0"
- kind-of: "npm:^6.0.2"
- checksum: 10/e68059b333db331d5ea68cb367ce12fc6810853ced0e2221e6747143bbdf223dee73ebe8f331bafe04e34fdbe3da584b6af3335e82eabfaa33d5026efa33ca34
- languageName: node
- linkType: hard
-
"is-directory@npm:^0.3.1":
version: 0.3.1
resolution: "is-directory@npm:0.3.1"
@@ -22461,45 +21485,6 @@ __metadata:
languageName: node
linkType: hard
-"is-dotfile@npm:^1.0.0":
- version: 1.0.3
- resolution: "is-dotfile@npm:1.0.3"
- checksum: 10/5257760d998d50ba2d5b4707007c043c69da0b62172f2221505edc6671ff634581c05df494a19d8d7206d248154c2f29f8432193ee199d33b09733e66371fb35
- languageName: node
- linkType: hard
-
-"is-equal-shallow@npm:^0.1.3":
- version: 0.1.3
- resolution: "is-equal-shallow@npm:0.1.3"
- dependencies:
- is-primitive: "npm:^2.0.0"
- checksum: 10/1a296b660b8749ba1449017d9572e81fe8a96764877d5f9739c523a20cc7cdfa49594c16fa17052d0c3ee4711e35fd6919b06bf1b11b7126feab61abb9503ce6
- languageName: node
- linkType: hard
-
-"is-extendable@npm:^0.1.0, is-extendable@npm:^0.1.1":
- version: 0.1.1
- resolution: "is-extendable@npm:0.1.1"
- checksum: 10/3875571d20a7563772ecc7a5f36cb03167e9be31ad259041b4a8f73f33f885441f778cee1f1fe0085eb4bc71679b9d8c923690003a36a6a5fdf8023e6e3f0672
- languageName: node
- linkType: hard
-
-"is-extendable@npm:^1.0.1":
- version: 1.0.1
- resolution: "is-extendable@npm:1.0.1"
- dependencies:
- is-plain-object: "npm:^2.0.4"
- checksum: 10/db07bc1e9de6170de70eff7001943691f05b9d1547730b11be01c0ebfe67362912ba743cf4be6fd20a5e03b4180c685dad80b7c509fe717037e3eee30ad8e84f
- languageName: node
- linkType: hard
-
-"is-extglob@npm:^1.0.0":
- version: 1.0.0
- resolution: "is-extglob@npm:1.0.0"
- checksum: 10/5eea8517feeae5206547c0fc838c1416ec763b30093c286e1965a05f46b74a59ad391f912565f3b67c9c31cab4769ab9c35420e016b608acb47309be8d0d6e94
- languageName: node
- linkType: hard
-
"is-extglob@npm:^2.1.1":
version: 2.1.1
resolution: "is-extglob@npm:2.1.1"
@@ -22507,13 +21492,6 @@ __metadata:
languageName: node
linkType: hard
-"is-finite@npm:^1.0.0":
- version: 1.1.0
- resolution: "is-finite@npm:1.1.0"
- checksum: 10/532b97ed3d03e04c6bd203984d9e4ba3c0c390efee492bad5d1d1cd1802a68ab27adbd3ef6382f6312bed6c8bb1bd3e325ea79a8dc8fe080ed7a06f5f97b93e7
- languageName: node
- linkType: hard
-
"is-fullwidth-code-point@npm:^1.0.0":
version: 1.0.0
resolution: "is-fullwidth-code-point@npm:1.0.0"
@@ -22544,13 +21522,6 @@ __metadata:
languageName: node
linkType: hard
-"is-generator-fn@npm:^1.0.0":
- version: 1.0.0
- resolution: "is-generator-fn@npm:1.0.0"
- checksum: 10/9ea6404bdcbafc1edf2881e8fc57a7e2e8f48b2c04f24e4e889e670837d538c7e5a6ee645ee5217abb3e327ae511ed143824f8fde9c5c8e83129b20df9d2c78e
- languageName: node
- linkType: hard
-
"is-generator-fn@npm:^2.0.0":
version: 2.1.0
resolution: "is-generator-fn@npm:2.1.0"
@@ -22567,16 +21538,7 @@ __metadata:
languageName: node
linkType: hard
-"is-glob@npm:^2.0.0, is-glob@npm:^2.0.1":
- version: 2.0.1
- resolution: "is-glob@npm:2.0.1"
- dependencies:
- is-extglob: "npm:^1.0.0"
- checksum: 10/089f5f93640072491396a5f075ce73e949a90f35832b782bc49a6b7637d58e392d53cb0b395e059ccab70fcb82ff35d183f6f9ebbcb43227a1e02e3fed5430c9
- languageName: node
- linkType: hard
-
-"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1":
+"is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1":
version: 4.0.3
resolution: "is-glob@npm:4.0.3"
dependencies:
@@ -22684,31 +21646,6 @@ __metadata:
languageName: node
linkType: hard
-"is-number@npm:^2.1.0":
- version: 2.1.0
- resolution: "is-number@npm:2.1.0"
- dependencies:
- kind-of: "npm:^3.0.2"
- checksum: 10/d80e041a43a8de31ecc02037d532f1f448ec9c5b6c02fe7ee67bdd45d21cd9a4b3b4cf07e428ae5adafc2f17408c49fcb0a227915916d94a16d576c39e689f60
- languageName: node
- linkType: hard
-
-"is-number@npm:^3.0.0":
- version: 3.0.0
- resolution: "is-number@npm:3.0.0"
- dependencies:
- kind-of: "npm:^3.0.2"
- checksum: 10/0c62bf8e9d72c4dd203a74d8cfc751c746e75513380fef420cda8237e619a988ee43e678ddb23c87ac24d91ac0fe9f22e4ffb1301a50310c697e9d73ca3994e9
- languageName: node
- linkType: hard
-
-"is-number@npm:^4.0.0":
- version: 4.0.0
- resolution: "is-number@npm:4.0.0"
- checksum: 10/7f25967eb4fd92c4c5c282f6510c86d257de5894501b831ae6ab44a964c690ba721eef931eb2aaad2aacf35fd0cf57b9d2135b0bd25147dc5bc64f99fbca1785
- languageName: node
- linkType: hard
-
"is-number@npm:^7.0.0":
version: 7.0.0
resolution: "is-number@npm:7.0.0"
@@ -22716,7 +21653,7 @@ __metadata:
languageName: node
linkType: hard
-"is-obj@npm:^1.0.0, is-obj@npm:^1.0.1":
+"is-obj@npm:^1.0.0":
version: 1.0.1
resolution: "is-obj@npm:1.0.1"
checksum: 10/3ccf0efdea12951e0b9c784e2b00e77e87b2f8bd30b42a498548a8afcc11b3287342a2030c308e473e93a7a19c9ea7854c99a8832a476591c727df2a9c79796c
@@ -22730,22 +21667,6 @@ __metadata:
languageName: node
linkType: hard
-"is-observable@npm:^1.1.0":
- version: 1.1.0
- resolution: "is-observable@npm:1.1.0"
- dependencies:
- symbol-observable: "npm:^1.1.0"
- checksum: 10/ab3d7e740915e6b53a81d96ce7d581f4dd26dacceb95278b74e7bf3123221073ea02cde810f864cff94ed5c394f18248deefd6a8f2d40137d868130eb5be6f85
- languageName: node
- linkType: hard
-
-"is-path-cwd@npm:^1.0.0":
- version: 1.0.0
- resolution: "is-path-cwd@npm:1.0.0"
- checksum: 10/ade6d8d59bb6a00079fb515ad78a741b757a66bc6208a2dab2c9f8ad535bc61e21b6823ae8b23df2bf4d2b9dac8df4f3df2e68105698eb3e15ceb5ca90dac097
- languageName: node
- linkType: hard
-
"is-path-cwd@npm:^2.2.0":
version: 2.2.0
resolution: "is-path-cwd@npm:2.2.0"
@@ -22753,15 +21674,6 @@ __metadata:
languageName: node
linkType: hard
-"is-path-in-cwd@npm:^1.0.0":
- version: 1.0.1
- resolution: "is-path-in-cwd@npm:1.0.1"
- dependencies:
- is-path-inside: "npm:^1.0.0"
- checksum: 10/bacfc67c0dacd09002668abb1565fa77ee9593914f1502ec8ecae9821ddd39a2a98e7a95053e3446421b3429c3b3df1a26669c95cecc9f4f556609ec9760ba2a
- languageName: node
- linkType: hard
-
"is-path-inside@npm:^1.0.0":
version: 1.0.1
resolution: "is-path-inside@npm:1.0.1"
@@ -22806,7 +21718,7 @@ __metadata:
languageName: node
linkType: hard
-"is-plain-object@npm:^2.0.3, is-plain-object@npm:^2.0.4":
+"is-plain-object@npm:^2.0.4":
version: 2.0.4
resolution: "is-plain-object@npm:2.0.4"
dependencies:
@@ -22815,13 +21727,6 @@ __metadata:
languageName: node
linkType: hard
-"is-posix-bracket@npm:^0.1.0":
- version: 0.1.1
- resolution: "is-posix-bracket@npm:0.1.1"
- checksum: 10/8a6391b41e7acef6898e64b00e06885b28c14b0c76398d3251a6ab1e5350d495dd32ec3f7f88f3f877558ce4b970939356fb315ee607f8f99a1716d4db7bdd40
- languageName: node
- linkType: hard
-
"is-potential-custom-element-name@npm:^1.0.1":
version: 1.0.1
resolution: "is-potential-custom-element-name@npm:1.0.1"
@@ -22829,20 +21734,6 @@ __metadata:
languageName: node
linkType: hard
-"is-primitive@npm:^2.0.0":
- version: 2.0.0
- resolution: "is-primitive@npm:2.0.0"
- checksum: 10/4d63fe952e31a4bc1d1a65d72f8485f5952407dce8d1cd8d8f070586936ea9ae2df79e0a83956b224aa7776cbbf5767eba3277f28119c36a616b20a439f057c0
- languageName: node
- linkType: hard
-
-"is-promise@npm:^2.1.0":
- version: 2.2.2
- resolution: "is-promise@npm:2.2.2"
- checksum: 10/18bf7d1c59953e0ad82a1ed963fb3dc0d135c8f299a14f89a17af312fc918373136e56028e8831700e1933519630cc2fd4179a777030330fde20d34e96f40c78
- languageName: node
- linkType: hard
-
"is-redirect@npm:^1.0.0":
version: 1.0.0
resolution: "is-redirect@npm:1.0.0"
@@ -22878,13 +21769,6 @@ __metadata:
languageName: node
linkType: hard
-"is-regexp@npm:^1.0.0":
- version: 1.0.0
- resolution: "is-regexp@npm:1.0.0"
- checksum: 10/be692828e24cba479ec33644326fa98959ec68ba77965e0291088c1a741feaea4919d79f8031708f85fd25e39de002b4520622b55460660b9c369e6f7187faef
- languageName: node
- linkType: hard
-
"is-resolvable@npm:^1.0.0":
version: 1.1.0
resolution: "is-resolvable@npm:1.1.0"
@@ -22986,13 +21870,6 @@ __metadata:
languageName: node
linkType: hard
-"is-utf8@npm:^0.2.0, is-utf8@npm:^0.2.1":
- version: 0.2.1
- resolution: "is-utf8@npm:0.2.1"
- checksum: 10/167ccd2be869fc228cc62c1a28df4b78c6b5485d15a29027d3b5dceb09b383e86a3522008b56dcac14b592b22f0a224388718c2505027a994fd8471465de54b3
- languageName: node
- linkType: hard
-
"is-weakmap@npm:^2.0.1":
version: 2.0.1
resolution: "is-weakmap@npm:2.0.1"
@@ -23019,20 +21896,6 @@ __metadata:
languageName: node
linkType: hard
-"is-windows@npm:^1.0.1, is-windows@npm:^1.0.2":
- version: 1.0.2
- resolution: "is-windows@npm:1.0.2"
- checksum: 10/438b7e52656fe3b9b293b180defb4e448088e7023a523ec21a91a80b9ff8cdb3377ddb5b6e60f7c7de4fa8b63ab56e121b6705fe081b3cf1b828b0a380009ad7
- languageName: node
- linkType: hard
-
-"is-wsl@npm:^1.1.0":
- version: 1.1.0
- resolution: "is-wsl@npm:1.1.0"
- checksum: 10/ea157d232351e68c92bd62fc541771096942fe72f69dff452dd26dcc31466258c570a3b04b8cda2e01cd2968255b02951b8670d08ea4ed76d6b1a646061ac4fe
- languageName: node
- linkType: hard
-
"is-wsl@npm:^2.1.1, is-wsl@npm:^2.2.0":
version: 2.2.0
resolution: "is-wsl@npm:2.2.0"
@@ -23049,13 +21912,6 @@ __metadata:
languageName: node
linkType: hard
-"isarray@npm:1.0.0, isarray@npm:~1.0.0":
- version: 1.0.0
- resolution: "isarray@npm:1.0.0"
- checksum: 10/f032df8e02dce8ec565cf2eb605ea939bdccea528dbcf565cdf92bfa2da9110461159d86a537388ef1acef8815a330642d7885b29010e8f7eac967c9993b65ab
- languageName: node
- linkType: hard
-
"isarray@npm:^2.0.1, isarray@npm:^2.0.5":
version: 2.0.5
resolution: "isarray@npm:2.0.5"
@@ -23063,6 +21919,13 @@ __metadata:
languageName: node
linkType: hard
+"isarray@npm:~1.0.0":
+ version: 1.0.0
+ resolution: "isarray@npm:1.0.0"
+ checksum: 10/f032df8e02dce8ec565cf2eb605ea939bdccea528dbcf565cdf92bfa2da9110461159d86a537388ef1acef8815a330642d7885b29010e8f7eac967c9993b65ab
+ languageName: node
+ linkType: hard
+
"isbot-fast@npm:1.2.0":
version: 1.2.0
resolution: "isbot-fast@npm:1.2.0"
@@ -23077,16 +21940,7 @@ __metadata:
languageName: node
linkType: hard
-"isobject@npm:^2.0.0":
- version: 2.1.0
- resolution: "isobject@npm:2.1.0"
- dependencies:
- isarray: "npm:1.0.0"
- checksum: 10/811c6f5a866877d31f0606a88af4a45f282544de886bf29f6a34c46616a1ae2ed17076cc6bf34c0128f33eecf7e1fcaa2c82cf3770560d3e26810894e96ae79f
- languageName: node
- linkType: hard
-
-"isobject@npm:^3.0.0, isobject@npm:^3.0.1":
+"isobject@npm:^3.0.1":
version: 3.0.1
resolution: "isobject@npm:3.0.1"
checksum: 10/db85c4c970ce30693676487cca0e61da2ca34e8d4967c2e1309143ff910c207133a969f9e4ddb2dc6aba670aabce4e0e307146c310350b298e74a31f7d464703
@@ -23123,32 +21977,6 @@ __metadata:
languageName: node
linkType: hard
-"istanbul-api@npm:^1.3.1":
- version: 1.3.7
- resolution: "istanbul-api@npm:1.3.7"
- dependencies:
- async: "npm:^2.1.4"
- fileset: "npm:^2.0.2"
- istanbul-lib-coverage: "npm:^1.2.1"
- istanbul-lib-hook: "npm:^1.2.2"
- istanbul-lib-instrument: "npm:^1.10.2"
- istanbul-lib-report: "npm:^1.1.5"
- istanbul-lib-source-maps: "npm:^1.2.6"
- istanbul-reports: "npm:^1.5.1"
- js-yaml: "npm:^3.7.0"
- mkdirp: "npm:^0.5.1"
- once: "npm:^1.4.0"
- checksum: 10/080f3d3cf9e98a2bf037b910f504d23b6708dc199c65ff540dc6b9be2c95ec2a7471c6e84586a2fd63490ee463990c7600ed386a95d83c47f9a4f4e7c75e44de
- languageName: node
- linkType: hard
-
-"istanbul-lib-coverage@npm:^1.2.0, istanbul-lib-coverage@npm:^1.2.1":
- version: 1.2.1
- resolution: "istanbul-lib-coverage@npm:1.2.1"
- checksum: 10/d22f18573e6c8b1de731a00297d1c2fe22e6b959243765f184d4441c41700c1e94111efa4160a0f22e2c7d23294ec412905e382adef12d1064e9dfbd1572606a
- languageName: node
- linkType: hard
-
"istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0":
version: 3.2.0
resolution: "istanbul-lib-coverage@npm:3.2.0"
@@ -23156,30 +21984,6 @@ __metadata:
languageName: node
linkType: hard
-"istanbul-lib-hook@npm:^1.2.2":
- version: 1.2.2
- resolution: "istanbul-lib-hook@npm:1.2.2"
- dependencies:
- append-transform: "npm:^0.4.0"
- checksum: 10/5fdde55b0abd162acd8b53214b2fe2e6f6f8e0d9ed9d9e5d434e1e2734e18df02a17057937b4a59953ceb58aa251cbabe40ef65dbe2501f04ce679d219772204
- languageName: node
- linkType: hard
-
-"istanbul-lib-instrument@npm:^1.10.1, istanbul-lib-instrument@npm:^1.10.2":
- version: 1.10.2
- resolution: "istanbul-lib-instrument@npm:1.10.2"
- dependencies:
- babel-generator: "npm:^6.18.0"
- babel-template: "npm:^6.16.0"
- babel-traverse: "npm:^6.18.0"
- babel-types: "npm:^6.18.0"
- babylon: "npm:^6.18.0"
- istanbul-lib-coverage: "npm:^1.2.1"
- semver: "npm:^5.3.0"
- checksum: 10/0a821b3e2d0a798c0ee5e26782c4c0b4c7a10f3a78be631aed21545654d412516d1c75e7eae4783b62c4e32f4656ca8d52270ba95f58a3fd6bdab78e05a00417
- languageName: node
- linkType: hard
-
"istanbul-lib-instrument@npm:^5.0.4, istanbul-lib-instrument@npm:^5.1.0":
version: 5.2.1
resolution: "istanbul-lib-instrument@npm:5.2.1"
@@ -23193,18 +21997,6 @@ __metadata:
languageName: node
linkType: hard
-"istanbul-lib-report@npm:^1.1.5":
- version: 1.1.5
- resolution: "istanbul-lib-report@npm:1.1.5"
- dependencies:
- istanbul-lib-coverage: "npm:^1.2.1"
- mkdirp: "npm:^0.5.1"
- path-parse: "npm:^1.0.5"
- supports-color: "npm:^3.1.2"
- checksum: 10/0063ef8af0ca4a4bee69d9b0e5b40cc219a6b5faee39aa5b824725a2e2ccb6a41f376767b69dbf00d275916b6371c32a0a9ecb94812a9663d23f973a6147073d
- languageName: node
- linkType: hard
-
"istanbul-lib-report@npm:^3.0.0":
version: 3.0.1
resolution: "istanbul-lib-report@npm:3.0.1"
@@ -23216,19 +22008,6 @@ __metadata:
languageName: node
linkType: hard
-"istanbul-lib-source-maps@npm:^1.2.4, istanbul-lib-source-maps@npm:^1.2.6":
- version: 1.2.6
- resolution: "istanbul-lib-source-maps@npm:1.2.6"
- dependencies:
- debug: "npm:^3.1.0"
- istanbul-lib-coverage: "npm:^1.2.1"
- mkdirp: "npm:^0.5.1"
- rimraf: "npm:^2.6.1"
- source-map: "npm:^0.5.3"
- checksum: 10/c3db201497e7345e9ce9cb59b076253b506a56d18842228e033ccbf793c6438cd34b3331465be220addf4b74789b70421926f7495a85b6ff94177c6917a4810d
- languageName: node
- linkType: hard
-
"istanbul-lib-source-maps@npm:^4.0.0":
version: 4.0.1
resolution: "istanbul-lib-source-maps@npm:4.0.1"
@@ -23240,15 +22019,6 @@ __metadata:
languageName: node
linkType: hard
-"istanbul-reports@npm:^1.5.1":
- version: 1.5.1
- resolution: "istanbul-reports@npm:1.5.1"
- dependencies:
- handlebars: "npm:^4.0.3"
- checksum: 10/4f97372bf38c2158a18b231665728b2aec15bb8852e290e9b1d2fa91314dc80eef7fb9fa3ec864329deefd6b11f66354d7632e0ca6bc4ce46d3bd5fba8c5d9d2
- languageName: node
- linkType: hard
-
"istanbul-reports@npm:^3.1.3":
version: 3.1.6
resolution: "istanbul-reports@npm:3.1.6"
@@ -23306,15 +22076,6 @@ __metadata:
languageName: node
linkType: hard
-"jest-changed-files@npm:^23.4.2":
- version: 23.4.2
- resolution: "jest-changed-files@npm:23.4.2"
- dependencies:
- throat: "npm:^4.0.0"
- checksum: 10/07dad83c96f8caea732884cc8c328145f146c17ee9a288d5d72d6db3e83b4e74fa009ae576b8bdc82849c21cae035fb87fe4dec0c3724f64d0dbe61a0b1ecc61
- languageName: node
- linkType: hard
-
"jest-changed-files@npm:^27.5.1":
version: 27.5.1
resolution: "jest-changed-files@npm:27.5.1"
@@ -23353,52 +22114,6 @@ __metadata:
languageName: node
linkType: hard
-"jest-cli@npm:^23.6.0":
- version: 23.6.0
- resolution: "jest-cli@npm:23.6.0"
- dependencies:
- ansi-escapes: "npm:^3.0.0"
- chalk: "npm:^2.0.1"
- exit: "npm:^0.1.2"
- glob: "npm:^7.1.2"
- graceful-fs: "npm:^4.1.11"
- import-local: "npm:^1.0.0"
- is-ci: "npm:^1.0.10"
- istanbul-api: "npm:^1.3.1"
- istanbul-lib-coverage: "npm:^1.2.0"
- istanbul-lib-instrument: "npm:^1.10.1"
- istanbul-lib-source-maps: "npm:^1.2.4"
- jest-changed-files: "npm:^23.4.2"
- jest-config: "npm:^23.6.0"
- jest-environment-jsdom: "npm:^23.4.0"
- jest-get-type: "npm:^22.1.0"
- jest-haste-map: "npm:^23.6.0"
- jest-message-util: "npm:^23.4.0"
- jest-regex-util: "npm:^23.3.0"
- jest-resolve-dependencies: "npm:^23.6.0"
- jest-runner: "npm:^23.6.0"
- jest-runtime: "npm:^23.6.0"
- jest-snapshot: "npm:^23.6.0"
- jest-util: "npm:^23.4.0"
- jest-validate: "npm:^23.6.0"
- jest-watcher: "npm:^23.4.0"
- jest-worker: "npm:^23.2.0"
- micromatch: "npm:^2.3.11"
- node-notifier: "npm:^5.2.1"
- prompts: "npm:^0.1.9"
- realpath-native: "npm:^1.0.0"
- rimraf: "npm:^2.5.4"
- slash: "npm:^1.0.0"
- string-length: "npm:^2.0.0"
- strip-ansi: "npm:^4.0.0"
- which: "npm:^1.2.12"
- yargs: "npm:^11.0.0"
- bin:
- jest: ./bin/jest.js
- checksum: 10/35d94c7da75f4e0eddbf17fc85149db904e146e552af2c6c5b391680e751221edfdc620277120d304bbcb649004dd6775ca07fbd4aa76e6f2a073df77edf732e
- languageName: node
- linkType: hard
-
"jest-cli@npm:^27.5.1":
version: 27.5.1
resolution: "jest-cli@npm:27.5.1"
@@ -23426,28 +22141,6 @@ __metadata:
languageName: node
linkType: hard
-"jest-config@npm:^23.6.0":
- version: 23.6.0
- resolution: "jest-config@npm:23.6.0"
- dependencies:
- babel-core: "npm:^6.0.0"
- babel-jest: "npm:^23.6.0"
- chalk: "npm:^2.0.1"
- glob: "npm:^7.1.1"
- jest-environment-jsdom: "npm:^23.4.0"
- jest-environment-node: "npm:^23.4.0"
- jest-get-type: "npm:^22.1.0"
- jest-jasmine2: "npm:^23.6.0"
- jest-regex-util: "npm:^23.3.0"
- jest-resolve: "npm:^23.6.0"
- jest-util: "npm:^23.4.0"
- jest-validate: "npm:^23.6.0"
- micromatch: "npm:^2.3.11"
- pretty-format: "npm:^23.6.0"
- checksum: 10/801633d9fecfc44bf9a0935b35e4e223d3716adb70b2f2db069fc49e63dc71b234d0e8b44eecc1b96dbc2292cfa39c5391f3cce6208d599de3fe22cffae345b6
- languageName: node
- linkType: hard
-
"jest-config@npm:^27.5.1":
version: 27.5.1
resolution: "jest-config@npm:27.5.1"
@@ -23485,18 +22178,6 @@ __metadata:
languageName: node
linkType: hard
-"jest-diff@npm:^23.6.0":
- version: 23.6.0
- resolution: "jest-diff@npm:23.6.0"
- dependencies:
- chalk: "npm:^2.0.1"
- diff: "npm:^3.2.0"
- jest-get-type: "npm:^22.1.0"
- pretty-format: "npm:^23.6.0"
- checksum: 10/358360b5ed3d48d569579be074b3e0f4e72ae7d37f0f720c5a2c8ef16a674741f9c4fad5cf0a8666debd022a5df11276794c409ccc6b0ec3b77e37e60ae4dadc
- languageName: node
- linkType: hard
-
"jest-diff@npm:^26.0.0":
version: 26.6.2
resolution: "jest-diff@npm:26.6.2"
@@ -23521,15 +22202,6 @@ __metadata:
languageName: node
linkType: hard
-"jest-docblock@npm:^23.2.0":
- version: 23.2.0
- resolution: "jest-docblock@npm:23.2.0"
- dependencies:
- detect-newline: "npm:^2.1.0"
- checksum: 10/1b225189884751ad3503f901ebc157457d495a53a033390ac0093b20312bff18593bb3c963cbe860b0c2b9cb33e0da5761ce1f444498e5013ac80b5c06e4e52c
- languageName: node
- linkType: hard
-
"jest-docblock@npm:^27.5.1":
version: 27.5.1
resolution: "jest-docblock@npm:27.5.1"
@@ -23539,16 +22211,6 @@ __metadata:
languageName: node
linkType: hard
-"jest-each@npm:^23.6.0":
- version: 23.6.0
- resolution: "jest-each@npm:23.6.0"
- dependencies:
- chalk: "npm:^2.0.1"
- pretty-format: "npm:^23.6.0"
- checksum: 10/7b32903697701101330c92f5ec4984d3e8a2c154b87fb828e8fbf4e0bb283578e9e037e3cf2f726877df744f57252eac72d9d5a2a9050726bf98fde93d7450f5
- languageName: node
- linkType: hard
-
"jest-each@npm:^27.5.1":
version: 27.5.1
resolution: "jest-each@npm:27.5.1"
@@ -23562,17 +22224,6 @@ __metadata:
languageName: node
linkType: hard
-"jest-environment-jsdom@npm:^23.4.0":
- version: 23.4.0
- resolution: "jest-environment-jsdom@npm:23.4.0"
- dependencies:
- jest-mock: "npm:^23.2.0"
- jest-util: "npm:^23.4.0"
- jsdom: "npm:^11.5.1"
- checksum: 10/b13e29cfdfd566a5976d8c91507409de64097aea81be2782042904960e29c1ca746966688b5e5e6b222629bd1434304b6d4d3b099ec620786bd014a95f40d3f5
- languageName: node
- linkType: hard
-
"jest-environment-jsdom@npm:^27.5.1":
version: 27.5.1
resolution: "jest-environment-jsdom@npm:27.5.1"
@@ -23588,16 +22239,6 @@ __metadata:
languageName: node
linkType: hard
-"jest-environment-node@npm:^23.4.0":
- version: 23.4.0
- resolution: "jest-environment-node@npm:23.4.0"
- dependencies:
- jest-mock: "npm:^23.2.0"
- jest-util: "npm:^23.4.0"
- checksum: 10/a0f117a3ab2c25e26c55a1c02cf48439459a36f5889211483999c64d602d8a9169a7e3dbfcd174256a31536a6520c891b2736462ac6fa9d4357476f5e6b3e65e
- languageName: node
- linkType: hard
-
"jest-environment-node@npm:^27.5.1":
version: 27.5.1
resolution: "jest-environment-node@npm:27.5.1"
@@ -23612,13 +22253,6 @@ __metadata:
languageName: node
linkType: hard
-"jest-get-type@npm:^22.1.0":
- version: 22.4.3
- resolution: "jest-get-type@npm:22.4.3"
- checksum: 10/f2daab7cb762457cdcd5500e3b0222cc96856649b685c40a621fe7395147ee67bbb594a2285b28c0b3cb9d80819eca4f99dd450df1bcac8a7cffa8a2dbaeec31
- languageName: node
- linkType: hard
-
"jest-get-type@npm:^26.3.0":
version: 26.3.0
resolution: "jest-get-type@npm:26.3.0"
@@ -23633,22 +22267,6 @@ __metadata:
languageName: node
linkType: hard
-"jest-haste-map@npm:^23.6.0":
- version: 23.6.0
- resolution: "jest-haste-map@npm:23.6.0"
- dependencies:
- fb-watchman: "npm:^2.0.0"
- graceful-fs: "npm:^4.1.11"
- invariant: "npm:^2.2.4"
- jest-docblock: "npm:^23.2.0"
- jest-serializer: "npm:^23.0.1"
- jest-worker: "npm:^23.2.0"
- micromatch: "npm:^2.3.11"
- sane: "npm:^2.0.0"
- checksum: 10/a2b549031fdba127e704d0a06e567847378c2bdc84f78188754c610ab36e8bd0a01b1a057b5d07c1a7254d92b38e00122c5c24ce8d08e64dc64268bb72fe8852
- languageName: node
- linkType: hard
-
"jest-haste-map@npm:^27.5.1":
version: 27.5.1
resolution: "jest-haste-map@npm:27.5.1"
@@ -23673,26 +22291,6 @@ __metadata:
languageName: node
linkType: hard
-"jest-jasmine2@npm:^23.6.0":
- version: 23.6.0
- resolution: "jest-jasmine2@npm:23.6.0"
- dependencies:
- babel-traverse: "npm:^6.0.0"
- chalk: "npm:^2.0.1"
- co: "npm:^4.6.0"
- expect: "npm:^23.6.0"
- is-generator-fn: "npm:^1.0.0"
- jest-diff: "npm:^23.6.0"
- jest-each: "npm:^23.6.0"
- jest-matcher-utils: "npm:^23.6.0"
- jest-message-util: "npm:^23.4.0"
- jest-snapshot: "npm:^23.6.0"
- jest-util: "npm:^23.4.0"
- pretty-format: "npm:^23.6.0"
- checksum: 10/a4126092f8bc81d7fd7801eb2bdfea08b6f0dd7fa75e2a389d9868000cef808ad8051aa538d6c5fd4e5ed6cace4b75f0d6cb85e4f90161b95b938068d0f72d34
- languageName: node
- linkType: hard
-
"jest-jasmine2@npm:^27.5.1":
version: 27.5.1
resolution: "jest-jasmine2@npm:27.5.1"
@@ -23718,15 +22316,6 @@ __metadata:
languageName: node
linkType: hard
-"jest-leak-detector@npm:^23.6.0":
- version: 23.6.0
- resolution: "jest-leak-detector@npm:23.6.0"
- dependencies:
- pretty-format: "npm:^23.6.0"
- checksum: 10/f17357685e62d6188838f3309cdef3148762362d525aee3732db0e7dc356779ede12d760cb030079df028affb2d6ff70e0f8b8a47f68f1ebe4f182370bbef334
- languageName: node
- linkType: hard
-
"jest-leak-detector@npm:^27.5.1":
version: 27.5.1
resolution: "jest-leak-detector@npm:27.5.1"
@@ -23737,17 +22326,6 @@ __metadata:
languageName: node
linkType: hard
-"jest-matcher-utils@npm:^23.6.0":
- version: 23.6.0
- resolution: "jest-matcher-utils@npm:23.6.0"
- dependencies:
- chalk: "npm:^2.0.1"
- jest-get-type: "npm:^22.1.0"
- pretty-format: "npm:^23.6.0"
- checksum: 10/ae2d864c8fda68f32f783d0bf22b6793915e1ce0a3fc038104cc12df43adb0cca02715642998c7a90d425fd2ad4fb40ae9affa09024b604221c642d85fcb5fe4
- languageName: node
- linkType: hard
-
"jest-matcher-utils@npm:^27.0.0, jest-matcher-utils@npm:^27.5.1":
version: 27.5.1
resolution: "jest-matcher-utils@npm:27.5.1"
@@ -23760,19 +22338,6 @@ __metadata:
languageName: node
linkType: hard
-"jest-message-util@npm:^23.4.0":
- version: 23.4.0
- resolution: "jest-message-util@npm:23.4.0"
- dependencies:
- "@babel/code-frame": "npm:^7.0.0-beta.35"
- chalk: "npm:^2.0.1"
- micromatch: "npm:^2.3.11"
- slash: "npm:^1.0.0"
- stack-utils: "npm:^1.0.1"
- checksum: 10/f6235c559b8bf9f4ff3b8f31fc2cda24125b9e07efd8ab7460f8117d0f8459ca197e45b1f685c625047e5a420ea6dce5b647e9ac9b56e8ab0a7343a49590b3f7
- languageName: node
- linkType: hard
-
"jest-message-util@npm:^27.5.1":
version: 27.5.1
resolution: "jest-message-util@npm:27.5.1"
@@ -23790,13 +22355,6 @@ __metadata:
languageName: node
linkType: hard
-"jest-mock@npm:^23.2.0":
- version: 23.2.0
- resolution: "jest-mock@npm:23.2.0"
- checksum: 10/520339b81e8399aa69ac438c95581f419d5160d6b4315978716cc99021054eadce6e339eb322f5f10a7a68f569dcde36eb25103cb48c7b7603352edc56a8717f
- languageName: node
- linkType: hard
-
"jest-mock@npm:^27.5.1":
version: 27.5.1
resolution: "jest-mock@npm:27.5.1"
@@ -23819,13 +22377,6 @@ __metadata:
languageName: node
linkType: hard
-"jest-regex-util@npm:^23.3.0":
- version: 23.3.0
- resolution: "jest-regex-util@npm:23.3.0"
- checksum: 10/5cdf684fe11d224a38c4191fae158edb879f93e3b8b21e3554df1b4171e84f5113f61ce085ea8ef8b2a286d7d8af59d64a1c04a9da484aeacb70040a455517bc
- languageName: node
- linkType: hard
-
"jest-regex-util@npm:^27.5.1":
version: 27.5.1
resolution: "jest-regex-util@npm:27.5.1"
@@ -23833,16 +22384,6 @@ __metadata:
languageName: node
linkType: hard
-"jest-resolve-dependencies@npm:^23.6.0":
- version: 23.6.0
- resolution: "jest-resolve-dependencies@npm:23.6.0"
- dependencies:
- jest-regex-util: "npm:^23.3.0"
- jest-snapshot: "npm:^23.6.0"
- checksum: 10/a6de3b97a2f637c8af4876eba544bc43af907aa017e2efcc8d42ba432daa2d4e8cff63052938d6db05d077054161542278e39e0631735af163ef1b25036a6a5e
- languageName: node
- linkType: hard
-
"jest-resolve-dependencies@npm:^27.5.1":
version: 27.5.1
resolution: "jest-resolve-dependencies@npm:27.5.1"
@@ -23854,17 +22395,6 @@ __metadata:
languageName: node
linkType: hard
-"jest-resolve@npm:^23.6.0":
- version: 23.6.0
- resolution: "jest-resolve@npm:23.6.0"
- dependencies:
- browser-resolve: "npm:^1.11.3"
- chalk: "npm:^2.0.1"
- realpath-native: "npm:^1.0.0"
- checksum: 10/76cd6eacfc08dadcaecc819fec7f7e354279def0982038059af03e15828712f10163a6dca898357acbba70f78728e247c553f434d0ea14e5e36b081fe40069b7
- languageName: node
- linkType: hard
-
"jest-resolve@npm:^27.5.1":
version: 27.5.1
resolution: "jest-resolve@npm:27.5.1"
@@ -23883,27 +22413,6 @@ __metadata:
languageName: node
linkType: hard
-"jest-runner@npm:^23.6.0":
- version: 23.6.0
- resolution: "jest-runner@npm:23.6.0"
- dependencies:
- exit: "npm:^0.1.2"
- graceful-fs: "npm:^4.1.11"
- jest-config: "npm:^23.6.0"
- jest-docblock: "npm:^23.2.0"
- jest-haste-map: "npm:^23.6.0"
- jest-jasmine2: "npm:^23.6.0"
- jest-leak-detector: "npm:^23.6.0"
- jest-message-util: "npm:^23.4.0"
- jest-runtime: "npm:^23.6.0"
- jest-util: "npm:^23.4.0"
- jest-worker: "npm:^23.2.0"
- source-map-support: "npm:^0.5.6"
- throat: "npm:^4.0.0"
- checksum: 10/9e09d67fa4aef0f100b89411dea669b28f3b2fc4c695f4409786731b43fac3ef3f8bc187f71dbc96d95140e4c6919d0ba70a6e7541d8da08f75db3791b1b968f
- languageName: node
- linkType: hard
-
"jest-runner@npm:^27.5.1":
version: 27.5.1
resolution: "jest-runner@npm:27.5.1"
@@ -23933,37 +22442,6 @@ __metadata:
languageName: node
linkType: hard
-"jest-runtime@npm:^23.6.0":
- version: 23.6.0
- resolution: "jest-runtime@npm:23.6.0"
- dependencies:
- babel-core: "npm:^6.0.0"
- babel-plugin-istanbul: "npm:^4.1.6"
- chalk: "npm:^2.0.1"
- convert-source-map: "npm:^1.4.0"
- exit: "npm:^0.1.2"
- fast-json-stable-stringify: "npm:^2.0.0"
- graceful-fs: "npm:^4.1.11"
- jest-config: "npm:^23.6.0"
- jest-haste-map: "npm:^23.6.0"
- jest-message-util: "npm:^23.4.0"
- jest-regex-util: "npm:^23.3.0"
- jest-resolve: "npm:^23.6.0"
- jest-snapshot: "npm:^23.6.0"
- jest-util: "npm:^23.4.0"
- jest-validate: "npm:^23.6.0"
- micromatch: "npm:^2.3.11"
- realpath-native: "npm:^1.0.0"
- slash: "npm:^1.0.0"
- strip-bom: "npm:3.0.0"
- write-file-atomic: "npm:^2.1.0"
- yargs: "npm:^11.0.0"
- bin:
- jest-runtime: ./bin/jest-runtime.js
- checksum: 10/aff7d15e2fe0fcdad66d936b710c54499cb09a4fa56337289550c0060d14bbe0cef4af3beea9adbd10b61bebebfb6d98c607bca50e9086d6ce491d5b1487cc9f
- languageName: node
- linkType: hard
-
"jest-runtime@npm:^27.5.1":
version: 27.5.1
resolution: "jest-runtime@npm:27.5.1"
@@ -23994,13 +22472,6 @@ __metadata:
languageName: node
linkType: hard
-"jest-serializer@npm:^23.0.1":
- version: 23.0.1
- resolution: "jest-serializer@npm:23.0.1"
- checksum: 10/04243d06fef006566d6ed035e56bfce996bb8b91ddb5509c79e15a51e9b273fcd553843600161ea463e3104f2eb9b33ede92d23799fd9b6ed6dd073f05739c9f
- languageName: node
- linkType: hard
-
"jest-serializer@npm:^27.5.1":
version: 27.5.1
resolution: "jest-serializer@npm:27.5.1"
@@ -24011,24 +22482,6 @@ __metadata:
languageName: node
linkType: hard
-"jest-snapshot@npm:^23.6.0":
- version: 23.6.0
- resolution: "jest-snapshot@npm:23.6.0"
- dependencies:
- babel-types: "npm:^6.0.0"
- chalk: "npm:^2.0.1"
- jest-diff: "npm:^23.6.0"
- jest-matcher-utils: "npm:^23.6.0"
- jest-message-util: "npm:^23.4.0"
- jest-resolve: "npm:^23.6.0"
- mkdirp: "npm:^0.5.1"
- natural-compare: "npm:^1.4.0"
- pretty-format: "npm:^23.6.0"
- semver: "npm:^5.5.0"
- checksum: 10/5ae44966202a79bed59344fdc2923639cf4b47ecef0727d4795b6008dfced0f08a02177e375b63fe9edbba03f4538cb2ebbd6d8bc2c7ef140fd06acaae33ba01
- languageName: node
- linkType: hard
-
"jest-snapshot@npm:^27.5.1":
version: 27.5.1
resolution: "jest-snapshot@npm:27.5.1"
@@ -24059,22 +22512,6 @@ __metadata:
languageName: node
linkType: hard
-"jest-util@npm:^23.4.0":
- version: 23.4.0
- resolution: "jest-util@npm:23.4.0"
- dependencies:
- callsites: "npm:^2.0.0"
- chalk: "npm:^2.0.1"
- graceful-fs: "npm:^4.1.11"
- is-ci: "npm:^1.0.10"
- jest-message-util: "npm:^23.4.0"
- mkdirp: "npm:^0.5.1"
- slash: "npm:^1.0.0"
- source-map: "npm:^0.6.0"
- checksum: 10/ded9d5d3b5fe4c2b84085160ed741fe8e3f5faf040ccd31acd0027c591e53d3b7ac95cc3bfd4c8817d9914cdd30e94b56f11239798de440314b87ff062d078c1
- languageName: node
- linkType: hard
-
"jest-util@npm:^27.5.1":
version: 27.5.1
resolution: "jest-util@npm:27.5.1"
@@ -24089,18 +22526,6 @@ __metadata:
languageName: node
linkType: hard
-"jest-validate@npm:^23.6.0":
- version: 23.6.0
- resolution: "jest-validate@npm:23.6.0"
- dependencies:
- chalk: "npm:^2.0.1"
- jest-get-type: "npm:^22.1.0"
- leven: "npm:^2.1.0"
- pretty-format: "npm:^23.6.0"
- checksum: 10/d57b37b97748c17cbc226da6753efb2be8cb62d3aadfffac186eee3af0d5be098235b30a43adb0bffbf1cd2a211173846a54ef2d194520b1e8a8fe45192b9db2
- languageName: node
- linkType: hard
-
"jest-validate@npm:^27.5.1":
version: 27.5.1
resolution: "jest-validate@npm:27.5.1"
@@ -24115,17 +22540,6 @@ __metadata:
languageName: node
linkType: hard
-"jest-watcher@npm:^23.4.0":
- version: 23.4.0
- resolution: "jest-watcher@npm:23.4.0"
- dependencies:
- ansi-escapes: "npm:^3.0.0"
- chalk: "npm:^2.0.1"
- string-length: "npm:^2.0.0"
- checksum: 10/c7285cd595644f824ca60bbcb1b342ae0c72f8a4f87f89a20c1326fa19efc80dbe0b14972660f1e037ffa64c3541ea1d06990836b2cf6b767ffa0006505d6c24
- languageName: node
- linkType: hard
-
"jest-watcher@npm:^27.5.1":
version: 27.5.1
resolution: "jest-watcher@npm:27.5.1"
@@ -24141,15 +22555,6 @@ __metadata:
languageName: node
linkType: hard
-"jest-worker@npm:^23.2.0":
- version: 23.2.0
- resolution: "jest-worker@npm:23.2.0"
- dependencies:
- merge-stream: "npm:^1.0.1"
- checksum: 10/13f0428e17fa4ee79455d699b2ccdb9b871619164acd3838a1d93d3e89317b50c2b284cb9a2e275741374718251272fda0a4096e5f9197d32c160dfe53d5c516
- languageName: node
- linkType: hard
-
"jest-worker@npm:^26.2.1":
version: 26.6.2
resolution: "jest-worker@npm:26.6.2"
@@ -24172,18 +22577,6 @@ __metadata:
languageName: node
linkType: hard
-"jest@npm:^23.6.0":
- version: 23.6.0
- resolution: "jest@npm:23.6.0"
- dependencies:
- import-local: "npm:^1.0.0"
- jest-cli: "npm:^23.6.0"
- bin:
- jest: ./bin/jest.js
- checksum: 10/a8b0e0229cbd6e00bc1e56900229bdb6523a6298901809bd0ececd8665af8cd006c6f0640d7919650ea18a32dca16d8e977fc98a3a0e2398ffddb3347780e48b
- languageName: node
- linkType: hard
-
"jest@npm:^27.4.7":
version: 27.5.1
resolution: "jest@npm:27.5.1"
@@ -24230,13 +22623,6 @@ __metadata:
languageName: node
linkType: hard
-"js-tokens@npm:^3.0.2":
- version: 3.0.2
- resolution: "js-tokens@npm:3.0.2"
- checksum: 10/a2d47dbe77c2d7d1abd99f25fcec61c825797e5775a187101879c4fb8e7bbbf89eb83bd315157b92c35d5eed5951962a47b1fedc8c778824b5d95cfb164a310c
- languageName: node
- linkType: hard
-
"js-yaml@npm:=4.1.0, js-yaml@npm:^4.1.0":
version: 4.1.0
resolution: "js-yaml@npm:4.1.0"
@@ -24248,7 +22634,7 @@ __metadata:
languageName: node
linkType: hard
-"js-yaml@npm:^3.10.0, js-yaml@npm:^3.13.1, js-yaml@npm:^3.7.0":
+"js-yaml@npm:^3.10.0, js-yaml@npm:^3.13.1":
version: 3.14.1
resolution: "js-yaml@npm:3.14.1"
dependencies:
@@ -24302,40 +22688,6 @@ __metadata:
languageName: node
linkType: hard
-"jsdom@npm:^11.5.1":
- version: 11.12.0
- resolution: "jsdom@npm:11.12.0"
- dependencies:
- abab: "npm:^2.0.0"
- acorn: "npm:^5.5.3"
- acorn-globals: "npm:^4.1.0"
- array-equal: "npm:^1.0.0"
- cssom: "npm:>= 0.3.2 < 0.4.0"
- cssstyle: "npm:^1.0.0"
- data-urls: "npm:^1.0.0"
- domexception: "npm:^1.0.1"
- escodegen: "npm:^1.9.1"
- html-encoding-sniffer: "npm:^1.0.2"
- left-pad: "npm:^1.3.0"
- nwsapi: "npm:^2.0.7"
- parse5: "npm:4.0.0"
- pn: "npm:^1.1.0"
- request: "npm:^2.87.0"
- request-promise-native: "npm:^1.0.5"
- sax: "npm:^1.2.4"
- symbol-tree: "npm:^3.2.2"
- tough-cookie: "npm:^2.3.4"
- w3c-hr-time: "npm:^1.0.1"
- webidl-conversions: "npm:^4.0.2"
- whatwg-encoding: "npm:^1.0.3"
- whatwg-mimetype: "npm:^2.1.0"
- whatwg-url: "npm:^6.4.1"
- ws: "npm:^5.2.0"
- xml-name-validator: "npm:^3.0.0"
- checksum: 10/60c2ba990ec5cdb44b1434a312fb41a20734ffb3888e7547e36851b0060c62d4719a5f7ef8b93c7b131ecb9beeb6927d9000bb20971b68742a35a300addc8229
- languageName: node
- linkType: hard
-
"jsdom@npm:^16.6.0":
version: 16.7.0
resolution: "jsdom@npm:16.7.0"
@@ -24383,15 +22735,6 @@ __metadata:
languageName: node
linkType: hard
-"jsesc@npm:^1.3.0":
- version: 1.3.0
- resolution: "jsesc@npm:1.3.0"
- bin:
- jsesc: bin/jsesc
- checksum: 10/d6aa8ebbd57fb5bafeeb31df3ff9580b30e655a049a196bdd1630bc53026e8dc07b462bb4251e33888e83fe53f76f1bebfde4ddfd30f0af78acc0efccb130572
- languageName: node
- linkType: hard
-
"jsesc@npm:^2.5.1":
version: 2.5.2
resolution: "jsesc@npm:2.5.2"
@@ -24410,13 +22753,6 @@ __metadata:
languageName: node
linkType: hard
-"json-buffer@npm:3.0.0":
- version: 3.0.0
- resolution: "json-buffer@npm:3.0.0"
- checksum: 10/6e364585600598c42f1cc85d1305569aeb1a6a13e7c67960f17b403f087e2700104ec8e49fc681ab6d6278ee4d132ac033f2625c22a9777ed9b83b403b40f23e
- languageName: node
- linkType: hard
-
"json-buffer@npm:3.0.1":
version: 3.0.1
resolution: "json-buffer@npm:3.0.1"
@@ -24478,24 +22814,6 @@ __metadata:
languageName: node
linkType: hard
-"json5@npm:2.x, json5@npm:^2.1.2, json5@npm:^2.2.0, json5@npm:^2.2.1, json5@npm:^2.2.2, json5@npm:^2.2.3":
- version: 2.2.3
- resolution: "json5@npm:2.2.3"
- bin:
- json5: lib/cli.js
- checksum: 10/1db67b853ff0de3534085d630691d3247de53a2ed1390ba0ddff681ea43e9b3e30ecbdb65c5e9aab49435e44059c23dbd6fee8ee619419ba37465bb0dd7135da
- languageName: node
- linkType: hard
-
-"json5@npm:^0.5.1":
- version: 0.5.1
- resolution: "json5@npm:0.5.1"
- bin:
- json5: lib/cli.js
- checksum: 10/1d95c1cb98d884b4620321b5361062ed0febcef78576687beec014382e51ee07a8c8118421bd327e55080e8ccc4c394f4940ee5d8aedc050b8df7b7a261c9add
- languageName: node
- linkType: hard
-
"json5@npm:^1.0.1":
version: 1.0.2
resolution: "json5@npm:1.0.2"
@@ -24507,6 +22825,15 @@ __metadata:
languageName: node
linkType: hard
+"json5@npm:^2.1.2, json5@npm:^2.2.0, json5@npm:^2.2.1, json5@npm:^2.2.2, json5@npm:^2.2.3":
+ version: 2.2.3
+ resolution: "json5@npm:2.2.3"
+ bin:
+ json5: lib/cli.js
+ checksum: 10/1db67b853ff0de3534085d630691d3247de53a2ed1390ba0ddff681ea43e9b3e30ecbdb65c5e9aab49435e44059c23dbd6fee8ee619419ba37465bb0dd7135da
+ languageName: node
+ linkType: hard
+
"jsonfile@npm:^4.0.0":
version: 4.0.0
resolution: "jsonfile@npm:4.0.0"
@@ -24577,15 +22904,6 @@ __metadata:
languageName: node
linkType: hard
-"keyv@npm:^3.0.0":
- version: 3.1.0
- resolution: "keyv@npm:3.1.0"
- dependencies:
- json-buffer: "npm:3.0.0"
- checksum: 10/6de272b3f78975a9a0b12259953c09d5bbe9de9acfd845471ebd758928b523f70563462f0c16a866fe9b447ff5bdebda72c62bc23734eb72cd1fb8f1d7076843
- languageName: node
- linkType: hard
-
"keyv@npm:^4.0.0":
version: 4.5.3
resolution: "keyv@npm:4.5.3"
@@ -24595,32 +22913,7 @@ __metadata:
languageName: node
linkType: hard
-"kind-of@npm:^3.0.2, kind-of@npm:^3.0.3, kind-of@npm:^3.2.0":
- version: 3.2.2
- resolution: "kind-of@npm:3.2.2"
- dependencies:
- is-buffer: "npm:^1.1.5"
- checksum: 10/b6e7eed10f9dea498500e73129c9bf289bc417568658648aecfc2e104aa32683b908e5d349563fc78d6752da0ea60c9ed1dda4b24dd85a0c8fc0c7376dc0acac
- languageName: node
- linkType: hard
-
-"kind-of@npm:^4.0.0":
- version: 4.0.0
- resolution: "kind-of@npm:4.0.0"
- dependencies:
- is-buffer: "npm:^1.1.5"
- checksum: 10/b35a90e0690f06bf07c8970b5290256b1740625fb3bf17ef8c9813a9e197302dbe9ad710b0d97a44556c9280becfc2132cbc3b370056f63b7e350a85f79088f1
- languageName: node
- linkType: hard
-
-"kind-of@npm:^5.0.0":
- version: 5.1.0
- resolution: "kind-of@npm:5.1.0"
- checksum: 10/acf7cc73881f27629f700a80de77ff7fe4abc9430eac7ddb09117f75126e578ee8d7e44c4dacb6a9e802d5d881abf007ee6af3cfbe55f8b5cf0a7fdc49a02aa3
- languageName: node
- linkType: hard
-
-"kind-of@npm:^6.0.0, kind-of@npm:^6.0.2, kind-of@npm:^6.0.3":
+"kind-of@npm:^6.0.2, kind-of@npm:^6.0.3":
version: 6.0.3
resolution: "kind-of@npm:6.0.3"
checksum: 10/5873d303fb36aad875b7538798867da2ae5c9e328d67194b0162a3659a627d22f742fc9c4ae95cd1704132a24b00cae5041fc00c0f6ef937dc17080dc4dbb962
@@ -24668,13 +22961,6 @@ __metadata:
languageName: node
linkType: hard
-"kleur@npm:^2.0.1":
- version: 2.0.2
- resolution: "kleur@npm:2.0.2"
- checksum: 10/c00cbef88bb70b11035e81ae523469471db6ce7664e1bf30a76daaaf7c5f2f6ead61164a455f72b52fd1340d6a0ce6d4f6743665c8ad26d5694335669f914227
- languageName: node
- linkType: hard
-
"kleur@npm:^3.0.3":
version: 3.0.3
resolution: "kleur@npm:3.0.3"
@@ -24758,24 +23044,6 @@ __metadata:
languageName: node
linkType: hard
-"lcid@npm:^2.0.0":
- version: 2.0.0
- resolution: "lcid@npm:2.0.0"
- dependencies:
- invert-kv: "npm:^2.0.0"
- checksum: 10/278e27b5a0707cf9ab682146963ebff2328795be10cd6f8ea8edae293439325d345ac5e33079cce77ac3a86a3dcfb97a34f279dbc46b03f3e419aa39b5915a16
- languageName: node
- linkType: hard
-
-"lcov-parse@npm:^1.0.0":
- version: 1.0.0
- resolution: "lcov-parse@npm:1.0.0"
- bin:
- lcov-parse: ./bin/cli.js
- checksum: 10/a30674716c5819ceb2e0119f50069ab7cfa11452dbb555119ac72b12d53744de8ebba3c21130ed9eab091d43a9d1f11c094ad9eefb27866f79ee0d40fc3a779c
- languageName: node
- linkType: hard
-
"leaflet-hash@npm:^0.2.1":
version: 0.2.1
resolution: "leaflet-hash@npm:0.2.1"
@@ -24790,13 +23058,6 @@ __metadata:
languageName: node
linkType: hard
-"left-pad@npm:^1.3.0":
- version: 1.3.0
- resolution: "left-pad@npm:1.3.0"
- checksum: 10/13fa96e17b70a54836490de22d4bab706e2ed508338bbabecfac72ecce445a74139c5b009a8112252cab8fc4ab7ac4ebd870e5b35bd236b443b12be96f8745ac
- languageName: node
- linkType: hard
-
"lerc@npm:^2.0.0":
version: 2.0.0
resolution: "lerc@npm:2.0.0"
@@ -24804,13 +23065,6 @@ __metadata:
languageName: node
linkType: hard
-"leven@npm:^2.1.0":
- version: 2.1.0
- resolution: "leven@npm:2.1.0"
- checksum: 10/f7b4a01b15c0ee2f92a04c0367ea025d10992b044df6f0d4ee1a845d4a488b343e99799e2f31212d72a2b1dea67124f57c1bb1b4561540df45190e44b5b8b394
- languageName: node
- linkType: hard
-
"leven@npm:^3.1.0":
version: 3.1.0
resolution: "leven@npm:3.1.0"
@@ -25105,94 +23359,6 @@ __metadata:
languageName: node
linkType: hard
-"lint-staged@npm:^8.0.0":
- version: 8.2.1
- resolution: "lint-staged@npm:8.2.1"
- dependencies:
- chalk: "npm:^2.3.1"
- commander: "npm:^2.14.1"
- cosmiconfig: "npm:^5.2.0"
- debug: "npm:^3.1.0"
- dedent: "npm:^0.7.0"
- del: "npm:^3.0.0"
- execa: "npm:^1.0.0"
- g-status: "npm:^2.0.2"
- is-glob: "npm:^4.0.0"
- is-windows: "npm:^1.0.2"
- listr: "npm:^0.14.2"
- listr-update-renderer: "npm:^0.5.0"
- lodash: "npm:^4.17.11"
- log-symbols: "npm:^2.2.0"
- micromatch: "npm:^3.1.8"
- npm-which: "npm:^3.0.1"
- p-map: "npm:^1.1.1"
- path-is-inside: "npm:^1.0.2"
- pify: "npm:^3.0.0"
- please-upgrade-node: "npm:^3.0.2"
- staged-git-files: "npm:1.1.2"
- string-argv: "npm:^0.0.2"
- stringify-object: "npm:^3.2.2"
- yup: "npm:^0.27.0"
- bin:
- lint-staged: index.js
- checksum: 10/640933f1d581687caefcd43bd8ba94b728e84b08dc57780a2520116d143bc422f958b35eed7f852e162abf49206827a33eeb5051f7b3f61c6179aa706cd52df3
- languageName: node
- linkType: hard
-
-"listr-silent-renderer@npm:^1.1.1":
- version: 1.1.1
- resolution: "listr-silent-renderer@npm:1.1.1"
- checksum: 10/81982612e4d207be2e69c4dcf2a6e0aaa6080e41bfe0b73e8d0b040dcdb79874248b1040558793a2f0fcc9c2252ec8af47379650f59bf2a7656c11cd5a48c948
- languageName: node
- linkType: hard
-
-"listr-update-renderer@npm:^0.5.0":
- version: 0.5.0
- resolution: "listr-update-renderer@npm:0.5.0"
- dependencies:
- chalk: "npm:^1.1.3"
- cli-truncate: "npm:^0.2.1"
- elegant-spinner: "npm:^1.0.1"
- figures: "npm:^1.7.0"
- indent-string: "npm:^3.0.0"
- log-symbols: "npm:^1.0.2"
- log-update: "npm:^2.3.0"
- strip-ansi: "npm:^3.0.1"
- peerDependencies:
- listr: ^0.14.2
- checksum: 10/2dddc763837a9086a684545ee9049fcb102d423b0c840ad929471ab461075ed78d5c79f1e8334cd7a76aa9076e7631c04a38733bb4d88c23ca6082c087335864
- languageName: node
- linkType: hard
-
-"listr-verbose-renderer@npm:^0.5.0":
- version: 0.5.0
- resolution: "listr-verbose-renderer@npm:0.5.0"
- dependencies:
- chalk: "npm:^2.4.1"
- cli-cursor: "npm:^2.1.0"
- date-fns: "npm:^1.27.2"
- figures: "npm:^2.0.0"
- checksum: 10/3e504be729f9dd15b40db743e403673b76331774411dbc29d6f48136f6ba8bc1dee645a4e621c1cb781e6e69a58b78cb9aa8c153c7ceccfe4e4ea74d563bca3a
- languageName: node
- linkType: hard
-
-"listr@npm:^0.14.2":
- version: 0.14.3
- resolution: "listr@npm:0.14.3"
- dependencies:
- "@samverschueren/stream-to-observable": "npm:^0.3.0"
- is-observable: "npm:^1.1.0"
- is-promise: "npm:^2.1.0"
- is-stream: "npm:^1.1.0"
- listr-silent-renderer: "npm:^1.1.1"
- listr-update-renderer: "npm:^0.5.0"
- listr-verbose-renderer: "npm:^0.5.0"
- p-map: "npm:^2.0.0"
- rxjs: "npm:^6.3.3"
- checksum: 10/6d5dc899c62b240bd28a22c26e88cf005696786a28e7239adbe044fd9ebcb5261b1503a555c8ba7f45b10d0eabb5d159c91791daee83d803b4caf64fd8adbdf9
- languageName: node
- linkType: hard
-
"lmdb@npm:2.7.11":
version: 2.7.11
resolution: "lmdb@npm:2.7.11"
@@ -25228,19 +23394,6 @@ __metadata:
languageName: node
linkType: hard
-"load-json-file@npm:^1.0.0":
- version: 1.1.0
- resolution: "load-json-file@npm:1.1.0"
- dependencies:
- graceful-fs: "npm:^4.1.2"
- parse-json: "npm:^2.2.0"
- pify: "npm:^2.0.0"
- pinkie-promise: "npm:^2.0.0"
- strip-bom: "npm:^2.0.0"
- checksum: 10/bb16e169d87df38806f5ffa7efa3287921839fdfee2c20c8525f53b53ba43d14b56b6881901c04190f7da4a4ba6e0c9784d212e83ee3a32d49bb986b5a6094cb
- languageName: node
- linkType: hard
-
"load-json-file@npm:^4.0.0":
version: 4.0.0
resolution: "load-json-file@npm:4.0.0"
@@ -25501,13 +23654,6 @@ __metadata:
languageName: node
linkType: hard
-"lodash.map@npm:^4.5.1":
- version: 4.6.0
- resolution: "lodash.map@npm:4.6.0"
- checksum: 10/f1e69def35025be1e6213f1099df8acfa478442de8dfac3511e6eeeb5ef939b911f59db858251cc6b96076984d869fdd329ea360982d83240206124589f56f5d
- languageName: node
- linkType: hard
-
"lodash.memoize@npm:^4.1.2":
version: 4.1.2
resolution: "lodash.memoize@npm:4.1.2"
@@ -25522,13 +23668,6 @@ __metadata:
languageName: node
linkType: hard
-"lodash.mergewith@npm:^4.6.2":
- version: 4.6.2
- resolution: "lodash.mergewith@npm:4.6.2"
- checksum: 10/aea75a4492541a4902ac7e551dc6c54b722da0c187f84385d02e8fc33a7ae3454b837822446e5f63fcd5ad1671534ea408740b776670ea4d9c7890b10105fce0
- languageName: node
- linkType: hard
-
"lodash.restparam@npm:*":
version: 3.6.1
resolution: "lodash.restparam@npm:3.6.1"
@@ -25611,38 +23750,13 @@ __metadata:
languageName: node
linkType: hard
-"lodash@npm:4.17.21, lodash@npm:^4.0.1, lodash@npm:^4.15.0, lodash@npm:^4.17.10, lodash@npm:^4.17.11, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.17.4, lodash@npm:^4.2.1, lodash@npm:^4.7.0":
+"lodash@npm:^4.0.1, lodash@npm:^4.15.0, lodash@npm:^4.17.11, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.17.4, lodash@npm:^4.2.1, lodash@npm:^4.7.0":
version: 4.17.21
resolution: "lodash@npm:4.17.21"
checksum: 10/c08619c038846ea6ac754abd6dd29d2568aa705feb69339e836dfa8d8b09abbb2f859371e86863eda41848221f9af43714491467b5b0299122431e202bb0c532
languageName: node
linkType: hard
-"log-driver@npm:^1.2.7":
- version: 1.2.7
- resolution: "log-driver@npm:1.2.7"
- checksum: 10/0cd54adf0de8a3e28affc862550634855a1a66a3e5feb1e93c0900a3330634217e00c086e2e54aa60d92c4dd4bc67d4a00a899d97865d0025777a2d8e0a9ac90
- languageName: node
- linkType: hard
-
-"log-symbols@npm:^1.0.2":
- version: 1.0.2
- resolution: "log-symbols@npm:1.0.2"
- dependencies:
- chalk: "npm:^1.0.0"
- checksum: 10/5214ade9381db5d40528c171fdfd459b75cad7040eb6a347294ae47fa80cfebba4adbc3aa73a1c9da744cbfa240dd93b38f80df8615717affeea6c4bb6b8dfe7
- languageName: node
- linkType: hard
-
-"log-symbols@npm:^2.2.0":
- version: 2.2.0
- resolution: "log-symbols@npm:2.2.0"
- dependencies:
- chalk: "npm:^2.0.1"
- checksum: 10/4c95e3b65f0352dbe91dc4989c10baf7a44e2ef5b0db7e6721e1476268e2b6f7090c3aa880d4f833a05c5c3ff18f4ec5215a09bd0099986d64a8186cfeb48ac8
- languageName: node
- linkType: hard
-
"log-symbols@npm:^4.1.0":
version: 4.1.0
resolution: "log-symbols@npm:4.1.0"
@@ -25653,17 +23767,6 @@ __metadata:
languageName: node
linkType: hard
-"log-update@npm:^2.3.0":
- version: 2.3.0
- resolution: "log-update@npm:2.3.0"
- dependencies:
- ansi-escapes: "npm:^3.0.0"
- cli-cursor: "npm:^2.0.0"
- wrap-ansi: "npm:^3.0.1"
- checksum: 10/84fd8e93bfc316eb6ca479a37743f2edcb7563fe5b9161205ce2980f0b3c822717b8f8f1871369697fcb0208521d7b8d00750c594edc3f8a8273dd8b48dd14a3
- languageName: node
- linkType: hard
-
"long@npm:^5.0.0":
version: 5.2.3
resolution: "long@npm:5.2.3"
@@ -25678,13 +23781,6 @@ __metadata:
languageName: node
linkType: hard
-"longest@npm:^2.0.1":
- version: 2.0.1
- resolution: "longest@npm:2.0.1"
- checksum: 10/9587c153919a883ecbcc33e9439bc2592aa6fdbbd2d343f8ab17d8d3e0373c4e4350e3b428566fd689d704800a23f2b4d145cbdcca4ef3fd35742e5927f919a9
- languageName: node
- linkType: hard
-
"loose-envify@npm:^1.0.0, loose-envify@npm:^1.1.0, loose-envify@npm:^1.2.0, loose-envify@npm:^1.3.1, loose-envify@npm:^1.4.0":
version: 1.4.0
resolution: "loose-envify@npm:1.4.0"
@@ -25715,7 +23811,7 @@ __metadata:
languageName: node
linkType: hard
-"lowercase-keys@npm:^1.0.0, lowercase-keys@npm:^1.0.1":
+"lowercase-keys@npm:^1.0.0":
version: 1.0.1
resolution: "lowercase-keys@npm:1.0.1"
checksum: 10/12ba64572dc25ae9ee30d37a11f3a91aea046c1b6b905fdf8ac77e2f268f153ed36e60d39cb3bfa47a89f31d981dae9a8cc9915124a56fe51ff01ed6e8bb68fa
@@ -25879,7 +23975,7 @@ __metadata:
languageName: node
linkType: hard
-"make-error@npm:1.x, make-error@npm:^1.1.1":
+"make-error@npm:^1.1.1":
version: 1.3.6
resolution: "make-error@npm:1.3.6"
checksum: 10/b86e5e0e25f7f777b77fabd8e2cbf15737972869d852a22b7e73c17623928fccb826d8e46b9951501d3f20e51ad74ba8c59ed584f610526a48f8ccf88aaec402
@@ -25937,22 +24033,6 @@ __metadata:
languageName: node
linkType: hard
-"map-age-cleaner@npm:^0.1.1":
- version: 0.1.3
- resolution: "map-age-cleaner@npm:0.1.3"
- dependencies:
- p-defer: "npm:^1.0.0"
- checksum: 10/cb2804a5bcb3cbdfe4b59066ea6d19f5e7c8c196cd55795ea4c28f792b192e4c442426ae52524e5e1acbccf393d3bddacefc3d41f803e66453f6c4eda3650bc1
- languageName: node
- linkType: hard
-
-"map-cache@npm:^0.2.2":
- version: 0.2.2
- resolution: "map-cache@npm:0.2.2"
- checksum: 10/3067cea54285c43848bb4539f978a15dedc63c03022abeec6ef05c8cb6829f920f13b94bcaf04142fc6a088318e564c4785704072910d120d55dbc2e0c421969
- languageName: node
- linkType: hard
-
"map-obj@npm:^1.0.0":
version: 1.0.1
resolution: "map-obj@npm:1.0.1"
@@ -25981,15 +24061,6 @@ __metadata:
languageName: node
linkType: hard
-"map-visit@npm:^1.0.0":
- version: 1.0.0
- resolution: "map-visit@npm:1.0.0"
- dependencies:
- object-visit: "npm:^1.0.0"
- checksum: 10/c27045a5021c344fc19b9132eb30313e441863b2951029f8f8b66f79d3d8c1e7e5091578075a996f74e417479506fe9ede28c44ca7bc351a61c9d8073daec36a
- languageName: node
- linkType: hard
-
"mapbox-gl-controls@npm:^2.3.5":
version: 2.3.5
resolution: "mapbox-gl-controls@npm:2.3.5"
@@ -26085,15 +24156,6 @@ __metadata:
languageName: node
linkType: hard
-"marked@npm:^0.4.0":
- version: 0.4.0
- resolution: "marked@npm:0.4.0"
- bin:
- marked: ./bin/marked
- checksum: 10/8e8c67c92c2596ad6716ddbec1079519a88b9ff5b6ae7b529e2ca53c88d7626e8cb9537b6b17a86f6058add8c53b4c28b9ace8da9853c3d0e8e646a88c1332e7
- languageName: node
- linkType: hard
-
"marked@npm:^0.7.0":
version: 0.7.0
resolution: "marked@npm:0.7.0"
@@ -26103,15 +24165,6 @@ __metadata:
languageName: node
linkType: hard
-"matcher@npm:^1.0.0":
- version: 1.1.1
- resolution: "matcher@npm:1.1.1"
- dependencies:
- escape-string-regexp: "npm:^1.0.4"
- checksum: 10/77bc490253901bb7b07bd4a1b7418201336d57029aa1320e6ec951744baf3acf07e907d3ed33d76f0bb2e399783c2b3d28049d29b1971073bbe11523b6ad059b
- languageName: node
- linkType: hard
-
"material-colors@npm:^1.2.1":
version: 1.2.6
resolution: "material-colors@npm:1.2.6"
@@ -26126,13 +24179,6 @@ __metadata:
languageName: node
linkType: hard
-"math-random@npm:^1.0.1":
- version: 1.0.4
- resolution: "math-random@npm:1.0.4"
- checksum: 10/9edf31ea337bba21994eb968218fd571d55fce86b51661158d8e241886b73121d9e1a35a5bb8997dba8ce67417a83c8dbd0811917248f886840035b7f1c667b9
- languageName: node
- linkType: hard
-
"maxmin@npm:^2.1.0":
version: 2.1.0
resolution: "maxmin@npm:2.1.0"
@@ -26321,17 +24367,6 @@ __metadata:
languageName: node
linkType: hard
-"mem@npm:^4.0.0":
- version: 4.3.0
- resolution: "mem@npm:4.3.0"
- dependencies:
- map-age-cleaner: "npm:^0.1.1"
- mimic-fn: "npm:^2.0.0"
- p-is-promise: "npm:^2.0.0"
- checksum: 10/ae4afa1cac2b4d64e089ecd54e06ae857b6e5aae410802564032cb407aad13aa598c5aededae8cca6c5827f4057ec3f58415a078c80181dd08019ae1a9aa1226
- languageName: node
- linkType: hard
-
"memfs@npm:^3.4.3":
version: 3.5.3
resolution: "memfs@npm:3.5.3"
@@ -26433,15 +24468,6 @@ __metadata:
languageName: node
linkType: hard
-"merge-stream@npm:^1.0.1":
- version: 1.0.1
- resolution: "merge-stream@npm:1.0.1"
- dependencies:
- readable-stream: "npm:^2.0.1"
- checksum: 10/3be7887dffd8899da0f930c0f85812ab8993252f467dcd61e60a8d085836ebbb23756b8e481a7f71824206342afe1b1a2b80c05a1cd0ed0e792a09c5812a9082
- languageName: node
- linkType: hard
-
"merge-stream@npm:^2.0.0":
version: 2.0.0
resolution: "merge-stream@npm:2.0.0"
@@ -26456,20 +24482,6 @@ __metadata:
languageName: node
linkType: hard
-"merge@npm:^1.2.0":
- version: 1.2.1
- resolution: "merge@npm:1.2.1"
- checksum: 10/2298c4fdcf64561f320b92338681f7ffcafafb579a6e294066ae3e7bd10ae25df363903d2f028072733b9f79a1f75d2b999aef98ad5d73de13641da39cda0913
- languageName: node
- linkType: hard
-
-"merge@npm:^2.1.1":
- version: 2.1.1
- resolution: "merge@npm:2.1.1"
- checksum: 10/1875521a8e429ba8d82c6d24bf3f229b4b64a348873c41a1245851b422c0caa7fbeb958118c24fbfcbb71e416a29924b3b1c4518911529db175f49eb5bcb5e62
- languageName: node
- linkType: hard
-
"mersenne-twister@npm:^1.1.0":
version: 1.1.0
resolution: "mersenne-twister@npm:1.1.0"
@@ -26886,48 +24898,6 @@ __metadata:
languageName: node
linkType: hard
-"micromatch@npm:^2.3.11":
- version: 2.3.11
- resolution: "micromatch@npm:2.3.11"
- dependencies:
- arr-diff: "npm:^2.0.0"
- array-unique: "npm:^0.2.1"
- braces: "npm:^1.8.2"
- expand-brackets: "npm:^0.1.4"
- extglob: "npm:^0.3.1"
- filename-regex: "npm:^2.0.0"
- is-extglob: "npm:^1.0.0"
- is-glob: "npm:^2.0.1"
- kind-of: "npm:^3.0.2"
- normalize-path: "npm:^2.0.1"
- object.omit: "npm:^2.0.0"
- parse-glob: "npm:^3.0.4"
- regex-cache: "npm:^0.4.2"
- checksum: 10/25b10db54a95ac0b3409005cf74ccb267e4693f14171c88860a6505e8f1a51940fee1f0bf629a3f85c34ec725ecbf48986fb3edf2d8f9283c322fcdb0512ed42
- languageName: node
- linkType: hard
-
-"micromatch@npm:^3.1.4, micromatch@npm:^3.1.8":
- version: 3.1.10
- resolution: "micromatch@npm:3.1.10"
- dependencies:
- arr-diff: "npm:^4.0.0"
- array-unique: "npm:^0.3.2"
- braces: "npm:^2.3.1"
- define-property: "npm:^2.0.2"
- extend-shallow: "npm:^3.0.2"
- extglob: "npm:^2.0.4"
- fragment-cache: "npm:^0.2.1"
- kind-of: "npm:^6.0.2"
- nanomatch: "npm:^1.2.9"
- object.pick: "npm:^1.3.0"
- regex-not: "npm:^1.0.0"
- snapdragon: "npm:^0.8.1"
- to-regex: "npm:^3.0.2"
- checksum: 10/4102bac83685dc7882ca1a28443d158b464653f84450de68c07cf77dbd531ed98c25006e9d9f6082bf3b95aabbff4cf231b26fd3bc84f7c4e7f263376101fad6
- languageName: node
- linkType: hard
-
"micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5":
version: 4.0.5
resolution: "micromatch@npm:4.0.5"
@@ -26945,7 +24915,7 @@ __metadata:
languageName: node
linkType: hard
-"mime-types@npm:^2.0.1, mime-types@npm:^2.1.12, mime-types@npm:^2.1.27, mime-types@npm:^2.1.31, mime-types@npm:~2.1.17, mime-types@npm:~2.1.19, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34":
+"mime-types@npm:^2.0.1, mime-types@npm:^2.1.12, mime-types@npm:^2.1.27, mime-types@npm:^2.1.31, mime-types@npm:^2.1.35, mime-types@npm:~2.1.17, mime-types@npm:~2.1.19, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34":
version: 2.1.35
resolution: "mime-types@npm:2.1.35"
dependencies:
@@ -26972,14 +24942,7 @@ __metadata:
languageName: node
linkType: hard
-"mimic-fn@npm:^1.0.0":
- version: 1.2.0
- resolution: "mimic-fn@npm:1.2.0"
- checksum: 10/69c08205156a1f4906d9c46f9b4dc08d18a50176352e77fdeb645cedfe9f20c0b19865d465bd2dec27a5c432347f24dc07fc3695e11159d193f892834233e939
- languageName: node
- linkType: hard
-
-"mimic-fn@npm:^2.0.0, mimic-fn@npm:^2.1.0":
+"mimic-fn@npm:^2.1.0":
version: 2.1.0
resolution: "mimic-fn@npm:2.1.0"
checksum: 10/d2421a3444848ce7f84bd49115ddacff29c15745db73f54041edc906c14b131a38d05298dae3081667627a59b2eb1ca4b436ff2e1b80f69679522410418b478a
@@ -26993,7 +24956,7 @@ __metadata:
languageName: node
linkType: hard
-"mimic-response@npm:^1.0.0, mimic-response@npm:^1.0.1":
+"mimic-response@npm:^1.0.0":
version: 1.0.1
resolution: "mimic-response@npm:1.0.1"
checksum: 10/034c78753b0e622bc03c983663b1cdf66d03861050e0c8606563d149bc2b02d63f62ce4d32be4ab50d0553ae0ffe647fc34d1f5281184c6e1e8cf4d85e8d9823
@@ -27039,7 +25002,7 @@ __metadata:
languageName: node
linkType: hard
-"minimatch@npm:^3.0.0, minimatch@npm:^3.0.2, minimatch@npm:^3.0.3, minimatch@npm:^3.0.4, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2":
+"minimatch@npm:^3.0.2, minimatch@npm:^3.0.4, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2":
version: 3.1.2
resolution: "minimatch@npm:3.1.2"
dependencies:
@@ -27103,14 +25066,7 @@ __metadata:
languageName: node
linkType: hard
-"minimist@npm:1.2.7":
- version: 1.2.7
- resolution: "minimist@npm:1.2.7"
- checksum: 10/0202378a8eb1a9d98a44f623f43c89793a095f4bde6981bda29f6ae61e82a15c18b1690b5efc4c66ddbd402a3e9b7175e6ebdabb2b28037c279ac823b7360e00
- languageName: node
- linkType: hard
-
-"minimist@npm:^1.1.0, minimist@npm:^1.1.1, minimist@npm:^1.1.3, minimist@npm:^1.2.0, minimist@npm:^1.2.3, minimist@npm:^1.2.5, minimist@npm:^1.2.6":
+"minimist@npm:^1.1.0, minimist@npm:^1.1.3, minimist@npm:^1.2.0, minimist@npm:^1.2.3, minimist@npm:^1.2.5, minimist@npm:^1.2.6":
version: 1.2.8
resolution: "minimist@npm:1.2.8"
checksum: 10/908491b6cc15a6c440ba5b22780a0ba89b9810e1aea684e253e43c4e3b8d56ec1dcdd7ea96dde119c29df59c936cde16062159eae4225c691e19c70b432b6e6f
@@ -27252,16 +25208,6 @@ __metadata:
languageName: node
linkType: hard
-"mixin-deep@npm:^1.2.0":
- version: 1.3.2
- resolution: "mixin-deep@npm:1.3.2"
- dependencies:
- for-in: "npm:^1.0.2"
- is-extendable: "npm:^1.0.1"
- checksum: 10/820d5a51fcb7479f2926b97f2c3bb223546bc915e6b3a3eb5d906dda871bba569863595424a76682f2b15718252954644f3891437cb7e3f220949bed54b1750d
- languageName: node
- linkType: hard
-
"mkdirp-classic@npm:^0.5.2, mkdirp-classic@npm:^0.5.3":
version: 0.5.3
resolution: "mkdirp-classic@npm:0.5.3"
@@ -27280,7 +25226,7 @@ __metadata:
languageName: node
linkType: hard
-"mkdirp@npm:0.x, mkdirp@npm:^0.5.1, mkdirp@npm:^0.5.5, mkdirp@npm:^0.5.6, mkdirp@npm:~0.5.0, mkdirp@npm:~0.5.1":
+"mkdirp@npm:^0.5.1, mkdirp@npm:^0.5.5, mkdirp@npm:^0.5.6, mkdirp@npm:~0.5.0, mkdirp@npm:~0.5.1":
version: 0.5.6
resolution: "mkdirp@npm:0.5.6"
dependencies:
@@ -27446,22 +25392,13 @@ __metadata:
languageName: node
linkType: hard
-"mute-stream@npm:0.0.8, mute-stream@npm:~0.0.4":
+"mute-stream@npm:~0.0.4":
version: 0.0.8
resolution: "mute-stream@npm:0.0.8"
checksum: 10/a2d2e79dde87e3424ffc8c334472c7f3d17b072137734ca46e6f221131f1b014201cc593b69a38062e974fb2394d3d1cb4349f80f012bbf8b8ac1b28033e515f
languageName: node
linkType: hard
-"nan@npm:^2.12.1":
- version: 2.18.0
- resolution: "nan@npm:2.18.0"
- dependencies:
- node-gyp: "npm:latest"
- checksum: 10/5520e22c64e2b5b495b1d765d6334c989b848bbe1502fec89c5857cabcc7f9f0474563377259e7574bff1c8a041d3b90e9ffa1f5e15502ffddee7b2550cc26a0
- languageName: node
- linkType: hard
-
"nan@npm:^2.14.0, nan@npm:^2.17.0, nan@npm:^2.18.0":
version: 2.19.0
resolution: "nan@npm:2.19.0"
@@ -27489,25 +25426,6 @@ __metadata:
languageName: node
linkType: hard
-"nanomatch@npm:^1.2.9":
- version: 1.2.13
- resolution: "nanomatch@npm:1.2.13"
- dependencies:
- arr-diff: "npm:^4.0.0"
- array-unique: "npm:^0.3.2"
- define-property: "npm:^2.0.2"
- extend-shallow: "npm:^3.0.2"
- fragment-cache: "npm:^0.2.1"
- is-windows: "npm:^1.0.2"
- kind-of: "npm:^6.0.2"
- object.pick: "npm:^1.3.0"
- regex-not: "npm:^1.0.0"
- snapdragon: "npm:^0.8.1"
- to-regex: "npm:^3.0.1"
- checksum: 10/5c4ec7d6264b93795248f22d19672f0b972f900772c057bc67e43ae4999165b5fea7b937359efde78707930a460ceaa6d93e0732ac1d993dab8654655a2e959b
- languageName: node
- linkType: hard
-
"napi-build-utils@npm:^1.0.1":
version: 1.0.2
resolution: "napi-build-utils@npm:1.0.2"
@@ -27670,6 +25588,13 @@ __metadata:
languageName: node
linkType: hard
+"node-fetch-native@npm:^1.6.4":
+ version: 1.6.4
+ resolution: "node-fetch-native@npm:1.6.4"
+ checksum: 10/39c4c6d0c2a4bed1444943e1647ad0d79eb6638cf159bc37dffeafd22cffcf6a998e006aa1f3dd1d9d2258db7d78dee96b44bee4ba0bbaf0440ed348794f2543
+ languageName: node
+ linkType: hard
+
"node-fetch-npm@npm:^2.0.2":
version: 2.0.4
resolution: "node-fetch-npm@npm:2.0.4"
@@ -27783,19 +25708,6 @@ __metadata:
languageName: node
linkType: hard
-"node-notifier@npm:^5.2.1":
- version: 5.4.5
- resolution: "node-notifier@npm:5.4.5"
- dependencies:
- growly: "npm:^1.3.0"
- is-wsl: "npm:^1.1.0"
- semver: "npm:^5.5.0"
- shellwords: "npm:^0.1.1"
- which: "npm:^1.3.0"
- checksum: 10/1c4de3fd0ace1401889cca349b2abad16f798a1df8677d0774e41cce6e1878d8c0749b0194fc069fd1f62284d86e49792060b37ef0e6b3e0ef01fb852c14fe62
- languageName: node
- linkType: hard
-
"node-releases@npm:^2.0.13":
version: 2.0.13
resolution: "node-releases@npm:2.0.13"
@@ -27867,15 +25779,6 @@ __metadata:
languageName: node
linkType: hard
-"normalize-path@npm:^2.0.1, normalize-path@npm:^2.1.1":
- version: 2.1.1
- resolution: "normalize-path@npm:2.1.1"
- dependencies:
- remove-trailing-separator: "npm:^1.0.1"
- checksum: 10/7e9cbdcf7f5b8da7aa191fbfe33daf290cdcd8c038f422faf1b8a83c972bf7a6d94c5be34c4326cb00fb63bc0fd97d9fbcfaf2e5d6142332c2cd36d2e1b86cea
- languageName: node
- linkType: hard
-
"normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0":
version: 3.0.0
resolution: "normalize-path@npm:3.0.0"
@@ -27897,7 +25800,7 @@ __metadata:
languageName: node
linkType: hard
-"normalize-url@npm:^4.0.0, normalize-url@npm:^4.1.0":
+"normalize-url@npm:^4.0.0":
version: 4.5.1
resolution: "normalize-url@npm:4.5.1"
checksum: 10/20ced2845fcfaa46da74efc0aa39b7bed22f3db39e6e8b844261613082a36a2dcd468decad89fa9313b5464bebab4034f96bda7880e8fc468027fecf6a6fa254
@@ -28013,17 +25916,6 @@ __metadata:
languageName: node
linkType: hard
-"npm-path@npm:^2.0.2":
- version: 2.0.4
- resolution: "npm-path@npm:2.0.4"
- dependencies:
- which: "npm:^1.2.10"
- bin:
- npm-path: bin/npm-path
- checksum: 10/b62f5c7739da994684a1df64ccc987f232dc348ae307986eadf2234338b54714ba44b5372e0327cff9794ed0f57e4c0382dab79af710ce0e33bd1f124b1d6e35
- languageName: node
- linkType: hard
-
"npm-pick-manifest@npm:^3.0.0, npm-pick-manifest@npm:^3.0.2":
version: 3.0.2
resolution: "npm-pick-manifest@npm:3.0.2"
@@ -28116,19 +26008,6 @@ __metadata:
languageName: node
linkType: hard
-"npm-which@npm:^3.0.1":
- version: 3.0.1
- resolution: "npm-which@npm:3.0.1"
- dependencies:
- commander: "npm:^2.9.0"
- npm-path: "npm:^2.0.2"
- which: "npm:^1.2.10"
- bin:
- npm-which: bin/npm-which.js
- checksum: 10/742e24acdd6503edd6093bf8fa88f437760143301c6c5d846f532cf02ff40e815a7c28c96eca170398dfbbed97e7ab4dff07fbdcbb2ae3000a6a9845bc77b8c7
- languageName: node
- linkType: hard
-
"npm@npm:^6.10.3":
version: 6.14.18
resolution: "npm@npm:6.14.18"
@@ -28319,7 +26198,7 @@ __metadata:
languageName: node
linkType: hard
-"nwsapi@npm:^2.0.7, nwsapi@npm:^2.2.0":
+"nwsapi@npm:^2.2.0":
version: 2.2.7
resolution: "nwsapi@npm:2.2.7"
checksum: 10/22c002080f0297121ad138aba5a6509e724774d6701fe2c4777627bd939064ecd9e1b6dc1c2c716bb7ca0b9f16247892ff2f664285202ac7eff6ec9543725320
@@ -28347,24 +26226,13 @@ __metadata:
languageName: node
linkType: hard
-"object-assign@npm:^4.0.1, object-assign@npm:^4.1.0, object-assign@npm:^4.1.1":
+"object-assign@npm:^4.1.0, object-assign@npm:^4.1.1":
version: 4.1.1
resolution: "object-assign@npm:4.1.1"
checksum: 10/fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f
languageName: node
linkType: hard
-"object-copy@npm:^0.1.0":
- version: 0.1.0
- resolution: "object-copy@npm:0.1.0"
- dependencies:
- copy-descriptor: "npm:^0.1.0"
- define-property: "npm:^0.2.5"
- kind-of: "npm:^3.0.3"
- checksum: 10/a9e35f07e3a2c882a7e979090360d1a20ab51d1fa19dfdac3aa8873b328a7c4c7683946ee97c824ae40079d848d6740a3788fa14f2185155dab7ed970a72c783
- languageName: node
- linkType: hard
-
"object-inspect@npm:^1.12.3, object-inspect@npm:^1.9.0":
version: 1.12.3
resolution: "object-inspect@npm:1.12.3"
@@ -28403,15 +26271,6 @@ __metadata:
languageName: node
linkType: hard
-"object-visit@npm:^1.0.0":
- version: 1.0.1
- resolution: "object-visit@npm:1.0.1"
- dependencies:
- isobject: "npm:^3.0.0"
- checksum: 10/77abf807de86fa65bf1ba92699b45b1e5485f2d899300d5cb92cca0863909e9528b6cbf366c237c9f5d2264dab6cfbeda2201252ed0e605ae1b3e263515c5cea
- languageName: node
- linkType: hard
-
"object.assign@npm:^4.1.4":
version: 4.1.4
resolution: "object.assign@npm:4.1.4"
@@ -28424,7 +26283,7 @@ __metadata:
languageName: node
linkType: hard
-"object.getownpropertydescriptors@npm:^2.0.3, object.getownpropertydescriptors@npm:^2.1.0, object.getownpropertydescriptors@npm:^2.1.6":
+"object.getownpropertydescriptors@npm:^2.0.3, object.getownpropertydescriptors@npm:^2.1.0":
version: 2.1.7
resolution: "object.getownpropertydescriptors@npm:2.1.7"
dependencies:
@@ -28437,25 +26296,6 @@ __metadata:
languageName: node
linkType: hard
-"object.omit@npm:^2.0.0":
- version: 2.0.1
- resolution: "object.omit@npm:2.0.1"
- dependencies:
- for-own: "npm:^0.1.4"
- is-extendable: "npm:^0.1.1"
- checksum: 10/431088be6af5860560b61a252e5f020ca1894f111743ee7ffa329a32c084b1b7fa8d7d70ab45fdcb2c2872648a67170d8120d109fae32b4b4bbe2491ac9a3719
- languageName: node
- linkType: hard
-
-"object.pick@npm:^1.3.0":
- version: 1.3.0
- resolution: "object.pick@npm:1.3.0"
- dependencies:
- isobject: "npm:^3.0.1"
- checksum: 10/92d7226a6b581d0d62694a5632b6a1594c81b3b5a4eb702a7662e0b012db532557067d6f773596c577f75322eba09cdca37ca01ea79b6b29e3e17365f15c615e
- languageName: node
- linkType: hard
-
"object.values@npm:^1.1.0":
version: 1.1.7
resolution: "object.values@npm:1.1.7"
@@ -28520,15 +26360,6 @@ __metadata:
languageName: node
linkType: hard
-"onetime@npm:^2.0.0":
- version: 2.0.1
- resolution: "onetime@npm:2.0.1"
- dependencies:
- mimic-fn: "npm:^1.0.0"
- checksum: 10/5b4f6079e6b4973244017e157833ab5a7a3de4bd2612d69411e3ee46f61fe8bb57b7c2e243b0b23dbaa5bad7641a15f9100a5c80295ff64c0d87aab5d1576ef9
- languageName: node
- linkType: hard
-
"onetime@npm:^5.1.0, onetime@npm:^5.1.2":
version: 5.1.2
resolution: "onetime@npm:5.1.2"
@@ -28568,15 +26399,6 @@ __metadata:
languageName: node
linkType: hard
-"opencollective-postinstall@npm:^2.0.2":
- version: 2.0.3
- resolution: "opencollective-postinstall@npm:2.0.3"
- bin:
- opencollective-postinstall: index.js
- checksum: 10/69d63778087cd10c9d707d9ed360556780cfdd0cd6241ded0e26632f467f1d5a064f4a9aec19a30c187770c17adba034d988f7684b226f3a73e79f44e73fab0e
- languageName: node
- linkType: hard
-
"opener@npm:^1.5.2":
version: 1.5.2
resolution: "opener@npm:1.5.2"
@@ -28640,17 +26462,6 @@ __metadata:
languageName: node
linkType: hard
-"os-locale@npm:^3.0.0, os-locale@npm:^3.1.0":
- version: 3.1.0
- resolution: "os-locale@npm:3.1.0"
- dependencies:
- execa: "npm:^1.0.0"
- lcid: "npm:^2.0.0"
- mem: "npm:^4.0.0"
- checksum: 10/53c542b11af3c5fe99624b09c7882b6944f9ae7c69edbc6006b7d42cff630b1f7fd9d63baf84ed31d1ef02b34823b6b31f23a1ecdd593757873d716bc6374099
- languageName: node
- linkType: hard
-
"os-name@npm:^3.1.0":
version: 3.1.0
resolution: "os-name@npm:3.1.0"
@@ -28661,7 +26472,7 @@ __metadata:
languageName: node
linkType: hard
-"os-tmpdir@npm:^1.0.0, os-tmpdir@npm:^1.0.1, os-tmpdir@npm:~1.0.2":
+"os-tmpdir@npm:^1.0.0, os-tmpdir@npm:~1.0.2":
version: 1.0.2
resolution: "os-tmpdir@npm:1.0.2"
checksum: 10/5666560f7b9f10182548bf7013883265be33620b1c1b4a4d405c25be2636f970c5488ff3e6c48de75b55d02bde037249fe5dbfbb4c0fb7714953d56aed062e6d
@@ -28678,13 +26489,6 @@ __metadata:
languageName: node
linkType: hard
-"p-cancelable@npm:^1.0.0":
- version: 1.1.0
- resolution: "p-cancelable@npm:1.1.0"
- checksum: 10/2db3814fef6d9025787f30afaee4496a8857a28be3c5706432cbad76c688a6db1874308f48e364a42f5317f5e41e8e7b4f2ff5c8ff2256dbb6264bc361704ece
- languageName: node
- linkType: hard
-
"p-cancelable@npm:^2.0.0":
version: 2.1.1
resolution: "p-cancelable@npm:2.1.1"
@@ -28692,13 +26496,6 @@ __metadata:
languageName: node
linkType: hard
-"p-defer@npm:^1.0.0":
- version: 1.0.0
- resolution: "p-defer@npm:1.0.0"
- checksum: 10/1d8fb7138a0ccebb65479160fd93f245303c06c977c976105d75838f7f504a9a6ef11b7e058f98b4c957a6a8df268c616da1ee339285d565f9e5ba00304e027b
- languageName: node
- linkType: hard
-
"p-filter@npm:^2.0.0":
version: 2.1.0
resolution: "p-filter@npm:2.1.0"
@@ -28722,13 +26519,6 @@ __metadata:
languageName: node
linkType: hard
-"p-is-promise@npm:^2.0.0":
- version: 2.1.0
- resolution: "p-is-promise@npm:2.1.0"
- checksum: 10/c9a8248c8b5e306475a5d55ce7808dbce4d4da2e3d69526e4991a391a7809bfd6cfdadd9bf04f1c96a3db366c93d9a0f5ee81d949e7b1684c4e0f61f747199ef
- languageName: node
- linkType: hard
-
"p-is-promise@npm:^3.0.0":
version: 3.0.0
resolution: "p-is-promise@npm:3.0.0"
@@ -28799,13 +26589,6 @@ __metadata:
languageName: node
linkType: hard
-"p-map@npm:^1.1.1":
- version: 1.2.0
- resolution: "p-map@npm:1.2.0"
- checksum: 10/e7fd1175f5be449e3664a2fbceb4f53a5c1a4a1f078387f5e83dc4110b1421fd01e172c9de97ca03ae2b95401270918fd6f76778c0b52bd70edcdc2202d26ea8
- languageName: node
- linkType: hard
-
"p-map@npm:^2.0.0":
version: 2.1.0
resolution: "p-map@npm:2.1.0"
@@ -28839,15 +26622,6 @@ __metadata:
languageName: node
linkType: hard
-"p-retry@npm:^3.0.0":
- version: 3.0.1
- resolution: "p-retry@npm:3.0.1"
- dependencies:
- retry: "npm:^0.12.0"
- checksum: 10/702efc63fc13ef7fc0bab9a1b08432ab38a0236efcbce64af0cf692030ba6ed8009f29ba66e3301cb98dc69ef33e7ccab29ba1ac2bea897f802f81f4f7e468dd
- languageName: node
- linkType: hard
-
"p-retry@npm:^4.0.0, p-retry@npm:^4.5.0":
version: 4.6.2
resolution: "p-retry@npm:4.6.2"
@@ -28999,6 +26773,15 @@ __metadata:
languageName: node
linkType: hard
+"parse-css-sides@npm:^3.0.1":
+ version: 3.0.1
+ resolution: "parse-css-sides@npm:3.0.1"
+ dependencies:
+ css-list-helpers: "npm:^2.0.0"
+ checksum: 10/8c17d67839e7519e7483e2a4bc6ca011334edfa4e7769f80323c36fa73e49f88013d9ec12d9864ac57445050e11a1cf6a42cc24b11729a413ab414a9f5a44d5d
+ languageName: node
+ linkType: hard
+
"parse-data-uri@npm:^0.2.0":
version: 0.2.0
resolution: "parse-data-uri@npm:0.2.0"
@@ -29038,18 +26821,6 @@ __metadata:
languageName: node
linkType: hard
-"parse-glob@npm:^3.0.4":
- version: 3.0.4
- resolution: "parse-glob@npm:3.0.4"
- dependencies:
- glob-base: "npm:^0.3.0"
- is-dotfile: "npm:^1.0.0"
- is-extglob: "npm:^1.0.0"
- is-glob: "npm:^2.0.0"
- checksum: 10/447bc442d76522c5e03b5babc8582d4a37fe9d59b3e5ef8d7ddae4e03060637ae38d5d28686e03c27e4d20be34983b5cb053cf8b066d34be0f9d1867eb677e45
- languageName: node
- linkType: hard
-
"parse-headers@npm:^2.0.0":
version: 2.0.5
resolution: "parse-headers@npm:2.0.5"
@@ -29057,15 +26828,6 @@ __metadata:
languageName: node
linkType: hard
-"parse-json@npm:^2.2.0":
- version: 2.2.0
- resolution: "parse-json@npm:2.2.0"
- dependencies:
- error-ex: "npm:^1.2.0"
- checksum: 10/39924c0ddbf6f2544ab92acea61d91a0fb0ac959b0d19d273468cf8aa977522f8076e8fbb29cdab75c1440ebc2e172389988274890373d95fe308837074cc7e0
- languageName: node
- linkType: hard
-
"parse-json@npm:^4.0.0":
version: 4.0.0
resolution: "parse-json@npm:4.0.0"
@@ -29088,20 +26850,6 @@ __metadata:
languageName: node
linkType: hard
-"parse-passwd@npm:^1.0.0":
- version: 1.0.0
- resolution: "parse-passwd@npm:1.0.0"
- checksum: 10/4e55e0231d58f828a41d0f1da2bf2ff7bcef8f4cb6146e69d16ce499190de58b06199e6bd9b17fbf0d4d8aef9052099cdf8c4f13a6294b1a522e8e958073066e
- languageName: node
- linkType: hard
-
-"parse5@npm:4.0.0":
- version: 4.0.0
- resolution: "parse5@npm:4.0.0"
- checksum: 10/ba851b10a328e21b437f7c685ef52e078cc75e7bfbff7449c4ff5e0734343ebd65e5f3e338830d9b970862eca94e92a4e55e36cefb934e1e027e3d17138d1db4
- languageName: node
- linkType: hard
-
"parse5@npm:6.0.1":
version: 6.0.1
resolution: "parse5@npm:6.0.1"
@@ -29126,13 +26874,6 @@ __metadata:
languageName: node
linkType: hard
-"pascalcase@npm:^0.1.1":
- version: 0.1.1
- resolution: "pascalcase@npm:0.1.1"
- checksum: 10/f83681c3c8ff75fa473a2bb2b113289952f802ff895d435edd717e7cb898b0408cbdb247117a938edcbc5d141020909846cc2b92c47213d764e2a94d2ad2b925
- languageName: node
- linkType: hard
-
"patch-package@npm:^8.0.0":
version: 8.0.0
resolution: "patch-package@npm:8.0.0"
@@ -29175,15 +26916,6 @@ __metadata:
languageName: node
linkType: hard
-"path-exists@npm:^2.0.0":
- version: 2.1.0
- resolution: "path-exists@npm:2.1.0"
- dependencies:
- pinkie-promise: "npm:^2.0.0"
- checksum: 10/fdb734f1d00f225f7a0033ce6d73bff6a7f76ea08936abf0e5196fa6e54a645103538cd8aedcb90d6d8c3fa3705ded0c58a4da5948ae92aa8834892c1ab44a84
- languageName: node
- linkType: hard
-
"path-exists@npm:^3.0.0":
version: 3.0.0
resolution: "path-exists@npm:3.0.0"
@@ -29198,7 +26930,7 @@ __metadata:
languageName: node
linkType: hard
-"path-is-absolute@npm:^1.0.0, path-is-absolute@npm:^1.0.1":
+"path-is-absolute@npm:^1.0.0":
version: 1.0.1
resolution: "path-is-absolute@npm:1.0.1"
checksum: 10/060840f92cf8effa293bcc1bea81281bd7d363731d214cbe5c227df207c34cd727430f70c6037b5159c8a870b9157cba65e775446b0ab06fd5ecc7e54615a3b8
@@ -29233,7 +26965,7 @@ __metadata:
languageName: node
linkType: hard
-"path-parse@npm:^1.0.5, path-parse@npm:^1.0.6, path-parse@npm:^1.0.7":
+"path-parse@npm:^1.0.6, path-parse@npm:^1.0.7":
version: 1.0.7
resolution: "path-parse@npm:1.0.7"
checksum: 10/49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a
@@ -29266,17 +26998,6 @@ __metadata:
languageName: node
linkType: hard
-"path-type@npm:^1.0.0":
- version: 1.1.0
- resolution: "path-type@npm:1.1.0"
- dependencies:
- graceful-fs: "npm:^4.1.2"
- pify: "npm:^2.0.0"
- pinkie-promise: "npm:^2.0.0"
- checksum: 10/59a4b2c0e566baf4db3021a1ed4ec09a8b36fca960a490b54a6bcefdb9987dafe772852982b6011cd09579478a96e57960a01f75fa78a794192853c9d468fc79
- languageName: node
- linkType: hard
-
"path-type@npm:^3.0.0":
version: 3.0.0
resolution: "path-type@npm:3.0.0"
@@ -29378,13 +27099,6 @@ __metadata:
languageName: node
linkType: hard
-"pify@npm:^2.0.0":
- version: 2.3.0
- resolution: "pify@npm:2.3.0"
- checksum: 10/9503aaeaf4577acc58642ad1d25c45c6d90288596238fb68f82811c08104c800e5a7870398e9f015d82b44ecbcbef3dc3d4251a1cbb582f6e5959fe09884b2ba
- languageName: node
- linkType: hard
-
"pify@npm:^3.0.0":
version: 3.0.0
resolution: "pify@npm:3.0.0"
@@ -29406,23 +27120,7 @@ __metadata:
languageName: node
linkType: hard
-"pinkie-promise@npm:^2.0.0":
- version: 2.0.1
- resolution: "pinkie-promise@npm:2.0.1"
- dependencies:
- pinkie: "npm:^2.0.0"
- checksum: 10/b53a4a2e73bf56b6f421eef711e7bdcb693d6abb474d57c5c413b809f654ba5ee750c6a96dd7225052d4b96c4d053cdcb34b708a86fceed4663303abee52fcca
- languageName: node
- linkType: hard
-
-"pinkie@npm:^2.0.0":
- version: 2.0.4
- resolution: "pinkie@npm:2.0.4"
- checksum: 10/11d207257a044d1047c3755374d36d84dda883a44d030fe98216bf0ea97da05a5c9d64e82495387edeb9ee4f52c455bca97cdb97629932be65e6f54b29f5aec8
- languageName: node
- linkType: hard
-
-"pirates@npm:^4.0.4, pirates@npm:^4.0.5, pirates@npm:^4.0.6":
+"pirates@npm:^4.0.4, pirates@npm:^4.0.6":
version: 4.0.6
resolution: "pirates@npm:4.0.6"
checksum: 10/d02dda76f4fec1cbdf395c36c11cf26f76a644f9f9a1bfa84d3167d0d3154d5289aacc72677aa20d599bb4a6937a471de1b65c995e2aea2d8687cbcd7e43ea5f
@@ -29439,15 +27137,6 @@ __metadata:
languageName: node
linkType: hard
-"pkg-dir@npm:^2.0.0":
- version: 2.0.0
- resolution: "pkg-dir@npm:2.0.0"
- dependencies:
- find-up: "npm:^2.1.0"
- checksum: 10/8c72b712305b51e1108f0ffda5ec1525a8307e54a5855db8fb1dcf77561a5ae98e2ba3b4814c9806a679f76b2f7e5dd98bde18d07e594ddd9fdd25e9cf242ea1
- languageName: node
- linkType: hard
-
"pkg-dir@npm:^3.0.0":
version: 3.0.0
resolution: "pkg-dir@npm:3.0.0"
@@ -29475,22 +27164,6 @@ __metadata:
languageName: node
linkType: hard
-"please-upgrade-node@npm:^3.0.2, please-upgrade-node@npm:^3.2.0":
- version: 3.2.0
- resolution: "please-upgrade-node@npm:3.2.0"
- dependencies:
- semver-compare: "npm:^1.0.0"
- checksum: 10/d87c41581a2a022fbe25965a97006238cd9b8cbbf49b39f78d262548149a9d30bd2bdf35fec3d810e0001e630cd46ef13c7e19c389dea8de7e64db271a2381bb
- languageName: node
- linkType: hard
-
-"pn@npm:^1.1.0":
- version: 1.1.0
- resolution: "pn@npm:1.1.0"
- checksum: 10/f597172ff5d83166b66179dc31b65e8601caf0d6d0691f07613b58d9ac439154a017c081b5ba5f6432dd5bbedfa90d7a2d2d7a5b2e799c1ebb11545ea254213c
- languageName: node
- linkType: hard
-
"pngjs@npm:^3.3.3":
version: 3.4.0
resolution: "pngjs@npm:3.4.0"
@@ -29507,13 +27180,6 @@ __metadata:
languageName: node
linkType: hard
-"posix-character-classes@npm:^0.1.0":
- version: 0.1.1
- resolution: "posix-character-classes@npm:0.1.1"
- checksum: 10/dedb99913c60625a16050cfed2fb5c017648fc075be41ac18474e1c6c3549ef4ada201c8bd9bd006d36827e289c571b6092e1ef6e756cdbab2fd7046b25c6442
- languageName: node
- linkType: hard
-
"postcss-calc@npm:^7.0.1":
version: 7.0.5
resolution: "postcss-calc@npm:7.0.5"
@@ -30441,20 +28107,6 @@ __metadata:
languageName: node
linkType: hard
-"prepend-http@npm:^2.0.0":
- version: 2.0.0
- resolution: "prepend-http@npm:2.0.0"
- checksum: 10/7694a9525405447662c1ffd352fcb41b6410c705b739b6f4e3a3e21cf5fdede8377890088e8934436b8b17ba55365a615f153960f30877bf0d0392f9e93503ea
- languageName: node
- linkType: hard
-
-"preserve@npm:^0.2.0":
- version: 0.2.0
- resolution: "preserve@npm:0.2.0"
- checksum: 10/dd31d4fd0e6b218cac7178712ae0683c96e6eaa3e5490a37aba6d47095f87c47ffe980a3061ebe72ca07cb2a9a4f1a41bbeecee8944ec77be311c294e05b2e43
- languageName: node
- linkType: hard
-
"prettier@npm:^2.0.5, prettier@npm:^2.7.1":
version: 2.8.8
resolution: "prettier@npm:2.8.8"
@@ -30499,16 +28151,6 @@ __metadata:
languageName: node
linkType: hard
-"pretty-format@npm:^23.6.0":
- version: 23.6.0
- resolution: "pretty-format@npm:23.6.0"
- dependencies:
- ansi-regex: "npm:^3.0.0"
- ansi-styles: "npm:^3.2.0"
- checksum: 10/7fda1f30c374e24b4ff2ce1d517ecd42a25b0eb759e3289b04ca93d95d38e84a56fc240e76bdd90b0ac471e77088e543ac581223cafcb56e9be05c9d6ac10516
- languageName: node
- linkType: hard
-
"pretty-format@npm:^26.0.0, pretty-format@npm:^26.6.2":
version: 26.6.2
resolution: "pretty-format@npm:26.6.2"
@@ -30553,13 +28195,6 @@ __metadata:
languageName: node
linkType: hard
-"private@npm:^0.1.8":
- version: 0.1.8
- resolution: "private@npm:0.1.8"
- checksum: 10/192ce0764e1708a40e42ad3b679c8553c275e4ee9d5dcfdf3de99b01d43a6ee3047f0d293e892c003276cde3829f0548e60f77fa49e2e51b380939e662794a1e
- languageName: node
- linkType: hard
-
"process-nextick-args@npm:~1.0.6":
version: 1.0.7
resolution: "process-nextick-args@npm:1.0.7"
@@ -30581,13 +28216,6 @@ __metadata:
languageName: node
linkType: hard
-"progress@npm:^2.0.0":
- version: 2.0.3
- resolution: "progress@npm:2.0.3"
- checksum: 10/e6f0bcb71f716eee9dfac0fe8a2606e3704d6a64dd93baaf49fbadbc8499989a610fe14cf1bc6f61b6d6653c49408d94f4a94e124538084efd8e4cf525e0293d
- languageName: node
- linkType: hard
-
"promise-inflight@npm:^1.0.1, promise-inflight@npm:~1.0.1":
version: 1.0.1
resolution: "promise-inflight@npm:1.0.1"
@@ -30644,16 +28272,6 @@ __metadata:
languageName: node
linkType: hard
-"prompts@npm:^0.1.9":
- version: 0.1.14
- resolution: "prompts@npm:0.1.14"
- dependencies:
- kleur: "npm:^2.0.1"
- sisteransi: "npm:^0.1.1"
- checksum: 10/dba88d7ed11dcc76952a83ab4f0ec1f23f040a540499cb8af2b6380f7bacee3ddcbb2c24c2d119064a432ac2dcf6b0e909022c10388c4a16ec0bb81ca2ca158c
- languageName: node
- linkType: hard
-
"prompts@npm:^2.0.1, prompts@npm:^2.4.0":
version: 2.4.2
resolution: "prompts@npm:2.4.2"
@@ -30684,13 +28302,6 @@ __metadata:
languageName: node
linkType: hard
-"property-expr@npm:^1.5.0":
- version: 1.5.1
- resolution: "property-expr@npm:1.5.1"
- checksum: 10/8d5bd40224ed502fc09c20749f27bb680a2645a5d4ee51978eb534e241ea9dbb05813dee6a0471b7c00ffec37e8b202f7b4ead90ad80e52cea15431522707bfe
- languageName: node
- linkType: hard
-
"property-information@npm:^5.0.0":
version: 5.6.0
resolution: "property-information@npm:5.6.0"
@@ -30876,6 +28487,13 @@ __metadata:
languageName: node
linkType: hard
+"quaternion@npm:^1.1.0":
+ version: 1.5.1
+ resolution: "quaternion@npm:1.5.1"
+ checksum: 10/46a059ae30860d73e830ed63a03fababa959b7cfd36037ca8e70018aa25e578e1e9e52c6fc7f2d8ccf0bde2532048bb7341d2a27fc24215e01ec617cd348066f
+ languageName: node
+ linkType: hard
+
"query-string@npm:^6.14.1":
version: 6.14.1
resolution: "query-string@npm:6.14.1"
@@ -31029,17 +28647,6 @@ __metadata:
languageName: node
linkType: hard
-"randomatic@npm:^3.0.0":
- version: 3.1.1
- resolution: "randomatic@npm:3.1.1"
- dependencies:
- is-number: "npm:^4.0.0"
- kind-of: "npm:^6.0.0"
- math-random: "npm:^1.0.1"
- checksum: 10/fd7517e78425722b67ad6ddbf930f668bf00624d7210546e32562888d8558d0fcca9b5b7ca8639943eea6dc1b03ea666d5af0a7fd698b7b08e1cdb84c94fd5b5
- languageName: node
- linkType: hard
-
"randombytes@npm:^2.1.0":
version: 2.1.0
resolution: "randombytes@npm:2.1.0"
@@ -31144,7 +28751,7 @@ __metadata:
languageName: node
linkType: hard
-"react-color@npm:^2.18.0, react-color@npm:^2.19.3":
+"react-color@npm:^2.17.3, react-color@npm:^2.18.0, react-color@npm:^2.19.3":
version: 2.19.3
resolution: "react-color@npm:2.19.3"
dependencies:
@@ -31316,6 +28923,19 @@ __metadata:
languageName: node
linkType: hard
+"react-draggable@npm:^4.1.0":
+ version: 4.4.6
+ resolution: "react-draggable@npm:4.4.6"
+ dependencies:
+ clsx: "npm:^1.1.1"
+ prop-types: "npm:^15.8.1"
+ peerDependencies:
+ react: ">= 16.3.0"
+ react-dom: ">= 16.3.0"
+ checksum: 10/51b9ac7f913797fc1cebc30ae383f346883033c45eb91e9b0b92e9ebd224bb1545b4ae2391825b649b798cc711a38351a5f41be24d949c64c6703ebc24eba661
+ languageName: node
+ linkType: hard
+
"react-draggable@npm:^4.4.3, react-draggable@npm:^4.4.5":
version: 4.4.5
resolution: "react-draggable@npm:4.4.5"
@@ -31433,7 +29053,16 @@ __metadata:
languageName: node
linkType: hard
-"react-images@npm:^1.1.0-beta.1":
+"react-image-slider@npm:^0.1.0":
+ version: 0.1.0
+ resolution: "react-image-slider@npm:0.1.0"
+ peerDependencies:
+ react: ^15.4
+ checksum: 10/a529cb4526d824b3b3b1817d5c619582fbb536652a17913f641a9e1454d65b8b6d7c72d0e8745a48203ab7367315bc3d20c2b9c50ded9c6d9a1156baf88dbab3
+ languageName: node
+ linkType: hard
+
+"react-images@npm:^1.0.0, react-images@npm:^1.1.0-beta.1":
version: 1.1.7
resolution: "react-images@npm:1.1.7"
dependencies:
@@ -31566,6 +29195,21 @@ __metadata:
languageName: node
linkType: hard
+"react-measure@npm:^2.3.0":
+ version: 2.5.2
+ resolution: "react-measure@npm:2.5.2"
+ dependencies:
+ "@babel/runtime": "npm:^7.2.0"
+ get-node-dimensions: "npm:^1.2.1"
+ prop-types: "npm:^15.6.2"
+ resize-observer-polyfill: "npm:^1.5.0"
+ peerDependencies:
+ react: ">0.13.0"
+ react-dom: ">0.13.0"
+ checksum: 10/0d409e6bb2b756f78a0dfdc1216c068338bf4daf4f904775465544141df52dce3d155b24db202d351c1bb23e82db6dedb02af98f36efc88dd5496c2ba3f46b15
+ languageName: node
+ linkType: hard
+
"react-motion@npm:^0.5.0":
version: 0.5.2
resolution: "react-motion@npm:0.5.2"
@@ -31692,7 +29336,7 @@ __metadata:
languageName: node
linkType: hard
-"react-router-dom@npm:^5.1.2":
+"react-router-dom@npm:^5.1.0, react-router-dom@npm:^5.1.2":
version: 5.3.4
resolution: "react-router-dom@npm:5.3.4"
dependencies:
@@ -31747,7 +29391,7 @@ __metadata:
languageName: node
linkType: hard
-"react-router@npm:5.3.4":
+"react-router@npm:5.3.4, react-router@npm:^5.1.0":
version: 5.3.4
resolution: "react-router@npm:5.3.4"
dependencies:
@@ -31788,6 +29432,19 @@ __metadata:
languageName: node
linkType: hard
+"react-scroll@npm:^1.7.14":
+ version: 1.9.0
+ resolution: "react-scroll@npm:1.9.0"
+ dependencies:
+ lodash.throttle: "npm:^4.1.1"
+ prop-types: "npm:^15.7.2"
+ peerDependencies:
+ react: ^15.5.4 || ^16.0.0 || ^17.0.0 || ^18.0.0
+ react-dom: ^15.5.4 || ^16.0.0 || ^17.0.0 || ^18.0.0
+ checksum: 10/d6f6bbd5b17218d2b5e020d1f4ed77047312a82003c9f0eabad387835affb0d99699a91117ab82d33cefbf4802c830d1ec8c724d2713cdb1778643e4443b7af5
+ languageName: node
+ linkType: hard
+
"react-scroll@npm:^1.7.16":
version: 1.8.9
resolution: "react-scroll@npm:1.8.9"
@@ -31820,17 +29477,50 @@ __metadata:
languageName: node
linkType: hard
-"react-streaming@npm:^0.3.19":
- version: 0.3.19
- resolution: "react-streaming@npm:0.3.19"
+"react-sizeme@npm:^2.6.7":
+ version: 2.6.12
+ resolution: "react-sizeme@npm:2.6.12"
+ dependencies:
+ element-resize-detector: "npm:^1.2.1"
+ invariant: "npm:^2.2.4"
+ shallowequal: "npm:^1.1.0"
+ throttle-debounce: "npm:^2.1.0"
+ peerDependencies:
+ react: ^0.14.0 || ^15.0.0-0 || ^16.0.0
+ react-dom: ^0.14.0 || ^15.0.0-0 || ^16.0.0
+ checksum: 10/ace04eda64778ab1506e4deb5a62d74215961eecec5438407d0c295940f9afc2d86851e97a93ea00068136e2c713cf5b136ad09eb115bef538f2f9f2d350cf5d
+ languageName: node
+ linkType: hard
+
+"react-spring@npm:^9.7.3":
+ version: 9.7.3
+ resolution: "react-spring@npm:9.7.3"
+ dependencies:
+ "@react-spring/core": "npm:~9.7.3"
+ "@react-spring/konva": "npm:~9.7.3"
+ "@react-spring/native": "npm:~9.7.3"
+ "@react-spring/three": "npm:~9.7.3"
+ "@react-spring/web": "npm:~9.7.3"
+ "@react-spring/zdog": "npm:~9.7.3"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
+ checksum: 10/f763fb64b16b59b7b98816b88898d1697906aebd0d9067bdb2af61d2522b3a313d1117e139e75e39f0cd438e1d110956cfb3573bdefb5516ffba3e7aa618d87e
+ languageName: node
+ linkType: hard
+
+"react-streaming@npm:^0.3.27":
+ version: 0.3.28
+ resolution: "react-streaming@npm:0.3.28"
dependencies:
"@brillout/import": "npm:^0.2.3"
"@brillout/json-serializer": "npm:^0.5.1"
+ "@brillout/picocolors": "npm:^1.0.11"
isbot-fast: "npm:1.2.0"
peerDependencies:
react: ">=18"
react-dom: ">=18"
- checksum: 10/5c96dc355db925cf90830a001239a7e9788f01b53e5ad9dc1b054f52bab3f820f10422e3d395678f89f1f4b83eed3ec2b5577a7d857e134bc7cdd9c7d3cab680
+ checksum: 10/700f41b753425c2de894875b8c0e00fc685b7caa914d90ef3f7c39aa07fe269afe8e24c406cc57f170e7cc279e011b891220472b6922692b4a0ddd9ab757fa40
languageName: node
linkType: hard
@@ -31905,6 +29595,18 @@ __metadata:
languageName: node
linkType: hard
+"react-tooltip@npm:^3.11.1":
+ version: 3.11.6
+ resolution: "react-tooltip@npm:3.11.6"
+ dependencies:
+ prop-types: "npm:^15.6.0"
+ peerDependencies:
+ react: "*"
+ react-dom: "*"
+ checksum: 10/89ec5e02c9204866f9ba9c9c1f1b26698cbd53695be29c9132a387d94832ffbe047bfa8e1a381f0b3039ca6458115d1611ea36ac44ca0e362214f601b82c3361
+ languageName: node
+ linkType: hard
+
"react-transition-group@npm:^2.9.0":
version: 2.9.0
resolution: "react-transition-group@npm:2.9.0"
@@ -32059,16 +29761,6 @@ __metadata:
languageName: node
linkType: hard
-"read-pkg-up@npm:^1.0.1":
- version: 1.0.1
- resolution: "read-pkg-up@npm:1.0.1"
- dependencies:
- find-up: "npm:^1.0.0"
- read-pkg: "npm:^1.0.0"
- checksum: 10/d18399a0f46e2da32beb2f041edd0cda49d2f2cc30195a05c759ef3ed9b5e6e19ba1ad1bae2362bdec8c6a9f2c3d18f4d5e8c369e808b03d498d5781cb9122c7
- languageName: node
- linkType: hard
-
"read-pkg-up@npm:^3.0.0":
version: 3.0.0
resolution: "read-pkg-up@npm:3.0.0"
@@ -32090,17 +29782,6 @@ __metadata:
languageName: node
linkType: hard
-"read-pkg@npm:^1.0.0":
- version: 1.1.0
- resolution: "read-pkg@npm:1.1.0"
- dependencies:
- load-json-file: "npm:^1.0.0"
- normalize-package-data: "npm:^2.3.2"
- path-type: "npm:^1.0.0"
- checksum: 10/a0f5d5e32227ec8e6a028dd5c5134eab229768dcb7a5d9a41a284ed28ad4b9284fecc47383dc1593b5694f4de603a7ffaee84b738956b9b77e0999567485a366
- languageName: node
- linkType: hard
-
"read-pkg@npm:^3.0.0":
version: 3.0.0
resolution: "read-pkg@npm:3.0.0"
@@ -32206,15 +29887,6 @@ __metadata:
languageName: node
linkType: hard
-"realpath-native@npm:^1.0.0":
- version: 1.1.0
- resolution: "realpath-native@npm:1.1.0"
- dependencies:
- util.promisify: "npm:^1.0.0"
- checksum: 10/75ef0595dea6186384b785a9e0993c58ec604f8be2e39b602fec6d7837c7f770af4a4eb3c81f864a7d81c518a7167a6eaabbc7695b7a88c56e1ef04b91c1d586
- languageName: node
- linkType: hard
-
"recast@npm:^0.23.3":
version: 0.23.4
resolution: "recast@npm:0.23.4"
@@ -32404,25 +30076,6 @@ __metadata:
languageName: node
linkType: hard
-"regex-cache@npm:^0.4.2":
- version: 0.4.4
- resolution: "regex-cache@npm:0.4.4"
- dependencies:
- is-equal-shallow: "npm:^0.1.3"
- checksum: 10/06b605c4ffd411f36ebf2d201f51f37bc23aa7e1f71d30d1c241833697ab8d33122d19701e982be2dc925cfee8cf03e007d374cafa3e1028674729665e0f2a15
- languageName: node
- linkType: hard
-
-"regex-not@npm:^1.0.0, regex-not@npm:^1.0.2":
- version: 1.0.2
- resolution: "regex-not@npm:1.0.2"
- dependencies:
- extend-shallow: "npm:^3.0.2"
- safe-regex: "npm:^1.1.0"
- checksum: 10/3081403de79559387a35ef9d033740e41818a559512668cef3d12da4e8a29ef34ee13c8ed1256b07e27ae392790172e8a15c8a06b72962fd4550476cde3d8f77
- languageName: node
- linkType: hard
-
"regexp.prototype.flags@npm:^1.5.0, regexp.prototype.flags@npm:^1.5.1":
version: 1.5.1
resolution: "regexp.prototype.flags@npm:1.5.1"
@@ -32487,13 +30140,6 @@ __metadata:
languageName: node
linkType: hard
-"regl@npm:^1.5.0":
- version: 1.7.0
- resolution: "regl@npm:1.7.0"
- checksum: 10/085b9df406c1b2564999a13d2e323158b2b9d608b52b9b2ceae209e88885fde70d5059abf3ca2474290790d2b4058288321b7d323ef4dfdb557336252ae5515c
- languageName: node
- linkType: hard
-
"regl@npm:^2.1.0":
version: 2.1.0
resolution: "regl@npm:2.1.0"
@@ -32580,13 +30226,6 @@ __metadata:
languageName: node
linkType: hard
-"remove-trailing-separator@npm:^1.0.1":
- version: 1.1.0
- resolution: "remove-trailing-separator@npm:1.1.0"
- checksum: 10/d3c20b5a2d987db13e1cca9385d56ecfa1641bae143b620835ac02a6b70ab88f68f117a0021838db826c57b31373d609d52e4f31aca75fc490c862732d595419
- languageName: node
- linkType: hard
-
"renderkid@npm:^3.0.0":
version: 3.0.0
resolution: "renderkid@npm:3.0.0"
@@ -32600,13 +30239,6 @@ __metadata:
languageName: node
linkType: hard
-"repeat-element@npm:^1.1.2":
- version: 1.1.4
- resolution: "repeat-element@npm:1.1.4"
- checksum: 10/1edd0301b7edad71808baad226f0890ba709443f03a698224c9ee4f2494c317892dc5211b2ba8cbea7194a9ddbcac01e283bd66de0467ab24ee1fc1a3711d8a9
- languageName: node
- linkType: hard
-
"repeat-string@npm:^1.5.2, repeat-string@npm:^1.6.1":
version: 1.6.1
resolution: "repeat-string@npm:1.6.1"
@@ -32614,15 +30246,6 @@ __metadata:
languageName: node
linkType: hard
-"repeating@npm:^2.0.0":
- version: 2.0.1
- resolution: "repeating@npm:2.0.1"
- dependencies:
- is-finite: "npm:^1.0.0"
- checksum: 10/d2db0b69c5cb0c14dd750036e0abcd6b3c3f7b2da3ee179786b755cf737ca15fa0fff417ca72de33d6966056f4695440e680a352401fc02c95ade59899afbdd0
- languageName: node
- linkType: hard
-
"replace-in-file@npm:^3.4.2":
version: 3.4.4
resolution: "replace-in-file@npm:3.4.4"
@@ -32636,31 +30259,7 @@ __metadata:
languageName: node
linkType: hard
-"request-promise-core@npm:1.1.4":
- version: 1.1.4
- resolution: "request-promise-core@npm:1.1.4"
- dependencies:
- lodash: "npm:^4.17.19"
- peerDependencies:
- request: ^2.34
- checksum: 10/79714e46b078c8de539c4de13e78878a3c7e3f33e194547c5ec3f0c8e47b0b222aa1718bbd2dbfb1a7990149041c6cc0be6c5916e03d99f4e75939f2a840046e
- languageName: node
- linkType: hard
-
-"request-promise-native@npm:^1.0.5":
- version: 1.0.9
- resolution: "request-promise-native@npm:1.0.9"
- dependencies:
- request-promise-core: "npm:1.1.4"
- stealthy-require: "npm:^1.1.1"
- tough-cookie: "npm:^2.3.3"
- peerDependencies:
- request: ^2.34
- checksum: 10/6df0cf75cbddd08b568e462570fb63033f040efdf961f39af572e52821a831a13ee9027db7ba78f1d980759cc7913f2a12a34424deac5a0ec56c5d8ebbf45391
- languageName: node
- linkType: hard
-
-"request@npm:^2.44.0, request@npm:^2.87.0, request@npm:^2.88.0, request@npm:^2.88.2":
+"request@npm:^2.44.0, request@npm:^2.88.0, request@npm:^2.88.2":
version: 2.88.2
resolution: "request@npm:2.88.2"
dependencies:
@@ -32702,13 +30301,6 @@ __metadata:
languageName: node
linkType: hard
-"require-main-filename@npm:^1.0.1":
- version: 1.0.1
- resolution: "require-main-filename@npm:1.0.1"
- checksum: 10/49e4586207c138dabe885cffb9484f3f4583fc839851cd6705466eb343d8bb6af7dfa3d8e611fbd44d40441d4cddaadb34b4d537092b92adafa6a6f440dc1da8
- languageName: node
- linkType: hard
-
"require-main-filename@npm:^2.0.0":
version: 2.0.0
resolution: "require-main-filename@npm:2.0.0"
@@ -32747,6 +30339,13 @@ __metadata:
languageName: node
linkType: hard
+"resize-observer-polyfill@npm:^1.5.0":
+ version: 1.5.1
+ resolution: "resize-observer-polyfill@npm:1.5.1"
+ checksum: 10/e10ee50cd6cf558001de5c6fb03fee15debd011c2f694564b71f81742eef03fb30d6c2596d1d5bf946d9991cb692fcef529b7bd2e4057041377ecc9636c753ce
+ languageName: node
+ linkType: hard
+
"resolve-alpn@npm:^1.0.0":
version: 1.2.1
resolution: "resolve-alpn@npm:1.2.1"
@@ -32754,15 +30353,6 @@ __metadata:
languageName: node
linkType: hard
-"resolve-cwd@npm:^2.0.0":
- version: 2.0.0
- resolution: "resolve-cwd@npm:2.0.0"
- dependencies:
- resolve-from: "npm:^3.0.0"
- checksum: 10/e7c16880c460656e77f102d537a6dc82b3657d9173697cd6ea82ffce37df96f6c1fc79d0bb35fd73fff8871ac13f21b4396958b5f0a13e5b99c97d69f5e319fa
- languageName: node
- linkType: hard
-
"resolve-cwd@npm:^3.0.0":
version: 3.0.0
resolution: "resolve-cwd@npm:3.0.0"
@@ -32772,16 +30362,6 @@ __metadata:
languageName: node
linkType: hard
-"resolve-dir@npm:^1.0.0, resolve-dir@npm:^1.0.1":
- version: 1.0.1
- resolution: "resolve-dir@npm:1.0.1"
- dependencies:
- expand-tilde: "npm:^2.0.0"
- global-modules: "npm:^1.0.0"
- checksum: 10/ef736b8ed60d6645c3b573da17d329bfb50ec4e1d6c5ffd6df49e3497acef9226f9810ea6823b8ece1560e01dcb13f77a9f6180d4f242d00cc9a8f4de909c65c
- languageName: node
- linkType: hard
-
"resolve-from@npm:5.0.0, resolve-from@npm:^5.0.0":
version: 5.0.0
resolution: "resolve-from@npm:5.0.0"
@@ -32819,6 +30399,13 @@ __metadata:
languageName: node
linkType: hard
+"resolve-pkg-maps@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "resolve-pkg-maps@npm:1.0.0"
+ checksum: 10/0763150adf303040c304009231314d1e84c6e5ebfa2d82b7d94e96a6e82bacd1dcc0b58ae257315f3c8adb89a91d8d0f12928241cba2df1680fbe6f60bf99b0e
+ languageName: node
+ linkType: hard
+
"resolve-protobuf-schema@npm:^2.1.0":
version: 2.1.0
resolution: "resolve-protobuf-schema@npm:2.1.0"
@@ -32828,13 +30415,6 @@ __metadata:
languageName: node
linkType: hard
-"resolve-url@npm:^0.2.1":
- version: 0.2.1
- resolution: "resolve-url@npm:0.2.1"
- checksum: 10/c8bbf6385730add6657103929ebd7e4aa623a2c2df29bba28a58fec73097c003edcce475efefa51c448a904aa344a4ebabe6ad85c8e75c72c4ce9a0c0b5652d2
- languageName: node
- linkType: hard
-
"resolve.exports@npm:^1.1.0":
version: 1.1.1
resolution: "resolve.exports@npm:1.1.1"
@@ -32842,13 +30422,6 @@ __metadata:
languageName: node
linkType: hard
-"resolve@npm:1.1.7":
- version: 1.1.7
- resolution: "resolve@npm:1.1.7"
- checksum: 10/0a4ff8a102b1d059321caf77563cb2c495979c734f9dc400a70e3ceaaafe76a72bbcc625f9361756348d7b6af6d3cd2815cfbe3109be655a2b18e62d1cdadfc5
- languageName: node
- linkType: hard
-
"resolve@npm:1.17.0":
version: 1.17.0
resolution: "resolve@npm:1.17.0"
@@ -32858,36 +30431,29 @@ __metadata:
languageName: node
linkType: hard
-"resolve@npm:1.x, resolve@npm:^1.1.6, resolve@npm:^1.10.0, resolve@npm:^1.12.0, resolve@npm:^1.14.2, resolve@npm:^1.16.1, resolve@npm:^1.17.0, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.3.2, resolve@npm:^1.9.0":
- version: 1.22.6
- resolution: "resolve@npm:1.22.6"
+"resolve@npm:^1.1.5, resolve@npm:^1.22.1, resolve@npm:^1.22.8":
+ version: 1.22.8
+ resolution: "resolve@npm:1.22.8"
dependencies:
is-core-module: "npm:^2.13.0"
path-parse: "npm:^1.0.7"
supports-preserve-symlinks-flag: "npm:^1.0.0"
bin:
resolve: bin/resolve
- checksum: 10/b57acf016c94aded442f3c92dda4c4e9370ebe5b337ca2dbada3c022ce7c75cd20d5e31a855f884321c7379d6f2c7e640852024ae83f976e15367a1c4cf14de5
+ checksum: 10/c473506ee01eb45cbcfefb68652ae5759e092e6b0fb64547feadf9736a6394f258fbc6f88e00c5ca36d5477fbb65388b272432a3600fa223062e54333c156753
languageName: node
linkType: hard
-"resolve@npm:^1.1.5, resolve@npm:^1.22.1, resolve@npm:^1.22.8":
- version: 1.22.8
- resolution: "resolve@npm:1.22.8"
+"resolve@npm:^1.1.6, resolve@npm:^1.10.0, resolve@npm:^1.12.0, resolve@npm:^1.14.2, resolve@npm:^1.16.1, resolve@npm:^1.17.0, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.9.0":
+ version: 1.22.6
+ resolution: "resolve@npm:1.22.6"
dependencies:
is-core-module: "npm:^2.13.0"
path-parse: "npm:^1.0.7"
supports-preserve-symlinks-flag: "npm:^1.0.0"
bin:
resolve: bin/resolve
- checksum: 10/c473506ee01eb45cbcfefb68652ae5759e092e6b0fb64547feadf9736a6394f258fbc6f88e00c5ca36d5477fbb65388b272432a3600fa223062e54333c156753
- languageName: node
- linkType: hard
-
-"resolve@patch:resolve@npm%3A1.1.7#optional!builtin":
- version: 1.1.7
- resolution: "resolve@patch:resolve@npm%3A1.1.7#optional!builtin::version=1.1.7&hash=3bafbf"
- checksum: 10/dc5c99fb47807d3771be3135ac6bdb892186973d0895ab17838f0b85bb575e03111214aa16cb68b6416df3c1dd658081a066dd7a9af6e668c28b0025080b615c
+ checksum: 10/b57acf016c94aded442f3c92dda4c4e9370ebe5b337ca2dbada3c022ce7c75cd20d5e31a855f884321c7379d6f2c7e640852024ae83f976e15367a1c4cf14de5
languageName: node
linkType: hard
@@ -32900,38 +30466,29 @@ __metadata:
languageName: node
linkType: hard
-"resolve@patch:resolve@npm%3A1.x#optional!builtin, resolve@patch:resolve@npm%3A^1.1.6#optional!builtin, resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.12.0#optional!builtin, resolve@patch:resolve@npm%3A^1.14.2#optional!builtin, resolve@patch:resolve@npm%3A^1.16.1#optional!builtin, resolve@patch:resolve@npm%3A^1.17.0#optional!builtin, resolve@patch:resolve@npm%3A^1.19.0#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.3.2#optional!builtin, resolve@patch:resolve@npm%3A^1.9.0#optional!builtin":
- version: 1.22.6
- resolution: "resolve@patch:resolve@npm%3A1.22.6#optional!builtin::version=1.22.6&hash=c3c19d"
+"resolve@patch:resolve@npm%3A^1.1.5#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin, resolve@patch:resolve@npm%3A^1.22.8#optional!builtin":
+ version: 1.22.8
+ resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d"
dependencies:
is-core-module: "npm:^2.13.0"
path-parse: "npm:^1.0.7"
supports-preserve-symlinks-flag: "npm:^1.0.0"
bin:
resolve: bin/resolve
- checksum: 10/d63580488eaffef80d16930ed76ffc786d6f51ac02e5821a8fb54a9c7bef4d355472123abdd36fbc0c68704495e09581f0feba75dc4b0b946818f96ece5c3e2a
+ checksum: 10/f345cd37f56a2c0275e3fe062517c650bb673815d885e7507566df589375d165bbbf4bdb6aa95600a9bc55f4744b81f452b5a63f95b9f10a72787dba3c90890a
languageName: node
linkType: hard
-"resolve@patch:resolve@npm%3A^1.1.5#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin, resolve@patch:resolve@npm%3A^1.22.8#optional!builtin":
- version: 1.22.8
- resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d"
+"resolve@patch:resolve@npm%3A^1.1.6#optional!builtin, resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.12.0#optional!builtin, resolve@patch:resolve@npm%3A^1.14.2#optional!builtin, resolve@patch:resolve@npm%3A^1.16.1#optional!builtin, resolve@patch:resolve@npm%3A^1.17.0#optional!builtin, resolve@patch:resolve@npm%3A^1.19.0#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.9.0#optional!builtin":
+ version: 1.22.6
+ resolution: "resolve@patch:resolve@npm%3A1.22.6#optional!builtin::version=1.22.6&hash=c3c19d"
dependencies:
is-core-module: "npm:^2.13.0"
path-parse: "npm:^1.0.7"
supports-preserve-symlinks-flag: "npm:^1.0.0"
bin:
resolve: bin/resolve
- checksum: 10/f345cd37f56a2c0275e3fe062517c650bb673815d885e7507566df589375d165bbbf4bdb6aa95600a9bc55f4744b81f452b5a63f95b9f10a72787dba3c90890a
- languageName: node
- linkType: hard
-
-"responselike@npm:^1.0.2":
- version: 1.0.2
- resolution: "responselike@npm:1.0.2"
- dependencies:
- lowercase-keys: "npm:^1.0.0"
- checksum: 10/2e9e70f1dcca3da621a80ce71f2f9a9cad12c047145c6ece20df22f0743f051cf7c73505e109814915f23f9e34fb0d358e22827723ee3d56b623533cab8eafcd
+ checksum: 10/d63580488eaffef80d16930ed76ffc786d6f51ac02e5821a8fb54a9c7bef4d355472123abdd36fbc0c68704495e09581f0feba75dc4b0b946818f96ece5c3e2a
languageName: node
linkType: hard
@@ -32944,16 +30501,6 @@ __metadata:
languageName: node
linkType: hard
-"restore-cursor@npm:^2.0.0":
- version: 2.0.0
- resolution: "restore-cursor@npm:2.0.0"
- dependencies:
- onetime: "npm:^2.0.0"
- signal-exit: "npm:^3.0.2"
- checksum: 10/482e13d02d834b6e5e3aa90304a8b5e840775d6f06916cc92a50038adf9f098dcc72405b567da8a37e137ae40ad3e31896fa3136ae62f7a426c2fbf53d036536
- languageName: node
- linkType: hard
-
"restore-cursor@npm:^3.1.0":
version: 3.1.0
resolution: "restore-cursor@npm:3.1.0"
@@ -32971,13 +30518,6 @@ __metadata:
languageName: node
linkType: hard
-"ret@npm:~0.1.10":
- version: 0.1.15
- resolution: "ret@npm:0.1.15"
- checksum: 10/07c9e7619b4c86053fa57689bf7606b5a40fc1231fc87682424d0b3e296641cc19c218c3b8a8917305fbcca3bfc43038a5b6a63f54755c1bbca2f91857253b03
- languageName: node
- linkType: hard
-
"retry@npm:^0.10.0":
version: 0.10.1
resolution: "retry@npm:0.10.1"
@@ -33027,7 +30567,7 @@ __metadata:
languageName: node
linkType: hard
-"rimraf@npm:^2.2.8, rimraf@npm:^2.5.2, rimraf@npm:^2.5.4, rimraf@npm:^2.6.1, rimraf@npm:^2.6.2, rimraf@npm:^2.6.3, rimraf@npm:^2.7.1":
+"rimraf@npm:^2.5.2, rimraf@npm:^2.5.4, rimraf@npm:^2.6.2, rimraf@npm:^2.6.3, rimraf@npm:^2.7.1":
version: 2.7.1
resolution: "rimraf@npm:2.7.1"
dependencies:
@@ -33403,20 +30943,6 @@ __metadata:
languageName: node
linkType: hard
-"rsvp@npm:^3.3.3":
- version: 3.6.2
- resolution: "rsvp@npm:3.6.2"
- checksum: 10/ff38536f9a030f70ebdd18df16b521b0e4e6d24b48ef3d115d0d4135af14e1fb31fb13ace62a265e31850feb01497a64dc55cf2364d63595f3ca39a7b0b7b6e6
- languageName: node
- linkType: hard
-
-"run-async@npm:^2.4.0":
- version: 2.4.1
- resolution: "run-async@npm:2.4.1"
- checksum: 10/c79551224dafa26ecc281cb1efad3510c82c79116aaf681f8a931ce70fdf4ca880d58f97d3b930a38992c7aad7955a08e065b32ec194e1dd49d7790c874ece50
- languageName: node
- linkType: hard
-
"run-parallel@npm:^1.1.9":
version: 1.2.0
resolution: "run-parallel@npm:1.2.0"
@@ -33442,31 +30968,13 @@ __metadata:
languageName: node
linkType: hard
-"rw@npm:^1.3.3":
+"rw@npm:1, rw@npm:^1.3.3":
version: 1.3.3
resolution: "rw@npm:1.3.3"
checksum: 10/e90985d64777a00f4ab5f8c0bfea2fb5645c6bda5238840afa339c8a4f86f776e8ce83731155643a7425a0b27ce89077dab27b2f57519996ba4d2fe54cac1941
languageName: node
linkType: hard
-"rxjs@npm:^6.3.3":
- version: 6.6.7
- resolution: "rxjs@npm:6.6.7"
- dependencies:
- tslib: "npm:^1.9.0"
- checksum: 10/c8263ebb20da80dd7a91c452b9e96a178331f402344bbb40bc772b56340fcd48d13d1f545a1e3d8e464893008c5e306cc42a1552afe0d562b1a6d4e1e6262b03
- languageName: node
- linkType: hard
-
-"rxjs@npm:^7.5.5":
- version: 7.8.1
- resolution: "rxjs@npm:7.8.1"
- dependencies:
- tslib: "npm:^2.1.0"
- checksum: 10/b10cac1a5258f885e9dd1b70d23c34daeb21b61222ee735d2ec40a8685bdca40429000703a44f0e638c27a684ac139e1c37e835d2a0dc16f6fc061a138ae3abb
- languageName: node
- linkType: hard
-
"sade@npm:^1.7.3, sade@npm:^1.7.4":
version: 1.8.1
resolution: "sade@npm:1.8.1"
@@ -33520,15 +31028,6 @@ __metadata:
languageName: node
linkType: hard
-"safe-regex@npm:^1.1.0":
- version: 1.1.0
- resolution: "safe-regex@npm:1.1.0"
- dependencies:
- ret: "npm:~0.1.10"
- checksum: 10/5405b5a3effed649e6133d51d45cecbbbb02a1dd8d5b78a5e7979a69035870c817a5d2682d0ebb62188d3a840f7b24ea00ebbad2e418d5afabed151e8db96d04
- languageName: node
- linkType: hard
-
"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0, safer-buffer@npm:^2.0.2, safer-buffer@npm:^2.1.0, safer-buffer@npm:^2.1.2, safer-buffer@npm:~2.1.0":
version: 2.1.2
resolution: "safer-buffer@npm:2.1.2"
@@ -33536,28 +31035,6 @@ __metadata:
languageName: node
linkType: hard
-"sane@npm:^2.0.0":
- version: 2.5.2
- resolution: "sane@npm:2.5.2"
- dependencies:
- anymatch: "npm:^2.0.0"
- capture-exit: "npm:^1.2.0"
- exec-sh: "npm:^0.2.0"
- fb-watchman: "npm:^2.0.0"
- fsevents: "npm:^1.2.3"
- micromatch: "npm:^3.1.4"
- minimist: "npm:^1.1.1"
- walker: "npm:~1.0.5"
- watch: "npm:~0.18.0"
- dependenciesMeta:
- fsevents:
- optional: true
- bin:
- sane: ./src/cli.js
- checksum: 10/be4c3b5abde6c9d2c0f708158f5dc6d97e217b101c0b0403adae661499740ddf5cc667027c9b04dacde5e11a1b51bed5162b3dd04d6e93870ae7fc35b63b0073
- languageName: node
- linkType: hard
-
"sass@npm:^1.32.8, sass@npm:^1.49.0, sass@npm:^1.49.8, sass@npm:^1.50.0":
version: 1.68.0
resolution: "sass@npm:1.68.0"
@@ -33571,7 +31048,7 @@ __metadata:
languageName: node
linkType: hard
-"sax@npm:^1.2.4, sax@npm:~1.2.4":
+"sax@npm:~1.2.4":
version: 1.2.4
resolution: "sax@npm:1.2.4"
checksum: 10/09b79ff6dc09689a24323352117c94593c69db348997b2af0edbd82fa08aba47d778055bf9616b57285bb73d25d790900c044bf631a8f10c8252412e3f3fe5dd
@@ -33692,13 +31169,6 @@ __metadata:
languageName: node
linkType: hard
-"semver-compare@npm:^1.0.0":
- version: 1.0.0
- resolution: "semver-compare@npm:1.0.0"
- checksum: 10/75f9c7a7786d1756f64b1429017746721e07bd7691bdad6368f7643885d3a98a27586777e9699456564f4844b407e9f186cc1d588a3f9c0be71310e517e942c3
- languageName: node
- linkType: hard
-
"semver-diff@npm:^2.0.0":
version: 2.1.0
resolution: "semver-diff@npm:2.1.0"
@@ -33715,14 +31185,7 @@ __metadata:
languageName: node
linkType: hard
-"semver-regex@npm:^3.1.2":
- version: 3.1.4
- resolution: "semver-regex@npm:3.1.4"
- checksum: 10/3962105908e326aa2cd5c851a2f6d4cc7340d1b06560afc35cd5348d9fa5b1cc0ac0cad7e7cef2072bc12b992c5ae654d9e8d355c19d75d4216fced3b6c5d8a7
- languageName: node
- linkType: hard
-
-"semver@npm:2 || 3 || 4 || 5, semver@npm:2.x || 3.x || 4 || 5, semver@npm:^2.3.0 || 3.x || 4 || 5, semver@npm:^5.0.3, semver@npm:^5.1.0, semver@npm:^5.3.0, semver@npm:^5.4.1, semver@npm:^5.5, semver@npm:^5.5.0, semver@npm:^5.5.1, semver@npm:^5.6.0, semver@npm:^5.7.1":
+"semver@npm:2 || 3 || 4 || 5, semver@npm:2.x || 3.x || 4 || 5, semver@npm:^2.3.0 || 3.x || 4 || 5, semver@npm:^5.0.3, semver@npm:^5.1.0, semver@npm:^5.4.1, semver@npm:^5.5.0, semver@npm:^5.5.1, semver@npm:^5.6.0, semver@npm:^5.7.1":
version: 5.7.2
resolution: "semver@npm:5.7.2"
bin:
@@ -33878,18 +31341,6 @@ __metadata:
languageName: node
linkType: hard
-"set-value@npm:^2.0.0, set-value@npm:^2.0.1":
- version: 2.0.1
- resolution: "set-value@npm:2.0.1"
- dependencies:
- extend-shallow: "npm:^2.0.1"
- is-extendable: "npm:^0.1.1"
- is-plain-object: "npm:^2.0.3"
- split-string: "npm:^3.0.1"
- checksum: 10/4f1ccac2e9ad4d1b0851761d41df4bbd3780ed69805f24a80ab237a56d9629760b7b98551cd370931620defe5da329645834e1e9a18574cecad09ce7b2b83296
- languageName: node
- linkType: hard
-
"setimmediate@npm:^1.0.5":
version: 1.0.5
resolution: "setimmediate@npm:1.0.5"
@@ -33948,6 +31399,13 @@ __metadata:
languageName: node
linkType: hard
+"shallowequal@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "shallowequal@npm:1.1.0"
+ checksum: 10/f4c1de0837f106d2dbbfd5d0720a5d059d1c66b42b580965c8f06bb1db684be8783538b684092648c981294bf817869f743a066538771dbecb293df78f765e00
+ languageName: node
+ linkType: hard
+
"shapefile@npm:0.3":
version: 0.3.1
resolution: "shapefile@npm:0.3.1"
@@ -34002,7 +31460,7 @@ __metadata:
languageName: node
linkType: hard
-"shelljs@npm:^0.8.2, shelljs@npm:^0.8.3":
+"shelljs@npm:^0.8.3":
version: 0.8.5
resolution: "shelljs@npm:0.8.5"
dependencies:
@@ -34015,13 +31473,6 @@ __metadata:
languageName: node
linkType: hard
-"shellwords@npm:^0.1.1":
- version: 0.1.1
- resolution: "shellwords@npm:0.1.1"
- checksum: 10/c122808ca53c828747ee69503755a5d35d8c1493e943d15ebfd6fe028517ec1af6f8a4c2dc9d995b0df75bd4246382c0dd2dc792a82ce5a6448307a643fc5a38
- languageName: node
- linkType: hard
-
"short-unique-id@npm:^5.0.2":
version: 5.0.3
resolution: "short-unique-id@npm:5.0.3"
@@ -34098,15 +31549,6 @@ __metadata:
languageName: node
linkType: hard
-"simple-git@npm:^1.85.0":
- version: 1.132.0
- resolution: "simple-git@npm:1.132.0"
- dependencies:
- debug: "npm:^4.0.1"
- checksum: 10/a93bd2bf3cb14841ba471bd9b0fbaf4f2e09f4ce9ec76c24ff3fb10849cdcb74ba283b377f2cd62ef258f0d23d6b4a1fd1ec3ff6bc306104dca05a74e1de2491
- languageName: node
- linkType: hard
-
"simple-swizzle@npm:^0.2.2":
version: 0.2.2
resolution: "simple-swizzle@npm:0.2.2"
@@ -34148,13 +31590,6 @@ __metadata:
languageName: node
linkType: hard
-"sisteransi@npm:^0.1.1":
- version: 0.1.1
- resolution: "sisteransi@npm:0.1.1"
- checksum: 10/7bb2c4e54c43834a91352f12ca65a94c13a8c93cb1139ac62f383056c45cc9e44850cc4e5b6e0a3e3c16cf4ae1d00233917a2bfa6c8a0882210a2187cd21d01c
- languageName: node
- linkType: hard
-
"sisteransi@npm:^1.0.5":
version: 1.0.5
resolution: "sisteransi@npm:1.0.5"
@@ -34162,13 +31597,6 @@ __metadata:
languageName: node
linkType: hard
-"slash@npm:^1.0.0":
- version: 1.0.0
- resolution: "slash@npm:1.0.0"
- checksum: 10/4b6e21b1fba6184a7e2efb1dd173f692d8a845584c1bbf9dc818ff86f5a52fc91b413008223d17cc684604ee8bb9263a420b1182027ad9762e35388434918860
- languageName: node
- linkType: hard
-
"slash@npm:^2.0.0":
version: 2.0.0
resolution: "slash@npm:2.0.0"
@@ -34190,13 +31618,6 @@ __metadata:
languageName: node
linkType: hard
-"slice-ansi@npm:0.0.4":
- version: 0.0.4
- resolution: "slice-ansi@npm:0.0.4"
- checksum: 10/481d969c6aa771b27d7baacd6fe321751a0b9eb410274bda10ca81ea641bbfe747e428025d6d8f15bd635fdcfd57e8b2d54681ee6b0ce0c40f78644b144759e3
- languageName: node
- linkType: hard
-
"slide@npm:^1.1.6, slide@npm:~1.1.3, slide@npm:~1.1.6":
version: 1.1.6
resolution: "slide@npm:1.1.6"
@@ -34221,42 +31642,6 @@ __metadata:
languageName: node
linkType: hard
-"snapdragon-node@npm:^2.0.1":
- version: 2.1.1
- resolution: "snapdragon-node@npm:2.1.1"
- dependencies:
- define-property: "npm:^1.0.0"
- isobject: "npm:^3.0.0"
- snapdragon-util: "npm:^3.0.1"
- checksum: 10/093c3584efc51103d8607d28cb7a3079f7e371b2320a60c685a84a57956cf9693f3dec8b2f77250ba48063cf42cb5261f3970e6d3bb7e68fd727299c991e0bff
- languageName: node
- linkType: hard
-
-"snapdragon-util@npm:^3.0.1":
- version: 3.0.1
- resolution: "snapdragon-util@npm:3.0.1"
- dependencies:
- kind-of: "npm:^3.2.0"
- checksum: 10/b776b15bf683c9ac0243582d7b13f2070f85c9036d73c2ba31da61d1effe22d4a39845b6f43ce7e7ec82c7e686dc47d9c3cffa1a75327bb16505b9afc34f516d
- languageName: node
- linkType: hard
-
-"snapdragon@npm:^0.8.1":
- version: 0.8.2
- resolution: "snapdragon@npm:0.8.2"
- dependencies:
- base: "npm:^0.11.1"
- debug: "npm:^2.2.0"
- define-property: "npm:^0.2.5"
- extend-shallow: "npm:^2.0.1"
- map-cache: "npm:^0.2.2"
- source-map: "npm:^0.5.6"
- source-map-resolve: "npm:^0.5.0"
- use: "npm:^3.1.0"
- checksum: 10/cbe35b25dca5504be0ced90d907948d8efeda0b118d9a032bfc499e22b7f78515832f2706d9c9297c87906eaa51c12bfcaa8ea5a4f3e98ecf1116a73428e344a
- languageName: node
- linkType: hard
-
"sockjs@npm:^0.3.24":
version: 0.3.24
resolution: "sockjs@npm:0.3.24"
@@ -34340,19 +31725,6 @@ __metadata:
languageName: node
linkType: hard
-"source-map-resolve@npm:^0.5.0":
- version: 0.5.3
- resolution: "source-map-resolve@npm:0.5.3"
- dependencies:
- atob: "npm:^2.1.2"
- decode-uri-component: "npm:^0.2.0"
- resolve-url: "npm:^0.2.1"
- source-map-url: "npm:^0.4.0"
- urix: "npm:^0.1.0"
- checksum: 10/98e281cceb86b80c8bd3453110617b9df93132d6a50c7bf5847b5d74b4b5d6e1d4d261db276035b9b7e5ba7f32c2d6a0d2c13d581e37870a0219a524402efcab
- languageName: node
- linkType: hard
-
"source-map-resolve@npm:^0.6.0":
version: 0.6.0
resolution: "source-map-resolve@npm:0.6.0"
@@ -34363,15 +31735,6 @@ __metadata:
languageName: node
linkType: hard
-"source-map-support@npm:^0.4.15":
- version: 0.4.18
- resolution: "source-map-support@npm:0.4.18"
- dependencies:
- source-map: "npm:^0.5.6"
- checksum: 10/673eced6927cd6ae91e52659a26cf0c9bca4cde182e46773198f1bf703cf56ffe21d03fe37a40cdb6ea15dd807e332c7fd9cf86a235491fc401e83ac359f1ce8
- languageName: node
- linkType: hard
-
"source-map-support@npm:^0.5.0, source-map-support@npm:^0.5.16, source-map-support@npm:^0.5.6, source-map-support@npm:~0.5.20":
version: 0.5.21
resolution: "source-map-support@npm:0.5.21"
@@ -34382,14 +31745,7 @@ __metadata:
languageName: node
linkType: hard
-"source-map-url@npm:^0.4.0":
- version: 0.4.1
- resolution: "source-map-url@npm:0.4.1"
- checksum: 10/7fec0460ca017330568e1a4d67c80c397871f27d75b034e1117eaa802076db5cda5944659144d26eafd2a95008ada19296c8e0d5ec116302c32c6daa4e430003
- languageName: node
- linkType: hard
-
-"source-map@npm:^0.5.3, source-map@npm:^0.5.6, source-map@npm:^0.5.7":
+"source-map@npm:^0.5.6, source-map@npm:^0.5.7":
version: 0.5.7
resolution: "source-map@npm:0.5.7"
checksum: 10/9b4ac749ec5b5831cad1f8cc4c19c4298ebc7474b24a0acf293e2f040f03f8eeccb3d01f12aa0f90cf46d555c887e03912b83a042c627f419bda5152d89c5269
@@ -34513,15 +31869,6 @@ __metadata:
languageName: node
linkType: hard
-"split-string@npm:^3.0.1, split-string@npm:^3.0.2":
- version: 3.1.0
- resolution: "split-string@npm:3.1.0"
- dependencies:
- extend-shallow: "npm:^3.0.0"
- checksum: 10/f31f4709d2b14fe4ff46b4fb88b2fb68a1c59b59e573c5417907c182397ddb2cb67903232bdc3a8b9dd3bb660c6f533ff11b5d624aff7b1fe0a213e3e4c75f20
- languageName: node
- linkType: hard
-
"split2@npm:^2.0.0":
version: 2.2.0
resolution: "split2@npm:2.2.0"
@@ -34625,15 +31972,6 @@ __metadata:
languageName: node
linkType: hard
-"stack-utils@npm:^1.0.1":
- version: 1.0.5
- resolution: "stack-utils@npm:1.0.5"
- dependencies:
- escape-string-regexp: "npm:^2.0.0"
- checksum: 10/040a977495e5b38992111b338c5d236d1067297e74b2624a0efccfd614ee60ca1b7f7a416f270336d1627b322fb2ed23b5d3758877a2e26d94f13ded2742432f
- languageName: node
- linkType: hard
-
"stack-utils@npm:^2.0.3":
version: 2.0.6
resolution: "stack-utils@npm:2.0.6"
@@ -34643,15 +31981,6 @@ __metadata:
languageName: node
linkType: hard
-"staged-git-files@npm:1.1.2":
- version: 1.1.2
- resolution: "staged-git-files@npm:1.1.2"
- bin:
- sgf: bin/cli.js
- checksum: 10/077da24435bbadfb06a2d7e53fb8e7f2b437088279854113517d688b3b1d5f515c2c75a78ebcbc167b470112f6f20ceae35fbb754124ae1365216f17215e1953
- languageName: node
- linkType: hard
-
"stampit@npm:^4.3.2":
version: 4.3.2
resolution: "stampit@npm:4.3.2"
@@ -34668,16 +31997,6 @@ __metadata:
languageName: node
linkType: hard
-"static-extend@npm:^0.1.1":
- version: 0.1.2
- resolution: "static-extend@npm:0.1.2"
- dependencies:
- define-property: "npm:^0.2.5"
- object-copy: "npm:^0.1.0"
- checksum: 10/8657485b831f79e388a437260baf22784540417a9b29e11572c87735df24c22b84eda42107403a64b30861b2faf13df9f7fc5525d51f9d1d2303aba5cbf4e12c
- languageName: node
- linkType: hard
-
"static-module@npm:^2.2.0":
version: 2.2.5
resolution: "static-module@npm:2.2.5"
@@ -34714,13 +32033,6 @@ __metadata:
languageName: node
linkType: hard
-"stealthy-require@npm:^1.1.1":
- version: 1.1.1
- resolution: "stealthy-require@npm:1.1.1"
- checksum: 10/a408a51f5b6c1fe535e4459732ac0b66d7921583f89fc8289bfdc937a497fe8196219d1e04d234047349b90723ecff1a1cb4a92bef2315e01a3081dc72db8d41
- languageName: node
- linkType: hard
-
"stop-iteration-iterator@npm:^1.0.0":
version: 1.0.0
resolution: "stop-iteration-iterator@npm:1.0.0"
@@ -34802,6 +32114,13 @@ __metadata:
languageName: node
linkType: hard
+"streamsearch@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "streamsearch@npm:1.1.0"
+ checksum: 10/612c2b2a7dbcc859f74597112f80a42cbe4d448d03da790d5b7b39673c1197dd3789e91cd67210353e58857395d32c1e955a9041c4e6d5bae723436b3ed9ed14
+ languageName: node
+ linkType: hard
+
"strict-uri-encode@npm:^2.0.0":
version: 2.0.0
resolution: "strict-uri-encode@npm:2.0.0"
@@ -34809,13 +32128,6 @@ __metadata:
languageName: node
linkType: hard
-"string-argv@npm:^0.0.2":
- version: 0.0.2
- resolution: "string-argv@npm:0.0.2"
- checksum: 10/35f789c0288e9036a5bcfb1bd04645667f8e938d8e2672f4ad8ce116ce6c4523b100ce0575cfa278e800d814cbb947af59c59609632b76b730ce2d96158cecad
- languageName: node
- linkType: hard
-
"string-hash@npm:^1.1.1":
version: 1.1.3
resolution: "string-hash@npm:1.1.3"
@@ -34823,16 +32135,6 @@ __metadata:
languageName: node
linkType: hard
-"string-length@npm:^2.0.0":
- version: 2.0.0
- resolution: "string-length@npm:2.0.0"
- dependencies:
- astral-regex: "npm:^1.0.0"
- strip-ansi: "npm:^4.0.0"
- checksum: 10/3a339b63fd39d6a1077dfbbe3279545e1b67fa4b0a558906158cf0121632b280f34c8768ec7270fb25db732d6323eceb9c7254f6026509694b6a7533ca8cb89e
- languageName: node
- linkType: hard
-
"string-length@npm:^4.0.1":
version: 4.0.2
resolution: "string-length@npm:4.0.2"
@@ -34993,17 +32295,6 @@ __metadata:
languageName: node
linkType: hard
-"stringify-object@npm:^3.2.2":
- version: 3.3.0
- resolution: "stringify-object@npm:3.3.0"
- dependencies:
- get-own-enumerable-property-symbols: "npm:^3.0.0"
- is-obj: "npm:^1.0.1"
- is-regexp: "npm:^1.0.0"
- checksum: 10/973782f09a3df3f39a2cf07dbf43fb9ba6cb32976f3616cd0f6c10e0a5c5415dd72b7b700e72920e8da2bf57c3001b8e37b5af7174bab9a748ce0416989e19b1
- languageName: node
- linkType: hard
-
"stringify-package@npm:^1.0.0, stringify-package@npm:^1.0.1":
version: 1.0.1
resolution: "stringify-package@npm:1.0.1"
@@ -35065,29 +32356,20 @@ __metadata:
languageName: node
linkType: hard
-"strip-bom@npm:3.0.0, strip-bom@npm:^3.0.0":
+"strip-bom@npm:^3.0.0":
version: 3.0.0
resolution: "strip-bom@npm:3.0.0"
checksum: 10/8d50ff27b7ebe5ecc78f1fe1e00fcdff7af014e73cf724b46fb81ef889eeb1015fc5184b64e81a2efe002180f3ba431bdd77e300da5c6685d702780fbf0c8d5b
languageName: node
linkType: hard
-"strip-bom@npm:4.0.0, strip-bom@npm:^4.0.0":
+"strip-bom@npm:^4.0.0":
version: 4.0.0
resolution: "strip-bom@npm:4.0.0"
checksum: 10/9dbcfbaf503c57c06af15fe2c8176fb1bf3af5ff65003851a102749f875a6dbe0ab3b30115eccf6e805e9d756830d3e40ec508b62b3f1ddf3761a20ebe29d3f3
languageName: node
linkType: hard
-"strip-bom@npm:^2.0.0":
- version: 2.0.0
- resolution: "strip-bom@npm:2.0.0"
- dependencies:
- is-utf8: "npm:^0.2.0"
- checksum: 10/08efb746bc67b10814cd03d79eb31bac633393a782e3f35efbc1b61b5165d3806d03332a97f362822cf0d4dd14ba2e12707fcff44fe1c870c48a063a0c9e4944
- languageName: node
- linkType: hard
-
"strip-eof@npm:^1.0.0":
version: 1.0.0
resolution: "strip-eof@npm:1.0.0"
@@ -35134,7 +32416,7 @@ __metadata:
languageName: node
linkType: hard
-"strip-json-comments@npm:3.1.1, strip-json-comments@npm:^3.0.1, strip-json-comments@npm:^3.1.1":
+"strip-json-comments@npm:^3.0.1, strip-json-comments@npm:^3.1.1":
version: 3.1.1
resolution: "strip-json-comments@npm:3.1.1"
checksum: 10/492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443
@@ -35268,7 +32550,7 @@ __metadata:
languageName: node
linkType: hard
-"supports-color@npm:^3.1.2, supports-color@npm:^3.2.3":
+"supports-color@npm:^3.2.3":
version: 3.2.3
resolution: "supports-color@npm:3.2.3"
dependencies:
@@ -35304,13 +32586,6 @@ __metadata:
languageName: node
linkType: hard
-"supports-color@npm:^9.4.0":
- version: 9.4.0
- resolution: "supports-color@npm:9.4.0"
- checksum: 10/cb8ff8daeaf1db642156f69a9aa545b6c01dd9c4def4f90a49f46cbf24be0c245d392fcf37acd119cd1819b99dad2cc9b7e3260813f64bcfd7f5b18b5a1eefb8
- languageName: node
- linkType: hard
-
"supports-hyperlinks@npm:^1.0.1":
version: 1.0.1
resolution: "supports-hyperlinks@npm:1.0.1"
@@ -35446,27 +32721,13 @@ __metadata:
languageName: node
linkType: hard
-"symbol-observable@npm:^1.1.0":
- version: 1.2.0
- resolution: "symbol-observable@npm:1.2.0"
- checksum: 10/4684327a2fef2453dcd4238b5bd8f69c460a4708fb8c024a824c6a707ca644b2b2a586e36e5197d0d1162ff48e288299a48844a8c46274ffcfd9260e03df7692
- languageName: node
- linkType: hard
-
-"symbol-tree@npm:^3.2.2, symbol-tree@npm:^3.2.4":
+"symbol-tree@npm:^3.2.4":
version: 3.2.4
resolution: "symbol-tree@npm:3.2.4"
checksum: 10/c09a00aadf279d47d0c5c46ca3b6b2fbaeb45f0a184976d599637d412d3a70bbdc043ff33effe1206dea0e36e0ad226cb957112e7ce9a4bf2daedf7fa4f85c53
languageName: node
linkType: hard
-"synchronous-promise@npm:^2.0.6":
- version: 2.0.17
- resolution: "synchronous-promise@npm:2.0.17"
- checksum: 10/dd74b1c05caab8ea34e26c8b52a0966efd70b0229ad39447ce066501dd6931d4d97a3f88b0f306880a699660cd334180a24d9738b385aed0bd0104a5be207ec1
- languageName: node
- linkType: hard
-
"tabbable@npm:1.1.2":
version: 1.1.2
resolution: "tabbable@npm:1.1.2"
@@ -35653,19 +32914,6 @@ __metadata:
languageName: node
linkType: hard
-"test-exclude@npm:^4.2.1":
- version: 4.2.3
- resolution: "test-exclude@npm:4.2.3"
- dependencies:
- arrify: "npm:^1.0.1"
- micromatch: "npm:^2.3.11"
- object-assign: "npm:^4.1.0"
- read-pkg-up: "npm:^1.0.1"
- require-main-filename: "npm:^1.0.1"
- checksum: 10/4093f0e7a5e37b7aba0977ccd790b03ac76e12cdc9130374c1982743105ee3b871f860ad9406f1851aada95fdefc7ae600e2725eae911d855804dc997d427267
- languageName: node
- linkType: hard
-
"test-exclude@npm:^6.0.0":
version: 6.0.0
resolution: "test-exclude@npm:6.0.0"
@@ -35698,13 +32946,6 @@ __metadata:
languageName: node
linkType: hard
-"throat@npm:^4.0.0":
- version: 4.1.0
- resolution: "throat@npm:4.1.0"
- checksum: 10/43519b0cea6d3b2a8fe056fcbc319e289037be67d2204d4d33513d20d6ee9da6255f7ba8c89e2ec8c97b0f188a910b8666def38d1058d2bf4a39613812c36d98
- languageName: node
- linkType: hard
-
"throat@npm:^6.0.1":
version: 6.0.2
resolution: "throat@npm:6.0.2"
@@ -35712,6 +32953,13 @@ __metadata:
languageName: node
linkType: hard
+"throttle-debounce@npm:^2.1.0":
+ version: 2.3.0
+ resolution: "throttle-debounce@npm:2.3.0"
+ checksum: 10/efed4a2d0528ece05d95cb7b4d1e11e501bfd55853746ab6eae02df38ea3220fc1be9746621db46b733edd61a12774684c137f5b40d71728bf0ea553d6a7e693
+ languageName: node
+ linkType: hard
+
"through2@npm:^2.0.0, through2@npm:^2.0.2, through2@npm:^2.0.3, through2@npm:~2.0.0, through2@npm:~2.0.3":
version: 2.0.5
resolution: "through2@npm:2.0.5"
@@ -35731,7 +32979,7 @@ __metadata:
languageName: node
linkType: hard
-"through@npm:2, through@npm:>=2.2.7 <3, through@npm:^2.3.4, through@npm:^2.3.6":
+"through@npm:2, through@npm:>=2.2.7 <3, through@npm:^2.3.4":
version: 2.3.8
resolution: "through@npm:2.3.8"
checksum: 10/5da78346f70139a7d213b65a0106f3c398d6bc5301f9248b5275f420abc2c4b1e77c2abc72d218dedc28c41efb2e7c312cb76a7730d04f9c2d37d247da3f4198
@@ -35834,13 +33082,6 @@ __metadata:
languageName: node
linkType: hard
-"to-fast-properties@npm:^1.0.3":
- version: 1.0.3
- resolution: "to-fast-properties@npm:1.0.3"
- checksum: 10/bd0abb58c4722851df63419de3f6d901d5118f0440d3f71293ed776dd363f2657edaaf2dc470e3f6b7b48eb84aa411193b60db8a4a552adac30de9516c5cc580
- languageName: node
- linkType: hard
-
"to-fast-properties@npm:^2.0.0":
version: 2.0.0
resolution: "to-fast-properties@npm:2.0.0"
@@ -35848,32 +33089,6 @@ __metadata:
languageName: node
linkType: hard
-"to-object-path@npm:^0.3.0":
- version: 0.3.0
- resolution: "to-object-path@npm:0.3.0"
- dependencies:
- kind-of: "npm:^3.0.2"
- checksum: 10/9425effee5b43e61d720940fa2b889623f77473d459c2ce3d4a580a4405df4403eec7be6b857455908070566352f9e2417304641ed158dda6f6a365fe3e66d70
- languageName: node
- linkType: hard
-
-"to-readable-stream@npm:^1.0.0":
- version: 1.0.0
- resolution: "to-readable-stream@npm:1.0.0"
- checksum: 10/a99e23d49777d9d03686f03cc0bbbcb4648d991648990a98bc93b55cf91a2ae830c41b5efa36802f1c00a34bba93bd33b10346772fd3f49bcf1667a99c85f354
- languageName: node
- linkType: hard
-
-"to-regex-range@npm:^2.1.0":
- version: 2.1.1
- resolution: "to-regex-range@npm:2.1.1"
- dependencies:
- is-number: "npm:^3.0.0"
- repeat-string: "npm:^1.6.1"
- checksum: 10/2eed5f897188de8ec8745137f80c0f564810082d506278dd6a80db4ea313b6d363ce8d7dc0e0406beeaba0bb7f90f01b41fa3d08fb72dd02c329b2ec579cd4e8
- languageName: node
- linkType: hard
-
"to-regex-range@npm:^5.0.1":
version: 5.0.1
resolution: "to-regex-range@npm:5.0.1"
@@ -35883,18 +33098,6 @@ __metadata:
languageName: node
linkType: hard
-"to-regex@npm:^3.0.1, to-regex@npm:^3.0.2":
- version: 3.0.2
- resolution: "to-regex@npm:3.0.2"
- dependencies:
- define-property: "npm:^2.0.2"
- extend-shallow: "npm:^3.0.2"
- regex-not: "npm:^1.0.2"
- safe-regex: "npm:^1.1.0"
- checksum: 10/ab87c22f0719f7def00145b53e2c90d2fdcc75efa0fec1227b383aaf88ed409db2542b2b16bcbfbf95fe0727f879045803bb635b777c0306762241ca3e5562c6
- languageName: node
- linkType: hard
-
"tocbot@npm:^4.20.1":
version: 4.25.0
resolution: "tocbot@npm:4.25.0"
@@ -35949,13 +33152,6 @@ __metadata:
languageName: node
linkType: hard
-"toposort@npm:^2.0.2":
- version: 2.0.2
- resolution: "toposort@npm:2.0.2"
- checksum: 10/6f128353e4ed9739e49a28fb756b0a00f3752b29fc9b862ff781446598ee3b486cd229697feebc4eabd916eac5de219f3dae450c585bf13673f6b133a7226e06
- languageName: node
- linkType: hard
-
"totalist@npm:^3.0.0":
version: 3.0.1
resolution: "totalist@npm:3.0.1"
@@ -35963,16 +33159,6 @@ __metadata:
languageName: node
linkType: hard
-"tough-cookie@npm:^2.3.3, tough-cookie@npm:^2.3.4, tough-cookie@npm:~2.5.0":
- version: 2.5.0
- resolution: "tough-cookie@npm:2.5.0"
- dependencies:
- psl: "npm:^1.1.28"
- punycode: "npm:^2.1.1"
- checksum: 10/024cb13a4d1fe9af57f4323dff765dd9b217cc2a69be77e3b8a1ca45600aa33a097b6ad949f225d885e904f4bd3ceccef104741ef202d8378e6ca78e850ff82f
- languageName: node
- linkType: hard
-
"tough-cookie@npm:^4.0.0":
version: 4.1.3
resolution: "tough-cookie@npm:4.1.3"
@@ -35985,12 +33171,13 @@ __metadata:
languageName: node
linkType: hard
-"tr46@npm:^1.0.1":
- version: 1.0.1
- resolution: "tr46@npm:1.0.1"
+"tough-cookie@npm:~2.5.0":
+ version: 2.5.0
+ resolution: "tough-cookie@npm:2.5.0"
dependencies:
- punycode: "npm:^2.1.0"
- checksum: 10/6e80d75480cb6658f7f283c15f5f41c2d4dfa243ca99a0e1baf3de6cc823fc4c829f89782a7a11e029905781fccfea42d08d8a6674ba7948c7dbc595b6f27dd3
+ psl: "npm:^1.1.28"
+ punycode: "npm:^2.1.1"
+ checksum: 10/024cb13a4d1fe9af57f4323dff765dd9b217cc2a69be77e3b8a1ca45600aa33a097b6ad949f225d885e904f4bd3ceccef104741ef202d8378e6ca78e850ff82f
languageName: node
linkType: hard
@@ -36027,28 +33214,6 @@ __metadata:
languageName: node
linkType: hard
-"travis-deploy-once@npm:^5.0.9":
- version: 5.0.11
- resolution: "travis-deploy-once@npm:5.0.11"
- dependencies:
- "@babel/core": "npm:^7.0.0"
- "@babel/polyfill": "npm:^7.0.0"
- "@babel/preset-env": "npm:^7.0.0"
- "@babel/register": "npm:^7.0.0"
- chalk: "npm:^2.1.0"
- execa: "npm:^1.0.0"
- got: "npm:^9.1.0"
- p-retry: "npm:^3.0.0"
- semver: "npm:^5.4.1"
- update-notifier: "npm:^2.3.0"
- url-join: "npm:^4.0.0"
- yargs: "npm:^12.0.1"
- bin:
- travis-deploy-once: bin/travis-deploy-once.js
- checksum: 10/71141db2295d92c26314b92ce4c57897bd869d1f081f6dbc6e8081cf4f7b59b5642cc54f352cafcfb78ec9e3318840fc8742b874d2658889a84d4d81d22ca93d
- languageName: node
- linkType: hard
-
"tree-sitter-json@npm:=0.20.2":
version: 0.20.2
resolution: "tree-sitter-json@npm:0.20.2"
@@ -36115,13 +33280,6 @@ __metadata:
languageName: node
linkType: hard
-"trim-right@npm:^1.0.1":
- version: 1.0.1
- resolution: "trim-right@npm:1.0.1"
- checksum: 10/9120af534e006a7424a4f9358710e6e707887b6ccf7ea69e50d6ac6464db1fe22268400def01752f09769025d480395159778153fb98d4a2f6f40d4cf5d4f3b6
- languageName: node
- linkType: hard
-
"trough@npm:^2.0.0":
version: 2.1.0
resolution: "trough@npm:2.1.0"
@@ -36145,27 +33303,6 @@ __metadata:
languageName: node
linkType: hard
-"ts-jest@npm:^23.10.2":
- version: 23.10.5
- resolution: "ts-jest@npm:23.10.5"
- dependencies:
- bs-logger: "npm:0.x"
- buffer-from: "npm:1.x"
- fast-json-stable-stringify: "npm:2.x"
- json5: "npm:2.x"
- make-error: "npm:1.x"
- mkdirp: "npm:0.x"
- resolve: "npm:1.x"
- semver: "npm:^5.5"
- yargs-parser: "npm:10.x"
- peerDependencies:
- jest: ">=22 <24"
- bin:
- ts-jest: cli.js
- checksum: 10/b13bfb5725b16d82119122d0ee874e666a7c481eca40a09672826185c690a42c8222ae3c49246f9dd8e37ab5d6bca6494573feffad957d7a9818771120dbad59
- languageName: node
- linkType: hard
-
"ts-mixer@npm:^6.0.3":
version: 6.0.4
resolution: "ts-mixer@npm:6.0.4"
@@ -36173,7 +33310,7 @@ __metadata:
languageName: node
linkType: hard
-"ts-node@npm:^10.7.0, ts-node@npm:^10.8.1":
+"ts-node@npm:^10.7.0":
version: 10.9.1
resolution: "ts-node@npm:10.9.1"
dependencies:
@@ -36211,24 +33348,6 @@ __metadata:
languageName: node
linkType: hard
-"ts-node@npm:^7.0.1":
- version: 7.0.1
- resolution: "ts-node@npm:7.0.1"
- dependencies:
- arrify: "npm:^1.0.0"
- buffer-from: "npm:^1.1.0"
- diff: "npm:^3.1.0"
- make-error: "npm:^1.1.1"
- minimist: "npm:^1.2.0"
- mkdirp: "npm:^0.5.1"
- source-map-support: "npm:^0.5.6"
- yn: "npm:^2.0.0"
- bin:
- ts-node: dist/bin.js
- checksum: 10/c1e0f1582867c34a03a25b1861e86922b9576931d473d48cd13275400832972350c4564e5f2c2df5817be6acbbb8e1dedf43bdd6f8c0f06b15d3530562a08a90
- languageName: node
- linkType: hard
-
"ts-toolbelt@npm:^9.6.0":
version: 9.6.0
resolution: "ts-toolbelt@npm:9.6.0"
@@ -36247,13 +33366,6 @@ __metadata:
languageName: node
linkType: hard
-"tslib@npm:1.9.0":
- version: 1.9.0
- resolution: "tslib@npm:1.9.0"
- checksum: 10/3fb8dc249b5db6ff16289c1d6bf238996ff25b01c5f56db6559352ff17854d29a755d3cb4769074bf9be55dd0960aaacdf6650e07bcb6775d98b965a6c304792
- languageName: node
- linkType: hard
-
"tslib@npm:2.0.1":
version: 2.0.1
resolution: "tslib@npm:2.0.1"
@@ -36261,7 +33373,7 @@ __metadata:
languageName: node
linkType: hard
-"tslib@npm:^1.13.0, tslib@npm:^1.8.0, tslib@npm:^1.8.1, tslib@npm:^1.9.0":
+"tslib@npm:^1.13.0":
version: 1.14.1
resolution: "tslib@npm:1.14.1"
checksum: 10/7dbf34e6f55c6492637adb81b555af5e3b4f9cc6b998fb440dac82d3b42bdc91560a35a5fb75e20e24a076c651438234da6743d139e4feabf0783f3cdfe1dddb
@@ -36275,82 +33387,19 @@ __metadata:
languageName: node
linkType: hard
-"tslint-config-prettier@npm:^1.15.0":
- version: 1.18.0
- resolution: "tslint-config-prettier@npm:1.18.0"
- bin:
- tslint-config-prettier-check: bin/check.js
- checksum: 10/f0c548a7a520f9247f8e4ddba1136f300d1b2ec48a8255b030c05e35866cc22c105d9120540dd5ee82e2a04a769d82f5d098b7eaf6928820f6dba1badad6704c
- languageName: node
- linkType: hard
-
-"tslint-config-standard@npm:^8.0.1":
- version: 8.0.1
- resolution: "tslint-config-standard@npm:8.0.1"
- dependencies:
- tslint-eslint-rules: "npm:^5.3.1"
- checksum: 10/38ccb6a85866cb92742750e687a87fbc100c9310909d1fad48cb915b219519787bc61b62867b3e313020e5ac1ff06849f38790eefca10a524bf2ad27afc14af5
- languageName: node
- linkType: hard
-
-"tslint-eslint-rules@npm:^5.3.1":
- version: 5.4.0
- resolution: "tslint-eslint-rules@npm:5.4.0"
+"tsx@npm:^4.11.2":
+ version: 4.11.2
+ resolution: "tsx@npm:4.11.2"
dependencies:
- doctrine: "npm:0.7.2"
- tslib: "npm:1.9.0"
- tsutils: "npm:^3.0.0"
- peerDependencies:
- tslint: ^5.0.0
- typescript: ^2.2.0 || ^3.0.0
- checksum: 10/603cb951c71a54a694cbb46c680bfd7ae734eb02263567fb6b88b8b9ad8d56b07be473d031d379bfaa41e4a2abbb77dfd836d55899892a7dd967969175cc9756
- languageName: node
- linkType: hard
-
-"tslint@npm:^5.11.0":
- version: 5.20.1
- resolution: "tslint@npm:5.20.1"
- dependencies:
- "@babel/code-frame": "npm:^7.0.0"
- builtin-modules: "npm:^1.1.1"
- chalk: "npm:^2.3.0"
- commander: "npm:^2.12.1"
- diff: "npm:^4.0.1"
- glob: "npm:^7.1.1"
- js-yaml: "npm:^3.13.1"
- minimatch: "npm:^3.0.4"
- mkdirp: "npm:^0.5.1"
- resolve: "npm:^1.3.2"
- semver: "npm:^5.3.0"
- tslib: "npm:^1.8.0"
- tsutils: "npm:^2.29.0"
- peerDependencies:
- typescript: ">=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev"
+ esbuild: "npm:~0.20.2"
+ fsevents: "npm:~2.3.3"
+ get-tsconfig: "npm:^4.7.5"
+ dependenciesMeta:
+ fsevents:
+ optional: true
bin:
- tslint: ./bin/tslint
- checksum: 10/9cfcec0330beeb99ab67b5c6ec40fd182973841a1ebbc6a0ea266d7203efda4db9c615e433282ce6fcd0b8d2a5f1836a821d25a39c5f24f835bfc2a37908543f
- languageName: node
- linkType: hard
-
-"tsutils@npm:^2.29.0":
- version: 2.29.0
- resolution: "tsutils@npm:2.29.0"
- dependencies:
- tslib: "npm:^1.8.1"
- peerDependencies:
- typescript: ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev"
- checksum: 10/9724fee9a21c399e5914f50d888467f6d116f2e466ba77d294de0437ee7bb4a60e0c919a36518845af8c6fa0aabf6b72a4a01d4464db16fa719ff4e0dd45cb82
- languageName: node
- linkType: hard
-
-"tsutils@npm:^3.0.0":
- version: 3.21.0
- resolution: "tsutils@npm:3.21.0"
- dependencies:
- tslib: "npm:^1.8.1"
- peerDependencies:
- typescript: ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
- checksum: 10/ea036bec1dd024e309939ffd49fda7a351c0e87a1b8eb049570dd119d447250e2c56e0e6c00554e8205760e7417793fdebff752a46e573fbe07d4f375502a5b2
+ tsx: dist/cli.mjs
+ checksum: 10/2026b1f007ed7a2b45363ff260211351bdfa3cdb2c71975ed4e4a274918f5a3a6343b4e4ecd558a8eaebe707d242f8d5fdc7b60537272279dc59f2812d86dbdb
languageName: node
linkType: hard
@@ -36622,40 +33671,6 @@ __metadata:
languageName: node
linkType: hard
-"typedoc-default-themes@npm:^0.5.0":
- version: 0.5.0
- resolution: "typedoc-default-themes@npm:0.5.0"
- checksum: 10/575dfe4dab775484bfeeb32e1827c4ae5e4f0bc1f5522657f128d3e05ad0c188dbb2f4a8ec7427effedc5bd454f4aeec3336479b249e14de32e5b36bf7d7b7fb
- languageName: node
- linkType: hard
-
-"typedoc@npm:^0.12.0":
- version: 0.12.0
- resolution: "typedoc@npm:0.12.0"
- dependencies:
- "@types/fs-extra": "npm:^5.0.3"
- "@types/handlebars": "npm:^4.0.38"
- "@types/highlight.js": "npm:^9.12.3"
- "@types/lodash": "npm:^4.14.110"
- "@types/marked": "npm:^0.4.0"
- "@types/minimatch": "npm:3.0.3"
- "@types/shelljs": "npm:^0.8.0"
- fs-extra: "npm:^7.0.0"
- handlebars: "npm:^4.0.6"
- highlight.js: "npm:^9.0.0"
- lodash: "npm:^4.17.10"
- marked: "npm:^0.4.0"
- minimatch: "npm:^3.0.0"
- progress: "npm:^2.0.0"
- shelljs: "npm:^0.8.2"
- typedoc-default-themes: "npm:^0.5.0"
- typescript: "npm:3.0.x"
- bin:
- typedoc: bin/typedoc
- checksum: 10/05844776e1b148fc5b9bde16f13d6bd03bfd16f8f4985d8a9e79d7c67700ccad48524484f36adcdf520a9071cfe292ceb67721d4717ebfa4e37f6041fad9d731
- languageName: node
- linkType: hard
-
"types-ramda@npm:^0.29.9":
version: 0.29.9
resolution: "types-ramda@npm:0.29.9"
@@ -36665,26 +33680,6 @@ __metadata:
languageName: node
linkType: hard
-"typescript@npm:3.0.x":
- version: 3.0.3
- resolution: "typescript@npm:3.0.3"
- bin:
- tsc: ./bin/tsc
- tsserver: ./bin/tsserver
- checksum: 10/24e0eebc236f47e03094df146e86e40e1aa9de98c46fac9d9ff04006762d3d1887fb608c8e2349084139224d181fcd263fcf63b7aaa9ff1c18547eec70010ddf
- languageName: node
- linkType: hard
-
-"typescript@npm:^3.8.3":
- version: 3.9.10
- resolution: "typescript@npm:3.9.10"
- bin:
- tsc: bin/tsc
- tsserver: bin/tsserver
- checksum: 10/f86a085eea24fdd665850c6be4dd69c7a71fe3d27ecc712be88cdc7a52d866f4f2416ad91c554df60f499dedcf288a24b3d8052e502833d8acc661a9d21bb98f
- languageName: node
- linkType: hard
-
"typescript@npm:^4.0.2, typescript@npm:^4.1.3, typescript@npm:^4.2.3, typescript@npm:^4.4.4, typescript@npm:^4.5.5":
version: 4.9.5
resolution: "typescript@npm:4.9.5"
@@ -36705,7 +33700,7 @@ __metadata:
languageName: node
linkType: hard
-"typescript@npm:^4.6.4 || ^5.0.0, typescript@npm:^5, typescript@npm:^5.0.0, typescript@npm:^5.1.6":
+"typescript@npm:^5, typescript@npm:^5.0.0, typescript@npm:^5.1.6":
version: 5.2.2
resolution: "typescript@npm:5.2.2"
bin:
@@ -36715,26 +33710,6 @@ __metadata:
languageName: node
linkType: hard
-"typescript@patch:typescript@npm%3A3.0.x#optional!builtin":
- version: 3.0.3
- resolution: "typescript@patch:typescript@npm%3A3.0.3#optional!builtin::version=3.0.3&hash=3bafbf"
- bin:
- tsc: ./bin/tsc
- tsserver: ./bin/tsserver
- checksum: 10/d70fd6871f62154e62e8f7e3728fa6d4f7ca63bbe217f6d342a4150a7dbcbcba4bc4c60ddfc450d2119d3de8ea8dc171011ab6331ac2ef528bf83cf5025f69e4
- languageName: node
- linkType: hard
-
-"typescript@patch:typescript@npm%3A^3.8.3#optional!builtin":
- version: 3.9.10
- resolution: "typescript@patch:typescript@npm%3A3.9.10#optional!builtin::version=3.9.10&hash=3bd3d3"
- bin:
- tsc: bin/tsc
- tsserver: bin/tsserver
- checksum: 10/77024c200e1f80d95185d5a973bcc4b0ecc12a77851390b1382e372195313769373a4b8b1642df4a8d4ae1df5911dcd9bde111cf6755eb4b6091f374e97c6dc5
- languageName: node
- linkType: hard
-
"typescript@patch:typescript@npm%3A^4.0.2#optional!builtin, typescript@patch:typescript@npm%3A^4.1.3#optional!builtin, typescript@patch:typescript@npm%3A^4.2.3#optional!builtin, typescript@patch:typescript@npm%3A^4.4.4#optional!builtin, typescript@patch:typescript@npm%3A^4.5.5#optional!builtin":
version: 4.9.5
resolution: "typescript@patch:typescript@npm%3A4.9.5#optional!builtin::version=4.9.5&hash=289587"
@@ -36755,7 +33730,7 @@ __metadata:
languageName: node
linkType: hard
-"typescript@patch:typescript@npm%3A^4.6.4 || ^5.0.0#optional!builtin, typescript@patch:typescript@npm%3A^5#optional!builtin, typescript@patch:typescript@npm%3A^5.0.0#optional!builtin, typescript@patch:typescript@npm%3A^5.1.6#optional!builtin":
+"typescript@patch:typescript@npm%3A^5#optional!builtin, typescript@patch:typescript@npm%3A^5.0.0#optional!builtin, typescript@patch:typescript@npm%3A^5.1.6#optional!builtin":
version: 5.2.2
resolution: "typescript@patch:typescript@npm%3A5.2.2#optional!builtin::version=5.2.2&hash=f3b441"
bin:
@@ -36921,18 +33896,6 @@ __metadata:
languageName: node
linkType: hard
-"union-value@npm:^1.0.0":
- version: 1.0.1
- resolution: "union-value@npm:1.0.1"
- dependencies:
- arr-union: "npm:^3.1.0"
- get-value: "npm:^2.0.6"
- is-extendable: "npm:^0.1.1"
- set-value: "npm:^2.0.1"
- checksum: 10/a3464097d3f27f6aa90cf103ed9387541bccfc006517559381a10e0dffa62f465a9d9a09c9b9c3d26d0f4cbe61d4d010e2fbd710fd4bf1267a768ba8a774b0ba
- languageName: node
- linkType: hard
-
"uniq@npm:^1.0.0, uniq@npm:^1.0.1":
version: 1.0.1
resolution: "uniq@npm:1.0.1"
@@ -37187,16 +34150,6 @@ __metadata:
languageName: node
linkType: hard
-"unset-value@npm:^1.0.0":
- version: 1.0.0
- resolution: "unset-value@npm:1.0.0"
- dependencies:
- has-value: "npm:^0.3.1"
- isobject: "npm:^3.0.0"
- checksum: 10/0ca644870613dece963e4abb762b0da4c1cf6be4ac2f0859a463e4e9520c1ec85e512cfbfd73371ee0bb09ef536a0c4abd6f2c357715a08b43448aedc82acee6
- languageName: node
- linkType: hard
-
"untildify@npm:^4.0.0":
version: 4.0.0
resolution: "untildify@npm:4.0.0"
@@ -37277,14 +34230,7 @@ __metadata:
languageName: node
linkType: hard
-"urix@npm:^0.1.0":
- version: 0.1.0
- resolution: "urix@npm:0.1.0"
- checksum: 10/ebf5df5491c1d40ea88f7529ee9d8fd6501f44c47b8017d168fd1558d40f7d613c6f39869643344e58b71ba2da357a7c26f353a2a54d416492fcdca81f05b338
- languageName: node
- linkType: hard
-
-"url-join@npm:^4.0.0":
+"url-join@npm:^4.0.0, url-join@npm:^4.0.1":
version: 4.0.1
resolution: "url-join@npm:4.0.1"
checksum: 10/b53b256a9a36ed6b0f6768101e78ca97f32d7b935283fd29ce19d0bbfb6f88aa80aa6c03fd87f2f8978ab463a6539f597a63051e7086f3379685319a7495f709
@@ -37300,15 +34246,6 @@ __metadata:
languageName: node
linkType: hard
-"url-parse-lax@npm:^3.0.0":
- version: 3.0.0
- resolution: "url-parse-lax@npm:3.0.0"
- dependencies:
- prepend-http: "npm:^2.0.0"
- checksum: 10/1040e357750451173132228036aff1fd04abbd43eac1fb3e4fca7495a078bcb8d33cb765fe71ad7e473d9c94d98fd67adca63bd2716c815a2da066198dd37217
- languageName: node
- linkType: hard
-
"url-parse@npm:^1.5.10, url-parse@npm:^1.5.3":
version: 1.5.10
resolution: "url-parse@npm:1.5.10"
@@ -37319,6 +34256,13 @@ __metadata:
languageName: node
linkType: hard
+"urlpattern-polyfill@npm:^10.0.0":
+ version: 10.0.0
+ resolution: "urlpattern-polyfill@npm:10.0.0"
+ checksum: 10/346819dbe718e929988298d02a988b8ddfa601d08daaa7e69b1148eab699c86c0f0f933d68d8c8cf913166fe64156ed28904e673200d18ef7e9ed6b58cea3fc7
+ languageName: node
+ linkType: hard
+
"use-async-effect@npm:^2.2.1":
version: 2.2.7
resolution: "use-async-effect@npm:2.2.7"
@@ -37453,13 +34397,6 @@ __metadata:
languageName: node
linkType: hard
-"use@npm:^3.1.0":
- version: 3.1.1
- resolution: "use@npm:3.1.1"
- checksum: 10/08a130289f5238fcbf8f59a18951286a6e660d17acccc9d58d9b69dfa0ee19aa038e8f95721b00b432c36d1629a9e32a464bf2e7e0ae6a244c42ddb30bdd8b33
- languageName: node
- linkType: hard
-
"util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2, util-deprecate@npm:~1.0.1":
version: 1.0.2
resolution: "util-deprecate@npm:1.0.2"
@@ -37483,21 +34420,6 @@ __metadata:
languageName: node
linkType: hard
-"util.promisify@npm:^1.0.0":
- version: 1.1.2
- resolution: "util.promisify@npm:1.1.2"
- dependencies:
- call-bind: "npm:^1.0.2"
- define-properties: "npm:^1.2.0"
- for-each: "npm:^0.3.3"
- has-proto: "npm:^1.0.1"
- has-symbols: "npm:^1.0.3"
- object.getownpropertydescriptors: "npm:^2.1.6"
- safe-array-concat: "npm:^1.0.0"
- checksum: 10/90c139773aedfe0cda48f2e43fb96bb0b45ab1d9544ed0cc1949d6acda17053dcb60ed1d3d0a1e121f0e2c26ca21e84dc589a5f06ec33059a4c742e7cba4584f
- languageName: node
- linkType: hard
-
"util.promisify@npm:~1.0.0":
version: 1.0.1
resolution: "util.promisify@npm:1.0.1"
@@ -37685,29 +34607,29 @@ __metadata:
languageName: node
linkType: hard
-"vike-react@npm:^0.4.2":
- version: 0.4.2
- resolution: "vike-react@npm:0.4.2"
+"vike-react@npm:^0.4.11":
+ version: 0.4.11
+ resolution: "vike-react@npm:0.4.11"
dependencies:
- react-streaming: "npm:^0.3.19"
+ react-streaming: "npm:^0.3.27"
peerDependencies:
react: 18.x.x
react-dom: 18.x.x
- vike: ^0.4.159
+ vike: ^0.4.160
vite: ^4.3.8 || ^5.0.10
- checksum: 10/488e74b2cce2ddb38031fa172386d8d0795048271c432861fa5a45d04e673ef6bafa9047be971256cc70bf969e9ac961a44a45b3454148ccef140f90727a2e03
+ checksum: 10/38f08f58f884264aa15b8f63df815d374da3a9307ad7a55579de258bdf7657567214eb8b2ccdf11ac24f4e48b88feaa05d5122941b4a0f6ce8cbdeb9c15df7f6
languageName: node
linkType: hard
-"vike@npm:^0.4.159":
- version: 0.4.159
- resolution: "vike@npm:0.4.159"
+"vike@npm:^0.4.172":
+ version: 0.4.172
+ resolution: "vike@npm:0.4.172"
dependencies:
"@brillout/import": "npm:^0.2.3"
- "@brillout/json-serializer": "npm:^0.5.8"
+ "@brillout/json-serializer": "npm:^0.5.10"
"@brillout/picocolors": "npm:^1.0.10"
"@brillout/require-shim": "npm:^0.1.2"
- "@brillout/vite-plugin-server-entry": "npm:^0.4.3"
+ "@brillout/vite-plugin-server-entry": "npm:^0.4.5"
acorn: "npm:^8.0.0"
cac: "npm:^6.0.0"
es-module-lexer: "npm:^1.0.0"
@@ -37717,13 +34639,13 @@ __metadata:
source-map-support: "npm:^0.5.0"
peerDependencies:
react-streaming: ">=0.3.5"
- vite: ">=3.1.0"
+ vite: ">=4.4.0"
peerDependenciesMeta:
react-streaming:
optional: true
bin:
vike: node/cli/bin-entry.js
- checksum: 10/8daf1447e04d50ec7f6eae55cda0016c84da0b0d55814cef0ed6925e9d1a0d1f56e755c4d9777ac0d2f7202b38c36b47b92315d65e3b33277c7619d36c3f47c7
+ checksum: 10/5a1adb43af3ed953318b14ada19b50ad65d674de474b49dcf1e2ae6d7ed6c23ac5a095c82dfab4bd40c42e629c9943ecd6e53d1e933f99ff2c26a11a8a5f3ab5
languageName: node
linkType: hard
@@ -37872,6 +34794,46 @@ __metadata:
languageName: node
linkType: hard
+"vite@npm:^5.2.11":
+ version: 5.2.12
+ resolution: "vite@npm:5.2.12"
+ dependencies:
+ esbuild: "npm:^0.20.1"
+ fsevents: "npm:~2.3.3"
+ postcss: "npm:^8.4.38"
+ rollup: "npm:^4.13.0"
+ peerDependencies:
+ "@types/node": ^18.0.0 || >=20.0.0
+ less: "*"
+ lightningcss: ^1.21.0
+ sass: "*"
+ stylus: "*"
+ sugarss: "*"
+ terser: ^5.4.0
+ dependenciesMeta:
+ fsevents:
+ optional: true
+ peerDependenciesMeta:
+ "@types/node":
+ optional: true
+ less:
+ optional: true
+ lightningcss:
+ optional: true
+ sass:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+ bin:
+ vite: bin/vite.js
+ checksum: 10/c27d3efff93016e8171b6a362f605ad5f78e24086292987097ad4a7382ae78d9e0659065976a13bf7b51ba0f593d675579010692097ef36d8a5cc965f3efec4c
+ languageName: node
+ linkType: hard
+
"vlq@npm:^0.2.2":
version: 0.2.3
resolution: "vlq@npm:0.2.3"
@@ -37890,7 +34852,7 @@ __metadata:
languageName: node
linkType: hard
-"w3c-hr-time@npm:^1.0.1, w3c-hr-time@npm:^1.0.2":
+"w3c-hr-time@npm:^1.0.2":
version: 1.0.2
resolution: "w3c-hr-time@npm:1.0.2"
dependencies:
@@ -37908,7 +34870,7 @@ __metadata:
languageName: node
linkType: hard
-"walker@npm:^1.0.7, walker@npm:~1.0.5":
+"walker@npm:^1.0.7":
version: 1.0.8
resolution: "walker@npm:1.0.8"
dependencies:
@@ -37926,18 +34888,6 @@ __metadata:
languageName: node
linkType: hard
-"watch@npm:~0.18.0":
- version: 0.18.0
- resolution: "watch@npm:0.18.0"
- dependencies:
- exec-sh: "npm:^0.2.0"
- minimist: "npm:^1.2.0"
- bin:
- watch: ./cli.js
- checksum: 10/459f10b6d57d836f9ab6cf5f6cd9af13fc196e29edd9c96d718a218a6120fc8975fe0ed7af95ffbc9be7a1f84f321c655acb37771b717f0a2cddc55d3cd558fc
- languageName: node
- linkType: hard
-
"watchpack@npm:^2.2.0, watchpack@npm:^2.4.0":
version: 2.4.0
resolution: "watchpack@npm:2.4.0"
@@ -38001,13 +34951,6 @@ __metadata:
languageName: node
linkType: hard
-"webidl-conversions@npm:^4.0.2":
- version: 4.0.2
- resolution: "webidl-conversions@npm:4.0.2"
- checksum: 10/594187c36f2d7898f89c0ed3b9248a095fa549ecc1befb10a97bc884b5680dc96677f58df5579334d8e0d1018e5ef075689cfa2a6c459f45a61a9deb512cb59e
- languageName: node
- linkType: hard
-
"webidl-conversions@npm:^5.0.0":
version: 5.0.0
resolution: "webidl-conversions@npm:5.0.0"
@@ -38240,7 +35183,7 @@ __metadata:
languageName: node
linkType: hard
-"whatwg-encoding@npm:^1.0.1, whatwg-encoding@npm:^1.0.3, whatwg-encoding@npm:^1.0.5":
+"whatwg-encoding@npm:^1.0.5":
version: 1.0.5
resolution: "whatwg-encoding@npm:1.0.5"
dependencies:
@@ -38256,7 +35199,7 @@ __metadata:
languageName: node
linkType: hard
-"whatwg-mimetype@npm:^2.1.0, whatwg-mimetype@npm:^2.2.0, whatwg-mimetype@npm:^2.3.0":
+"whatwg-mimetype@npm:^2.3.0":
version: 2.3.0
resolution: "whatwg-mimetype@npm:2.3.0"
checksum: 10/3582c1d74d708716013433bbab45cb9b31ef52d276adfbe2205d948be1ec9bb1a4ac05ce6d9045f3acc4104489e1344c857b14700002385a4b997a5673ff6416
@@ -38273,28 +35216,6 @@ __metadata:
languageName: node
linkType: hard
-"whatwg-url@npm:^6.4.1":
- version: 6.5.0
- resolution: "whatwg-url@npm:6.5.0"
- dependencies:
- lodash.sortby: "npm:^4.7.0"
- tr46: "npm:^1.0.1"
- webidl-conversions: "npm:^4.0.2"
- checksum: 10/fbe8e9d81f8f07343f60bc135962ff346d7d19efc9e2f842f54b5c525837dcf1a36d13be21902311a2922b6342799dd82454e552b4e460d74451794f187ba0a5
- languageName: node
- linkType: hard
-
-"whatwg-url@npm:^7.0.0":
- version: 7.1.0
- resolution: "whatwg-url@npm:7.1.0"
- dependencies:
- lodash.sortby: "npm:^4.7.0"
- tr46: "npm:^1.0.1"
- webidl-conversions: "npm:^4.0.2"
- checksum: 10/769fd35838b4e50536ae08d836472e86adbedda1d5493ea34353c55468147e7868b91d2535b59e01a9e7331ab7e4cdfdf5490c279c045da23c327cf33e32f755
- languageName: node
- linkType: hard
-
"whatwg-url@npm:^8.0.0, whatwg-url@npm:^8.5.0":
version: 8.7.0
resolution: "whatwg-url@npm:8.7.0"
@@ -38338,13 +35259,6 @@ __metadata:
languageName: node
linkType: hard
-"which-pm-runs@npm:^1.0.0":
- version: 1.1.0
- resolution: "which-pm-runs@npm:1.1.0"
- checksum: 10/39a56ee50886fb33ec710e3b36dc9fe3d0096cac44850d9ca0c6186c4cb824d6c8125f013e0562e7c94744e1e8e4a6ab695592cdb12555777c7a4368143d822c
- languageName: node
- linkType: hard
-
"which-typed-array@npm:^1.1.11, which-typed-array@npm:^1.1.2, which-typed-array@npm:^1.1.9":
version: 1.1.11
resolution: "which-typed-array@npm:1.1.11"
@@ -38358,7 +35272,7 @@ __metadata:
languageName: node
linkType: hard
-"which@npm:^1.2.10, which@npm:^1.2.12, which@npm:^1.2.14, which@npm:^1.2.9, which@npm:^1.3.0, which@npm:^1.3.1":
+"which@npm:^1.2.9, which@npm:^1.3.0, which@npm:^1.3.1":
version: 1.3.1
resolution: "which@npm:1.3.1"
dependencies:
@@ -38428,7 +35342,7 @@ __metadata:
languageName: node
linkType: hard
-"word-wrap@npm:^1.0.3, word-wrap@npm:~1.2.3":
+"word-wrap@npm:~1.2.3":
version: 1.2.5
resolution: "word-wrap@npm:1.2.5"
checksum: 10/1ec6f6089f205f83037be10d0c4b34c9183b0b63fca0834a5b3cee55dd321429d73d40bb44c8fc8471b5203d6e8f8275717f49a8ff4b2b0ab41d7e1b563e0854
@@ -38469,26 +35383,6 @@ __metadata:
languageName: node
linkType: hard
-"wrap-ansi@npm:^2.0.0":
- version: 2.1.0
- resolution: "wrap-ansi@npm:2.1.0"
- dependencies:
- string-width: "npm:^1.0.1"
- strip-ansi: "npm:^3.0.1"
- checksum: 10/cf66d33f62f2edf0aac52685da98194e47ddf4ceb81d9f98f294b46ffbbf8662caa72a905b343aeab8d6a16cade982be5fc45df99235b07f781ebf68f051ca98
- languageName: node
- linkType: hard
-
-"wrap-ansi@npm:^3.0.1":
- version: 3.0.1
- resolution: "wrap-ansi@npm:3.0.1"
- dependencies:
- string-width: "npm:^2.1.1"
- strip-ansi: "npm:^4.0.0"
- checksum: 10/bdd4248faa2142051ed5802c216076b25ada29778100483bb6f16a52a115bf7cb7e595bdbe9f1ed551dcd4822f3e2ece80c9febedc2b65acb2cc649705d47bc2
- languageName: node
- linkType: hard
-
"wrap-ansi@npm:^5.1.0":
version: 5.1.0
resolution: "wrap-ansi@npm:5.1.0"
@@ -38529,7 +35423,7 @@ __metadata:
languageName: node
linkType: hard
-"write-file-atomic@npm:^2.0.0, write-file-atomic@npm:^2.1.0, write-file-atomic@npm:^2.3.0, write-file-atomic@npm:^2.4.3":
+"write-file-atomic@npm:^2.0.0, write-file-atomic@npm:^2.3.0, write-file-atomic@npm:^2.4.3":
version: 2.4.3
resolution: "write-file-atomic@npm:2.4.3"
dependencies:
@@ -38552,15 +35446,6 @@ __metadata:
languageName: node
linkType: hard
-"ws@npm:^5.2.0":
- version: 5.2.3
- resolution: "ws@npm:5.2.3"
- dependencies:
- async-limiter: "npm:~1.0.0"
- checksum: 10/5adfa5f636fdae931ac258c5a6d5d2de2d5b7430010625919a429ace4edf59d8de753266acf2410897966ef0391119900779963f5b9a40dd278337736df0f308
- languageName: node
- linkType: hard
-
"ws@npm:^7.4.6":
version: 7.5.9
resolution: "ws@npm:7.5.9"
@@ -38669,14 +35554,7 @@ __metadata:
languageName: node
linkType: hard
-"y18n@npm:^3.2.1":
- version: 3.2.2
- resolution: "y18n@npm:3.2.2"
- checksum: 10/42ee58e321252ac87f85ccc7cee01c2e3e224737531e9e543963264194255132ce406e02993904b84ea974050d53b8959dcf9da695408553c32f2a8b4b59a667
- languageName: node
- linkType: hard
-
-"y18n@npm:^3.2.1 || ^4.0.0, y18n@npm:^4.0.0":
+"y18n@npm:^4.0.0":
version: 4.0.3
resolution: "y18n@npm:4.0.3"
checksum: 10/392870b2a100bbc643bc035fe3a89cef5591b719c7bdc8721bcdb3d27ab39fa4870acdca67b0ee096e146d769f311d68eda6b8195a6d970f227795061923013f
@@ -38727,7 +35605,7 @@ __metadata:
languageName: node
linkType: hard
-"yargs-parser@npm:10.x, yargs-parser@npm:^10.0.0":
+"yargs-parser@npm:^10.0.0":
version: 10.1.0
resolution: "yargs-parser@npm:10.1.0"
dependencies:
@@ -38736,16 +35614,6 @@ __metadata:
languageName: node
linkType: hard
-"yargs-parser@npm:^11.1.1":
- version: 11.1.1
- resolution: "yargs-parser@npm:11.1.1"
- dependencies:
- camelcase: "npm:^5.0.0"
- decamelize: "npm:^1.2.0"
- checksum: 10/986c06d977534f28ddfbccbbb7d9ebe5d0edb1aef9e27d95c44d40307a0e6cd9cfe1698e7d33eb860a92b7a9d2ee44404904bd9e85ebf897ef197f084ea00873
- languageName: node
- linkType: hard
-
"yargs-parser@npm:^13.1.2":
version: 13.1.2
resolution: "yargs-parser@npm:13.1.2"
@@ -38783,55 +35651,6 @@ __metadata:
languageName: node
linkType: hard
-"yargs-parser@npm:^9.0.2":
- version: 9.0.2
- resolution: "yargs-parser@npm:9.0.2"
- dependencies:
- camelcase: "npm:^4.1.0"
- checksum: 10/e9912e00da647bd03eef60759410722fb3a374dd05c33151410637ee6ab67d12c594999ec6ea345a871f9174e732ea27f7c90aa901c59af99d6a816905b4bce6
- languageName: node
- linkType: hard
-
-"yargs@npm:^11.0.0":
- version: 11.1.1
- resolution: "yargs@npm:11.1.1"
- dependencies:
- cliui: "npm:^4.0.0"
- decamelize: "npm:^1.1.1"
- find-up: "npm:^2.1.0"
- get-caller-file: "npm:^1.0.1"
- os-locale: "npm:^3.1.0"
- require-directory: "npm:^2.1.1"
- require-main-filename: "npm:^1.0.1"
- set-blocking: "npm:^2.0.0"
- string-width: "npm:^2.0.0"
- which-module: "npm:^2.0.0"
- y18n: "npm:^3.2.1"
- yargs-parser: "npm:^9.0.2"
- checksum: 10/039bc1abd24b6d484b8ab16f46be3647a5ecdf95654e1f162b96c98be691aceb3aac77279c252f6f26d12e21124aaef5fa1c139eed073d33f8b77495acca3a24
- languageName: node
- linkType: hard
-
-"yargs@npm:^12.0.1":
- version: 12.0.5
- resolution: "yargs@npm:12.0.5"
- dependencies:
- cliui: "npm:^4.0.0"
- decamelize: "npm:^1.2.0"
- find-up: "npm:^3.0.0"
- get-caller-file: "npm:^1.0.1"
- os-locale: "npm:^3.0.0"
- require-directory: "npm:^2.1.1"
- require-main-filename: "npm:^1.0.1"
- set-blocking: "npm:^2.0.0"
- string-width: "npm:^2.0.0"
- which-module: "npm:^2.0.0"
- y18n: "npm:^3.2.1 || ^4.0.0"
- yargs-parser: "npm:^11.1.1"
- checksum: 10/d6e2772870d72da780a21bf7cf47d823e693aad9532bb2e76a696dd16a0873976280686a75f34ebc8eaf900729bfc53a6ea9d4308d98194dcb0eaff872ff7c83
- languageName: node
- linkType: hard
-
"yargs@npm:^13.2.2":
version: 13.3.2
resolution: "yargs@npm:13.3.2"
@@ -38910,13 +35729,6 @@ __metadata:
languageName: node
linkType: hard
-"yn@npm:^2.0.0":
- version: 2.0.0
- resolution: "yn@npm:2.0.0"
- checksum: 10/9d49527cb3e9a0948cc057223810bf30607bf04b9ff7666cc1681a6501d660b60d90000c16f9e29311b0f28d8a06222ada565ccdca5f1049cdfefb1908217572
- languageName: node
- linkType: hard
-
"yocto-queue@npm:^0.1.0":
version: 0.1.0
resolution: "yocto-queue@npm:0.1.0"
@@ -38924,20 +35736,6 @@ __metadata:
languageName: node
linkType: hard
-"yup@npm:^0.27.0":
- version: 0.27.0
- resolution: "yup@npm:0.27.0"
- dependencies:
- "@babel/runtime": "npm:^7.0.0"
- fn-name: "npm:~2.0.1"
- lodash: "npm:^4.17.11"
- property-expr: "npm:^1.5.0"
- synchronous-promise: "npm:^2.0.6"
- toposort: "npm:^2.0.2"
- checksum: 10/a217125b796b3c8df8c4f414d7f5bf6090f9c5d687e3b93a6bb2d0f0842fabdb1e7ae05d1dbf6ef148c1a5b6f095a5fca7c73c6caf2cd465ea234eac18ed6d3c
- languageName: node
- linkType: hard
-
"zenscroll@npm:^4.0.2":
version: 4.0.2
resolution: "zenscroll@npm:4.0.2"