= ({
+ initialSquiggleString = "",
+ onChange,
+ bindings,
+}: SquigglePartialProps) => {
+ let [expression, setExpression] = React.useState(initialSquiggleString);
+ let squiggleResult = runPartial(expression, bindings);
+ if (squiggleResult.tag == "Ok") {
+ if (onChange) onChange(squiggleResult.value);
+ }
+ return (
+
+
+
+
+ {squiggleResult.tag == "Error" ? (
+
+ {errorValueToString(squiggleResult.value)}
+
+ ) : (
+ <>>
+ )}
+
+ );
+};
+
+export function renderSquigglePartialToDom(props: SquigglePartialProps) {
+ let parent = document.createElement("div");
+ ReactDOM.render(
+ {
+ // @ts-ignore
+ parent.value = bindings;
+
+ parent.dispatchEvent(new CustomEvent("input"));
+ if (props.onChange) props.onChange(bindings);
+ }}
+ />,
+ parent
+ );
+ return parent;
+}
diff --git a/packages/components/src/components/SquigglePlayground.tsx b/packages/components/src/components/SquigglePlayground.tsx
index 93e8e9c6..a8ad84d5 100644
--- a/packages/components/src/components/SquigglePlayground.tsx
+++ b/packages/components/src/components/SquigglePlayground.tsx
@@ -1,11 +1,9 @@
import _ from "lodash";
-import React, { FC, useState } from "react";
+import React, { FC, ReactElement, useState } from "react";
import ReactDOM from "react-dom";
import { SquiggleChart } from "./SquiggleChart";
import CodeEditor from "./CodeEditor";
-import { Form, Input, Row, Col } from "antd";
import styled from "styled-components";
-import "antd/dist/antd.css";
interface FieldFloatProps {
label: string;
@@ -14,10 +12,19 @@ interface FieldFloatProps {
onChange: (value: number) => void;
}
+const Input = styled.input``;
+
+const FormItem = (props: { label: string; children: ReactElement }) => (
+
+ {props.label}
+ {props.children}
+
+);
+
function FieldFloat(Props: FieldFloatProps) {
let [contents, setContents] = useState(Props.value + "");
return (
-
+
-
+
);
}
@@ -65,6 +72,12 @@ const Display = styled.div`
max-height: ${(props) => props.maxHeight}px;
`;
+const Row = styled.div`
+ display: grid;
+ grid-template-columns: 1fr 1fr;
+`;
+const Col = styled.div``;
+
let SquigglePlayground: FC = ({
initialSquiggleString = "",
height = 300,
@@ -79,7 +92,7 @@ let SquigglePlayground: FC = ({
return (
-
+
= ({
height={height - 3}
/>
-
+
{
- makeTest(
- "splits (1)",
- SampleSetDist_ToPointSet.Internals.T.splitContinuousAndDiscrete([1.432, 1.33455, 2.0]),
- ([1.432, 1.33455, 2.0], E.FloatFloatMap.empty()),
- )
- makeTest(
- "splits (2)",
- SampleSetDist_ToPointSet.Internals.T.splitContinuousAndDiscrete([
- 1.432,
- 1.33455,
- 2.0,
- 2.0,
- 2.0,
- 2.0,
- ]) |> (((c, disc)) => (c, disc |> E.FloatFloatMap.toArray)),
- ([1.432, 1.33455], [(2.0, 4.0)]),
- )
-
- let makeDuplicatedArray = count => {
- let arr = Belt.Array.range(1, count) |> E.A.fmap(float_of_int)
- let sorted = arr |> Belt.SortArray.stableSortBy(_, compare)
- E.A.concatMany([sorted, sorted, sorted, sorted]) |> Belt.SortArray.stableSortBy(_, compare)
- }
-
- let (_, discrete1) = SampleSetDist_ToPointSet.Internals.T.splitContinuousAndDiscrete(
- makeDuplicatedArray(10),
- )
- let toArr1 = discrete1 |> E.FloatFloatMap.toArray
- makeTest("splitMedium at count=10", toArr1 |> Belt.Array.length, 10)
-
- let (_c, discrete2) = SampleSetDist_ToPointSet.Internals.T.splitContinuousAndDiscrete(
- makeDuplicatedArray(500),
- )
- let toArr2 = discrete2 |> E.FloatFloatMap.toArray
- makeTest("splitMedium at count=500", toArr2 |> Belt.Array.length, 500)
- // makeTest("foo", [] |> Belt.Array.length, 500)
-})
diff --git a/packages/squiggle-lang/__tests__/E/splitContinuousAndDiscrete_test.res b/packages/squiggle-lang/__tests__/E/splitContinuousAndDiscrete_test.res
new file mode 100644
index 00000000..a52227ee
--- /dev/null
+++ b/packages/squiggle-lang/__tests__/E/splitContinuousAndDiscrete_test.res
@@ -0,0 +1,48 @@
+open Jest
+open TestHelpers
+
+let prepareInputs = (ar, minWeight) =>
+ E.A.Floats.Sorted.splitContinuousAndDiscreteForMinWeight(ar, ~minDiscreteWeight=minWeight) |> (
+ ((c, disc)) => (c, disc |> E.FloatFloatMap.toArray)
+ )
+
+describe("Continuous and discrete splits", () => {
+ makeTest(
+ "is empty, with no common elements",
+ prepareInputs([1.432, 1.33455, 2.0], 2),
+ ([1.33455, 1.432, 2.0], []),
+ )
+
+ makeTest(
+ "only stores 3.5 as discrete when minWeight is 3",
+ prepareInputs([1.432, 1.33455, 2.0, 2.0, 3.5, 3.5, 3.5], 3),
+ ([1.33455, 1.432, 2.0, 2.0], [(3.5, 3.0)]),
+ )
+
+ makeTest(
+ "doesn't store 3.5 as discrete when minWeight is 5",
+ prepareInputs([1.432, 1.33455, 2.0, 2.0, 3.5, 3.5, 3.5], 5),
+ ([1.33455, 1.432, 2.0, 2.0, 3.5, 3.5, 3.5], []),
+ )
+
+ let makeDuplicatedArray = count => {
+ let arr = Belt.Array.range(1, count) |> E.A.fmap(float_of_int)
+ let sorted = arr |> Belt.SortArray.stableSortBy(_, compare)
+ E.A.concatMany([sorted, sorted, sorted, sorted]) |> Belt.SortArray.stableSortBy(_, compare)
+ }
+
+ let (_, discrete1) = E.A.Floats.Sorted.splitContinuousAndDiscreteForMinWeight(
+ makeDuplicatedArray(10),
+ ~minDiscreteWeight=2,
+ )
+ let toArr1 = discrete1 |> E.FloatFloatMap.toArray
+ makeTest("splitMedium at count=10", toArr1 |> Belt.Array.length, 10)
+
+ let (_c, discrete2) = E.A.Floats.Sorted.splitContinuousAndDiscreteForMinWeight(
+ makeDuplicatedArray(500),
+ ~minDiscreteWeight=2,
+ )
+ let toArr2 = discrete2 |> E.FloatFloatMap.toArray
+ makeTest("splitMedium at count=500", toArr2 |> Belt.Array.length, 500)
+ // makeTest("foo", [] |> Belt.Array.length, 500)
+})
diff --git a/packages/squiggle-lang/__tests__/ReducerInterface/ReducerInterface_Distribution_test.res b/packages/squiggle-lang/__tests__/ReducerInterface/ReducerInterface_Distribution_test.res
index 1ff1c85e..2c0cc3e6 100644
--- a/packages/squiggle-lang/__tests__/ReducerInterface/ReducerInterface_Distribution_test.res
+++ b/packages/squiggle-lang/__tests__/ReducerInterface/ReducerInterface_Distribution_test.res
@@ -92,11 +92,11 @@ describe("eval on distribution functions", () => {
testEval("log(2, uniform(5,8))", "Ok(Sample Set Distribution)")
testEval(
"log(normal(5,2), 3)",
- "Error(Distribution Math Error: Logarithm of input error: First input must completely greater than 0)",
+ "Error(Distribution Math Error: Logarithm of input error: First input must be completely greater than 0)",
)
testEval(
"log(normal(5,2), normal(10,1))",
- "Error(Distribution Math Error: Logarithm of input error: First input must completely greater than 0)",
+ "Error(Distribution Math Error: Logarithm of input error: First input must be completely greater than 0)",
)
testEval("log(uniform(5,8))", "Ok(Sample Set Distribution)")
testEval("log10(uniform(5,8))", "Ok(Sample Set Distribution)")
diff --git a/packages/squiggle-lang/__tests__/TS/JS_test.ts b/packages/squiggle-lang/__tests__/TS/JS_test.ts
index 1974dee6..e522eb95 100644
--- a/packages/squiggle-lang/__tests__/TS/JS_test.ts
+++ b/packages/squiggle-lang/__tests__/TS/JS_test.ts
@@ -1,23 +1,5 @@
-import {
- run,
- Distribution,
- resultMap,
- squiggleExpression,
- errorValueToString,
-} from "../../src/js/index";
-
-let testRun = (x: string): squiggleExpression => {
- let result = run(x, { sampleCount: 100, xyPointLength: 100 });
- expect(result.tag).toEqual("Ok");
- if (result.tag === "Ok") {
- return result.value;
- } else {
- throw Error(
- "Expected squiggle expression to evaluate but got error: " +
- errorValueToString(result.value)
- );
- }
-};
+import { Distribution, resultMap } from "../../src/js/index";
+import { testRun, testRunPartial } from "./TestHelpers";
function Ok(x: b) {
return { tag: "Ok", value: x };
@@ -42,6 +24,50 @@ describe("Log function", () => {
});
});
+describe("Array", () => {
+ test("nested Array", () => {
+ expect(testRun("[[1]]")).toEqual({
+ tag: "array",
+ value: [
+ {
+ tag: "array",
+ value: [
+ {
+ tag: "number",
+ value: 1,
+ },
+ ],
+ },
+ ],
+ });
+ });
+});
+
+describe("Record", () => {
+ test("Return record", () => {
+ expect(testRun("{a: 1}")).toEqual({
+ tag: "record",
+ value: {
+ a: {
+ tag: "number",
+ value: 1,
+ },
+ },
+ });
+ });
+});
+
+describe("Partials", () => {
+ test("Can pass variables between partials and cells", () => {
+ let bindings = testRunPartial(`x = 5`);
+ let bindings2 = testRunPartial(`y = x + 2`, bindings);
+ expect(testRun(`y + 3`, bindings2)).toEqual({
+ tag: "number",
+ value: 10,
+ });
+ });
+});
+
describe("Distribution", () => {
//It's important that sampleCount is less than 9. If it's more, than that will create randomness
//Also, note, the value should be created using makeSampleSetDist() later on.
diff --git a/packages/squiggle-lang/__tests__/TS/TestHelpers.ts b/packages/squiggle-lang/__tests__/TS/TestHelpers.ts
index 3d4153ef..7d51c98e 100644
--- a/packages/squiggle-lang/__tests__/TS/TestHelpers.ts
+++ b/packages/squiggle-lang/__tests__/TS/TestHelpers.ts
@@ -1,14 +1,16 @@
import {
run,
- // Distribution,
+ runPartial,
+ bindings,
squiggleExpression,
errorValueToString,
- // errorValue,
- // result,
} from "../../src/js/index";
-export function testRun(x: string): squiggleExpression {
- let squiggleResult = run(x, { sampleCount: 1000, xyPointLength: 100 });
+export function testRun(x: string, bindings = {}): squiggleExpression {
+ let squiggleResult = run(x, bindings, {
+ sampleCount: 1000,
+ xyPointLength: 100,
+ });
// return squiggleResult.value
if (squiggleResult.tag === "Ok") {
return squiggleResult.value;
@@ -21,6 +23,22 @@ export function testRun(x: string): squiggleExpression {
}
}
+export function testRunPartial(x: string, bindings: bindings = {}): bindings {
+ let squiggleResult = runPartial(x, bindings, {
+ sampleCount: 1000,
+ xyPointLength: 100,
+ });
+ if (squiggleResult.tag === "Ok") {
+ return squiggleResult.value;
+ } else {
+ throw new Error(
+ `Expected squiggle expression to evaluate but got error: ${errorValueToString(
+ squiggleResult.value
+ )}`
+ );
+ }
+}
+
export function failDefault() {
expect("be reached").toBe("codepath should never");
}
diff --git a/packages/squiggle-lang/__tests__/XYShape_test.res b/packages/squiggle-lang/__tests__/XYShape_test.res
index 701d82e1..38535020 100644
--- a/packages/squiggle-lang/__tests__/XYShape_test.res
+++ b/packages/squiggle-lang/__tests__/XYShape_test.res
@@ -18,7 +18,26 @@ let pointSetDist3: PointSetTypes.xyShape = {
ys: [0.2, 0.5, 0.8],
}
+let makeAndGetErrorString = (~xs, ~ys) =>
+ XYShape.T.make(~xs, ~ys)->E.R.getError->E.O2.fmap(XYShape.Error.toString)
+
describe("XYShapes", () => {
+ describe("Validator", () => {
+ makeTest(
+ "with no errors",
+ makeAndGetErrorString(~xs=[1.0, 4.0, 8.0], ~ys=[0.2, 0.4, 0.8]),
+ None,
+ )
+ makeTest("when empty", makeAndGetErrorString(~xs=[], ~ys=[]), Some("Xs is empty"))
+ makeTest(
+ "when not sorted, different lengths, and not finite",
+ makeAndGetErrorString(~xs=[2.0, 1.0, infinity, 0.0], ~ys=[3.0, Js.Float._NaN]),
+ Some(
+ "Multiple Errors: [Xs is not sorted], [Xs and Ys have different lengths. Xs has length 4 and Ys has length 2], [Xs is not finite. Example value: Infinity], [Ys is not finite. Example value: NaN]",
+ ),
+ )
+ })
+
describe("logScorePoint", () => {
makeTest("When identical", XYShape.logScorePoint(30, pointSetDist1, pointSetDist1), Some(0.0))
makeTest(
@@ -32,16 +51,6 @@ describe("XYShapes", () => {
Some(210.3721280423322),
)
})
- // describe("transverse", () => {
- // makeTest(
- // "When very different",
- // XYShape.Transversal._transverse(
- // (aCurrent, aLast) => aCurrent +. aLast,
- // [|1.0, 2.0, 3.0, 4.0|],
- // ),
- // [|1.0, 3.0, 6.0, 10.0|],
- // )
- // });
describe("integrateWithTriangles", () =>
makeTest(
"integrates correctly",
diff --git a/packages/squiggle-lang/bsconfig.json b/packages/squiggle-lang/bsconfig.json
index 4c27a48a..e98b3822 100644
--- a/packages/squiggle-lang/bsconfig.json
+++ b/packages/squiggle-lang/bsconfig.json
@@ -20,7 +20,7 @@
],
"suffix": ".bs.js",
"namespace": true,
- "bs-dependencies": ["@glennsl/rescript-jest", "rationale", "bisect_ppx"],
+ "bs-dependencies": ["@glennsl/rescript-jest", "bisect_ppx"],
"gentypeconfig": {
"language": "typescript",
"module": "commonjs",
diff --git a/packages/squiggle-lang/package.json b/packages/squiggle-lang/package.json
index f9157ada..4d146ef8 100644
--- a/packages/squiggle-lang/package.json
+++ b/packages/squiggle-lang/package.json
@@ -1,13 +1,13 @@
{
"name": "@quri/squiggle-lang",
- "version": "0.2.5",
+ "version": "0.2.7",
"homepage": "https://squiggle-language.com",
- "licence": "MIT",
+ "license": "MIT",
"scripts": {
- "build": "rescript build -with-deps",
+ "build": "rescript build -with-deps && tsc",
"bundle": "webpack",
"start": "rescript build -w -with-deps",
- "clean": "rescript clean",
+ "clean": "rescript clean && rm -r dist",
"test:reducer": "jest __tests__/Reducer*/",
"benchmark": "ts-node benchmark/conversion_tests.ts",
"test": "jest",
@@ -31,34 +31,28 @@
],
"author": "Quantified Uncertainty Research Institute",
"license": "MIT",
+ "dependencies": {
+ "rescript": "^9.1.4",
+ "jstat": "^1.9.5",
+ "pdfast": "^0.2.0",
+ "mathjs": "10.5.0"
+ },
"devDependencies": {
"bisect_ppx": "^2.7.1",
- "jstat": "^1.9.5",
"lodash": "4.17.21",
- "mathjs": "10.5.0",
- "pdfast": "^0.2.0",
- "rationale": "0.2.0",
- "rescript": "^9.1.4",
"rescript-fast-check": "^1.1.1",
"@glennsl/rescript-jest": "^0.9.0",
"@istanbuljs/nyc-config-typescript": "^1.0.2",
"@types/jest": "^27.4.0",
"babel-plugin-transform-es2015-modules-commonjs": "^6.26.2",
- "bisect_ppx": "^2.7.1",
- "chalk": "^4.1.2",
+ "chalk": "^5.0.1",
"codecov": "3.8.3",
"fast-check": "2.25.0",
"gentype": "^4.3.0",
"jest": "^27.5.1",
- "jstat": "^1.9.5",
- "lodash": "4.17.21",
- "mathjs": "10.5.0",
"moduleserve": "0.9.1",
"nyc": "^15.1.0",
- "pdfast": "^0.2.0",
- "rationale": "0.2.0",
"reanalyze": "^2.19.0",
- "rescript": "^9.1.4",
"ts-jest": "^27.1.4",
"ts-loader": "^9.2.8",
"ts-node": "^10.7.0",
@@ -67,6 +61,6 @@
"webpack-cli": "^4.9.2"
},
"source": "./src/js/index.ts",
- "main": "./dist/bundle.js",
- "types": "./dist/js/index.d.ts"
+ "main": "./dist/src/js/index.js",
+ "types": "./dist/src/js/index.d.ts"
}
diff --git a/packages/squiggle-lang/src/js/index.ts b/packages/squiggle-lang/src/js/index.ts
index bed78695..34318424 100644
--- a/packages/squiggle-lang/src/js/index.ts
+++ b/packages/squiggle-lang/src/js/index.ts
@@ -2,7 +2,8 @@ import * as _ from "lodash";
import {
genericDist,
samplingParams,
- evaluate,
+ evaluatePartialUsingExternalBindings,
+ externalBindings,
expressionValue,
errorValue,
distributionError,
@@ -11,6 +12,9 @@ import {
discreteShape,
distributionErrorToString,
internalCode,
+ mixedShape,
+ sampleSetDist,
+ symbolicDist,
} from "../rescript/TypescriptInterface.gen";
export {
makeSampleSetDist,
@@ -44,7 +48,7 @@ import {
Constructors_pointwiseLogarithm,
Constructors_pointwisePower,
} from "../rescript/Distributions/DistributionOperation/DistributionOperation.gen";
-export type { samplingParams, errorValue };
+export type { samplingParams, errorValue, externalBindings as bindings };
export let defaultSamplingInputs: samplingParams = {
sampleCount: 10000,
@@ -92,26 +96,67 @@ export type squiggleExpression =
| tagged<"distribution", Distribution>
| tagged<"number", number>
| tagged<"record", { [key: string]: squiggleExpression }>;
+
export function run(
squiggleString: string,
+ bindings?: externalBindings,
samplingInputs?: samplingParams
): result {
+ let b = bindings ? bindings : {};
let si: samplingParams = samplingInputs
? samplingInputs
: defaultSamplingInputs;
- let result: result = evaluate(squiggleString);
+
+ let result: result =
+ evaluateUsingExternalBindings(squiggleString, b);
return resultMap(result, (x) => createTsExport(x, si));
}
+// Run Partial. A partial is a block of code that doesn't return a value
+export function runPartial(
+ squiggleString: string,
+ bindings: externalBindings,
+ _samplingInputs?: samplingParams
+): result {
+ return evaluatePartialUsingExternalBindings(squiggleString, bindings);
+}
+
function createTsExport(
x: expressionValue,
sampEnv: samplingParams
): squiggleExpression {
switch (x.tag) {
case "EvArray":
+ // genType doesn't convert anything more than 2 layers down into {tag: x, value: x}
+ // format, leaving it as the raw values. This converts the raw values
+ // directly into typescript values.
+ //
+ // The casting here is because genType is about the types of the returned
+ // values, claiming they are fully recursive when that's not actually the
+ // case
return tag(
"array",
- x.value.map((x) => createTsExport(x, sampEnv))
+ x.value.map((arrayItem): squiggleExpression => {
+ switch (arrayItem.tag) {
+ case "EvRecord":
+ return tag(
+ "record",
+ _.mapValues(arrayItem.value, (recordValue: unknown) =>
+ convertRawToTypescript(recordValue as rescriptExport, sampEnv)
+ )
+ );
+ case "EvArray":
+ let y = arrayItem.value as unknown as rescriptExport[];
+ return tag(
+ "array",
+ y.map((childArrayItem) =>
+ convertRawToTypescript(childArrayItem, sampEnv)
+ )
+ );
+ default:
+ return createTsExport(arrayItem, sampEnv);
+ }
+ })
);
case "EvBool":
return tag("boolean", x.value);
@@ -124,10 +169,14 @@ function createTsExport(
case "EvNumber":
return tag("number", x.value);
case "EvRecord":
- return tag(
+ // genType doesn't support records, so we have to do the raw conversion ourself
+ let result: tagged<"record", { [key: string]: squiggleExpression }> = tag(
"record",
- _.mapValues(x.value, (x) => createTsExport(x, sampEnv))
+ _.mapValues(x.value, (x: unknown) =>
+ convertRawToTypescript(x as rescriptExport, sampEnv)
+ )
);
+ return result;
case "EvString":
return tag("string", x.value);
case "EvSymbol":
@@ -135,6 +184,118 @@ function createTsExport(
}
}
+// Helper functions to convert the rescript representations that genType doesn't
+// cover
+function convertRawToTypescript(
+ result: rescriptExport,
+ sampEnv: samplingParams
+): squiggleExpression {
+ switch (result.TAG) {
+ case 0: // EvArray
+ return tag(
+ "array",
+ result._0.map((x) => convertRawToTypescript(x, sampEnv))
+ );
+ case 1: // EvBool
+ return tag("boolean", result._0);
+ case 2: // EvCall
+ return tag("call", result._0);
+ case 3: // EvDistribution
+ return tag(
+ "distribution",
+ new Distribution(
+ convertRawDistributionToGenericDist(result._0),
+ sampEnv
+ )
+ );
+ case 4: // EvNumber
+ return tag("number", result._0);
+ case 5: // EvRecord
+ return tag(
+ "record",
+ _.mapValues(result._0, (x) => convertRawToTypescript(x, sampEnv))
+ );
+ case 6: // EvString
+ return tag("string", result._0);
+ case 7: // EvSymbol
+ return tag("symbol", result._0);
+ }
+}
+
+function convertRawDistributionToGenericDist(
+ result: rescriptDist
+): genericDist {
+ switch (result.TAG) {
+ case 0: // Point Set Dist
+ switch (result._0.TAG) {
+ case 0: // Mixed
+ return tag("PointSet", tag("Mixed", result._0._0));
+ case 1: // Discrete
+ return tag("PointSet", tag("Discrete", result._0._0));
+ case 2: // Continuous
+ return tag("PointSet", tag("Continuous", result._0._0));
+ }
+ case 1: // Sample Set Dist
+ return tag("SampleSet", result._0);
+ case 2: // Symbolic Dist
+ return tag("Symbolic", result._0);
+ }
+}
+
+// Raw rescript types.
+type rescriptExport =
+ | {
+ TAG: 0; // EvArray
+ _0: rescriptExport[];
+ }
+ | {
+ TAG: 1; // EvBool
+ _0: boolean;
+ }
+ | {
+ TAG: 2; // EvCall
+ _0: string;
+ }
+ | {
+ TAG: 3; // EvDistribution
+ _0: rescriptDist;
+ }
+ | {
+ TAG: 4; // EvNumber
+ _0: number;
+ }
+ | {
+ TAG: 5; // EvRecord
+ _0: { [key: string]: rescriptExport };
+ }
+ | {
+ TAG: 6; // EvString
+ _0: string;
+ }
+ | {
+ TAG: 7; // EvSymbol
+ _0: string;
+ };
+
+type rescriptDist =
+ | { TAG: 0; _0: rescriptPointSetDist }
+ | { TAG: 1; _0: sampleSetDist }
+ | { TAG: 2; _0: symbolicDist };
+
+type rescriptPointSetDist =
+ | {
+ TAG: 0; // Mixed
+ _0: mixedShape;
+ }
+ | {
+ TAG: 1; // Discrete
+ _0: discreteShape;
+ }
+ | {
+ TAG: 2; // ContinuousShape
+ _0: continuousShape;
+ };
+
export function resultExn(r: result ): a | c {
return r.value;
}
diff --git a/packages/squiggle-lang/src/rescript/Distributions/DistributionTypes.res b/packages/squiggle-lang/src/rescript/Distributions/DistributionTypes.res
index e27a138d..93f86798 100644
--- a/packages/squiggle-lang/src/rescript/Distributions/DistributionTypes.res
+++ b/packages/squiggle-lang/src/rescript/Distributions/DistributionTypes.res
@@ -19,6 +19,7 @@ type error =
| RequestedStrategyInvalidError(string)
| LogarithmOfDistributionError(string)
| OtherError(string)
+ | XYShapeError(XYShape.error)
@genType
module Error = {
@@ -39,6 +40,7 @@ module Error = {
| PointSetConversionError(err) => SampleSetDist.pointsetConversionErrorToString(err)
| SparklineError(err) => PointSetTypes.sparklineErrorToString(err)
| RequestedStrategyInvalidError(err) => `Requested strategy invalid: ${err}`
+ | XYShapeError(err) => `XY Shape Error: ${XYShape.Error.toString(err)}`
| OtherError(s) => s
}
diff --git a/packages/squiggle-lang/src/rescript/Distributions/GenericDist/GenericDist.res b/packages/squiggle-lang/src/rescript/Distributions/GenericDist/GenericDist.res
index 2d8d0fa8..c19bdf7f 100644
--- a/packages/squiggle-lang/src/rescript/Distributions/GenericDist/GenericDist.res
+++ b/packages/squiggle-lang/src/rescript/Distributions/GenericDist/GenericDist.res
@@ -6,6 +6,24 @@ type toSampleSetFn = t => result
type scaleMultiplyFn = (t, float) => result
type pointwiseAddFn = (t, t) => result
+let isPointSet = (t: t) =>
+ switch t {
+ | PointSet(_) => true
+ | _ => false
+ }
+
+let isSampleSetSet = (t: t) =>
+ switch t {
+ | SampleSet(_) => true
+ | _ => false
+ }
+
+let isSymbolic = (t: t) =>
+ switch t {
+ | Symbolic(_) => true
+ | _ => false
+ }
+
let sampleN = (t: t, n) =>
switch t {
| PointSet(r) => PointSetDist.sampleNRendered(n, r)
@@ -150,144 +168,147 @@ let truncate = Truncate.run
of a new variable that is the result of the operation on A and B.
For instance, normal(0, 1) + normal(1, 1) -> normal(1, 2).
In general, this is implemented via convolution.
-
- TODO: It would be useful to be able to pass in a paramater to get this to run either with convolution or monte carlo.
*/
module AlgebraicCombination = {
- let runConvolution = (
- toPointSet: toPointSetFn,
- arithmeticOperation: Operation.convolutionOperation,
- t1: t,
- t2: t,
- ) =>
- E.R.merge(toPointSet(t1), toPointSet(t2))->E.R2.fmap(((a, b)) =>
- PointSetDist.combineAlgebraically(arithmeticOperation, a, b)
- )
-
- let runMonteCarlo = (
- toSampleSet: toSampleSetFn,
- arithmeticOperation: Operation.algebraicOperation,
- t1: t,
- t2: t,
- ): result => {
- let fn = Operation.Algebraic.toFn(arithmeticOperation)
- E.R.merge(toSampleSet(t1), toSampleSet(t2))
- ->E.R.bind(((t1, t2)) => {
- SampleSetDist.map2(~fn, ~t1, ~t2)->E.R2.errMap(x => DistributionTypes.OperationError(x))
- })
- ->E.R2.fmap(r => DistributionTypes.SampleSet(r))
- }
-
- /*
+ module InputValidator = {
+ /*
It would be good to also do a check to make sure that probability mass for the second
operand, at value 1.0, is 0 (or approximately 0). However, we'd ideally want to check
that both the probability mass and the probability density are greater than zero.
Right now we don't yet have a way of getting probability mass, so I'll leave this for later.
*/
- let getLogarithmInputError = (t1: t, t2: t, ~toPointSetFn: toPointSetFn): option => {
- let firstOperandIsGreaterThanZero =
- toFloatOperation(
- t1,
- ~toPointSetFn,
- ~distToFloatOperation=#Cdf(MagicNumbers.Epsilon.ten),
- ) |> E.R.fmap(r => r > 0.)
- let secondOperandIsGreaterThanZero =
- toFloatOperation(
- t2,
- ~toPointSetFn,
- ~distToFloatOperation=#Cdf(MagicNumbers.Epsilon.ten),
- ) |> E.R.fmap(r => r > 0.)
- let items = E.A.R.firstErrorOrOpen([
- firstOperandIsGreaterThanZero,
- secondOperandIsGreaterThanZero,
- ])
- switch items {
- | Error(r) => Some(r)
- | Ok([true, _]) =>
- Some(LogarithmOfDistributionError("First input must completely greater than 0"))
- | Ok([false, true]) =>
- Some(LogarithmOfDistributionError("Second input must completely greater than 0"))
- | Ok([false, false]) => None
- | Ok(_) => Some(Unreachable)
+ let getLogarithmInputError = (t1: t, t2: t, ~toPointSetFn: toPointSetFn): option => {
+ let firstOperandIsGreaterThanZero =
+ toFloatOperation(
+ t1,
+ ~toPointSetFn,
+ ~distToFloatOperation=#Cdf(MagicNumbers.Epsilon.ten),
+ ) |> E.R.fmap(r => r > 0.)
+ let secondOperandIsGreaterThanZero =
+ toFloatOperation(
+ t2,
+ ~toPointSetFn,
+ ~distToFloatOperation=#Cdf(MagicNumbers.Epsilon.ten),
+ ) |> E.R.fmap(r => r > 0.)
+ let items = E.A.R.firstErrorOrOpen([
+ firstOperandIsGreaterThanZero,
+ secondOperandIsGreaterThanZero,
+ ])
+ switch items {
+ | Error(r) => Some(r)
+ | Ok([true, _]) =>
+ Some(LogarithmOfDistributionError("First input must be completely greater than 0"))
+ | Ok([false, true]) =>
+ Some(LogarithmOfDistributionError("Second input must be completely greater than 0"))
+ | Ok([false, false]) => None
+ | Ok(_) => Some(Unreachable)
+ }
+ }
+
+ let run = (t1: t, t2: t, ~toPointSetFn: toPointSetFn, ~arithmeticOperation): option => {
+ if arithmeticOperation == #Logarithm {
+ getLogarithmInputError(t1, t2, ~toPointSetFn)
+ } else {
+ None
+ }
}
}
- let getInvalidOperationError = (
- t1: t,
- t2: t,
- ~toPointSetFn: toPointSetFn,
+ module StrategyCallOnValidatedInputs = {
+ let convolution = (
+ toPointSet: toPointSetFn,
+ arithmeticOperation: Operation.convolutionOperation,
+ t1: t,
+ t2: t,
+ ): result =>
+ E.R.merge(toPointSet(t1), toPointSet(t2))
+ ->E.R2.fmap(((a, b)) => PointSetDist.combineAlgebraically(arithmeticOperation, a, b))
+ ->E.R2.fmap(r => DistributionTypes.PointSet(r))
+
+ let monteCarlo = (
+ toSampleSet: toSampleSetFn,
+ arithmeticOperation: Operation.algebraicOperation,
+ t1: t,
+ t2: t,
+ ): result => {
+ let fn = Operation.Algebraic.toFn(arithmeticOperation)
+ E.R.merge(toSampleSet(t1), toSampleSet(t2))
+ ->E.R.bind(((t1, t2)) => {
+ SampleSetDist.map2(~fn, ~t1, ~t2)->E.R2.errMap(x => DistributionTypes.OperationError(x))
+ })
+ ->E.R2.fmap(r => DistributionTypes.SampleSet(r))
+ }
+
+ let symbolic = (
+ arithmeticOperation: Operation.algebraicOperation,
+ t1: t,
+ t2: t,
+ ): SymbolicDistTypes.analyticalSimplificationResult => {
+ switch (t1, t2) {
+ | (DistributionTypes.Symbolic(d1), DistributionTypes.Symbolic(d2)) =>
+ SymbolicDist.T.tryAnalyticalSimplification(d1, d2, arithmeticOperation)
+ | _ => #NoSolution
+ }
+ }
+ }
+
+ module StrategyChooser = {
+ type specificStrategy = [#AsSymbolic | #AsMonteCarlo | #AsConvolution]
+
+ //I'm (Ozzie) really just guessing here, very little idea what's best
+ let expectedConvolutionCost: t => int = x =>
+ switch x {
+ | Symbolic(#Float(_)) => MagicNumbers.OpCost.floatCost
+ | Symbolic(_) => MagicNumbers.OpCost.symbolicCost
+ | PointSet(Discrete(m)) => m.xyShape->XYShape.T.length
+ | PointSet(Mixed(_)) => MagicNumbers.OpCost.mixedCost
+ | PointSet(Continuous(_)) => MagicNumbers.OpCost.continuousCost
+ | _ => MagicNumbers.OpCost.wildcardCost
+ }
+
+ let hasSampleSetDist = (t1: t, t2: t): bool => isSampleSetSet(t1) || isSampleSetSet(t2)
+
+ let convolutionIsFasterThanMonteCarlo = (t1: t, t2: t): bool =>
+ expectedConvolutionCost(t1) * expectedConvolutionCost(t2) < MagicNumbers.OpCost.monteCarloCost
+
+ let preferConvolutionToMonteCarlo = (t1, t2, arithmeticOperation) => {
+ !hasSampleSetDist(t1, t2) &&
+ Operation.Convolution.canDoAlgebraicOperation(arithmeticOperation) &&
+ convolutionIsFasterThanMonteCarlo(t1, t2)
+ }
+
+ let run = (~t1: t, ~t2: t, ~arithmeticOperation): specificStrategy => {
+ switch StrategyCallOnValidatedInputs.symbolic(arithmeticOperation, t1, t2) {
+ | #AnalyticalSolution(_)
+ | #Error(_) =>
+ #AsSymbolic
+ | #NoSolution =>
+ preferConvolutionToMonteCarlo(t1, t2, arithmeticOperation) ? #AsConvolution : #AsMonteCarlo
+ }
+ }
+ }
+
+ let runStrategyOnValidatedInputs = (
+ ~t1: t,
+ ~t2: t,
~arithmeticOperation,
- ): option => {
- if arithmeticOperation == #Logarithm {
- getLogarithmInputError(t1, t2, ~toPointSetFn)
- } else {
- None
- }
- }
-
- //I'm (Ozzie) really just guessing here, very little idea what's best
- let expectedConvolutionCost: t => int = x =>
- switch x {
- | Symbolic(#Float(_)) => MagicNumbers.OpCost.floatCost
- | Symbolic(_) => MagicNumbers.OpCost.symbolicCost
- | PointSet(Discrete(m)) => m.xyShape->XYShape.T.length
- | PointSet(Mixed(_)) => MagicNumbers.OpCost.mixedCost
- | PointSet(Continuous(_)) => MagicNumbers.OpCost.continuousCost
- | _ => MagicNumbers.OpCost.wildcardCost
- }
-
- type calculationStrategy = MonteCarloStrat | ConvolutionStrat(Operation.convolutionOperation)
-
- let chooseConvolutionOrMonteCarloDefault = (
- op: Operation.algebraicOperation,
- t2: t,
- t1: t,
- ): calculationStrategy =>
- switch op {
- | #Divide
- | #Power
- | #Logarithm =>
- MonteCarloStrat
- | (#Add | #Subtract | #Multiply) as convOp =>
- expectedConvolutionCost(t1) * expectedConvolutionCost(t2) > MagicNumbers.OpCost.monteCarloCost
- ? MonteCarloStrat
- : ConvolutionStrat(convOp)
- }
-
- let tryAnalyticalSimplification = (
- arithmeticOperation: Operation.algebraicOperation,
- t1: t,
- t2: t,
- ): option => {
- switch (t1, t2) {
- | (DistributionTypes.Symbolic(d1), DistributionTypes.Symbolic(d2)) =>
- Some(SymbolicDist.T.tryAnalyticalSimplification(d1, d2, arithmeticOperation))
- | _ => None
- }
- }
-
- let runDefault = (
- t1: t,
+ ~strategy: StrategyChooser.specificStrategy,
~toPointSetFn: toPointSetFn,
~toSampleSetFn: toSampleSetFn,
- ~arithmeticOperation,
- ~t2: t,
): result => {
- switch tryAnalyticalSimplification(arithmeticOperation, t1, t2) {
- | Some(#AnalyticalSolution(symbolicDist)) => Ok(Symbolic(symbolicDist))
- | Some(#Error(e)) => Error(OperationError(e))
- | Some(#NoSolution)
- | None =>
- switch getInvalidOperationError(t1, t2, ~toPointSetFn, ~arithmeticOperation) {
- | Some(e) => Error(e)
- | None =>
- switch chooseConvolutionOrMonteCarloDefault(arithmeticOperation, t1, t2) {
- | MonteCarloStrat => runMonteCarlo(toSampleSetFn, arithmeticOperation, t1, t2)
- | ConvolutionStrat(convOp) =>
- runConvolution(toPointSetFn, convOp, t1, t2)->E.R2.fmap(r => DistributionTypes.PointSet(
- r,
- ))
- }
+ switch strategy {
+ | #AsMonteCarlo =>
+ StrategyCallOnValidatedInputs.monteCarlo(toSampleSetFn, arithmeticOperation, t1, t2)
+ | #AsSymbolic =>
+ switch StrategyCallOnValidatedInputs.symbolic(arithmeticOperation, t1, t2) {
+ | #AnalyticalSolution(symbolicDist) => Ok(Symbolic(symbolicDist))
+ | #Error(e) => Error(OperationError(e))
+ | #NoSolution => Error(Unreachable)
+ }
+ | #AsConvolution =>
+ switch Operation.Convolution.fromAlgebraicOperation(arithmeticOperation) {
+ | Some(convOp) => StrategyCallOnValidatedInputs.convolution(toPointSetFn, convOp, t1, t2)
+ | None => Error(Unreachable)
}
}
}
@@ -300,27 +321,38 @@ module AlgebraicCombination = {
~arithmeticOperation: Operation.algebraicOperation,
~t2: t,
): result => {
- switch strategy {
- | AsDefault => runDefault(t1, ~toPointSetFn, ~toSampleSetFn, ~arithmeticOperation, ~t2)
- | AsSymbolic =>
- switch tryAnalyticalSimplification(arithmeticOperation, t1, t2) {
- | Some(#AnalyticalSolution(symbolicDist)) => Ok(Symbolic(symbolicDist))
- | Some(#NoSolution) => Error(RequestedStrategyInvalidError(`No analytical solution`))
- | None => Error(RequestedStrategyInvalidError("Inputs were not even symbolic"))
- | Some(#Error(err)) => Error(OperationError(err))
+ let invalidOperationError = InputValidator.run(t1, t2, ~arithmeticOperation, ~toPointSetFn)
+ switch (invalidOperationError, strategy) {
+ | (Some(e), _) => Error(e)
+ | (None, AsDefault) => {
+ let chooseStrategy = StrategyChooser.run(~arithmeticOperation, ~t1, ~t2)
+ runStrategyOnValidatedInputs(
+ ~t1,
+ ~t2,
+ ~strategy=chooseStrategy,
+ ~arithmeticOperation,
+ ~toPointSetFn,
+ ~toSampleSetFn,
+ )
}
- | AsConvolution => {
- let errString = opString => `Can't convolve on ${opString}`
- switch arithmeticOperation {
- | (#Add | #Subtract | #Multiply) as convOp =>
- runConvolution(toPointSetFn, convOp, t1, t2)->E.R2.fmap(r => DistributionTypes.PointSet(
- r,
- ))
- | (#Divide | #Power | #Logarithm) as op =>
- op->Operation.Algebraic.toString->errString->RequestedStrategyInvalidError->Error
+ | (None, AsMonteCarlo) =>
+ StrategyCallOnValidatedInputs.monteCarlo(toSampleSetFn, arithmeticOperation, t1, t2)
+ | (None, AsSymbolic) =>
+ switch StrategyCallOnValidatedInputs.symbolic(arithmeticOperation, t1, t2) {
+ | #AnalyticalSolution(symbolicDist) => Ok(Symbolic(symbolicDist))
+ | #NoSolution => Error(RequestedStrategyInvalidError(`No analytic solution for inputs`))
+ | #Error(err) => Error(OperationError(err))
+ }
+ | (None, AsConvolution) =>
+ switch Operation.Convolution.fromAlgebraicOperation(arithmeticOperation) {
+ | None => {
+ let errString = `Convolution not supported for ${Operation.Algebraic.toString(
+ arithmeticOperation,
+ )}`
+ Error(RequestedStrategyInvalidError(errString))
}
+ | Some(convOp) => StrategyCallOnValidatedInputs.convolution(toPointSetFn, convOp, t1, t2)
}
- | AsMonteCarlo => runMonteCarlo(toSampleSetFn, arithmeticOperation, t1, t2)
}
}
}
diff --git a/packages/squiggle-lang/src/rescript/Distributions/GenericDist/GenericDist.resi b/packages/squiggle-lang/src/rescript/Distributions/GenericDist/GenericDist.resi
index ed2c5c03..e91803e2 100644
--- a/packages/squiggle-lang/src/rescript/Distributions/GenericDist/GenericDist.resi
+++ b/packages/squiggle-lang/src/rescript/Distributions/GenericDist/GenericDist.resi
@@ -69,3 +69,6 @@ let mixture: (
~scaleMultiplyFn: scaleMultiplyFn,
~pointwiseAddFn: pointwiseAddFn,
) => result
+
+let isSymbolic: t => bool
+let isPointSet: t => bool
diff --git a/packages/squiggle-lang/src/rescript/Distributions/PointSetDist/AlgebraicShapeCombination.res b/packages/squiggle-lang/src/rescript/Distributions/PointSetDist/AlgebraicShapeCombination.res
index 63600e43..a51de00d 100644
--- a/packages/squiggle-lang/src/rescript/Distributions/PointSetDist/AlgebraicShapeCombination.res
+++ b/packages/squiggle-lang/src/rescript/Distributions/PointSetDist/AlgebraicShapeCombination.res
@@ -263,4 +263,4 @@ let combineShapesContinuousDiscrete = (
)
}
-let isOrdered = (a: XYShape.T.t): bool => E.A.Sorted.Floats.isSorted(a.xs)
+let isOrdered = (a: XYShape.T.t): bool => E.A.Floats.isSorted(a.xs)
diff --git a/packages/squiggle-lang/src/rescript/Distributions/SampleSetDist/SampleSetDist_ToPointSet.res b/packages/squiggle-lang/src/rescript/Distributions/SampleSetDist/SampleSetDist_ToPointSet.res
index 90537a12..ec2bf0d0 100644
--- a/packages/squiggle-lang/src/rescript/Distributions/SampleSetDist/SampleSetDist_ToPointSet.res
+++ b/packages/squiggle-lang/src/rescript/Distributions/SampleSetDist/SampleSetDist_ToPointSet.res
@@ -39,28 +39,6 @@ module Internals = {
module T = {
type t = array
- let splitContinuousAndDiscrete = (sortedArray: t) => {
- let continuous = []
- let discrete = E.FloatFloatMap.empty()
- Belt.Array.forEachWithIndex(sortedArray, (index, element) => {
- let maxIndex = (sortedArray |> Array.length) - 1
- let possiblySimilarElements = switch index {
- | 0 => [index + 1]
- | n if n == maxIndex => [index - 1]
- | _ => [index - 1, index + 1]
- } |> Belt.Array.map(_, r => sortedArray[r])
- let hasSimilarElement = Belt.Array.some(possiblySimilarElements, r => r == element)
- hasSimilarElement
- ? E.FloatFloatMap.increment(element, discrete)
- : {
- let _ = Js.Array.push(element, continuous)
- }
-
- ()
- })
- (continuous, discrete)
- }
-
let xWidthToUnitWidth = (samples, outputXYPoints, xWidth) => {
let xyPointRange = E.A.Sorted.range(samples) |> E.O.default(0.0)
let xyPointWidth = xyPointRange /. float_of_int(outputXYPoints)
@@ -85,7 +63,11 @@ let toPointSetDist = (
(),
): Internals.Types.outputs => {
Array.fast_sort(compare, samples)
- let (continuousPart, discretePart) = E.A.Sorted.Floats.split(samples)
+ let minDiscreteToKeep = MagicNumbers.ToPointSet.minDiscreteToKeep(samples)
+ let (continuousPart, discretePart) = E.A.Floats.Sorted.splitContinuousAndDiscreteForMinWeight(
+ samples,
+ ~minDiscreteWeight=minDiscreteToKeep,
+ )
let length = samples |> E.A.length |> float_of_int
let discrete: PointSetTypes.discreteShape =
discretePart
diff --git a/packages/squiggle-lang/src/rescript/MagicNumbers.res b/packages/squiggle-lang/src/rescript/MagicNumbers.res
index 291f05d6..124a44f4 100644
--- a/packages/squiggle-lang/src/rescript/MagicNumbers.res
+++ b/packages/squiggle-lang/src/rescript/MagicNumbers.res
@@ -22,3 +22,16 @@ module OpCost = {
let wildcardCost = 1000
let monteCarloCost = Environment.defaultSampleCount
}
+
+module ToPointSet = {
+ /*
+ This function chooses the minimum amount of duplicate samples that need
+ to exist in order for this to be considered discrete. The tricky thing
+ is that there are some operations that create duplicate continuous samples,
+ so we can't guarantee that these only will occur because the fundamental
+ structure is meant to be discrete. I chose this heuristic because I think
+ it would strike a reasonable trade-off, but I’m really unsure what’s
+ best right now.
+ */
+ let minDiscreteToKeep = samples => max(20, E.A.length(samples) / 50)
+}
diff --git a/packages/squiggle-lang/src/rescript/TypescriptInterface.res b/packages/squiggle-lang/src/rescript/TypescriptInterface.res
index a16e6875..70f3a3d1 100644
--- a/packages/squiggle-lang/src/rescript/TypescriptInterface.res
+++ b/packages/squiggle-lang/src/rescript/TypescriptInterface.res
@@ -13,6 +13,12 @@ type samplingParams = DistributionOperation.env
@genType
type genericDist = DistributionTypes.genericDist
+@genType
+type sampleSetDist = SampleSetDist.t
+
+@genType
+type symbolicDist = SymbolicDistTypes.symbolicDist
+
@genType
type distributionError = DistributionTypes.error
@@ -34,6 +40,12 @@ let evaluate = Reducer.evaluate
@genType
let evaluateUsingOptions = Reducer.evaluateUsingOptions
+@genType
+let evaluatePartialUsingExternalBindings = Reducer.evaluatePartialUsingExternalBindings
+
+@genType
+type externalBindings = Reducer.externalBindings
+
@genType
type expressionValue = ReducerInterface_ExpressionValue.expressionValue
diff --git a/packages/squiggle-lang/src/rescript/Utility/E.res b/packages/squiggle-lang/src/rescript/Utility/E.res
index 030c2961..e0bcaf5c 100644
--- a/packages/squiggle-lang/src/rescript/Utility/E.res
+++ b/packages/squiggle-lang/src/rescript/Utility/E.res
@@ -1,4 +1,7 @@
-open Rationale.Function.Infix
+/*
+Some functions from modules `L`, `O`, and `R` below were copied directly from
+running `rescript convert -all` on Rationale https://github.com/jonlaing/rationale
+*/
module FloatFloatMap = {
module Id = Belt.Id.MakeComparable({
type t = float
@@ -8,7 +11,7 @@ module FloatFloatMap = {
type t = Belt.MutableMap.t
let fromArray = (ar: array<(float, float)>) => Belt.MutableMap.fromArray(ar, ~id=module(Id))
- let toArray = (t: t) => Belt.MutableMap.toArray(t)
+ let toArray = (t: t): array<(float, float)> => Belt.MutableMap.toArray(t)
let empty = () => Belt.MutableMap.make(~id=module(Id))
let increment = (el, t: t) =>
Belt.MutableMap.update(t, el, x =>
@@ -20,6 +23,10 @@ module FloatFloatMap = {
let get = (el, t: t) => Belt.MutableMap.get(t, el)
let fmap = (fn, t: t) => Belt.MutableMap.map(t, fn)
+ let partition = (fn, t: t) => {
+ let (match, noMatch) = Belt.Array.partition(toArray(t), fn)
+ (fromArray(match), fromArray(noMatch))
+ }
}
module Int = {
@@ -51,17 +58,59 @@ module O = {
| None => rFn()
}
()
- let fmap = Rationale.Option.fmap
- let bind = Rationale.Option.bind
- let default = Rationale.Option.default
- let isSome = Rationale.Option.isSome
- let isNone = Rationale.Option.isNone
- let toExn = Rationale.Option.toExn
- let some = Rationale.Option.some
- let firstSome = Rationale.Option.firstSome
- let toExt = Rationale.Option.toExn // wanna flag this-- looks like a typo but `Rationale.OptiontoExt` doesn't exist.
- let flatApply = (fn, b) => Rationale.Option.apply(fn, Some(b)) |> Rationale.Option.flatten
- let flatten = Rationale.Option.flatten
+ let fmap = (f: 'a => 'b, x: option<'a>): option<'b> => {
+ switch x {
+ | None => None
+ | Some(x') => Some(f(x'))
+ }
+ }
+ let bind = (o, f) =>
+ switch o {
+ | None => None
+ | Some(a) => f(a)
+ }
+ let default = (d, o) =>
+ switch o {
+ | None => d
+ | Some(a) => a
+ }
+ let isSome = o =>
+ switch o {
+ | Some(_) => true
+ | _ => false
+ }
+ let isNone = o =>
+ switch o {
+ | None => true
+ | _ => false
+ }
+ let toExn = (err, o) =>
+ switch o {
+ | None => raise(Failure(err))
+ | Some(a) => a
+ }
+
+ let some = a => Some(a)
+ let firstSome = (a, b) =>
+ switch a {
+ | None => b
+ | _ => a
+ }
+
+ let toExt = toExn
+
+ let flatten = o =>
+ switch o {
+ | None => None
+ | Some(x) => x
+ }
+
+ let apply = (o, a) =>
+ switch o {
+ | Some(f) => bind(a, b => some(f(b)))
+ | _ => None
+ }
+ let flatApply = (fn, b) => apply(fn, Some(b)) |> flatten
let toBool = opt =>
switch opt {
@@ -109,6 +158,11 @@ module O2 = {
/* Functions */
module F = {
+ let pipe = (f, g, x) => g(f(x))
+ let compose = (f, g, x) => f(g(x))
+ let flip = (f, a, b) => f(b, a)
+ let always = (x, _y) => x
+
let apply = (a, e) => a |> e
let flatten2Callbacks = (fn1, fn2, fnlast) =>
@@ -156,10 +210,31 @@ exception Assertion(string)
/* R for Result */
module R = {
- let result = Rationale.Result.result
+ open Belt.Result
+ let result = (okF, errF, r) =>
+ switch r {
+ | Ok(a) => okF(a)
+ | Error(err) => errF(err)
+ }
let id = e => e |> result(U.id, U.id)
- let fmap = Rationale.Result.fmap
- let bind = Rationale.Result.bind
+ let isOk = Belt.Result.isOk
+ let getError = (r: result<'a, 'b>) =>
+ switch r {
+ | Ok(_) => None
+ | Error(e) => Some(e)
+ }
+ let fmap = (f: 'a => 'b, r: result<'a, 'c>): result<'b, 'c> => {
+ switch r {
+ | Ok(r') => Ok(f(r'))
+ | Error(err) => Error(err)
+ }
+ }
+ let bind = (r, f) =>
+ switch r {
+ | Ok(a) => f(a)
+ | Error(err) => Error(err)
+ }
+
let toExn = (msg: string, x: result<'a, 'b>): 'a =>
switch x {
| Ok(r) => r
@@ -186,14 +261,17 @@ module R = {
let errorIfCondition = (errorCondition, errorMessage, r) =>
errorCondition(r) ? Error(errorMessage) : Ok(r)
- let ap = Rationale.Result.ap
+ let ap = (r, a) =>
+ switch r {
+ | Ok(f) => Ok(f(a))
+ | Error(err) => Error(err)
+ }
let ap' = (r, a) =>
switch r {
| Ok(f) => fmap(f, a)
| Error(err) => Error(err)
}
- // (a1 -> a2 -> r) -> m a1 -> m a2 -> m r // not in Rationale
let liftM2: (('a, 'b) => 'c, result<'a, 'd>, result<'b, 'd>) => result<'c, 'd> = (op, xR, yR) => {
ap'(fmap(op, xR), yR)
}
@@ -243,7 +321,7 @@ module S = {
}
module J = {
- let toString = \"||>"(Js.Json.decodeString, O.default(""))
+ let toString = F.pipe(Js.Json.decodeString, O.default(""))
let fromString = Js.Json.string
let fromNumber = Js.Json.number
@@ -256,7 +334,7 @@ module J = {
let toString = (str: option<'a>) =>
switch str {
- | Some(str) => Some(str |> \"||>"(Js.Json.decodeString, O.default("")))
+ | Some(str) => Some(str |> F.pipe(Js.Json.decodeString, O.default("")))
| _ => None
}
}
@@ -271,34 +349,132 @@ module JsDate = {
/* List */
module L = {
+ module Util = {
+ let eq = (a, b) => a == b
+ }
let fmap = List.map
let get = Belt.List.get
let toArray = Array.of_list
let fmapi = List.mapi
let concat = List.concat
- let drop = Rationale.RList.drop
- let remove = Rationale.RList.remove
+ let concat' = (xs, ys) => List.append(ys, xs)
+
+ let rec drop = (i, xs) =>
+ switch (i, xs) {
+ | (_, list{}) => list{}
+ | (i, _) if i <= 0 => xs
+ | (i, list{_, ...b}) => drop(i - 1, b)
+ }
+
+ let append = (a, xs) => List.append(xs, list{a})
+ let take = {
+ let rec loop = (i, xs, acc) =>
+ switch (i, xs) {
+ | (i, _) if i <= 0 => acc
+ | (_, list{}) => acc
+ | (i, list{a, ...b}) => loop(i - 1, b, append(a, acc))
+ }
+ (i, xs) => loop(i, xs, list{})
+ }
+ let takeLast = (i, xs) => List.rev(xs) |> take(i) |> List.rev
+
+ let splitAt = (i, xs) => (take(i, xs), takeLast(List.length(xs) - i, xs))
+ let remove = (i, n, xs) => {
+ let (a, b) = splitAt(i, xs)
+ \"@"(a, drop(n, b))
+ }
+
let find = List.find
let filter = List.filter
let for_all = List.for_all
let exists = List.exists
let sort = List.sort
let length = List.length
- let filter_opt = Rationale.RList.filter_opt
- let uniqBy = Rationale.RList.uniqBy
- let join = Rationale.RList.join
- let head = Rationale.RList.head
- let uniq = Rationale.RList.uniq
+
+ let filter_opt = xs => {
+ let rec loop = (l, acc) =>
+ switch l {
+ | list{} => acc
+ | list{hd, ...tl} =>
+ switch hd {
+ | None => loop(tl, acc)
+ | Some(x) => loop(tl, list{x, ...acc})
+ }
+ }
+ List.rev(loop(xs, list{}))
+ }
+
+ let containsWith = f => List.exists(f)
+
+ let uniqWithBy = (eq, f, xs) =>
+ List.fold_left(
+ ((acc, tacc), v) =>
+ containsWith(eq(f(v)), tacc) ? (acc, tacc) : (append(v, acc), append(f(v), tacc)),
+ (list{}, list{}),
+ xs,
+ ) |> fst
+
+ let uniqBy = (f, xs) => uniqWithBy(Util.eq, f, xs)
+ let join = j => List.fold_left((acc, v) => String.length(acc) == 0 ? v : acc ++ (j ++ v), "")
+
+ let head = xs =>
+ switch List.hd(xs) {
+ | exception _ => None
+ | a => Some(a)
+ }
+
+ let uniq = xs => uniqBy(x => x, xs)
let flatten = List.flatten
- let last = Rationale.RList.last
+ let last = xs => xs |> List.rev |> head
let append = List.append
let getBy = Belt.List.getBy
- let dropLast = Rationale.RList.dropLast
- let contains = Rationale.RList.contains
- let without = Rationale.RList.without
- let update = Rationale.RList.update
+ let dropLast = (i, xs) => take(List.length(xs) - i, xs)
+ let containsWith = f => List.exists(f)
+ let contains = x => containsWith(Util.eq(x))
+
+ let reject = pred => List.filter(x => !pred(x))
+ let tail = xs =>
+ switch List.tl(xs) {
+ | exception _ => None
+ | a => Some(a)
+ }
+
+ let init = xs => {
+ O.fmap(List.rev, xs |> List.rev |> tail)
+ }
+
+ let singleton = (x: 'a): list<'a> => list{x}
+
+ let adjust = (f, i, xs) => {
+ let (a, b) = splitAt(i + 1, xs)
+ switch a {
+ | _ if i < 0 => xs
+ | _ if i >= List.length(xs) => xs
+ | list{} => b
+ | list{a} => list{f(a), ...b}
+ | a =>
+ O.fmap(
+ concat'(b),
+ O.bind(init(a), x =>
+ O.fmap(F.flip(append, x), O.fmap(fmap(f), O.fmap(singleton, last(a))))
+ ),
+ ) |> O.default(xs)
+ }
+ }
+
+ let without = (exclude, xs) => reject(x => contains(x, exclude), xs)
+ let update = (x, i, xs) => adjust(F.always(x), i, xs)
let iter = List.iter
- let findIndex = Rationale.RList.findIndex
+
+ let findIndex = {
+ let rec loop = (pred, xs, i) =>
+ switch xs {
+ | list{} => None
+ | list{a, ...b} => pred(a) ? Some(i) : loop(pred, b, i + 1)
+ }
+ (pred, xs) => loop(pred, xs, 0)
+ }
+
let headSafe = Belt.List.head
let tailSafe = Belt.List.tail
let headExn = Belt.List.headExn
@@ -360,7 +536,7 @@ module A = {
Belt.Array.getUnsafe(a, index),
Belt.Array.getUnsafe(a, index + 1),
))
- |> Rationale.Result.return
+ |> (x => Ok(x))
}
let tail = Belt.Array.sliceToEnd(_, 1)
@@ -424,8 +600,8 @@ module A = {
module O = {
let concatSomes = (optionals: array>): array<'a> =>
optionals
- |> Js.Array.filter(Rationale.Option.isSome)
- |> Js.Array.map(Rationale.Option.toExn("Warning: This should not have happened"))
+ |> Js.Array.filter(O.isSome)
+ |> Js.Array.map(O.toExn("Warning: This should not have happened"))
let defaultEmpty = (o: option>): array<'a> =>
switch o {
| Some(o) => o
@@ -475,76 +651,8 @@ module A = {
}
}
- module Sorted = {
- let min = first
- let max = last
- let range = (~min=min, ~max=max, a) =>
- switch (min(a), max(a)) {
- | (Some(min), Some(max)) => Some(max -. min)
- | _ => None
- }
-
- let floatCompare: (float, float) => int = compare
-
- let binarySearchFirstElementGreaterIndex = (ar: array<'a>, el: 'a) => {
- let el = Belt.SortArray.binarySearchBy(ar, el, floatCompare)
- let el = el < 0 ? el * -1 - 1 : el
- switch el {
- | e if e >= length(ar) => #overMax
- | e if e == 0 => #underMin
- | e => #firstHigher(e)
- }
- }
-
- let concat = (t1: array<'a>, t2: array<'a>) => {
- let ts = Belt.Array.concat(t1, t2)
- ts |> Array.fast_sort(floatCompare)
- ts
- }
-
- let concatMany = (t1: array>) => {
- let ts = Belt.Array.concatMany(t1)
- ts |> Array.fast_sort(floatCompare)
- ts
- }
-
- module Floats = {
- let isSorted = (ar: array): bool =>
- reduce(zip(ar, tail(ar)), true, (acc, (first, second)) => acc && first < second)
-
- let makeIncrementalUp = (a, b) =>
- Array.make(b - a + 1, a) |> Array.mapi((i, c) => c + i) |> Belt.Array.map(_, float_of_int)
-
- let makeIncrementalDown = (a, b) =>
- Array.make(a - b + 1, a) |> Array.mapi((i, c) => c - i) |> Belt.Array.map(_, float_of_int)
-
- let split = (sortedArray: array) => {
- let continuous = []
- let discrete = FloatFloatMap.empty()
- Belt.Array.forEachWithIndex(sortedArray, (_, element) => {
- // let maxIndex = (sortedArray |> Array.length) - 1
- // let possiblySimilarElements = switch index {
- // | 0 => [index + 1]
- // | n if n == maxIndex => [index - 1]
- // | _ => [index - 1, index + 1]
- // } |> Belt.Array.map(_, r => sortedArray[r])
- // let hasSimilarElement = Belt.Array.some(possiblySimilarElements, r => r == element)
- let hasSimilarElement = false
- hasSimilarElement
- ? FloatFloatMap.increment(element, discrete)
- : {
- let _ = Js.Array.push(element, continuous)
- }
-
- ()
- })
-
- (continuous, discrete)
- }
- }
- }
-
module Floats = {
+ type t = array
let mean = Jstat.mean
let geomean = Jstat.geomean
let mode = Jstat.mode
@@ -553,14 +661,31 @@ module A = {
let sum = Jstat.sum
let random = Js.Math.random_int
+ let floatCompare: (float, float) => int = compare
+ let sort = t => {
+ let r = t
+ r |> Array.fast_sort(floatCompare)
+ r
+ }
+
+ let getNonFinite = (t: t) => Belt.Array.getBy(t, r => !Js.Float.isFinite(r))
+ let getBelowZero = (t: t) => Belt.Array.getBy(t, r => r < 0.0)
+
+ let isSorted = (t: t): bool =>
+ if Array.length(t) < 1 {
+ true
+ } else {
+ reduce(zip(t, tail(t)), true, (acc, (first, second)) => acc && first < second)
+ }
+
//Passing true for the exclusive parameter excludes both endpoints of the range.
//https://jstat.github.io/all.html
let percentile = (a, b) => Jstat.percentile(a, b, false)
// Gives an array with all the differences between values
// diff([1,5,3,7]) = [4,-2,4]
- let diff = (arr: array): array =>
- Belt.Array.zipBy(arr, Belt.Array.sliceToEnd(arr, 1), (left, right) => right -. left)
+ let diff = (t: t): array =>
+ Belt.Array.zipBy(t, Belt.Array.sliceToEnd(t, 1), (left, right) => right -. left)
exception RangeError(string)
let range = (min: float, max: float, n: int): array =>
@@ -578,18 +703,104 @@ module A = {
let min = Js.Math.minMany_float
let max = Js.Math.maxMany_float
+
+ module Sorted = {
+ let min = first
+ let max = last
+ let range = (~min=min, ~max=max, a) =>
+ switch (min(a), max(a)) {
+ | (Some(min), Some(max)) => Some(max -. min)
+ | _ => None
+ }
+
+ let binarySearchFirstElementGreaterIndex = (ar: array<'a>, el: 'a) => {
+ let el = Belt.SortArray.binarySearchBy(ar, el, floatCompare)
+ let el = el < 0 ? el * -1 - 1 : el
+ switch el {
+ | e if e >= length(ar) => #overMax
+ | e if e == 0 => #underMin
+ | e => #firstHigher(e)
+ }
+ }
+
+ let concat = (t1: array<'a>, t2: array<'a>) => Belt.Array.concat(t1, t2)->sort
+
+ let concatMany = (t1: array>) => Belt.Array.concatMany(t1)->sort
+
+ let makeIncrementalUp = (a, b) =>
+ Array.make(b - a + 1, a) |> Array.mapi((i, c) => c + i) |> Belt.Array.map(_, float_of_int)
+
+ let makeIncrementalDown = (a, b) =>
+ Array.make(a - b + 1, a) |> Array.mapi((i, c) => c - i) |> Belt.Array.map(_, float_of_int)
+
+ /*
+ This function goes through a sorted array and divides it into two different clusters:
+ continuous samples and discrete samples. The discrete samples are stored in a mutable map.
+ Samples are thought to be discrete if they have any duplicates.
+ */
+ let _splitContinuousAndDiscreteForDuplicates = (sortedArray: array) => {
+ let continuous: array = []
+ let discrete = FloatFloatMap.empty()
+ Belt.Array.forEachWithIndex(sortedArray, (index, element) => {
+ let maxIndex = (sortedArray |> Array.length) - 1
+ let possiblySimilarElements = switch index {
+ | 0 => [index + 1]
+ | n if n == maxIndex => [index - 1]
+ | _ => [index - 1, index + 1]
+ } |> Belt.Array.map(_, r => sortedArray[r])
+ let hasSimilarElement = Belt.Array.some(possiblySimilarElements, r => r == element)
+ hasSimilarElement
+ ? FloatFloatMap.increment(element, discrete)
+ : {
+ let _ = Js.Array.push(element, continuous)
+ }
+
+ ()
+ })
+
+ (continuous, discrete)
+ }
+
+ /*
+ This function works very similarly to splitContinuousAndDiscreteForDuplicates. The one major difference
+ is that you can specify a minDiscreteWeight. If the min discreet weight is 4, that would mean that
+ at least four elements needed from a specific value for that to be kept as discrete. This is important
+ because in some cases, we can expect that some common elements will be generated by regular operations.
+ The final continous array will be sorted.
+ */
+ let splitContinuousAndDiscreteForMinWeight = (
+ sortedArray: array,
+ ~minDiscreteWeight: int,
+ ) => {
+ let (continuous, discrete) = _splitContinuousAndDiscreteForDuplicates(sortedArray)
+ let keepFn = v => Belt.Float.toInt(v) >= minDiscreteWeight
+ let (discreteToKeep, discreteToIntegrate) = FloatFloatMap.partition(
+ ((_, v)) => keepFn(v),
+ discrete,
+ )
+ let newContinousSamples =
+ discreteToIntegrate->FloatFloatMap.toArray
+ |> fmap(((k, v)) => Belt.Array.makeBy(Belt.Float.toInt(v), _ => k))
+ |> Belt.Array.concatMany
+ let newContinuous = concat(continuous, newContinousSamples)
+ newContinuous |> Array.fast_sort(floatCompare)
+ (newContinuous, discreteToKeep)
+ }
+ }
}
+ module Sorted = Floats.Sorted
}
module A2 = {
let fmap = (a, b) => A.fmap(b, a)
let joinWith = (a, b) => A.joinWith(b, a)
+ let filter = (a, b) => A.filter(b, a)
}
module JsArray = {
let concatSomes = (optionals: Js.Array.t>): Js.Array.t<'a> =>
optionals
- |> Js.Array.filter(Rationale.Option.isSome)
- |> Js.Array.map(Rationale.Option.toExn("Warning: This should not have happened"))
+ |> Js.Array.filter(O.isSome)
+ |> Js.Array.map(O.toExn("Warning: This should not have happened"))
let filter = Js.Array.filter
}
diff --git a/packages/squiggle-lang/src/rescript/Utility/Operation.res b/packages/squiggle-lang/src/rescript/Utility/Operation.res
index ac83ceea..4a1ef91a 100644
--- a/packages/squiggle-lang/src/rescript/Utility/Operation.res
+++ b/packages/squiggle-lang/src/rescript/Utility/Operation.res
@@ -29,6 +29,18 @@ type distToFloatOperation = [
module Convolution = {
type t = convolutionOperation
+ //Only a selection of operations are supported by convolution.
+ let fromAlgebraicOperation = (op: algebraicOperation): option =>
+ switch op {
+ | #Add => Some(#Add)
+ | #Subtract => Some(#Subtract)
+ | #Multiply => Some(#Multiply)
+ | #Divide | #Power | #Logarithm => None
+ }
+
+ let canDoAlgebraicOperation = (op: algebraicOperation): bool =>
+ fromAlgebraicOperation(op)->E.O.isSome
+
let toFn: (t, float, float) => float = x =>
switch x {
| #Add => \"+."
diff --git a/packages/squiggle-lang/src/rescript/Utility/XYShape.res b/packages/squiggle-lang/src/rescript/Utility/XYShape.res
index 97974884..1f1e87ca 100644
--- a/packages/squiggle-lang/src/rescript/Utility/XYShape.res
+++ b/packages/squiggle-lang/src/rescript/Utility/XYShape.res
@@ -4,6 +4,42 @@ type xyShape = {
ys: array,
}
+type propertyName = string
+
+@genType
+type rec error =
+ | NotSorted(propertyName)
+ | IsEmpty(propertyName)
+ | NotFinite(propertyName, float)
+ | DifferentLengths({p1Name: string, p2Name: string, p1Length: int, p2Length: int})
+ | MultipleErrors(array)
+
+@genType
+module Error = {
+ let mapErrorArrayToError = (errors: array): option => {
+ switch errors {
+ | [] => None
+ | [error] => Some(error)
+ | _ => Some(MultipleErrors(errors))
+ }
+ }
+
+ let rec toString = (t: error) =>
+ switch t {
+ | NotSorted(propertyName) => `${propertyName} is not sorted`
+ | IsEmpty(propertyName) => `${propertyName} is empty`
+ | NotFinite(propertyName, exampleValue) =>
+ `${propertyName} is not finite. Example value: ${E.Float.toString(exampleValue)}`
+ | DifferentLengths({p1Name, p2Name, p1Length, p2Length}) =>
+ `${p1Name} and ${p2Name} have different lengths. ${p1Name} has length ${E.I.toString(
+ p1Length,
+ )} and ${p2Name} has length ${E.I.toString(p2Length)}`
+ | MultipleErrors(errors) =>
+ `Multiple Errors: ${E.A2.fmap(errors, toString)->E.A2.fmap(r => `[${r}]`)
+ |> E.A.joinWith(", ")}`
+ }
+}
+
@genType
type interpolationStrategy = [
| #Stepwise
@@ -60,6 +96,44 @@ module T = {
let fromZippedArray = (pairs: array<(float, float)>): t => pairs |> Belt.Array.unzip |> fromArray
let equallyDividedXs = (t: t, newLength) => E.A.Floats.range(minX(t), maxX(t), newLength)
let toJs = (t: t) => {"xs": t.xs, "ys": t.ys}
+
+ module Validator = {
+ let fnName = "XYShape validate"
+ let notSortedError = (p: string): error => NotSorted(p)
+ let notFiniteError = (p, exampleValue): error => NotFinite(p, exampleValue)
+ let isEmptyError = (propertyName): error => IsEmpty(propertyName)
+ let differentLengthsError = (t): error => DifferentLengths({
+ p1Name: "Xs",
+ p2Name: "Ys",
+ p1Length: E.A.length(xs(t)),
+ p2Length: E.A.length(ys(t)),
+ })
+
+ let areXsSorted = (t: t) => E.A.Floats.isSorted(xs(t))
+ let areXsEmpty = (t: t) => E.A.length(xs(t)) == 0
+ let getNonFiniteXs = (t: t) => t->xs->E.A.Floats.getNonFinite
+ let getNonFiniteYs = (t: t) => t->ys->E.A.Floats.getNonFinite
+
+ let validate = (t: t) => {
+ let xsNotSorted = areXsSorted(t) ? None : Some(notSortedError("Xs"))
+ let xsEmpty = areXsEmpty(t) ? Some(isEmptyError("Xs")) : None
+ let differentLengths =
+ E.A.length(xs(t)) !== E.A.length(ys(t)) ? Some(differentLengthsError(t)) : None
+ let xsNotFinite = getNonFiniteXs(t)->E.O2.fmap(notFiniteError("Xs"))
+ let ysNotFinite = getNonFiniteYs(t)->E.O2.fmap(notFiniteError("Ys"))
+ [xsNotSorted, xsEmpty, differentLengths, xsNotFinite, ysNotFinite]
+ ->E.A.O.concatSomes
+ ->Error.mapErrorArrayToError
+ }
+ }
+
+ let make = (~xs: array, ~ys: array) => {
+ let attempt: t = {xs: xs, ys: ys}
+ switch Validator.validate(attempt) {
+ | Some(error) => Error(error)
+ | None => Ok(attempt)
+ }
+ }
}
module Ts = {
diff --git a/packages/website/docs/Discussions/Gallery.md b/packages/website/docs/Discussions/Gallery.md
new file mode 100644
index 00000000..fee8f344
--- /dev/null
+++ b/packages/website/docs/Discussions/Gallery.md
@@ -0,0 +1,7 @@
+---
+sidebar_position: 6
+title: Gallery
+---
+
+- [Adjusting probabilities for the passage of time](https://www.lesswrong.com/s/rDe8QE5NvXcZYzgZ3/p/j8o6sgRerE3tqNWdj) by Nuño Sempere
+- [GiveWell's GiveDirectly cost effectiveness analysis](https://observablehq.com/@hazelfire/givewells-givedirectly-cost-effectiveness-analysis) by Sam Nolan
diff --git a/packages/website/docs/Discussions/Three-Types-Of-Distributions.md b/packages/website/docs/Discussions/Three-Formats-Of-Distributions.md
similarity index 99%
rename from packages/website/docs/Discussions/Three-Types-Of-Distributions.md
rename to packages/website/docs/Discussions/Three-Formats-Of-Distributions.md
index ffd99fc1..8ec5b88d 100644
--- a/packages/website/docs/Discussions/Three-Types-Of-Distributions.md
+++ b/packages/website/docs/Discussions/Three-Formats-Of-Distributions.md
@@ -1,12 +1,10 @@
---
sidebar_position: 5
+title: Three Formats of Distributions
+author: Ozzie Gooen
+date: 02-19-2022
---
-# Three Formats of Distributions
-
-_Author: Ozzie Gooen_
-_Written on: Feb 19, 2022_
-
Probability distributions have several subtle possible formats. Three important ones that we deal with in Squiggle are symbolic, sample set, and graph formats.
_Symbolic_ formats are just the math equations. `normal(5,3)` is the symbolic representation of a normal distribution.
diff --git a/packages/website/docs/Features/Language.mdx b/packages/website/docs/Features/Language.mdx
index e559fb60..5b66d2e2 100644
--- a/packages/website/docs/Features/Language.mdx
+++ b/packages/website/docs/Features/Language.mdx
@@ -1,39 +1,53 @@
---
sidebar_position: 2
+title: Language Basics
---
import { SquiggleEditor } from "../../src/components/SquiggleEditor";
-# Squiggle Language
+## Expressions
-The squiggle language has a very simple syntax. The best way to get to understand
-it is by simply looking at examples.
+A distribution
-## Basic Language
+
-As an example:
+A number
+
+
+
+Arrays
+
+
+
+Records
+
+
+
+## Statements
+
+A statement assigns expressions to names. It looks like ` = `
-Squiggle can declare variables (`value_of_work = 10 to 70`) and declare exports
-(the lone `value_of_work` line). Variables can be used later in a squiggle program
-and even in other notebooks!
+### Functions
-An export is rendered to the output view so you can see your result.
-
-the exports can be expressions, such as:
-
-
-
-## Functions
-
-Squiggle supports functions, including the rendering of functions:
+We can define functions
+
+## See more
+
+- [Functions reference](https://squiggle-language.com/docs/Features/Functions)
+- [Gallery](https://squiggle-language.com/docs/Discussions/Gallery)
diff --git a/packages/website/docs/Features/Javascript-Libraries.md b/packages/website/docs/Features/Node-Packages.md
similarity index 82%
rename from packages/website/docs/Features/Javascript-Libraries.md
rename to packages/website/docs/Features/Node-Packages.md
index c782be6f..ab590c32 100644
--- a/packages/website/docs/Features/Javascript-Libraries.md
+++ b/packages/website/docs/Features/Node-Packages.md
@@ -1,13 +1,12 @@
---
sidebar_position: 3
+title: Node Packages
---
-# Javascript Libraries
-
There are two JavaScript packages currently available for Squiggle:
-- [`@quri/squiggle-lang`](https://www.npmjs.com/package/@quri/squiggle-lang)
-- [`@quri/squiggle-components`](https://www.npmjs.com/package/@quri/squiggle-components)
+- [`@quri/squiggle-lang`](https://www.npmjs.com/package/@quri/squiggle-lang) ![npm version](https://badge.fury.io/js/@quri%2Fsquiggle-lang.svg)
+- [`@quri/squiggle-components`](https://www.npmjs.com/package/@quri/squiggle-components) ![npm version](https://badge.fury.io/js/@quri%2Fsquiggle-components.svg)
Types are available for both packages.
@@ -23,8 +22,8 @@ argument allows you to pass an environment previously created by another `run`
call. Passing this environment will mean that all previously declared variables
in the previous environment will be made available.
-The return type of `run` is a bit complicated, and comes from auto generated js
-code that comes from rescript. I highly recommend using typescript when using
+The return type of `run` is a bit complicated, and comes from auto generated `js`
+code that comes from rescript. We highly recommend using typescript when using
this library to help navigate the return type.
## Squiggle Components
diff --git a/packages/website/docs/Internal/ProcessingConfidenceIntervals.md b/packages/website/docs/Internal/Processing-Confidence-Intervals.md
similarity index 78%
rename from packages/website/docs/Internal/ProcessingConfidenceIntervals.md
rename to packages/website/docs/Internal/Processing-Confidence-Intervals.md
index 99e72e5a..01afeb79 100644
--- a/packages/website/docs/Internal/ProcessingConfidenceIntervals.md
+++ b/packages/website/docs/Internal/Processing-Confidence-Intervals.md
@@ -1,6 +1,9 @@
-# Processing confidence intervals
+---
+title: Processing Confidence Intervals
+author: Nuño Sempere
+---
-This page explains what we are doing when we take a 95% confidence interval, and we get a mean and a standard deviation from it
+This page explains what we are doing when we take a 90% confidence interval, and we get a mean and a standard deviation from it.
## For normals
@@ -19,10 +22,7 @@ module Normal = {
We know that for a normal with mean $\mu$ and standard deviation $\sigma$,
$$
-
-a \cdot Normal(\mu, \sigma) = Normal(a\cdot \mu, |a|\cdot \sigma)
-
-
+a \cdot Normal(\mu, \sigma) = Normal(a \cdot \mu, |a| \cdot \sigma)
$$
We can now look at the inverse cdf of a $Normal(0,1)$. We find that the 95% point is reached at $1.6448536269514722$. ([source](https://stackoverflow.com/questions/20626994/how-to-calculate-the-inverse-of-the-normal-cumulative-distribution-function-in-p)) This means that the 90% confidence interval is $[-1.6448536269514722, 1.6448536269514722]$, which has a width of $2 \cdot 1.6448536269514722$.
@@ -30,3 +30,5 @@ We can now look at the inverse cdf of a $Normal(0,1)$. We find that the 95% poin
So then, if we take a $Normal(0,1)$ and we multiply it by $\frac{(high -. low)}{(2. *. 1.6448536269514722)}$, it's 90% confidence interval will be multiplied by the same amount. Then we just have to shift it by the mean to get our target normal.
## For lognormals
+
+TODO
diff --git a/packages/website/docs/Introduction.md b/packages/website/docs/Introduction.md
index ecfe7f02..91cfd919 100644
--- a/packages/website/docs/Introduction.md
+++ b/packages/website/docs/Introduction.md
@@ -1,10 +1,16 @@
---
sidebar_position: 1
+title: Introduction
---
-# Squiggle
+Squiggle is an _estimation language_, and a syntax for _calculating and expressing beliefs_ involving uncertainty. It has use cases in forecasting and writing evaluations.
-Squiggle is a language for writing calculations under uncertainty. It has use
-cases in forecasting and writing better evaluations.
+## Get started
-The best way to get started with Squiggle is to [try it out yourself](https://playground.squiggle-language.com/).
+- [Gallery](https://www.squiggle-language.com/docs/Discussions/Gallery)
+- [Squiggle playground](https://squiggle-language.com/playground)
+- [Language basics](https://www.squiggle-language.com/docs/Features/Language)
+- [Squiggle functions source of truth](https://www.squiggle-language.com/docs/Features/Functions)
+- [Known bugs](https://www.squiggle-language.com/docs/Discussions/Bugs)
+- [Original lesswrong sequence](https://www.lesswrong.com/s/rDe8QE5NvXcZYzgZ3)
+- [Author your squiggle models as Observable notebooks](https://observablehq.com/@hazelfire/squiggle)
diff --git a/packages/website/static/img/docusaurus.png b/packages/website/static/img/docusaurus.png
deleted file mode 100644
index f458149e..00000000
Binary files a/packages/website/static/img/docusaurus.png and /dev/null differ
diff --git a/packages/website/static/img/favicon.ico b/packages/website/static/img/favicon.ico
index d318e234..d88e28c4 100644
Binary files a/packages/website/static/img/favicon.ico and b/packages/website/static/img/favicon.ico differ
diff --git a/packages/website/static/img/logo.svg b/packages/website/static/img/logo.svg
deleted file mode 100644
index 9db6d0d0..00000000
--- a/packages/website/static/img/logo.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/packages/website/static/img/quri-logo-with-QURI-written-underneath.png b/packages/website/static/img/quri-logo-with-QURI-written-underneath.png
new file mode 100644
index 00000000..14932c80
Binary files /dev/null and b/packages/website/static/img/quri-logo-with-QURI-written-underneath.png differ
diff --git a/packages/website/static/img/quri-logo.png b/packages/website/static/img/quri-logo.png
index 14932c80..d88e28c4 100644
Binary files a/packages/website/static/img/quri-logo.png and b/packages/website/static/img/quri-logo.png differ
diff --git a/packages/website/static/img/undraw_docusaurus_mountain.svg b/packages/website/static/img/undraw_docusaurus_mountain.svg
deleted file mode 100644
index 431cef2f..00000000
--- a/packages/website/static/img/undraw_docusaurus_mountain.svg
+++ /dev/null
@@ -1,170 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/packages/website/static/img/undraw_docusaurus_react.svg b/packages/website/static/img/undraw_docusaurus_react.svg
deleted file mode 100644
index e4170504..00000000
--- a/packages/website/static/img/undraw_docusaurus_react.svg
+++ /dev/null
@@ -1,169 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/packages/website/static/img/undraw_docusaurus_tree.svg b/packages/website/static/img/undraw_docusaurus_tree.svg
deleted file mode 100644
index a05cc03d..00000000
--- a/packages/website/static/img/undraw_docusaurus_tree.svg
+++ /dev/null
@@ -1 +0,0 @@
-docu_tree
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
index f9feaabc..3597fea6 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -131,11 +131,12 @@
"@algolia/requester-common" "4.13.0"
"@ampproject/remapping@^2.1.0":
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34"
- integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d"
+ integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==
dependencies:
- "@jridgewell/trace-mapping" "^0.3.0"
+ "@jridgewell/gen-mapping" "^0.1.0"
+ "@jridgewell/trace-mapping" "^0.3.9"
"@ant-design/colors@^6.0.0":
version "6.0.0"
@@ -1351,7 +1352,7 @@
resolved "https://registry.yarnpkg.com/@csstools/normalize.css/-/normalize.css-12.0.0.tgz#a9583a75c3f150667771f30b60d9f059473e62c4"
integrity sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg==
-"@csstools/postcss-color-function@^1.0.3":
+"@csstools/postcss-color-function@^1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@csstools/postcss-color-function/-/postcss-color-function-1.1.0.tgz#229966327747f58fbe586de35daa139db3ce1e5d"
integrity sha512-5D5ND/mZWcQoSfYnSPsXtuiFxhzmhxt6pcjrFLJyldj+p0ZN2vvRpYNX+lahFTtMhAYOa2WmkdGINr0yP0CvGA==
@@ -1381,7 +1382,7 @@
"@csstools/postcss-progressive-custom-properties" "^1.1.0"
postcss-value-parser "^4.2.0"
-"@csstools/postcss-is-pseudo-class@^2.0.1":
+"@csstools/postcss-is-pseudo-class@^2.0.2":
version "2.0.2"
resolved "https://registry.yarnpkg.com/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.2.tgz#a834ca11a43d6ed9bc9e3ff53c80d490a4b1aaad"
integrity sha512-L9h1yxXMj7KpgNzlMrw3isvHJYkikZgZE4ASwssTnGEH8tm50L6QsM9QQT5wR4/eO5mU0rN5axH7UzNxEYg5CA==
@@ -1395,7 +1396,7 @@
dependencies:
postcss-value-parser "^4.2.0"
-"@csstools/postcss-oklab-function@^1.0.2":
+"@csstools/postcss-oklab-function@^1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.0.tgz#e9a269487a292e0930760948e923e1d46b638ee6"
integrity sha512-e/Q5HopQzmnQgqimG9v3w2IG4VRABsBq3itOcn4bnm+j4enTgQZ0nWsaH/m9GV2otWGQ0nwccYL5vmLKyvP1ww==
@@ -1920,10 +1921,10 @@
resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46"
integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==
-"@eslint/eslintrc@^1.2.1":
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.2.1.tgz#8b5e1c49f4077235516bc9ec7d41378c0f69b8c6"
- integrity sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==
+"@eslint/eslintrc@^1.2.2":
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.2.2.tgz#4989b9e8c0216747ee7cca314ae73791bb281aae"
+ integrity sha512-lTVWHs7O2hjBFZunXTZYnYqtB9GakA1lnxIf+gKq2nY5gxkkNi/lQvveW6t8gFdOHTg6nG50Xs95PrLqVpcaLg==
dependencies:
ajv "^6.12.4"
debug "^4.3.2"
@@ -1992,7 +1993,7 @@
dependencies:
"@istanbuljs/schema" "^0.1.2"
-"@istanbuljs/schema@^0.1.2":
+"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3":
version "0.1.3"
resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98"
integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==
@@ -2009,6 +2010,18 @@
jest-util "^27.5.1"
slash "^3.0.0"
+"@jest/console@^28.0.2":
+ version "28.0.2"
+ resolved "https://registry.yarnpkg.com/@jest/console/-/console-28.0.2.tgz#d11e8b43ae431ae9b3112656848417ae4008fcad"
+ integrity sha512-tiRpnMeeyQuuzgL5UNSeiqMwF8UOWPbAE5rzcu/1zyq4oPG2Ox6xm4YCOruwbp10F8odWc+XwVxTyGzMSLMqxA==
+ dependencies:
+ "@jest/types" "^28.0.2"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ jest-message-util "^28.0.2"
+ jest-util "^28.0.2"
+ slash "^3.0.0"
+
"@jest/core@^27.5.1":
version "27.5.1"
resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.5.1.tgz#267ac5f704e09dc52de2922cbf3af9edcd64b626"
@@ -2105,6 +2118,13 @@
terminal-link "^2.0.0"
v8-to-istanbul "^8.1.0"
+"@jest/schemas@^28.0.2":
+ version "28.0.2"
+ resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-28.0.2.tgz#08c30df6a8d07eafea0aef9fb222c5e26d72e613"
+ integrity sha512-YVDJZjd4izeTDkij00vHHAymNXQ6WWsdChFRK86qck6Jpr3DCL5W3Is3vslviRlP+bLuMYRLbdp98amMvqudhA==
+ dependencies:
+ "@sinclair/typebox" "^0.23.3"
+
"@jest/source-map@^27.5.1":
version "27.5.1"
resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.5.1.tgz#6608391e465add4205eae073b55e7f279e04e8cf"
@@ -2124,6 +2144,16 @@
"@types/istanbul-lib-coverage" "^2.0.0"
collect-v8-coverage "^1.0.0"
+"@jest/test-result@^28.0.2":
+ version "28.0.2"
+ resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-28.0.2.tgz#bc8e15a95347e3c2149572ae06a5a6fed939c522"
+ integrity sha512-4EUqgjq9VzyUiVTvZfI9IRJD6t3NYBNP4f+Eq8Zr93+hkJ0RrGU4OBTw8tfNzidKX+bmuYzn8FxqpxOPIGGCMA==
+ dependencies:
+ "@jest/console" "^28.0.2"
+ "@jest/types" "^28.0.2"
+ "@types/istanbul-lib-coverage" "^2.0.0"
+ collect-v8-coverage "^1.0.0"
+
"@jest/test-sequencer@^27.5.1":
version "27.5.1"
resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz#4057e0e9cea4439e544c6353c6affe58d095745b"
@@ -2198,20 +2228,45 @@
"@types/yargs" "^16.0.0"
chalk "^4.0.0"
+"@jest/types@^28.0.2":
+ version "28.0.2"
+ resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.0.2.tgz#70b9538c1863fb060b2f438ca008b5563d00c5b4"
+ integrity sha512-hi3jUdm9iht7I2yrV5C4s3ucCJHUP8Eh3W6rQ1s4n/Qw9rQgsda4eqCt+r3BKRi7klVmZfQlMx1nGlzNMP2d8A==
+ dependencies:
+ "@jest/schemas" "^28.0.2"
+ "@types/istanbul-lib-coverage" "^2.0.0"
+ "@types/istanbul-reports" "^3.0.0"
+ "@types/node" "*"
+ "@types/yargs" "^17.0.8"
+ chalk "^4.0.0"
+
+"@jridgewell/gen-mapping@^0.1.0":
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996"
+ integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==
+ dependencies:
+ "@jridgewell/set-array" "^1.0.0"
+ "@jridgewell/sourcemap-codec" "^1.4.10"
+
"@jridgewell/resolve-uri@^3.0.3":
- version "3.0.5"
- resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz#68eb521368db76d040a6315cdb24bf2483037b9c"
- integrity sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==
+ version "3.0.6"
+ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.6.tgz#4ac237f4dabc8dd93330386907b97591801f7352"
+ integrity sha512-R7xHtBSNm+9SyvpJkdQl+qrM3Hm2fea3Ef197M3mUug+v+yR+Rhfbs7PBtcBUVnIWJ4JcAdjvij+c8hXS9p5aw==
+
+"@jridgewell/set-array@^1.0.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.0.tgz#1179863356ac8fbea64a5a4bcde93a4871012c01"
+ integrity sha512-SfJxIxNVYLTsKwzB3MoOQ1yxf4w/E6MdkvTgrgAt1bfxjSrLUoHMKrDOykwN14q65waezZIdqDneUIPh4/sKxg==
"@jridgewell/sourcemap-codec@^1.4.10":
version "1.4.11"
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec"
integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==
-"@jridgewell/trace-mapping@^0.3.0":
- version "0.3.4"
- resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz#f6a0832dffd5b8a6aaa633b7d9f8e8e94c83a0c3"
- integrity sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==
+"@jridgewell/trace-mapping@^0.3.7", "@jridgewell/trace-mapping@^0.3.9":
+ version "0.3.9"
+ resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9"
+ integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==
dependencies:
"@jridgewell/resolve-uri" "^3.0.3"
"@jridgewell/sourcemap-codec" "^1.4.10"
@@ -2345,6 +2400,18 @@
resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.5.tgz#db5a11bf66bdab39569719555b0f76e138d7bd64"
integrity sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==
+"@quri/squiggle-components@0.2.9":
+ version "0.2.9"
+ resolved "https://registry.yarnpkg.com/@quri/squiggle-components/-/squiggle-components-0.2.9.tgz#9a2c7ce824ad59f980dc73e465676bd2563d409c"
+ integrity sha512-RpMTCzf7vBY+fatdjD+iFWkleMYOkJQN7kknZlLBriSo8Fy5KjhKghR+DotU+HE/2Yq1jUIveaIDF0XRBg+SVA==
+ dependencies:
+ "@react-hook/size" "^2.1.2"
+ antd "^4.20.0"
+ react "^18.0.0"
+ react-ace "10.0.0"
+ react-dom "^18.0.0"
+ styled-components "^5.3.5"
+
"@react-hook/latest@^1.0.2":
version "1.0.3"
resolved "https://registry.yarnpkg.com/@react-hook/latest/-/latest-1.0.3.tgz#c2d1d0b0af8b69ec6e2b3a2412ba0768ac82db80"
@@ -2412,9 +2479,9 @@
picomatch "^2.2.2"
"@rushstack/eslint-patch@^1.1.0":
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.1.2.tgz#7a26e63b1bdaf654bcce2176a38b83f7f576327e"
- integrity sha512-oe5WJEDaVsW8fBlGT7udrSCgOwWfoYHQOmSpnh8X+0GXpqqcRCP8k4y+Dxb0taWJDPpB+rdDUtumIiBwkY9qGA==
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.1.3.tgz#6801033be7ff87a6b7cadaf5b337c9f366a3c4b0"
+ integrity sha512-WiBSI6JBIhC6LRIsB2Kwh8DsGTlbBU+mLRxJmAe3LjHTdkDpwIbEOZgoXBbZilk/vlfjK8i6nKRAvIRn1XaIMw==
"@ryyppy/rescript-promise@^2.1.0":
version "2.1.0"
@@ -2438,6 +2505,11 @@
resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df"
integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==
+"@sinclair/typebox@^0.23.3":
+ version "0.23.5"
+ resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.23.5.tgz#93f7b9f4e3285a7a9ade7557d9a8d36809cbc47d"
+ integrity sha512-AFBVi/iT4g20DHoujvMH1aEDn8fGJh4xsRGCP6d8RpLPMqsNPvW01Jcn0QysXTsg++/xj25NmJsGyH9xug/wKg==
+
"@sindresorhus/is@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea"
@@ -3758,9 +3830,9 @@
"@babel/types" "^7.0.0"
"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6":
- version "7.17.0"
- resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.17.0.tgz#7a9b80f712fe2052bc20da153ff1e552404d8e4b"
- integrity sha512-r8aveDbd+rzGP+ykSdF3oPuTVRWRfbBiHl0rVDM2yNEmSMXfkObQLV46b4RnCv3Lra51OlfnZhkkFaDl2MIRaA==
+ version "7.17.1"
+ resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.17.1.tgz#1a0e73e8c28c7e832656db372b779bfd2ef37314"
+ integrity sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==
dependencies:
"@babel/types" "^7.3.0"
@@ -3999,14 +4071,14 @@
form-data "^3.0.0"
"@types/node@*", "@types/node@^17.0.29", "@types/node@^17.0.5":
- version "17.0.29"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.29.tgz#7f2e1159231d4a077bb660edab0fde373e375a3d"
- integrity sha512-tx5jMmMFwx7wBwq/V7OohKDVb/JwJU5qCVkeLMh1//xycAJ/ESuw9aJ9SEtlCZDYi2pBfe4JkisSoAtbOsBNAA==
+ version "17.0.30"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.30.tgz#2c6e8512acac70815e8176aa30c38025067880ef"
+ integrity sha512-oNBIZjIqyHYP8VCNAV9uEytXVeXG2oR0w9lgAXro20eugRQfY002qr3CUl6BAe+Yf/z3CRjPdz27Pu6WWtuSRw==
"@types/node@^14.0.10":
- version "14.18.13"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.13.tgz#6ad4d9db59e6b3faf98dcfe4ca9d2aec84443277"
- integrity sha512-Z6/KzgyWOga3pJNS42A+zayjhPbf2zM3hegRQaOPnLOzEi86VV++6FLDWgR1LGrVCRufP/ph2daa3tEa5br1zA==
+ version "14.18.16"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.16.tgz#878f670ba3f00482bf859b6550b6010610fc54b5"
+ integrity sha512-X3bUMdK/VmvrWdoTkz+VCn6nwKwrKCFTHtqwBIaQJNx4RUIBBUFXM00bqPz/DsDd+Icjmzm6/tyYZzeGVqb6/Q==
"@types/normalize-package-data@^2.4.0":
version "2.4.1"
@@ -4068,17 +4140,10 @@
resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc"
integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==
-"@types/react-dom@^18.0.0":
- version "18.0.0"
- resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.0.tgz#b13f8d098e4b0c45df4f1ed123833143b0c71141"
- integrity sha512-49897Y0UiCGmxZqpC8Blrf6meL8QUla6eb+BBhn69dTXlmuOlzkfr7HHY/O8J25e1lTUMs+YYxSlVDAaGHCOLg==
- dependencies:
- "@types/react" "*"
-
-"@types/react-dom@^18.0.2":
- version "18.0.2"
- resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.2.tgz#2d6b46557aa30257e87e67a6d952146d15979d79"
- integrity sha512-UxeS+Wtj5bvLRREz9tIgsK4ntCuLDo0EcAcACgw3E+9wE8ePDr9uQpq53MfcyxyIS55xJ+0B6mDS8c4qkkHLBg==
+"@types/react-dom@^18.0.0", "@types/react-dom@^18.0.2":
+ version "18.0.3"
+ resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.3.tgz#a022ea08c75a476fe5e96b675c3e673363853831"
+ integrity sha512-1RRW9kst+67gveJRYPxGmVy8eVJ05O43hg77G2j5m76/RFJtMbcfAs2viQ2UNsvvDg8F7OfQZx8qQcl6ymygaQ==
dependencies:
"@types/react" "*"
@@ -4131,10 +4196,10 @@
dependencies:
"@types/node" "*"
-"@types/retry@^0.12.0":
- version "0.12.1"
- resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.1.tgz#d8f1c0d0dc23afad6dc16a9e993a0865774b4065"
- integrity sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==
+"@types/retry@0.12.0":
+ version "0.12.0"
+ resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d"
+ integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==
"@types/sax@^1.2.1":
version "1.2.4"
@@ -4219,9 +4284,9 @@
integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==
"@types/webpack-env@^1.16.0":
- version "1.16.3"
- resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.16.3.tgz#b776327a73e561b71e7881d0cd6d34a1424db86a"
- integrity sha512-9gtOPPkfyNoEqCQgx4qJKkuNm/x0R2hKR7fdl7zvTJyHnIisuE/LfvXOsYWL0o3qq6uiBnKZNNNzi3l0y/X+xw==
+ version "1.16.4"
+ resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.16.4.tgz#1f4969042bf76d7ef7b5914f59b3b60073f4e1f4"
+ integrity sha512-llS8qveOUX3wxHnSykP5hlYFFuMfJ9p5JvIyCiBgp7WTfl6K5ZcyHj8r8JsN/J6QODkAsRRCLIcTuOCu8etkUw==
"@types/webpack-sources@*":
version "3.2.0"
@@ -4279,14 +4344,21 @@
dependencies:
"@types/yargs-parser" "*"
-"@typescript-eslint/eslint-plugin@^5.5.0":
- version "5.19.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.19.0.tgz#9608a4b6d0427104bccf132f058cba629a6553c0"
- integrity sha512-w59GpFqDYGnWFim9p6TGJz7a3qWeENJuAKCqjGSx+Hq/bwq3RZwXYqy98KIfN85yDqz9mq6QXiY5h0FjGQLyEg==
+"@types/yargs@^17.0.8":
+ version "17.0.10"
+ resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.10.tgz#591522fce85d8739bca7b8bb90d048e4478d186a"
+ integrity sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA==
dependencies:
- "@typescript-eslint/scope-manager" "5.19.0"
- "@typescript-eslint/type-utils" "5.19.0"
- "@typescript-eslint/utils" "5.19.0"
+ "@types/yargs-parser" "*"
+
+"@typescript-eslint/eslint-plugin@^5.5.0":
+ version "5.21.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.21.0.tgz#bfc22e0191e6404ab1192973b3b4ea0461c1e878"
+ integrity sha512-fTU85q8v5ZLpoZEyn/u1S2qrFOhi33Edo2CZ0+q1gDaWWm0JuPh3bgOyU8lM0edIEYgKLDkPFiZX2MOupgjlyg==
+ dependencies:
+ "@typescript-eslint/scope-manager" "5.21.0"
+ "@typescript-eslint/type-utils" "5.21.0"
+ "@typescript-eslint/utils" "5.21.0"
debug "^4.3.2"
functional-red-black-tree "^1.0.1"
ignore "^5.1.8"
@@ -4295,75 +4367,75 @@
tsutils "^3.21.0"
"@typescript-eslint/experimental-utils@^5.0.0":
- version "5.19.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.19.0.tgz#b7c8f1e22624d4f3d1b3683438530f5636086cb7"
- integrity sha512-F+X/TTzmb2UXbghY1LrNLNDjMcGZMhKzXuzvu0xD+YEB77EamLM7zMOLuz2kP5807IJRDLBoAFFPYa7HT62sYg==
+ version "5.21.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.21.0.tgz#489275ca792f5de7e0d1f4be1f15576ea56b6ca2"
+ integrity sha512-mzF6ert/6iQoESV0z9v5/mEaJRKL4fv68rHoZ6exM38xjxkw4MNx54B7ferrnMTM/GIRKLDaJ3JPRi+Dxa5Hlg==
dependencies:
- "@typescript-eslint/utils" "5.19.0"
+ "@typescript-eslint/utils" "5.21.0"
"@typescript-eslint/parser@^5.5.0":
- version "5.19.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.19.0.tgz#05e587c1492868929b931afa0cb5579b0f728e75"
- integrity sha512-yhktJjMCJX8BSBczh1F/uY8wGRYrBeyn84kH6oyqdIJwTGKmzX5Qiq49LRQ0Jh0LXnWijEziSo6BRqny8nqLVQ==
+ version "5.21.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.21.0.tgz#6cb72673dbf3e1905b9c432175a3c86cdaf2071f"
+ integrity sha512-8RUwTO77hstXUr3pZoWZbRQUxXcSXafZ8/5gpnQCfXvgmP9gpNlRGlWzvfbEQ14TLjmtU8eGnONkff8U2ui2Eg==
dependencies:
- "@typescript-eslint/scope-manager" "5.19.0"
- "@typescript-eslint/types" "5.19.0"
- "@typescript-eslint/typescript-estree" "5.19.0"
+ "@typescript-eslint/scope-manager" "5.21.0"
+ "@typescript-eslint/types" "5.21.0"
+ "@typescript-eslint/typescript-estree" "5.21.0"
debug "^4.3.2"
-"@typescript-eslint/scope-manager@5.19.0":
- version "5.19.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.19.0.tgz#97e59b0bcbcb54dbcdfba96fc103b9020bbe9cb4"
- integrity sha512-Fz+VrjLmwq5fbQn5W7cIJZ066HxLMKvDEmf4eu1tZ8O956aoX45jAuBB76miAECMTODyUxH61AQM7q4/GOMQ5g==
+"@typescript-eslint/scope-manager@5.21.0":
+ version "5.21.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.21.0.tgz#a4b7ed1618f09f95e3d17d1c0ff7a341dac7862e"
+ integrity sha512-XTX0g0IhvzcH/e3393SvjRCfYQxgxtYzL3UREteUneo72EFlt7UNoiYnikUtmGVobTbhUDByhJ4xRBNe+34kOQ==
dependencies:
- "@typescript-eslint/types" "5.19.0"
- "@typescript-eslint/visitor-keys" "5.19.0"
+ "@typescript-eslint/types" "5.21.0"
+ "@typescript-eslint/visitor-keys" "5.21.0"
-"@typescript-eslint/type-utils@5.19.0":
- version "5.19.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.19.0.tgz#80f2125b0dfe82494bbae1ea99f1c0186d420282"
- integrity sha512-O6XQ4RI4rQcBGshTQAYBUIGsKqrKeuIOz9v8bckXZnSeXjn/1+BDZndHLe10UplQeJLXDNbaZYrAytKNQO2T4Q==
+"@typescript-eslint/type-utils@5.21.0":
+ version "5.21.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.21.0.tgz#ff89668786ad596d904c21b215e5285da1b6262e"
+ integrity sha512-MxmLZj0tkGlkcZCSE17ORaHl8Th3JQwBzyXL/uvC6sNmu128LsgjTX0NIzy+wdH2J7Pd02GN8FaoudJntFvSOw==
dependencies:
- "@typescript-eslint/utils" "5.19.0"
+ "@typescript-eslint/utils" "5.21.0"
debug "^4.3.2"
tsutils "^3.21.0"
-"@typescript-eslint/types@5.19.0":
- version "5.19.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.19.0.tgz#12d3d600d754259da771806ee8b2c842d3be8d12"
- integrity sha512-zR1ithF4Iyq1wLwkDcT+qFnhs8L5VUtjgac212ftiOP/ZZUOCuuF2DeGiZZGQXGoHA50OreZqLH5NjDcDqn34w==
+"@typescript-eslint/types@5.21.0":
+ version "5.21.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.21.0.tgz#8cdb9253c0dfce3f2ab655b9d36c03f72e684017"
+ integrity sha512-XnOOo5Wc2cBlq8Lh5WNvAgHzpjnEzxn4CJBwGkcau7b/tZ556qrWXQz4DJyChYg8JZAD06kczrdgFPpEQZfDsA==
-"@typescript-eslint/typescript-estree@5.19.0":
- version "5.19.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.19.0.tgz#fc987b8f62883f9ea6a5b488bdbcd20d33c0025f"
- integrity sha512-dRPuD4ocXdaE1BM/dNR21elSEUPKaWgowCA0bqJ6YbYkvtrPVEvZ+zqcX5a8ECYn3q5iBSSUcBBD42ubaOp0Hw==
+"@typescript-eslint/typescript-estree@5.21.0":
+ version "5.21.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.21.0.tgz#9f0c233e28be2540eaed3df050f0d54fb5aa52de"
+ integrity sha512-Y8Y2T2FNvm08qlcoSMoNchh9y2Uj3QmjtwNMdRQkcFG7Muz//wfJBGBxh8R7HAGQFpgYpdHqUpEoPQk+q9Kjfg==
dependencies:
- "@typescript-eslint/types" "5.19.0"
- "@typescript-eslint/visitor-keys" "5.19.0"
+ "@typescript-eslint/types" "5.21.0"
+ "@typescript-eslint/visitor-keys" "5.21.0"
debug "^4.3.2"
globby "^11.0.4"
is-glob "^4.0.3"
semver "^7.3.5"
tsutils "^3.21.0"
-"@typescript-eslint/utils@5.19.0", "@typescript-eslint/utils@^5.13.0":
- version "5.19.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.19.0.tgz#fe87f1e3003d9973ec361ed10d36b4342f1ded1e"
- integrity sha512-ZuEckdupXpXamKvFz/Ql8YnePh2ZWcwz7APICzJL985Rp5C2AYcHO62oJzIqNhAMtMK6XvrlBTZeNG8n7gS3lQ==
+"@typescript-eslint/utils@5.21.0", "@typescript-eslint/utils@^5.13.0":
+ version "5.21.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.21.0.tgz#51d7886a6f0575e23706e5548c7e87bce42d7c18"
+ integrity sha512-q/emogbND9wry7zxy7VYri+7ydawo2HDZhRZ5k6yggIvXa7PvBbAAZ4PFH/oZLem72ezC4Pr63rJvDK/sTlL8Q==
dependencies:
"@types/json-schema" "^7.0.9"
- "@typescript-eslint/scope-manager" "5.19.0"
- "@typescript-eslint/types" "5.19.0"
- "@typescript-eslint/typescript-estree" "5.19.0"
+ "@typescript-eslint/scope-manager" "5.21.0"
+ "@typescript-eslint/types" "5.21.0"
+ "@typescript-eslint/typescript-estree" "5.21.0"
eslint-scope "^5.1.1"
eslint-utils "^3.0.0"
-"@typescript-eslint/visitor-keys@5.19.0":
- version "5.19.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.19.0.tgz#c84ebc7f6c744707a361ca5ec7f7f64cd85b8af6"
- integrity sha512-Ym7zZoMDZcAKWsULi2s7UMLREdVQdScPQ/fKWMYefarCztWlHPFVJo8racf8R0Gc8FAEJ2eD4of8As1oFtnQlQ==
+"@typescript-eslint/visitor-keys@5.21.0":
+ version "5.21.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.21.0.tgz#453fb3662409abaf2f8b1f65d515699c888dd8ae"
+ integrity sha512-SX8jNN+iHqAF0riZQMkm7e8+POXa/fXw5cxL+gjpyP+FI+JVNhii53EmQgDAfDcBpFekYSlO0fGytMQwRiMQCA==
dependencies:
- "@typescript-eslint/types" "5.19.0"
+ "@typescript-eslint/types" "5.21.0"
eslint-visitor-keys "^3.0.0"
"@webassemblyjs/ast@1.11.1":
@@ -4660,9 +4732,9 @@
integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==
abab@^2.0.3, abab@^2.0.5:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a"
- integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291"
+ integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==
accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8:
version "1.3.8"
@@ -4725,14 +4797,14 @@ acorn@^7.0.0, acorn@^7.1.1, acorn@^7.4.1:
integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
acorn@^8.0.4, acorn@^8.2.4, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.0:
- version "8.7.0"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf"
- integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==
+ version "8.7.1"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30"
+ integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==
address@^1.0.1, address@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6"
- integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/address/-/address-1.2.0.tgz#d352a62c92fee90f89a693eccd2a8b2139ab02d9"
+ integrity sha512-tNEZYz5G/zYunxFm7sfhAxkXEuLj3K6BKwv6ZURlsF6yiUQ65z0Q2wZW9L5cPUl9ocofGvXOdFYbFHp0+6MOig==
adjust-sourcemap-loader@^4.0.0:
version "4.0.0"
@@ -4926,7 +4998,7 @@ ansi-to-html@^0.6.11:
dependencies:
entities "^2.0.0"
-antd@^4.20.1:
+antd@^4.20.0:
version "4.20.1"
resolved "https://registry.yarnpkg.com/antd/-/antd-4.20.1.tgz#6cd5a406c7172d61a5d0693ea52ee908650cf674"
integrity sha512-asKxOV0a6AijqonbcXkO08/q+XvqS/HmGfaRIS6ZH1ALR3FS2q+kTW52rJZO9rfoOb/ldPhEBVSWiNrbiB+uCQ==
@@ -5221,10 +5293,10 @@ async-each@^1.0.1:
resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf"
integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==
-async-validator@^4.0.2:
- version "4.0.7"
- resolved "https://registry.yarnpkg.com/async-validator/-/async-validator-4.0.7.tgz#034a0fd2103a6b2ebf010da75183bec299247afe"
- integrity sha512-Pj2IR7u8hmUEDOwB++su6baaRi+QvsgajuFB9j95foM1N2gy5HM4z60hfusIO0fBPG5uLAEl6yCJr1jNSVugEQ==
+async-validator@^4.1.0:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/async-validator/-/async-validator-4.1.1.tgz#3cd1437faa2de64743f7d56649dd904c946a18fe"
+ integrity sha512-p4DO/JXwjs8klJyJL8Q2oM4ks5fUTze/h5k10oPPKMiLe1fj3G1QMzPHNmN1Py4ycOk7WlO2DcGXv1qiESJCZA==
async@^2.6.2:
version "2.6.4"
@@ -5253,13 +5325,13 @@ atob@^2.1.2:
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
-autoprefixer@^10.3.7, autoprefixer@^10.4.4:
- version "10.4.4"
- resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.4.tgz#3e85a245b32da876a893d3ac2ea19f01e7ea5a1e"
- integrity sha512-Tm8JxsB286VweiZ5F0anmbyGiNI3v3wGv3mz9W+cxEDYB/6jbnj6GM9H9mK3wIL8ftgl+C07Lcwb8PG5PCCPzA==
+autoprefixer@^10.3.7, autoprefixer@^10.4.4, autoprefixer@^10.4.5:
+ version "10.4.5"
+ resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.5.tgz#662193c744094b53d3637f39be477e07bd904998"
+ integrity sha512-Fvd8yCoA7lNX/OUllvS+aS1I7WRBclGXsepbvT8ZaPgrH24rgXpZzF0/6Hh3ZEkwg+0AES/Osd196VZmYoEFtw==
dependencies:
browserslist "^4.20.2"
- caniuse-lite "^1.0.30001317"
+ caniuse-lite "^1.0.30001332"
fraction.js "^4.2.0"
normalize-range "^0.1.2"
picocolors "^1.0.0"
@@ -5319,9 +5391,9 @@ babel-jest@^27.4.2, babel-jest@^27.5.1:
slash "^3.0.0"
babel-loader@^8.0.0, babel-loader@^8.2.3, babel-loader@^8.2.4:
- version "8.2.4"
- resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.4.tgz#95f5023c791b2e9e2ca6f67b0984f39c82ff384b"
- integrity sha512-8dytA3gcvPPPv4Grjhnt8b5IIiTcq/zeXOPk4iTYI0SVXcsmuGg7JtBRDp8S9X+gJfhQ8ektjXZlDu1Bb33U8A==
+ version "8.2.5"
+ resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.5.tgz#d45f585e654d5a5d90f5350a779d7647c5ed512e"
+ integrity sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==
dependencies:
find-cache-dir "^3.3.1"
loader-utils "^2.0.0"
@@ -5708,26 +5780,28 @@ bn.js@^5.0.0, bn.js@^5.1.1:
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002"
integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==
-body-parser@1.19.2:
- version "1.19.2"
- resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.2.tgz#4714ccd9c157d44797b8b5607d72c0b89952f26e"
- integrity sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==
+body-parser@1.20.0:
+ version "1.20.0"
+ resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5"
+ integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==
dependencies:
bytes "3.1.2"
content-type "~1.0.4"
debug "2.6.9"
- depd "~1.1.2"
- http-errors "1.8.1"
+ depd "2.0.0"
+ destroy "1.2.0"
+ http-errors "2.0.0"
iconv-lite "0.4.24"
- on-finished "~2.3.0"
- qs "6.9.7"
- raw-body "2.4.3"
+ on-finished "2.4.1"
+ qs "6.10.3"
+ raw-body "2.5.1"
type-is "~1.6.18"
+ unpipe "1.0.0"
bonjour-service@^1.0.11:
- version "1.0.11"
- resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.0.11.tgz#5418e5c1ac91c89a406f853a942e7892829c0d89"
- integrity sha512-drMprzr2rDTCtgEE3VgdA9uUFaUHF+jXduwYSThHJnKMYM+FhI9Z3ph+TX3xy0LtgYHae6CHYPJ/2UnK8nQHcA==
+ version "1.0.12"
+ resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.0.12.tgz#28fbd4683f5f2e36feedb833e24ba661cac960c3"
+ integrity sha512-pMmguXYCu63Ug37DluMKEHdxc+aaIf/ay4YbF8Gxtba+9d3u+rmEWy61VK3Z3hp8Rskok3BunHYnG0dUHAsblw==
dependencies:
array-flatten "^2.1.2"
dns-equal "^1.0.0"
@@ -5876,15 +5950,15 @@ browserify-zlib@^0.2.0:
dependencies:
pako "~1.0.5"
-browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.6, browserslist@^4.17.5, browserslist@^4.18.1, browserslist@^4.19.1, browserslist@^4.20.2:
- version "4.20.2"
- resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.2.tgz#567b41508757ecd904dab4d1c646c612cd3d4f88"
- integrity sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==
+browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.6, browserslist@^4.17.5, browserslist@^4.18.1, browserslist@^4.20.2, browserslist@^4.20.3:
+ version "4.20.3"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.3.tgz#eb7572f49ec430e054f56d52ff0ebe9be915f8bf"
+ integrity sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==
dependencies:
- caniuse-lite "^1.0.30001317"
- electron-to-chromium "^1.4.84"
+ caniuse-lite "^1.0.30001332"
+ electron-to-chromium "^1.4.118"
escalade "^3.1.1"
- node-releases "^2.0.2"
+ node-releases "^2.0.3"
picocolors "^1.0.0"
bs-logger@0.x:
@@ -5941,22 +6015,22 @@ bytes@3.1.2:
integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
c8@^7.6.0:
- version "7.11.0"
- resolved "https://registry.yarnpkg.com/c8/-/c8-7.11.0.tgz#b3ab4e9e03295a102c47ce11d4ef6d735d9a9ac9"
- integrity sha512-XqPyj1uvlHMr+Y1IeRndC2X5P7iJzJlEJwBpCdBbq2JocXOgJfr+JVfJkyNMGROke5LfKrhSFXGFXnwnRJAUJw==
+ version "7.11.2"
+ resolved "https://registry.yarnpkg.com/c8/-/c8-7.11.2.tgz#2f2103e39079899041e612999a16b31d7ea6d463"
+ integrity sha512-6ahJSrhS6TqSghHm+HnWt/8Y2+z0hM/FQyB1ybKhAR30+NYL9CTQ1uwHxuWw6U7BHlHv6wvhgOrH81I+lfCkxg==
dependencies:
"@bcoe/v8-coverage" "^0.2.3"
- "@istanbuljs/schema" "^0.1.2"
+ "@istanbuljs/schema" "^0.1.3"
find-up "^5.0.0"
foreground-child "^2.0.0"
- istanbul-lib-coverage "^3.0.1"
+ istanbul-lib-coverage "^3.2.0"
istanbul-lib-report "^3.0.0"
- istanbul-reports "^3.0.2"
- rimraf "^3.0.0"
+ istanbul-reports "^3.1.4"
+ rimraf "^3.0.2"
test-exclude "^6.0.0"
- v8-to-istanbul "^8.0.0"
+ v8-to-istanbul "^9.0.0"
yargs "^16.2.0"
- yargs-parser "^20.2.7"
+ yargs-parser "^20.2.9"
cacache@^12.0.2:
version "12.0.4"
@@ -6097,10 +6171,10 @@ caniuse-api@^3.0.0:
lodash.memoize "^4.1.2"
lodash.uniq "^4.5.0"
-caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001317:
- version "1.0.30001332"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz#39476d3aa8d83ea76359c70302eafdd4a1d727dd"
- integrity sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw==
+caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001332:
+ version "1.0.30001334"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001334.tgz#892e9965b35285033fc2b8a8eff499fe02f13d8b"
+ integrity sha512-kbaCEBRRVSoeNs74sCuq92MJyGrMtjWVfhltoHUCW4t4pXFvGjUBrfo47weBRViHkiV3eBYyIsfl956NtHGazw==
capture-exit@^2.0.0:
version "2.0.0"
@@ -6155,6 +6229,11 @@ chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.2:
ansi-styles "^4.1.0"
supports-color "^7.1.0"
+chalk@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.0.1.tgz#ca57d71e82bb534a296df63bbacc4a1c22b2a4b6"
+ integrity sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==
+
char-regex@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf"
@@ -6675,10 +6754,10 @@ cookie-signature@1.0.6:
resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw=
-cookie@0.4.2:
- version "0.4.2"
- resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432"
- integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==
+cookie@0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b"
+ integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==
copy-concurrently@^1.0.0:
version "1.0.5"
@@ -6722,17 +6801,17 @@ copy-webpack-plugin@^10.2.4:
serialize-javascript "^6.0.0"
core-js-compat@^3.20.2, core-js-compat@^3.21.0, core-js-compat@^3.8.1:
- version "3.21.1"
- resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.21.1.tgz#cac369f67c8d134ff8f9bd1623e3bc2c42068c82"
- integrity sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==
+ version "3.22.3"
+ resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.22.3.tgz#9b10d786052d042bc97ee8df9c0d1fb6a49c2005"
+ integrity sha512-wliMbvPI2idgFWpFe7UEyHMvu6HWgW8WA+HnDRtgzoSDYvXFMpoGX1H3tPDDXrcfUSyXafCLDd7hOeMQHEZxGw==
dependencies:
- browserslist "^4.19.1"
+ browserslist "^4.20.3"
semver "7.0.0"
core-js-pure@^3.20.2, core-js-pure@^3.8.1, core-js-pure@^3.8.2:
- version "3.21.1"
- resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.21.1.tgz#8c4d1e78839f5f46208de7230cebfb72bc3bdb51"
- integrity sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==
+ version "3.22.3"
+ resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.22.3.tgz#181d1b6321fb29fe99c16a1f28beb840ab84ad36"
+ integrity sha512-oN88zz7nmKROMy8GOjs+LN+0LedIvbMdnB5XsTlhcOg1WGARt9l0LFg0zohdoFmCsEZ1h2ZbSQ6azj3M+vhzwQ==
core-js@^2.4.0:
version "2.6.12"
@@ -6740,9 +6819,9 @@ core-js@^2.4.0:
integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
core-js@^3.0.4, core-js@^3.19.2, core-js@^3.21.1, core-js@^3.6.5, core-js@^3.8.2:
- version "3.21.1"
- resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.21.1.tgz#f2e0ddc1fc43da6f904706e8e955bc19d06a0d94"
- integrity sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==
+ version "3.22.3"
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.22.3.tgz#498c41d997654cb00e81c7a54b44f0ab21ab01d5"
+ integrity sha512-1t+2a/d2lppW1gkLXx3pKPVGbBdxXAkqztvWb1EJ8oF8O2gIGiytzflNiFEehYwVK/t2ryUsGBoOFFvNx95mbg==
core-util-is@~1.0.0:
version "1.0.3"
@@ -7327,9 +7406,9 @@ date-fns@2.x:
integrity sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==
dayjs@1.x:
- version "1.11.0"
- resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.0.tgz#009bf7ef2e2ea2d5db2e6583d2d39a4b5061e805"
- integrity sha512-JLC809s6Y948/FuCZPm5IX8rRhQwOiyMb2TfVVQEixG7P8Lm/gt5S7yoQZmC8x1UehI9Pb7sksEt4xx14m+7Ug==
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.1.tgz#90b33a3dda3417258d48ad2771b415def6545eb0"
+ integrity sha512-ER7EjqVAMkRRsxNCC5YqJ9d9VQYuWdGt7aiH2qA5R5wt8ZmWaP2dLUSIK6y/kVzLMlmh1Tvu5xUf4M/wdGJ5KA==
debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.8, debug@^2.6.9:
version "2.6.9"
@@ -7424,11 +7503,12 @@ define-lazy-prop@^2.0.0:
integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==
define-properties@^1.1.2, define-properties@^1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
- integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1"
+ integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==
dependencies:
- object-keys "^1.0.12"
+ has-property-descriptors "^1.0.0"
+ object-keys "^1.1.1"
define-property@^0.2.5:
version "0.2.5"
@@ -7633,14 +7713,14 @@ doctrine@^3.0.0:
esutils "^2.0.2"
dom-accessibility-api@^0.5.6, dom-accessibility-api@^0.5.9:
- version "0.5.13"
- resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.13.tgz#102ee5f25eacce09bdf1cfa5a298f86da473be4b"
- integrity sha512-R305kwb5CcMDIpSHUnLyIAp7SrSPBx6F0VfQFB3M75xVMHhXJJIdePYgbPPh1o57vCHNu5QztokWUPsLjWzFqw==
+ version "0.5.14"
+ resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.14.tgz#56082f71b1dc7aac69d83c4285eef39c15d93f56"
+ integrity sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==
dom-align@^1.7.0:
- version "1.12.2"
- resolved "https://registry.yarnpkg.com/dom-align/-/dom-align-1.12.2.tgz#0f8164ebd0c9c21b0c790310493cd855892acd4b"
- integrity sha512-pHuazgqrsTFrGU2WLDdXxCFabkdQDx72ddkraZNih1KsMcN5qsRSTR9O4VJRlwTPCPb5COYg3LOfiMHHcPInHg==
+ version "1.12.3"
+ resolved "https://registry.yarnpkg.com/dom-align/-/dom-align-1.12.3.tgz#a36d02531dae0eefa2abb0c4db6595250526f103"
+ integrity sha512-Gj9hZN3a07cbR6zviMUBOMPdWxYhbMI+x+WS0NAIu2zFZmbK8ys9R79g+iG9qLnlCwpFoaB+fKy8Pdv470GsPA==
dom-converter@^0.2.0:
version "0.2.0"
@@ -7818,10 +7898,10 @@ ejs@^3.1.6:
dependencies:
jake "^10.8.5"
-electron-to-chromium@^1.4.84:
- version "1.4.107"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.107.tgz#564257014ab14033b4403a309c813123c58a3fb9"
- integrity sha512-Huen6taaVrUrSy8o7mGStByba8PfOWWluHNxSHGBrCgEdFVLtvdQDBr9LBCF9Uci8SYxh28QNNMO0oC17wbGAg==
+electron-to-chromium@^1.4.118:
+ version "1.4.127"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.127.tgz#4ef19d5d920abe2676d938f4170729b44f7f423a"
+ integrity sha512-nhD6S8nKI0O2MueC6blNOEZio+/PWppE/pevnf3LOlQA/fKPCrDp2Ao4wx4LFwmIkJpVdFdn2763YWLy9ENIZg==
element-resize-detector@^1.2.2:
version "1.2.4"
@@ -7843,6 +7923,11 @@ elliptic@^6.5.3:
minimalistic-assert "^1.0.1"
minimalistic-crypto-utils "^1.0.1"
+emittery@^0.10.2:
+ version "0.10.2"
+ resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.10.2.tgz#902eec8aedb8c41938c46e9385e9db7e03182933"
+ integrity sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==
+
emittery@^0.8.1:
version "0.8.1"
resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860"
@@ -8023,9 +8108,9 @@ es-to-primitive@^1.2.1:
is-symbol "^1.0.2"
es5-shim@^4.5.13:
- version "4.6.5"
- resolved "https://registry.yarnpkg.com/es5-shim/-/es5-shim-4.6.5.tgz#2124bb073b7cede2ed23b122a1fd87bb7b0bb724"
- integrity sha512-vfQ4UAai8szn0sAubCy97xnZ4sJVDD1gt/Grn736hg8D7540wemIb1YPrYZSTqlM2H69EQX1or4HU/tSwRTI3w==
+ version "4.6.6"
+ resolved "https://registry.yarnpkg.com/es5-shim/-/es5-shim-4.6.6.tgz#1e0e95bedfdcd933a2d4931a3ac6c79164f18de6"
+ integrity sha512-Ay5QQE78I2WKUoZVZjL0AIuiIjsmXwZGkyCTH9+n6J1anPbb0ymDA27ASa2Lt0rhOpAlEKy2W0d17gJ1XOQ5eQ==
es6-error@^4.0.1:
version "4.1.1"
@@ -8173,9 +8258,9 @@ eslint-plugin-jsx-a11y@^6.5.1:
minimatch "^3.0.4"
eslint-plugin-react-hooks@^4.3.0:
- version "4.4.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.4.0.tgz#71c39e528764c848d8253e1aa2c7024ed505f6c4"
- integrity sha512-U3RVIfdzJaeKDQKEJbz5p3NW8/L80PCATJAfuojwbaEL+gBjfGdhUcGde+WGUW46Q5sr/NgxevsIiDtNXrvZaQ==
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.5.0.tgz#5f762dfedf8b2cf431c689f533c9d3fa5dcf25ad"
+ integrity sha512-8k1gRt7D7h03kd+SAAlzXkQwWK22BnK6GKZG+FJA6BAGy22CFvl8kCIXKpVux0cCxMWDQUPqSok0LKaZ0aOcCw==
eslint-plugin-react@^7.27.1:
version "7.29.4"
@@ -8257,11 +8342,11 @@ eslint-webpack-plugin@^3.1.1:
schema-utils "^3.1.1"
eslint@^8.3.0:
- version "8.13.0"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.13.0.tgz#6fcea43b6811e655410f5626cfcf328016badcd7"
- integrity sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ==
+ version "8.14.0"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.14.0.tgz#62741f159d9eb4a79695b28ec4989fcdec623239"
+ integrity sha512-3/CE4aJX7LNEiE3i6FeodHmI/38GZtWCsAtsymScmzYapx8q1nVVb+eLcLSzATmCPXw5pT4TqVs1E0OmxAd9tw==
dependencies:
- "@eslint/eslintrc" "^1.2.1"
+ "@eslint/eslintrc" "^1.2.2"
"@humanwhocodes/config-array" "^0.9.2"
ajv "^6.10.0"
chalk "^4.0.0"
@@ -8452,37 +8537,38 @@ expect@^27.5.1:
jest-message-util "^27.5.1"
express@^4.17.1, express@^4.17.3:
- version "4.17.3"
- resolved "https://registry.yarnpkg.com/express/-/express-4.17.3.tgz#f6c7302194a4fb54271b73a1fe7a06478c8f85a1"
- integrity sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==
+ version "4.18.0"
+ resolved "https://registry.yarnpkg.com/express/-/express-4.18.0.tgz#7a426773325d0dd5406395220614c0db10b6e8e2"
+ integrity sha512-EJEXxiTQJS3lIPrU1AE2vRuT7X7E+0KBbpm5GSoK524yl0K8X+er8zS2P14E64eqsVNoWbMCT7MpmQ+ErAhgRg==
dependencies:
accepts "~1.3.8"
array-flatten "1.1.1"
- body-parser "1.19.2"
+ body-parser "1.20.0"
content-disposition "0.5.4"
content-type "~1.0.4"
- cookie "0.4.2"
+ cookie "0.5.0"
cookie-signature "1.0.6"
debug "2.6.9"
- depd "~1.1.2"
+ depd "2.0.0"
encodeurl "~1.0.2"
escape-html "~1.0.3"
etag "~1.8.1"
- finalhandler "~1.1.2"
+ finalhandler "1.2.0"
fresh "0.5.2"
+ http-errors "2.0.0"
merge-descriptors "1.0.1"
methods "~1.1.2"
- on-finished "~2.3.0"
+ on-finished "2.4.1"
parseurl "~1.3.3"
path-to-regexp "0.1.7"
proxy-addr "~2.0.7"
- qs "6.9.7"
+ qs "6.10.3"
range-parser "~1.2.1"
safe-buffer "5.2.1"
- send "0.17.2"
- serve-static "1.14.2"
+ send "0.18.0"
+ serve-static "1.15.0"
setprototypeof "1.2.0"
- statuses "~1.5.0"
+ statuses "2.0.1"
type-is "~1.6.18"
utils-merge "1.0.1"
vary "~1.1.2"
@@ -8711,17 +8797,17 @@ fill-range@^7.0.1:
dependencies:
to-regex-range "^5.0.1"
-finalhandler@~1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
- integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==
+finalhandler@1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32"
+ integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==
dependencies:
debug "2.6.9"
encodeurl "~1.0.2"
escape-html "~1.0.3"
- on-finished "~2.3.0"
+ on-finished "2.4.1"
parseurl "~1.3.3"
- statuses "~1.5.0"
+ statuses "2.0.1"
unpipe "~1.0.0"
find-cache-dir@^2.0.0, find-cache-dir@^2.1.0:
@@ -8838,9 +8924,9 @@ fork-ts-checker-webpack-plugin@^4.1.6:
worker-rpc "^0.1.0"
fork-ts-checker-webpack-plugin@^6.0.4, fork-ts-checker-webpack-plugin@^6.5.0:
- version "6.5.1"
- resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.1.tgz#fd689e2d9de6ac76abb620909eea56438cd0f232"
- integrity sha512-x1wumpHOEf4gDROmKTaB6i4/Q6H3LwmjVO7fIX47vBwlZbtPjU33hgoMuD/Q/y6SU8bnuYSoN6ZQOLshGp0T/g==
+ version "6.5.2"
+ resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.2.tgz#4f67183f2f9eb8ba7df7177ce3cf3e75cdafb340"
+ integrity sha512-m5cUmF30xkZ7h4tWUgTAcEaKmUW7tfyUyTqNNOz7OxWJ0v1VWKTcOvH8FWHUwSjlW/356Ijc9vi3XfcPstpQKA==
dependencies:
"@babel/code-frame" "^7.8.3"
"@types/json-schema" "^7.0.5"
@@ -8917,9 +9003,9 @@ fs-extra@^0.30.0:
rimraf "^2.2.8"
fs-extra@^10.0.0, fs-extra@^10.0.1:
- version "10.0.1"
- resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.1.tgz#27de43b4320e833f6867cc044bfce29fdf0ef3b8"
- integrity sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==
+ version "10.1.0"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf"
+ integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==
dependencies:
graceful-fs "^4.2.0"
jsonfile "^6.0.1"
@@ -8996,9 +9082,9 @@ functional-red-black-tree@^1.0.1:
integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
functions-have-names@^1.2.2:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.2.tgz#98d93991c39da9361f8e50b337c4f6e41f120e21"
- integrity sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA==
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834"
+ integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==
fuse.js@^3.6.1:
version "3.6.1"
@@ -9303,10 +9389,10 @@ has-ansi@^2.0.0:
dependencies:
ansi-regex "^2.0.0"
-has-bigints@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113"
- integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==
+has-bigints@^1.0.1, has-bigints@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa"
+ integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==
has-flag@^3.0.0:
version "3.0.0"
@@ -9325,6 +9411,13 @@ has-glob@^1.0.0:
dependencies:
is-glob "^3.0.0"
+has-property-descriptors@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861"
+ integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==
+ dependencies:
+ get-intrinsic "^1.1.1"
+
has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
@@ -9751,9 +9844,9 @@ http-proxy-agent@^4.0.0, http-proxy-agent@^4.0.1:
debug "4"
http-proxy-middleware@^2.0.3:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.4.tgz#03af0f4676d172ae775cb5c33f592f40e1a4e07a"
- integrity sha512-m/4FxX17SUvz4lJ5WPXOHDUuCwIqXLfLHs1s0uZ3oYjhoXlx9csYxaOa0ElDEJ+h8Q4iJ1s+lTMbiCa4EXIJqg==
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz#e1a4dd6979572c7ab5a4e4b55095d1f32a74963f"
+ integrity sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==
dependencies:
"@types/http-proxy" "^1.17.8"
http-proxy "^1.18.1"
@@ -10087,9 +10180,9 @@ is-ci@^2.0.0:
ci-info "^2.0.0"
is-core-module@^2.2.0, is-core-module@^2.8.1:
- version "2.8.1"
- resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211"
- integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==
+ version "2.9.0"
+ resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69"
+ integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==
dependencies:
has "^1.0.3"
@@ -10440,7 +10533,7 @@ isobject@^4.0.0:
resolved "https://registry.yarnpkg.com/isobject/-/isobject-4.0.0.tgz#3f1c9155e73b192022a80819bacd0343711697b0"
integrity sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==
-istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.0.0-alpha.1, istanbul-lib-coverage@^3.0.1, istanbul-lib-coverage@^3.2.0:
+istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.0.0-alpha.1, istanbul-lib-coverage@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3"
integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==
@@ -10463,9 +10556,9 @@ istanbul-lib-instrument@^4.0.0:
semver "^6.3.0"
istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz#7b49198b657b27a730b8e9cb601f1e1bff24c59a"
- integrity sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz#31d18bdd127f825dd02ea7bfdfd906f8ab840e9f"
+ integrity sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==
dependencies:
"@babel/core" "^7.12.3"
"@babel/parser" "^7.14.7"
@@ -10504,7 +10597,7 @@ istanbul-lib-source-maps@^4.0.0:
istanbul-lib-coverage "^3.0.0"
source-map "^0.6.1"
-istanbul-reports@^3.0.2, istanbul-reports@^3.1.3:
+istanbul-reports@^3.0.2, istanbul-reports@^3.1.3, istanbul-reports@^3.1.4:
version "3.1.4"
resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.4.tgz#1b6f068ecbc6c331040aab5741991273e609e40c"
integrity sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==
@@ -10777,6 +10870,21 @@ jest-message-util@^27.5.1:
slash "^3.0.0"
stack-utils "^2.0.3"
+jest-message-util@^28.0.2:
+ version "28.0.2"
+ resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-28.0.2.tgz#f3cf36be72be4c4c4058cb34bd6673996d26dee3"
+ integrity sha512-knK7XyojvwYh1XiF2wmVdskgM/uN11KsjcEWWHfnMZNEdwXCrqB4sCBO94F4cfiAwCS8WFV6CDixDwPlMh/wdA==
+ dependencies:
+ "@babel/code-frame" "^7.12.13"
+ "@jest/types" "^28.0.2"
+ "@types/stack-utils" "^2.0.0"
+ chalk "^4.0.0"
+ graceful-fs "^4.2.9"
+ micromatch "^4.0.4"
+ pretty-format "^28.0.2"
+ slash "^3.0.0"
+ stack-utils "^2.0.3"
+
jest-mock@^27.5.1:
version "27.5.1"
resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.5.1.tgz#19948336d49ef4d9c52021d34ac7b5f36ff967d6"
@@ -10795,11 +10903,16 @@ jest-regex-util@^26.0.0:
resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28"
integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==
-jest-regex-util@^27.0.0, jest-regex-util@^27.5.1:
+jest-regex-util@^27.5.1:
version "27.5.1"
resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz#4da143f7e9fd1e542d4aa69617b38e4a78365b95"
integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==
+jest-regex-util@^28.0.0:
+ version "28.0.2"
+ resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-28.0.2.tgz#afdc377a3b25fb6e80825adcf76c854e5bf47ead"
+ integrity sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==
+
jest-resolve-dependencies@^27.5.1:
version "27.5.1"
resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz#d811ecc8305e731cc86dd79741ee98fed06f1da8"
@@ -10948,6 +11061,18 @@ jest-util@^27.0.0, jest-util@^27.5.1:
graceful-fs "^4.2.9"
picomatch "^2.2.3"
+jest-util@^28.0.2:
+ version "28.0.2"
+ resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-28.0.2.tgz#8e22cdd6e0549e0a393055f0e2da7eacc334b143"
+ integrity sha512-EVdpIRCC8lzqhp9A0u0aAKlsFIzufK6xKxNK7awsnebTdOP4hpyQW5o6Ox2qPl8gbeUKYF+POLyItaND53kpGA==
+ dependencies:
+ "@jest/types" "^28.0.2"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ ci-info "^3.2.0"
+ graceful-fs "^4.2.9"
+ picomatch "^2.2.3"
+
jest-validate@^27.5.1:
version "27.5.1"
resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.5.1.tgz#9197d54dc0bdb52260b8db40b46ae668e04df067"
@@ -10961,19 +11086,19 @@ jest-validate@^27.5.1:
pretty-format "^27.5.1"
jest-watch-typeahead@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/jest-watch-typeahead/-/jest-watch-typeahead-1.0.0.tgz#4de2ca1eb596acb1889752afbab84b74fcd99173"
- integrity sha512-jxoszalAb394WElmiJTFBMzie/RDCF+W7Q29n5LzOPtcoQoHWfdUtHFkbhgf5NwWe8uMOxvKb/g7ea7CshfkTw==
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz#b4a6826dfb9c9420da2f7bc900de59dad11266a9"
+ integrity sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw==
dependencies:
ansi-escapes "^4.3.1"
chalk "^4.0.0"
- jest-regex-util "^27.0.0"
- jest-watcher "^27.0.0"
+ jest-regex-util "^28.0.0"
+ jest-watcher "^28.0.0"
slash "^4.0.0"
string-length "^5.0.1"
strip-ansi "^7.0.1"
-jest-watcher@^27.0.0, jest-watcher@^27.5.1:
+jest-watcher@^27.5.1:
version "27.5.1"
resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.5.1.tgz#71bd85fb9bde3a2c2ec4dc353437971c43c642a2"
integrity sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==
@@ -10986,6 +11111,20 @@ jest-watcher@^27.0.0, jest-watcher@^27.5.1:
jest-util "^27.5.1"
string-length "^4.0.1"
+jest-watcher@^28.0.0:
+ version "28.0.2"
+ resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-28.0.2.tgz#649fa24df531d4071be5784b6274d494d788c88b"
+ integrity sha512-uIVJLpQ/5VTGQWBiBatHsi7jrCqHjHl0e0dFHMWzwuIfUbdW/muk0DtSr0fteY2T7QTFylv+7a5Rm8sBKrE12Q==
+ dependencies:
+ "@jest/test-result" "^28.0.2"
+ "@jest/types" "^28.0.2"
+ "@types/node" "*"
+ ansi-escapes "^4.2.1"
+ chalk "^4.0.0"
+ emittery "^0.10.2"
+ jest-util "^28.0.2"
+ string-length "^4.0.1"
+
jest-worker@^26.2.1, jest-worker@^26.5.0, jest-worker@^26.6.2:
version "26.6.2"
resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed"
@@ -12045,9 +12184,9 @@ nan@^2.12.1:
integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==
nanoid@^3.1.23, nanoid@^3.3.1:
- version "3.3.2"
- resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.2.tgz#c89622fafb4381cd221421c69ec58547a1eec557"
- integrity sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==
+ version "3.3.3"
+ resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25"
+ integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==
nanomatch@^1.2.9:
version "1.2.13"
@@ -12166,10 +12305,10 @@ node-preload@^0.2.1:
dependencies:
process-on-spawn "^1.0.0"
-node-releases@^2.0.2:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.3.tgz#225ee7488e4a5e636da8da52854844f9d716ca96"
- integrity sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw==
+node-releases@^2.0.3:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.4.tgz#f38252370c43854dc48aa431c766c6c398f40476"
+ integrity sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ==
normalize-package-data@^2.5.0:
version "2.5.0"
@@ -12318,7 +12457,7 @@ object-inspect@^1.12.0, object-inspect@^1.9.0:
resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0"
integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==
-object-keys@^1.0.12, object-keys@^1.1.1:
+object-keys@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
@@ -12595,11 +12734,11 @@ p-map@^4.0.0:
aggregate-error "^3.0.0"
p-retry@^4.5.0:
- version "4.6.1"
- resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.1.tgz#8fcddd5cdf7a67a0911a9cf2ef0e5df7f602316c"
- integrity sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==
+ version "4.6.2"
+ resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16"
+ integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==
dependencies:
- "@types/retry" "^0.12.0"
+ "@types/retry" "0.12.0"
retry "^0.13.1"
p-timeout@^3.1.0:
@@ -13004,7 +13143,7 @@ postcss-custom-media@^8.0.0:
resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz#1be6aff8be7dc9bf1fe014bde3b71b92bb4552f1"
integrity sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g==
-postcss-custom-properties@^12.1.5:
+postcss-custom-properties@^12.1.7:
version "12.1.7"
resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-12.1.7.tgz#ca470fd4bbac5a87fd868636dafc084bc2a78b41"
integrity sha512-N/hYP5gSoFhaqxi2DPCmvto/ZcRDVjE3T1LiAMzc/bg53hvhcHOLpXOHb526LzBBp5ZlAUhkuot/bfpmpgStJg==
@@ -13122,7 +13261,7 @@ postcss-js@^4.0.0:
dependencies:
camelcase-css "^2.0.1"
-postcss-lab-function@^4.1.2:
+postcss-lab-function@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-4.2.0.tgz#e054e662c6480202f5760887ec1ae0d153357123"
integrity sha512-Zb1EO9DGYfa3CP8LhINHCcTTCTLI+R3t7AX2mKsDzdgVQ/GkCpHOTgOr6HBHslP7XDdVbqgHW5vvRPMdVANQ8w==
@@ -13294,7 +13433,7 @@ postcss-nested@5.0.6:
dependencies:
postcss-selector-parser "^6.0.6"
-postcss-nesting@^10.1.3:
+postcss-nesting@^10.1.4:
version "10.1.4"
resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-10.1.4.tgz#80de9d1c2717bc44df918dd7f118929300192a7a"
integrity sha512-2ixdQ59ik/Gt1+oPHiI1kHdwEI8lLKEmui9B1nl6163ANLC+GewQn7fXMxJF2JSb4i2MKL96GU8fIiQztK4TTA==
@@ -13404,20 +13543,20 @@ postcss-place@^7.0.4:
postcss-value-parser "^4.2.0"
postcss-preset-env@^7.0.1:
- version "7.4.3"
- resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-7.4.3.tgz#fb1c8b4cb405da042da0ddb8c5eda7842c08a449"
- integrity sha512-dlPA65g9KuGv7YsmGyCKtFkZKCPLkoVMUE3omOl6yM+qrynVHxFvf0tMuippIrXB/sB/MyhL1FgTIbrO+qMERg==
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-7.4.4.tgz#069e34e31e2a7345154da7936b9fc1fcbdbd6d43"
+ integrity sha512-MqzSEx/QsvOk562iV9mLTgIvLFEOq1os9QBQfkgnq8TW6yKhVFPGh0gdXSK5ZlmjuNQEga6/x833e86XZF/lug==
dependencies:
- "@csstools/postcss-color-function" "^1.0.3"
+ "@csstools/postcss-color-function" "^1.1.0"
"@csstools/postcss-font-format-keywords" "^1.0.0"
"@csstools/postcss-hwb-function" "^1.0.0"
"@csstools/postcss-ic-unit" "^1.0.0"
- "@csstools/postcss-is-pseudo-class" "^2.0.1"
+ "@csstools/postcss-is-pseudo-class" "^2.0.2"
"@csstools/postcss-normalize-display-values" "^1.0.0"
- "@csstools/postcss-oklab-function" "^1.0.2"
+ "@csstools/postcss-oklab-function" "^1.1.0"
"@csstools/postcss-progressive-custom-properties" "^1.3.0"
- autoprefixer "^10.4.4"
- browserslist "^4.20.2"
+ autoprefixer "^10.4.5"
+ browserslist "^4.20.3"
css-blank-pseudo "^3.0.3"
css-has-pseudo "^3.0.4"
css-prefers-color-scheme "^6.0.3"
@@ -13428,7 +13567,7 @@ postcss-preset-env@^7.0.1:
postcss-color-hex-alpha "^8.0.3"
postcss-color-rebeccapurple "^7.0.2"
postcss-custom-media "^8.0.0"
- postcss-custom-properties "^12.1.5"
+ postcss-custom-properties "^12.1.7"
postcss-custom-selectors "^6.0.0"
postcss-dir-pseudo-class "^6.0.4"
postcss-double-position-gradients "^3.1.1"
@@ -13439,20 +13578,20 @@ postcss-preset-env@^7.0.1:
postcss-gap-properties "^3.0.3"
postcss-image-set-function "^4.0.6"
postcss-initial "^4.0.1"
- postcss-lab-function "^4.1.2"
+ postcss-lab-function "^4.2.0"
postcss-logical "^5.0.4"
postcss-media-minmax "^5.0.0"
- postcss-nesting "^10.1.3"
+ postcss-nesting "^10.1.4"
postcss-opacity-percentage "^1.1.2"
postcss-overflow-shorthand "^3.0.3"
postcss-page-break "^3.0.4"
postcss-place "^7.0.4"
- postcss-pseudo-class-any-link "^7.1.1"
+ postcss-pseudo-class-any-link "^7.1.2"
postcss-replace-overflow-wrap "^4.0.0"
postcss-selector-not "^5.0.0"
postcss-value-parser "^4.2.0"
-postcss-pseudo-class-any-link@^7.1.1:
+postcss-pseudo-class-any-link@^7.1.2:
version "7.1.2"
resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.2.tgz#81ec491aa43f97f9015e998b7a14263b4630bdf0"
integrity sha512-76XzEQv3g+Vgnz3tmqh3pqQyRojkcJ+pjaePsyhcyf164p9aZsu3t+NWxkZYbcHLK1ju5Qmalti2jPI5IWCe5w==
@@ -13605,6 +13744,16 @@ pretty-format@^27.0.0, pretty-format@^27.0.2, pretty-format@^27.5.1:
ansi-styles "^5.0.0"
react-is "^17.0.1"
+pretty-format@^28.0.2:
+ version "28.0.2"
+ resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.0.2.tgz#6a24d71cbb61a5e5794ba7513fe22101675481bc"
+ integrity sha512-UmGZ1IERwS3yY35LDMTaBUYI1w4udZDdJGGT/DqQeKG9ZLDn7/K2Jf/JtYSRiHCCKMHvUA+zsEGSmHdpaVp1yw==
+ dependencies:
+ "@jest/schemas" "^28.0.2"
+ ansi-regex "^5.0.1"
+ ansi-styles "^5.0.0"
+ react-is "^18.0.0"
+
pretty-hrtime@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1"
@@ -13620,7 +13769,12 @@ prism-react-renderer@^1.2.1, prism-react-renderer@^1.3.1:
resolved "https://registry.yarnpkg.com/prism-react-renderer/-/prism-react-renderer-1.3.1.tgz#88fc9d0df6bed06ca2b9097421349f8c2f24e30d"
integrity sha512-xUeDMEz074d0zc5y6rxiMp/dlC7C+5IDDlaEUlcBOFE2wddz7hz5PNupb087mPwTt7T9BrFmewObfCBuf/LKwQ==
-prismjs@^1.21.0, prismjs@^1.27.0, prismjs@~1.27.0:
+prismjs@^1.21.0, prismjs@^1.27.0:
+ version "1.28.0"
+ resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.28.0.tgz#0d8f561fa0f7cf6ebca901747828b149147044b6"
+ integrity sha512-8aaXdYvl1F7iC7Xm1spqSaY/OJBpYW3v+KJ+F17iYxvdc8sfjW194COK5wVhMZX45tGteiBQgdvD/nhxcRwylw==
+
+prismjs@~1.27.0:
version "1.27.0"
resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.27.0.tgz#bb6ee3138a0b438a3653dd4d6ce0cc6510a45057"
integrity sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==
@@ -13690,7 +13844,7 @@ prompts@^2.0.1, prompts@^2.4.0, prompts@^2.4.2:
kleur "^3.0.3"
sisteransi "^1.0.5"
-prop-types@^15.0.0, prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1:
+prop-types@^15.0.0, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1:
version "15.8.1"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
@@ -13798,12 +13952,7 @@ q@^1.1.2:
resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=
-qs@6.9.7:
- version "6.9.7"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.7.tgz#4610846871485e1e048f44ae3b94033f0e675afe"
- integrity sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==
-
-qs@^6.10.0:
+qs@6.10.3, qs@^6.10.0:
version "6.10.3"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e"
integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==
@@ -13884,18 +14033,13 @@ range-parser@^1.2.1, range-parser@~1.2.1:
resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
-rationale@0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/rationale/-/rationale-0.2.0.tgz#555ed4f3cc7cd0245faeac041d3769f1857e4f3d"
- integrity sha512-Pd8w5Inv1JhTfRyx03zs486CEAn6UKXvvOtxVRLsewngsBSffo3MQwUKYS75L/8vPt98wmf7iaZROx362/f7Bw==
-
-raw-body@2.4.3:
- version "2.4.3"
- resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.3.tgz#8f80305d11c2a0a545c2d9d89d7a0286fcead43c"
- integrity sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==
+raw-body@2.5.1:
+ version "2.5.1"
+ resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857"
+ integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==
dependencies:
bytes "3.1.2"
- http-errors "1.8.1"
+ http-errors "2.0.0"
iconv-lite "0.4.24"
unpipe "1.0.0"
@@ -13908,9 +14052,9 @@ raw-loader@^4.0.2:
schema-utils "^3.0.0"
rc-align@^4.0.0:
- version "4.0.11"
- resolved "https://registry.yarnpkg.com/rc-align/-/rc-align-4.0.11.tgz#8198c62db266bc1b8ef05e56c13275bf72628a5e"
- integrity sha512-n9mQfIYQbbNTbefyQnRHZPWuTEwG1rY4a9yKlIWHSTbgwI+XUMGRYd0uJ5pE2UbrNX0WvnMBA1zJ3Lrecpra/A==
+ version "4.0.12"
+ resolved "https://registry.yarnpkg.com/rc-align/-/rc-align-4.0.12.tgz#065b5c68a1cc92a00800c9239320d9fdf5f16207"
+ integrity sha512-3DuwSJp8iC/dgHzwreOQl52soj40LchlfUHtgACOUtwGuoFIOVh6n/sCpfqCU8kO5+iz6qR0YKvjgB8iPdE3aQ==
dependencies:
"@babel/runtime" "^7.10.1"
classnames "2.x"
@@ -13970,9 +14114,9 @@ rc-drawer@~4.4.2:
rc-util "^5.7.0"
rc-dropdown@~3.5.0:
- version "3.5.0"
- resolved "https://registry.yarnpkg.com/rc-dropdown/-/rc-dropdown-3.5.0.tgz#6ff2e6aaacd3641aa4040cfa941ab9634ad5f1ed"
- integrity sha512-HHMpzO6AJt3I2jBG8fFK9LqFMQhHn/V09AzQnqCCV8Fp22tNCS98Obelcc4C8T6ZlZR+/w01im0BQVP3o1Y+Cw==
+ version "3.5.2"
+ resolved "https://registry.yarnpkg.com/rc-dropdown/-/rc-dropdown-3.5.2.tgz#2f1f4eeb36c07fb67cd599c0cb8e861da3de5527"
+ integrity sha512-Ty4LsXjkspZuFJSRx3blCLLCDicXM5qds6F1odgEa+jcjC+OJKHQGnvE4FqtoljPaqWm4wG78pbgXH6Ddh2DkA==
dependencies:
"@babel/runtime" "^7.10.1"
classnames "^2.2.6"
@@ -13980,18 +14124,18 @@ rc-dropdown@~3.5.0:
rc-util "^5.17.0"
rc-field-form@~1.26.1:
- version "1.26.2"
- resolved "https://registry.yarnpkg.com/rc-field-form/-/rc-field-form-1.26.2.tgz#69d92811eed09f9e1f74704695b13253bb2ae534"
- integrity sha512-Q1QdpLAt/kxd119kJwGfFvn/ZIzjzTBJsCscy5k0z3g+eRMHkI0Exij6SE2D42N7FAzVkvuXTvzqWSiFGeer7g==
+ version "1.26.3"
+ resolved "https://registry.yarnpkg.com/rc-field-form/-/rc-field-form-1.26.3.tgz#4050000eae0d879fde85672a965c9558ed6ff04b"
+ integrity sha512-wzQToAwdr8fiq/Nb1KFq+9WYFeALJXKwNGk5/MaCu1AUS7PpVQaN2anzVfWdVBFiiM2N+3DOh64JSOH8s1w3FQ==
dependencies:
"@babel/runtime" "^7.8.4"
- async-validator "^4.0.2"
+ async-validator "^4.1.0"
rc-util "^5.8.0"
rc-image@~5.6.0:
- version "5.6.1"
- resolved "https://registry.yarnpkg.com/rc-image/-/rc-image-5.6.1.tgz#60662a8fc0fe91d7ebd7fd5ee972d5b6226850e2"
- integrity sha512-nmcobNCfmeevsep6eL7KNHVwFdLz4As4Vx0o90nnUFNzZ9Pqost1s10gOf4Wl6XW2iMR9LU6ztm5EazM7yA4Gg==
+ version "5.6.2"
+ resolved "https://registry.yarnpkg.com/rc-image/-/rc-image-5.6.2.tgz#31892b0b22aa5122fd9b1a067e9a4ba627004214"
+ integrity sha512-qhKOVvivCZkd6CrzS/4ST2+Auu16mtPSFVqVzwE7sELWfuvzcLGTzGv8UsVvm6qRNIz6SeaueUetqi4Ii16XQA==
dependencies:
"@babel/runtime" "^7.11.2"
classnames "^2.2.6"
@@ -14061,9 +14205,9 @@ rc-notification@~4.6.0:
rc-util "^5.20.1"
rc-overflow@^1.0.0, rc-overflow@^1.2.0:
- version "1.2.4"
- resolved "https://registry.yarnpkg.com/rc-overflow/-/rc-overflow-1.2.4.tgz#e25cd3c4a98b4f8233a8dab7172ab2dbcc83b45e"
- integrity sha512-nIeelyYfdS+mQBK1++FisLZEvZ8xVAzC+duG+TC4TmqNN+kTHraiGntV9/zxDGA1ruyQ91YRJ549JjFodCBnsw==
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/rc-overflow/-/rc-overflow-1.2.5.tgz#d0fe3f9fa99edec70f4fe20e38119e8c1c5ae3ca"
+ integrity sha512-5HJKZ4nPe9e7AFdCkflgpRydvH6lJ4i2iFF06q/T1G9lL/XBeuoPLRrTBU8ao/Vo/yARW6WfEHnC2951lVgX5Q==
dependencies:
"@babel/runtime" "^7.11.1"
classnames "^2.2.1"
@@ -14071,17 +14215,17 @@ rc-overflow@^1.0.0, rc-overflow@^1.2.0:
rc-util "^5.19.2"
rc-pagination@~3.1.9:
- version "3.1.15"
- resolved "https://registry.yarnpkg.com/rc-pagination/-/rc-pagination-3.1.15.tgz#e05eddf4c15717a5858290bed0857e27e2f957ff"
- integrity sha512-4L3fot8g4E+PjWEgoVGX0noFCg+8ZFZmeLH4vsnZpB3O2T2zThtakjNxG+YvSaYtyMVT4B+GLayjKrKbXQpdAg==
+ version "3.1.16"
+ resolved "https://registry.yarnpkg.com/rc-pagination/-/rc-pagination-3.1.16.tgz#b0082108cf027eded18ed61d818d31897c343e81"
+ integrity sha512-GFcHXJ7XxeJDf9B+ndP4PRDt46maSSgYhiwofBMiIGKIlBhJ0wfu8DMCEvaWJJLpI2u4Gb6zF1dHpiqPFrosPg==
dependencies:
"@babel/runtime" "^7.10.1"
classnames "^2.2.1"
rc-picker@~2.6.4:
- version "2.6.7"
- resolved "https://registry.yarnpkg.com/rc-picker/-/rc-picker-2.6.7.tgz#bdde4156e219ef36b0006b7d4d72020373f21229"
- integrity sha512-+P2Grt0r2kmCkw2XTp9ew3zTCwBCFEOQLd5BYs+hFaGDSSZwEWJtlbGXAGqWnAUMFx6JrCsKYkDKXDxAWlRz3A==
+ version "2.6.8"
+ resolved "https://registry.yarnpkg.com/rc-picker/-/rc-picker-2.6.8.tgz#eff71e13d836953a4c7439c958228b5108f92c22"
+ integrity sha512-j14N2nxcx4PAw7LviwLKIJG4cEAlCFhcHI/7pz+Ps43Df7UrSIWt/QGJgPAWz38Z6jrjsgMcyVHVccpL09gDDA==
dependencies:
"@babel/runtime" "^7.10.1"
classnames "^2.2.1"
@@ -14237,9 +14381,9 @@ rc-tree@~5.5.0:
rc-virtual-list "^3.4.2"
rc-trigger@^5.0.0, rc-trigger@^5.0.4, rc-trigger@^5.1.2, rc-trigger@^5.2.10:
- version "5.2.15"
- resolved "https://registry.yarnpkg.com/rc-trigger/-/rc-trigger-5.2.15.tgz#f6bfed418e602513cc3e07853ddaf37e5c5339f4"
- integrity sha512-VxZWqCObtUOzs9V9Be0dDA2JGchriDpvQaJpsCI2EQ4+KWHIvjFz6Ziina4uxK5drRsn0RnBi7nngmTl9j/F7Q==
+ version "5.2.18"
+ resolved "https://registry.yarnpkg.com/rc-trigger/-/rc-trigger-5.2.18.tgz#adab51918e4569b174d4fc5044186200d97a542c"
+ integrity sha512-hi2yZ7umtbAGLxgSph1az9BR9i4Pb4fiQa4pdvFQuKN7U//3nwwygHQKHfexnM+0APBnzZwVlEHA5I8BpWrygw==
dependencies:
"@babel/runtime" "^7.11.2"
classnames "^2.2.6"
@@ -14266,9 +14410,9 @@ rc-util@^5.0.1, rc-util@^5.0.6, rc-util@^5.12.0, rc-util@^5.14.0, rc-util@^5.15.
shallowequal "^1.1.0"
rc-virtual-list@^3.2.0, rc-virtual-list@^3.4.2:
- version "3.4.6"
- resolved "https://registry.yarnpkg.com/rc-virtual-list/-/rc-virtual-list-3.4.6.tgz#af34235915221173dd42d9f25b32e95d4c0f5698"
- integrity sha512-wMJ7Bl+AxgIDojp0VxuQxjpNulKodwxGXSsTyxA9Mwzwemj5vKAgTbkPT64ZW5ORf8FOQAaPRlMiTADrPEo3sQ==
+ version "3.4.7"
+ resolved "https://registry.yarnpkg.com/rc-virtual-list/-/rc-virtual-list-3.4.7.tgz#ca0ba5ecddff686cd3833562d07c2678d1c9cb2e"
+ integrity sha512-PhV8a8g/L9sCmWcmXizzwW7QdqsxK4ebHU6fA9OsUIR7isFdx2bTGU2iAUdRV4teiIF1ZHF3gSQh8NtAxrXh6A==
dependencies:
classnames "^2.2.6"
rc-resize-observer "^1.0.0"
@@ -14284,6 +14428,17 @@ rc@^1.2.8:
minimist "^1.2.0"
strip-json-comments "~2.0.1"
+react-ace@10.0.0:
+ version "10.0.0"
+ resolved "https://registry.yarnpkg.com/react-ace/-/react-ace-10.0.0.tgz#1760e302604cff35ba40963db43eb027513b6572"
+ integrity sha512-AUoA2OsKOCv8fXLqcFM232dF/Z8w14bwPUZ9z5I2zjBfqfZOZLqxnhXN+qKL6VrQXs1DLUvalGOuM5TABAFOCA==
+ dependencies:
+ ace-builds "^1.4.14"
+ diff-match-patch "^1.0.5"
+ lodash.get "^4.4.2"
+ lodash.isequal "^4.5.0"
+ prop-types "^15.7.2"
+
react-ace@10.1.0:
version "10.1.0"
resolved "https://registry.yarnpkg.com/react-ace/-/react-ace-10.1.0.tgz#d348eac2b16475231779070b6cd16768deed565f"
@@ -14373,7 +14528,7 @@ react-docgen@^5.0.0:
node-dir "^0.1.10"
strip-indent "^3.0.0"
-react-dom@^18.1.0:
+react-dom@^18.0.0, react-dom@^18.1.0:
version "18.1.0"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.1.0.tgz#7f6dd84b706408adde05e1df575b3a024d7e8a2f"
integrity sha512-fU1Txz7Budmvamp7bshe4Zi32d0ll7ect+ccxNu9FlObT605GOEB8BfO4tmRJ39R5Zj831VCpvQ05QPBW5yb+w==
@@ -14382,12 +14537,12 @@ react-dom@^18.1.0:
scheduler "^0.22.0"
react-draggable@^4.4.3:
- version "4.4.4"
- resolved "https://registry.yarnpkg.com/react-draggable/-/react-draggable-4.4.4.tgz#5b26d9996be63d32d285a426f41055de87e59b2f"
- integrity sha512-6e0WdcNLwpBx/YIDpoyd2Xb04PB0elrDrulKUgdrIlwuYvxh5Ok9M+F8cljm8kPXXs43PmMzek9RrB1b7mLMqA==
+ version "4.4.5"
+ resolved "https://registry.yarnpkg.com/react-draggable/-/react-draggable-4.4.5.tgz#9e37fe7ce1a4cf843030f521a0a4cc41886d7e7c"
+ integrity sha512-OMHzJdyJbYTZo4uQE393fHcqqPYsEtkjfMgvCHr6rejT+Ezn4OZbNyGH50vv+SunC1RMvwOTSWkEODQLzw1M9g==
dependencies:
clsx "^1.1.1"
- prop-types "^15.6.0"
+ prop-types "^15.8.1"
react-element-to-jsx-string@^14.3.4:
version "14.3.4"
@@ -14438,6 +14593,11 @@ react-is@^16.12.0, react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0:
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
+react-is@^18.0.0:
+ version "18.1.0"
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.1.0.tgz#61aaed3096d30eacf2a2127118b5b41387d32a67"
+ integrity sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==
+
react-json-view@^1.21.3:
version "1.21.3"
resolved "https://registry.yarnpkg.com/react-json-view/-/react-json-view-1.21.3.tgz#f184209ee8f1bf374fb0c41b0813cff54549c475"
@@ -14470,9 +14630,9 @@ react-popper-tooltip@^3.1.1:
react-popper "^2.2.4"
react-popper@^2.2.4:
- version "2.2.5"
- resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-2.2.5.tgz#1214ef3cec86330a171671a4fbcbeeb65ee58e96"
- integrity sha512-kxGkS80eQGtLl18+uig1UIf9MKixFSyPxglsgLBxlYnyDf65BiY9B3nZSc6C9XUNDgStROB0fMQlTEz1KxGddw==
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-2.3.0.tgz#17891c620e1320dce318bad9fede46a5f71c70ba"
+ integrity sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q==
dependencies:
react-fast-compare "^3.0.1"
warning "^4.0.2"
@@ -14490,15 +14650,15 @@ react-router-config@^5.1.1:
"@babel/runtime" "^7.1.2"
react-router-dom@^5.2.0:
- version "5.3.0"
- resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.3.0.tgz#da1bfb535a0e89a712a93b97dd76f47ad1f32363"
- integrity sha512-ObVBLjUZsphUUMVycibxgMdh5jJ1e3o+KpAZBVeHcNQZ4W+uUGGWsokurzlF4YOldQYRQL4y6yFRWM4m3svmuQ==
+ version "5.3.1"
+ resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.3.1.tgz#0151baf2365c5fcd8493f6ec9b9b31f34d0f8ae1"
+ integrity sha512-f0pj/gMAbv9e8gahTmCEY20oFhxhrmHwYeIwH5EO5xu0qme+wXtsdB8YfUOAZzUz4VaXmb58m3ceiLtjMhqYmQ==
dependencies:
"@babel/runtime" "^7.12.13"
history "^4.9.0"
loose-envify "^1.3.1"
prop-types "^15.6.2"
- react-router "5.2.1"
+ react-router "5.3.1"
tiny-invariant "^1.0.2"
tiny-warning "^1.0.0"
@@ -14510,10 +14670,10 @@ react-router-dom@^6.0.0:
history "^5.2.0"
react-router "6.3.0"
-react-router@5.2.1, react-router@^5.2.0:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.2.1.tgz#4d2e4e9d5ae9425091845b8dbc6d9d276239774d"
- integrity sha512-lIboRiOtDLFdg1VTemMwud9vRVuOCZmUIT/7lUoZiSpPODiiH1UQlfXy+vPLC/7IWdFYnhRwAyNqA/+I7wnvKQ==
+react-router@5.3.1, react-router@^5.2.0:
+ version "5.3.1"
+ resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.3.1.tgz#b13e84a016c79b9e80dde123ca4112c4f117e3cf"
+ integrity sha512-v+zwjqb7bakqgF+wMVKlAPTca/cEmPOvQ9zt7gpSNyPXau1+0qvuYZ5BWzzNDP1y6s15zDwgb9rPN63+SIniRQ==
dependencies:
"@babel/runtime" "^7.12.13"
history "^4.9.0"
@@ -14782,12 +14942,13 @@ regex-parser@^2.2.11:
integrity sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==
regexp.prototype.flags@^1.4.1:
- version "1.4.2"
- resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.2.tgz#bf635117a2f4b755595ebb0c0ee2d2a49b2084db"
- integrity sha512-Ynz8fTQW5/1elh+jWU2EDDzeoNbD0OQ0R+D1VJU5ATOkUaro4A9YEkdN2ODQl/8UQFPPpZNw91fOcLFamM7Pww==
+ version "1.4.3"
+ resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac"
+ integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==
dependencies:
call-bind "^1.0.2"
define-properties "^1.1.3"
+ functions-have-names "^1.2.2"
regexpp@^3.2.0:
version "3.2.0"
@@ -15163,9 +15324,9 @@ rollup-plugin-terser@^7.0.0:
terser "^5.0.0"
rollup@^2.43.1:
- version "2.70.1"
- resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.70.1.tgz#824b1f1f879ea396db30b0fc3ae8d2fead93523e"
- integrity sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==
+ version "2.70.2"
+ resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.70.2.tgz#808d206a8851628a065097b7ba2053bd83ba0c0d"
+ integrity sha512-EitogNZnfku65I1DD5Mxe8JYRUCy0hkK5X84IlDtUs+O6JRMpRciXTzyCUuX11b5L5pvjH+OmFXiQ3XjabcXgg==
optionalDependencies:
fsevents "~2.3.2"
@@ -15396,25 +15557,6 @@ semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0:
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
-send@0.17.2, send@^0.17.1:
- version "0.17.2"
- resolved "https://registry.yarnpkg.com/send/-/send-0.17.2.tgz#926622f76601c41808012c8bf1688fe3906f7820"
- integrity sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==
- dependencies:
- debug "2.6.9"
- depd "~1.1.2"
- destroy "~1.0.4"
- encodeurl "~1.0.2"
- escape-html "~1.0.3"
- etag "~1.8.1"
- fresh "0.5.2"
- http-errors "1.8.1"
- mime "1.6.0"
- ms "2.1.3"
- on-finished "~2.3.0"
- range-parser "~1.2.1"
- statuses "~1.5.0"
-
send@0.18.0:
version "0.18.0"
resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be"
@@ -15434,6 +15576,25 @@ send@0.18.0:
range-parser "~1.2.1"
statuses "2.0.1"
+send@^0.17.1:
+ version "0.17.2"
+ resolved "https://registry.yarnpkg.com/send/-/send-0.17.2.tgz#926622f76601c41808012c8bf1688fe3906f7820"
+ integrity sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==
+ dependencies:
+ debug "2.6.9"
+ depd "~1.1.2"
+ destroy "~1.0.4"
+ encodeurl "~1.0.2"
+ escape-html "~1.0.3"
+ etag "~1.8.1"
+ fresh "0.5.2"
+ http-errors "1.8.1"
+ mime "1.6.0"
+ ms "2.1.3"
+ on-finished "~2.3.0"
+ range-parser "~1.2.1"
+ statuses "~1.5.0"
+
serialize-javascript@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa"
@@ -15493,17 +15654,7 @@ serve-index@^1.9.1:
mime-types "~2.1.17"
parseurl "~1.3.2"
-serve-static@1.14.2:
- version "1.14.2"
- resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.2.tgz#722d6294b1d62626d41b43a013ece4598d292bfa"
- integrity sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==
- dependencies:
- encodeurl "~1.0.2"
- escape-html "~1.0.3"
- parseurl "~1.3.3"
- send "0.17.2"
-
-serve-static@^1.14.1:
+serve-static@1.15.0, serve-static@^1.14.1:
version "1.15.0"
resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540"
integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==
@@ -15759,12 +15910,12 @@ source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7:
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
-source-map@^0.7.3, source-map@~0.7.2:
+source-map@^0.7.3:
version "0.7.3"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
-source-map@^0.8.0-beta.0:
+source-map@^0.8.0-beta.0, source-map@~0.8.0-beta.0:
version "0.8.0-beta.0"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.8.0-beta.0.tgz#d4c1bb42c3f7ee925f005927ba10709e0d1d1f11"
integrity sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==
@@ -15909,9 +16060,9 @@ statuses@2.0.1:
integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
std-env@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.0.1.tgz#bc4cbc0e438610197e34c2d79c3df30b491f5182"
- integrity sha512-mC1Ps9l77/97qeOZc+HrOL7TIaOboHqMZ24dGVQrlxFcpPpfCHpH+qfUT7Dz+6mlG8+JPA1KfBQo19iC/+Ngcw==
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.1.1.tgz#1f19c4d3f6278c52efd08a94574a2a8d32b7d092"
+ integrity sha512-/c645XdExBypL01TpFKiG/3RAa/Qmu+zRi0MwAmrdEkwHNuN0ebo8ccAXBBDa5Z0QOJgBskUIbuCK91x0sCVEw==
store2@^2.12.0:
version "2.13.2"
@@ -16441,13 +16592,13 @@ terser@^4.1.2, terser@^4.6.3:
source-map-support "~0.5.12"
terser@^5.0.0, terser@^5.10.0, terser@^5.3.4, terser@^5.7.2:
- version "5.12.1"
- resolved "https://registry.yarnpkg.com/terser/-/terser-5.12.1.tgz#4cf2ebed1f5bceef5c83b9f60104ac4a78b49e9c"
- integrity sha512-NXbs+7nisos5E+yXwAD+y7zrcTkMqb0dEJxIGtSKPdCBzopf7ni4odPul2aechpV7EXNvOudYOX2bb5tln1jbQ==
+ version "5.13.1"
+ resolved "https://registry.yarnpkg.com/terser/-/terser-5.13.1.tgz#66332cdc5a01b04a224c9fad449fc1a18eaa1799"
+ integrity sha512-hn4WKOfwnwbYfe48NgrQjqNOH9jzLqRcIfbYytOXCOv46LBfWr9bDS17MQqOi+BWGD0sJK3Sj5NC/gJjiojaoA==
dependencies:
acorn "^8.5.0"
commander "^2.20.0"
- source-map "~0.7.2"
+ source-map "~0.8.0-beta.0"
source-map-support "~0.5.20"
test-exclude@^6.0.0:
@@ -16713,7 +16864,12 @@ tslib@^1.8.1:
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
-tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.0, tslib@^2.3.1, tslib@~2.3.1:
+tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.0, tslib@^2.3.1:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3"
+ integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==
+
+tslib@~2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01"
integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==
@@ -16805,9 +16961,9 @@ typedarray@^0.0.6:
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
typescript@^4.6.3:
- version "4.6.3"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.3.tgz#eefeafa6afdd31d725584c67a0eaba80f6fc6c6c"
- integrity sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==
+ version "4.6.4"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.4.tgz#caa78bbc3a59e6a5c510d35703f6a09877ce45e9"
+ integrity sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==
ua-parser-js@^0.7.30:
version "0.7.31"
@@ -16820,13 +16976,13 @@ uglify-js@^3.1.4:
integrity sha512-vMOPGDuvXecPs34V74qDKk4iJ/SN4vL3Ow/23ixafENYvtrNvtbcgUeugTcUGRGsOF/5fU8/NYSL5Hyb3l1OJA==
unbox-primitive@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471"
- integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e"
+ integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==
dependencies:
- function-bind "^1.1.1"
- has-bigints "^1.0.1"
- has-symbols "^1.0.2"
+ call-bind "^1.0.2"
+ has-bigints "^1.0.2"
+ has-symbols "^1.0.3"
which-boxed-primitive "^1.0.2"
unfetch@^4.2.0:
@@ -17093,21 +17249,21 @@ urlgrey@1.0.0:
fast-url-parser "^1.1.3"
use-composed-ref@^1.0.0:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/use-composed-ref/-/use-composed-ref-1.2.1.tgz#9bdcb5ccd894289105da2325e1210079f56bf849"
- integrity sha512-6+X1FLlIcjvFMAeAD/hcxDT8tmyrWnbSPMU0EnxQuDLIxokuFzWliXBiYZuGIx+mrAMLBw0WFfCkaPw8ebzAhw==
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/use-composed-ref/-/use-composed-ref-1.3.0.tgz#3d8104db34b7b264030a9d916c5e94fbe280dbda"
+ integrity sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==
-use-isomorphic-layout-effect@^1.0.0:
+use-isomorphic-layout-effect@^1.1.1:
version "1.1.2"
resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz#497cefb13d863d687b08477d9e5a164ad8c1a6fb"
integrity sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==
use-latest@^1.0.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/use-latest/-/use-latest-1.2.0.tgz#a44f6572b8288e0972ec411bdd0840ada366f232"
- integrity sha512-d2TEuG6nSLKQLAfW3By8mKr8HurOlTkul0sOpxbClIv4SQ4iOd7BYr7VIzdbktUCnv7dua/60xzd8igMU6jmyw==
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/use-latest/-/use-latest-1.2.1.tgz#d13dfb4b08c28e3e33991546a2cee53e14038cf2"
+ integrity sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==
dependencies:
- use-isomorphic-layout-effect "^1.0.0"
+ use-isomorphic-layout-effect "^1.1.1"
use@^3.1.0:
version "3.1.1"
@@ -17191,7 +17347,7 @@ v8-compile-cache@^2.0.3:
resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==
-v8-to-istanbul@^8.0.0, v8-to-istanbul@^8.1.0:
+v8-to-istanbul@^8.1.0:
version "8.1.1"
resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz#77b752fd3975e31bbcef938f85e9bd1c7a8d60ed"
integrity sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==
@@ -17200,6 +17356,15 @@ v8-to-istanbul@^8.0.0, v8-to-istanbul@^8.1.0:
convert-source-map "^1.6.0"
source-map "^0.7.3"
+v8-to-istanbul@^9.0.0:
+ version "9.0.0"
+ resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.0.0.tgz#be0dae58719fc53cb97e5c7ac1d7e6d4f5b19511"
+ integrity sha512-HcvgY/xaRm7isYmyx+lFKA4uQmfUbN0J4M0nNItvzTvH/iQ9kW5j/t4YSR+Ge323/lrgDAWJoF46tzGQHwBHFw==
+ dependencies:
+ "@jridgewell/trace-mapping" "^0.3.7"
+ "@types/istanbul-lib-coverage" "^2.0.1"
+ convert-source-map "^1.6.0"
+
validate-npm-package-license@^3.0.1:
version "3.0.4"
resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
@@ -18368,7 +18533,7 @@ yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2:
resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
-yargs-parser@20.x, yargs-parser@^20.2.2, yargs-parser@^20.2.7:
+yargs-parser@20.x, yargs-parser@^20.2.2, yargs-parser@^20.2.9:
version "20.2.9"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee"
integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==